quine golf: single-line atrocity; 4159B

This commit is contained in:
Crispy 2024-08-12 22:54:36 +02:00
parent 5408b7d6e6
commit 38ae53e9d8
2 changed files with 5 additions and 13 deletions

View file

@ -1,12 +1,4 @@
Shader"S"{SubShader{Pass{CGPROGRAM#pragma vertex a
#pragma fragment f
#include"UnityCG.cginc"
struct A{float4 v:POSITION;float2 u:TEXCOORD0;UNITY_VERTEX_INPUT_INSTANCE_ID};struct V{float2 u:TEXCOORD0;float4 v:SV_POSITION;UNITY_VERTEX_OUTPUT_STEREO};V a(A v){V o;UNITY_SETUP_INSTANCE_ID(v);UNITY_INITIALIZE_OUTPUT(V,o);UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);o.v=UnityObjectToClipPos(v.v);o.u=v.u;return o;}float3 f(V U):SV_Target{
const uint t[]={0x2f00576f,0x33f2c1f7,0x2f1fb204,0x1b49dda7,0x3d618237,0x42c83a2e,0x4541a121,0x53a72e14,0x1adea1c5,0x5d3cd90b,0x603c289b,0x568d5310,0x339e664f,0x62d0e527,0x51d53c3a,0x3b06de0b,0x62ec13db,0x45bce019,0x620fc24a,0x5d6c6c36,0x00f4742a,0x70a7a790,0x5bc6aa73,0x76b38992,0x7d04286b,0x5cdd77af,0x793c758e,0x4a25d683,0x6a865f87,0x8a7a6d41,0x80979732,0x3e5dcab0,0x7aab42e2,0x4386c736,0x8f2b05f5,0x3b014639,0x38a8286b,0x5cdd77af,0x793c758e,0x4a25d683,0x285ca196,0x0c38abc3,0x8ce0fa73,0x76b38992,0x7dd7e131,0x8802215d,0x793c7e9e,0x6a7c4ea1,0x8951495d,0x7fe41a29,0x005bbcb0,0x5c2c10d0,0x71e0b2d0,0x79542e24,0x78f372b0,0x7aab42e2,0x4386c736,0x9131fc1b,0x7b8dda68,0x76bb5f80,0x4d905394,0x89a6a269,0x6a7fa4e2,0x7227c8a2,0x76b440b0,0x7b8dd81f,0x966a1e78,0x8cc22484,0x831d7ba1,0x3e5dca93,0x793a255e,0x91784c1e,0x6f044498,0x6546356c,0x9cb68111,0x712516f2,0x3e72fc95,0x6f03fc1e,0x6e9eb2bd,0x3c2881d6,0x3b3ff82e,0x7e49bd4e,0x1c044410,0x91c85dac,0x735912b1,0x1b827fd6,0x39590388,0x40a2e7a9,0x62d0ec21,0xa3108153,0x5fa11a9a,0x5cc864f8,0x5cc8e992,0x9a82cea3,0x09ebc134,0x2c299338,0x18f6ebf7,0x0eb63932,0x09dc5151,0x029203e4,0x0c7d1484,0x13bec954,0x2c01bbd9,0x11567fa3,0x09e3ef55,0x2c313092,0x0a0aa0a7,0x111eec27,0x11a3ebf4,0x0c6445a2,0x09eb29f4,0x2c28e4d3,0x2c390136,0x0a123ea7,0x111f0488,0x0cc21df7,0x139099a2,0x09cc02f6,0x1414d345,0x2c021f82,0x1881d732,0x04eab3d9,0x02c0e433,0x04eb9344,0x13d66b62,0x0c4d1ffa,0x160293e3,0x16317487,0x0c4ca396,0x2c020543,0x0eaf9436,0x163831d7,0x2c021f83,0x113e8f42,0x13bf2df5,0x02c0e2a6,0x07827659,0x11a3ebf8,0x02a8ac92,0x05291943,0x0ef489a2,0x051112f9,0x04eb9344,0x04fa2184,0x2c01ee23,0x09d469a2,0x04f29be4,0x2c212dd3,0x2c30cd88,0x0cc28337,0x0509d9a2,0x13afc0f2,0x04ea5027,0x09e50344,0x161124aa,0x13af4431,0x11a43838,0x0c4d24a2,0x079b12f1,0x1126d4e2,0x050172f1,0x02fdd399,0x05114685,0x2c118d35,0x04f23842,0x0528cf81,0x13906ba2,0x09d3eb55,0x2c023887,0x162ffc52,0x052883e8,0x18726ba4,0x09d49a58,0x18f6d4d4,0x18898bf1,0x2c1177a2,0x16202956,0x160292f3,0x0c3d8093,0x2c195d32,0x189994a5,0x0c6c3021,0x02fdd259,0x077a43f2,0x0511dd25,0x1899dfa5,0x0ef46b51,0x2c194529,0x0edd64a4,0x05217be6,0x0f3304f2,0x09e40b32,0x09e38b5a,0x11a3d396,0x0ec5f4a8,0x051996a3,0x0772f0e5,0x11a468fa,0x0ed51521,0x2c195d31,0x188990aa,0x0ee49aea,0x07dfec95,0x0eecce96,0x07dfed37,0x09cc7853,0x5fb8286b,0x5cdd7adf,0x6a5cfcf7,0x1036d4f8,0x5cc731ad,0x2d342342,0x83549021,0x7e36e1cd,0x6cfe84e5,0xa7d1a0d5,0x88224d36,0x7ce6e895,0x178b4be0,0x915239bc,0xaf85c784,0x09e36bd7,0x5fa2c999,0xa8d8b2d2,0x0671c8bd,0xafe6bc7d,0xb1fb1004,0x065288ef,0x04f10aa9,0x748fba8b,0x66354f0b,0x04f82826,0x91d8cdcb,0x90774e2c,0xad9b6f03,0x0e10afa6,0x948f8217,0x8e13522f,0x396e20eb,0x663d1f03,0x079a3223,0x5fa2c321,0x66639ad3,0x28797f99,0xb425d619,0xaff41814,0xa7da1caf,0x1605cf59,0x9a15792a,0x60eae992,0x6f3b8e6c,0xa3cebbcf,0x91190a95,0x83404d63,0x33bded95,0x61aae95d,0xa34bc8a5,0xa7b83d1c,0xad6d3da5,0xaffccc2a,0x807fee8c,0x8f64ca00,};
const uint R[]={0,234663,68679,2265159,3280003,5348,7376003,1088679,233604,7641382,6600966,2234534,34023,6182,8665390,6601774,4267074,301257,134,14719239,1088809,6210,337920,4262980,5286,7642145,133250,6587686,14726446,7642409,15255086,2270697,18732593,11512810,3312673,12923174,11953,5282,72774,8661474,7465,1049633,33826,9741606,567426,128,206118,131200,14815374,32641156,18470705,131204,15768623,18157905,3319079,18393220,31,18400580,2240642,4261956,4464900,1082415,15994959,459200,4198566,3179555,3213379,332096,145536,7168,2236546,72955190,4260932,9570592,244584452,266305};
float2 p=U.u*65;uint b,c,i,Y,X=p.x;Y=p.y;i=X+(64-Y)*65;b=448;
if(i>=b&&i<3330){
c=(i-b)%11;c=c<2?(c<<4)+1:c==10?18:(t[(i-b)/11]>>((7-((c-2)&7))*4)&15)+1;
}else{i-=(i>b)*2882;
c=t[i/5];for(i%=5;i<4;i++)c/=80;c%=80;}
Y=(p.y-Y)*6;X=(p.x-X)*6;return R[c]>>(X+Y*5)&1*(X<5);}ENDCG}}}
struct A{float4 v:POSITION;float2 u:TEXCOORD0;UNITY_VERTEX_INPUT_INSTANCE_ID};struct V{float2 u:TEXCOORD0;float4 v:SV_POSITION;UNITY_VERTEX_OUTPUT_STEREO};V a(A v){V o;UNITY_SETUP_INSTANCE_ID(v);UNITY_INITIALIZE_OUTPUT(V,o);UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);o.v=UnityObjectToClipPos(v.v);o.u=v.u;return o;}float3 f(V U):SV_Target{const uint t[]={0x2f00576f,0x33f2c1f7,0x2f1fb204,0x1b49dda7,0x3d618237,0x42c83a2e,0x4541a121,0x53a72e14,0x1adea1c5,0x5d3cd90b,0x603c289b,0x568d5310,0x339e664f,0x62d0e527,0x51d53c3a,0x3b06de0b,0x62ec13db,0x45bce019,0x620fc24a,0x5d6c6c36,0x00f4742a,0x70a7a790,0x5bc6aa73,0x76b38992,0x7d04286b,0x5cdd77af,0x793c758e,0x4a25d683,0x6a865f87,0x8a7a6d41,0x80979732,0x3e5dcab0,0x7aab42e2,0x4386c736,0x8f2b05f5,0x3b014639,0x38a8286b,0x5cdd77af,0x793c758e,0x4a25d683,0x285ca196,0x0c38abc3,0x8ce0fa73,0x76b38992,0x7dd7e131,0x8802215d,0x793c7e9e,0x6a7c4ea1,0x8951495d,0x7fe41a29,0x005bbcb0,0x5c2c10d0,0x71e0b2d0,0x79542e24,0x78f372b0,0x7aab42e2,0x4386c736,0x9131fc1b,0x7b8dda68,0x76bb5f80,0x4d905394,0x89a6a269,0x6a7fa4e2,0x7227c8a2,0x76b440b0,0x7b8dd81f,0x966a1e78,0x8cc22484,0x831d7ba1,0x3e5dca93,0x793a255e,0x91784c1e,0x6f044498,0x6546356c,0x9cb68111,0x712516f2,0x3e72fc95,0x6f03fc1e,0x6e9eb2bd,0x3c2881d6,0x3b3ff82e,0x7e49bd4e,0x1c044410,0x91c85dac,0x735912b1,0x1b827fd6,0x38911a9a,0x5cc864f8,0x5cc9ca92,0x9a8869fd,0x718915e0,0x3bdc43e0,0x48cf55c7,0x02fdec45,0x114e19a7,0x16307b32,0x076b20e2,0x0ef5e343,0x1600e954,0x2c214599,0x2c30e687,0x027939a2,0x02b83338,0x18f6ec44,0x111f52a8,0x113e4349,0x07e05131,0x02bfd142,0x076ad596,0x09ecd345,0x0288d9a7,0x0528a0a9,0x114e474a,0x02fe5131,0x052149a2,0x0c4d2181,0x13b0d341,0x04fa0892,0x0501c2a2,0x0c73b523,0x0a13e2a1,0x1640315a,0x2c28fba1,0x2c11a68a,0x075c9393,0x112f6cd1,0x2c212dd7,0x2c313093,0x0509aba2,0x09e38ce1,0x2c2948d8,0x115e04a2,0x0c73cd35,0x0c6d7487,0x0c4ced5a,0x2c0236f6,0x0eaeb342,0x076b3857,0x18aa42a9,0x13a78cea,0x0a50d2a6,0x04fa51a1,0x2c11a4a3,0x1155e9a2,0x07a16c42,0x13b0d2a2,0x189949a6,0x0799a0a8,0x079249a2,0x16305fa5,0x13b0d485,0x1147a2a1,0x0c83d044,0x2c11a6d3,0x11a49c85,0x0518cb42,0x0edd7993,0x11a3d2f9,0x2c098b32,0x052a12a4,0x04f98962,0x0509f1a6,0x0a0302a4,0x078a2da2,0x0ede72a9,0x0c739b81,0x0f32d342,0x075b52a2,0x0ee531d7,0x077402a9,0x0511ab21,0x0f330542,0x18729b32,0x0528b724,0x076a8ea4,0x056ed4d5,0x027968d1,0x2c09bc91,0x113e60a5,0x0789e526,0x11a41e97,0x0c833962,0x04eab1f5,0x0512a2a6,0x18b8a026,0x18f71eea,0x075aeea5,0x053102e7,0x11a404a8,0x189977f2,0x09dba344,0x13d7e344,0x075bcc42,0x0509a7e4,0x11a468a7,0x1685ebf4,0x11465f42,0x13a06be6,0x05303ea5,0x0789cc24,0x07e09be8,0x02a0db02,0x077a8ee9,0x0c5ca702,0x078a6041,0x1070202a,0x70a7a6f0,0x54f27128,0xa3ca5608,0x6555360d,0x2d342342,0x83549021,0x7e36e1cd,0x6cfe84e5,0xa7d1a0d5,0x88224d36,0x7dc4f299,0xab0d8f77,0xae9e5944,0x02b5633d,0x9ba00695,0x0c7972d2,0x0671c8bd,0xafe6bc7d,0xb1fb1004,0x065288ef,0x04f10aa9,0x748fba8b,0x66348e98,0x94c622e2,0xad0eb578,0xaa47b755,0x092eb1bc,0x94880007,0x0516d142,0x7e49a43a,0x2556c6cf,0x91522795,0x15634bf9,0x1123cf4f,0x5ec5e876,0xa2b20e75,0x915284b6,0x7dca59c3,0x6632f6cd,0xb9081183,0x21fd79d1,0x7e4d92eb,0x5465f1c7,0x94882f25,0x9b9f5021,0xaa1900f7,0x7d2892f8,0x347d8951,0x21c78c1b,0x837db3f6,0x94a6f72b,0x839828f3,0x8f3532fb,0x4626dc20,};const uint R[]={0,234663,68679,2265159,3280003,5348,7376003,1088679,233604,7641382,6600966,2234534,34023,6182,8665390,6601774,4267074,301257,134,14719239,1088809,6210,337920,4262980,5286,7642145,133250,6587686,14726446,7642409,15255086,2270697,18732593,11512810,3312673,12923174,11953,5282,72774,8661474,7465,1049633,33826,9741606,567426,128,206118,131200,14815374,32641156,18470705,131204,15768623,18157905,3319079,18393220,31,18400580,2240642,4261956,4464900,1082415,15994959,459200,4198566,3179555,3213379,332096,145536,7168,2236546,72955190,4260932,9570592,244584452,266305};float2 p=U.u*65;uint c,i,Y,X=p.x;Y=p.y;i=X+(64-Y)*65;if(i>446&&i<3307){c=(i-447)%11;c=c<2?(c<<4)+1:c==10?18:(t[(i-447)/11]>>((7-((c-2)&7))*4)&15)+1;}else{i-=(i>447)*2860;c=t[i/5];for(i%=5;i<4;i++)c/=80;c%=80;}Y=(p.y-Y)*6;X=(p.x-X)*6;return R[c]>>(X+Y*5)&1*(X<5);}ENDCG}}}

View file

@ -1,5 +1,5 @@
const uint t[]={0x2f00576f,0x33f2c1f7,0x2f1fb204,0x1b49dda7,0x3d618237,0x42c83a2e,0x4541a121,0x53a72e14,0x1adea1c5,0x5d3cd90b,0x603c289b,0x568d5310,0x339e664f,0x62d0e527,0x51d53c3a,0x3b06de0b,0x62ec13db,0x45bce019,0x620fc24a,0x5d6c6c36,0x00f4742a,0x70a7a790,0x5bc6aa73,0x76b38992,0x7d04286b,0x5cdd77af,0x793c758e,0x4a25d683,0x6a865f87,0x8a7a6d41,0x80979732,0x3e5dcab0,0x7aab42e2,0x4386c736,0x8f2b05f5,0x3b014639,0x38a8286b,0x5cdd77af,0x793c758e,0x4a25d683,0x285ca196,0x0c38abc3,0x8ce0fa73,0x76b38992,0x7dd7e131,0x8802215d,0x793c7e9e,0x6a7c4ea1,0x8951495d,0x7fe41a29,0x005bbcb0,0x5c2c10d0,0x71e0b2d0,0x79542e24,0x78f372b0,0x7aab42e2,0x4386c736,0x9131fc1b,0x7b8dda68,0x76bb5f80,0x4d905394,0x89a6a269,0x6a7fa4e2,0x7227c8a2,0x76b440b0,0x7b8dd81f,0x966a1e78,0x8cc22484,0x831d7ba1,0x3e5dca93,0x793a255e,0x91784c1e,0x6f044498,0x6546356c,0x9cb68111,0x712516f2,0x3e72fc95,0x6f03fc1e,0x6e9eb2bd,0x3c2881d6,0x3b3ff82e,0x7e49bd4e,0x1c044410,0x91c85dac,0x735912b1,0x1b827fd6,0x39590388,0x40a2e7a9,0x62d0ec21,0xa3108153,0x5fa11a9a,0x5cc864f8,0x5cc8e992,0x9a82cea3,0x09ebc134,0x2c299338,0x18f6ebf7,0x0eb63932,0x09dc5151,0x029203e4,0x0c7d1484,0x13bec954,0x2c01bbd9,0x11567fa3,0x09e3ef55,0x2c313092,0x0a0aa0a7,0x111eec27,0x11a3ebf4,0x0c6445a2,0x09eb29f4,0x2c28e4d3,0x2c390136,0x0a123ea7,0x111f0488,0x0cc21df7,0x139099a2,0x09cc02f6,0x1414d345,0x2c021f82,0x1881d732,0x04eab3d9,0x02c0e433,0x04eb9344,0x13d66b62,0x0c4d1ffa,0x160293e3,0x16317487,0x0c4ca396,0x2c020543,0x0eaf9436,0x163831d7,0x2c021f83,0x113e8f42,0x13bf2df5,0x02c0e2a6,0x07827659,0x11a3ebf8,0x02a8ac92,0x05291943,0x0ef489a2,0x051112f9,0x04eb9344,0x04fa2184,0x2c01ee23,0x09d469a2,0x04f29be4,0x2c212dd3,0x2c30cd88,0x0cc28337,0x0509d9a2,0x13afc0f2,0x04ea5027,0x09e50344,0x161124aa,0x13af4431,0x11a43838,0x0c4d24a2,0x079b12f1,0x1126d4e2,0x050172f1,0x02fdd399,0x05114685,0x2c118d35,0x04f23842,0x0528cf81,0x13906ba2,0x09d3eb55,0x2c023887,0x162ffc52,0x052883e8,0x18726ba4,0x09d49a58,0x18f6d4d4,0x18898bf1,0x2c1177a2,0x16202956,0x160292f3,0x0c3d8093,0x2c195d32,0x189994a5,0x0c6c3021,0x02fdd259,0x077a43f2,0x0511dd25,0x1899dfa5,0x0ef46b51,0x2c194529,0x0edd64a4,0x05217be6,0x0f3304f2,0x09e40b32,0x09e38b5a,0x11a3d396,0x0ec5f4a8,0x051996a3,0x0772f0e5,0x11a468fa,0x0ed51521,0x2c195d31,0x188990aa,0x0ee49aea,0x07dfec95,0x0eecce96,0x07dfed37,0x09cc7853,0x5fb8286b,0x5cdd7adf,0x6a5cfcf7,0x1036d4f8,0x5cc731ad,0x2d342342,0x83549021,0x7e36e1cd,0x6cfe84e5,0xa7d1a0d5,0x88224d36,0x7ce6e895,0x178b4be0,0x915239bc,0xaf85c784,0x09e36bd7,0x5fa2c999,0xa8d8b2d2,0x0671c8bd,0xafe6bc7d,0xb1fb1004,0x065288ef,0x04f10aa9,0x748fba8b,0x66354f0b,0x04f82826,0x91d8cdcb,0x90774e2c,0xad9b6f03,0x0e10afa6,0x948f8217,0x8e13522f,0x396e20eb,0x663d1f03,0x079a3223,0x5fa2c321,0x66639ad3,0x28797f99,0xb425d619,0xaff41814,0xa7da1caf,0x1605cf59,0x9a15792a,0x60eae992,0x6f3b8e6c,0xa3cebbcf,0x91190a95,0x83404d63,0x33bded95,0x61aae95d,0xa34bc8a5,0xa7b83d1c,0xad6d3da5,0xaffccc2a,0x807fee8c,0x8f64ca00,};
b=448;
uint magic_number_L_plus_b= 3330;
uint magic_number_L= 2882;
const uint t[]={0x2f00576f,0x33f2c1f7,0x2f1fb204,0x1b49dda7,0x3d618237,0x42c83a2e,0x4541a121,0x53a72e14,0x1adea1c5,0x5d3cd90b,0x603c289b,0x568d5310,0x339e664f,0x62d0e527,0x51d53c3a,0x3b06de0b,0x62ec13db,0x45bce019,0x620fc24a,0x5d6c6c36,0x00f4742a,0x70a7a790,0x5bc6aa73,0x76b38992,0x7d04286b,0x5cdd77af,0x793c758e,0x4a25d683,0x6a865f87,0x8a7a6d41,0x80979732,0x3e5dcab0,0x7aab42e2,0x4386c736,0x8f2b05f5,0x3b014639,0x38a8286b,0x5cdd77af,0x793c758e,0x4a25d683,0x285ca196,0x0c38abc3,0x8ce0fa73,0x76b38992,0x7dd7e131,0x8802215d,0x793c7e9e,0x6a7c4ea1,0x8951495d,0x7fe41a29,0x005bbcb0,0x5c2c10d0,0x71e0b2d0,0x79542e24,0x78f372b0,0x7aab42e2,0x4386c736,0x9131fc1b,0x7b8dda68,0x76bb5f80,0x4d905394,0x89a6a269,0x6a7fa4e2,0x7227c8a2,0x76b440b0,0x7b8dd81f,0x966a1e78,0x8cc22484,0x831d7ba1,0x3e5dca93,0x793a255e,0x91784c1e,0x6f044498,0x6546356c,0x9cb68111,0x712516f2,0x3e72fc95,0x6f03fc1e,0x6e9eb2bd,0x3c2881d6,0x3b3ff82e,0x7e49bd4e,0x1c044410,0x91c85dac,0x735912b1,0x1b827fd6,0x38911a9a,0x5cc864f8,0x5cc9ca92,0x9a8869fd,0x718915e0,0x3bdc43e0,0x48cf55c7,0x02fdec45,0x114e19a7,0x16307b32,0x076b20e2,0x0ef5e343,0x1600e954,0x2c214599,0x2c30e687,0x027939a2,0x02b83338,0x18f6ec44,0x111f52a8,0x113e4349,0x07e05131,0x02bfd142,0x076ad596,0x09ecd345,0x0288d9a7,0x0528a0a9,0x114e474a,0x02fe5131,0x052149a2,0x0c4d2181,0x13b0d341,0x04fa0892,0x0501c2a2,0x0c73b523,0x0a13e2a1,0x1640315a,0x2c28fba1,0x2c11a68a,0x075c9393,0x112f6cd1,0x2c212dd7,0x2c313093,0x0509aba2,0x09e38ce1,0x2c2948d8,0x115e04a2,0x0c73cd35,0x0c6d7487,0x0c4ced5a,0x2c0236f6,0x0eaeb342,0x076b3857,0x18aa42a9,0x13a78cea,0x0a50d2a6,0x04fa51a1,0x2c11a4a3,0x1155e9a2,0x07a16c42,0x13b0d2a2,0x189949a6,0x0799a0a8,0x079249a2,0x16305fa5,0x13b0d485,0x1147a2a1,0x0c83d044,0x2c11a6d3,0x11a49c85,0x0518cb42,0x0edd7993,0x11a3d2f9,0x2c098b32,0x052a12a4,0x04f98962,0x0509f1a6,0x0a0302a4,0x078a2da2,0x0ede72a9,0x0c739b81,0x0f32d342,0x075b52a2,0x0ee531d7,0x077402a9,0x0511ab21,0x0f330542,0x18729b32,0x0528b724,0x076a8ea4,0x056ed4d5,0x027968d1,0x2c09bc91,0x113e60a5,0x0789e526,0x11a41e97,0x0c833962,0x04eab1f5,0x0512a2a6,0x18b8a026,0x18f71eea,0x075aeea5,0x053102e7,0x11a404a8,0x189977f2,0x09dba344,0x13d7e344,0x075bcc42,0x0509a7e4,0x11a468a7,0x1685ebf4,0x11465f42,0x13a06be6,0x05303ea5,0x0789cc24,0x07e09be8,0x02a0db02,0x077a8ee9,0x0c5ca702,0x078a6041,0x1070202a,0x70a7a6f0,0x54f27128,0xa3ca5608,0x6555360d,0x2d342342,0x83549021,0x7e36e1cd,0x6cfe84e5,0xa7d1a0d5,0x88224d36,0x7dc4f299,0xab0d8f77,0xae9e5944,0x02b5633d,0x9ba00695,0x0c7972d2,0x0671c8bd,0xafe6bc7d,0xb1fb1004,0x065288ef,0x04f10aa9,0x748fba8b,0x66348e98,0x94c622e2,0xad0eb578,0xaa47b755,0x092eb1bc,0x94880007,0x0516d142,0x7e49a43a,0x2556c6cf,0x91522795,0x15634bf9,0x1123cf4f,0x5ec5e876,0xa2b20e75,0x915284b6,0x7dca59c3,0x6632f6cd,0xb9081183,0x21fd79d1,0x7e4d92eb,0x5465f1c7,0x94882f25,0x9b9f5021,0xaa1900f7,0x7d2892f8,0x347d8951,0x21c78c1b,0x837db3f6,0x94a6f72b,0x839828f3,0x8f3532fb,0x4626dc20,};
b=447;
uint magic_number_L_plus_b= 3307;
uint magic_number_L= 2860;
const uint R[]={0,234663,68679,2265159,3280003,5348,7376003,1088679,233604,7641382,6600966,2234534,34023,6182,8665390,6601774,4267074,301257,134,14719239,1088809,6210,337920,4262980,5286,7642145,133250,6587686,14726446,7642409,15255086,2270697,18732593,11512810,3312673,12923174,11953,5282,72774,8661474,7465,1049633,33826,9741606,567426,128,206118,131200,14815374,32641156,18470705,131204,15768623,18157905,3319079,18393220,31,18400580,2240642,4261956,4464900,1082415,15994959,459200,4198566,3179555,3213379,332096,145536,7168,2236546,72955190,4260932,9570592,244584452,266305};