ziti.shader 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. // Made with Amplify Shader Editor
  2. // Available at the Unity Asset Store - http://u3d.as/y3X
  3. Shader "ZITI"
  4. {
  5. Properties
  6. {
  7. _TextureSample0("Texture Sample 0", 2D) = "white" {}
  8. [HDR]_Color0("Color 0", Color) = (0,0,0,0)
  9. _TextureSample1("Texture Sample 1", 2D) = "white" {}
  10. _Float0("Float 0", Float) = 0
  11. _Float4("Float 4", Float) = 0
  12. _Float1("Float 1", Float) = 0
  13. _Float6("Float 6", Float) = 0
  14. _Float2("Float 2", Float) = 0.32
  15. _Float5("Float 5", Float) = 0.26
  16. _TextureSample2("Texture Sample 2", 2D) = "white" {}
  17. _Ine("Ine", Float) = 0
  18. _Ani("Ani", Range( 0 , 1)) = 0.5035434
  19. [HideInInspector] _texcoord( "", 2D ) = "white" {}
  20. [HideInInspector] __dirty( "", Int ) = 1
  21. }
  22. SubShader
  23. {
  24. Tags{ "RenderType" = "Transparent" "Queue" = "AlphaTest+0" "IsEmissive" = "true" }
  25. Cull Back
  26. Blend SrcAlpha OneMinusSrcAlpha
  27. CGINCLUDE
  28. #include "UnityShaderVariables.cginc"
  29. #include "UnityPBSLighting.cginc"
  30. #include "Lighting.cginc"
  31. #pragma target 3.0
  32. struct Input
  33. {
  34. float2 uv_texcoord;
  35. };
  36. uniform sampler2D _TextureSample2;
  37. uniform float _Float5;
  38. uniform float _Float4;
  39. uniform float _Float6;
  40. uniform float4 _Color0;
  41. uniform sampler2D _TextureSample0;
  42. uniform sampler2D _TextureSample1;
  43. uniform float _Float2;
  44. uniform float _Float0;
  45. uniform float _Float1;
  46. uniform float _Ine;
  47. uniform float _Ani;
  48. inline half4 LightingUnlit( SurfaceOutput s, half3 lightDir, half atten )
  49. {
  50. return half4 ( 0, 0, 0, s.Alpha );
  51. }
  52. void surf( Input i , inout SurfaceOutput o )
  53. {
  54. float4 appendResult28 = (float4(_Float4 , _Float6 , 0.0 , 0.0));
  55. float4 appendResult8 = (float4(_Float0 , _Float1 , 0.0 , 0.0));
  56. float4 tex2DNode4 = tex2D( _TextureSample1, (i.uv_texcoord*_Float2 + ( appendResult8 * _Time.y ).xy) );
  57. float2 appendResult34 = (float2(( tex2DNode4.r * _Ine ) , ( tex2DNode4.g * _Ine )));
  58. float4 tex2DNode1 = tex2D( _TextureSample0, ( i.uv_texcoord + appendResult34 ) );
  59. o.Emission = ( ( tex2D( _TextureSample2, (i.uv_texcoord*_Float5 + ( appendResult28 * _Time.y ).xy) ) * _Color0 ) * tex2DNode1 ).rgb;
  60. float temp_output_48_0 = (0.0 + (_Ani - 0.0) * (0.24 - 0.0) / (1.0 - 0.0));
  61. float temp_output_52_0 = (3.04 + (_Ani - 0.0) * (0.0 - 3.04) / (1.0 - 0.0));
  62. float clampResult59 = clamp( ( ( _Ani - ( 1.0 - length( (i.uv_texcoord).x ) ) ) / ( temp_output_48_0 * temp_output_52_0 ) ) , 0.0 , 1.0 );
  63. o.Alpha = ( tex2DNode1.a * clampResult59 );
  64. }
  65. ENDCG
  66. CGPROGRAM
  67. #pragma surface surf Unlit keepalpha fullforwardshadows
  68. ENDCG
  69. Pass
  70. {
  71. Name "ShadowCaster"
  72. Tags{ "LightMode" = "ShadowCaster" }
  73. ZWrite On
  74. CGPROGRAM
  75. #pragma vertex vert
  76. #pragma fragment frag
  77. #pragma target 3.0
  78. #pragma multi_compile_shadowcaster
  79. #pragma multi_compile UNITY_PASS_SHADOWCASTER
  80. #pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2
  81. #include "HLSLSupport.cginc"
  82. #if ( SHADER_API_D3D11 || SHADER_API_GLCORE || SHADER_API_GLES || SHADER_API_GLES3 || SHADER_API_METAL || SHADER_API_VULKAN )
  83. #define CAN_SKIP_VPOS
  84. #endif
  85. #include "UnityCG.cginc"
  86. #include "Lighting.cginc"
  87. #include "UnityPBSLighting.cginc"
  88. sampler3D _DitherMaskLOD;
  89. struct v2f
  90. {
  91. V2F_SHADOW_CASTER;
  92. float2 customPack1 : TEXCOORD1;
  93. float3 worldPos : TEXCOORD2;
  94. UNITY_VERTEX_INPUT_INSTANCE_ID
  95. };
  96. v2f vert( appdata_full v )
  97. {
  98. v2f o;
  99. UNITY_SETUP_INSTANCE_ID( v );
  100. UNITY_INITIALIZE_OUTPUT( v2f, o );
  101. UNITY_TRANSFER_INSTANCE_ID( v, o );
  102. Input customInputData;
  103. float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz;
  104. half3 worldNormal = UnityObjectToWorldNormal( v.normal );
  105. o.customPack1.xy = customInputData.uv_texcoord;
  106. o.customPack1.xy = v.texcoord;
  107. o.worldPos = worldPos;
  108. TRANSFER_SHADOW_CASTER_NORMALOFFSET( o )
  109. return o;
  110. }
  111. half4 frag( v2f IN
  112. #if !defined( CAN_SKIP_VPOS )
  113. , UNITY_VPOS_TYPE vpos : VPOS
  114. #endif
  115. ) : SV_Target
  116. {
  117. UNITY_SETUP_INSTANCE_ID( IN );
  118. Input surfIN;
  119. UNITY_INITIALIZE_OUTPUT( Input, surfIN );
  120. surfIN.uv_texcoord = IN.customPack1.xy;
  121. float3 worldPos = IN.worldPos;
  122. half3 worldViewDir = normalize( UnityWorldSpaceViewDir( worldPos ) );
  123. SurfaceOutput o;
  124. UNITY_INITIALIZE_OUTPUT( SurfaceOutput, o )
  125. surf( surfIN, o );
  126. #if defined( CAN_SKIP_VPOS )
  127. float2 vpos = IN.pos;
  128. #endif
  129. half alphaRef = tex3D( _DitherMaskLOD, float3( vpos.xy * 0.25, o.Alpha * 0.9375 ) ).a;
  130. clip( alphaRef - 0.01 );
  131. SHADOW_CASTER_FRAGMENT( IN )
  132. }
  133. ENDCG
  134. }
  135. }
  136. Fallback "Diffuse"
  137. CustomEditor "ASEMaterialInspector"
  138. }
  139. /*ASEBEGIN
  140. Version=16301
  141. 238;225;1906;632;3183.283;1157.766;4.868855;True;True
  142. Node;AmplifyShaderEditor.RangedFloatNode;7;-1317.185,274.8826;Float;False;Property;_Float1;Float 1;6;0;Create;True;0;0;False;0;0;0.01;0;0;0;1;FLOAT;0
  143. Node;AmplifyShaderEditor.RangedFloatNode;6;-1314.263,201.9855;Float;False;Property;_Float0;Float 0;4;0;Create;True;0;0;False;0;0;-0.07;0;0;0;1;FLOAT;0
  144. Node;AmplifyShaderEditor.DynamicAppendNode;8;-1083.333,258.9073;Float;False;FLOAT4;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT4;0
  145. Node;AmplifyShaderEditor.TimeNode;10;-1303.626,412.2778;Float;False;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  146. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;9;-902.3273,435.6292;Float;False;2;2;0;FLOAT4;0,0,0,0;False;1;FLOAT;0;False;1;FLOAT4;0
  147. Node;AmplifyShaderEditor.TextureCoordinatesNode;5;-983.1533,80.74252;Float;False;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  148. Node;AmplifyShaderEditor.RangedFloatNode;17;-921.6045,223.2238;Float;False;Property;_Float2;Float 2;8;0;Create;True;0;0;False;0;0.32;1;0;0;0;1;FLOAT;0
  149. Node;AmplifyShaderEditor.TextureCoordinatesNode;40;473.4319,607.3489;Float;False;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  150. Node;AmplifyShaderEditor.ComponentMaskNode;39;735.3284,605.5621;Float;True;True;False;True;True;1;0;FLOAT2;0,0;False;1;FLOAT;0
  151. Node;AmplifyShaderEditor.RangedFloatNode;24;-751.4642,-499.2225;Float;False;Property;_Float4;Float 4;5;0;Create;True;0;0;False;0;0;0.27;0;0;0;1;FLOAT;0
  152. Node;AmplifyShaderEditor.RangedFloatNode;29;-754.3864,-426.3254;Float;False;Property;_Float6;Float 6;7;0;Create;True;0;0;False;0;0;0.03;0;0;0;1;FLOAT;0
  153. Node;AmplifyShaderEditor.ScaleAndOffsetNode;16;-700.8881,269.5716;Float;False;3;0;FLOAT2;0,0;False;1;FLOAT;1;False;2;FLOAT2;0,0;False;1;FLOAT2;0
  154. Node;AmplifyShaderEditor.RangedFloatNode;50;1374.948,907.0135;Float;False;Constant;_Float8;Float 8;13;0;Create;True;0;0;False;0;1;0;0;0;0;1;FLOAT;0
  155. Node;AmplifyShaderEditor.TimeNode;27;-740.8273,-288.9302;Float;False;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  156. Node;AmplifyShaderEditor.RangedFloatNode;42;821.6738,1058.411;Float;False;Property;_Ani;Ani;12;0;Create;True;0;0;False;0;0.5035434;1;0;1;0;1;FLOAT;0
  157. Node;AmplifyShaderEditor.RangedFloatNode;49;1372.063,1025.523;Float;False;Constant;_Float7;Float 7;13;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0
  158. Node;AmplifyShaderEditor.RangedFloatNode;53;1381.27,1371.497;Float;False;Constant;_Float10;Float 10;13;0;Create;True;0;0;False;0;1;0;0;0;0;1;FLOAT;0
  159. Node;AmplifyShaderEditor.RangedFloatNode;51;1387.784,1103.501;Float;False;Constant;_Float9;Float 9;13;0;Create;True;0;0;False;0;0.24;0;0;0;0;1;FLOAT;0
  160. Node;AmplifyShaderEditor.DynamicAppendNode;28;-567.5341,-442.3007;Float;False;FLOAT4;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT4;0
  161. Node;AmplifyShaderEditor.SamplerNode;4;-449.3257,240.6347;Float;True;Property;_TextureSample1;Texture Sample 1;3;0;Create;True;0;0;False;0;16d574e53541bba44a84052fa38778df;9789d23040cb1fb45ad60392430c3c15;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  162. Node;AmplifyShaderEditor.RangedFloatNode;54;1389.307,1470.385;Float;False;Constant;_Float11;Float 11;13;0;Create;True;0;0;False;0;3.04;0;0;0;0;1;FLOAT;0
  163. Node;AmplifyShaderEditor.RangedFloatNode;55;1379.983,1294.805;Float;False;Constant;_Float12;Float 12;13;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0
  164. Node;AmplifyShaderEditor.RangedFloatNode;37;-296.7931,504.3547;Float;False;Property;_Ine;Ine;11;0;Create;True;0;0;False;0;0;0.012;0;0;0;1;FLOAT;0
  165. Node;AmplifyShaderEditor.LengthOpNode;41;1045.432,630.3489;Float;True;1;0;FLOAT;0;False;1;FLOAT;0
  166. Node;AmplifyShaderEditor.TextureCoordinatesNode;31;-420.3544,-620.4655;Float;False;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  167. Node;AmplifyShaderEditor.TFHCRemapNode;52;1707.671,1284.529;Float;True;5;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;3;FLOAT;0;False;4;FLOAT;1;False;1;FLOAT;0
  168. Node;AmplifyShaderEditor.RangedFloatNode;26;-347.8055,-429.9842;Float;False;Property;_Float5;Float 5;9;0;Create;True;0;0;False;0;0.26;1.97;0;0;0;1;FLOAT;0
  169. Node;AmplifyShaderEditor.OneMinusNode;47;1451.826,520.1702;Float;False;1;0;FLOAT;0;False;1;FLOAT;0
  170. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;36;-52.39299,501.7546;Float;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  171. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;25;-339.5282,-265.5787;Float;False;2;2;0;FLOAT4;0,0,0,0;False;1;FLOAT;0;False;1;FLOAT4;0
  172. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;35;-67.99304,396.4547;Float;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  173. Node;AmplifyShaderEditor.TFHCRemapNode;48;1627.444,938.7104;Float;True;5;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;3;FLOAT;0;False;4;FLOAT;1;False;1;FLOAT;0
  174. Node;AmplifyShaderEditor.ScaleAndOffsetNode;30;-44.24306,-446.7729;Float;False;3;0;FLOAT2;0,0;False;1;FLOAT;1;False;2;FLOAT2;0,0;False;1;FLOAT2;0
  175. Node;AmplifyShaderEditor.DynamicAppendNode;34;-99.78601,119.2031;Float;True;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0
  176. Node;AmplifyShaderEditor.TextureCoordinatesNode;13;-156.0996,-61.53717;Float;False;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  177. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;58;2227.981,882.3561;Float;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  178. Node;AmplifyShaderEditor.SimpleSubtractOpNode;43;1601.349,578.1949;Float;True;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  179. Node;AmplifyShaderEditor.SimpleDivideOpNode;44;3027.61,440.1411;Float;True;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  180. Node;AmplifyShaderEditor.ColorNode;3;208.1181,-259.7994;Float;False;Property;_Color0;Color 0;2;1;[HDR];Create;True;0;0;False;0;0,0,0,0;5.278032,2.872712,0.2738602,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  181. Node;AmplifyShaderEditor.SimpleAddOpNode;14;204.1911,-59.88295;Float;True;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
  182. Node;AmplifyShaderEditor.SamplerNode;23;176.6853,-476.9302;Float;True;Property;_TextureSample2;Texture Sample 2;10;0;Create;True;0;0;False;0;None;61c0b9c0523734e0e91bc6043c72a490;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  183. Node;AmplifyShaderEditor.SamplerNode;1;554.137,-77.47572;Float;True;Property;_TextureSample0;Texture Sample 0;1;0;Create;True;0;0;False;0;218ce09dc3fa71a48b508a60c48394f8;218ce09dc3fa71a48b508a60c48394f8;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  184. Node;AmplifyShaderEditor.ClampOpNode;59;3327.036,510.0766;Float;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
  185. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;32;671.368,-297.6725;Float;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  186. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;46;3382.798,362.3046;Float;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  187. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;2;1006.544,-268.4619;Float;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  188. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;22;208.0289,207.465;Float;True;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
  189. Node;AmplifyShaderEditor.SimpleMaxOpNode;57;2249.502,1103.704;Float;True;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  190. Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;3700.448,62.33282;Float;False;True;2;Float;ASEMaterialInspector;0;0;Unlit;ZITI;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;Back;0;False;-1;0;False;-1;False;0;False;-1;0;False;-1;False;0;Custom;0.5;True;True;0;True;Transparent;;AlphaTest;All;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;0;False;-1;False;0;False;-1;255;False;-1;255;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;False;2;15;10;25;False;0.5;True;2;5;False;-1;10;False;-1;0;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;0;0,0,0,0;VertexOffset;True;False;Cylindrical;False;Relative;0;;0;-1;-1;-1;0;False;0;0;False;-1;-1;0;False;-1;0;0;0;False;0.1;False;-1;0;False;-1;15;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT;0;False;4;FLOAT;0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT;0;False;9;FLOAT;0;False;10;FLOAT;0;False;13;FLOAT3;0,0,0;False;11;FLOAT3;0,0,0;False;12;FLOAT3;0,0,0;False;14;FLOAT4;0,0,0,0;False;15;FLOAT3;0,0,0;False;0
  191. WireConnection;8;0;6;0
  192. WireConnection;8;1;7;0
  193. WireConnection;9;0;8;0
  194. WireConnection;9;1;10;2
  195. WireConnection;39;0;40;0
  196. WireConnection;16;0;5;0
  197. WireConnection;16;1;17;0
  198. WireConnection;16;2;9;0
  199. WireConnection;28;0;24;0
  200. WireConnection;28;1;29;0
  201. WireConnection;4;1;16;0
  202. WireConnection;41;0;39;0
  203. WireConnection;52;0;42;0
  204. WireConnection;52;1;55;0
  205. WireConnection;52;2;53;0
  206. WireConnection;52;3;54;0
  207. WireConnection;52;4;55;0
  208. WireConnection;47;0;41;0
  209. WireConnection;36;0;4;2
  210. WireConnection;36;1;37;0
  211. WireConnection;25;0;28;0
  212. WireConnection;25;1;27;2
  213. WireConnection;35;0;4;1
  214. WireConnection;35;1;37;0
  215. WireConnection;48;0;42;0
  216. WireConnection;48;1;49;0
  217. WireConnection;48;2;50;0
  218. WireConnection;48;3;49;0
  219. WireConnection;48;4;51;0
  220. WireConnection;30;0;31;0
  221. WireConnection;30;1;26;0
  222. WireConnection;30;2;25;0
  223. WireConnection;34;0;35;0
  224. WireConnection;34;1;36;0
  225. WireConnection;58;0;48;0
  226. WireConnection;58;1;52;0
  227. WireConnection;43;0;42;0
  228. WireConnection;43;1;47;0
  229. WireConnection;44;0;43;0
  230. WireConnection;44;1;58;0
  231. WireConnection;14;0;13;0
  232. WireConnection;14;1;34;0
  233. WireConnection;23;1;30;0
  234. WireConnection;1;1;14;0
  235. WireConnection;59;0;44;0
  236. WireConnection;32;0;23;0
  237. WireConnection;32;1;3;0
  238. WireConnection;46;0;1;4
  239. WireConnection;46;1;59;0
  240. WireConnection;2;0;32;0
  241. WireConnection;2;1;1;0
  242. WireConnection;22;0;13;0
  243. WireConnection;22;1;34;0
  244. WireConnection;57;0;48;0
  245. WireConnection;57;1;52;0
  246. WireConnection;0;2;2;0
  247. WireConnection;0;9;46;0
  248. ASEEND*/
  249. //CHKSM=C637AA125829BC6382D1455B37C8ACF5BE68F70B