Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initialize for westend #1286

Merged
merged 3 commits into from
Sep 20, 2024
Merged

Initialize for westend #1286

merged 3 commits into from
Sep 20, 2024

Conversation

yrong
Copy link
Contributor

@yrong yrong commented Sep 13, 2024

Initialize bridge with

BridgeHub:
  ExchangeRate: 0.0025 ETH/WND
  FeePerGas: 20.000000000 GWEI
  LocalReward: 0.010000000000 WND [10000000000 PLANCK]
  RemoteReward: 0.000100000000000000 ETH [100000000000000 WEI]
AssetHub:
  BaseFee: 3.408244766666 WND, [3408244766666 PLANCK]

cargo run --features westend --bin snowbridge-preimage -- \
  initialize \
  --exchange-rate-numerator 1 \
  --exchange-rate-denominator 400 \
  --multiplier-numerator 4 \
  --multiplier-denominator 3 \
  --fee-per-gas 20 \
  --local-reward 0.01 \
  --remote-reward 0.0001 \
  --checkpoint westend/initial-checkpoint.json \
  --gateway-address 0x9ed8b47bc3417e3bd0507adc06e56e2fa360a4e9 \
  --gateway-operating-mode normal

Copy link

codecov bot commented Sep 13, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 76.87%. Comparing base (24b9d31) to head (6cee4af).
Report is 100 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1286      +/-   ##
==========================================
- Coverage   77.83%   76.87%   -0.96%     
==========================================
  Files          14       18       +4     
  Lines         415      601     +186     
  Branches       76      108      +32     
==========================================
+ Hits          323      462     +139     
- Misses         75      139      +64     
+ Partials       17        0      -17     
Flag Coverage Δ
solidity 76.87% <ø> (-0.96%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@yrong
Copy link
Contributor Author

yrong commented Sep 13, 2024

Sudo call on Westend

0x100208630003000100a90f03242f00000602e602e72400a400040440aed97c7854d601808b98ae43079dafb3509ed8b47bc3417e3bd0507adc06e56e2fa360a4e920000602024f129eb544c90153020040f09bbce10800000000000000000000e40b5402000000000000000000000000407a10f35a000000000000000000000000000000000000000000000000000000c817a804000000000000000000000000000000000000000000000000000000555585349af3801200000000000000002000060202adc799b5440c5301002000060207a0bd32481865449288010052008098590000000000b9040000000000007ae1809f20473ff5a19471fe07f262254eae3c73c555be847624d424fcc105e84aef57ce071de83d3834a406f8aaaec29fc7492cfb73ef2db7e309a0a3acf24ccd4212211c07486339aca6858b396cd9bdbb42e738fb1fc255ce8c0d64b59686a8151dc5a9995a660759e36a9f82ed3be6956395866edcd1413ba15ce96e3210da40d364516a50f87ff78e9de9d59657a70874a0fbca7cb43cbac450e1a749b4a7f455618daed827eb8d03acfc8326717293aca5220e165f41d0ef2156bdeecea0ebae60a998907a19baa396ae5a82bfe6aa22cf71bfca4e1b4df7d297bd9367bbeb2463bda37aa852ad8fd51803e48295c98e3b6b62f84edf7f297cae93ee5f82593478877f92fb5bf43fd4422c3c78e37d48c1ee7ca474f807ab3e848d4496b800be1788175a01a9228b0d3e7eb4302484a2654eb2a86c0f0900b593da0a436ef031ac230e2b05e968b33e90a342ce9348cf0fbd4414944935b61d9c99a9ad4c1b1825a7059e698a2709b0f07adaa26b32db557f32388b44461285959d25d3b46a818f3e492e231d8fa8de8848c16f0d648a2e0d1c816adf9306a8596fdf45922e59cbf745430570a19e54f45e28f7a8f2572a2cc2ecba151a3d5f4040a70172067ddadd8c12ba9d60f993eb0eab6698cb35932949c9a42e45b36a822af40e8c06d7798d0892d47e400e4621178dda34a4b302f0ac236cd8704a1ec888b6601999508e159d717014fdbf6b8a660e0b8085c60b6b12ac8a5be8a7e24977663125c34827842aa3b2730854ab199dd0d2eaa93084c9599f0939be8db6758b198b840a53b12c5bb26dfcbfbc6f6ec4b1520547382b704ba545c65adcbf80eddfa0ac3cfa25eb44707608435f8cbbd07aa4876561bba29e656b7122f1cb51a02dff1ac7d470217d8a4799c01e61816c4660eea91843a5a42502ddf842d2daeb05868b6bc5b51ba51ba6cd8925766b9266c59f5c1af2e029fe5c51d9332cbde1d0399afa967aca5119fafca623ed0f46535489e19b665ce7f6617884afaf854e88bb7b501ecdd195a5662c79802d721f5340eca8c48341ad1d6c78f519f82e5a9836a3fd9e1b5b61d2e0b9d66c46eecfc18f3745f35cda59994bf97144bdab6832c1f79b1068d2e8799bb7baf9f282c9380bb7e18647b9d147a620b4905caf4a535a5b98e6ff0de5cc95a7dbe9c32bf1ac195a788baf9f51a6d7d0d2233d75af6e8591b0ac6cd2c9dcd2ffe3022b477c3490be344e9fadd15716157237b95625b77c67e59021687c54a0ec87625be0d1631e982691766a549df56436acd0fe76da78132e027515f27174c10d117bfcc20ed73fc31f5465bd7a22a101094fe913e2218c65aa29a9ee9066b81cf24cf9e0beca3e8e8926e3df22d5ff1236297e158cc8bc7970a2c7016009cc4efa8f14b14347a9ee291de5997232c68c9f6c3b568b05f46bfedfa18eb3776699d98cc7c6320003b7d862564d07fd28fc3691d1d28b21b5d6f664ec92e5343792d5d6b629919c5fd8cfb874677df2264daf02bcd9d12facf9b859d5402839c9022396e20d260b806efb61d1c948efc10dbf9bef30197d1c269e5e7fcf20a84367b26223d33fade413a0bbf4e33f0d1f1a00967289015eb08857244c85129a3445af862afff77473664a1d808dd1510bf04dae0098903b2bcd0aa5c9e1d5be4bdae29d4964a91296af0573e16dcf0b6d787ff45749b65737afc23b95ff2bb367a48440f9ed53a44e23edd13e9708acc6fd37db8ec8953e8bc66e370296649989a27117c17fbc705d5ac2bda37c5dad0e4990d44fcc40d3e1872945f8b11195538af97961b5c496b3285148b91dab139b053442bdd14d627ba1e1250fe469f0f2df854b6e6ff4a18671ae3879ec9f7d8091f99f092162e9b8d68610fdee190ec5a1f4be4c4f750b00ad78d3e9c96b576c6913eab9e7a81e1d6d6a675ee3c6efac5d02ed4b3c093aac1af27a7c67b1c6c082f0fe733046f8b155a7d66caa8ccc40a53ac5a55a4903d598b5f80543ea52c25205b02959f4f5b5726aee939d8aee0d50bf15565f99e6d0c4df7388073b4534f581f572ad55893c5566eab1a7e22db8feeb8a90175b7d952cbd8e9d5e9d23139e8f3e979a89b54206188e627f8e06cdfb3e38aa5159e610629bf79713954110bfa6f450c6e55aac8436e33619e2907659741d66082acbda32612d245fcc8ae31e55f99703fac1a15657342fa66751d3be44fc35d71c36b397ed7134f447d9bf1c511bf92f2d27d7b6d425b8b411365fbef696cff95c2175461cf5dd83d93bb700e50ebb99b949b9eed89e003894ad2cc9d9b93a45247e1367ac69a00b0ed5e3280c1188b4cb90eb870d449b83a852a798bd02f9d0c813ad9e1b4579bc335d176f2d1cb700b3e9cf74acc31a5ea9fbb9a9c3071963648017aa2e9331dac0c42e6482f9141657a5b1289ab2fd3070ba49b0cebc9cdfff1e8241414af022ea58b7a59aa7fdb066fd060b299796bbc811dec1bee81507d788af17532b35bcb373ce1deebce1c84abe34f88a412082b97795b0c73570cb6b88ea4ba52e7f5eb5ca181277cdba7a2d6d95c0a30943ef34ef0a644439d857446e1c1736e18360f3f41803b0ca118e79af3fb9c608ec440a8de0f79d2c245b583ca102c2ade15ea2f2b0cbc7dbd8c1171de0c8092fc4ecef84b5fd2bae7424aea8be1629f851c75e4d1d0e96104e54bfbca6f0d5053bfb37588a8b06ebee8c84a7f55b943c04075abbed5000ac6c16d9404d40976f6197ee1b313590750df93721980a54f9e9d88a7ec08d04edbdd7c9222e99f270b1e978ce7140cc67e38a2e60cc1034dc5b0deb5b60e10697d3bc72959022541f84e48b655e74bf3da484179e0e0040827fc71e777b68f19bcfd0e103d385ef957692e7091fe713561f38035ca5bf4aae622b58a37e722c3d1322b402907f10eec372a42c38c027b95f8ceba0b7b6f9b08956b9c3fdfedaa83d57a2178e8f63ec8f4f1f7fcc61f893b671710c3c17f9d2d26c5c6ca40e671bd4b252bc0cc1655e6780d2ddcf2915d8f623b9a4a5b213f1d8ddcd9e42570f61f57c0e59cd6379740e50239257395f2fe7fac982c9861685e0fbee6c75bced5aa6b64849b897fa90529458bdf3cede5ced3f3823dfb9b6d93b96b81429bf05e8f1a80f7c857d458045cfee58296b3ccbc4119abb97b43a6d1a47a1c415278344dba0cdfa952663a71fdcaf58d313c161e479ab5d1b980d8870055cc8f0d283bec8f97425b973f9c3d3faf641badf533ec36165a665759e0ae9ba45f9190fc44b1cdad78ca90ef6298dbe1dc0ee95ff58531cd0b3a24d05b51c7c128bb49979cbd9019e6618545d95275a44b5c3d1d03e71bf2ebffdf43fff50c30846ec27d279043cef4eb01ee30d120b97e7b60ea89b9b6c537cdf20b6e36337e70d289ed5949355dd32679dc0a747525d6f2076f5be051d3a898e2e9a1a8bae9fffa594324a2c643ba0609f291146a104ceb9fc1f26d4a25604b97e9fb392c01689c88cac90c310333ca02883d525e251708bcecf6cfaf7d07fc5e1be92fba24ca8f805e96b7dfe385af449f5687de1dc6707a62ccb08c1d590ac9f0b44105cf77ad721b97b0f04a37fddb2bb62c345b0d22a29e2870b8964d7484aad30e454c74608ce9901043501a5b746447b0c0d7165f965672d71c318f2c1052a5ac6ebe320b14165c9276c839ed822a9183ea6e6dae63a4f826d421d658ae9585caa3c73e679fe9b00f2c691732f7b7ca096e22d88c475a89d4d55cb9fba3cd0fe0cedd64ce75c591211664955a639bdcc6f167b3d488cf2d28ebe4782c4f37a5de4ee3d8f4845eef50c81ab7ee421db99c02c6404fa9d45a948b6d37fb15460725c0d6bc3a6a7006dcf3c3e3561d9acd674c52d4199daa8598ee29eef053ae521f1271aebc66943938c9f4b7eb2c191d34c9d09efb42164be35cd04f26d795d2558b0894286e455f8e8b0977d0714e5c8d3596282a434a5efa5248fc593f03495d53c781be8b76e37e68b64aa260523004eff6455ddc8a8552af39854e5181f8c5365812b1f65926534fba5ddaa318e541c171104c94abd4110f9269efc88ce98ed472aa52ed877634291f6355314b915230723da00069eebefda97aab7e5497eda543c02a7b3245eece98d21dd4c587b5a05f21b5c785756a0b875715782f706fbbfeaa0edaa6faa6b03d8eb946e508e1d399f22ae69a42102574c3d2827adfa47796c4c1b947f6ab84812f1474fd667c9491f13d4511cca3e8fffc7b72c93827b8cbcbde357a04ceae87554db9d283ef535fdb7bca45460ea567edf7c1b82d96c7df679e64e01e501e0b45094467242dbd62a3a64175663b6e51a330e8d5aeea5d85cb4ef33f412c41f24b9f49b06f5ea1c076dd4ccbf10a2fa4ab788b49b1130f9df26407ff3f6ac10539a6a67b6ddcc73eaf27fe2a18fb69aa2aff0581a5b0eef96b9ddd3cb761bdbbf51aad9577501d7f3a5dbac329f2c1fe711710869cc825740f365488fc55a278d687bb72423560f7cb2cbd60546a82ea1e68df8b35861e00e82826b3a39069e9f3f0fcba18da2370e2fd792b4fbeec8a27111c7dd7e0acef5f4bd9b7a5cc2d6ece980414adc7e0a9cb961b1f31682c33d8e01e3b8cf2aa2c2a911ab9b1f54d5c4bf92e18466cacf9b80333112ab015136d289d356593ec09d838cd89306ce83c060ee797bf9eec8523f581cf263925699ef0f7161a790bd00bb09681534ed05ac82ad2456725ac3aeb0e4ca5c0502a8abb4dbd8a8897d9d91e673fea6a0cffd64d907b714b662d73c0877b98d4ab3ce6a89841d9c04009af59c646e65cb79be10bff240fec75d756c8b8b9c4f54a2463561510f5b2f3d09eacce57cfa4a856d72f7a35d9d6d5dd5428cce7616842203b5fa3721cb4b20f50c0113f138604954fe0cf214ca3d065b578f921054b9efe823dfafe779a9ca4edc032fed08ee0dd069be277d7663e898dceaba6001399b0b77bbce653c9dc90f27137b4278d754c1551aa798a0371e8cc4dc42ccd79934b0db5a3a59f18a0ae09f2eb172596428fcb3f00312e783d6fd21cbc1610317f44e08cb88158d759eafd2205c770f166829fd61e8f17b2c13f440777eaf45f4d88a6e2028bc507680ff435882d5fb462f813735927c030d5a69f0908c08f95715f7a8d1e33bed5e95fc4cfb17f7743cb0262755b1e6b56d409adcfb7351b2706c964d3b8499a8c3d67d1f6eccf1c69274393dc498cff862ea8e6c11ffb8107ae190d258ddc1d294f2a8f050488df0212063ece2a031d95cdf2853d2d72f3efe2feeeb9f409f51f3b708f726be0096acccef3b247fbe4370c58b4b891cf156234221e0ee85f2ed3ffb03e50c8f22553b8e6349be6244d893aa37a7c6dbd221e9e121579e5a04466e60d6b4d3567bc747b1fc1e9f87e39895ee4bcf83f007c7e8c560304d55674cdfef16e3fb5a309061dd97f37b12da2acf5b2f05c0d07fd594277d49ff89cd9f6ae7d9a9ff2b4db916ba3af9fe700fcfbd16577bf73a965af938e8cf633020466b0298d3c31300360aa6851af2a57bacada151d6521c6f40371e80cc8e44bb76389dfa7da5deba7675bb9a253c59a901df26c6f1069205b37f18048b1ca9760afaa51002be0948acf7aebd90ec4e60e0dba8456e445aea93408a0468b62bb6da4984b92f8f6061561c9d56f4c4a649208372f44f32eb1cd895de458ca1b8be782746356f08ac8ef629429d0780a0799fcff85736e19aead0b79bfff261ad2b1ab32161e37ee553e3787f05f9281073d7ef7d0ae035daa353bc83da8ef8c76c99ad2928463c7c708f740402047691c3e8d2a65af7a31e24445afe9393e53f47b91167818210f2d8b9847ff76687ebc1107f52183ebadbafdaaaf72bd951a16c910646638c4a57e94129a333ea61b8586d7fcedcd522904c9d019befd6e58344fd5e8f71819cfa841c34b3c812f5acdaa6263cb7ffa0fa159983888348fef7f0514abd4d897884bb6eaeb57c68e61044047215ccb0f32face09b0a72ea3bb45b285863f7303a234173b06e8eb63c8e2b70efe0dfb9872e3efddd31d52accf0f1292cfd1239b5a57492f3617a19e8a019370ca799c2c98a605850910cf43531bfb616393039fdfc370848feedd3339b2427b750ccc91952b03a09f690e9eda2f61cdc267bc1c7c328571b09a058fd9d2ecb70236d735fc50289a10ff35bc8721f32cd0e9f4ebcf09f176bd51e1899a6b434ac201b511dceeed63b731111d2b985934884f07d65c9d7642075b581604e8a66afc7164fbc0eb556282e8d83d287fdca39618051c4b3f03c816b13df2d4cd4c7c564e3d8693dcb58145b7b3b3db7884b0125b1e84d9bb82e91bed8bba393121aa60f904a48e624e00f5410cf8c8925d2b0719f90c20e00cba584626f833de7c8a18dbfa6a07df24b916156bfc09529ea4a51324ed4ecd855faea43846a223da8cbb494e5854cef700ebbcf4d76119cef16192e6b7c51f82ab79371756e838733220d1559c800cf1714db8a43a67a0c0d1d3a9fc1e2cdcf615d20406501e5146fe8b59bf64f4c5daa1a6d74f15cacfbac397ae2ff23b31bb27b90788fd0fd51a50f8e8c9f4b31be8499194252014f0b1972b204aeb9c2836a20beb3c868a356e5b70bc478c625e32a38d29f0a619fdeb665503eedc304d1bf34562d4b6814dfc30aee5aee94ca4bc6394e412765946d585d7aa452d37a8c89d404757c3cce2adf2410e18613483c19199abd88f7a12e206f87a43f6009e42f4e31ed20c091b49de13c51177527656ec1ab0ad74ce8666550f7e14bb3e19199b5bc7ee81c72f1fdd7593a1148d1d07407085c585ab15e1b4ac64bafbc4fdfead9aeff126bf102fdd125c1c914f7979680ec1715fbeccf3dc35c77d284421ec1371ed8bc328ae80eeaed3fc456f8a25c2176bd09f52a2546d45d77a70f48a9e30aa29e35ff561c510ae1f64e476e4a0f330b9fdbdd974a5180e55eab23d4c973fbee6ad1010335161ecdb849fe6520b34c1f96530a4faff80bd738fe281019b79d968c472ca95bec86a7c8417a8df3a0158199327ba0924d3b7dd94cd7c1ef8489b10270ae64b8537ed39cd3699a48942bfc80c35da42bcc5012a8b87caac4ec279f8cf7e43f88e36b65c321a835fd8a5ba427a635de79b93d2460f5e15258f09d8d51c7ceabeb50e9b72dda934df8f032ecd0221826cb988bda6713ca0429b7c40fd2829804fdba8da13700cabba05e945380b753963a298fc8876b702424a697929c7a1938d298075e38b616c8711f1c7116f74868113a7617e0b4783fc00f88c614e72d85554235ceabfc4e432bb1804daf45ae47b90b8dfaf33d0a85565394dd1e122dc5efdf3427a7e1b288c78c24e8ad9809a8e03a26e88e4ed03751ccf6eeed6215becbf4c2d58be27361f61d1cc4ac9b692fc6ecdb839f9b3c17f54fc2f2f4756ea09f11d2bc6000d12a42b545ddc29c1973944a39787c5f27c96d4f6aa0d9c8fa9c479f2ed327fbd30376df3fa5b7d2a8b0922acd6da2a95b36de6d0755316594a7e2e32ea774792dc314e8c3cd76d9f1d69df38231e166e24bd42c664f4fbac78465bd8be9bd9c2c6116d4ae44ec6618c109cb9aaee2d241e7a6ed906d398ef15a6fc18bc8b1d3398184241405954bbaaa19a75f21a14ad5f170e336a0bd07e0c98b9f5d71f91e784d1dc28a5f5eb6870a4eb35bb41edcf9e6efe982ae5c2c5bad9725114b01152fff134c1a8ccb8d171b8cd11685ef6815b76f442d757d130bab9ef4c9845e66f4aa0237ee2b525c20871656153e1f359ea1cf77914a76de34b77cb62e670c99f3584e7cb2c500c04f65f36bcb5321f4630df5c3de9245a7c090fc170529bcc0b80c46a53fffd8323fd2cc5cfa9b75ea4d36db21bd1f198335ad2bfa87f8990cf9cd9fd7989ecca71885822227f6a96d3b6d6f5cf943e9fb819c8eaf42a9aa0bdd1527055442b1caf672522762831b2dac397af37a1c5ed70293e4d7740847caeeaca68e0b8f9a81b9475435108861506e3d3ccd3d716e05ced294ac30743eb9f45496acd6438b255da5c0e42851b769d2d822e39222e708068455aae3bdf782975b59d3201e67a58fd66e16d380558bf2086bcab890a92dd5b544c692b046aad8b6f5c2e3493bc8f638659795f06327fff1e9f4ffc8e9f7abdbf4b7f6fcdfb8fe19654d8fa7d68170aeeedb3c73a9eadef14396a474ca83ca9e3885fd5f2c1018652360481d0be49524de22fc1ea18bb7abca66df5dc7d30980e58680edb62d6ef04727a36e41e5ba63fe787aa173171486caee061dcb6323f8b2de07fc0f1f229c0a838ed00e3e31b6d6482ad7b9b412ffbefbbdcc28eb3d091b1291f54f77bdd53c4ac85f705c454940f466dc272dde7b03c26f0cd6ecb3b6c7360054cf250ac48c41fce8da7a15b4c6f226688a60da737ea2e19b00c94ba728aa588ee72a7ac65f2d63f216285ab1809f9fa306d63c6cef586a74de6373fb2fac0cd10c5cffa6559cf1a16a99502c16c204f803139d4f2fba5161f90a6db924bdde49acbc8d9213301f5dd3e218950c1677008db7a8c830ecec0203a79fbc61d536d5a0079f2072b03f86eb3356ac4b39bb8f0f62666a50574632764f8b6a1dc98afba5a5dad4409c920a0c0d5d2b5c2506c3a0d2f8727b7b7dce2ba1a88368a0f17c8427beb71dbf11a09a2fe8495a33f08c29c74a9a996a88aa01c0a09f9555abeb1ef1592cab99a9e05875cf9779987412977476a6b4c6cea3f2e08b5960d0a12bc27033b2ffe23792ba6f0ae3167ea6c6962077990cd1c7c4c220c791a812d377edddac3c848f65bc8fbb8a1692507dc699e353621df83440b8e463862057a2596c6c6a5c36b2a4888fdae5a5a07bf219432e9c80c38596c93560b49c7de287f31e30b7a06fcb4d15982add4a24085adbc5b753c462be989c64c96db919391ac60e21fbf25cb2d6a3ce6edf9ddc493073e5e19c43d319cc488ea7fa2b4c6c9fcae5477d83065edb7f92b7f1a69f0a66173645ebda4f0be19235c620c1a1024c66f90e76715068804b0d86a23dc68b60bca5a3e685cce2501d76de97a9f6b6b04e36850d2dbbc390a9614013da239375f105b0f3738138431f0a3a8c685445f6c518e0b0e72fb3244ddc0d9e8a501497cdebd72f9b192c8601caa425072e8e6ef438c2e9493675482808522e488779dcb670367cf6d68edea02a12afb63fd45023f850985813a3f54eceaccb523d98d4c2ba77310a21f396e19a47c4f655f906783b4891de32b61a05dc7933aa458aaca6ecb43b6e45ea72d02682e5a7dc8dc22782669a0628e1638e73999319f011803f4ec8cf072467bf2c49c6298e9bccb749e66fbe47296f5dec33bd86e52987516263240f35ce9a212dbcf71348b60a016f830f2acd05482962403542abf19b2cb84bcc87d15e12844d053237a139d76a35ca14250cee2415ee646d98bf97c42bd2645f0790ebb388dd561d59a1beb9f673409ec678020ea4dcbe65177aa18e2932ceb9cfb33fccb94b9a8ccb664f71647d58b3c8b2bdbbffbc02d5f7a076ea1084b7a1a33115ef62d6524f36e7820579868763a6ed1f8bce468f150cbfbf0ed04be2487aaa34100d828b0db6ab1334a1dc4a34fac334e1d637de204da18783d8573f216d9d24c853555d79877682b43af02345f6695d87f6549aa72e8f71f8edae59d6936846d8b50da29520f69b339f574ba9156d3d5f0cd4a279d36bad7ca7eb724dd48aefc4ca9ce26bdc919b5187af7dae210f151dc64a9cbd396d1ae04acadebf542a7123004efc7ce00d6e14c170d876fbc64dc1b5d141a5f4825359cfe68ad6a75578a94be6419179e0aa088170b6c20fc5c249dc3be7a260d687c93d8d8a343c7c72c2ed6a716de3b504cb87a024fd71b7ee7bed2833115567461d1ae8902cccd26809005c4a56078617ec5d3fa5b29a1c5954adc3867a2680b61f545f9756a2b4431f1a2690adc7b351dd82edc1eb1bb0f3ec2e730b1484da690ba636701059e51e59f34e124983a17b0040b4e8549acbcfcb5cc3100230e50a0289f54f5b6df39dbae22cde97eab0b13ad4aedcd21bc685bdd0afdc1ca7abf28b692bed19ee9152d5f8ade776f0a42a9762ea5f37d80f47ff219fc0a8ebe5e6eb920453e1ced3ea5bba19ae5be7b7ea5e0d3cfcf0570204b0371d69df1ab8f1fdc4e58688ecd2b884399644f7d318d660c23bd4d6d60d44a43aa9cf656da958987c2b3c84df8176b600f5b75a8badef9653c71eff967e76648937def38826eaab4027a639f4f300b2001916625089cdbd610e7f57e86438e50874c3c7ba85afa63f5adcab9e454b5c203e4da65d74bb7cac5995a8652d10a6e438a1c2b8b7f146a357e02a63cd79ca47bf93998b193ce1174446953f12fa751f85dc2a54c9ed00c01a9308509152b3bad21d723087ac804ccfe7f1fa156b8666664a397236832569f8945e11d4688a9e43ada4d4104efb3fda750f48ef655a29357c5e7db526f40d519e7a8f2c81b69f71b3e2ef079028004c0448ba0608296c2787972491ec6d05ed6a8fbd5ef2da76325a93cbb201b0546f19c5db88df9c684cf55ed623bdb43927d06051bd595497df741feb1485961f64e8d3d1811d9e2e9e1e54adb58396bce7d32ba6c70adbd37156d859e153c1932d2b0c7c874a1182ba831439e80d6fc6d7d88a870e193f515aef2264a6e1951cbbb19c0aad6e9251c2c4dcae1d2e50550a32813a47dde9f41e42e2dd0433cddf7e63ab3d320edca48a6d34fbb0a32f5ee1e22853d6557c59517234abf7af5bd5984274fc084f25dbd8a07d026715b23b776fe47f8a3686c69a77cb8c998a653dba837c4484ad5090ea32919dfb2ed647d4bfb7578c1901e3b77ba7fe275c00c8ea560d6505dc2f1cd689733ba4eb903990bee2374b14fa66fc262d6821669537e9ba241c87b4b5c9e2b89b32fff4bfc28ab8471ef52e8eebc3e743d18097b13908662d245820f3b045d8c2c665fe9a054e9c661323924ec86dfa713b36b0c787ad4dfdeb979318810e687a4887ca4fa85a257adf7e21af302437e0fa094e09efced2d7ebab6cf848e6a77ae7bfc7cf76079117f6ed6eded9d79ce9cb907a3a9522479f6101b3ddb28517e220f842b32d14bd2ab80fc1005bc7e6a101b7bb08e72e6c1a8d050dfcf4792a3620a6dd7816a96af369540013a456722434a5a918673564519a253ae5669ea3afeef509e29f35c6cd3ca7fd29f97987cfe397f1a7370b4f5acf83b466f519da361c366915f560385dd7eff9d53700ad81b25c9862bc71d35428e82372a5ae555ea084f43aa4e2a9d10e6590314981b5eb2a5e486c1593a4f82bc3a82b67f6ccc29652ab82a689a9454bcb6c1f9bf7a10e2ba57d5de556853484b1d88808d2529450238bc467376ded84cfd7b4a1ba258f6d43b5958220f962c57b033abcef1d5158b5e1edbcd8f2c557bcd0d425fd3b3d2ba26c010f456a27abd208608db9a981e3b90b482691fcb3fb2ba8997b6543dc94b9ee3b7b95db0122edd90b641de3c07fbf63a4f70fee5f72051cbe25c92d88444314d0489a5ecdb1805f4f149f462ee68253e3b0b85538d01b0ca90b0a1656ad80ee576d0c3fa6349df58df92683b510e56c524fa6144f79a5525f41e4a2ed3494fab50e1f826709bca45da6574aeeaae0b2b6e172c30798bbd886720e18dcfa0be4c46b43cb14219b172b6afe70c062a02f7fec0661394399a82b2e3151009160b3f5392017ba579b301ed42c85100c295acbfed46b6c58a9d71796ed0930e6b65e8b290bdec2fda05cd1c09f8508f662aa46d7d19556d0a4e3244b4ec20093aa37088105ea4c2b1e5b245410241445936f7e20c96b97548fef667aa9fa9e6cfdc578f392774586abe124e7afc36be3a484735e88cc0d6de6d69cf4548b12278b476b3b065a3b95a3d11ec60a749c2258ddcc5885bfb50b8a086d3fd1e49ff73e1dde733b8981c3d2d206aa0c87b09b8117fbcf61d946bee1ce3dff9e568b83716907acfde9b352c3521cfed44158874af8dd5b3906b4a6b49da2fb212ef802b5f69b7614fe07889b58142d7b438186d70214ff4cb209b6f271a3bf2bcdef5e6f1c7e95dbf5f2785aa471f0294cd0299888c250b4b60306f4ecb1babbf95d0b6dbf6186503b2024b134478d721fb782d801bafd126cc3247bcdb1ee9d66de8594d4a1e3a3d28a948f14d1507372701ac6fc884a4905405a63663e170831578a2719714ef56f920baa0ca27954823e399405a2882279c691a42eb71c928ecc1c1a054927471e5ec7ea1f95283235349ad0c9888803e2fac748c73d241931eaa3b04061bd8e98080d0e1338fba5c30cfc726c268d5927852a14674d7c289941fed5835a24313c82b19dc2368b8d4459268cf06b34e7021e9401eb705dde411ecf7e7e7185f8c0b0aeed949097df31812a9fdd4db7d18f9383a8a5a8d2d58fa176b7eba9659ad46354f710b94476e8fcad4ecf74c584c1b6252960e7e7759c8a064127929bbec71f2b868d098140b3de40934fa8d9bc9cd0ff2492c5c97e63a98bdef63a6e8889c9ba7009d6c6472441750ab37ce5d1ac3bc0d73d074af223e44684a6edac5ac68a7ca837c46d5ada8fab136748b6c3a3b9165dbbc231ec386b15328e4ef7d69a15d4cf354135348a4ee4b33de3de106be61481ccb7f07a7a63cf4d1674010e462388fb8ab5ea08f444ed7a277905207e0b3aa2f00bb9efca984fb471c72bd2971353f4b44248b8e6cf5316812861a88ccfc20fd0d89a5e010428c387228b2f6f14c12f79e31afc9d0753983fc1ddf17f9756c9cecc00b39bb2ad432587a5c6d1c3296a383b9f539c9afe84c6c818447a709c0b686ba26ce5ea3eab4119eef94133198adb684b81f5e90070d3ca8f578c4c6c3d07de592a9af4e9fa18314db825f4c31cea1e2c7c62ed878e8e48992d0394fcb9a0c56bbd3797400128e28fe395ad9acf582919d66d11a4811a7187897e60ee2ab4842800c8c36c88e1e459ee5aeb8b36ed004f6d03da296101106fbe1b18f9bbf63e92321db51670c34050fd3b7dc56a4bad76403823ee85e2013728a13c41601d4f984f0420a124db40154a98bbe8fddc99e87188b4a1272d20360406a9dbae9e49bfe3f1c11c95718b06017ba9d45894867fd67148645d25d9db2229aa89971f444641ba9db4c5c6f0785f3b25cf2cd7fadaa6adc5eba19e7db50604f6b82cc28bc97135025459c8eac107a1c482919df10b8be2e4f24fceb93b963c0b8ac9f402e2f6ebf3879920c52effcbd2a54502957fabc7c560250c08941bc30fba42d1a5101cd987359ab5725152e3638f6fb3b675e12d10609366d86243f9d53bdd15d4cd6bf5dd348c2b89012c633b73a35d42fa08950073158ca0a1cfc32d64f56692c2374a020fb3bd2fedbca3e0185bd4920bc0b9279da7d7031e39df2886a4c969b28df97181ad37ca4bab2b79f44d7bc4acb32b14abaafe14dd3b680f096010788226d8413ca628feedad79a2bc78cb04d47c6ad910f7f46ca87b8f8281744625d8f42d5eeaa03c1e287ccc4d457f5e71e9dc769294835945561e6f236ac7de210d2e614eee8a85e21dfb46e2143c68de22ccee8660a94ccbf61b3a857744aa1540fc6d633afb8ab3c92d07fceef90a0dc54ecd2133490cbaac8832b26cf2f4b956471f36feabd7248ae069d3a3a45b0ef4dd5d7d54b62994e578ea20bdd3b7876596673953b94c5b109a6e4b953b517544b915368fa3cf8e318958bdb19eff3f4840d453f13b0edba8b5a8754ddf803d82a8f97c3c6c60733288d7ebe5c5b6934379c7feb9b1c56f028f31f0ff86bdf55788703b4d809becaf3e4d9d349f1b660a07d2f15e127eb72a0e2a5a2742313785a3de43a5860d581af35d522b5eb5fddd92a98a6b4cc483fda00820d1ce4530e07892890c096e99b33976ca3550bb900e830ad3b687a8480c87603031ffe58a4e3aa7b3305748424219b6b1f1ad480ed2a473fedde4c79b8cc5b6be244f6848eb66e9d9d8b102107527690d9324e9f121aad6b01f15d70140ff3b54e88a6743af913e95df9756f46c88c2525b6468f79497e1903e880f51ddfd824ce64b336ce26993249c9d05263def782a8246e87ec335042b0a81d2b91782a6cbbc9911f8208e1de7048ef9b456c6abbc1b912e4b5c9420e8af1a5860eb670894d3ac250ee57f2421f2e4eaa1a7f85df0f3f9b34a24169195fe855474478de6f0f17168294a676f5a92db8d7f87b3e7e66f5ceee66dadeb5c94d740f0e0997e532409c2934175b6131cb2a4000ce0ddd3f0543ebfe4906570853a85350d75418a1ff2608099c069f03510df576ea0cbb406b7ae8e4f21576811ae47b31c5b62b38ee886ee04945649054369018dd6543c91f0138464af489a32c1fea339e0e0cbe82e3e8b9f2ef3918c8cf3c29531a17489a5f8232d56c5251ffddc95be3ff7ff61472e19fb38c5eaec841ef3b1ee36756b3dd8ff71ae19998296e7d1bbd42195360267c2a324b4d9bccad3231ed8a7f070278472a90371867e2ef2c29c9979a1ec6e194893afd992dfa76adeddf2454d131c91d5e2e3a464ef5d3c40ee6a2ab95e70ef2e49e0920d24f9b09276250ed7b29851affbdbc7885ab1afaefc9fb0e436c8fb93ba69feb5282e9f672c62cbb3a9fc56e5377985e9d8d1b8a068936a1007efa52ef8be55ce9ca4b507a4bc2bc424297bf8968bf385fae3acc686cff4b7933b4f5b6ef3149995393d5331dbac4b629e8adce01a91a4cc99dc48a054f448792523dcdeec819e1b928b1bd66f60f457261f0554f8532eedd7152792df70ae5316ab2f9c02a57cdc87144976cb0d55de66f612725c6d89ab35a5222e8b003329b898e732629f5b7022a7223c9cc9ec820d3d1553e7b2267ea60642ede2da19e9e4a2fe5a31360fba2c871c25ceb8a867c8189fc62c191a5494cbe59a4a53f643d3025ab264e9cee88dd55efbf4f9cf6aba47c16730bbc5dc3d332bf2e9f1be8695f755362ad2f8e6f6e2426e52cdf0ba9feb9e17533c4b06b42f22b81ae0f8bdcbfde4cc9a882eb46c80b0959895ea3c1fe3979550bbcf3f179ea3925fec5b1ad0503c07e7a1148c84926cf2265981e5531d90d8f2da1041cb73bdb1a7e11eb8ab21dbe94fefad5bbd674f6cafbcaa597480567edf0b2029a8b593de2c6c90392325b2d7a6cb3f54ec441b33ed584076cc9da4ec6012e3aaf02cec64cc1fd222df32bf1c452cc024a16938f556b8c11d110d95b8584cecef8b95ef349ea64b59df806cc62c52ee48074d0b3f18d84533e41583aefd6a9d43a62c2e7c692403e874a16e08e46a067e19dd561993ca07ff79cecb53c753763b3e49d372638c96c0a8c921bfa0798a0ca2248409026f35c3da8bc4d5c02315066df8fca44ff5a358cc42b5c88bdf6866dc133617c697bff004b1ef20ec4b574891215fc3f7243638733fe293dab7029e0c4275550102acf5f1638773cf8f8ef2c53ffa5bdfc1b602c269a2b5ab164b7ab900a55013d0427e5da6b21611d6ae3e648f54f794cb099b2d2beebae0a957477a94dc415e8ec5e68e9029ce50d4384399289672bfc48d2fbfd51a32d0d7f9d03fff37b8269ce45cbae1e9a091ee3983774d053efe8eae2f2d3f22a9eb532457b8137fd57ce7d3cfaf8bdbaa28704734d567d0e7a2d87fb84716722c524bb93acb2c1284249027f3c87bccc264c01f4eac56dbae1e290ad35dc14eee30c6cea441cb7d2cc64b8407b83df5e07ce4a8677983b45458c0127ec0d01f31bdd61a15af18cf1e3d094b4d8423da072f98b3023d296f6a1f2a35d500f02bde522bb81dc65e9741c5bc74f7d5613bd78ce6bc03b40a3bae2b08c13db00f993db49e2042be99cde3d6f4f03d9991e42297933d6049394c659e31f316fcb081b60461dabfaf6e6cad67e54efe92976851bb789d79debfa2c78757103b69e43d1aac3d768d496017b8402ebc6e0b176be5aa6eecdbad19e38fbc31a1f99e8ead1437016333ba9b15dffa43fe617d410fe82775f06fe5abd2d5f2118802914903d2c230174881cfea085de08a39ecb888831381c4e60d2ece13caa69a1da2ade95841311f0e6e958863fe834f8ac70e358f730a9dcda7b86e4f1366da44fd59a3ee68018a99c23ba3588789463bd88b0177a9b94030b58cb879a506e64421af966f261eaa86b182d697922451befc875237db4a3b656dc36aabba71d4e6bf21d59608541352b077a92da04a91ec2345ef41d54dc2018a98cc2fd044f6749775001dc8209349547d19dc56e1da2e4de1c953e7e36f15740cdbb5e8c6e4238bf216c1f7f9f02b912bcfe28f56098d7f75f90fa419232787905e1a26170f274d2cfeac25636a21081b07065a7f515188233575cd85cb4a86be44888e8208c167097d7d535c04090eaaa61472b4c6b2d5899d7eda8d3f804ae1708c0653d47e965897038d4e13d78f7e58a9ae0cd9d52bbfdecc11347a78e12af25fdbc7487e9be206c11257f19befdeef47be0a7d7d1486b9bb5ad8499e875133b542cd93b7ca5c236a14dec59d2e2fadcdf7673f09fcbb2282ec50b81410de244229701501d2a33802f751b458978299430079ea9a0868eb1289ea175e133e9f604129d56b1b1d0f768930bc4c64db921e08f352bfe6ad2296123e6ba79337558dde89640d62984bb0fc12ea5f934c2258d4ce06b187364b9a646bb90966851dacf3be0156b2956cf46d4d8d2799daf03fa434a482d9aa4d090884c99b7208c1f5380b9acbf304e1bc33d3d6902afa5d248d20ccf03795e26901356edea59a20a570769bd011a64917c77a134b7a741a202e3f08123354d1c2dfa8577d00b29dcb75ba65b983a9b628e887ea2491066bac5341cead3d2cb168fde7da62b3dcf933ff5c1d379a4dd424b218c4e2ebcce038cc342e758795ecd4dbb8b790ab2053c376c6bd113b89fdb2ae3b8401aa891135345885730c61cac7813f69ea7d906c531be752e28657f73af92d1f4ea5fe3dfb5031517bb8db0d5ade1e9f438e84bcf23221de003b03d2a2f4ea97629e81c79abc3769bdb8c69a512c189b91b9691fb57be7aeb9d43995b8022051f199978d6ad635e1623a1bc1754b250fb8a94985cdc1e623e98767690a417e92a0ae78b7743d919518bc674f3deac5ea3d0ab05ff0a5494417f5fa91b19413bad5d669fda2f5e630e360d42e2c49597796971882d02ad64729cc87251b49effc0b8db9880c25083bfa0ff34e7394e691288c7cefbb5cfdc76d6677ffb9da765dbaae96dc808c316a677977831bad1e529ef965dadb5d6aea25ab008fe7bb1543e596e33052cfbe4279fa060201199d2c34afdc091a224486e7bfac169e6a7b4e008d2d04144508a337fd93b6f4d385ee3f0d927b1f5c1cd79a15e0fd6078e45dd4ab6366a7c6da8ca8ea43a3479e50ecf9a1f3b20ec01b8eae1d2a21ba2223a4ce62615836377c6395580a079c284947d3a222ec6b756b0533dce7e903c24a69b3d48db0d1e93c4c41a882461b8939b9cc90645745d89fa0873739f812dd3b2cb3b0d4231814e40e53ab4eed8333d418a6e2e4bd3910148b610dec5f91961df1ad63f4661d533137a503d809ea1ad576faa3e91428c65209d182cc6b95b6d6ab6ed9d6ee915a992760e29a0c99c19b2caeefdfb87803d0f675c5c5362ca367a4aba4bf094dcd71e1a8dccca76dc7887476154e673551f25b0ca90d6dac8b3b3a2241bc601afeeb1564bde0432db19729998a7b3516e5e10cfb6f5d3882464ca4d5e3437ed70a65f60b3bc586e49ec9ffab1c61dd23ab03ad7806353066a816be6194ffda31c9e7cca085dd988092d72e5ae78befbb14a85179fac7bcd6e89628a8f70f586c1fedd81be34d8577a0f66fd7ab01a7b13c967620d98de736b8ff23d856daa26d5cd8576993ee02a5d694332c0464ed018ebffcd5c71bab5cada850ce8eafbb7002f5bc4cea23e7b1ba1ec10558de447c7b3e209b77f4df7b042804a07bb27c85d76aea591fa5693542c070de80e44d3577f12cabaed7074feeb57162ff80b61f86cce8f41d1d1250bc455070b09f6ea9d0c263b7b4824701480f4c1491babaea18cf8f1e56feb0b89f0a3956c6469bb963d63312431057093b0ea0240a36abc3b7ac160e644e826cceb62530a9b0a06469c7746a0a23c459a2fe75dd474e2cb1e9806afe872febf054e6f13c2c183761ccb890c6bb4d87abe597de1eafbb939073c28492a46f8028a010297e395c7449fd8a1e24322e605c1db6cda1581f2810cdb45c273189084b82e74b22860c0eaee51b7de26e99033f352aa09c093943b59237f1313ecc35b0d711509bbe9f939c4bd646deb7de8103eea9ea13a333abf3cfa6b46599e210f7ae33cb6bd378ffa4e11fb5bf9d2cdc2787cc34e6e088e010321c193ce46495009e88b780820f164a16c02e136911dadbc61b9f6859a7c53d0ea17b8f64b783f7f2f4f549775d3f16e21634dc6d54aef8d56517b2897d7a19b70dcef1af006df3365981d73068c81f18017f32fb9966599481496efd5f6caceef943b31c52750c46d9590d95cf2e038c790ce7a2960add7ab44804375f04ec6829f8cc63793dfe9fc48c7471079f81b932726509394fd3d46a52e9a8b742cb7f497adfb99bdc6bcaf7f4bdadded2a6d5958680406b3b00545e1812d78e03e20be42b471b1daba84587d574a3969926aa2e52f1a48ac53074b764648b4c71bd43430944679628463cd68398f700d874c14503b53756be451c8ba28485c9217b6f7b8baffda06ffead7174ab9d1d9ec4b10b78d99e742835796a522d6e2b5ddc5c7282757dd896c76698eafb952ae6ce5beb7900cc492b255c44faa7810d70d9490af794f52d0f03f3dbd54fb9a7b940f07f5e6d4dc61dba708c7fc9a92dfa798798ba9e92f9886bfeb6d659b11ddc1228c3e4b8dd804bffa089d648173dc286846679df30acb4b5b5f4fd11871e70f0446749e5d48d0c113a27e2e2a13e88e703764dfbdc2bd31e921e6a549c54afab53968ec3d856c5e4e6d029fbaf861bb21f84c3e7cab55370839d18ac24c475a9e833607fcd7e65c773ee9d64bea203ee9e8fd9d337f1cd28d5ca0d90b5d7e0f09806db08f6b1eb31ec543670475f46bb08df0781e7fe39e7cd4d5b0c442783a9a2d56da767c9685e27112a5493fda62b785757b465e6f396f74674d5b95a08c938cf694e66beed7d2f317a4c9d736cb54d7c221d61e8cb3d64dca3ab8cc453954fb40a01929d529edca1cecdd162f1c7bf0bba99ff85e2b309cf46a04fcc817eb9c4837927f95b54d2aa816ca698b04227e8593a6fed6a1f6f6d1eafe186b9e73f87e42e7997f264d97225165c3f76e929a3c562ec93ee2babe953ed8eebee05702bf1574b12597b72a86d5badef064879fa9d1b9aff5ab75e5c71d81d8bc404f2614085855d6ed87f58123897578474be98726192cb0eac3cb9195a54c7315e9c619d5c44c56b3f98671636c383416f73605d4ea7ca9fbeff8dd6998302ad0f2234535b55b975c5dd752c8a555d278b85b9e04e83b1db3bb2ae06f082f134d55216b5cacbf80444e1d0af84ac66f3a7041586ac1576e33598f01921e16d99afbf4249c3350f0ee1654de98bd37a61c243eb6a18a942db529e36af0db0ed68167a67490bd7d7d49e83341606d6e6fdd99b82e46747c2190d270719f81c5f5f8733646c246260f438a695aa3ab28df3e04bde4ec373171401dbd0546f4cb6fa8e9a4a8019aadc653d4e05e0b5b9a64417715dd87f6df9e7b3145f6659917c4fd52538d34c26ccdd816e54ebea09517712aa74cec68a2e3d759c6a69b5ccb4089ad1e0b988e916b2ce9f5c8918a60c4db2f208cda284b2a2def60024f3d88873191a88f6b71cea186a79c8c2af4e84692f619b17d9dc2f5f3dd20c7e35b5f32034d0f66bcbccefe2a177a60f31132d98c0899aa1ffff5ebf807546ff3104103077b1435fa6587bfe3e67ac02668804338968d999be8bc1466b29a928a7a52dad4e8332599d38879c0d7d202c248ebde96fab8b00efaf196c67263bb48188ad79a0320a896415e15b827a89969b4590d4dfa269b662bdc8f4633618f67b249f7e35a35884b131772d08025bfc32ab26861b907d0ea03ab1888555d5d6786d7231b8e4b60f8d6545b48220e65248576f11878efb2e87d7e04fc482f72e3db8a6c999068c13fb71a99d75eabadf7edd2d32e28607baf001a0aeec412fdd3575602c68d3feb4d743b90396705e37f38f44c43b80a3c5f488118859fab054745cfe5b0824821944b82fcf870fda6d93489ea9ca4220c24db2f4ad09c6080cb7b455f751232de0a48440d09983f4f4718b6169907979c9f282acf7177ab5b1f338fe1f2acd8d0bee4b4aad61d0340839a80ac2a197002879ef4db6e2b1e1b9c239e4f6c0f0abf1cc9b9b7bf3da7e078a21893c01eaaab236a7e8618ac146b4a68cd9d7e953c7ae07ee785d68a999e702565960d376692d9ea468556ad141229b1f3bc97926818c078901f73ecc578e93abed4c86ffc31393f53cc0880ded0c2865df897a56a98a5ab04736623957bf489fb174d9dd8cfcae17c2abc2a77d6914ac7983d50ec447b65e62ed38054d8e8242c31b40030f630098ce0a4e93536da9179c3f3ae0b34a0b02aad427a97ee60d8bdb7d92915d1019732a095d962b0ca56bdd15ba22611170ed44c880ea0170cd2bff0dff388a1fed467a92fd756aa5ee815922ad356f490910e8cc3b0f7d3934b5e28c09711b5151ae8329876670f3de6d7a3a298fd97b580ac8f693305afb21a3615114600b4e805a45a04b16aa53c2ca5d8a39fe6efb3d359d8436583cb94719be750ee2fb4bb29823b4f2184258c295614544f65808f096c8297d7cf45b274fc9b2b1bd63f8c3a95d84393f1d0784d18cacb59a7ddd2caf2764b675fba27290f4476224b64c2a5333198a4300ece8b3a59ae315469b23fd98dadcdceaaf38642d2076e9cd0bfacc515306f807819fb4790910e2cbef848448f24f63e9dd4a1b122cf65feecf152d5fde282ad6fcc6ea3f9cc23178baf85612020795e4b13a831d72bcd210b8ba3cf93029473ac297f0bac9eded0d873e4b9990973434f9132584a66edaf651512235fb1875370ca5a32a5bd9b7bec31dd138c44d8365186b9323afbba359550414a01e1cdb529426bfa0b6f7daaf3536e9402821faa80003b77416ea9a6b819e63ae427057d5741788bd6301b02d180083c7aa662200f5ebed14a486efae63c3de81572fe0d92a9cb2574396e4360c971ebd71aa7e50d1683bd899fb1f404497c2a97129ea9d7e0a2642dfa8e0bd232ffb6ca443dd7a9683a48b1031ca2f5a5acb4dbdd0e9a2b4e9add5ccfc0b17d94818273c8df11e825193fade364e0aec10f1ff91d57d03a52f8658a15df961c25648fd444bdf48a8f7bb382d9212c0c65d56bf9cdb61aab3bd86604c687fb682260dbc0ad2dc84bf018c016e86b7aa752edd697c022116713d6a6b61538c7e46f4d76c99c29313615ec18cd21f48d99d495db3d9ed09fe946d9604da21e23c994a0a875ad5e0d279c79210f7a7de5c9699fac4aebbd76d39b703eeec5dd5efc9ad6b9dc58936089ddca54e104339286d3ce8271828fbac20f6cf7afd3b72d9b194b7cbaf65f6612416117be492bf4aa88faf6ada56cf4b6462a020404547407be6d42856780a1b9cf46b5bc48122902880909bdcf45b204c083f3b03447c6e90d97fd241975566e9bf86b1cdd26ea9a3ae04d31a0b34aa3edc9e8d038437152214d195381173e79e4ccf7f8f0ce9801086724a1c927c20e4c8b576c49c2a7b7c3445bbf9ba8eac10e685cc3760d6819de43b7d1e20769772bcab9f557df96f28fd24409ac8c84d05c498eccc5eeacef24188409d380b772cd5c72f376c461032cf2852fb8ce2afb37567c059e5b004395ebb5d97fd310284078a978ee4be90254fd7003ee1e76e5257462cbb14a64dbca0b32cea078908d7da47588a40ffeb42af11a83a304608c0f7b6652440bd01316523feefceb460158cd9ba268dd8dbe860a0271f0176230f057767597e4197885ba907318ca202ba068027bc62b59f9f15613e38da74ccc71fc3eaee26f096d187c613068195ce6eb64176013f2d86b00c4b0b6a7c11b9a9e5930f71b09a368b8643583bba5181e0074b1ad465f9bc4cf37e222b940412b4e09e1f2172226fc5a6fcd6d50cbc9625e8b67146b202afec0132ac0070c005cf664081e860339f8f4d45ac3e630dda05560936e646673e652d08cecd8d18fc64dab0a4c136fb93594913ffcebba98ee1cdf7bc60ad175af0bc2fb1afe7314524bbb85f620dd101e9af765588b7b4bf51d0adbc658d54f46fc805767257f5e87d013112f0c6335605e9e763cd4745a1271b0e0b83902d5aaea6f8b46485d2e82042aa5312e04adcb3b3d2264ecc9571ce861da7668fe7cd43dabd7ba9e7194a4d5fa7c8d4db3d25c4dac4a1d4f419959186836075979eaf386ff6cb459cfd48fed171ae812b0ac3b38dc24dd8ca905cac1c600be717d4a0defa0a854f40cfaf8c3387ae7d29e5e2f0ad0fb347c2977b256d70861f505edae4adff37e07552d55fe87e9c240d82b96e114517ee4d9f17873795fa868db7592c5fb651d5d9971fc4e354dff969d6b05085f5d01fb4da1abb420ecad5ecb0e886e0ced1c9de8f3d5cfeb3b7af9258af054362d461a74fcfeb6dcf3a37b6e33b6df32f8317d50d8be8e1970818a6e41c8232b89e1c8f964c6c1da4c665a3e4e25a7af51e433c978573841bfa2c75c075e17dd1f43b2f0369249f3d3a46ff51051e8ce7da528b0fa98d16adc806dfa5fbf8ce659aab56fe6cfe0b9162ddd5874b6dcf6d658bd2a626379baeb7df80d765846fa16ad6aad0320540aace45334070c51cc8b3579598d4cd8cda2153bba51f56e3b1fe5e135c83ef70503c322756b9cad9d3cd28f1ecfc82279427579975e81128057097972bedda9f0240c97233631a23c50ce1a007c0d0d5898deb0daccf4e1518dfb9abba81bf71980d3c8ee365a5393fba1a90bf4e1b9c8558cfb51fccbe25837b06e44f5fc80ec90b9b14266098c7ddeed3d4e20a758198d6d46f603afebcbc561c130e416d5a588a7e6c1f17f89ed6e30538b7f8dbf4b3c75b8a3331425c4ca21e03fe8b57f3b4aa92a60de61ad089cb027ef19a211c720ec0e51743b1166e3d71bac08a9ffff2f0687e250c6a7e1db866f7c4ae8f29b87a03970caa520f0026a0320c6c687dd50c22a7a59cca13275852c3c78e77f3c381ba23fc92d36b262c6e8544f7c8ddad287ead156048967ee1f166f023defcd756681f7fcb24d4eb643a2e2f17a102392fc5f60fb4027805ab1631084cdcc28ed7790f87f6975e0f3e501901b0bec1778c88bf39588989014c5dda76c2163732e7e5703c9cb2c1a6144ffdac5dcbab80bdb82b7d583bf1e41653966b0ba3b4fec0e7df2ff08e3fa06fd9064bca0364263e075e1582741a5243bde786c9c32e9467b7d5d90b8653b8a2f248f30475856e28407dd3fbc4e1a84445a8f2da5e181796e1cc5c293aab60a6f8a8aba1f4e3aa24c5f9572e24e9b209ff761382e263047eba12532b9fdf7372d33e2f232c1a5916dc8217929dbf0118a9045596f79a8d47a7c2c62b459b91e8f67e9841b34a282ceb11e2c4b0549883b627c8526d9e0ebd7333ba70630bc0ec2478114b6ae893042dd42e56671155bb40d85d9d56f42caf27bd965c6a7a7948b39089dba8487d4d5fd30522dba6ba392964e3ffd5908862887763e3d310e6cab9bfedc8004098287bc96a116db16373002eb34484c166d8fe87e1a76783eb68e1e27508870ba38c974b57da968f0c4611f5d85d8014fd48594c8cd763ef2f721cfd2c738e828d41ff029e3591d7447e3125641db8ef8bfd6a173a56b73480cc950ef266a18933ecafc86915a7453ded09efd8a0cf4466101f1373f05d48eae3e7fc5c0f7f54a927cd0d253d91d7d3de7b0a70a3d307596c6e019dee8e5dde03c3e182460b5677f6f17c82f5e3eff38cb6d0006242ab8effe3fb27c9f76bbd78687b743b52e6f3330eddc81bc9006ca81fd640f149d73630af578694f4530833c2151522dcc186c53fc078846c3d9bc47682506f8285ba4551475921fd388b96291741970c34b8de4210202e40d2de4acb6e2892072b8962afddcb1a26cc8ccd3c993109e79a4dd747ca473b8b5ef93d9c2e71d29623b834ac945074acf118248e3ae7878a6c907054244ae66504bdf29bd5bd0389d20687264d19d4b36272ef7762c00c1ef7a32e2c5ed04a2cc5f2403ecaca764f20b3acfe8f25eb5153b880a03e07760f7fa30beca475843581b4878ac0412cd2038117f25a48c152e6d60ec16e4b1e9a45ad8e8e3b82f5b8c1a39efe704b0d1eddb6e2275a990aaccad0c509f3109e42ac49aeea6c2f6da02d2d0af6cfbe5598bc845982c2672fdd44b33d2e56ad676e704c02f756b09e8765bea42b924c14724484567b55f0db42ac20cb70a7f5201c14845a4a09941f48677e6c03699770f9a56ba72695089e432a6f232294dd8da6d34e394116a9a87f3b0902c78332af94398be8d356bbf35ccd5980848662b5d6361eef583b535da90cef6c07904ccfb5963aaa230ac30ad63441f60e807434497f991a7c93f06d50ec6a4340c6751b73eb5825bad02a954e44e1e2d424af928819ebbb590c6129ce35b3f1e908e2152f33a910ab63aef54d8da04a839995ef38893d2cf884539ec81f97b8a4dde1061a27f6d3fe41186d1b7af872c12d44f3639782d2b1053f6610064f838b3aeec585878f86323cac357c4aed054d87595c7734729a737b29b57940884ee839e984d612b659c05488f778fca3c918505d2d849c667471af03369ad9fa29e37bac4cc9caa18e749c62fcff22856945a74ef51356a41cf5d678a007044005d62f5368b55958b733e3fdde302ba699842b1c4ecc000036eda22174a8e0c6d3e7ef93663659b96e3ff8bdae47aa13067c29318b1e96a7fe3941869c17ce6662183b7b064bf261e1cea03e2a4643c993728a2606b5b5ae89e41d8cfbf26057a4078f8a5146978e658801b08814190cbce017d79beaeb71558231a72bde726fa592fb0828c01cb30faf88fe203495aa268503bc82576f76a27f8bc8c4125b4c6f6e5e7b6880d495481cc9454713e0833317fa07da9b5f8910f41db6952c25dfbf6b6b5ba252a2d999c51537d35a0d86b7688bb54dcb6f11eb755a5dce366113dfb2f6b56802b7a6d9f67ca319ea9de50c3fed513269b83fa067977adfd1e9d9ee07ad61b2ac1de64a39d7b6897ab55870cf982fe481dda6d6ef51a361df2e8f1d993980e4df93dbbb32248a8608e3e2b724093936f013edabb2e3374842b7cce9630e57c7e4dd8f4eba540bae99599ec8d23102894362bfb72533d8ce415901576346345d16ce4fbc5abc68f9d16251d5121431774d25824fde65f1ff4f1f83207d0045137070e0facc8e70070422369a3b72bbf486a9387375c5ef33f4cb6c658a04c3f2bd7eb1a3e6baed1cc37b9a67f38648f4fe365d23fb982027ab4202c3392d5459d7995264c2e9bb8e821a3e75e71390b6dc7c8d797819318cdf7b26405d1a327d80d4c289e56f830b28d4e303bcb019aeb0b3d69bfed58adcde8a2445dd5281b86af1b4bf70468eff528bf8815a8d07080a7e98d1b03da1b499573e0dbbd9846408654535657062e7a87a54773d5493fc50798acf2c566ab7a822dbfc1e535443cd1b634d0048829cf1a77421a26997ae062cd34de318ffa543528646d7732d4d5b7baf49306611cc619a146b04fb3b8f2a9aeab1194cc9631c04e45e37fda35cc2676ff5f29f07b492574ad7d53627132908ad83b3c5e9a08161950b1df9261d332dda2602cc68e0f5ee75bfa7e03bbef9edfb4945ca1f139df1bcb8affe8ae025da9267c0e9c176eefab67362ddfcd423a3986b5301c9a7c1c8c0dab93fdb15e562d343a7a9884a0a3378818b1aa1e4091a8175b420d8d4f052ae7f627490d2255c1481085ac9eecadbb49e00d828d6f93a98afa9695a30e60f35933c75920b37488dca376df4847cb8fc2e54a31894c820860c30b5e123b76670a37435e950f53312f089a8e9bd713f68f59fd1bf09202fb49c45d9da4aaa64967c28f1fd77b7f709f5a331b58823eb1613856fd8f92635135981830a287e8dbda3a0e0fc481c5bab1abf9cf630d6cbcac0c503df44603142ac81acd647784ae0e8fc97800ef04378bc9d7f2087f959ad4bbbeec65b8dfeab88f81dc77f09a2b62078e7baf4b6c7503925a7a077bb30d72f4baeff8225039c5333242e325e824f7192d4d132b596ab9e752b54153015d503be81810be498089612b6b2f45dc197ce0b46681496001336eaeb4a12d8b878dff9eb7bc48fab83460a65269134c7626506d8c446d8929ed704469875a3ac2342290f63639fec7a62d6fb75bf55e60a1a953e6f621e2da90cc5b9c4d84f36962d0d55d5bc123dbe5ec5f4fe7b6bf0d009028b3cf14e36c11bc5365391cb4ae548d5eb04fe371b972cfaefda96f5edfe0614c01533b76153118712c1c02c505008204a5be2aa438675d97f43384199517b1c08c7c9fdb2910fd030feb5538f538e5ba74b9bd017d889ed6d2a797be9c26d2be8caeba7a473006102de27e87755742ba34e445bca8675d210e67eddb3cefeed200b9e205679d36d8dcad70f09e678d8d1b3eb1059d12542f3aca300f384504458a881dd60b0a47515752c15e4dbeaf9ee27fab3b5c0db82f5c685e8f716fd7d8764164944340430fe3db1a5679e6ffea5a16dd9198461c5b96d19b63b5872275f4ffc15e1749d2dbc9a7650cdd5a0f7c8ec64b0049c681ebaec1141e49f4dbe82a18f70b3941c8962debd2756f92a6a0451a2bf7fbc01f32ed03d0823dffd4a61186628a4c3c7c482b18589ff65e4c449fa35c2a4b1ca8fee56192611094ae865f5f7fcfed3f89303386e8fd93eace625217b51a2023d5b7adf7cdf070e85438cd73fd75fa5b3da08aad945effdb645c797a0a8bfa828c9d658df2783a214597acebda3ffc07ee48d0ce1147d77540b557d9ada91ad8d94e46cc02a1c0ad27105e8f672ec15b8296051801f1918d0bd470625686e8e8a0abde8f6852b846ee8d9132b26bc94f4720c194e7ea4232048b0af18b8a920fde7b82869e2abcc7e14a9906530be1ef61132884bb159df019e66d83a0315ac715c7b3d794860a61d9c7bd224a2b14a6023f696afa30345aad2ce0a6ea6dbc142f34af1ffe7f783542851a28e8ecea10788831a0cb2c3d14d8bc214d92bee6e2a9e92c423d2974760d84a6872a9465d12b628f9bd8a6e777a7db6f509b3a08bb045e7482b7abe670d72eb2f7afe4207b5a3d488364ff7bb4266f8784ea41893553a4bf7d01e78c99ed9008e2c13bba42c46a7e617d78b12053d7783f0d175fd9103db06d0c6982b38893a20b72fd8ad8501eacb3d47be06fd7c3ad89a815992d00e64ed711951aeb852908aeb6fd379ea516872dd512384b1e773ef078e52e6d618beb202d437d2a46bcb78087f7a880b99e77a6efb26c0a69583abb8e1e09a5307ac037962ddf752407cacaf8f46b5a67faf9126bdbcb9b75abf854f1c89a2b27f2a3f133d4f8669ddf4fccb3bca9f1851c4ba9bb44fbda1d259c4d249801ce7bd26ba0ee2ad671e447c54651f39ab7eff4ef8696db334bce564bc273af0412bb4de547056326dff2037e1eca7abde039a51953948dd61d3d15925cd92f6b07d7c3f1d486f5657d5935e3d67403024ffdcf25da5c460fdadc980d8d6b931de623c4f8a3da5eb6af346193eb36573a3d8610c2522d330df02511710e52b1d9bdc9f2b156deca12b1bf754266caeac4f449ed965d9863558df43ce9ae65a44b19ca6e55f349bbb2dc3e429520ff5b2e817972470794f35c1aac8c118b37a694cfcc875b6d72225343799825d2f5c398b3256d82701d887c382cd237ac4f5673518fce465936744348ed39b73ab9e070ee8a442341e84020e2ed623b113c9aeae36ab11be96f8c8fcfd75382bb7f4727511596bc08c25814d22f2b894952489d08396b458f7884d6b3c0adb69856a6db0eecd04c8d09fd364f9ca724036995c16ba6830d6c13a480b30eb2118c66c019cfdc9dacce6bfd8215abe025733e43da802b9ffbd4f01b877791aba27da972be4bacacc64a1f45687be4af01b84bd4b83fe2ba1ea78e29d7683f6c777ab2543a73b3c9d16f6c63659179b74b1aa5a0f4447c683ba38f9fc112efaccde4835e5b92c2f7041fa82cd90b2c4932704b9aca734a3c947be4c7e6704639d4400aec2ccf5f1af0901b41a29e336afb37c53bf168774939ce51f32d4496bce1a32e612ab671eb947490c43fd05e42a787344b21af89babb705393c82748eaa0cfcf80bee498d275a1eaf1d647ca3b2923d76ea9276e8051bed8f5dbfc6b35765aac577dd9351d9d6ac1bb14496bd98091005b9a4737b213e347336413743f681f5043bb930ecc2a26183240f8da107e80979b59da4e05f090316d982815ed6151d7750490b85273187ec4e07eb221813a4f279a922d48a2a7da3540dd65bda3a8b5fb1f1741604e2335de285ac814c69c40b5373d92bc1babd3e4b2d32993f251c70b5a9300a33927335f482dd0e44d0d57704ebeb278f732ae8301073cb7d5e457f02a0cb03268de71d284b8c23fb96947469813bafdf6a64a9c40ef774e6c8cad52b19008f1207fc41bd10ad59c870fda8089299dd057fc6da34818e7a35b5a363e98528cf6ed82d9f729f9aee83c3ef763d85649d46019c4ca7dfb58d7824c2003f88ddb2bc5a40c4d78d86e68b675f4e569408bfab1e7ac8b8b888c623bc0438b3a3460aff12436d13888315f496fdb808e9dc00894f272f348ed6aa475f848c49850f932ef35fd8693816d950e6209bc04ce26762cf6747d0aee03770e386fa0189790a8295414c0b27695b70988a3c5ab6cacc458ca5a0f04836c5640d34c70cab34cb5c87df28579a0d5e2c72edbc092814bdbe902747ebe3ce36808d8f4dac96b1c82b85cdb8a7026fd3431bea9cd008f0261ee7f4179f4e69a399872837ab836a14e2dd45f5448d54800a4ae7c7f29722c1079db7e2e1c49756288a02302b43b8fd92d5671585ac1ea7491123742a2744a526c12c9a0b4c4a80f26342a3a6858b6f1bd3e68fc536bdf1f4bd96db032994eb76e71571e2d85af73b898478b82f9ab432732b0beebc0864ad8025ae33824d0dc002e158adef06fc38d79b01553be5a3903566029cf0beddb2248b11da40e66feb168e8e3e2a63ea033a75f3828a00780f008ac29b4942ded67224be5549cdce47d047c2ca6458af643332ef5e276a69cd38b8c50f8767c6e27d5f905db611e52def8da2a83989f5b8391fef61774b980ce82ee2fe0acdf24e4efb81f40b9c9abb0a2010e843101efc170f983286b3ec14a8ffb811a0ecc3771f600d8b08c098537d100fba66def19e7ee4d1c397a311977bf37e6cd2d47a8a2ee8c223879bcbbeab235bdb1e3b1cd59b70cedba4772a616934d48195a01c38f745d61f3ab31e60538937e65450150e9314e481b1f43b498cba1797f9793dc794a437500c3c44a8a4b59f9125a4d358afa304fc05b88ac31ed40b6eb68f0396b60cb7cd91013e0d537fb085a49bf1aa3b727239b3e2c1d74c0f52050ff066982d23d5ee6104e70b533047b685e8b1529a0f14dca0e68d24f784fcb2b71acc2d5871285623c829d0e939146b145e04908b904468a67c07a2f156e6b17bf531adc5777c4b91659e4ff45b9f2941cb41cd33553f29c4b65be9dc68d747467f2b5e39b9bec12dada05ec514255b4e9da31ac819d8d787c6cb9ca628d4081000bc6c71425b95570291eb32ef2cf62416bd1ce3666eb2ce54accd69f79d506cefbfe6feb5a1daa778da56ddfe4a383816b43b027464d7a28689fc4a6b35b36883d3f36d9c41f0177bdbfc8f258afe8da90f02d3b64feab43fdb2ba9128fd24721209e958be7b9c84dca08387c982723f93ed4a272f933823ae084f1b1399ff6271e0da6f5aa3f94bcfcf974e77d5683704888621ca6f29bda9c5913472f9aec2cae03cb4a3b4237f8648c2ff1c7ecd73627d7babf0062a684a09add047c0fe648d9c5618500d1816047168e055e8ac8c952c3544a462cc095b32fab07d939947a58fcb4ec7ba7b9b9b6113301bd2b409b71afa1ab9e31d22f84f8cb03badaa408e1d37032350094124e533de766622d7975a047fade6cb075db32979df905cef986cfcd6db823ac21dd4013cecfe088885390ff8acd18d76dec793b80db5f7779426127daed7b9330a8d49b52cc673adc284c5297f961c45ec7997ced2a397b2755290981104c8d50b2fea9a3036ac2b1c329feaf4c7f92f0bf3257e775c5c469cd9a43249421c9fd223996aeda09654045b885a512e86bd834b2947aef216b4d9dd5f8f2e9aa93947508e60df6a0bd8b3fa24a72ef783c9fde1c3d94de0101c75e0e73d8003d9beedfdf9f40375613180d77815950dd885c3475185e7a857c789f148944fafddb5a118163d221e87d7126dd03ad8fd56f9be90c536ebd52c0a7a31b6ee40a4f86bba46d0031989d0f1baccea4174fc3fa0d595e60d35a464e86c33c233e2d6def84fced7a00f59afe397cf4fb5b67c5abe68d5cac6809960b97b09c8b834f6672a66211dbdfc6fba08342453eca026455f904ad215d07d438652e18d1d19cb6b18c41c0f827f6d8656d3fb93c90b663eb2eac034923972f8842cb30e96c32842b3fbc1127930e1ba4322d5b6641f04d870286c76b360f9dd862e7900e9af235d4ade37c0970b88a23b56e27307b8bb2a4ffa4c19176581d39faa7d87711ff6b80e09f3bf3ea87d48e04b53d8f3b43b7e53d61f445f8c8a5a35472b84f6bb4f58f17d9832f5881bb44fc06156151e5c593be3d4363659fb6fbf3e4c91ac25524f486450a3937bc210c2043773131f81018dbc042f40be623192fbdd174369be2a6565a060dc98e2bfab26b59aff2e494777654015c3292653ecdcefbeeebd2ce9091a4f3d1da10f0a4061f81d721f6eca70a5be6546e4f745aeca090061792584915c6a075bbca14c3eb34d0fc2a7b7169b20199be10b242fd0d7923aa70e71fac754a42f279472760bd36dd0cf36f5ec685e7fc2970c275811a70cd05843f94fe21745dddbd54135144edf1793aa0ccaa0b0ef6abddbb4931fea8c194e50b47ff27ea8a290b5ef11227a6b15ae5eda11c4ab8c4f816d8929b8e7b13b0b96030942a12ba2f7b8708afb97e8ecba8f4ce66df1f862ceb86b3452f9b80eff581ee729f0f3122c6234075c6970270e2c367a79ef16ee66514c2a4f34605a624dbb40d446f2637f943a4acdf0154c162fa12b30e151f03fb1a1cf100052186f94ce8895acb28f67f5b579ce0ebd9a7ef27aacef364f8e3ddd3f50f7bd7524fde35baccac627d5f43e51bbebbc72e26a07e41b0526c028e1c9a945e340d05087ff0e4b0e465a99369d3fdb8b929e79d02fa34f316741a1610076d33212ba7d357d4b18f2895cb8c77c498fd4fc0b572115c859168fede213379aa8fa6914f3b1ae2d369a14743e277249611995296de206751b77cdf45f39bf85ab3e8c8afa602f159de8352188aba5378957d468315a2d2326daef83d8ac6b227f1e7a514488afbc6a9fdc2209bbf48970a404de3d803c65b11be96ab5a165183d05ed6477b3a0c633c3d6f0cb8eefb430fddb5b5be8cf887a26dd9b28564c3d95679aca03e3432ac26e287f80e870714c5946b05538b3cb43bba7b85c16bceb5430e81b7a04c1b1d95370f2c7c8c14976e5380b300451eee0dbce987b68ed96f2d13f2340f4e4e4cfac52987377b20e4e6cddf58c7975606b5222582ed6604b9856a48039bd643340f4bf1bf0fc805e8453a9eb7630d6cea1452d28536706d6fa3ec16617617991c86ca8ed7c475d33455fae4242b05b1b3576e6ec05ac512ca7d3f9c8d44376e909c734c25cd0e33f0f6b4857d404520248d5776148c65e35d717da1902d74727b3bee21ceba8d337d77738932865f1b851e810b91346f705880da6cac63183717a267ed144cdd3099c7c418ae92e8f4696704c2c9dcde5ffccc3118c21abe09e3a05e78b067430d4fcfca0f8b1ad0714e998c9ee20d33f96a2388b1df642aa602bc8900ba335e8810baab17060c1eace4bc5203672c257b9ae750008b707b0aa1a4f964d672fa5579479e939d2d5dad6a5dac6fca4bcbf7d5ebbe7489f3809131667b41c3472addfe766d83202ea29c1a949cf015ce50e27cf5c2ff1b8e2e066679905ac91164e3423d3fb7e05c64429e77e432db0f549acb99f91fb134b6edadad2aee9a61242235f0ef6adadd5d314b18e514083d6a589ca65cc89f505e44b480724d7659a87c95b03c62caba53f487b586e67ae1826a1cdd651ac785e4b38f8a0e042f103a9b7dbb0035626d5dec3ded04a4e2cc09e63b4b01aebe304e40d7b5eb31e5cba0193e74968099ace5808dfc457c6f404f270fdc4949b60daa7607ba1811abab1bb19fccdad61d489b66579793a74fa578ace75b083578277a1ae8766d41a5c508b0f1135fb97dff1d0826002393a7276b18cbc4b3c5671360ce0b89681684a4f5a2e56a4acd37836c06cfe8613b0694d2258f8ccee67796e76f49dd9da349b1c23a36f9438097c1e6415ea3ee8fd53158dad3b6d9757033abf2f3d1d78a4da4022643920c233711ff5378ac4a94eadcaf0416fdcca525391d0c64980508c4d1e655cc6200f89a884b3a25c0c05708a3e4a101205c4fd901c3e20a943071a6300bb2614be41a139d4ef1dfb37a2ec9dec3d7d9cbc911fa1e5310a47d23a841d02c8b99a923991c73fc0185d130a494748c64f2b5a4c07bcd06920eb40504588a8ee3e0da1b60a304b865ce77196dd506e32d532e22eac9acfd2d03d3106be7d65b5c935191815a301b0f27abbe4d05e3781e11bec29f37876e0081147ae092f4061191444bbf744f327c9dc05b2ff66487942b64d6b3c099334644a9a591fdd18aec8746435eeead0a54bb88e055f55e91ffdd9bc663ce0bc2937fb296034ebb959d6adcf9af94bbd2f49b842ba3c847c99532bf3a9339380e84839326d39d404f9c2994821eaf265185c1ac87d3dc04a7f851df4961e540330323987dd977d6b8d27c4065b61b3c078ec9ce3871fec02844ed00f5ad28c42f9cedecbe830ddd19e11a5c879b01eb0f8f80b60df25a7ac1ad14aef7e8809c4bfc190b715f94f14b0534cc2e4015ff6c322883cbdc5309e05d67dca4bc641c69725aa154892ff23b284040e623bba940a6a1ef1207b8b089fc699cb152b00bcce220464502cfa1dfb5a2f62e6f3960cdf349a13bf1fc1826b61cceefcc941c5a4865cefdfa6c91e5223308fa6a0aa6e7b13a0499a63edf5d9fff48fdeae83e38dcbf8295f613c162159f368340ca0fc2fd7776f7ad64eeafbd132bd3be1f1c30b5fbdc5f107f12fb0cff15b12c08621f457f938dc1e182f19f40ba9a4eb5530407e58dac27a237b259fad4ff070c8abf98a0fb107db6017e1da25a855c8867e80bae8d50e904d851a5d8e01d7902d8a67b978571705caa5e58db3037350906f96db7bb141354e29ed9a47ef5e59914dcbdc48fb74891a8642f25a55b5eda5818367aac2fdf9663ad1e3dbc0166b484c0cda581b243cc75131167f1afa9caaf6705a0868c13bb6bec7d56afd4e518f2f02b857a58d224fbe698be0e00bc178c1858e6bf5f0f7824fa013d5c8dd6f6e4147974902a533bdb93794d150e433084c4c8200555d96fe88f145c2cfaf16ba69cc534e86cc5a88f671851da7f6c11a02df6bca6e387cfc0e2f11eb72c7d94693a28d23250c45e4dfdbb2fa588519bc7afe60d454c6b545b1e97f2b1100f564fe0f220b8038a6569c69c5aa70db534088fa304a44a76eac1cbebecf7bca07d7b6667063b0ca36d225687581dfba677122a3c5f884c769ff3dabc132330e4a72ecf5331490ff08a59b7dd51cf2a9cf803a1a3dbff838f40451b243786661eb1630a60d0820cc2ac3eed5bce7dc72df2aa3214e71690b91445d8bb1634c0488a671e3669028efbe1eae52f7132bde29b16a020b79195c1fce36bed493e27cd8ef8af8f22bb61658f99887fa871c95c21caa2579479eae5fa9c9262d235a237da26bc63aa86edef59ab60ce98ae8d7a02e693970ca1cc6fa4372a59becc7ccca2a95e8f20a419899c8ccbb9c3e848f24178c15123b3e313e79d905a3cc9cc8a86bd4dba7286fb641c2f93706adb3b932443e32eff2cbed695beeb26d93101c53d5f49d7db8cc8d279ec08d0a5a2a09ad07fabb0122eb65f48da2571d83f86efa2c1c5bc51b04ae94b145f0a8ef19a3988638b938080e30cabe1b6b4c3454bc8632b9ba068a0bcfd20ce5b6d44c8b1e2e39cbe84792fd96c51cf45cf9855c847dc92ce9437ace596da3d8c878c8209ab965a1f6a5dd521ad468d0574c4ed74a5a15b9c6ba25fb622daab349daec0a1c4cdc731f502a2db08cf00d7c15736c4ea83b0747eae36789910c58519ad10374d82a502ea289a844791a26ddfab30d0b5f16c63fadbae2dbb2750d97e94ec0fc9da1c4096259d89429120e4da43e5a74fb3494778f457426428e73ab54f9e9ea939f8fdd3c58f7dbe5a57f7b0a45b7c9d87338b8ff67ce9977e2ec669f5502e77d1be30889a7976819c45c787b279b4dd96423b371599bd3fca280b3ad67f5b2d193de013287cade76d7414f4828ca6fa2506e6e8e9dab300207af0897b9db14608ae15fb02afb6562affab421bc5fb76688d21020cfc8c76b8e0b0b091ae71bfad482e455c13c532ac5414de6f408c56ff1118e89c14b3903a9fb6c43cbdd5b42e93e8f26795ea452c4afcae1f7129747619080aca70637e1423ab16cddf6e5f327241c6ca0722cf79f6cb81f118c3d8df4262d46483ba0467670d61ce2ccc4b0e86ed9096c18cc242cf70e1a662844f1563162948276d5e978c26491177b95f0705037779716f39bf4c05c607e369918d335787abb3bf315aa2bef815607065ba3456aa1d376f225fa7051e0fe7d9594d12f6ba56f7d8ea171f3c94aea21ebc42a1ed61052acf3f9209c00e4efbaaddac09ed9b8078d285c201b20f41aa2491b8b6b91c0b621fbc224284a9e7a541cc631ef067b71c141f6725e5060fe5a9ee5c8b98558fc3370ddac4c2337bd1290ab0acff7121da10fec3517500fba1449fc98bd4e9622aa45e8b81776895e0a8d0fcec22862a2c57ce98f6d3b7f4ad1ecabf9442d34f1a09b1b2786a50e886cb6b5525272de6e9ca8f415cac784fe5bfccfc90a4c459a96c9f5d2777f71b4c37dc902262798316169d443de8f0b598e5dc294d18896bf545636ec0f7d7d9362e015ef8ab54a5b0192000630003000100a10f03142f00000602f230312600381f04020109079edaa8020400000020000602aab8dd240094000404405fbc5c7ba58845ad1f1a9a7c5bc12fad40caf7378b1903000000000000000000002000

Copy link
Contributor

@claravanstaden claravanstaden left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

contracts/scripts/westend/UpgradeShell.sol Show resolved Hide resolved
control/preimage/src/main.rs Show resolved Hide resolved
@yrong
Copy link
Contributor Author

yrong commented Sep 13, 2024

Initialize beacon checkpoint

0x630003000100a90f030c2f00000602070008d6e82982ee36009288010052008098590000000000b9040000000000007ae1809f20473ff5a19471fe07f262254eae3c73c555be847624d424fcc105e84aef57ce071de83d3834a406f8aaaec29fc7492cfb73ef2db7e309a0a3acf24ccd4212211c07486339aca6858b396cd9bdbb42e738fb1fc255ce8c0d64b59686a8151dc5a9995a660759e36a9f82ed3be6956395866edcd1413ba15ce96e3210da40d364516a50f87ff78e9de9d59657a70874a0fbca7cb43cbac450e1a749b4a7f455618daed827eb8d03acfc8326717293aca5220e165f41d0ef2156bdeecea0ebae60a998907a19baa396ae5a82bfe6aa22cf71bfca4e1b4df7d297bd9367bbeb2463bda37aa852ad8fd51803e48295c98e3b6b62f84edf7f297cae93ee5f82593478877f92fb5bf43fd4422c3c78e37d48c1ee7ca474f807ab3e848d4496b800be1788175a01a9228b0d3e7eb4302484a2654eb2a86c0f0900b593da0a436ef031ac230e2b05e968b33e90a342ce9348cf0fbd4414944935b61d9c99a9ad4c1b1825a7059e698a2709b0f07adaa26b32db557f32388b44461285959d25d3b46a818f3e492e231d8fa8de8848c16f0d648a2e0d1c816adf9306a8596fdf45922e59cbf745430570a19e54f45e28f7a8f2572a2cc2ecba151a3d5f4040a70172067ddadd8c12ba9d60f993eb0eab6698cb35932949c9a42e45b36a822af40e8c06d7798d0892d47e400e4621178dda34a4b302f0ac236cd8704a1ec888b6601999508e159d717014fdbf6b8a660e0b8085c60b6b12ac8a5be8a7e24977663125c34827842aa3b2730854ab199dd0d2eaa93084c9599f0939be8db6758b198b840a53b12c5bb26dfcbfbc6f6ec4b1520547382b704ba545c65adcbf80eddfa0ac3cfa25eb44707608435f8cbbd07aa4876561bba29e656b7122f1cb51a02dff1ac7d470217d8a4799c01e61816c4660eea91843a5a42502ddf842d2daeb05868b6bc5b51ba51ba6cd8925766b9266c59f5c1af2e029fe5c51d9332cbde1d0399afa967aca5119fafca623ed0f46535489e19b665ce7f6617884afaf854e88bb7b501ecdd195a5662c79802d721f5340eca8c48341ad1d6c78f519f82e5a9836a3fd9e1b5b61d2e0b9d66c46eecfc18f3745f35cda59994bf97144bdab6832c1f79b1068d2e8799bb7baf9f282c9380bb7e18647b9d147a620b4905caf4a535a5b98e6ff0de5cc95a7dbe9c32bf1ac195a788baf9f51a6d7d0d2233d75af6e8591b0ac6cd2c9dcd2ffe3022b477c3490be344e9fadd15716157237b95625b77c67e59021687c54a0ec87625be0d1631e982691766a549df56436acd0fe76da78132e027515f27174c10d117bfcc20ed73fc31f5465bd7a22a101094fe913e2218c65aa29a9ee9066b81cf24cf9e0beca3e8e8926e3df22d5ff1236297e158cc8bc7970a2c7016009cc4efa8f14b14347a9ee291de5997232c68c9f6c3b568b05f46bfedfa18eb3776699d98cc7c6320003b7d862564d07fd28fc3691d1d28b21b5d6f664ec92e5343792d5d6b629919c5fd8cfb874677df2264daf02bcd9d12facf9b859d5402839c9022396e20d260b806efb61d1c948efc10dbf9bef30197d1c269e5e7fcf20a84367b26223d33fade413a0bbf4e33f0d1f1a00967289015eb08857244c85129a3445af862afff77473664a1d808dd1510bf04dae0098903b2bcd0aa5c9e1d5be4bdae29d4964a91296af0573e16dcf0b6d787ff45749b65737afc23b95ff2bb367a48440f9ed53a44e23edd13e9708acc6fd37db8ec8953e8bc66e370296649989a27117c17fbc705d5ac2bda37c5dad0e4990d44fcc40d3e1872945f8b11195538af97961b5c496b3285148b91dab139b053442bdd14d627ba1e1250fe469f0f2df854b6e6ff4a18671ae3879ec9f7d8091f99f092162e9b8d68610fdee190ec5a1f4be4c4f750b00ad78d3e9c96b576c6913eab9e7a81e1d6d6a675ee3c6efac5d02ed4b3c093aac1af27a7c67b1c6c082f0fe733046f8b155a7d66caa8ccc40a53ac5a55a4903d598b5f80543ea52c25205b02959f4f5b5726aee939d8aee0d50bf15565f99e6d0c4df7388073b4534f581f572ad55893c5566eab1a7e22db8feeb8a90175b7d952cbd8e9d5e9d23139e8f3e979a89b54206188e627f8e06cdfb3e38aa5159e610629bf79713954110bfa6f450c6e55aac8436e33619e2907659741d66082acbda32612d245fcc8ae31e55f99703fac1a15657342fa66751d3be44fc35d71c36b397ed7134f447d9bf1c511bf92f2d27d7b6d425b8b411365fbef696cff95c2175461cf5dd83d93bb700e50ebb99b949b9eed89e003894ad2cc9d9b93a45247e1367ac69a00b0ed5e3280c1188b4cb90eb870d449b83a852a798bd02f9d0c813ad9e1b4579bc335d176f2d1cb700b3e9cf74acc31a5ea9fbb9a9c3071963648017aa2e9331dac0c42e6482f9141657a5b1289ab2fd3070ba49b0cebc9cdfff1e8241414af022ea58b7a59aa7fdb066fd060b299796bbc811dec1bee81507d788af17532b35bcb373ce1deebce1c84abe34f88a412082b97795b0c73570cb6b88ea4ba52e7f5eb5ca181277cdba7a2d6d95c0a30943ef34ef0a644439d857446e1c1736e18360f3f41803b0ca118e79af3fb9c608ec440a8de0f79d2c245b583ca102c2ade15ea2f2b0cbc7dbd8c1171de0c8092fc4ecef84b5fd2bae7424aea8be1629f851c75e4d1d0e96104e54bfbca6f0d5053bfb37588a8b06ebee8c84a7f55b943c04075abbed5000ac6c16d9404d40976f6197ee1b313590750df93721980a54f9e9d88a7ec08d04edbdd7c9222e99f270b1e978ce7140cc67e38a2e60cc1034dc5b0deb5b60e10697d3bc72959022541f84e48b655e74bf3da484179e0e0040827fc71e777b68f19bcfd0e103d385ef957692e7091fe713561f38035ca5bf4aae622b58a37e722c3d1322b402907f10eec372a42c38c027b95f8ceba0b7b6f9b08956b9c3fdfedaa83d57a2178e8f63ec8f4f1f7fcc61f893b671710c3c17f9d2d26c5c6ca40e671bd4b252bc0cc1655e6780d2ddcf2915d8f623b9a4a5b213f1d8ddcd9e42570f61f57c0e59cd6379740e50239257395f2fe7fac982c9861685e0fbee6c75bced5aa6b64849b897fa90529458bdf3cede5ced3f3823dfb9b6d93b96b81429bf05e8f1a80f7c857d458045cfee58296b3ccbc4119abb97b43a6d1a47a1c415278344dba0cdfa952663a71fdcaf58d313c161e479ab5d1b980d8870055cc8f0d283bec8f97425b973f9c3d3faf641badf533ec36165a665759e0ae9ba45f9190fc44b1cdad78ca90ef6298dbe1dc0ee95ff58531cd0b3a24d05b51c7c128bb49979cbd9019e6618545d95275a44b5c3d1d03e71bf2ebffdf43fff50c30846ec27d279043cef4eb01ee30d120b97e7b60ea89b9b6c537cdf20b6e36337e70d289ed5949355dd32679dc0a747525d6f2076f5be051d3a898e2e9a1a8bae9fffa594324a2c643ba0609f291146a104ceb9fc1f26d4a25604b97e9fb392c01689c88cac90c310333ca02883d525e251708bcecf6cfaf7d07fc5e1be92fba24ca8f805e96b7dfe385af449f5687de1dc6707a62ccb08c1d590ac9f0b44105cf77ad721b97b0f04a37fddb2bb62c345b0d22a29e2870b8964d7484aad30e454c74608ce9901043501a5b746447b0c0d7165f965672d71c318f2c1052a5ac6ebe320b14165c9276c839ed822a9183ea6e6dae63a4f826d421d658ae9585caa3c73e679fe9b00f2c691732f7b7ca096e22d88c475a89d4d55cb9fba3cd0fe0cedd64ce75c591211664955a639bdcc6f167b3d488cf2d28ebe4782c4f37a5de4ee3d8f4845eef50c81ab7ee421db99c02c6404fa9d45a948b6d37fb15460725c0d6bc3a6a7006dcf3c3e3561d9acd674c52d4199daa8598ee29eef053ae521f1271aebc66943938c9f4b7eb2c191d34c9d09efb42164be35cd04f26d795d2558b0894286e455f8e8b0977d0714e5c8d3596282a434a5efa5248fc593f03495d53c781be8b76e37e68b64aa260523004eff6455ddc8a8552af39854e5181f8c5365812b1f65926534fba5ddaa318e541c171104c94abd4110f9269efc88ce98ed472aa52ed877634291f6355314b915230723da00069eebefda97aab7e5497eda543c02a7b3245eece98d21dd4c587b5a05f21b5c785756a0b875715782f706fbbfeaa0edaa6faa6b03d8eb946e508e1d399f22ae69a42102574c3d2827adfa47796c4c1b947f6ab84812f1474fd667c9491f13d4511cca3e8fffc7b72c93827b8cbcbde357a04ceae87554db9d283ef535fdb7bca45460ea567edf7c1b82d96c7df679e64e01e501e0b45094467242dbd62a3a64175663b6e51a330e8d5aeea5d85cb4ef33f412c41f24b9f49b06f5ea1c076dd4ccbf10a2fa4ab788b49b1130f9df26407ff3f6ac10539a6a67b6ddcc73eaf27fe2a18fb69aa2aff0581a5b0eef96b9ddd3cb761bdbbf51aad9577501d7f3a5dbac329f2c1fe711710869cc825740f365488fc55a278d687bb72423560f7cb2cbd60546a82ea1e68df8b35861e00e82826b3a39069e9f3f0fcba18da2370e2fd792b4fbeec8a27111c7dd7e0acef5f4bd9b7a5cc2d6ece980414adc7e0a9cb961b1f31682c33d8e01e3b8cf2aa2c2a911ab9b1f54d5c4bf92e18466cacf9b80333112ab015136d289d356593ec09d838cd89306ce83c060ee797bf9eec8523f581cf263925699ef0f7161a790bd00bb09681534ed05ac82ad2456725ac3aeb0e4ca5c0502a8abb4dbd8a8897d9d91e673fea6a0cffd64d907b714b662d73c0877b98d4ab3ce6a89841d9c04009af59c646e65cb79be10bff240fec75d756c8b8b9c4f54a2463561510f5b2f3d09eacce57cfa4a856d72f7a35d9d6d5dd5428cce7616842203b5fa3721cb4b20f50c0113f138604954fe0cf214ca3d065b578f921054b9efe823dfafe779a9ca4edc032fed08ee0dd069be277d7663e898dceaba6001399b0b77bbce653c9dc90f27137b4278d754c1551aa798a0371e8cc4dc42ccd79934b0db5a3a59f18a0ae09f2eb172596428fcb3f00312e783d6fd21cbc1610317f44e08cb88158d759eafd2205c770f166829fd61e8f17b2c13f440777eaf45f4d88a6e2028bc507680ff435882d5fb462f813735927c030d5a69f0908c08f95715f7a8d1e33bed5e95fc4cfb17f7743cb0262755b1e6b56d409adcfb7351b2706c964d3b8499a8c3d67d1f6eccf1c69274393dc498cff862ea8e6c11ffb8107ae190d258ddc1d294f2a8f050488df0212063ece2a031d95cdf2853d2d72f3efe2feeeb9f409f51f3b708f726be0096acccef3b247fbe4370c58b4b891cf156234221e0ee85f2ed3ffb03e50c8f22553b8e6349be6244d893aa37a7c6dbd221e9e121579e5a04466e60d6b4d3567bc747b1fc1e9f87e39895ee4bcf83f007c7e8c560304d55674cdfef16e3fb5a309061dd97f37b12da2acf5b2f05c0d07fd594277d49ff89cd9f6ae7d9a9ff2b4db916ba3af9fe700fcfbd16577bf73a965af938e8cf633020466b0298d3c31300360aa6851af2a57bacada151d6521c6f40371e80cc8e44bb76389dfa7da5deba7675bb9a253c59a901df26c6f1069205b37f18048b1ca9760afaa51002be0948acf7aebd90ec4e60e0dba8456e445aea93408a0468b62bb6da4984b92f8f6061561c9d56f4c4a649208372f44f32eb1cd895de458ca1b8be782746356f08ac8ef629429d0780a0799fcff85736e19aead0b79bfff261ad2b1ab32161e37ee553e3787f05f9281073d7ef7d0ae035daa353bc83da8ef8c76c99ad2928463c7c708f740402047691c3e8d2a65af7a31e24445afe9393e53f47b91167818210f2d8b9847ff76687ebc1107f52183ebadbafdaaaf72bd951a16c910646638c4a57e94129a333ea61b8586d7fcedcd522904c9d019befd6e58344fd5e8f71819cfa841c34b3c812f5acdaa6263cb7ffa0fa159983888348fef7f0514abd4d897884bb6eaeb57c68e61044047215ccb0f32face09b0a72ea3bb45b285863f7303a234173b06e8eb63c8e2b70efe0dfb9872e3efddd31d52accf0f1292cfd1239b5a57492f3617a19e8a019370ca799c2c98a605850910cf43531bfb616393039fdfc370848feedd3339b2427b750ccc91952b03a09f690e9eda2f61cdc267bc1c7c328571b09a058fd9d2ecb70236d735fc50289a10ff35bc8721f32cd0e9f4ebcf09f176bd51e1899a6b434ac201b511dceeed63b731111d2b985934884f07d65c9d7642075b581604e8a66afc7164fbc0eb556282e8d83d287fdca39618051c4b3f03c816b13df2d4cd4c7c564e3d8693dcb58145b7b3b3db7884b0125b1e84d9bb82e91bed8bba393121aa60f904a48e624e00f5410cf8c8925d2b0719f90c20e00cba584626f833de7c8a18dbfa6a07df24b916156bfc09529ea4a51324ed4ecd855faea43846a223da8cbb494e5854cef700ebbcf4d76119cef16192e6b7c51f82ab79371756e838733220d1559c800cf1714db8a43a67a0c0d1d3a9fc1e2cdcf615d20406501e5146fe8b59bf64f4c5daa1a6d74f15cacfbac397ae2ff23b31bb27b90788fd0fd51a50f8e8c9f4b31be8499194252014f0b1972b204aeb9c2836a20beb3c868a356e5b70bc478c625e32a38d29f0a619fdeb665503eedc304d1bf34562d4b6814dfc30aee5aee94ca4bc6394e412765946d585d7aa452d37a8c89d404757c3cce2adf2410e18613483c19199abd88f7a12e206f87a43f6009e42f4e31ed20c091b49de13c51177527656ec1ab0ad74ce8666550f7e14bb3e19199b5bc7ee81c72f1fdd7593a1148d1d07407085c585ab15e1b4ac64bafbc4fdfead9aeff126bf102fdd125c1c914f7979680ec1715fbeccf3dc35c77d284421ec1371ed8bc328ae80eeaed3fc456f8a25c2176bd09f52a2546d45d77a70f48a9e30aa29e35ff561c510ae1f64e476e4a0f330b9fdbdd974a5180e55eab23d4c973fbee6ad1010335161ecdb849fe6520b34c1f96530a4faff80bd738fe281019b79d968c472ca95bec86a7c8417a8df3a0158199327ba0924d3b7dd94cd7c1ef8489b10270ae64b8537ed39cd3699a48942bfc80c35da42bcc5012a8b87caac4ec279f8cf7e43f88e36b65c321a835fd8a5ba427a635de79b93d2460f5e15258f09d8d51c7ceabeb50e9b72dda934df8f032ecd0221826cb988bda6713ca0429b7c40fd2829804fdba8da13700cabba05e945380b753963a298fc8876b702424a697929c7a1938d298075e38b616c8711f1c7116f74868113a7617e0b4783fc00f88c614e72d85554235ceabfc4e432bb1804daf45ae47b90b8dfaf33d0a85565394dd1e122dc5efdf3427a7e1b288c78c24e8ad9809a8e03a26e88e4ed03751ccf6eeed6215becbf4c2d58be27361f61d1cc4ac9b692fc6ecdb839f9b3c17f54fc2f2f4756ea09f11d2bc6000d12a42b545ddc29c1973944a39787c5f27c96d4f6aa0d9c8fa9c479f2ed327fbd30376df3fa5b7d2a8b0922acd6da2a95b36de6d0755316594a7e2e32ea774792dc314e8c3cd76d9f1d69df38231e166e24bd42c664f4fbac78465bd8be9bd9c2c6116d4ae44ec6618c109cb9aaee2d241e7a6ed906d398ef15a6fc18bc8b1d3398184241405954bbaaa19a75f21a14ad5f170e336a0bd07e0c98b9f5d71f91e784d1dc28a5f5eb6870a4eb35bb41edcf9e6efe982ae5c2c5bad9725114b01152fff134c1a8ccb8d171b8cd11685ef6815b76f442d757d130bab9ef4c9845e66f4aa0237ee2b525c20871656153e1f359ea1cf77914a76de34b77cb62e670c99f3584e7cb2c500c04f65f36bcb5321f4630df5c3de9245a7c090fc170529bcc0b80c46a53fffd8323fd2cc5cfa9b75ea4d36db21bd1f198335ad2bfa87f8990cf9cd9fd7989ecca71885822227f6a96d3b6d6f5cf943e9fb819c8eaf42a9aa0bdd1527055442b1caf672522762831b2dac397af37a1c5ed70293e4d7740847caeeaca68e0b8f9a81b9475435108861506e3d3ccd3d716e05ced294ac30743eb9f45496acd6438b255da5c0e42851b769d2d822e39222e708068455aae3bdf782975b59d3201e67a58fd66e16d380558bf2086bcab890a92dd5b544c692b046aad8b6f5c2e3493bc8f638659795f06327fff1e9f4ffc8e9f7abdbf4b7f6fcdfb8fe19654d8fa7d68170aeeedb3c73a9eadef14396a474ca83ca9e3885fd5f2c1018652360481d0be49524de22fc1ea18bb7abca66df5dc7d30980e58680edb62d6ef04727a36e41e5ba63fe787aa173171486caee061dcb6323f8b2de07fc0f1f229c0a838ed00e3e31b6d6482ad7b9b412ffbefbbdcc28eb3d091b1291f54f77bdd53c4ac85f705c454940f466dc272dde7b03c26f0cd6ecb3b6c7360054cf250ac48c41fce8da7a15b4c6f226688a60da737ea2e19b00c94ba728aa588ee72a7ac65f2d63f216285ab1809f9fa306d63c6cef586a74de6373fb2fac0cd10c5cffa6559cf1a16a99502c16c204f803139d4f2fba5161f90a6db924bdde49acbc8d9213301f5dd3e218950c1677008db7a8c830ecec0203a79fbc61d536d5a0079f2072b03f86eb3356ac4b39bb8f0f62666a50574632764f8b6a1dc98afba5a5dad4409c920a0c0d5d2b5c2506c3a0d2f8727b7b7dce2ba1a88368a0f17c8427beb71dbf11a09a2fe8495a33f08c29c74a9a996a88aa01c0a09f9555abeb1ef1592cab99a9e05875cf9779987412977476a6b4c6cea3f2e08b5960d0a12bc27033b2ffe23792ba6f0ae3167ea6c6962077990cd1c7c4c220c791a812d377edddac3c848f65bc8fbb8a1692507dc699e353621df83440b8e463862057a2596c6c6a5c36b2a4888fdae5a5a07bf219432e9c80c38596c93560b49c7de287f31e30b7a06fcb4d15982add4a24085adbc5b753c462be989c64c96db919391ac60e21fbf25cb2d6a3ce6edf9ddc493073e5e19c43d319cc488ea7fa2b4c6c9fcae5477d83065edb7f92b7f1a69f0a66173645ebda4f0be19235c620c1a1024c66f90e76715068804b0d86a23dc68b60bca5a3e685cce2501d76de97a9f6b6b04e36850d2dbbc390a9614013da239375f105b0f3738138431f0a3a8c685445f6c518e0b0e72fb3244ddc0d9e8a501497cdebd72f9b192c8601caa425072e8e6ef438c2e9493675482808522e488779dcb670367cf6d68edea02a12afb63fd45023f850985813a3f54eceaccb523d98d4c2ba77310a21f396e19a47c4f655f906783b4891de32b61a05dc7933aa458aaca6ecb43b6e45ea72d02682e5a7dc8dc22782669a0628e1638e73999319f011803f4ec8cf072467bf2c49c6298e9bccb749e66fbe47296f5dec33bd86e52987516263240f35ce9a212dbcf71348b60a016f830f2acd05482962403542abf19b2cb84bcc87d15e12844d053237a139d76a35ca14250cee2415ee646d98bf97c42bd2645f0790ebb388dd561d59a1beb9f673409ec678020ea4dcbe65177aa18e2932ceb9cfb33fccb94b9a8ccb664f71647d58b3c8b2bdbbffbc02d5f7a076ea1084b7a1a33115ef62d6524f36e7820579868763a6ed1f8bce468f150cbfbf0ed04be2487aaa34100d828b0db6ab1334a1dc4a34fac334e1d637de204da18783d8573f216d9d24c853555d79877682b43af02345f6695d87f6549aa72e8f71f8edae59d6936846d8b50da29520f69b339f574ba9156d3d5f0cd4a279d36bad7ca7eb724dd48aefc4ca9ce26bdc919b5187af7dae210f151dc64a9cbd396d1ae04acadebf542a7123004efc7ce00d6e14c170d876fbc64dc1b5d141a5f4825359cfe68ad6a75578a94be6419179e0aa088170b6c20fc5c249dc3be7a260d687c93d8d8a343c7c72c2ed6a716de3b504cb87a024fd71b7ee7bed2833115567461d1ae8902cccd26809005c4a56078617ec5d3fa5b29a1c5954adc3867a2680b61f545f9756a2b4431f1a2690adc7b351dd82edc1eb1bb0f3ec2e730b1484da690ba636701059e51e59f34e124983a17b0040b4e8549acbcfcb5cc3100230e50a0289f54f5b6df39dbae22cde97eab0b13ad4aedcd21bc685bdd0afdc1ca7abf28b692bed19ee9152d5f8ade776f0a42a9762ea5f37d80f47ff219fc0a8ebe5e6eb920453e1ced3ea5bba19ae5be7b7ea5e0d3cfcf0570204b0371d69df1ab8f1fdc4e58688ecd2b884399644f7d318d660c23bd4d6d60d44a43aa9cf656da958987c2b3c84df8176b600f5b75a8badef9653c71eff967e76648937def38826eaab4027a639f4f300b2001916625089cdbd610e7f57e86438e50874c3c7ba85afa63f5adcab9e454b5c203e4da65d74bb7cac5995a8652d10a6e438a1c2b8b7f146a357e02a63cd79ca47bf93998b193ce1174446953f12fa751f85dc2a54c9ed00c01a9308509152b3bad21d723087ac804ccfe7f1fa156b8666664a397236832569f8945e11d4688a9e43ada4d4104efb3fda750f48ef655a29357c5e7db526f40d519e7a8f2c81b69f71b3e2ef079028004c0448ba0608296c2787972491ec6d05ed6a8fbd5ef2da76325a93cbb201b0546f19c5db88df9c684cf55ed623bdb43927d06051bd595497df741feb1485961f64e8d3d1811d9e2e9e1e54adb58396bce7d32ba6c70adbd37156d859e153c1932d2b0c7c874a1182ba831439e80d6fc6d7d88a870e193f515aef2264a6e1951cbbb19c0aad6e9251c2c4dcae1d2e50550a32813a47dde9f41e42e2dd0433cddf7e63ab3d320edca48a6d34fbb0a32f5ee1e22853d6557c59517234abf7af5bd5984274fc084f25dbd8a07d026715b23b776fe47f8a3686c69a77cb8c998a653dba837c4484ad5090ea32919dfb2ed647d4bfb7578c1901e3b77ba7fe275c00c8ea560d6505dc2f1cd689733ba4eb903990bee2374b14fa66fc262d6821669537e9ba241c87b4b5c9e2b89b32fff4bfc28ab8471ef52e8eebc3e743d18097b13908662d245820f3b045d8c2c665fe9a054e9c661323924ec86dfa713b36b0c787ad4dfdeb979318810e687a4887ca4fa85a257adf7e21af302437e0fa094e09efced2d7ebab6cf848e6a77ae7bfc7cf76079117f6ed6eded9d79ce9cb907a3a9522479f6101b3ddb28517e220f842b32d14bd2ab80fc1005bc7e6a101b7bb08e72e6c1a8d050dfcf4792a3620a6dd7816a96af369540013a456722434a5a918673564519a253ae5669ea3afeef509e29f35c6cd3ca7fd29f97987cfe397f1a7370b4f5acf83b466f519da361c366915f560385dd7eff9d53700ad81b25c9862bc71d35428e82372a5ae555ea084f43aa4e2a9d10e6590314981b5eb2a5e486c1593a4f82bc3a82b67f6ccc29652ab82a689a9454bcb6c1f9bf7a10e2ba57d5de556853484b1d88808d2529450238bc467376ded84cfd7b4a1ba258f6d43b5958220f962c57b033abcef1d5158b5e1edbcd8f2c557bcd0d425fd3b3d2ba26c010f456a27abd208608db9a981e3b90b482691fcb3fb2ba8997b6543dc94b9ee3b7b95db0122edd90b641de3c07fbf63a4f70fee5f72051cbe25c92d88444314d0489a5ecdb1805f4f149f462ee68253e3b0b85538d01b0ca90b0a1656ad80ee576d0c3fa6349df58df92683b510e56c524fa6144f79a5525f41e4a2ed3494fab50e1f826709bca45da6574aeeaae0b2b6e172c30798bbd886720e18dcfa0be4c46b43cb14219b172b6afe70c062a02f7fec0661394399a82b2e3151009160b3f5392017ba579b301ed42c85100c295acbfed46b6c58a9d71796ed0930e6b65e8b290bdec2fda05cd1c09f8508f662aa46d7d19556d0a4e3244b4ec20093aa37088105ea4c2b1e5b245410241445936f7e20c96b97548fef667aa9fa9e6cfdc578f392774586abe124e7afc36be3a484735e88cc0d6de6d69cf4548b12278b476b3b065a3b95a3d11ec60a749c2258ddcc5885bfb50b8a086d3fd1e49ff73e1dde733b8981c3d2d206aa0c87b09b8117fbcf61d946bee1ce3dff9e568b83716907acfde9b352c3521cfed44158874af8dd5b3906b4a6b49da2fb212ef802b5f69b7614fe07889b58142d7b438186d70214ff4cb209b6f271a3bf2bcdef5e6f1c7e95dbf5f2785aa471f0294cd0299888c250b4b60306f4ecb1babbf95d0b6dbf6186503b2024b134478d721fb782d801bafd126cc3247bcdb1ee9d66de8594d4a1e3a3d28a948f14d1507372701ac6fc884a4905405a63663e170831578a2719714ef56f920baa0ca27954823e399405a2882279c691a42eb71c928ecc1c1a054927471e5ec7ea1f95283235349ad0c9888803e2fac748c73d241931eaa3b04061bd8e98080d0e1338fba5c30cfc726c268d5927852a14674d7c289941fed5835a24313c82b19dc2368b8d4459268cf06b34e7021e9401eb705dde411ecf7e7e7185f8c0b0aeed949097df31812a9fdd4db7d18f9383a8a5a8d2d58fa176b7eba9659ad46354f710b94476e8fcad4ecf74c584c1b6252960e7e7759c8a064127929bbec71f2b868d098140b3de40934fa8d9bc9cd0ff2492c5c97e63a98bdef63a6e8889c9ba7009d6c6472441750ab37ce5d1ac3bc0d73d074af223e44684a6edac5ac68a7ca837c46d5ada8fab136748b6c3a3b9165dbbc231ec386b15328e4ef7d69a15d4cf354135348a4ee4b33de3de106be61481ccb7f07a7a63cf4d1674010e462388fb8ab5ea08f444ed7a277905207e0b3aa2f00bb9efca984fb471c72bd2971353f4b44248b8e6cf5316812861a88ccfc20fd0d89a5e010428c387228b2f6f14c12f79e31afc9d0753983fc1ddf17f9756c9cecc00b39bb2ad432587a5c6d1c3296a383b9f539c9afe84c6c818447a709c0b686ba26ce5ea3eab4119eef94133198adb684b81f5e90070d3ca8f578c4c6c3d07de592a9af4e9fa18314db825f4c31cea1e2c7c62ed878e8e48992d0394fcb9a0c56bbd3797400128e28fe395ad9acf582919d66d11a4811a7187897e60ee2ab4842800c8c36c88e1e459ee5aeb8b36ed004f6d03da296101106fbe1b18f9bbf63e92321db51670c34050fd3b7dc56a4bad76403823ee85e2013728a13c41601d4f984f0420a124db40154a98bbe8fddc99e87188b4a1272d20360406a9dbae9e49bfe3f1c11c95718b06017ba9d45894867fd67148645d25d9db2229aa89971f444641ba9db4c5c6f0785f3b25cf2cd7fadaa6adc5eba19e7db50604f6b82cc28bc97135025459c8eac107a1c482919df10b8be2e4f24fceb93b963c0b8ac9f402e2f6ebf3879920c52effcbd2a54502957fabc7c560250c08941bc30fba42d1a5101cd987359ab5725152e3638f6fb3b675e12d10609366d86243f9d53bdd15d4cd6bf5dd348c2b89012c633b73a35d42fa08950073158ca0a1cfc32d64f56692c2374a020fb3bd2fedbca3e0185bd4920bc0b9279da7d7031e39df2886a4c969b28df97181ad37ca4bab2b79f44d7bc4acb32b14abaafe14dd3b680f096010788226d8413ca628feedad79a2bc78cb04d47c6ad910f7f46ca87b8f8281744625d8f42d5eeaa03c1e287ccc4d457f5e71e9dc769294835945561e6f236ac7de210d2e614eee8a85e21dfb46e2143c68de22ccee8660a94ccbf61b3a857744aa1540fc6d633afb8ab3c92d07fceef90a0dc54ecd2133490cbaac8832b26cf2f4b956471f36feabd7248ae069d3a3a45b0ef4dd5d7d54b62994e578ea20bdd3b7876596673953b94c5b109a6e4b953b517544b915368fa3cf8e318958bdb19eff3f4840d453f13b0edba8b5a8754ddf803d82a8f97c3c6c60733288d7ebe5c5b6934379c7feb9b1c56f028f31f0ff86bdf55788703b4d809becaf3e4d9d349f1b660a07d2f15e127eb72a0e2a5a2742313785a3de43a5860d581af35d522b5eb5fddd92a98a6b4cc483fda00820d1ce4530e07892890c096e99b33976ca3550bb900e830ad3b687a8480c87603031ffe58a4e3aa7b3305748424219b6b1f1ad480ed2a473fedde4c79b8cc5b6be244f6848eb66e9d9d8b102107527690d9324e9f121aad6b01f15d70140ff3b54e88a6743af913e95df9756f46c88c2525b6468f79497e1903e880f51ddfd824ce64b336ce26993249c9d05263def782a8246e87ec335042b0a81d2b91782a6cbbc9911f8208e1de7048ef9b456c6abbc1b912e4b5c9420e8af1a5860eb670894d3ac250ee57f2421f2e4eaa1a7f85df0f3f9b34a24169195fe855474478de6f0f17168294a676f5a92db8d7f87b3e7e66f5ceee66dadeb5c94d740f0e0997e532409c2934175b6131cb2a4000ce0ddd3f0543ebfe4906570853a85350d75418a1ff2608099c069f03510df576ea0cbb406b7ae8e4f21576811ae47b31c5b62b38ee886ee04945649054369018dd6543c91f0138464af489a32c1fea339e0e0cbe82e3e8b9f2ef3918c8cf3c29531a17489a5f8232d56c5251ffddc95be3ff7ff61472e19fb38c5eaec841ef3b1ee36756b3dd8ff71ae19998296e7d1bbd42195360267c2a324b4d9bccad3231ed8a7f070278472a90371867e2ef2c29c9979a1ec6e194893afd992dfa76adeddf2454d131c91d5e2e3a464ef5d3c40ee6a2ab95e70ef2e49e0920d24f9b09276250ed7b29851affbdbc7885ab1afaefc9fb0e436c8fb93ba69feb5282e9f672c62cbb3a9fc56e5377985e9d8d1b8a068936a1007efa52ef8be55ce9ca4b507a4bc2bc424297bf8968bf385fae3acc686cff4b7933b4f5b6ef3149995393d5331dbac4b629e8adce01a91a4cc99dc48a054f448792523dcdeec819e1b928b1bd66f60f457261f0554f8532eedd7152792df70ae5316ab2f9c02a57cdc87144976cb0d55de66f612725c6d89ab35a5222e8b003329b898e732629f5b7022a7223c9cc9ec820d3d1553e7b2267ea60642ede2da19e9e4a2fe5a31360fba2c871c25ceb8a867c8189fc62c191a5494cbe59a4a53f643d3025ab264e9cee88dd55efbf4f9cf6aba47c16730bbc5dc3d332bf2e9f1be8695f755362ad2f8e6f6e2426e52cdf0ba9feb9e17533c4b06b42f22b81ae0f8bdcbfde4cc9a882eb46c80b0959895ea3c1fe3979550bbcf3f179ea3925fec5b1ad0503c07e7a1148c84926cf2265981e5531d90d8f2da1041cb73bdb1a7e11eb8ab21dbe94fefad5bbd674f6cafbcaa597480567edf0b2029a8b593de2c6c90392325b2d7a6cb3f54ec441b33ed584076cc9da4ec6012e3aaf02cec64cc1fd222df32bf1c452cc024a16938f556b8c11d110d95b8584cecef8b95ef349ea64b59df806cc62c52ee48074d0b3f18d84533e41583aefd6a9d43a62c2e7c692403e874a16e08e46a067e19dd561993ca07ff79cecb53c753763b3e49d372638c96c0a8c921bfa0798a0ca2248409026f35c3da8bc4d5c02315066df8fca44ff5a358cc42b5c88bdf6866dc133617c697bff004b1ef20ec4b574891215fc3f7243638733fe293dab7029e0c4275550102acf5f1638773cf8f8ef2c53ffa5bdfc1b602c269a2b5ab164b7ab900a55013d0427e5da6b21611d6ae3e648f54f794cb099b2d2beebae0a957477a94dc415e8ec5e68e9029ce50d4384399289672bfc48d2fbfd51a32d0d7f9d03fff37b8269ce45cbae1e9a091ee3983774d053efe8eae2f2d3f22a9eb532457b8137fd57ce7d3cfaf8bdbaa28704734d567d0e7a2d87fb84716722c524bb93acb2c1284249027f3c87bccc264c01f4eac56dbae1e290ad35dc14eee30c6cea441cb7d2cc64b8407b83df5e07ce4a8677983b45458c0127ec0d01f31bdd61a15af18cf1e3d094b4d8423da072f98b3023d296f6a1f2a35d500f02bde522bb81dc65e9741c5bc74f7d5613bd78ce6bc03b40a3bae2b08c13db00f993db49e2042be99cde3d6f4f03d9991e42297933d6049394c659e31f316fcb081b60461dabfaf6e6cad67e54efe92976851bb789d79debfa2c78757103b69e43d1aac3d768d496017b8402ebc6e0b176be5aa6eecdbad19e38fbc31a1f99e8ead1437016333ba9b15dffa43fe617d410fe82775f06fe5abd2d5f2118802914903d2c230174881cfea085de08a39ecb888831381c4e60d2ece13caa69a1da2ade95841311f0e6e958863fe834f8ac70e358f730a9dcda7b86e4f1366da44fd59a3ee68018a99c23ba3588789463bd88b0177a9b94030b58cb879a506e64421af966f261eaa86b182d697922451befc875237db4a3b656dc36aabba71d4e6bf21d59608541352b077a92da04a91ec2345ef41d54dc2018a98cc2fd044f6749775001dc8209349547d19dc56e1da2e4de1c953e7e36f15740cdbb5e8c6e4238bf216c1f7f9f02b912bcfe28f56098d7f75f90fa419232787905e1a26170f274d2cfeac25636a21081b07065a7f515188233575cd85cb4a86be44888e8208c167097d7d535c04090eaaa61472b4c6b2d5899d7eda8d3f804ae1708c0653d47e965897038d4e13d78f7e58a9ae0cd9d52bbfdecc11347a78e12af25fdbc7487e9be206c11257f19befdeef47be0a7d7d1486b9bb5ad8499e875133b542cd93b7ca5c236a14dec59d2e2fadcdf7673f09fcbb2282ec50b81410de244229701501d2a33802f751b458978299430079ea9a0868eb1289ea175e133e9f604129d56b1b1d0f768930bc4c64db921e08f352bfe6ad2296123e6ba79337558dde89640d62984bb0fc12ea5f934c2258d4ce06b187364b9a646bb90966851dacf3be0156b2956cf46d4d8d2799daf03fa434a482d9aa4d090884c99b7208c1f5380b9acbf304e1bc33d3d6902afa5d248d20ccf03795e26901356edea59a20a570769bd011a64917c77a134b7a741a202e3f08123354d1c2dfa8577d00b29dcb75ba65b983a9b628e887ea2491066bac5341cead3d2cb168fde7da62b3dcf933ff5c1d379a4dd424b218c4e2ebcce038cc342e758795ecd4dbb8b790ab2053c376c6bd113b89fdb2ae3b8401aa891135345885730c61cac7813f69ea7d906c531be752e28657f73af92d1f4ea5fe3dfb5031517bb8db0d5ade1e9f438e84bcf23221de003b03d2a2f4ea97629e81c79abc3769bdb8c69a512c189b91b9691fb57be7aeb9d43995b8022051f199978d6ad635e1623a1bc1754b250fb8a94985cdc1e623e98767690a417e92a0ae78b7743d919518bc674f3deac5ea3d0ab05ff0a5494417f5fa91b19413bad5d669fda2f5e630e360d42e2c49597796971882d02ad64729cc87251b49effc0b8db9880c25083bfa0ff34e7394e691288c7cefbb5cfdc76d6677ffb9da765dbaae96dc808c316a677977831bad1e529ef965dadb5d6aea25ab008fe7bb1543e596e33052cfbe4279fa060201199d2c34afdc091a224486e7bfac169e6a7b4e008d2d04144508a337fd93b6f4d385ee3f0d927b1f5c1cd79a15e0fd6078e45dd4ab6366a7c6da8ca8ea43a3479e50ecf9a1f3b20ec01b8eae1d2a21ba2223a4ce62615836377c6395580a079c284947d3a222ec6b756b0533dce7e903c24a69b3d48db0d1e93c4c41a882461b8939b9cc90645745d89fa0873739f812dd3b2cb3b0d4231814e40e53ab4eed8333d418a6e2e4bd3910148b610dec5f91961df1ad63f4661d533137a503d809ea1ad576faa3e91428c65209d182cc6b95b6d6ab6ed9d6ee915a992760e29a0c99c19b2caeefdfb87803d0f675c5c5362ca367a4aba4bf094dcd71e1a8dccca76dc7887476154e673551f25b0ca90d6dac8b3b3a2241bc601afeeb1564bde0432db19729998a7b3516e5e10cfb6f5d3882464ca4d5e3437ed70a65f60b3bc586e49ec9ffab1c61dd23ab03ad7806353066a816be6194ffda31c9e7cca085dd988092d72e5ae78befbb14a85179fac7bcd6e89628a8f70f586c1fedd81be34d8577a0f66fd7ab01a7b13c967620d98de736b8ff23d856daa26d5cd8576993ee02a5d694332c0464ed018ebffcd5c71bab5cada850ce8eafbb7002f5bc4cea23e7b1ba1ec10558de447c7b3e209b77f4df7b042804a07bb27c85d76aea591fa5693542c070de80e44d3577f12cabaed7074feeb57162ff80b61f86cce8f41d1d1250bc455070b09f6ea9d0c263b7b4824701480f4c1491babaea18cf8f1e56feb0b89f0a3956c6469bb963d63312431057093b0ea0240a36abc3b7ac160e644e826cceb62530a9b0a06469c7746a0a23c459a2fe75dd474e2cb1e9806afe872febf054e6f13c2c183761ccb890c6bb4d87abe597de1eafbb939073c28492a46f8028a010297e395c7449fd8a1e24322e605c1db6cda1581f2810cdb45c273189084b82e74b22860c0eaee51b7de26e99033f352aa09c093943b59237f1313ecc35b0d711509bbe9f939c4bd646deb7de8103eea9ea13a333abf3cfa6b46599e210f7ae33cb6bd378ffa4e11fb5bf9d2cdc2787cc34e6e088e010321c193ce46495009e88b780820f164a16c02e136911dadbc61b9f6859a7c53d0ea17b8f64b783f7f2f4f549775d3f16e21634dc6d54aef8d56517b2897d7a19b70dcef1af006df3365981d73068c81f18017f32fb9966599481496efd5f6caceef943b31c52750c46d9590d95cf2e038c790ce7a2960add7ab44804375f04ec6829f8cc63793dfe9fc48c7471079f81b932726509394fd3d46a52e9a8b742cb7f497adfb99bdc6bcaf7f4bdadded2a6d5958680406b3b00545e1812d78e03e20be42b471b1daba84587d574a3969926aa2e52f1a48ac53074b764648b4c71bd43430944679628463cd68398f700d874c14503b53756be451c8ba28485c9217b6f7b8baffda06ffead7174ab9d1d9ec4b10b78d99e742835796a522d6e2b5ddc5c7282757dd896c76698eafb952ae6ce5beb7900cc492b255c44faa7810d70d9490af794f52d0f03f3dbd54fb9a7b940f07f5e6d4dc61dba708c7fc9a92dfa798798ba9e92f9886bfeb6d659b11ddc1228c3e4b8dd804bffa089d648173dc286846679df30acb4b5b5f4fd11871e70f0446749e5d48d0c113a27e2e2a13e88e703764dfbdc2bd31e921e6a549c54afab53968ec3d856c5e4e6d029fbaf861bb21f84c3e7cab55370839d18ac24c475a9e833607fcd7e65c773ee9d64bea203ee9e8fd9d337f1cd28d5ca0d90b5d7e0f09806db08f6b1eb31ec543670475f46bb08df0781e7fe39e7cd4d5b0c442783a9a2d56da767c9685e27112a5493fda62b785757b465e6f396f74674d5b95a08c938cf694e66beed7d2f317a4c9d736cb54d7c221d61e8cb3d64dca3ab8cc453954fb40a01929d529edca1cecdd162f1c7bf0bba99ff85e2b309cf46a04fcc817eb9c4837927f95b54d2aa816ca698b04227e8593a6fed6a1f6f6d1eafe186b9e73f87e42e7997f264d97225165c3f76e929a3c562ec93ee2babe953ed8eebee05702bf1574b12597b72a86d5badef064879fa9d1b9aff5ab75e5c71d81d8bc404f2614085855d6ed87f58123897578474be98726192cb0eac3cb9195a54c7315e9c619d5c44c56b3f98671636c383416f73605d4ea7ca9fbeff8dd6998302ad0f2234535b55b975c5dd752c8a555d278b85b9e04e83b1db3bb2ae06f082f134d55216b5cacbf80444e1d0af84ac66f3a7041586ac1576e33598f01921e16d99afbf4249c3350f0ee1654de98bd37a61c243eb6a18a942db529e36af0db0ed68167a67490bd7d7d49e83341606d6e6fdd99b82e46747c2190d270719f81c5f5f8733646c246260f438a695aa3ab28df3e04bde4ec373171401dbd0546f4cb6fa8e9a4a8019aadc653d4e05e0b5b9a64417715dd87f6df9e7b3145f6659917c4fd52538d34c26ccdd816e54ebea09517712aa74cec68a2e3d759c6a69b5ccb4089ad1e0b988e916b2ce9f5c8918a60c4db2f208cda284b2a2def60024f3d88873191a88f6b71cea186a79c8c2af4e84692f619b17d9dc2f5f3dd20c7e35b5f32034d0f66bcbccefe2a177a60f31132d98c0899aa1ffff5ebf807546ff3104103077b1435fa6587bfe3e67ac02668804338968d999be8bc1466b29a928a7a52dad4e8332599d38879c0d7d202c248ebde96fab8b00efaf196c67263bb48188ad79a0320a896415e15b827a89969b4590d4dfa269b662bdc8f4633618f67b249f7e35a35884b131772d08025bfc32ab26861b907d0ea03ab1888555d5d6786d7231b8e4b60f8d6545b48220e65248576f11878efb2e87d7e04fc482f72e3db8a6c999068c13fb71a99d75eabadf7edd2d32e28607baf001a0aeec412fdd3575602c68d3feb4d743b90396705e37f38f44c43b80a3c5f488118859fab054745cfe5b0824821944b82fcf870fda6d93489ea9ca4220c24db2f4ad09c6080cb7b455f751232de0a48440d09983f4f4718b6169907979c9f282acf7177ab5b1f338fe1f2acd8d0bee4b4aad61d0340839a80ac2a197002879ef4db6e2b1e1b9c239e4f6c0f0abf1cc9b9b7bf3da7e078a21893c01eaaab236a7e8618ac146b4a68cd9d7e953c7ae07ee785d68a999e702565960d376692d9ea468556ad141229b1f3bc97926818c078901f73ecc578e93abed4c86ffc31393f53cc0880ded0c2865df897a56a98a5ab04736623957bf489fb174d9dd8cfcae17c2abc2a77d6914ac7983d50ec447b65e62ed38054d8e8242c31b40030f630098ce0a4e93536da9179c3f3ae0b34a0b02aad427a97ee60d8bdb7d92915d1019732a095d962b0ca56bdd15ba22611170ed44c880ea0170cd2bff0dff388a1fed467a92fd756aa5ee815922ad356f490910e8cc3b0f7d3934b5e28c09711b5151ae8329876670f3de6d7a3a298fd97b580ac8f693305afb21a3615114600b4e805a45a04b16aa53c2ca5d8a39fe6efb3d359d8436583cb94719be750ee2fb4bb29823b4f2184258c295614544f65808f096c8297d7cf45b274fc9b2b1bd63f8c3a95d84393f1d0784d18cacb59a7ddd2caf2764b675fba27290f4476224b64c2a5333198a4300ece8b3a59ae315469b23fd98dadcdceaaf38642d2076e9cd0bfacc515306f807819fb4790910e2cbef848448f24f63e9dd4a1b122cf65feecf152d5fde282ad6fcc6ea3f9cc23178baf85612020795e4b13a831d72bcd210b8ba3cf93029473ac297f0bac9eded0d873e4b9990973434f9132584a66edaf651512235fb1875370ca5a32a5bd9b7bec31dd138c44d8365186b9323afbba359550414a01e1cdb529426bfa0b6f7daaf3536e9402821faa80003b77416ea9a6b819e63ae427057d5741788bd6301b02d180083c7aa662200f5ebed14a486efae63c3de81572fe0d92a9cb2574396e4360c971ebd71aa7e50d1683bd899fb1f404497c2a97129ea9d7e0a2642dfa8e0bd232ffb6ca443dd7a9683a48b1031ca2f5a5acb4dbdd0e9a2b4e9add5ccfc0b17d94818273c8df11e825193fade364e0aec10f1ff91d57d03a52f8658a15df961c25648fd444bdf48a8f7bb382d9212c0c65d56bf9cdb61aab3bd86604c687fb682260dbc0ad2dc84bf018c016e86b7aa752edd697c022116713d6a6b61538c7e46f4d76c99c29313615ec18cd21f48d99d495db3d9ed09fe946d9604da21e23c994a0a875ad5e0d279c79210f7a7de5c9699fac4aebbd76d39b703eeec5dd5efc9ad6b9dc58936089ddca54e104339286d3ce8271828fbac20f6cf7afd3b72d9b194b7cbaf65f6612416117be492bf4aa88faf6ada56cf4b6462a020404547407be6d42856780a1b9cf46b5bc48122902880909bdcf45b204c083f3b03447c6e90d97fd241975566e9bf86b1cdd26ea9a3ae04d31a0b34aa3edc9e8d038437152214d195381173e79e4ccf7f8f0ce9801086724a1c927c20e4c8b576c49c2a7b7c3445bbf9ba8eac10e685cc3760d6819de43b7d1e20769772bcab9f557df96f28fd24409ac8c84d05c498eccc5eeacef24188409d380b772cd5c72f376c461032cf2852fb8ce2afb37567c059e5b004395ebb5d97fd310284078a978ee4be90254fd7003ee1e76e5257462cbb14a64dbca0b32cea078908d7da47588a40ffeb42af11a83a304608c0f7b6652440bd01316523feefceb460158cd9ba268dd8dbe860a0271f0176230f057767597e4197885ba907318ca202ba068027bc62b59f9f15613e38da74ccc71fc3eaee26f096d187c613068195ce6eb64176013f2d86b00c4b0b6a7c11b9a9e5930f71b09a368b8643583bba5181e0074b1ad465f9bc4cf37e222b940412b4e09e1f2172226fc5a6fcd6d50cbc9625e8b67146b202afec0132ac0070c005cf664081e860339f8f4d45ac3e630dda05560936e646673e652d08cecd8d18fc64dab0a4c136fb93594913ffcebba98ee1cdf7bc60ad175af0bc2fb1afe7314524bbb85f620dd101e9af765588b7b4bf51d0adbc658d54f46fc805767257f5e87d013112f0c6335605e9e763cd4745a1271b0e0b83902d5aaea6f8b46485d2e82042aa5312e04adcb3b3d2264ecc9571ce861da7668fe7cd43dabd7ba9e7194a4d5fa7c8d4db3d25c4dac4a1d4f419959186836075979eaf386ff6cb459cfd48fed171ae812b0ac3b38dc24dd8ca905cac1c600be717d4a0defa0a854f40cfaf8c3387ae7d29e5e2f0ad0fb347c2977b256d70861f505edae4adff37e07552d55fe87e9c240d82b96e114517ee4d9f17873795fa868db7592c5fb651d5d9971fc4e354dff969d6b05085f5d01fb4da1abb420ecad5ecb0e886e0ced1c9de8f3d5cfeb3b7af9258af054362d461a74fcfeb6dcf3a37b6e33b6df32f8317d50d8be8e1970818a6e41c8232b89e1c8f964c6c1da4c665a3e4e25a7af51e433c978573841bfa2c75c075e17dd1f43b2f0369249f3d3a46ff51051e8ce7da528b0fa98d16adc806dfa5fbf8ce659aab56fe6cfe0b9162ddd5874b6dcf6d658bd2a626379baeb7df80d765846fa16ad6aad0320540aace45334070c51cc8b3579598d4cd8cda2153bba51f56e3b1fe5e135c83ef70503c322756b9cad9d3cd28f1ecfc82279427579975e81128057097972bedda9f0240c97233631a23c50ce1a007c0d0d5898deb0daccf4e1518dfb9abba81bf71980d3c8ee365a5393fba1a90bf4e1b9c8558cfb51fccbe25837b06e44f5fc80ec90b9b14266098c7ddeed3d4e20a758198d6d46f603afebcbc561c130e416d5a588a7e6c1f17f89ed6e30538b7f8dbf4b3c75b8a3331425c4ca21e03fe8b57f3b4aa92a60de61ad089cb027ef19a211c720ec0e51743b1166e3d71bac08a9ffff2f0687e250c6a7e1db866f7c4ae8f29b87a03970caa520f0026a0320c6c687dd50c22a7a59cca13275852c3c78e77f3c381ba23fc92d36b262c6e8544f7c8ddad287ead156048967ee1f166f023defcd756681f7fcb24d4eb643a2e2f17a102392fc5f60fb4027805ab1631084cdcc28ed7790f87f6975e0f3e501901b0bec1778c88bf39588989014c5dda76c2163732e7e5703c9cb2c1a6144ffdac5dcbab80bdb82b7d583bf1e41653966b0ba3b4fec0e7df2ff08e3fa06fd9064bca0364263e075e1582741a5243bde786c9c32e9467b7d5d90b8653b8a2f248f30475856e28407dd3fbc4e1a84445a8f2da5e181796e1cc5c293aab60a6f8a8aba1f4e3aa24c5f9572e24e9b209ff761382e263047eba12532b9fdf7372d33e2f232c1a5916dc8217929dbf0118a9045596f79a8d47a7c2c62b459b91e8f67e9841b34a282ceb11e2c4b0549883b627c8526d9e0ebd7333ba70630bc0ec2478114b6ae893042dd42e56671155bb40d85d9d56f42caf27bd965c6a7a7948b39089dba8487d4d5fd30522dba6ba392964e3ffd5908862887763e3d310e6cab9bfedc8004098287bc96a116db16373002eb34484c166d8fe87e1a76783eb68e1e27508870ba38c974b57da968f0c4611f5d85d8014fd48594c8cd763ef2f721cfd2c738e828d41ff029e3591d7447e3125641db8ef8bfd6a173a56b73480cc950ef266a18933ecafc86915a7453ded09efd8a0cf4466101f1373f05d48eae3e7fc5c0f7f54a927cd0d253d91d7d3de7b0a70a3d307596c6e019dee8e5dde03c3e182460b5677f6f17c82f5e3eff38cb6d0006242ab8effe3fb27c9f76bbd78687b743b52e6f3330eddc81bc9006ca81fd640f149d73630af578694f4530833c2151522dcc186c53fc078846c3d9bc47682506f8285ba4551475921fd388b96291741970c34b8de4210202e40d2de4acb6e2892072b8962afddcb1a26cc8ccd3c993109e79a4dd747ca473b8b5ef93d9c2e71d29623b834ac945074acf118248e3ae7878a6c907054244ae66504bdf29bd5bd0389d20687264d19d4b36272ef7762c00c1ef7a32e2c5ed04a2cc5f2403ecaca764f20b3acfe8f25eb5153b880a03e07760f7fa30beca475843581b4878ac0412cd2038117f25a48c152e6d60ec16e4b1e9a45ad8e8e3b82f5b8c1a39efe704b0d1eddb6e2275a990aaccad0c509f3109e42ac49aeea6c2f6da02d2d0af6cfbe5598bc845982c2672fdd44b33d2e56ad676e704c02f756b09e8765bea42b924c14724484567b55f0db42ac20cb70a7f5201c14845a4a09941f48677e6c03699770f9a56ba72695089e432a6f232294dd8da6d34e394116a9a87f3b0902c78332af94398be8d356bbf35ccd5980848662b5d6361eef583b535da90cef6c07904ccfb5963aaa230ac30ad63441f60e807434497f991a7c93f06d50ec6a4340c6751b73eb5825bad02a954e44e1e2d424af928819ebbb590c6129ce35b3f1e908e2152f33a910ab63aef54d8da04a839995ef38893d2cf884539ec81f97b8a4dde1061a27f6d3fe41186d1b7af872c12d44f3639782d2b1053f6610064f838b3aeec585878f86323cac357c4aed054d87595c7734729a737b29b57940884ee839e984d612b659c05488f778fca3c918505d2d849c667471af03369ad9fa29e37bac4cc9caa18e749c62fcff22856945a74ef51356a41cf5d678a007044005d62f5368b55958b733e3fdde302ba699842b1c4ecc000036eda22174a8e0c6d3e7ef93663659b96e3ff8bdae47aa13067c29318b1e96a7fe3941869c17ce6662183b7b064bf261e1cea03e2a4643c993728a2606b5b5ae89e41d8cfbf26057a4078f8a5146978e658801b08814190cbce017d79beaeb71558231a72bde726fa592fb0828c01cb30faf88fe203495aa268503bc82576f76a27f8bc8c4125b4c6f6e5e7b6880d495481cc9454713e0833317fa07da9b5f8910f41db6952c25dfbf6b6b5ba252a2d999c51537d35a0d86b7688bb54dcb6f11eb755a5dce366113dfb2f6b56802b7a6d9f67ca319ea9de50c3fed513269b83fa067977adfd1e9d9ee07ad61b2ac1de64a39d7b6897ab55870cf982fe481dda6d6ef51a361df2e8f1d993980e4df93dbbb32248a8608e3e2b724093936f013edabb2e3374842b7cce9630e57c7e4dd8f4eba540bae99599ec8d23102894362bfb72533d8ce415901576346345d16ce4fbc5abc68f9d16251d5121431774d25824fde65f1ff4f1f83207d0045137070e0facc8e70070422369a3b72bbf486a9387375c5ef33f4cb6c658a04c3f2bd7eb1a3e6baed1cc37b9a67f38648f4fe365d23fb982027ab4202c3392d5459d7995264c2e9bb8e821a3e75e71390b6dc7c8d797819318cdf7b26405d1a327d80d4c289e56f830b28d4e303bcb019aeb0b3d69bfed58adcde8a2445dd5281b86af1b4bf70468eff528bf8815a8d07080a7e98d1b03da1b499573e0dbbd9846408654535657062e7a87a54773d5493fc50798acf2c566ab7a822dbfc1e535443cd1b634d0048829cf1a77421a26997ae062cd34de318ffa543528646d7732d4d5b7baf49306611cc619a146b04fb3b8f2a9aeab1194cc9631c04e45e37fda35cc2676ff5f29f07b492574ad7d53627132908ad83b3c5e9a08161950b1df9261d332dda2602cc68e0f5ee75bfa7e03bbef9edfb4945ca1f139df1bcb8affe8ae025da9267c0e9c176eefab67362ddfcd423a3986b5301c9a7c1c8c0dab93fdb15e562d343a7a9884a0a3378818b1aa1e4091a8175b420d8d4f052ae7f627490d2255c1481085ac9eecadbb49e00d828d6f93a98afa9695a30e60f35933c75920b37488dca376df4847cb8fc2e54a31894c820860c30b5e123b76670a37435e950f53312f089a8e9bd713f68f59fd1bf09202fb49c45d9da4aaa64967c28f1fd77b7f709f5a331b58823eb1613856fd8f92635135981830a287e8dbda3a0e0fc481c5bab1abf9cf630d6cbcac0c503df44603142ac81acd647784ae0e8fc97800ef04378bc9d7f2087f959ad4bbbeec65b8dfeab88f81dc77f09a2b62078e7baf4b6c7503925a7a077bb30d72f4baeff8225039c5333242e325e824f7192d4d132b596ab9e752b54153015d503be81810be498089612b6b2f45dc197ce0b46681496001336eaeb4a12d8b878dff9eb7bc48fab83460a65269134c7626506d8c446d8929ed704469875a3ac2342290f63639fec7a62d6fb75bf55e60a1a953e6f621e2da90cc5b9c4d84f36962d0d55d5bc123dbe5ec5f4fe7b6bf0d009028b3cf14e36c11bc5365391cb4ae548d5eb04fe371b972cfaefda96f5edfe0614c01533b76153118712c1c02c505008204a5be2aa438675d97f43384199517b1c08c7c9fdb2910fd030feb5538f538e5ba74b9bd017d889ed6d2a797be9c26d2be8caeba7a473006102de27e87755742ba34e445bca8675d210e67eddb3cefeed200b9e205679d36d8dcad70f09e678d8d1b3eb1059d12542f3aca300f384504458a881dd60b0a47515752c15e4dbeaf9ee27fab3b5c0db82f5c685e8f716fd7d8764164944340430fe3db1a5679e6ffea5a16dd9198461c5b96d19b63b5872275f4ffc15e1749d2dbc9a7650cdd5a0f7c8ec64b0049c681ebaec1141e49f4dbe82a18f70b3941c8962debd2756f92a6a0451a2bf7fbc01f32ed03d0823dffd4a61186628a4c3c7c482b18589ff65e4c449fa35c2a4b1ca8fee56192611094ae865f5f7fcfed3f89303386e8fd93eace625217b51a2023d5b7adf7cdf070e85438cd73fd75fa5b3da08aad945effdb645c797a0a8bfa828c9d658df2783a214597acebda3ffc07ee48d0ce1147d77540b557d9ada91ad8d94e46cc02a1c0ad27105e8f672ec15b8296051801f1918d0bd470625686e8e8a0abde8f6852b846ee8d9132b26bc94f4720c194e7ea4232048b0af18b8a920fde7b82869e2abcc7e14a9906530be1ef61132884bb159df019e66d83a0315ac715c7b3d794860a61d9c7bd224a2b14a6023f696afa30345aad2ce0a6ea6dbc142f34af1ffe7f783542851a28e8ecea10788831a0cb2c3d14d8bc214d92bee6e2a9e92c423d2974760d84a6872a9465d12b628f9bd8a6e777a7db6f509b3a08bb045e7482b7abe670d72eb2f7afe4207b5a3d488364ff7bb4266f8784ea41893553a4bf7d01e78c99ed9008e2c13bba42c46a7e617d78b12053d7783f0d175fd9103db06d0c6982b38893a20b72fd8ad8501eacb3d47be06fd7c3ad89a815992d00e64ed711951aeb852908aeb6fd379ea516872dd512384b1e773ef078e52e6d618beb202d437d2a46bcb78087f7a880b99e77a6efb26c0a69583abb8e1e09a5307ac037962ddf752407cacaf8f46b5a67faf9126bdbcb9b75abf854f1c89a2b27f2a3f133d4f8669ddf4fccb3bca9f1851c4ba9bb44fbda1d259c4d249801ce7bd26ba0ee2ad671e447c54651f39ab7eff4ef8696db334bce564bc273af0412bb4de547056326dff2037e1eca7abde039a51953948dd61d3d15925cd92f6b07d7c3f1d486f5657d5935e3d67403024ffdcf25da5c460fdadc980d8d6b931de623c4f8a3da5eb6af346193eb36573a3d8610c2522d330df02511710e52b1d9bdc9f2b156deca12b1bf754266caeac4f449ed965d9863558df43ce9ae65a44b19ca6e55f349bbb2dc3e429520ff5b2e817972470794f35c1aac8c118b37a694cfcc875b6d72225343799825d2f5c398b3256d82701d887c382cd237ac4f5673518fce465936744348ed39b73ab9e070ee8a442341e84020e2ed623b113c9aeae36ab11be96f8c8fcfd75382bb7f4727511596bc08c25814d22f2b894952489d08396b458f7884d6b3c0adb69856a6db0eecd04c8d09fd364f9ca724036995c16ba6830d6c13a480b30eb2118c66c019cfdc9dacce6bfd8215abe025733e43da802b9ffbd4f01b877791aba27da972be4bacacc64a1f45687be4af01b84bd4b83fe2ba1ea78e29d7683f6c777ab2543a73b3c9d16f6c63659179b74b1aa5a0f4447c683ba38f9fc112efaccde4835e5b92c2f7041fa82cd90b2c4932704b9aca734a3c947be4c7e6704639d4400aec2ccf5f1af0901b41a29e336afb37c53bf168774939ce51f32d4496bce1a32e612ab671eb947490c43fd05e42a787344b21af89babb705393c82748eaa0cfcf80bee498d275a1eaf1d647ca3b2923d76ea9276e8051bed8f5dbfc6b35765aac577dd9351d9d6ac1bb14496bd98091005b9a4737b213e347336413743f681f5043bb930ecc2a26183240f8da107e80979b59da4e05f090316d982815ed6151d7750490b85273187ec4e07eb221813a4f279a922d48a2a7da3540dd65bda3a8b5fb1f1741604e2335de285ac814c69c40b5373d92bc1babd3e4b2d32993f251c70b5a9300a33927335f482dd0e44d0d57704ebeb278f732ae8301073cb7d5e457f02a0cb03268de71d284b8c23fb96947469813bafdf6a64a9c40ef774e6c8cad52b19008f1207fc41bd10ad59c870fda8089299dd057fc6da34818e7a35b5a363e98528cf6ed82d9f729f9aee83c3ef763d85649d46019c4ca7dfb58d7824c2003f88ddb2bc5a40c4d78d86e68b675f4e569408bfab1e7ac8b8b888c623bc0438b3a3460aff12436d13888315f496fdb808e9dc00894f272f348ed6aa475f848c49850f932ef35fd8693816d950e6209bc04ce26762cf6747d0aee03770e386fa0189790a8295414c0b27695b70988a3c5ab6cacc458ca5a0f04836c5640d34c70cab34cb5c87df28579a0d5e2c72edbc092814bdbe902747ebe3ce36808d8f4dac96b1c82b85cdb8a7026fd3431bea9cd008f0261ee7f4179f4e69a399872837ab836a14e2dd45f5448d54800a4ae7c7f29722c1079db7e2e1c49756288a02302b43b8fd92d5671585ac1ea7491123742a2744a526c12c9a0b4c4a80f26342a3a6858b6f1bd3e68fc536bdf1f4bd96db032994eb76e71571e2d85af73b898478b82f9ab432732b0beebc0864ad8025ae33824d0dc002e158adef06fc38d79b01553be5a3903566029cf0beddb2248b11da40e66feb168e8e3e2a63ea033a75f3828a00780f008ac29b4942ded67224be5549cdce47d047c2ca6458af643332ef5e276a69cd38b8c50f8767c6e27d5f905db611e52def8da2a83989f5b8391fef61774b980ce82ee2fe0acdf24e4efb81f40b9c9abb0a2010e843101efc170f983286b3ec14a8ffb811a0ecc3771f600d8b08c098537d100fba66def19e7ee4d1c397a311977bf37e6cd2d47a8a2ee8c223879bcbbeab235bdb1e3b1cd59b70cedba4772a616934d48195a01c38f745d61f3ab31e60538937e65450150e9314e481b1f43b498cba1797f9793dc794a437500c3c44a8a4b59f9125a4d358afa304fc05b88ac31ed40b6eb68f0396b60cb7cd91013e0d537fb085a49bf1aa3b727239b3e2c1d74c0f52050ff066982d23d5ee6104e70b533047b685e8b1529a0f14dca0e68d24f784fcb2b71acc2d5871285623c829d0e939146b145e04908b904468a67c07a2f156e6b17bf531adc5777c4b91659e4ff45b9f2941cb41cd33553f29c4b65be9dc68d747467f2b5e39b9bec12dada05ec514255b4e9da31ac819d8d787c6cb9ca628d4081000bc6c71425b95570291eb32ef2cf62416bd1ce3666eb2ce54accd69f79d506cefbfe6feb5a1daa778da56ddfe4a383816b43b027464d7a28689fc4a6b35b36883d3f36d9c41f0177bdbfc8f258afe8da90f02d3b64feab43fdb2ba9128fd24721209e958be7b9c84dca08387c982723f93ed4a272f933823ae084f1b1399ff6271e0da6f5aa3f94bcfcf974e77d5683704888621ca6f29bda9c5913472f9aec2cae03cb4a3b4237f8648c2ff1c7ecd73627d7babf0062a684a09add047c0fe648d9c5618500d1816047168e055e8ac8c952c3544a462cc095b32fab07d939947a58fcb4ec7ba7b9b9b6113301bd2b409b71afa1ab9e31d22f84f8cb03badaa408e1d37032350094124e533de766622d7975a047fade6cb075db32979df905cef986cfcd6db823ac21dd4013cecfe088885390ff8acd18d76dec793b80db5f7779426127daed7b9330a8d49b52cc673adc284c5297f961c45ec7997ced2a397b2755290981104c8d50b2fea9a3036ac2b1c329feaf4c7f92f0bf3257e775c5c469cd9a43249421c9fd223996aeda09654045b885a512e86bd834b2947aef216b4d9dd5f8f2e9aa93947508e60df6a0bd8b3fa24a72ef783c9fde1c3d94de0101c75e0e73d8003d9beedfdf9f40375613180d77815950dd885c3475185e7a857c789f148944fafddb5a118163d221e87d7126dd03ad8fd56f9be90c536ebd52c0a7a31b6ee40a4f86bba46d0031989d0f1baccea4174fc3fa0d595e60d35a464e86c33c233e2d6def84fced7a00f59afe397cf4fb5b67c5abe68d5cac6809960b97b09c8b834f6672a66211dbdfc6fba08342453eca026455f904ad215d07d438652e18d1d19cb6b18c41c0f827f6d8656d3fb93c90b663eb2eac034923972f8842cb30e96c32842b3fbc1127930e1ba4322d5b6641f04d870286c76b360f9dd862e7900e9af235d4ade37c0970b88a23b56e27307b8bb2a4ffa4c19176581d39faa7d87711ff6b80e09f3bf3ea87d48e04b53d8f3b43b7e53d61f445f8c8a5a35472b84f6bb4f58f17d9832f5881bb44fc06156151e5c593be3d4363659fb6fbf3e4c91ac25524f486450a3937bc210c2043773131f81018dbc042f40be623192fbdd174369be2a6565a060dc98e2bfab26b59aff2e494777654015c3292653ecdcefbeeebd2ce9091a4f3d1da10f0a4061f81d721f6eca70a5be6546e4f745aeca090061792584915c6a075bbca14c3eb34d0fc2a7b7169b20199be10b242fd0d7923aa70e71fac754a42f279472760bd36dd0cf36f5ec685e7fc2970c275811a70cd05843f94fe21745dddbd54135144edf1793aa0ccaa0b0ef6abddbb4931fea8c194e50b47ff27ea8a290b5ef11227a6b15ae5eda11c4ab8c4f816d8929b8e7b13b0b96030942a12ba2f7b8708afb97e8ecba8f4ce66df1f862ceb86b3452f9b80eff581ee729f0f3122c6234075c6970270e2c367a79ef16ee66514c2a4f34605a624dbb40d446f2637f943a4acdf0154c162fa12b30e151f03fb1a1cf100052186f94ce8895acb28f67f5b579ce0ebd9a7ef27aacef364f8e3ddd3f50f7bd7524fde35baccac627d5f43e51bbebbc72e26a07e41b0526c028e1c9a945e340d05087ff0e4b0e465a99369d3fdb8b929e79d02fa34f316741a1610076d33212ba7d357d4b18f2895cb8c77c498fd4fc0b572115c859168fede213379aa8fa6914f3b1ae2d369a14743e277249611995296de206751b77cdf45f39bf85ab3e8c8afa602f159de8352188aba5378957d468315a2d2326daef83d8ac6b227f1e7a514488afbc6a9fdc2209bbf48970a404de3d803c65b11be96ab5a165183d05ed6477b3a0c633c3d6f0cb8eefb430fddb5b5be8cf887a26dd9b28564c3d95679aca03e3432ac26e287f80e870714c5946b05538b3cb43bba7b85c16bceb5430e81b7a04c1b1d95370f2c7c8c14976e5380b300451eee0dbce987b68ed96f2d13f2340f4e4e4cfac52987377b20e4e6cddf58c7975606b5222582ed6604b9856a48039bd643340f4bf1bf0fc805e8453a9eb7630d6cea1452d28536706d6fa3ec16617617991c86ca8ed7c475d33455fae4242b05b1b3576e6ec05ac512ca7d3f9c8d44376e909c734c25cd0e33f0f6b4857d404520248d5776148c65e35d717da1902d74727b3bee21ceba8d337d77738932865f1b851e810b91346f705880da6cac63183717a267ed144cdd3099c7c418ae92e8f4696704c2c9dcde5ffccc3118c21abe09e3a05e78b067430d4fcfca0f8b1ad0714e998c9ee20d33f96a2388b1df642aa602bc8900ba335e8810baab17060c1eace4bc5203672c257b9ae750008b707b0aa1a4f964d672fa5579479e939d2d5dad6a5dac6fca4bcbf7d5ebbe7489f3809131667b41c3472addfe766d83202ea29c1a949cf015ce50e27cf5c2ff1b8e2e066679905ac91164e3423d3fb7e05c64429e77e432db0f549acb99f91fb134b6edadad2aee9a61242235f0ef6adadd5d314b18e514083d6a589ca65cc89f505e44b480724d7659a87c95b03c62caba53f487b586e67ae1826a1cdd651ac785e4b38f8a0e042f103a9b7dbb0035626d5dec3ded04a4e2cc09e63b4b01aebe304e40d7b5eb31e5cba0193e74968099ace5808dfc457c6f404f270fdc4949b60daa7607ba1811abab1bb19fccdad61d489b66579793a74fa578ace75b083578277a1ae8766d41a5c508b0f1135fb97dff1d0826002393a7276b18cbc4b3c5671360ce0b89681684a4f5a2e56a4acd37836c06cfe8613b0694d2258f8ccee67796e76f49dd9da349b1c23a36f9438097c1e6415ea3ee8fd53158dad3b6d9757033abf2f3d1d78a4da4022643920c233711ff5378ac4a94eadcaf0416fdcca525391d0c64980508c4d1e655cc6200f89a884b3a25c0c05708a3e4a101205c4fd901c3e20a943071a6300bb2614be41a139d4ef1dfb37a2ec9dec3d7d9cbc911fa1e5310a47d23a841d02c8b99a923991c73fc0185d130a494748c64f2b5a4c07bcd06920eb40504588a8ee3e0da1b60a304b865ce77196dd506e32d532e22eac9acfd2d03d3106be7d65b5c935191815a301b0f27abbe4d05e3781e11bec29f37876e0081147ae092f4061191444bbf744f327c9dc05b2ff66487942b64d6b3c099334644a9a591fdd18aec8746435eeead0a54bb88e055f55e91ffdd9bc663ce0bc2937fb296034ebb959d6adcf9af94bbd2f49b842ba3c847c99532bf3a9339380e84839326d39d404f9c2994821eaf265185c1ac87d3dc04a7f851df4961e540330323987dd977d6b8d27c4065b61b3c078ec9ce3871fec02844ed00f5ad28c42f9cedecbe830ddd19e11a5c879b01eb0f8f80b60df25a7ac1ad14aef7e8809c4bfc190b715f94f14b0534cc2e4015ff6c322883cbdc5309e05d67dca4bc641c69725aa154892ff23b284040e623bba940a6a1ef1207b8b089fc699cb152b00bcce220464502cfa1dfb5a2f62e6f3960cdf349a13bf1fc1826b61cceefcc941c5a4865cefdfa6c91e5223308fa6a0aa6e7b13a0499a63edf5d9fff48fdeae83e38dcbf8295f613c162159f368340ca0fc2fd7776f7ad64eeafbd132bd3be1f1c30b5fbdc5f107f12fb0cff15b12c08621f457f938dc1e182f19f40ba9a4eb5530407e58dac27a237b259fad4ff070c8abf98a0fb107db6017e1da25a855c8867e80bae8d50e904d851a5d8e01d7902d8a67b978571705caa5e58db3037350906f96db7bb141354e29ed9a47ef5e59914dcbdc48fb74891a8642f25a55b5eda5818367aac2fdf9663ad1e3dbc0166b484c0cda581b243cc75131167f1afa9caaf6705a0868c13bb6bec7d56afd4e518f2f02b857a58d224fbe698be0e00bc178c1858e6bf5f0f7824fa013d5c8dd6f6e4147974902a533bdb93794d150e433084c4c8200555d96fe88f145c2cfaf16ba69cc534e86cc5a88f671851da7f6c11a02df6bca6e387cfc0e2f11eb72c7d94693a28d23250c45e4dfdbb2fa588519bc7afe60d454c6b545b1e97f2b1100f564fe0f220b8038a6569c69c5aa70db534088fa304a44a76eac1cbebecf7bca07d7b6667063b0ca36d225687581dfba677122a3c5f884c769ff3dabc132330e4a72ecf5331490ff08a59b7dd51cf2a9cf803a1a3dbff838f40451b243786661eb1630a60d0820cc2ac3eed5bce7dc72df2aa3214e71690b91445d8bb1634c0488a671e3669028efbe1eae52f7132bde29b16a020b79195c1fce36bed493e27cd8ef8af8f22bb61658f99887fa871c95c21caa2579479eae5fa9c9262d235a237da26bc63aa86edef59ab60ce98ae8d7a02e693970ca1cc6fa4372a59becc7ccca2a95e8f20a419899c8ccbb9c3e848f24178c15123b3e313e79d905a3cc9cc8a86bd4dba7286fb641c2f93706adb3b932443e32eff2cbed695beeb26d93101c53d5f49d7db8cc8d279ec08d0a5a2a09ad07fabb0122eb65f48da2571d83f86efa2c1c5bc51b04ae94b145f0a8ef19a3988638b938080e30cabe1b6b4c3454bc8632b9ba068a0bcfd20ce5b6d44c8b1e2e39cbe84792fd96c51cf45cf9855c847dc92ce9437ace596da3d8c878c8209ab965a1f6a5dd521ad468d0574c4ed74a5a15b9c6ba25fb622daab349daec0a1c4cdc731f502a2db08cf00d7c15736c4ea83b0747eae36789910c58519ad10374d82a502ea289a844791a26ddfab30d0b5f16c63fadbae2dbb2750d97e94ec0fc9da1c4096259d89429120e4da43e5a74fb3494778f457426428e73ab54f9e9ea939f8fdd3c58f7dbe5a57f7b0a45b7c9d87338b8ff67ce9977e2ec669f5502e77d1be30889a7976819c45c787b279b4dd96423b371599bd3fca280b3ad67f5b2d193de013287cade76d7414f4828ca6fa2506e6e8e9dab300207af0897b9db14608ae15fb02afb6562affab421bc5fb76688d21020cfc8c76b8e0b0b091ae71bfad482e455c13c532ac5414de6f408c56ff1118e89c14b3903a9fb6c43cbdd5b42e93e8f26795ea452c4afcae1f7129747619080aca70637e1423ab16cddf6e5f327241c6ca0722cf79f6cb81f118c3d8df4262d46483ba0467670d61ce2ccc4b0e86ed9096c18cc242cf70e1a662844f1563162948276d5e978c26491177b95f0705037779716f39bf4c05c607e369918d335787abb3bf315aa2bef815607065ba3456aa1d376f225fa7051e0fe7d9594d12f6ba56f7d8ea171f3c94aea21ebc42a1ed61052acf3f9209c00e4efbaaddac09ed9b8078d285c201b20f41aa2491b8b6b91c0b621fbc224284a9e7a541cc631ef067b71c141f6725e5060fe5a9ee5c8b98558fc3370ddac4c2337bd1290ab0acff7121da10fec3517500fba1449fc98bd4e9622aa45e8b81776895e0a8d0fcec22862a2c57ce98f6d3b7f4ad1ecabf9442d34f1a09b1b2786a50e886cb6b5525272de6e9ca8f415cac784fe5bfccfc90a4c459a96c9f5d2777f71b4c37dc902262798316169d443de8f0b598e5dc294d18896bf545636ec0f7d7d9362e015ef8ab54a5b0192000

@yrong yrong mentioned this pull request Sep 16, 2024
@yrong yrong merged commit 17afdaf into main Sep 20, 2024
3 checks passed
@yrong yrong deleted the ron/westend branch September 20, 2024 07:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants