This page has been machine-translated from the original page.
As with last year, I participated in Iris CTF as my first CTF of the new year.
I did not participate for the full event, but I wrote a brief writeup for a few of the challenges I solved.
Table of Contents
- Now this will run on my 486?(Rev)
- deldeldel(Forensic)
- No Shark?(Network)
- Not Eelaborate(OSINT)
- Summary
Now this will run on my 486?(Rev)
It’s the future, which means tons of new CPU extensions! Unfortunately, we’re using such bleeding edge technology that your computer probably doesn’t support it.
Thankfully, with our proprietary JIT compiler, you can run it even on your 486!
Analyzing the program provided with the challenge shows that it first registers sig4_func with sigaction as the handler for SIGILL (an illegal instruction not supported by the processor).
int64_t (* act)(int64_t arg1, int64_t siginfo, void* arg3) = sig4_func
sigaction(sig: 4, &act, oact: nullptr)After that, it allocates a 0x378-byte memory region, writes a hardcoded byte sequence into it, marks that region executable, and tries to run it.
However, the byte sequence written here does not satisfy the execution requirements for x86-64, so SIGILL is raised.
rdi, rsi_1 = __builtin_memcpy(dest: &var_398, src: &ex_data, n: 0x378)
*rdi = *rsi_1
data_size = 0x379
// 3 = PROT_READ | PROT_WRITE
// 22h = MAP_PRIVATE | MAP_ANONYMOUS
int64_t rax_2 = mmap(addr: nullptr, len: 0x379, prot: 3, flags: 0x22, fd: 0xffffffff, offset: 0)
mem_data = rax_2
int32_t result = 1
if (rax_2 != -1)
int64_t rax_3 = mmap(addr: nullptr, len: data_555555558010, prot: 3, flags: 0x22, fd: 0xffffffff, offset: 0)
data_555555558020 = rax_3
if (rax_3 != -1)
memcpy(mem_data, &var_398, data_size)
// Change protect into 5 = RX
if (mprotect(mem_data, data_size, 5) == 0xffffffff)
result = 1
else if (mprotect(data_555555558020, data_555555558010, 3) == 0xffffffff)
result = 1
else
int32_t result_1 = mem_data(0, 0, 0, 0, data_555555558020)
result = result_1
if (result_1 != 0)
__printf_chk(flag: 1, format: "Program returned "incorrect" (%d…", zx.q(result_1))
else
puts(str: "Program returned "correct"!")
munmap(mem_data, data_size)
munmap(data_555555558020, data_555555558010)
if (rax == *(fsbase + 0x28))
return resultWhen SIGILL is raised, the sig4_func handler registered with sigaction is called.
Here, it appears to analyze the byte data written to that memory region and replace it with different data.
Looking at this hardcoded memory data, we can see that it starts with 0x17.
So, as a first step, I rewrote the part that handles 0x17 in Python.
stack = bytearray()
for num in data:
stack.extend(num.to_bytes(1, 'little'))
i = 0
op = stack[i]
if op == 0x17:
tmp = stack[i+3:i+5]
assert(len(tmp) == 2)
struct.unpack("<H", tmp)[0]
stack[i] = ((stack[i+1] & 7) | 0xb8)
stack[i+1:i+3] = tmp
stack[i+5] = 0x90
stack[i+6] = 0x90
stack[i+7] = 0x90Looking at the result, it became clear that the branch starting with 0x17 writes x86-64-executable code into memory. (It also seems to pad unnecessary parts with NOPs.)
Since the program was already writing the executable code into memory for me, there was no need to build a decoder from scratch, so I decided to use gdb to extract the expanded code from memory.
As shown below, the decoded executable code was laid out in memory with NOPs as separators.
0x7ffff7ffa000: mov eax,0x1000
0x7ffff7ffa005: nop
0x7ffff7ffa006: nop
0x7ffff7ffa007: nop
0x7ffff7ffa008: mov ecx,0x67616c66
0x7ffff7ffa00d: nop
0x7ffff7ffa00e: nop
0x7ffff7ffa00f: nop
0x7ffff7ffa010: mov DWORD PTR [rax+r8*1],ecx
・・・Below is the code expanded in memory after removing the NOP sections.
Reading this assembly shows that it checks whether the sum of the 0x20-byte string received by read, added one character at a time, equals 0xcff.
0x7ffff7ffa000: mov eax,0x1000
0x7ffff7ffa008: mov ecx,0x67616c66
0x7ffff7ffa010: mov DWORD PTR [rax+r8*1],ecx
0x7ffff7ffa018: mov eax,0x1004
0x7ffff7ffa020: mov ecx,0x203f
0x7ffff7ffa028: mov DWORD PTR [rax+r8*1],ecx
0x7ffff7ffa030: mov ecx,0x1000
0x7ffff7ffa038: mov eax,0x1
0x7ffff7ffa040: mov edi,0x1
0x7ffff7ffa048: lea rsi,[rcx+r8*1]
0x7ffff7ffa050: mov edx,0x6
0x7ffff7ffa058: syscall
0x7ffff7ffa060: mov ecx,0x2000
0x7ffff7ffa068: xor eax,eax
0x7ffff7ffa070: xor edi,edi
0x7ffff7ffa078: lea rsi,[rcx+r8*1]
0x7ffff7ffa080: mov edx,0x20
0x7ffff7ffa088: syscall
0x7ffff7ffa090: mov edx,0x0
0x7ffff7ffa098: mov ebx,0x1f
0x7ffff7ffa0a0: mov eax,0x2000
0x7ffff7ffa0a8: add eax,ebx
0x7ffff7ffa0b0: mov eax,DWORD PTR [rax+r8*1]
0x7ffff7ffa0b8: mov ecx,0xff
0x7ffff7ffa0c0: and eax,ecx
0x7ffff7ffa0c8: add edx,eax
0x7ffff7ffa0d0: mov eax,0x0
0x7ffff7ffa0d8: cmp ebx,eax
0x7ffff7ffa0da: setne al
0x7ffff7ffa0dd: movzx eax,al
0x7ffff7ffa0e0: test eax,eax
0x7ffff7ffa0e2: je 0x7ffff7ffa100
0x7ffff7ffa0e8: mov eax,0x1
0x7ffff7ffa0f0: sub ebx,eax
0x7ffff7ffa0f8: jmp 0x7ffff7ffa0a0
0x7ffff7ffa100: mov eax,0xcff
0x7ffff7ffa108: cmp eax,edx
0x7ffff7ffa10a: setne al
0x7ffff7ffa10d: movzx eax,al
0x7ffff7ffa110: test eax,eax
0x7ffff7ffa112: je 0x7ffff7ffa128
0x7ffff7ffa118: mov eax,0x1
0x7ffff7ffa120: retNaturally, the information “a 0x20-character string whose characters sum to 0xcff” is not enough to uniquely determine the flag, so I supplied an arbitrary input satisfying that condition and debugged it again.
Doing so causes new executable code, which was not decoded before, to be written into memory.
Looking at this code, it verifies the result of splitting the input into 4-character chunks and XORing them with a hardcoded key, which means the correct flag can be recovered by reversing those values.
Using the same method, I recovered the string 4 characters at a time from the beginning and identified the correct flag.
# gdb -x run.py
import gdb
import ctypes
from pprint import pprint
BINDIR = "./"
BIN = "main"
INPUT = "./in.txt"
# OUTPUT = "./out.txt"
BREAK1 = "*0x5555555553b5"
BREAK2 = "*0x55555555585b"
# 0xbf51b0d7 0xcc38c2be = siri
flag = "irisctf{wow_very_optimal_code!!}"
T = 0xCFF
A = 0
for c in flag:
A += ord(c)
a = chr((T - A)//(32-len(flag)))
tmp = flag + a*(32-len(flag)-1)
B = 0
for c in tmp:
B += ord(c)
tmp += chr(T - B)
with open("./in.txt", "w") as f:
f.write(tmp)
gdb.execute('file {}/{}'.format(BINDIR, BIN))
gdb.execute('b {}'.format(BREAK1))
# gdb.execute('b {}'.format(BREAK2))
gdb.execute('run < ./in.txt')
for i in range(90):
gdb.execute("continue")
gdb.execute("continue")
print(i)
gdb.execute('x/i {}'.format(0x7ffff7ffa000 + i*8))deldeldel(Forensic)
I managed to log more than just keys… perhaps it was too much data to capture?
The challenge provides a pcap file capturing USB keyboard input.
Cryptoverse CTF 2023 Writeup - The Cyber Heist(Forensic) and similar ones are classic problems I have solved several times before.
I wrote about the details before, so this time I solved it quickly using the following script I found online.
import subprocess,sys,os
import shlex,string
usb_codes = {
"0x04":['a','A'],"0x05":['b','B'], "0x06":['c','C'], "0x07":['d','D'], "0x08":['e','E'], "0x09":['f','F'],"0x0A":['g','G'],"0x0B":['h','H'], "0x0C":['i','I'], "0x0D":['j','J'], "0x0E":['k','K'], "0x0F":['l','L'],"0x10":['m','M'], "0x11":['n','N'], "0x12":['o','O'], "0x13":['p','P'], "0x14":['q','Q'], "0x15":['r','R'],"0x16":['s','S'], "0x17":['t','T'], "0x18":['u','U'], "0x19":['v','V'], "0x1A":['w','W'], "0x1B":['x','X'],"0x1C":['y','Y'], "0x1D":['z','Z'], "0x1E":['1','!'], "0x1F":['2','@'], "0x20":['3','#'], "0x21":['4','$'],"0x22":['5','%'], "0x23":['6','^'], "0x24":['7','&'], "0x25":['8','*'], "0x26":['9','('], "0x27":['0',')'],"0x28":['\n','\n'], "0x29":['[ESC]','[ESC]'], "0x2A":['[BACKSPACE]','[BACKSPACE]'], "0x2B":['\t','\t'],"0x2C":[' ',' '], "0x2D":['-','_'], "0x2E":['=','+'], "0x2F":['[','{'], "0x30":[']','}'], "0x31":['\',"|'],"0x32":['#','~'], "0x33":";:", "0x34":"'\"", "0x36":",<", "0x37":".>", "0x38":"/?","0x39":['[CAPSLOCK]','[CAPSLOCK]'], "0x3A":['F1'], "0x3B":['F2'], "0x3C":['F3'], "0x3D":['F4'], "0x3E":['F5'], "0x3F":['F6'], "0x41":['F7'], "0x42":['F8'], "0x43":['F9'], "0x44":['F10'], "0x45":['F11'],"0x46":['F12'], "0x4F":[u'→',u'→'], "0x50":[u'←',u'←'], "0x51":[u'↓',u'↓'], "0x52":[u'↑',u'↑']
}
data = "usb.capdata"
filepath = sys.argv[1]
def keystroke_decoder(filepath,data):
out = subprocess.run(shlex.split("tshark -r %s -Y \"%s\" -T fields -e %s"%(filepath,data,data)),capture_output=True)
output = out.stdout.split() # Last 8 bytes of URB_INTERPRUT_IN
message = []
modifier =0
count =0
for i in range(len(output)):
buffer = str(output[i])[2:-1]
if (buffer)[:2] == "02" or (buffer)[:2] == "20":
for j in range(1):
count +=1
m ="0x" + buffer[4:6].upper()
if m in usb_codes and m == "0x2A": message.pop(len(message)-1)
elif m in usb_codes: message.append(usb_codes.get(m)[1])
else: break
else:
if buffer[:2] == "01":
modifier +=1
continue
for j in range(1):
count +=1
m = "0x" + buffer[4:6].upper()
if m in usb_codes and m == "0x2A": message.pop(len(message)-1)
elif m in usb_codes : message.append(usb_codes.get(m)[0])
else: break
if modifier != 0:
print(f'[-] Found Modifier in {modifier} packets [-]')
return message
if len(sys.argv) != 2 or os.path.exists(filepath) != 1:
print("\nUsage : ")
print("\npython Usb_Keyboard_Parser.py <filepath>")
print("Created by \t\t\t Sabhya <sabhrajmeh05@gmail.com\n")
print("Must Install tshark & subprocess first to use it\n")
print("To install run \"sudo apt install tshark\"")
print("To install run \"pip install subprocess.run\"")
exit(1)
function_call = keystroke_decoder(filepath,data)
hid_data =''
for _ in range(len(function_call)): hid_data += function_call[_]
if(hid_data == ''):
function_call = keystroke_decoder(filepath, "usbhid.data")
print("\n[+] Using filter \"usbhid.data\" Retrived HID Data is : \n")
for _ in range(len(function_call)): print(function_call[_],end='')
print("\n")
else:
print("\n[+] Using filter \"usb.capdata\" Retrived HID Data is : \n")
print(hid_data)Reference: CTF-UsbKeyboardParser/UsbKeyboardParser.py at main · 5h4rrk/CTF-UsbKeyboardParser
The output did not seem to handle deletions or arrow-key operations particularly well, but by guessing I was able to determine that the correct flag was irisctf{this_keylogger_is_too_hard_to_use}.
No Shark?(Network)
Where’s baby shark at?
The challenge provides the following text file.
Each line, such as 00000000000000000000000008004500003c7d1540004006bfa47f0000017f000001815e1a6f049536f500000000a002ffd7fe3000000204ffd70402080a0fddf1d40000000001030307, seems to correspond to a network packet.
00000000000000000000000008004500003c7d1540004006bfa47f0000017f000001815e1a6f049536f500000000a002ffd7fe3000000204ffd70402080a0fddf1d40000000001030307
00000000000000000000000008004500003c0000400040063cba7f0000017f0000011a6f815ee579bd34049536f6a012ffcbfe3000000204ffd70402080a0fddf1d40fddf1d401030307
0000000000000000000000000800450000347d1640004006bfab7f0000017f000001815e1a6f049536f6e579bd3580100200fe2800000101080a0fddf1d40fddf1d4
000000000000000000000000080045000434505f40004006e8627f0000017f0000011a6f815ee579bd35049536f680180200022900000101080a0fddf1d50fddf1d4ffd8ffe000104a46494600010100000100010000ffdb004300030202020202030202020303030304060404040404080606050609080a0a090809090a0c0f0c0a0b0e0b09090d110d0e0f101011100a0c12131210130f101010ffdb00430103030304030408040408100b090b1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010ffc200110801f401f403011100021101031101ffc4001d000001050101010100000000000000000002010304050600070809ffc400190101010101010100000000000000000000000102030405ffda000c03010002100310000001f9b87aa4d8fea49a91a3c865cd4a13706e5eb106106c2b983945cecac5444819dda6f13f78899d5373dbd64cdc852b9628f590f1a9bbcb72c5cd91a48d660674f82aed95dcf563ac586e14d14a48535caa8ee752f9e9fc6a473d3243d487646a871471a93cef3a7ea4d8fe9229eb0336459a2dc7e9bd664d8d58dd88cb94965f78fbfbb73df9914f5e867ae4be1773e1bebf36dfcde8fa9f1baa3e52d67eb8cebc612eabcfacfa373af9f759ba97d9a5a44f98753ebccebc212fcadaf6e97c96cf9e7d9e6b3d960c39a3851cc6a5e35231a3e7a0b227490ec8f94220cba73cc71a915229fa7105452d358d0f59da3f0b647b95b1f64da8f73a4f1fa3ebec6fc94f384fa857e7c3dc4fcfcf4f0fa5bcfdafa5a93cc2cfb1a5f102cccca7b72f912432c57d80f97d3eac5c51f3659ebd18a3e9d5fcebf4f0d2f7e6814ae4af4d392398dccc69cce8650b98da9191acd6b4892dde6f99e2bda481cb5cc82c6d2f3a62e7ac9092889a8170f92a691616b9e8fc7e8faf31b64f9b13e9a5f9e8f783f3f3d3e7d5f2e9f65f3e98c4f9a6bee3978f224754cb33049ed8bc7c6c9f6e2f1f9fdd31e8f9b759bf4fafe767a7cfa5f4721ae94e5919d4bcd771b3cd7553363dc3363206686b50f36e737cc39d2a72d55747b596a4d274e76fda4d1b46359792742ce8ce90af2d178fd1f40e37bb3e633e9d3e7a3dd8fcfcf4f9fd87875b7cefe8a3e7d3e923c10bd36234684f102ccf603e614faad72e7cd567b2cbc636e7c1bd9e6b6eb9e448269ecd9d8dccc740cb9388ecb56356a668b75f9b739be65c7454e53839a376759acebc6dba9c18b934b1cd7a56b5b8bacc5bcf49e2f47ae637a33c553db96c4c9a7ca5ebf37a679fbfd1d8ddd1f2c27d64be0e5f9ea67851ef679010cf5d3e644faa57c2cb51c3c23a6331ecf3ccb95a2160a6dccd952cee7d13306806596f401726674aecdbacbcd78ecc3aeb041d9dd6761df959e80c2b33e6a76762dc6da174e6cde757c76de34015312de62d274e779d79d6674f71eac233d31271b8a1c3f513525e6b00549216a4bcd8563f2a05d7137ae5294587735fc69d9a22666a64
0000000000000000000000000800450000347d1740004006bfaa7f0000017f000001815e1a6f049536f6e579c13580100219fe2800000101080a0fddf1d50fddf1d5
000000000000000000000000080045000434506040004006e8617f0000017f0000011a6f815ee579c135049536f680180200022900000101080a0fddf1d50fddf1d5cd9c0237a26459b1674aec6aed3cbf8edc085d1282c91bcedfbf299aca313b367e767371b5a89bc43e98445854e15550996a4e5e41450a84412142a110e1292840b44438454154b2772939dcdce868730f468e0446432716bb1da073ddec9e5f8d4a88b482d05cd974cedfbf176e6665638e925a66abf721ef31fa64e0a1e9a544399e6524e38010e41144045a538e12901a1b46041ae39795cc9cc9fceacf1b7220ee132d272f1c9c393549cbbc4c6af24f29e7ab32003495ccddf5c6d7d1e7929698e93b9f54d2b7a483bc47dc6ac38761e9a71519165333a95110013a40384a516b8e14ea1028445181b14e5e53cd755ccd978d4a922e888082ab229d6399de6f8f7673abd4f24e7a990dd76880a69baf2d8f7f3d9e75658ea6d41dcadde6374cb68215aec8f4b29a0b0664333ace4e050044e10e5e3a4e3ab843b40044057a90e055ecd7e69ccd391f41015b102450995c76caf0ee39b7e9e479a50e874a329b2f4f0d9ef16f8e8e67707ae6b7798fbcb7608228e8fcb31a4a060738438e391b1138597a14445068280ed10411504b46b8595dce9fc1d821c451b56440d1587d60f3f466b876ecafee7c93356c998d3f34476b3b1f4f9f6b4e370f483bcb3b816356250da30f663e939b346d816044979144053828294c5cc112869ba6e868146929639795657257b35f9150c51a469385089719ee3e9a5e1d78bfb9f25cd5b2cf1a953416cad63d0fd5e79baace91b46b506c6ec440a1ba087a4766673a480591731d418ec9410514e0a5765772214eb1ba6d1918b42834e8e0a529a595e9a7d1c64811965b4e3ad7a4959e989f37aa273d125fa79229c584afa997ddb96c7d3c1bd0740d5151b96ece81d015a872244cc86e75ab20b03ac035d27660880a752e69c1c3f2ba388b608d91ea32852094b29cd14d38d3d63b31c803360082a4981e5d709e5f5a66ad682e7cad6666cac969dd676bebe561df801c0da9741a828234421a89f1261c96c75a36559164754512440611044838395d8910f84c9083551ad614116de68e539b2571936059119b5952a7b39953543c3be5fcde928ead0dcf9b4afe6b991d48ebcf77ede05db8866f2a5a96b751ec872c08afcc72b41536173a5dad182679135a0b3902033793ac4858394c722448f0598470deab2aca204a4dacd951b24c832d8cdad51cafa4cceb03e3f640e5b2a52fee7ceb15dcd347495db1b5f6f987a606135a695858453c435615339b7b9d16f3226e49989ad46f16172b20eaf0323683089d2a870a28b0f43d23d29c2896b6808369aab4abc722a0b31c66b8709446e3df03e2f5764ba117f73e7736b93a8f41f6cd87abceef5c9ab7519a88906234a92bb6d85e7a4b9b3d416e5b39b9bac369ac4eb82d5e0646e64744c89542c88585a58764707a5385041b155c94a6b81a1a4465962d6c
0000000000000000000000000800450000347d1840004006bfa97f0000017f000001815e1a6f049536f6e579c53580100219fe2800000101080a0fddf1d50fddf1d5
000000000000000000000000080045000434506140004006e8607f0000017f0000011a6f815ee579c535049536f680180200022900000101080a0fddf1d50fddf1d5547d274d637c7eda1f375245aead06b3895812bb23f11ba65bf4727fb646825e184697a256a5aeb37971644a56ed7248ade2b075355d316db8e59d2040e8b0a2c2c1c10a703218f43d0e8a704a529e34968ea058d91ac6692c7329749c7bf9df83d63cb45a9c71a0e98c6351aa0c92b319e92175c1f5c2344bdacad8fd93f52cee6d6e6758f4af286899135065c5e6b69a2de6e3799562a2d28a765c28e48e4202223993f1207d4d4a0f23ce8755bd658b96962dadeb2b12627378ff0027ab3fe2ee48b054d5b3fb73a09a42a83ca4dcd4f5c37d30fdd4be999fbcceb99cccbb2423d63f69cd38068d64e5d2ac6cdc4650aac2c9bb961a925086e1a850ae4a4762624809161f8931295f95dc8a0a6835a67588f73188bad75cb92cd99678fa701e1f5772d2a291b4cef4ce9f59afc6d21aa0872481bcc1f466d3a634bdb9d831234e4710a8d0d542956e9994ed6da752346322ab35d576c2b1b91a950e1db9747acb0b2c2cb0b9983b12729d1372912904d33512e62d90f55aa724931326b11e1f65579ba94bd55da941bcdbe66e6b1735d082023491b799ddb96bfd9c24dc1eaaa2c0d10a286a4d8b5c035cc948ccb9a8cee6c794adec88e385d6483a72c9564fb9bbb9b14932d866584b2e523ac62a1240b62ea70f932a9fc9eac8fcff004ae4b6d374cd459a08b2c6b45bce1e5e10404151617a6751ece575dbce9a832ad7470b670e29368aaa2ad214849c95b2d04dd690328f2acd1c7585461a38ccad4b4de6fee67a5865672ce91c5148b5596c1a6b51c8912173ed83f0fb1be1be5a1d6226e68f166e348687a670f1c7022020883dbc6afd7c2d3d5c01065ea585b0aba5e6c95d048aa638c92223244cd8256cb4f9d56e2b4ae2b90763d63a92b78bdd66f752d22ce27f3afd0d57e95350b4425249e7ac4f8bd903c9d92dcef4c759a4c5918bd095a1e99c44a870808009c741f49a5f570bbf579935055b1616142bb7164a0909555d6798444114401895996be5a5ceea334657a5791ed62d778d1f4cdda5b616383f6c7d4aad5aad48fad3c4ce6ca78fd347e4f57499cde6433a2c69ecd58eae341b98738e10104010e3a9752fbd1c349ecf3adcc2a625387472d7659b60a435469c119e4e4e5e1010ac41b961cd66f1aa8e7be57999f73a2edcf43737b8b6793dab00a5d2b76ea979d677c9df39e2f40cd67ba627657fcebb3442a71c68779c32f1c08208021c71d1db975e9e171e9e39d698cc997367bccbb25356562241556d50446551023a5e0b515117a999aacc6aa33aaecd4abae9cf5ec68f32cb35cd2a2da3da36e063541e5ef49e2f4067547bc4f5bce55e5582555e454d0ef38754540414104e0443a65163ef2df7c6bb3b679eb23d305db9eabb72bbebcef11480a8d708222320709292153d726735c08d556cd52cd1c9b167539cd8e4
0000000000000000000000000800450000347d1940004006bfa87f0000017f000001815e1a6f049536f6e579c93580100219fe2800000101080a0fddf1d50fddf1d5
000000000000000000000000080045001034506240004006dc5f7f0000017f0000011a6f815ee579c935049536f6801802000e2900000101080a0fddf1d50fddf1d5dead15b55d55b8d61bc9d97cbe90caa3a62c62ef9f4772702956d585b09343bce126f84041019404e10412e5bb74e9ee3cf7e6b5e7b8e34bde31de6c7d5e7dcef0e6ad7c0222ab4db2002068304a68f23e3a109aaa3755f1579d68e4d6e336440aa3d28f3d3cd38775f375596b6e6df16e31b7269cb5c90a145142b345ace12541040011b10ea484a4b956bde79dbdcb02e5e50e555e8d59eab1db3ea7eaf34beaaec864e568688b2c09a81972cba9bac49d664a4ba742956b86482d584ceb79e67ad5d57b7e69cbb873dee5d2c26bc939665f9ebcd3838a745910a28a9a3de7092a0808208009d482583489f5072d409d7cab9f9bcc7d78b2debd8337ccf535becf2ddfa335b904832c7a832d172eb138ec796e1d41d495bcdcf5e57dd39da6f32c7054556ed696cb33518925696da976cff3e96f3535db35cee4fcb93c1d0c7252b4e0c28539347bce0e54381040041a4134441b246b1f4df0e9039f4f08c79f23ec9235abdce692bd37dbe7b7f4e2b734646920cb4bcfae83c9db5dcb74cbe779e753645e95bd59fdb9eb7b79ef3b4921ccadd0865d61a4cc65ac73ae5e6ac5d3a75898d673848fc0f64e8e0e872aa1a9411c68f79c2422a014208148269c3e8c33a1f473f44e3d347c3af8c71e0d4e545df2e6730bb6fd5fe8625f790335198e94f2a797bfa8793b592f8e73e75bc79567513113a6e1f4eb2bb6363eae173db0f84d712e4d0f25ea659d7117acd95bcf5afcf5aee18a5e15cc9e8747420e0e8e0a5514d1ef384950406800d12921d9174aad4b1df3f5bf672cc67579e5e81cae33cfceb9ccf543d57d67ddce16d0b3a54877341cf5a6f1f6f48e1d457c378f9a87a4d576ebd8ce4f3ccf5d6574e8be9f3ec3d5c2750d14b6f96a7193baf3f77896d967a67b1d69f39cc79a5873d38ae64e43a381c86d1c28471a4de7092a02203b0571212bd20e889aaebcfd53ddc6822b30878d359d0668d97fd39ec7ae68ed8b9d29099cef3d6f7c5db7bc7ae165f2de7e485df7e9fd7ac54f3ce18b2c4d0f5ef90f4f2d87afcba2e980b5cc5bbccd2463ef6c75e8f4319e957cb790e119c422ca6a4ca58390e538873470415259a4b9c2b48082253c31a566a3773d046a7a73f55f7f2abcca34883221669b3646da66d89a1a85339ee577de2edb6e5d7091e5dcfc95fe8dced758c81cf969b2f4abe9f38ef9d27b7c5abe9ce4dafe6cdc9e6bccde98a2cd5472e991e063941a406d9f958e6f418e06141047569759c2cd2023839a95750eb9150979341d31ebfefe312c81990ceb2525d596253cd554d3528d44b9a7c5bcf276f48f374a65f28e3c5ac66a7b24670531bce9e8df3bf9b77c6a7dde1d374cca24c3f9d669d728eed6359de7721c76c730cc8d203432be5c64b9aa18e0a1af269759c2cd29317973fd30d9c84852905161bcfb27d1e09bcc7849994ccc490b1daa16a0892b491523541e5d775e4deab9ef07c667fc7c9fc71a8eb999dfb6f7d1de8f517d1e7def7e365b92a9cc826b0cf463b9f5caf0dd771d0a01c0a082228d8b1718b26014da25216e34dace3269d1e346dd0231558cc6478944859527a37d2f3c9efcd20d997332979aa2c5aad1a5302483247b5aba5e397f9eacf1ba8e52a79e7b6b9ea7fad9fbc6935c341ac582c9a5960baf8af2f4e27cdd6473a980ea0c0d240e880828271639b679db4d10a84c69759c7b751a8365de6df634cb51b55731e88f6f21a6cfdbe6b4f6f36d9792de4716b2ea9621e5d4e8511222247b3ac791a80cd2872a5d92d2dacbe98b589b4eab6df9967d1e4be4ed2b86ba055350411240d104044514124e6dd6680219a6d67ce76e3a4955612dbe74c35125b1c242f5b0ee741eaf3e83dfc4f5ceea1f9a8ab45bb0e18c091e0a5188c8cb31a9ab950a4ea709595c973258c4d59144b96cf5f0bf3f67bcbd56044d0744064406844101101cc4a25ba95cc9a34facf9eee7063b4f1116db36cb3a02144880ad17a796a7dde7b2de2ca519ba72bb48d0d6463a12a488828881602f04b289794c9994cca24abad36df8ff009fb50797a16343402589a702082202220a0899089485ae5365bfd4c0ee28a1e8e11a9dca4e353e9a2bae595d375e5ea3eee163d0f63515692d6e19810423819091dd15919451555a3438724712412269c29f975f3df07a173a7aca7b1a3ac4d0411010441101101c901d41389b9bbbb3cf3515554c3a65089ab3269a151b9353e9f3fa17bb13341e5aaab635858201034dd340088e0baa80e6728d2881c3b0ed3f1365c878bd19df2758baba45a5ccadd46ae4513414111a16444b500119110138135499bb1556521dd011a262dacd3a2c8deb1e91eef3def71cd45cd80cbd053242cac5b16c8e8cd362af6a882250c20a399af4dc925b0ff0d79efcff00564ecd3dcb78e8ce7456575cb160da324a8d12e57523dc8da3480cca02252086a6ccd84aa28e05514945bcd494722775c7a2fbfcd3355bcee0c38ccacc719704232c2d481a8ca3134cdd75228d209081e6bd3526596c58c947e3ecff00cdf5f9d7a316f710b1d166bac0b20590e9ca9b87a9e679f7664981d54100ce504a1a412b5166765508e52471413aadf365abd8693d3c769eee2eb71e6c26674c4c61eb921948495db91b408819e957765472f03482caee6c82413e65fcdf33f9de8f45f9deaa4eacef4c05a8bc81645d23dcbd9959a7b2dcf8f6b50181b444126444a1104353666d4c51549165e40b2fa69ecedb3d0bd9e5d27ab093411264b1624dc3cca9052b75987ac85ad4dd167ad5eb5d4f669082059afd492665677190e3d3cbbc7dbd13c7e859b5b962c8e35622576a51f48cdce973353ae9e7b4d3036a0273202082086a2ccf2f042842e5c754da95cf57bdb3e91edf3cdd819719999b3ee2532f48d5556a40b226b2c9133d7353a43dd54765763ad594e24c4c2c24949e33e7ed9ff374dbf9ba333a133365695b1a46ae4376a779b39222c4b63b23a0d208c88221c256a2ccf4bc10429d0592d19313d37d7cf55df9c9a5d61fbce5e52a47e1485a5569148f111aa16a99a1dc547870e5395f899993e2c132f8e9e49e6ec3cec9e7b918d3a59e2bb9bc374d9dba4122236b53a47de5ab10e644010e06dd4599e820821615561474f41d6769eee365acc8987f589133251ca2959aafb6b2a1cb0a6a966ea74044de7ac769e155f89994fc49b0edbe2fc3be6787473112eba57b36d3165674f4ab0168d16726b29566a3ee54ef316e58b06c11014e06b5154122870abc12aaac97797acfa3133d7c265926f392cca91e38688d554d514d558d2b4354d0c748dd3963e389332b1c26c92e5cb63af8c79bb318d3838052cd3f8b3b36466bb2a5a82c18e4499b2b1b2b3798facc5d65a441013ab5159f908209a5455595525667a5faf8da7ab8dac58b9cc24c8432472ae6a848ab2224b2351ea15b03a58b75d732224a596161992a3a3c6387ab2dc7602aac7514a52baafe6bd9ab2f51e4e8f2bd23d9a489ab03522dcb3acc412b84ad3d50484104d11d2288912e7d1bd58b9f5f097337bce4fa744b63cb57957e63c96512b59759022cd56eed4f4d575d323faccfccb4c49d948b723cba79070f40674809d010670506d3b2a859399d1ac95724761c0a0aabf562dcba95da815d669eca0830855314548d63c5e75cea7d9c5eeb8b2c62c7271a6a6abf35732c332cae67ccbdbcb88311d605d51f453eb709646a59e336724dc989af1be1e8cff2e8abc09d0dc71c708ae052ac4a95d9433a7c7b31d143b42d83731c9d656e8c9a8b8a1082094c5b0ec804c94ecb6f562f7b6246b9d8406771251ccb1cdb262cd996c2eb2e5cbe3b2b3354bbcd06fad5acab2db39b19993961b3dbccbcde809ae1410a191238eb11505548e96c32979d411f87e1c525eba6ae6258ca58cb074d06b14166dec5334386f0aa32d465b94164fd26d963d30d74ccde7ba4cd0ddb1e73a4bb483be7aac6f25acdb6f84ac75959e84d65fae5bd665f3b6bbe6d73e9e7f9e99ee7bb7230e1a630c58470e8cad59749a72c8f3d1ccdbc4a59a2341642960aca2e2b3297d64b8c8cd5ea64f73ed4b009a403727cfe7d36650a81d2d47843e55ebcf5f8d7bee75f0675cfd9bcb57e79f1f376f3f71e358c3e48df2facb1d26acd3e74e98d766fae675f2975e3eb9cbafac2fc087de43a5b1833e3c3ed92cc9066cf8725fd27b30c5d0f90c13e25cbe9caf51ac39a32213400cc69f39e2c55cbea6c11b258c96a374055a3353a1d24167d79d3ee33cf7d10f534038ad2825cc3910ec9490476abad949659539539d9e6d7ab83c4800a22d8965c19d8a65ba4845b10c12515c10f2d7a4c96484384434d679763575635a5896e8cad543d63954155ec8d38385b59b3f570a5dccbf0eade0ef497bd336969e6ac48a997336666494a91755a96e9838c5b75fcfac4c68f9ee0ac78ea6a0424e5486e5644b165344382a6e9b385c8e5283570156e02cd3d94f56021048d40876151a2da964d964d9a2edc6a752938f4095edcb6df397d29e6b99aec4a65eb1f86e5a5d1fb2ca66a92935a631d0b358e5d21ca27030d888aab092b2059c3819c71c370dd288142872aa8829a4d4fffc4003310000103030303030304020203010100000100020304051106101213202107143115303322233234163617412437402642ffda000801010001050201342010080402f84c3e631e004506e56362b0b8a9eae28132e703cc970818a2ae86553574312facc5982b229b69678e14fbbc40c57485e9f571300bac09d738028ee30c864ae8a35f5681455b14aa5b8431afab40a3b8c0f52554518fa9c04bae10b432e30bcc95b0c63eaf1661ad8a6eec20826a6844a29c13827297c348e46db1fec00804020100822e500c98c78280c9c611db08353878f4e2928ae9aaf53e8cb254e9ff0048ed569bad97d5fb7db6ce744fa796ca2a0e168925d7da06df0dbe9aa3a94fa034a53eaaaff6b62b2d35e747e9dbec5a66ccda4f51ff00c534baf4cecf66b9537a8f63b1dbb48fa496aa0bbcbfe29a597ab566a0b4c7e94da2cf75d3e74ae95573f4fb4a5ca9f4ada7dbfa89fe29a5d7a65a72dd71a8f52e934f5834d7a75a06dd35b5d576186e3af3d3fb7c96fa29fad16e1616104026aca29e9c88538fd31c4a807ec8082086d9da94796fc1f298c4edc3116a7ff1f4a3fdc9684b4fd12afd6a6756a15b5c7fe65b9b04b6db69268fd1c23e8bea958ee37dd351fabfa5e2164ba52defd5e5e9751d651d37aabfe93e8bc1c34f3eb1acb9fac14bd7d29e8bff00ac7abc4b74851979a418ff009c968eb67d2ac1eafdcfdfdfecbea0e8ab759e0bd5b2ff00ead39a1edb482ddc1df09a135ab18d8a7228a733208c2a0fc210430bc20dca231b520da36a28ecd665714e0a4f8f4a7fdcf213618d92fac7fde56cff00dcd5bfd2b28cc1a63543f465ded379b6df29356e82b4ea88f4351d55b7d48dbd56ff0049f4b69cc1a2aaebb8fa95ea0520acd1be8b7fac5c1b6d7c57192e1152e90a8b8d57aa7b6ad654526aeb57a4cfbd5b34ce80ba69ad767c2b49e456376a685c50f0be514e451d8fc39507e1432bcac201c172f1ff007483c008780e3b35a98dc6ce527c7a53fee7acee7f46b4fcaf599dc2ad5b3ff735c0f1a0b478a6d01a4ec5aaa87575928fd39b75baac57dbeba0645eb52f4906293d56ff0049d234fed34bcda5a827d4d72a515b6ef457fd5fd60ff4fa225d4580df5cd698b87d52c7eb35b3dbddb48ea4d3b4ba62abd4
0000000000000000000000000800450000347d1a40004006bfa77f0000017f000001815e1a6f049536f6e579d93580100322fe2800000101080a0fddf1d50fddf1d5
000000000000000000000000080045000c34506340004006e05e7f0000017f0000011a6f815ee579d935049536f6801802000a2900000101080a0fddf1d50fddf1d5cd2f4375d53ea8dba5a0a083a116d8d9aa35c7c208a723bbfe0aa0fc58584020b28a67f2a61e18113b35b94c62c272727fc7a56d23597aac33a27435d3eafa53d6f6971d23a9693535a62d3d6d86fdea0ea5a5b258e829fa74be985f296cd76d41a7adda9a818ca7a0a5a3bd417ef5857a4e08a5f54627cfa3a188410de3555e697d495e9bd2fb1a6f578674750f8a23ff00bcd7a555fd5a4f552d5f52d23a474ce9caad2fea35aedf43ab23a6899d9858402626e70b28f6614bf05507e1c8436caced17f3a61fa478080ca8d880453d128f95d3ada69a575fab2287eb7431c91dceb8fb1a9a599d7fd6ce6476f92498340557411d48a5b96aab632b26bfde147433523fde6abcc02f744d964d4752cf79aaf2fa7b84b53ef355e5926a381547d76ba1f77aa42e8dcfddfbed579a765d685cfaad4b3471d4ea3a78b8d654cdd8135ab82684c384eee014e8aa0fc21795959de9fcbe9c7e940653234d6229c53dc89ecc2c6e42c2c7dec6f8ee09a9adca733ec00aa7e5507e188a2ddb2b2b2a8c65f17f1513135a804f4f722761b05858df0b0b1b9df1f7b1b041051291a8f76105507f5aa0fc2c760e72d3f3bdbc65cdf8633258c40613bc291c9c51d86cd447ddf9eec7763708040261c2ce43b63dbfff00321fd6a83f0a63fc3be77b6b535aa3626370b3852c89ce451ec66c477611df0b0b1f7c203609a9db1ec014bfa6227caa0fc281df088c1b637c44cca6b0004e1492273b28f68298823b11da46d858585c561616163ed6104d58d9a8eceec6855cee2cdadff876605c5715d3e46d9110a201a9cf4f9539d9d8f66504d3e47d9c6e02c2e2b8ae2b822c5c5611ecc2c6c10db080446c7709a15c5ffaf6b7fe1da14480b39510cbe95823675119138e51d8f6828261fba0a076c2c22c4588b510b0b1db841058d9db1dda17c0ab7f3976b7fe14028f236015ba1e6fce17259ef2b286d1bbee65650281ecc22d4e622ddf0b0b0b1b37777604d0aa9dd385c72edadff85ad4d620361f3431f08cf69dcb93e54d9725a505cb8969c8cfdb05041c81437c22139a8b5616161616161058d8a3b84c0aeb363b2dff0085a10d82886648461876cee5c9d2809d5013ea53a6ca89c498fe1aa4f8a6a8cfdf0534a07b0845ab0b0b8ac2c2c2c6d8453b70bf8b6b65ea4bbdbff08eca73fb8c9006f35cc23200bac9d385254a92abcbaa0aea141ca9984a60c06a3e5b2cae827a6a86c8dfba1028140f761616163b0a2513b04d0ae137460ce4ef6ffc2e6f12104107f02cab5ee97b94eaa46a53aa0a7cc4ae4be535a4a860c9822e238ecd5708d5355989d054891bcb627bc76828140f6e161636c6e5128ecd4c0ae93f393b2dff0085edcafe2505314d7ae68cb85d4257345c8943ca646543028a20135ab0884d5511f3155098dd4d54e6182ac3907e565656567b73d9940a0e41cb3f64a71dda135aaaa51042f7f37f65bff0a95991cb0a37654cb3841c89caca0b05084951d328e9d471009ad58d8a6a2a7a56ccd9e99f03a398b4c15899520a1282b92cefc9725c9725cb6caca0534a050dc2c228a29c513bb0268574a9ea3f61b39ed68a0abfdada767134e9e13c794d6a6425c994854746bdb04c84041984021b94360aa2064adaba4740e6bc84c9c84caa29b5285485ee805ef1abde85ef1a57ba0bde6136b014d9f283b2b2814d29a504101b94e44a79dc04c0ab271044f77376f34ed8c493ba636b81dedf67b790633802a462c79819c9434fe0468300585858eec79d829e16cadaaa2744725ab9a12aeb908d439758aea15d4284a5754a64a995099529936503940a614d29a82c6ce4e4e29ced826843f436baa4cd20dea2adb1a25f33a9e955b5a041daef29d1aa5f0e8bf8e3bb287d87b1af15540a489f1ace36f0b0b0b0b1b6507a6c8547328a5ca0530a614c4377a714f2b3b04c0ae559c47cedf0aa6b309ac7caea7a60d5856f3fb3dedf069260e1f70a286c5a0a9a918f52d0613a91c1398f6ae442ea15d45cd7259d814d72865513f29a546989bbc853ca71d826055150da78e590caf45c1aaaab32a185d218600cdedff87ec47218dd4b56d78f9edced959d8276c3729c014e85a53e9014fa06394b6f9189d04817ea08382f08141029af54f2a8dca351a6ec54a54851282604e7b61655d519de139e1a2a6add21a7a62f51c4d8c6f6ff00c3f658f2c34b5c1cbc1df2b92e4b2b29a5045390db2b3be1398116a7411b94b6e8dca6b638274324683902814d2a02a17288a893767a95ca476cd087e915f5bd429f20609ea5d29a6a62e4c6068ecb7fe1fb41d85495a9a438387873b0b9a0f41cb29a50f829c502b2b2b2b3db80b0b8a9a99922a8b7108c4f8f6054526153c9950950a6affa94a95c8a01021a2babd6729f208c4b3ba6753536535a1bdd6ffc3f6fe15257f4d4d5f1707dd413f530a2b831e9b3029af4d29bf0e47e5677cacacacf73980a9699ae52d16118dcc4df0a99ea98a853538f899ca476cf99910a9b97319c97ca182495d3ba9e9d3401df6ffc3d9959edcaca7b903d4547609648aa6c8e6a9e1753986b648cd3d63640c932a3fe2e4e3e73b677cacacacae481ecc23182a6a7053e0e262f068cf889354aec299e9c554d53206d457c95320f09f3b581f23a534d026f843bedff0087bf3dae6e569cb4fbdac9628a26de6bd91a7d399d4d008cc723a2750d575153f96393fe77cae4b92e4b92e683d0720eed214b16574f8ba8d4287c4ce52155950da7655d63ea1f042fc4c2a1a872798604d18fb36ffc3f6f28795a568c414537ea76a2b4470b66a831ae4f95ccb5cd2362e74b3d03b9c2e4fdf29c709d2e149540235e17d41a995ac726cc0a0f4d7a050ec29ecf34a3cc08fc4cb8655d193cf3d2da951db58155d252f464a76b266f8eccacf6655bbf0fd8cef951383a6b5b385b6b8989979ba4b3894e5d6d6074b41141d3bf318caab1b8ba9a44ef94512a5970a598b97b6a8951b6cea4a5923592d51d548c50dc428a76b932440acee76a76f985a9fe04ae53d5b6319eaba08da13aadb18adae7119c91b059efb77e1fb65a4aa1a73ee28240686e65bedebc1ea480e69a7e939b7899aaa669277d887fe2ca9db3948ec291ce73a82d9c9474313457ba185b50e74ae753946323682a5d19a6aa0e4d7e502b2b3b342a76289be2a1d815b55c5173a47460343eab08c8713cbcdc10286d95959eccab71fd9ed3da18027cfe60a47c51d96ebe2e311a8a79b94734d4b0cadf6783edc3149fcacf1f1a39377a99ca861eacd4900c555248c8abe4719def8da3aa09e2d709615c142f74669a6e40141656546153317f16d7d4f14fe52ba1a755843146dc2ab9f3b0d8159edcef6efc39fb0d8c94f963884933a456a87ab55340d313a32c7d2dea581574745726cb4f514eb1367a133d369332d3c7d2a6937954c559a1f14cdc2b9dd0450d6ca26949e4fa1b736415d46216f272899c8cb4f8149396ba17f2183b3540dcaa68d55c9c1b52fea39985d46c6c7feec95b561804ce0e6b848bcec103b8edb77e0ee682e5fa2352d49289ced606e6a5ff00130c17b43918f08ba60b9ccb123d5b2807393c36441152aa8f9b4371143fc6feef123943f96d92c6c65daa2231b5edcd300f7c949988c4593510c86c791d142154d0a68e0db955804c85e5bfa53de5eaaea842d7b8bdc812d514c1cb18410dc76db4fec6e57928449f3b581cf73fb2c27152e1e2666548c7351ca2b8b8aa7a52e34f174db394fd9c9eaa3c3ad0ecc4c3e2fa1c43d1796b997191824aa9664c690ad4ce727b5fd9af87a735ba3e4d6449b02f6ea18b0aa9dc23b8b4f5591a7b0955350d81b2bdd23bb229f8a003876656565655b7f06ed617273a3884b50e7f75a1dc6abe5af6a7b328c194295329543006af8133bcbcece29c554b32acb520289cae94fd46494f8924b7720ea0901651908c47365a3c2938b62ade334f434fc58c8d3635d309ad01574d99276f564716462b2e0d6891e64777472ba32c7b250411df6dfc0b04a8e1caa8ea449fcc9eea27f09e377288a2d5c13189ad08295f8123fc939d9c894ff21a1d13edf76691ca39d975b7b9a629cb53ded7291ea8a94c8f8ea69e923abbaba556f8c3dd0b026b506ed2bb8c739f359758a252d74b323e7ec8716a86a03d3998db3b676b6fe06c64a73d910b7d6c6d9ea9b14e648d84badcc7a968e58d70726c0f285239368828e96363a91dca1d86135009c7889a44e3b6139a9c8ec58a2ada9a75f5b2e13cd04c8b5c5322c18f991eddcf51d1b153421aa209bbd4bc065f2efc9e0179c7d9c2c6d0d496ae21e1677b6f
0000000000000000000000000800450000347d1b40004006bfa67f0000017f000001815e1a6f049536f6e579e5358010030efe2800000101080a0fddf1d50fddf1d5
000000000000000000000000080045000834506440004006e45d7f0000017f0000011a6f815ee579e535049536f680180200062900000101080a0fddf1d50fddf1d5e096a03539e5c552d716a0e64a1cc7468d426b63957b721163c6dc95b1f98dc512a26b9c5adc0f853ca9eeca286ef622d45b84d2bc1462615d06a10b508da99809a540c2544c5184367bf0b515e446d1991f8fbb8514ee8cb5ec981046f6dfc1bb40029dce6a15313d3e30e5874662aa5963d7432a4674cda9fe5e5423928d806d2bb024764bb6086c422d4589d12e2e0b2b2b28653217394306146d4c4d283973579b936929e695f57306e07df6bdcd31543640e6636b67e0d86ce771009cc352502d29f1b4a717c6a3af2c5356095d6d70e6e6171863e2827299fe5c8ac21d985c1704630ba2d5d06ae884c8c26b404d4d726bd35eba89f2e1b7aaa7565408f82c7d8c7d9f2141548b0116cfc1b05ff7279684135ee6a13643a609ede4b890ad523bacc6a60da57787f9385c56171ec082c2c2c2c6c0ae4b9a1226c884883d5d6a4c50463cbdad29f4d881cdc7ff00143398d5adf1ba9f7f95f231b46dcae90c7b7422c2318566a3fd6d6a6a7152bb2b8ae0b82e9ae288477caced95959595c90720e41c814c5739448f25ad513bad3d5bc29620516e3ff8ad59f6fb8d8ed094d3b61359975be011c406d2158c90c5c108d74d18d16145bf6c26a684c6a99dd38ab83d49339c6d7006aa871748d727b43839842237820ea39d681247342f85ff006ad7fd7ec0b1947c28fe5882215145ce689bc404e28f94d6211ae9ae9a2c4589e13916a2167bc2684d098146d55b372965b78929e7b7964e4f42940e438045a8b4383a2e28b545097974bd25a4695b56cd472c6faffb56bfebf6852051a620bc956a87f5b46ce41b92d8d062e9ae09cd4f09e32b82e0a7f0b281ee013426851b54f20821f7a5f554f5cc920ab8daf55113de83388c6cec04e7847a6e5d46c6c60323edd3b6dd66ac93ab37dab5ff005fbb287e930c45cde0e0b94b9b5445b1e11584c626b10620c5c14813c2216139549db28760402684c6a898b5155f08e299dd482291b17b95905386c42f91347952752342573cd047c9f72ab1d17fcfdab5ff005fbb08b542f701d67856f6ba67c31f16e1714d6263131a835613d4a53939a8a91d813bf2766f604d6a6b546c52bfa315caa4d4cec1875bee1fa6a9fc668e65cf20a3bbe363c3a9389a695b033aaf98b9a8fdab5fe0fb0d3c4c4d323ed949d36b02c2e098c4d6a01008a91c9e7671523835544e8f9dc6e135a98d4c6a6057fade8c21f92a07f17cf3f2923953255cd7244acacaca3131e99036352c01c9cce28b7ecdaffaff0060339ab6db436185980d0804026b501bb8a91c9ef4640a49c053ce4a392b1bb776b531898d4d6a91c2265eeb3af3b4a2b2564a63f099220e5c9651595941d841f95f2a48c39491162e3c97c1eeb5ff005fec5b60eac90c5ede089c1029a5350db2b927bd4b2a96a13a67397ea7231ae922c446c104131a98d4d6a6857cade8c523b9b902b3b029ae4d9107ae4b92e4b92ca6b9072ca3e5490f9c07a2d23bad7f83ec52571a5960ae92a9b1cb851cc0a638205072e68c89d2e14b5214b3b9cba6e726c0ba08c29d127b13dab09a826851b53426852c8228ef55a679963b814d7ae6b92e4b281d83903b10a58f2b9292123b6d7f83bdfe1b4ede525bde3873514aa1990957557593e75254a738bd470a642846ba68c49f129235231386c14614613420af75a2289ee2f723db9595941cb96c0a0e41c83902b92e68e089634d90c65f13640e696ef6bfebf7d41c0a66f8a59fa7289329afc28a6c26cebae9d509d392980b93234c626b50016022139aa48d4cc52376685184c09aaa261132ed54679763b63b815941c9b828c4572c20e40acacaca714f194c90c4486cc1f1b9bb5aff00afdcd55072f87e1ef54b5b84d9414d9709b21c3a628ce57b80a3ab6a8eb1a9956c42a5abddb426d530a6cc0ae40a785380a6c2ff00b628d356702f55dc5aecb8f66163bb28141c54351c5481b20ce087a0f5c97259453bca6bcc679b641247856bfc195268ebe0b2d068dbfd7513edd778291d6bbd361a3f4d359d555d368dbdd4d19b1dfde63b45f9cd7e97ba7f8cd45b6ef425d6fd414d2fd3f52b1d4df58a97fbae4adf68d417b8a386ed2d2367fd11525fe66531bd55360b7ea492d35558594f57a2b59d3d5c4fd46c8a96fcd2c35f769e9e1d3fac6e27fc1b534915c686b2c5758a5aba8969dd7c9a6655cb1a7d3ea2a9b5d752de8424a9ecb7ca66555b2eb40ea8b45e690cfa26f94ba7b3e27b55d69e966b3de69e19ec17fa664d67bc535335ae91cfd3f7f8d52e80d47556ca4f4bf564f23acf776550b15f1d576cd29aaee125751d4d154c169bcd4c369d25a8aef595760bf50c93505da9e95b66bd95a87495ff004dcb25b6ef1525b3466a3badc68343dfeaaed2c72d3cd6c67ec3bf8e95ff005b75daa6e91dda4b85cacbae2af5130ba59bfcc296716fb1328e012db2b9828286367d28cb7da9d4352e74ad92aaa837ab151ad78e2359fa67513b6c367fd1142fff00c6d2534acd37432b2929752492c7a06b1e0d0173c6acd3b5575b8e9e8e20fa2d1f3dcaa74b503aae3a6667d9fa8671aefd309238e878d53b58d45ca5b8d6e8e96493d3ad545cfb29fe171bb4f05e6eaf9ea94d8963f5024964d1541c1d5da9e7d44fb8ea0e6fb05fa594b355cb74b86990e2d261a7ab8aeb5524b6ca99a66ea18473bddb1ce96e9687481ba8e695fa8fd269054e96a9e14d73be5d26b5691d55503d85e1f74b8dbf52be57dbef3d5758ee576a91ad75c3ab21d53ada0a0a3d576c76600d2e6d36b1d51474f16a8d4c0d56aad6535b2b7576abb95b86bed6e0d16a0b63348ffc87adbaf6cd65aaacf4add4fa91b6faed63ab6e4ea9d6dabeb261adf58c8a9f536b2a6a8926a1
0000000000000000000000000800450000347d1c40004006bfa57f0000017f000001815e1a6f049536f6e579ed3580100301fe2800000101080a0fddf1d50fddf1d5
000000000000000000000000080045000834506540004006e45c7f0000017f0000011a6f815ee579ed35049536f680180200062900000101080a0fddf1d50fddf1d59dd49a8eaac3247ad357456f64ba7008f54ea2a76d26a9d6544a82fb7ca4a53f407b3fc9b58beb59a8f5ab20641646b20bdea7b5d3d16a4d636ea776a4d64d8e6ad86e753475d57699e2d47ada9ea2b2b6df532b3515d2d94f55acb545d29bff00cd9573d4fa86e35559adb5757c951afb59d4b6a75bea1bb42e974d96556b7d5d5b472fa83ac2a63d4dea55f2fc65d71a96b28fafa6147aff0057c2c7eb2d4d253bbd46d68f075d6ac7d59d6dab1d737ebfd652cd5777b5dd2a29f5657d9a276bed5afa8afd59a82e94157adb55dc2dd2ebbd613d2d4eb9d5d591cfaf75954534bad7554b72b16bea9171b8d57d42e16a77fe3db3dbf26ba07b1bd282680d3ce65e872320e424a112d518ded210385cd372e50b7047e3aa213fe537e69c9c0d8009ae2135ee4c785e1c2a63e27ab96b1a0ba1680a6983055cbc9ce21e3871da4f27623b48dc6d85e762163b32839651ded7fd788f9e64296aa7947564612f2b9141c5722b9144a0531e428e5772f73271a999e439e57329af398e570427917b8910a8910a99136aa442aa54dac9829aae52df712663a99322b2602a2ae628ccf465764c8ec3a47711239722b9145cb2b915c8acacef940acacacacf76564acacacab61fd8ffc4002111000202020203010101000000000000000001021110201230031340312150ffda0008010301013f01ea7a5e52b38338b1c451b3d638d612b3d6381c4f5b3d6ce0d0a167a98e1428367ad9c18a27ad9c0e0ce27ac71a174af81f5432d59586ac6bfa45566b44b0d0b35a561ab24a9f4af81eb7a321f9bcbf45f037a793742f85ef58643f37f210795db212cf974bd6cb2cbcae963d90b0ff00487e6f3fd22bf9f1b7449de8b085d0b7bc31e6f2965fe90fcde4ff00a45daf8a7fc1b7b5610de1eaba58f0de108a18c646543f20bc873b14cf6129de14a85e51f905e43da7b4f69ed3da7b4f69ed3da7b4f69ed3da7b494ef55bdeaba58c6f142161e9457f9088f4b18c425d1457f84f37988ba1921b1310b0d8f778a2be8bcd965ed6444ba6432312b0fa5fd75d91174324212c31f73ff0511161e5659212eb5863ff0006cb2f088e5e5658cbeb597f42d1e8f58115b2c59218997d4b2c7d77dd5a597ad1e32397ab24c6fb565fd2b0c7ba3c68597ab26f0bb5e2fe9597bc482d1eac995ba4561ead15f63d6f1089f9a3d592451456a863cbd1fd8f68a3c687a3d58d66b66f659afaaf7f1c48ad5ecf6b2cbdd694515b57c0f74882d9ecf365965e6f65ad14515abef7bc1096b63deb0d96597b5ed7ad15a514514575bda2ad908d6af0f76487dcf165ed5b515debfa42025979a1eeca2511ff003e145e2c4cbe87dd08105597abe9689c06aba98b5b2cb2c4cb2f5a287db144239bd9f5344e035bac3d5e68ac59672132f57d691e381558bc56afae89c06ab6b2c78becb39165e687d288c44a8be97d8d1289c4e070389597b3eab2cb2f12e8488404a8b1be965145145743471144e0388e0711e9797db6263dd2b211121b2f09743166faa85fc2521c8b1935bbf963123111784ba9f6ac512c562687bd1c4e271388d7745090848e250ba9f6d911931611225b21212389450e2380d697ba445612176bec788e262c5964b5445091431b2cbc4a0355d284844509773ec659165933f0733908965e1222858932cfe96c8c8bb2511ac2da2845115defb2784c521bb1a380a03fe68d1422386484ac48944a1144d6cc8a16161f73ec9e791c8e458e43968f31c4bf0910cb1311344b68a1617c0fb27b59785b4712191cc9912248f21659784ac8a28484be07d93dafa111c31ac731ccfd20844d93d622c25f0bca195bcfb908e458c6868a23117f094894f5445085dc91597959a28a2b144912ccb1456e8b2c52390de6ce439127ac5115f05965e1e97ad1450c97c1659659659786514511445097c8cbd2c4cbc597864863176d15a56b4244622424515f13def1659c8b243c25d6f448a2b2f158488c4af95f6c9e575bd16b58ac4511457cafb192c50be4a2b0911422f0fe37d8c9612d977d0f11228785ad68d75b2bae7fcc210f0de6cb2cb2c5d15ac1090e2511dff04c7d6fb3c82cbc32cb2cb2f2bb11010ca12d1e2c6c43eb7d4867908e2f0d8f4b2cb10bb11122f0deb787843eb7d72648432cb1ed4242166f7b11110997abc50e2566be593cb78b2f5a28e256c8b2f482b3f308beaa2b0fe363c363cd6945097559784ac82a1e6fa93c50d15f1498d8c7d565965e2b74450bb9165fc92787d565978b1744487f86f121eb45159b2f442e8821765f7be862248686b145091450cad9162d9115f63e9432868e2509668acd6cb0f48a12efb2fb1f6514701ff04ace251c4e0380a07a90fc438d323e21788e0871a3859eb1c05e3147e2b2cb391c8e47239165898fbe62e96bfba485897e8bed43edb399cacb391673391659c8e45a399ec3d88e473a3d85a627f2d628a28a28ac3ed63108acde8f7422c4fadf65fc6c6242d56945145145142585f4ad7fffc40023110002020202030101010101000000000000010211102003301213403121504132ffda0008010201013f01def2b772a17223d829a639d1ed429a7872a3da2e5b1cc5ca8f6a1722639a47b90a698f9123dc85c899e691ee47b50b9531cd23dc853be87879aebbc2c25d1c8ffb94e86ef09d117689cade6f2893bc45d0dde5caf46ef09d1077bbc3c2121f62174f27eef0ff00c8ff007e04af4e2d98c79a176223d5c9fbbf1fe138e5bbed83a1bcf0ad98f1456ecb2cbd6394b5589feefc7f849ff7e05951b20ab563cdf43dd11e858e4fdde0bf84d53f8b8d5b3c1743f850b6421627c762e11f091e2a1f159ea23c758942cf50b887c47a4f49ea3d27a4f49e93d2
0000000000000000000000000800450000347d1d40004006bfa47f0000017f000001815e1a6f049536f6e579f535801002f4fe2800000101080a0fddf1d50fddf1d5
000000000000000000000000080045000834506640004006e45b7f0000017f0000011a6f815ee579f535049536f680180200062900000101080a0fddf1d50fddf1d57a4f49e81f01e83d0438bc757a3c5159787d285a3c2585fe0b1f4bc3e988b0f3585fe1b1f54ba622c49e108a117f35f6b457431be98886c6509097f9ec7b5962238785fe8b1f4448e5212edaefbf91921f44448a284bbebe1b2f37db226fa61112e8aff324c932f7471a12e8b2f2ff00c764d92d5e6271e1f5bff1d9c8fa60435b2cb2cbc2d57f89391377a218f3020f37a59795af9162f86be06e8e49178b2c5ac48b132cb2cbca5d0c4c4cbdefb9e574723a272bd639784210d8858aea78b13cd15ad15d6f2b7b39a43d12168c445e68a2ba966b1626596596596597dcb79c89caf54b74c8b166be0b2cb2cb2cb2f77b574499cb32f2914589eea446447e26ba6cbc5f5ad796449de10962cb17446471cd1fbf0d15adeb784cfd1f64e54724f142431b2f0ba54e8e3e413bf8e8a28add317531137472720dd884b0de8baa2e887209dfc74514789e2562cb1098863c2cac50df89cbc83fe9e2243658f45d5627443908caf2fbef4a1a1c468ac210c7aac3951c9324ec586c6f65d8990e414c733d82997f1b451e250965e50b1291c9c84a562450d8deebb5314c94cf214c53232f928f11acbca112951398dd9424363e85da872a3cacfc3cc8c88c88cafae8ae97bb993912fe8a2551637d2bb9ff0044a86c8c2c51ac71c88bbc3d9b3ccf61e65f5bd24559e25512eb5d758631b13b21f858c89c6ef794e89721e6798a6298a62917bbd5acc9927d6bb689218bf4831e22716d295139978722333c852233232c3d5eed9263eb5d890a3fc2701a1ff053685c8799c671eace49126226c56c486c8c852232212d58f5bc4e458fad6cb378a228847f84e03e325c63e33c05038e04168c64c658c8c4f1251284238d89e8de887893258aeb5aad3c73021f833c4f01f19ea1718a342d19324c78ff00a44b192131338d91659658f5639129695d4b6bda047f35acad664d61891128fc1e2ce3647a18d927deb5ade041ff0007d92392386893a173d0b9c9730a562c7191cbd1b1c8721bda86ba174de6071fe6f7bca24a05138593e368a64636462288a04622cbcb91290e5d4d6eb358b2cb2f44ff00a70bd9ef78946cf58f8c9709e81708b8c503c0ada6c948bec6b6450b2d0b365e785eed7451451e278145744a44e65e176515a2dab0cac5967111fa561b2721bbcaecbc3595b50d628a2848e3238bd2fe464e64a57f0ac5616ecad61fa430fa977724a89cafe65dbc71223f951450dd1cb23f4a1ea8b2fb57647f4e38e1bcdfc778e564a56c88fa2cbfa38d11fe75515d57af3c872fe9097f07fddec62fdf9db3845d8fb59cecff00a458a458b7af998959c51ea597db3393fa4a256b6588afa19c7122ab35f3cd9224b15b22fe85fa71c4fc13cbdecbed93a24cfd2513c4ac515a59659785f0d0c8223fc18ba2cbd56cf49b1e194343451585b2132cbf878a3f0ad5e9291277abc562ba2f0be0a3846b17dcb47a326f15bd14574dfc3c47e8d745e16885a31e64c7f3df6219c6c8bc35a365e8b55a3cb24fb28a2bad76323fc21214cbd68a2b0b1456117b498df7bd2be44e8f33d8c5cd42959299ec3c8f33ccf33c8f3172176399e67b1909d92e4a3da7958e639dfc34788a2789e2781e2788a251e257c1c64bf70bf347f994f4812fdc47f07f6bebacd0b8ecf068713c4499eb3d47acf067acf06789e07acf58a0d1e167aca686be6b2cb2cb2cb1f74480c93c2166b35bd0d0d15fe4a22c6c798b2f178b2cb2cbcac318fec47fffc400561000010204030209060b04040a0b00000001020300041112052131101314202230404151617206153271819123425052749294a1b1b3d1333662c17595b2d324253443445473a2c2e13563648393a4c3c4d2e3f0ffda0008010100063f02e83ca314ac6b1918d766476728eca456b148d62958ccecc8c509d9ac549d9ac52b199d991e847c5d0a665b11936269a4c92d410f36162b7a33a189e6b0ec124589adc95b4b665d0855c3302a075d29138e6258549cd2d13540a7984ac8168cb38c20e17874aca6f37f7ee194a2ea6ee95a7ae19c4b1b9444d4f3c90e5ae8b92cd7aa9a57be15875928a7128b94c513509edb7b21dc7b01974cabd2a378f34de485a06a69d446b17c4c4f62814a92932121bad378b3dbdc3f9c0f809192601b734a5b4d61489cc3590e1193cda425c4fb4433e4f626d3534db2ebc829710149580d28a4d0fb0c7eede17f636ff48c5d53d83c94c16f105a51bd974aad4d0642a3489b9a91c16425de4a9aa38d4ba12a1cb1d604628ee2787cbcd21a0d251bf682c026ead2bea8fddbc2bec6dfe91864de1787cb4a20a9c6dcdc34945c72234f5189a98c4b09939a704ea9214f3095902c465988cfc9cc2bec8dfe90a64612ccaacfa2ecba776a49f66bed863c9fc5d86a612cb8f36b43880a42e8da88343ec31fbb785fd8dbfd231ac4311c365661913258610eb2952534249a03eb4c2952781e1cccd4d38965a5a2550149eb274ec1f7c338fe3b2e99976645ecb2e668423a891d64c37802b83a669d6b7a897ddea8f753b61ec67029444acdcb24b8b6da144ba91af2475c03d02a60f8ba0989bfa02ff31bd9e5061c13442310bdbf02900a7ee3180347e3adf4fe56cc5457fd0523fdd6a269b50c94c2c1f742846208f8c27493f51301bc31a2ebb2cfa5f2da75526d50cbbf380c3b2d892568e4a8165391fad0ce2d249586660aca6f14394b11fcb662e27251e60ae7d4b4ef1053514d456273c6d7e6089c9923f6b3640ef0129fd4c3187f5bac3af7d55207fc709981fe8d3485fb0d53ff00144dfd3d7f96dc5c0d089a6a9f7c305cadc5b4d6bdb48cbb7ff69b1865428b74ae617eb5aabf8504338536aaa241ae578d79fe16c48c8398cdaa97
0000000000000000000000000800450000347d1e40004006bfa37f0000017f000001815e1a6f049536f6e579fd35801002e7fe2800000101080a0fddf1d50fddf1d5
000000000000000000000000080045000834506740004006e45a7f0000017f0000011a6f815ee579fd35049536f680180200062900000101080a0fddf1d50fddf1d5966da50e0eeea1207cd8c327b099adfb02516ddd62939d8e768ef8295687285367e29a7413e2e26b1af38626fe80bfcc6e35d616fa5345b800577d23c9cff6af7e2d6cc5be849fec350fff00b257e1041871f5365d9399012fa13ae5a28778ce133d85cda1f68f66a93d84751853d60969f03913081af72bb444961d3a8b1f975bc858ff00ba5ed9cf1b5f9822449142e971cff7cff21121235d70b77ef5ff00f5c62ad1f8acef7ea10afe5135f4f5fe5b70918a2658b578b7845b6dfd5af5c2d785cb32fbe3d143aeeec1f6d0c33318ba2c9c53cfef914f44ee9796dc5d338bbdce10a5d7f84e69ff00748895c5479401ae14d25db382d6daf556e89576aa9a936d85accceeec4d4a4a6dd4e71530b5fce24f413e2e2eb19f36626fe80bfcc6e1ac52b44cbce3057e0bc057dc4c544793ca3d4e3c7ef6b662df424ff61a89957634bfc20989d7f1761c71c6662c4dae94e56f74318f792aa7a5e64cd21a5dce952168b546d524eba44b4f014130ca1da7885630f5a050bd2e56aef3b9707f2d98d7f48abf089cf1b5fdb1185304508936abeb29a9863caa54c4c89a976b7494050dddb423314afc63d713524a150fb2b6bde29137f4f5fe5b70afa4b7fce1851399693f845076d7ff0029b2566eeaaa85b578904a4fe11278b207266992d2fc48ff0091fba30b9799c7f0e69d6e5901485cd2029269d62b0ac3e62790b6776971132c1df22b9d526cae70e48f934a72626261251be2d9425a07af3cc98a7413e2e8537f405fe637137e36bfb6230e9b51aac35ba72bf391c93f8460a07fda7ff4e1a9a69c4f084242661aae685fe90f7948842f86cc321959bb936e5d5ec10fca87419d9d6cb2cb60f2b3c8abd9169eb89bc267de0d227ad532a5649bc572f6d7ee8f376269596af0e0b15420884b69b5a625d0122a724a408959c9355f2ed85b2dafe700caf3f7d76635fd24bfc044cb2d8aa96eb291ebde084329d1b4848891c0189cb641c0d871adda7326bd74af66cc7252da6eb199848f5511485fd21b8971ff00549fc23ffdfea9b316c316ae54a4fad4076257ff0030a87dd426ae48a93329f50c95f713ee8c2e626700c3dd75c964294b5cb20951a759a4352d2122c4b346510ab196c2056e56794649e847c5d08cc61b3afcaba45a56cb85069d951065f10c6e7e61956adbb30b524fb098dc61b8ccf4b355ad8ccc2909afa81841c57119a9bddd6cdfbca5db5d6958e13874cbb2ee8f8ed2ca55ef11ba3e50cd5ba64457dfac1999c796f3aaf496e2ae27db1411988dcc863b3686c6892bb80f503a45b8b62f35308f98a5f23eae909989198765de47a2e34b2950f688fde5c57ed8e7eb0b1218ccf4bef157af7530a4dcaed343ac6ee671ec45d4542ad5cd2c8a8350758fde6c57ed8e7eb027dec42657369a10fa9d5170534e56b1fbcd8afdb1cfd61c2c63f88b65d55ee5b34b172bb4e799c84197c431a9e9968e763b30b5a7dc4c513e5262800eae18e7eb1e72f394d70dff0058df2b79a53d2d74ca3f79715fb639fac38ec8629372eb7b3714d3ca415fae9ac2d998f2871271b7014ad0a9a590a07a88ac21896c7f1169a6c5a94226961291dc2b0263119d7e69d02dbde70acd3b2a7a19f17cbe7c5f2f9f17cba761f17cb8769f171c7cab4da7c5c7197cab6ed3e2e30103e54ac1da7c5c6b8fcaa4c5769f17169f2b59c43e2e2881cfd87e45ba0f10f8b8a38faf335f91abc43e2e2d6358d635d9ac6b1af3358a131afc8558b075714f8b653a256358ccfc827b6093c53e2d95e8ba46b199e9f58b01d38b998553e76da8e6348d234e6b3115032e26bc5d766b1af44ef82ae26b1941f16da745a18aa748cf6ebc5d7a2dc608eae2506bb2a60f8ba4d0c5531a74cdd23896a22a62a761f17334e85a6cca34e91df0547654c5888a9e21f1733511427a2691a4642b1a467d0ee31ae5b2a62d4454c65c43e2e6aa0c5aa8cba2691e8c651c98cc740b8c589396ca98b5315314e29f17375116aa2a3a3e9154c6639da98dda3654c50454c538c7c5cedab315ba321b358c8f44d232e6ea4c5888a98ce328cf983e2e7adac6f1420c6b1ac6bd174da38d52628939712a7993e2e78150e4a6376919082da358bd4765474db898ee8a84c66822338cf9a3e2e7691be2335453b637f5ccc5a93b2ea45a62bcc6bb758d79e260a3aa2aa8cd3052a48836e95e6cf8b9d4a7be1b1dd1788b09c86cce28639119f1e898d22b48ce358d6338a83ce50456919c5046b15e6cf8b9cca12a3d46114ec83069b6898b97038d688b9623d18ca0d34e26b1af35406338ce2898aab9d3e2e6eab8b1a101c5f5c6e1c3077660a5e1154f113c6ac0148b8414a8ecd3665cd98a9d9688aaa2883ce9f17339c65aec4fae294d22a98b1ecc45edac0545072847eccc67942535ae7094f771ae8ac149852e2d8a94c55298a6ca88b4f35582a316262b196b19f367c5cc55462898cf8dc931e96cccc5ea8a7186c3b338ce0d3664399a57654c522d1ac54ecca2d57367c5c6aaa2898a93cce91a6cd38e361d958a0314276691a6c197169c4b46b153c5a2a2a9e64f8b8d41a7193cfeecec305262a22948ce2820122338a2338197169d9158ce2d6e2aae63bf983e2e251298e571d27be127bb9ebd1010e9a18c8d63788116ac6ca08bd7a46b9c5131728714c15a8c5a88d633e66a22d5c5469c63e2db57748de33145a62a831a469b73300d6001cfd4464a3147531548a464a8a98ca333b321c5a982cb262e573b6ab48b9078a7c5144c67b2d5c76c550628b119465c4a71a9cde9c5cb8d582cb6ace2f5740cb5e21f1716b58b7af6651457129d309ae7056b3d06a22d56bb4f8b8d58a2a328e4eccf8f4e7b48d38f58dda4e43a25ab
0000000000000000000000000800450000347d1f40004006bfa27f0000017f000001815e1a6f049536f6e57a0535801002dafe2800000101080a0fddf1d50fddf1d5
000000000000000000000000080045000834506840004006e4597f0000017f0000011a6f815ee57a0535049536f680180200062900000101080a0fddf1d50fddf1d58b930af1f3196cce32d8074ba0d4c54ea760246bd0e8609fe2e77794e9558a76456024425aec8e4f43578f9ca40e965716c6f55d4209db9f133d22e64e716ac736af1f38200e941b115a4569947af899f12c4c2dd98f4502161b1924f36af1f3953d294a8bfbe2daec02b90e2e7b328ac2fb56214bede6d5e3e66a0eca04c555d2b74931480b4c50f1b2d94302b018475738af1f33ac6b02a200e92550a8ac6ed4632ebe62a2093ac13ce2bc7cd5a98048e7a839cb01827b76579bca2b1ca1cd2bc7ccd203b4cfa55c608ae5d0728cb98578f9a09574a29062e3d0aa98a1d78eaf1f322d80a59e6b2d9a73a550520e5d16d5c5c9d38aaf1f3374538faf4229060a8f46a2b48b9119ed578f98a6ca457a39304579ed62a399ee8ac67b15e3e6ed5464635e36b1ac6b1ac7a51af345293153cfe717239bca15e3d9278db0944ca2795634c3095a9dad1474b7f84f5c4f4f2da12830f4171c44ca1c42c800e9c9fe12204fbf84ce2258d08794c28233d395a437307079d0d3c521b5f0755ab274a1a675854abd24dc9d1bde6f1e72a839e9545d9f744dceb6e4bd2566172a1172b78fb89d4369a72a2be62c4335eebfc997e9fcdd3587777824fab704a5ca4b2f907b0e59435e55ef65ccabebdda5b055bdadc53a529a8ed86c4e615392e5e36b7bc6149bcf757586a5ddc1a7d0e3f934854bac15fa853384a5780e220a956241955e6aecd21c9797c1e75d7183475286144a0f7e594292b494ad068a49c8830fcce0f86b930d4be4b502067d82ba9ee11e704e1538a95a577e1956ee9e2d22fac21f96c171075a77d05a259652af51a670e2e530a9d78346d70b6c29561ec34d23cfc30d70c852bbdb8695a56dad69ec8de56382cab2d4e2f77bc56e5ca048ad332bb61732ac227f72dd6f7383aed4d35a9a754557066e4f0a9c79815aba8614a465df128ae01c1d99efd93ce2b93e8956613550c876429ee1d87da99a128796bf4ca827e669530ee113ee34b799092a2d125398af581db1c1f0f937e65d02b632d959a7b21d9663059e71d629bd4265d6548ae9514ca16d4cb4b65d6f252169b543d90f6372986b8b9166eb9da8d06a69a91de3be04f4e61538d4baa94756c29283ed8ac07263049f69069452e5d606790ea86d33d85cdcb97726c3aca9377aabac3699ac1e7592f2ac6c38c29379ec19670e79493896e5d969562d876f4bc39413e894f7f6c5604f4c61538d4baa94796ca820d74ce9484cccc6113ad32ba04b8b614126ba67485bb3381e20d21b4dcb52e5969091da728e1b3384ce352e69f0ab614119e99e901b424a94a34000cc985ef302c413ba00aeb2cbe4d74ae5943f88995dc161cdd7077d0e21e59ca9416f5dc3ae1f66625d993530d077e19ca858cfd128b8572d3bc42245784ce2665c172192c2af50ed09d60c827069e332946f0b3c1d7784f6db4ad212dc9e0737cb46f125c46ed2a4f6852a83ac43b273ac299986156b88575186e6257089d79a75562168614a4a95d80d33d213269907a56e2a4ef6659712ddc9d535b4e7943e9561932eb4c38e365f6d85968941375154fe13ee813d31854db72caa51e5b2a0835d33d2182e61734c3530b436879d65696f946839548289c97dfb696c38b7e5d2b5348a9d0a881430310770a9c44a9008794c282287f8b48461a70f76496e0242e71a5b68d09d6dee3ee87309a352e50b71b6de98b90cbea42a852daade51d4fa81876526136bacacb6b4f611918578f67921f495fe4cc4796e87d084891975cab76f5a421c353df9c4de5c01f44936a9c9198a388dcf2f34149a0268bcff00845408c5a5f0c6e5d524d61adbaf29d5a92a68d5de5374ebe4fdc21d677abdd79a82adae576f4e71e47bd2730669b7f164bf34f9c8a5e392914f6ab3eeef84b55e521f54dfd6bbf58c39e690f2d5393f34529694005125e51bebd591f6d230e416825231e98e47cda3ef52035332b28bc2d8c4790e2d477c95eeaa2834eb89553fca5231921055d42aa197b21ff865e58bb4d0cfe255bcbd5998c4de0976abc5584fc09014a510ca457bb4af756314f83ddd7766defdd263cabb1e58ddcb05a28af45563998efc87ba306954652e7083547c5ff354fc4c18f2512871490ebcb4ac03e90dd3e687da07ba18ddb6f15bb8bce808688016ade3fe9d7aa83de04631615b5fe32753685680cc669f566612045a146d386569dfbc8c35a4a97238870051677ff0accd2391570d0eb9a75a1171d62eae7186caa12ac3a652d284b38ab5c65f1de906befa47920d3ee72f7ce21db4e468c3bfa44cff004f23f3d113fe16bf2d31e53cc38a753bb97412a64d1c02d73d1ef8562ee6f652565f0c0b984dff00b4372ecb80ec17c4fe21309285cc3aa5da7e2e7a462085b8a29f3925aa57e21533727d599f798f291a7736d1235403a0362b679318286da2ccf05b8e150ceada2a9a7b625912b29bc5b18b7c1b934a052159d694ce833a44b5ee97d4d6262aa52694567e8f7463bbc5a8db3884a6bd42f6e2550e80505e405574a56272430c949298931272eb79334a50a12b73d1fabf708c65b997b7af210852c04d1b41a022dafbe3ca2654a2a69183254942bd1a9e115fc07ba31371aac93e893ba6e4a640700472b34292680e473ee1908b92684686378a23fc62da00f60263ca6536b20b33ed25047551b63f9c62c12eac06f086948cfd155cf663dc3dd124faf377cd2be51d7d26eb180bee92a79cc11e2b51d4f2a5b5fbe3c991534322bbbea2231453ab52cf0b745546ba28c283e79387cf2dc1eab2bf893183cb367fca26e6263d7f04bffe50f969b6d5c2f159a945dfd485cc3a0fdd18ec9a659d76cc2f78a0a527749fdadb41dbc9cfd49875c6ab24fa12ca
0000000000000000000000000800450000347d2040004006bfa17f0000017f000001815e1a6f049536f6e57a0d35801002cdfe2800000101080a0fddf1d50fddf1d5
000000000000000000000000080045000834506940004006e4587f0000017f0000011a6f815ee57a0d35049536f680180200062900000101080a0fddf1d50fddf1d5a6e4660070045daa149340723ee1a4794aca945484e1954a6b954a5c8c7a5e75e05f4e11729a6c1dcb7c97696d7af23ee4c60d81842370b65c9a52be35c10b4d3d59c79293122d6f1ae16b4583e7950bbeeafb8c6208c3e7b84a56f296e7269bb70a8dc8efa41f1c1212481af744a4a4ae27635206e974ee5b361a11d99e4a56bdb13edb33f9e2c4f0a01941ded453b32d7aa15844de28ff0004280d292a6d2094f61552bd5db1e6a9dc61c725880929b520a80ed552a612bf3d6684140265da269f57ba0e013ad4d89b969a33924eb16da174cafaf7d638579ebe10a2caf076b4fab06470ec5d6d324955b62554275a54650d6169c517c1d8777ed8b537072ebaeba976a4f5c4bae6f19714655c0eb56a528a2fb79233f6c4b4c4c632a52e517bc6be0900055295a52875eb829f3bfa4e87cff83b5e98a50fa3dc2262759c6549727085bdf048a28814ad2941901a42e6b1996c426a71d5153aea671280af616cd3df0b5792ab9a90df8a3fbe71b7efa69fe6c53531e6a6f197132d66ec24213509ec0aa5445be69c4ffac11fdcc4b4be133ce312b22aba55b712d38a6f9253e9582be92bdf0ff06c6569e10ea9e73e0d0796ad48a8cbd90f618fcf3eec84d159986b9172eef4b96a4aa91679af11fb7a3fb984e25e783c212d9642b72dfa04d694b690b964e36e06dc2a27e0d15e566686951ec8ddf9af11fb723fba832182e24fcb4902776dac21c5201fe2b6199295c6141a63f6614d21653ed50af5c1479db92a7b841f806ff695babe8f68854fe3d2f3b373ce7a6eb730db4934c8727747aa384f92eb9b905ad36bbbd790f05f6656010f4e231956f662dde12d367d1d35196a7485cde29253efcdbd9bce266db4052bacd375944c61d813efca484d5778cba50f1248a1e5583aa061b8ae2af3f2448deb6908429691d575b5f7d629e68c4ffac5bfee62526a6711595c8126554128496f4f9a0574112ef4d632e29528e6f5aa2109a2bb7219fb6021ec694425c4ba28cb628a1a6898561f8fcfbb3722e9abacb61a694aa6628ab0d3302084613890553227104115ff00c18121318dbaa645b95a90acb4e501530a979cc54bcc3940e37b96c5c9ecadb9438d49dd87c9bec6e1e97b8397eb535b4115069ec8185e278b4c3f2240438da6c42d68ecbedafe31ff0043e29fd62dff007112adb78c109934dacfc0b66d16dbf373cbb6272555899dde20e6f6606e91cb5500ad6997a2348295e335aa3767fc1daf47eac4bcf79e087a55b534da83481441a545299e83584e307195f0a436594aac4d020f55b4b7ee8626178d1de4b5776772de55143f173f6c2a7f1992c426275da6f9d44e34da54694c93b9ca1e93f269e989294981f0adbaa6df2a5695bac14ca2566958bd5d930a4b2770df242850fc5cf4eb856173d886f2594ea9f28dd2072ca8a89a815d5460e13378d3ae4b29210a4da90543bd54a9f7c2649dc6dc5349b72b11534d2a6953ed8996a6316b9338d6e5e1b86c5c8cf2f47bcc3b26fe3456d3cd165692cb79a294f9bdf0ce30e62959b974169b7370de493a8a5b4861ff002aa666a6e5a516b9961b61a681e106b993965ca5f5f644d4f9459c25e5bd6d6b4b8d690af1c2b846ef56e97f8c57ee8014860550fd68948d0723ef8de84cba5099a486d402726e8ad7eed61bbf72a57c16469f3575fe5f74305d2cf247c36eca74bbbbae9d90e54c96f2d3baa5b4f486bf174aebfa424012e429d217503e60afb2b58975a6cb94d72ed006772bb3ba9c510399cb666365445389908a53a72bc7b3aa025c754a09d2a6b48b90ab4f68e6447571baa3aa3aa3aa3aa3aa3aa33a47547547546a3e40578e3fffc40027100100020202020203010003010100000001001121311041516171b12091a181c1f0f1d1e1ffda0008010100013f21fc82aac8b4d4b3818cde9891d41338794c042a813ad462826dcc30a69fb9509b394c2225825fe658ca0374948085e0993a9aea3343851a0ca4d854592d8895e45e866b4d55737987152b80820c4cd73054d633c42352a2469f9ff47e350d284ea220b2a8a86382298f3139f426199825498052e973ed85ac6949e012dfe0ce9dccd6325a2eff0073f8d070825d5abe58aa5e1c5905e4316af3af78814b83702dbe5551eeec2e9d6a4e9841c5c2bee4204a4cd19d48cd14a774f6430ab8365382da2d7f72b3ea5d3a42cfc367a8959dd9c8b8fa1e1cac29ed1c6a3d083892b94368098b2107ccb70e0b4e1c5101b3b6a176a5d46f45bdfbd166ad71ed87aad6d18ad81b30d5f44f4f80494f8fa872dc53417eb872810e82d045180c429624f3492c642cd2252c109fe209339c0262e5d752b3058bfe186f0cddd049f8e809688674ec4ba1cf03079083731418948f80be25bd7195fcbfa388c3504ba8a9f32c81509544a32c71817897665043fa3949a26c4280d8f803fc83a225fea2001446b9500f8bfee0cc459ec59091e267c2a0f4d1f4cce372a3201d8cebd3598060c264308fca108e93ca760bdae0aaeebae34327be0abd02aaff00a6b8630feb32dde86fe0fb84570870a508691846934f6c173e3eff00bdbfbc6d95c99b46fd8bfc2365e307552fe7f76647cd052cc9e64b4b41812a944f481158a8f50865d9fa73820c330e05d2d8448ea28208501c021e9eff004410905332f58038848bccc04bc54772cc08f30232853102a0fd5c54410416a3dcbec15f92beff000a4e7fed7ca178845a7e315b393e4c3b17e662e4eaff00a17a19e4ca0aba1fff0063a653dcf356663c8991f0fe0d6e6ef7fa63fa20f6d55f1b0485e3f03f186f6e17a3afa77028f64bfc4fd58f9236bd7c5615f4001bc065e6c0c017fdfa305f7e3397a37fa957b6da98d3b09d
0000000000000000000000000800450000347d2140004006bfa07f0000017f000001815e1a6f049536f6e57a1535801002c0fe2800000101080a0fddf1d50fddf1d5
000000000000000000000000080045000834506a40004006e4577f0000017f0000011a6f815ee57a1535049536f680180200062900000101080a0fddf1d50fddf1d5e9880a50659479813fd6570310994b210d9b811666704482a04fe97d1327018413dcce0a59a40d8a9812f789ed956c7652ba899e3fc5c147cc437b012080411c890b466b91c8a1a57f72c7f89607054553a5e6e042fa4d290a163d9d54a17d3e00d3fb0bed13f61fd1e3fc03fc71fd6df61f04fe8b1c712e9aff00511ed52cc071e47ff94d0640ff0028af148abdb4854147dd6e2d6cabed4a7fd6c45d14831758af94493a31ef1909619984c8ca46400a1f87aeebbc02514809e0e2bbea9a446612b804db81b220f530639b4d38a8438ffadf4703802a60450e04c798781ccb144a498705325f119988f57a79a238adb2963f397fb0d488997569b38f2723e3fd97ff0005d0e9e58efd7ccc0fe160364e80adf9a23d052228f56e60d9f4815fe369029abd9b548fc29fec6bb0d1578b5e8080f44ed5d07a553d5717b1d70aadadf284fb9fca7882a66f7c6d7efa7e0f5c3e1535e9f52a350e9ffac369d7d381cfd9c5ef4f3a135ff76e236d68ff00c0bd0e9a34b3252cb1c2124142d005e0fd4a74e01c153284d13096438dca788e2dc655c20d718fdafa380131308c2c562617115596a51998af8ac717445dddb3ed1b28d5835e88cf106ad1b2d034e61cb099c8db40b9f021609b2d5d17f04092f50447c9710dd8c85facfb443df682fdacb01a31307ae1c0b056bf164ff10ad22add34d36ff25ae8f30e53590c29fec376a84b22e61b6ea2fd9949eb196941d8411e923e110acd4480d82695d663a1442f2c366eb0c5a016e7046a6813c269b046be1d02809ffa6a7dff00b1ac40aed50a5beb585adb46cbbf2c26dd4faa51444ea16788ac680a044442835392cad65c7b95c9c6c8f84a3729477331891204cd1d15c1fed7d102ea08e6b8b0d32811d4b93baa6082a53c363cd4f870aa957327069c11e1e06625715c2462a270aae2881021e428cc1a8e48e386313814b1fed7d109c30aae2e6a61c58a85828ccb2cca47ea504412ce358b1c1e4a95cac240e55c29217ca3122478786e678541071abb8158821a8ddcaae2b80c4b5467f4be8941013552b2e5ca1828cdd4d41045454fc35505c21e0a95c54f51952919772b8710e552a54612544951330849507064e23c01c4e2a771c365c92e7f6be883535a650465cba99754c46250b94507a65d15c5c10e1424a254ae2a24782bf03095ea533517878a95c24a952a1e2a818ba861c484ae07625c9973fb5f47083017302671027552d9884a08940d44514632e0f02cf112b82a1195c15c99c7082e0f0d3711fc2a24a950810404a82525419812a172e7815e6622fdbfa20cee5c4f8ca4c4c4ca204ba82702c7fb1c63a9d4386ae148918f351e152b80bf1c6378be0511e4afc00e53f10186b836f05a2d2f85fb7f473990785dc78b499a8d789544cbc453a8cea77c4a9b9692ec8844893d72f164dc31060401e2f30f5ca7a8cd894caa84a84182101cb2812b88a77d12d479832e7f4fe8e11942a27983318608d54453152e5c65cb9b8aa30a0ccd507849b95c5c638972f81c0482c332a323e260d4aa54ae0410485412b1c0b8e229c07886db2c565dbcafdbfa25b0a012ad82c418be48a5cb8bf814949b86773bc97663980c30785d9c3be5fc2f81715f14be18bf850fc09c0488a9dfe190cb5250ab061c7f7fe8827038553dcc4bc452f832ea113b684ee78d8cb700e63b3c6d940c8c906f308b1e562fe04187e1adf0905e278c8c7810523c36e410ea61d7536eb2e1cff6fe88a10c10944039712f73d93b089f305dc321dda23b8b77116a303c32a602541345c02de65e31c318c6625ccf012b85f86a32e312e27030e54a8462e2c903304ce434072914cbbe6e7f4fe88dc969c551dc1207705e625622c7082ef2cbe0299210430d430cd25ed49d1242eed09bb94458c6ff00049f81f82b7718f0410094462aa2c67304e14119e2c8084ae3fa7f4403533620dc789493155c3da2617c4d266dcc90308ea5db252b5c4612b8b12dca8909090e1030c90f4665c18b4b83c5c3935f81821c6a0438a8c58eb8966e6480c76bc88ccb6c39a27f4fe8e309dc1e1c0b388c70ee5a85489658d54c95474c934e274b0614958863a99c445663fe9065463080bb9dd4abdf0b8351e03da10062c636fc5404a82020e0af82e62c382a2dd4b4c2c2554a8254bd48dea5fe8e12f112159dc147856988ece9230d40bb600ae001e93d30ca9d4164c18ea3cc504124cec677d0ce59791e447b11f346ddc241e49482107bb07b4ca27e0d1c15038ac722b0964d11c839111076c0e096f45caaa6a5cebbfd1c8228144c8a95e65b78482051a8262a680867c082a12e1be18751bb8b14c525b8b82e2e541de3f98e8433b8bf6cb7b80f7c30c6594bb9ec9ec87de0fe25a3854151c0258cbb665c344ea86c709b4b97e602a5c5f9bcca489d577fa232e39e1608ed200866621e502638a87052e1125465d32fcca0133a710a54bec4d97c2acf5e3e92c850954f3a39dcc6ccbf8498a652a5c5898b858330cbf30af33dc5b5c3114c96a1665b3263307200353f77fa25c797863ad8394013135c5f047d41e065dc38acc4d4ab845309f2969a38b38dcb8cc0a519634ccfa87b4bae373b95b4b046e648f5118e188cc12be1ee0b8ac66de44f3c50d5c02ca8ad59b5903b4cc03ae3fbff0044ef86318f172f8405951ac8e2e5cb845f2104188b98e0cc444db4eb217a43b3462eb526e5cf0a7619e8c48bcf1b8cb2880d45a8b3c6a3a83d73c962310bea36e0264d4e83452987291e2e3fdffa38b97c2c65f17022a562c13b5122570a1f82c93499cc18e5e3919b94888a6ec4df89a34b5659a6fc041b897b988b96d703c2a26c82cbb65918eb5519660f99772a58c6a2144af0fc7fbf
0000000000000000000000000800450000347d2240004006bf9f7f0000017f000001815e1a6f049536f6e57a1d35801002b2fe2800000101080a0fddf1d50fddf1d5
000000000000000000000000080045000834506b40004006e4567f0000017f0000011a6f815ee57a1d35049536f680180200062900000101080a0fddf1d50fddf1d5f47e1718b165cb9711d914a596a3728cb896b8b2d84e5e0bd4cdcc78b2e59a96751311798466518b14905e2750292da9d2633ca5372db8ed9732c86a5f692cad65f099b3516830804b84b972e7f7fe8e0e2e3c3352e5f037b25ad283a44a2d91b3246ab0e2eb7b99cfc24463315f309bc38ec83c3104824dbc6d19bc22546b332c08303c688c6cc9ce9358ff00b2f712cea5416267130da21065cbe7fbff0044b97162c618b964bfc0aa3ecaeaa631c60b423b3786aec43dda143b15c8022f0597c7e73e7c4fc0d44bd4ea20ec7512e64b20f070a12cb25ac7c3c4c2a4b0659ba4a9f5340404a972e12e5cc4feff00d1c5c5e1971782c5972f839934b6010835141c3ec15118012192f7150c5c1ee5cb8cb28f313e657cc14f24f7700dcbc71572fea09712f0e934261189973168ae362d8cd0581d91e7801258846883087173be2e7f7fe8972e5cb97162cb972e5c615bda2ec137297dda0df292de5c16d6550a5063cca41e38dae5c58c0c176e046770ed67bec16c12ed4f370a812e3984a965a5008704550ee34f86154430940b8788546eb7867157020c184208b972f82fdffa25cb97162cb8b2f85c620dc3366cc0a49d4648bafe08eeac150a4a6a27b9b843d660b1dc62295ca136d5c72850392e0aab10e9b116863052c4bb849b97144b98cd4c45714cdc529988b7b402e2e3c624b7fca28314141830873fd7fa25cb97162c58bc5cb970ba110ee01812b50e25cc66d90eec8d74ceee6779a50cf88b30666a2a99137a2e0125cbc45802e57c8dce2b24386903182d5e1cb86d88b2c494082d9836c896652e53b9c33797e0e237815c20202103065f0fd9fe8e565c58a3c5c0568995a8808cc712ea072840ae1ab8d192a1a699ee6150c45373686660f711cf64dd8ee2475364cf0b065030dc3a98d30cc1d22847455305a97b8273895998ec5110b32d49a2156c33967812cac4107cc0cf817b8416e283c040c1841e172e3fdffa385c5e162cbe321812855616cb89454b20674266c09aa84d6f9e7ad1f2dc9f44b72fd33a14fb8245f1eb18799df1acdf2cbcdcc3a6a0f5d54f2918d91335110d0a965d198148d5dc68034851718732d1308d41723bdb894b5056d989d0097b732e86e1d78460d0831705c18a5c19709fdbfa3865cb8c58a60947b13adc88ed7150cce92d5ae213353fd8676f987aa2fadf280aea56b45982d984586640f7c0ea45554c0e2512f9cd11313a3959c7c446ba9a9772867432eb1c752e4857fa8e0e51acc105e9a89561d4923b6a0ba58ee32451418388a5c1972e7ec7f4462f2ac012834455be31154a952b26e43314c1153244b032880aa42a2379c4e26ee58be605567458c4449729c969132e2a6498d025f8a68cee58a31ea7a657c46eb0bc8657abb8f5753026a3c4b842fb9552a24c8e18fd825838620c18308394bf6fe897165c72dd4cab712b2a3bcbc10254f9a3347c4b21ec435a82f506f508311095ae66835026494942236e461212fc1d4a57598bc0bccac12243170cea886adb4ae610ea07887821b75068b88c9744cbc11f25b1636e31224a89c610e25c86a10a60c197078b8bf6fe88b0c123a2f2c2123b01e3b804a8103899544650ae196a0f882ea121d12c52d4b9695438a68927040343da2189fc4af30cbc4a552e1ec10280225edf4c299f2a60e7aa5b89ab44bd5b630b80c4bb52a24a89125448c72ca819b7cc41b205210308ba8ff6fe889df5327ab8342e71433d4c37fba8046a762558bcea67692323b02183d308b52c8ad0dca21a32e597c37c12ae1465ee77996e7a6239813777fc97575f1310953385b312aa08cf0898b83944408581311728045c2834a4b70b0ac4891254a892a54780c699599e3081f532349081ccb8ff006fe8834eeca163644c6c799965061dfafc210d0892e59cb06b7026a0f9d32e62f52e0f0174955865c8ede24ab3f09d4ee26f2290f860209be05f8129949454a0958300d9d4c8fb8c40cc8b9850c4a892a3c24a952a24495c372b259d54bb9e063fdbfa26f7c566651b8ad309b95475133d28105fb9e38b43147799a5ba6038233bc8ed13182184266796f513a8c22373d61e902d11e804b330494e534dcd824c4498db31472f09cbc544892a54a97267ee8a2e66a0c5fbff0044254398b9a8b48d4deaa0ab3132a8482de0c573737083c2555770184a5a8688a88cc0437170c08119f0e1f088d914ea7a21103802094cf64f6cf94166ea3c54a9554b72ca95122462a270fe22989453d92e0d930c1dbe8e7096d26c73ee1363862f19c457265f7c4788598351a080426e8a633f196955c3be0252225252004038929127b233dc50f01b6649f3136490eeb84e5e5e12270f0c6545acb25bb0cfe8952b8022b04010ab8516421dc1957511bb49ae0a95119542fc3e11f498f5c2224d422d17f13b703448ec18b4437c412da36af7305d0805c3e1513848cae12570e6570f1894462d8edf4735c0f305371c329662951352bc1b6636cbc6e25247327ae784f447d6378e379a254484cc5972f91c701c36ba82de5807c92a265e0f64f2a58c34cc20cc6684a23123969da1db94889a2463c3c54495c54fec7d12b303f0b45416a66a94a959690f134ca520c4a25dd4be7a21eb0f598752a8440ae089e2551818ccf0e381c85b3b60aaee147b13a5466334b842b08d3925006635a8b266c4d2f10cc961dc809c6073518fe15c7f63e8e6b808a7691e483171d43a2334a213a997391c22b08e0bd1f48c80472e0df0c607e00d91bad512c13882e86a2ca43160ad262dcc5c3909a7012ecb8af62e5bfdb2e0c496276b95f857e47f63e899e3a840846d86547c4adc8e9970a68cc0a54b05c0bccba9ebe55a12a8d33c4d6a02a1
0000000000000000000000000800450000347d2340004006bf9e7f0000017f000001815e1a6f049536f6e57a2535801002a5fe2800000101080a0fddf1d50fddf1d5
000000000000000000000000080045000834506c40004006e4557f0000017f0000011a6f815ee57a2535049536f680180200062900000101080a0fddf1d50fddf1d5db5c0a38cae0733654ec65f65441f263c1d5c12f79194a2151371d0c4bc16bcc068cafe86e15ec0cd4c9bee31e5952c8ca953fb1f47e150e32961f1292321e422346a03a8548da659e9e5c213020ac37c9d9cbd96f1a43932ee2f5404f144615c0f1d6058876bc653c8ca711457ccdb9948498d78df370dcb9ce1811ae18f0fe3fd4fa38081f89b9fe841c17736e12999908c9c35f0613aa5d17804b61b691def8b9af397e16d701b3596c318b8c5699eb9ec98b31bf7c8608a770bc9b8a4014dc6550ab26497cbf8373fb1f472724604640dccba295764c33ab9dae541fc283773b29a166e318785c55cb393f04538288a0d832a66592073b18ab70d0ccb7b863338a6302c75881b44e902c93262c88cb788d0cee31e59fd0fa210df273a88085e626137a88398ca183519669ee0036c316a21889b23bb2314752a95cc2609af82b839c122b6458b514e0b7c0e4c72fee7ce7ce221278f0b54bceb946931057463f923c31e3fa9f4421c54a952a751e32ccc19ab52dee763190a17989f33dd0bb425e62290273c22a6a0d6a53d4db8e179173065532460330604751ed08b07819ed943b85fb99f70f785fb99f8aa5b02fb961072d30063c74c12cb84ae1e3fa9f443f3563320ea525b507714772d370612fb4108670312dcb32ceea83e202b5c34753d72abc4ae11cb260944c7333818846e04188119a978e05a14e022fc4c3c36eb82f8408c70409372b8a5428c78fe87d109be4e0f128e2ab45bba610a32d4f2a586e63b661c318dccb2c3f13d7003847820c27a974aee553b97331ca820884f10c981c1070f689c3c5b7c8c95349809b48274cbe57dc2fc0c258431528ac5755711f0e3fa1f47070438db3311184d09536b838c054652e03b83770b330bb676c700b97a59d37f73a64e8c1995a845e49a8398710ca5cc68234774ae1e1b11e0f0906b826e01b8986b3b1d0744f7701c4de321237dc4c2b11de93fa9f44685c04ef51fa0d303b4a2156ec32a6c3e7264a850991b9b2c6d6566249c28a3471124aaddc50c6a85853fe755fe44bdc6b1ec6baa1a30e1f0c3962d15985dff81c6f0c40015b2bdf687860f2b9797ef53f0954f0adf82acbe2270652985a35b0f130b6b05aae9d9a16bd41ea01bfe2597cc15bd04d06c4e98bc57a5cbc831791c9e4b6c209a606dc303e659447b6d852e8a68ebc47a6f290ed064786665698b6b679177856750017920bcd0acf4288b69a0bd30b89cb6469a82c377aa96ba986a4e8d3b625627b4f440abb9705ee84a4e8413725af01eeba895f828acd28d7844771105f2a0b59254c27bf152b5a9abdd451b9b727c2b24b7d18cfc336a7608578357b0c5b46a9959855e1160094528a17b281e56385fb0afc5076350eed94cfab727a2079984b20d0d87d2509168244f743d9f31dac20ee8151bea7b9c2a631c0c397c4160c43f1e49b43f74bf234076ce9241d5d9e45772ac916a1ddd340b19b9b2df185382837b09ec25752a1faa2c61cd752a8142d76afd8217551d6aeaf656c5f43dc6fac2b3ff21d8984c9140007caf028b2c1e198cfae112a0ecb15d422fa784121b0ff001b5ea058c44b74336f9895b6c7409a2b26a3fd3a744012c1af64722252e86c60d9dcc62f84ea193295e3b788fac9929d8e8015b58a9929c50dfa318d903fd1f44dd2f32ad8f5d3670e52fc7532b052e7ecd7cc05a701984ecf104186b7e634c501df5a386aebb8ecee37252b2e0fcb3e9297af079688f3b9819d1144f84e2d7c5498378c21fa999e7720ccb4bfb44f9cd91237f43e23506e79c3bbe6d1ed9bbba040aa7bd88af4cc6b0d25758cb985f5f762df8eed1e1e2662b486c9549ad7ec66017352af85e012790b5f223ab6d3c23e4b8ffc19fd7a09c0f42b598ea66a3425a838462d792dfdb1795b884e26ff0027a8f28e0d090b3e8e2af3d1b2965e4bc9192600b7637b070f820ffbaa923270b78300d55bac71ec25482f26b7034e4e7b08a9bf9d21c3fc947f903adbc747fb8339a7d91d0770760b0f90fd4b5331acb0c497728caf4f5a97a24530db8681ff0009710aa817040aa0b4330009be2f481eb2c26aa1dd4ddfaa81e8a085f030ad2e0eeb18d42852f45bcc6240c5920eb590df840306d327b0c61caf340a21560d231062b9e5fa58d7348a5b70ff00a605a061d27c43d9e9e210fd664c9bfaa882c07b7b2d6dcbfb300a74ebde9b999a9e150833e003fc9fe2a49ae1d4aa209ecffc60da68b513252672af98fa17021a5899c9fc214d1aea0db0236e6f3102d2cbc1675e2e8fd12f1b83c0dab2d4dce318a617f18e00b5d60ba94e4f492a6cf9b496b0cdb096793b3e3a9733cbe883206d863a665ff573217edbe0b6fe23414c564cfe611aee3c2d06418cdec5bca9f71c37e7ac0074bb73dcb406e383562b969b828f62783c9d5ad43d42e8751f42ad561b5ccb98d6db3693366dc26558621d99af746e67b45a7774d6951d9edb7cceeac9d3586e523076c4dac77c197d2b588f1ab2d2a6db942c1745c77aa5617158b1474c628c4ab600179b1b1a781dcab3880585781b54e3a9fec54e8758d4155f43b8fd8b8ed1485752c8b9b9aa1028855b7b841ae54eeddb70c5d63ec660504b232194b862694a167416d684575528caa1b64a2905a5cbb57011a22ad9c5f67b3b9a7427bc11fe435a94ea00f5061d14037996b56a44b1d1ab3b1de2b375db82dd2d40509a29b594c08a9bf0160f59f965af857527b5160d06a053d56485a7656fe4185509b181c13f2f948ebdc2324534cab0460a6d85f32db2026b1560ecd69ef70cc194823a5acd6693b8cab2ab9d14adfec9aaf58b5c6c0cc1b73095bad4add16b793331f7107cb334050457884746f3b2adb9763c6426c2
0000000000000000000000000800450000347d2440004006bf9d7f0000017f000001815e1a6f049536f6e57a2d3580100298fe2800000101080a0fddf1d50fddf1d5
000000000000000000000000080045000834506d40004006e4547f0000017f0000011a6f815ee57a2d35049536f680180200062900000101080a0fddf1d50fddf1d536b1b17d0dbcee22f30c6aaa8be3b46a5746d65ead8b9cec828cc48a9f19d4797cd1e2df2483f03c4611c3c3b45614f6f30c32a0d62c2c3418b6663a2ea0a186c0a0eb7e15368cd8c385806d3612f5f580e4cabacf88c20806bd074b37977311532cc47c981766fbb82ffacda191863314e665e1e6b245e59166efdc1375f4fcf06fb259cdec0744b1c46da511ed5bddcb93bab887ccfa278a3a8d79df2bf57297346a5ab974e15dbacc1992f092affb1bdf50bede946063d745e67ff10d3c41a81c38317f82557b87ff009c346dbb8b46d092b49eb4d3fc82516571122cc069f79da45e02f8210fbb8abe08c1c136c372d008633101d4c0477b869a951215af332020f8264b5c397f651bae1a81b4d4a2215c06259c35063cb136b25c679150c41871338ae31ba9fd8fa2764224c1fa4c5490b8f87885d80d25313be404892d689ea20180836c6fc46b9e1e26515fa96fa9f0c18d41b15fa9ff00890ffc93ff001259ff00e251ff00e27fe2cd23facff833125ff09ffe12603fcc25bfd118e6a78b8ecea78c8bb2e3c5345c3821c5c58ac14496a96978c2cb972d972d095e2a2a3ffb3e89ffda000c0301000200030000001010de9fac6efe8d15e0b3f504a8efbd62a33a6d52a3850d74964bacde3bf46fe81b5211ed974fc3682fd9dce932932672c88bf013224f92880682c91cec4302744034c6701268f8a29a7d9c900d5c0640746a4a24a2382171a124274d47f1e3f407291b1364c4120ae010410400c100f65f6c1897ee5d7ed47b916685a42793f20792010096481052588e6f6177beb174759c8cd6132b69089dc8e68489fe54987ccac0469c8df21f97b327353e88a21a59bdff00fd70bbe8ad3bca34ec60ac9553fade1d753ce5b49349afb7db16ca216efa5e6ca823eecd289ac02bff00b3e024bbed2492efbdbc91b3c6d747b76e142557352ec3d81d2034da0364dedbe49ca05fbeeca93c5b6d851159feda52b169a6ceff0036dfd794fd32fd7f9986d26508f938db0cd2ddf96db5fbf97ebc7b49d8b3697f9b9ab298c68560260396ccd66d36450094e64d7eb5dfff00cd343e60774a94a33ec34f6707d7bbd1488cfbeb7f0ebd139eb1323f4107b98f26a2978a53ddb7e52b66d665edf6fe8f182042f2221fbc933460f570bc8f6d9ec844b7c6a9bfef14682755f1fcbaf00d826b7480229727ee8997ef44edfefdd901b62c3e9c1c1d3787a9e01cf4dde6133257b7df7dadc0255a77db9a15124bd9f68661d10fcd2297dbe6f7beaea9163ff40f8a0149941e4b4c4cccfa74a9b6f7d66ff5d2be8f47ecc111257b52eeeb7c7a6756124d05bdbe82ff0026c5c677dea8611b0ff598222fca02fc975b347ee4dad33dbb7b06eb0bf369226482ed241861feefd9a6b34e4ce0918efb2ad9f5b5c2090daca0b1e25848e8c929fc01fcc7a6bb989fa74fd1d2800027493ae9d2cb4904e03c1bdacae46866997713d986740248345c889704880da4b591f635723aaa6a85a1be5e99809008a1f1d35e5ec248b691ff0012caf9c6e6205546f4af940082493fdd1e0ba60049a5e691986b57247a492c73daec30050040fdddc0b5360a2df3f6d7a712a28ac62c9b95196752440249a8cb1b54068b20b2b6fde6d09d2d65f0e5b6d968d344d15ca3f1d8c6268e167472f9ec4f6324af9647fedb40480498e136222ca550ca9416b7c2990d428e38a2bc6d9e812ca2caddfa0913556f585d4182c1b7a5d95e4100b7fec81b29247f20d8e7b785a5f9bd73a90d5584431021342ff7a01a45c5f8dbf0beac17c0aace0b6f96ee787a0340d6efbc02021814a8b87f57376f19c6142495f21e37df8b0bbb17c120401c30d2a9951237d2f5bd24842dc7db30b24003f3832dad9baa182c80dee8f755599fe51bee4949db6792434019ee5084a504f4e0285ac15bb797161f0e91a29abf44032033ca302c285c49aa03f533cd763af12786cbae9b65a0004a914a36596ca35de13a3eabd908bb23913cdc769a2fdcd030e2d595b543fc8112d2799fa78026fdcfd8b91688198249fba43176847ca5ae9162d41276a1aaa37a8000101afdefeef9e0ea97b0431f34cfc5848a06abbd69e44824829eed09be69ec492305c097ee32e063af5724b732001b168212adb9b6cb7a697a43a658bc1723bfdb177287738353c281964f1dbaea52c159f624f0139f49f5d44a968348d768201dba587de716e38da0e04ac865f6e920c55efedd31e084242c92d7ed18ba129212222af0a0ff00eb25752e4390c37e4833769b3f7e9a9dff00d18d2ea9676e3bea08f5c2a66bb651a82d2492ff00eefaeaed1a7b367a1047c4ef44a98b463929b2484da54d816921afef39f03bf9daf40d9a67c0ca490e8b2709013e2ecdf395e86ffe22e5047096da5f8953fad420d3511b4d61f719963337efb682782a2e71eeaf9acf1657f94795574b0fb02d7f7a7ba73384aad3a97ce304192e157b3feb3ce19dedd6bf0d8041cf4e22aee2051f3100492d74570fdcb41bca7fb17ae054cd5859010f3dc9ee9010d8f6426a965431cb11e4fe44e30c396ed2d944d420dac916204fcae37c343ecd00104800900a288008f8168bc2924900824900fa080011c06fae275b54b6fb84b87f417ee68209270bb7dffae2ff002a0042a23b6b12ea3ae002e2ba49560034da1afe56bd1b466377ec29ca96174e237f9e17fd0c1201a792d2099410434b3fffc4001f1101010101010101010101010100000000010011102131203041514061ffda0008010301013f10e3d6ce6f4f5c4fbc5f990869c966a5e160a521ae4d09344e04faea4948cc0bfc90fb0db72dfafc1f26222fa8e2cb6dbc7afe71cd99e2e4bc61e590410070059e231bcfb0079920
0000000000000000000000000800450000347d2540004006bf9c7f0000017f000001815e1a6f049536f6e57a35358010028bfe2800000101080a0fddf1d50fddf1d5
000000000000000000000000080045000834506e40004006e4537f0000017f0000011a6f815ee57a3535049536f680180200062900000101080a0fddf1d50fddf1d5911c24861c4d823cc93601c018fe50bfc88887366db6389f978cba3378976c82fa2f87effdaf9e6c3af58e31fac212de786db6186df22f8e078b92cb11c7f19271fc196623449786f875fc786d4ce26c33afe0fd05b020ce2f6f6d6188311f2dce8c66c32de365905e3c785edb6ccbb37a613fc43dc03ff013a22dff0090e4b6125932d9c21c7f1b9c2edf17d73666d9c13096cc5bd2e7570b785d37dfe5fefe56255ed9641b07fc88192e1b2b6de1f6f9e2f72cefcdf5d1781be4638f8bea53c31fb3184897e38f4335bfe320ed88e87d6d8b13317d598888fd883f0b6cf430fbca49f9c9e51bc0d8832f16cb65db2ce84cbd7fb9f81b785f187bb6f3c96586fabe38fe7659df72870cb32597f0704c9fd67f53bb96f4bfd8ee5e2d867afaedfe27a308e9265e12fc0c3d7de5c4f5fea5bc7836c4cd8efe67db2ce3c0d79649f978e1ade91e23c252ecfe48e965bef5fc659fc4ee7088593d3f0df58f6fdfd7c4e1af00e14fdfd1f78cf92f03a7a75b3f670b2c822f8432f7612d97277837c73ea6dbd5965f30d6c2f96cb32772c9f93d63853ef37af0f6f91c4bdfd1f8d8f63c8f649fc2f1ae361ac7bf531f78ce3c27ec7896d997f03933f393824ce67fbd7f07339965fef4fcae8790b7f6d86d8165925964322713beec38dd2ff26ff7bb6ecbfe4321de021d78d93c1b626edbcdde8fe4bec4f92cf9d1f6cb3a10f399e5f50599644b87b423c21f26ff007f470cbbc3c7f0fe7dbe4fa596e5b10dbd189717e07e06d8c32783d82fb6493b09616c5fe4dfefe88e19e19fc3fa7af720ce6f0e5727f22fb31d6f0fc7d47172de46bc07b041c24e84c95aed9e459c187e16de167e5e79659f8239b96bfa2c621db68117b7b37d4718f9ce8fe064913e71894907b7822c9217fbf87ef4fd3ddb6db7847de67e4124f346ff00bf4165f51c6dcbd58733621659cde2bb1c5de29936732647de36591fa7f41ed9107578ddbe32db306dad893f8fb8e366c9c67b05924b9318c623f6677c3120b1b2cfcb2c9fc1ccc87f23f1a5b3673f23b9e4bd8fc246c8f09ac6316de083a9f8059789eacb2cb38f6cebf822dd8fc8fc1f6dece7e59c5c9bf51f849263e72f6cf0dff96f3614851617c625ce361bcb278616584f0f53189610481f839b2de7c65fca01e6e4b7a821ec7e52108b6e32fec889fb1c0f41b7985870926732498c4ce37fb1d5b78756d2bfdac0b2de7ed8b1e218c7e44c84ef89d43bdcb3a4432fb0c9d5679f6c5bc05865272f38933fccf3e41b23d19ff38c5832f39f71fbcb7b4966c5b6fe08e15bb2132e7e0fae0721d836f8718c1675e0709e7c9f656cc8327c99bb1ec793cfafe27b0bc1c8679f6cb2f88bea1b6fb3f87ae3d3a18b4bd441248309e7fbc3e70fc2ac1194b93bb162867e3ee3f93a226d5d2db7814bdb781f2649339b6c7b6737d844287177649d432db79bcd8f258eb6f659abb04190df7f0fdfe7e5b1ccd47fc4a964b221c970fb1f25fd09e6fb0f3c452fabe90f6ce1ef0becdbf0288e01b1e74b3a7d856ad5ab5facf6db68036b2021819c4b1b77844f3f43a910dbcd7611c5ef4d86d89663f62083fc94c0bc12cbff00b16cf3ea5e5b2c45befe5f9306fe35e991a86963664470f6d9597b7b0367f23e4cfde6e5f6d2c0bc4cdb4832f2dfcbcfa87cb6db6dfd7f932c8f655e6458441b6a431fc12f0d5eb92331b3dfe03e4df789b6ff0060256931cde26d877f2f3ea3f96c97865adf13f632421a4318eedf63bd5264930b29ed87559831cc82fbc308f798c25c977f1b6cb2db6f3ebf9b2c967fe4be5f7ca81150c7d82cc9e0dea93c163c86f1b6f4b759c4d6cfc8de231b4b1b725dfd6cfe7ebf9e4c276c1fed84f20b2b318d4bfecb582c8645ed6d0c9f2c49d37af921c4c2d2ca5df9089e86b2d8b5be58da04dbf97a7e3ebf8ecb0bbc8d8b1f16f3bb2811f5fc4438c3c88e12f6dd625a4658a468e798c70986dff687967bc92787e883f3f5fc1b6db7de46dce0f1020b096d0ebc21a41ec725e62d610e4d92f6bd9c463dde07b78de20f636df783ec7e48f9f8d97bfc17a0ef213671b53ae8896ffec3ede219e91f679192e5ab7a6f1cac63c4438d9784c078e599241ec36fe76f6d8e7d475f2db65b7991c93cd97a0d82225b6fa9c37ab387271690ab8208c27ac7ce107b18f967f10f90fe036cb339f51ecdf50d95fe58930fbd3ec364c9e3e4bc0d82c838cda9e40ff60b1db39a1adff7802c0b6977a397a780f21665b6fef61b6ce044e7dc7c965edbc7537ef8c8e01ed9c506c7ae323a9b273e255845de71bc8ccdd89216d860d9f78044ff0007a42674757fb7df16d85b7d8b2cde4be23e464c964db2cb2cfc3f2cdbe4b6ce22ee235e0ab058bb589abc72e13ed9649fc7721db7bf5c6f0f23a5b90a278d9cf23297b2d82cb6d9e1d7d9324e89637b6accbe583c3f007fc261133a96596596db6f18f39b17d7e87226ef1e38753327ecfbc033f196413f8258d8da7219248641b103b8663cebfc1fd6e5b17d7e9f21867c9e2f9794fdb21cf3f1e71e1fa179927017883f124b1e3fc1fcbd1bea23f0f0fbc79f13f6cd98279b6fe36dd9626248fc66dea3165e9c964d1dbd59277209923f59f85ec7d8fd1f7ace5ac123264f36d96f372db6d89fd844192c35b02585af39b64cc448b391fcbea267e3248fbcde2c4bafe03616db1c5adfb947cbefe7221e4be4bbd363f30965fef03649a3cffbfcbebf5fe4c78df60b3381ec1019c37d7e0318b0f07847e4f2db65f25e0df30d9f50133cc4de2d4beb8ff7f97d47e988bd5925b0c9795de0adb65e3eb8f70f23e47e0be5b6cdbec1923c4790db2b6cc5650ec7257fbfcbea3f79c1cbc64aca5979be653d66626c3395972d
0000000000000000000000000800450000347d2640004006bf9b7f0000017f000001815e1a6f049536f6e57a3d358010027efe2800000101080a0fddf1d50fddf1d5
000000000000000000000000080045000434506f40004006e8527f0000017f0000011a6f815ee57a3d35049536f680180200022900000101080a0fddf1d50fddf1d55ac776d983617d72f9b7618798b38d3e46617e59fccc7f15e0bb6e76717abefe1d45213325b7aba2db2f064195ead86d6f660e6e49b1eb78cfe46db6dee596590cbdb7cb196cc9a471b04e23800cb32666db61b7a6bc1921b06446a18721b7f0f44e359c4967e9fd1c6de8296bfa08f2fbc3179e7d4fbf86dbc656978e3c21b6dc861b6deac6c70b324fe9fd16e4b2f05f652fbc7a41630e4c6b3622dbfc9e3d5bd30f24c837a430db10db6feb78ced9f97f0fe1430bea5b7991ae0f53e4b93152c3d2cb7c99f2587beb1c3f86c3b6dbc0c5bfac2492cefd7e9e874709220994256de213125988e1c797be33d3ad8c1fc36db6db6186d96db6d878c965925f50ef76d9e37896ccd6600824c83663124d98890443e4fade6c84cb91ef3f2b2cfde596f77c884db6de1f78936e43cfae6db6db6db6f536c4994b69d83780c96437fada39c067c0913d8082e423cd8b8c79b611e5b6fe8b679b6db6db1d6426edcea5db91bea7fb0dbe79bef5831e9b0f9f87938767c7f47f67f3fd732cb2cb3bb6db6ce24967ea0879c23ed880f38b059e592c7043f6cccb0cd82ddfe593ccb2cb2cb2ce338ddbe776a0c2fafd2f1fc17cc7dbee1332626edacca56d59182549d6f13631690efe9e1f86db6db6f76d889bb6f367c9f63f3f7f497c4760e124f249216484858816245891620082fa8fd3c38ffe03c6ffc40020110101010101010101010101010100000001001110213120413051614071ffda0008010201013f10888e16deb81c1dc832c83ee4483edf123ea9fb0449e410035be290fc261f37f18224d6349038064c15c9384fe0f0bec1102cb2ce91cde176d6c125f23de1cce24d4956488bde3abd59b86e4b4ce6b24645c5532e0a4832db561465fae3ad2cf325964f14bc27b0e032dbed9c238f3623ec38fb1e473e431fe0fbeacd933a4f0fb3f7f4d112cce3f2c6099fc84b2209260d926238b6dfc970793e47b045b2c791fe09d993a7073fcc7f3a13565de225924964f1f524f0089923e4df5c1c37799e41c0b3ef0cb6d9bd599fe1f8dcefff000164d9b22cb3c36db3d17d97a082cb2f937d706d8618781d19961b3c8490cec364ce06b963997a67fbf90c07a41fcb2c6765993636592596499332c9b7bf821d2fb8cf565e83cb21f760fb69f2fe88be2dc3ea0c320abfe5ebec099c30ff00be0199d89f71e723d7014fa8159fcfc398eb37a06d9e70df1dcb381ed9118f9132ff0024c6f00e1ffbfa7e7f837bbfbdc8eefe56f5097db6480e658707b2179becf33f0723ce2c963d88191db26cfcbfadb6de1fb26db7f2cf0f18627f2c9e4b8db6db0db1ef1f17c6ff0085bc08b838d9ff00cfc6dbfacb20eedb6db039b6f46db6de24da47e5b6f1db5b2cf0f6ce0ff217c71f51aff20092cff3db7f07ec2ccf66597f7964cefbfc65b9dd6b197c947b
0000000000000000000000000800450000347d2740004006bf9a7f0000017f000001815e1a6f049536f6e57a413580100277fe2800000101080a0fddf1d50fddf1d5
000000000000000000000000080045000434507040004006e8517f0000017f0000011a6f815ee57a4135049536f680180200022900000101080a0fddf1d50fddf1d51f20833f2f4924ff0007f23d1fc9cf92ccbdcfdace7cdbfb3f27abd9796d90703ec7b10719e96f1fd9e36db0db6c41b61b79b7d9f259f7de6df7fc0e7adbe707d967a75bca3d7686416445b933df9c38c4cfd264cbcf96db6c30c6226db3165ff1ce2c3aec3264b3ef036d2c8820873819c0889333e433ddf2fb2596596593327721f2fbc1e6df78fe32cee5964cf9cfda3825972db63ade178c9911d3f02cca1fc93659f84ee496365f2d86d961b6597f6772f8b097b1c1f2656c47dbe21f2511d26d961de887a44f19e12496492757de0db6dbb6cdb2c7e4eedf364dbbd257675e7f6fabe6df2df621be38f3d95e07ac260f7f1fcb36f91c5ea5ff009c4b23a736db63fc0b2b54317a5e8e02417f658de10e92f1b6cb93c0e8ea918637f83d48249e1c4b2cb38cb20ce36db1f3f07e087274c31899f32cfb664bade2c38a79357d4bb62f00b2f90dfcb67d83f64fef0356936ff3bb9317f39c61f7f2ade7c77224ee4e0d84b61d879f807b2c9cbce0a526c40c8b2f93d621267b1c83b66c4c59216164c66677399f85f2f51cf8e1d596f05a97a9fc03cb76f9c12e02c7ae45278e6591c7af0924e63c8e104c6b70d98acddee593d65963f03a926599689fb3106d843e4b6b6b2b0e4e3036760323ef185967e0399cde24df23a9fcfb586d8cbcb213932d9644c820d833997bb645fc2f5cf5e603d9be52fb6dbd1cb2b667a5f1b78ff9b249c0bd95b5b6d86d884d8a33f2492cb2cb3d83382cef9963e4ca4c86f1f9359f33f7f43960c83209996f36dbed9fa6cb2c9e0927b6730436db6f23c060ce36cc6441b04f3e58a05b45bd59cb386a2f99fd933b584497f6cb20b6dff349ad7ccd3cb6d86f21cb4964fb24cb1ec111043086c376f2651db1f65cb696fedb7ccfdff04de1f2b3596593e5a5bfe8633ae1ad638b32f17a965a5ee38ca7ef0105ea0c9d162b4f2f5e33b032772f6fed9ed9edf33f7fc07275cdef9109638cb2627fcbc4306cf02da17ac62f93f6592de1832238db07b1ff00255060b1b4e3677e67eff9e6d939025858d818ddbb067f9b11e5bc0de0ee63bb189e322fa85e40581e4aa4631c3467f5f33f7fcfd986c896dacc72063d3fcbe4b0e5bf858363feec589064f19c1ede0e8ddc6e0392de6365965965f33f7fd0727a4b8bcbe4e96762beb1ec9fbc1ed9f8cbe5b692f24927ef0fb7cb09582af5987168df78febe67efec2cb2c20d9f397d16de5af6217ce803f4db0b2706a370ef0364b61b6fb2597d70725e35c5ca792c17cb67f5f33f7fc06cde0321e5e1bc6d1ec3f89c49679cdb84bb3d5f381594b68924e3b46a56ff00f7a4ca4fef365b6827cb22462799cc933f1f33f7b9659659906c193cf65947c8e40cc8ff0065325ac327e413c6017a5a6dc8ed2097a70161d8416412e4bf1ecce594793ff3f99fbf9cdb181b39
0000000000000000000000000800450000347d2840004006bf997f0000017f000001815e1a6f049536f6e57a453580100271fe2800000101080a0fddf1d50fddf1d5
000000000000000000000000080045000434507140004006e8507f0000017f0000011a6f815ee57a4535049536f680180200022900000101080a0fddf1d50fddf1d5fc91678c712fc4eca9ece996b1c25f21c9778bce09b0f3db1f9249b242ff00ada585a59bd39d470f67c98be584a5fd0e3f8f99fbddde0ce2e453d89b36936bda49f6193d8581331c3c27ef2f8cbdb131c3e2c92e3a1049d9b2c86739006435b327527e09fcfccfde8fe09b1ff5065b7a7865912185b1091cf8e3129796cf2fc867822212d0cbbd9d22318a3d86d965656ae5b3ec9318ebf9f892cb2021ce0360c8e25f77b899c09266497896fbcfb0f241bec7cb4618670ffd4c602f169cfc9667de6f161cf59f621e33f9cb2ce7c4fe080116e5b6e4b3f7904913cf2c99e1c1bc131bc2faed1ec4913f3a99b16f88b2f8eb63cf6e070ee1ff0013e27a7d80eaf1b2cfdbd44b24e04f9c6ef49b36dc98f67f8e643c8097ea79b26b28643c5e7172039a2dbf9dbf919926f4cf3b9b647c97d8379ccbcc72609796e59cd4eb673e2cfc3c31689c4dd6d67ff36762f304663a9b7c84bd2752ebfe8e67e579c89924b45eb3109bb1e3ccf9c7b9a584c413c48bd49933310482405e5b2ffc86d86c8b46752c2cb09ff059d4a3f1f13cc9249ff88871e910d33f65a4124f90eb7f27d9ea6c9ddb77bb32db2db65e27cb1e6eacb3f04b3f7b1337a65f1f8cb3b1b0f75dbee3e5fc9e0f1b7263f862cb3f4f70e0c80882481af472fbfe59d26ccc60e74b4de6deafae16161181c9e0f6ce3dce37d733f490596732c12a8761c8787dff0053a9fdb79d58f61ea59c7e46ade91c2664c5b2db2c33e736c889920ee13c3abea216b26a31f619f21866194f0d36db7f3f27f03c9e311d7ab1d9e10674d99b6db6db1d22fed9267598738db139836592cbec36c7b0cce2370c31ddb61dea47e4b78dfde36cde52ecfb6e4be5bf921a932fb045fdb6dde6cfa96cd9f39892cd381f20d886d864434f20c20d8fc870e13f9d867e73724df2f4c3c965b7b937fe4104707d8fc12db365f27d9e123b23142498ad88fc187608f3f1967e361fcbc38cb3832f6dc2dd997385b6df610479c9f62d9eb3d6fe4b21046f04196c36f05cb2724cb618ff00227f0cc317f21ade9ec023db2f89226381190cb2c7d899b2c92c96d997ce5ea6d8349525a5b6c4d2f896db61877fc320fd39cdfe5b0de17c701db46f57c9b208e3d089b2cb19249ee2b76388c4c4e9906c79f8041ff21f8db6fb644596cc717abc45b6dbcf91c3c6db6cb66ceaca5b65c8ef50230d982f53184fb65931f6561fe213c7bfce3e4fb69661059fa1b65f79b16f6f5f252ecf3038b7de8709b35384b24b092ce10778dfd13f978c2d825e1667e0f76d96db6d87fec1799ce7f6f8979f6585e5e47bc2675f64b244e38c92cb249b21c89b6c3c387e09e841ecb200704f7b932e5bc6dea65f21f652961e2e9e4f7f0fe338d924965f2c924e1f61cb782387eb2c87b786c6dcb37867178306dbfbc33f23edb8cf6c8659
0000000000000000000000000800450000347d2940004006bf987f0000017f000001815e1a6f049536f6e57a493580100322fe2800000101080a0fddf1d60fddf1d5
000000000000000000000000080045002d63507240004006bf207f0000017f0000011a6f815ee57a4935049536f6801802002b5800000101080a0fddf1d60fddf1d64ccb0bd67f0f760b2c27831327efe3238492cfb0db0fe8208321bc312fe1cfd9f25c9f7a38b38fb7a9c5fd9ffc82c3edb32db645ed0fe12cfc7f2f26c92124966f191c20d927c87c8e659659641f8582223fb223a463902f8d9ccb88e0b76bf6c8db07c97fce1fd303c9d411b28e703f6dfcb658d9ccb2cb24bdfd9c3e5ff5b12780c9b0e71bece63e7fbac2f5d2f09749993f7afd9ef0e7d7fa1fb7ec7f8bcf23e736db6db799644cb2353cfe597fb154616d944a2635cb56984c36f812fea54125fb22733fc379b6db6db6d9cd4fbf97cd9b32d63e7e8e1c24b21ede266407c8667f6c7f24e62f2f19161190de5e17d9ff008ec3eafa5967499fcaf4b4bc924fd1247f91dfa927c9ab0c2c92b21656dac2b52ad42b595936bc7c727e499ee6d9277fbc61d9b3cb2c92c80de0f2ffc400261001010101010002020301010101010101010011213141511061718191a1b1f0c1e1d120ffda0008010100013f10fb8f2c3b96d9c8391f20fa820ca6fb4c0a49f564613ad1632f2618dd6d1b6b85820275009f0b6001fe64badfdd8e6fee37b13e366ea19b0a045f1b3b34f9f99c999f1b715a0e49c63fbb63c26fb2323efdc0fd1fb8a88bfbb6fdddcd81c6ff00a87cd5f5b69d13f70ce29fec1c85f3b6f004d3b6665dcf613dbef18c985fdddcc7d6c87333ee5404be361301d1bc477238e46c8675976d884e88404c9b1a62bd1db446439f87f41257f3db289f25ea7eee65e7773ee26487bedaac0b7eec413e3f0462213e11bc3236df9b025daf063a6bf5e0004603403e587ec0a398380163d51e3274cbf3be95a160e6a7e6c149ff00fde60a5b9cbd60356a8837e0b808d083b1667875cf0784f05a3c8bc05735a160178805484ec46bff00921652c31d500206287704d0072498b311180ba9f965263ee9982385deafca83e94a10b9740c7787c9b06e9ad96860ff00512993b9906b8437cbdb9dd60931e8a3c67d2ae2540161aa7713f058e16b151a45963be6b9eb189bfc10140ac0e6a7cb0a31edb51e07dedf3f451104265bba0faf1b58520a780401829abd201d35fbb6e316b0a7799d83013c9cd6c6969f543d35231ec8e501db514de43df02d32c47e0b783981e4910c082997e38aa4818c125882c1d9421b1e7e48697ecdd2e2c2cba80d4af205fea21b902cdbb63243e64072ec618d744392b86443b186ce5c93cd9dfed3029c845fd40c16d2158985a5ec5c221abe0e4fecff00e7e5a641bbf5d4109a13e5fd65b43c83e9cffd8100018078127d1e6f0e27f1a5887391a230ff004c882a3c8bed98742dbfadff0036151f37e9a6a48ea005020c2e61788ec40889bb06ab8cf8141da75e63f837423e4000d33c692c7b563b6a7c393f58bf91b72acf7c9fe697fe65da0fc1ea53fd3fd16c62607a582d889d13eef76e4e1327f7bbb00ccf7b9fb7ff00d3f0fe72e844c21a7db67178da79ccd03f75f79c540ba7451be592671c7782ee677de38475f2f14627f8db4036fda93ffcb325c76d3abb91c6edb9e47a1e58fac695e5db6c583726f95655bae225c17a9d47986c0f1981518801708eff0033ce99fb9593776d525e05ccac2e1996f8d9577230e5c38f2063e720feeffe5c4222a3057158b87db82ff4c2cc01fd269f60cdfa03e3ff00f95a3e90d9a2bff2351a59b0d8070b4805a3830af386c02b30c2688f8f88cd46fc40470f0e41af2f034453ad2d584f86a183a0fcfe564eab32fbea7f6127f84b9f5ebb9b93fce6bfa2423a70f4773ffbe6cb5e2d79a3aa2e8fcdde3ed92102aed67daefd203f3ed6becdb1c58d7e71691f230000181e166794de8801f0001f1991182693c7f42ee6e373c27515bdaade20ace9d33061e0351f00f5b698debd047ffd9dfc4aec7e45bde4dc0c23cb337253dcbbf5d6c2f896b86dde591896cbf7755b7e947692e793e1acbf15c6c9dcfa7cca25bdbb4961e1008c3cb921eaf76df09b62c90949f1487fa3ff003f1134948edd79dbec3fdc744843447c466a81f1f8067ff3f01f0bd01c5afd02c3e34490a570edc6601eba4b4c9abfe100eafb14b13acfbfdc9f5fae6663180310afb73ff47e0307c7f9ade537e9915e32c042ddd4c224fc42616711252b19a271fd934008828fc502cfcb236a799aa32bfdd9848b01f2a9fed57f03d49dbfd948ff0079720c405fa20307e1678c1132e25c4c4f1104911821bd0fe068223bc112945744c550b9c85d2c9f3a4761a7493f1f8197867961f6c31cbdc9e02c0b4f043d7ccfb257a6973fec78bf850cf19322eb2c7a6332a6da7bbb0991f17a1b232eef65208c84edae638369b0c7f6bff2231c64c85bff008c7ffb7b7bfca9fba7fd66450b919f401b2e1bef13e357d801f2422af5e38319af0e06e88c1e3d594d4d08c487ae344746d354213227cebce290e07240b2663013ab08f178e23719b122d1601757c3b69b07cf4fdf275f3a7cfe0dd8cfec9a7fece40adf839fda20b0030fa63fe10e9e96732edd3e227f676d965fcce723f4ec7e926a1bbdfc63ff00eca1311b18b8e7ff0087f1a09a3f590fe357f6869042c767facd9fa7c8450be7145415eaaab323f3b541c20173507d448c79f108e007ea3de4b1d2078fc3b0e4fed0c674b1bc46cb353845d5b76cf1901c3b6237afd4ce15abcc24f48c481cfcee47f72687d49e97a19f00b891d88d081bc7d80576c20053ecc10e618100d64e6a7c12acb42e4b8c0069c413cb4f9794e3d50c35cd7095efff00f0cc15b37b784e35cad1e8000e1cdf882bb6b22cf4007f7d7ee21bd2f4005aa601aaf907203e250819ee4dda4b16618103e00419ad07a56e8193ddeb87d452c7b40f7c6cc62688f16269faf2c136936600d961bb2e1d8e1f28188967cb2013136568960e569d6c44401a38ce65bef4bcb394aa827a8e8c6d82dc093a75a0b51423d1ce589c80a8380070048edffd047ff72ce5b06df96300e0b70272d7a9ea7cb2e40874142b1142228c50f96a58262380004bda6cb0800050d66a7e59fac71ec77c8b75cce5a0e59062d33c07d912918ebb1d203dbdafd72ba6caaf492203deae6e473d492fccf3edbcbfc8baf73930e19fc6f25330e447f8b5230239f85f9d2e46ce16b3b05f5186d91274791af8938c91dcb9f606486dc4b9ec2fbb6638ce0f6c57a727466589027976f2e7e275f216591d2ccf4f6d984f2fd375edce7cc43537fa8de08b3d99cbd8bea1133db1013f994e13189073be13320fc90260841bf758ce47f72f61d8499f1740fb91100063fb9fbdbb327b3e26caaa48f4f607d2d0f3b3c79673b7d321597d83e972fc7ab904f3e201b292be27b20b364be6c5c65cec9f116c7dd8b225b7f502e37bd847c5a4fbb60437b220814cc9f20f5158dbe86c8163dbd59e16107e7253f80a370396ab75c857798cef4867b217ea547a5983ea4043780f6100811babd99f9f6ef7f770c98ec0037b6a929f1232687c597c6391fea74ce804e1892870f20de4b56bd587d4f0f235ecfd09e3591e977c6f50497e6417d5f65a79c83f2eda3e5ad845cf6f6d8e3c2d9fc58dd25bc807e23a837101fe60c7b1f33af9fc08ddcf898d5f64325c11cf6cefb1bcfea402f221829615f2cc90db76346369f87992509f6cbd878c839d93be5cce13c7097e4917c8ef233e59bc9cbc24bc6df8b6f8a7ea81f841f10ef27ce48beda9e2cf8cb8c6671db5b78da179d080709534da3b92c531b871f6f77ab8e168f9b03ae73916f7ab7f0911477b08cfe2674cbe4e1df622cf58b4f904b826c81b7acc848bd9c2bc93bfbbd33cba2fdb703b7864e636ab63c93c2e7e204572f175dfc4d3cfc1c364869e3a5afb203db0d4c0490cefb26759cf32fb65af4f655a7976f2ea41e364f211e365b6c72d6fe2b5c7629db31cb28beca74bedbf6828fe061e392efec7ccff008b2e27fc820f5b021b390c436e40cd8833decabd9cb8c14e33f94bd3906cbc7e2c02421dbe7fb2cddb5be453ac0fa58c2c88f252f18c7f301f60fbbc5929f095e89780be95f44a7cd8aede3cb37f50beecef6c33f5273a9037cbd8644ccc8dcdbc9824e2ec9bb101becf7db209cc0888e0f888a5e0c630f4c883b6233b1784251ea4614c2ca8323db886c12c88afd4b93cd9d4e1a1b80590ac0d833e8837c893200f52647c591e439e3f834fd325a1de59641ac1f964f084e25a1c25cdcfc21877b9788bef217a222e6414ccbe7b07ee74d9b3653c2484a639d8fda1c095b85ba3f37c1c8d286089ccedfc24d1f7e0d9a39647522fcf6002583bbac22fc38121ed8b1657dcedc9f27d13ce4f100c5877076cb3b6c64868cd9c6c50ecc488d256cde2edf6534f4b67b1ce0cd2efb6c0d9b9ac1363332de51b09591172dfd4e9cc9dfa43bb92bf1ecdf56ef2c3900d10be307a89c7dc47cbdf2d1d6f35b8b0185d04d1d8e96b151b38d8a45ee171e4a07ce1609074835edef8ddfe01fb97c4e67607cc4d8396afce101163136c91acf981ace6ce4dc391c5272c3e1b1289eca0719ebbb60bf658bbb2168f78449c8ebcb8fcc4f966baff00fec826723a7490fa43f427e721feaf93e6e79002cfb4af932abadf0bac824b27f95681233db7e9247a464f93c0c2f1bf113d91234c402f84e992b7f05df6470b37ba11299f205ca9d9d51eece3e526a7e2cf3b1d47c132f5399393449fb93e19099f3626abc8736e9efe11d17f097c2296164e0ca1eda7b1b7de43b6becc6901bc98791f7264f21c16e5bfb7c0bae7ccf5ad98fa848af4ba016c8c8d3b03b22dc082d7903f777f5f867cfd9e8765f25e483e9ed8dba84b65f93115b882ba3253c91eb865c0f3f9b64f9df37ff6d21559b3b30cc3acc00f881313ab35347ddf22cb5cf648d84d2e0f672e2e0c396ebd617614f222b61dfabf64df7021b27c33be2d8f6287f05dbac1e3969211e9070175ec3f70866e49bc6dbabe85aa65b8658cecd3b3aa58e30a5bf67af1fea2c96fa3011d8cd219e42ef33f76cefcbf739dc4fe64186ffb98bff4b7bffd4fe0bfd929dadab8011c4aebf371ced950c7f9879fb255669d8e20d79b180b839b0735bef6059b0a71b4c83e46aea6475f67be5c05b5f8211f4ec1be483bb9906e2c07cc49ba41f0da4c8248bf113ec28162f3cb8791b1f3110e64477615e585d95d86e39c8b4781b6e78566dc3d867f37f2b4fb8b66bfe56fc30675b13ee4137843fa9fbbc586221c9b7a764619d4be6599ba9d0ff2f212220612607ead1c24e2e60dc97886c8131fb8d8ebf71820c84320387e011eda1d607cbb9a10bd6cac1477b08393c7b28f1973ac4e1b7c47b0241bf37ab0f88aa61072706b033646d122f1937b720a34db200b8f090b6b8a363797c647ee7d27f3b18f5d893c5db71bd2739b1646e5ab065c6cf11930ceda7ed8a13632f716833131080332e7c8e1c8b176d11d6bf365298e4c6a4bc66843253b2fe63aa7b09a16ddc86fe6d7dc3e984f923f78d629869058b0873bf8847a661e362f624dd98e457c30db13a4bf630e1703c9571f2c87b0a1bcb56fab608a7b02641d33776b58c69a5af76d1ddba9910cb698821b76c0a3d9f0f1f725a3ac94b3e26de1f32da00bd585ddedbf7fe67fa47ea701ff0010390ad264cfd720ee403fc4f2d4e4f85d87213117457e72444b7ea5844421df3f762963271b3836a5affdc4dd3fec3479b887fd5bb9ff0077caff00a840757087b09a191e13613edabd61f27b9d914cf640f239e4bede1b0c407cc5dc9c737dbb4d9d13a8cd215a620db6a4ed70f24e64339bfb99fd20db3a0fea468bafb633ba4287b303eb1d19ed893f37c04283e61e267f12e61d89c0b5d65fc600ef911e13c777974e2f2498f8b88efd4045f1f1223b1bf222a5c61c96ce9b199265cb0f96cc19fdcf74ff006238ff00db447fd2c5baff0067bdff00b0b016ff00310ed068213ee603e9fb9c0dff00afc5ccd1d92d8ddb40c80a5a9e473e410f201b6cbdb77b70260705a24df401bd9896b9ec269d08c9af2d92066117642e16217efb0bcf3e0beae33620f7250e8d82f27e52d1c2c83ddb22e5f30d6cbad82432fe50c3ac8f097497a39277ce44bace8c238f7f1529f2958d13ea0f22fea55987ead5d09720ec2bd5816c2f96da3bbc81ef590463c63e4ecde5484846035000ff00d46460105880d89437847e0ca387651f160b631793f6dfe0d83fa45803d930bc3dbd69f10cae9d5eb3d422407dc5bf11e36df4aff20475cd83ce02238c79f25e64bf192dd3284577e6ce788ecf102721ce3b20312ddfc365f7c807da638918858d85c8c41dfca007492a01241a4fb05bc54fe2d8cbcf8cb5884f9c96e84cc1b17ac7c9063e785fca1fcb672c0621408a6ae0bed4c70cbf574e2442c104fa16dfe635d49e250d16c063204a9eace767acc46037b7a44e2917052f563e0600e325e7e2191f492765defe45c7de585c22cccd80e4c474fe240d9eb3238f609ec3b65f607c30b736f7f76879f16133c7e1448f92ff00d94637146c4a8648e9fd4a8fa372721ea48a89235c7267207d36c37176e5bc5826313c6708c8e1bcd6c324af634ec23b750a255db15c66bf1a318c377a65e76f1ec4cc06927d30e29016baf56220dcfa91f0c2e7b2fee483e64ff6ba90d5cb979395f3097e8c3408ed9083e7636547bcb57f89d6add3ef2d19b1af98fde0edacf918618ae967ec6058f99d4a789f0487f0df886c0fe085c32fbc84511fd5dd6ff1371f3e72d9ee937cb0f2c9230c8f82b22d8ea3795996ea423d5c0181ef2a83901bd67c80e39373a960704f4ede2909e6f5583cbf4489f1f8c27b26b6eb6e33fb4cbecbee8fb5c7674411027d5e6ff9ab03320f8934d42d06df5b706c7e1936c867b3d1fb9685e6947c9474be06d996a6a1966f562e60dafa603b8d867b72009290b53dc9679fb39e67ea38192689133e2f5530c3edb6604e1a1181121bdbe7be6c1c66460f4b1ae1f8a36fb9577b3b3f095e42ce717dec48e6475ec83bb3cfb7f3bc4cf58d5b5bacb317ee5dddbbf98deaebd9f8c6276c4574673425c15b9bc4f3648b3b9a30bb420cc27edbb20b37a83a2cc4be9978586f4583c2d385baeb09993eece9edc3ac83e654db861c8e9d80d98e4e4cd271ff0059b5ff0014e627f91bba29a3dd9083fb2e56fc58e0cca77d8d5ebd9808cfdcb300f10cb4857e5664773cb698df937fe52047812edd2f1b1ae7e35f37f14d1e91eb7f0e37ecbe2191f2ce1edf6951d255fceeb31dfb2142a38d44145d04f897880eee404c87e2d4afd972dfebb3277c89df4b4692683cbec423bb75f135a3ace16ea6879a87977eb1a02c03d190f2c277c8bfbdec5703a913c85903f32117b165fa96e640a2fc458187bb68f0386c9580c04ec7ab72256cf14df97c20114006907bb1ae8de25f11df18e8ec3f853d42d492b267d43e4e9e3607b78dd7c475e441c7b33708a9c6f115d19e11141f36d0cef7aca0ce321631e836a901f1b65afc45d86246c8af6c85f5b21ec47621e4ca7c076d3e91af27991ad9041744f2e1644ea5acec8287cda33be4ccbe6ded2e1bd9d6112cb86c1eeee0376f8f393d2dfa58225ef7639e4ec14702fd13e93e7b0c51f442ec46fac6cdf651ec8fa99d1bb5eac7dcce7e6fa261d75640c832624ef8b32b4a260b66b0e7b39fd47c4970837cb783e2ef2ddc3b1a699d94904ddb6d2ea7cdaea3fdb55473f72600bfcdf08df9ec7f01fca08a7f716159689c5b1a36a77e60ce4039f5203b3b0c3c7ecd90f2d59ff23c53390eb19d43c293339c2d4597e4bec60697b6771ced8db8587eac07c529c8b2486b99708b9622034ba667bc6dee74f6f81b03930246fe0879237d8255977104ff00b1272a39fd4a3d02499838ecd21d65ff00225fce6bfe276c9df3f9bd219c5ca3ead0d8d1b65bde5d48f96d3bf134ea5f578b6fea2a3d8467f366d04fa640d07ee5af50b30fd3010d21fb8d3967d59e7970c5879c8a0e84027f134efc8b2a8979157b900200b2634fabc18799b1beeab6faecbdcdbe5d91c65f1be29819b232c3eec3ee67bc6e2fe53f287e6d7b63684ae7254a9dfdcbd5df98206b3fd811a09cfe20ec618a7d8caec6bf37e95f98671867b68d54ef6fbe501797a4600242231d640174b30b5c0bde970f00df2cfd53a289e41ddf6d3e6923ee224cc597ee5f76fee308cbd610e423992f4ec2c4b9027767843ce1c87d8f25b6aeb00e59f2c656af9728b9becbc0cc270b0ecb8bc0c4c9106da746ebedc9d2c66e45e71a7cedc37b7093616b2db43e49f96c483762300fddad050258ec789df641af6f61f263ef2649d4fdbb29e126afcb62c8a11c33d04452759bc3d9be8b4f0b1bb2f0b906fa010a380487be6649b8c48c8443915093f51a9a5fb84c0e40ac1722e51ab65d7234fdce18c2fa880f2d976d0c11d7e72233a0e5b0ea2ec8978b129e1cb6393dec2631c7195a7df99cf4bcec3c9d3cf24fa9be27fbb08ea1c04fc3dbae0ce3bb70f65b79e4fcb7570d76c5fe45b750a59a0be2e490177f9b2bbc403f56885f5415e51afa9eb79ba71db33078fc8b59d4cc7bfa52de92343bf31676626659b0b755e12c531eb1791756a1f2deff00640a39ff0094697346e9945cb639a6f939c63eaec1a7d6f5f9bd4d3b0a5e6e4826f227a4b7ddb43a3372487850d5cc2f23cf20500c8d1c70b9e4dbacc42a3393f6e9eeda20f908f842ef7edfc47ef73bf64083638973f14f41ecac4c406447eecf267ddcfc8ee6cb3fc897491fdd9be1129f0c7fa31b9afdc7200c6e8ff5301bff00684606fef0b2d0fd20304b45863300c2d93bf84cf1691a13e679cf425ecee49a5cfe67c8efb102e40a93cf960a7bc9af5361047fc9b5931045d23e16375e4f247d82e7fcce8492be64352ad336500416f4921542c04b663342aafddd3c8abc4b8c17c64e8dbe48c657c937bf8c11f2dba75bc7e29eb5a1b025e6c93c86752cee99f62404f36dd877e2fe10a30658379ada0f8248b0ecc36cb785592c531251bfa944bdfa8e902171f8498af62ef25fbb281b60bc274b70263c8e5a39816355516c84f1b1b9f1930aebe361b1e30cce373cbb6c6fd66d78fe91a7f025486790af7fe631d0eff128405ac1cb76d3af676fc5ddb07ac58979a48e5d793e5926d6c138259e7af35b1951ee4d5d11fa9fea3cb3e8fe15b4101fc0dbc5c3976605d20440b132847c1d9deb4fe6cff911f65df2d6e05f4a04b8d4989592cff84973fe24cf7fd471cff92e397f8b85e6111379741b3fa803ac0a32f693db89e00dbaa08916b0ebc83de0c900eefd1770e7de479edfb8016eb9740ae3e456410382be9fcc9f0d1bc8c4c869b16450861dd98e9f2b94ef136c81811a45e292e155a40feff0fe9b17eb91fbc8aa8fccd841be42e8d26fb9e0b76f6ddf2e3db6ceb5dcd98c1ec6034f8b4a3cf825e0abf31bb00f57c880f87e138be947fec288e8ff00cb1c33b923464c268dfe2c4e7fc85d4f09507e2d86cf1afb921edb3f7692cd89aa8d423ec186b6d010fb924e8ef2dc85c389b9072ef31fa970c9dec3183e263e10e48c568eb048601f579a900f48031fa6c6cc16abd670d3d38cbc7f49b7a15f96730ec8cf887eaf927f4877ee1de41d48fa6c783c10b3e9e2590af2d3bf11bdbe0db1f2b5ef5ec867ed20122587c1c048190c7bf2ef1fe9c588ddee6cbf49fc9d866b5fd978f9fe6f8bb7f778b9fdc5c6899c8de1d997634d6c8b9dce5f5a423dc9cdacc9eddfa8ddc44e56eccb3e0e438407990d1cbc5641c5cc7d4b6dff0058b5445fb87664ef66479fd7214b3fb9f12bf76741fe231840cd6e5bf3283bec6ecf5d7209822072b177b00c0cb17bf8965e7971efe063af2f4671d92b504f9b74edcd6e0a1ef52ea0587f1f85dfcfe2eddfa79b2273b65ae2765d8f989df8867a5e0447dec7c79054236f0e5926e4e7b6cac6bb7d282cb1c4637e510072c7c3b2756d5f012a4fa5eb58cec32e4a12bcc9969ec8fe978e7665a259860b897301b08005a472c87fa37a058d1075ed9fcc980637ada50eed793cab54b1e400846edfa247d42ce7e050e7c48f64fc7e0d64f974aef90647f2110001d2c3143e2147d864e75aa97b583ae84241eec793d475c1f46e9081dec8b81df109e949bbcf88230ff36eb02ce7a44fd5e24953c2596960cdd3602784f3e32eb91436077662eb6d07cd8586ccd8348445dea5ba65b1dcbb019799ff0057f2bfa9d3757f5025e6d9e4c24c03fa88cdbea70b33dd673ae3eef470007b6915937eb6320b1cec1d8e7092d0db33d9849b33a587cecc78e49f7e481bc4fa856623d451d97749073f0be3ee5fc16a6d0cdae0972ad6fddeeb39ac6e95e96f7b38247d93e1b07ddc2df36ea66c081c8cdf5f8cdeec803375cb2f2d67213930c1b13724a7274ee48275290e98995f32c60278e0594ec5c6dc605c19cc6fc0aeecef8e8e7977997ee44e8849cce588c5dbf8d8cbf4dadf44a3db02421f527cc9f32163e6c2d789f3b7a03e6bf1222a7c1684a19c2ce5db4f641324603e3f06ee935ad87c4e19c0f6253c33234379382dc4fe97b911dc50b837898895626e487f78ded9f425bec37e10d76f1987521f985b6f8b27e2fe2bd2be6200fb3606dc9dbe5366727514d8ab1ce3656ea2b03886bc83eaf5cb1e36c47a1c91ee59fab0fabd3f84849b7cb632763be4997a80bd8c3a7b194fd2daf63b1fbfc6061003b01afa4e8face22590cfbb3d7b3959933bd472648a401c4b48b067962ccbb4484b3354b39e5dcf988b58ccdf231f3d89302359f8b0fa9feed8fc32decb396bf035a349cf499cd90f8a76f9180c91000fddb96a3b178018ff00393d5dfb9e5744c18925f24678cc900e5a4d7908b2480b387c5d7c7e2f5a44c9179ee7e3a2d110fe5798e3394036546c6eeea4db738462e435b238410a4a86cbb8b87d2de60eda7bff00173dff00c5df9ff17439e5f18bb8ce974e97dfea5d7e27af6f7ecaafb3a7cc9e26a1922cae696664df781843c144be5b686b993d98305fb884a9c1bae125496a6ea0fb9fbf4b09eda1cf6f0c2f57bf009becd99f3a7b69fc11b7f162bd91be5fa244fd59b80c9f6eb653e6077f5f841c635f97c4bf2a364fd12c790486581cf21b7c8c063c32021849a0791e34963a8c00dc7e209ba4eb288f331f7a647b9b6a65e7db35b22328aaf267960642f84b8e581a3876f34b841881aebe58b63479661399fd4216bec47875986be4f80c716c7c5aa4627c587503d62f8ef8e495360df1b09cd5f21b3de9e4f7b306f61dd9327a49ace3f1a5273d817cb01ab6112e922810a65db3da647c2c43b6531c9a7f12c53ea50f56df1e591b161c9186459e5cba43f22ef3c8184cc8cf27c8923c3b22b1e937cc2f5b3c3b23d86c4f180cc85c6ed85a8120efe15966d1c77f76fe00336434d7a25a635d09307c3b27db7c0b09842f032cc4a76e53390915f0d9e979af8ccf1d55bf7b2027865f13e4fe93927d7e1f643c8bca70d41cb360b0b43a585f26c03e9f6c3019f31f9ac8c15acf24b7d5db06907265e6db859987179610fc16e696b4cb43d81f3b1f509e201297aa309f61436c3e5d1c2ef4b67b687f736185a917103c8f166638dd8f6b4dd181973e7046eea9db338792a1b87cbc04775193ae0803021ce2c2a11ee7d3f53df7f00d939bb6f73f056f674c80f933f97e039f83ac7dbf0cbe27e6d4cf67234e65cdd82da1827c44226093a96bf2e0424e3350d221e96f0262320ec0f960a96813614d596dd8f6fb83e765f665a5bfa8db56452f0bc5ea4b4d09329541db65388f2c220e1fc4db0434ce9fdd89e7640aee5c38d918ff00aa587d489bcdd90d4ca10b9e9d06d8c7dc7ddb29660c21672f126d98edef8df2fe13e640dd3d8320c816373b3cead51f23a9d3e2018103e5807ea3e1cee3931d139f1f8a58591ed88c24ff0031ebfa80d565284ec2ea9764cc18d191267c5a1f1071c91732ea1978285a8b014698323d2a5b42edcd836c41ac33d99c3d5c4260ae8c359f39392aeec1a1d8d830221073ea6e003cc9bf27de4857875a04bf13f5673d9976ccdcb0e96fb4e3ae419f16b473f0e1f11f1bf4b67630753922781e9e4a1c397273968f10fd41a6108ccb930903db9b8c18eb11a2ccbbee29a2225b56dd937723a907622e3d8d3c8b05f3c3c532ee636538d16d6c0cdb4b5b475b9e719d34d608b3561b3632171b6275f6f9760fbf176ae44e7a83d392a349559eb916e07c8b31e27c368e17b7acfc972d3e7e2393fb8ea802c3372ebd800e402e6d9f58386072380444303049c0fabbf970e93733cbe61187a4e2f6cae46c18c14f76e4ef4e4274903cd26d8c1e32d4fc379741b6ef96c00edbf44626c3a7e3d8bf8830f6d4f4af6f84f630b3faecfe1808511f27e57b3bce2d8113f3147b16e6f257d58b8b3b867ec220503bf73b6a1dc3c98009c5e6cefccf1bdf671867c42c7f09c0c31fc7888711806714be17ab41c94a6007d2513c4007a891d8e7b0c217c823065bc977394bada52bb3e903c56c931a130c331172cb6d6f6f64436218f01d81fe1180106d2aa27b04c12fa82c831afb6674b379399f494360098e267c86b667ea13746fb90fa83c82d4306d73c3e490ea5c84026ef245898cb90dc9f3f09ce66df2585f1b059dcb0ced96bf1318e8ac77bf840d0f21eb48f7c7ee701bff006cfd6cfe8491f848bff5d9e1759901bb08187f91bffe2fff008e891c0b364cc6680c3d65cb309cb91c931c881c809f81626d89c67e8ad7b70ccb1807c5df2f50ba8c36ac2dd9b6044becbdd567d3e4627671d59fb2ad1957e494d79696e4c0cbd6173b6c235ee12940ec3cec8e65901fc383860ef60faf3f00df63be3b37ccbf11167363c99f7301d437316e6b8195038ffb18bd66c0bbfbb07d16c36608436205f42c1901e4466200f396ae3e64df23d87dc812a3962247392fa0ebe67eeb79b1bdec7eee79627c5813e760e7b0361c37228fcef2fd591d1e478917f768efe2b4023f51e3beda393c567719fa1f2e533ec43d153d2e153365607f691f866749c20962973ed87e2ce6110304be0423e396bb94f9d9c1ce70561c69fcc14cff00b100518fff00bb20aff626d9fec69896d083d107fb1fb83fb94cc03f70b82b3e5efee0e08983c8a851fddce7fb486a23afc4eea30ed904b0b9841287338dad8af7b643843fa9198d86eddc261833e21a690099646cfee4e71b42a4897779d9c137f6b8dbe685ae389e9219320eec0fcc67c621c4ba1486702038bbf2387aa7b621d8d0f27db7e049a2a4b9bbb671081bd3500d54d795e43c147498a3b45a2700050b47ad33d8318da94b3000a540376c0b883e426075af8035c1d21df7baa4cb50831cce06e7fd3497f33dfcba1c634672108b45911704dede7eb73cc7de418dd1cde070088c29843a69cd3d2c07b5b78214e903876560a010266ef883b89cc2f6358a7bbee278078c8a188d222d882223d11b050d466b9dc40513ee5b7947bd51c6583af063b779606fb6a55b99a2ed707e9e2fa6f4e378f9a4f95827cc50a1210af8641de40a70b7a2c5eca2b06650539fb9237c42d05d9883e90f6348731b3440def26c3c08091ab3c3bde63b1cb254169dca5a22e966cf190b2f4d07a4ae747ac103d013b480606e8eee6fb2b5691220bcc105ccd49581233945852989859b938120b99b8a27e90f6267c3198e33d5f444d8ad38506761be8cc7bbc83dbc42e845ab210b9e780354bb433cbe18b96f0d7a7dde169c4c4c97d33459169a37e12111f46bdf70b353c4b1c664d4d0c8d199d6992b91d7480722400f74c8dbf17554070e8681d7d33efb38c020e8481dee99ec8294634c13a8a00755bf7f59bee9e5a6381c73c956b784bcf6626368f002a02942b702a45b68298d7be65585d1f5411d7d371968d07998771e886eb25a545eda897c85502090a2c001bf6288220a04445408f38c0ba0baa2fc5c6ca032b53ac01f2dab7321b334b57c168a82311acc32e918343a346275a65b6920e712ec7b694f07cb528c4686286d5f1dfb32500860185701e1d33d970ad4880d27143afdac015c939199be643a46a5b9b6862ba52b10d147396b7ee7d39debeef6fe289a94a834a9a2a98cc67356ed58f3c21148d032285661888fe1334389d5c30a73d6fd51df8838dc0372522c6cf3bce38d47f0c699b04fa0d3f63ff36a9f819c8402403bf586f4dad94a3cf59a9cd09f174693b041c42e09d07f94cf5cdcc427a032cf927939306362c7de003e1fdcc78d67e4f34d365d563acd88fbfe80ad4a2b1f5ef6785f462888f6f845f5e33ad945f37dc08517e3ee6756fc13e73a01a83c30de68f421a096d0c580304475f989b593a0a704b9ad05e1199cb6084eff0093cf1ba679bc2063e9c3d6c7e90591c9ede82b336fed6d79b186782724c978c1b69420379f1df3f0843e70f2ea87d89a8d438cf1472a0e72f437835f21e22bbcba40543d183f5b4f068d2c61fc6efcad4ca0ecd83703cff921d68e9ffcd315c1dfa7c8fa269b5029036eebc7a4d4d31f65c3241b54dc9c80f02876e60d4e5eed2f69cdee31c059706babc0a61cd58f02e429321e6b5bbf1037d02e04e91da6fdbc21d64c82e046d093ad01d0730557420b8587d417c2228a818ea82d34e537b0cfd3209d113c46d1fb18d0bffadb2951fea221d111278c1b02a3432dc5ec3afe8613007e8571af751a7f7fb94bb4a5d28e9bb5f94f96360a0a0cb01f3883df9243b5dd26b25c107c003811e7c3f3ad9bf9d52e281d30ebfeb1fe8b129a59df7c08950748e65d883747cf16ee7dc1d257cfd172dfa40bce5f64909bbb846e2eb4f7f413213784eda051cd713206844b3237004a6954e998b323e65d77c84814e69e6cf0753df4476f4f2eeba99967231c164a82815f02a1df942357dd25be9f8621ebd104cb015d01b5623ed1decbc11311184225d122e913f3242042cf46effb2ee6e039b6174bea5d3deba4a5c49f08d5280e47188e94e3917cafcb68e37b9b9cba5ffa60d0fc409f20ac76ff00a4fdc68ea9aa1e7235c84e2a18680381819885793baed8e6229c1cb363adc3f7841ca298ebd0ebb80ca873f377ea43b109837aed9d0c71343c3001a9d7d4a63f79a3f33a2797d5e660e21661c01803073e80718bfc4709d657def53f980e61350f5b92005b143b2a1ab61933905d2d2c07a0049e1806029910dc8c1851f5e103389ae9bc13d41bf18201c0800edb2625df900a200087a05154065a0de23ae36e1828070c00885fba9ce3be7ea8ccc52cc7ee7940134c9d8dc365b9a48bf46c3f69f9a18e8a9d31df54601582ab3619c665134934de0c3e445da1257d27903718ea83310163645fa1e01b8f48af2ac88e1932c9666bc1561d7010a7883470b5fc203166217f5f400540006ef050221ce8e73f015d0c18301a420b460cb82807141139a7b247d42819ba853ae8d76dab09961e8e1cd8f977236c6ebe5fcf901d06aee1a44756d34ef8c38b4e1514f875a351b0a300417b7497dbd4060f22610364029d80aab795ab0ccea1bf6bbd7bd970287ec656c5b302531ed9e2b8a04e782a7a57de319feee73804000e01a00d06e13ed72b240ba39aaaaddc0ae8c90cc8008a75a11b90ec0072746a023b88ae871f3483fa38261c8000c491c4070f93834634d6baaff9f2968f1f10474c947f5c4685fa797afd8e189fac496af951521e8f409eed4b22708db5d44de2418d6bbeb47ee720b3c01dd103a7c74f83b86e6e1187d4fc7d7e91f81faffea39b2bfcc83c380f0119a89e09072618c659c704fc2df10a4599305f09c79000f821c697a81811dc14d2617a36c4b9bc3ffec773d222be913ef5f3f5039d138a20b4ca91a2660a27cb5d08e5240c86099b66cf088bf42107fc2ffb25111918d610dfeecf283fc925b9b2110fd43406e7dce4074f5b54384fab0de63b692b4e441175fa80a224c44b9f36ba083f512103c838259a5f241d3ed65bbf80e8b617e2d1f65102c319c7e67886c1a94400f8919ee4caef918d80f37c96b20f64ddd9f63e2bc110f9f26a1c876748cfb20b9b612afc34606054e00e7d109d77a41a6388ef8a5db47f97ec219c4ff2dbe97eaff9235ff0937ffc20e97fa831de2142e78ffe6c935e6693ff008847bff1651ff11f7382f18fbb0b68843e70bffcff00f6df9f2ffefcc987ff004ff320e9cffefb150f4c307defff003dba00c3ff00bedfe613ff00ea5ca7bfa80111fd439ff8da608fe0b6109fc5a739fe47e9ff002fd1ff00219ccb07c463f1fe4bf83fcb2a733f89f77909b47c5fa765f08fa8ba9c3fc913c3fc9df8259f50b36ededbdf082fa8dc3257dc97be593e228727ffd9
0000000000000000000000000800450000347d2a40004006bf977f0000017f000001815e1a6f049536f6e57a766480100322fe2800000101080a0fddf1d70fddf1d6
0000000000000000000000000800450000347d2b40004006bf967f0000017f000001815e1a6f049536f6e57a766480110322fe2800000101080a0fddf79e0fddf1d6
0000000000000000000000000800450000347d2c40004006bf957f0000017f000001815e1a6f049536f7e57a766480140322fe2800000101080a0fddf79e0fddf1d6When I used a quick script generated by ChatGPT to parse the headers of some of the packet data, it suggested that these were most likely packet trace data from some TCP/IP communication over loopback addresses, as shown below.
Here is the header-parsing script I used at that time.
import struct
from pprint import pprint
# Hex data (the given data string)
hex_data = "000000000000000000000000080045000434506040004006e8617f0000017f0000011a6f815ee579c135049536f680180200022900000101080a0fddf1d50fddf1d5cd9c0237a26459b1674aec6aed3cbf8edc085d1282c91bcedfbf299aca313b367e767371b5a89bc43e98445854e15550996a4e5e41450a84412142a110e1292840b44438454154b2772939dcdce868730f468e0446432716bb1da073ddec9e5f8d4a88b482d05cd974cedfbf176e6665638e925a66abf721ef31fa64e0a1e9a544399e6524e38010e41144045a538e12901a1b46041ae39795cc9cc9fceacf1b7220ee132d272f1c9c393549cbbc4c6af24f29e7ab32003495ccddf5c6d7d1e7929698e93b9f54d2b7a483bc47dc6ac38761e9a71519165333a95110013a40384a516b8e14ea1028445181b14e5e53cd755ccd978d4a922e888082ab229d6399de6f8f7673abd4f24e7a990dd76880a69baf2d8f7f3d9e75658ea6d41dcadde6374cb68215aec8f4b29a0b0664333ace4e050044e10e5e3a4e3ab843b40044057a90e055ecd7e69ccd391f41015b102450995c76caf0ee39b7e9e479a50e874a329b2f4f0d9ef16f8e8e67707ae6b7798fbcb7608228e8fcb31a4a060738438e391b1138597a14445068280ed10411504b46b8595dce9fc1d821c451b56440d1587d60f3f466b876ecafee7c93356c998d3f34476b3b1f4f9f6b4e370f483bcb3b816356250da30f663e939b346d816044979144053828294c5cc112869ba6e868146929639795657257b35f9150c51a469385089719ee3e9a5e1d78bfb9f25cd5b2cf1a953416cad63d0fd5e79baace91b46b506c6ec440a1ba087a4766673a480591731d418ec9410514e0a5765772214eb1ba6d1918b42834e8e0a529a595e9a7d1c64811965b4e3ad7a4959e989f37aa273d125fa79229c584afa997ddb96c7d3c1bd0740d5151b96ece81d015a872244cc86e75ab20b03ac035d27660880a752e69c1c3f2ba388b608d91ea32852094b29cd14d38d3d63b31c803360082a4981e5d709e5f5a66ad682e7cad6666cac969dd676bebe561df801c0da9741a828234421a89f1261c96c75a36559164754512440611044838395d8910f84c9083551ad614116de68e539b2571936059119b5952a7b39953543c3be5fcde928ead0dcf9b4afe6b991d48ebcf77ede05db8866f2a5a96b751ec872c08afcc72b41536173a5dad182679135a0b3902033793ac4858394c722448f0598470deab2aca204a4dacd951b24c832d8cdad51cafa4cceb03e3f640e5b2a52fee7ceb15dcd347495db1b5f6f987a606135a695858453c435615339b7b9d16f3226e49989ad46f16172b20eaf0323683089d2a870a28b0f43d23d29c2896b6808369aab4abc722a0b31c66b8709446e3df03e2f5764ba117f73e7736b93a8f41f6cd87abceef5c9ab7519a88906234a92bb6d85e7a4b9b3d416e5b39b9bac369ac4eb82d5e0646e64744c89542c88585a58764707a5385041b155c94a6b81a1a4465962d6c"
# Convert hex string to bytes
binary_data = bytes.fromhex(hex_data)
# Parse Ethernet header (14 bytes)
eth_header = binary_data[:14]
eth = struct.unpack("!6s6sH", eth_header)
dest_mac = ":".join(f"{b:02x}" for b in eth[0])
src_mac = ":".join(f"{b:02x}" for b in eth[1])
eth_type = eth[2]
# Parse IP header (20 bytes starting from byte 14)
ip_header = binary_data[14:34]
ip = struct.unpack("!BBHHHBBH4s4s", ip_header)
version_ihl = ip[0]
version = version_ihl >> 4
ihl = version_ihl & 0xF
tos = ip[1]
total_length = ip[2]
identification = ip[3]
flags_offset = ip[4]
ttl = ip[5]
protocol = ip[6]
checksum = ip[7]
src_ip = ".".join(map(str, ip[8]))
dest_ip = ".".join(map(str, ip[9]))
# Parse TCP header (20 bytes starting from byte 34)
tcp_header = binary_data[34:54]
tcp = struct.unpack("!HHLLBBHHH", tcp_header)
src_port = tcp[0]
dest_port = tcp[1]
sequence = tcp[2]
acknowledgment = tcp[3]
offset_reserved = tcp[4]
data_offset = offset_reserved >> 4
flags = tcp[5]
window = tcp[6]
checksum_tcp = tcp[7]
urgent_pointer = tcp[8]
# Display parsed information
parsed_data = {
"Ethernet": {
"Destination MAC": dest_mac,
"Source MAC": src_mac,
"Type": eth_type,
},
"IP": {
"Version": version,
"Header Length": ihl,
"Type of Service": tos,
"Total Length": total_length,
"Identification": identification,
"Flags and Offset": flags_offset,
"TTL": ttl,
"Protocol": protocol,
"Checksum": checksum,
"Source IP": src_ip,
"Destination IP": dest_ip,
},
"TCP": {
"Source Port": src_port,
"Destination Port": dest_port,
"Sequence Number": sequence,
"Acknowledgment Number": acknowledgment,
"Data Offset": data_offset,
"Flags": flags,
"Window Size": window,
"Checksum": checksum_tcp,
"Urgent Pointer": urgent_pointer,
},
}
pprint(parsed_data)So I decided to convert this text data into a pcap file with the following script.
from scapy.all import *
with open("./noshark.txt", "r") as f:
packet_data_list = f.readlines()
pcap_file = "output.pcap"
packets = []
for hex_data in packet_data_list:
binary_data = bytes.fromhex(hex_data[:-1])
packet = Ether(binary_data)
packet_summary = packet.show(dump=True)
packets.append(packet)
print(packet)
wrpcap(pcap_file, packets)Scapy is a Python packet manipulation library that can create packets for various protocols and save them as pcap files.
Reference: secdev/scapy: Scapy: the Python-based interactive packet manipulation program & library.
Here, I converted each line in the provided text file into a byte string, parsed it as an Ethernet packet with the Ether function, and saved the result as a pcap file.
Analyzing the pcap file dumped by this script in Wireshark showed that it was transmitting an image file, as shown below.
Saving this packet data as raw data and giving it a .jpg extension produced the following image, along with the correct flag irisctf{welcome_to_net_its_still_ez_to_read_caps_without_wireshark}.
Not Eelaborate(OSINT)
CHALLENGE’S DISCLAIMER: Please do not include any accent markings or special characters into the flag. Apply proper capitalization to the flag. Here’s an example of the flag irisctf{Restaurant_Name}
After my long train ride, I visited a deer park and got to feed the wildlife. There were so many restaurants to choose from but I was craving eel. I really like the soup mixed in with the rice and fish. The wasabi threw me off since I don’t normally have it served this way.
I would recommend this place if you want to find a quiet restaurant to eat at, and wouldn’t mind finding a few small fish bones. Eels are known to carry lots of tiny bones it’s inevitable that you’ll find it in a lot of places.
Question: What is the full name of the restaurant?
This challenge asked us to identify the restaurant shown below.
I first searched for places around Nara Park where I could get hitsumabushi, and quickly found a very similar image like the one below.
It appears to be a photo of “Unagi no Nedoko Edogawa Kintetsu Nara Ekimae Branch.”
However, entering the restaurant’s name did not yield the correct flag.
After thinking about it for a bit, I tried entering not the restaurant’s actual name but the name shown on Google Maps (Edogawa Kintetsu Nara), and found that the correct flag was irisctf{Edogawa_Kintetsu_Nara}.
Summary
Happy New Year.
Lately I have been doing little besides work and have not been able to find much time for CTFs, but I plan to keep at it this year as well.