--- c:\mingw\msys\1.0\home\root\double\double\double.cpp -----------------------
0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x1fedb1530240aa54,
00000000 push ebp
00000001 mov ebp,esp
00000003 sub esp,0B0h
00000009 mov dword ptr [ebp-4],0D1495856h
00000010 mov dword ptr [ebp+FFFFFF78h],ecx
00000016 cmp dword ptr ds:[00403180h],0
0000001d je 00000024
0000001f call 5BB976E5
00000024 xor edx,edx
00000026 mov dword ptr [ebp+FFFFFF74h],edx
0000002c fldz
0000002e fstp qword ptr [ebp+FFFFFF64h]
00000034 xor eax,eax
00000036 cdq
00000037 mov dword ptr [ebp+FFFFFF7Ch],eax
0000003d mov dword ptr [ebp-80h],edx
00000040 xor eax,eax
00000042 cdq
00000043 lea ecx,[ebp+FFFFFF7Ch]
00000049 mov dword ptr [ecx+8],eax
0000004c mov dword ptr [ecx+0Ch],edx
0000004f xor eax,eax
00000051 cdq
00000052 lea ecx,[ebp+FFFFFF7Ch]
00000058 mov dword ptr [ecx+10h],eax
0000005b mov dword ptr [ecx+14h],edx
0000005e lea eax,[ebp+FFFFFF7Ch]
00000064 mov dword ptr [eax+18h],240AA54h
0000006b mov dword ptr [eax+1Ch],1FEDB153h
0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x1ff0af0d95025bc3,
00000072 xor eax,eax
00000074 cdq
00000075 lea ecx,[ebp+FFFFFF7Ch]
0000007b mov dword ptr [ecx+20h],eax
0000007e mov dword ptr [ecx+24h],edx
00000081 xor eax,eax
00000083 cdq
00000084 lea ecx,[ebp+FFFFFF7Ch]
0000008a mov dword ptr [ecx+28h],eax
0000008d mov dword ptr [ecx+2Ch],edx
00000090 xor eax,eax
00000092 cdq
00000093 lea ecx,[ebp+FFFFFF7Ch]
00000099 mov dword ptr [ecx+30h],eax
0000009c mov dword ptr [ecx+34h],edx
0000009f lea eax,[ebp+FFFFFF7Ch]
000000a5 mov dword ptr [eax+38h],95025BC3h
000000ac mov dword ptr [eax+3Ch],1FF0AF0Dh
0x1fc9353df6af376b, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
000000b3 lea eax,[ebp+FFFFFF7Ch]
000000b9 mov dword ptr [eax+40h],0F6AF376Bh
000000c0 mov dword ptr [eax+44h],1FC9353Dh
000000c7 xor eax,eax
000000c9 cdq
000000ca lea ecx,[ebp+FFFFFF7Ch]
000000d0 mov dword ptr [ecx+48h],eax
000000d3 mov dword ptr [ecx+4Ch],edx
000000d6 xor eax,eax
000000d8 cdq
000000d9 lea ecx,[ebp+FFFFFF7Ch]
000000df mov dword ptr [ecx+50h],eax
000000e2 mov dword ptr [ecx+54h],edx
000000e5 xor eax,eax
000000e7 cdq
000000e8 lea ecx,[ebp+FFFFFF7Ch]
000000ee mov dword ptr [ecx+58h],eax
000000f1 mov dword ptr [ecx+5Ch],edx
0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000
000000f4 xor eax,eax
000000f6 cdq
000000f7 lea ecx,[ebp+FFFFFF7Ch]
000000fd mov dword ptr [ecx+60h],eax
00000100 mov dword ptr [ecx+64h],edx
00000103 xor eax,eax
00000105 cdq
00000106 lea ecx,[ebp+FFFFFF7Ch]
0000010c mov dword ptr [ecx+68h],eax
0000010f mov dword ptr [ecx+6Ch],edx
00000112 xor eax,eax
00000114 cdq
00000115 lea ecx,[ebp+FFFFFF7Ch]
0000011b mov dword ptr [ecx+70h],eax
0000011e mov dword ptr [ecx+74h],edx
};
00000121 xor eax,eax
00000123 cdq
00000124 lea ecx,[ebp+FFFFFF7Ch]
0000012a mov dword ptr [ecx+78h],eax
0000012d mov dword ptr [ecx+7Ch],edx
double* r = (double*)inputs_hex;
double norm = 0;
00000130 fldz
00000132 fstp qword ptr [ebp+FFFFFF6Ch]
for (int i = 0; i < 16; i++) {
00000138 xor edx,edx
0000013a mov dword ptr [ebp+FFFFFF74h],edx
norm += (double)r[i] * (double)r[i];
00000140 mov eax,dword ptr [ebp+FFFFFF74h]
00000146 lea edx,[ebp+FFFFFF7Ch]
0000014c fld qword ptr [edx+eax*8]
0000014f fstp qword ptr [ebp+FFFFFF64h]
00000155 fld qword ptr [ebp+FFFFFF64h]
0000015b fmul st,st(0)
0000015d fadd qword ptr [ebp+FFFFFF6Ch]
00000163 fstp qword ptr [ebp+FFFFFF6Ch]
fprintf(stdout, "[1]0x%016llX:%.19lg\n", *(uint64_t*)&norm, norm);
00000169 call FF89A5C8
0000016e mov dword ptr [ebp+FFFFFF5Ch],eax
00000174 mov eax,dword ptr [ebp+FFFFFF5Ch]
0000017a add eax,20h
0000017d push eax
0000017e push 0F43158h
00000183 push dword ptr [ebp+FFFFFF70h]
00000189 push dword ptr [ebp+FFFFFF6Ch]
0000018f fld qword ptr [ebp+FFFFFF6Ch]
00000195 sub esp,8
00000198 fstp qword ptr [esp]
0000019b push 541CF8h
000001a0 call FF89A5D4
000001a5 add esp,1Ch
000001a8 mov dword ptr [ebp+FFFFFF58h],eax
000001ae nop
for (int i = 0; i < 16; i++) {
000001af inc dword ptr [ebp+FFFFFF74h]
000001b5 cmp dword ptr [ebp+FFFFFF74h],10h
000001bc jl 00000140
}
fprintf(stdout, "0x%016llX:%.19lg\n", *(uint64_t*)&norm, norm);
000001be call FF89A5C8
000001c3 mov dword ptr [ebp+FFFFFF54h],eax
000001c9 mov eax,dword ptr [ebp+FFFFFF54h]
000001cf add eax,20h
000001d2 push eax
000001d3 push 0F43144h
000001d8 push dword ptr [ebp+FFFFFF70h]
000001de push dword ptr [ebp+FFFFFF6Ch]
000001e4 fld qword ptr [ebp+FFFFFF6Ch]
000001ea sub esp,8
000001ed fstp qword ptr [esp]
000001f0 push 541CF8h
000001f5 call FF89A5D4
000001fa add esp,1Ch
000001fd mov dword ptr [ebp+FFFFFF50h],eax
00000203 nop
return 0;
00000204 xor eax,eax
00000206 cmp dword ptr [ebp-4],0D1495856h
0000020d je 00000214
0000020f call 5BB96E46
00000214 mov esp,ebp
00000216 pop ebp
00000217 ret
LS0tIGM6XG1pbmd3XG1zeXNcMS4wXGhvbWVccm9vdFxkb3VibGVcZG91YmxlXGRvdWJsZS5jcHAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCQkweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwMDAwMDAwMDAwLCAweDFmZWRiMTUzMDI0MGFhNTQsCjAwMDAwMDAwICBwdXNoICAgICAgICBlYnAgCjAwMDAwMDAxICBtb3YgICAgICAgICBlYnAsZXNwIAowMDAwMDAwMyAgc3ViICAgICAgICAgZXNwLDBCMGggCjAwMDAwMDA5ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VicC00XSwwRDE0OTU4NTZoIAowMDAwMDAxMCAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlYnArRkZGRkZGNzhoXSxlY3ggCjAwMDAwMDE2ICBjbXAgICAgICAgICBkd29yZCBwdHIgZHM6WzAwNDAzMTgwaF0sMCAKMDAwMDAwMWQgIGplICAgICAgICAgIDAwMDAwMDI0IAowMDAwMDAxZiAgY2FsbCAgICAgICAgNUJCOTc2RTUgCjAwMDAwMDI0ICB4b3IgICAgICAgICBlZHgsZWR4IAowMDAwMDAyNiAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlYnArRkZGRkZGNzRoXSxlZHggCjAwMDAwMDJjICBmbGR6IAowMDAwMDAyZSAgZnN0cCAgICAgICAgcXdvcmQgcHRyIFtlYnArRkZGRkZGNjRoXSAKMDAwMDAwMzQgIHhvciAgICAgICAgIGVheCxlYXggCjAwMDAwMDM2ICBjZHEgCjAwMDAwMDM3ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY3Q2hdLGVheCAKMDAwMDAwM2QgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWJwLTgwaF0sZWR4IAowMDAwMDA0MCAgeG9yICAgICAgICAgZWF4LGVheCAKMDAwMDAwNDIgIGNkcSAKMDAwMDAwNDMgIGxlYSAgICAgICAgIGVjeCxbZWJwK0ZGRkZGRjdDaF0gCjAwMDAwMDQ5ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCs4XSxlYXggCjAwMDAwMDRjICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCswQ2hdLGVkeCAKMDAwMDAwNGYgIHhvciAgICAgICAgIGVheCxlYXggCjAwMDAwMDUxICBjZHEgCjAwMDAwMDUyICBsZWEgICAgICAgICBlY3gsW2VicCtGRkZGRkY3Q2hdIAowMDAwMDA1OCAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlY3grMTBoXSxlYXggCjAwMDAwMDViICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCsxNGhdLGVkeCAKMDAwMDAwNWUgIGxlYSAgICAgICAgIGVheCxbZWJwK0ZGRkZGRjdDaF0gCjAwMDAwMDY0ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VheCsxOGhdLDI0MEFBNTRoIAowMDAwMDA2YiAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlYXgrMUNoXSwxRkVEQjE1M2ggCgkJMHgwMDAwMDAwMDAwMDAwMDAwLCAweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDAwMDAwMDAwMCwgMHgxZmYwYWYwZDk1MDI1YmMzLAowMDAwMDA3MiAgeG9yICAgICAgICAgZWF4LGVheCAKMDAwMDAwNzQgIGNkcSAKMDAwMDAwNzUgIGxlYSAgICAgICAgIGVjeCxbZWJwK0ZGRkZGRjdDaF0gCjAwMDAwMDdiICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCsyMGhdLGVheCAKMDAwMDAwN2UgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWN4KzI0aF0sZWR4IAowMDAwMDA4MSAgeG9yICAgICAgICAgZWF4LGVheCAKMDAwMDAwODMgIGNkcSAKMDAwMDAwODQgIGxlYSAgICAgICAgIGVjeCxbZWJwK0ZGRkZGRjdDaF0gCjAwMDAwMDhhICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCsyOGhdLGVheCAKMDAwMDAwOGQgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWN4KzJDaF0sZWR4IAowMDAwMDA5MCAgeG9yICAgICAgICAgZWF4LGVheCAKMDAwMDAwOTIgIGNkcSAKMDAwMDAwOTMgIGxlYSAgICAgICAgIGVjeCxbZWJwK0ZGRkZGRjdDaF0gCjAwMDAwMDk5ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCszMGhdLGVheCAKMDAwMDAwOWMgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWN4KzM0aF0sZWR4IAowMDAwMDA5ZiAgbGVhICAgICAgICAgZWF4LFtlYnArRkZGRkZGN0NoXSAKMDAwMDAwYTUgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWF4KzM4aF0sOTUwMjVCQzNoIAowMDAwMDBhYyAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlYXgrM0NoXSwxRkYwQUYwRGggCgkJMHgxZmM5MzUzZGY2YWYzNzZiLCAweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwMDAwMDAwMDAwLAowMDAwMDBiMyAgbGVhICAgICAgICAgZWF4LFtlYnArRkZGRkZGN0NoXSAKMDAwMDAwYjkgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWF4KzQwaF0sMEY2QUYzNzZCaCAKMDAwMDAwYzAgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWF4KzQ0aF0sMUZDOTM1M0RoIAowMDAwMDBjNyAgeG9yICAgICAgICAgZWF4LGVheCAKMDAwMDAwYzkgIGNkcSAKMDAwMDAwY2EgIGxlYSAgICAgICAgIGVjeCxbZWJwK0ZGRkZGRjdDaF0gCjAwMDAwMGQwICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCs0OGhdLGVheCAKMDAwMDAwZDMgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWN4KzRDaF0sZWR4IAowMDAwMDBkNiAgeG9yICAgICAgICAgZWF4LGVheCAKMDAwMDAwZDggIGNkcSAKMDAwMDAwZDkgIGxlYSAgICAgICAgIGVjeCxbZWJwK0ZGRkZGRjdDaF0gCjAwMDAwMGRmICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCs1MGhdLGVheCAKMDAwMDAwZTIgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWN4KzU0aF0sZWR4IAowMDAwMDBlNSAgeG9yICAgICAgICAgZWF4LGVheCAKMDAwMDAwZTcgIGNkcSAKMDAwMDAwZTggIGxlYSAgICAgICAgIGVjeCxbZWJwK0ZGRkZGRjdDaF0gCjAwMDAwMGVlICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCs1OGhdLGVheCAKMDAwMDAwZjEgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWN4KzVDaF0sZWR4IAoJCTB4MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwMDAwMDAwMDAwLCAweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDAwMDAwMDAwMAowMDAwMDBmNCAgeG9yICAgICAgICAgZWF4LGVheCAKMDAwMDAwZjYgIGNkcSAKMDAwMDAwZjcgIGxlYSAgICAgICAgIGVjeCxbZWJwK0ZGRkZGRjdDaF0gCjAwMDAwMGZkICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCs2MGhdLGVheCAKMDAwMDAxMDAgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWN4KzY0aF0sZWR4IAowMDAwMDEwMyAgeG9yICAgICAgICAgZWF4LGVheCAKMDAwMDAxMDUgIGNkcSAKMDAwMDAxMDYgIGxlYSAgICAgICAgIGVjeCxbZWJwK0ZGRkZGRjdDaF0gCjAwMDAwMTBjICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCs2OGhdLGVheCAKMDAwMDAxMGYgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWN4KzZDaF0sZWR4IAowMDAwMDExMiAgeG9yICAgICAgICAgZWF4LGVheCAKMDAwMDAxMTQgIGNkcSAKMDAwMDAxMTUgIGxlYSAgICAgICAgIGVjeCxbZWJwK0ZGRkZGRjdDaF0gCjAwMDAwMTFiICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCs3MGhdLGVheCAKMDAwMDAxMWUgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWN4Kzc0aF0sZWR4IAoJfTsKMDAwMDAxMjEgIHhvciAgICAgICAgIGVheCxlYXggCjAwMDAwMTIzICBjZHEgCjAwMDAwMTI0ICBsZWEgICAgICAgICBlY3gsW2VicCtGRkZGRkY3Q2hdIAowMDAwMDEyYSAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlY3grNzhoXSxlYXggCjAwMDAwMTJkICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCs3Q2hdLGVkeCAKCWRvdWJsZSogciA9IChkb3VibGUqKWlucHV0c19oZXg7Cglkb3VibGUgbm9ybSA9IDA7CjAwMDAwMTMwICBmbGR6IAowMDAwMDEzMiAgZnN0cCAgICAgICAgcXdvcmQgcHRyIFtlYnArRkZGRkZGNkNoXSAKCglmb3IgKGludCBpID0gMDsgaSA8IDE2OyBpKyspIHsKMDAwMDAxMzggIHhvciAgICAgICAgIGVkeCxlZHggCjAwMDAwMTNhICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY3NGhdLGVkeCAKCQlub3JtICs9IChkb3VibGUpcltpXSAqIChkb3VibGUpcltpXTsKMDAwMDAxNDAgIG1vdiAgICAgICAgIGVheCxkd29yZCBwdHIgW2VicCtGRkZGRkY3NGhdIAowMDAwMDE0NiAgbGVhICAgICAgICAgZWR4LFtlYnArRkZGRkZGN0NoXSAKMDAwMDAxNGMgIGZsZCAgICAgICAgIHF3b3JkIHB0ciBbZWR4K2VheCo4XSAKMDAwMDAxNGYgIGZzdHAgICAgICAgIHF3b3JkIHB0ciBbZWJwK0ZGRkZGRjY0aF0gCjAwMDAwMTU1ICBmbGQgICAgICAgICBxd29yZCBwdHIgW2VicCtGRkZGRkY2NGhdIAowMDAwMDE1YiAgZm11bCAgICAgICAgc3Qsc3QoMCkgCjAwMDAwMTVkICBmYWRkICAgICAgICBxd29yZCBwdHIgW2VicCtGRkZGRkY2Q2hdIAowMDAwMDE2MyAgZnN0cCAgICAgICAgcXdvcmQgcHRyIFtlYnArRkZGRkZGNkNoXSAKCQlmcHJpbnRmKHN0ZG91dCwgIlsxXTB4JTAxNmxsWDolLjE5bGdcbiIsICoodWludDY0X3QqKSZub3JtLCBub3JtKTsKMDAwMDAxNjkgIGNhbGwgICAgICAgIEZGODlBNUM4IAowMDAwMDE2ZSAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlYnArRkZGRkZGNUNoXSxlYXggCjAwMDAwMTc0ICBtb3YgICAgICAgICBlYXgsZHdvcmQgcHRyIFtlYnArRkZGRkZGNUNoXSAKMDAwMDAxN2EgIGFkZCAgICAgICAgIGVheCwyMGggCjAwMDAwMTdkICBwdXNoICAgICAgICBlYXggCjAwMDAwMTdlICBwdXNoICAgICAgICAwRjQzMTU4aCAKMDAwMDAxODMgIHB1c2ggICAgICAgIGR3b3JkIHB0ciBbZWJwK0ZGRkZGRjcwaF0gCjAwMDAwMTg5ICBwdXNoICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY2Q2hdIAowMDAwMDE4ZiAgZmxkICAgICAgICAgcXdvcmQgcHRyIFtlYnArRkZGRkZGNkNoXSAKMDAwMDAxOTUgIHN1YiAgICAgICAgIGVzcCw4IAowMDAwMDE5OCAgZnN0cCAgICAgICAgcXdvcmQgcHRyIFtlc3BdIAowMDAwMDE5YiAgcHVzaCAgICAgICAgNTQxQ0Y4aCAKMDAwMDAxYTAgIGNhbGwgICAgICAgIEZGODlBNUQ0IAowMDAwMDFhNSAgYWRkICAgICAgICAgZXNwLDFDaCAKMDAwMDAxYTggIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWJwK0ZGRkZGRjU4aF0sZWF4IAowMDAwMDFhZSAgbm9wIAoJZm9yIChpbnQgaSA9IDA7IGkgPCAxNjsgaSsrKSB7CjAwMDAwMWFmICBpbmMgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY3NGhdIAowMDAwMDFiNSAgY21wICAgICAgICAgZHdvcmQgcHRyIFtlYnArRkZGRkZGNzRoXSwxMGggCjAwMDAwMWJjICBqbCAgICAgICAgICAwMDAwMDE0MCAKCX0KCWZwcmludGYoc3Rkb3V0LCAiMHglMDE2bGxYOiUuMTlsZ1xuIiwgKih1aW50NjRfdCopJm5vcm0sIG5vcm0pOwowMDAwMDFiZSAgY2FsbCAgICAgICAgRkY4OUE1QzggCjAwMDAwMWMzICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY1NGhdLGVheCAKMDAwMDAxYzkgIG1vdiAgICAgICAgIGVheCxkd29yZCBwdHIgW2VicCtGRkZGRkY1NGhdIAowMDAwMDFjZiAgYWRkICAgICAgICAgZWF4LDIwaCAKMDAwMDAxZDIgIHB1c2ggICAgICAgIGVheCAKMDAwMDAxZDMgIHB1c2ggICAgICAgIDBGNDMxNDRoIAowMDAwMDFkOCAgcHVzaCAgICAgICAgZHdvcmQgcHRyIFtlYnArRkZGRkZGNzBoXSAKMDAwMDAxZGUgIHB1c2ggICAgICAgIGR3b3JkIHB0ciBbZWJwK0ZGRkZGRjZDaF0gCjAwMDAwMWU0ICBmbGQgICAgICAgICBxd29yZCBwdHIgW2VicCtGRkZGRkY2Q2hdIAowMDAwMDFlYSAgc3ViICAgICAgICAgZXNwLDggCjAwMDAwMWVkICBmc3RwICAgICAgICBxd29yZCBwdHIgW2VzcF0gCjAwMDAwMWYwICBwdXNoICAgICAgICA1NDFDRjhoIAowMDAwMDFmNSAgY2FsbCAgICAgICAgRkY4OUE1RDQgCjAwMDAwMWZhICBhZGQgICAgICAgICBlc3AsMUNoIAowMDAwMDFmZCAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlYnArRkZGRkZGNTBoXSxlYXggCjAwMDAwMjAzICBub3AgCglyZXR1cm4gMDsKMDAwMDAyMDQgIHhvciAgICAgICAgIGVheCxlYXggCjAwMDAwMjA2ICBjbXAgICAgICAgICBkd29yZCBwdHIgW2VicC00XSwwRDE0OTU4NTZoIAowMDAwMDIwZCAgamUgICAgICAgICAgMDAwMDAyMTQgCjAwMDAwMjBmICBjYWxsICAgICAgICA1QkI5NkU0NiAKMDAwMDAyMTQgIG1vdiAgICAgICAgIGVzcCxlYnAgCjAwMDAwMjE2ICBwb3AgICAgICAgICBlYnAgCjAwMDAwMjE3ICByZXQg