submission 27935
KernelBot user 3 · python · License unknown
Use it
Vendorable · source mirrored · license unknownView source →
No package. Vendor the mirrored source: 1 lines, June 9 Researcher Reciprocity License v1.0.
solution.py
curl "https://kernelindex.com/api/v1/implementations/kernelbot-amd-fp8-mm-27935?include=source"interfacepython
Compatibility
measured onAMD Instinct MI300X
declared hardwareAMD Instinct MI300X
architecturesgfx942
dtypesfp32, fp8_e4m3fnuz
Benchmark evidence
18 measurements across 1 GPU, fastest first.
Operation / workload
Hardware
Latency
Rank
Observed
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=512 · seed=6563
AMD Instinct MI300X
61.0µs
#15 of 98
2025-05-26
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=576 · seed=12346
AMD Instinct MI300X
61.7µs
#14 of 98
2025-05-26
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=1536 · seed=8135
AMD Instinct MI300X
101.3µs
#16 of 98
2025-05-26
Show all 18 measurements ›Showing all 18 measurements ⌄
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=512 · seed=12341
AMD Instinct MI300X
145.7µs
#14 of 98
2025-05-26
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=576 · seed=9863
AMD Instinct MI300X
149.0µs
#13 of 98
2025-05-26
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=4608 · seed=7531
AMD Instinct MI300X
172.3µs
#13 of 98
2025-05-26
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=1536 · seed=6543
AMD Instinct MI300X
251.7µs
#14 of 98
2025-05-26
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=4608 · seed=65436
AMD Instinct MI300X
965.1µs
#33 of 98
2025-05-26
Reported · How evidence levels are derived →
Source and license
sourceavailable
revision digestsha256:ec2252f5cf9b3ae76d53bbe703e3164821987c0d73fc90c7684eaab17a47cd21
license declaredunknown
license concludedunknown
imported2026-08-15
Kernel source
solution.py1 lines
IyFQT1BDT1JOIGxlYWRlcmJvYXJkIGFtZC1mcDgtbW0KIyFQT1BDT1JOIGdwdSBNSTMwMApmcm9tIHRhc2sgaW1wb3J0IGlucHV0X3QsIG91dHB1dF90CmltcG9ydCB0b3JjaApmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmltcG9ydCB0aW1lCmltcG9ydCBvcwppbXBvcnQgc3lzCmltcG9ydCB6bGliCmltcG9ydCBiYXNlNjQKCmlmICJQWVRPUkNIX1JPQ01fQVJDSCIgbm90IGluIG9zLmVudmlyb246CiAgICBvcy5lbnZpcm9uWyJQWVRPUkNIX1JPQ01fQVJDSCJdID0gImdmeDk0Mjp4bmFjay0iCgpURVNUSU5HID0gb3MuZW52aXJvbi5nZXQoIkdQVU1PREVfVEVTVElORyIsIE5vbmUpCgprZXJuZWxfY3BwID0gYidlSnp0ZlUxMzI3aVM2TnIrRldqM1NVSTVpaXpKanR0dHk3b25OeDk5TTkzNU9OM3BkMmVPcnc4UEtWRTJJNUhVa0pRL2t2WTU3N3oxTEdaeEY3T1k1VnUrNVZ1K1h6Ty81RlVWQUJJZ1FZcHliQ2U1RTUxRUZrR2dVQ2dVQ2xVRm9QQzlINDVtaTdISEJxZitmQXYrMi9FaVRQM0E2NXdPMTc4dnZaek1lN3ZtTis2azZzMWt2cWUvbUYrNmZqanU5YmJrRC8yMUh5VnA3RG1CbmhZNG9UOVhrMXcvSGE2dmZ6LzJKbjdvc2IrOGZHcy8vY3Z6cHo5Ym95Z2MrNmtmaFMzMnlaKy9yZVAzT1BwMFNIWHdQOTRXZUFFZlA5QVJ6K000aXUyVWVmaVhIYktNVUFjM0FOK2ZXQnp1ZDRkWTEyK0wwY2hMa2svdGdoeis3ZEFvaDQrZkpCM3Y3NCtnR1d3d1lCdEVMcmFCdjZGQlAza3BKYngyQW8rM3RJVnZIbGdQOEE5dk9qNjM2SGxqSHdxVzRPY2ZIZVp2YWV5SEp3clVEZWFIdkdiYm5pekNrVzN6VkNlVnFTOWUvdkljVW12Z1A5aC93TFArOHZMMWN3N2d3ZC9DQjZ2MXRRN2Z1L0JUZ2VYMVdhWUMvdFhOQURUQ3Z4M1lPZnp6VTMvbVdSTm5sbml0OWZWRkFwM0pRT2pCRUxOdElRQnRieWZZdGlmaDRzT0J5SUR5TXN2aFRtYVJrL1oyRDdMUzIzMTRTYWxxMnNVT3B1SkwyM1pTWUJ0M2tYcTJiVm5lUldxZmVhTVVCL2psM0xOMldxMldMT2lMY242WWJ2ZGgvSzlRbE9va1BKdFUydHVsb3VzZ3ZoZWpsSTBXcnNjK0VvV2dhaGEwV2RobTA0UDFLOGdDc2lkSnZZdDVUSy9PblhodUovNEhEeXJhM1Rrb3ZCMDVvMVBQbm9HVWwzbDYvYjBTak1CMlo5Rm9TbG5zWURGTC9ma004MjczaS9EQ3hqbW5GVG1wZmozclNSd3Q1anArbklTeGQrSkRQazRpZUxjUTNRQVpVaStZejV3VTVqSjhGNEprWWUvYUxQdjkrM0FkdUFNbVF4aTl0ajMyenZ5UlJ6OG5VVHp5L0pBb1lpdDRPSXMwWXZCbVpvLzlNK3NkYzlyc2QrYTJSQi9FWHJxSVEyWTU3Q0Z6MlNQV2E3RXQ1a0ozNUlnTUNBSVVvNy91dGVxSHF2MnhaM3NYemlpMVpOMUo2cVQreUhhU3hJdFR3T0FlWUhCNHlMcHR0akdPdklTRlVTb0tNaXI0M1Fid2tZSzBVMFlWaVE2NlFKdW83NHpIQ3VFUzcxK0hrZ2xGcjEzYTdxVU4yUTlxSWNDUFRxZkRYaVpWeFFlVW4vTFNaQUVGdkJQb1c2aHg0WVVqZ3RtRzhnQmxPQlJ0NTJ3Z2VyK21sQVd3MlNZVWh2NkJHbG9JZ3c4V0RlT1hITi9YL0kvRXY0aTJNL1VBMzdGM2tWVmluL3ZwS2JiQlB2Vm1jeTgyWVpkUjBOanNsNkxSQXJpeERhK0JzVjRpWTBHSjRYQi9IeUUyYWNSUWpKWTZ4RFVFbHpkd0FKVlFCYU1Nanh5SkROQUxqWHhOK1AwczhzZHNFY2JSYkdZN2N5Q1M5WUpOR3ZDREhBdldwSk1OL0Fqd2RFQitXcTBCVkcrMTJneHl0c3FNWHFJWENobUY0MStzakRvaUxUSFNHZ05OcVNPdVF0V1BWMlpNUHdHcjNyaU0xd0NreE11aE5ha215ejk5VXAzOTZqcVA3aDl6S1NISHNwN2puL0ljNzlVYytERjNzdCtHbkphUWJmaTVFcjhyU0NsYWgzOSsvcVJHYnQ5S0kvTmNQK2U1cHNWYzllUUFsVUNqaUVxVkdncnBjeVpOMERBK2tDNzE1QmpOUENlR3VkRzY3OFN4YzlrNmVuMWNwc3JyQ3FwUWtTUC9HRWJmdTQvZEt3Mnhtb3BKMWNNdmV4SkhnWTJxbEVXcUhidVFkVzl0b1FYN0lFR2o3TXlMRTdES0dHcithSjR4bWlLZDJZeE5ZVkFtTEpvd1VJaEcwMFNXaE5wWU5JYTJPUWxrdEY0N01FQ1RoUnRHY1FBNmFZdWxwMURWdVFkd3dnZW9Uc1VlYzl4b2tYWWtnSGVuZnNKT3ZCQTdCcXR5azJnR090N3NFbjVlSmdBRTBCcDdBRFJpN3hkSnltQ1NDVWVRVlpaUFR6MjJtT09rQWtaNXdrQUxPUEZTU28zOWs5T1VuVG16aGNkbS90VERSRm5xRFphWVg2YW4wRVFVbkNCd3hwMTFkZG9ubVFvZ2JXaFpPa0FLRHEyc000Uk9RYTlRcVFMeXBzcHJua1V0THpXdm9RVmtoK201dDV0bGJ0R3ZwUjFKU2pCK3lZN2NzMURQcis5RnlFbldBRkNGeWdPcGsxbDB6dUNkRTBMcmFmNkZIcElRc0xleG4wNmRNeUlYL0lqSDU5aHBmc2luZHdCTFJCNUh6RTg3MEh1ZzhrU1RGUE5JSUlFSFpCMnpzUWNNd0ZCMnMyVHVqWHpzU1RPVHRCbG85Y0FrT1JZNnIzQW1PdlhnR1NicWtaZnpFNmgrWUFQQSt5aEJGRldlOE1QNWdpTVllMEJKNENBb05YSkNrQUdwSDZDdW5DcTRNeCtHdGhkNElYWnNsQUZ5THpuVEphZUx5V1RHcWVVUm8zWFd2L2NuWTI4Qy9YUXl1Zmh4cHc5ZEpBcTllcm5kN1FMbGdKbERsVzQwVm9EbVNVZmxNeHFNd0JVSDY5OTdZTVJKSUM5Z3pMbk9hRW8weThiS20yZHY5dGtMR0ltZ2xVNGNWTzJwT1FKaEE4Unc3RThxUk5lTGdzREtaTHBCY2lYZURPaHN1VkUwSTlkTm15a1MzWjh3Y255MUZHbGxscmxBQ1M4VHVGY00yN3UwREptMmVhSFNURFdleisxUkdzLzRUQlZINTNiZ0pGT1FrdDJMQ1U5em5YQ3FKVkl6Z0xIQ01aVkVDNU1xcVJ0K2NnQURLMHpBeHBuUHJTemxvbURsMkxhNzhFR0hEVzBuR0orTVFuc3hId08yVk9paXplQmZqclBFdDUxajJWWlFNOHpNTXdkdFViQ0V4dzBSVG1NblRPWXdRT3lkaXgxN3NtZWY5WFBjYVpTWUxTV2xJalpRek9RdHRnT21FNzVsNHEyUEVpRUN6T0lUVHhwUE9pd04ySDJtUGFJMTJKSVdHU0l2d2VJSVFsTVFwQUNiUitmSTZ4UFdOMWVnQWp3ay9YVGoyZHUzaFZFTkhmU3ZDejhHRVZUTUxvRnViWEdLN09jQ0FMaXh5M3FzejdabEduMUVHa0ZpLzZ5OTJtR1AyUzc3UWJ4NnFOU2xaZHRqUDdJbjdNL0xzajFsejloekdHN1YyWkp6Wjg3bWpoL1Q5SXdaNURRb2N4UWFJQkNVajZJRytTandVbVJwQ0phYVI2U0FZUmtnYktYSzB5ajJQMFJBNFJsTTJROUIrQU1UcUROdGVoNEIzUk13NnJMSnVYL1J6N2x5bkNPNUEwanV5c2NlSUxtZEk3a0hhRDVoeitYamo0RHpud1hPNUFUZ0RnQWlFanEyaUV6K1dJb05KUXQzbHZEM2FHWkFkaXExcFRIRlBiWlRLcGtpM29mbDRZMUV5ZWQrUU02MlNVaGNnUHdpYm1xcm9HRzJneXkvWlFUTWRRb2hXQVpkdDlkOTBPczk2SFlmZEh0RERxTFZ6cjNkQkRKN0xMWG5IbEFSUjVPbWpmd0pKRjkzOTBHMy82QzdBNEMxZC92NGJ2dEI5d2VvN2tIM3NWUkhSR05lZzdwQTNVMFZFWXYxdFU1dnd6UTNSbjFBNmZRRUo1aU1ZYmcweHdIb1hZeThlY3FWQWdYZVJiK1Rjd0V5YTArTXNTN1UxUysrZXZSb1dIelZwN0c0VGFVd3kzYk83Rld2MUk3ZElSL2xTaDJMektEMUs5dGtmYVZ2ZWV0TW5kdWxub1grN1hXSEJFYnBXNEphM2JVRDBXS3RWeDlUbC9hcWVyVlBIYnNyZTFVVGM5Qm9rcHpvb08vdnROZ2YrV052VjN2Y3d5ZDgwRnhqU0xpaTNvcFR5eDdNTExQWldTQUpHVHZuUU52SnhJdHQwRTNHdHJ0bmNjZHdFaWZ4cUozNUpkbFpOSmtrWHFxa0pLV1VVWVFxWFRpNjVJcXpEVk5BWUcxZ2RSMWVYUWVxNi9EcU9saGR4OTlEK1Y1RUVuWDJlaXg3dTNlTFptL1hoQ2RCcThVVFRMbzd4WE83YjhKemQyY1pucnM3ZDR2bjdrNFJUOXVtbnU4dlpWREljc2Q5MytkTXFtSkxxbmNGbWdsb3h4NE9KRG5lemtESGROcnNqcENtNmcwRHF3SEtNS3F5NGZkWmtDNFBzd1pZYnl0SzgyZkJ1anpvR21BTkl5NGJtcDhGNi9JUWJNSWhNUGpVa2ZwNXVFUU1TQzljQkd3MEF6c2pCd1AyMGhwZkdVVFBHRm91OHZsa0Zybk9qRHprTW9sdktJRWttTm5Yd2lpMDBaeUxZc3ExclMxUHFIN0ZiRG1GWTVWWmFFcWFEV3AxdEFDYlQ3R2h1VmFETk41azh6VE9YWmtaTFVEdlB2RU02VkJ5NHA4SUt4dVFXdU9MSW1ENEI3YTZnQlI3UVhUbTJhTXpPeDI4R3dxRm9vZ1E5cEY0VldPaTVpV3RkNEJ1aEk2NFdPMUlNRGRWcHdMNlRoNE5FVFlnVTZoU2QvdkdIc0dhZzU3Qy9XOEtYWWFXcUVuUnV6aHRkWjhlZDllUnlidEpxRVFUSzZOR3ExQllPakxoM3prNnE1NytqRFpUSWp4Ym1FS09WRDhGQThrSi84UmVRdXM4THlDVENGUFlzeWZ2bnRndjN2ejY2c2s3V2c1R0oxT3hocjk2TENDZkpwckU3c3pEd3NBNGwxeWZSdW93WktPNDArbG9SVUVSN0hiNzhMLzdlKzdhbHY0VStwTjVHS1F6dTYwdys0ajI2NGluL2YyTThZZE4rcGQ0aG56WGc0eDQ2T1JtT08xWlpUWThkNEM1eEFBdXYwMVBZU3lOUysvSm9RTjZPemxPRWx5cml4ZmNGbW1KRWFHc0xvaVZjYlJJTmNZMklIbWdqeXRhYU9id3lCT0Rtb0pZZFMveEIvRE1heHhGYTBxRDJLWWg0d0hrMFpwVmtTc2ZCR3JlUTZYWmZ5cThRd3ZnQlh3ZTRGZWhLWHh6dzRqYW5yTTlKQTZ0a2JRUzhPTlBsS1piU29zUGNRMi9PT2dNam5PRjBFTnJpVTFRV3JuUlFaSDhCNU1wa3dLRk1WaWlUdm0xa2JzeXdveTBwSmE2RU1SOWxUWFU2Tjh3TlVCTCtwckpzWFBENUFEMTYyc214OTROa3dQMHVxK1pIT2hjdU5uUjB2OEtwSWZlNG9ML1dpWFBJM1JmWXdyTkE3UkJLWE5rZStNTkZiSnhFbDgrZGF1cjFsaDB5U1RPMTRCUUw3YlcxNml4TklkVVRadjNHU25zbjJGeU4wM1QzS2o0YnpWUHEwMDJUTlRMWEFxOGozTkdMUzVrNzZGaWpGMXNHRUtmZDlBdEVVSTZYVXBUOWxLL3hUTEM4RzBBWHo5bFNyUDNVdC9JTXNwd1krcnJwMHhwSWwvcWYxbEdHZlROL0NOUXBqeW5MM2Z5MU5GR2NRQjlMZVNwbStCMVl0RU1UMG5OcC9pMUZlYjNUNW5WczhuczdxZnhOVTQzd0dnd0dnSlNhMWtubDdTTTN0RDZpT2hkUVNmemZCcFdQS21BQ2svTWNPRFY1UnRMWURyZDJtSlB4R2EwR1cyd1ljS2hGM2hCRkYreTBQUEcyYWFFaEUyaTJTdzZUL2F4M0NQMkV5N1g0WG9tN3JpN3hNMXNTWlR0ZjhPZFI3aUs3dUFHL1VmQXMrUSs0QVZ4RXhWVk5uZlMwM3lUQXJBQy9PVkhFQmoybTZ3WlMzcGpQSkVUaFNPdnc1NCtlLzFrZTUwMkRPU1pPV1A1Q2RiSDBXbHpmQ0FSdDJheHdFbGovNEpueXpZclFjczVvTEVQckVpYnlDeCtEaUgxWjU0ZEhERGg0ZlBSSFRwYkJDSEFlWTlIaDZEZGdORE13M1pBbFIzZXRMOTYwQytnd25obkhwQ1A5d2U1clp3WUJvY1BEZVpiKzRCQ1NOc01CRWNpUHdIQnRwaUZEZGtpT2VQeGdaTGdVU1ZzMEd0QU4vWm9rMVduVlBJUXozV3d3eUhiTTczcVA5N0ZkOXQ5MDh0ZXQwOGxvZWFzT1RDZUY0SEgrelhiWjRia2NHYll1RXY0NjUrRUhyV1NTTytuQ1Y4aXo0b0VZb2NMcjVLS0FnbGt1V1F4T3UzSUV5dU1Oc0hOWm5SQ0lmSFI2ZWRlUW50RVgrSit2dE5vTVJzalcrQlpSR3crQi90ZmYvKzMvL3I3LzVULy9rK0QzLzllS1BQdkV0RC82dEwzRG4zdjBYZXZqOS8wbjU3UjR5MjRYcGI2VHdYVS8ydncrMzlEbWI4cnovK1JWZCtqNzhmMC9TTlAyY2J2YTllVVFlN1Q5eTZIMmFYdm5adUJ2RTNmUDNESVBmcCtyRUpXVy9wL0cveitqM3dYMkRxWFlxbkNyTzFDR2grc3h0U1FwMllyRFdSNWtreGR6OFQwQkNRVkpNb3RPdXY1WWdUQklma1RHemVOcVJXeGU5SSt5dXJJOW5saERpNXVGRW1UYi9qU3VKMHNZZkxVSXJnTmFmYmttZ2hIZ1JxYVJxa3pJd1J4aWxHSkFZYWVodHhXR1RuVHhqSVY0TDJDZUtDRzRIdm1CRENqcExUOWluS3E4NFRXRnRvK2lrQWF0SVZBNFNZVVcwUDhzR0U3bHNBVXN2aFFJOW1XMGtLQm1qaU1GNThZbk9VNTc1UUFENXN0L3dqVU12QUVrVFk0ODRrMzkrcHdIV0V5MzlQNkVkY0NjeU9ZVHZwcGo2SCt5RXVDUG1BSFZTOUNvWk1VMTlSb3AxQm16U3Y1OFVoYkRoYllMQ3phOEZSVU9DQ3FNNEI2bkMxcmlmV3F6Tml1V004Uzd6ZUhsazZTVnB2WG8zb0ljbmRDNmxPM1V6ZTlIRjkwTHBSY1dVZHczNXZ5SmoraFVPcnE2a01hZWFVK1ZQaytHNE5FakllSXlVRkYvamc2UjZjSmJzc3pEb09xY3FDVVVMbDdLNVlEcW1FSFFsbXNHV2dINkNHc1RkUHdxb0hCOGNadmpTM3FxdVVvVjFTbWdURmlYMUtzSlJvRFlJTDc5N01xQnNoM2h2TEVmT2RSUE9iY2wyL0NSaVFHSllTR2xseGVGeVJyNTVVWGp0SndIanA2Znl5bFJtYXFaZUNHRnRaY09IS3puZ01ncjdEa1JYcS9pbGpKTFJ3N2pld0VsUGhjbmhRbHlUaFJqSlZzR0FnTDR1N0V6TElCU2d2Tm50d1ZRRk9qUTBZSUNHcWNjS0xBVDVsZ0JUcXBnOUtiMW9jeEx6eTBWVkN1UEZ4QnUzejVIT0NIWjZDS2pqTWx1OFBlUmFCYlhsQkdmb29DNGFwZzhHQ0RCNWFITE1QT1R6MkFHRE04a1pNczVyVFBWMHlIb0xMVEZnU3VFL3NUdEgxVldCKzhHSStXTURvamRQdlM1d3NSUDhCOW12alJGYW1INkpGcktvOXdQRzhpUUFSV25EZXlVakJuM05lNS8wamdjRndZeFpzY1ZENFNZRUJYakZlK1JmWXlIUEhNaVhxMkR2ZWNUa1M3aUtsSmcwSUJSZXdPdjlYQklIYS96MlBBZjJKdDNCdXplK08vaFJ0dGJXaXB3MG12Q1QvSWxCWjFQbTYrNlI3ZzM0R21FaDZ3aHcvOXdGQ3RYandVeFVPOWVFakZ3NHJpR3ZhZC9vUUI3dnhnVG9IcWZsRHNidXhxUHp4dWxadEVCRGNseXBxQVJPVlNwUkl5OXlQOGxJcGNMZTNPSy8xUTlTM1pJMmFyWTZCVW9nUFhnU3AyRFhtYWhzdk1sZUNidVhJTDVrcFFiTlp0bXl0R01GcUFqSjBET3ZRUytlSElIM3ZpaENLZUFNanMzYzQzeTBldHVkcnkyUVFOczBMTi9XYlk2TE15bmRQeVAzeVk4WE9uL0pRV3V2cTQvcFVmaHRrUmZ0V0VYSCtoZDRGU2dyU3JDRldxVGdVYW5NWGxpU1pVUUhLbXIxSTZlQTQ4ZUNoMG5lVkZ1RjZrRkt4UWRDb05IcTRncWRnK1ZNRlY2RnZZNmN1Uks5cHdKbU9LNjFCQlF4dHVtVUhXMEs2N1JSc08rRW8xczhvR1hHOW9kVE5iclhYVVBmNW1CSDR6QXI4WmdkOGs5ZDFJNnVhbXFYSE9oN3gwS3FyUVFiL1IwbmwraGxqb2FxakY4ZjR4RVorN1llTlJTUkFwZXAxY3hXNnpuU0Z1SlZCczNwYUJVRmtJTnUxQU9ldWhpdG1FMmpsSGwwUnNsaVJSYWkwSmM2TTdFNWJOWWRPREpRQ3kyYXVja1FoNXhtZXBvMm11MG1lWUhwZkxuTkdLZnlrU3dVQU5aMkNkdGFxd3FqcTZyWnowcmpyQnJYNDJqVnlIT0tNL0JNMXhTN2I5VVVhRmU5ejdZa215UGl3aDBqSjZiSTVicGZyeGM4ak9Ha1FjSWhOYk9Sbmt5MUNGbkkzc050TlRRbHVKMFpTZkhnb21nUU5XaFhOQ0V2bWpZdGNJbStaZGxkMlVjNE5TTFJSUWthaXczRXhGUTYxb2FDK3ZsaHQ2Zm9xblpMUnFnZGdLcE9XQUNJUnVSS3FCQWdkS1JlMDh6c1hRcWpKTUZSa3I0aXZXUVMvVm5vM0hkL2tZMXdJMXRwcFVUVXZ0ZXJWMU5SM0kyRVpxUUVoNFNvNU1iVGh1WnNLVzBOTzVEU2R4UzFWdWhDYW41ZnI0OGVwcU5hVXVrOVh2MnFVbUQrOUxaWTNDUGlXbTZzc3lZQWxNRkExaVV4a1FyTFVLdHFWOTBzMXdMbTVycnNTOEVmdzYvTXRCQ1g5ZjlWalg3KzB5TTJaVHd1OHRhQjVXYXp0Nlp4VDhjRVVBOTNJQXV1dUtiNnlpZlQrVU1lTTJHY1l6ODEzOXJ2bzFtL1Q5c29iY0JoMUxIYmdLTll0czhxWFFkT1ZHZmNJSVV3THJxZXlWSzFZbStWWVJZbzg2TWtPRHg5cnJtdVptMWJ6VTljQ0pINE9XZ0VNUUREd2J3RmhpbmpBSUlrak5SYlErQTVqODdGd0hDTnJDMW1SY0VkUW5lb3dPeC85ckJTdHpEWHE3YlliL2QvU0lzV2o2T3RMdHFjbHJLckVqMWpMRUFjbThqSHVOTXFQcU12aGZGbHJWNHZjdXZORWk5UlJiUDZ2clBsTU1lZUZkelJwOG56bW1sNjU0NlpaTjlwSTlrZGRVaUFsWWlqQ1Q5VWR2OXdMKzdVeVduM1BqOUxDV2I0Y1dHZDNsR2VkODQ3UnB2M1MzV1pLV2txdTlGWHhjelk3Yi9UYkQvLzNHN0VpNVYyVEgyaklWN0NneCsrL0Jqc0FROEsvLytkZ1JvMjNlR1Q4Mms2dDc4RzhaRzJPZVRISnROK2RpbnIyTi9zaFZaR3BWa2E5VnBHWWhOZkZHbFdmUC84ZkxwOC90cDI5ZXZhVUxKeW9DYmpiazkyV2lGM3R2dmtkaFZUWG1xVHF3VTJUNHFueEZmbThtZXJ2MWp6bERyd3Uycm9nZEdzMTliOHpEd0Q3RklNNjRZZndjQTBid0F3bWdrdUVaQXZicVpiL1g3YWhNSkNBUWxUSStNdW9OaXFWS1hocm9iR0hJUURtblV6QnR5cm5kUExkcnpwM3JjamxMN2UrWHpCeXpkMHh4SDJXTmNzb3NvN1ozZnordloyaXA1eTZsc0JNSUhrMjFUUnFtcXR3bVZiblZWYm5tcWdwQTVNQWN0WlZHS3I5ZEpZNjFpQWtyL2xDcXZwMmpTcXpKR1JCRTh5cVRNd21jNW1LdHJzalhPalYvRnJIR3AzQ00rLzJaeEpwcEN2L2k1VnF1Z0g2VGEzVlZmVDF5RFZlTFBJK2ZrV09CRXk2Y1dadjkwT2wxZHVBL2UwbW50MmJPWmJTZ00yZTRyRHB5WnFQRnpPR2h6aW5xT0s3dlJXN3ErSGcrNjh4M0tOUXBuaFY4OVV3ZW8xUGpmRXNBRVoybE8wM1RlYksvdFhYaXA2Y0x0ek9LZ3ExZjN6d050bURBMnJ5d3JSUzI5Y0lVdnB5T2lKR1RBemVnSVovalhUdFJBS2p6TmNyQW1jOXhWUmVYY3RjcFpxOFNpZ296cExpL2dMc2RFbHB5ZmZrZ2dGWi91T3pna2JZb25GMnUwMFlDQ3VKTEIvR2dWT0pSOEY0bnZNUXFjWGszak00N3BtaGwyRnY2dEVITElsNWNveStMSElOcTVWbXllek5ScmpxamdTOHh0aTYvQVFXREpaQlRGSmYvQmNFZFN5N2F0Yk1sQXZNeWZDRGpBOTlqZUVWV09RT3V5TzdoK28rSUlvem5FeDhTd0pLbjdDTVlHZE1WdmQycnQ4MXQzTGJ3SnRzVzNrWGJSaXYxMjg0UzFKZFNRdW0zTUd0Ym5TK2pncWtWMWVsTFkycjBGQzd2K08zKzE4alVuOTYyTDR5cFE0azZac0ZBL0MxcUphNDJseHJFOCtEYXRZa0lGUnlndER1b1lIaEtOTzMycGl2MzhrVndKVEZicmEwL2VvcEE1LzdjSTNLT3ZYbDZ5dU5vNGp2VHNWUVJRMERKd0VOdFR0ZnhZZ1MraTVhNmFlWXN3dEdwMko1bTIxYU9lWXRmYnpIMTR0QVRPMjZWM2JaQ3ZWZjMzK29wMjMzSWxKVFRYSkdHdDhac1NoTkMyVEdtN0JZampzeC9paGFJVFF3OG5jT1ViOUpnbm1YUFUwZTRvZHVMMXlYZjZLc1MyQUg1Qm5OeG5qNWI2UzZ0b0JmMzdXdDd1RHRCY1cyNnVLRmZ6eDR1eVQ3VnMwK3pFT1UxTy9VSGRNMWhtMjN3dmVtME8vOFZDL0NtRm1BM3ZEUm81dUZWSzJBS1VJNXpQeW51WTE5U1IyaXM0L1dOMWpFMTF2SHphblZVOUxaaHY0YTU0eXAyYUppN0xjODgxVEpQalhpQXNVckxpN1VIR3c3VXhUUmpaMi9xM0dJNjFZQy8xVUpPcStwd1J2bEFRMjN0NFhWcWR6K3Bka20xSmpXTldxeHBSY3VvZkU5bkcxNGZKc25SSlpva2JzcFVCMTRES3Q3VCthd0kvWFUxOU5kTG9VODE2Tk15OUorcm9mKzhiQWdscGhNc0NxVnFSMGxpT3EydmJWMnFMYXhMUm51cUZaNHVLUnhvd3puUmQwMGxOTzdXOU1Md1AzYnNRc3ZGekFGeWl2MEovdTh6VUJhV2xRdjFjbi84a1QvMUJaUXNZUWNTK3BDd3N3d3NZYU50ckZJeGJSdXdwMTFVUzRDR05VQkRBOUNRZ0VwL1ZMZ0lYSDRyVWNac1NkM1ExL01ueXpxUW5FQUV1YWJsSWQreWx2RFc2b09rVE1KTkV3VU9LNnBGZ2VPRWZucko5M3B2TEswZ01kV1E1RlVrQm9qMTgxZlllUCtmdU1LMTZOWWo4MHNwMjFhTHFnL1RrcmM1ODJscmJnN1ZpVmJwMGphVWNJMGxSalVsUnFVU3dycVVEVlNOemFGR0J2WEFKSGtGVno5Qk9kVk9VQlkwYjQxV1dtVnV3OHJDbFNvektoZmEza2M1YStvbkFrMnpxMXFzaXZPQncvSWVLTHRrYTltNDl2Q0d2ak1Xcy9oalhSWFhjNW51czVMU2g2NFp5dUplVVNCNVorcVZqbjFRWUtnNFNVc1k1ak1iWW5oWnJCb3loR3FHRDltTW9Sa3EvdmhDelhWUkJJT21qQk9uNUM2bUVpRHcxYktiQlpNSG82R1dZWGpoV0lNUStLRUZUR09wa0I1aW9OTWl1QmJBbStxWUZ5V2dMK2M1MENQS0F1Mmd0cWljNnVqUzZaV0tSbGlyQVpYTmEwOXk1bXBDVXpWaFRUVkxwajNxZXdTYTNmVU9CY0NJVVJoVEVXeDhNSTVzU0RveUR6VnhWS0NpVEdrR095NGxoY2ZxYWtwL1BDaVZLVFVJMjVOdEFPUStGKzNZa0liQjhkSDc0NDdZWUppdk5naGZVSExxeENDcmJMcGtWVFZBamdvbWpLNncwdW1BZ3lVdzNDTk5jMndJZzY3MlZRL05qaHk4dC9Rb0Y0dkhtaXppMSthaDhKVTNnZ0ZsZU53RDdUNVBna3RUWDVLN2l6Q2dBMHF3QVhGQThSWnF5b3lMWmNrUkhsbkNZSGo4d0RESm5rMWRxNmFUV0dwY0NVUFZMdmt3VkdoSnlNRVY3TFNRWjFEQXFXdFlpRmRobXJKaHpxMCtnSTBmcDQxYmhFRG1HSkFIRnNwWExpdnJMRTZOdHJ1c1RwZkhBR3liV2xoUnB4cEhuYTVTVHhmem1XZFJtL2s2b3l1V0d4UHhtRzIzTGJNRlB6Ulo0b3UydHM0cFFCZVRYRU91eEpBdGFaVUdYdDRsK3FsTmRYeTFaYjExbmFMUXBVajRTc2h1UnFVNjBwY2dhMk1OT1JrSUpnYkFwbWlvVG1aRjRKRmNvdWVtOHE3WVVRRnB2U2pTdUo4VTUzdHh6ZTNNU2RLaFlUem5DaTc5YkZhektzT255dWk2cnV3OVQ4VzJPL2dWVmgvY2hHdzRpK0VmZzNrUlVMaVU0a1I2VUFrcjVMQkNzNmxpZ0ZVNHNRMHpYQW0xOHVUK2tQQ3RMV21hbXFPUWx5VDdmRzFOZFQwNzVQRytyODB5bkNTNmJXU2NKalE4OG8wSHVnNnVXa05aSjUyblV4dnJyanh5bU50dEtYa0ZSWDZUdDhLTWhMcjdvWDYzUHFoMWtNR0VTV0ZBSEhFRENiaUwvNWdlRTYzSlh1TDZ2TFp1eHRkZVZEeksrL2g1M2VwbWhjcXVkYmxLV2VxYmh3S2J3QXhEQmFCUlVwWXpVRkV2aDRmeGhVTHVUL1BxakV4aGhsVi9RRktJQ21qWk1YNmpRRWlueHgwNkxjSHBjOXhpaDBiQVp1QWNkYlVLYlBDUmFFZnh5QzErcmdwcHhjT1Rtb1J6Y3dubmZwTnd0Ukx1Q3hWeDdoRnZoK3F3K2twRm5OdEl4SVVyaXJpd2tZaHpGUkhuVm9xNGNCVVJSNlp2cVcra3pBbnZWc1NabWVLNklzNnRFSEhoRnliaTlPc1lxRCtMUnRnTldzWHlvNnFyWmVQWWlEUU9kQjcvVDhHM3VOUXZMbVNob1B3aVVGMXBkMnN5T2dVejEzWGkyUGRpcTR1K2o5cnNkdUtsODlpUHJON1NyQ1hJRW5zS2lWZVlDTGFiRWJTdCtoZW5WZE5DVzRxV0lyWDFUWkMxSFpIemEvazBqSG5XTnVjcnM3NldyUmtub3MxaFpzVEdkS3R6djliVFVhd1oxRWZJK1BUNXRnanZrK2RjL0Z4LzNqV1VYamIzbWx0alZKL0R1cmxsSk9ZV1FmaktFQjROTmVOU2FjMGJsek5uY1UvMWthai9tRDA4ckJnYWxVWE04NFRSamVZSHgxKzBvRnVldFY3UVVUT01LeTQ4NkFsZjVDd3NTT1lCZjNSOXl4RElncTlxZ09LUmcyT0hHdXhIckNkOXpVdklXSXdZKzZ0M3NwZzVNUXNjSCtOWVJYUDFaUjdQRmVvVHF4SUg4RERneXd2NDg2RyszbTZJN0txT2tUcWZHbzZYM0tscStUcVY4YVA0MWl3LzgyYlZPZWkwVHEwT3NvdWZJSEJNZGRZVlU2YTRJcEd5RitlbjJGdFdSak96ak8rTkIwcDMxa1RtdWlHQ3lzLzFLQ28vbGJTUkg2QnBIaFV2Z3RrSXQraGJyY0Y3c2VHRS9oWTRlMmhFdEZSVktVZUpGZXRFRG4yYjd1Y3FENWhlZ2FYZmloempmTWp3TUhHOFJFK0xPRmZKRnZEdVUwZkVhbjFYR3RZMGVQVzlNaXNOYTNLWHAvNFNQM21oQllVYTcyU1VjbVFWV2hXUVdFV1FMSS96TE41SlBKY0xpRTlpZyt1TjMwd21QVlNqL042Y2dMcGgxcENmenlsdXlrMjhBWWJLZUdNVjBWV3dxaHAzVEM3a3NqVU9kc2hKVXRJa05PUW16UHJPWkozY1VrOWZhVSsxSFhFei9WM2J3THRqQkwzZE5TeVJoZFJwTm4vMVY1dS8rbC9CL0lXdGlMMkpsNDVPZVFoUlFPN0VxOEN0SjREMEpGQ1prUFNLK0pVWnN6QnJtaWJOenoySGZzRlRhZzNweS9CNENia0ViSHp0eXRldXVYU1NGVS9NNWJNTXJwNWg1V205WVhZVUxWVmFscEVkYnBha2pYcStsbithV0RoM3FNQm9jcXhHQXR6NDhEZHJURit3K3ZRUHAwMDFZM3o1cVJJbTZudVROTkhLRzhXSkJrR1RKemVxMXZYSGczNmJHWG5Hcmxobk1BcWI1YkluNzRQYjVybzcxK3hxcTJncW0zUDYzQ0NQNnFTbzQ5WTZUcTNuMGlVYzJsekR6TzZZVmplRkZ4VE5vYmlYcXBBOE9NU2djUnN5TXI1OHkzVk5lVXJwS3RzRis5Zll4LzVlcE95cFRIcW4zTmZyakVaZWt2QlRTRStadU1jNHdSTUFVWXlYcXpyWjVjYUJrd2FMR1NtMzN4VjNrZnVCTFJiTkRUdmdEb3FaUXlWemNWTWJMc2JyNnZkM1lpYzErYXJYeWplNTRPSFdJWWJta0RleUVHVS94enBQZG92OHpTMWhsTTNOTDJTZlJ0YlcxZGFLcW9vdDNhQlJ4cnZCR282eDFOSU5BNlppVkpmazhvZFl0eEc2ejl1Ulp6T0E0MUhyK1huVUNjWkZ3bTIzZUxiYVduV0ZxYVVDeDl0U3hKWDFFUVpyQ1VlWCsvdGhGTm9vODZQWW1RMnRNd3c1QTVLZWRtTHhqbTN6Mitqb2NoZTZXQzRiUUdhQmhSSmVPM0loVmovV1B0K2d1KzFSZDlNajcwWkczM1dIMzdYSDN6VUg0SFZIWU5NaDJIZ01ydEdDNk9zbzlmYVpNenQzTG1sZTQ0ZVU2SzF0bi9wekczU2lBQ1prR2tqV2ZTWFd3WkV5YUk3bDZtTHpvZHBHemVuSnV6ZXZYajYxZjMzK3k1Ti9mdjZzTFFLeHZYcis2czJ2LzJMLzl2VE4yK2YyazUrZXY4WW8rV3ZaR0N4b1g0VlYxQW1NYzg5U1FUOS84dHR6UEhZY3hWUFM0ellLYWhLcUJJNmZ3bGdGdXVOMVBld3M4QUtoRUZLb0tZem9OUE5BYWJBUzRBWS9IUUZSendMNHRycXRWajA2V1FGcmE1T0tiRzZCRHZNSGcwZVl6RzJSY1BFREd3d3dhQWk5bUoxTVpjNkxDYjdZYTdWNGorSGhNdjhrQkZFcHJ3VVNaNll4cEJTb05ha1hkdGFwNndvNjZWb21xOVE3UGRmVzVJSTA3K1VuNDNIZXhTSnd4VkYrem93dWtQSEh6L3lnY3lsMVV6cWhCcDFwc28vcUdHaEY2TzFyTVl1UTI1bThscTE5Q3pKWmREZGRDSlFUY1J5Rm5uNURqVERLTVo2SlNXRVg3a3ZjOXZiSk5Pd2FhQ2lCYTdSRTQraTZsYXhFeHhJMndFQVhwZlZLOWVNQ1RvYXRnbGRabDRnZjVhWFd0V2FxN0xkcDlTNm5WWVJ4elptMXJ1Zy8vdVJxNEJXamhpdGxNSTJkRmFkUXRlekRPZ2xSbnExWGtBSktZMXBhMDI1U3Y4NG1keUVsK0RkSWl6eXFGdzhJbGQ5VXhRY1YzM3hKbTlUQm9wOHYwbEprS0hLbUxBdjB4RWwvVVV5NHBMQk5YQzVSUjEvenJsVENRYmtpbFVPTTZQVGVOVUh5MWdKTXV1eTFsWitrSnRDR1krN3FXZVR5dlVzWVhHOTlUVG12S21waXlEdTdlS0p6ZCtlNFVJbWJSMkM1b0F3SCt1czh4c3FsZUwyK2huSlVRVVFjdE44c29YU2c1WXNRRXQxb0cvSTdRdFdYL0xLK0xWNi9rbjdKK0NWK3ZHSVZNeG02d2c4N2RJdG1PWXhBSlVkSGJYWWhEc3RlRXVPVzk1WGJOdEt1MStmOWRCOEpTT1Rad3pLNFI3MFFuMVhKUDZUWWNMZ0lzWGJGdTZNNFNYNFMvZmdZZEVNVC9lNVYwRzlMMHE5d0Y5OGVYc1ZYbWt4NUNzTEpkdlc5WjNSSiszc1k2aVVrMmNPSDc0VWlxa2hzUklpOG4rOWJXYmVxN3krVjl4THROWUxOTHpORmlyc1lkc0FsdnNQVHhtdEV6elc4dGJJa3NrYk82TlN6UWU4ZldobWdOdjZLNkJzQklad1FIbmpIa0ZpcWlXTFhmN3piS2txcmlVTjN5RkFFalpMTXNwMTJLY2sxQ3pLN0hQcU9wN3NyeExJTCtNV0hDWmR1T2llb0FTTUt6S0NHcENDZkpPaUNnd3dZNzhleWZGNGpzZ3ZVa2I1aC9qdWc3eW1uTTMxZlNpcm5TbnNkU0ZjQnlYK0hLa2oyS0VOUGg0NTlTTVFEWHJHZGQ5QzRjREdiemRQNElFOTJ0ZVIxcEFJTThqT0t6dEU5eUovRHd2T1VQNitYb2dPcTRIeERqRUN0dWl6cWUyRkt1a1pZUjhMc0pzSTNvcGZmZ1c2cGloWkpka29tek5hSGZCREVpOUQrTXVJNFVsc0N6MGtXc2FjSFpCVDdxUDB4OVc0V1FVT0x2Tk9STytnTEpZb3hONVFTMlhYb3RQMm5TR2JRZ0N6QlVkOGR3cFR5eHgrU2dlQnhtajJHK0JpMldxckhrYk50N21kRTNlM3BYNTQvL2RrQ0pmQkY3SGt5UjZaY21YTzRQQWRYdHpMclFjdjdDaTh3SHRFOEJnQzVEalBOcjhlQ1htdXBCOU1xeTdydnVLNWlLTXNSeUFhWDlDUm5veXRVRTVBTHA5cWFEaEZYR1dlcWJXcEVSNDNZeVg3bzdlMENTdUpQaHRsMmYzbXpDdU4zQ1N3MGdqRHV0M2VHV2ZIdTVaa1RuM2pNQzZQRnlhbmFJS2ppK1prWHBqWnRPWWhob2swZHQ0MkxnL09Eck1XQ2p5c2JTeENlQW9JcHVWMEFUR1Y3dEt4UVZiT01pRTU5emwrOVVSU1BMZEdHcnN4OEpXYVA0b0RJT053OGJRNEdnOXk1UC9hRGJVc2RwN3QwRmF3NkRpR2xuU2RNS2FIVkxvQ2d1WnFTaG5pdHNPQnh5YTlPRzBOOUJETGtSS0UrT1hLMGh2L2twYjhBMHMvakdOZVNaWlpDaDYwdHBSbDFlTGRWdElpQWNLRVNpM1krUXpaUzR5OWh5TDdlUVNHYnZQMDR3MStsaWc2czFWYTJtN1NLVjBhdkthc2RYUGpvNHdJMEp5OTlna3FyVlJvYjNiWVVzSnRTYm1aREJMQ2wwYlltQmdDZkxnWVpheFdudmp3dG4rWHdVNWo0OEZNSVpVeGlSSnNMbFd2bGRYYk1YOGpveGNRbXlJWWFDK2tFbEswVWYwUGxuZzNLblRkRmVjUHYxMEFPckVJR3V0YUJyaFVNV3BQTEZibGNKWmVjUVlsc3ltL2xDcFVnL3hubVA2Y2xHbWp4ajlWMGluNjhwcWJJeU1lWUp1ZkIrcUd5bW16THBFczBWNFNMT2U5dndKS25jUlJpbUZZcHQ3THNWYktJS1I4ZTY0aXN4cTd1Wml0WDluem16QUhZT3o4QUtZbFhGK2RDdkhpRW02c1M0MmlCd1NoVEtJRFRYNEpCa2g1MHU5MU90eVozNEFWUlRLWVFHcU5oUzB5dGZYMTZYUXJBVG5rUUlRRnVpMk94eGF3ZUlRRFE4SWY0VTNSWmtrMDQ4dUs0NUhnY0RQakxpWC9oalN2ZjB0azRiK1FuZmhSYS9mS3QzSkJ2STJkdWxNYjdiTU9VQzJpR2VmR3Y4YjFGcmRya1pNWC9MWjUvVVpGZnBRMWwvT25QV3hWWnFTRmVPRmF1WTFkVXFSdmtvdkpZNXdIODluUHRZSFgyYXNCZkJvVVBHYzZZeW4wTVdTcXE1M1VvUlJocnRrUlUvdElLV2dJWVoydlFubDR0WnFrL24rR2Foak1lMHdrakQ0eDNobEg4UzFEd1h2Z0NvRDcrVU9lK2JMN29UTGwrSms2VExpWExxcU9tRXB5NExFYkNRNExVQS91TUl6RUluSXJodDJGdDBLamhZNFYraDhydktmMXUxWlpWN1N5bHFHcE1tWk9iQU0vN1dZV2RwNGJHMUZySXhUMW9WTjZVc1Roc3EzTktMYTQ2UjY0OFVLWXZUeGhxN0V4NTM3MzQ1YzNiM3o2djVCVHo3L1VrcEpyN1R1WTdESmQ3UnoxYjN3Tmx5ajd6Z0VlalM2dUJPU216TGpVbmM1aDU3NUIvVGpxUHVFNk1icVY1R29OSjdOand0MTFJZEUySlRtTE1ha3dkNVluWDh5UEI3UEdTN3d2bDFrdUNkOTQ1U2JLQUh1bjE5eDY1UGlBMDgwOUN2QnFSN3pFUXUxeXBRWFRCRWQrWmNhQytkT3RlOGdaV0ZxMTlPeXE5Vkp4YnVFeXl5VEIyWWNWQ0ZEcnJoaHh6elN2R0M3ckxDcm9WQlNrc2FXWEo3VDdXbVZSVnVyeXNxNWJscFVhbVF1UldISElTU2NKc2JTcGhvN2J6YlFQemJLTnIvcnFmdnk3R3pGYXRmMk1CV3ArbTYvblVyRXAydklldG0rZFBUdjFKV3NxYkVTYy9qSW42UmNuVGUwamVndXFTV01NSGRCZVR1TUNxYXJPVCsxbUVqc2dhUXZ3RjZpcSsvSmpmdUhVRm1pc2w1VGZMWGFuN04rVkgzL3o4Z2JaN1A5NXRtVnFNbjl6ZFBQalE1aFhzN3FDL0J2OWZ0UW10TmdPVEVlOVZKUDhPbmp4d01RU3E0dXFSRnFnSm9TVzF3R0MvUmpXcjFFSlgwMXlyTVUxckVUWGNOc21vbXR0dlRVYXoyKzJhakdnM1ZNMlZnWkMxUkx4ZXZZMHFnUkYzc3pTc2FvaXM2RlBydUZJVGlvSGF4RisydWFYNG5FZ1lkdnM3dUM1RE4yUDBIbS92NGdQZFhQTkRiMWNMcEszZ1R5aWJPS0FvOEdnakl5MnQwWGV6VmhHdTJTbHNBNXJiM1IvNkdacUljd1dhajN2OUNvNHBTdUVNenh2QzhQRVBLOUpSRjZWbE12WnZnWXlJV0lhbG1HQ1dJcG5McnNxK3ZoWDB1anNObWZIdUVOelo3ZTQxNmVVbGJIaG5KTnp1N254cEpBVFNmUEk0MFlieGJZeVRuZTZQK1dnR2pMK0VidDd0N1h5eTJMN1ZidFlRdkNHQmZZc1lOaFRZbncvQmxZWDFIWGZ4bHlpdE5RUy9TR2xkUThJdlExcnJnNlNadFA1OEZHd29xZStBZ0ZvUWtva3ptN25PYUVyck42bVhwTGpnOG1sNGRlVThSOXZUVmtBdk94U3UxSXNUYWlNdHREa3BvSjYzLy9Mbmw2K2Y5WHIycXpmUGZ2L2xPUzZZUVE3ZUpVRm43RTJzRFVqYWFMUDdnRXFiYmZ6bDVWdmhTTndnQVA4ZmZtNHhuQT09JwoKaGlwX21vZHVsZSA9IGxvYWRfaW5saW5lKAogICAgbmFtZT0iZnA4IiwKICAgIGNwcF9zb3VyY2VzPSIiLAogICAgY3VkYV9zb3VyY2VzPXpsaWIuZGVjb21wcmVzcyhiYXNlNjQuYjY0ZGVjb2RlKGtlcm5lbF9jcHApKS5kZWNvZGUoKSwKICAgIHdpdGhfY3VkYT1UcnVlLAogICAgdmVyYm9zZT1GYWxzZSwKICAgIGV4dHJhX2N1ZGFfY2ZsYWdzPShbIi1zYXZlLXRlbXBzIl0gaWYgVEVTVElORyBpcyBub3QgTm9uZSBlbHNlIFtdKSArIFsiLXN0ZD1jKysyMCIsICItV2Vycm9yIl0sCiAgICBidWlsZF9kaXJlY3Rvcnk9Ii93b3Jrc3BhY2UvYnVpbGQvIiBpZiBURVNUSU5HID09ICJ2c2NvZGUiIGVsc2UgIi9ncHVtb2RlL2FtZC9mcDgvYnVpbGQvIiBpZiBURVNUSU5HIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICoqKHsnbm9faW1wbGljaXRfaGVhZGVycyc6IFRydWV9IGlmIFRFU1RJTkcgIT0gInZzY29kZSIgZWxzZSB7fSksCikKCmZpcnN0ID0gVHJ1ZQoKY2FjaGVfbSA9IDAKY2FjaGVfbiA9IDAKY2FjaGVfayA9IDAKY2FjaGVfaSA9IDAKCmRlZiBjdXN0b21fa2VybmVsKGRhdGE6IGlucHV0X3QpIC0+IG91dHB1dF90OgogICAgIiIiCiAgICBSZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gb2YgYmxvY2stc2NhbGUgZnA4IGdlbW0KICAgIEFyZ3M6CiAgICAgICAgZGF0YTogVHVwbGUgdGhhdCBleHBhbmRzIHRvOgogICAgICAgICAgICBhOiB0b3JjaC5UZW5zb3JbZmxvYXQ4X2U0bTNmbnV6XSBvZiBzaGFwZSBbbSwga10sCiAgICAgICAgICAgIGI6IHRvcmNoLlRlbnNvcltmbG9hdDhfZTRtM2ZudXpdIG9mIHNoYXBlIFtuLCBrXSwKICAgICAgICAgICAgYV9zY2FsZTogdG9yY2guVGVuc29yW2Zsb2F0MzJdIG9mIHNoYXBlIFttLCBrIC8vIDEyOF0sCiAgICAgICAgICAgIGJfc2NhbGU6IHRvcmNoLlRlbnNvcltmbG9hdDMyXSBvZiBzaGFwZSBbbiAvLyAxMjgsIGsgLy8gMTI4XSwKICAgICAgICAgICAgYzogdG9yY2guVGVuc29yW2JmbG9hdDE2XSBvZiBzaGFwZSBbbSwgbl0KICAgIFJldHVybnM6CiAgICAgICAgVGVuc29yIGNvbnRhaW5pbmcgb3V0cHV0IGluIGJmMTYKICAgICIiIgoKICAgIGdsb2JhbCBmaXJzdAogICAgaWYgZmlyc3Q6CiAgICAgICAgcHJpbnQoImV4ZWN1dGluZyBvbiIsIHRvcmNoLmN1ZGEuZ2V0X2RldmljZV9uYW1lKCksIGZpbGU9c3lzLnN0ZGVycikKICAgICAgICBmaXJzdCA9IEZhbHNlCgogICAgYSwgYiwgYV9zY2FsZSwgYl9zY2FsZSwgYyA9IGRhdGEKCiAgICAjIGEgPSBhLmNvbnRpZ3VvdXMoKQogICAgIyBiID0gYi5jb250aWd1b3VzKCkKCiAgICBtLCBuID0gYy5zaGFwZQogICAgayA9IGEuc2hhcGVbMV0KCiAgICBnbG9iYWwgY2FjaGVfbQogICAgZ2xvYmFsIGNhY2hlX24KICAgIGdsb2JhbCBjYWNoZV9rCiAgICBnbG9iYWwgY2FjaGVfaQoKICAgIGlmIGNhY2hlX20gIT0gbSBvciBjYWNoZV9uICE9IG4gb3IgY2FjaGVfayAhPSBrOgogICAgICAgIGNhY2hlX20gPSBtCiAgICAgICAgY2FjaGVfbiA9IG4KICAgICAgICBjYWNoZV9rID0gawogICAgICAgIGNhY2hlX2kgPSAwCiAgICBlbHNlOgogICAgICAgIGNhY2hlX2kgKz0gMQoKICAgICMgRG9uJ3QgY2hlY2sgdGhlIHBlcmZvcm1hbmNlIG9uIHRoZSBmaXJzdCBpdGVyYXRpb24gdG8gYWxsb3cgZm9yIHNvbWUgd2FybXVwCiAgICBtZWFzdXJlID0gRmFsc2UKICAgIGlmIGNhY2hlX2kgPT0gMToKICAgICAgICBtZWFzdXJlID0gVHJ1ZQoKICAgIGhpcF9tb2R1bGUuZnA4KAogICAgICAgIGEuZGF0YV9wdHIoKSwKICAgICAgICBiLmRhdGFfcHRyKCksCiAgICAgICAgYV9zY2FsZS5kYXRhX3B0cigpLAogICAgICAgIGJfc2NhbGUuZGF0YV9wdHIoKSwKICAgICAgICBjLmRhdGFfcHRyKCksCiAgICAgICAgbSwKICAgICAgICBuLAogICAgICAgIGssCiAgICAgICAgbWVhc3VyZQogICAgKQoKICAgIHJldHVybiBjCg==Source code from GPU Mode and the KernelBot dataset · June 9 Researcher Reciprocity License v1.0
Changes from previous submission
Against this author's previous submission submission 27258.
- IyFQT1BDT1JOIGxlYWRlcmJvYXJkIGFtZC1mcDgtbW0KIyFQT1BDT1JOIGdwdSBNSTMwMApmcm9tIHRhc2sgaW1wb3J0IGlucHV0X3QsIG91dHB1dF90CmltcG9ydCB0b3JjaApmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmltcG9ydCB0aW1lCmltcG9ydCBvcwppbXBvcnQgc3lzCmltcG9ydCB6bGliCmltcG9ydCBiYXNlNjQKCmlmICJQWVRPUkNIX1JPQ01fQVJDSCIgbm90IGluIG9zLmVudmlyb246CiAgICBvcy5lbnZpcm9uWyJQWVRPUkNIX1JPQ01fQVJDSCJdID0gImdmeDk0Mjp4bmFjay0iCgpURVNUSU5HID0gb3MuZW52aXJvbi5nZXQoIkdQVU1PREVfVEVTVElORyIsIE5vbmUpCgprZXJuZWxfY3BwID0gYidlSnp0ZlUxejIwaVM2Rm42RmRYcXNBMUtORVZTdEZvdFVaencrR1BHMjkzdWptbjN6bTVvRkFpQUJDV1lCTUFGUUgzWXJZZ1g3N3lIUGN4aEQzdDh4M2Q4eC9kcjlwZHNabGFoVUFVVVFGQ1cvTEZyaGswUmhhck1yS3lzck15c3IyLzljRHhmVGp3MlBQY1h1L0RmanBkaDZnZGU1M3kwK1czcDVYVFIyemUvY2FkVmI2YUxBLzNGNHRyMXcwbXZ0NXY5MEYvN1VaTEduaFBvYVlFVCtnczF5ZlhUMGVibXR4TnY2b2NlKy9PclgreG5mMzd4N0FkckhJVVRQL1dqc01VKytQTzNUZnllUkI4T3FRNysrL3NDTCtEakJ4cmlSUnhIc1oweUQvK3lZeVlaZFhRSDhQMnB4ZUYrYzR5NGZsMk94MTZTZkdnVDVQRHZoMGM1ZlB3azZlVHdjQXpWWU1NaDJ5SjJzUzM4RFJYNms1ZFN3bXNuOEhoTlcvam1rZlVJLy9DcTQzT0xucmNPb1dBSmZ2N1JZZjZheG41NHBrRGRZbjdJTWR2MmRCbU9iWnVuT21tVyt2TFZqeThndFFiK284TkhQT3VQcjE2LzRBQWUvUzE4dEY1YjYvQzlLejhWVk41ZVpDcmczOXdOUUNQOCs0R2R3Nzg4OStlZU5YWG1pZGZhM0Z3bTBKZ01sQjUwTWRzV0N0RDJCc0dlUFEyWDc0NUVCdFNYTW9jN25VZE8ydHMva3FYMyt2Q1NVdFcwcXdHbTRrdmJkbElRRzNlWmVyWnRXZDVWYWw5NDR4UTcrUFhDc3dhdFZpc3I2SXR5ZnBqdTlhSC9yMUdVY0JLZFRaRDI5cW5vSnFqdjVUaGw0Nlhyc2ZmRUlVRE5nallMMjJ4MnRIa0RXVUQzSktsM3RZanAxYVVUTCt6RWYrY0JvdjNCVWVIdDJCbWZlL1ljdEh5V3A5Yy9LTUVJYkhjZWpXZVV4UTZXODlSZnpESHZYcjhJTDJ5Y2MxYVJrK1BuTElxOU14K0tjQmJBdTZWZ00yUkl2V0F4ZDFJWXEvQmRDSnFEdldreitmdTMwU2EwUGd4MjBEdHRlK0pkK0dPUGZrNmplT3o1SWRYWVZraHlsbW5FNE0zY252Z1gxaHZtdE5sdnpHMEpIc2RldW94RFpqbHNoN25zTWV1MTJDNXpnZDA1SVVPQ0FNWG9yM3NyL0lEYW4zaTJkK1dNVXl2RG5hUk82bzl0SjBtOE9BVUtIZ0FGeDhlczIyWmJrOGhMV0JpbG9pQ2pndDlzZ1p3b1JEdGxVcEgvTU5hM3FTR2N5VVJoWE9MOXl5Z1RNdEVxMTdaN2JVUDJvMW9JOEtQVDZiQlhTVlh4SWVXbnZEUVlRQUh2RE5vV01DNjljRXd3MjFBZW9JeEdvdTVjREVUcjE1U3lBRGJiaHNMUVBvQ2hoVEI0WjlBb2ZzWHBmYzMvWlBRWHlYWm1IdEE3OGE0a0V2dlNUOCt4RHZhNU4xOTRzWWs2eVVGanRWK0pTZ3ZneGpxOEJzRjZoWUlGSlVhancwT0UyS1FTSTlGYjZnalhDRnhkd1NFZ0lRUmpTVWRPaEFUMFVtTmZFM20vaVB3Slc0WnhOSi9iemdLWVpMMWswd2J5a1BVRmE5cVJIVDhDT2gzUWoxWnJDT2l0VnB0QnpsWlowRXY4UWlXalNQekx0VWxIb2pPS3RNcEFWZXFZcTNEMS9ZMlowZytncWpjcDB6VUVMZkZxWkUycjJmSVBINFN6WDQzejVPRXAxeEpaWDlaei9FT2U0NjJhQXovbVJ2YmJrTk1TdWcwL04rSjNCU3RGN2ZEUER4OVV5YjE3cVdTZTY0YzgxNnlZcTU0ZE1PUnJIRkc1VXNNaGZjeWtBUmo2Qi9LbG5oM2p1ZWZFTURaYUQ1MDRkcTViSjY5UHkxeDVYY0VWS25MaW4wTHZlL08rZTZNUlZvT1lURG44c3FkeEZOaG9LbGxrdXJHckRQZnVMbnFvanhKMHVpNjhPQUd2aTZGbGorNFhveUhTbWMvWkREcGx3cUlwQTROblBFdXlrb0NOUlJPb201TkFSdXUxQXgwMFdicGhGQWRnYzdaWWVnNm9MajJBRXo1Q2N5bjJtT05HeTdTVEFYaHo3aWZzekF1eFlSQ1ZtMFJ6c09IbTEvRHpPZ0VnUU5iRUE2QVJlN3RNVWdhRFREaUdyRm41OU54anl3VU9LdUIwSnd5c2dETXZwZFRZUHp0UDJZVXpYM3BzN3M4OFRNeEsvWXdsRnRmcE9WUVJGU2NvbkVsblV4MzJTYWNDU0J0cWxnNlJneU5MTm9hd0tlZ1ZHbFhBM2xSNXpiT281VFBMYTJRQjIyRjQ3dTNMekMzNnRiSWh5Y2pGcjZ3aER5eTA0K3RiRVhLU3RROWNvZkxBNm1RZVhUSjQ1NFJRZXhwL29ZVXlDTmphMkU3bnpnV3hDMzdFazB0c05EL2t3enVBSlNaUEl1YW5IV2c5TUhtaWFZcDVNaUNCQjJ5ZHNJa0hBc0JRZDdOazRZMTliRW16a0xRWldPMGdKRGtWdXF4d0lUcjM0QmtHNnJHWHl4T1lmbURqdy9zb1FSSlZtZkREeFpJVEdIdkFTWkFnS0RWMlF0QUJxUitnclo0cXRETWZ1cllYZUNFMmJDUUJ1ZGRjNkpMejVYUTY1OXp5U05BNm05LzYwNGszaFhZNm0xNTlQK2hERTRsQ1A3M2E2M2FCY3lETW9jbzM2aXZBODZTanlobDFScENLbzgxdlBYRFNNaUF2b2MrNXpuaEdQSk45NWVmblB4K3lsOUFUd1NxZE9tamFVM1VFd1FhSTRjU2ZWcWl1bHdXRkpYVzZRWE1sM2h6NGJMbFJOS2ZRVEpzcEd0MmZNZ3BzdFJSdFpkYTV3QWxQS3R3Ymh2VmRXWVpjMTd4UWFhU2FMQmIyT0kzbmZLU0tvMHM3Y0pJWmFNbnUxWlNudVU0NDB4S3BHaUJZNFlSS29nZEpTT3E2WDlhQlFSU200T01zRnBaTXVTcDRPYmJ0TG4yd1lVUGJDU1puNDlCZUxpWkFMUlc2YWpQNGw5T2MwZHZPcVd3cnBCbEc1cm1EdmlaNHVwT0dCS2V4RXlZTDZDRDI0R3BnVHcvc2kzNU9PL1VTczZla0lHSkR4UTNlWlFOd25mQXRFMjk5MUFnUlVCYWZlWm56cE1QU2dEMWsyaU42ZzYzTUkwUGlNN0RZZzlBVkJDM0FGdEVseXZxVTljMElWSURIWko5dVBmL2xsMEt2aGdiNmw2VWZnd29xWnMrQTd1NXlqaHptQ2dDa3NjdDZyTS8yc2pUNmlEU0N4UDVKZXpWZ1Q5ZysrMDY4MmxGd2Fka08yUGZzS2Z2anFtelAySFAyQXJwYmRiYmswbG13aGVQSE5EeGpobXdZekhJVUtpQUl6QjRGaHV4UjBLWG8waEE4Tlk5WUFkMHlRTmdLeXZNbzl0OUZ3T0U1RE5rN29QeEJDTlNSTnIyTWdPOEpPSFZ5Y081ZjlYT3BuT1JFRG9ESS9leXhCMFR1NVVRZUFKbFAyWXZzOFh1ZytZK0NaZ29DOEFBQU1Ra0RWOFFtZjVLcERTWExXUnd0RitJOXVobVFuVXJ0YWtMeGdBMUtKVk9rKzdqY3ZaRXArZGdQeE5rMktZa3IwRjhrVFcwVk5JeDJrT1ZYeWNEY3BoQ0taZGgxZTkxSHZkNmpidmRSdHpmaUlGcnRQSnBOSU9WanFUNFBnSXZZbXpScjVBK2crYnI3ajdyOVI5MEJBTmJlSGVLN3ZVZmQ3d0Rkbys2VHpCd1JsWGtONWdJMU55RWlFZXRyamQ2R1lXNkM5b0RTNkFrT01GSmd1RGJIRHVoZGpiMUZ5bzBDQmQ1VnY1TkxBUXByVC9TeEx1RHFGMTg5Zmp3cXZ1cFRYOXlqVXBobEx4ZjJxbGRxd3c0b0JybFd3Nkl3YU8zS3RsbGZhVnRlTzFQamRxbGxvWDE3M1JHQlVkcVdvRlkzN1ZEVVdHdlZKOVNrdmFwVzdWUEQ3bWV0cXFrNXFEUnBUZ3pBOXdjdDludisyTnZYSGcvd0NSKzAwQmd5cm1pMzR0QnlBQ1BMZkg0UlpJeU1uVXZnN1hUcXhUYllKaFBiUGJCNDREZUprM2pjbG5GSmRoRk5wNG1YS2lsSktXVWNvVWtYanErNTRXekRFQkJZVzRpdXc5RjFBRjJIbytzZ3VvNS9nUHE5U0NUYTdQVlU5dlkvTHBtOWZST2RCSzJXVG5EcFBpcWRlMzBUbmZ1RFZYVHVEejR1bmZ1RElwMjJUUzNmWHltZ2tPVWp0MzJmQzZsS0xabmVGV1FtWUIxNzJKR3kvbllCTnFiVFpoK0phRUp2NkZnTlNJWmVKYnZmSnlHNjNNMGFVTDJuR00yZmhPcHlwMnRBTmZRNDJUVS9DZFhsTHRoRVFxRHpxVDMxMDBpSjZKQmV1QXpZZUE1K1JnNEcvS1VOUHZPSGtUSDBYTExuczNua09uT0trR2RKZk1FSUpNSEl2aEZHb1kzdVhCUlRyajF0ZWtLTks4cnBGRTZWOU5DVU5Cdk02bWdKUHAvaVEzT3JCbm04elJacG5JY3lKUy9BN2o3ekRPbFFjdXFmQ1M4YmlOcmdreUxnK0FlMk9vRVVlMEYwNGRuakN6c2R2aGtKZzZKSUVMYVJlRlhqb3VZbHJUZEFib1NCdUZodFNIQTMxYUFDeGs0ZWp4QTJFRk5BcVlkOVk0OWdMY0JPNGZFM2hTOGpTMkJTN0M3T1d6Mm14OE4xNVBKdUV5blIxSkxjYUJVS1o0Rk0rSGVKd2FwblA2RFBsSWpJRnFaUUlOVlB3VUZ5d2ord1YxQTd6d3ZJSmNJVTl2enBtNmYyeTUvLzh0UFROelRkaTBHbUlvYS9laXlnbUNhNnhPN2N3OElnT05mY25rYnVNQlNqdU5QcGFFWEJFT3gyKy9DLysxc2UyczdpS2ZSSFJoaXlZSFpiRWZZeHJjY1JUNGVIVXZCSFRkcVhaSVppMTBQSlBBeHlNeHoyckxJWVhqb2dYS0lEbDkrbTU5Q1hKcVgzRk5BQnU1MENKd25PMWNWTDdvdTBSSTlRWmhmRXpEaDZwSnBnRzRnODB2c1ZUVFJ6ZUJTSlFVdEJ6UHFYNUFOazVqWDJvZzJsUW16YmtQRUk4bWpWcXNpVmR3STE3N0ZTN1Q4VTNxRUg4Qkkrai9DclVCVytlR0ZNZGMvRkhoSkgxamp6RXZEalQ1V3FXMHFOajNFT3Y5anBESUZ6aGRFamE0VlBVSnE1MFVHUi9nZVhTV3FCUWg4c2NhZjgyaWhka2pGakxhbWxUZ1R4V0dVTk4vcDN6QTJ3a3I1a2RnenVtQjFnZm4zSjdEaTRZM2FBWGZjbHN3T0RDM2ZiVy9wZmdQYlFhMXlJWDZ2c2VZemhhMHloY1lBV0tNbEF0amZaVWlFYkIvSFZRN2M2YTQxRlZ3emlmQTRJN1dKcmM0TXFTMk5JMWJENWtKSEIvZ2tHZDlNd3paMksvMUhqdEZwbHcwQzlLcVRBMnpnWDFPSkU5Z0VheHRqRWhpNzBhVHZkQ2lXazg2VTBaSytNVzZ4aURGOEc4T1Z6cGpSNnI0eU5yT0lNZDZhK2ZNNlVCdktWOFpkVm5NSFl6SDhIenBUSDlOVkJuanJlS0FHZ0w0VTlkUU84eml3YTRTbXArUkMvc2NiNC9pR2p1aHpNUHY0d3ZzSDVCaFFOeHlNZ2FrTTJjc25LNkkyczkwamVEVFF5ejZkUnhaTUtwUEJFU1FOSGx5OHNnZUYwZDVjOUZZdlI1clRBaG9tQVh1QUZVWHpOUXMrYnlFVUpDWnRHODNsMG1SeGl1Y2ZzVHpoZGgvT1p1T0x1R2hlekpaRmMvNFlyajNBVzNjRUYrbzlCWmlsOHdBdmlJaXBDdG5EUzgzeVJBb2dDL09WYkRCaTJXNFlaUzNvVDNIRVRoV092dzU0OWYvMTBiNU1XRE9TWnVXRDVDZUxqNUxRNVBaQ0lTN05ZNEtTeGY4V3p5Y1ZLVUhNT2FPS0RLTklpTW92dk0wajl1V2NIUjB4RStId01oODZYUVFodzN1TFdJS2czRURUM3NCNkFzc09yOWxjUDJnVk1HTy9DQS9ieDlxQ3dsUk5ENS9DaHdueHBIM0FJZVN0QmNDTHlIUTVzbDFsWWtWM1NNeDd2S0FsdVJjSUt2UVp5WTQ4V1dYVktKWTl4M3dZN0hyRUQwNnYrazMxOHQ5YzN2ZXgxKzFRU01NdnFRSDllQmg1dlY3bk9ETm5oekxGeTEvRFhQd3M5cWlXeDNrOFRQa1V1aXdSaWhRdEhTVVdCQlZtNVpEays3MlE3VWhndGdwdlBhWWRDNG1QUXo3Mkcrb2kyeFBWODU5RnlQa0d4d0wyR1dIME85ai8vL3EvLytmZi9sZjM3dncxKy8xdWh6TDlsZ1A1M2w3NEg5SDFBMzcwK2Z0Ti9lc2FJdDVENnJOUi9LS0QrZjRQZi93ZksvRjE1L25lSnZrZmZUK2o3ZTU2eWg5KzN4aVFoOStsN244UHMwdmZnYmlEdjBmZDNISEtQdnArb2tOV2EvcjhHdi84OVh3VzJ5YlZZcWdocnU1REdPNnN4TmVTcGNxYUJQRS9TcVp0U1RVOUJVMEZpdGtSbk01K01JRGlrZjJMam9qRVZFWHVRK1VjU2gxem5oVG00dWxFMFRiN2dTNU4yOG9RcFVvdmd0akszSjdkRU9BbFUwVFJLblRrUmlFT015Z3h3OURUaWRzdkVtUmFXcVFBZkZOUURWUVRmTXllQUVTV2w1VmVVVXgwbnRMclE4bEVFMHFBdUJBb1hvZGdhNGNjTjY3RUNwdERGeHhyTGRwVWFDdExFWnJ2NHpCQXN6MlduQkhqVWJQcEhrQ2JCRTBSYTRNd0gzanlxdzIyRTZlSkFhMGVjQzh5ZFlOckpwejJHK2lNdkNmYUFIVlM5Q0lWTlVweFRvNVZDMHB0WDh1T1d0aHdzaUZsWTlPR3BxQWhBVkdjQTgxaE9hNG41S3Vsc1Y4eG5pZmZiSTB0blNhdk44YWdSZ2p5Y2tQclU3TlJNcnlaWG5Tc2xsMndJSG50VDN1UTdGRXBOWGIxSkkwZnFBOHEzc2c4U00zYVFrcU9LL0hGMGlVRVRYSlpuN0FaVjVjQW9vWElQMWl3SFhNTUdoTEtJR1hnSDVDR3NiVlAzcW9IQjZjWnZUU3pxMEhLU0s1QnBZSXpVbHd6cmpJd2hDTUhEaHhMRkVPWE9VSjZFN3pLS0oxejY4a1hZU01Td1JOREl5cWJYQmN2YU9mTENWaG91UXlkdlR6T3RJVjAxQ1c1a0llYkNscHZOSEFCRmhUTlpwUGZycUpYY3c3SFR5RTdBaU0vMVNWR1RUQkxGV1pIZFFIZ1FIMC9Ock9xZ05OSHNaYXNDYUdoMHlBa0JSWTBEVGhUNEtST2lRRHQxVUh2VC9ERG1oWWUyQ3NyTk5sZlFLbDgrQnZqaEJaaWlFMmxrZDlpYkNHekxLOHJJZDFFZ1hCVU1ibXp3d1BQSXlyRExjdzhneGd4MzVDVExCYTN6RmNNaG1PeTBCSUhieFA0VWZWOFYxanN2eHEwbGpQWUkzYi8yK1V6VUQwaWZwbjUwUTJvSEkzSk45UkgyNTIwRWlNQ0s0NFlzQldQR1ExMzZUd1FOcDRWZXZNMUI1VDBCT25SRmYrVkxaSy9ETWMrY3FIdnJjTTNwVk5TTGhKb3NLRlJRSk83d1crME1Zdlg3SWdiNnA5Yldnd2w3TVBsYnVOWFd1cGJhblhSTStFR2h0S2p4Y2ZGTjl3ai9EaldUOElqdDdQaUJBYTFlUEJURlE3MTRTTVhEaXVJYTlaMytsQUh0ZkdOT2dldCtVR3h1YkdvL1BHMlZxMFFNTnlWbW1JQkY1VktsRWxudXgvZ3BGYmxaMlp3MytxYnFlL0pIekY3SFVFR2lBOWVCS240TlJacEdxOXlWNEt1N2NnL3VTbENzMW4yN0swWXdmQ0c5c01BSFI3VHBKZkxEc1QveHhBNUYzQUVnL2QzT1Y4OUh4Vnp0K1d5RGhWbGg1bjUxYlBSUm1mWnArZS9lemZtK1U3NUxDME45M1A3S044TU1SRncxb2RCZjZGMmhsaURyS2tLVHFsTkJCaGZ4YkVjVEdpQzUwRmNaSFR3SGJqd1V0czdxSXR3dVVncFdHRHFWRGc4M2tGUnFkMVJ3RmZZV052cHE0b28rbk1tWjRqWlUwTkNIVytXUU5mVHI3dEdIQTdsUzNheXlBOWNiV1YzcHE3Vk91cWRmbmNDdlR1QlhKL0NycHY0NG1ycTVhMm9jOHlFdjdZb3FOTkN2TkhXZTd5RVd0aHBhY2J4OVRNem5ZZGg0WEZKRWlsMlh6V0szMldDRVN3a1VuN2RsWUpROGpVM2JVTTU2YUdJMjRYWXUwU1VWSzVNeWtsb3Jqcm5SZ3dtcnhyRFowUW9BY3ZRcVp5UkdYdkJSNm1TV20vU1MwdE55bVF1YThTK2RSREJVanpPd0xscFZWRlZ0M1ZaMmVsZnQ0RlkvMjBhcFE1b3hIb0x1dUpYVi9iSGt3Z01lZmJFeXR1NlVDR2taSXphbnJSSisvQnl6aXdZbkRwR0xyZXdNOHJPakNMa1kyVzJtcDRTMmNrWlR2bnNvbUFZT2VCWE9HV25rOTRwZkkzeWFOMVYrVXk0TkNsb29vQkpSNGJtWmlvWmEwZEJlalpZN2VuNkt1MlEwdE1Cc0JkSnFRQVJDZHlMVmd3S0hDcUoyZnM3RnlLcHlUQlVkSzg1WHJJTmV3aTc3NDV1OGoyc0hOYmFhb0thcGRoMXRIYWFqN0d3ajlVQkllRXBPVEhVNGJlYkNsc2pUcFEwSGNVczFib1FscCtWNi8vN21aajJqVHVycU4rMVNsVWNQTTJPTmpuMUtUT2pMT21BRlRGUU5ZbEVaTUt5MURyV2xkZExOYUM0dWE2Nmt2Qkg4T3ZyTGh4TCt0dTYycnQvYVpXR1VROEp2TGFnZW9yVWR2VEVLY2JnaWdBYzVBRDEweFJkVzBib2Z5aWlsTFR2R1U4YXVmbFBqbWszYWZsVkY3b09QcFFaY2g1dEZNZmxjZUxwMnBUNmdoeWtINjZuaWxSdFdKdjFXY2NRZU5hUWtnNSsxMXpXTnphcDdxZHVCVXo4R0t3RzdJRGg0Tm9DeHhEaGhVRVNRbXF0b2ZRUXd4ZG01RFJDMGhhL0p1Q0dvRC9SNE9oei9yeFdzekRYczdiY1ovaC9vSjhhaTYrdGtZVTlOWDFPSmdaakxFQnNrOHpMdUxjcU1xOHZnLzZ6UXVoNi9kK1dObDZtbitQb1MxME9tT1BJaXVpb3IvSkE1cHBldWVPbVdYZmFTUDVGaktwd0pXRHBoUnJaSGIvOEsvZzJtcS9lNWNYNVlxNWREaTR6dTZvd0x2bkRhdEY2NjJ5eEpTOG5OM2dvNXJoYkh2WDZiNGY5K1kzR2szR3VLWTIyWkNuSE1LUHVmSVk0Z0VQQ3YvK25FRVUvYi9HankyRXl2SHNDL1ZXS01lYVRtMm1zdXhUeDdHK09SNitqVXFpSmZxa3FWUjJyaWpTblBYL3pqcTJjdjdHYy8vL1FMWFNoUmNlQm1RM2xmcFhxeDlSWUhkS3lxSmp4VkczYUtBbCtWcnlqdnpWUnZ0LzR4RitoTklkWVZaNGRHQzkrYjhHTmduK0VoenJoZy9CSVBqT0FiRXNBa3d6MEU3S2RYL1Y2M293cVJnRUJja25Ka3RCc1VUNVdpTk5EWXdwR0JjazZuNE5xVWM3dDVidGVjTzdmbGNwRTZQQ3k1T2Vib21CSStrcFZ5eWlLajF2ZndNTWN6c3RSOWw1bXlFd1NlekxSRkdpWlViaE5VYmpVcTE0eXFBQ1RybU9PMlVrbmx0NnVjWXkzT2hCVi9LRlZmemxHbDFySVJFRlR6T29Nektaem1hcTJ1eUpjNk5IOFN0Y2FIY0R6Myt4T3BOZE1RL3RucnRkd0EvYXJYNmxCOU9Yb05aNHM4aisrUlk0RVRMcDE1bTMzWDZYVUc4Sis5b3QxYmMrYzZXdEtlTTV4V0hUdno4WEx1OEtQTzZkUnhuTitMM05UeGNYL1doZS9RVWFlNFYvQ241OWsyT3ZXYzd3eEFSSHZwenROMGtSenU3cDc1NmZuUzdZeWpZUGN2UHo4TGRxSEQycnl3clJTMjljSjBmRGx0RWFNZ0J5NUFRem5IdTNhaUFFam5jNVNCczFqZ3JDNU81VzdTbWIzS1VWU1lJY1gxQlR6c2tOQ1U2NnRIQWRUNjNYVUh0N1JGNGZ4Nmt4WVMwQ0crdEJFUFNpVWVIZDdyaE5lSUVxZDN3K2l5WXpxdERGdExIelpvV3NTTGEreGxrV05ZYlR4bjR0NU1sYXZCYUpCTFBGdVgzNENDaHlWUVVCU24vd1hESFN1YnRHdkxLUUx6Tkh5UW5RLzhnT0VWV09VTU9DTjdnUE0vNGhSaDNKKzRRd0JMa2JMMzRHVE0xb3gycjE4M3QzSGR3cnVzVy9neDZqWmVxOTBHSzBoZnlRbWwzVUpadDdwWVJvVlFLNmJUNXliVUdDbGMzZkI3L1M5UnFEKzhicCtaVUljWjZaZ0ZEK0p2VVMxeHRybFVJWjRINTY1TlRLaVFBS1hlUVlYQVU2SnB0VGRkcVpkUGdpdUpjcmEyZnVzcEFsMzRDNC9ZT2ZFVzZUay9SeFBmbWJhbGlqTUVsQXo4cU0zWkpsNk13RmZSVWpQTm5XVTRQaGZMMDJ6YnlpbHY4ZXN0Wmw0Y2VtTEZyYkxhVnBqMzZ2cGJQV1d2RDVtU2Nwb3IwdkRXbU8zTWhWQldqQ21yeFVnaTg1K2lCbUlSQTAvbk1MTTNhYkNRMmZQVU1TN285dUxOVEc3MFdRbHNnSHlCdWRoUEwyZTZTelBveFhYNzJocnVUbENjbXk0dTZOZXpoeXV5ei9Uc00zbEVlYzFLL1NGZGM5aG1XM3h0T3EzTy80a0ZlRk1MaUJ0ZUdqVDM4S29WY0FVb3g2V2ZGTmV4cjhBUkduRzh2bE1jTXlPT0g5YkRVZEhhaHZVYTVvYXJXS0ZoYnJZODgwekxQRFBTQWM0cVRTL1dibXc0VWlmVGpJMjlyVXVMYVZjRC9sWUxPYTJxelJubERRMjEyTVBiWUhjL0NIdkd0U2FZeGkzV0ZORXFMai9ReFlianc2U3NkNGtxaVpzeTFZN1hnSXNQZERrclFuOWREZjMxU3VnekRmcXNEUDJIYXVnL3JPcENpV2tIaThLcDJsNlNtSGJyYTB1WGFndnJtdEdlYVlWbkt3b0hXbmRPOUZWVENmVzdEYjB3L0k4ZHUxQnpNWEtBbm1KL2dQK0hESXlGVmVWQ3ZkenZ2K2RQZlFGRkpnd2dvUThKZzFWZ2lScHRZWlZLYWR0QVBhMmlXZ0UwckFFYUdvQ0dCRFNMUjRYTHdPVzNFa2xoUytxNnZwNC9XZFdBRkFRaXlEVTFEL21TdFlUWFZ1OGtaUlp1bXpod1hJRVdGWTRUK3VrMVgrdTl0UkpCWXNLUTVDZ1NBOFQ2OFN0c3ZQNVBYT0ZhRE91Uis2V1ViYXRGMVlkWktkb3NZOXBhbUVNTm9sV0d0QTBsWEdPSmNVMkpjYW1FOEM2ekNxck81a2hqZzdwaGtxS0M2KytnbkdrN0tBdVd0OFlyRFpuYkVGbTRGaktqY2FHdGZjeEdUWDFIb0dsMFZZdFZTVDVJV040QzVaQnNyUmpYYnQ3UVY4WmlGbitpbStKNkx0TjlWcG4yb1d1RzVMbFhkSkM4TS9OSzJ6N29ZS2c0U1VzVWtrWTlBemZqdVI5MHJ0aGpwbXpOZnN4NlJWS2dRS2dVdUZZTFhQTUNRdHRxam93L3VjcEVBbk8rSzRKRlY4ZUpVd29uVXdrWUVOU3kyd1dYQ0U5TExjUHd3b2tHSWZCREM0VEtVaUh0NEVHb1JYQXRnRGZUS1M5cVNEOGJCOEhPS0N1OG85cWkyVkJJbDFLdlZUUkNyQVpTdG04OUNKclJoQ1kwWVEyYUZjTWl0VDBDbFhmQlF3RndjaFRCVlJRZjc2eGpHNUpPekYxUmJDV29LRk1hNFU1TFNlR3BPdHZTbnd4TFpVb1Z3dnJJQllJOEpxTnRLOUlvT0QxNWU5b1JDeER6MlFnUkswck9uUmgwbVUyWHNLb095a25CeGRFTld0bzljTFFDaG51aVdaWU5ZZERWditxbTJyR0Q5NXFlNUdyelZOTlYvRm85Vk03WmpXSEFHWDR1Z25iZko4R2xvVEhKdzBsNDRBTnF1Q0ZKUVBHV2FzcU1rMm5KQ1c1cHdzUHkrSVppMGszYnV0Vk5PN1hVY3ljTXFGMktjYWpRa3BDREsvaHhJYytnZ0ZQbnVKQ3V3akJtdzVoY3ZVRWJQMDRibHhDQnpqRVFEeUtVejJ4VzRpd09uYmE3Q3FmTHp3aHNtMnBZZ1ZNOVo1MnVXaytYaTdsblVaMzVQS1FycGlNVDhTaVg0NWJGZ20rcUxNbEZXNXNIRmFDTFNhNGhWMkxJbHJSS0hTOXZFbjFYcDlxLzJobmV1a1pSK0ZKa2ZDVmtWM0twanZVbHlGcGZRMGtHaG9rT3NDMHFXc25tZ0d4YWM3Zkw3VlQ2MlV3aHFxcDJwblNDMjZySXkxU3Nub05mWWZYK1M4aUdndzMrTVhnSkFaMTZVaHp2amlwaGhSeFdhUFk0RExBS0c2OWhJQ3FSVmg2RGQ0amUycEttRVRRS2VVbHlzemMyMUFpeVE0SHJoOXBnd0ZtaXV6aEdiYTdSa2E4ZjBFMXAxYW1SalhTWnptekVYYmx6TUhlL1VncnVpZnltb0lPWkNIVVJRLzJpZTdDK0lJT0prb0xrbjNBL0I2U0wvNWlkRXEvSjdlRm11VGI5eGFkUVZEckt5L0U1Ym5YTlFXWFR1dHp5SzdYTmpxQW1NTU5RQVdpY3pNb1p1S2lYd3ozMXdtNzJaems2bzFDWVlkWHZjeFNxQW1wMml0K29FTkxaYVljMlBYRCtuTGJZc1JHd0dUZ25YVVdCRlQ0UjlTanVuTVhQVFNHdHVBZFMwM0J1cnVIY3J4cXVWc045cGlyT1BlSDFVT05PWDZpS2N4dXB1SEJORlJjMlVuR3VvdUxjU2hVWHJxUGl5RU10dFUybWM4S1BxK0xNUW5GYkZlZFdxTGp3TTFSeHdyZWxOcURuZFZ4Yi9OeWhlNHNmbFpDeWh5dXJzTEd4dTYxZkNsR2N3QmZYck1pTEhrb0xWcFB4T1hpbXJoUEh2aGRiWFF4WFZPZTFFeTlkeEg1azllcnpsV0JLcXJkM2krZUo3RFhqV1Z1TkZjNnF4b1oycGwrS0ROVVhOSmFFUmVWM0xyVGxuUzNtb2R1Y3J5ei9XcllxY1Z5VEszV0Iwbm91aWVqKzErRzBPSnlXYTJDMGhzTzZvV0lzaGdyQlpOUGhKVTJOWEQzbW9NYStjdkVxcm5BK0VYaFAyYzV4aFhCWEZpa0o4N1l4WU9VSHhXTklQNWsyV3BHdlZodlIzeXg0dW9MNDRoR3BmL0hPbG5NblpvSGo0OEZOMFNJZlUrVHBwZEM2SXNaK0JBOURIaXpIbnp2NjdISXhQS2NLWGwxNENJVXdqdzlhZmtIU2xCaVI1Y3VvVEYyZ0tlZGp4VW15K0FrQ3A0U3Fzb0M0UXNkMGgxR1p4NzBDajM4Uk9TWTVsL2xSV3J4RUx3OTJGcmd0WDN3UUQ5ZmpuOTcrMU1yNkVvTG03VThod3RSZkVSc3NFRjVBZDI4dFd1Sk1BWEZqUWN2RHlKVzRWTUlheWxCL1BSbnFmNTR5aElUSDN0Ukx4K2Y4ZERPZzZjd3prZFFUeFhzWnVDd2g2UlhKS2t1SUtyTW1rZjJrRXZ5WkNYUU5vd3ZBZVBZc3lseCs1MmJ2WEVPNVJCWk1EQ1hsV3plNWRVZXF6WWpUUmxXYXE5eklkOGkwMWUxWkxRL2FJQ092TWxQWEhoVDB4RWdjZjE1SUhoN2oyUVJiMlFHTTJWdXVLckxGY0RkeU12V3ZNZGhNZUU0aWU1WWx2Vkd1aFhMR1l5OUorR0szWjB4Y2w1WGdRcE1veGp0OEhIbUhGdGlOd1hKT3V1bWI0bUlGUDdCRlVNY3drVktjamNlRFFHWG00dHdJV21tNjl2eEdUTWlUWGJaUlBqQVkxMUNQY0FkWWR2QXZjZlpUT0NuU3dyczdtL3l6ZFh4a1hkZHplcXFLclF3Z2x1bHU0SmdZUzYwTWFKbUtFYTVNeW5jUXR4RzZ6K3VSWnpPQTQ0Y2o4bVhQVTl4K2k3TzN1SVRmV3RkMWFxbkE4VkJlY1ROaWZ0OWpHSVUyN3N5SVltYytzaTV3WjJPM3pXaW1nRGRzbTE5NlFHY0kwLzBGc2dQZDZCYU5rRzdVdk5yS0hlRnpiSHk2VG5mZnZlNnVlOTZkOUw3YmRyOWI5NzliZHNEYjlzQ21YYkJ4SDRRUFZQbDFsSHFIekpsZk90YzBybVgzZk1KSDJUNXpvblNRVTdub29ubS96T2dTTVFkRS9LdC9Ga0tYbHpjODhpWG11QU1YaHVmVUN6dVlyMlJkYk1nK3AxNkJzc0dUblRRSy9QSFR5Y1I2V05qa2M2S3N1OXRXVnZEdEtDdjRUdHVzSnpIY2lDNHZ1L3FHRUpGZm9EdERyNFlXWW5Sa2NVNzNKTUs3SkNzSjNMZzhSNHZDd3YxWFdSSmxoUWJDb1A0SEUwOFJsWTBjLzVWMHpUZXlaQmZnenZKY04vVHJSbFpaL0NneEhiTTFzVEsrYXJ5UHFmRVF4aTJWWGwzUi8vNTZ6eUFyUnVNalV5dlVjOVpVZUdyWkhWYWxTUlZpV2hwcGQybTZTTVVyZWpuL2h0NmU3OHZsV3pyenM2WjVwK0JUTGpRL0RjNFNlSXVsdloza1E2N2Fxc2xaZDFWTXVLYU5sMXl2VUVQZDhyWVRva0c1NUlSRGpHaDkzUzFCOHRvQ1RMcXVwWld2ZFNiUWhvWHE2bXJoOHNuSnVEMStjME5aVVNvd01SU0hmVnh6dVQ4NExTQng4ejFVVjVUaFNIK2Q3NUs2RnE4M04xQVBLb1NJcGZMYkpaS090SHdSUXFJN2FVSit5NGY2a2grM3Y4dnhLK25YakIvRHp4R3JsR1diVC95d1EvZGdsRGNDVkVwMDFHWlhZam5yTlFsdWVVcFp1ZUdlRGtBRkJoSjdEckFNVGs4WFRsaFI4bzlvZHpkRzZ6WnVlSE1VQjdrUDRoL3ZnMjVvNHQrREN2N3RadndybktaL2dJZnBsd1pEbm9KdzVFekZXMGJYckwyRnJsNGlrdTNzdkJXRHY2SnhrU0FLeWJ4dHlXWlYzMThyN3pPeU53ZzJ2NDRFT2U2UzZVRnlkMENXSFZrT2VPOUVTV1hSM2VxMk01L1QxZlFjRUY0cXZ4SFJOd0pDT0NFODhJWWh0VlN6RDczL1pMOVYxRlo0RHp6VW0vYkFsSFNXN2JSTFNhNVprZG5semVzODNWMWpOM3JBcnk1SXVIYlRKU0UzMXpTVmNhMit1aGJoSGpEZmhoSVliOGV5ZnQ0Z3RndlNrYjloL2p1Zzd4bm5NMzFmWjF6T2pkbzZrSzRDa3Y4T1ZaRHNzU1JQaDQ1dFNNd0RXYkdkTjFDNWNEbWZMOUw0S0U5MnRlUk41QUowOGd1Ylh6dVlQNGVGNXhsLzNpenQ3MWZCK1laZC9ocTYxZGZ3TlQ2WWdTaTdpd01ZTUQ3c1FMTlVuZmRBVzVxa010c2M4VTRRTDBQNzh6aUpnZW9TZUU2eWpEMzlTQVhLaFY0THRhN2M0Nkx0bmV0a3MrMkZFc1ZkTWVvaENhMThCdGo2cHNobXNJQXNJVkhmNEEzU3YvK2VDUkE4enVSamlJOWhxNlVHYzdqWTVpRWNQSUh1Mlo5ZlBQdkJPdmNYTDJQUHkzSkk0OHFjdytVNXVMa2xyWDh0NzA5NEJkR1l4akVBeUcyWVdYN0FOYlJhUzEyVFZsbldmY050RlVOWlRvRHNYRm1RVHZhdVVFMUFLWnhwNFhKaXJ0TFAxTGtFSXpucW1SdnN1OTdCUHBBay9raks5dnFycTFYb3Z5dGdvUk9ESjNkNUY1Z1ZiMCthTy9HWng3d3dXcDZkcXhVQ0ZDOHV2REMxYVc0dWhvRTJkZHcyem9rc2ptU05oUnhYVnBZZ1BBTUNVdzhwQlRDVjlkR3lBcXBtR1pHYytweC84Y1pSUExGRUhicFo1aHN4ZWhRN2hKUnc4N0E1SEE3enVPbkVEL1lzdFovdTg2dDBsWDRJS2UwOFlVWUpyWFlCQkkzVmxEVENpNEdFakdmeTZyUnhNMDZRYlFvcDRNdDZqbGJ4UDNucGowRDBpemlPWWt0bUtUVFl4a3FlVVlOM1cwV1BDQmluYk1KTUZuTVVJM1dISkc2Njd4MFZzbVgzRjBuNlZhN293RnFhL3BxMXRIa2VPaEJrUXdrbWN3V2s5dzJ3bnJ6MEtScXVWcWwvZ0Nzb2xPeDJwanRsTndHS3FjZHRpRTdBaDR5aEZLL2k4SmVuNVNNZGZncURIMzRLQnhLUkt0SEdRK1Z5T0Ywazh4ZlpHVVFrS2lpS21oanhXb25haFdXbTZybnpxaWh2K0NtWktJVlZ4RUR6T3RDOFFraHJjcmtpbDZ2a3lrWlJZcHZ5V3prSVZiblBUcm56YmxiaWdYYUtrWnBPWnhodHFDblorVVdZbG8yRjlkMWxQZjBtTlV5MFVCU01PZSt2SUpMbmNSVGlZU3VaN3RMbXBrMzZpQ2tmdmlPUlBNZXVIaW9ySTNzeGR4WUE3STBmZ0tiRUM0aHlSVjVjd2MzTmlVbTB4Q01sVWlpQVF5QmVndHQ3MU8xMk85MmEzSUVYUkRHNVEraVFoaTB4dlBiMUlYWWxBRHZsVy8wRXVGMU94UzZ6ZWtRQVFNTWY0azh4N0VoKzRkaUw0MUx3Y0Rqa0w2ZitsVGVwZkV1TDdieXhqM2N2Vy8zeTNWcVFieXNYYnRUSWgyekxsQXQ0aG5ueHIvRzlSYlhhNW16Ri95MmVmMW1SWCtVTlpmelRIM2Nyc2xKRnZIQXlWOWNOeUo5M0tFWGx2czYzMlIvbUZzTDY0dFZBdmd4R0h3cWNNWlhIR1dRcW11aDFKRVY0WWt5SnFmeWxGYlFFTUM3V1lFSDl0SnluL21KK0RZaWN5U1MvblJMUDRpdEJ3ZHZkQ29ENitFTWQvK1I0QWFNZDJXaGlKZXBLdHF6YmF5ckJpU05mTTNqSWtIcGduN0FuQm9GVDBmMjJyQzNxTmJ5djBPOVErVDJqMzYzYXNxcXZwUlJWSFNwemNoUGdlVHVyc1BQVTBKaGFDN200eElmS216SVd1MjExenN5U3E4NmhIQitHbVQ0L1phaUpNK1Y5OC9MSG4zLzU5ZE5xVGpIKzNrNURxcmsveW5pSGg5NThwSmF0YjRFeVo1OTdJS1BSdGRYQXBjeXlyblFwYzVoNTYxQ01MZ3NnY1pzWVEwdUxOQWEzMkxIaGI3dVE2Sm9TbmNTWTFaZzZ6aE52RjB1QzBlTVZYM2JIdlpjRVQ2NTNrbVFKTGRMckh6eDJmU0JvN3ArRmVNRUJQOEJlTENLa0N0RXh4WHcrL2toOTZkYTk1QldzTEZyN2RseDZxUVM0K0syK2VFWkJ4V1FVQnV4R25ISXRNc1lMdXFzS3VoVUY2ZkNReXBKN2ZjU1pWQ0ZkWGRaVnkvSlNZMU1oQ2kyT09JdmtLVGZieXE3UnZYenFmeUhYRWVhdisvbnI0c2xYYWdUQVdJRG1tT21RZlRXcmtoMVBVKy9tK1pOemY1cVc4a3JtMElwTUVsaTBMMHJSM21PS0dGU1hSQXp2TUdSTTZnSlIxV2FuRURTdFREM09LMEx5QmVZcXZueWZuNXQ5QTVZckplWG53OStveStPeWo3NjI5QjJ0cG4yeTN6TFZHRDk1eUhuNHJzMFI3QTh3Wm9QL2I5cEVWcHVCeTRpM0kxQ01CMWVPdTNoUWlSTHV5VHhRRTBFcnNFQm52d1dhZGJEUUFiTzNxa3hUTEFMRGZiT00wTngvYlNUUDdyZHBKTlB1Q00yTmdaRzFUTHdkM2taSW9NZmRMUStyS3BJaCtsQWNOMnFDOFRwdThQaXluY01VY3lKbDJPMFBjRzZHenJmc1BkbmJ4d2M2Zi9hNzNyNTIzSlZDUDVGc2tvQ2l3b092TnA5ZW8rOW10U0phNVI0bEE1bDczZS82a2t5a3VZTE1KNzEraGNRVXRiQ2s4NDRvZlBMZG1uelVWV21aamYxN1lDTVNKcWtVQTh4S0luUGRWZG5XOTBKZWQ5QlFHRDhlZ1lQOTdrR1RWbDRoaGgrTmhYdmR3ZWZHUW1ETkIvY1RyUnZmUno4WmRML1Blek5RL0RrMDgzNXY4TUZxKzE2YldTUHdqaFQyUFZMWVVHRi9PZ0xYVnRZZnVZay9SMjJ0RWZoWmF1c2FGbjRlMmxydkpNMjA5YWZqWUVOTi9SRVkrS0Ztc3h6SGFBbmFHdWpsbmxvRkx5SnFaR1UycnlyZytlV2YvL2pxOWZOZXovN3A1K2UvL2ZnQ0o4UWdCMmQ1MEpsNFUyc0xrcmJhN0NHUTBtWmJmMzcxaXdnVWJoR0Evd0xrbTZvSicKCmhpcF9tb2R1bGUgPSBsb2FkX2lubGluZSgKICAgIG5hbWU9ImZwOCIsCiAgICBjcHBfc291cmNlcz0iIiwKICAgIGN1ZGFfc291cmNlcz16bGliLmRlY29tcHJlc3MoYmFzZTY0LmI2NGRlY29kZShrZXJuZWxfY3BwKSkuZGVjb2RlKCksCiAgICB3aXRoX2N1ZGE9VHJ1ZSwKICAgIHZlcmJvc2U9RmFsc2UsCiAgICBleHRyYV9jdWRhX2NmbGFncz0oWyItc2F2ZS10ZW1wcyJdIGlmIFRFU1RJTkcgaXMgbm90IE5vbmUgZWxzZSBbXSkgKyBbIi1zdGQ9YysrMjAiLCAiLVdlcnJvciJdLAogICAgYnVpbGRfZGlyZWN0b3J5PSIvd29ya3NwYWNlL2J1aWxkLyIgaWYgVEVTVElORyA9PSAidnNjb2RlIiBlbHNlICIvZ3B1bW9kZS9hbWQvZnA4L2J1aWxkLyIgaWYgVEVTVElORyBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAqKih7J25vX2ltcGxpY2l0X2hlYWRlcnMnOiBUcnVlfSBpZiBURVNUSU5HICE9ICJ2c2NvZGUiIGVsc2Uge30pLAopCgpmaXJzdCA9IFRydWUKCmNhY2hlX20gPSAwCmNhY2hlX24gPSAwCmNhY2hlX2sgPSAwCmNhY2hlX2kgPSAwCgpkZWYgY3VzdG9tX2tlcm5lbChkYXRhOiBpbnB1dF90KSAtPiBvdXRwdXRfdDoKICAgICIiIgogICAgUmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIG9mIGJsb2NrLXNjYWxlIGZwOCBnZW1tCiAgICBBcmdzOgogICAgICAgIGRhdGE6IFR1cGxlIHRoYXQgZXhwYW5kcyB0bzoKICAgICAgICAgICAgYTogdG9yY2guVGVuc29yW2Zsb2F0OF9lNG0zZm51el0gb2Ygc2hhcGUgW20sIGtdLAogICAgICAgICAgICBiOiB0b3JjaC5UZW5zb3JbZmxvYXQ4X2U0bTNmbnV6XSBvZiBzaGFwZSBbbiwga10sCiAgICAgICAgICAgIGFfc2NhbGU6IHRvcmNoLlRlbnNvcltmbG9hdDMyXSBvZiBzaGFwZSBbbSwgayAvLyAxMjhdLAogICAgICAgICAgICBiX3NjYWxlOiB0b3JjaC5UZW5zb3JbZmxvYXQzMl0gb2Ygc2hhcGUgW24gLy8gMTI4LCBrIC8vIDEyOF0sCiAgICAgICAgICAgIGM6IHRvcmNoLlRlbnNvcltiZmxvYXQxNl0gb2Ygc2hhcGUgW20sIG5dCiAgICBSZXR1cm5zOgogICAgICAgIFRlbnNvciBjb250YWluaW5nIG91dHB1dCBpbiBiZjE2CiAgICAiIiIKCiAgICBnbG9iYWwgZmlyc3QKICAgIGlmIGZpcnN0OgogICAgICAgIHByaW50KCJleGVjdXRpbmcgb24iLCB0b3JjaC5jdWRhLmdldF9kZXZpY2VfbmFtZSgpLCBmaWxlPXN5cy5zdGRlcnIpCiAgICAgICAgZmlyc3QgPSBGYWxzZQoKICAgIGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMgPSBkYXRhCgogICAgIyBhID0gYS5jb250aWd1b3VzKCkKICAgICMgYiA9IGIuY29udGlndW91cygpCgogICAgbSwgbiA9IGMuc2hhcGUKICAgIGsgPSBhLnNoYXBlWzFdCgogICAgZ2xvYmFsIGNhY2hlX20KICAgIGdsb2JhbCBjYWNoZV9uCiAgICBnbG9iYWwgY2FjaGVfawogICAgZ2xvYmFsIGNhY2hlX2kKCiAgICBpZiBjYWNoZV9tICE9IG0gb3IgY2FjaGVfbiAhPSBuIG9yIGNhY2hlX2sgIT0gazoKICAgICAgICBjYWNoZV9tID0gbQogICAgICAgIGNhY2hlX24gPSBuCiAgICAgICAgY2FjaGVfayA9IGsKICAgICAgICBjYWNoZV9pID0gMAogICAgZWxzZToKICAgICAgICBjYWNoZV9pICs9IDEKCiAgICAjIERvbid0IGNoZWNrIHRoZSBwZXJmb3JtYW5jZSBvbiB0aGUgZmlyc3QgaXRlcmF0aW9uIHRvIGFsbG93IGZvciBzb21lIHdhcm11cAogICAgbWVhc3VyZSA9IEZhbHNlCiAgICBpZiBjYWNoZV9pID09IDE6CiAgICAgICAgbWVhc3VyZSA9IEZhbHNlCgogICAgaGlwX21vZHVsZS5mcDgoCiAgICAgICAgYS5kYXRhX3B0cigpLAogICAgICAgIGIuZGF0YV9wdHIoKSwKICAgICAgICBhX3NjYWxlLmRhdGFfcHRyKCksCiAgICAgICAgYl9zY2FsZS5kYXRhX3B0cigpLAogICAgICAgIGMuZGF0YV9wdHIoKSwKICAgICAgICBtLAogICAgICAgIG4sCiAgICAgICAgaywKICAgICAgICBtZWFzdXJlCiAgICApCgogICAgcmV0dXJuIGMKNo newline at end of file+ IyFQT1BDT1JOIGxlYWRlcmJvYXJkIGFtZC1mcDgtbW0KIyFQT1BDT1JOIGdwdSBNSTMwMApmcm9tIHRhc2sgaW1wb3J0IGlucHV0X3QsIG91dHB1dF90CmltcG9ydCB0b3JjaApmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmltcG9ydCB0aW1lCmltcG9ydCBvcwppbXBvcnQgc3lzCmltcG9ydCB6bGliCmltcG9ydCBiYXNlNjQKCmlmICJQWVRPUkNIX1JPQ01fQVJDSCIgbm90IGluIG9zLmVudmlyb246CiAgICBvcy5lbnZpcm9uWyJQWVRPUkNIX1JPQ01fQVJDSCJdID0gImdmeDk0Mjp4bmFjay0iCgpURVNUSU5HID0gb3MuZW52aXJvbi5nZXQoIkdQVU1PREVfVEVTVElORyIsIE5vbmUpCgprZXJuZWxfY3BwID0gYidlSnp0ZlUxMzI3aVM2TnIrRldqM1NVSTVpaXpKanR0dHk3b25OeDk5TTkzNU9OM3BkMmVPcnc4UEtWRTJJNUhVa0pRL2t2WTU3N3oxTEdaeEY3T1k1VnUrNVZ1K1h6Ty81RlVWQUJJZ1FZcHliQ2U1RTUxRUZrR2dVQ2dVQ2xVRm9QQzlINDVtaTdISEJxZitmQXYrMi9FaVRQM0E2NXdPMTc4dnZaek1lN3ZtTis2azZzMWt2cWUvbUYrNmZqanU5YmJrRC8yMUh5VnA3RG1CbmhZNG9UOVhrMXcvSGE2dmZ6LzJKbjdvc2IrOGZHcy8vY3Z6cHo5Ym95Z2MrNmtmaFMzMnlaKy9yZVAzT1BwMFNIWHdQOTRXZUFFZlA5QVJ6K000aXUyVWVmaVhIYktNVUFjM0FOK2ZXQnp1ZDRkWTEyK0wwY2hMa2svdGdoeis3ZEFvaDQrZkpCM3Y3NCtnR1d3d1lCdEVMcmFCdjZGQlAza3BKYngyQW8rM3RJVnZIbGdQOEE5dk9qNjM2SGxqSHdxVzRPY2ZIZVp2YWV5SEp3clVEZWFIdkdiYm5pekNrVzN6VkNlVnFTOWUvdkljVW12Z1A5aC93TFArOHZMMWN3N2d3ZC9DQjZ2MXRRN2Z1L0JUZ2VYMVdhWUMvdFhOQURUQ3Z4M1lPZnp6VTMvbVdSTm5sbml0OWZWRkFwM0pRT2pCRUxOdElRQnRieWZZdGlmaDRzT0J5SUR5TXN2aFRtYVJrL1oyRDdMUzIzMTRTYWxxMnNVT3B1SkwyM1pTWUJ0M2tYcTJiVm5lUldxZmVhTVVCL2psM0xOMldxMldMT2lMY242WWJ2ZGgvSzlRbE9va1BKdFUydHVsb3VzZ3ZoZWpsSTBXcnNjK0VvV2dhaGEwV2RobTA0UDFLOGdDc2lkSnZZdDVUSy9PblhodUovNEhEeXJhM1Rrb3ZCMDVvMVBQbm9HVWwzbDYvYjBTak1CMlo5Rm9TbG5zWURGTC9ma004MjczaS9EQ3hqbW5GVG1wZmozclNSd3Q1anArbklTeGQrSkRQazRpZUxjUTNRQVpVaStZejV3VTVqSjhGNEprWWUvYUxQdjkrM0FkdUFNbVF4aTl0ajMyenZ5UlJ6OG5VVHp5L0pBb1lpdDRPSXMwWXZCbVpvLzlNK3NkYzlyc2QrYTJSQi9FWHJxSVEyWTU3Q0Z6MlNQV2E3RXQ1a0ozNUlnTUNBSVVvNy91dGVxSHF2MnhaM3NYemlpMVpOMUo2cVQreUhhU3hJdFR3T0FlWUhCNHlMcHR0akdPdklTRlVTb0tNaXI0M1Fid2tZSzBVMFlWaVE2NlFKdW83NHpIQ3VFUzcxK0hrZ2xGcjEzYTdxVU4yUTlxSWNDUFRxZkRYaVpWeFFlVW4vTFNaQUVGdkJQb1c2aHg0WVVqZ3RtRzhnQmxPQlJ0NTJ3Z2VyK21sQVd3MlNZVWh2NkJHbG9JZ3c4V0RlT1hITi9YL0kvRXY0aTJNL1VBMzdGM2tWVmluL3ZwS2JiQlB2Vm1jeTgyWVpkUjBOanNsNkxSQXJpeERhK0JzVjRpWTBHSjRYQi9IeUUyYWNSUWpKWTZ4RFVFbHpkd0FKVlFCYU1Nanh5SkROQUxqWHhOK1AwczhzZHNFY2JSYkdZN2N5Q1M5WUpOR3ZDREhBdldwSk1OL0Fqd2RFQitXcTBCVkcrMTJneHl0c3FNWHFJWENobUY0MStzakRvaUxUSFNHZ05OcVNPdVF0V1BWMlpNUHdHcjNyaU0xd0NreE11aE5ha215ejk5VXAzOTZqcVA3aDl6S1NISHNwN2puL0ljNzlVYytERjNzdCtHbkphUWJmaTVFcjhyU0NsYWgzOSsvcVJHYnQ5S0kvTmNQK2U1cHNWYzllUUFsVUNqaUVxVkdncnBjeVpOMERBK2tDNzE1QmpOUENlR3VkRzY3OFN4YzlrNmVuMWNwc3JyQ3FwUWtTUC9HRWJmdTQvZEt3Mnhtb3BKMWNNdmV4SkhnWTJxbEVXcUhidVFkVzl0b1FYN0lFR2o3TXlMRTdES0dHcithSjR4bWlLZDJZeE5ZVkFtTEpvd1VJaEcwMFNXaE5wWU5JYTJPUWxrdEY0N01FQ1RoUnRHY1FBNmFZdWxwMURWdVFkd3dnZW9Uc1VlYzl4b2tYWWtnSGVuZnNKT3ZCQTdCcXR5azJnR090N3NFbjVlSmdBRTBCcDdBRFJpN3hkSnltQ1NDVWVRVlpaUFR6MjJtT09rQWtaNXdrQUxPUEZTU28zOWs5T1VuVG16aGNkbS90VERSRm5xRFphWVg2YW4wRVFVbkNCd3hwMTFkZG9ubVFvZ2JXaFpPa0FLRHEyc000Uk9RYTlRcVFMeXBzcHJua1V0THpXdm9RVmtoK201dDV0bGJ0R3ZwUjFKU2pCK3lZN2NzMURQcis5RnlFbldBRkNGeWdPcGsxbDB6dUNkRTBMcmFmNkZIcElRc0xleG4wNmRNeUlYL0lqSDU5aHBmc2luZHdCTFJCNUh6RTg3MEh1ZzhrU1RGUE5JSUlFSFpCMnpzUWNNd0ZCMnMyVHVqWHpzU1RPVHRCbG85Y0FrT1JZNnIzQW1PdlhnR1NicWtaZnpFNmgrWUFQQSt5aEJGRldlOE1QNWdpTVllMEJKNENBb05YSkNrQUdwSDZDdW5DcTRNeCtHdGhkNElYWnNsQUZ5THpuVEphZUx5V1RHcWVVUm8zWFd2L2NuWTI4Qy9YUXl1Zmh4cHc5ZEpBcTllcm5kN1FMbGdKbERsVzQwVm9EbVNVZmxNeHFNd0JVSDY5OTdZTVJKSUM5Z3pMbk9hRW8weThiS20yZHY5dGtMR0ltZ2xVNGNWTzJwT1FKaEE4Unc3RThxUk5lTGdzREtaTHBCY2lYZURPaHN1VkUwSTlkTm15a1MzWjh3Y255MUZHbGxscmxBQ1M4VHVGY00yN3UwREptMmVhSFNURFdleisxUkdzLzRUQlZINTNiZ0pGT1FrdDJMQ1U5em5YQ3FKVkl6Z0xIQ01aVkVDNU1xcVJ0K2NnQURLMHpBeHBuUHJTemxvbURsMkxhNzhFR0hEVzBuR0orTVFuc3hId08yVk9paXplQmZqclBFdDUxajJWWlFNOHpNTXdkdFViQ0V4dzBSVG1NblRPWXdRT3lkaXgxN3NtZWY5WFBjYVpTWUxTV2xJalpRek9RdHRnT21FNzVsNHEyUEVpRUN6T0lUVHhwUE9pd04ySDJtUGFJMTJKSVdHU0l2d2VJSVFsTVFwQUNiUitmSTZ4UFdOMWVnQWp3ay9YVGoyZHUzaFZFTkhmU3ZDejhHRVZUTUxvRnViWEdLN09jQ0FMaXh5M3FzejdabEduMUVHa0ZpLzZ5OTJtR1AyUzc3UWJ4NnFOU2xaZHRqUDdJbjdNL0xzajFsejloekdHN1YyWkp6Wjg3bWpoL1Q5SXdaNURRb2N4UWFJQkNVajZJRytTandVbVJwQ0phYVI2U0FZUmtnYktYSzB5ajJQMFJBNFJsTTJROUIrQU1UcUROdGVoNEIzUk13NnJMSnVYL1J6N2x5bkNPNUEwanV5c2NlSUxtZEk3a0hhRDVoeitYamo0RHpud1hPNUFUZ0RnQWlFanEyaUV6K1dJb05KUXQzbHZEM2FHWkFkaXExcFRIRlBiWlRLcGtpM29mbDRZMUV5ZWQrUU02MlNVaGNnUHdpYm1xcm9HRzJneXkvWlFUTWRRb2hXQVpkdDlkOTBPczk2SFlmZEh0RERxTFZ6cjNkQkRKN0xMWG5IbEFSUjVPbWpmd0pKRjkzOTBHMy82QzdBNEMxZC92NGJ2dEI5d2VvN2tIM3NWUkhSR05lZzdwQTNVMFZFWXYxdFU1dnd6UTNSbjFBNmZRRUo1aU1ZYmcweHdIb1hZeThlY3FWQWdYZVJiK1Rjd0V5YTArTXNTN1UxUysrZXZSb1dIelZwN0c0VGFVd3kzYk83Rld2MUk3ZElSL2xTaDJMektEMUs5dGtmYVZ2ZWV0TW5kdWxub1grN1hXSEJFYnBXNEphM2JVRDBXS3RWeDlUbC9hcWVyVlBIYnNyZTFVVGM5Qm9rcHpvb08vdnROZ2YrV052VjN2Y3d5ZDgwRnhqU0xpaTNvcFR5eDdNTExQWldTQUpHVHZuUU52SnhJdHQwRTNHdHJ0bmNjZHdFaWZ4cUozNUpkbFpOSmtrWHFxa0pLV1VVWVFxWFRpNjVJcXpEVk5BWUcxZ2RSMWVYUWVxNi9EcU9saGR4OTlEK1Y1RUVuWDJlaXg3dTNlTFptL1hoQ2RCcThVVFRMbzd4WE83YjhKemQyY1pucnM3ZDR2bjdrNFJUOXVtbnU4dlpWREljc2Q5MytkTXFtSkxxbmNGbWdsb3h4NE9KRG5lemtESGROcnNqcENtNmcwRHF3SEtNS3F5NGZkWmtDNFBzd1pZYnl0SzgyZkJ1anpvR21BTkl5NGJtcDhGNi9JUWJNSWhNUGpVa2ZwNXVFUU1TQzljQkd3MEF6c2pCd1AyMGhwZkdVVFBHRm91OHZsa0Zybk9qRHprTW9sdktJRWttTm5Yd2lpMDBaeUxZc3ExclMxUHFIN0ZiRG1GWTVWWmFFcWFEV3AxdEFDYlQ3R2h1VmFETk41azh6VE9YWmtaTFVEdlB2RU02VkJ5NHA4SUt4dVFXdU9MSW1ENEI3YTZnQlI3UVhUbTJhTXpPeDI4R3dxRm9vZ1E5cEY0VldPaTVpV3RkNEJ1aEk2NFdPMUlNRGRWcHdMNlRoNE5FVFlnVTZoU2QvdkdIc0dhZzU3Qy9XOEtYWWFXcUVuUnV6aHRkWjhlZDllUnlidEpxRVFUSzZOR3ExQllPakxoM3prNnE1NytqRFpUSWp4Ym1FS09WRDhGQThrSi84UmVRdXM4THlDVENGUFlzeWZ2bnRndjN2ejY2c2s3V2c1R0oxT3hocjk2TENDZkpwckU3c3pEd3NBNGwxeWZSdW93WktPNDArbG9SVUVSN0hiNzhMLzdlKzdhbHY0VStwTjVHS1F6dTYwdys0ajI2NGluL2YyTThZZE4rcGQ0aG56WGc0eDQ2T1JtT08xWlpUWThkNEM1eEFBdXYwMVBZU3lOUysvSm9RTjZPemxPRWx5cml4ZmNGbW1KRWFHc0xvaVZjYlJJTmNZMklIbWdqeXRhYU9id3lCT0Rtb0pZZFMveEIvRE1heHhGYTBxRDJLWWg0d0hrMFpwVmtTc2ZCR3JlUTZYWmZ5cThRd3ZnQlh3ZTRGZWhLWHh6dzRqYW5yTTlKQTZ0a2JRUzhPTlBsS1piU29zUGNRMi9PT2dNam5PRjBFTnJpVTFRV3JuUlFaSDhCNU1wa3dLRk1WaWlUdm0xa2JzeXdveTBwSmE2RU1SOWxUWFU2Tjh3TlVCTCtwckpzWFBENUFEMTYyc214OTROa3dQMHVxK1pIT2hjdU5uUjB2OEtwSWZlNG9ML1dpWFBJM1JmWXdyTkE3UkJLWE5rZStNTkZiSnhFbDgrZGF1cjFsaDB5U1RPMTRCUUw3YlcxNml4TklkVVRadjNHU25zbjJGeU4wM1QzS2o0YnpWUHEwMDJUTlRMWEFxOGozTkdMUzVrNzZGaWpGMXNHRUtmZDlBdEVVSTZYVXBUOWxLL3hUTEM4RzBBWHo5bFNyUDNVdC9JTXNwd1krcnJwMHhwSWwvcWYxbEdHZlROL0NOUXBqeW5MM2Z5MU5GR2NRQjlMZVNwbStCMVl0RU1UMG5OcC9pMUZlYjNUNW5WczhuczdxZnhOVTQzd0dnd0dnSlNhMWtubDdTTTN0RDZpT2hkUVNmemZCcFdQS21BQ2svTWNPRFY1UnRMWURyZDJtSlB4R2EwR1cyd1ljS2hGM2hCRkYreTBQUEcyYWFFaEUyaTJTdzZUL2F4M0NQMkV5N1g0WG9tN3JpN3hNMXNTWlR0ZjhPZFI3aUs3dUFHL1VmQXMrUSs0QVZ4RXhWVk5uZlMwM3lUQXJBQy9PVkhFQmoybTZ3WlMzcGpQSkVUaFNPdnc1NCtlLzFrZTUwMkRPU1pPV1A1Q2RiSDBXbHpmQ0FSdDJheHdFbGovNEpueXpZclFjczVvTEVQckVpYnlDeCtEaUgxWjU0ZEhERGg0ZlBSSFRwYkJDSEFlWTlIaDZEZGdORE13M1pBbFIzZXRMOTYwQytnd25obkhwQ1A5d2U1clp3WUJvY1BEZVpiKzRCQ1NOc01CRWNpUHdIQnRwaUZEZGtpT2VQeGdaTGdVU1ZzMEd0QU4vWm9rMVduVlBJUXozV3d3eUhiTTczcVA5N0ZkOXQ5MDh0ZXQwOGxvZWFzT1RDZUY0SEgrelhiWjRia2NHYll1RXY0NjUrRUhyV1NTTytuQ1Y4aXo0b0VZb2NMcjVLS0FnbGt1V1F4T3UzSUV5dU1Oc0hOWm5SQ0lmSFI2ZWRlUW50RVgrSit2dE5vTVJzalcrQlpSR3crQi90ZmYvKzMvL3I3LzVULy9rK0QzLzllS1BQdkV0RC82dEwzRG4zdjBYZXZqOS8wbjU3UjR5MjRYcGI2VHdYVS8ydncrMzlEbWI4cnovK1JWZCtqNzhmMC9TTlAyY2J2YTllVVFlN1Q5eTZIMmFYdm5adUJ2RTNmUDNESVBmcCtyRUpXVy9wL0cveitqM3dYMkRxWFlxbkNyTzFDR2grc3h0U1FwMllyRFdSNWtreGR6OFQwQkNRVkpNb3RPdXY1WWdUQklma1RHemVOcVJXeGU5SSt5dXJJOW5saERpNXVGRW1UYi9qU3VKMHNZZkxVSXJnTmFmYmttZ2hIZ1JxYVJxa3pJd1J4aWxHSkFZYWVodHhXR1RuVHhqSVY0TDJDZUtDRzRIdm1CRENqcExUOWluS3E4NFRXRnRvK2lrQWF0SVZBNFNZVVcwUDhzR0U3bHNBVXN2aFFJOW1XMGtLQm1qaU1GNThZbk9VNTc1UUFENXN0L3dqVU12QUVrVFk0ODRrMzkrcHdIV0V5MzlQNkVkY0NjeU9ZVHZwcGo2SCt5RXVDUG1BSFZTOUNvWk1VMTlSb3AxQm16U3Y1OFVoYkRoYllMQ3phOEZSVU9DQ3FNNEI2bkMxcmlmV3F6Tml1V004Uzd6ZUhsazZTVnB2WG8zb0ljbmRDNmxPM1V6ZTlIRjkwTHBSY1dVZHczNXZ5SmoraFVPcnE2a01hZWFVK1ZQaytHNE5FakllSXlVRkYvamc2UjZjSmJzc3pEb09xY3FDVVVMbDdLNVlEcW1FSFFsbXNHV2dINkNHc1RkUHdxb0hCOGNadmpTM3FxdVVvVjFTbWdURmlYMUtzSlJvRFlJTDc5N01xQnNoM2h2TEVmT2RSUE9iY2wyL0NSaVFHSllTR2xseGVGeVJyNTVVWGp0SndIanA2Znl5bFJtYXFaZUNHRnRaY09IS3puZ01ncjdEa1JYcS9pbGpKTFJ3N2pld0VsUGhjbmhRbHlUaFJqSlZzR0FnTDR1N0V6TElCU2d2Tm50d1ZRRk9qUTBZSUNHcWNjS0xBVDVsZ0JUcXBnOUtiMW9jeEx6eTBWVkN1UEZ4QnUzejVIT0NIWjZDS2pqTWx1OFBlUmFCYlhsQkdmb29DNGFwZzhHQ0RCNWFITE1QT1R6MkFHRE04a1pNczVyVFBWMHlIb0xMVEZnU3VFL3NUdEgxVldCKzhHSStXTURvamRQdlM1d3NSUDhCOW12alJGYW1INkpGcktvOXdQRzhpUUFSV25EZXlVakJuM05lNS8wamdjRndZeFpzY1ZENFNZRUJYakZlK1JmWXlIUEhNaVhxMkR2ZWNUa1M3aUtsSmcwSUJSZXdPdjlYQklIYS96MlBBZjJKdDNCdXplK08vaFJ0dGJXaXB3MG12Q1QvSWxCWjFQbTYrNlI3ZzM0R21FaDZ3aHcvOXdGQ3RYandVeFVPOWVFakZ3NHJpR3ZhZC9vUUI3dnhnVG9IcWZsRHNidXhxUHp4dWxadEVCRGNseXBxQVJPVlNwUkl5OXlQOGxJcGNMZTNPSy8xUTlTM1pJMmFyWTZCVW9nUFhnU3AyRFhtYWhzdk1sZUNidVhJTDVrcFFiTlp0bXl0R01GcUFqSjBET3ZRUytlSElIM3ZpaENLZUFNanMzYzQzeTBldHVkcnkyUVFOczBMTi9XYlk2TE15bmRQeVAzeVk4WE9uL0pRV3V2cTQvcFVmaHRrUmZ0V0VYSCtoZDRGU2dyU3JDRldxVGdVYW5NWGxpU1pVUUhLbXIxSTZlQTQ4ZUNoMG5lVkZ1RjZrRkt4UWRDb05IcTRncWRnK1ZNRlY2RnZZNmN1Uks5cHdKbU9LNjFCQlF4dHVtVUhXMEs2N1JSc08rRW8xczhvR1hHOW9kVE5iclhYVVBmNW1CSDR6QXI4WmdkOGs5ZDFJNnVhbXFYSE9oN3gwS3FyUVFiL1IwbmwraGxqb2FxakY4ZjR4RVorN1llTlJTUkFwZXAxY3hXNnpuU0Z1SlZCczNwYUJVRmtJTnUxQU9ldWhpdG1FMmpsSGwwUnNsaVJSYWkwSmM2TTdFNWJOWWRPREpRQ3kyYXVja1FoNXhtZXBvMm11MG1lWUhwZkxuTkdLZnlrU3dVQU5aMkNkdGFxd3FqcTZyWnowcmpyQnJYNDJqVnlIT0tNL0JNMXhTN2I5VVVhRmU5ejdZa215UGl3aDBqSjZiSTVicGZyeGM4ak9Ha1FjSWhOYk9Sbmt5MUNGbkkzc050TlRRbHVKMFpTZkhnb21nUU5XaFhOQ0V2bWpZdGNJbStaZGxkMlVjNE5TTFJSUWthaXczRXhGUTYxb2FDK3ZsaHQ2Zm9xblpMUnFnZGdLcE9XQUNJUnVSS3FCQWdkS1JlMDh6c1hRcWpKTUZSa3I0aXZXUVMvVm5vM0hkL2tZMXdJMXRwcFVUVXZ0ZXJWMU5SM0kyRVpxUUVoNFNvNU1iVGh1WnNLVzBOTzVEU2R4UzFWdWhDYW41ZnI0OGVwcU5hVXVrOVh2MnFVbUQrOUxaWTNDUGlXbTZzc3lZQWxNRkExaVV4a1FyTFVLdHFWOTBzMXdMbTVycnNTOEVmdzYvTXRCQ1g5ZjlWalg3KzB5TTJaVHd1OHRhQjVXYXp0Nlp4VDhjRVVBOTNJQXV1dUtiNnlpZlQrVU1lTTJHY1l6ODEzOXJ2bzFtL1Q5c29iY0JoMUxIYmdLTll0czhxWFFkT1ZHZmNJSVV3THJxZXlWSzFZbStWWVJZbzg2TWtPRHg5cnJtdVptMWJ6VTljQ0pINE9XZ0VNUUREd2J3RmhpbmpBSUlrak5SYlErQTVqODdGd0hDTnJDMW1SY0VkUW5lb3dPeC85ckJTdHpEWHE3YlliL2QvU0lzV2o2T3RMdHFjbHJLckVqMWpMRUFjbThqSHVOTXFQcU12aGZGbHJWNHZjdXZORWk5UlJiUDZ2clBsTU1lZUZkelJwOG56bW1sNjU0NlpaTjlwSTlrZGRVaUFsWWlqQ1Q5VWR2OXdMKzdVeVduM1BqOUxDV2I0Y1dHZDNsR2VkODQ3UnB2M1MzV1pLV2txdTlGWHhjelk3Yi9UYkQvLzNHN0VpNVYyVEgyaklWN0NneCsrL0Jqc0FROEsvLytkZ1JvMjNlR1Q4Mms2dDc4RzhaRzJPZVRISnROK2RpbnIyTi9zaFZaR3BWa2E5VnBHWWhOZkZHbFdmUC84ZkxwOC90cDI5ZXZhVUxKeW9DYmpiazkyV2lGM3R2dmtkaFZUWG1xVHF3VTJUNHFueEZmbThtZXJ2MWp6bERyd3Uycm9nZEdzMTliOHpEd0Q3RklNNjRZZndjQTBid0F3bWdrdUVaQXZicVpiL1g3YWhNSkNBUWxUSStNdW9OaXFWS1hocm9iR0hJUURtblV6QnR5cm5kUExkcnpwM3JjamxMN2UrWHpCeXpkMHh4SDJXTmNzb3NvN1ozZnordloyaXA1eTZsc0JNSUhrMjFUUnFtcXR3bVZiblZWYm5tcWdwQTVNQWN0WlZHS3I5ZEpZNjFpQWtyL2xDcXZwMmpTcXpKR1JCRTh5cVRNd21jNW1LdHJzalhPalYvRnJIR3AzQ00rLzJaeEpwcEN2L2k1VnF1Z0g2VGEzVlZmVDF5RFZlTFBJK2ZrV09CRXk2Y1dadjkwT2wxZHVBL2UwbW50MmJPWmJTZ00yZTRyRHB5WnFQRnpPR2h6aW5xT0s3dlJXN3ErSGcrNjh4M0tOUXBuaFY4OVV3ZW8xUGpmRXNBRVoybE8wM1RlYksvdFhYaXA2Y0x0ek9LZ3ExZjN6d050bURBMnJ5d3JSUzI5Y0lVdnB5T2lKR1RBemVnSVovalhUdFJBS2p6TmNyQW1jOXhWUmVYY3RjcFpxOFNpZ296cExpL2dMc2RFbHB5ZmZrZ2dGWi91T3pna2JZb25GMnUwMFlDQ3VKTEIvR2dWT0pSOEY0bnZNUXFjWGszak00N3BtaGwyRnY2dEVITElsNWNveStMSElOcTVWbXllek5ScmpxamdTOHh0aTYvQVFXREpaQlRGSmYvQmNFZFN5N2F0Yk1sQXZNeWZDRGpBOTlqZUVWV09RT3V5TzdoK28rSUlvem5FeDhTd0pLbjdDTVlHZE1WdmQycnQ4MXQzTGJ3SnRzVzNrWGJSaXYxMjg0UzFKZFNRdW0zTUd0Ym5TK2pncWtWMWVsTFkycjBGQzd2K08zKzE4alVuOTYyTDR5cFE0azZac0ZBL0MxcUphNDJseHJFOCtEYXRZa0lGUnlndER1b1lIaEtOTzMycGl2MzhrVndKVEZicmEwL2VvcEE1LzdjSTNLT3ZYbDZ5dU5vNGp2VHNWUVJRMERKd0VOdFR0ZnhZZ1MraTVhNmFlWXN3dEdwMko1bTIxYU9lWXRmYnpIMTR0QVRPMjZWM2JaQ3ZWZjMzK29wMjMzSWxKVFRYSkdHdDhac1NoTkMyVEdtN0JZampzeC9paGFJVFF3OG5jT1ViOUpnbm1YUFUwZTRvZHVMMXlYZjZLc1MyQUg1Qm5OeG5qNWI2UzZ0b0JmMzdXdDd1RHRCY1cyNnVLRmZ6eDR1eVQ3VnMwK3pFT1UxTy9VSGRNMWhtMjN3dmVtME8vOFZDL0NtRm1BM3ZEUm81dUZWSzJBS1VJNXpQeW51WTE5U1IyaXM0L1dOMWpFMTF2SHphblZVOUxaaHY0YTU0eXAyYUppN0xjODgxVEpQalhpQXNVckxpN1VIR3c3VXhUUmpaMi9xM0dJNjFZQy8xVUpPcStwd1J2bEFRMjN0NFhWcWR6K3Bka20xSmpXTldxeHBSY3VvZkU5bkcxNGZKc25SSlpva2JzcFVCMTRES3Q3VCthd0kvWFUxOU5kTG9VODE2Tk15OUorcm9mKzhiQWdscGhNc0NxVnFSMGxpT3EydmJWMnFMYXhMUm51cUZaNHVLUnhvd3puUmQwMGxOTzdXOU1Md1AzYnNRc3ZGekFGeWl2MEovdTh6VUJhV2xRdjFjbi84a1QvMUJaUXNZUWNTK3BDd3N3d3NZYU50ckZJeGJSdXdwMTFVUzRDR05VQkRBOUNRZ0VwL1ZMZ0lYSDRyVWNac1NkM1ExL01ueXpxUW5FQUV1YWJsSWQreWx2RFc2b09rVE1KTkV3VU9LNnBGZ2VPRWZucko5M3B2TEswZ01kV1E1RlVrQm9qMTgxZlllUCtmdU1LMTZOWWo4MHNwMjFhTHFnL1RrcmM1ODJscmJnN1ZpVmJwMGphVWNJMGxSalVsUnFVU3dycVVEVlNOemFGR0J2WEFKSGtGVno5Qk9kVk9VQlkwYjQxV1dtVnV3OHJDbFNvektoZmEza2M1YStvbkFrMnpxMXFzaXZPQncvSWVLTHRrYTltNDl2Q0d2ak1Xcy9oalhSWFhjNW51czVMU2g2NFp5dUplVVNCNVorcVZqbjFRWUtnNFNVc1k1ak1iWW5oWnJCb3loR3FHRDltTW9Sa3EvdmhDelhWUkJJT21qQk9uNUM2bUVpRHcxYktiQlpNSG82R1dZWGpoV0lNUStLRUZUR09wa0I1aW9OTWl1QmJBbStxWUZ5V2dMK2M1MENQS0F1Mmd0cWljNnVqUzZaV0tSbGlyQVpYTmEwOXk1bXBDVXpWaFRUVkxwajNxZXdTYTNmVU9CY0NJVVJoVEVXeDhNSTVzU0RveUR6VnhWS0NpVEdrR095NGxoY2ZxYWtwL1BDaVZLVFVJMjVOdEFPUStGKzNZa0liQjhkSDc0NDdZWUppdk5naGZVSExxeENDcmJMcGtWVFZBamdvbWpLNncwdW1BZ3lVdzNDTk5jMndJZzY3MlZRL05qaHk4dC9Rb0Y0dkhtaXppMSthaDhKVTNnZ0ZsZU53RDdUNVBna3RUWDVLN2l6Q2dBMHF3QVhGQThSWnF5b3lMWmNrUkhsbkNZSGo4d0RESm5rMWRxNmFUV0dwY0NVUFZMdmt3VkdoSnlNRVY3TFNRWjFEQXFXdFlpRmRobXJKaHpxMCtnSTBmcDQxYmhFRG1HSkFIRnNwWExpdnJMRTZOdHJ1c1RwZkhBR3liV2xoUnB4cEhuYTVTVHhmem1XZFJtL2s2b3l1V0d4UHhtRzIzTGJNRlB6Ulo0b3UydHM0cFFCZVRYRU91eEpBdGFaVUdYdDRsK3FsTmRYeTFaYjExbmFMUXBVajRTc2h1UnFVNjBwY2dhMk1OT1JrSUpnYkFwbWlvVG1aRjRKRmNvdWVtOHE3WVVRRnB2U2pTdUo4VTUzdHh6ZTNNU2RLaFlUem5DaTc5YkZhektzT255dWk2cnV3OVQ4VzJPL2dWVmgvY2hHdzRpK0VmZzNrUlVMaVU0a1I2VUFrcjVMQkNzNmxpZ0ZVNHNRMHpYQW0xOHVUK2tQQ3RMV21hbXFPUWx5VDdmRzFOZFQwNzVQRytyODB5bkNTNmJXU2NKalE4OG8wSHVnNnVXa05aSjUyblV4dnJyanh5bU50dEtYa0ZSWDZUdDhLTWhMcjdvWDYzUHFoMWtNR0VTV0ZBSEhFRENiaUwvNWdlRTYzSlh1TDZ2TFp1eHRkZVZEeksrL2g1M2VwbWhjcXVkYmxLV2VxYmh3S2J3QXhEQmFCUlVwWXpVRkV2aDRmeGhVTHVUL1BxakV4aGhsVi9RRktJQ21qWk1YNmpRRWlueHgwNkxjSHBjOXhpaDBiQVp1QWNkYlVLYlBDUmFFZnh5QzErcmdwcHhjT1Rtb1J6Y3dubmZwTnd0Ukx1Q3hWeDdoRnZoK3F3K2twRm5OdEl4SVVyaXJpd2tZaHpGUkhuVm9xNGNCVVJSNlp2cVcra3pBbnZWc1NabWVLNklzNnRFSEhoRnliaTlPc1lxRCtMUnRnTldzWHlvNnFyWmVQWWlEUU9kQjcvVDhHM3VOUXZMbVNob1B3aVVGMXBkMnN5T2dVejEzWGkyUGRpcTR1K2o5cnNkdUtsODlpUHJON1NyQ1hJRW5zS2lWZVlDTGFiRWJTdCtoZW5WZE5DVzRxV0lyWDFUWkMxSFpIemEvazBqSG5XTnVjcnM3NldyUmtub3MxaFpzVEdkS3R6djliVFVhd1oxRWZJK1BUNXRnanZrK2RjL0Z4LzNqV1VYamIzbWx0alZKL0R1cmxsSk9ZV1FmaktFQjROTmVOU2FjMGJsek5uY1UvMWthai9tRDA4ckJnYWxVWE04NFRSamVZSHgxKzBvRnVldFY3UVVUT01LeTQ4NkFsZjVDd3NTT1lCZjNSOXl4RElncTlxZ09LUmcyT0hHdXhIckNkOXpVdklXSXdZKzZ0M3NwZzVNUXNjSCtOWVJYUDFaUjdQRmVvVHF4SUg4RERneXd2NDg2RyszbTZJN0txT2tUcWZHbzZYM0tscStUcVY4YVA0MWl3LzgyYlZPZWkwVHEwT3NvdWZJSEJNZGRZVlU2YTRJcEd5RitlbjJGdFdSak96ak8rTkIwcDMxa1RtdWlHQ3lzLzFLQ28vbGJTUkg2QnBIaFV2Z3RrSXQraGJyY0Y3c2VHRS9oWTRlMmhFdEZSVktVZUpGZXRFRG4yYjd1Y3FENWhlZ2FYZmloempmTWp3TUhHOFJFK0xPRmZKRnZEdVUwZkVhbjFYR3RZMGVQVzlNaXNOYTNLWHAvNFNQM21oQllVYTcyU1VjbVFWV2hXUVdFV1FMSS96TE41SlBKY0xpRTlpZyt1TjMwd21QVlNqL042Y2dMcGgxcENmenlsdXlrMjhBWWJLZUdNVjBWV3dxaHAzVEM3a3NqVU9kc2hKVXRJa05PUW16UHJPWkozY1VrOWZhVSsxSFhFei9WM2J3THRqQkwzZE5TeVJoZFJwTm4vMVY1dS8rbC9CL0lXdGlMMkpsNDVPZVFoUlFPN0VxOEN0SjREMEpGQ1prUFNLK0pVWnN6QnJtaWJOenoySGZzRlRhZzNweS9CNENia0ViSHp0eXRldXVYU1NGVS9NNWJNTXJwNWg1V205WVhZVUxWVmFscEVkYnBha2pYcStsbithV0RoM3FNQm9jcXhHQXR6NDhEZHJURit3K3ZRUHAwMDFZM3o1cVJJbTZudVROTkhLRzhXSkJrR1RKemVxMXZYSGczNmJHWG5Hcmxobk1BcWI1YkluNzRQYjVybzcxK3hxcTJncW0zUDYzQ0NQNnFTbzQ5WTZUcTNuMGlVYzJsekR6TzZZVmplRkZ4VE5vYmlYcXBBOE9NU2djUnN5TXI1OHkzVk5lVXJwS3RzRis5Zll4LzVlcE95cFRIcW4zTmZyakVaZWt2QlRTRStadU1jNHdSTUFVWXlYcXpyWjVjYUJrd2FMR1NtMzN4VjNrZnVCTFJiTkRUdmdEb3FaUXlWemNWTWJMc2JyNnZkM1lpYzErYXJYeWplNTRPSFdJWWJta0RleUVHVS94enBQZG92OHpTMWhsTTNOTDJTZlJ0YlcxZGFLcW9vdDNhQlJ4cnZCR282eDFOSU5BNlppVkpmazhvZFl0eEc2ejl1Ulp6T0E0MUhyK1huVUNjWkZ3bTIzZUxiYVduV0ZxYVVDeDl0U3hKWDFFUVpyQ1VlWCsvdGhGTm9vODZQWW1RMnRNd3c1QTVLZWRtTHhqbTN6Mitqb2NoZTZXQzRiUUdhQmhSSmVPM0loVmovV1B0K2d1KzFSZDlNajcwWkczM1dIMzdYSDN6VUg0SFZIWU5NaDJIZ01ydEdDNk9zbzlmYVpNenQzTG1sZTQ0ZVU2SzF0bi9wekczU2lBQ1prR2tqV2ZTWFd3WkV5YUk3bDZtTHpvZHBHemVuSnV6ZXZYajYxZjMzK3k1Ti9mdjZzTFFLeHZYcis2czJ2LzJMLzl2VE4yK2YyazUrZXY4WW8rV3ZaR0N4b1g0VlYxQW1NYzg5U1FUOS84dHR6UEhZY3hWUFM0ellLYWhLcUJJNmZ3bGdGdXVOMVBld3M4QUtoRUZLb0tZem9OUE5BYWJBUzRBWS9IUUZSendMNHRycXRWajA2V1FGcmE1T0tiRzZCRHZNSGcwZVl6RzJSY1BFREd3d3dhQWk5bUoxTVpjNkxDYjdZYTdWNGorSGhNdjhrQkZFcHJ3VVNaNll4cEJTb05ha1hkdGFwNndvNjZWb21xOVE3UGRmVzVJSTA3K1VuNDNIZXhTSnd4VkYrem93dWtQSEh6L3lnY3lsMVV6cWhCcDFwc28vcUdHaEY2TzFyTVl1UTI1bThscTE5Q3pKWmREZGRDSlFUY1J5Rm5uNURqVERLTVo2SlNXRVg3a3ZjOXZiSk5Pd2FhQ2lCYTdSRTQraTZsYXhFeHhJMndFQVhwZlZLOWVNQ1RvYXRnbGRabDRnZjVhWFd0V2FxN0xkcDlTNm5WWVJ4elptMXJ1Zy8vdVJxNEJXamhpdGxNSTJkRmFkUXRlekRPZ2xSbnExWGtBSktZMXBhMDI1U3Y4NG1keUVsK0RkSWl6eXFGdzhJbGQ5VXhRY1YzM3hKbTlUQm9wOHYwbEprS0hLbUxBdjB4RWwvVVV5NHBMQk5YQzVSUjEvenJsVENRYmtpbFVPTTZQVGVOVUh5MWdKTXV1eTFsWitrSnRDR1krN3FXZVR5dlVzWVhHOTlUVG12S21waXlEdTdlS0p6ZCtlNFVJbWJSMkM1b0F3SCt1czh4c3FsZUwyK2huSlVRVVFjdE44c29YU2c1WXNRRXQxb0cvSTdRdFdYL0xLK0xWNi9rbjdKK0NWK3ZHSVZNeG02d2c4N2RJdG1PWXhBSlVkSGJYWWhEc3RlRXVPVzk1WGJOdEt1MStmOWRCOEpTT1Rad3pLNFI3MFFuMVhKUDZUWWNMZ0lzWGJGdTZNNFNYNFMvZmdZZEVNVC9lNVYwRzlMMHE5d0Y5OGVYc1ZYbWt4NUNzTEpkdlc5WjNSSiszc1k2aVVrMmNPSDc0VWlxa2hzUklpOG4rOWJXYmVxN3krVjl4THROWUxOTHpORmlyc1lkc0FsdnNQVHhtdEV6elc4dGJJa3NrYk82TlN6UWU4ZldobWdOdjZLNkJzQklad1FIbmpIa0ZpcWlXTFhmN3piS2txcmlVTjN5RkFFalpMTXNwMTJLY2sxQ3pLN0hQcU9wN3NyeExJTCtNV0hDWmR1T2llb0FTTUt6S0NHcENDZkpPaUNnd3dZNzhleWZGNGpzZ3ZVa2I1aC9qdWc3eW1uTTMxZlNpcm5TbnNkU0ZjQnlYK0hLa2oyS0VOUGg0NTlTTVFEWHJHZGQ5QzRjREdiemRQNElFOTJ0ZVIxcEFJTThqT0t6dEU5eUovRHd2T1VQNitYb2dPcTRIeERqRUN0dWl6cWUyRkt1a1pZUjhMc0pzSTNvcGZmZ1c2cGloWkpka29tek5hSGZCREVpOUQrTXVJNFVsc0N6MGtXc2FjSFpCVDdxUDB4OVc0V1FVT0x2Tk9STytnTEpZb3hONVFTMlhYb3RQMm5TR2JRZ0N6QlVkOGR3cFR5eHgrU2dlQnhtajJHK0JpMldxckhrYk50N21kRTNlM3BYNTQvL2RrQ0pmQkY3SGt5UjZaY21YTzRQQWRYdHpMclFjdjdDaTh3SHRFOEJnQzVEalBOcjhlQ1htdXBCOU1xeTdydnVLNWlLTXNSeUFhWDlDUm5veXRVRTVBTHA5cWFEaEZYR1dlcWJXcEVSNDNZeVg3bzdlMENTdUpQaHRsMmYzbXpDdU4zQ1N3MGdqRHV0M2VHV2ZIdTVaa1RuM2pNQzZQRnlhbmFJS2ppK1prWHBqWnRPWWhob2swZHQ0MkxnL09Eck1XQ2p5c2JTeENlQW9JcHVWMEFUR1Y3dEt4UVZiT01pRTU5emwrOVVSU1BMZEdHcnN4OEpXYVA0b0RJT053OGJRNEdnOXk1UC9hRGJVc2RwN3QwRmF3NkRpR2xuU2RNS2FIVkxvQ2d1WnFTaG5pdHNPQnh5YTlPRzBOOUJETGtSS0UrT1hLMGh2L2twYjhBMHMvakdOZVNaWlpDaDYwdHBSbDFlTGRWdElpQWNLRVNpM1krUXpaUzR5OWh5TDdlUVNHYnZQMDR3MStsaWc2czFWYTJtN1NLVjBhdkthc2RYUGpvNHdJMEp5OTlna3FyVlJvYjNiWVVzSnRTYm1aREJMQ2wwYlltQmdDZkxnWVpheFdudmp3dG4rWHdVNWo0OEZNSVpVeGlSSnNMbFd2bGRYYk1YOGpveGNRbXlJWWFDK2tFbEswVWYwUGxuZzNLblRkRmVjUHYxMEFPckVJR3V0YUJyaFVNV3BQTEZibGNKWmVjUVlsc3ltL2xDcFVnL3hubVA2Y2xHbWp4ajlWMGluNjhwcWJJeU1lWUp1ZkIrcUd5bW16THBFczBWNFNMT2U5dndKS25jUlJpbUZZcHQ3THNWYktJS1I4ZTY0aXN4cTd1Wml0WDluem16QUhZT3o4QUtZbFhGK2RDdkhpRW02c1M0MmlCd1NoVEtJRFRYNEpCa2g1MHU5MU90eVozNEFWUlRLWVFHcU5oUzB5dGZYMTZYUXJBVG5rUUlRRnVpMk94eGF3ZUlRRFE4SWY0VTNSWmtrMDQ4dUs0NUhnY0RQakxpWC9oalN2ZjB0azRiK1FuZmhSYS9mS3QzSkJ2STJkdWxNYjdiTU9VQzJpR2VmR3Y4YjFGcmRya1pNWC9MWjUvVVpGZnBRMWwvT25QV3hWWnFTRmVPRmF1WTFkVXFSdmtvdkpZNXdIODluUHRZSFgyYXNCZkJvVVBHYzZZeW4wTVdTcXE1M1VvUlJocnRrUlUvdElLV2dJWVoydlFubDR0WnFrL24rR2Foak1lMHdrakQ0eDNobEg4UzFEd1h2Z0NvRDcrVU9lK2JMN29UTGwrSms2VExpWExxcU9tRXB5NExFYkNRNExVQS91TUl6RUluSXJodDJGdDBLamhZNFYraDhydktmMXUxWlpWN1N5bHFHcE1tWk9iQU0vN1dZV2RwNGJHMUZySXhUMW9WTjZVc1Roc3EzTktMYTQ2UjY0OFVLWXZUeGhxN0V4NTM3MzQ1YzNiM3o2djVCVHo3L1VrcEpyN1R1WTdESmQ3UnoxYjN3Tmx5ajd6Z0VlalM2dUJPU216TGpVbmM1aDU3NUIvVGpxUHVFNk1icVY1R29OSjdOand0MTFJZEUySlRtTE1ha3dkNVluWDh5UEI3UEdTN3d2bDFrdUNkOTQ1U2JLQUh1bjE5eDY1UGlBMDgwOUN2QnFSN3pFUXUxeXBRWFRCRWQrWmNhQytkT3RlOGdaV0ZxMTlPeXE5Vkp4YnVFeXl5VEIyWWNWQ0ZEcnJoaHh6elN2R0M3ckxDcm9WQlNrc2FXWEo3VDdXbVZSVnVyeXNxNWJscFVhbVF1UldISElTU2NKc2JTcGhvN2J6YlFQemJLTnIvcnFmdnk3R3pGYXRmMk1CV3ArbTYvblVyRXAydklldG0rZFBUdjFKV3NxYkVTYy9qSW42UmNuVGUwamVndXFTV01NSGRCZVR1TUNxYXJPVCsxbUVqc2dhUXZ3RjZpcSsvSmpmdUhVRm1pc2w1VGZMWGFuN04rVkgzL3o4Z2JaN1A5NXRtVnFNbjl6ZFBQalE1aFhzN3FDL0J2OWZ0UW10TmdPVEVlOVZKUDhPbmp4d01RU3E0dXFSRnFnSm9TVzF3R0MvUmpXcjFFSlgwMXlyTVUxckVUWGNOc21vbXR0dlRVYXoyKzJhakdnM1ZNMlZnWkMxUkx4ZXZZMHFnUkYzc3pTc2FvaXM2RlBydUZJVGlvSGF4RisydWFYNG5FZ1lkdnM3dUM1RE4yUDBIbS92NGdQZFhQTkRiMWNMcEszZ1R5aWJPS0FvOEdnakl5MnQwWGV6VmhHdTJTbHNBNXJiM1IvNkdacUljd1dhajN2OUNvNHBTdUVNenh2QzhQRVBLOUpSRjZWbE12WnZnWXlJV0lhbG1HQ1dJcG5McnNxK3ZoWDB1anNObWZIdUVOelo3ZTQxNmVVbGJIaG5KTnp1N254cEpBVFNmUEk0MFlieGJZeVRuZTZQK1dnR2pMK0VidDd0N1h5eTJMN1ZidFlRdkNHQmZZc1lOaFRZbncvQmxZWDFIWGZ4bHlpdE5RUy9TR2xkUThJdlExcnJnNlNadFA1OEZHd29xZStBZ0ZvUWtva3ptN25PYUVyck42bVhwTGpnOG1sNGRlVThSOXZUVmtBdk94U3UxSXNUYWlNdHREa3BvSjYzLy9Mbmw2K2Y5WHIycXpmUGZ2L2xPUzZZUVE3ZUpVRm43RTJzRFVqYWFMUDdnRXFiYmZ6bDVWdmhTTndnQVA4ZmZtNHhuQT09JwoKaGlwX21vZHVsZSA9IGxvYWRfaW5saW5lKAogICAgbmFtZT0iZnA4IiwKICAgIGNwcF9zb3VyY2VzPSIiLAogICAgY3VkYV9zb3VyY2VzPXpsaWIuZGVjb21wcmVzcyhiYXNlNjQuYjY0ZGVjb2RlKGtlcm5lbF9jcHApKS5kZWNvZGUoKSwKICAgIHdpdGhfY3VkYT1UcnVlLAogICAgdmVyYm9zZT1GYWxzZSwKICAgIGV4dHJhX2N1ZGFfY2ZsYWdzPShbIi1zYXZlLXRlbXBzIl0gaWYgVEVTVElORyBpcyBub3QgTm9uZSBlbHNlIFtdKSArIFsiLXN0ZD1jKysyMCIsICItV2Vycm9yIl0sCiAgICBidWlsZF9kaXJlY3Rvcnk9Ii93b3Jrc3BhY2UvYnVpbGQvIiBpZiBURVNUSU5HID09ICJ2c2NvZGUiIGVsc2UgIi9ncHVtb2RlL2FtZC9mcDgvYnVpbGQvIiBpZiBURVNUSU5HIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICoqKHsnbm9faW1wbGljaXRfaGVhZGVycyc6IFRydWV9IGlmIFRFU1RJTkcgIT0gInZzY29kZSIgZWxzZSB7fSksCikKCmZpcnN0ID0gVHJ1ZQoKY2FjaGVfbSA9IDAKY2FjaGVfbiA9IDAKY2FjaGVfayA9IDAKY2FjaGVfaSA9IDAKCmRlZiBjdXN0b21fa2VybmVsKGRhdGE6IGlucHV0X3QpIC0+IG91dHB1dF90OgogICAgIiIiCiAgICBSZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gb2YgYmxvY2stc2NhbGUgZnA4IGdlbW0KICAgIEFyZ3M6CiAgICAgICAgZGF0YTogVHVwbGUgdGhhdCBleHBhbmRzIHRvOgogICAgICAgICAgICBhOiB0b3JjaC5UZW5zb3JbZmxvYXQ4X2U0bTNmbnV6XSBvZiBzaGFwZSBbbSwga10sCiAgICAgICAgICAgIGI6IHRvcmNoLlRlbnNvcltmbG9hdDhfZTRtM2ZudXpdIG9mIHNoYXBlIFtuLCBrXSwKICAgICAgICAgICAgYV9zY2FsZTogdG9yY2guVGVuc29yW2Zsb2F0MzJdIG9mIHNoYXBlIFttLCBrIC8vIDEyOF0sCiAgICAgICAgICAgIGJfc2NhbGU6IHRvcmNoLlRlbnNvcltmbG9hdDMyXSBvZiBzaGFwZSBbbiAvLyAxMjgsIGsgLy8gMTI4XSwKICAgICAgICAgICAgYzogdG9yY2guVGVuc29yW2JmbG9hdDE2XSBvZiBzaGFwZSBbbSwgbl0KICAgIFJldHVybnM6CiAgICAgICAgVGVuc29yIGNvbnRhaW5pbmcgb3V0cHV0IGluIGJmMTYKICAgICIiIgoKICAgIGdsb2JhbCBmaXJzdAogICAgaWYgZmlyc3Q6CiAgICAgICAgcHJpbnQoImV4ZWN1dGluZyBvbiIsIHRvcmNoLmN1ZGEuZ2V0X2RldmljZV9uYW1lKCksIGZpbGU9c3lzLnN0ZGVycikKICAgICAgICBmaXJzdCA9IEZhbHNlCgogICAgYSwgYiwgYV9zY2FsZSwgYl9zY2FsZSwgYyA9IGRhdGEKCiAgICAjIGEgPSBhLmNvbnRpZ3VvdXMoKQogICAgIyBiID0gYi5jb250aWd1b3VzKCkKCiAgICBtLCBuID0gYy5zaGFwZQogICAgayA9IGEuc2hhcGVbMV0KCiAgICBnbG9iYWwgY2FjaGVfbQogICAgZ2xvYmFsIGNhY2hlX24KICAgIGdsb2JhbCBjYWNoZV9rCiAgICBnbG9iYWwgY2FjaGVfaQoKICAgIGlmIGNhY2hlX20gIT0gbSBvciBjYWNoZV9uICE9IG4gb3IgY2FjaGVfayAhPSBrOgogICAgICAgIGNhY2hlX20gPSBtCiAgICAgICAgY2FjaGVfbiA9IG4KICAgICAgICBjYWNoZV9rID0gawogICAgICAgIGNhY2hlX2kgPSAwCiAgICBlbHNlOgogICAgICAgIGNhY2hlX2kgKz0gMQoKICAgICMgRG9uJ3QgY2hlY2sgdGhlIHBlcmZvcm1hbmNlIG9uIHRoZSBmaXJzdCBpdGVyYXRpb24gdG8gYWxsb3cgZm9yIHNvbWUgd2FybXVwCiAgICBtZWFzdXJlID0gRmFsc2UKICAgIGlmIGNhY2hlX2kgPT0gMToKICAgICAgICBtZWFzdXJlID0gVHJ1ZQoKICAgIGhpcF9tb2R1bGUuZnA4KAogICAgICAgIGEuZGF0YV9wdHIoKSwKICAgICAgICBiLmRhdGFfcHRyKCksCiAgICAgICAgYV9zY2FsZS5kYXRhX3B0cigpLAogICAgICAgIGJfc2NhbGUuZGF0YV9wdHIoKSwKICAgICAgICBjLmRhdGFfcHRyKCksCiAgICAgICAgbSwKICAgICAgICBuLAogICAgICAgIGssCiAgICAgICAgbWVhc3VyZQogICAgKQoKICAgIHJldHVybiBjCg==No newline at end of file
Best evidence level for this revision: reported
JSON