diff --git a/src/services/pallets/PalletsOnGoingReferendaService.spec.ts b/src/services/pallets/PalletsOnGoingReferendaService.spec.ts index 42c7dc936..5f18a4ca1 100644 --- a/src/services/pallets/PalletsOnGoingReferendaService.spec.ts +++ b/src/services/pallets/PalletsOnGoingReferendaService.spec.ts @@ -18,8 +18,12 @@ import type { ApiPromise } from '@polkadot/api'; import type { ApiDecoration } from '@polkadot/api/types'; import type { Hash } from '@polkadot/types/interfaces'; +import { sanitizeNumbers } from '../../sanitize/sanitizeNumbers'; import { polkadotRegistryV9300 } from '../../test-helpers/registries'; -import { blockHash13641102, defaultMockApi } from '../test-helpers/mock'; +import { polkadotRegistryV1000001 } from '../../test-helpers/registries'; +import { blockHash13641102, blockHash21275366, defaultMockApi, mockBlock21275366 } from '../test-helpers/mock'; +import { referendaEntries } from '../test-helpers/mock/data/referendaEntries'; +import fetchOnGoingReferenda21275366Response from '../test-helpers/responses/pallets/fetchOnGoingReferenda21275366.json'; import { PalletsOnGoingReferendaService } from './PalletsOnGoingReferendaService'; const mockHistoricApi = { @@ -34,16 +38,47 @@ const mockApi = { /** * Mock PalletsOnGoingReferendaService instance. */ -const palletsOnGoingReferendaService = new PalletsOnGoingReferendaService(mockApi); +const palletsOnGoingReferendaService13641102 = new PalletsOnGoingReferendaService(mockApi); + +const referendaEntriesAt = () => Promise.resolve().then(() => referendaEntries()); + +const mockHistoricApi21275366 = { + registry: polkadotRegistryV1000001, + query: { + referenda: { + referendumInfoFor: { + entries: referendaEntriesAt, + }, + }, + }, +} as unknown as ApiDecoration<'promise'>; + +const getHeader = (_hash: Hash) => Promise.resolve().then(() => mockBlock21275366.header); + +const mockApi21275366 = { + rpc: { + chain: { + getHeader, + }, + }, + at: (_hash: Hash) => mockHistoricApi21275366, +} as unknown as ApiPromise; + +const palletsOnGoingReferendaService21275366 = new PalletsOnGoingReferendaService(mockApi21275366); describe('PalletOnGoingReferendaService', () => { describe('derivePalletOnGoingReferenda', () => { it('throws error for block 13641102', async () => { await expect( - palletsOnGoingReferendaService.derivePalletOnGoingReferenda(blockHash13641102), + palletsOnGoingReferendaService13641102.derivePalletOnGoingReferenda(blockHash13641102), ).rejects.toStrictEqual( new Error(`The runtime does not include the module 'api.query.referenda' at this block height.`), ); }); + it('works for block 21275366 (Polkadot) & returns 7 referendas, 2 of which are runtime upgrades', async () => { + expect( + sanitizeNumbers(await palletsOnGoingReferendaService21275366.derivePalletOnGoingReferenda(blockHash21275366)), + ).toStrictEqual(fetchOnGoingReferenda21275366Response); + }); }); }); diff --git a/src/services/test-helpers/mock/data/block21275366.json b/src/services/test-helpers/mock/data/block21275366.json new file mode 100644 index 000000000..eda297bf2 --- /dev/null +++ b/src/services/test-helpers/mock/data/block21275366.json @@ -0,0 +1,36 @@ +{ + "header": { + "parentHash": "0x4f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1c", + "number": 21275366, + "stateRoot": "0xed5121fc60679849529b0272c70d5b693df199429f04f399b3f72b49b2871d4a", + "extrinsicsRoot": "0x668324affb5f800baeabff6ddd8bc505ebcf31683ddcf014d61083a56f03be06", + "digest": { + "logs": [ + { + "PreRuntime": [ + 1111573061, + "0x01c100000077fc1211000000006ec701d3697043d9f3ab677cbfd9f5fbb5d977340ed898eecd5780b39719291de15162fa630ec5bc790a5ce4ea7de25a0c7a33eb000a35310e6e8d8a19078705e26fd878abe504e2d17868190e7282725ca5cd55af4d584e1ceb89e9477fe605" + ] + }, + { + "Consensus": [ + 1111573061, + "0x032f66f272ad4cfff73c03061b5b7ae131fd4b13a1b5ee4f208c2d76678fd57b28" + ] + }, + { + "Seal": [ + 1111573061, + "0xa2de04c97db911ba3a1a23d610b0fef3acbb4de513550b27cb1ea7422ee7150d752c51b63581d4f18f91ab01c1ea1f9fa19ff2e5c57fd4049ee6832247902f88" + ] + } + ] + } + }, + "extrinsics": [ + "0x280403000b1025fd2c9001", + "0xb6c70200043600a104ec556c8012a6980100000000008c9e87960dc3e1951a27dfd280ade0344f1847d4e31e7f5f90e74453e5f6e72522d6ed91c783c2eede3f2179b42f724c2a00c852a8a844c3f7c78e078d00488dec556c8012a698010001000000ba748cd23e34edfce994480c0c2828bff141220ca8f557b0896db2b88bf65637cbf3706f501ae6141bafb1dca324ae6f85a96d3c062dd376692f1196509c448cec556c8012a69801000200000030f7f5e30fcff1b2922012f741b0247c5a8462c7d45253a2510917bb9adc00264efde5e030b6cf454033a8aee2280df22d2ccc033a5184647b78a631cbb1f786ec0000000000000000030000005cb15daa3af72ffa0155cc80209532b4ceb3efb6cbb20f7d278f912c84fc5319b808126321608f222a3f7c6920e9c39250bbbdce4dadce5ec77739e1274f9187ec556c8012a6980100040000009e479c59aba79ad23f7ede3c13ad8f3a438a6e1764aebd9a642c151290a344334e61c5a8da686c8f8bead6fb36086b7b6d1663ae90a04f648b64b4004f779e82ec556c8012a698010005000000505e976914d1d160a5d7313565d6acb63a17c2eee32f8c1ae49e410b1d6c3b6e648d87ae09af2bd6b390607857a2b0c10ce2d698cc0b3c47c5159bb40e304d8dec556c8012a6980100060000000a77383a94a99ae959786dc7fa60928934a1a20a71138d41e0ee1ff33fcc45047d4c7eba7b7bf54be9174bdebe317a1f29feb6b4884163b7b1840cafd0e1ab84ec556c8012a698010007000000309aa387c78a9a69a5bec9456edcb2c7c03ab14b41e9cb8c5831523035268244c6e673e02506b1fc25bc9b0cd508df12acea33cae64e481471cbd3ac2489ef8aec556c8012a6980100080000003a0888e34aa4d6e6cbc9e5f967679f98e9b40c13020f3dd4468b8b1182a84e1918ed1eae0324c873f5775e60509b7e30a0ecd82718f2bd9969668976459f4489ec000000000000000009000000eac17dcbda72647e574dc8513922fd0a3f96df8d983320fd597bf7ff6a14dd027becb72dce3e112353ac46cbe7b1c3141c30251ebb92f20ca44077c0c09bd289ec00000000000000000a000000a2b19abea8d5bdff7a50989657f79a8d685b79ecc0b1a7163977d90617f2111531878da5d3aaf6838a88029e8222da1fedc95b7be0d2665d3954398f8163a486ec556c8012a69801000b0000002cf1f812305bfaa67c1812dfb2c703e8709451b3b0d82bf365514e83c3a6085dde0bac261f9ba2eaafdb25a08ebbee1d86842335666a860cd5acc1a606efc386ec556c8012a69801000c000000c09db27853eee6f2e730ead36c30e952c76e666830475c86364c78d52f4a383bcc1d4463802d1a2a96d7dd494d29447d6be98ff2cae86db1e9bdb4e997b79883ec556c8012a69801000d00000048b443ebf2b07d8490372616bef97b01ecff170c3c21c12690fb76958794c20f7412475d9c996f87c1d2a7e8b511661cab87927710476b8f4deadf89086a3a8eec556c8012a69801000e0000006cfc6543945ffb03dcf45f099e2528488efe6d074d40bed9a6215e4c59c00f3cc77becab716a29d615a5c36f0704984bc946f6921229474066c2a27030852c84ec556c8012a69801000f00000066679654c6f94b84c3535ddcbcf2bf7e5354c01177e0a6574583f03b7d5b3833e265ce61aa933e5a572244c7b069bc140fb057a111a7282bbb8af7ee45196880ec000080000400000010000000ba75818a09ec207f58a05cddf4130118ed830abb5ef678d33f5e85a1e28df34f559ed95db56cbed9a8d9a3ddbd5d245120961c096e73eefb4dd2b12902655986ec556c8012a698010011000000acfa94b199f00adb3ab9cfb331f3dcc4d7d8a6a5388544cca2b37ea229bda701dd6c7699b64a9b4d265c17b2fd8a97dea4cee52a3095fdb63ac4193c52256486ec556c8012a69801001200000074732f803e268d3607ef39e6da63ba1214da1aedd12b38a3575376e4e3ae4e6580049f6e0d09663f59cfc05db5353c174445e8e47daf6fd75387b6993058d789ec556c8012a698010013000000f488d129b79a6500b361f3af85171f18b70501c8aeab5d1af79a31b3f5c8e21984589629990fc816aafa81bc572905151044d298c59abc8bf6f84b0fe5bdf589ec556c8012a69801001400000006833eb3fcf47b975fa371d6c64c84a9dc439d5735e77fd0283c2ebb7f1d780df7fd3a6d6b2bc771294528ed686fdbdac682fde59a0d7cab421cfca5be080e86ec556c8012a698010015000000fa1a1b2efde37cff34236481a2770ddbfb9774aeaadef683cf41db2283d2fc18f5f4a3af88bffbe458a250849ea65e39459a219bf5389a495535394e09b6a18cec556c8012a6980100160000007c41cb1b6fd6174407798371e6334aad22adf70546eea709d722c1e4102a52102765b2590d0ae4ba29926a376cddb3b9d614ca73eea2532d436da2693964db86ec556c8012a6980100170000002af5dfce8275e29c2b5ad8167abb06ab8b9f9801553149084a680c36a83f6f6d9276c4654674cf1c24048993b76013e6b768abcdbdc08d2e42653d40f3cdb182ec556c8012a698010018000000949dbbbc829c3c1ba5b8283b77fcba6cbc210345303ee2eeb95869baaf36ae3c6c5dbbf3c2d02914f346e154f13133fc46ad22e8f22f2a90a7fc9d0f22431d81ec000000020000000019000000e27866bd0bc340a6b73dec705adb805f077e806f6e8248607369304b7fe02774e437b6b164cdde9f7945dc9cb5ce0012f79a7ed1be2da2acb5bc946e3cd90585ec556c8012a69801001a000000f860a95a43973aba6916d1d3b562ffa1d87ce2cfb58519bdb9543408f888b342b7f59caf8c8712a4988d8f8281bbb3ed1bb6ee3d5d30268f490cef49759b4e8cec556c8012a69801001b0000005e2d28c510f3a7a207d0a5659e73b8bb1a227b06603d487f63745df37457142b5da9603437fabfa58ced8121d165ba054b5325b50e43398f38692dd47b69f68dec556c8012a69801001c0000001c7aedfa6874e4c61c6e3cc51c30af73aba11cac7264a63a63b287ec5617436d339658923d87a2b78aec206e411f4776b0c705c70808b9cd2b51191e245faf85ec556c8012a69801001d0000003e8fcade1d62deb3c599f182025b32d9022b3db9c9b79bd00d4ec2cd5c9f70547f166970096874ff62641dc5c57326b8796518bb5d200f1f5f765ab37a86898fec556c8012a69801001e000000b4fc2e41d51aea5619861e354f2c7f58d62022c94c77821c689580688b0af9399e9538a44ba9a86874705c0ad3cfb2220b513e1ababbc2deb4959fa878fbc88dec556c8012a69801001f000000562b4f1273b604b792d8107ff63dd0689a2055e8cabaae0e332de9d0dbd2ec02d5b4f1dd6403601c791f2f25e50c5259daa16d1dcf983475a5ab72c89b9f2881ec556c8012a698010020000000eabe00d1da84151515855e458009b037c8cb69078fee236f821067ad7c5e345a66ea79374512d1543e924ee084ad06b89ed54a4ec2560534f2fb06b75553f68dec556c8012a69801002100000016213a7050ceeafa200249382d2ae37c6cf7602f0862ce581c692044538252461aba126f7b18eb3494d0ab56c46ce8a7d9199d1f6ab33fd28b3bf669fb394f87ec556c8012a6980100220000008853f61a6e07ceae35e094127bef55e1db90c2a732848a8d2bdf6bda31712e3edb3b548337f714b07b75044e9554b4273804f808719476947032cd68dac5e98fec556c8012a6980100230000004435c8b29a0d20d14c2f2e94fedddb7ecbe9be68bdbef08ae4eb6d42620a8d32edd4101b86976ff2abcdff08ea6e7451f63a9f2209c1e35e03e8917c4c1ed98eec556c8012a6980100240000005a3a9bd3253c3dd837f2758176608ea0e336f86b7bfab929f294a5b250ab9e3978adf6c758b38a38cebdeb86687089f4a7d1b1b9df6a5af05c5de7444255ea82ec00000010000000002500000084cced11e47786e153dd5aad83d4a915d80ba58b9a9c7b93460eba2131f581422bcb7e981231ba0b171bd533664896f25f9dc8314c16227854c0085f1154838eec556c8012a698010026000000cc69f3052d9c038f43da9149424761dc5c657259a6f2cd57e363fa149494d4115f702f99acb493990ecbad7cf9f3ae0b7a242b2526075788d82d38a6ba22c78eec556c8012a698010027000000fac4670acb5be4a23194c39abc053df1a520a691ca176ce71dd9fd31eb2ef852a313f710d81c071a3b055d85b5c5ec8c6ef8c709e1e6cf87d942c4332b6f4187ec556c8012a698010028000000e6762d764a736f6e6f0fbae050903b1905c0928b2b7105dcb97602889a97a55e3c2ea0d051a927d15c518c4697d67676cc6d34b885e969f8926e1eb6f96e8580ec556c8012a698010029000000c85b22f0944147cd2130773fea583753c0246fc0226072f64f371c729b14ec648f2a4c9016ab4ef7355798da94aa025248916d6808c1d2e22cff0eae27b48185ec556c8012a69801002a0000000e922c16840d568050487a0f257376fa13c7d5e238591722932a738ee880634025825c1d94b26a72694da21e3044a847b8f50439f9d216eb0547c7484efff784ec556c8012a69801002b00000050963b74e5029ff52d99cb643d4d65514c19525b152e1ecb09c1988080bad24a863a18128410bf4204f8192ce534b47966985aaadf88420f7fdc6e0be4e9b083ec556c8012a69801002c000000a826179513a6ce21df1b6291e762e5eef9f751621e416078d684fa0f5f14bc039668de4df359ba22a44b83698c003e399cfb0b428182375425dc9f1184116d80ec556c8012a69801002d00000054d7186c7b4951b4ecd142dedd4f841d3e4085a7ecb3b5b0e925c60f3fe3f3379d637420d23aa22afc7116699dedb90b7eb6609d9eee00e8accbfc7eb8f4b888ec556c8012a69801002e000000b474668f832309cb166c3188c240cc4d7c07c210ff6cee3caa58faf66a8ba349c94e642285863b248266c6c1dae8db31d4e694887790552ccf96c58029e67688ec556c8012a69801002f00000088b0801cfdca2eb008a0d4ddc101c8d8222fc390ac58fd63d6ac9883abe4dd3022bdeb9ea9c2c6cb7df39c1bfd74292f53ca853d227d5e5e7efd569fcaca1a88ec556c8012a698010030000000a8672bba45342110c872b482eda73605ad87a5b8bedb9a5b0e255fc72a32f24475a74234ce9561528889f51618d9fe37dd18b4681d1d00fac35bbdbc59155a80ec556c8012a698010031000000404c5ad1e2721f88b1fe073e0ec4ec25e586f27926071ede5053abc1101fbc4e428541ff66b17b5ab22969709080ad2fb22f8375a22a0904c1fcbf674bd4f981ec556c8012a69801003200000094fc6781adc87b6b7fbef364bbe13dd7ec9b0ce96e163bdbbd179fc94e94387230eccd29b819e4732217298db35adfad02a5a8bacac233e412083d705f275281ec556c8012a698010033000000fc4f7d4731d8990ac4d47676508c8b52f9addadaf1f4814b41b49a585105407f62f3352483053df4db665b0b99777b8fcc5a3a6ae21d20e18f3e46f03ea6908dec556c8012a698010034000000d64e0080b170654a5b11cbf95b726ab7cb18c14240958020731e3fa2302d0958609490622db8380d9e7f0c037904f5af4527143ea2f649d4993eb2ebc3870f87ec556c8012a698010035000000e6c80d886064977b8f98c7cfb71944607a7da10ab70400f46a6b4db2c59eef50c0dcecae14fe2490d9850a38e0bf7add0ea912e68361ecda68682b7590289b83ec556c8012a6980100360000005e5867266f8916aaf056584c3b8f7e17322f838826927839854653bb942542480240d03f1a36eddc1660239d503e56fac665d466a73f54bef4a437a5b16e8e8fec556c8012a6980100370000007600d79ebfebed8c8de6c10ea0aa22bea5dbc0ddaccfd61a944e5680077345119d53df2ecfb5bd621387dd83ec013734fa0018ac02caa012e803cec24b2bdd82ec556c8012a698010038000000a6fc6527422c012bc725bdc2f979131c0502fa431fca62688ba23d96b5ec202eb3b3f89e5f45eb9440d1f88668bf87718eb6c2aea4419722adc8178aa688678dec556c8012a6980100390000006ed7fd9e56ef425406a800a21eed3b84698bd14f7c9e622271ddf410025bb70ddf74b7295a8a4a7bc8c7d25b109c6212ec33a1b837093b1843df08d3e974da84ec556c8012a69801003a000000547373b92476c54d51d3c3ae7d6dba324559e49431a298e5a96308c6a558932e3a9646a68fee3b86a7e91ef52127f0c5885bdca0fdc26fa55492b1c274b2618aec556c8012a69801003b000000e662734487c321e72b4788cc6fc35a2818d94a64d080e5e6ff35e8d23a3f4c09523de0c6825c8e11225fa3efd891c2be29321ff441c7ee3c5f34de98e46c1285ec556c8012a69801003c0000005ce980f969b2a5ddd8159539b3c99f64527347036dfb029ef8bfff5add18bc2bce3fe78cb522aedb0352f47416b3587a5c568a6103c8c0f2e1898505d7236c89ec00000000000000003d000000307a33b4cc731fe81ed5f1829d6a361a40a218f4a4ce3616dc25d55175caac762de44edd60e4ec91cbaa4871bbc7bbb6810013e32f8068440099bca0baca7c84ec556c8012a69801003e00000036fada37bb3660add87ac45e00e4f8c92480601fc8f52f88b4154ab5c15d137b6914018b8234b4be553072c1c9ea8d22769c5b0c5b01a877fe0216d448ca7f8aec556c8012a69801003f000000b839fa6f7aa3d36eb3096bfce988135db975409cc46a0a8031153fc33ae9b2291b9273495eee951b11f3e92464f7e362a3e257564632bf395b35c54f9a8b9d83ec556c8012a6980100400000003afe218432bd336d5a3235e8d77473426f3bb7446a97dcdee47965bbb25ffd166595e22a20ad1c5f33c300a49eed5648c61883a2966769ba61a717ccd108c28eec556c8012a698010041000000b2dd2936f3ddedd1c482bcda7da5712b5f6bdc62960def6b9138c77456b6f2408217fdbed8e476c08cda45226a5f3cdb4ed522150889518e2b0aa6650de8b084ec556c8012a6980100420000003c1c6813283c01500d1f9369ab78c0416810966e73bfead38f3dac548fc69f0866bb27eb44588267c1d00686523dc7c8f40e842b0f743c524fbb36681e02fb8fec556c8012a698010043000000ba9a84a5898ce1966ee3eb42beca917573ed51db32701c6adb333a4401b4241cbea889df9392c2bfff11ee1af3447a0e23782809b8dd8d090251ef316b056c8dec556c8012a69801004400000068d91fe76ee57bf149afa3fb8eb035c9717251304a67943f59276857a9e76e76bfe09e2f191678a7cc518ba82e7d9a7d74fc6352f368f58805393152b9032686ec556c8012a69801004500000060dec3f403b1066ec26b16d5a7c9e5696e552f2ac0b5ad17b4153762171df02e71b35f69e557713b566cd5945f27e1489fda109c9f647ffae6780edf6d663e8cec556c8012a698010046000000d23ab88daf7cbf0b84e7265d5da4ce6e8ca81b9d81feaefebea82c70b301163ae55faf0d7e992a050d383aa4827cac3e1d8ccee232f492d3b84a430bf8d69b81ec556c8012a6980100470000007ca2d81f94ba9fb3c4e63cf4a9617c1e8fac97b07d1c548da7a4e908c377b01f92ce7d6de92a4d225e7fba1420aa9eac0109a5cab2b823f54248c5fe58c9de8cec556c8012a6980100480000006a7fade455039159cd871b9e9699d0c94c57c38066409dff45afdab0ab055f1b38a94c00bcc8b43d11f879df92551110c84f81d0fd624dd76506587579901d88ec556c8012a6980100490000000077b93e1b996c53aa992162b61a517e350e7b891e8597159442585327c8234dd7f0b6ab21cf28e6a41ddc73d992ccc0898f864eb9887f46a233919b3039208dec556c8012a69801004a000000120fb01dd17e53e719d68050857c3dcc5270eee5481f787a2deb17edd760270be53fed44a88fcdfbf8acb0be0a1959dff4004300e51c6bf9e1657f771636e384ec552c8012029801004b0000006052e3ee1405e494f0aa7068364373aae6f15d6f60b8dd596b95fe4c3e2a4c52b6ab7ce832f221ba387806be8f2555f7c0da7899e601381b2d3be5edd576ad83ec556c8012a69801004c000000ac185632a79eb76d9d4a8df552c645a690b6d619ae3a37a4fe775e4a1e01491bcd2209e7ceed84957d42b1aafdf6e97eca1b8c27dbfc63ed3dd8359259f16380ec556c8012a69801004d00000080a3e2addc42b0cd44937eafe8438bf9d70bf948b6eba254364822dc479c1675a616a0bf3762853ddf10020a46c403103248cc91b080155b9d5de7cada2d8984ec556c8012a69801004e0000002ccdf9b250824eb21406a9192f7fc5bf1e3d28c882a1e14e239928f6bf74be17b3aff0db05508d42632e6b64cfb3e548d8f1d62b442d055b8e2ea9ae9ecfda83ec556c8012a69801004f000000da4cb43c5aa12487e42823741c80990caa42a421e5c6158557660708c9fff45d4479d18bbfc6efe472bbb1a0a59ec1acddbecd43c1f71309783622839a8fb481ec556c8012a6980100500000002e76fde915a9d7f7f2002c55d0b2075c50265c97d782ad652feaae2efada1d21155328f5d7af9d9426287d35aa66237f82c83e3f65188c79c82de273065d598bec556c8010a6980100510000001a68f3d4ebd4dbfd63d14278f5929cab49aba2c024e1153d04b34768972cd04389fa8ca56cdc538dd8202b5021dcbbfdff2218aec5a0b4acbb9e95ea56fa678aec556c8012a698010052000000480769a9adec54765b3841188acca43c135174b84638afee417aba69d8096c5e5d661599b7e461aeeb19577f41356188c1c48af5ac6b1beabc5b0802e1075e8dec556c8012a69801005300000018f1213a1c83f8048aefe1c8e171e9d5206bc18681947c14dced265c50110e4c8987cbf83314ba934d468605af3b7f0396ea43fedbf81da627140673487c468fec556c8012a69801005400000046587aa39c78e198c68b19a8b93f1ebdf142b90d2bc1d04624d886fd0d626d6b9ec7874426452cfed810a964e3f97b3cf3102b27976489585486593e0e49db80ec556c8012a698010055000000e67f95ae3d1bae61943054169e3c2ca0a555ce08ef0cd275165baff0eee37f4ce09005f5cc1378991420226657a9cc9f07d7324ff446b043e14f703d7f89838aec00000000200000005600000074964375a3923048478eca3478e4e96f671ad10f9ae372fd58d4116d14ae196f07d941dac80f47ecf21cfe9dcf2cf94af266dd5cda5139c32e70bf901aab5882ec556c8012a698010057000000a4c3b843410371b00df05b2dc9cccbd1ea481533ca2669c5c3ef71a8d9df822be1613404f5dd3cb58bf8a05b8a44e142ab9965af001fbc903639a9b7f3b31088ec556c8012a698010058000000badded8dfa54bc6e4a713f942c8c8046e1ff0c42e4edede0a4906a25a9b97c6b5afd1029fbf4e71aecbfb2e50885f6a298e2995a58fb50a98297dfea26be7384ec556c8012a698010059000000cc31bcf5947ec02f4a1bc1140b7bb6960b933b038e30aba5b8a865b535276e34c52a8f054a6a32869b4b01db7f8757a00f11801d7ecef51adc0b0a226776ee8aec556c8012a69801005a000000cac4363041f766841e7adcf3243a231bfafa8b20994f2a67dda83e2f7db8b825af6314fa0361ef99a279f67e097ecf8da253d4aa86db942c3f196335cd95eb8aec556c8012a69801005b000000daab68983be96d6232d6400fc008d83c3c49b4732ce331ee485b9936ec0f33606af7b22fc74f2a5e0e6e66907cd27a8530c95e08e873b2ca92dd7db213b6d88dec556c8012a69801005c000000041e9bb331eb5e9d983f778cfe1fe697b0fc8eb0dee23ee88a238037911078218bb805333502832c8c2a05862bee932d314f3b8f1cb21510378a152ac888c684ec556c8012a69801005d00000080d45fdcf4ef9790aefa3dbca12788cc7c8eb2911d1c9a815cbb2fb59dbfa62e8a3fc1e3c32d967b946a7be3de1b652c2dc2b83c3a3285344cdb17bae2ea8084ec556c8012a69801005e00000094cd361758a2f3133d6d730f1c2333381bce497ea6f53dbb8e86e007c39ba2562efa10db46a15dd03e740023b9ea89223ef1843703bfa542ec0c92bda9b13d89ec556c8012a69801005f0000004c7b117cabae3283cfb07c9102cf9daff47b68f28b4879a222bb2356c858836ff8c142d1c5cffcd9d94ae060debe78f8d910c9810cd0e39650db7f1048aafd89ec556c8012a698010060000000aacb5fbb32e253b2f3641edaf35e53b0e58a75f4ae2fff653caf7754d3b8e341d920e54d2f309e378c490f8c3655aa2ca0972ced66231254817bbf07f1ea7482ec556c8012a698010061000000ee6c164fd3f218fe295b722d8e8bdd93707d3ae96d50da38291be3e0700591715113dc6982e2c43b93376cf26ca874d15942a64cc7378b6189826f926de50989ec0000000000000000620000000205fdb719c03a50d21fb64405100bc2d2e78cd8c0e9855b98335b06502ff0658a89e4eeb09166730a9e0f074d7ec2365bd483bb9fbc75c002ea5f000511c18aec556c8012a698010063000000a6a96d2cca74bfa2f8d26d42ffcdc413d5a5b324905fc246bf35442e8dd50f39f559f3e71caef9a8104380d08c46f5ad545af5e5a995f73e5ae36803f5a5fd8eec556c8012a698010064000000f0b5c3ec5d98860dc6570205f635a38c1d8ab584f2e39263beb65cf56d750132e08d42315ae35753f1746deb58c6a76513fe364a114dfad060b948a46d80bc8eec0000000000000000650000001294d7fff02b5a0217fda87ee279a191ed518a8f9d5d7f6f7c0443f76692ab11fb8ff88b47464c67d1e259908e77d7ef01bc3a1a9cf4012e6b898faf94fa6c8bec556c8012a698010066000000f27ac04d50000bc60155c9d3e773457542f4e0014c6ed33459e95f7268e96845f7f465f52df8c2ba36dc2e8b8b6c85d1bfd2bb64caf7f21cfbbc593c8680568dec556c8012a6980100670000004019bc7dad1a4956d49bb4f18c9a7cf6ce8a1ec75b2dd82df2abd53d49d3f16867bfdf92b48f519136972b5e89832e2754d36c40a939cdb6c0cc065a45197787ec556c8012a6980100680000009473f6bb64fecc14a2faa3f4e7ea1ec3749ac1f4eb3aa7ca5c30ab387afbaf3d7ab61190af4874d86c3d40dbd5f0cb351de3a4d9b1be99545716601dc94f4d84ec156c0002a69801006900000004c776340ba6a2a8cc35458eae8cf94b7b4662a8c7ec96f31afde10d01a9071e39530cf7eee40baf150d7ca8aece5ac374e1bee4d3f668d6b51ca309c654b188ec556c8012a69801006a00000084718fe1bf25b7f23bc7d0a37d1b3a8172d36dae87b667f21282a02941877f7cb627bb74f42d7b9db0c193d15b2ac3fb6a8d498b9501dd281d2a5d7b81a2618fec556c8012a69801006b0000008024597ecfd6eab9d62f3677603fa818e343413bb2ddb4f3341f587710565b37addeb6bfc20d7228f15f93949ff3965b6cf72e6e4dbe0c0895c0022cae80af88ec556c8012a69801006c000000d4e0ee2d385be12680541801c3a5dfd0293fc633a7906aea802c5d0a574e3f5abf83e2086783030caa481675be2478b46cde00f8425f2be397f4343575a2988eec556c8012a69801006d00000030fcd5d9c50dcf00690c89c7e22f68a28cc617228c9d4ceb74a52e2d47fcbd270ea33db5a8477edef51d8197eea3fdd1e12fd91db2bec9078bef9e8103aa158cec556c8012a69801006e0000006e17a83ef21bddda812c893289bf8b736ae19142f1318692e299e872f3d9895ea86125b2e0302fbf35f5363013fc6d7fbb9733a6062ae225213bf53bf08c6883ec556c8012a69801006f000000126c9ae45e523b06a56577e873648f4bb5d42124046618bf24c7e123ce29c01dc29e810e37e7d8aa3bd3e942209771127d33d2d7c521f814c80e44b24877d589ec556c8012a698010070000000e8461d04efb4eb68abef28a306811ccbd3157288853e8dccaf6dcccd9f32b8600b3c533606c615df2d2ad948bf20c4e28feee6ce8e93c04630180a25ede48987ec556c8012a698010071000000327cf949974cf039cf0956118816051174c41e267ce410765c5c5f1519afc044aae299c84f66d7a633e1c9ccdd2f891070199edffbb29af9f658893c69fcd983ec556c8012a69801007200000058d5d916924db59afb80e376017a1b9d30f4765eab92c769cca1f37efbd0002c7a0c5722bcd7679759b79dd092befbea3cd81827fbf98f8c7e083d024936b98aec556c8012a698010073000000b858a447367873b19ace76d5a06e5947bd10833ad1957ebe9a64b4d6ef85ad5e305408518edc5826c61a1d96f23328a57ce734e9550ae423ef09e27b63bb378dec556c8012a6980100740000000643f5362410e5edbbcbef88121534aaaf758d026fd1e0a68c5c4cd16a4bed178e457cb6e52ef79957de5acb837856139787377f7a43d66e9c6a6604f9e2d089ec556c8012a69801007500000068bf05215f3ca002a27c68db8963970b41c16c6674fec619ae52ae3efc74b4546d83da89355742b8684d21adf898562da96b9e41950cd746b6c5b6e92435a88bec556c8012a698010076000000fe0ede128b219edeadf2ca707024747a95ce189fc9390ae83c0541362d63dc7df18b0afdf0f4187e3e7531a9042df61f290facb344c075a83faeb02a876e3885ec556c8012a6980100770000005ca6b9b50158dc38796ac7b085dba952618f82396712cceb4472a57c79f66f6c5e855fc00a8aea4cd00abbe1a4a89fe2c59cc94cf73398de8ec94fd966198e88ec556c8012a6980100780000009660d1edbb84ae2bf8b10cbfb997025935f207d7cefb7a7c429db7a7c58c062f44050319c6333891e0acbc34ba010113357de0a5d0504d9f5f0f641257e71b8fec556c8012a698010079000000e43eb3527044654ffcdb962f1b9fc7c0ab886017b6e2860617d1f4e8f78d8d335a479e8117f18e3d801f8a40afc3e1877a626997c4bda3685da8e7a2cd9f178bec556c8012a69801007a0000009e2f7ec181ba8e8d6f3215ac33bff912ffc4245a072a3cb4b7dbac14069d7d3db62018d398c1e06b492942e153c2aa1ae676993953695ce6aa581ee1e29e1284ec556c8012a69801007b0000001c6897ceb32e9e5f014c056a0f4617209b2f5b809a8d8a1319fe20f8cfa3223d6d8577d6ae4126c21aaf214e1ad2b20c5feb96cbc66983a7b0ac5971e8b7898bec556c8012a69801007c000000c827bebfc15b85089cc7a8b4fc801a4d39af24176bfa4cacb1fc977913a97002d0ef71f238b5beda74779553bf7e8a219070d40906f4ff41ecd44fd2f195588fec556c8012a69801007d000000b85e8eafcc11675be669f38aebb703473d5417fe121ab1334009457eb6be7f1a70130ed080cccb74d3ab71331ea1bd0c47113dc8597c5867c147a707e27e048aec556c8012a69801007e0000001c0bdc0de079974037b4acfee9961c9d8bbdfb4c363bbeadb81c8bc2ed6ce14b8bb1a00cd585979b83b7a6255577fce7bb1ea921625afb913565fc34e9814586ec556c8012a69801007f0000009623b22f0d72811a1c3e880f28dbe05f45c9c449047e997c00d8c3084e84a8005cf6035e2f3d7b35a933e46f65fc40e2f0f9fca63a0279f6ac5a5872c591948dec556c8012a69801008000000088bf1117a90d3ddd5f4c6b3b302b26b15ee3f1098af1f11af1f220dc39004e364994efc918a5c771ec9e210ff4acd3c96af5b7562bebd137a3b786aef052a588ec556c8012a6980100810000003e86271b067e5279b81f6172e24f3cbe2dc2c095c48b0a85e78652d6b417176150b6e39f1a04e2a954543b7587b6e6a2c9fe5abf32bbad2443fc4b610449728cec556c8012a6980100820000003634195ba056e04af403ebd0bb6488224a30bb8d00c67361ecb982b83b83ef2b59cb4e054e2af969f3d991bf5a0cbd7fdb79093999636f04a06bc00b390cc28bec546c8012a6980100830000005000cff20e7e992eeb2ef37c461271fe67716ef380444e541cd05b44a41f901fcf3ff75448979854aed0266822ca123034b07c2f9efc7a6dccc3712849a58b88ec556c8012a69801008400000070522187e55f698db70b2d0c7a924025dfc02c8a0e7fe927083195e03cb1940b3bb592c4a4a533257e8bedbb916f569a7a3e75bf447b0f63b8fefa61e2a5d686ec556c8012a69801008500000036f894b3e0b2de973e49b32d9ed67ee4f158c48d7f4bf3097300237cdbb88d2df3a496411f02cc8025c314747a3cca31c62e2bb2a9e5a0d756b7a76d6580638bec556c8012a698010086000000582e0f49c0e24ceea097b436e89bfb303b33891cf0e9b087dc0bdeefa45f560175d925ff3e93a09d2cb0bb7bed789b4e926983e85f36560153f376347273d48eec556c8012a698010087000000b44ace5b3a84231835c445dd049b6f75be9ebfab08c2a8ff16db6dd18414902c98b875e49c55ad5167a84d24ec6f77a03b29a09a704112fd39c2edb454e74f8cec556c8012a698010088000000b890de70237e7244c3c0a2a522d6525b53bae4c05863415074b136b07f6a8838071459ab130fafbd3a36f73c3d9ef5eee1be372abf1bbf80324e78e5ffe5ad8eec556c8012a698010089000000ba591a364c1d47e0abd161248ecf2ea8d441daeda15b50203370e8a5638822396710b0a1981682fdd6e867cafeed53739e357efecd4ed15b067ac0812b90ae8dec556c8012a69801008a000000e6563b39d22399c925a2fcbb0c1ad7061fbb69753edb0df85f666e928bf0e90b2075f3462ab72ebe555aaa8bfd8e1a87f9f0b2258fb697de0ed14e202ca69d88ec556c8012a69801008b000000586d58459c2ae443b84b2c7724ae5d11e6a40f4b4203f45712ded749c53b4f313d6051cc848fe78c78c8096e4a974dd9ad061136f6a79b85d23b1ef2511d6e8eec556c8012a69801008c000000ea99e6b6de2ed29ea15ab3c594522c437c1081ec75abde6259e4eb5452b7e41759f9d1fc9325c626380866e4e20f0ba52828dffab464fac2e86f3d634ecc7a83ec00000000000001008d000000c647331c3f0d1192fe799bf66e83dfd48948391a82b19ab19cfd2dab0d131a604adb41095b5d5f102609810a5a0a3a0092721fb7e6b3d0350e3ee9e146cc9b8fec556c8012a69801008e00000050d61cfbd854d56f1de9af341a28445383338c0ef461767d1251897796eec57547ce453b68865e5ba7df213d26a7ff7ab9b3ea0f9dc1445a6bad382d6ee7f38aec556c8012a69801008f000000346f07b183033d5df1fff4916579794d033a87e08f37f7334d02619c55f16731aac32cc75a3dacffde26e9f28d0c805d28e526510ae824019fe9c1f9213c3e86ec556c8012a698010090000000ee02998d12b8b73d37bdcc0677ec15a8cfb6b6e0de15538e1e98b6ae03cb891dcd829ff1b7561e23dc9a8662c957abe88b6ab4b1627ca47f0f52f48050e22c8fec556c8012a69801009100000034596b2a22c74ded3a4830ffc9e7af635f42eb4ebd33d5b32a4074fec8498735c1bced843c1ec35558c95aeb21898983b90c4dfe5ea3e667f35edcf7e2417884ec556c8012a698010092000000d0c618a89e043b9bb41afbb3e2dd6465a65bb4a78247e0c5b19093e0b5a7ff63d8cc6bd1411c880ec0df7295a1abeeb97b41e47e5e88f6630e1b76e71b6fba81ec556c8012a698010093000000027eaee1857e128ad36312fe11ca6740eb362dc5322577baefa720f978d8500b2175c93c43a4ed8185a7ff56621c4d3450edfc9a384f93dc03c9d03a1d160482ec556c8012a698010094000000c60746b0a3179b77cdbf24f562bd06ea9aa3ce7bcbb225810a3aeddba71f0b45e9fdd551cd7ed64607ff2be04a0e58c3b703fe3b8095bfcdf0e0355273d65f89ec556c8012a69801009500000044f4dea112c05dfb34b780d96f5ec46638b9e6d7d5c10c6bee1e1d161b667d62a79ee4db81522b283927181eb7058f67176a4d133915300e2322390174c31086ec556c8012a698010096000000422704228662a1faad1873c39141d821b3f7bf9c7e312c604ad208e93c9147297286f0d3f912f1e3193c91717bda585c78d0148b0513466b7349d7884be39b82ec556c8012a698010097000000ce004c228ab20e64c7084acde5004dbdc2556c98c8984cafd426f485c0136602f8b0e668edcb2c85b597518d356a0a0b8afde2a631e0ecd1b0c5a0489be75185ec556c8012a69801009800000074f73bf7eba2349069e423fca84d1ddc28fc6d53cf982e7e901fb5fd12a9af3e2e642a0a6ae32ce9e6f2cbb4c0015704a1acd53a6c6a5406eeb8d38e9b514981ec556c8012a6980100990000009c90caae2251e2dae764c4ce2c63021414fdade67409a834ffcc5daf76d9c9122d940421d0df8c917e032278fb22a6cc1d5c0c7615f59f157706dcbcefaa9f8dec556c8012a69801009a00000072c6d6f5b76ff6547637ad1dc031c6e90f958a3c0050018bb2623df5eb27f33bde257a90a4d2af6df2b535a6370b64f82c52acf7c65a90d6fc6a0aa7dbd23f8cec556c8012a69801009b000000822ea988e949ee9016e36fad6f859c9307f05c07c39a036b440d3692637e31026a348c7783502ede6d0e4e561bfa3524e63e9b35a4f3dc70e210d2b1a329e18fec00000000000000009c00000028655ae69c769df807ee23b5bb682a0f6aa99ccaef7ec9ecd578d82ebfe5ed43b54af8173cd52bd8aa8e3738dc524b4ebcc1b284b071a5db52343b8d17e2a78dec556c8012a69801009d00000052b304039e20194e510de8db4403278249ce5fbf177a4fb4b60485b237d7b644a16e8cce92d73369ddc189c650d24638d30606994cb362b0782dbd905f6a3e88ec556c8012a69801009e00000094411b85dbbdbb4cff479c7f67496eabe832444236b856cbd1339e951b81624940da018816b0bacc074c7bb9f4de5296ebe67d00561132e34975a6dedc765c80ec556c8012a69801009f000000cc8244a4dceb06752a554896e6e7b0c9b20ffb9a8b2fde44b7fc2677f73c5f2b0d489d41375b01d0d75f5add0de4bd030a3201be390ac34298be30777b956582ec556c8012a6980100a000000044a5e0fbc51776a672272a02ecbd4ade6c920b88d0f781d4c8f7d2cf07af8909d1f992e7737732678371b444045868c900f992f97736cac6407c479fa0a7d883ec556c8012a6980100a1000000102aeaf28015e2f7677b9ab6569e4ba068957882cdea740756fb69aa256bcf3aeedc65c0ef9e04cde9ed560436f65bf69487b1eefcba66e35696a1d86e9fc487ec0000000000000000a2000000305079c877df919b59ee64262badef66f1915b8f603bf43d7738b639579ed922e422d8de0d5b38993a9153e75d55b20492d482df8e841d98bd30ea79b41ed18dec556c8012a6980100a3000000f243f73dcfd0cf6966b2897904be64a18c603e5944bd37cd9727ba1551717310a65e873bf227773ba53e99786d548841fd88be195f96ca2def64087ecb16cc84ec556c8012a6980100a4000000a4946d02625903771e2a20341ca3a2e1f406a84dedf08d4ff4e81adaa229bc30a0ecf8ab677708ea5a95cb856844250856366cea57cbe38ee074ec2e8cc4ce86ec556c8012a6980100a5000000fe9548a6ee6caf335710d50f76d49aebfba677396ed3617eb807c794279d732ea6537c9d8a5b4f24083874c29154e761995cdb24ab13b906ce155ae7e27fa08bec556c8012a6980100a6000000b4afc287c462d76c6e4e1e3b73fba985f623245af12aaa9e72707770519f3811211c8fdbaf6c3a5d50e13c0e106e0ed3bc595a499d0159a4e1917a704daae285ec0000000000000000a70000003a93db7648f9d42a4d0101540156665b5066e8c3599dd3710d75568ac8a6e252fa15d32b70ad000505fe4a796eb36509458d57249709fc0cb659da81d9709084ec556c8012a6980100a80000001e31b6759d458c790ca3d2a57f70808b95dea8657bf1b33325ce9a22b8ee004fcf2fa3d28e563fa2dfd02abd70269ef868e69a63615fc1d21008d975b5b3c18fec556c8012a6980100a9000000b469120d0e8efa256844d2f185b00aa6f51d1e3c188877d6307bdde5d8f754627d5f35b401fc1fe280aeadaf1a721b3234e74e31a1eb8a2875c3c7791a3a8b8aec556c8012a6980100aa0000001c3fd49abde465ae51c91fd7811e08005cf586fe65f26ba211403fef837ab91d64ed566722da7969a780634c087a1e60ac9be438d4ab54b51a1ab27369fc7c89ec556c8012a6980100ab00000080e9d9b08b8539268d06b16e4e25645e4161d4185dca791def3853d1c5c83f12e1bb258a66e7353cbb499960b9a2ea243c9c3a9ca163738ee772a48a5ece8a83ec556c8012a6980100ad000000c2fcd2e35c141da4b321f2a3f0ba7a5153f07c0e84c7ead532473709c86d7436a8a2075b7ec74c50dfa2f433f99726ce258cda23dc5aaa25caaa5ef928c5c684ec556c8012a6980100ae000000d891a78ad6c2fe842514174da5b179bc2e21141cccd88f73846d39699078a62c263b50a665a89a59cb523ed4146b7a1e7f583b40c541eeeda53af86915872e8eec556c8012a6980100af0000008e6598bbde0571aa7b6d948c1ff60f9af1db1b263c94ec720402e8bfaee3031d741a81ce322963f2fb7a5d9e918f497c25c79d4f516e8759efaed4fcf82c1a81ec556c8012a6980100b0000000fc7eed8aea85794ed29158fcaa2b9fbb39895afc3b619f2d5cefe4b2106985517b68964cf43e4a0a0ae769ff2d0b44ead86938059e2a7fcb602205aeae039184ec556c8010a6980100b100000074d503b1e90d0e1d49a2d99edd99a03a2ee02335a50b4d445889fa0105ce6d4d8dd477e31195e3b2772d3ed27280fd4f9caef4cef534dc242df7e15170dd0783ec556c8012a6980100b2000000d0a528408d90ecb8fdfa3320b949ca243990da9107895d5c5e8d87fc056ecc104ff64ed10b69366a60042559f5985c5fa8f19dff3be872a82a4bdc3b5440a683ec556c8012a6980100b3000000e870327524467aee11abd32bcafbc4a191278086efa5af4d29db5c3250752c7ab1f6561b4d1c4b14259639dc848e8ef7bdb62f0f31a4f234607b058a1d42b28aec0000000000000000b4000000042d55a68d2fd1cb722260f7ddd81c2f8998a3d42f0b330d1b40262ee661bf52d30fc7a957e3803463f3a417909953cd326bbf07ccc2f3f2f404e90afa1c6b8cec556c8012a6980100b5000000f4adf981df3848addd64f52ddae789b2eae03497afcffdd92b9e477db5c236017df6a82f4dd5f71a3d19ccd119f1796d4efa02ad678e8271b0adf9ffab624b83ec0000000000000000b6000000fa5a2e66cc1491f76c43792b388d49aed7363335316decd8222613546100fc2e54a9f0a4ed8702c08bffa5a6d2fdea48ee096b73c1dda006713b0c73e7f86d89ec45240010a6180100b700000050a3e5fd8605c82aa0ce34ddb8f277ca3cf09f844f0ad2b3a34fb40184f801118cefb2e87cedec36af125b4bea9b5da58050a05b93c8306d305deee42674e884ec556c8012a6980100b8000000fc2bf4274e5da135d5c4d30d3ca551016ce4edff168f40afc67cc2dbc8358b7d16176531f75c08e8ba1cbb556a9abc8d6505f5f5977d249dc392be254637b089ec556c8012a6980100b90000002e6f6c885152a725b21e6e55ed1f68aa813b1601cd4350b957571818e1f4cb5ff5285a46e0d01a85f383a4efb6308d97fa5e6c2f6d9f4ef8df3cfad7da610086ec556c8012a6980100ba0000004c802684eef48bab6eedc97e6c4ab33a20779c6980727b0cc89877958dd8d94707ba3dde2e808529b201479efaf493223e5fc8fa5c864bf9077558025e125180ec556c8012a6980100bb0000002e0e4868f7ed176108cb4d0dee93673b3f81689f063110d53cd282cec9d4092278d5cee64a909bb19dca2499a4d2b024a687845f34e5bb3b4e71be0792fee480ec556c8012a6980100bc000000fcf46c13c5c2c9e19382ac3b9015b458de28d31fd5fbef69f22211390e3d61202c0c470445e104f484f29ab4a5d5d899f0e3ffeafee350d6c69bf06f1b615488ec556c8012a6980100bd000000a8af0d475dbfd4c4d10d00418ca7aaf8b2c876674f31f0b6a5dc2cafbe0f4d3ecbe16121bbbd1d03c47b770eccbb98d8f7d7db69823c585ae0b4786e9e264d8eec556c8012a6980100be000000f0a96424b41946c5c3ea9396ac50ebc548f8695490a0ff516712a28cb3401f60df0e191017fab71a2f96568be11be7275b0a24b4f4f6991ab495582e547fe08cec556c8012a6980100bf000000b265b07886b52375d0b3a5d4ab92b0e0f83772d243c3f11774266542636f176c4c0dbe7d2af5cfe0221ec8f58b483cc85a82f8a00ac48785a4498fd20279778aec556c8012a6980100c000000028fe5e2de775aca039564e231c79869395e5e5c1d83986e5271e12befbe31c17ad8c7c79fdf55cd1420671feed992799262e4f77a6462e4de942b467b55c2a89ec556c8012a6980100c1000000c2f1f228f349ffee43c83ba80ca6b723e1b74f2434986a0d94d9ac6b89e2c762a7e151cf2f0cc0482831fdd47a27be92372142e961b64084a5445cbb83d2b88dec556c8012a6980100c2000000e4657a7d4a63f1788897940347ed2f7919559ede6b4906da8f7ea5b20e142b75b45108664b134d4b07cdc214c356a31010f7ac98e583aebfa70a26c208f34282ec556c8012a6980100c30000003a4050f20abb5fb0facf9956cc0da07a3bc4584749515c930e8899d4098f71392e59b07f93f84c0ff46dbd154df9c22c019439759806c4b7b03dd090ae13258aec556c8012a6980100c4000000485a2bbcbba6a0372cd1ce33ce8ecffe4216011909c694f16187150a5127df4ebc5cd251df7ce6ebc8dd27636dd8b781f9c49a7e87e776777e1a2cb353349d8cec556c8012a6980100c50000002445343f4cb6acf568354ac8b18f6bf49ef0c0ffc210a953e0583e10b15ec748d08e28d1f8386d61ff609fb87f54a654fd9ef0aeb3f1c91d7b6fbf9a8f485f88ec556c8012a6980100c600000096b7eb3f1ba90df96fd2e494ac296ee86499dee61caee652cdc6285f2f3de37d4496b0b1a67e681d01e197f47b4c278ce8da26f7f0c86a92a57997b471db6f82ec556c8012a6980100c7000000c8f5710058a28e4d6a2826e6fa2cce30cc37c85154ccf88e4a0f967ef959786b9e58089d2d243acdcfc26317a0d3073d550d3a9624500e4b5a93e7caee91d98fec556c8012a6980100c80000009a878075c1f33c1ca11a2127cf9a1d8215a19ad453214e11dcc5d1ebf595850b1bce6b87b58f3e219aab1d80a1fc1af51b5c33febe0d14aa89bc5d0c89d37d8cec556c8012a6980100c9000000f46fa16895d65ed2cffad8dd4c97e6425ba62f05794b6a29292918adc28b2244f4d0a3a7b84e32f1935839959ca0180f69156c0929106f377c670334ae805083ec0408000004000000ca000000aeb7a28838bf77c58ffee9fe08146595dab699ccad14d19c7c4c713672fec03c57e7bb03c3fddd38401a62971de9a1df84c17eec3ff7f601eab22318b7642583ec556c8012a6980100cb000000586023f1e051daaa23c1dc3cfed0f5ede4f9343227767114b4359f31d04d4f0ef28cf6783c55a84fa7c4baf307fac91842634c0a304e26e5b836fb319829ea87ec556c8012a6980100cc0000005e201b57a470a46c9aacf1137a54b8401a58b469570b95486ba567e1ed837a132e80c843dace01a00c5b6b564df454247f819cd77e5538a099a40feb04370883ec556c8012a6980100cd0000000e5b5842fdcb4e6c100740614824358686a91fa7a9ffb4cea719dd8ea70ea71c8eee997b9d6a3c299502fcdb6d6f526766bcbc116005ed661c1dc0fddcda5584ec556c8012a6980100ce000000d4e1a63dda9682d22b2b48dc55d3227d0439d2865de020ecc6501231a300d960112076349a4c966dc46a50e7fa1fd471d514cba3178ff5a61917cb424d91a88fec556c8012a6980100cf000000c211b2c9191f5694d498116d7a08183c77108bd04bbf02ba1bd03069bbf0db32d8c673d7ce7d66c8eff49d77556c4d7627b358e2c2abee7b3a5fa321759f0884ec556c8012a6980100d000000030b801bfe112a7e65205979f90c98b07b819f12f667ad73ae67a125cbb52542154fa77dcb0d179e4c19ff389298a9c0c3b803e0f7c0b191b8aaf48ee872e088dec556c8012a6980100d10000006209ee378bac7249c28bd39896c8a8c2169fc51fb16f4419bd91a6671cb66521eff9fe041f71e4149051982cb3d797bb1f9623797824a87e6e311c48e4323e8aec556c8012a6980100d200000034997d734aef652654f325877dadeab8467a2d8b8850d6b143a16d9f52620e7fa55626662adab289f407521372871dcb056fbcbd64757fbe947cdce9da27d986ec556c8012a6980100d30000009621af02611e398c8f2778b52e9484f8bb31b1df724ed5427265b0ea5cf4846ab7973382722415724814b4a5cc860b6bd8dcefa03597a03626ed65ba27dc5d8fec556c8012a6980100d4000000e82a1f0efa1620cf2ecb156a19f66ac3d0b522db852f537db136c101a0735d3e4968e8f00e28e0f189c1bffe9040f8211ce093643e3df10e4c0584b5ab18638fec556c8012a6980100d5000000326380959b3ed506bbd766dd9500ec45d436dbdde9acb3f076dcbab0c5a6a92ff98465e0f8f3eac43635f82bcd7a80242e0aac5a60d556c37cd6834590c5c683ec1000000000000000d6000000625de29b89aa7781c78936086d5677c4fac72845d0a6383e168849939d6a551ef4a8d88fd3c2576ef1bfb592abfe475c80bd276563fd3f26f71e2df8a41df783ec556c8012a6980100d7000000f0f2a5984961a8d2105c2f90c6dd602c8508ec4033a6635e3a3dc8d6e124d40220bfeba8bd714a42fec5c22d781b0195851165879af3558f5d43e7fd1dc16188ec556c8012a6980100d800000056e85eff81dd3edd31674c399f000942cd4e2c3ff04d1be1e3387828b36cda155d8067ed8cc47e32637a6321f23d4eebb513ce4607b97b3036706c2cccba2e80ec556c8012a6980100d9000000f246aa5fac9cc0a9047731cdbde737db2859bf054a849076b8c5a1843dc93a0ac88040f1cb8c6c7bfc207d7912bf2718e74b405d3fe0292cd709fe3429868988ec556c8012a6980100da000000347f01e1254691664b2f3c4b44550df74d404e7c4b105f40f6a25009b69e7807e65556ca8978f39065d3d4075c2617df565bdb8137dd1c615a7783bf59775b8bec556c8012a6980100db000000749adb05d6f97c8225e7f9a419cf743c53a8c5575a609d1e9c747f7d81fe7a0322199cecc79f2f795e58b7e482fdf40540da9cf7dafbb8532cbbf0b276d5d68aec556c8012a6980100dc0000005409e183fbb4a4cd3ffb8fcdaf6bcb5b8020da621f51eb2f83ffb5d787bdbd68a701a5975c5f6662eee8e48b63424cae78ed895d960dbf55e9052b722d0cc081ec556c8012a6980100dd000000da35d7fa09f826c6cb6fcf81a7fd66ccba439fa87864364c0a803f067e390029f9d94c13f5470232a5d704de9b90218683e7bb3e1f38f319a432cf92e8983c82ec556c8012a6980100de000000967cdb541fcee4e42d496d5afad90995c21f1b3560b3263e4dedadd05ba5e90f0e9b546ac522e2f8d6d061b355f7bc15c8a199b5196e8df4b6b86b3e18255687ec156c8012a6980100df000000c0d52e3e9a76f501e5f6961563db5ada8630a57d321432a2fb9eda03695cd378b1b919cfb31968f3c3524cc437048a8c7607eb76fe98fa352d09ba93ea316786ec556c8012a6980100e00000002851367be9e9f91700f086966e6ca5de37e1b670ffe8e48cefaa23beb6116375d13909ce992e0b203fd0a882081cfe16c4c6cbeb3a0f02ac44500f60e725aa8dec556c8012a6980100e1000000baa10df3fa47b68d52069fc03a2ed453438d2a202d1246eb55bc784645a79b2077340fd799fbc0f27fa7913e0e84d82bd3d321efee4f43c1d71591467176b28dec556c8012a6980100e20000006e51bb0d5a06173a55a590a674530710bc4568e2492664f72f9ab7cb749da8561c9e67d18cd7ee64623cfdb909a7a165ba3a6acff1e30f22358a2615e9966f80ec556c8012a6980100e30000007e18dc4f74bfc2c2a94069295aa88efbc10fdf75a27699bad120028644e3ed30479a5346d16c5ab5d0cac04129d0efd65e7bbb6ae575032c8558a9460a0c0987ec556c8012a6980100e40000000e2bc4d6e089464d7b631cf303b4fb263a4da9355093f4e874b7ad0f6f539f0b510403f6c3d41cc5c35f83686994dd30088d8b15d7da25243a1519fa5f192c82ec556c8012a6980100e500000060cabc0a7fd7b88997d0b670710d9eae03dad770e0109ce1aee6a13aa6feb25415a4d19c8fbe8b32808e02a5599a4e6c59002fd55c0113b05f7905964802e28fec556c8012a6980100e6000000202f7d8e94dacc9b17f33b25aa614d567f716f3d84a8128bb10c4503e255a220fd45bcd0d4686e9f964fe4ce565b7082bc1bc97c6332c78ee0acae0604192f86ec556c8012a6980100e700000052c5242152f6a0e0d3a09d7c3d0c9dbf1e61c592d1912b1ca2b29f0b1b3839283c4b6ec034adb606e7dd4e3a3e154eaf2beabecfe22376882108655b9a9d3a8bec556c8012a6980100e80000005a6ace12da2bde72080f1bf452415d780277a48a24442c9dfc0f3e82c441175dd884c21abb14ec66a476c16324ba67c2516f699818d592c9bfb78237e98e0d8eec556c8012a6980100e900000098f1730434380c62c478e1faf940af08b7b93ac7fe380524b917170f87773e01a25ce5e943a663c79d7cbeb6973dbbd2d6bb7dcca0be1f50ffd9378cdc627887ec556c8012a6980100ea0000009c4085de57f53c16010ebf398f11fea94b6e95b52421916a0df54013ab71fd4a538f832f7093711190bac86074e57d0c29ad9640238f2f46675d91e815fdfc8eec0000000000000000eb0000001073e17b0aa904aaa0e41779a598f8c39d8fb9d76d4ceab971f1efd483123a1ec5d657032c9d1c1d84fc9fa64b20eb6d061b038d1f847dde8ab5920048250984ec556c8012a6980100ec000000d47f6366d558231ab1c9607acd1c6e176b19e9ed991187b5429091e27ed8c059bb50a2156ebd054cd24a3a1747e7c86ef93a0d8ded095b12d9dee10149d14188ec556c8012a6980100ed000000fc4704e9382a49ea7f70d878f9eff6975bba85d64488c74d25d784ad4327a574b6064e9e03038ce570ba52413d571feb982cf29040943b5e5306a2f79196618fec556c8012a6980100ee000000be91a0bf5379db3dd6c1dc4f363472f45c3717e71cd3d9005bc35a4d69303a21718bc6e41c4366f8df2948a288fffddc03c216c91f58b791fa7f562499286884ec556c8012a6980100ef0000007e0293308baa2ed25b42932f0595da46978bcd65fe05c8744dd624d637755e43de8d8652561e4445096bc5d7f2cbb0d53cb588769585bce3c6a6179fd1757987ec556c8012a6980100f00000005855c610b18834c31cbac77f6567b74d64d3fff812086f118841309053725a20d59e39e8cceb6d8a9d58d10922093a23eb31329c798fc0e3987dc14cf1c5568dec556c8012a6980100f10000003cf7af0ca5a8b59544456d8137bf4465dcd2369a064209bdde04939650e1f3164521bc9bd9efae5ef6a42d3a563fdd99ef62fd2190d14b5212c90980044ea686ec546c8012a6980100f20000001c8c01f8d63c18435929b76fe934c4bcc1bc747bbc3f4f05ecef7cc6b287324446a865e135119fbaa971d1e04577b9ec0ad6305ec249ab9aac02ca632c47e088ec556c8012a6980100f3000000ec7edf998c35b2a6b1e5edaf04be8ab360474d239801f5fc4817258a953da40bedb744b33d2d239c2d30b9be2af37622de189d3d4f1ffe2e1c98dfc767cd1c81ec556c8012a6980100f400000028a73e1f15c050895ededd1f318fbd02af7d1da1c5a84af35a10d77fd874277836d14bb5da22e569aa73cf45963c638ef616e3f4761f6ece706402cab2418384ec556c8012a6980100f5000000260fc12b69e80893fb4a24a41d33ed491b638788ae44d3ca7b5d8f6df50fdc72c6f5100e44ade80712e8ad1dc1e81bacf26e596b747c97493793667bba01818aec556c8012a6980100f6000000e29e5a17f23ff19122457eacb91fff2a640f97306e41b1ad2f3332d4e037143e386af588d74cc1399866f74ac783b23a50a4a7c64e2d33283463fe097249ee89ec556c8012a6980100f7000000fa2f70f0cce8016f764d7671de014959eb1ac4735a45573ddbe077bb3c32d01d2d5d882f513f48d592ac080c7903de256f677f065880ead8ced316bcf21c2c8dec556c8012a6980100f8000000a41a2c3d7c5a8e2826759c59aab3568b0219a8c15f9a2f692400330c80b64e10166cf0c82ec76203de001ae75a38a49e83d8fa72d4021b22885acc3dbfc57c8dec556c8012a6980100f900000056b3bb11efd6df0dc4a2e73c622b61b2899d3152dc9f25d21b86f8df5c426c399f4fcef4582a62a8dba2b23fb9ec4db87ee8ab8ca74a96818041610a1024128cec556c8012a6980100fa000000f20cf57ba44aa92d509a344de21e00be211cc8e485414f7a87bd8f13518991656cf5edfc4b8bd17608a24018f576a76f4e1e3485dfb1c5f4351bd86d85cab089ec556c8012a6980100fb00000034c18dc88b4c06a5e2244d4b914dcc11e789159ec8a9078209bec008028bff7158b44623227f3e88295851055cb7a28fad44835bf4c5c53502a88353a3172f88ec556c8012a6980100fc00000076452e9263cdbda0eab6e8e31016b86e2431549a18fdf6bca53cf2578c562c5895b74a86c91db7aebc4cad0ea8558db6976f61f91a166de956ba7b3a151a8a8bec556c8012a6980100fd000000fa3411f2d0fd8df83ada4ac7ba6599c5b65d1b7e50a18aa7394c0ae7f4471c4aed1537f32227c2ff93fcb49772a23295addc0d70ad6e21ca16533ec5908ca085ec556c8010a6980100fe000000f6038e2c8e36b4b26c8906eb40b6107da1e9d39784ad976d24c384f41c314c074a13d9d00b7b158b00fe70644d11f88ba34a04dd1251ce738b3a2683b8c03f8cec556c8012a6980100ff000000ecca55697bd62a33a203a630e3cbb62e58118f871375fd51b5f09a54f7a82947fcf52ae426905cb6c1676f31dfeab479e3aea9ace41662460c345bd0e5168f86ec546c8012a698010000010000284800e8f4b123bb986a3bb9fbdf3436b7c28172c7a5c22fcd862a6fdb8b2633b3879dad494e0cc1013f39c87c3e706864d33686d00a5fa8d4277036dc76788aec556c8012a69801000101000048710b35c95e7fa375fcf886351aac6b3b3f6a4c2358533a5bbef6b8ecb3623674851035fb4ce069b30debceed3109d8d3034705351b6c1d0e7974284402d98bec556c8012a698010002010000dca91be5912ac77a40b30827dea5757ffeca560d22023379177f977c71b8bd5297aba45f4873e95599fc6f11a3312822a50edf540017ba5c948990dd89a6ae87ec556c8012a698010003010000c8f310f44be2c5da60806cb16d277262bca2ed7adeb46092e37d52e86cbb3438327dcd398af9f82aff0ee4749463ded77faf0374826a37491e112def455b0a88ec556c8012a698010004010000dca8a7067e5c4c23e003c73b14d9f0f5e489c35376f00cb801bef5d83c88f86e4f91725a4ec9a14c45e34dab97fdcf69d2268ec0950ef9697cba34813e2d598bec556c8012a698010005010000629a6915c19106697d34ab82e240f9eaac7c300b8e217b5407edffd14b9fa4522942dbf8c2c565b75376323287756e122665fb7c23ccd3d73bd2773bed6f5282ec556c8012a6980100060100001addb2e59e77c3cee17b0b98737eb18ff152068898c9ae303ee31f816036552052b962f582f24532161481b8b73ae2471c4078e9473632e69e38c119f27d8786ec556c8012a698010007010000507c753a0e33860f9ae91b1c0c20e0dd6b5037e54eab01e659c9cfc8dae123494a06ec7200b2d261066aff66f0223c2ee48975f492e5c5bce0aa2555f0b07d82ec546c8012a69801000801000010f931eebadeb47301321ed2c70f4db6c56059ffd37515f1dca2258781880804cbf44b96c0cffa8fc41d24177e8777f1441bde37ab572ef2478420888ebc9e88ec556c8012a698010009010000c0f436d28476e5c191ed73b78a808dae8a1be5be817df5886c297e3eaad05b1be2dfa28986ef59abea7c6082bc0d630a180e7f3a1b8c8b9e16d2f4545364af8eec556c8012a69801000a010000faaa44e90a879d3e3fb172654670d311473e602dbfda119cfda76e1a0039534ad37f90e11086f20c736af113694864c8c77d224f30c429629cc3d8c81d34598aec556c8012a69801000b010000aab32c339338f64eb8a9bdbd61f5063729666baf4852648c40545845b697924a5c58168cdecdbba4a1efcc30fc87d6d332d29ab72822cab30a7532f7b3480e8aec556c8012a69801000c010000f63bc15a0921f7badbff01c854988e965d9bcf7884dbce3f59e02c366472ed48abeec87a5567ea64839756d3adb5ea8720460c9b99b4c01ab82a545bbeb07a8cec556c8012a69801000d010000627608a6a9e6fb34738d078da4c32eabcc83391580168367fa1dc7be3ec01375a083ee112a3223ea1e8f532ccd0c6a1c101bee74a8fa544b1431206ed603648dec556c8012a69801000e010000524161a2154ea1fcda7137322f4cc6b50ec7990a51488ef6ad7f83fa3447bc1b2ceace953917e1d75f7565ad5aeed951808fcfe3dcd6b3050e218a6d24fa9680ec556c8012a69801000f010000163066784e4c0ea16b06bc25ba223d2593cc4b92acc815a10c2500d18a0ab430c32e5ab17b3b143d48267dd5e95e1067714f328d60bb7a9b099c3f5029fc8a80ec556c8012a698010010010000b231c280c79eb67a39cf24a773749529b487f25c1d38a3fdc29dd7610ae6e67217522f70e21ebf2ba5ab7376df30ba63d1e7df9d9d0a3aca24290fed06511a80ec556c8012a698010011010000221c8cd32f1e613460d71f507f0ba815d719093d4efe4418167941719eae5e28d1bc33496911a540e297d7986981705472e47e61b63710e7e6ed35d24c16aa86ec556c8012a698010012010000a0b6c3f914b333bdd388053e4bba1736dee5fc52501473c9f00a694f3d1527110524bd77c3d431e290bb4ddde1ec09ac0f63ef0e03cd834689de99826ac4d18dec556c8012a6980100130100005caeec06a1fb02d9594d3d6c1c1433de1c7d97d5114779d8178b55e750e6cc2e51231d4f752cbbef07224227b38ade320f7a9cedfd2dce98e5a85cf687cf278cec556c8012a69801001401000062915d23f7ce8eb6e1173879d87ba6bf29919531b540a4121f1547acdfd3ba12cb73e8dad55b03a64bbbbdbf1610f8a512cf48e14217e28a4909f9fbe406f784ec556c8012a698010015010000c02933eb6c5dc940ca62647154d3a804a60c3639a1b46d15b52d194b49ad9b2ac3261723a4ffb9bc7456e17f2d3394944598a32cff3c3ff172b7ad46ccc12a8dec556c8012a698010016010000d2e72d0145ab1e67f2a9a28d6d4ed7b9666aa6485de4281b192abae13e6e3931f60308c62f5fd0316dde31d91361bce436425d7daec48c4591637601f3fcf786ec556c8012a698010017010000a8231e6dda09206a38267fb9bae2cf10d2ff25bea73a3cb638dbf8397b407e7063fccc3350bd2305047b3ad95f1c2ffaa49bf5b9abeb77e26f84eb3194976080ec556c8012a69801001801000026c6bf7f4563b7067d56856e52374b97a93b4975309f026b9d2624f8560e320f802bba85fb50675a1685ab8a01a5822910841455c88ea64f9668ff7d9e29288fec556c8012a698010019010000ec19dd28e811504c3ff762fcd73692381090e7991db548a10f97a389ccdec5529dcf89086302713a0cc5b7c784f6e2413cd03055e519ba7d9012b5836506558dec556c8012a69801001a010000aafc564925dc3c2fcd538b6066be8b76d1634becb7e58e7caacb199b2a961c25666893485082b8e37bdc19a5a8f585187b16c186b1aac33b30bb9e13da61cb86ec556c8012a69801001b0100002023617e7546ba2cbb913005f1242186621c0dc2b8c8ec84de9e398c2d2ad376a24aefbdd27ef5eaa3c7f6b3570e4414b1d6ebafbaa7386a1e8d797cc0492789ec556c8012a69801001c0100006a9d44fab00511ea6cfb321bede54d07e17f43007d9454b8f8d65c87e03fbe29d895c387a7109876249632f10edb358f269527d1755784f461953091eccaea85ec556c8012a69801001d0100002a9607da6a4d98c20b7c83d3bfe0632803478960e6dc38619ada1481d7e8f262992698041f6373d624cf350985707bcc62325179884d31c8fbd3a2e303140d80ec556c8012a69801001e010000243b925b8dd86af73169981c77abb7fe23e7760da5deb4c177f6d67d0706dd650b8e6b2f21a5a53eb1c32a1d71a25a1124d9cc99f9af46e5ea0bce4ed97fdc81ec556c8012a69801001f010000ecfd969d09ad8885996e15595b06bcc8bdba8b257540681b5aa4096b212ffc3f1a4a478f465375641c13f740fc9a108b3a077a59513e2b572ab4bc7b3898a989ec556c8012a698010020010000ec636dcf822075e42c392c9bc644f90384ad6c605ea021fe48a3a650d4d0f375982cb915e063a4010f8d2910839e037b70d52a55f8ca46202d9367b054b75288ec556c8012a6980100210100009e030132a7f03da3dfe7808cdf90e5ba5bc3600403a548544aa595ffc2458c4410eadc9c694db55e6997915d13f985dc31c96f07e5d04e026d89496e431d5781ec556c8012a698010022010000ecb315ac99a2aa118f587be527ac18a1eead6a0156b59556eae80e31cf548565604681d09a89920e5b999618b2850fb9bb932889a097931f1de4ca3c4e7ead84ec556c8012a698010023010000c6bf96be5ef3e2d3758c27dbbfcac0b9b34834fe917f37ae637770039d33c866eacfa3094b913e77899c7aaea13fdfd3506476f444f49482d47ff81fea0d668eec556c8012a69801002401000058e371ce96f292acecaa14da98a9acd97a2a682ba15c34fa1568fcb4ff977565c1409b16ee13c7b1702b125c5317a797bfbc67f0f2fb97e754e8603b7725a28cec556c8012a698010025010000fc82972458869ed9835a48b0bce42dbd570471b57a7c500f7c8e61283ca0e74c18ba52b98553cf227211502638e86bbf46cd35e4384d11e9ffb97b086d756f8eec556c8012a6980100260100009e623689db7a9554eac0432d9b3f25a7fabd056863097c8214cb51c80860fb5a146c56c0854fcffab13cc83863ed514c8fa905b13d3b237bb8f239f714d74c85ec0000000000000000270100005825b27029333165e244376de50d60470f957053df2e324b71a632f4ec709b14919cbd58aeba394e472535fba345bddbc8fdd4b216da3a9a568d5033d7b8c386ec556c8012a69801002801000042c0b4af7f1466b5062b32dad88339cce339974c326de8abbccc06554df7db24fddb2aa6299af1c442a880fbef09a7945b9393e0bef41b70ab862f7b0505c68e64e90300004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1c501d76aded883f2796396793502eebba6db021d29242cd77b2516f06be4f3650cfa7af2dba28e6a9906980deec0ca1591d7a8e8426bda9c472cb296457ac8b796d553156c2de6a1fb1d4abd1e2674fbb1b6e25b9a8eefb2d89e5968cc5832d17816b862173d31b02de7942308e5643a32cf20300d783919b8fa91d10f829600e026ee524426cae3f68619a1cf506c48e9eaf40a16c340399b5bf97373239a15450b2cc1670fa4ebb9d2e51b8acdc25543d9887a2be519a5d949d5c752c04b48b106e1b4eff741c9616a19934876dededf07dba113c27c5f82c19a1b3a8fbec6226cb564aac635f951717d8b96ddc4b3fa9a00784e72848e144aa825a7e45a5f800000091038d8d68f66891f2d90d654d49761ea4310a35aa215fc95c131a43b989cf5a4c44f208f600c51e5c0a85da920d6cd73cc1e0d23077b09685ac8da10af7b5109444946f7703a9d9b2a173f5ab4c2247b8b32a0e76583d9b61ed489905428c966c660b68a0590c0661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b12050561757261010162a76e68624f707ff0fc7ee07be893b472b0915cc6e568fa6ff7f740d899a3513c2625c1435be6f9a3bfb67559206775a17aadc1702cb6fd3d1e7066018edc8900000000e5a2440114020aed1dda45784ed346ccc0f744be9f54301d544487523e7f5f2eed16dfa70c7db0368639840d7044f4575d5090bd2ec5240bc1e9c37165ecedc65070bed1318f01b2c92d5a7401c024c33d98a7d8fe6e9cfe294b1a250803d5fe312bc3d82b6b265d09bc659ca65f6e4fb51b9037e7d4ba0bd019c548e3949be21fe4ab20a4628102e6d1e969ed02a1f1bf87ca53db82f353ad1ef7793b216e33c752de97890fcc2ab44a9632d8c4cdd08e6543a8844ada76ef342f6765cfc21cd29db6269fbbe582022c4595d3d7bf9799518794b749937ddfcbb4c1df15e314d831302c775d58c6722a816c5abb2bf996630cc0267bfd1b43232a6eef7a42c78c902a670fc0115886026c08e38e16c30dc6223a3f366ea4a2bdb30e6197a7475ece9da59db9f26bef7cc128f7f4a17614612b369d7d3a7a235db52f439fdf8038ee17a7e67186eeb580141fd00700004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1cae860b52fa7c7f54943f63c320c39efed8576757666aa0aa89d19d5306f15b5982080dd5beb4ebcacb78623b40bf05f949c50ca0eced83f54d624ef59b4224696e5634f76cf3f1aa6dded832f5bf3cd2ae763b477db5ca82ee5b8b3fcd4b622a859077bae1aa87e22285c37d30e4ded5d439d7a9359a4d14d034b358606d14f1cafd930acff3d88a364b0981083de43e6e05a8d2e2fcb7f7812b846e890aa9204626ebd419d0361ae3adf756fd8d3cae6dc9305817b408a22ad91603db9c1d872f0274b4f2c7e4c16f43958918cd793ba1d18061887a298f92610feac7605af573eae72ffdee319a99305e7dfecabe0db2eb6b24998997eb7b99cabc412915f200000091030631a3a99bcab81673bf09da2276bc5875b9cc2a42745de79d7e02ef896f49d22269870133482888921ebb97211dd521e51bb515a2de4d7433f8feca8dc3227d00d170e6d91002224459c65448d7d8cfb601bf822b3194957299da15427dd647df1fb9520c0661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b1205056175726101017ca1fff3d4bb4c444b39a8c7043894d7ebf1371a48330f885f1c4225aa700707c98bd9bce38a4f31f46f4ac030a221b09fa171c2c8f99d2bac0c0880a0642d8200000000e5a2440114011a42413479eded73acf34be62b6f64edd7dad6b9b193c139e263dd8d1ca74249af9712c3754a819f84af44e8229934d589237b58dc6f749a9bdef6876106d38901b4997599e19523f588b2e03aa32582df61c51b66cc131ea89bbf29c0a9802d0c3ba72277d31cc7eb637980494224fd632e953932903f977fb4d4dce82ba90483011aeeb60c6b93e5a48a46b300d1476aa05b7df75b210a98fcd219dd18e0a62d0e9a9cd878fdde93b7183f31d29216217bae40487bf693cf5485ada8863b44508901f2641d402c2cf0f6e33be3959b47ef60bdf80c00076531ac93bc7e49b4f4126ed1140bbfa2196d7610d9f63009e16f1ad3011721c2f2a4b29ae44ff123914f8102b42a93b0ffae9ceeb4817a0f47c16d4cdd3ec91d0dc473849e355a51542b363984df2340b8a136624e018ceb31a0c741225ca69a9e5d0ca0a24e843887bf0f8d141fd60700004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1c8c0e808c96352b282909a4945a5ebfe3d9284a7e3c7354aa968c0417fe2fcf05b1ed421ec2f2019ddac72a25ac6bddbd9a29b7a32dac926747b34cd01aad1c45d0b2a4aec5d487bcfb26e9da25b552b9b3d3ecedc8c9fe958f6017236543b767100a230b747e14a2e91151aa9817df9bfccff787f9caa64457e91bb437a85b8b28bc08a32c4b5d51bd3e4625e9541cb04be654fc6f617a1bb696a6b8eaf9d15f52235d08e76120a812d034907f552f2fe0218fe57144a04621305b982b8b528ea336f05f8ccb4572d79c5567b03f242b6b3406119121b3e1f7d797636b71acea1cad53865ce25b86e09b1b3a968b9779eaaa512df15ee1ee47d7da555c8fd1bb000000b504f173e2b2755d39ef873dd8ea3c34006191b908bc01cb7cd2d26e6e86cd6eca8f9acb870101420e06c7fe464a8f0955a552dde376468fbb666f57cdee82a40413aab19a8bdcc8617f52f52a2a9d4660c096ee1e52d66ddfca31a621895fb190127fd5d19b100661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b12050466726f6e090101829f828425b11928621e6dce223312decdf5fe77dd88b4692c54abe350d9fcfe041a685ae88efb1be9bb7f0f9eb96d4df695117f8a4f915dba503b637c5a1d08ef05617572610101bc3a834c9761cc47cf66e702ccaf80e872dd2055a334f35ab6d32f0b028499643fe46e27b20f7204743b814689e3d983d9ff02c55c2e66cff923a19a5a87258400000000e5a2440114024ab53dbc6402ee9381f5f7201f3ef99cc1104c7f65fce332c70263af42962c4c83887ad650c5b1bc44d4f03f0bbd3cd14e04d0293dad221d653a3561ad5a35840226fda1d89ca982eac8477bf0e90463d2f7c4dc031a6167486ddede9bfb905c29a5cee97327687eae6f574cdb0771f78a9ac18888b29fe98676351aca645d9f87012033b41ec254a0444e84c9f07dc14d3080586fbcce80757d4d0ce2a2dea16f1f9a73628e822eae09c36622d6d53dce2f97d5a88a1d562c4392d5ade502ca4e8802e8876b763b526ab67e2524f62faade618e20b3a57ef780232159818c3d0c915728690bf6b8637dea7fd29ce71fde5dc8be350c51b02ec36fe52f1c368f90408d02bede1d151bedecc47e63ec7f1be04d207139d91ecdd03079fef2ec4b84206c1121ae69cf280b5cfa19a911d55a4460b5691ddf7ecb9ac22cf4f293c30e7cb88c141fd80700004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1cd62d39abfa363493f06b44b6931d8b0f3a304d19c539f7bf4e5edb1a74d0d3122f31ed7e6fda4a799c7ef1e81378dad2af294769dfd3754e561853bfb64b3425fdc978e07bab0aee3525e9d2482b88da913d4fa8f254b594a29b7616a9abe18b78dbb122a45c55f3a2e11e67ea01a5cc8483087ce4f85ddebb4480aca3e952af9a8e54a0efb4696a486dc317be73d928b31be4c0c8561c05c2d05b11dd6095223ed7defc2e0f35a6314d0b51822fd2f0d452b2a80d2c51e2cb0797a517356b81b3c314cee2938a324666edc11828d40ff3363eb7e796f44bad185019d7c140ab19a01dd50804ca8e5c10241512ee350ab78fed27ab6128bf980abb80894cc5a70000009103fe39edd4e490fcfec7c55e120f11990ffcc02e6c96e268f556bdf6a32fa4ba637e4ed6002e439568129c9d678ee05ead797d22592f873b4603e465845f59d5311ad14178dd5a24c49592c762c1ddf6c45dfa3801b7240ceabd3b5a34ced0f73f604c8ae90c0661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b1205056175726101013e850c379cd16bae3e9477fc272c06afb33570bfecc8188d5150097954d06512a5ea74be091186fd3426d52252ce6bdbf2e28fe6e2512774a14fc5a577d40b8500000000e5a244011402721f684069644fbc621b814c9a4835f53fc40d193c1be08433275d8b7d2ccf54fd458abf1efe67b1c2067e5d577c856855c902ecee738db24f6f4eb0bc4cf7860280de557aed0f0a1dd3bc29cb15c47432ec94884c7873d054371ea63e9a56c92d10a8e7b2a17d9e906c7c7dea4ff3fec2324c567c35536cd48734611e4a4da882024a95e06a6ca111fad03c7e29d6905b5fdfa1ad5883e718753624e94a72bb3d70969bc3b2fb5393edd1644c7cc06bea954dab515fafda04047b79bb56ba763b800226b691f126f234de4f2ed2c6cc4b850c2e78f37d3b9a0b68870adc3f89990519f751db05e87190e237adfa859bbdbb941ff24b88a4d7f4921855c53a4857ec810178bb3725f21f373c7637f7ef082b50b845469df7e76880ce0a4451de978665619b7ae317c8a1368ac2c855675cbe08e7f8c98ea17b20745da09e78c00bb9fa85141fe90700004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1c1044ca081d932547a09e392bd41b8887eff52e2368556abc70829ceb66e5dc6af4cd374e91bbab68fa5c55af0244cb3bc32699074a49d6c6b109ddc39e3920b6865fbe7b4295c05e4fbf8d8b96baf76a39288438d4f40a517f91b78f06b48a2038f37792d333709da5a1c4422f0237aec84aaf714a85fec0c7ec1dc285a791e63c4df9783b24c5584ec9105e8eb779cd775742d24e3693d485702565e56f643dc1ea1d73f44e7aec647ce58e1ecace5471418d685d83273fa9bef15998dc6d8f7f4ac943d570faadc96e8e24c70b3f9f855402da6edf9b7a65beb531c94b545ed1d8afbc447911b598ad78d9b5d3de47b2ca5a29c6cc4df87bfd67352474b74b000000e902ed7d9869b48adca2caf65bb367ff70a6be084321bdeafd2e76c1284ec1d180e8aed242002615e6d0abb86aee97f46e3426b0b6f134e18556dcbdff75c2f89635bf77225ed90b2115246ce1356d9a396b4c520e3d3ae781390a599af7aaae98c8093bebce080661757261203b7e8908000000000561757261010144f056534a1d011025d9691f5ec7961cde024394c98f5d9407b57948bbc07e4383d5eb75d04ebeb60ac57a3a888b6516755f62fb2a0aa22424683f80c4486f8300000000e5a24401140154cb8bdc4d8045f9d3bf137a2433269b480f3473c7b9b17cf4e4574b1297a4065cfc7c93a7bf908d8ff5cc93f9a4579357448b1864474bc07c0d6adaf502068902a0600b563ca5ff8142e1f5b9873129530edcb54a3cb039c8a30451c3dbe294146f7faae9f0d8d28a4d0cc202993ae074a9cc0ed1b3536fb07c9e547442b218800112cc1e7551c32f185516fd0341efa84f341c30a021fb511537f715bdb583556218acc8d2a32a12f83d2721ce58a41ef2a4c51e58c73cc7c2d8d9fd5302c3b88a011a33309be48e432e284d3bf9924c8454c1227b471d1d073abb21e99f7d8ff9133f14cb2adf51f0c26e737712ec2fb851e06643c6262f2dd364e500dfc01a70800114c28ff017ef3ad638576fdfabd6daacc0fba7e0e8b458b81f611db097885b1474f5cadf1bd58703dc21f2c9d7ce1b592754d3152c3006849df0c8a6bcab5b8a141fef0700004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1cd4e8c4e8b49d08d6efedb8f718c94ff6a4d7f998ca21929ca64b4d8fb12ad352909a4bf14387e43a39da95a77630bd0b3dc9c10e824396fd9bc34d20d3792de3228c685654ab3d8d2586bcab749536c9e24e609f3862ede8a729cc3d1c208f5464e027cef9b1cc16b23ac2557bdf936e44a25b14a5737c82edb432cbe5c95401ce297ae77b0c5508254c319c2e05ee3107b96ed0700c92259c8cecfbc9124f7504c89f11bc0e03ed40f15b888adf1afdee5fbb5a98e34943958c1abf051c40824d6844eecdd86ae28d0db25d30455572e767eebe75a73fbe8758b706d36b049c944d685968ef5ab95688af096c758e5c7141ad1d259c32ce4878dfff0d6bbaa6000000310403874421318701af4d2950fdc5ca664e83abaa3b5c7b648998f5d8d5f943e97aaafc5c0149774ed9a8edf7ca2da644a40345f4be2b2d8d8bec19f042b897bbc954bd018cddc08e81632fb93cfcafd460d91ad863e11b343d90786ca11cea605ea4d7caae100661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b12050466726f6e8801595368f56673b8379b6e369c2698c1d51db831309eca44b4e2c8efb33ba6dc41000561757261010112ba57aa6d93d3de4fd63125dac07f215eb566445fd72a8d51e2995a547e84569bc1ec78d7f769a4a7d5550ee2830131fe4314c9f8da0fcecb478e2390ef958c00000000e5a244011401486a246f2e33583f28567fe0e9a22f3830cd102d176802c4ad30100e759cea77de75494bc7d22b673ffa3429f5399325a79870f1b4e3e00b1b132170feaf5b87024ac1d55dc59db9f7fdbf6e4fa0140c13b779c477eaf9e3ae50cd3dee9a06980b05e95eca7398775988bd5cd237bdbf16ec57435f66c5a836168e33e9a681fa880256221f49cbacd36c4fe23a18fd2914877f40d91a180079142ededccebe4f152053dadedd4e48475efac13ba1de46c138e3e3b5b02e27f252cf0afcdf0427708902a49d6777725d93a720ce9304ad4aa0201cfeba49a81124740f9e42be827265700445944407896b40c3afc0d9d17891054b6bea4f6eb0896430eae177ed2fea8b020e91ce0aba472478fc43802c2e845f6c6dcbe001e5acab8fe83af7931c84bc5a918ea9a5fc17d7819871faa2a2508fb4e596a64e791477d21dc282dc7d4a5385141ff00700004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1c6074820ae454d7aaccc0a0996e0284a6995bf2f9598ba4f2668265057544bd07c5db920bcf94c15e8e3ad695c2b1d843435411f4a0ff5a4d467ca6d19e9a64015fd572441c22d816a04188ecaa93d82747fc704ed97a212c883da2831578f79e0274a138a26a0d1bb77272317b23639535c4a980cf354e57641cfae494af988e0c21db03e09875dab3f4bb08f4a08817f4e1aababf4947ccec638d7264106e245b3e588badab71fad4b9f83bc09171e30f8768e5321e05b8edc7051ad61e9a899aa742a723b627125b8df4c91f3026b4bd675b05dbc959b754d3320e613b5c3cb9f8cb5040d1bbf541e0909a87a87b7101a8a43ad43eee2a62f712a8a2fad7070000008903aa28f1127ac8882a0579ff7f652e389e5f83c79a82d383726cab7ecfdb0ea3d682a64f011975583af32e0977f0e33aedb778d40df9eba2f4002f5abd421fa1a0205667fec2f5272953a5629d9986599dfa0157d351f13ca9959c6216974aff056c2f13310c0661757261203b7e8908000000000466726f6e8801d5591bbe1f43fcf8d4546f6827cfba4ae494229d685f1255687331efcccb5925000561757261010102e3ea352fb9bde7339e27b885e89d82bbc15b5dc57eba581c19b60490da284d9d00f8e20f417bf9c44af961e5cec6c01e66cbf6926e9604a10c54274057d28200000000e5a2440114024044b52da84198f7d5c16292a35193c05e61e08c705c2f1fd65d69d60ba9ad72fd7e5e03ba0c60a28fbc5d3546548728057dba6ff416a43707d36a1ed550d48602ec941fe82b2ee6cfd518dbb98717dff02bd3f4c9eeaa1ef897d6614a2054cd6cbc52955590648e7acf3eddfc70df3984d3efc29caf616431b77b9374d2303a80029a85e47a7e96edb4ddaafba00bef156bc8e94ec493c1ae93a3aa83be4b9349274619b584ae68475d14eeacff647445ccdff21488bbfa719221856fd8a4dc688702cc699de86d3d871a5b60951075ae61874a9cf18b9af1000f6a8aeb0adbd17d76e1f3639d7341a2eb874b39c8dd4ea236586a19daf418bf10eb89563e5b765c8101be24c5c6d12db1b0333471e8dd17163997211c475711137ff0dcf6fa024e797e269ce808db6578be4ec8f966a8b1ec30726e87f34a0901b9eff2f949c65ae98b141ff20700004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1c54d0c0f16cf0e142b14a9f86f44bd395f6c5969a7098fc367092e3024d1717432d307c3e63001235beda5af04d23626afa100bff1ee39e6c395ae17ab97d747f92939d09df6509bcd50d89b474dfcb1b1611014ff949d5a18b919f84e0ced62a98c58ac857c56f2884c988758b883169650b00f04e4432e126f2326ccecf9cf21a531f15f535f1167a8534fd0519d8f970f0e9022f9f2cc6507efbdf3f9a7503f9f9dd4e799c0615f5df79a60814359a037df733eebcd74aa4a3432fbc4c0b87f126bb3f3e345fac3497beed2f78d8896e8c10baa36b70e9dd9b596265984b1256d6accb42e877eb085027a273574984f4a25daa397c4504cbdc08e837c2610b0000003104159dee9db7834858ceee11ed2b21054964a3d5d4c3fa594763d954e86accc89e06664701ef8846c90656694cbe94a13935ee129e4979dadd544049d734772b4e6a8fa79dcf1e56da523bfc9ddb63d0cd648e29240f694fd7673af56f08ecf359f34f9d37100661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b12050466726f6e88018b0917e9c6c08d28bde6645a8b92c5f87bd8df6878a65540db0fc03c53d769200005617572610101de47f10ee69640a0ea76cf57128ac922f87117d67cfd3c128198b9943e6ac526a50812582c756cd9b0986bff0aade5fcc656e943d8351c5231c93ec202bf0d8f00000000e5a244011402008d102d6dba1a32017e2125b20bea7cc3f60ea047b956031601aa8aad556e4cec0367770c84d56e5251172354c5eae5007e7af1f6012167c3a8770a63f42f8b01861743d13e7d4f0addf373924cb1b13e30e7feaa3ff09b5585315461ccfb9a6cf1f84fb3f2c79cc5ea221aafd5cb49b59182695fd6c54c66e0cee3d3b1c9418902ca8c44033c50571775a3c9d4509c1d689ecfdaf15e258aec93614c4074752866a4299aebd21414dc381a0ae324f7e4b627a34a140b7a19abc95e6fe824fa498a02fc6495cd82fec87a9963652a1e6dbe1d024f930d2032bc9d75f00ebac0016769db4055d23c507e4756846a7929e913e65aa4f0ab876699947fc7efd3c9bb3982028c67ca4b19c2d81cc645e6eea98818b410d2db86131d4f74438a658ff6af64408d963e87e60f2afddb5fd8d7037e6f83a373ac4d77d9bdfc6f230b1ab408d28c141ff30700004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1cceda9d5bb766ae38121cc989f5d24ee3b94ec286c0c09f6ee8b314dafa2bf867fc360b0b6f6ffd78179abc76f3ba96cea3734b09579e85fa63c178d72b9e286d7b4abe7dbe3251569c3eb459cb58d7cbbe511d3c93f7d520262d5e165b02034fbe34fc45753cbd49f55de40cf0e14489b579adcfce51682da6af87be99cc4aa098aa934c1f4db6113c9b6f813984055a666dcfc8ba3238d148c966b04b5325468218560b4efef54ba08ded56af4a3e443467e4358ba0d14a90f9436ce363ef8c64ac13409dd831e9a81ce33923ff022a8185a288911298b81538bbd7a0bfc24661f8403b6645a69e686abf09aa1613aabb1207fbb6089dbe3ca93a6e0c77ad5200000091035d8611b1febb6d00207d49d8f04cb540dc9f0fa2a6f37d87c710020dfb6c6aef4a554901a99a64055813a8bec189d66b4837e75c481a8c435081f9fceb03d332a5d5aa6064a72d096e00e32b45bd093de625b1fd604d78d4eda894f698294d22748430130c0661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b120505617572610101580d65d24155a3d8f3fca889a2136a8439039235f24a80458bf9ef244a660e37c3759ed751d4eaebe6308dec10df133ffe45c5392a6d0dc074d8711a95ec828200000000e5a2440114026a3327b72f64d518fd82e58891665dc277551d597a44c8c069483d8d8193ed6383e0c713f6197482b04ee31b1b800bda7972fcee2feb42cf5c0b072b3eb4568202226e3c95d877ff798f711510cb28245c65baf4c220fc5fe154f8c7bd65933629187516f3e4b77b6f555eb6a01ea141c50c1cbfd88f43713f1b5bb08b4ebd4c8901628af0bc28e3ee0d10495eb3bfb5d4adbb0740189145f3bb59c8c34629b07a48a0c62354e074986d349b39264fd552d395ca64b41e9651174b8326be8981878201c24d3f6b9dcfb1512f0374f251df3e3ad2a5cec11679bd6cb8cd70d31a69ff012c9a8e51618e9ca4c5521e8998e579f6230367ff9b916c32c4ae9e2dbad94c84010a998f2d6b5cf102f3e8bd2841b3d81f1a51a11778e35f8ec6f8e1d8455df21cdefa2dbbb6fe35b699afdf46abe4ba832bb82e4dd83c2561ef8ec3b95312b284141ff50700004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1cfac47eb8625c1a13102de6eb8bba1bf70a615d54f42e99baded101903f0c306ded254a53822620d4b50dcab39715e4f01997250b80cfa63391f29af01e8335315bacb7786ff12f9a150275d68a66ff313536555a9c6c0ee5d1a12b6c415044aa6058aec849492ed05b3360dd2454ce09d388d03802aeaf0173e714c9e9af3295c0b3c87e780656522a697d2b8dbec042ebf0b8198ce5730ee5247120015f641ee02b6a500c727883c17a9c98bedd0a8e7b340fdf8c75dcd530c91ab7782bad871b17998c032e09b535ff34fc6caaa62185ebcc2480ad86c2ad3929ee1fd826fa3ff6b791b2343bac6b42dc036451f00a8a0956fe3eaca3efdfec6d5772b39bd400000031043622300d0a6195d775c2dfc9f851df57ecbd84c3c3ccf6159f0a665e961bfc4e86783e01ceff10545b7bc729a868dd290d84c4484a33fdd4d3d42ce5d58080f6d87e26b0fc38809571db6285330d3d398b836202d02dbbfbe55fee53cc5dd274c5881321100661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b12050466726f6e88011a50ef0e2efdfe7d6f9b3ecefd04b2c9db31b8e967723b9930046a5a00e6f8fb0005617572610101c01d94d6cb533f0ff23abf52de0b95ddedf6d6aaf114ac4721a2e82dfe1b53241c91dc633f46112968a1ea558ed37dd2df9fdc307e94ff459655dc4daf4c848000000000e5a24401140208a72e7ebf3fbcd8a8da515b7d388840ad22c1714864558816827c6d4bc1c4132ddd64f943131308874c6360eec35ec1fea062fb3cbe718d0dfe198773ede68401aebb0a5848509db2e2813375756f6bed4768302725d2589e21d703c87994d645aeb191237ec3cd4548c5477701507abad24fbf955ab8770f31319545b8622f860174f3e939f8ca23470b60325d0f3bc113c10cd3f54f142c9134ce08236c0bf617179dbf212581fcdd69f882845facdc40d0652bcd8b205076e150fca1e43e818c028ed527aa6fbeb421a98c37ce8f165d8620cf395177fbf61858d6a1ec2dcc691afaa3f71f1ff4de633d98da307d2715bdb1c5e660d441f3b578ef2c9dcb1708810284af8834f7dcede561277177afe6ce34fce1eca1eca8066bad7004a1ab118f0597423579430e0e9245d346878728483a581ec81521063c977ddd2a6a80180a8d141ff70700004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1c3ad398f0e8aece5ac50b13b7f9e8c32928bf1839e73d1f6dd9ce46a94c8d9274396b2f25c3e019d962369bc680afb1b50592ca797a1b17c21a54ba0f7d2bade4436fae32bd63c2ff892bcd970d809f4771647275bcd62c17f61ae3ab0041ba3b9534b9e6c120eaa474cb3d6f16bfeab9f645f179841e3079b0bcbe2dd42dff18acefc718b2b966704b89c1e479f50bf5c7673b1229c49445f412c346d3c9592e33748261f9a92aed0517d817c4af6178a96bd2171fbac67e53ded3bf6d4ee483f5fcc517a4f7a247d6adaa854ac483ef639574d86c0626f8a40d2ecb076604d4247612e64cffde6feb21755a586ec01a2347a8bc9e53a49e05a3e2f802d2ce08000000910332cea90e0919870d0fac6044c10a2eabe65fc6c01eb1b752c105723bee35e9c91203cd00614d2148f79e0d9a37a44c9727c4be75387846db8823327bbf33a3c40a7e0001d4cfbb8acb01bed63df95f67fb09e66b017870780434803af4a21847548fef230c0661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b1205056175726101013a3f91e1285d6d1bd3e3dbbd0e5d16dfa4e651dca5bd14b4125c4ad9012e320fb16c2f39ef3ad0f1f1aeba03629f6ddcd90aa89f938535488c8038f2198c318400000000e5a24401140140341da4edcd1bdf082c8dd1f6ca847e4fb409d1f36408df5f28c65a83b4672af74d84093a93a99f5eba78f49fe2cd1ac6d2a1f59f7a2de48eb32a14ada59b850224fbf2955823ec9a0e37d82c768dbb4b3794053103dd39f83ec8a7d91af9f072a4c0ee60b2ef69f866c9ba41c87145b44942ec736ef231e047e3ed4bf5f1588202ec76aeaddd920c547290f92a76a329659e30bd34a1adf1d5f9da67d45b8b9f524c6d6145d1042b4d77fc9b25423d9ebd39e2c2e8506aebbf8688eaf14f046a8001a0a68c956c3fa07c8b47eedf7f214458e01ffa67a8c15f00cdb9829e40cf3b2bf5cf57ad88ede3fc7fdf85e8357b88f9b5d4d4a3e981a34080ba7e623b0bf98d01d07818eeadf554f5074cf399b3e3bfd95e4a96e9a80874901ec1aef5701206695c8592909c58a48866c58874811a06fd25ff2ddf1fab4b9826c5dca379d86184141ff80700004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1cb6c26683ac3fc2f2542994f092da8f23c4b1ee195266439a74b339ebc20daa0bca3f0b2b2f660099a9672af19d70a1532d1b2903af66c1e6649ca65f2fb2971345a9a2c53834bde05a60a305da866c4f0fe20070ab0f25d7a3c39ddaefb21dea581ea61b88fb6748216a07db8d07f07ef9f22d5388d3bcddc78f976cbb683f4b8822a477c8d34b8da21bbd572fa883767dd183d878deac5ce69af6469de696554387a4658aa6cbf3e22c075cb5f262c1d3c5b714412b6b712aafe17699e1a881c0d528f600450cbbc1f8dc2200fbb9ce4c92ef66348d8e294b4f48e2a447a3d7f9c7e48dcd85f85470af4f757bb9923615192ec53bbe87ad14b3deac8245eb0a00000091034bd64eb4641bc650d41378c81a18657f9d08818d3e48ebf9105d7a46fbd648c30eca3301fbe0110041ce1f24e4c2b2db28d8a0a037f0a7ee578066392ac5cbd5742c82ee37075b817bc3489ad199b5c50bf0e39d35211dbfe3a6e492924905a2252a51580c0661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b1205056175726101019adbfb4c46a68a5317d32a7fe33eb0a2fafc5a8f364f2a874fd732237862c2787faa5ab71f375826569d72e0a0d334ae79638ec99893954fc4b50255dcd3ed8400000000e5a2440118011e04eb2361c37de62f619013aece547f472b41c9422c4649c440bb0e4eca721c1925a33003831d3c9725855ef461766a5890d7c841504e2353529397415c268a0106ec6f194b87447b316645832496eaa4fdc96eee21b3933840d003849839a7350977c3bd38a69e4738f5b50eecafdbf9fb1c2e2830f4d4f026c7d79cf238068502304190b7e35778ea71d8dada9cb0cf8c1762afdbd23e78504510871c4084df09d684dfdf4500b8cd700ab0a73bb80a2986d8d93decba5efc0f3406e2f317578c02b02fe417b674a8c9727a3da6e6e5a3858cee3d120b09dd9a8045f54de98d5229c133573e39b1895103192d89df0668fd9e6d5e41714068a170ec0f7cd65b898c013c1f5f9f65a661da592ac6513fb74f8094e8f250dfbb948bbd2740059206814140c272c9851ab439058127319f1be2f624d45f5e29dadecd6f63b91857bb55870260b09318052d0fccf42df50b8868a7c48fb44b7e81286fdb98fe2be97ed14059ef9374a4aab9098d1b456dda7e82774599facca9233409f0493849a87b429281183ffb0700004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1c1cd2f4bffd89e387edea894408b623a23f65bf339960973bfa494cd53e8c6e552853b88fa353ad2fd84ea53dde079c69bcb55a550496a619868d6fd08e420c16dac4df9d3fcd811be555a38391b8593ce503605b9b277a8c9c2a3c57dba11aaf9154da9bff42e9876004c6cb021fb7c52d62bec5ba94dda7f870f4caa22c98bd5ab163b07044ae3e1e00b66a6ab98b787bf6928cd692ecc262447af982dca11709c05155de0e0783322a8d7b2d79d6f0c71ce88e70439a4b8965e5c655a9aa8a1619bb0ba47b08fde2a771ad4d6820700e07184a8851653dc8ea5290371934bbb2fdfc760b3256d39399fe9b09856b05346e08bdddeb65bf2f0d55d8961978cc0000000d0c4ef4223bee6b2dbac135d497247c14cf4c718a680fcd51df85a7f82fa43cbb3f0ea93b01e61e4ffd83aec537432803e4a8effec746e9e828eff57b9d12528db724afe3f9d7d650bddb6f4d63edb4bd8a32113c9d1bffc419a455d8172dc52c51fccfb9c00c0661757261203b7e8908000000000466726f6e090901f53e68542509c09da63b5a52305b2ae687e5e7594a9359c92f316cd78d36dbbc444267131705cdd2021b78de224c60dd62c188d734806dd23abbd297b0557c366d5537b27d902c3af81fbf9bb6cdeb69e1aa4e610acf4c9ca66406ebf642662a02a4ce0a74295d5f75df2544d262185452d7e1c2864569401c245c883da46ab1c3ca2c68ef746732eb16c8b7565def1fe91f9044cfba582d206c9d95c335d2576d75e7685b3ee5b57cca23306d0aa798896d2f7712fa70be6b89ef7ee78152d317e9a5198f672d218a8564919812f6a87a593a83ba6459cc6a891dec76835abcaf5ef7638c7885c83adf936a4d11affe480783de8df58ace0b7e07f0a552d6329d17e3c44696b2574da9684d5f914663be4af689619a40aabae1d200ff85ab6baa54191a6eb731286a606a414f82c762dd33aa1f832ba994bd198db04e145070880e0698209a42849a922c236694ddcea81a36eb56fa1f245c3ac3fc5e74b28f91b83342440fc441f4048e51b777c63c6eb4da41ac193b58302b47787efc5fb135991c95b322ddebe278afd401eabbabf98f96fe3b2c9a61daddcc2f91ccbc4647a2e1f7ce223ff05015a0a0b9e4686f98dbc2df391993d7141745ccd97aac191e787af3457d1ea9db10074c14b631098de72f729873fe5b78126bba6c3d59cf1dfe663330a7022119c1b9bef8ab0c577b29a1c18de8ef8631a612d91f7c75d84ad6d9605c051391394dbe4e5a66e3c3f52c848546703da2dee93b27467c6b3ade110b3a85b88dbf37037081829fc01ec166e0c452e4b6dcd88c6a9b78e9166dd10561757261010142b4ff473b78a32a0a0f76472035b4405bdfe72dab3edb837054f40cee75fd1d3939eab07619c421177a870c839ee12b38a3afb68349bbf5ceef1941f068fe8b00000000e5a244011802ac764fb457a16a5f5d9d949744dbccbcea1047a31592eeb687255b3350be19117d9463feaf2d4fffa46909daf75bc08b22bfe81a20814633f9cac6e94534108101cea59d327636cf92b2ed012f22103b736be0285fb700da964db951d4c77ed3762f7c3dae58b77da28debf2dbf62afe731e47d563fc775b1549a576d4e840a08d01980b24e28419e88d32aed1f3e310e1eddef4fd7829d8f642605a72e12a5f0208e17f7ed2014cc23d83d2eaf93ecd4cb9cda696966516980ba2f52900dc35958a0196d1fc9fc73a8297d37ed3b8f0d07904a48825d6ca2ba71b66e9205898032c0b343db780b5b03be5d7323f8b422328d902c764b8d884b7ad45b5214b0fb85e8d01aa884c0132e15eab60c52182c2288cb33aa0b2a3c2e7bfc78a4f21f3b2526568eb604f0a3e7536198a25883545bfaa4a2912c4dc96ba68d8197ca6bdd2aec98501420234bdaedf9aa2925d7480de797500f496a60c4eda7d0327fc836dcc2b6a39b48df3a6282404132c535334a462842b5384cf5646a3762aee1296dc12b4d182183f000800004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1cfa7546dbb32454af7b64facc1c35d655a42c02fff0b7637ca54917444fd53968103c650097321b61b97b02ee1f9164416973eb1a78781c2c8d8c043835e6504077b8aad38b63b42787ccbe67c32889414dcb3171dee3ba049caf00fba6b36f22b84fef81d27720a01cb57b3854c136f83147cecdabc8361377b2b9655cf5be0c28ab71987c3d349fe27e8ab33ca3b62c05b313fa69e63b9edbb0ad1be1b6da74a42560af6eb02ea8da45f6ca3822ba4625c53f00ba315c7ff7c40f8df1106f88730858d1bca968f5426c1e68376a15e01d637e12535197fcecb9bda4b0e1bbc46491269b30924e5e93475fa2e768c00747475cf1d03c9114c2a213642994996000000091034ab2b7d40c53e87b1f28e5e146b92e73786bd5f1368d636443d590397daaaa467247d5005be2e58e6953b138b74ccd7859b1937d888fb0a4042641cb61edb9f60b1d3e2ccff519af4bbecd77fdfa3d603dcdfcc9c69610a6ab25879d90e911986172b0700c0661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b120505617572610101d4bc869b519d897233aee5a9f7b3d42cb488d5136ddbdb66b1d8eb491473ab205d3550319788ba0bcafe8e18637c117c6af32b65f3992df1ceaee99d502fb58700000000e5a244011401f6cc553c2df001f1f1f72c91685c366aa4bbd070d827f5730b7edc6571b54574a40ff616bca605a6285d70ba19053e023c70dfbf993f3e55035d7e403ebf1e8902dcd6dd2292c9de1b37601561c2e65a2e67a63ce244c5e0cfa39692d62fe6874b91628def68dfdba86ba2b5b81b3b1f3a26bcbdfbffa4a327594b7935f2b5ea8702d8cd2b763a398241cc32f16819b895b04059d3538f22a92c3beb69028bc61064dae2b7ee6c01306966585dd6195d77222d65ca0f1718cd617f3c57131547db850180048577e211c8a30a838992690711be984c3960b5a3bdc6383e46ff17ba127aee66d08be5a1db2f6bd27811a7c94b0b663c18ca83da414b4bfdb25acb60848302c0261b68f928d0f085b466c7fa745180aedc00490a0fc4d9c46df0e7bd688e7d81b6638f99588dc8a9359d3fd93703e04a95f0b4a8fef1fcaab69f5418e85a8b141f030800002a4242e476865e4e8165d7aad643e618ad14a263623c82321c7c77afb69e4162ba2c511d6f105815d7df35bb9d090774e806dcb442cdb7c3c9c26f368a95d97101adfba67f4c19f74ff796959785e074cbc7985560a3d92168d055f296e42f0edc876302798a1890764f294fdf8bbd88be5251fed0197b08d1500c0fe087311a6f8adbf494327a6d01d25a036bdce611ca5d7dce5a3e97615016a5c05267c85e64d54eb42bd9339a4cf94746fd03cef391a5ea1a26342ccaa908feffa4f9b55a901b7e47607a3d90892a40b95439d185016e9d9e9e49f1cba38bb2eb821ef886a43f7df908158d24a570330b3337a1c64d1bcf16943bbbdc101216c12a3890dc802781e4dce3f82dda7837ca4ea3f63fd7eb91c6d75f964ccc9faf15679823a100000091033fc0d8b81296809f075c0ed25bae39c842c5b239743ee8d240dcd07e6fe9c64bb6c4f300891e2f973f5e2ba2c98ccf8d71ed66c409f0d708ec1b92d4fece70eadfb9fbb3bd6badfc8c3fa9d04964a3e3637e38d649038a9224d8c55a5fbb54d1717a0d820c06617572612075fc121100000000045250535290c733e291ee97a7a6edb2baef457236d85750d74a25830a835d272d9bb8c64f34928b12050561757261010142f65858635fda4dba461503ac1326efb0834b236f39c14d1c91cab74a1769764325ab7ef07d60ebe50f6ce2f998d3ef832b134847e35cf19da7d0ec16de938400000000e4a244011402a4c647e6736b6ecb8aa1da3aab333d0e4d9b7a7b6169c128c665011eb15f7d3fb73034a178c1f85b5c4bc6db2698b6933e24037e79bdeb131283acdcea528f8a0158d132d7c900f767b3a32c8140d62da80d51d448bdd5f150f157cabf6658097d5389c085db3142ef5a867abd0ea11e0b55a6fc68d71542f4953913694885fa8c02221bbcaf9e6f6258516a1f480bd1ac246678d64c6d8903ae3dbc0df22b4c78394f9fe83f81837e641959ed7a6fbcd8ce751fc2493051c0c961a00f6e0c00178101dec068ee72ae9027b1065c79e19723722f049d024d18ebf0c0eb7d7fda81b44495c7ee746b1f22ae9974b1ee7d8674b02e2e9f3aff61eb2c4ea2e49557cdcb89023ac5799f4f9480db99e00bc5043ca70d5e060d1420bf0e93eccaa25f96d4885edb7276157715ddec40a76bee5b4c4c77fdb602c40fee03a8a1e98785f4ea5d8f141f0a0800004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1c9a4ce91e724869b04dcc0c2febd5692fb9307496dd65b40668655ea87d5bc951ff12849481b1959aed898b1ce64d3a2d0f2a8b9848ff22a3f79404d2ff0a20ccc9223383b751e67fb6adb5a5f11db51d49ea6e724704440629e5a4efa934eeffc42da8d59c1f523d00c0c34502fa0e973e37311979524c6cf5059212b71bad70fc625ff4761b51ac399f7578a070bf8c14b53af7f6f06dc6f492860510e8aa65849b1f3627404fe83c557812d5d5d94f3ce0e095866b55dcc8ad1edbfa030e86ab8c330bc6d3c5ae7ccf4bed196f5a06ae1b44c1b11986f92ce4d06895ac3f8f349bac4ca39f6f77e5d4dc7b8435177212609badfe18bd85c4ae6bf2d1dbc89a000000310431f217cd2ad59ec06b5d894768d3c7f59847647264f990a1dae8b8a14f7b4a5faeee6600c82031e3b619b7fa12497921b2af06a5acf318872dd646f500c3e06196f11963fbe806b9a7449f92a99a30e47114dcef988ccb4d2ba32862f1f23c51798ec5c3100661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b12050466726f6e8801b1b6a049b7effb04c4f971d85fc0d0996d2db8f41dda2639cb13a01ee1e088c100056175726101011c6efdb7112892e83fb1e05f0683d607fd60b9af3afc7c8098cea2de884f6427c03faccd5289ff252e865c8c962aab15d7459e83724df0d4303772d731c1828500000000e5a244011402766d8af14eac007703d69d02cbcbaa24130f1ce769fdd5e0f093a79033a1f26d26b179b9bac5009d275030ea1aecdeda1c0547b0b006fb1e5f83c61efdaea38c01ec56037dd26d5ede7890728f18908e2ad70b2d2d12fdbc30cd31fa606e40ff4806800ad777290ead12df61d7be3464070f204730201ab32a232de75dc219ea8f023c6ef4aef69dcfab084b1ec239a3719912008bbacb4cc4d68ef85aeefb101e4e7d4a19e00cb0bd5e8a9f283433c525ea07bba56ddaa9153ae9be9b6e2203028401b8903c2f66f892ff71acd92201538ff8b1ac5c1eaa43e6da6e8e31a6bbb19d0480d0be569861b3a7d80a0ec8c970c9a73b6acca35f103aa0e614ef4a6c8faf8202cabaf9a832e5adbbbfda0fefad48ee5da856cf6f745b5ebdcaed000364c04a464d0c15561b4dccb5637928922df36dcb4d33ea604bf888676203319c683c6182141f260800004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1cdab1044564c204139a6df0a25ca692afc1be1fd808feb596e27ae23dd916263ffd0e1901fd28c46342989ffde8d68122d8aa512cbdc9beeffb57bbf797f4ba9a44c3d073d20e97167a33b688b63de97b7ab7defc51b47448bf28ebe56c95496f0c80db8feab3cad35de047678549f5b64e6667a1ce6c758fe94452411b1befc5bc3521a0f4b15b827ead69340521bf9faa3e2c8742cce7c0a5b75b711552b851ccf847a0cff7b7db9e81b9004108d5102461e3907bafe1eca6a90018789de4810d38b6e4a77a45cbe38595acebb61aa263f7f0e15871ead43f53178ed73e7cb2c6aa8cf82942e46394720351c6238880e284b34c0d56812dbbe9345ebc68c6fc00000091038fe2c858a44230b29caa644043a5239453b15ab2fbad8b85903f69f20dc2abee72848d01530e2ee7d534fb0de7b8d3d2c8fa1d7bff7f92cfec9d8436b2af06e60443377a6797dd1fd986887b35195e9d1132f982fc2da8896b08171da324bfcab4d0ddb60c0661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b12050561757261010170e4b10faf78ef21091365fc7be6c8b6b0306a36b71b25d1a586b34541d0fe2ddac001def6f6799dccf0cd19e772cf07d5ac7e4c1a2985fdb442e597445bb68000000000e5a2440114022c227340914e25f1d56cc6c99bda7f8f5a9abbd93decb7761be4a3f89fe39e557b7c99a514ff737601dbbf7f22aa4d364bfe3d26e1a226940c443cbbff5faa8302a8f8f419ecc46822b37116dfcf7034792846b40c96840a0fa598c0155b69c2286561b271ef67fe99ca9a1debc3157d7a4bcbe40dfdaf18cdc87db740754b338501d0d9ab447651cfbfe846d708d11bca1644ac541b15802c8bc977fc71d6aca56ec431a21272d899bc9159c2a6faadceef070bc2e2bfd91b62d532f40f537a60820240fb6a8618b7109da33c6b8fe31f607a9b5a82fdc58ff4e46250453c2ffe7663c234e3d7218a8bf5ce1fcf5bf8e6fb868b8c3bba5afc68d040d8269ed48d568d02ececcea6bacea3143fc57275f5d75d5d01c2a5ec52840f9f78be7f13e0a3bb2e41657bf6525eb090047d831098d948dd0bd91314a31ed06d7ff15ed12015c68c141f2b0800004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1ceabac098476f73d812a5f236a60956c17cdd6371a4818597b2cb00c0cb17ab13d32f9104d2e11afdef7a2241c2ad819246fff4d8016098184a6dba5b95b9bce0998d0160ef33cd9c828e52d6f7d63f4b1693edf96aa7c41e0166a6cea3ae061e7c313a215141fb221caff89af4262e1961d4352a35b084f0d1c44a0c07749c5832c274d2c4e19a3d3d058044d177a4dea8052ccef0685d7aa6bb92325a88902f41d72f767053b45a7abad347d2687e2838391bc90ea9c76c49bb45f2c2a0f48ef9c63e03f9dc0013a18cfae8f2f716f7c1c38b0bb447658aefaebaf6515f75a0b4304772243ca4195f39a40270dbb8007713ba324448e5a620f541617b2cbc4d0000009103a26762aaade94b8e69858c75bc287095699150acc9171c60e843d86b03034ff85a68f500e10521e4a702345ed5bc3a45baf6da33b3630e488502322325b9a722eaebed26f1e8ac3bbf00113cb65c823de20998d89b31008c42d19946ecc1364832615dba0c0661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b1205056175726101017a0b1c5bae82e67f8fb79095a75ba5c36b66ff530a577acb050090fa7c7558308763ba6ecd5f108eb8e90ef07fd85bfde6694bc0414faf89504f05a90834088800000000e5a244011402d825b87b10bcbd0357530ef1b4c14edbbacfe9035c527e85b972458d502aae6f2f8007473b4aef14658e3d76b46f802b54f3b85a1caf4d9d530c155b8defea8702966220379e4832fd6507281813cc0276f4d4ba0c78d34747b5e7259c573cbc4fa73dd6e870dcad8de28f5aa3688ff92ab75e55c79f813e15b306bd8a7894958402febf2d05486345455c0813a8253739342982e4d295504bed2c1f69706c864e02bf515ff3c27f8a505ab1df783c481ef66384a96884b02b6727816e813269fb81015c387c4a3c551858d8bae7a831a5499a5bb63d955bb67ad90d103436f693f96d74f0898db1b6afe376021b11845426923f91aa6f4670bf5cde3f0cb32cdf76800216d5056adffbedfb2420389fff4eddf1f5955cc7beaf8d72b5467c0b83bc643cb050a3860a73d498b6ea798f14f97eb7f28df541eb9793c8de003175d625fc80141f350800004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1cac4c69e8d823fda053a6eea1188639202d6bfcc7e826b121e17b117115e05b517cfcb61e1bf38561f3d657dc12f2ba8d9be97caabbcc6e6fd81520593b9813fc07904e1d3015a6d6b8c2df77f0b5177bb09cba49a0401e96feeefb7cede971bf1ec3f0babcb15625b154c28407a31b252a6c66c8a21c4670f5f503b9bf38316d18cefb2e70359d5d3e36694fc9ac6123f019bca0d5714aa711841ef2af834750a68ade5cb25bbbc1c0da57b3ccf96ece94133f6fe0b210324d9640b04794c98549ed8b650a6abed1fa2cc82c0d8d7c104be2284842360bbc2d03b7e2fbc2faccdc500654f1dbf062193354f214f911d4ea359ac7b16a4bd4426731b764dd6985000000e902a4ffaad38f6a21aba74a89a0b5673c59190cfb4453b8549bcd696f55c8469603c2495c01a14ab44da279c84d0ac98fcfd27dc6ddfa7a6d7aebef7419e53b3be85d41170790d9058c568ee9c49b1c5242160ecb13058d7583c7181583549994469a40c149080661757261203b7e890800000000056175726101019e1c2ed63f62dcef0169fb27d3e61e6e8ca84b34491b5c1c134562376882d71b892d5cd61be28fb3e527acd2d16e91658f3c0d3e24d54403c7b87a3a09bea38300000000e5a244011402a8a51fb643c077f4a31ad4ed6b159d35792e4208e711d50a328d19b250f4b64e462d6a82dd5edd33c91500080dbba1c76165ffb2d6fd64925fb7b434f5e04d8501a2405be7eec4a1dcb92166a68bca45ecab08da2d90e81964dd935964216bff4affa29f3b53f18f5fface4772bfd84e55df85a812af9993201b86f8d8f4b2378402302ac410f31a8b74077702be5dbe75872778c641769b2c3d0dd92e25f9f9204edb20eeadc8546f83c71e2747866c61d85bbc5ce97ac411cc94c0fed71af8758a02622a411a9fbeb36e0d11fcd5e7b9b9cd6419cc7128a1a41a3cf9a9be7e8ccf51dffea15648dda722f6b501f02d73c8022a7d074c18ba669c3d1697a009f5d6880232645665378fd99ba72b8aa96dea33e67bc47c0c66318af4ad7580814a4ed06e837f1da92b10d9a26d5544eacd02033232217084dcc624d825e10e98c59ef884141f0a0d00004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1cfe8e387f6925b507c4e8cf9573f1b18e36b89a5e72a4bb754a2c66c9120456298767352ef4396be58606647635613b876d2e76e5013fb18d075e548a37d3c8f5252a5817f119e6011644346b9c7a44cc33af85c074ef3b955d3f6855a0372d96a938ce4bdd79657d13817e0473a7c5558f48bee2f362433dbbb03babf9b8c6eade00d7f9c37bf5f7a74189bc37b9a04eb06dc45147e4053bf26bc4f73669ad1e8f6485d9cddc3bbaffde525d50589fc1514f535648d04aa61087ed71ded19d8880c3d6d7268541a61376994b34f67ed9296bd2c0c2dee193bb0e45457b5d5040f15ce09517eba4eb2df9fa3703624021c2472ae2482f6b61612f30e723db2d030000003104135d0fa51a161de5a313bbdd703d8522528703fbd502e671300724d71a51f2c1ea454100f825f4240b0fbece895fd36b5ed08c9cd2581f77d3aa95240f8fc524ae3a40cd928d9ec2e00a05887d9098a910e49662c855af3af221da37a6236d2e456ecc82100661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b12050466726f6e880191d156aff34d5ee0492d3b98c0dde7aac6c65d4f0f720d30dad00f769f8d7dc4000561757261010164a720b0d7bd46dab5b077fcd693b9a15e4b87a2ffd4cf09af87e5ad24f4415b4cca8bdfa45deafbc52599446a28cd37c858ccfb129ff8c4862332b918a4af8000000000e5a244011401b24bb19c564d3255106c8cd9b5d127ccae636ceeb5cf7a77193e2f79c5b0773214e20bcff5a894a2b0a3622fe62757b3d44069be2ea9d3091861fe594865518101ae9a2820bed4de895b4922bdeb13c8f836e90dbb2a419fc8c76983f671e54a731e3240d9457b71a4362f8e7be85beb36adfdce674c138bd26aadee9b26bdfb8a02d46cc23a3352fa93668d1d6d6030c1658534d0c0b14835ee65c275a044f6e06e11304b73f02276180b9630844ec8c3d8540acc0c3bb748300e3ba728481b288001be2f86dd56b61d17497832d2012abab90eb7b2c887c069c8fbc8d47ac8125c2b44770ba621e64a2841a14040d508a95de6c627412c74e65e0a5b2c92d1d6788201323ed8def6722baaaa44550b4e91c5116998b6736a970b21fa0908a8a560cd20ad064fb71a54f4184d3fdd0a88fbbcc13954749ce64a52659fb753e6802fc081141f0c0d00004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1c562f78d09d1c9a6cbd0c16543e7b335996b5f80e1aa99217507775b996d64e4fb0449820a350868c034d4c9727a10e631a73c9830bb7e4cc252aa611a838b02de42c40adaae49ccf75dacc9b6b10516c3ecaa7127a47b60b04627e7e48599d7df445a2710e0f528ddea5b852846e90f33bdb3f0c687068759031369b3815c9db4026b76a3f641a20ac7405d93b6712800cd8177946389141aa5ac1fbdee581580762e9586bb76f69280dc99c5eb8955d30a4aa743a675ae99b451c414b58e38f2d1fd7bddfc7cd7b7bdaf2b4338a8b214be41a86ab092ea0be170bf695a412e7d6cf327a98131233156e07bd4a4e5cf3996c48bed8a545459ebac10d3b9a0f6a0000009103bbf6fc7c8e55a2809b1b4ca2a3531d5ac1e856d0ff07f2424264ec2d38feeb5dc63c6400afcf86a16debe021b36620ee11ed3e1e63715dc4e6c5fd49a3bb3de36896be11ec1a760956039d5cc648c7de367fdc925e0461f6171fcea21739a0668099c2730c06617572612076fc1211000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b1205056175726101013a50fb0571d3ef10e5759730d414c018d33966b328b72738b542e47790397141ae3aec41d9d0f530ce6871d9cd92498a237270e5fb38b9498a87b2205ef0d28a00000000e5a244011402fe94b5b42f4a19d9225a49f2407ab254430feba58ded48e29304a5c91451b062ba99233f906c979df926ed6ca689ff802b704e639f6a2e18228c30fb8d383288024c1ed6f9d10269a049b02cf7f4f3c637e6cea74e7b7ab06e6c3e241b8a8d3a3da894f1e657dbad5509a18373fe22af8a43cedcc800fcbc38481efe6026384e8d01dce510e52c5a6af36382f022fed257e719d1a64f587ec7d668151101af7353653b95ab2570446afce390fc70c3cd47d7e19675e560c70687b6802c404b12e589026e249354464f64c3e7ca204910ea201a3c7b7db65cf142bf95b63487b799dd2b073c732a6e6b047a5202b8403074fbdd558946b02b8a20b1093f01b7a9359580020860afe717aed39590fe889fb928780ccf9bec1f3521c231d9a3bdb6d6f277352957f2813262b63f00abf1ae3451ae17f380d760ace37b3d5e283c0cc977c585141f100d00004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1c1e99683f100c5291fcfcfab42742dfcbbd7da238b36d826435e3d6258d229855dcef0f9f9993420310b4c3894daa021ab46ce2c27720d27c2f3e637302220a90e69c014f157a2c21399d0febd02ec48c1328b84c537d202728a20a7e887758ee80826d36bf78a1c14fe6871118c1878ee97028e7516220c1182cf3b525ec6abc9e9b1c0228959dd707d961f28ff494d22bae2a964b6c7679c533f71a8a530425932e2190e17524344eafe845056d0259bae235d6c651191ca12d3eb5194f038acb78490f77e36c4dd76e4f63ef45d22aa4ca11d38c3b21088c44a81865ba4337b87c7a91d4a7dcefabc91dc9054f70abdbfb967c4575abf5a797db319aac963a0000009103d44800e13d4a8138321f8e5136d46433f89a098e544d462ccd80f4b568043f1696b257006b66de08d447849c21d7888d1ff0f26c14d4a6e647ab36c2d6823e4d1ea67f91aef40acb83c4426274d0f0cda28fddb1c5104a678c54c14eb1d86f25c82d15b50c0661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b1205056175726101012ae3c8fd1426dd3f6fb8a2e6190944812146e37903f9fba2fd24bd615e4c1a16cad7d93bd15ecfe14edd586082282f61460d4e631f7ab5f67dac878575936d8300000000e5a244011402be14622e45a53e1bd5cb9b82de61581a16d34d6451dfa715e00299e2ce7ed721e14bfab1431effe6ab54b33d92945f8f0baaa4dc7c92d1420be6832342aed98e02f89eca25952ba8b68e1e00fe9be6501846d646dfd111b38813dbeb97f91c535aee142135c3b742427d1abb784219673036b8057704f19239b10e953a47be748602aa3c6270f0f3f9872fddfce781e0f516d73ec1925c4e32ae063b377f629ecf48e755e9e37eb88a5b6927bc4ba87f91c97e37df9c01f7c2942694247d1c0ed18902fcc4d29ec4dc9ef797f427dbbf2598b3d75db99e1be51c0f716ab841644f6b02de1d93e48f509e6a00a383ff4a0d8f0e0127d3f21c857c0c46f643329871fd8e0104de2df5e622e20b8bf951841c5528bc68e174550aa59c541b9e41cdad99111636b72306e2ea5fa5f34630fd4f195fee0cf2f59d55139fa61941df6fea712984141f1a0d00004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1cbef638b824641614b71befd9e5eb2a8a5a0defdbf43a9b26728f086fc165322f0ccece20e77c44c38741339f219044c81f2d38d5182506985dcab72cee982c876951deaa864314ee81afbc7d3075d3e1505b3a1a05ea9c2cc395c0a984e0fd70257ecae41a97118ca74a7b4f5f79db35c72cae2066241f2b5031f3ce087104e32005aa97c3f01b5136578ece01968407dfcd9bfd0da7130064471ab5ca04e021b8701a7824f13a11d4004a3582aacf9025bdf744d94d0d8fee60b7adb007d88775f7b7f165e0c0d873f6803e8982eae082771e6c232de9c7cb605c7134b0b24ffba508061643c3b93f69433af00ee848d4b6f7fdb055fb9ab2267f7ca424200c000000910344fc69b086ed65eefe3e25800af3cec4f26d2aeab6ea137aa70a819ed636cd56029d2d00efde008b3e6baa0be1065df931126f9bae6330816e14e5a57cda6afea2d7bd22fc2531f9165a22d95b14ec7b4bc999b0dc8f76c109de647856ad67f967f316340c0661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b120505617572610101a84ecbbbe27fbd8465b176e17310e6e4abe1cb3bba6d249284f2354a59bf83067f1301b66a7a9c80cdf01d30060e6856893806761ceda60ef29800b0231c398200000000e5a24401140218f0c50765bd5b1866a33c68ff1743e634b49ddb6de374022d493912c412e3474e40988872b0caa36050d3075f25fb167a591133d464b7b7e33de89b001e5f8001642f20806ca1775aeba701b86c67f7c8ece694837016de5070296e1a3cac8061ca0f90f79432a06c62c782d14dfcef4df512e643bad235935fbbe17b605f508e023cba180d9de09edb724a5c706a3d2f36423677bd6e79017cd9454051d941611146e1798c8115c78c600a72731d44328d0d7fee7043871ff63aa6ffbc6d4f598a0116b309671fb5b6cd9a091b043a18ad28f7c901e21e0790aaf7498f19db204c1c45be2fbc1b1f11a7ecc70f41b98193ae51241ffe406b022dccb2618de66cfd8802c8e1c51590e373028be217b0222446a0d567fe637c0c66b90ac2f62baa075623d45c651e8b354410708eabfdaea2e385da199c46f9f25e35016c84d0a9ed9f8f141f270d00004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1ca89746eadfaac7eaa028f53793e421736540791b25959b69d5822ac4f1ed9625e0cbc61ba2f82a36038339696b236728140fd6627f53466ef1e4d21b9eff05fabbee3c0aa91072818bebe3b50c82cfb1df34b4229a59acc6605f836930511f41273ed53744a71b4c62adbbfdf74f3e1729f1ac4aed8c7d6b9902cc6dc2b35ae36e0d38c079ac4ef74157e32c84d6685775aa96f6835c85f3d675d0e75fd29f1d493a8d40ca0ec3a17a0989561b41c63fce6c677d9a7be747135285ff8fd6dd86e13f324e95b99dc0d285c0987e0adee37372e0b47d2e0ea2c3163ca0bcc52f958794c20026fecbdf8e6632cb5b12323a3ff7e9a0bc757e0a65ac007b446557a9000000290479419133cabc216633cc66f4702e7f4f5d8aabfcf56f4ee479e3c84f3cfb01ff325a24000de483a59655bebad381f5e66bb340a6d86e5c2766a09d2366311e295d25e06b6d61132acf12e6f1803054f9b4d88786a78ab5605a813ebe6d12e2a2502ba0ed100661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b12050449534d50800000000000000000000000000000000000000000000000000000000000000000056175726101018a1e16d67c98c9537a790df7bd13dc1d7967a25fcc45398f9a8a048b6c263842e8c6687faef6d5452439a3380b2d5d8b89224c2164d5a28e8ec8775d05c9138300000000e5a244011402dc4e39cfe4ddd9d7beced6fb77bce8004a9f4ecf8881942deb0d31f6433f885913d235b690826981706585b25381ee769849bb8e2b0c3a0184815aae92abe88102e85e9956b4a5c813eb55a3086c50c5a5e3d6ba405d73d2dae57577c8b1f30317de43d10f769d573336d5e51dcce37cddd340eabca3b4ea154efb6f46718c8e8701d09718bc01cd027b7fc27d9cf325bac89efec700b6516cf52abb36cfe4dec6566dfee814691ec67d2b1795d2e4e15358e22cd118e4b569a365197e062c0cb887015859e080f621d9d091d69eb8c2abd889174bfd7c4979e0829dbf3f6cbd3a523ac3db18747d26cf0f007b18283ee0ff8b490d90c46fd4c9ce9aec1a6c255b908001bafe6ac64b2708357a9059f57a205c77a0a3e76414b76bd88a0d26d5354c2171c25ce34a74d3c90006a81445fbdbb1ebeb0aa8ccdf055150788c6a44a4abd888141f290d00004f3705c0434e38d3b065ff327dcb9cdcb83609a019e5e921509ea72b7db75e1cce471bf18910450fbe6cf9edcca5371416fce0eafba69c30ba40c0737bfe4e293d7565fa3fa687a1bef9d5a39c75f653cc811d50f08bbc7a766c80c80a5bb2effac54227b888d2cecee3fafc281abbe9d021da15bfea13183e5a471b317bbce1ed184cb2265964b43578616b7814996269bfb10ccaec643337afd3124fecc9cf8cf0b6789fd1c0a97d5330a7f1b2cc836683c3de7c6142ca3066c92d411a65263392e37d257dd7f622a783986a3aa4ccb2b7897cf238326e685265301907418e5551795d04a29be37ebf278e15bf7746dd78bd4c9faba4aff5b097c71262ede1a3c66d6caefecb8b3777fda9c067c3f2345df24e690f5ae93f027dbbd310d6700000009103299b158741774944ed909f5bcc3e35272ea17601eabecb9f0cecf8ac391fa8789e55270048a9d5d83e1e1915c191bfd6a162b48ef6543f06a82f2b94c4031947046dc4ec06dd9ba6c46c3697e1ec4c357cea9522c14ea4af560ed391c0860c8d1e6bcbab0c0661757261203b7e8908000000000452505352906978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51968b120505617572610101588e0dee1361816265e14568bbcb7869f1cd28134be11d34c8b1ae7db6c737634c4719cbd8fe95e623a05b5d732bc7a88cda0462a17645b0168939ab33f79f8900000000e5a2440114012a3cef3f1124a53a3aef805887313ac583fad51bf4b038f1934e5aa1c0d1c43188d7ecde3c749a575a121130acb50b15b49099d816cf033051da06d4277b5884017e0c9d57123a8c12e5f78436c574ef987ece787521e22c8b383de9b1a187387d4a3668951ae0225cd9f336aacb7811798f66ea3d3f3bf1c6b5c41280b41d0b8f01a46dd44af5c26dfa6f18713989fa03918bd6814b5f7d836426650eceff8de22784000f75b4b88bc76ffa7f1fe5dcddaaec4de09cbfa0a0cabb8324ab38b5a18302fc452dd44344a663b8196764f5f2138af926c783946f2e3266bde7bd69ae7504642eeab1327e0e95673ba2d1702da5025f6f0ef47e44df6d89e96058579e348c014c9cad5a5aa949f36805cc7527262812d8b1f96b9a2dedb1aa2b422407560b7acf13c250f83b80498b715feff9fce7d42a6be9ce0f0ca3a3ff73a0c156dbd782141f002a4242e476865e4e8165d7aad643e618ad14a263623c82321c7c77afb69e4162968b12056978f1e570ad3d56088bca12ebb599b56eabc5f1dcd40a8ba40844992daaed51efba1bb38f1de123559478bbb156b3ae2ee20ec9d40fe8d344b38c42071cf15b0c0642414245b501030301000076fc1211000000006a8f46dd2a5577a0c26e5523428c3f85f4c7b6a4e2f6b75095f4763cc9642a5cd14af3b29565c46f18527ca726fa8ea0b75f296a89e002e18b6762fd4089b40a08c5a242acbeaa756937b7c43525363e06845672a6ca3394853c413b1f3dd6020442454546840355d797fd8d690bc0b5da33091334689cdfac5820bb8110b8bce539e4f696d81305424142450101cccce605861f84818841170b94d9e97baaeeecf644f940053822c9899a426d138124f48c6a39c661b764b344416e377642925f1a207c783e21b29d219a48fc8b", + "0x41028400f42a65ee25854b3448bd5850098ce6bedb8e0f158593774a68cb9e85be152c2f01acb66432cda51be2f83dccc1ac6562bac5d0e908019c8d985c47306cda7b9d481e98bc327820cb032696e2d9f6f2d0d20a8eeb2f1abf6ab9be78326a37a6a38c25021400050300f4c0a91ac2ba294bf17294a5711f7835fe9c551c9f837919244921f2337f845b07bd6931e71b", + "0x4102840080df264f875b844f9347d93a1992fbb7fdc5ca4620e8f2050af6161ab1fad29600fe99e6dd2827553581706413c554a7c125ff4c3cfa121de7898d3158662600d360ecd66dfe99181919faab6d9a49632cfbf1ca4acd0003af9f115d7d56bd370c5606080005000089ab40eebd22a7ef13d8a699fbb27259aefecaafc033e3a561664a8a0a3ba08d0718bc59ec08" + ] +} \ No newline at end of file diff --git a/src/services/test-helpers/mock/data/referendaEntries.ts b/src/services/test-helpers/mock/data/referendaEntries.ts new file mode 100644 index 000000000..0acf8d16e --- /dev/null +++ b/src/services/test-helpers/mock/data/referendaEntries.ts @@ -0,0 +1,110 @@ +// Copyright 2017-2024 Parity Technologies (UK) Ltd. +// This file is part of Substrate API Sidecar. +// +// Substrate API Sidecar is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +import { polkadotMetadataRpcV1000001 } from '../../../../test-helpers/metadata/polkadotV1000001Metadata'; +import { polkadotRegistryV1000001 } from '../../../../test-helpers/registries'; +import { createApiWithAugmentations, TypeFactory } from '../../../../test-helpers/typeFactory'; + +const typeFactoryApiV9370 = createApiWithAugmentations(polkadotMetadataRpcV1000001); +const factory = new TypeFactory(typeFactoryApiV9370); + +export const referendaEntries = () => { + function createReferendumKey(key: string) { + return factory.storageKey(key, 'u32', typeFactoryApiV9370.query.referenda.referendumInfoFor); + } + + function createReferendumInfo( + decisionDeposit: { who: string; amount: string } | null, + submitted: number, + deciding: { since: number; confirming: number | null } | null, + enactment: { after: number } | { at: number }, + ) { + const decisionDepositVal = + decisionDeposit === null + ? null + : { + amount: + decisionDeposit.amount === null + ? null + : polkadotRegistryV1000001.createType('Balance', decisionDeposit.amount), + who: polkadotRegistryV1000001.createType('AccountId', decisionDeposit.who), + }; + const decidingVal = + deciding === null + ? null + : { + confirming: + deciding.confirming === null + ? null + : polkadotRegistryV1000001.createType('Compact', deciding.confirming), + since: polkadotRegistryV1000001.createType('Compact', deciding.since), + }; + + const onGoingRefInfo = { + ongoing: { + decisionDeposit: decisionDepositVal, + enactment: enactment, + submitted: polkadotRegistryV1000001.createType('Compact', submitted), + deciding: decidingVal, + }, + }; + const onGoingRefInfoEntry = polkadotRegistryV1000001.createType( + 'Option', + onGoingRefInfo, + ); + return onGoingRefInfoEntry; + } + + const referendaEntries = []; + for (let i = 0; i < 7; i++) { + const referendaIds = ['890', '857', '841', '852', '872', '832', '888']; + const referendumKey = createReferendumKey(referendaIds[i]); + + const decisionDeposit = [ + null, + { who: '1EpEiYpWRAWmte4oPLtR5B1TZFxcBShBdjK4X9wWnq2KfLK', amount: '1000000000000000' }, + { who: '13sDzot2hwoEAzXJiNe3cBiMEq19XRqrS3DMAxt9jiSNKMkA', amount: '100000000000000' }, + null, + { who: '13sDzot2hwoEAzXJiNe3cBiMEq19XRqrS3DMAxt9jiSNKMkA', amount: '100000000000000' }, + { who: '13sDzot2hwoEAzXJiNe3cBiMEq19XRqrS3DMAxt9jiSNKMkA', amount: '1000000000000000' }, + { who: '13RKipguGKrVofVeLgMJTThA8dzJvT6Ce1jycY4Nm8cwitsQ', amount: '100000000000000' }, + ]; + const enactment = [ + { after: 10 }, + { after: 100 }, + { at: 21455000 }, + { after: 100 }, + { at: 21558000 }, + { after: 10 }, + { after: 10 }, + ]; + const submitted = [21274219, 21171395, 21108384, 21157690, 21212837, 21070067, 21268637]; + const deciding = [ + null, + null, + { since: 21109667, confirming: 21275466 }, + null, + { since: 21214334, confirming: null }, + { since: 21071802, confirming: null }, + { since: 21269732, confirming: null }, + ]; + const referendumInfo = createReferendumInfo(decisionDeposit[i], submitted[i], deciding[i], enactment[i]); + + referendaEntries.push([referendumKey, referendumInfo]); + } + + return referendaEntries; +}; diff --git a/src/services/test-helpers/mock/index.ts b/src/services/test-helpers/mock/index.ts index ed83ea732..fe3a7a583 100644 --- a/src/services/test-helpers/mock/index.ts +++ b/src/services/test-helpers/mock/index.ts @@ -30,5 +30,6 @@ export * from './mockBlock6202603'; export * from './mockBlock13641102'; export * from './mockBlock18468942'; export * from './mockBlock19772575'; +export * from './mockBlock21275366'; export * from './mockBlockHashes'; export * from './transactions'; diff --git a/src/services/test-helpers/mock/mockBlock21275366.ts b/src/services/test-helpers/mock/mockBlock21275366.ts new file mode 100644 index 000000000..45f821439 --- /dev/null +++ b/src/services/test-helpers/mock/mockBlock21275366.ts @@ -0,0 +1,31 @@ +// Copyright 2017-2024 Parity Technologies (UK) Ltd. +// This file is part of Substrate API Sidecar. +// +// Substrate API Sidecar is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +import { polkadotRegistryV1000001 } from '../../../test-helpers/registries'; +import block21275366 from './data/block21275366.json'; + +/** + * Mock for Polkadot Block #21275366. + */ +export const mockBlock21275366 = polkadotRegistryV1000001.createType('Block', block21275366); + +/** + * BlockHash for Polkadot Block #21275366. + */ +export const blockHash21275366 = polkadotRegistryV1000001.createType( + 'BlockHash', + '0x109d98b52cd3c76801e6881ec5c746eac9a3d5e6017b0b2883a85d6b2907f5dc', +); diff --git a/src/services/test-helpers/responses/pallets/fetchOnGoingReferenda21275366.json b/src/services/test-helpers/responses/pallets/fetchOnGoingReferenda21275366.json new file mode 100644 index 000000000..5fe19cb5a --- /dev/null +++ b/src/services/test-helpers/responses/pallets/fetchOnGoingReferenda21275366.json @@ -0,0 +1,98 @@ +{ + "at": { + "hash": "0x109d98b52cd3c76801e6881ec5c746eac9a3d5e6017b0b2883a85d6b2907f5dc", + "height": "21275366" + }, + "referenda": [ + { + "id": "890", + "decisionDeposit": null, + "enactment": { + "after": "10" + }, + "submitted": "21274219", + "deciding": null + }, + { + "id": "857", + "decisionDeposit": { + "who": "1EpEiYpWRAWmte4oPLtR5B1TZFxcBShBdjK4X9wWnq2KfLK", + "amount": "1000000000000000" + }, + "enactment": { + "after": "100" + }, + "submitted": "21171395", + "deciding": null + }, + { + "id": "841", + "decisionDeposit": { + "who": "13sDzot2hwoEAzXJiNe3cBiMEq19XRqrS3DMAxt9jiSNKMkA", + "amount": "100000000000000" + }, + "enactment": { + "at": "21455000" + }, + "submitted": "21108384", + "deciding": { + "since": "21109667", + "confirming": "21275466" + } + }, + { + "id": "852", + "decisionDeposit": null, + "enactment": { + "after": "100" + }, + "submitted": "21157690", + "deciding": null + }, + { + "id": "872", + "decisionDeposit": { + "who": "13sDzot2hwoEAzXJiNe3cBiMEq19XRqrS3DMAxt9jiSNKMkA", + "amount": "100000000000000" + }, + "enactment": { + "at": "21558000" + }, + "submitted": "21212837", + "deciding": { + "since": "21214334", + "confirming": null + } + }, + { + "id": "832", + "decisionDeposit": { + "who": "13sDzot2hwoEAzXJiNe3cBiMEq19XRqrS3DMAxt9jiSNKMkA", + "amount": "1000000000000000" + }, + "enactment": { + "after": "10" + }, + "submitted": "21070067", + "deciding": { + "since": "21071802", + "confirming": null + } + }, + { + "id": "888", + "decisionDeposit": { + "who": "13RKipguGKrVofVeLgMJTThA8dzJvT6Ce1jycY4Nm8cwitsQ", + "amount": "100000000000000" + }, + "enactment": { + "after": "10" + }, + "submitted": "21268637", + "deciding": { + "since": "21269732", + "confirming": null + } + } + ] + } \ No newline at end of file