From 9e99878d5583015f6e47caa80bb144a1c90ff601 Mon Sep 17 00:00:00 2001 From: Ivan Shumkov Date: Wed, 19 Jun 2024 11:53:57 +0800 Subject: [PATCH 1/5] chore: update websocket client (#1895) --- .pnp.cjs | 52 +++++------------- .../ws-npm-7.5.5-8f4a2a84a8-2e91fd634b.zip | Bin 35324 -> 0 bytes .../ws-npm-8.11.0-ab72116a01-f759ea19e4.zip | Bin 39501 -> 0 bytes .../ws-npm-8.17.1-f57fb24a2c-4264ae92c0.zip | Bin 0 -> 40774 bytes package.json | 3 +- packages/dapi/package.json | 2 +- packages/platform-test-suite/package.json | 2 +- yarn.lock | 29 +++------- 8 files changed, 25 insertions(+), 63 deletions(-) delete mode 100644 .yarn/cache/ws-npm-7.5.5-8f4a2a84a8-2e91fd634b.zip delete mode 100644 .yarn/cache/ws-npm-8.11.0-ab72116a01-f759ea19e4.zip create mode 100644 .yarn/cache/ws-npm-8.17.1-f57fb24a2c-4264ae92c0.zip diff --git a/.pnp.cjs b/.pnp.cjs index 16be705389b..530331d0627 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -2621,7 +2621,7 @@ const RAW_RUNTIME_STATE = ["sinon", "npm:17.0.1"],\ ["sinon-chai", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:3.7.0"],\ ["swagger-jsdoc", "npm:3.7.0"],\ - ["ws", "virtual:7469c013e9c5baa67d67122340123f2260ba4f66d6748855fb7f2ab67ea3fe52b2c8821a105003266d54faf99a9564056fb1b532d9ae8b6985087ab5f8394bf0#npm:7.5.5"]\ + ["ws", "virtual:b375dcefccef90d9158d5f197a75395cffedb61772e66f2efcf31c6c8e30c82a6423e0d52b091b15b4fa72cda43a09256ed00b6ce89b9cfb14074f087b9c8496#npm:8.17.1"]\ ],\ "linkType": "SOFT"\ }]\ @@ -2992,7 +2992,7 @@ const RAW_RUNTIME_STATE = ["utf-8-validate", "npm:5.0.9"],\ ["util", "npm:0.12.4"],\ ["webpack", "virtual:01938c2be4835443e5a304e2b117c575220e96e8b7cedeb0f48d79264590b4c4babc6d1fea6367f522b1ca0149d795b42f2ab89c34a6ffe3c20f0a8cbb8b4453#npm:5.76.1"],\ - ["ws", "virtual:01938c2be4835443e5a304e2b117c575220e96e8b7cedeb0f48d79264590b4c4babc6d1fea6367f522b1ca0149d795b42f2ab89c34a6ffe3c20f0a8cbb8b4453#npm:7.5.5"]\ + ["ws", "virtual:01938c2be4835443e5a304e2b117c575220e96e8b7cedeb0f48d79264590b4c4babc6d1fea6367f522b1ca0149d795b42f2ab89c34a6ffe3c20f0a8cbb8b4453#npm:8.17.1"]\ ],\ "linkType": "SOFT"\ }]\ @@ -9233,7 +9233,7 @@ const RAW_RUNTIME_STATE = ["cors", "npm:2.8.5"],\ ["debug", "virtual:4b12ba5111caf7e8338099bdbc7cb046a9f8e079a44e74d0c03dca469876e3071ebbe671c5e90ae6b78ae33e22c205fa5ed32169a4aabd1404b13c56d09986e1#npm:4.3.4"],\ ["engine.io-parser", "npm:5.0.4"],\ - ["ws", "virtual:b375dcefccef90d9158d5f197a75395cffedb61772e66f2efcf31c6c8e30c82a6423e0d52b091b15b4fa72cda43a09256ed00b6ce89b9cfb14074f087b9c8496#npm:8.11.0"]\ + ["ws", "virtual:b375dcefccef90d9158d5f197a75395cffedb61772e66f2efcf31c6c8e30c82a6423e0d52b091b15b4fa72cda43a09256ed00b6ce89b9cfb14074f087b9c8496#npm:8.17.1"]\ ],\ "linkType": "HARD"\ }]\ @@ -12205,7 +12205,7 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["isomorphic-ws", "virtual:7469c013e9c5baa67d67122340123f2260ba4f66d6748855fb7f2ab67ea3fe52b2c8821a105003266d54faf99a9564056fb1b532d9ae8b6985087ab5f8394bf0#npm:4.0.1"],\ ["@types/ws", "npm:7.4.7"],\ - ["ws", "virtual:7469c013e9c5baa67d67122340123f2260ba4f66d6748855fb7f2ab67ea3fe52b2c8821a105003266d54faf99a9564056fb1b532d9ae8b6985087ab5f8394bf0#npm:7.5.5"]\ + ["ws", "virtual:b375dcefccef90d9158d5f197a75395cffedb61772e66f2efcf31c6c8e30c82a6423e0d52b091b15b4fa72cda43a09256ed00b6ce89b9cfb14074f087b9c8496#npm:8.17.1"]\ ],\ "packagePeers": [\ "@types/ws",\ @@ -12360,7 +12360,7 @@ const RAW_RUNTIME_STATE = ["isomorphic-ws", "virtual:7469c013e9c5baa67d67122340123f2260ba4f66d6748855fb7f2ab67ea3fe52b2c8821a105003266d54faf99a9564056fb1b532d9ae8b6985087ab5f8394bf0#npm:4.0.1"],\ ["json-stringify-safe", "npm:5.0.1"],\ ["uuid", "npm:8.3.2"],\ - ["ws", "virtual:7469c013e9c5baa67d67122340123f2260ba4f66d6748855fb7f2ab67ea3fe52b2c8821a105003266d54faf99a9564056fb1b532d9ae8b6985087ab5f8394bf0#npm:7.5.5"]\ + ["ws", "virtual:b375dcefccef90d9158d5f197a75395cffedb61772e66f2efcf31c6c8e30c82a6423e0d52b091b15b4fa72cda43a09256ed00b6ce89b9cfb14074f087b9c8496#npm:8.17.1"]\ ],\ "linkType": "HARD"\ }]\ @@ -19989,24 +19989,17 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["ws", [\ - ["npm:7.5.5", {\ - "packageLocation": "./.yarn/cache/ws-npm-7.5.5-8f4a2a84a8-2e91fd634b.zip/node_modules/ws/",\ - "packageDependencies": [\ - ["ws", "npm:7.5.5"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["npm:8.11.0", {\ - "packageLocation": "./.yarn/cache/ws-npm-8.11.0-ab72116a01-f759ea19e4.zip/node_modules/ws/",\ + ["npm:8.17.1", {\ + "packageLocation": "./.yarn/cache/ws-npm-8.17.1-f57fb24a2c-4264ae92c0.zip/node_modules/ws/",\ "packageDependencies": [\ - ["ws", "npm:8.11.0"]\ + ["ws", "npm:8.17.1"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:01938c2be4835443e5a304e2b117c575220e96e8b7cedeb0f48d79264590b4c4babc6d1fea6367f522b1ca0149d795b42f2ab89c34a6ffe3c20f0a8cbb8b4453#npm:7.5.5", {\ - "packageLocation": "./.yarn/__virtual__/ws-virtual-49f0813c39/0/cache/ws-npm-7.5.5-8f4a2a84a8-2e91fd634b.zip/node_modules/ws/",\ + ["virtual:01938c2be4835443e5a304e2b117c575220e96e8b7cedeb0f48d79264590b4c4babc6d1fea6367f522b1ca0149d795b42f2ab89c34a6ffe3c20f0a8cbb8b4453#npm:8.17.1", {\ + "packageLocation": "./.yarn/__virtual__/ws-virtual-9c0ceafc6c/0/cache/ws-npm-8.17.1-f57fb24a2c-4264ae92c0.zip/node_modules/ws/",\ "packageDependencies": [\ - ["ws", "virtual:01938c2be4835443e5a304e2b117c575220e96e8b7cedeb0f48d79264590b4c4babc6d1fea6367f522b1ca0149d795b42f2ab89c34a6ffe3c20f0a8cbb8b4453#npm:7.5.5"],\ + ["ws", "virtual:01938c2be4835443e5a304e2b117c575220e96e8b7cedeb0f48d79264590b4c4babc6d1fea6367f522b1ca0149d795b42f2ab89c34a6ffe3c20f0a8cbb8b4453#npm:8.17.1"],\ ["@types/bufferutil", null],\ ["@types/utf-8-validate", null],\ ["bufferutil", "npm:4.0.6"],\ @@ -20020,27 +20013,10 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["virtual:7469c013e9c5baa67d67122340123f2260ba4f66d6748855fb7f2ab67ea3fe52b2c8821a105003266d54faf99a9564056fb1b532d9ae8b6985087ab5f8394bf0#npm:7.5.5", {\ - "packageLocation": "./.yarn/__virtual__/ws-virtual-90d8bcd261/0/cache/ws-npm-7.5.5-8f4a2a84a8-2e91fd634b.zip/node_modules/ws/",\ - "packageDependencies": [\ - ["ws", "virtual:7469c013e9c5baa67d67122340123f2260ba4f66d6748855fb7f2ab67ea3fe52b2c8821a105003266d54faf99a9564056fb1b532d9ae8b6985087ab5f8394bf0#npm:7.5.5"],\ - ["@types/bufferutil", null],\ - ["@types/utf-8-validate", null],\ - ["bufferutil", null],\ - ["utf-8-validate", null]\ - ],\ - "packagePeers": [\ - "@types/bufferutil",\ - "@types/utf-8-validate",\ - "bufferutil",\ - "utf-8-validate"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:b375dcefccef90d9158d5f197a75395cffedb61772e66f2efcf31c6c8e30c82a6423e0d52b091b15b4fa72cda43a09256ed00b6ce89b9cfb14074f087b9c8496#npm:8.11.0", {\ - "packageLocation": "./.yarn/__virtual__/ws-virtual-110db35f33/0/cache/ws-npm-8.11.0-ab72116a01-f759ea19e4.zip/node_modules/ws/",\ + ["virtual:b375dcefccef90d9158d5f197a75395cffedb61772e66f2efcf31c6c8e30c82a6423e0d52b091b15b4fa72cda43a09256ed00b6ce89b9cfb14074f087b9c8496#npm:8.17.1", {\ + "packageLocation": "./.yarn/__virtual__/ws-virtual-59f3d5fa16/0/cache/ws-npm-8.17.1-f57fb24a2c-4264ae92c0.zip/node_modules/ws/",\ "packageDependencies": [\ - ["ws", "virtual:b375dcefccef90d9158d5f197a75395cffedb61772e66f2efcf31c6c8e30c82a6423e0d52b091b15b4fa72cda43a09256ed00b6ce89b9cfb14074f087b9c8496#npm:8.11.0"],\ + ["ws", "virtual:b375dcefccef90d9158d5f197a75395cffedb61772e66f2efcf31c6c8e30c82a6423e0d52b091b15b4fa72cda43a09256ed00b6ce89b9cfb14074f087b9c8496#npm:8.17.1"],\ ["@types/bufferutil", null],\ ["@types/utf-8-validate", null],\ ["bufferutil", null],\ diff --git a/.yarn/cache/ws-npm-7.5.5-8f4a2a84a8-2e91fd634b.zip b/.yarn/cache/ws-npm-7.5.5-8f4a2a84a8-2e91fd634b.zip deleted file mode 100644 index ce54109cc3af0c4ab1b34122b016ab94e8a03b70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35324 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

9&%KcMU;5J^;rvd7 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 diff --git a/.yarn/cache/ws-npm-8.11.0-ab72116a01-f759ea19e4.zip b/.yarn/cache/ws-npm-8.11.0-ab72116a01-f759ea19e4.zip deleted file mode 100644 index 337545a406acce4e5d088015fe13603083526cbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39501 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 diff --git a/.yarn/cache/ws-npm-8.17.1-f57fb24a2c-4264ae92c0.zip b/.yarn/cache/ws-npm-8.17.1-f57fb24a2c-4264ae92c0.zip new file mode 100644 index 0000000000000000000000000000000000000000..cd6b6f229ef7e7e6edea19751824617c958253aa GIT binary patch literal 40774 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.0.2" peerDependenciesMeta: bufferutil: optional: true utf-8-validate: optional: true - checksum: f759ea19e42f6d94727b3d8590693f2d92521a78ec2de5c6064c3356f50d4815d427b7ddb10bf39596cc67d3b18232a1b2dfbc3b6361d4772bdfec69d4c130f4 + checksum: 4264ae92c0b3e59c7e309001e93079b26937aab181835fb7af79f906b22cd33b6196d96556dafb4e985742dd401e99139572242e9847661fdbc96556b9e6902d languageName: node linkType: hard From 7443cb5235be070f069908c3bc41cc7f3db4de4f Mon Sep 17 00:00:00 2001 From: Ivan Shumkov Date: Sat, 22 Jun 2024 16:29:08 +0700 Subject: [PATCH 2/5] chore: update Karma to recent version (#1901) --- .pnp.cjs | 62 ++++++++++++------ .../debug-npm-4.3.5-b5001f59b7-cb6eab424c.zip | Bin 0 -> 15819 bytes ...karma-npm-6.4.3-c1db2b322c-7fc194f5d4.zip} | Bin 180107 -> 181117 bytes ...dapter-npm-2.4.0-36a74a6ea1-e10c8c36a1.zip | Bin 5693 -> 0 bytes ...dapter-npm-2.5.5-7a0505537f-e364733a4c.zip | Bin 0 -> 16078 bytes ...ket.io-npm-4.5.2-11f9913f37-872605db0f.zip | Bin 283781 -> 0 bytes ...ket.io-npm-4.7.5-7db6120b90-911528f5bf.zip | Bin 0 -> 340899 bytes packages/js-dapi-client/package.json | 2 +- packages/js-dash-sdk/package.json | 2 +- packages/platform-test-suite/package.json | 2 +- packages/wallet-lib/package.json | 2 +- packages/wasm-dpp/package.json | 2 +- yarn.lock | 58 ++++++++++------ 13 files changed, 85 insertions(+), 45 deletions(-) create mode 100644 .yarn/cache/debug-npm-4.3.5-b5001f59b7-cb6eab424c.zip rename .yarn/cache/{karma-npm-6.4.1-5443d36ee9-24faabfaf0.zip => karma-npm-6.4.3-c1db2b322c-7fc194f5d4.zip} (59%) delete mode 100644 .yarn/cache/socket.io-adapter-npm-2.4.0-36a74a6ea1-e10c8c36a1.zip create mode 100644 .yarn/cache/socket.io-adapter-npm-2.5.5-7a0505537f-e364733a4c.zip delete mode 100644 .yarn/cache/socket.io-npm-4.5.2-11f9913f37-872605db0f.zip create mode 100644 .yarn/cache/socket.io-npm-4.7.5-7db6120b90-911528f5bf.zip diff --git a/.pnp.cjs b/.pnp.cjs index 530331d0627..76348ac1ac5 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -2655,7 +2655,7 @@ const RAW_RUNTIME_STATE = ["eslint-plugin-jsdoc", "virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:46.9.0"],\ ["events", "npm:3.3.0"],\ ["google-protobuf", "npm:3.19.1"],\ - ["karma", "npm:6.4.1"],\ + ["karma", "npm:6.4.3"],\ ["karma-chai", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:0.1.0"],\ ["karma-chrome-launcher", "npm:3.1.0"],\ ["karma-firefox-launcher", "npm:2.1.2"],\ @@ -2965,7 +2965,7 @@ const RAW_RUNTIME_STATE = ["glob", "npm:10.4.1"],\ ["https-browserify", "npm:1.0.0"],\ ["js-merkle", "npm:0.1.5"],\ - ["karma", "npm:6.4.1"],\ + ["karma", "npm:6.4.3"],\ ["karma-chai", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:0.1.0"],\ ["karma-chrome-launcher", "npm:3.1.0"],\ ["karma-firefox-launcher", "npm:2.1.2"],\ @@ -3053,7 +3053,7 @@ const RAW_RUNTIME_STATE = ["eslint-plugin-import", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:2.29.0"],\ ["events", "npm:3.3.0"],\ ["https-browserify", "npm:1.0.0"],\ - ["karma", "npm:6.4.1"],\ + ["karma", "npm:6.4.3"],\ ["karma-chai", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:0.1.0"],\ ["karma-chrome-launcher", "npm:3.1.0"],\ ["karma-firefox-launcher", "npm:2.1.2"],\ @@ -3118,7 +3118,7 @@ const RAW_RUNTIME_STATE = ["fast-json-patch", "npm:3.1.1"],\ ["https-browserify", "npm:1.0.0"],\ ["json-schema-diff-validator", "npm:0.4.1"],\ - ["karma", "npm:6.4.1"],\ + ["karma", "npm:6.4.3"],\ ["karma-chai", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:0.1.0"],\ ["karma-chrome-launcher", "npm:3.1.0"],\ ["karma-firefox-launcher", "npm:2.1.2"],\ @@ -8411,7 +8411,7 @@ const RAW_RUNTIME_STATE = ["eslint-plugin-import", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:2.29.0"],\ ["events", "npm:3.3.0"],\ ["https-browserify", "npm:1.0.0"],\ - ["karma", "npm:6.4.1"],\ + ["karma", "npm:6.4.3"],\ ["karma-chai", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:0.1.0"],\ ["karma-chrome-launcher", "npm:3.1.0"],\ ["karma-firefox-launcher", "npm:2.1.2"],\ @@ -8567,6 +8567,13 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ + ["npm:4.3.5", {\ + "packageLocation": "./.yarn/cache/debug-npm-4.3.5-b5001f59b7-cb6eab424c.zip/node_modules/debug/",\ + "packageDependencies": [\ + ["debug", "npm:4.3.5"]\ + ],\ + "linkType": "SOFT"\ + }],\ ["virtual:2a426afc4b2eef43db12a540d29c2b5476640459bfcd5c24f86bb401cf8cce97e63bd81794d206a5643057e7f662643afd5ce3dfc4d4bfd8e706006c6309c5fa#npm:3.2.7", {\ "packageLocation": "./.yarn/__virtual__/debug-virtual-d2345003b7/0/cache/debug-npm-3.2.7-754e818c7a-d86fd7be2b.zip/node_modules/debug/",\ "packageDependencies": [\ @@ -8623,6 +8630,20 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ + ["virtual:7a0505537f63825f62aaaf982168c2b7c1e816756656d44af98202b8d07990e163024e7dadf5587aa11d691887401ca8792ff06467da4d479c747705c9e87544#npm:4.3.5", {\ + "packageLocation": "./.yarn/__virtual__/debug-virtual-e443f3d004/0/cache/debug-npm-4.3.5-b5001f59b7-cb6eab424c.zip/node_modules/debug/",\ + "packageDependencies": [\ + ["debug", "virtual:7a0505537f63825f62aaaf982168c2b7c1e816756656d44af98202b8d07990e163024e7dadf5587aa11d691887401ca8792ff06467da4d479c747705c9e87544#npm:4.3.5"],\ + ["@types/supports-color", null],\ + ["ms", "npm:2.1.2"],\ + ["supports-color", null]\ + ],\ + "packagePeers": [\ + "@types/supports-color",\ + "supports-color"\ + ],\ + "linkType": "HARD"\ + }],\ ["virtual:87db25c7c5e6b25bbc12571091cdabc648b79d427ab445d1714ccfdcdfb3265c9de6561ca760cc3de470037cbedf3af4be56ba3b684b3a1c01d4c9c2fd55a741#npm:4.3.4", {\ "packageLocation": "./.yarn/__virtual__/debug-virtual-762d08cbe9/0/cache/debug-npm-4.3.4-4513954577-0073c3bcbd.zip/node_modules/debug/",\ "packageDependencies": [\ @@ -12663,10 +12684,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["karma", [\ - ["npm:6.4.1", {\ - "packageLocation": "./.yarn/cache/karma-npm-6.4.1-5443d36ee9-24faabfaf0.zip/node_modules/karma/",\ + ["npm:6.4.3", {\ + "packageLocation": "./.yarn/cache/karma-npm-6.4.3-c1db2b322c-7fc194f5d4.zip/node_modules/karma/",\ "packageDependencies": [\ - ["karma", "npm:6.4.1"],\ + ["karma", "npm:6.4.3"],\ ["@colors/colors", "npm:1.5.0"],\ ["body-parser", "npm:1.19.0"],\ ["braces", "npm:3.0.2"],\ @@ -12686,7 +12707,7 @@ const RAW_RUNTIME_STATE = ["qjobs", "npm:1.2.0"],\ ["range-parser", "npm:1.2.1"],\ ["rimraf", "npm:3.0.2"],\ - ["socket.io", "npm:4.5.2"],\ + ["socket.io", "npm:4.7.5"],\ ["source-map", "npm:0.6.1"],\ ["tmp", "npm:0.2.1"],\ ["ua-parser-js", "npm:1.0.33"],\ @@ -12710,7 +12731,7 @@ const RAW_RUNTIME_STATE = ["@types/chai", "npm:4.2.22"],\ ["@types/karma", null],\ ["chai", "npm:4.3.10"],\ - ["karma", "npm:6.4.1"]\ + ["karma", "npm:6.4.3"]\ ],\ "packagePeers": [\ "@types/chai",\ @@ -12727,7 +12748,7 @@ const RAW_RUNTIME_STATE = ["@types/chai", null],\ ["@types/karma", null],\ ["chai", "npm:4.3.10"],\ - ["karma", "npm:6.4.1"]\ + ["karma", "npm:6.4.3"]\ ],\ "packagePeers": [\ "@types/chai",\ @@ -12784,7 +12805,7 @@ const RAW_RUNTIME_STATE = ["karma-mocha-reporter", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:2.2.5"],\ ["@types/karma", null],\ ["chalk", "npm:2.4.2"],\ - ["karma", "npm:6.4.1"],\ + ["karma", "npm:6.4.3"],\ ["log-symbols", "npm:2.2.0"],\ ["strip-ansi", "npm:4.0.0"]\ ],\ @@ -17273,25 +17294,28 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["socket.io", [\ - ["npm:4.5.2", {\ - "packageLocation": "./.yarn/cache/socket.io-npm-4.5.2-11f9913f37-872605db0f.zip/node_modules/socket.io/",\ + ["npm:4.7.5", {\ + "packageLocation": "./.yarn/cache/socket.io-npm-4.7.5-7db6120b90-911528f5bf.zip/node_modules/socket.io/",\ "packageDependencies": [\ - ["socket.io", "npm:4.5.2"],\ + ["socket.io", "npm:4.7.5"],\ ["accepts", "npm:1.3.7"],\ ["base64id", "npm:2.0.0"],\ + ["cors", "npm:2.8.5"],\ ["debug", "virtual:4b12ba5111caf7e8338099bdbc7cb046a9f8e079a44e74d0c03dca469876e3071ebbe671c5e90ae6b78ae33e22c205fa5ed32169a4aabd1404b13c56d09986e1#npm:4.3.4"],\ ["engine.io", "npm:6.4.2"],\ - ["socket.io-adapter", "npm:2.4.0"],\ + ["socket.io-adapter", "npm:2.5.5"],\ ["socket.io-parser", "npm:4.2.3"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["socket.io-adapter", [\ - ["npm:2.4.0", {\ - "packageLocation": "./.yarn/cache/socket.io-adapter-npm-2.4.0-36a74a6ea1-e10c8c36a1.zip/node_modules/socket.io-adapter/",\ + ["npm:2.5.5", {\ + "packageLocation": "./.yarn/cache/socket.io-adapter-npm-2.5.5-7a0505537f-e364733a4c.zip/node_modules/socket.io-adapter/",\ "packageDependencies": [\ - ["socket.io-adapter", "npm:2.4.0"]\ + ["socket.io-adapter", "npm:2.5.5"],\ + ["debug", "virtual:7a0505537f63825f62aaaf982168c2b7c1e816756656d44af98202b8d07990e163024e7dadf5587aa11d691887401ca8792ff06467da4d479c747705c9e87544#npm:4.3.5"],\ + ["ws", "virtual:b375dcefccef90d9158d5f197a75395cffedb61772e66f2efcf31c6c8e30c82a6423e0d52b091b15b4fa72cda43a09256ed00b6ce89b9cfb14074f087b9c8496#npm:8.17.1"]\ ],\ "linkType": "HARD"\ }]\ diff --git a/.yarn/cache/debug-npm-4.3.5-b5001f59b7-cb6eab424c.zip b/.yarn/cache/debug-npm-4.3.5-b5001f59b7-cb6eab424c.zip new file mode 100644 index 0000000000000000000000000000000000000000..c621a4c78dda2804577a92dd1d0b54e83c0af3fb GIT binary patch literal 15819 zcmaL81C%Dq(k|TYp0;hchDJJ8Hik}?MhBsV0hUAJUtVOS0%E-i=V+ZyQjnTk4r3U9*P<~)DO?!wL0(~E>Lh&sy8z% zRbhESX3tAV@D(9r4aN@sTIK1wW9Utl3_DG7N^P5|=>EW)89TZfF#yd!)>xZX{epoS zOPG|z_BUCvoh%496LUIUf)+=>3#r;V&HP~tnj0H$ZBgj&@w@TCmOI7F9ATOO+dNwR z^I?+Cff|NFmQV)}M4Kqis)*s}mK!(MBY=9}0bL0%xk>S}87{QUnjdW5)IzKkf9VX$ zY2gf?ld=M4H<*{9@KB!N0-&>4av6)EqV6fCceo=W@ONV@_cTEQ{!xUGZAF-41~nOBX9&XHoRn}_&ozL! zG8nOIE+RKs9Y@MO2JWgDv0$aaZ^$IXV`Om*>fcKG9a6so2Nh`RGV(t_%oO8fNXl+F zWEbfXDVBWs_5klNB;&QiX=XbwKBMXfHNxLh{neAD*il8X5qm{`@JZ^G*!2x?2meT~ z_t?s3G>r3FU)5?zyX^{ehxRcbsY}$4tXC4}9{R0Nrg|cAzzs$!ECZZ627PLl5jx_I zI8gX8A(&6PJbNxu6Qn@x@O5O=r|z%G;kR9FgD&g?@XxCO?Z1EA4)z9rTM?1Ggll|1 z007+oSP=ZPk-oi+i-VCpt+_*|n!Lk0E24LkH)z@tiP3n0)+R-<>&Alo1=jQ2L6rn; zsw5MGkRYOExUPU)UHnV;b~Ckyk z=Jg1!Ojn!g{->4kR%(o|)K*<81~cJ{nXSwir){zOyvrZN=3|O=BF^iB4)fu&gy;jM6(KLR2;n7L&^enBv)njztv00RlzNekx+_rW0FavQb!U%o;E$|RBZYNWSL zm>{(K#xahs2+`A^n*VT1T~{0(jM9VhE@b`%sb!rxWQ6QETDLwmb!m6pBw1@q_Dl47 zN{@uL!-k8icRA$6h8fa5nwQVTvHSY*|?@2i?`3 z{h?u*36q28v#UA5bo$vD@$z*`CXZ)(UA*DggDcGWkKlrMZB@KsdH)g{x+7D_<9{2z zBVIn?z;@#1Wq#P6Ji=eTYQxRSz}ewspGbGzN0=U?&C2loxy&Bi$>*}3+{yF)R2`Yf z($yh^yQX(@^I6xQglo6c)15j(Hg}mkLR=o9&QI`{7aV-g-UyeEuHB)3+Up2;@NCiL zb>d#5&HiP8`7zZVmHx{N=3sJ3>hNXTg5foU85~I)2>B)e&=oQc;ByR@D@8+U5$63X zkmg;KM?;4FXOBR(F9P%nfqeuP!A+6Ytgm>A9nFeUl?n$9Yj~2ffNn4D1u5K$DYvmW zXo=PcTobaIP;Juw;5=Fkx-6jO#T?LG3)q2V(}BjFIH?#`ELlPrv5k<-1bb59r<#F$ zl&sywnbQ5EukJMfc6`2uBhh3VQ{~;jQhpO>AZkVJ$7_Np1ayXp35I_@0mwn4QIS*w zwG>=zx{}hIMuGI865@a?C9ol@rH0Y!nt4JibG*r2fEW>La^PJ#r^E{uzAnJ=tY&%8 z2?Fq06+AIH^9t51_#GKLUHQ0ZjzM{(IvNl}SG*gflTKzvP0kpWBGA)i^JGfN3?+h* zc!q5{N*tuKAXOZB>5L%w#e6XrRQ~hz{i5<}<+!@yO`3-DdTo)`fk@5>hBFuz%EHP4 zhororqS4R2cmlJs(IRjToiU8z-0fqb_qeh)-c0$8YZFls9!08LQ3$n_s2M)udwN*V ziWkEMDT29A5?CMc=l0tsCTSL%PKwf?*5o6GbSy>ga0BF%1I$4sS*8KdFy#9e)0>oT zSn!a5mT%je8@=r+OD5psr8WVR3Q*Yzf#?aHa8VVDAB{|AM~eez>32d>iEYtrB>O;N zfl+VUuOj(j>h1G91Phy~6&r@M-n7C_8lxu6R6bH?K@+UGY6N?>GGl z^?#6)2S%fw0n_ruBxVf~^0~4^BUCYZmnx|Yh0eaqcMdNb2*G5ozJppL@>g!$yvR$CU&8|eIF9i`5rfVeQD==ZCY#jb)F=d(Ayi&V;GDzP!N=s3-H|t)&Xgc7gP~h z`P~GFL4Xzp!4PiYcIBV?!n+%6xK8+Q66?mO!8@+D101J56+dbLU=FY5frd12G2*sM6ox1H@|8 zWHTx#tL*iRo{jIz?n?$R?ZWQnPR-~VLe4Tmp5WN zpx5!9jOWSD^D=$a?z&{as?286A1u(U=fY+xGQj%6?030x`Scuftsd8cVtd?J^4|9L z)awKt>AkT|MDz?FCc;Tfszv_$4=qY7l;2Jvk7ycCNXvCNkFU9(O4}_G^oUP4u`WDw z*lu$`dsWafAntU;KOgdHN`ulJh#!xLU_G0{H5V)xj&+5>Js(0>z_ zFK!bB<)K;y87w{(UMJ!AAE(=N|1P2rc>k3yXS6D(2PMsPzimA+W&n9^ zw=&Ey$CJIuNVf+wYajNyr7_nB$KxERy@J~{d(N7E<+--ndOw7a)TfDF3jusCGPAzY zn)Q;(f9>$S_6Dfu;Px&Ca8g_V9ke8|{EKLKh-yHq@(j;rt3z)W?mM0hTuWu@(rd^o zLybO*03y+;&{fKJzy28GarGIj=G12mVyXKaoQ(NIva}2_B{#=xU@PEl!#BJe&EV|v z{3-j2RWCiFMg(&MX3UZ+2RZKBj`)Fy|a|+g4643h=2CQFvEN6Sd?at zP7|Foh#G2OtA*#{0i?-ld3yOI#|pt4wIY&|Tu*GT)cOU;SHe*#$`kns^>@$S$TV+y z->}cnRh2!!XEN=YO{$0+ zzGxlpVHy(0SVebMVJKa2>y9MrZs!>(^OEP^6=sgd%EoEO(%oi`!qpvD4gH5p2yD6S z_4{{{YBQnWHafcu{+93*G@oQn`zFLsRaey)@g*3@7bNXGS08BqOWFRlA7MrFvmtZG+{0s%IS>dm*) zOilJS2(4QhNr)=QY_NWNnFJ>ajk>jhhO3a81mC|+#Ny!MVMDJ1zSqPD_u{o9QqwG* z3)Xh1jV01RP96nm%}y!Dg&oxEX&PO~Oss06xrmq|<1ZW0E(xkz8|6Y%p;{(~xivOl2idCw+l;VX z+Ym?G9l`vJgUfx9f5_mdW$y%4y%aTv9W3b-?P7|#&>z2FdYdjQzL&{UL{ z12V@^0NGGGCeT9640Xk0nE>wN3i00HB-taatSV^ZgkD?Y*f z$D*;*LZ@@g8p0QpgJG_`YDFMNeU~}l!ifF~1_zbmyM)rYA1~Fsf^b#<A}*LZ}C%Wl#D=Zj0z)6#zgYqP5{k5lcMc*m8!c6Cws9)#<^&_u?c;MeB#wNc)ITm#y`-yXVu01`?3CLCBYjv;@u7AiYjmKU!blXjt{n zSu};VrF_~hovF67^}9Lj3r?uoX+U?3Cm;JyDI%~@5p2}c{2sAaP`!}uSC2GgkcuErs3R%!gQVd#UMU*&pm{VMU)^5XTPj$ z7xJY5^a1Q!GT7#u%nKDbRYN1l6h}*uvkO$Jbijspn2IF2swcsZf`D}WyA#tb^W=F} z{)FjTd~T_5)^tvq82x8-$v)l2O6Zbq@(`@Wu+$1OhP?b0`wMi^j|)<%RFEEk{*&r4 zf?GmAJf#jlbTz`tP}RT3V>dM^-(b5$@sI-a#HtzM5;I2=pRiiJl8ezjn?iW1M9-Vu1u7UCEcln0 zr+WKW8h_l37CDW|d~dpPTZjMH^FUCEQ=01opy@_L24}0gItfL`0Z=dnkZ{FLc~hc= zS(CVJdR39KkiK>?TX#2tHf+_DguN}xl&|6xNPYJd*+N>mKqc zZUny>fqh23gj?4R4fL>Tm~mR6is^puz$6RrPIGDClli&_X4?^hwDZ%MYJlq}#q$Bl zb?UFIbZ}DXjM|8usE%j@S8e(}e&m2mBvfG{bADFdEN{mB_5OW%DkM^eK#z?o8?;Fl z;uilN71#3|zl7gKcdY2C2MWEF;egg_mEFOqZSOx5%7o}KoH~@p&4<%v!PystMtj%E ze{X1zriIU(8&FWD(}|4xDqV zmlcN+i1`K$m<5D}cS`r9EeOxIYfz-?Iv{LT%okl@1#143Sr67A4p1_!_L(Gt;;nea zWpL(6=#5C5aY1~)o4=X4{oo4+!hDrf?W@t_$X;IM80_|>=w&%cnw|^bl>Fo{6`2Q4 z;~a*gZnXXp?Ui&TQs4&X+9BkEUeiY{#UXQjMKbF~Ew+Z{WczxL=7=9`;#9IZS2m+a zI}-XfD%j68=oJ>=?m7+^a0&ScNO3Lv>Y3YllZgr}qQ5%$iHIJS3+x)7B z-kWEO#4O>kk;sOD{?+m3^fG4HU@W`q@!^FtpnQC)eAvT{t`59o(b3XroDThjZqk*= z{0{S4=@A~p>saty&}ANj9C1aqdnX9c$2SIA=M5Qdv`uB_x0m;1RTW>2&!#5v-jMDuP3sY$;EzSG>UGw(WbZ$pTvh@ty45B%2>prIKS)DhTCR95m<9AyYGc}VE z9nuYS+#I*ybQ|bIB&1GJ9gryYw{2`rybIkHHhvh4`6Bn>bUf)wOpnns=Ma;-KL+m| zKO2TW2*5C;Wk4iVL!nH>Hw8V$*N^{XOETQ99!-B(5+@)40Ny{dB{OS7BiBDgNdqy<~ zTy8Tmq{ho*g&Hxm5|3`?27NDuXASpGBB6?4ajbDWhOi#qER}l(afO80T|3KA)XHFW zkRG-1NgJ&4m_Yu014`905DV6QbPB2LP4;6H0?91`7jE;Ahi7_9jPCqIa0-dogqz!v ziG82eVngAkdiiJhE1=1tPnwkj!f&1b95StO! z6m;0Snp$XXtH5UM@~QIbJZQ%EI~+6w3g!NW%DYItPmvZ%1%gCiQWx|7-Tn$((S`Oq zxwK;@H#U#|QYiX-P-xN)=G!LOm{L~#mLS_=!;BXbY%&?UIkW+#cEwcRu3pXDy9_ZY zq3F$}9>+oJAbd|CYtJP4J``o++W7-O#yhasse1i(ih)&11Y1FyTImA2qF`1&T$~0Q zIDtVdsAz;^nm|Q!f6ky5-X6El4Uj61*mjy>s#JrpJC-yr-iHd`NJkk~GV46bROV;( zdK<*~h>B?9Fc7Qw_tUG;&@F<~AV6k=acF1_7bvTK1G`Iis4XM#II#nl- zl|VbBunOcIuej?*K*YF(*Z?s2p;AU;UF61y+C$G#BANu)5q%XBLByt-sdM&?)}0-i zD*GXf#%78+T8cesE9Ij#mqj~HdScr|q|eZ?v$G0T`;c8iF%AQ;kK#@UUXzNT)&TeP z?yH-k6FjNsDALO<$P*Bx^0ASwU2Q$v2?k?>q2=g6>?e=p6Aeeh!ANXe5|(;v+#$C5 z)a*z+@K4x^Dd2JkOOD}W2TP~u%BirVbhXz1tqwEPrha<7!$ZR>baGJnjC9-aBIG8!`+Erad!mJ!n*HqU1FMk=#C zaOw~Zn_1ldv-o@Fl+XSxCd2#qYUZ__%@&Q*mW^}8!Et*wE+0I)jS5c+o5ykC6pQmK zcfT6Z*d`Q2vbO%J3NVgP!#5@@H1!zr-aN>uNTmjfikcynn@}}6$sfNa^&HH0B|a=L z{0tplwY*OYo;9rxru`g~jyIVwEO!EWYQS@7tiYE-#d#S}QW60JD6fWd@-XzK_hNcbhLe0t!cvza9%-b?;dy{53{Is7GLU#b{n)_aSdT-*An zoBR>tn-69~$9Y5zzauGFV2~615jQQ-)%%GNoay4I-h!<9Si)wgnKl6|Zqn}QNH7}e z*&VJOZtXfA_=8pno%!IsBJ$0o;8cBJ?%h|WPrvhb8_e51?u(17jFUuh-8EpL&v=~# zrbBK$Ym2Zmd6q#;t%=@9LVOKc_1!Vm`{E^W#+AQ@BNZl_DVY(9fX=t8R3mRT3Wnimq;wvLY|As%3#+j2HRRnC|z5x&+O-> zpZayX3c=-Sbjoj)sG5C=+|^)->J&sw9ScPMcn$Gm^)J`*0Uk86+xcjCNfPV{UsUf^ zULZHHueKYI40&Q_flZg>8H0(XjX&}B)cQjr${pzURz!)C?LI7fbYloZd7HwL7xOJjPx-l|y!E>&5Y8fZ25K^q=~gUSNa zO7+29>1PSgB#>auOIP~Sloe^Cz|qv5 zAXjIyK9w@`>zK(^iNsU}VksUp(m`Lu&R>R~nB0y(YZoNyp8d&73MI+_i01-XD|+!L zEp$)^@y?urE-+itFowe!iEGm#n0@ZFB?&E9_4JhREeKbmT4Z6<1V`cBDmy~WQPPiy z7nTKs$C{ZZQL4U(^Ic|Uy|iEdyRpDbeO1Od652RD6ymFlEYWLphpP(LK*k|jRIjI0 zMjIyt{?3fCr>+EkW8DjphmT6 zb#r;*O5n)TKJ|qtr8J6)ff1>b#j>lV);@>{=44TPQSo;l<4Z_hM^nxLv;g@TV7^8y zx@}Zyu+LS_pOv_y;Z|bGUAlKk7c~#osnc{^meTkoAy>FIv^$P#X+i%}w|sTRWQ-9n zBKC-nm;hDi4BU9wnUJ2m@$mf6#Y>rr@))_;IgZ0-5}AM6kqg9<)BE+?ZlmRf?LWyv zLhZ~<(I4-273e?mBU?QK3q6y+xPpzfm6E*dIz7Div1-PfZ*T)UGcq%Qil0cKA30oP zvzb)YJ}GT<<|-_S{>O9XWr6stHsX7G`!(-&=BG0Ny?n!7g2V3v&qd^fX#C z=9p7|T!Jp+V$pUjpD6mvf_L&cEEUh4?XOKO-?b;ra1rI_hyF^h@RC@n=KFBAa0tRa(*Eti(w|bjcvUI+6z;lhX;E5%qdV8iU#H`?*R9i#GIa>Ps6D z4tcsb6#}deR%L1Wa(Bdli_ba*OGFT4zqPOYERNj_DDMPXB){`~49Nu%5>f;1Y=yn= zXDx&b#FJhVU8YRrXO^M*qGhI{AQsDbLtN&9x7Z9c=)V@j^)U^~g{~log#>V{yCcnl?4mW(%-S zz?5yOdXnbARP_+g#i_K;+Bj{16#P7WVcT$W!!57FVSO@M2g1G^+Dn zn;v;Ylg6cc+=IevyPx&U#QW{OB+lo`_X7T(pLm|m&+E`Xhow8J007wkoewJr3kXRI z(^?r0YJS?Uv&VmD%lav^Qc)1e6B>=u^pz@kt4>VOBN&-T$s8P znd9wc?c!QyA9!y9P>eYn8?%+PO^6D?n=)fY;k^OxP$7)mnwxKa?LKW%W`OJec3Y+V zEM*<9Gjd-sHwt@(FOueK*f(6;8=I6ZebXz3oBzfp(>|DvM%7LmE%L~SGDxRi0x?h0ZS0PNXTT2UGwPf)YEMj@`Fa1!aZ4&DgI}leqvSfe$c!xoVB#O)r zf)=bk9gY~JgsgXBDwNPO6ur&QoMP=*_#O;)IxX%#bf7s-#i*PzqoGW@^+ZMzF@%-y<&NWb0(8+CHwR` zZQugmuj-5}O0uCTC#$2^h`8cr(WmGihg2^vcGup-0M~PsMMOVS^_(7_mxikBf z2+1d7$g;W6%y>GTcT-Je7Lm^0Dl3eRlGI5KA7f8FB>n+$rMO;m7PsOvaVT@W6_0MVC1N_0u%w|n}$Sd!%Rhm-Bd6hsnvr@Fj zpQxY33+^|FlcNX&H_OVuM>LY4${sb69%?n315F{`)Tisfv1ySKV{r9lIi(p2-8H?A6#TiB5&BDj-d?aCD;U_`k zdUp8jP|B~@;Fns}QS1f~WP8&uGk<=~PG;=j06(m)?Te)H>dlPT4YF-jRZ)QJSa-1d$ev&!*=qUAh_ zu)`CHkJcf-7UM)a#q4*8qHdsZq4Qn$Zl39Bjt6v^?s@5| zzU`df>NW7#zdg|4wrO! zE^l=Vl|1E`l1Y_pK4;my^5aVOyS}_^xbM6}`3l9VaJSU+M*&+OVhlrDVaaDtC@s5_ z!1iIUtq@RJAPN17kJtafFKT8bSBZct%3+lb*sBAAs;qCs=RR+mSI)Jz+$48&Q`ojA z>rXF2o-zF_w|B$noj4ksBfsE{9&S*EG7{FDW>O<6VWZm6Zq1tSh-0*6q9MC5DQO_V zrumI<4VQ|tqf|KHb_i8rgNd!ov&Nle7h{B{N2FHTiCvdXy5+xuan9o?VJrdJq`HNj z5law9*)DR_NfC>ZcUMw$9Jr`Di?rEESl-w3XvkMp(ocKh~CWi900fCr-f6K?yNOx2_Kb6iHKija1hAH3+ae zCJuSH%1DTxK;JVEn81=2_;vAvDY+QxNDqWR@t!@ct}*XX6U#c;Nd?^wX3%}iwd96b z?xH{)z$0{F6=`{yZ*5OhjeUzdY7i&++8lS|@F+t#aw~dn(H^6}%8YSvb|`cx&`V;q zcC|`@&Jx?08T!E%O9eW7)Zq8gz6lpqG(Oe|?Ta{?q3{%aO2T4>GZzHs!=v1V75=tU zW;Fov@~TT3mq$XC3w}EYc@|J2Fx<-?cFTKjSMxDDD7yu}pYn%{`e3qC2LgQrT?*qu zo*;@IJ>9NOjtrKxG7!p9?9jPq2FASsG-0io#C0kni{-C z=yMGL>8*);dl09a8M;oJ|M{ADV^;fz}ZOG?b=5;!?nb9z=Q% z@Y^Zt(F9VaQ0ggb)DI&C!BBe^KH?k!YY1kxcu6+2w6v&l(%J!PuVah3-DX87!!f3H zla14Qf#0fZFCzKqJqdEqSV@9)V3AV359QRnSg^tBKmxIjeTkQ2!D_D0#8?w3W_G-a z#G7sv87DCGA#obNnOlj0LrL^^yttV;p8__m>$zZ`p13@$)ulf-H;a5~>bE&gz_c(x zj97T0^TF4scQ$}-SC=d9To>R4pAN;__k^ODpGA)e^0>vx0STBFK{t?|cpaLR4_PeD zK(z<;WeG-{uHbBd;BjB)DNtFPFe1}PO(2~NixT~4k*j^5!AsGB^#)5>!TCKRYDshn zKcqTnexIPC2@u<#kpNE6 zIiHlUKr?GMzsaxa(WzVN`ZrksrEeJIMT>MRp)+jxpovgiaZn9q$n!flf`DdZ8vBOsIlB zxXxNGjm4D)HW^BKXAEL@JYOgkIQ`{`awD@7f~3ZZr5ClVvB?5&78MfDLY2N+TN%&E z79Nc`3Dd8Uq=#XvDy$am0SJuv#Ij^UN%Na9ESykIHt2y$Li~;7@twd0o%u}=J#LRF zOm%*B=tT2;Hh$QTJ=@cB^;#}gaJ;{7Ca<(FyB35w&@P@1*y^6r7VPS4qN#m{k1t|e zxo_;nLL7c`nMiY2vrs#9?bXENOs=#Fv z&u@xieK=AbMC@0z0F6IIaAl=+g#G(|@9T~^`hr5BpsbhOO`OyY9l6BXK>U0`ai?XXq4hQVbAGf}BfUVQ@w3=`m{ zLdDH&h33+UM2Z~o&S=rf*>eHC0EYq(@+8`$+8g{Q)q!|MP`UXw9QlgPB?JE;dHc{A zF%O|FMoYU+^`_t5c{(m1e47_C49>-t-UlcU3Z*(g<*k8?@EfH;FI~FRbt~V>(O;K{ zs4}c(MXT=GW0u^(&%5#VG!tMvjkK+MnV3gfW6AQJ2W~4%Ty>T!hxoXAKN{E#Q-$g9yN6Ie_-6)G^9wbtmn64Y*dZ_c*+?1N$eA?RTB|yi{ zj5$R-J6`cC*~Ih@=uCDV6qiAu)VPf%CP~C9p9qiyR-gB`x1RXkf zl4XeGsd#Bso>vINOB%r{ZW#;?$sxE81!0RkMU!K|mwp*4nFWRgzl^|JmVrFa3HyPus0*=eCPoL|rZ!NWNH zBO7|6o{*c4@#QNPY@!^9c-g{5cAR^lN5ocxHmIG_q*^yIJmF4=$lt&?ziSwihtu4uzhK;8ls;U!xev72sIa z#))KJBG4GG`>qQ+wh)9mOnb^^&;*fMzwd>o0zQ?~VrZN#lZ0rPzh1c{4o<(el#)aq z2ruUVlznF)Q<4`5$$pknRTiXsF8;Fks8BO1(Ot@ve>&|=Uv5IO--=Mr*THmKJ5^1K z?p|3qEaFBMVvW(Wr0rYGE6uAugl;Sm$5Q)(EvE71(v%nFeM6q{SC?0nk5RbNBnw%E z{5lxbF^~yqqO~(* zEY^>tR~~8;b>)|%Lu!lLt7nq-?Ymzxw>Ax^v~L7x%1#QdOr3=Q>=*&4s^!YX4Q{AJ z-@wg8eZ;Xeb>ulIIpQ*~P{u?+@Ht>`xhdxdcf5u#0X{^O5iK!rfs{3&6^3WEo%t z!KoUGzYR5o4n}+IuWaW;E$hE3Job`8UMz`AqOjkfq;+q&QO!Kv6Q2`g( z1`Z}~=7`*Ib6i)}r6y;stt)OdXA_67>?l6mYchwK|MU=ZUPJh-Q)YpN6BcSMalloy z^lYEY7;EuC{gM7dxsYribq7e&rRFh98?VkyZDAKSOLdReu~O6jC%Ht;5WgVgQ&n~_ z{Q_@cpj?>gd{L6IJ;tB~4t~yc~;FR8dW#E^v>OdwERp37XsM zdgaoUP1Dkp$EA4xR5i0914Z^ed@?2<7rP@+`Ha1Aaz(-7Y>Z}-tbn{S71}5%CBSZu z>pizV$8j!}#8iQ>Si&=IQe5N$LM3;&$*%$M*SWFT$>LmQ(AHlZIw{F)9jt-BR46W; z+z8zhu6dEoD|{9(%o)Ww^4Ajc#(cSHWp#rvdR=-VkegKSm|L-s1F1#()RE-kSgzLk1=mI$Y8Nh0e;s4TEzpdNq(PPx}e1n|49 zq~|0*JBH{ClK@i#9QC(9iCOonj~zi>6A(*glJ{pEfN)f^s3e0KD!9wZa`o5Yi~)b} z)n07M5yolT>%_bBmo!~x^_0#^pxFs}Szz$rBiH|p3Ox(bV|jC^0xNkfSK&2y^3p?S zA*^c?ZKlvLlN|>I8ZQ@-sNYFOl{!srj~T9mMt-bY3YfI~?N)~HRMY&~Qv^g7-+hK<*5^j)2ug0`<_xMDv!z|1>UkQxB zPA>^em8QG5B)hXTSTft^OXxdak%qIy=qE_S`Zvy%JTGyFN(F>`@_4STSf#zCzSF35 zv%Wp<>dpY+!75;s&W_H#fP~kQJcB8cO=Cy@2FDARupS(WZG?_JK0(r1Z_`dbOCCj4 zH(K!tG~~gw%CnOFuHD}C*n1$zTcpHJ329A5mGQaQ-2F2{#^SXqLMC%j$)5-}D|OBa zz}TsJBB&N|CYenk&RvJVr!_)&DXI<#Sp1-#e+WYhAq4* z+TTB}GRR_m(k!`Kw%N0{%$s*A2z>$Y#?UiUB_8bjN5(QLw+!&pm@p<hmh&`7`?jO}=wEWEH5Xma}WKAS$r^vbmhTgeo z`DACQng)x+LajftsJaD~-nlIKip>a5m(YWz>C)P-FBi|TWb9NwS*xaAdT*RohSe?JXxs_H(T z(@V&xRi^J0+C}S=(~Hx*SbRIi-QHa6!z`Y0u>eZ2m7n&h={Gi1_s=1<=opwZ3Y;hAGQatK392e)cpuc&% zu`N?7q;yaGX+*~-HwLi4ERrk1@#|(ZX*Ra1cF7iTvJBQK!n`xL3UK$JpsO&wn{vux z7Hum&7Osi)Axw9Vz-Mxs_dcACqz*vA3$UfvllA0-o>q6)X0%^pj!bJ#y}$34FLo$b z3i-}O+m-R9OA5-bHL(i|0MgUVrEV~@O)+6`DIO%v48gAZC2?2ZgZP7Gm{>6741`)| zdmnc(bK`e69dpaYf*Fq9$%-@8(}{hi z!em}SX*B=W30vL_p^{&g2snx;j>%G5NL#q1Q^MNWPlL8MUvEV&i)bc4?c7*i0Gpd+ zg&Nrgn5u3zGqkc{d9|SyTF$g~HuiTqPqaSBzwDju=4#%)o!l1jUaK`Bli_>VIp2Okc0TYu&{bKTUjP~9eFNhT+%&j& zPiZ~!`oB{hUAx-8?k}#o6ff^N+Ir84?zZ!?pLcRymsinxH$+c+nBZaV6+GuYYi0j} z;Xe#7H@mWydDjg5a({V#d9$-M*F*MBzsE8+ED+}6P*x&tW{|3V${I6jD&$}ik2@3XCYsf#pr9V#RZO*^m{tx0Zt7-rM literal 0 HcmV?d00001 diff --git a/.yarn/cache/karma-npm-6.4.1-5443d36ee9-24faabfaf0.zip b/.yarn/cache/karma-npm-6.4.3-c1db2b322c-7fc194f5d4.zip similarity index 59% rename from .yarn/cache/karma-npm-6.4.1-5443d36ee9-24faabfaf0.zip rename to .yarn/cache/karma-npm-6.4.3-c1db2b322c-7fc194f5d4.zip index 755877b272e52fc016d871d3729f1731b73424ab..601d8fc02b8126ed9d24f5c7b21118cd3f8569d7 100644 GIT binary patch delta 66256 zcmV)5K*_(0{|fzv3$V&?1$q7=ORtm9a6bX7`G8jMHbX7MWK3rWcqUtz~@0qNb{7Q)vKwiXy-4Iie_MR2lQX3OU0ahRsrDmaVN zNifeQ>m&*qoA=}Un~i_X*3oLV%r1hkJ0Hn^2f_p@BVo5>ix^dn_J-( z;#)k#u|ND4eO+YBRet#G>got-_^|u2Jr0wkxoAt#R>74e6PP}vik*)imLHE~s97`p z_rI5|tF6UW*>JhVthotogfeE)tcYp#&z z#Ryz4%d1wi)%?~u{7?>DurRN-WC*Qq8#sVGTE<}#{}}}jgLIuF8>{7I@NFY71%jd3 zm}K+qqM*^*xC+MMYCH>?QHvVw>;%uIX|{}lvoKE9@GnTrvy;Kb)duwzr}-*O$I+`Z zjkUeAUd2hH)h>UFH#Q1^i}RN-mq9Zded11pQUtVD;q+xVkAi>yJHVeQ)WqMd;D;Xy zz&qe74xqr8uaHI9u;{YUZnql%0AyShno~vO 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 AqW}N^ delta 65231 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 G0{kEMD>O0y diff --git a/.yarn/cache/socket.io-adapter-npm-2.4.0-36a74a6ea1-e10c8c36a1.zip b/.yarn/cache/socket.io-adapter-npm-2.4.0-36a74a6ea1-e10c8c36a1.zip deleted file mode 100644 index 898ffcf179cc511ad1789e359f335be616aeaabe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5693 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 H{k;1h$!5?U diff --git a/.yarn/cache/socket.io-adapter-npm-2.5.5-7a0505537f-e364733a4c.zip b/.yarn/cache/socket.io-adapter-npm-2.5.5-7a0505537f-e364733a4c.zip new file mode 100644 index 0000000000000000000000000000000000000000..8645bbec5e02151e3620f25ccb6daaf7fb50f01e GIT binary patch literal 16078 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≪*0;`5r#hS#i@n7qdv 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

vMSv&DL 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 T2AvS3!0-iF)K_}~8=DLOj!yN* diff --git a/.yarn/cache/socket.io-npm-4.7.5-7db6120b90-911528f5bf.zip b/.yarn/cache/socket.io-npm-4.7.5-7db6120b90-911528f5bf.zip new file mode 100644 index 0000000000000000000000000000000000000000..7fad0bb2ff83a0a43ef026fc88a5ad8cf12cf3ef GIT binary patch literal 340899 zcmagFQ*bUovo0Llc2=}vYsGf*#wKs9KF?D8C_-|dY|6f;Udt+-; z7Y0lF{}TiT0`tG`Z|$;JivQnTcXmZ3C z1(lVRNPqCFAjl4FfMlSQZKQt&O6R{n;&QHvQc=bZGjG_pDgc8(+A+Bz=&~DFsp~gO zw$YhEU1#JxexJ`zBz^q=z)r5!jU4!{*4L@T;$}t8%)>}-54zIDok=#U8^~e)V$qI3 zzvEx%+D!11QnOTOUa5LmnPaoaTojOEB>u zIXQu5p}_}Nd%(#E%7`&JLjVAY5F!UQ+r}DczpAMEq3I^}5^Vtp(w)bPrAsy9ki2); zP1t|lgA4=ZDp6Z|VT9a};0&|0OB&UcK9l?H8iYz%>L@6^E#8Sm79G>;dI&CUA+Xld ziro~JB4Qmx_L7=V_vU5)b9Q#zao2y~RqHqknXTXI)#;=gyYT|l0TpisU8vsb(7R8Cybz&GlCZI zOr!|;qM@jwK|y=%nBtm5+YiTq(+rxWlK|WHeg_iydxOG>(Nm()UnepW#58X_YvKJEJvMq78l~H zFc$Twr0|RrtHG&}&f;KUBc#rY&D5w2#}#uOUqY~Slp@msU_}$_uS@MZjp{>uF!EF! z6+>i|6saOdL#RlWC(qK<=|E{bF~KyY18+$H*(j(Gr*Lj!u!_*jN2X+JXgW4D&y^I$ zY!ZKI5PEfYvp*sK`|2n7?+e+)(%I$zc>*rf7yLa4ARw~bARx^DL!^sUmC(5%KkU+?`B) zLdl=hMOwuM;}bo9ZOL5Ob{c&HJ-rDq+f^31wf^}Xm6J*nX=KkY2*l7=iBv37yy5ui z&H1)P+SJsi7tU%&nish$qIAa+jkfP=qQSh}=JHYx^t%v78AVwQl4D`R9i6Q@ zWkvBr*k@+U$$Qf^rpZ@|?hf7f>y$_J8D-4Pw>gWvxQ%N&+^=;@>)KP_%SY$QOZml? zl^!HNbAJ(tKZWsZX|1=#t+dKa>a^ z1P%p6iV+PobCs&k&slWSwZhsOB9fIydvIBX9CG|FgMfPt{~!(Ey1J8bqOP%}iucx; z6}Ry`YatUL^_wmEt#O{XJ4R>#HgBe=9H;S60QhDo1KZ=xT60O62s$$0d4;1@YM)|? zph$R2c0av3&`(}B8EGDP_>n=xBZqA{0^g9sxp(tA9ipo;H~;9Q*N}{1h5|;W zAYDFq&5>0+p;cHv(L&E5z1BR)W^ZZ18Vl-z>8r*KYt_kZdAgG1NW=3hE7^VV zuk?__ej&#yk8z0 zks-)J)@>XUZj28|oy}e^CfhYwT3JX+@t1PD1{RnizU!`8qyput0MOB9fqF*AB$Hq% z(<|2Z;0r&>7_|3aHB$&xB4q-PjK}x~J5>yA&Ph{BN$DJ42+biW7k)UIg&gC}^kMeS;FbDv}A^_zI`i_OOT-=B4CNkOvv`Q-?WqJS#f` zEQcQ`PM1J%x%98K6QlN6Iqi; z{Liw=p=MHoRm!=rr05cpq3DKYB?Lzx)&>_WE%uEA-cpr_P>XhL4x^WogTvky!tn8j z)=GjbIUF~WhK9n1z-|X@Ou9sT{ZCxtNygsJg-}ovj3!^6-tql!^zoA0rImqsirZi2 zkz=ownbzC)_wiQsQXqiej74Egv43FrthI3445)8UoZ~M^IIXxA_-V8l)@MI16VP|d zR`bv!)Rxn%j_#wu1Bid!pjrDrM`nuqW8+2a(j!7Pg5AAyV14ecfSLHGZQrIYWNh$9 zp*Rmcg$z5!gox0#k#n>yS$*CgJsus;Qto#1zr7ues+Zkm)5gF9a4|5pEzo(W;WC!9 z=5Orf6DemHD_*=r6;UCD#_IG$+``nk^dmUC%b*Xqc%_?7WNH=%ls0{#F`9Vz&CGZB zXX3eiuU-!sx~nJ(6PVZueu_VOg`NMp^I9SnVIn{MoP2e3l2bo4o@1^QtD<}<{; zAo$gl=}Twq-1a2t2Z+ zGhHZWJ(8VAQ zFhz)t$Nz}CUv5U zIkz^hmYMhH`MXZ>c69X3&G**!Sh>T{{j$pXyWN2P6sEhW6TYs4Lw5aS{n?=O@DITYB!`EOr0LdcOpCM+ivm-FEH^3;hp&%7DB$v>=~ z^x+BQldI#j)098-tHhbySr6b#+)*FpZ4R+pp0M4KqO=LV#Y~DRQO0x zg!adI$Q?bER7U#mPY;Ur?lO%9fLZ)!?QkUKsc~rZ3*Qf|M$;X;J+u5SZ(*2fCZ;xl ztVg_t-zDMQfw&Z4=N42IX@8KQ;1y>~m8xU|y->KxH3*k*(;@xgv*;nZ8iFL#-;))i zR?MmqIzDImCMrpJrPUzFT#N&hIZfv+CJCW{2u=+HYc3m8w@(&}(=zzY*M31+ z&w?S0PZoz_*db)1KwP~tP}M2DHzyHpLZdt^rNqY^PN;df5uIB)hpj;A&j_&m!8Dd% z8|iLl-0&ry-Y4%pOc`EA$*}J$;QOy)YL{cIgRxIYmblPXnPffdU6;q|*v)-A>hOi5K;ZE8(AHQXz}59 z%;&R9HVWpX{OUVi?_NW?3u4s0LHw=<$87c@X?C(2efDNt8_w(b`9P-B`l9}E;-*)^ z;7!0ioG70|#;qX=V8&Kj?fL~PtL`A?g{U7SuN#oT4S)R-7X}Q!Yl3+4yECH9wDEMs zzTr93^bgRq1vM47vj3Nl>X3EMuDtxn6(;vn#<%E> z<;%Tr3jOsNuBZTaC{iasok_^+NH#0bLpm&&&@0_qSbY4USb9ghKOOS4RHmR5+~PGh zbN29Q%%(^7W)C>#tTJjWo1XYy9f{@(X>m{M?(D$#@^kd%oU~E#AW;8N$LxWX^Bctb zrwSA=b(8TII?!1cRwDqbEniDCR~cZbqIJ0_iodt6cc;+6FI0RT5vX?0;wJ9^T(f^=ifxR^oWd>RFP8NW-zgw5@}cS23zcXTO-p0>iakOr8Mk^ z6Gu{c0xJSK$7%>W#eL3AlrM{tRxA8CZ?llq(JtQI;ZI!6y(uo<=T-s8>vaviq=h>` z?b|84GaueN|B;3CW7}Q*46WQqDL!D6!G8TR!Qlv&EqD7GywJH&+aQMQeZ24Cb^m?0 zv}cRZ24DOKPhQ*fz9mU+@JI^GMGA=q(Ur>K9KDS}@G#=@(ebj%PH$J>8wG52vRtPI z$)arFCxatWvTSQzeE9v4t;r@Y5(bgap-WAs{wBT%AJpf)R_* zvaht5AlrQ*vhL-PIdXQ+$o6;7f<4XQS&q%GD*Ox-LfWlaf`jkw_4hdc3kCD*1FkQj z{w)Xc7d5*#OmR6|hY{R-HR#aJ#LnkIOA+}Md?h>5F?eBUs`nbV$_WV5k&ZBn4>i)C z;Rjbj@K?x_M`>F`u#4yn?O-wM5a)H9U&3o>cuOCI5!7CG`%H9?yE*!9@A~o2-|+t* zjQaoi0H5LM(PL;3kc$710TllO7&5l8G_`a24*;sx+_vB3K=Gf|@5i$s!H!!nViW_j zCtNU~ulp^AW`I1nM}=lvr6`$Rob46(^FkP3EUK7th;SDzd*{&=Pka-Mx15AlA(~k= zKi)rl?GCJJ%6~|jw-2frM6&UX|xAie3V6 zMaBQ}c9R$UWXCLq=!iLH%Lsj%@=o0~g_m#&k+%;Xssrv7)?-TjEH$K5C<+Cc#qcN8 zuG4@La%0HWxXEb?m8l&VsNKLizoSkmq&*C1pXouEK)RY}fyh{O=lQWD^JRjtn90Ac zqN^{*qHWIc5ktztLlt8X_i_9I-4Vivwb-QZVtdw zab0q?^i)rD9hO3>#@QZpmZA;0MqnrZRfGfxkGmrUFpP!KL=eD0#y)V& zg!0BD0GVLTT60jV1D5k)u8B-CrIJ*G%!Wr`lbi45U=Hgjw9ghbZ|C=NHzSG57BpAm zL<0Ag6apat1ZyLke!r{)^n{2^qUq6+MA$SNe;2b?ILS0<(bLm^4_j95f!y%6sU?a& z=HxvJb^V>k5B-A`$PBH=?WD!WGm16>VOgLjknx!oEX3%g3DMNY;ndLDfMF!apYCtoV88V6$ zWX8r(>rlQ{g+jGfSi9tr%Wq3{lJp z%*hCQI?9Uc7xN-5LCjSjcPkA)Y!6lmgfm3(uQut zAJ1<*AiVK19|x+Ql4jliuxRO7?Cbe%N;UE&>nwQptWw?b;@8~OI&DNfwy)$<^xS2j+-mN$Wf@W?|^Hn;O`V4>7 z2cvPBxw@kuyeLljj4^A?yopur!_GD68pQ7gSbn3G2!{YaPr3gRQa0hYU9-dul92W& zb<$F$`%W7N!G~Fw_l+E3;_SW}enN!(Z9>+vynpA(AM1)-QDn{r78&Cm4UqfOm#1;+ z!g`tg=AQC%?i6N(AiqpnO$vx62ayLRKuXn)slnOfIx#@tRBxcPO;Zz0RQry2Ac6uf zUCW2rIT7ty{@HkKSzceWo>NDQ>hkMu$Ix=$*&^TfSz6?<*XD}`Yv*y=k5#S2($BH& zUbWzHvrKzgPou%{MC@kHb(hoKx%ENU{0Bbi)NTd zWeL24;Bk@%^!1=+74a%3JT;k9E&DBQ)Ig~7o?-?jD;i=lO5Km14!#iccUi~6RT*1# z%0TEgK(>P9;ybRIz-X4xm(te>mVU^_9@JymBcpZn@};MsF48A>>Vm?>4%rTEuU4K2 z4-p#5qmNbDX1XqTR!^?lua_QVs?WF%S{VE0^!r7s!%_A2+y;8DVL+=P$j+XOgxjy%BmAo!tMpnfLzJ=3&SVv zQak_+g~XFIl8v4BV;TYNC>%|*^i0=x=^8TRHAn+-Kg|T3>|j;|^m79nHowSy!jQ@b z#3M3fRw$)ue_brA&aW8+C!sKI5KjAy1YaxmaudRZKEZwBVRV824%h%VVReP%XGS|6 zZ=WKs4@MYg$bP!^l>R#z^Me}jR-N)Q%Q>F_O5m@3)XiA z#kHM*46+}}=>v0+RXq7m96BBUD$f3|xdAy<%Ok=y6uYk*@>t^XiP$!eP1(;nVyDfP zRVBNqSQDO`SGfdurS2{Os>W|iZQmSyll(0APJYtrW)^C{p<93?1U~OIyKZzfF&9eS zpL+da<1ABM+*=>J{jBxcUzo!mfb>C1=9a@^;>Wtpk5M7Rs!Su7s+JG*d133tC-~1OO-vjiGt7 zOd6JQW5|un?~s(f>xT~V3$K1JczrWR^>Ka{2UIC6N1T#o&^KD99%&}T5BZQY+}XQR z*%8BhlCz@f{EIT5&5bn0n$%1h_n;~l)%oWPKR}jtj6s2S-~P9!eMS%SO&Du=+Ps`L zNh}o`6qNYissphTr?6!J19+kd+??~B1JaV|n<^2bGWB!YpDu$kYM5;h)R%a?PxB zltc!130}C920XBCZzU#yt}VV132`u#a5G04O=>is-{$iy)x4LRb`8U5`nXeGr<@U( zb^T*9!&Owe2ZN~^xL_Xrr{U}bz-`QCc2=2_=&o`-_1C$aG0h_%al@xtPI~Zta(907POAQfzr-6JDzRHSsB%U3^}dmM#-X{yh1!5V%0ol z*tGW*G~@VawV0^9^doJ&4hRWNg(($aXhdE{w9DY_r3J&J7+Y#aIJI|&Et>kLc^4XN z)pL$Hu@=O~hL{sMs>-PrP0{60ZTURg>Zuu_&SY|XFvVfRq|LNNwnWWk8!UiI1^5jd zv38@HX^WiM**27#y27Shw05ml{D4Kd?*4_YxliZw-w47&Oty7BS=Fz$z&brNGXhcz z42fuItm@@`D-^fCRokI7(kD#nxRANImHP%7FEPjK_t~SCu({XMa@h=c(<@CX=NwDw z_m1WZS%%F%?2!O3dj2~{g+Kcpj#GSOfyD6R=IAQ9QihM?TzL@kqsi*h!?{aYio=q870vWu1 zpMtztyAzNqjB;9{!t->W2lxeH$n!yXzNEY24`MXu_Uv*fI+slV*@j02!d#?BQZ99<446 zo^WT0s1-2|p*&`UYAS6QK{Gl+!j7wok0>&e3>U>Z%ly4ZX9UD&>VVykgi_%mwQF3v zlYIKMsu&rXIdLRC5=D2-tS(284o_#6ostHV<7i7Ci#Q!EW@l8FD2xR$7gf(0h!byz zS)N*`6$=a|!J?9zkT&aI%*i2S$mPu_Rn!DFr`s#yr_;B?={GX_3lbv>>YV-R#$}bj zn55R6Hg#l2Yv1scEe#};#f+#ICNTJop8{6&jhV#agZ10Q{v z>h#sos%YJZEqIPl8Z&0zmEW3IEagT`my#MFYsjJLCF1grR`7{SC~U8O{DDAu2_Q&no$5+T^O67OZT-5u(JQle4E$c zGIs^*VZ^E5uiP&hi&bq&$SCqyWL8@x&sCV z=0^-`&%mfz!F#$H!Y6&owCAr%uNkh;>uVlcRi~~dZjT8yl9?i$d+J~FusxM#@0_L0 z>XAeNLxd;ws^+OuulMIDg+z{(4U`cmRAtC~C>P9|ixH)%iGGA_~QkyaRA+v*$m zO!=9{{Pk47lljeAou?<G~LOSJiA5c&KC{nF*<>fEu#hBea1fZnDln*4@geQtYK_$a1rh z1e=_Kcr{8D<86M1-rER75Q48MaAJjj2N8}C&lZJ@~NKDAo_g6ha9XN~l= zwgC)&DcAYzcKDYe(4{ojGHFOiUJ#w^3&NB7KOVGYlW>=^+LK!g5jyS~Sg^(ZfKI7v zxCpxNhcu&~xccon{26bUr`l@{^QwGXQkp_85ftMmc$uBhEh}RB0<}?u^q(UoSbhd= zL~~rAV!$3knuWQId-THQ;(sawz-ax92osEo%mP;TjMw~pRVVA0)Wv!2fo+{eO@Gal zz#_(YEcXUE7jNK?Gw;x+GB#ZCQkMTguc zd@QhHd*7Vu#`L;n!Wnc{vn?0N{5u&;bhR=)SD^Ou$W+#$oK>JhczH(Gxn%{kvD}t% zMGL9%9dazHs!NDYY3e(&xVHeKw3$N{7A+xb!>Lt4-rRQMBOsQGi}Uk%d>wya!uj^` zaPjHn&dmnjn4d2~?pXO%Wff#jV9e5)Vn~4ChZ8{=+unA_X&p1}=>k#2+V}HtpZ$54 zcUMMtI(Vv+W-@sC`c--)KMyuM`w|zI`}1jWR=Cor*(AF@(C%;;(T8AqBFP26c&Dm{BhmffUSl-_SH;p~^ArAXx#x;lm zHQi3!BWVe*RZPKHBQm~DMoo=FwM8}bmb1}E_%KV@dfIWmAr#l9rhf(lx-2>DZfe){ zFW##R$JJ70c*s9(4|eh;toCj;a$^ZP+N1Y`UhZy^EcpoEiHz&&wNdyiX%+{(YSB2E zj;mtYo^`-{kDOu$zm)zy+KW9?D!u;7@Nl7IC@JbL`#7)|XF{Zn8bG3c;{Z1m9CrZS zY&SyewkjfY8$naF1q8R%^bEes8!*<7<2sUwD2gg?%kmUIUg|Gl#1q6y7T%4ns0#nl z935E9a3=p7q~VXOwzjiqrzmgL4hq22%eh53%>N zvQ==odYu{LGF8ScuHkyCAdF3(Op9~JmVC)|g3Wg8c_#W~{NInmkp?O>Elnwg(A*1jO;xqczbVf3mE#<46xdeR3#MYbMB9p{%zisimxk8IYC2?PQP61JM zW_I0tmc4=!kbCVoeF{W-HbfFKlVFtj+ja)&>TAq@ZUb{z;^0h(34E|~(v5l``dF#` zbWY}|y?bh!_)@%+rBY9+A2a@%8R})rGgNwVQ=2XNulsg=DEf@l%>4->>#;boy$vJH37D`|F!kQjQ$TUm zvkK@rTx=|rv_QQnDY0WIR^vNQ+hNm`dAYvD}ezZ zJ|urxpE00i0uht~W1|xa1VCWK^|F#dHk03tGes_BozW;oS_hM8Av_O11_5v@%_prm zzE`WmN=il@81f#Y*v7kd2-fxelPNVFoX{vkqcrC4nhW=E%2Jjg99GL=;qV?JySUxo z2i7PW6Tn-|HWpT zkFE8T_>M>bz+I1pCns0etSX}6^ytn`qTtCemGQTDyI56AWloY)bwG3Z zmF$jr13KgL`ktP1C%wBnbKZ>wM{jVu4>IeU?(|`2<}ji2YfyE{eVr)+F(;p5-kX>I z;frp}j@j7xxvnt4x8-WW_`$}yaY3QviAt}bX)vuyY4_p_xn)4`!%mCE%a z$uUIIvIe}egp?~rJlDYr;lEly3T7Qra$Hn_^VDj#YxOm~^v6o#wEbm=p~HWWDmtrh zO=5?0k#oP)1EPqs9#nWR>qHPi_D>2O)P)jc=rznuVyVG zt6ayY+a&KGP7K&Jb?T$Xgb=pTGY9by;}qtX{*kMBN3&(Fhp^W@eZ?5yR{Mry*D;%d z5c9%OHH*>bo}B@(-!Kxt39~~Mr|sn~g6A=PIjcPUdGh!@LQ=U2jp9&@D)d0^qF;So z|46vn&TJ&1<4RK;r(GrR?AyG( zuW}K;TRc}QsyKL|k@7`U{L~KR!RLOM;hoWq&9<#n7$qd#*{vYZ+#|f^WgoY4;Wnt* z3E`HD8!PH)A$>)Ny@`-}NU<#_%f%h+vGZ$1kHGX>1p1793~;F^7qxR-JP+_uo? z0_?m|`IiTGil0aGCT({_Awg#{%nLyXEnAeLb!kr!!pA8JO6Gh!5po&sF}&V-;}6wy4yPgVf!$uZ^3jR|tL&1#p+h$jHAisIN`Dsasj> zx0<&1>Hiias#{!XU0$i27OorZ~rslHo zrB;%m&^R%%r!H?fM{h~C`X zwAStXm$y9T1n6ZrL>;WPovpAM-Tt)e1JQ|RWVO{3_^)C5PY!<|N|JM1#Z#tAw8&U= zqv@w*qyftFJ}(S8_N!dkrlT`6EUG6&N=1M~YHt|-M-LC_^T(u|Rr?;*50U`V)ikIm ze0(JA=B0>6Zj@5+iBf~Fm8Ss9ldulg#eX|DrI;0nKM*Y>@w{`542)@*#K%K#t{iI# zS)zj%R}%_>j)?UIy9fW+AWr*U1Y0^MM&?H?3jKr(LZav1m}QPoJ7$D8*j$T4VLq)d}R)45oWzX*dcFdAD{xy9d~^@WF@ z5Kk^hE6>biB406gp&~UAWqLwYvtHl%3!bStaJ%X_?i!*DDb0VnZ8Q7~akxvfy=@I+ zk4LciH(pd9P4EutAK}CI-%PV!vuuBE5;W-ETAUIOgXkM^s7oi@vsa!#Vb1ma-x#+} zzMj&5I9A=zCI1BN>e9CLux~bmg9eIIdIS6Bc9GVr2qd&S@D%-TAdP$B1EcfBP`Bs4 zr9q@oMMo4_B@gbAPXz^iZWSQI*ArHE3BKl#;z^!%J7MOxLDRX6uwdV$VEUBQxM(LD z{L^Mex2u2K9+Wgi8Fy!s6)^CzSIoI(lkKoHv-wzIU1x=McsDkfuaS$y^te7^XoG16 zZKY$|t}U{8W2<4*CVK|KcW3{B5fm{g%^|7s%gxr`o0F7wY9NOQzxOFvsh3fP`Mb3_ zHTcZmI;-9oy>K!~Zv8g{vgpa~wo{ADpmQ28)2zGovh&K|K9j-H++!ueGf4n1YcL`o1G=%lTOyJ&-# zmAEy(enb5842z|!%53Y$Ohh}48@~!m9|0q{Gv_aWPDXQbBTIiSt(jeP8aMpyhAm<# zV}{PS0Pz6krUi&d(mia5|K}5M_Y?Ahswcwyg68z8?!sHJz)KTk8`Tx+fUj8;SDUOs z^yf}(Y|2%y*iqf=QG};dGXU22D4H&d)1)nTaQsh7e)D|5M>m-CWtN`V8$0j0^LXpG zs9+X^F4+*XtV+4N;-AAj4nf{K;Zv%sk7IA^la_o|KIanL8seQv>MSXv_|DU@r$JsD zRb1}TKdAdz4_L~-yON^B^Lf%NU5pK@@p27b<_V**l@YytV=FZh>}z~>`s$%eCxZsn zU68kM%kzf3P!ah`&2un$MQr0X=(jj68&sCJ`1;+kG8~P=s~KJJu-%C2?WIpJIc=N- zzlcD%Xn57I+#f2hlqP9uZSmbU*!fy9q@+=mGfDZUF4MDi;>QjS3|>&mPH-oh+TxNb zC%<+@0`z1Vp9(ikzvMEIB~lV63UOM%Aa2AW)OsPwp05-W`<$H~ic==`IIR3zWD{Qo zBs!14=ZGxKhC5?fOV$pW!c3>%yI4=(K^~cI^;7bsD%wQBz9!Vs++&92jlAY;Cy=RB z;`S}d^I2RjM=`1Pz=iyh7mW*jP%-EITuD+nEYKZ|ntqms{2Bx(2aDG+sY?Qn4*>#^{Khge!_Hh1d$zV=Cnm7E2H2V;$3v4_QZo4~J6H1Ajpl zT|D(c%1SV@rOjs0J#0WvXmYMc>VKY+J;iwj-I$w5CIt=0 z+Zn}d6$(F3R`tId6XJLPttIKF*nQzh8V_u)fGZA`iA2#kV z+>2wDa*LsN<( zMXMVE=2t!yvbsAfAmCn$(-txf$V;6S_=r!4X&ss|KRhzqyvyyOLN)H-a*1Xxn#xi? zJ2<9x?7KHS@`W|;nM@7K7XHj(0Vh>)Tmjn2j}|q?Fa|}Fkd{kHgC4NV)g1p3SeF&M zE@4EWkd=3t?IQWH&#rIJCcl1&cHa%e595Au@p45%8#!@aFBTb*WGRcE4 z&Qpq9Y~8F6cYL1NQC|KJ^jB)&9(}D)+k|zQ!~Ozw zm=DxYaO37DI)l@u-0_~Ki+x`QP3yJJ#>|0J&Qn(QDMFm-a|dKVxH-!geZ4RjRXwd18iEJWWF8wDE@sQ(BBTvS~mu&f;F)04)b3NzF3!(q~hgc$h zYDJnm{!D7)bnKxMfk3~nJx~14;F4T7;Sc76g(Y#(iM!V2=*hPE$#v^$pPr18*ZHiU z6hudJ4~BS|oIQwZMBHd~lhsp+fE>gn1V2ylw9mr185R`<3BR>p=rA`>`6J<<{0@ZO z-58Vz;uEHo^S2UEp%z@X-V>mK%r{C}%Y2N%u4^(Y`9w$dOVRR4qeWM^n=>g-@>Z2Dgc6v4F}{^(tAuF+uA zxFUso(jrzUM5`lVfrG+k;8C#vf{4xz{djC#>(zCR$p}fpD%BjAZ+eeZZZT_Pr@Oa4 zhOIJSPMk^j-pZ=J z+=u!xN&;+VzeYD(KUd$!`FnWzjq`L?PiG(ppTgM9#|@=I z>TkO$EVCO*EMj8dC|Rqgg(V*X)QMn$N?8TjLSK#7SFj?xbgFO?1D&CSM3Qh;o`k+7|DM8S04QVne zK6jvG><~Nx%7itiP6}*pG*NB8ffqWk@Qv;WH zkb8egm&Jac89+s0#7ZR2;kkDF40-P_>dmq8xEPvSdbpra5D=Bm1?Pz3U4~i1FphWU z9?m)&Xd$&sct|$HzPg{$3!lzJ!O(eH+;Hd5s`DPoKt&XECxeVCi~e=PMr}!tJ6qId zVv3K08GEz*T!j1+4U}629cb|$3IyRV=*#!!J+(MJr1uS`8n^f-{n8ewS z&w|NF=5La)+Zq=6Wq0eiqQj8-R+LeDf1#4~dpr*$<|y(LU~%v|#Lr~NnmW%-w@f<< z?xtA$S3^^u9a?^{Ezo?CJxd2IhGu~JVFafus_KkPHw5Bc)J<5u5H0#Wl z_Ml=~=;s%nX{fU|zpxD#CepDbkqyrb?G1?sV%N+wRFa_Wd!y8^2{(e-t~p;?ED`G+(NFiZu67~OM)L?}uQp&UVg_-(KiOVT zXJ?B9acU`cO_gY1_l^+3>}9+QhK6o$n)HiO(SkY1Di4=VFK(9>3fNf zDv6pI3+W`V?mv^WaDBFrVJeKjG>9ZvqTw=I15gch%3O=$n1ZrhuOVj3Cd{2l%>s%U z(qv3Mn2zUNPg{uR``7H(#;ZD8?B^yo{cAFqb;_~nK?*7V&3Skne(eyv&W-w>oIuWw z1vsE%Y%@S8;P_IE-G61m{UMpSi5K{EE?xSMofQ8rhE!Ih(3b>FamW7%^kuy$$${#F zi+FiGdWA^uztKGz3$=$)7k8**Hv=f=x{`X(K0sP=%(C>19EA@!U^zsKMA}w5aU}=f zpWP`LIzZR=*FndoV-nT1etmT;j>z{CG2}~NSP!Pq9 zOr<$#N)jNWdG?0gun`)Edj6iI5%T{Py5d&*TA1Bs(h7O0hW&2f+qk8QYvvP_&#+GP zFiwuGHl$v?WHVAnxq~umMm-eku^1^=!8=to5P4cM2v{c!*<^@N%V25Hx8BppEcBXB z(AS5eKWfdE&ce9^D&+~ag-Mcqcawd=2hsj3w8*-vz*KRrYFIW!`p}7hu`ab93nvmz zf&u-Nc6T=)UW11O>Gg4pVHfhQRgTuhSkXf2di?QLpih{}1R4Im)`89HR&7y3XH z;Tea_Xt9`XFNJteP!g4Z>9Jyc!EiR{RIdHnEz5vF+uRFD1Ygw4% z8fV3=zryQJA><&E759IrRvr_+vC^gAg}m-LbzJ##X$0_EFC;7BLAncj>cb_0u+l0L zSc$(cFWi8q3VZO}azJ)S@)-@-5QWhzF||n>XREHfwGP<((El0iYrA`NPRicnp zJ|gM8YFn|Kx9G7?=yI3Ou9!pW>Av8;uIpbC58Y&l+7isBc!-t*(yV%lbo)J_S1nu5vKd z&Wf0g*{<~QC~U$M`IbdX*eAsfpNeOw4p5E z;mBtF=x?(CsNlYyr=f^dlhz&~@yS&B2~PHnC34sf{Zw+qEIdu{SV)%s;D2xf++9Vg z=PV=4V~Irgg#UEwau66x5_@Nw9tPR4KA~92&0A??4rYc>93d3*`O))&`bG6^-vuD8 zut${Vdd+~UPu4V-IGg9lGlbII?;X9qu9ehk z1hFJDfuqO7&zTEC>Kdad-i)x3&5M*3md2S*N;9wdQn|h3pc#$etZxkH3@|2igw$3w zbFh!|(hb6vWFp=qNP;8zT`pDbqp#%^jE*kR0Oar22j3D`-)PiRWTpaK41OWe{wRoL z${u9o*8?~Spx^uCSO|Hz9Z#2K6wG+hx$HSZ7Ku|(5VTRIkTXTaA@W`&K zYID)=_h;EWK+fZBHO3cpJmiMUriKwn06W}CXTdt<;j;eGBzSbX1w}b6KCkep6?z#r z6vPSpZ0337fsTQ{_=hQM;?lLpyRK47;KaWM8W#D>u1W%?U8$@y+bvY;L>I}uv)6U% z^LW^66FvIGuIfr$XPM$LYd+v)U`q0t8Og*^IVL6GRybA3oftd;? zcHGa4X$r^!m~PyRx4fy7KSYSXbIw7GFt950#&C_+r_y!S3mvnGvLFJN;y7SW+#Qdy zI+C;x*7G*ZJRx%j8@g1j#5MQN)t`F<_dOsmZOArKZ+D_=Y&Rea2l+N)rhUt`ATj;sN)saW$-igFjV?9%;yRGclbZ&fyGS^1;X@#Eczj8LQS9n%zv0A$u?8*$Us+7Fl zhOl%IUUUV(>4;Q_Lq)wMN`uR`!-}*6ZkF+F7{P`3ItS}G%>AipKDkTAk5TliH8x34 zS|IKj&1507fo^j#+d-;B0D1RiBuaLA=+PHHJ6 zRfehHqb|G?5F}a-rii*a=W<0?Oey;qLMjhtsmp_B-9RBD^e=qFffgQD^P@#MZ$x_udVU_-p9*$lq$xYMSTF>1FF@iB&jsxppZ)H z;-8Q{iO^>Xx|{2SK`vlnwGP7*C$cYdONa=g>_{Y4gAx@U+`k)6SWTRZIo{1(IIeHp zw5rFtNADJ=Bm$~hHrc_Nd@N{J89g}T6{=SHt^wU&CxwUvo^6?;S=lGcQXscn>465R zZSyUdT%A?KFdReLp?>COEM>eY)>yM>XQ^ZH2N3-#E!lJNNhf}$G?XU&Y+toF7+>t3 z651K>K@XzLVoN&{?Lp1vRpRJpy#_Je|3wwHFDye2y`}3w#po5{INF>{6K`=6(ZfAP z_R>{{yq=WK_G%H9{}>q4VVBp{>-R3N%GLY;FnUbuS}E7YCa!k7zwV;-0z`Twze?GT%0LPh0-318ZuMG9sY`KSJ{Lp{1*$MLjSQ72{|8won zV!Gcut*W%io$^*$r+aN(exdyL4rgjA0gNoFyn(-WL(ugHZ~cHYVI)P@J955QujM$S z@HJR_G7O~UqlWlt|InX=0Cp<(A|Ljk>xJzv)=-VZ~<-S6| z-7_W!EF-od$e_GL;l7-EB*)!@{kr;i*WaHuW=51>5QSofmCV|!po_atr)yChG1|Dx zg>}O==Ea+~7 z;Q#>W|39#YgQ3%Zat`hPOg~E1r|pi|P8YxnWcI<`f!yzb z6wyRP-G9$}vKIEnXYVq!#MFfj$!n#SUr~;lm2FQET#Jf0CpqqWhPWHLggD5nHDxFG z9Ag)Mr=VF#rSfx{0&`g}0`%1ZE{Z)jFaT-Ov5lLZd6)%uCTNSMH9u|x6 z9z(3jmSuf+9L+i^-SWIpdOJ>DNfen(90&F1u-(+gDK9R%sC$Fift}IS)tNhj-Vo@x z$parJ22(Pi@`k5{>5h?G204|3IzxM>n8nkenS^Z#ccOW&OfWcZMZ3a@twL0Y+cN;6 zy2Wo&@GfFASZ}Lxsv;i?7BJMYrP$MDJO2X&Jn-)`(M;lRcs=y=i)1LuTOJRliMbOf ziMu|Nb?C>|2@FN%Qe%jcN#`#Lp(BJwklX%uQ%_Ns%odNkFQ_Ypsbwxh2RhaoG!vgZ zP008QanTEEsnBIuYbOZUEz^E+;mc09<1$r5l&S6#hfi7e>K~#PX9>wTK=lB zHe;S>NQR)#6(eb%fyY*>N?ManCrnlO&`NoIF=P@16Lgz| zzW;ur0Zowl2J2KJRs6U#)a?ZJiftQA;ZD42K?T_d!Q{H&xgGvHyQ!vokIZ?Fpdo;% zWOA9~D(=Fj6SgtFR0MykaV~pkrivsYKszrpUaXd_jq|hTv66i!z)A&;bee)7;Q)~a zlHA5H%&OSwIAa%hKR02`2Ei2RxGvnNp^8Fgkr)uBBYjdfP6(6*hVXf*@Ddw6rVbrg zjJugJX~u&Kti9iNhNv04FB(-x?g!Qoc8+YavM`_W)W%Css3!FSR%NaKF|+3-gPg12 z?09+ZcaUYy(?|4;bkZsN1N$FX`M**6e~B#-|3A;y|KUB-{@@V|wb=uDk$>1-|S{=?M0zLxG=Vrj2$zo;l&^;iuAQCim}lEXGzj!5LYo6>1& z%UDq~k`a^vfC7_Hp&vI-+uGa!Q*QF7yyN3UR{C~3y>>U-8}HJ0a(A+PzVubUOX4etNG+%o6RiaI8|>&d4tI8i-lPmPqKH0?8IMHZ^(MDIS9 z+I!6}R7^_Giznvv%RJT8dZ|1;AG0&mek=*eQX!g8eDGqc{Q3|ykzj%_IG=h@Bpamr z(JkH5K)k=1%k#gUpM+9Qj$usU&aFE+sL7apc1r7M=Fue`=rJaLMa=!FZhAZDhN&*| zPe+p{pLt-Wj|Zi2)WS~|6qQyLORy-DRb6`#h6PYW^*|nMlw`vOjg(R{YGkU7Vg6h) zWvf}{gGdS=KP>MSc=$UzAuTlJmSkpvVA;)`nK@=WDZW24xTw>XsOaPVh2VV@O;qPt zy;Oh8sv3xXE=~I2DWy`#b$9t{pd??3PcJDej)*Fe!rRd=$xq`eJF?o58@h(AoSLoh zA1v!dA<8vbHplZooJG8L32AX`1vl z<(ohGFiAfTg)B%3TWrvabmpl4I5EmsGeiWRJG@zt4DFMwLs4%i<0>~!UK@U}ntk8C zFw>~=F4n#<)LE2%R&8(eN;h9p=N)!nsac=$mI-bpwLs6Jv=RrrCtpeR@bJ=#mh$CA zUe|ENUv^e_DT5A8lX$$JKdj03eY|#;@BQ6he?+I(|9*VVZn^XSK0nd_W#z~K=9`~g z*x#L@YxceOQdFOutb||jgLQjv-aO6jZqn3H3s8}^T#ScEmxN#Qi%E=EG919!9tD#PY zs)wr?Lc7}3cbe6DNhL>t2Li$rA+ov&k<<6qhAPweb@C+khIJ#dm$zx*l!+fz@t@&( zG;phx164NF={MtTerLhWRtD<9nBrk#z&VDfw*(Q<9nr`cb2x$1rak=7~y|G}bP6QU>ipdLt)pOvMo~ZQ`ie zrbS&qY%pSWv__w_Yt2d7vIw%+Qd(fC=*#>{c+;&97S{A(NrzO*jT$8MTvIUME?%li4ZWfUN&r^E~E#3Om*NSa*)4}Fne=i<{x9q}klexcI((afd|p2rqkn!#^{)AtnMtXUVp}=V{if zD9}Az)32b+)0_~`e zi;Q1vw-de64Vr$eY5rk*m-;~FegY`m(=$jp^Zvc|2zd=9kX!T;2n>8>PtVj|ssdID zDh6l7`>p_q3>6x5sDfuyh#Z{P;o}U7%dKaj<7q0t$a%_T)KIAg-Tu@F!RPc+55~$x zX+hB_Cmc07;60Pc;a|v8WIXYj+6Gy|tJ1lsuvx8JidFV~__-D}`LpDv>)zYIY^05v zYhJ?E;Nz^4sQ|F}7tK^@8YnjTp;4KXB_iE_-z=Y^xlpwvrQap7Qb1-*=$?waiI*@d zd&Wz9-u?7D@t3Dn64jHFIwbplyHiVr;tBLr1GV3tC6oBBc@GfJ zHY^_nb3MYSR;Dn9(Q8#5MU*8nP(REfMV~L(P*epZ1vW-`%TOouogFn(Q{>8P|0_oj zW8NR6XeI{FskeG>w2@KfeW~=KYOHCAYsxGs25xQ|p)oc*=1|Xlg3S72i0EF8iB{4c ziB!7Nk`62E_!4wrr>xsUvS(Hr_Gc}`xrb`~s2wa=m=1DgB%z`**L97_Uh_h8flGPn z2pu({yjoKVeXEnOY!|e>fwKo4&c!w09Sb@0)HF?ou4$1XXjsJuiTxQZ;Zpa6iDV%! z&r$^0z~WM7blvK1(f7@feK;UZ0UIU=ib2OQg3umRRH&xog-GEg&h=18R*1T28qn+4 z(97B9z{RUkSkuN0RE} zh>J?{I;1Swo^|OwK~yx6Uc@zT9;whzVDS4UxgDyQK3YXtKIuMrnkV<={2KZfZ<=2i ztDfj?@gL&K=XjLI*3`Oio`wq|_&+N%f#t!&XW-v(-Vi@yspuyop?CI-!-=JQ$e(n& zxk0!CbwZ26J=0{;G3^q61T^^j#Qte0M=XJhqClbz2Zy!rOhq7v!|*2|T1G`o8;41^ zf`6JQ%@7Y`1d9k}+9O@)$#)vf@-^^|8v5m=iUOJM?>aJj!(a=!h)UUFoU`Y3-6yxl zWJdozyC(-3YRVw5s<|p*uJYx8*X#9pT6+L?0wwBXs5K87A09PXWyfKp<$HAHj^@A- zQ7S0%dA_}7-_-M1=&!8~|0i!*6yIHMKTsj)81fWK!<2je@}cg@Ln)9!#<3h`XGf`E z#&b4qmcpYHk80} z^Q3xZbjiPh;}QS77<-NI&IEaal`O0Ei8$#r!} ze8N_eYBM>qLGU+!dDDeuVJTmz$`rDt6*!(-$|QJp=7F0bzo1s3XVB*0y15goykJ!s zoMUO??{4Vt9u!BD^1$~$XR<1K71c^&=wyp`BYKB}#v(}Z+@+^@HVhVeg$Vs9!Au=13&|aqj zvJW-?K&7||3DFaM|C3NtKNOkD5T4|*T)l8?4-yP!=#z+}#BVgnvQas1Wkii%cT>+# z1Qmp`mvUm?0clOUzsQibGnrb}Z_X#aD+pWzXeZMlj8U;z^3fA|dtdTUh40p+P~=H> zJFFkQz?nFbH>y76RPly4Zw`v1$x;mdKvad$IRqe`SNe2h{J6Jrq7~%g$ki!vzDz&+ z42$!7NSU;9#kI)nn@nO*c7;7^D#@cZ;s8dk|{A{hjK#t9A()%@K&j=cCEA) ztE*cWWEz;SEl;qn|1=k2LM*hD+h7%ZZ9M*o;fAX~De5{P>S&Nh&&la2JYDnwRehI) z7T_*h#4}ZAOjL^nR_NAL`G@Xvor|oBiK2@4eT)Cx*)o*r1^-$ z2n!GKstiiPHybj`-0`HUpRwCFQVq!pYdnypBxkfDHTs#?RxU@e!6na>xkaJ8{Yf29 z6AC68Tzsu6RwbYTNCqCpTLgXR3pmC_IrwmKV$-)U=$Ti#9B&6Q{#j5HAbO5dH73ic zT#;f#j?|woA+OJA?Y-U|x%MpYd>4KkKRE4Sr@lRNzP3ZT8-qk6z!E1?)~9A2oXo z^Fr_KJ!L$D4`8(`+Q(`K`rWNq181FF?m6U5g{))uoS-l7g|w~JK-^wT=LJSHfIwRx zwEz07`2!ZkJSOW&pcNG>eo0TW!Bx&Yte!3*N`%|~zxQWH?C|}bPT$X?TjYCup1pFd z@?utD-a_3DZMqTdXQF*P#PI-GG0&MWmM{U2iklSB;rPKVxWWiBH&lGjMe5x8VMR;d4yI$$Ir7Ba(3&0Dm%E-;=T zurM$_1y>Ah2Y3Bh|Akx(({$EKJJl?O6~LA==Ys7)8F6+bZ&r*~rV&@gbd_YDWoKg( z=~aU+fvi~+rl4_LCU`GDaxVY3PMl*bX^nAA6?%!u+XPl>#$>1^S&M7g7JV+eQ3WHZ zja{r!iY5obN#NqGzj#iVpb_CpB810@zrL~sNFlw46=vQC?L~!Lw62g67Q%O;P~)$I zZDM>!Id{XsroPye8!oNrc*o=;8iC5b{p7`pOPS7lLk&}3K>dU3=90pKbLS;RL|ib2 z_C4-AGdZ5^f~(xRf=P8sSXH|=sYT6hgncOnA&6ZuGL2yU$h%W+Z!qqpoos)RtNRdx zs3+EeF7hyLH&jmh&R~OZ$J`nwv(so61dIE(eG}#i36>aq$)fwZPyqpt%9tpvC~VEI zwf5Sv2&Ds=GR5K#tr)>wAi?Qm9!IW%X$j}3vH>f$5>(Zd*S=v0sA|>Inwk{l>5PmQ zw}|IfCW!(Zf0APUA@Ahy;4dKXzBgV%KKTRxai;}oWxUqx^XI9QLJ;)JXef1Y(?Auc zAJ`QD{F$1ENDME$uYee}zJFL4pJg3ARvP>mUs$YG1+n|=1RZ`U&5&fQAvrv+pcUMr z?8RaFs*wH>AP5t%H1@o4)>gi23KJd=OR4m?x6=9J$QuXDy z_qp_P?cr^5u7CJ}0mmNa*ZVzQ-+j!VcN1$WU)=o{F%*Q49Y&g6 z{TUvrT;JVqCvuE%1xmJ*8?i6^)}1A8>@VR2j(n>;_@*Df7VJTgH%86-A-y%-E!fMB zxqq&M4{ocTTjg(W;*c=zPwMEimEQlw5fZX9r)X}Dk}-2f5iCy%8f39EsK7O%qYfrWc^MZQ$NX9{}p1rb^^gsYPLBL%5<-#u zmK42%aPVnNGQgN-9N%zYIS7aq0;U}fkXGXO?vBf$Uc8*@NVxUX&Qx2W6H_QUzB9|nwC zZ@TEXAkKYiMkUpKjzvh%1JE2D88CQH<)x|-33xH`k|eH?j-Y&tNBOkPScwFQNI=RY zG%7>UN9E57U>(W+^U^{v>(vq#MC$ba!r_lO6bI&1-bXY`H~cH&B!Bi?`4xi_$VGTt z8h;qObRauq_MFP(iDF;f7nAFKTSMuX-3}mC_icqS+DPjPTGAN!SWv-nrhoXBcFs%4 z$m6?f_p6QAY3N3!Pk{I~#POqXqExS__2N4Ow}!5 z$DfqvAX}yTO(^Ukl2S_QWfxP~^WuTt@J8FY2qj`(<NFao!5f>&6D1go+7ip-Za^;I)a12h@><+L`e>1iFFrZgownZ_Jd>lhJZEIBKm( zPH9{zQ2g`UOvI+wii?@e-X?Z<30o!n3bR_J%_Cf)m9X@=BwbqZ)}{vMQ9w1gh@8+Ojlq^J z+eVD~6?bBQk0V_d78jkA4B(CQ^5#WA`ER?dxO0_TUCv}x%CpVxFoEOtaj4nMr3}Xz z_B7z@1I%$A#RIT?e)4&JGH^!VPnPkbtF2AnsTKC#unxY%4^i4;41gyT11;109`?1y zqD?r@INCn5SsmK3a^i{B<{!Y2F8oTm1pCE2k2rAH9gfaV=KJR?^nQyIKd~tDB-0!J z($dl#+eQeYszyF=ERzQbEY;uW!+f_btCuG5dM3QvW_OQ~Ad*CW1iaj0v$%GVGAi`E zBZazvN#bN~f)v|t_A(Rux-HL&1e%oiYr-~d+a7j?;Pd10AWTX}s9z$qj!Ws)PfwUm zgMzC^tx^|(>WSgnrz()~*?zz`B?^g1$=+*_4JrR+se)?;McKldD5bS=GnJ&&U>iR5 zth&%<7%LjeRY)&-jS5{^uUxnKITo9M(?k6`q(V}al`|{{Ju)M&OssZ)0bDt5PBIpz z#$B76;N){@POP1fy{2c~E6jVS?HaQrUyr1)qe(8R>fx|1C-gun5{=R2J-x_T?o-Mf zJKO7Jse7jA$&!i`+QfwJyba+NzaP=))kL;4^;O!Ew1!{{GNX<04^hZN+%!>V6{>0x zXT3gHgtV;GB9jqV{fc5cA z?2d_&EV|-#i4^G??vQR)z0p%0Z_yRYCSI5;Zapd<7WW}<=~V;QR(luOg{J%t{znXp~}lS&uXi#Ws+^p;DT2RmNm({$jxXc)c$dnOH)!x>gP%N_kgrX`!N}9#GR- z*?~Vj5yA_+ZcAi&Sz8b=SLCS83fdfvEFWG###%l8K*K>Lb~w68GzNU@ryo0AYvN9E zdj|{m{)Xqb*W3N}=1uSlpVX~?i;tu5_{$(d>?m2-FQd|%B_z?Py{%I67}^^fw%p zbv%w!DT~+8mKIZ=IS5ADLM)$7ReLPtav`vZZg&7u!?QF*uUMil&6L zU7&68xivD9d?-r_Du8$@ej z4intEk!@9WeCTS$R}r_E;toQ^;_gVkv zDzFnTvQ%63Qs{52bM@PN1f!mctk<&^@ z{wI1sG{~J`)sDG_WY<1xayelYv^XW=vqb=pWIAC#8XancBHE#Uofg+)eHSFvHq~Xj zN5A2U?OFlOL2gm!U~J&CIpLgtX4x!(AM`_V(D}4mK3jr~c2zW_m|jJY5DjNiFc%xM z9TcbKaICMDx+N41+`9hBnUVS|E6g!pnpW*d7fUGmxq5~Qt{L0h*RwU9%y3KoAoU14 zOp_K~7&6{}L*d>&;}AmJoUz(?oH5&PqKgK)k?%V%J!`u?(2D z;?=FgqH#7AOD&FgU{QqnJ2qq(thu-JioS6#m~+(cA;;tf&)gZF-w~)e^2@kuk#mrt zkfP?T^|3&Dl9#J4l_-o|Ui{nnh0ZOTQ@=x;MJZkB>+Vj%yd9$rplIzmsI_@A8f;SF zw}TGr5Pn5oiXRC4-=>*Yd|PPnY@X~nk4ZW*P^W7bVNwSp<`QTg-`|pWy69<*Ox!Jc zVs48VE^GB{9QjJ7TV0vEK-Tk=M*tR{pxM;Qsf1w}5x}cKN3!uBh;v-YA(m7p7 ziN0bn3_TZ7>ihjT8ciO*M+Om#Rk2raIPv~@ft?!;5Eb~7vLWy1^LS|66pr&tij2?q zOSmD9^g9Kjdh$MbwMMT`4&DZzNd(R7^?7)3r5|S+?XEZ`dmp9n^=1QjSq6uGyxVN> zrW-yogNtM=k+R(&580@H(c#^Ei41%Y*cy06%Gol+Vt@RQh+MV}NGi^H+k)9D@J&+u z=)gL?r(An)$)j3GJiKxK`q&rOS=$N#b%@JrCGT6QCMy?%4sT5!{REU|y&qmQ?Isw% z;z;=2ZL%F~o3{1*-qscY9+){-a54e8aQ6u|jaY)s^{xxm*RX)GTFF{ou4@7`CY8>~ zNXzuIn^VYt!81pI zk^awx8JQJ5Lc=dDyL^Q77@-58d(QJsLeDx_`iI^KG=fUhR zrKQYW$mpD`zimMVS7bdB*Kl`g@lj_+k9(bco@T?=Xi*}(fwwjbM4O6`jOn&!u~Y(c zq=KS@ckv`Bp&g-vaH}c}k*-Gs8EVh|pD2ggG-styf5w{Hv1R94eMl#sgk#Ansx~W` zg({~TqLo^mJ~r=&CE*Bu$C0qs4jYbgv3LnkroH z;p+G-^0A-`%yJCZyMF)K(4tb5x8Xqa{e+FHT~WB*WSto9lGE3dxw$tPd2Q_o@>rX| z>x4r5fsLzE(U@L~fM%rJ@Xk7N)4lBp)m`vy)7@BHLMXld1QrobMHGaWQf+^fQLu|R83DU% zfWU)Rqg**M%A`CZffB4Nm1Yi>cO5-^Nwd}YDd%JzjW=( z2y*@dg*HQCG=A6~wPbsdWH#v{S=_m)bx?Df`T+C=OqC|5nitb z^4YS8?K>ko-?G@=<%e8HeIDiC*&&tGi-KUgQt zLXwKSg3tpFNPlBJ<%~d8y8FX~LP$lcH!wb=Z@DG@3xto!bk3cooGRgHj|cF|Bgr+yzsGp>F2a!TPW}P&mGs7tFm-EsJ(&n-5IG`on|g zALExGkZNS(i)a<^8Eyj+JqD$H!#?f0HC)ay?-6sep3#zlf0=N^h5|fHr#!h#X?qD{ zg5`R2)y&)W{LN!*M~@`252h%v*yl=3HlKq4_#Z3QXrdDa6s3sMDj;(WF74u;$brLb zf)fbIuIB=nT1)cs9YCI^T`%Eag2U+yh;cMEYVE_VlfI>*D>h;|mNY@g{$+`v!T>k? z;pn!jN_f&ibiq)i47cx)AMl>dJ>()5CR8qDt5qrV;FqW?@H(-aab}Z?jeCgeqpaaNxQi!UF*L6}#PuA&Dx)wi z!(c0{6wqLZ={?4<)ST%GasvE?8dfO8U!)syh$`Ym2J!}J`<@)|T?ppqEk?I)5Kuyj z5787?PMSIUfQYAxODr?J0s-7@DYqUN^#@W`kto<^lUAG}~eXybEwpO|Fn>ZcO;;q%T!h}~DhBej0jKvHE_)&tF zell|RS-Cz>c%U?V;Mx}Y9cp=p4Trk7FZ|CInF;=#@q0_2PlJiLd$V^a*VDjJ@|jzw8yVju@z|!82^vlV1^jN4tKLA;kQA-Ut?6@0y}Y)+{-o4fUKf)h~j zWi7V3rKanSg#xq4t){|#w*fN@ZCS2QL8GW)I>Wvy6$mJ;x)c1 zZ105DRF?>)7|Dx|eBqUL4a;ysOdvrfg=JP^(t<6E zB_r)uw>>RolTps|ia=WMEm-MYEQOJ&-jwNvPA zIsdxy+^Sv`r>4ZQ^SnS#b9Ii)!k5Kls{t#;S@sw0{VxqofP)18ig9aUkxQ|Y>*YL* zuT)yjx$$5H+A^Bk-lXU0*O(u2-*R-M)c(!h?AyO2Wq9&&`4%b0( zDFa*8j;!CF&NfqT8owL5?Rd2;idx}%#5uTa2mb14L)CFZ8&&^}oMK1iWA&6-?JyYV zg`RTPuGn^TJ6;HP;EAcEH-K;!VAZpbN~J&4sRbkgb{GeRi`T7|u*JJ9uG?#3_<^Lf zi|23Ex!UAjnE0mk*VSITZoU0gf8E}=dcU=Gt_+mhxK}Uc_ukxqcA9?8Zu1!$V&beG zImX9ZqB^{1zIN50SZ|8*C-yI_QPlPyq^2-Y&NZ+p>m;ZTi$bLy+!`3vQBHkDN+5$v zedaZ2b|~@N*}a;4+FObaR#CqM*ArLny(RB7{_-w&k@@H(BpNH|ck&rGm#Vmt#z966 zlU1AdNMTcKW5(@~35EX@sl7B$b|9O!*o&k!a5+R$9Cn2g`4>8f?Ch33`#7g)SY0j@**&^xN{l`WGc<+7QIv*yWOJ(-j(S}uE4gNWL$dLp{tpWA9nSG zqJJ?jaO+draCol#c}S&;>j>txpm>AYtAubq)`IS%pNg1$O36?I7x4K$u$emZZ&Nd$ zl_L@__rWzca$cWvS*zP4q?h0N#{O@Q^X_@;jL}W&VAh45tN|VzZrT zVsR?kY*~!=_v_^3%f%3F5cU@24Y&{&Z@c1swMM=~P7iYQ#i0b zX6kMf2-W4s1+wU7_HYz9pYv`0Nr8JgJYeE8nHI5q^ZrYh=qMd^6R3-_b^GUj6E! zz6;@zz;21yc!RBB1$AlQsZ|kqk-Ak)-*UBSc9u$}&g48Gs3e$)`W0ZMsaBD(t&Jr0g5+x{CK5>)2@Qe(LjlRy>BqJGPFMFQ8%Bbg)9dwy z{wk4Km-nZVuC8u+xf=dd&FoGJW~zbrFr9N2k6IKL@S2>P9G0_1mVodhybR z0T0#Y+3=l=8bR;CCN; z7cDyUd0qJ#4={7luRdC(4E}xZt_JL%Ya^~-jhLzUQ9c(#doEo0t=hBR1q&W(xr1cU z`ht0M-uL_)K+>sSMbuD&8yE`RNTOz+}eC8TWaE%T0W*B_n|4hBnwg zpGnZJVJ8>9?f`Ol{4P18Nk7e8IdJ4G7dmeSj_ov{Thn$NU0tBWoPoHVNuF?B$5m`K z(;~K-n~nYNspasGrcwtpZG5lc>L$>oDk@hOVEpo6&7w!^|L$0Ox4N5coY}F{jr{4W zHmh4-&mGOxy{Xx+itf>xW!;h7IKdg}Rv7RqjIR;0W7$E6yam+H1mGl%V5@ zQCH#~qD4b)+ns2=m(Qb#89Vehk8EmsV{P1iNCO0x0$>kUh}?suXKQWL?oRYySLAzR zE76EGZA|8kom~^Ap0uTjIL<*>@ZxABv>q#Ub#jqA0V#C`j8E<4)_cvjB#&mJ`+>&b z^y2CR2RM75a8?DAj5Gm|e}&W4R%$802m)oJl9IA04IGwcnkZ#!mo5z^W7!?GTqmxI z_WVoYt{AqSC?Gyo(|$G^eGcBB8_C{vnE3rqXpd!X(Osz;9{xyc3e)Z?sm<(Vv1{fR zqH&Rj+x4t%+8h1{Wt)F7TN{2KBXIM6Q<6wK#l%@*#l$>TNwC7L$7T{~kKtG{|1dNf zacx`oEvh??5CRvU6z~f+>C;yF_T8M)JW_O zw)fKA<;<=!;wT^iwxXcis-t&J>sov;!5%NN`mfl!O+8=V^JVLAQhb^5hI>s*Fqmvr zGkgw56xlbG3_CeEbm({pf6A61&9;3X!9vzJGtI~6KQq`T%TspeUwXNTDrrkx~ zn`*CYR+{(YuCOe<#pPmA5w=xDGN&KDPBFQA@>bPVTR>r@w|mAke$C3Zy5*1?%NbTx zTY>5JWn)^Rirs|FjNKdjad4Rnfj;SC5I!Nt5W6xEi5)0hq=z>Y-(Toz!t=j5YGFUP zTd3T8O+z$)K5udNQtX1hhwqha*a=8K&>4m{(sBEGatYDDkEndTvdTS=cBvs2k1UV4 z+VGXCG%tI1nnfx7F3_~7N!8hT%`^r&z3wmWs6_RAc$?geMuDX#kYBs)5HPxd< z_YeID-4*|7q$U8}{QN?^$XcaYp%X7BnTo;nrH$vK)UQhHYywhK8)*_sW9h5e?U*i` z;Q2I_1F1$FO3}f6{7wkZ*hTRQ3}WVx{do8dDJR$~l)5;vV8DJ33-(X@VY5nkRt)I3 zjQ7ES{~Xnl@&nt|2b$+$HHoEG1MrPaGZPpkZDO{=NA;qnxdhZaN18BAP(${C<3@1z zV+z9sMy_1H*QVMtOT}QT2p8OhOK6|fE8H8g(IAxo5`CVt?LIFU71}*8>v!sRYg&Hw z2V~EMXCRFNsXlCS*NqV$wl3`ydI0YT*j%hUDlp@0XNCeTgTDwnooQgXc*1v6i?!Kb zFnlzo7cV%%ehIVH|1n;7?|744OG5>(tP5kF4QTd-B@I(Q8Taj~Amc+}%)Hr;rbH~4 z-FeMO{|Pfz>N_vqEZ$^AKN=D34!iCIwbOYD-S-OI8_C{bFVMATwrzZctM@V+kzljucY{a*k>K)k=AZV*hn@pSWxj$TGn*51=kfNI_+2%QTiFNt;chu~C1USJl~ zQ|TNrfv9)2k}Q|@d!d!0I3u_$rzKG6G$hFrSOuIOe_6u%fp~czYnemamr+rb=ng+< zM6K2ft7dFt1KH-W4S!11)(X4$&89k} zs}am6T5Zby%NZZk`{Ui|w0Dgc(#yf<`*P%I)W`m8D(V^YIZ%-->~4QYJ#6j!!TUtR z+m?%t+)}tLP-BItdj2ZyZnT|I3 z`L3L~QBcpjXVdYeRamH+yJm)|{_5Y`&$fOX{Q9ypn!#UBe_em_>*huW{si&jasoX1 z88!FWYIjyvv-YUdc(MYiBrFUMmW!dkV(_z2Vmto)3P@rqbl9OMJL<`H!Z3kEG~JNv z9DfTx!&+SUOBAc~1WGOmWyG@_2-8da8=y#sFqim^T z!v~0fKuSI-r_ucb`-6tc!7R96ld;Hq^sQ#Cq!fv6%9=-2TgA6p;2v%HwLQ%@b*1=f z$9B4tYLW~{<54KDD>hZrA6GfLC8!I=_yEZ4FyHizclFRiDkE(^NttD~_8Cmjz33x1 zbu#M95p)w|+1_kcUQTAkY+Nvv!R>TBS{VqLSdB&Zr_oC|qo-uGALAv~6j`PUw7umF zulT-u(F0{duZYMRmh7^eU5xu(U*ILyI-XwkhR?^BlVM4dvEyC0`h!07pRD0(;>+pO z+q`D-svMort{BV=tF{wn8q5+HnRsU9gsYFh2%>dFiOyr;F49Uw;P@u`aGnh8$hCcv zh7QllsG+mm2((tyvXZFdu=Qbl($o7!a<;n?d;^yfpBge%Usl|fO5#T> z&-O1mAfJj)*5oyg_wSeXf`M7|m9$ue;UlO#S zYag^=D5DmN1Ff~zcJ%giIIc>5y`FeI!7jnvz*dApf-dkIRy-nlgXC{f^Qaz5?# zrNHAvfzfz8;kQrdZ8$YYZ}>Qw2?J>nVC z&___KvZCM{aF_aQ-N{<`J5)S7Z4kXp$YFCNd#u*sRuANEi;vXB{m`y~>l%qx-&~!6 zLhZ8+*F*I<=qNS;l&cDWX!n-^FaSO~3sA+Ow~zE3oe5s5gwc;pr!2fN!N)Z z`_?`%qLM4p1ugKn*AK5iN|=DlKRDOWj&QYD1K6!5!@;cGT5fd?)~$uqPC@IWg=01i zs9}fJ1h3^@f46!8qx}r3^ zd!{|1pE14U*bbNP)^i^jm@3=txe04`x?o`hl`*fC{0jC}L++93PL7GF;+?cjh3L~z zkyl&`rXJ@vQ^=P+eKVp`eV=FD*XyHMmVPe#b02PQd(?<`r(Zl=T@nf6#|kgu!}0k2)udo2SGd1}(9kFEd$Rs_<>OpRi%@R+ zuq(XhyMAy82Y;~1HXc8rDRC+}Y7V`H;g2tQe9nXNvvub~X}*5IW$?exVXk*)Z79}3 zArk)GRvWTk;#&Ap4nJ%2{AwP}v;4j2u?j9=^jZ&!weIJSjl950Mz4fkrPDtV+Ve(R*LmQp7xz3N6>m8D=YdwnQ3Gr(MYbDn?N6<2vjRn zh2Q8ltSt|DXeEUeVW^fmN^7fJ$yqg9JlrWBxsIBtg<_UIWPqALI`%9yb3dm79Fyx& zrOo-3Hlj+8=2zNum1uSjCZHKay^R^%mtPhe#jmdKUwu_PO4exGB7ZE_A9t|gBUf<~ zD{jal1Db{`GUy>o;-|oY2{dDv*RG z$Scb?J8Rzw4kV=y;~S^BgFCG%-#agR6FJZGJxQ6j)OEzGNR$CovDWcTQanc|cjzfk z8;h!`$?JkoE>A~$z0;`weEjb7D3UjQ60(&^!qtezp|AT1Li4*Stm~^{9ZnhRYC+@A z_e00IM$$R~A-T2XTf1xJXt`37nD*E5ghLsDQM*q_qX|p7y~QMNysq8v_V?ew!7w^s z0hQwrRjM#U@Ui`AZ&ab27`Gi>ierU2k5{o}J8aP~*Uv)oc2(bLD@t+ilT)SpbB7tz zlT)>h1_ha_;!dr8DEyd zd)aFYY;CrELQ}fC9<#RMigXoX<26mjdSi2)8#vO#l^p4sjEvFw>wXbTzynaxqQm z{=nG$?>+Nm)Yvjemg*g`$Xlych0s^fSdY zldI@g6J3()=5}!OW0ix$?QHC4FzA{fP%W74)JS-^B8d~rQ5D7kw7vE`i<jWz{ z8+g|r=Y{6qdOQ_N6)VEna>8E_6$0>;vUk}I)as;XKz0UGcPT}z$YGumA=21Ye_~lq?@yNlu{-`p{F&HaH-8 zpY+;L>bJ08PaZ$sY}~WWpl7%~AIN4?*U6v`6!5x@Gm|f}{-nL$U}(+y|3#wzM~e>N zC^3T1b7j66oMSOiTzOVH`0gJb!a8cgvd13KR+oxaSq_Br}%}O`1;2>fEjL)ATh~&+Wk)IEn#J{`7P$*MG-IK#lp2tMaOp zY4t{&DCIK|b&7>Xn$C8pD1WgRE6Ty3+8gp@w@)vwM(?YDXYxa^Nc6A3chWJl-s$Nw zzl<)H@Cu|+dgrk%z-L&Cofcq>uy)VsGtvbRoxr2siz%SzFt6I}O&1FLTU`v!tS8V- zpmL09pPF)q?axklN}aM;Iyh9hVU}KOXAgb`O^-edf2MwigV98k>OTJ8&)Q{AAC7Kz z%+vtY{!D7!+*j-y-B)pr{W;~7qSQ^fbN5B5&)v)3ry4=XnFfR+UDxzeWf+jwZ57f0X0f1tq!t4f~!Gyz9}(jB)PS7(g%?pExgJnt+;P;YZW zge)S7Q@pR->PwUWUjJic0vYa3a=eZTkWPy62;tv|_qC)d_Swk^1+MQx>J97is5de)qDHts|^V#`X?&qiks zEhHopcDpuaW$&4?F6-yQAu-%S#HzL6yG=vEWqYQv;Z6~@fCOt&Mvx>@yGVYa`AW*Y-tc0fo8dQW>>3tcfYlM3FGIx=&Yl@83n z?$sVCeBOe?MezKq!U;d&3@%1Z(QN0yfqYS)yd+P@Lo)q6BCYG{g9ljfLE*wx!2tnx z_3<9)OF@Bp+@%6s>g(QQP)x2)Kp>#ltq%Q}bK-uOn*mM_uz<0DU zOK!*n#{sUD*9mYh?OhhXup+hST zYEx870XT(`lkw2MA3%fwyyM}YgLP?C9D@dCG&?5iZE<`yI!?_2Ysq0VV_E-|0Z#y* z|4}eM(%GAuMUBSOr4WhuF=)H@@Z&rLAOE3E-2z3IjT^(b!S0dK#G-f}K7oB>B8=L> zyMv|AmVg6Nqla--|24F8aM)p?`D_$;utP;>BDbrs+Xq0ho}2lh8Pe>cH-mM6I5!NX z8GRVP2NhZmE_ZMdr8!hv<5b%*&1xY;2So}% zjcIv~YloUnOCJC3B{(}v?jI%)wR>_!c85b#s;VjWdu&Ey?UMN=uD*t`pJD8AKsjF9 zE^aVbZF{1kJq=FG!P(%{tq5P{^L_Moy>f4`1v>us%$In!a7YmQHtG+J6&x$C*N+X1 ziRG+p(2?4qN(bzSr5A3@CwVoKBkH6b=kx@{EZebxr)fInFbmk1u)3!wv_a{&r*g0# zK)VxYe+K@AJ!z3KBa{6~GvUTZme7iZ!*7siE9R}Ev8fBucPMnD4+u!$C+MCzrXa>1 zp?O?F(;(*oT-W=q2P>jygC($Atk+EgW`z6BKbsw2La3_+*$fChW&ft=cDr>(!}mE9*++n4wBmhIu#y=Rj0;c84wq;)&ao(UR6Ty5I}%tvp&yZ#Q?H&nUIj8 zPL?3vnyNdQ0^#B6oCgcR-QkH-hig-!HpENhv)K7KRA<|7LC|WV>t)2m9w!iJq$~na zGPe=HU9lVA92tvFj6e-8HZ}0!@8{2s2>`xNL$=c?g_OC)`P(==^LG~%TpI_uXp~n3 zp~~W#1wc`rzDpYT2-Y|VjGfm67prrBv$$|AwaTrIHUiw>4}H&@48Zdvb`ID!`V8vXSpz2_euM}rm*s6@onjxyIptdcRY zz4t>ZFq+SY25P_epoXE+!F&8FU0V+`=tfY=+T?z5`U7B5e=Z@Gz6a$5Xw0}cfhaJf z`_CAnxJ@4`@o~BahBCry6S20BctHZ$U^*RulhjDa@YU}A%fIX$y+e=Amp|;i{t;tL zecD8u@IHTH+pqQf`@P+_`Ff|Y-KMIhi?BpTyWtRDO$|L&IEipAnan&OPW;`4{`;0@m}>)x8V)1rj=l$Bs!Iy(8c>!GsksZbfly`$j}>w zbj5J@o`OJrf@HM0`M*F>ca93#cD<(`d+v6GD8AW!xA)}H(QEJsM%^9m$?oQ+MAv*o zxXdeXdj-SYm=Q0CDvzBjCkz*q257}S22CM!1bqkyAyo&ZhV&T{n8wr>pTawel<@*Xyn6~%V%wi%Ve;XJ$ZGFJW))K-Q)MGtr4M!J zHiS?#YoE%sToaqw;8_^kcA~^+5(JFFm_))a zVWqrEB66Vzh;|AGPmgszXT-=kLO!o)&FWL5@JeuaR~vyX?|7CjEky(~AeHFcqioO# zA&eY>b*Oci?WI31xkZp?+@T-ezQpN)+vN!93`9VPutGsFev7B$;IK}3hnDTJXeR#+ zLLOA46hvSay#i=j8lzq@JHJL^{72Pfip8Aq4-dxoA7nV!x4B7gK;q&*D)AkK+3Do> zD;2NZv8GW|81FpN^3IZ-FX+et_t2YFtN~_uiVV!XUO!B^m_UObjEMC*Ctww5ZuP+* zj*i~^_;&B;=)tO!k&fuS#cj7a4gC5byKy-;aSQ~A7z7%i)30VG(tOQ-+lG48c;vE* z4Dbg9dViYv6ME!SLq(K^hVPQeFBe?X;ubRAg~6Z1ulohNsw*mM3;gnnNhjG%hkyC6 zB}}U2_o)>E=4ySH2RW=#s3eAU)AkoLLeb@-7M8>XAkr4;hmmmX_#+25T>n z4h(_7Z4<&1$D=(3-ebY=lr3lxcE&)g?GR?xeqLEn0a{9{svwbxVE;NMW^jd^Q(Z&$ z8Uy)j7He+1cCB$1Ujv#{MT;@BowaXQ?QPhfJ4B$$P8_`Sk=&4ZB6i31J8?3g2JkMh z?HB5gUsL79NAVm{uNEB!LuKX0L2uik9OWV?RHW!pn z5QOJmTup=`lVkSzM-9D?Ue{9m=ygMy4+%b#&h0nmCOom*4W^51Iux>4LnDUss}S1- zXA`~VYGxB(d-y$mv{x9I#o@R#pM2PL6LDE~TX_+A%_pU21Dhr2;f@5w-Kd!azn{O? zK{JtV6bsA;?J44pcb$aiwG7y>z{f(%ZH)g}}y{Ba&pPAE$%- zF=h$+TKuZwXt zLpbtw$3CK~g8fOd@uY{EDtS*GZPR~41xPq6w)yO==nnYvVO|&u9(BY#jD}}kxa3D$ zEe;4+K~s!v3_5jyqqh%WLJnK=hJjO(AA(F+;^gMZ!|NU;G_jAW^7Lv-pxg|}8kWZ8 zee`IPfV}TFuEq(TKpC1$2mlk}uPM~14dOTTT3M9eXr72D@)M;gCs=LK^8cr70;?hP z$t*+{q2gwrKyu$_Evv4RrnXf7rPqhPKbhrptXy!n{D$gQfMUmJD}VsIh8xGsXrOw- z$pvI%#zT0?p?KW}18n7J$*9nl#IeHa)}K7$2bTnf`-_b_2k?WwQ^pV6pP?o!t^*vx|B?wlbkt;M2w(58G35*}qNez{Vzux>6K+hv6~6nb zSo7&kHRvga{|l*StJnoA>FByR2hbH#3-^n2G|~5rdgwuJCU@aL7{GRcDotjKh_$U} zYBc_6cV7FU1Z|Yh7}F4HSuCm@6(!xY^|*0fL9h)D>`D#@rg+eJBcB>Y^D3AXR!+y{>qlWM z$j7t>%R#Q2S7O5Z+YjG=2Mxb1VI8VjlpG!y_Yw-p&%suYI}F-eLU9M@+ONvjS(iO> zI#qZg1N$Lka71so{-DAel9(RZ&3GUl$pkiTs*`;khCmy9EOLp80D#dyfBhEGwu-k^sDxL z3;4l7Yxfk@*sa4ZhrhHKwLPKMYQ%<7#|1>tY81-$&h9<38P_<8Ge= zz}=wyj~=D{yYakWFnz>zTN)6GfVJF6`u@sOMS1x@6KBE37Ylk6+%oqxh`e99+tP1;J1et!4vd%S5fk8Ls5j#TcN_#!`l zjM!&fDNi^x7)n>je_-y=*^xXmh*FDVuiCMnf=g3{AkXl(xSJp}f}q_(Iq~UQE2Tr^ z>G{-mTs}7u1edOFDOA9A&OQakW2O8^6i;51k?stFx5TCew_1U%M(8CAeNCnj()|1Pg7up6rTZP@yfu+K`Xo5aN zT|IQlIeoVgs&6&a{ENj1BI(KPs4Ap>rwb@Klu#5S!yj#7Y3V-apPJw+tlU9&|+<34$nwInhVIZMRI&-b4;UV@g>1?OA1JhM)H@i3TG-JZY@ae0@1xTs4ffm@4uQ71tC2w;#4A^$WqGG=$iv-5m(oQgTR{aAh1^FAg~rX z2poY!B>KOR(s9|F_)q<u)Lac-D8QPB#VBMJl}yJ3VX`(wCPo1I)pB~dHrs` zr57qn@!)ewXbgc?TGiF*DV&=v>Q?;PIN3Tj4hnlb>94A!hp({gCtc$j+(HAv1k|5} zX)4h`W9BWlxsyIP+&U9H5V_UWQ( zBlnfZ+NZwXSGE+hNZ}cc13@87YL6CTikG0OOmf0JX@3#4v8P-J8VH^8fZ0uZ-x0WI z6>Ea=a}fLfg8dG-7~_3_oRxjqj(QP?u{P~NU4QGtUZYV6VRB`}XiB%L<5_b6o#AgE zBRFzBP|5-lO`Nho@M%J|O|)p4LA0K8KHL>lTp(TI;k8OI{o9mlvYhSwxc}|S(^ja$ z&vo*qmUhye*afL+Lc8a|>Vx1en)?p0V(+?VMQ3(aC65STrC17n5}efG&ro-%q;sx7m##@V*kQwx?7jc3_np?(jn_=G`(Fy7I z(752mBiUG6qi+-8l8lEPTHn~%3?9eBGXooak4m3TBY<(ByUX5tP{*U{0#DInk};1( z3oSrM1mm_u09Ml#*iLaH{V^QRq_0MYwL*|yD|DIwtjzaxRG*_V?X-7wegO>w$V|HX z8rP&ZmI+%(cxd820RIOc{4|1Mi;FT7A9BGBk+;!91Lpj9Xdd}9J( z8&}nxZu|1lnqXG$6mA#~8zSXsy5k&8tw;-OmiWIFb)qviPk5$$`aC0NH{S-6>}5)T zu`L5~(sb5tBCFhCKM0m)9huh+zu56^d~*puZ-{A1_juIRkUgJ-!3|Aruy$sx1FOQr zP&qsAi(ru89D!wn6+^*ckSuESc5yjF#!c;8yC>vY7+-)x{c0l@EF!Y(d$5Zs1A_d`>_g27>p)2$K@qffK*L zwuF=T>shrjI3JBgU{aLYj`v_J42nLI!KK?UEt1Q(dy4-mX- z46?jl@+Md&mE%qdARinLKa`0a@jTM_BN5P@>)q)|!fQA9QoGZ|U>7XA9b`UF0)y(- z(Z9pVmWgk9q9>MLi$3B9E4XZ#5d@-p1wumb?uYR|?Q7E%F^X?E>_#_hOyr!2m6Ak% z<8n9e_}QCH_>TD5y@l|q8KWfu-}x|@jz^cwv6uk#d%O0d-iN_CMxdoU-orBJ;SWfp zGY`uU3q~cnv+?)ikDxs3k+TYwpW^pN^!=8d(s#ED{rKyn1@7*o|FJw_C%AcW+KYR?J8uNinYBC7 zRU0H(bSye44SH=ONuIVZnLeC-JMa~kI2d2MW}kX~9JDD5*_Ctyx4|HETjwNM5KA}~ zm?IP{DDV#?U^p$oPp>x}kq-#^242JW;BP*W(UqxEj`rH5;Io5gATq>4QG@r$4ZF z^g z(U+veoLy`Axv7~dPf7Ph9ZCn;(;&rX5E~zHlz&4L$vahgM-Ywj;8hMZ3q`Db7 zqqgbEo`#`MVC-ca!F@MydlKj)Ros`Cqg-jQ6}Jla@tmt*Y7oX<-v`pK?>@yAlpi8B zZmRuKU`bW$^^J=UhnoPq!&0BR`F$KnHy3pvg|ka1w=c>wNb)kky$ER%AUK^u%0Rq3 z1F1rlJTj0H>L-#dr^i>)cqR>&AG;4Y-(Bh$}p zOt*Trjv;{ba0v5ht}J6xXHR)&e?#}dpdq6YXksGUtasB^<>tC-3wJVmMPI>dEN5w^ zno51;@7n;PnmWpCqA{}3ZGtwGvdaj0^Q}l9Q4yL(x+Eb{E5_&ObpKm8xqqzK#rZFPGIey>k0p_ z_I>{r>fmayh6q;?X~nYEB&md{ijb>f{2UvDy*TckQS;rxr$})T)hM0zZ>ev7WGV3d1>D=+tHhqNB-Mv3L=Xx}?q|23-wne*WM zABL84ht$mC8tc1rNA^(`7rArLB5|a3s47RddQ;zBIowb)_j*476`VR?QEeg}mqVvl zU5`#zdmnp)*|Lb7m@}73p(z8rRT$_6Zp#Dg9R%Zp+xhhwNRCx*N=TS(G9zjhX<@z@ zuzL)B2SP^5-lZ`mxP~fvo^l}LfZZuqwAdyr&Arg?+Ki6Z{bBcSNAGsO-8*{uYJcxf zdvBMG&b0=M*Toc|LW#5CK$A3R;;9ozb+iwHEx1Fqy&iQi|NC3^R7^C;cb9bU_w>84 zvR5(a$5^Jzp)@2S`8Wb~YN6&#Q>G5~n<8bB{l*XK`yT#Ih^#zcU49#`=}|%{VpkP& zivo{^B3=A@IpJ4pK;Nj4V5FtIcd>rjGdJb7m-4oCn^A6=^tFVWE)O&kv1>Mb7$tub z2F=F}diUsXSQ0`^!L@Y_JNTeXuph%`(3TJvi`FkcwV>Eft*xJ0Edz}fv;mskpISGq zS~p5fejZqQr=ER;`j{k+LIe*|6VUXVD`qwpRm}X`btfu6$fAoe@8Z13opz()opxif zJMG5*t#{hcb6UBx&zwx$)CoGc>1Jf~{j7{`KUrCZWK~^TAlxsTN46k5-4`HSj#1k( z!D>3sZo?F73UUjQ=Iv@QoUMS??8mp?i{dYvToCOEXxsxE z8|vS@1henTa*O|3u|4mD{bPuZB;CvLKS7q_%!uV^<;Qoc;5t;Tg6z7w`{v~;d^@ZQ zPPzm1xg@CL=`ei#@#Dwt^z3v6@-3o09NUGT`2U+c;n>J<1fzEdr#M&o~%DU+kATV#rmoFV)=>htRumkMQtIYn$~|GHYBKX;_vs% zjnl_Z)=PkXegxXOlh2=?t)KKy)=zqyUzBH0*H1Q{Zfu;MY?|*+OD4Qqe(h{?W8?GB zPdCq=^q*{Ol;!E;vcLAl*`qHuPkZI&+2-aK>-~*K8yZBI?W+(`iw3gd`|<;P50tTA zR`g&fzw!HD7408h?iZLE8+;r)H7V#=O2fkcLC{FTP}>qq=w)!F)K^{3U&vo_Xh+e!~Q@Ow-D?mX)}`ASteX8GXw|`p2`hSO4)Wv6iz<&MI<-fXz5AiL${PnX=r}F@s zfDf8d9c=3-{LS5gUw>$Kso_=Qvoh&1S2|d###i7xv9w$)851l1Etc)sHU7YWh?k&B zH-A%MxS)T8JP7zVB1h6QAP)R@S`Nt+%;jbm_%GjOU|Zo2xG>R65|8L}qf_|Y(xI2# zmN#CI!?T)7(oJ(LoJbB%1FXMvuw>J_m*Km^C50A!g4nJrl)RwiKiyHnsUERzb#=l{ zLTx~hKEb>L{?ik*ae*Wc+z!xNR<~9GlxJysDJ}@11uEU6R(jyLE-7#s%=6_b4jGT8 zB{vZE)%fMc{H6r-;_D({-h-7D*L^5|Kuatr)0glsHyNg#ubTvDrOV`jb1^;LR?l(G zIdYc%RO4J6QnR4^PC`#R^b7 zete7c`KpJOC=?0hZ+1DrNo4vpM?O{{n*B4S$~J$h;!M$jh#=v`H$HKjZ&A8t{He)& zTApLD25=l;8eiPNxD3F%>Z=_%mWCU~DgZGv5mk^s6A6Jq#f1nifuL10RM3G5VmKaH?UYVS^h+O2^y5EyHURLrOOfpu)n|m z`o|8i!$0l-Kioma_(%8yX~l`)pTP(}gI;~M;XA&5wyxz%{L;Z^l=l3yjX*B+*BncF zDL+}?``P+!UwiT;mJaTqs~J@jEo91ucn+ zn#y{p+S2W=Yb#e7Q~GVwtx0+XNGysGqflaIjcc|h*^tMq%TZqz{!Jk@}2Z=q1= z0}K7VtR0M(19R44GyWo@hUg!D`8|2+t@*EosaUuzM;>_2!zkRYymR5nRfQ+Tb4l8C|cJ*F%<-NQGrb$=DZR!~c1FfvPT zyn}vlknv-onJW2m0{wdlE|t>{1R)P zWkjC--wrTB{S#ABWuoPcm#IbUZ=I+{TH;!a5%3(JM>;zUYkv+_Imk!HQG&h$vj1HU z|D!Un%*F%nq(uE-&DQk%XuQ;(bZ}G{+JkBE7Ev4f;vU zwDgoL#}0T~{EzkqFlHvY+p6bgXA3r}`RP?90d}iU((H1OplGYGf^-s8HFh5gJ%<$5 zsuO*=RC_+qs=ImVjRS@eyrmFgp5&~+(6~E+FVrRs&w7JxB%$$UI+te}h{}_3@y;P9 zCvXegiA2%ZVjAxb!9z7;c$eVh+*{Z)N2keM14wB*`c6|_ycZFsvlQU0b4Fnjt3!KhICa|mZYOKw#*2%NAAm~nvC#9z?m=M4&&IXgkIpqEP zJQPNWF$I*RoHC2j#5q^hvp6A>O+48CxdOZaxlDBO!F*xgL;gGq97F4HoDbe6eUvkjY2RI`F;6mz(C~aV%6qI)XrU4hwg2b zg=B`*EWF7wkBmIKkZ^kAA8a$kGm6FD$hS1X(-QSvaARt%M=k-90UXAk8gZBk*(~>- z*I87|Fahl-8Wl3KreiR$7ho6VmuL{_QX7$y1*9!%(n;ijPhVt9?9w@?Bm{CGYC z6TVG~YBf1N=CT%Q&#!X^Oqp`?2Hsz_M_$rbY&_a`@`fLV8oWwGrE)h?V1;gND4;5x zm1II%IzK9uaLr|!bNNdA9YDFt40$`6ysXYsx7d7_1qBSCo+K?3w7}_?P;tyXvd>eo zel`;e>swMux4dHh`D-iT_DdWlI<&;`thB%B95PTc3ri<#ZxqDbVVD@a9c* zl%mMy!Fn_o29p(n5e!z)-#I5MC zl>H#(N!$nrlswC)2G>~v2pBzs&y1+ybby6;mrSSWldz5elk>Qj3|naGjA=;tY+9E8 zR2+8^P6y-Mg|zNAmz)4}Vj43$LePDqb0AC>Pe)&nJx7weTe@SIddM@9#9pff%hQi1 zt1zw=ifeM~psTLh}Y{?~lf|=4p?dnb|0i7$(hF1%e`h7U-<^ zfx~q76Q+|z^gJXinv*LE>&Yq%qSJG^0MzkLGu=+qS`(CGvS}%!1S)7sQ0VpR5@$C= zfUONnHSs*>uQDzT8+CLE-`M>oNSO*he`@qvqz%Ce-I|7rm!Llpl0@uM8Dh%@@sI2%rFrZ zW3m^~o!e_GOnA{SJ19#-E*Iq8=w$a6cr1`ck%@gM}aD?Qywpl!XT4JOrmpuS?% zznjJJ{H^m220>v;NOhMpGwfnb8r5(t3nWD*;4CLSCmq!~d0H@zY|Z6x$#QHhAbKjj`}cB!P9H`c z$U>TCU?GzOh=C!SFfSO}F7(x_&>LHI_7KndyFI+bI5F`1Z?>B+WL37LZg8Vyx`Zpf^vz(5D z9&pg`DJs-Sl`cml73RE1Uh*bVOF7?SX~sDy7`OaR zEP_6sB^v2kC`ubd-;*F{S6tuftZbCzW8IV9P8QRtbZDV2Uun z5P|&tzAVW;3^zaUcQeL$iSB_XX;47i1+-uEdm>Jwx|T-?^2-ol09;T{V7zoq>1JUGnfnQNmRxY9wZ%9Z35cHz5U(({u}qrAxPCL z5Z0ye1>vA{pmbX zv}!a5oj&n~u)a-Pmhb?CjpCiI7A+&w{e*%b%;lphVOovwdSVj#gf~jv<%c^!OSAHO z`eY0f8s&7-8et3_-Bo7ahvrK`OjaIWJb9=9l z`%@EV46vZXJtnG@*8r~iCpT|A%US;~^463-eL7i0J zbPeO7P*-i<2oSFG+p%?-R|D|hv?CKGzNf>~T!JBf0C>#+?t1Lm!bxBe+X~}N%w0%4 zN_w0qua}Gsvn%GzuuZ2&SD8OQH`~9J#U*jM_6>-J|81x8XwSP$dUk2!>|5u3XJgTx zxT|Z*M=xCD$TckO3YMU&BtU+UiqxeE^zPJQ$Lczj>`jtdk*SR)DpUNj0g+pY_aT_85r=c5u3!j2l0HG2L@ zQ}$ciDFSsNmr;iEe!|ZfNdx22Sk5YgL`w-~;|Fy3+cVLjkx>X2lx}_*qudZ9ucAOV z2q^NB%0MMJ5l#eAlk1_Tl0JHz?p_YmqlrenUaL)JN9z(!%ZSj;};%&!9*;2rJj)*Sb6ue!gmhSEdl0y!h!< z5eBF=ShI)}OMWR+4FD?yVgSX4-cv$3S<|!LKJ*C!n*m0HP|H%uoPxK#afRYVj4DP+EQqw6a#q zfxO`WldW!e^)|3xpfDjv_miJBS{P?%!civ%O(pny_+OAB7QjVvkb{JDwL>562-+AF za@Db;0T1Q56j0$XCpfj3M5ZCJX_X}&L2!D2Uh71%Ra|I2 zNUxggw+FhGkmX$^g2)UjB(T};0}?GEdObs&*=GziyV?azh*^aEMm<-Pf8VLR;FAry zFVo&^6fFbv+nP5HSUB41@{=hp#Fx7|4CHHWxgaiVi6!z{x7 ziE{d?+Up2cD(?wG)p}%aSvPD~SWsB04gfnH;5wO_xY&n?^kg3B-4E0QoMHeh)(BEq ziXpzCnY1NZT}Q8Gy3RY@_&NZnJG=7(KgQsx z2e*k~^qi2EBoQk=$!75$Mw#F_*Z5xs;8Cd5N&EyUz^uEujz?{FO>I9L{j)?FZjV># zL~Ox`I|zyrzs>D?qV1t@+c8@apnq&H;JGD>gL$_dO~p5m)ZNVi|MGk2_&vQ%1Ieqcba|bYb*oyn{?O>?VxAU)DKj`h;eqgDfANVNhhZRoV($ZBFrG}dw zITmIED|oUoN41{(WqgA(0wP|In)YRy0AyUz3}b;Ns3uLJFtRrFB}oG~FN$nB_&Zo$ zXdtLhkG+C4r*T1i9AWQ5N=`QfxC4&S-`EVruwu%jAYi35Qd%&9GId7N_k(o@JMqQ|fj{qK7{*Sw33(E(<6 zu(dgy!h@++bmZAnkJO70T@)r^E0~;nfepvJrQ5#emm@t?&C8B<(yGru6P<osv(hf67}&|pKD-P`Ct|SDPBbucu<%;#sFQ`f8|k?|#$KRyJAf5; zV|T{%kPn8A35{7HlNa*Bz(i_h1{q?_+~DhYcCrW2kv~ys)OnAA+OML3BU?~d6RGAg zn~WxD#kMrNn!_wLi)3b~+N|!S)PshFt(ab!2cVdkU~-|6-!Cv{SkHq52c9OF?;J)u z%`m%&UHCcQj&k+7{REfnmk=Ife5^IQ+?G`G=(LHt(W*SV8tMggOxovh)8B^2(P&^3 z(e^&_xY`aQIQaVrAldC!PZ!u5?@ea*E!!-<_-cne2daWcHnV8SMureOKXRpu;aA zrBHh9E289H}zTkzh8kLdH3h4APbym?4f6e z-u3p4(X@cfTv=UqnirBlgWz{`%Fcz32NaT=6yh zkA1RTSM9~ice*B}ThR||E7PJ-y$!0zziX@PKL0aS*rW>hYrDayj`rTZef^dyKGI{8 z=e13I^YYd1+y6RpeSJ(Vc#oSjV0!*US2qK=>8O>W6bI@j3PKzsY-wg!U3VnMt`)01 zVlgkXnQRPMD3oJUN2Q+0fEu4!?^Xe~pQ4W|Y+w*n>=Tp^0G}9=Ktd8c_~C+})A?rP z^KH|>ycFhA-f|!@Qp?wOY)3Mf&RpGk4kLT%p-Io&AV*k* zMlhIuG(%ISLNd)J{EHuClktFZX2n!so}Wj1mQhD=&m6pxwYc)@wx>r>$_^qoIC32I zb&0}}By$CThGXNYr)B8W1srgXc1`hgGT{2oJ=2f$#spn${090PreX#QFMk962;Z@P zExrtWY-z0hEm6nU`J&|wzz5zOu$q*n>~On2T8W6(kt|c{T#s1)LvyIa>yMv;h9hV| z3G2mmQ1lRG<7*l1|4b!T;^0K3fM6VMI>+I(ylg~{-tyK^rCV&D_^^KuStY5v0#=Td zRtB0%b+gAp2+TV~hOxI1X1P3GJq~bE1oxbrR)-KP#xg;VT#|al@$zvrSRg&ZeOzTr zp*+fV9*aY#m$RL|1T-5Iu_^M*bpgc^MXc5Ue1AviIQzvxKl3RBG^TBmZ8eS~kap=T zVA>s=u{M-NQjdw(c~C&*#dgY4z^|8ZR!ELRj(q~UNt7{1eb8HCQbG;^_IToZEX``>%1MoI6fgp@DJQO44;wjE*~NxM zF7$^hZ5mw=u}JJiaIs!ed5d!%2gto_uNQ z-y&0@R9zrdqST0UC7NC=Cb51PeDDQUevp(`EssjetkQwDv{92NF)hRTBWs+{&~$mn zbbf(cCj3d{R5svQHk^@qM>G@kh~{8UW)l`){kHP*t6lv-eua&nWq0r{#pASfByc_= z=ax)bEEN%#4ezDiSK$O2iEBxMDn9xWK`OydNRLgWiif(#HR@8Fjf(VX?d-20iy2P z_@6h1eS?#bYyij7!T#IQ{>|dW-Eq4g6;f2IpN2{cP!vMh@DhoRc&PKgc|HU1? zNhL7x{V+ttN9>;`kD@?`Y44+6t$QJE`Rz8hUVqxzsE%y5yHj)SZ*#9Z-5I#o@o>>h z6m5G=Y03O&&{_$MzmLIipaeY$K{)a|Cjs*PZ=%zB1ejobejL3Y(ZS3B>3q#>3i82Y zak?IH%pzPqR-!kE8;40u1pNCZwt4cs=Jna*&N~p`tKqp9_`D<1=6L*`a(RTe@<}q3 z_!XIduxaIcn+sP|D$NP8{X_Q2HJ)Cb`gOaKbyNB56le{oHt$lekCR3! zgULci9V<0@}mtN1LJ!eX?YVg4tuuXBGuJNWmX$L z7~*c=2(d6UC@TlQh(oIHyRXk>bua5|Ws$5BxQ?hE%vn39F)^8XlFr?F3^>i5co~l7 ztpiQIKWYk`F8t;bEEW_g)C=&-P5?qOw2JAaS;-n?Mw~Cy(1h!HlvvmV*E5x^w{doI zl`4n*Mn27o#9RiE$E;$a!a$<3l=u^`kOlvdp8So)XaA_d^qUxjBMM`X4jr8$Ef+_p z@yWNcGH8I~d2{zgB-^>-li^ZsEEhtpa~3MCBnucv3e?MhJW4du^&9fkcYT5RjJSk3 zvj>$R{*ZxQ*yFNkG*Zh?jLXC%1d_~1HnI7A^nv^hq=8mbHTYx>@{AdG_N>$sX_ie=%*aqOnj%3k(Hy>s@xwXT2U`LdL-T6BwddOIa&UKgbolfGX~~>~(d!uGqSw;HJ&Sa- zDNp%$QYIs)|4y`eX%&#XUt68aE-Mn%+vC7f8<7-~>f`zZ3ktvIC?L2pIQz!wP?7LEG zun(aiea(v0U46`VO2$TE2c88ifDVh@_WUm`dp(cO^(F#9mK<7j&{5B7GnvNYq*#jiVn4ej!^FOCV>a z5_g%SBhtY8rc=s|5N4E0i$!$H{J~G+jyozpXuLtx<-!|z=*@^jFT6T=5y`Ps5#Y$Ynm4gCDFKAN2*h}-+K>8ZG+>+5M21wDQBe(gn8BavZ7q&4(QbxC5I1<4-20W7ya_E&) z8Nu2Z1ccQNg*jYRY_&vLdOEzu5B>5r;M}|~eqaIW1{-tOKYsY9psVvQ+I%MC94I!% z!ri2>n8_&xvGoZCn%wz{$?^d&b~T0&)8Y8sma=K?9vDY3X^@-=5S@J_F3r$UH$UD- zkv0)MaExxoCq0uJCGHs%!Pim82nb$2^RZV2QbqXHsGkJ2r3lpEc&IOXuF^Iob8d2u zU2*6{|B4{|KKq5M-5iG#X13rvvp5U;7jVr5+zYru>|JooFOIc)K{xFOz$M#*@iO`p z65?vLurq+yj|RQ~-a!g^6vZ#iOXtX#?cfXMmcXOEBtDSZD@E;o2`bLpH${Rxq>k+# zy8&TXi>q-n?`u9q-sXd((n)`D)pNaY^BBP5WmiL`n%Ul@6 zj6Nl5jI>2eeGw}rFtg@;lI8-3j3ebl7>ENJ(7jou%;%9C&-*sW4h3AguP7IQ{rcE` zmQFd4VW!tM4IUK4EQo-blG;}SybruJJK0Bry4bh}+(MaN8P$1pGfb37J!=TwuD@TdKF4N_?~{D9XEGkZ>I0f<(F zz^l6ZSLn+woLStcs;f}zSkgdbI+~X$#r?cnLXlfyF!Lb7=;TV z4VaZe^-H=>l(1JaPz{jB!PZoqL`n#=ImaEXMVx#;E4=je>pEINa-bm}0KIA70H1p2 z!Lr~U)5*eUe^i_Ge!^Cj3-T!14}l!G0FJ8Jj?iM|g=rrNpm*;)^&H$yQD*QTvY`|H ztHVlBY$DJTNi*dE6w9}-7@NtI2(=5sOQ5>M@)gX@(va>2#9}cCroLm@*8KO)E3r9-35d~_Xt{ov1L{(q} z#0rD@Y_aM$y$vO{1L{XUl!+@&gIi5_&o;Xbse#|I1r3&7#70%W!*X#wzJf!BB_gm`5!RoZI=}TfLk})nN^dL*401V8e3TXyc{Bjs4o>OI;S$fe z?qz2_an*}9Dpy{R+uXOit(Jsan5466snOn+2)z|n2ijKMJw_|<+Z3E zM?(S+55eY^@k!-jMqx=fWseXigg{K_uP>(2vSfA)dJ=S@FxDPO z7I2A2M|TlgVhZ48hxPwBo(}t2qC&eh9GBz;L76?#49=QkU_heyVYFoEPa7gm%z=t$ zS`cv7nbVhb=*|ZG`%AI81=uE!THs>!c&qpk3^7mHX9X{M?Sm)46mN1pHdo>~cf@AX z!WZ{gLV@qVC4S!dv&jCz&*y_1Tls}VdEAaOggdFh}-{1_F{3mbn4f&bf=F~>K*Ei;G zc9^Mzg9F{TyQmHwl$A?qOF99fMA8ZdFAiEC#t0=oEb-`$921Wq@Na)i725&hDAHoX zP19^@p(9+JSq(p!iiwbWkIMr0OZKJC0Hx&k?EGWRkT{TyBQCcQ(JWe=`={+8Zx6DH|h;zEc-JCHmEaL7%wu>HFJ?;DL>=&v7*9eEGBFoZr98%3;bq!gOgkFlCx3Q+TMzt0OC8`31_2v zyq8NOA>rn16sK<8)CviH0tTk?!y$@gK=*vh(9Eh{ zjkXJDMM!fdxS2hx$d4h;39c^`3&=eEq~O%N@{^lc-mj z4FsLEvh8*Z=19d-lAFPSk%a;FWrm{_0T~I-47$r2g($%e42zVfw>>2Ao09`PO29s9I+gHMN$C$ew%FsK%fV{6=xpozIIBOrhKa&bp21%6NrjNJ=zRM=_F- zJQ6=J;}RAO94)dz6OGe_i}vsst)<6zOBP;ljU7eySSxcqj$|$+VkvjFyi{ciDY+s> zRh9GXarX#WirD=XX1^~^H_#L&+Oa)p3c6%y&-VvM&S!i~l;2MGZDK zFB(jq1!m?i3CC(!^tDc)$eM)vFSyFR? zR;8LFm|<-2l$AO;pZ?oANatiYrEI&6gLKS#>{#iS40#frArgxUU#QwvOWNsz z(6R@f>gu2fHRu8+N{Vw@bpC*+P9I-tzL@z&h9{npL7etb z)F(0Db7^jNvuei3Nuw-Z``si!;|W~DktV71h!$fHTqRuGua$#IF5F2;hD1bOt=I?J zpaChg+FO7EsoR0c!liz8tCWSxI5LYHUQmA7YXFY+aJ5sqibiLd#`l{cbopgPF1xrV z;O>Dp6S{L^m|4#gx=4)<`uYzW-A~2{@nIAGX70I6=(v=53ERS*hz<;3B|~#~n@~Rx zs(pGXhBMfBE>_(ljjJs*%v5P4g%eW zN!Fpx@L!VF6eDM-(>|%;Z{+8KOGJ*{p;uS#I_gCWbBBCDj>v9P56NdcP;2~CT}-*K zA3-R#_0h4ONZwNi{u)SOLtAerRjneQh6o7$Xn+_S44EadQs0iJug_k}vUx2=&(?wLG?f3-L<0JS2sNALb4K>iF zRGo)#tj$l_r+I+3e`RDNxM8I1;dQpoS$i&OWfCY`&e8}c+u~!_jLs1gssmV$YE`Q) z_jrvpE}7sUR1Jt>E^4A7+k?^euTB|#Mf)Y9M1do9k+peN*o^1ZIe)RQS0p}yyKvI7 zS#h$2;9eVI4#hq?;F?Ju4E^yH3OHu0Rd9{L<~s>fn|wC3OM5n>C(Zo=o`_xOiSyif zB6guC^0UTs=Sge_dXn|r!I?}cwi2qXD3uzjt3o|h!i_diK5j33)&_U>-{sV;qd`wj z3r}2^Jc+K2_M|*aTiBua{Tj`0-r%5hGubbB;#BeN%fJ1wN1vn+iPJFzC7)tYGDz;g zDLLEf5~)a*?lrvTYFW(qhNC>uY3`orOpcyi!&6z$B@Q7C5jgIq>7N(V<}P-0m-E?? zD9Zwm=Lld$IK5;0$j2v96@Eo82m(;7Y2y*D+F6V$BcHgYsHPG6D);l+zJ#kCGIFDs zX?JQhem1JK#^y?ispop^37(+^IYW0NL6kw0tAy@!?y{(QT(#n!8+=L)_jz>4BqY;V z1s6(>zQOzR8d11Y_azUgCHC%)`;k)QNf#FII+q$*zw=JEO9^De`CHmuUGKK5wT3#o zvGqMU+|-GSt`1mlXM(O9kC*JteNniqN=p^SyLqZ@=gahf0~jSNlLK5?Q*Nv^klJig zArjQ-d({101*r*1vFc)HF_MK)S_mZ)M9TAX+La7MG^p+}|7ra5hS=o{aS(`Ts4*vS z1Z!hp96|D1@dgz|KtP?u?r_MH8CAE2rp&9iHNHXu@%tt;ZbSI8nVdr(+AW>M#?nHi zgX2vweuxwn#?PbXE{vK_t?SD(8y$;H;4Pxy2zUzwDMtqW@UBM6m}U~c zQ!?g+`Fmb=Dnu1EYevpdlks>sm#NO{FlQhx1L&0$H;z}XE}87&vHW_*Z@PC};d+ZM z4=NY$pQ5ykJBF|g8-9qcMhgW)o0@I9RCl~6;53=@UCe%Q1y}eOMMDVAHc#c?s>FXP z@bOq=8l}M+L<;Huk@+h+>4OMO)U(Ooi-*9`jQ0Q+9RTD8f@0XCV~e2l1VIR8Px5JPAaZRo z<&kZDFw5_Us?kc?K+I;4E14M1@S5|xubb72%>|yr;_ibSCBw-v@Jzjg>H|iL699Y& zpqW(C5{4tqcR}4+WVutAftS}SVt)`_YYKQM4ift9!h}3npjym;W<(`}%p?BGBplh8 z&m?bf!J?+%Eudlgfwhstq(eFEyXfOHtOqE1569gGqgoxlAMK9^w zQ4){!_oFA*xx6>C>;LadSw@|D2jY55B6#Jk*_9HYRxTzg$~Gbo+wj@hA}te+AU6)vYj;Vm+24c%Qd4;r$X`lPs&k(8=q{zON7`W%*2n+)QdKN#x*_lCyZfgOEKx~$FZRQ~ZGJ{?)b8&(T930-|_W4$%9F+Qy z=^`(76U;c&Q?tztez@DyQ~<9FO!Itr41|GWRutq0phX%?u7-&GsI-h__q@vrBO+}# zhx2IDmaL;tT_}6Ot>K;jy=1FbfK%R;(GK(dI9B&Q|Vr z^E(S}ri1kYoE=8(aT}Q~G|!1&=8oT}CsNs@u{|uvvpj3p40Wl9lWkL7IC}Y@cgbfwBz;0!k*U~3%FjV z-0yDbfxU4X7wnDsKG^A`s_d5#CfWAWgPQEr1q#J*=m;(%r&dDDnq!?W5;7BA4o1f& ztF_AqH1e%82Y{}2=&JNS9RmycWQ*f#UEpWx+i`KAo}KkDu^>F#IIKy;jXjh%ko2>d zfOGQT)MiX{8M1kBZJmHna^cWFz+eoTCvAmG^QH^K#kbI5{Tjw%-ou~#-YdbqH-+RE zl-p2cc+{qh{1V_0{piab!o|^#whH|*NY4dX@@6&}*o|J|w}!jACGKA_nxmHq)TFb1 zMfSFv{G`fUI?w*DX-@;5Sq_i8@6z%Z_zTj0_huJ>hV`+nrfS(A3J3-~K+F1m_VQYC zyHoUr+~M}{ZvghT8--A9%MSz7Gb(g897EIE3-~3m-gm4|GB#nO$lVNUD8VEn8CRK=yE6w{3sns*(+;&ID?v$6L8ZYcwr6 z;2~b1GzocKc_$r#o)0dsE-e8q+zaT#4+Ec0piQqQH2LtbrWd_Wckc!5VATs;hF`)R z4*$(}gDK}WAO8=t@!j`*>h{?K{~;ZbJg_EV&n*(cO4S82!AcD&XTKqj+gH=UEmOPt z4TmVib2Gi#lxeB-Y9^u6p-ycET}AHN8q@K?P~k@$d4TUcta~{h;ITV zBZXgpOPR~jMt?(*mJ0=L`TbXI*%6?F;c$phxYKWC6~Jo;)nC&Y3jOXl?{kEGCrIz+ z@|qgo!?xhkDQ`rJzg|;qSNKI--Mqoky&Pd8`Pp?%Lod*~A#Q~pn}c;;b=b_A7JlH< z`EjBVIxZj~1(yAmj-WQfTysnD>jq%gYu(4eXUvhy0Zc{=aYP1;ZYw)0N@NC3v{g5J zRg~GqR?Rq#j^ZZhta0_AG49Ar7@6%^v4JuUj8Z=iT2P6CV94yj*AEC=_K@3FwCh2x ztDG<-zhLS3FTVxIw>s{ZCX!mJcK7&cJLposOcj1nCJXC~hbo<-eH5i8aQPB%pDfYK z?`OGlkl;_RdiF-?ZR{x3$Nez4uH#?5b?s1J>M@8NNaOXPfo?RqA*c96qrq5q6AkJ^ z2pgXrl4+xEXuD1fy7K^OZ#Eho@Aeo=xwn1Gp;Ci&<7D>g4N_tJ3)5oY8e#^p5%INV zc=8AEnVyJs?GK$>%~{N$^0SuUW_O*pxXEbd;v&E4+_5}(+v!Uj2hFJt&yL@k@P1&a zxt8`={{9WgkH&GE`D^O`xG+17+#tQj4LMBcgFEX@(O+F5*O*+M&?S#ayLd;2X)W1h z)^mxju(?tP2SKZMLsSK?=acfSY47#ubsb1#s<5XT27}J)Q6jA+j+U~RIg2mOD~xh! zS{80FDO-s*SgShq=FU77N>sPw7-|)|_`WPBl|TFBb_^Y(W%>vjRF}LSt=3*yP%%sr z&>k^5%}ujF22QP9xO700O}q}1?-z5QxIy6hmBN^_mZNM-ncxFx$liSKmcsFD)G%ia zuIc{{#m+7y$t^zt{se!iQun>Xn(Vv!{v;R*V~wB7t!&SSUr0&F z*hw^=gb||e2NSz5iex%03=?J)SMSUCEGDp4zusBLpBHA=8l1Oyy{Xc>}HxNhbE4^h%gbQZ^nZ3lS^ zqEtmn)oibQKaQs5S=d1u6!?n3tK8D*u-YK|K@y>OV}6dKn|wYp_ZffgI@`H&hGy=R zzL(iV(-^;|=R?!<$^K^6f|of&8i$#?gObv`|4T8kC2SjJbJ(X?ssNlK=8#b1vNwH? z?rvV{=G^Jhs>Q6}L(*#<{NU(7^m;S@*b7Nf@uCU22bgG7{1s)rw`I}F>dF#|O17-w zaR#Ljf96X|IH?yD8`<)1EQtur)37snvYfeoxM@pqN zxEs&}t!W-&0$#^>;(<4SUYIVBXb9l$%@~PVCbsIh( z+67Yw3EJ-t;6H~Umhm{o=CL*1jZI96?qd=3i2VT6tE@|mC+;f;E2ZtnoF^hhGSWw? zGu@htx&un_KHCJ?jR(qyRQ}q|#cq@LW)Av{DbS8r0as9Lt`X!qKJTQ`{*fCfn4F~| z{6muh&ziXD6 zqd5@cN3{s!Y(K*bG|!PV}cSEreZEdNQkVHMphXqK&ZJOwm_j=qxi;DG?rJQh?}83? zYjh*e2GOM3i5xC9$IibY9ZP%%_LTGF*%rN>r$0>LH_8REK3R(s6+)B2{g_-kNzm>E zHTzx#%*!zc}!^sf@jKlfJq)b)g@e8+BR{7WCD0=sJ`1*HwPg)%a>E zX_~Nlmw&tWj9Ja^45T%GjbwFsgTGXpK?W$AH_W=l374QE@J9RapoQ1o)}gBpDw5~g zXOAOMQ22cX$`cq1J~&`;nDi;i!SE2@vypJeID%eY4QB(0LMD$|uXAdgV;8mIecvq< zpir{<#<-93TzSfyfWMJC$c|KRA2%m++jNY9dSGj6y5P)Kv=#tq2O4OU>S*xv)2B8m zVporT{<*wPgndB5R?&&6l~%o@fE_TSjyamM#e1P;qBpOQB2UJMmWTQTb%0?2=P^LP zLb!M5xI>p*EW*u=Eb-WaR$0Xrmg(e0Zt<}UYIDtfd3W1JvhV-%DJV>y0$32W zc$o}om}ARM#u;zpCCOYxqXUsG2{8p|0MN1`@qYIEtLhyKB`3M>y__72Xf%4QuDzFK7T)WkxfNji6N?N{b}uZkx%Qa$U_m=(N$0!{UWAykRtWg?=W+s@%q7s9uE;CGJtjh<~ z(^V(_Yb?7*2~Eqg_nV zc9JBfd`k&}S1pwvp*Drg<&RENi)w*>SiQia~~k(|k%b>nN&E%i>~?i;KZ~ zeEqB}i!u!M(mXHf!8D!E2kBrsPpfK>;{SmevD3POlVg1NDJ=(ivOUfp*2B5TPwLZg zzOfNqQF)ov`}x7R9EyB#hDAG?i^P4nzFymjOPcp_cCwJ~*S6!}Q#xOWAj=2k`g&Ln zFUqV|@1poMgXT~I$(yn`7iE2k;e;8Q{wOZvBKcHgvjLiE>|a0kkoTJ!R+fWy8%Iqwwvrpn+j7DUC*rr@hJ0H?IQZLun0fw3`=5-K_yE-g& zH|4l3 ziiPbf3r#m!qM8CMW+(Z?dm0{P`3yM5J!cvo>tttKKTOLL09syG8ZK)Mmw95|?biom z{TXHr(2i6$X0*f8w0eD!>zT-{%`sB|r`RtKk{ti&m8X-K4b$`U`K3firYGn46c+x> z=`sL8iwg(@IMv-J_1yyFAe3ARtOS~4pb!}_dpS4~1NwSUl-|)DJG-S1OnkFpZ=8{Nq3V+{i*UTGIB z=Y4FW9K=`R@19jd#|HQA6Z{j=IbT$# z>Liv}Wya!Jg2NPkt3Kq0R24#9(O7ky6L4m+GwUeMmhnQ>r5-vDHcw1qppHd;nVwJR zEaUG;(hS|-Y2tz|wn)>U>+2ANC*It_gBf*QNPMj@5jY@#%V$7xu%D+)4yMIS900X9 zNZ7a=q*GXk`96Pil_NQ5m;J#2BT_Ds&3IS0F*0A5iFuwH6WX%+)4Nd9$=H54FnIVgBK z&xk|c98|RCVdT}IT?QsF!08anxrH~J6kWkNb-e9yna~E%-qf-vOFGtboG0zmTsnJ@ zMN2UUOPzz$>ZEY30cbJ@WFNMK3gV60horWE(g3DTAbl!I0Q_v=%%d8drI&*upI>TD zN%l;zY7wg)EHgwrlRR>e(YXc1^G>luE!O(FUNyk=#QD7%P5Em?EXa86R-6abH!K1q zCO%tZ2RgV0tzD@%+tNL!wWp$*mf1NLOrl54bn!I!U)f)ije2-@B1U;M$|NCJF5~l? z_??-Yq{3?0_xh1gtq~JdC+2DFh!g-@+U&<=nWF88Bn%cUO2`yo#!0YH=il~pDSMJF zbZwfEs`eYw+`;v=*ax?*p95y?*K&qm9>XxJ-`$Pyb8nuWor_r{Tli{gSc|F#37W{cDYCX) z5=>&7F-XX~ISU@ng6Q48%87-B*ff@BVmr;NJL?U&Sm_JBq%@i`KBsD!vL9Nq43m8EH&P07$%t)rA#VO*7MB_98 z3ujivS&`hxoS;wMTG7{7<6$m7*Oo?9SUFlJ;zIp}NvWSA;gxZkA(pVx!f`&7&EQ%6 zf&vC74FkBOGmt7|T`ch*4d7FQFjF(w^&wCZ&gpg#e;Q8bMFoA#4*fpIIY@$C{#nq^ zyY%x6d`NnNI``;laeh*!Gd$g=r@SbDr5^+gNhh7XsWRvYs_;`Z1g3eGf)x$j$)D_h z+7|~vFJM=>sk8Vfxgxk71%jX=h-Yb?j)L>FtcW|}vSs|Si{E^hp$7bal%|^U2~Ej7NN!v}K~zp8(7Kkco>)yNFPQAhdJDrLI!R zsl1GzCEXMcQy@MpBgn%VYDoOJzMi>l(aa|GBoDJ_^q83NXmkNIk@fUtPX=Xi1v35#`tv|}aekH;=l?0IdhzMv^X0GGJG*!9-GA_xZ~nTm6~u3o zF4@(Y&Hh1ijJx+AMDZRphmF_v17a}yF?4sJ7Q?^XzoUBv-7r6=Sn435 zNr-)2xVdwHBUWv0#;rHIc!L)b8!jwICf7TxqWCmv?C3(WaWy)E77l8+-~GYkNnnn#1rz+Im) zOuYxo@+>E12Gq)Rcm~q}JrHvV`b>h3{ZNw`Ku@j}zBnq`!=2p+QP~7h98D@Aq|BtP zRI475PJ-)&U`C-fC3%;dd2s*!-3M6hW=nVF$taTU_Qr+VB8??BB|8to9W7M18~&?o zxaw=T@*Dn36m!Xw?1Ty*+(X;={Tv)T$m3G3I2pB?$WXlq%l++x>ttv58!R;z`acV? z5Mk*)kr)e$4YypWS?ACp5X!{TpDcepPPp$lf5vV$Jj*RjO8qDmNcvmYN zHr9&l4=g=wk26S#8Hh*@@}E$P%>KtEV>Q!0L#%3+KDFYrsZc&_)W?%-LJDS37sk1r z#s?+-8ELQ6FhLfE4~|w*!2Xap1!RtJ1o>#`yaOlVRvo6Z*|SfO+FoQ;EpkzIqNM=| z<-VcM@A&*%DW)$w}Ox{^BU z7HbMcU{iAv^=t`hQ_)x}>$;bn)e)uJ29@mecQb?GAEIh^YqCcTm-67025;j0plxUr zN@AiD*4gk*uu`{VmKR4Li=mo00;&0^w~N%Dr8zSirU|kz*|^c^k+=ffci>7n1lb(ZY5VnHC;qWS(6_$%x4D^d?y3^OgV&ooqwPp-ea(BF zckH!6LM_tfnyH$4TEGWsHMN=&2n!?+1~AryyiA@GnSP(0iDFU5Kj3i+ds(Rp?3Dg4 z(M>&s7t1R)>rj=lnh@nO4Sbs?FQuaSIn3x@Q+V}*enq}D{#WiO`Wx^EXIkT#{3HIC z2Mz`BfzayBIk=9oW7LP4CoUw5R_SG}<#EWOIIOh#ic7%X!Imu5)A&3o!P-ExS%V!+ zAlk4VAqkkWa?5zf@a_j4orH`8>NzohmkQ^K->vNTU)_~B(kSPRg*a;j8p-kE&V_UV|bp{r|KQ!3wNW;=N%9zb&<9m zT~&>P9S4MU5Eum!bPT~hDE&ro5ZEqgKsTI!IZo6g;${jeFwu%x$b+qP}nwr$(CZQHhuciXmY&6kRQK3?^`^Y7u?2(ae#fDpjNpMk1L+xX(s(#sVh!;co* znoE^c{xKoE>vj}Aqqub)cYel8N&vr$3ylTG8erJ?p#LIoqgCgQ^YecDeIw`fZT`9b zk!R@o88y*Flr_O8ox4H&UYtbtuf2R|19DUV#0`SxD7_988~z+fD<)o1#E#XQ>&9pJ z0&XG>)k)D^H$@zrX*#Bval#L|Ph8@Pbclu7UY#{L0gy}&77uo5CTcG}{rv1dq;T}^ z2fX8|z_(7aWBn?b><9c;ED}rsqi43%R1tOLC868n{|7cQ)OP#66rmu?9y}W43ud8{ zah;k)!Yt|Fc zuz2#ODIv#bmnt#Q;%6$!f36CgYy&N@6$bh~bQDQ8$N=8}&YlhUNQ7@5X|)$oZuwZ6 zwH$rd^=Fp`@wO!IJ(N(m+#Y~K`5|O=Xe=-g%lp~&>u(68eNy46R#nEJAu!iQxu+Hi zKJ$aG7M1=m#i z<*b)TEuhbI<7#@vgOygn2C*&fHePqDMJyW|i#zyabh)%d8Vgk5nPx{PBq%dx0rBWx zW*Z<{teP3AK;NJ9$=-1ta+hvv3C!YF7OdZJG)=zFm?+#IGzOR6U&9S?Nv#snLO&s- z+n>M%ud}+ZGimB#z0hK?l|Mmc3pEif!oCA4jf`j>Qn`-U&$mhYP7d!Ds<6C|D>(an z41}xL?^sgtm=Yz}Tu+N$P*!EX6Um^Wf_0%if#%rY0%>^5J=ZW2Jic-Q-1HsP=9S^da^!xaTs_nZfN#gixAywDlVYBx&$9HFdEL2?O-Bqy8Q;REHyh zt|XBg%J!kHTo3iS8|G9j>B7r=kXBlOf=eJcPB77|HJXM2RqR4=ib_H}MU( zEHXSK9ESxkd?hz z{6}peTOjYX3^M>~btua4^kE*@`3`gMhtSVAJ3HE*NR z>ne9=nnUvr<+e@t&}&1@} zFl_Jp1&Z{Dk!UN7|49E~w2MoWUCWAo$pMuQEXL?3iqa0~&aQ$TXv^Ot__uzacNp(~ z1qhB)&~40QU~^J_dH-qTYXyBvKicNazu3uiU+elb+^k*uS`JL```HOcq@bsx`FHf2 zfA%5>x%p|7g~tX|68ErWlt0P2!|k{L!NejuZ{a+;26U#c)Q-%6cv0}4lyL_Ko$I?8HDOQW5XY{58 zZqOgJ8(X9$p-XN@vE77Fx)ie9?aI@8lKP~PD;b~_5ugJ@ z$K*vPm27>}Vw~}3j%0pIH5*F{bKFsPt=U^UX<__WV?e8=xjQ@Ea)TiaThJa0h|!0c zghKfd*gR`4m~6Bc_zk-a_<%gu7UQTysdl8Z7{!3{5{oO@UuaDSrs>xl)MYa8tZNfq ztt3ldN;jy{IErD7v>WX&CA>SSfL<;?Qa$&c7}5zSRtr1;pxU%^7arVM?sQjH8_<;s zv>O4!J1v4j9_K)fNPfdUPO_!X5v*Br8(O`7Q!LxP3XP)q80(9gj6g*zGT5+V7R&)G zV^(%yOZE+6GO42FGi4v)V^ZAL0P|h)JS;D@Y4IfuQt$gfHyO$zSlz1B=&s{;gQB=H z?A^2?bM_H{A3;Cr!5pZoxs}zSVeF7NgV?0Y>zwBomTX7+*JsHCJV~hP?!bI|v85!i zDP=mxZ)^@`*qr^@$6^879Q6n6<^eHTS#D#uM_0@tO0Hm=)$Sm;quHS<;Yho)^&@crX8VV(#55e z&Mb-U_oXriO47CTBxUz1GIeRicB=|0^rh%`${_ZP(I4Rr(ItvG{CTrdX@Wq!S@`#m zgQP7Grfx!;75g+l-(s1OOr&22+bk)imQZd{spbAGD$$N5VYEUXRtceowX^NhiF_OH zx*|HuK$6cKvNr5+S2`>@EW}z4nv%d`m7*kVb24V48l5tZTM};%nhIbJB{>xub)|kP zb27phBpkUB0dISD5gsBU@t@q{$baa1^DV)k^TePrngjv9?BmqWZw8z&+I$ z@W!#Kij?cyqAPH}s}Haz>}ex}PW)amU^P$67NOP4*uA%s$xM*9k!+KeiZoj4 zjOvWQ%3rfJNHrqJ3%Je8sP`)$`uwO)(Bxn6-O285aLr5@-wx*l@K2(QIh_n1p`Xzi zo~G=v{!f7X$w3^8uVc;f5hVf&t`?MYP?&A3|4NyHPqG>I&+9kV&{1UY_!i=?sL`g0 zc~jS_&uiS?Z_UzgaQ03J7`{7m&M18Y*IRpg9@^6nObI*~A zNXui`_9_pz8`JSL<~>IorpF-L4;3x>X#tr7$Z2Mr6I8je{#WUS`0%4iyvUhFI!Xzm z)Oqs$&iUzcztpxCW5OC*_p^2_Ve?9t6^Kc0^5_*+`>xfT2G^dfcln7bV_|NQ$G z1C0M}(cNFHI?u>tzNHR7{7F5bkku8iE$?pp4bKq+hk{ECaz_TZZz>f08jAqfrXB5#(0W$!_9(`&e|&@ zPofy5zI^uiyJ=0&^6?T(qh^RGyY>5ku2fya!hlZ!+x&G8ttH7!oIP=D3SCcJ!t;&4 zfp6mCKmeH=`{sm#vsPYOA#)4URd^X!*xgHfMf>Pyg+|DJz;T%Gb8%>3vj{Ko519mS zgB#%q3IbRxl|%9+rmEP~nPww1 z<&Sj0$%*)5hG)vzV4B~5_*$g!Bs3vaJ?Gxyf(ZBbRVLR#8igL2Zd2YTa=ztdHc<$7 zcnl{?5)hJ>4}F5pbLF3bz$9+IQziHr;#No&WIl=;H)qdN0q#i}JWbz)pg_LCgJA5T zmDMrf3#1Sd3B8Zh%d}&J`9vS}aWxf0Y)v$v}uZ<^N}Y*f!41YwO!0p6)=bT%B5w3-}TfQP7UI ze+uAZzcF6Sy+k%@rE|D#q%|4ejvb_~lE)1{sN96GRDCIp-1l@qBYndq&9QT{ZIN$x z?;s`xFwL0xh&)K!T9xKg*1`fc4GNbzx63rfEg_=Q=C=EZ%pA4G^cF1@~g(YD-*pH)6;t_CEvT9C9d70t7QW zU4L91;~m3Q`zl?!q#dp+(N{!|bE!E2C2IyJcjoy;p*kwAI)CCaN2%h8 z-^c2eE(Os|uj~*E=;A2g1!51)>BQ$Xo*^s^giI_!qU4~S#A8|aCyQxM`mljiOg%23 zO^YK|bo=61K@XWOH`SZW45Vq7B%HdV;sNJjda#mlj%}+LSZKZExnr z<>~ly)fF2r_CR!~(bhtyrfR5fRuwaducKP_0xdzzyCZC`F2GK~;g;;~ivDA%;QKG} zqBq$9i4LliBxI?$U^j9$b5H?d#)GwpbG$jMN2|Wnh%E^|VH$wc*eSPN1xjbQlp^y= zWtry|Z6DC@iK&1GPNJR?z0OU4ro)szi!nLqBOJ$azaqCkg==rWCm(t3(+WSyNgL2E z6=n6b=^`(1e_slK=&c;~#t~F5aYB=-8zUogco4Wa@-#(>%5#B)%N>+wWZpidPf<)l zlb9`DqwuA>ShPgqY@DWKG^Z40E!#lt9ma}9&=&h`p)E{3bRKq)dOJZ;?7G5*#r(z; z7+OGcdEv?Je!eWM&Z5JfeLi>OH)O_6O`i)TA6`xU6&f{ETM@X zSaW_73=%Q(qPA>+4gojVnUz!z9WN)I^36MIK0*Aa7_!&z{Uh}ml0~Dpc+PZMpD|)# z$CytE9ZG_?6R45C<+)d}$EYCJ zXzfAvlwWn!MVWQdRqA|JSzGT8FVkZXEq!Eyp&awI36b?^VDhx-Fafc^Qtz4*Kph5k zx1jcqsnQ|;*!rq2r2SQ}z6E__1=o26I6w|0`tK60j^FPvseuz7t)#f4nL{%cy*4p7 z(6wN@sr041GY@+fPbazmC}^1z;U@Yx3{r}(eQS7mK}@r^X-GRxi|UdB_?HzuS-N+SR*`0a!MJAR? zLYKh#NvWk`D)67ezrk%4v1B{hZ8w^wHhbr!y|CBVr5^4LZbT^n`6&DU_H#|lRrt4d zdq;cS@4kP(xBB=BY469s`nS8?;-l{3I8)imbc)4_1=~=>uUr{XHh8x%ce}mFT^qKO z5?X@rQc{^YL)(|)u{Y=1ipIl*6Sy%}8_IWN%5CZG<)Ub`um@i4lX_3w*w@DDMsm1Y z9my1qwL8gbapdNEBM>i5|G`p^C)cr zoAqTysVdugk0Xarc}s9E(J2XO%<~bPL@iuwL!q8pwaxg})H?Q3%PTVv$ID_ai#dA@ zKZlfpB_$n2t`(RbFGBp5Wb9V(Etl#QBh@{*zC6o=()4$17YQb_(fo%mtCp62GW9;` z_ruk!_JLq?b?G7xY_-ls&~QE3Abne;v)zDi?Mp8RZf!;_Ze2eY>`r{Qv$Ld}Pn0f} z!eDEkqOaJj2(=B-;ZGS9@aA_xE7N9@RI@K?3L8I$lO{j?-!8g2DG~Lb#nz+qZMg82 zTuO2BT!><1G04EqBzHpz?56tsNPf@1!0ftg_KVN^DFNr?{oh+*@I$@-h78TYU7`it z!Jo%20`R`L3f$w&N0|@Kb2cEzypnD4Aw7SlKu@YI%bvyPZp|27O;>E=Lu0tkP(({g z|DmgqxeQmhC+7Im!s%fVr1BW-90Oipw+OwFZcd-hh&p(D&D#Zk=R7L*Rz?g0vOfl!4&ioj4&9*Di_E7wtzduoIsP)Sv;U}Bgv#n1)uNuB|lryv+~ zv#oNrq`e;WAr{U0dcGuB#-CAT`t?e2a|?yT(uLl>;=iV zu8(GBGz)3Nay^LDf@j*;Aclo+>&HVf%9+$e+dMdy+To)u3{Fs|KS&lPJ({fQZ+#v| z_Nx_>-wuuJ2i(K{uB6x8Kg^oFr_QFOJv@Rh*yq6-ARH0KaF<=h4d=JwA~K#zkX{(Y z#u_A#^2Hz>+eTZ~_#~)4I0xUNMwL$IE8yW_e@~}XLE|XQO?g%}Ovcd*s{_})rD<%h z9-m0P$>&XGvdOWx#l|#<6q!JT7Ad7o&^le{Cm?GQ$|=+AjO@_k^o`w%BKdBgV$l%N z2IP=V4aM)^0cS-{N=uTU;s?(J`=ld&NOR>}-y>h)7 zO`^n;F`Ph#NQ31Dze>?A6HUABw~i@IU-s;J!WSf&c0tSN1_HZ_#|Fw{hF1;R+8`Kf z)@urCjthP)z%%g@E&5h%pd#d9$r>(bEqU&a8V$bU&pg>lx?}E;*>yKDS9pM7 zG{vZZ?8<-tmL4QAL?G{$FtMMCQ1@u6egeQ8b3gN{Y0B*UVk$1kC?^kbj)vk_;;t=Y zro))HfU&ZF1wr;u5>gl8V)FGBC zBT`hCJ%2+vf)X|T3-k0VTaViT92Hi>h1%Q>H%A$Br-$vY@GpbR;b?J`P=m>Y;7&+JcSdFg9W^6}^NwWnhwk)d27wA`dR1}~94#fCGt zrb}MJ%SUD{|IVF+mSd#!X3q%eVfTq8LB|BdDoQ7-K*(G%fKdySljWpKK0Ig5 z*3XaJcle`epo_}4`d+@MTj#UL&y2v{LwE(=7&N~i94d(@!k@%3^G>>ZMX)PJO=uqu zUQ+T{9u6mxf+hNS)o}7&9c!a%E+@sRija!xbe0jixQ+Mu6PAJ}R~*&+AR+bGsc6%D z!pSZNk@B90rKo9c81b{`G@{nZlWw8t5~|jUQW%_VT`_t4YGCq^I9csLUU2|5}?gAeZnF2VVQ5==p*2UNEzhTQ}%3X=5wZ6v5 zuGv@-yQd2T+vEMH5}OGVf5V!zh2hpaAV;3{FRaOL$+<6lrU%t#d$cw=9Pf$Ewx|!!hWw(8>fl82MyR`Im0Fk%e z&g2++H*!g!bVzUKc66>~yr_6e%`&N7rBBH_T$9!6Tg9l|IvR~x>fsIkj0X7DV1SlTQRa!92637 zBE%ahOJWH}WX0>K>sQ5H641imDUg1|GU6#S8l4-gI=~iCtWaPqOabEL0!2U;DvbWX z%3`DbN5SHz0@_C59{FN+ZFLd0qYVXGoQF9KEN%(Oq>({^#^zI}+7@T|;wms;?a!}z zNCAYhCzC@~STA)+h8)DMx$f4lu)g{i9ZAFKjfcFy-JrE*QT1Yg>}*9LCkAXfDo z&t2@+K{a$v5+*#%-}~)tawFXCsJ$c!Iim7VH;-cd*%aIGkcw0oqr00WllrS#yUC3M zwc1?`5LVXVS&H5mr|Oiq71L(O6BdSY?Eb@`r|?Q3k(V{5!gVIH@!ZmG1tZfU>+t-$ z$LhzM-d!-6FW#%~w2SqQcEqcJ$gt>cW2rVjop6~A0T!w^fXty4fPxYaALY<68du#S zV*4~bWV}SWIgxc#mnvFr6EG6Oupz+N8ycB+hxm>c@Y8alXj+pP7(dkeZ*0I zBnBf7AUge@Te{zmstIz>7$oNem+d5Mqhl+?R#fHR(h0O9_^J}hFEP>Wfm}zlSi3L` zbz^NdMB(A`or5#LTHIa#uIRlb zPcR#F_&7Ay9X^*y+r-Im4$lTzgJ|#rOdXU5R#P&S9F!FN;=q~Vrq)uYf2N~oPTuO; z`L}ktrsN~eC*;{8Q0(sP{PwG(r#rJZwG{V7HFgTYRv)>{0nw-7yqnT5h>_5>@;J72 zRc3_5Hfpb}T~j!dm$s>)bFe!~+?6A$MxvU3by2l1UMFB{de^A(-Fqpd*=5>w<8`XK zo?@58RPkwY5mv`2%xIaqy=wbsl}#qXeXn(HaB&|#sd}#rv-Gh5B_Ry;GvtN)>vY_F zDuOVHGCwp=hDtIpI<*uLY$eudjRwY3$^*uZkz|Bg#!VC9IWSmV8U(S@JWeS{8w5*f zuu5Bay=_LqZ09jo(rjB~k7WKE1+J+j1`3T=Yy(e1B%Z%wniopko4 zuddX!$=Rj>P-X^LD5=+{$6iE|R$?s+f$P}d^(L4B$AcZ@T*IVxZEPI);3w6}raVj> zQp3h6E+Xa9M&2q;X%k8mMXgd2u=Q#<|H6<_8@B5Gxl25^@*F)w9L9=K&-l&_YQ#8dp-_h2g0>0HQ!F0KFLJuz%}CH|69Qj@P#psv=Z#t>Ur zWWsIP)Jiu3x}}nKy{n%|-E*fAyI7VMJfv6lp!&PuL<_kb%1~<^t`u9{FHWBuo561L z6t?C9&#NOvnE#zR`gtlt<3&nsii%_(!5N)yQskCU1(gi{joM*rnR2fk9p&l80*+fx ztWYM$Y%g+rthgeSS8o*8Lu4zxhb???XYp_fR0BPg_xSHuSGCruRQ! zCGVJ#YiZD5_@CU#T)oH!Jp5T{R0Eo?RPX>;vHEZeSoyw+1FCpO+5u|xHusLAc?7Hq zGut1QYU6Y8xO$(d-LKwE^+%7dRubD8wB#bt8prw1NjO2r9r<0Kl^^Z4V#!3`Ny{`;=-Go@bBsIp~r>a z+7Qx$OTLAoo2Sa6+`)|7BR5z+M>MI=!aub$2pznN&e#KZ|t!(zp8Or+pl(w^0Kr0k6o;Hj^U^M=Q|vKU)uFYb`N#y?mX)fn);ww0ifXu_9f8=` zviEyNE$^hq!gs{XP4CQYu2n&n-*Y_E|&-k4<-_s7av&n=|&KCXbvXYb~yRh`g z!zRWeJqMM_TOk01JTheD0#3Kt+) z$ggq0X1q_<1vWrWVc*-;D)2x6<+Q^MZPhoPwNPXhm2=QW_{0v=u@iym^tFNxt3|XE z=jfi(!EaEyAa!SiT>D=10tROh`(@@>e@FA)l+OoJwcO$#mUDeri}!ie*W+kC%b8`u zzuRLdv^)mFswnIs%U0Ruuw$A3q?{Bq`EI|HD`w4Bo+rb8#<)!d5|v|!VVt{8J)65V zH~u>3q^kL!dS~Zuu+&L$J~DE%Pn#io|AyCNCm=&%N5-LU7B|>cno{yi>2GCA6y98k z?D1M!QSwfNSa8|h+-%BAF(_3QR?0(Ngxcfeu;@&P%Kr#$lQeR@pzWM%gv0@kAMZLT z=>++d-u6bwrPWq;?#x?NV&#E&`QoglQhLjHP`b^8YgSiQRYF}VXM7gH*>Bp`O#bRN zIkJC){7fQ^!`;yeI&NnKIw7?(Ky2ZOuD9y)_i|sG&vIY?=dCJLorpB0+Px=T>hg8t zdyY-o88)*67FNsOJY=%3nO89?DtXiQH`TM5piRtzA3YbGH6gLK(ve(Bzje4Uv1~<0 z*jfADbx$w7*P;1h7Pm}lZh35o%W`v54xKt$SVzPfr5mvETf6W=m9npc7ls%ad#c-# zrP!=F>Ru>Hw<{&K+T1PUF@!=EiJQ?UL(!5accO828gC;Jh*#hLDR~1|NT)x0eBSKC zw#FC*tmt2@UR9dpI9J_P6Wz$rw4h(iw)=2je$XpTUU|gdtOq+4lezoiceU>5g4l4| zDSIUAPU57AkUE*| z#8PV8?l3_$z^QxGQ^yZJWERV%T`4Zohl~6~pU_8syx(JN+)WOaU@MK0g}dD{2WZV7 zcl`HucJaA5;nYaa-qeHWS1+;3via+!r%?`Cj{SvNNgj86{W*tKTjGN|#~uCt!>Ne; zYR7aYBG>8JZw-Pcw(A57Cc#n{99Hl%Hv@I8Y)7aN`_lU&N~OS2qlFq>=|M|F7No22 zR98~e^)Q{bTO*-J6o)jH$UA!;`l<*n9Z>w6u2eU8F)9A!rGE#bR@MGcmo!YW(gL5H|M5=S=?*%m3cBFN>6j7hXa&%9%;0oP?Lh0=dykE{K)hOklr zCq>Lj9ddWEfrO!buZ~3=UNTwq9ZPTA2hJ-zSn+*IvuS0C7Dcy#McUb7aw}EEboyY# z)=RSTP00Gw7!;6J&f_}7#-KdgpzMRSj@V5;!02PK$MV?&Ky=Wh%))u9Vg1jDFFlG& zrWzc2x+_CD8n}1_u5;?Dpzo_bvYLzl9c(A2+MH64I%RhMf;&VVaXP~3kFpX9^q@G9 zhC$PDR^Hj2>DelglULObff%2^lIEJoyNcn239dKcx|Q;2PhH*k(Epjpkt-3u(b|y| ze;o+hVP}u~@2Iy7>qsz?UGA2#dOu`-rkb4garI5tBsAhUp>-m*H{F9H>i5bxcLb*v z+b8~r>nT0~zU8A4_be60@ed5Ml=&AuU)BQgd^~U$Yduy!q?d=y8B}*MpCW44k zvrTfi=7u9y+x{h~#8ibB0a7x8G5}CuD{ADcy}#etY!C)b%FW07E_{o;HDYjo#_#mn z{B3nLpR1kAesSZg;+)rad+62!u_mJk2$N#hKi6&1}67NO9^i5uyyxK%<#PSf$?^u`X;-P+_#v!Pn zLqqIBlKitprkQAO*9~GqGDpPOT)LM>{;XP*1<~KD$qJ!!cS6xXTH^5P#`d8dJ#U`; zupHZyxE&%3i$k|${NV6LGe>?ZzxeQyDjtnok6x~_u~oZZ+5JU=Ax0I?^^qu=F{P2} z4#g-&Q>CV<1o=g7@mi9D+j*M)0gcz?eEPWM8f>Z!&rH)}A=>#jI%;c+-m}WESnr?mwM}_{(TLodWvv-;!;8tb!WN8gW^Az~Qif4!LuI@l#Ia4+dzk zqYM9xT;oC#k@^>t(iaotb2nw0f^Qn)s}#>h%&qMm%?#`}X&Tx(q{kv{*@j`lK0fP{ z%YRsNhYlSb$n7dE<~TY1TRxvInOGTa#0?5-{xUoDbFf`K&5#TLj(rrx7-@!UTrr&Q zjwJKdd0gy6g=Vg)qQ-vI=5Aa}X%9=ozw@NGm5Tf6lgqDD$5Cd6+jJVvEZql|lqDpr z4kne}nc~A#pvOlOB|S=}CLpdB=U0qf`nX^H7+T+e9yQP)Wy5lvM(Et+{ zvWSL@pG%k-oknUYFF}3e`r>5JEa0h>{;4Y=ql8*O!i>!=JwLQOZB;Bf!kGP~(5hv8 z^o`KVr(zb+%2bT;z&8-F|2Wvy9BTgi@^G}BAnA>#Mr|`gKq(=5gjXTX?`EhxPG|*{uPczovq;0NM^0YlkbX0jxSb!t-EQP&CDtfPZja(2MY);1(UXy<6G8xgL_#AH*3JMlGo7SjM- zkdmj0EewW`?4e~0M?jcu?;jA6nVFR*FXeRSsRpZIW(e5J9X08seZi88-jzKrKQw)5 z3cSazk|BvY{$t2LBB{tfozVzh*A|C%z=x!$9mB3$1$3PS+~{`wg>F&&Nf0>^tF$Q_ zll|09F&v)f9^-hN^YmDdOdbs_N)efEQI{U6;_fyGiV#oo0AtEZ*LK{U7@VBk+*NB9 z+m3qhX3lCli;zfoSdFECud0^>VMuRj*JL z(U^GBZ+jMOAt7L)%{r|rL$$lTzpTm#+Ekl|OMcZ3T4?1w9x`sx**XD&O(|&?t8dCT z!XjZ;)V9X1M%Sa)7sxu;1$|VHKI%~sk65>jHXLC&EMk!MlJtnPo*uLv#@}!0jT~u5 zX3R^b;T0DqJ}cB>)^vQ^yES>H>+`xK1@+tM#lq3Kf#v=7>4BI}U)V-Q=-aqKRn*&u z%8F>5wEnMIm^ac?jC}BkY{mlvxk&Aci4Y0PW=SI_vJW4eY?2_{H#6P=o&ElM1Gv|j zEd7bakcT&^AFPi=uUxYodLaN`^SN+lPc3RMRtye#(T!0Nzxh4UW5YHiCMehiYz-^TCCM zvoasq8V8Kv;JF5aImsdq`7N1M{h9T&BV8mv>M?GD(V0bFBywb$9BQl1)&n7U{5a$gyU)vAStRNfg`5V$1 zfkW6gb7{W!^AnDXghv$D*K>x5W58*0(^u$M1NV*@p$6R&K!ky*`+0p2ZXSfD`}N!nkB_go3D`#aV{5Y+;h3 z=M6t(mVHmrxQm7iH@tI&+u_&E&3cF^akfbENNn$dHqlV;f_On>M=7s^YsE#X{y#!8 zj9V7I=ku!(UeMrOSK}H`i^JBxwxBLhp|ZQa|0MMaqMK?dM*u!V1Zyrh3>mZw!zov< zPiG|b>OGDf7blK*jnl2mt`Mu(>fqb(7dPzt_Jx@%zjXbzak4TC*aw|_R2PqwZmY=j zd`2dP)zY_$)T!3zyMtn&B{$$W4SpU3POlpK&2XQ`=lQ*xeDCiiyxjlmtNDyxukUmG zirs$i=Y47Z?_1r2XPAtSH`?E~pF@7}#9mXchR^5Q<-yyZVSB6J*Wv88_qOh+A1=#7 z-I!%**a|>~ERi zsCuerC6s2qRfPJ{(~fVK>@vnuf& z0*GE~1Gj*q4n1BGM=knY;k!-O&<`HT+Z}v;6FB^DON0D(fd=(I#C}lOA>1rH=Di4b|0O=C_QcX)2aqj-I3tq99>8W|^|N0AK6$GedcxENTm0}ijg<)VPN`dyZ_I;s%w*(?+|B# ztT_wD2#E=P(*<*O_u`DbletH>mT z9dr_^(iHeZ!~iLYW5o2dv+V{VF;>40eSA-XJJ`-2_CzF6Kxdud%6Q&ISd1MxyyBVk z|MvIzOzeJpVJkpqk}g(fo2_H&;~cQLG}3d;(g2J{GZvEZxwrV=(`9ZjdtnByd(5Ptl9KMo$lCt&*<_slhpyGVcN&{)F zw5SPjon4wcjF<@#Bn^HwJ8eh=sNRH;ZK-%I<>1I1%jVz@fQ=Lq6LA?}!q$UCyEKz| zJcJnG6G0yDu-dIYA$l+`o1b~%ZAfPfVqxNDc;=@K*TU#4O!aZC>9ckey&To?kBby z>G??H8JOV|u7G~pM3A!tAG9mdi{agK&)l*0l+68gdaliNtr+l8b!~yST7MX=_hp~+6}<%jD-bnQvUaD)ontPn+c7&VdRIS z?OJpo6#|KNZHX!l*a8N>}kPWfi&8or4QZ+fi1xXjQ|{&fvrXy0*A~^lI|)p zVaDW2Wz@p!Ca+^BPW$s7UvajQ$?m_=^=l$74Xsj`Z~Pt53Yvfy% z3%7K1Dt#vNi#-IcF;|m7LfV&s2x9h_Xy%Xq(XP&g&u6gQ3KK-q9931<;Mi~|rGWzz z4+O>zW#<}eoGw#j6~b#d{tNQU#AXuc#|t*82geXsOz!^v^0?Z%_*n(DpWyD6R43}G zpSvKqH=CivGBbockc!(9jHaC24-~IxyMWU7ZL=iijPAL>vy}z6s>u-N@ zHKY227=OtXs;<*N(^+YrUYMYN8EAiZXTx;wHT#@wMt3HOMr~0$`ModW%o8I!hk|<; zN|tUq=d|zi?bM*CrF5Ax>i$_B%fb0Ti+C=%c}qX(U+M|kH12qRPrvg={)ZQLOa3x{ zkiFCVqrEx_Swt^Yi&X3MkWSh-^Y~RAccCQl2nGu+RX;Q8_l^mF#Z4i?0zE z=_L?E!MjsYPI^(h<(^)6W03AcZ4*{EA>E=nN|xtMjld%_fj{&&H4}6f7cQ4PIf#{K zIRCNdmvxIDUcLHD|0VwCpQY->J8oD7vNfWWw~i|!-t^$12~X&07&d8h73Zqm@$fAYosqM0q~Y*?3o zgRa`Qc(@;jq**8?7}}aZsk+-c$W9>(90qQ(%Hk^~A4PozuBTY>_SG%yYe34F_^+52 zoD-MgUB}OAktAHZp?ZR^Mu$slq=`VqnQC=314A-f7Vt^}Sgo(4p;A1-X!rd%Tkf08 zA!qHdl=hT^E1UO6J{n{u%9w!jg$-!cfX&)?T&;?1V%yI*S6B(4X{)A7o)xV)9?LWL#%NEP);R$oQ4#oI^eI7n~ zK520>x|j}t7*pM9dO!htQwGgLuxkxj8gb+ioW|hy6T~`c(da0nyv7pdnJ@aoljt{Q zy^K#4O*>#q05&q+)|tK>w`uoII&9J1AUAQJgkw5c{vF-noZTlP&0JH0VCTF!tkhXRjqovC9>-uc3uKyFO4Y{C|U zlZk$i%)ZFqD9gtcZy)!7(ytfO;6amx*tzNy zovw4f6~Kxj3)aFYJ+ z>Ci?~6JQ`O!S43`d!5#de6|gEK=3q{srEO!O?(M)Xmybftgk`)MJ$)$z6_N*_)pV0 zBfYXZ<})L{C!v7dk7GIrk#r?Bxd$kR?*G*O4*;w{Q@@Gj%?Z;0Ine-^nB+97*{Y5A z0y=IM(NhjQx^C2L>sXH4^Y`oEhW$PlQa4s$#|FdUo>4F%?Dh20A4pSkMnfK_n{&iS+WL|r(Bo( zak@$hupDK{w5%sI>LwG=BJG#_g-yih3rV3CMFWt#)oMw{+mO9;SrcT_sX{^0{sbDd zMnZUK+G0>f7JPDbrSO<#n#S4MJbzL-+&oc!i9XS>wJ~F~i8fPh)EO<#0MZz%v8gqy z(1zkxZe-dN{ZN@{gB;*dxABL%ektc8HY_ac?E>+bQA9GkO*7{;d+@;>&Ji8*l$XNBOF!bi4_P_3D89btlVy1oY1ft|6#HyJ*2m~rh#77m%2H@)#uSZb9elx4 zM5gvZ3Ji%TJSirZ>rpdl7-i3e9q)H=-(nK;tB{K%Qd~To&okyh9Mzj2@d@oqh!L{* zl*CcadHCs7cp=V@a}u7%3u>1K`Gy4>PnlvUE*z!Ms}fsurT5On@1TXs8*7C9F{k+; z()6s53gJ;?JPS+mGZvpz@6rud6YLBHbVFbiG|Q0$My+C)oN%Sat<{$s@%~sfohIy6 zVo6hYE;RK{Qe0F#lAT&n8F8apDka%g1}6Mc%s49A?4wyirMELVB_@&d?3M~nX~r;u zNr>5qa&2j8hL}Zg{(`nKKI3_B`$!T}Wp@(^Hf(Rh5A_RVJ-$t7G8a#_p0M~SOd~H-+PgtgXVFX_b45&i z%!TKYlKSFgvAfY1N|`?9BxCxRw@R2g|1Hv`n~9YeAGKO6Wi?$x zY_hqaMqC@WDeD((@SZp~R@f&S7nJhz5*>K8)|lRJYRu>mkL*!Ak28Ve!i97@@Twn1 zb$=Bip`KyiJ=2E%-$laEU+R{ohti~bX8_L+?e%zLKL>0YL3JiV>4DpC%;W=`sPeDx zAe6a35ULMubrrk-rh-jtN_OyIj`8pI3X)HfZNtQ#f1_LMR4~~a;a}o$Cxg*&tqALZ z4Sr~VpE39$cmUg`f2O>&W~P_cOquhNE4FkOV3Wl?-PX`<>#ot(8Mg&n{u8^cGu76a z+18nA%U=X1s=d7-c|8I6;sF~4EYpwf&>s#wSkqpH+AH8#nE=PZ;+9bn4#Qm&)_&P{ z-Q(Ek@sfKCpNkUoCpVoeN6%mj$Zj7?@~2{R{k2?2xb(#jipJio$x*=-_9eaN4}U&- z^YHs8M^9h8ee%~Qul=Gyu?4_FZACW=Tu_(MTR5?P@HjJJ$Jg)cRo zBiN((7e&C%{_bRJ`tQ+Se%YP;`LH_@KM!yH#dGP>y5gJb>LdM^d!t`=f7$gWE`8Kp8-TL6IuRV|NT{X);8J9zrD+hf4H{)Zx%I(fPR*J^NP zLc~uDTtWO7j2N<~$w?}IN>1=2JpA#K%tWY!j0Oh~XIEI4hMA`>8*EI_$SQ#)3 zgy&EU?~Zm)eP`_0RmeqH-T|ebm2f1zD8NNVGwIR{S5gS5R>5F@yxQ3rd*Sp$Ft=hXYbgkzOQZ3(OZFz4AuyaO`<(+k0z#Ev^XxF7cgRK$muR_<uTc{wNK|oAw zZ*%w>IjXBG?L9*;sd}KR?@(?1KGPH7>j)q)&A@k}v(#zcQGbsv0tjj36R4$25{c^( zW8eS#YTLs(*bZ6bV_@c3vgsLq*JIAm&4Zm=Coi z30vn6o6$;sAoN6hN7Me^kT5vxpDG9&#}_wlBwSC4jwH#M4n7n_ELU{NMqgOO;VOeq zMZibUFD+;TVIAfx-b`Ag2}>1)FtFi?W3$S9VX!JK$9#EpQj@kz0Gu*JYy3(#i++eF zPyDN#3v!S39NZNl(bim}`Z3yU?zY*aPWJ$oYue6N4kgz7sbyfN`J<;qnu(r1?BfyFEG-~Oxz6tZdxK^RCnreGG-w;UpHV1iF-(2W%7JU%U z2&q6Ui_nOt?j@blk+X}fPho*$+#@V;fthJvlxc6CF(a zm-9I|p_n@T2Ju?Y=*zksl1gg=&Jo4GiSn~_F&_;OV;MrF3NMO7=reKgGI0Y72kZT66?B6{(hk0^f0Ma|VS zMYe%YHfYFjVU|hqv7v~)zC`&Als4sjH7p*#JT?ki{9Hi{muEvLq7BJF)qmEt&XuA_ zDX3;mePp&xh`O~eq(Sn012wR{NQt3nkS8bDOVNfQD8We8W)QJRErD$k6`<+fo8sC9 zwYhE_gKU?&-_!-}xi}we-)Ja9Lfei-ON!dLAK(zff=X^MFf&h{z6|!kca+j6sTF1} zj!ne^`K;tAHYop+VU1wxE%*e!W;IUcdg{rSmy1-N({GBuJJrGO?t+bMN9<~LPrP`9H-e&3TwX+T3bPURv4(fq@znLkC51b@igIv6_xBJ{VUyKQh2uxBB4;%}!v591S^SiwegWl!}B< z4oB?Xb)mMg9-|4i^s_5&u$fC%-oPz2xnl!%sR&vNR@7)yZe>qLPo_Z~*U@firW0JP zmQr7dN-Qg_)sdLPZO|D<8!$~_84rTmI=)8Oq5RbAtB5-dqK}r%POpUFnJIsvIE6x` zq6~?bOyS5FX51T+93;xdUQSolv>R~;$Yy|Iv6*Jv5(1a7Zc4;^6?dLAjIVBg{nDXO z4v4QPCb4x~#iMw3p1 zOtfAqks2uxPNur;vX*X*I&i@wL)u!`QrEktdzsm@l}ij`&2ZnT#Jxrpr8cd-XWYdO zJJMN4^kjQGm9`)!=C)5N@jsL;eC+x4SMu!VP4DCxUa@g50+y(PnJzGPGeW726U+8K zE)SO3iYO^z8#enTe5256!!PeNMOs=nTFI+;GeG|i3Ns4HGEHE;H|eoF+_{F#@7d8F&S!A(VbVK>bjtV6Qm7}tuLK5&2tUSF~r zYy-hgIF~arcH!PBpOPQKWR6hs?<4nbZ(hC-Mxi>8mr%Nl`76F+6t$SlrG`RW9?h;% zaqAoY#sn@7(x?phA`zEx|Ir8)21{Vt=a4ZfT!a3joK{(#Sojir-T2=I;NeX zo~|2Ocb=8?)#?!u&l;D?$ISwycI*-( z-D(S_%HOm>YU+qGMlu}*1)bY$VrodEO1ZMcTZUN5YbXQ$(+rLYM*65X9SEWF8kx9P zca)!-uZ3&(LAke;#tlM9V_UOBXiG;eTN41N zZ>xFqTW;mZ5aBFkjm_6y>sTKQJS&KpQ9~>v?CC?tAkk-FWfRO@iyx`SC5u3PF|r^>cM_tdV%@($s8Hwj?#2LZN`D?Ue$t)wLijI>1HEx?y( zfAxk+30F!K$Kh)#rZLD*D^{RX0ThQGh6}jI&p81}z^;{vewN&>VAu-5(SkLR!s}!` zZY7T%OE0q6a28if&Za_mktxcNDR7C}GMnmLUmNMD-Md#`Cu}!8m(l_zzp8>%5^dY@ z6HV4b@S%2*WWo}*2_aL2O4B7%p}#iE^yf+o_lH6?RipfrQKQ=KoK{EuqPz_z895TM zLCMIzC)As2e5-a>n|6tczsc0u4n5`6?CNe32}$Io{DRq)r>FTdHT9oC4{emdIeK?C zm?XM4fzXI78bWOn`ly#y^#$*^)?s2&BLH~+>R|i=IHQeuW2ky3YU@&a!!S%f>C1)QCkxEsi0^*R)DV8QDuQU7~ z;o$ul{(nXxM9l0pLCmDUEco9-=%M4Y`>-l4#10-D^siZ=-uW9WIi#3s8j4)jp1?UCp zjPvg)nHa6`1pB@}$#~9P**8qzfDhH}16_uNAgX3a&gZ_q5ne$#5pjR8-VDK5kD|@*| zQewGF&{S9$`{ZuZKDlS5meogB8j+SUqvgT52c*Y|AnmkPIHdFyPP}HV?+^508SL-Z zkDGm*hW#%)PTagWO)vwCjN>#Mv>qqIM8IR?^!{v|0_B`_1BL4-?tsD@XLNw9Ts0h_ z?oucXIKwp2L1khjYl%-9miWY8;@f`zri(o2*E(Y)Nhl}Z$j)LSw86cDYY^Jt-kmR7 z0nvk|B^cbhdt;0SmFZ0}S_3r*-&GPUtIetwQx>~2AJc+JA7pxh4l^(lI%UFYRorZI zbsweobKV>cNiVbMGMHnhAic>#3}DHp2rIB?+Wxp(uiO5^FPnTZjOP8n_XYcZ87$}o z_~waNR!)R-EV8s(cZx!+lfk{)qrts>i6yLzKDFAz!4M|^;()zzZDjCnU(7p{R$Ro% zl)21a77Y) zfe`AvcOdw22fz&6y@L2{I89xsM1FAiGD``&{iIU3=3M z1I!dh_lag!=Zm?j2&^keVj;1lBTQ?Eun8zV=*!Yjq?+P#QG%mLYa*g?Mh|emd&*np z782pz-k}6&W2xVlTKEpy9w|}_6#ZBh?vHd%cUf|Kq!YNyk^}wWwL|yp*$$-elU9ym zmq~zkHUWf#>L!T8Mu>MeL4@1rCW!lu5bu4?ptDMyr?o9HsE=csSq&eGmSHaQS+jF} z)5B`hd#z0mK5H7UZ+gGl^zGKB_3kVxP?;9FehC$vy^U}{(`tmzM%D=(=o32F`vdJ+Foz|~{jUXczl3@F z56_GHpIc9r?Es1ZP*e8Y-z~><@U`X%L8BaF) zmkn~p1cRBbwr9TF(O-2P@`YjFKxX_9CZ|;VjE@VM_%(Q0K=&xafdp?0?&;&ge+YeK z^oiA-a9doDw=8zL4772B44s@ECbBYgf{`~0@Mve~B=30PP)bJoR<_RQe`&VP=s%yW zGpc0kjM}qxMw_#BM*o+s^M5W|XY_yBI-~zo4$kPS8fEyUI49faQ%VG0?|UuMb782mDO7`*k&1RV+)W=94UFMjDOk$2Tep9%= z7G}OX^NH?^hFkcxx&bM(SQ!jeC-^HZlVC;173Un~&4z7!6I8wZ+)otoi919-SM=jS z@UG~|C01qkjWV(94f5Pr%5#P7Wru^gGs&>^h#G;F(uR-77&^z7>JuvliS&Xo99BAI ze@3Q*ZeM#SUS0iGD5sUN`o!4O&0mcxz~vs7l^@m)!Y-99Y;Y;YF7bu<{k;k|` zT~CXu!E;Y$#qe#jR*)#13xidR-xumcpJY+=J3_Qd=YF6q`Rhn{IS%}JoR=@l2MUoj zATCcKUOd^9$_RuM1H{e@jc3MVgn(0}bz#V6 z;O6rY$HX&#zlnY$Whu4|D@}Wfq6vXu!&CV)21krPIGU7scYB+?R?awx6a5IpGld^I zQjtzLCJ22Ab_gCWk44YPHDCIVhYf){%ef{D)fm8YOQw^NwMsko)iG0jZ7vrw$mwxz zd56U5SicCSytB-Vts-!+m6S!)sd$kuYhL8Cp6y2-RsG0iEoCJtZJp`KtaWGvKo+?G zTc)NQWNC;lChD3*o_ac!p|GA!Wz0+KNZU;v1UOO1V!52QVA~FwTflK8khJAcW=skNld;eIH5;n-p2{0Vv%yROE!?JVo5UalAsX1D(ytOmmpup&?haz@Cn6tm=yu%)& z|((;%Wn~!d1nK|wCe z6s)qy!g4?1+lNi-ZrZKLI3~4TTloTkoDzYY5L=nDS90$m!myE3d}u}wlIc0j5V<;K zS&Kw%5|fJ{1)*M#Q+w=XKFr8O@sUrdMr7pM%+48TAhXsuE>d{W6ha)qk4kJr-jy6B zaH*^tv*0q8N%b_nM)^y#3r-X>qDXEDc{y?Tx9l{B=NliV5oj=tlM(T4Z5(88t?UV_ zVO=tgs3KaTU}wr`n6Rryfj>mE50dIt;Hs~5gaSBZpunClk48Zf}je+}Z*=_*3e=UOK2{v=vKFP8`wB=o)*Mi7SaCsrbg6Yx8nZ zW>;0)pe+64NftpS8&5jel}7I(f~eU;)AKnp-_ZAw8Y|t+9NJ%xz0Z+zE>w~#1KCI7 zZwtB8qrK)C9*@h`kQdC-i!R|uNlq?xI@Z!FF8z`y`~o?xl(!)Ls>ZuNB1A2D5G@wb zu7VA3H6&w&YqeSfImn@DYDP*4WHL%&qZiL76cAFMZv661EdQ#ZvfNA zTVG2}Ifx_4_*s{9dLFq=5xXRv&EgZ1l2a@to!pi$zUXkQ#;Xc|H}vhXP5xcXs+*U- zj9)}I{&5sRrf)L19wQoK@|T;!#)xAS=!4`niMz_ZHWC6QlFZRx3Jap0X(cyRzLDWd z;0rqUM%V8c(>Sw0p5^E~?_8uS*x_PwvJ2q})uGf>XW&>w!mHlXmog(W>C-+8d!ITq zcXGOu32K_``4sXU@mGU-?N6x|n*n@-t9TB0lg$d=wk z#=+5_x1Aipb0!y>0g_CZRc2qIpx8b%d?=Mfo=BV}l8I12kuA_|h(LxHoR(osK_0m; z=A}u9R>xgTdPE(q;Y9(Yae+q;@iKQqH#4RGQjoxcARCsiuMIlmN@Z79c~t1j>fI7p z6^t~7%_O}=&X+k@D#A9%X7RSvuw`}f&hX@r4ydpy&)BLwrX=7c0hBTUQ@K%bz*D*lRAsVVPHKi%71#WGRl5 z@;O%$UL{hX1*Z$DTz>W2xSIRr85c(gXWZLx?wtnG)=VC10=hxiCHwR?-ppEbZ=U^i z>1tn*WLKpVjWCN=c?YLoSsHX-6(HI$R>-7Unu9E9{A&qqp=L?dC1=1el6;8I+Mtr; zRvl6L-7ri;nd}+^A@Q|}!lDUm)k!%^8?=Thfsxm880Ol--``(%* zTej2|LB;H$d1o3DZz1|?LI8EanwB6IcJoT$)*@M zF0O-MT~R^3i0)>;;W85!bYTzhJi>A?Rm_j!4uohlnvYV_#4eJH%uk4kn zy}oW^{7-dj^TyfKD{BMQ0N-pQ)js=L8>&7auwq(ASkzp+d+Rzh`g646s;*+8W%_O460O+F$;EeRDNFZ8q|x_P!;P`uS$zoulqN#PPOW4{e&UR zk5$8t)J%DldS>YDLMb6&6g!p{9ndNu$&j712!b5et0@zNmfS=!=O$7V9v)*63r}WS zp+ATaTuML?SX$(qi8)zNE;LNNQiG2nu+B8L%Bpo9%B67Q#$ud+-G23(?~wQGqVfTk z(RtZxtc|5=`rtX8vD@++-kmRXl2nEXK*pgF>Oj@^Be(sXB*neP4)9iJl`)KO(gz07 z)B%1$N&jTZM@fUooogn1gju&ji;5^Rx?A6wU(n$?5Z&eatIz7RK)Mb6Za8sYVWt74 zb+YNM_^kN`4yg6}dUmhvEZDrCIs~#*!#_ttyXdv*`pdSU`&-p9>PX4fxS>K+$^u> z<7#7N4jd^Qc^@zJw3S&=V0xD*V?Qh7fwohlt5`}|3{wKiiO8lI$!f`IFB;KzOO7A1 zcA8Lrkx|rZT2G43n#-=qPeeqG(!fdW3mtsJEJVbc&2h_PbUAem1&$6}ZsZ5S^%Y9% zr)r4ul?q2*3ZAN#1ZsW^)0GulOjz-W^@ni{R9+PYwFyjZR)-huCfZ~j3RSFN^Zs$# zGfj*Q+FNYJab*P3NVMF8(Cv}uK;86HW)zS*AQC43HyM#~Eg_^6MmV{N3jDziA> zRQui%9=Nn!P20k4Yn8Lq@v@DYGImliL`({8E9nW7U{*gXbUku~HP{b@WQw)sUBV0~ zQ;}i1(ju0wh4-xK-U%LbjQ4d=*QksmpODI2v7Fp6xlwU%CH`M4YXF(CTJ@)04_*<= zNCLQYplK4x80S|w9V`ZDM8sB@WpwsHXBeRu6WlZ#gd5|)sI4CF0$X=zNX5E z9!nE*XLxLvo3xNY*-glxqDls3!f>=aFgM$FwYeE@Kmeb!PsFVRL1;>XQ2!@8i1+Ut zDw4v{SEW&jDUA}F!jBvL62CCnH^R-;O@$u}jY`8q8SapHfH7x=xLICk$>UK9TS{K1 z9Miha?yl2KWP0to4F#%mT6P)38u6?99)qZq4!ns0v=|A92vp|p{@Z0UrO6etgHOEC zFGz>H+e2Ifk~z~E2~4B+O2>+kqimcg10M#>smVPuR~A{ZC3pb$zL8)v4FtiTMG|dF zc|9_!<_&cz;J&O)X|hElBxTIBl+lqK6epg`c!(u~H*&m*Gj+P6yz3k~Bk@z`t0(h@ z%orh$D#l;>h+6J~wd)}n^+{7THz87oJ4lUlo^J==>aSU>U-)Idkh*Y`_&H<)Pgl4i z!ETWshaXBYDmbX0iYdj#49QT9e>3$mE+ZPy)%qg(2%q|?xM$fC-4KVtUwdo7rqt(f zfsB`n2$IazL`dX*q_~~n09}TS#pA!`D_UVLBp(x*^cs|&N`EbX1@hhBqYGLjF+5j} zBGK$t>i%B%m(Rll=3v?ANBDb-{JuXxM4gWCPPsb%4hvJC{_)0t+THzgN6gQ2C|7V8 z-o1Vn=m~_x{gh}l67TnZC8_%IPyZiKO9KQH00ICA06?zR2%M&|O{W?F0CaW$03`qb z0B&z&WnXP?WOZz1b1!pmV{2t}E@^KsWNCABFLQ5WYh`pUYIE&f>vG)2mHyACXw5na zMjC>WbNNAri7APxRo0eVq-^gNOGRRUo*^s@FhOHTjp?cKYi!l-%lS$6JAFepE^|>x z*}Ju_#3X@6_vzE;erXRDf-_N-X=p_ z28Z&|>Sz!Ddo%u?$5n_|Y0keci#ac=Wxzks(qhC0^;Clq=D3Nn1wUj}x!`OyJlfL( z!}B73&uJ6p!P)8g>DjlZFE3BOJ$?Q59B*!lG+|GV_TnNJ6%+D<%e1(hN2TE9Yp+dOH}J?-D*nL`fWp>XHx{RYloc(2m$QBN}@nLU=kd`waD&4IP{us^9AG z&Q4#v`S$eeT`a}&UqDFNP-zuWt0or660kF z07lKnaaIU!9#4ug=86Aop5{|lr88bED)S7-bi+#~t`}8Buan|7Z_J^Gn5o`51k|RN z2GH1Q4oWpM>OU{N9VDq}46C02B=Zn6f0>Gk=iGi-@>y}iou>qwWw*R2<^lMPt@aKc zKi*@H*;`^&{I9y^Y!;wz!i%qyBAE@rbup2ktd z%}U>4c>u?w__{swh%Ji+i!p7KiGnE+z@l=Tf)dIli?1VKE)y(>qb$Sm4a%aJflaXM zsFGXPbE@sEXf9gy`vPkc*cp#*cnD-+_`ED`(uB4FKyz%B;AXecl0dgyp;1v5i#aPM zT1o(;qKfjE3$w2;_=jjV&p7>_7GaSGh9GcU5LAKsaLA7TLQ?WEj+j`b$at6))8I^t@Y><3yrqM$P zP7I)zfYF6cu4EUvjRa&y%s~+eo0P?@wdTr)QDU6N&Tmw@Q~oVl1j_=Ux0hnsWX3 z!Jfe+RCo;S6JV8*o^K?-9D!B&ODd7 z7O&JV^;?TK1>|?v9As81Dz_v8dkLbg#CzBoRl(&DUYl|oP!cipk3m!=-KxC%lTU)m$PNuGkDGQ>@#RM9wk0TWxi^MxYB8FUk@a&X%>{Wnh)O zsNBWed1|3wKZ69qwgN5hM=%;bSgBu+@@0pX73+KqIrvfCpo>nc-MTKMN`o@T=_y9a+2ruAI$}mXkN)7 zMnafJ^}uw(f;F%^B(O`ZbkU`dUe)dTk}9nk3`xQH}`OZ{-MRuEP%RDpU)-#p_U-*rU$R3G72H zD%&Gg4Fs&Z5aLQXqTzbT%Kiqck~g+T#GuV&BIXeGVpYUN#*UAV+3$xP$N-OgQHlL@ znnUh(qe@Z((H=9-f91P$R+ec5>;9my#w_Z6VPuc$7*sS+g#}52eYai11aN(4E z3#hbLNuXFfDe~V{&>R#TAnACTPho=PO9}xoz!yJOKDr}qz8%A-T^LKT$9I(I1k69OOgx=n;S(uLpYE2lUtg9TsH@CK>vR^os()VQ64SkK9#h ztw-Jyhc!Z;$K?{5D)HBVxL)w&kUgo9;}2Mr84l($Ucbe-Z;Nq=3AWu9W-gbK43hQB zC4I{wN+>7kqyp&&)STSIA><1QWq*=EXJQ;aTX;s>)@D-6uU1|qJnP${%#wkT6p!oS zYPSJq39ILRS_vML5{s5iScUNDDDMSq?Wq z@(jRyE`y@KKV%n!KMdZD*dGreHYO9Yqv5p&7k_#;td*n>tBMREP7=S*i(77oui=2}TQ5m5HkYHD&#I3)o)R8j!ybk%vXfEYVV)^!L@U%ev6f zRArc5IAA*Vts0{Y9kOuu?!kys#uNR!#XBa#6C;QvSVnOc0JNCtkdok>@FrC~XyW9> zze$Q5V>u761Q^0%w8RDdE6jL41s(0PXYVAV4@}H*(8RIYaGJOl`DL1jCr^9@E(6cd zkmL?ioKd4lk!$>(X7~*eT$*$ne^XMr#Nnw53`mb$JMV75 zLB__&Xs$zJO{{9qDYQX4?Inyl3^(b@9M;iuZIQkkw#|9|A?EX{9@{ZQqHxq}^slw( z6+(*&vh>ZOn!<~kngF{nZcdjAr`#K}!{*7Znif*+WArE}8&;Jek%%72pj=D#euV0Z z#4?Zj6quIsWQyus$)4x`lMRc6OD@PJjtDYW$W!bdY_z57(}@N#=W#ko$A zSPy~zK6v)@>C@qM@X!f>z!5)!0w~L2OBK~x4MDqvLOt#Y$k*zibl6!1O%t9)OJ|AA z3M^tsWWv4XDqv>fUz0^PNo69#x)K^12MSSx(b9MZ13ijQ?@(h-5-xE+oFrpM;DF!^=L>=00)B`3?2J0oEf#)E#U?5h556~_9NC@n-3hZ){#{th|_ z!I%KnnXVN-g9Rt2L9iAOt7tqPBP~cK!N}~o>lh^P;ARfjsbxLjWk@EERKp|3796NN zIfcKywFj;xvFcj5jj_OTZEMdla+Re)io{a~fYE%OEj5G}&kvA$Dq$x@-?s(&t$mJ>gf4KBA?@lxy5l!Lx~X)Dor+N3wQWoQ2xHi$fAS9yda~ zDQsyFv8GglWEE};_idTNgnvlDzoQihavdJ*DV8z?Pde1LZ+`I-bgj`8*uz-mmy5Ly zUn3SJzodAgyJ-!gs)4dWM2b$=JJzwp*_`rYrbI(}`QDq(@~QB$1ByNd|2v{=M$6r= zPE$plOh8^`yrFt}stemZCMU6Sy<3OKSuXT6T78i2*etJg&fv!r645Jd#_uaJPQrVG z=$U@%@)FH>LCl58v2Kw;lasT{$ zusxBiJRt9Z2oxMmwXKOjZOo^F4Mc!INlgLkbo!SH_pl~a71K6#2@)Qnv6l39mUn2d zZ|xVVFnqjpOIuY&Lo8&j3qe;ic$Owf#&5}%=GHsM@Mqd918Ri+)p@-_mL;6kWo(SHvH59H_2AsqOcD zsTJ#l*`OJSax3)wvZ%Vq%*VEunA)Ny$}0}rDu<~%MRrW-^wyv4uw*;aq>`t15FyDS zvxGmle^D*cYEvevk3gkAA-f>7wst93S88u(WNe}tPgi#k&a|*u=iht}NzlrJ3BXDj z6b&fhw3W(@1m7k*eb`;q1-Fu{!0r^BtXe|J{QIL_mwf)}^~u?PT>b(pBVFFRAcg23 zW}}~Y)w;2(chx$`6Kq~~J;O*5u7VfqO>hO_W)r-FTN>2RN}!O}K$W#>eOb8`#J{4IS^Cl@!;34ooC!5$#)s^-$FTDgv1H)^JKS7yu zN(=|iM=jEW>6I*ERnXbOJdW4~p*mw0wt;3b8*_@ZBsDRn$y!2GX}mT8lH;o}TkjL; zD{_~scA>qt;_4>djw%sd(~8R91=XjSEs9q0E-f+K>rROtb&!H)7Ud#HJApKZA_0|H zGxbKzLo*hQHgO5zT^ytW7TKg<{gbLrlhH?+1rVlvCIP`QTASq6$I&P@KiVwdXs>US*ts0;YC9oOZ=N zc}8{LnQC}dU(2fVZJiG}*sG&a669~M{{5>{)pyLJTsox_l^F19;HmHgm1-Hn#3)*J zCxBQ?Z5Nqj9T>q*F^uW0)PX!T>+ovWI|tW=Y;{#l-NJ`j>SB>g7mNfq&4t8jjyO0% ztf^_rlS)YkAhuj5a_Z|;4T@@Ri(EI;ZiRZp+%4EZ<(aN2ty=;J<44<2XCY+%aC=9> z1|DQXYU3@EQ*oKj>-s;uQDw1rvJPTp>xeWKw{JqQRIC;rxob5GcOUt_>ae4{q@fRu zh*J14%^CZ8mpa^`x_OV*;lI(T&$@u^@Qb(UZ-Hgy?PL9Y39?98L)<5in?0(fSxMG_ zQt5djX818bGOLb}k$NOHFW;MJbih&5Yx(fcYc17nS_s}5L^U$2JD{?Cgmf#qt~F41^=fT| z>aOc`Mre11{JIQrCA7_^lao}ZdjCyaX8J&#U+b!nO-Y-Y%nY19rRk?eple^2WJHt5 z?#yL1Eo!qcnqOM-O4aZ>dE9p5c1x5;bOjd`6PEgd5V05wYTzR`K^pL!`ory|4|Q$4 zjDyW&>VsuegqTiT>mB@0b@kAT$eKF(leEIWF|5o zhr|0PzMCRLW(k)q_*B8N6>9PtAdN&Jt0L{yA&(`G@$%PHvb<}|Nu*NQFL3Z-&dRH)shTctR?N6m(#%}V8^PS#*Auy5+T8uck_PuZrJ zddxLlfu+9NH{aW4JmLc#&0Fg_+O(0Jpd*ZH1}OL2&Ht${8qRUK$kkMB3b2>-6jUS< z($!CIQ$+iNHH~t7W0RaQ;Algm5nyg+{w2Orgir!lP> zrcKb*UQVbQz`QHi20JzBt=1|v+ybddu8!*7zkMig5WCQXVH&#HcZt<+*KdqSNV5^0pw& zbyk0p?^L>cDofk6BkF>w+6R1@dY|&M6HoG{3H&B0#`D1lsP)aRwXpQjqc3F0ZPfvx zO4S-XZG`9_(JNiS&=r)KL>^V%~tzy zTE+|G)pbbpb@CkWb_;Q=gzs^ojC0}{p8!a)n9Yj3eVs=WO&2MyT6*?w)A9{;IqOdg zX$=>SU~p$3bkYiIu5fb#M;QIIPcm=1&(XbxwPpUgFT1SZMkucbgcA(MEjv6{*R9HU zy}sH>a*4VmDpIitFZx(tv8G#DS`g}qdQEg49Mr?M2hagRB?_5y;dUJ;4w?|^Q2Twx zMS3ou3@t#ieL+P?AR5Tg8tAajfMO(rTRzs8koRdAIUn`MLgCG)C9=@&mB;=q6uW}b zTD?z+)Q3uQZaPsK({r3>+8nPFLw&@b<_~*Lx_^Ms0SgKBvVXP>&wsH>b=S^}9oHF| zTcEox<8T;>rszewNqeek&*WH>C8at)dnrvHhb6ML$=0y>SAC?VEfhdj&XzYl0(nwwS@cqsgr6dd~N6iWd1vz6=827G2LZS5(WQw({AX{JFa7HUs<3 zEB~fMTSG&zm{%`wrykDwr$?FZQGo-ZQItgZSS`c`|>|*Z0vJAR%K}f%*GMYCc}Ql1tl!d(G&J(2`tf0(d7t}GhDxf$+2*rOn=YD#UkrB0<|pC|dJ*Kyw}Y;gfF?=X?h zi`>Yj3!jT7YIyv;>{=K8mubXp`eP<&FWNHh3ja1n4)v_-){}gQI&DYa+#7ci;x|v@t6jW|o{EljppAkF8ml@vfEa7!NZ69XX}8t_{wkmfn$JSG-sD2HLLd z>8@DIO)Oe3F2ilkGWM%LWLBHO11M368P_e{Ru6A1qq=9cs~?D}_hXA2AjtnTJstxl z0YAY&KnUPKKxqCSN|%eLgQ*Ffshg>ti!;5I^R(Ko{RSh7-$@uQ0Nn9A-- z&3Q-n3OSebih+5HNL1zbO(zeJB3RR6i+of(SWoB8b*Fymt_K96PDa>w+l%Kr;2|D^ zlLk?bQ@aSh3Up_61yUgJ`-$z{S(_E(S>hH%MwjgsDbN~)Aa10)INcYutMPZHLkp#d zAoPu)^o1oHe^4ciOsz#cJ%X9NxFGAv0jWR?qqf{PATj$G7XF6>`P9dZKjfF^7-Pus}k za;sqtCxl@3R>-4{$|3rxdNiC<-quRYj#Iw<D8m%V4aNH`y0h7>PE|*XdsBU z(~E9;^yDY+iXhfo0Q7%?s0se2B^e3?WDx@dgyjDLB3JkSjhz||Tl-CRl>cHd`^$A{ zTqC!@K1}E?w%EnMZRFx1PQz>^Eh8Ev&k2tDALl4qToBIaMErhL#uQO!H*^}FizK5igT6h`33cR3#+MrNofXrBFccf z@CeZMWYepP&}ZgB|2Ca4l!%G z4yHwyo|^JXX%LhBqSZw66k3O5N5`u34^0BnOhnvdoP{@hd2PVs&d9bEXPo|1ZYWRn z>NrvF{k=-2x7Seqw+jL9x%}C{;Ebv2X|1ld`e_D9;a}Oq!=Vbw-k0we^@9;>4v7$q zmXv1Xx{Gw=X=JUXlyW5LNSewMo3DgZM*-2z_~+%-{JfYJuna3vXHx5(Zoraz*0}`x zla_PPGSJWndNPKSu`&mck}XBv`a6PxF7?vlwT*WE5wh<%+hziPu)`VKlgYNvjbT4w z9?9hlL}n4iafH1vq4+zR?T-(cx?oqCBZCEXAqHk2=#C9#%n)V2XYC@HXii@n#q22z zSaX+fasm$Oe4?Z}?R0#vxtVQuN7K2aJCX{(PvdVm+2~&wL2Bw-s9$>^!hT|yp+gsw z7|X(B+4SMNm1S!KT32&z#ul3|t_#sY$FyRa``)VUN1UqTm(Ztstpu(oqTN1+B7mfT zhs$Q@g0Eg#x9KH)poZ$ztbN^fmzQ;ne0aM2 zCJUw_6U-rq3yJ{d8TKbI0a!stYkLcE?_101aM}dFyn9r}bE{g!(qDLjjmoj;+^3*B z;G0MCLg zpiIK7f2Q3fOf5}i)lixi{}j~MaWQ$}9B(d|i+g@mgY!~CARc^xE;~9W1Fxv}r>1+- zm{MQa*5L%g;Vj_x3O1Q}($0A&&;=)P?GrPS&x#1814Po8ViU6y!MYSF2&LvRQfM9{ zXlGo!nx<-3N%r`L#wT8K?h3>^*!}Q4%9usMu)(;xN>e{-vM7tc2(<0|!+Q71_!b9d)jC)Pw(=GDO8L;!tbj%Tn zH5bX^!19ply)@-nVgTJFc)U76G;eT0{>t_|sdf#T?P5C~xN|3T+uQ$c#!JE%ft9;P z`$j%Fp`bJ$cIq|pM9L)`vu>LIoW}^8dCJaUY>Nl!+)|#elIRSuU-C3{8buxWZqnMU zJ)i-?Nb23+U5^yG%{rKO?ap{%?GCyv%!}8~{Of!cmAt$I%-3%?IkeL3>=%q2|MRba zm(N-+)pYvHx%Lb&JlyQLUwxpMRSJY3Giv52g@NzWMB2nu0IogzrQkKLmnt!Cy3RQw z*L{=D3j90XzoPo&Z^5zLy>h|9AKni5w?w_3?cC+7VwzEUkM%ws>E`^+ipCPm<0W}o zLpG{O{>QB1MIb*_cv&$_S%h#C3lr0t%qbJ4ch-KVz~5~E%-0fhjw#HeFWL@90`5KY zn6|s%NX98>_2a-ys~Ki(wG~4x!-Ae+k6AGN@CF*?KjUmDXIOloNOC{xpNy7SEBu1i zH(g)3d^;i%;(FdqOsTzA-umGISovA9Pdl4Z2q-cx+mmYpd19MvTLl0PH?McjR(UDO zJHG|zH4llV;~3ZCJo$M^+C~tDuX)wMC7fl;nq2|j_|4xTdv(=%wFR^%W-U%yGS(%e zU)C#ri;y3w)x?FMHAuR7OR>gKU!a5fHi#VL)kHr_2#NN{QA;;x>eO6NFlW-%+U3hTw( zi`=uWym{Y{|0kyjh2+Eqg8$e41PcN}`hVxN{~dZ^Xm0u+rPF?A1 zLMA-_nq5CX4wmR3K8m&T!6wMBx$Hh$_UVvg`sE?#{*#cTb*C-e9jgWnFYxxG zv2JPYSDty>3opPyxCz6Zf)$#M_LCWrz(#}dm~6|}58eV~JKkq0G};+PGtXCl0lq^% znTy4t88alU`ZSQf16s%uZQlH@`Qg!1+sh+{wW_wnl!~lP*tw9#Ydxw1H@h*AEj>|^ zyJCUSws0h~c5W&_|3f{gR`(-u+()i0h@%&|yDxWCVw{aE64T>&t_HM$}KHBmQU}Q?x?a9u%JE`2b zqf>yau1grgF2!H>uF+=ZOc|))O--orqvNrUD|gyuEg<|oqit#AF!<4E`2%|KFE!qj zUCpaW-w-UjLRYyxQ7x*gxnN~L2hJ0Ka3J8g@+aR~Y^Nc0R~${p>8|~SA>YlzQ@5kr z8`NCy@OzwfSB6ga@MrovNNXs8_n&jn)w?j3bDz@(Z~z&DMwE`#vm_cPJWZ?b?58ZpUgZ`fHMBFH6}Su%+y_Q4ppNAKqH z`x5$pLRc7WXpN&A1SD}7?EgQ|#?;yN|Ag7l+ZsAtb;Ek&jwe#St6R*rkCr#zY`#7Q zfDtzl!(O$Fiu;q1v8&|QXuq`ft~pgrfE``uw%=^K_hht`PfYw~W@dhV{Tejx#$xBb zLdJ_yA+*Dteh-U5HY|HryqRU?W_kL{wrJI4em#h+a_ccywK9l|mnSeaHPyn?{NAco z#%{4PxbF4QGG9B0wYY3nv~x|-eWm7Q*v;Y1XTfUSIQM4LylCaRL5zHx_M~O6UT|y} zlIpm9!P|e)>k)2Mwtd4^YhFiV=xb`(v2dZPR}1}Lg4>&5^ZRa3s(7aw@cHG*7W4hfMQ2 zL_6WW0`Nz_vS_&i&Jz8^?)zBzIUp*egiya2tRC?$5tPkclF%&#{rRGuheu zIXlsUTP;X||Q(|^OKD#Uzm z3zh78RGaVXg=ijT^KejoKfwwCSuE5)`VRX=e_n$El3TRDglnMue>eoitmZEBevZsu z1pvPD_s+Zz|#-=?qRKq;-$g{l|m?iO>8 zWltAODCS5iF93G)n3>?v^2 zx*ggLqSj@~ZD^ABbsx$00yXM;5l3M)vhneOP13D1{x^I|yIpG%A2TkyW`!VDl83=e*=1)D%`ZiU`i z+}>P`@bmlTPuXewABl71p*x=t0Nml6Pi$;dj9>;JPQdi^TZ2MAuA$K}aZQa;{Q@FS zov;f~1$KHf83D;EjC6LE9JfZ53LzEO31v&@l`YGZ8(kYS{;TCdp+*5Tx2zaHTuN5j zy@yYAcuB7_eSRHq)1c)_ze`9od=5Z5SI{4;3`XcEe!iW>&giSB;17T>t)C@fKjn80 z`^FcW)dj5*)bL7{pAKQ*SWhm>xfv}q+g0x9yCNmlVqV5YnqRkzGuq0>N)Vrc(1-g9 z%q>ukNRQ$zD#`vWC_j0UFiS=`Xqw!G0>E!}M*r1xXH6+}_>YB@Dyw?d>Y89QBQn6k zi{!o*sBT|on$&$$2>nPQsX8G1i9TtCPpmV~Qm451M#3y(jmP?GPtEv3<*D8{)3y<* ze>ok4D)CXG7?AYtETFKB!;DgphUZ~!%LT2KK7v(r8d~OxL{Yo(KMr#BnKB8|@vHi)yS2W(DL@Gz0Hi6%&(1K= z*HN#k?(x~(;JzSFt934Z&BK2Ljh3CHt+u~~43`|IEI0qBT*pm~WP|DbQJ$7RF`Sco zqFJ5ho#Ph9ZH$ite{HiBat8$y;_3o)RNM&_ zPFzE!sW)Aktu)^jPfN)H0s%^UbMd{BF|IdSfiVRwXfbuz$4%Nfbg zTu=7Ok8BOCpKBZofqd}Jk2KvcKiXHKJE`wsUG z^hGb`qkhzTU5OmH=k=L0LZbd#wcq>czTjPN4%6uQ`)j_N+r?f_dVk=5(?F` z)TRd83E$buQneBq9mo5}YLT8Zu47J=>e;v4cx)68JEKM2G{LKP1|6`$j1UP!rtS9h zDnq{mK6qpCr{J^`)sKW=>zZ4vhX{L5b|>%IP#*h&(I4sQO>Sa_=tT1qNKIy+F4>0> zZ)jIg>*B9hH5^NUH(rm~VhR6~9i^F*UZeM40S*10Zv!|!w8YQu?Xw)p`9VvOEXsqs z;lVpqdgF%AM0Xl0d+TLG`IJ~MviGFW?_pehFTH?lQ&w-pk zvW%0b3+8cJ2ha?rCzLzn!*@tzg5Ok?mkF&3@<{u_HoNlwg+W3Z1fOM7qNyLODV3<* z^Frvfpqq&xn&iMy`i}S;|Kg9;OE#nQboDdfLHoorveO`&>i3ZM>?88{GMQqhGY0ld4kL`nvwLY5_1SYfDmFJs|4$0?G$t6 zLTj(C)jSs$ImWJgrF_c8tF`gfnqA$Vy|18P=Oa#*ixRVU`N;iBn{Ww3DdscEf?7=G z*L!n5r$d=)8Xh$S_kCgqlxJ_~5%Q2v@-3{VvVwcQ+0l+6V*dI~`0MT|2laHa4pR-N zEGRb&O`JhqeQjUqFIy9`-=mwh*^^{VIA1P{^BV<2f36TDhq)91V4P!qy((pWHisYBP=I1ws8!bGXo=3&BW1BI%} z*YT%CBJY2}$agO=v%_5kl5!(D*h=A9^ZPzcP_`+Z2EdOx^B}55$8qC4m!g?jAcn^U zY)1p5IUOZh;^b~>Ak=MI=fSnyzJ!k^w&L4*q=6!fTUuZBI}l}|JF-;|a7f6q9v4?< zi}yA)Dv0L$i|bQ{j%x0xenokFME+Ns_V0Hb2J>_3cLFfbw<*sXZ0s@c$mOfP|v}db!W(Ya=M2JEfKX{AZaEi zqi*yEjTUgR0CUx{O=;&DNdl!y;rPXhsuEH3-U~g3zaaN(0y|{HN)XH9QbWd*4f??ikRHvPp zYug>UZPzCKxf7NAnQXdN03wvVAb+X(Aa;V~t6r-II!ELL`1VywIjsyXE*0Z2gFNh+ z!uY>IH%HeYuXFxW(eGwo@@t~EZeNrP+?Rx0NOk*Cz2EuGh zG;iowJ+Ce~@+WFYJH=<7`6+oZgjH)HT@nCkIUa)0N6PoMZ0kcZ6k))z*xx0F0jYEXM+^|sxG8R( z&zO~bNbVlIrJtvZ)+3tijS611iDkW_C@d?h{oeB3x1(#`>c2Ib|9z<_T-$wW1n7q# zhKk)^g@ZVq+4Ga#jCi@@0B2E&GN?dbNDnDU&0MSjF@aqXaH<#q%TPPL`T8PYj_W|GG%@=A{B@3wD5%b600r4LCJNIiLb`tv@ zLyU}3(2?gfjk$?ES12z=!6RcYozi)2ltVO?Yz<8vQLD=jJo|2nmI$GALHcWkn8Y6Y zsBbm}LrqUZ<(iEEwCpka$z=MEM|Mumu~ME6rTYVfZhXLdc$VLO@4>XOK;Mo)cJ?phquqZji;B4lFZ3;DlNjLhAkF3 z^LXo!Z*&dV=b=iT&uo8g@@RtRGZ_Y@f2pOkfsCaBO7=Up-G|&do8nd!e*ozlPp4)v z>3?_X=cq*f{?g&AwecC8~N+D3!IQ{5bun%I!V@m8y`6$N*23nsT7JP+6WC z+JEjt&&DU9O*0sC%uV)L!QvHu;0U&-fjN~3?*K)94hJ&^Mx83~m4=^wxvKw$ufj)s zJW3ohh&J2Xm11~ouT)lZD_lCKu{N@(7zuWewC2dN71v^Z1gnn_8|XN$k%X3?Qx!YGfohCysQjnP_KsC^nE9v&K%^rMj_;s>HiK9xr!3jVip-F~jjyK@ zByDh-G5_Dne9&nn>u2R^)H@G12{4%JhA{*dDWN>Aj*I2zIg-RN0A{`u2m8v5ufkmg zQK%$GY{|CtCEXHT>qu`zKOO-WRRiC;my05ECYuE2HodAT!MbO!#dbp*eUF#{{!Vj@ zL7M4o+!k}qlpwnO*M2{>x-z2xAVtqhRx1?l^>dKHwcrBtB_y$eKHkmFR>@L< z=&ijoryETXPY|&kF)4r3iq#!u78aIq7qS35qBu03K>=q!)EtMM*d#IZRVgA9MfvWN z)8Tlx+ywTG-l!%{01Sq~kMp9MVVzB4;}z6?&A8^6OdHRMhxdhZ@zxn1g_LKYf;_uV z7?>G)_rU<{tmEwg+QPK>Z&^fPA%}2yQE$hXeyl()c(<%0#0bn>N#S7Qr;@O|VyFc8 zMNYZ0K7KPnGu?FKg8Bh<;mnsUFF9xZFDZ04f1d2YD8TVvEs_q{9;#ne3DlTo;cROM z%noFXO&NGo#TS7`U%EG`AW8SnJ$&6C5ycJcQ5e)|{I}VoI;veZts~pKJz|2DERMTV zuRLEQZSvqXNqq%_gDc*cRlHWfq>|d5J_>>L6`zYWUewNO+7&G}D40#7rxDMM=D6Pw zkb%0?4R6mJl4Kn{@mjifH%jZzU52%SZ~Cn$sZlVWjqh27?^xlv%)22;sg(bXfPl|2 zEy!({0E`l%P7O7-Y(FR}F^=8S{hC}MHnB<8Krk~Fss}3~)6YB?y z^2|;NF`M9eU;^m_4UV)S!^zL|OdA&eTS-4GdtmB-BrJ!2d43qJYp0)R6EyLY^7VDw z!+emsHxL}{G_NNp6@@(T`?ukTv3^O8VmsT)VVj9?Kb>x@2pZML$e2ck(2v>lxj9Sb zSzoM=9MfIzY|mBZnj( z^b>ry!zX^UKsl4E-X8TNoZ4psY7<5^NlKPPAwAn~;Mz!o5Z?GnDM(&&P3j9iX7s7O zz?VKY4-=fIF=J_Zfl^=I*}3y2WtWsM6P@88o?bTEj-M7U_oE`MbmOJaXb1z-#%H<=S8;_m`C7ZjcW6r8n6!yu29m)FSA1h;w&;#tJ4%O@KQ$m6B zUU!-%XW?~`@4Sz|eCH|6-<0?p=l}(fRJ27kH^!@lVnH#wUAmS^I! zG0LkY#!{(947z=uQ%urd3Zkt;x(jXyh7F#4~v8eKWQfWKIQ0=k{Z zYM2`;2hjENu7DYR-@dbK4GK#t{cg=F8+JTCQc{%Y{_b-G>!Ry z?gRYqTwiBsd?~ATz`}-OndF+N#(S+NQ$YFhM~XNLeuTOY9RAe3yndqlfomUtLgD8x zb2#b}6|Z>?!8_2XP-KqV0La}?#V%+wpsktcOin^D0O*LT?ueRQxJO#4{t6z~d}~^j z3|sE>g1?ojN6SaQgRx(rWjj;G3g6Gk8Ai7uh%!PGZO7OjNB7oi7ja^Bg2}fx9+4)>c5_Cby;l z+ynv8-PPRNrf0SK`5P2M7K`+iW09tG6drl@x(qSulr1%YSw@iKy-Y(1rtQt=i(RY-Y0Qb+(h)6^PTj3~7njq^Q zDYT(0iIfPZ6+nTXkyT|9$#DW7iwpv%`zi#)|#e%cHjfhRElw zF1bawvuTI#U{o58b!ROu{SF?72y+k86woBCkKeBF zmR{jqE6S}F)ivQrH>(iEGsRF>P;;iQ20FJW^NjduL!d6X2(64%`_O$%8ySroMj68_ zeEUq-l|^wk6(D^oWSB@jVcJ$BTgsN7Fd#KHu_j&p_n@w0145QWLOJ7Mcx;Z;x|Hn2 z-HYFtUXvbzTgbj0xcaIjvrK1ID_$2yWU^b>d@*p1$nHrXO5ML6W{1Cb*dM*8ASGce z+@6)QvcAF>OhH2R$pYu@Buwa0zU>Gt15i1ajiJaDN8~gtHE_KoO}mBd%e6>F1N1L7 zF8MZ41Qx#mM48{YmrZ~1T}`CWBR_({IRh7%)PVU;)CJZz^1aYsxbMvNB-N>8gO zEWsb@#6kM>UuH%|8X!JNdb{5T`~HUex#po84<7rbtm@8D=&aHv3>Fo8$C{ zNR4@yFG)*9wpmPPN?I#7N~?CPk0~$45>oXg%~Pepge9&=KFl~EnM@bv72|bpb)R6* z5t9ZCH^_Yrk91QxnKHXU0gO5J^XCM-wK$eOyvnY`Ra~f}OT@Iz0<^0H! zOGFcR;*98fVGLK6;2&+-*<>DDlU;Q4c)z65n}=iz6|rH($TXe4OkJhUC{(iy3KnX2QYp+Hcn3VGgeA2}-ZlB7T8uIMG|xkNw-6jY z^G63*>FVlaQy3}NE2e@l7hfFUlRJ>?!^Z@ER-$aO0Cx8J*F#ZKsz=jgOfW(3Mkqqs zcOk^snO03ubKc?s3EZDKXaxO-v*OXBxw|qlO|n^bE9!K!f1$?McFfF>CwQBcI35l> z?=QE1H?8ves(36930zykc5q@S80{-rTEQbR_O~lWeH3NmERhxPX}_+pv+wfj zApM*-SKL>A25tQ7;9^E*>GUxDB*7FH{6=NOVoBE!0%F7Q7u?F)Pgd?f&wkvFdR6ZS zRL^p9)T4bAY#?eg!Pf1MZX;pAYMgtf4IxyQuyj>?;XBxO>JCdya>Wcze$WNqtWTqa zZ0~`XgGHYE7q3-Hu($}_!0)*SqE5U>M0KUw%9%N=o=I-5DWvL(aCzl(o*G)*qH_?b z-xR-8Oj3MAHw}x(Er$?>>#Of$Kh3h);sYX-!BmPyC)U#UdJXoircj5S>8F^fZI0wB z@FUt_yaY$$pKZgMvxaU%d)UHlQ%lX|+}9A+B|kf_wt{5i1JXPsD0Km*j6+TVJtD;u z@?zMsKZQK$hgTJ#lbwENByn^eAy^RJIu7!%Qd8H?0e6}2MakHqi8^0_WlGI?V~&Gg z2rkbW`WP%b!Y;o_feE;$FJo=fHXs3WuTJfqCCiZX19Gnk0LFtBQcLXIbHaVCVMp}1 zU(ia-ivrO|>6?Z|ENA7fvr^2Zu0^62Q~#BMhl^t@zJRadqJe4~r` z(!(^?C|Z6eutSPmHNZE2xNSRV-K;+XxppID1|&MF;aDDJHYG#F^?g^65L|tJise#W zw9s?=K@q*kZhx0v24?mr=p{>#oTZU8l~$^lz|@-FrphZumAoYiRm81&_9Z2RdA>lY zfucut>1VI^9mk>BV%4ZMSN)_v{YZrbqZRP5QZGHDBx24SWyx@dcSje5xh@@wR!U289K@Ty>T#@tnxFUA<5cG!IYGMb4TK6Q=1I zOtgIs?Rqt83uc?w;MV4bk`!3EQK7gf(OWAE10uk*Xz?=_u$jdW^k@f2cjR;^kizQK z*Gr@04GXW~CBpjl@U`pP*~+*;dPwg~H#n%C1XfkUxaN z;vpetLF?l>(={XX17BWL4srH#n!Q#C=%Lm!R6GnD27Kg83Rr>!W!}9Y~Izay#Jcf!Tt~Yb0#lq z=;d>~O}>naVJBMdtwQqe#NgiyQ`7UGr#2|7p-H*=8XD2O^1(s3LEhz|ukcoJAfc_) z$oWTN?f6{5H$xhJ?t^=jT&ofjDoa_REIDiHHQ@L#XF~G;x#86ii|y;8JXj~v*7EiW zH7N9I=nTow>cttK1bIS&WhgkoBu{Dr4n~bKW_?I9a;R;DEXBi zfJMHAMnfn0Ga;*1=?##L62c3Z({P2gBEi$Rf7mLGbV%R!iN+4Q+Rjp@>fOQr!3Zq) z0h7PPk=x`urA&8U^~-sna_dv@_P&5AWKy$|eR8*rB|CM2UKH6<1;`F@M$~1LhR|7T z)V4v`uLR6T2BqCNaa}AsJv<+PLtUQ_Or9)zy)^9dThX(T5r>EZu6R5eMT+)wbU8$D z+6~M`YjJH~cHeT=lB}B;9=T}q7pEs&vu-^d*i7`_NI;k<4B{N$6p>QCQ*NDNjvd@g zP{5fm$~qCg{vY*iQoqG5icoK3KjxkE%p7Q8nbzQceLh%Ej0j4EZ#RPX3Xv9XUyFbN zmNR0aH2J!`Z?2V71=8kXY5dUgLE_|h6Zm>k2M(#jJpT@#2hYg&`tTa!a=y*I#-LG5xA_;#zd3aaTV*}*K5^07|h`r4;QfNpSwf`N7;xT z6((VBG-icg!8@6@^=7T)vDNCRLfQXp$;E1mZh^LKN3WTKoZu*NbP!V ze_nfofc&A3`i(2J1nHuAJBzrf7Yi|KmcJrp351nd|Uf92^dj_fEG zC7{FHux?M0x+pa=>$iM>q`onJ?LvD8<67bPIa1u*vL=SgoXcWjN#hfCR*dValA;ML zZd{^x(FHEyr~*?DIHVKy38(A5j4eU~9{yfAtZQ`S0EU_k7(+xlhw?FAVS}CqLT2f) zENpTO)4O8Wg$elwrk$lojL5j7n1VXJMKV%A8HE|62IOvR$_^@Sq0%m6z*5B^hEY_z zM}q{kM`=%4(#;GnRBE4B&#vckU7;@O`nZ!u^mfgfRZffYDUY?49WYXDd*|~e#uR&Y zRDXXX8Q82sb)i6Gv|r&j-NUlja_FthIgFh#HRc`GH5E&2Q#~t%R}eHRUbkpB4_WYc z*DfEmSJ%^K%P4yrMd8vy8B=g*fPw$_^JwpCm=oayca^#lT{`K^ADTTD$Td4(f z-?0mBJup*n_159(AVIv^}_I-=(3hd%*&gb2} z&&!j`_L(VuU-s+|1}>s#k#>(m{D=T}pV>X_j)q%eAE(XuUO7*KZ(kKlwoGQ4fi&iJ z4os=54WJ{}v%7{qXL67}H?{#Vg@|p~RLBh$&Uc^uI}1ivI`p#ozmN0yaj&M`vFnl# zv%#uwJCe7-nAb4a8jesT)Ye6>N7HVyecxhSW25lfcXTa+d@DlZ+5)9}tYgnX!%!`1 z+`)79Bye42CirDM73^mOycbIm3>;k2q@_ptSZfih25pMRS2-f)zSN>7bSb}i`>dV{ zt2mkWpj3%QH{Z0Pcev36&0T_LjB;N4G9zMJ3#v`YjQ!G3PlY-Blu@p!UtlLS>j^>L zUreRfYe$`$nFEw6&u8uAWv&wbT$Mcj))v~}R5-g!1y z{2!O2Wcly+u^F#UQ?!JMg%A1{n62s;02vON{Zp3(f+v{m3J1war8ADuB@7g(q;3RVO%GeSQ&-KrUfqTwGMgMO9r0l3_OJS6IT{DJ0Vw^xbepig_L#Qj|Y zX@5tg95r}l5!HkT11Zrms7ketlnbaMXYkR~`F-f0FHmUhTTnY>>!)};iQu`W^&sSV zZfVIVCbxJ#lx&Ur$OVbG$40EDc!|TuNrsk#)w+50bw1kZGPtz3bMDzmy)TQdZK+~i z*~5#|lqYQ?GBJF`9Q(d>D7pLOTMNS`7Uk1l;jYWc&spU ze-t3Mxink-t>wY0ZD(z{C6~-vTf&;~DRERukldjHlNjofIqB6j-PA6bnc0w*UbZ0Y zwRnlfYsuy4^cel4d0;;8{H z42>i^2=wJKRQd)Zs`8L+99Rsb#zw78&~~Q<3P0>bZYUM%zWFcvqA8^noCQy1UI~V2 zDtz;27OdTgjGE8ZgMO)=cmV$I9?Ymw)o>WK`x6k`NfD9E0LCasNHb}5b#m(*86*mq5^cglA0OvDft7a(}OtcA7 zGG;tMVGIU(04Gq9M@~w7uvN*2@olsZn)G;0RA3eLmmF_uo*Da;M4o!)kQy?0zXM!i zI?T|?9G43T>hIJDs5HtOvYNPk;qHQb@@*IZpQGdZHxDH*F586Mciiqa{Z5aM#|M9| z_TP|c`Lh_^4Wf^)GRUJJ_>yG}fB)l?I);He-A~=OCyK-k zG#)O&76RzmJkJJZrtFJN;oF!Jg7(b5w$dwoFD;KPh1Y*-VU^PZ~BfMf0=)hYHR z^S`De1qGJwtaDa$OVL<>cSzprPt=7q%}+mxe4lFKFp&zc^rSn4&G z6tZ+3V!Sx7zj+VXz52Oq>f$o_#&5H?qV*Cl-<}p7ZT${CojmP|YW0&;tlG5HRr`N5 z)(_UJ50e~G)*KfPsyK>6AQR?sRBnnXqp;Rt$o3|1?yp+D1sz??`e8m7GWl5@db*t% zy|uct`s$dg7aZ0PtMJzF@XHrsI6dm-e?G?h?J%)0)zqt^IB1$vLPET{J9O%%Yj$aC z7}RKr;pWZeG76QkKrrDifg2j`Jtm?jDiUO`51w_2&l6N`ZdzH_=4y52N41)A8 zMU@GF!-aiJ*!_IPKzes7=pct79wrq8WEuiWj#!2fjoU9>;D56D{o2o+v|`$JG& zfj?QVbTRs+(_y{xeL;vP{X_O>ymyn8Oj+1r5+k(aU zGzPYF;+#+c^ZKZtz%*03qJ$UJYv9lGxg7J3bLThUdvZzupXC$u0J6LIBRAAq-LNfAe?#AwE%Hoo!*Wq9 zU?r&`M=+t-uZ;TV{*FZrqFf@+@5|x@v3G>FQV{@^jdcE5c0sX(wL*xluxgVbC4zZp zO>4Q&-!1+@&e$OMMie%6IYN7M|JL@#w1e`hUNsOpX+cyrSLon&+gz^h*zF;wXbJwj z@%9xni8V#T@Ly%To1W`Nj#MMCNG}t4hxs|F+fEt_3Vv!8iV7h#UuD-(=WxiSoc-OT z#w}o)i_1R*wm=SQIapyBpl>mhI|54O1?`?OI{%ndnh6lz@?+b=*nRE8`}mLER%FqT%#KjU}A8gwhIy5K)* zr>cpY;H8>3!ZdO2qvf8n1^>fH`RnG-v3P$dYFj&zy9_edKDrju%&$;!^!)grr%?e4 zf1~dQwD>6nNuD2AAd!ch-w3cz`3IEcV^nxb^e*nrV+|JJ?TzrkVE-AK(@c; z8%^ho&EpkwEhVX?lr&Fgx#mDrADNIG+p54kstT?ooEu#Q*LdaP^TZGEko<+&zttTz zZtC*56SE(jL)E>GMple>Vb;#c_ zKY{Nzea?@j@|?QCe9gpE$Bi^rvj4P73I_Dl^Oh`ozAi=QO`pUwip!e##_=eNOmSi9 zBU)(KS4>>5IKdIrz=DBh+D8HN_9rseC|J5PPD_`KOK!SPHP`b+_%76h*WoL(?cfuq(nrpQrCMiLutLzBQqJwwfw4%=^UMZ(db z{4JjNo#sRi&-lbu)JP&HTu{h z*-wCoe2$j#)T!O4qHnB_1K&H#AZWe*`VKQMtMDV#%lbcL)-r zM2O9qeDvLF80vqKG$Z~-Qi*kg*!{>m*L8t12gk7m6(+py!hDP1*xh@i%=$@9PINw;NDFIb;AYmp z1}kIo=X71i`}pbL+_-y@2g@cBJe0Q@n0Vuv5i?Y&K$H`_E;8}ugI)6+(1PO;FuMmw zN|UM@^K}GZt%dTy9Ifp}EqEuu;n>s^FhV(zUe{4O9-3@0P3eg#s zV$xJrxUou!BDEWxN0+vB+Uf%z#6ADC=hEAFIVz2(6IV_8J<0Ji!dlshh2yuCaRt@9 zmXS3Y#6y8ZVo^d?ljVVKeM)(RAoOncEnI);_;9%u+v!pYG0G8(iE?EC<-kw2$47e!%P|{GNmXyqM2&|^OUZfFJSFVX9!n&{23Eyy~t7r!#JUEg>l<^}|n-+*% zwrhxITg<7=$|P-s2yT`hkw&`MZXhoW%&C1g!2F2fDJ5W)5-=EmJbtR1n4@9SjtNf; zQ;qQ6vEpNLwZfnsjE~?wDs#e`SmTJ8r7c2^z%)T*dV1cI<;Y;OFRD99yE12zG+ASd z^~a+qKwY9FeCf2Uz=04gz^bgLuq~K0=Fg=ZOA0Oh^5LLk>z}n}vM0yoJCl?7!a!`` zMnDCH%ZF$(BGs;R6`W{@I>yL`X*kiOxI0K--nP!Mg*aW;epQ4MMSB& zVYS|wJ}-(rRASv9+R*Wp>=~K~OmkPUPcKR3A0 z0T6pIU{dh^#MmSyVP3KDk>Nb<``FXCzz5miJWO!Rh1o~xJUy5oYR~>e9Ev$YE`*}~!c*s>B3$>!GNkq3d67NR^ zb<+n_9cGAM`=8J5EKw6ZRm(ud%5Wwmxtx+FFh=k_^x(g;M;;CT-sBU)cE)lxwmry| z2g*&aUVpVNmx(`5T5jdn2<7$beF2OT@Tk;rE86&_D_&R$y=AViC8y2sGnr*ozImdp*9_nUJy@E&oA zzt~P$^Qw-Tj>?zwGjkDOjXxXtAl>iy?H(F5n5eQdqxHb)vZ|$2THvb zQ_fiylIRz49obFgk%R6}{KD}&v|z+|%dMFx3M8vYl5X><6qLu9_z4AAe29@*^U0oQ zS!z&yRR_gsjnuC1NJkzI2T#(mISRJ-OC7F25xMAmmzb2Qj<$+(oq!w|$wVchF!t`d znf!NMM;3Ib-?7K<&UcDdYD0uvOtD;cW0buma<8@6>cm7h-NXfYgZgxiPIaif`JE`j zkOK>w{#ZiGV+U0kPM@BNQe%}YW`4`myL|_ixmB;@wGW0@GLQO#4c&!!V^zy~ykf=P z3e#GL5wF{=(^M&bqKP?Cr-?040kxrLB10i6rss8esgenK(9Uls1MI&uP~LZsBuoDLpX^}k&7oUsim3eDl2w`ep}Uw+h{DF8cWjX! za;zSF^M4!bdLFN8jduIO@K7v2pO75N_1dS%lxgc@@QNQzLCragX)wK{M0=!ps(u*X zG)f^DItKK}MQvN#lUiHeY{+(MMpTr(}NupFX+vU01@o z$bCd@ut_-ft&9*ASI@DWpzz2b=IKjlHO$=LA88MBkK3452| z$tOILkifQlCySnxtQ()FBD-JOpP52@xUGo2xcl}*%q~fW*_ewr@-*ZO$+1z&Q%4Xo4WUOtan! zEx5hIMLpu1VM8jxIb+Ps6Qd+Ozu=OL99!6yQ;?*%=EnF3R>p}l*_tl>;uT(o8p(C8 zj%d4IBDMo>KVtyePJW^<63In`12ZQW`qiHigNsVq66ew%>UA=`gQN(qf67@wf>7Z} zVnR+lAas`OCWN(0kuHyXc$tWsk*qMIQIGc4i+Ua;%C~h@OwRR$YW&x_a(c8E0tfTD zju}evg>`3g(j_{xXds{*vUG=}sptcq{q2*JLp@{@Sm|&5tz&|P^5Iy(KO>?ZR%f6N*&T8`R6q>x4+e~pN3Gi4`-3{n?!3V7l{y4 zs+Bx6=}^KdhGieJtI%0rV)ZDGK%t7!d4)`S0h6Cn(FE3`J*gW2?m5(|*ggF#y5HWh z6QFHk-y0*wk4%1Hldni*<*_i&q<<3f7Vu^OF(TUB7bHwM z(qj!&gyx&E1u7%QOx&ND^&4-T3il4^8zv5o9Ar)@1@oFxqk<22JImO^qEO)O7hB|+1Q&l)=?U=yGd?#8df+#79f-1%iM)k zpe>TbK6XNH+9Hf?#uF%D46};oOpftR8ZN1p0F5Xw;}O{SbYxih2t6W(YmN~8-jgTQ z%u4+g&GHv-Z%1wr?Fp}(NcJpYoT4Y(!W7KS(S<~W5}{paIB_$B1iDL zarcS0%>=VZj^H3oh1=0f9I-TC&pxY;cL{H! z*wgWsH(WO-o~d6T?GBg3n}#9 zdB3W>E@X%Ue!9ms9jr2^s>TI!rtLo$6Kw_HbL)4;;7cBh=!bt*=yP)Se@$?&6)wZB z8DZa?vk~`My%xL9G-8_=R8L>NgbfOnFh-AgIa^Ubgg`|iTU;vOpI%#OdsCI0K0+y^ zAWZm;L4XiB6)iah-@%=6Eh&5XQ&d6H*xwUpIwa4_Sc>!^nrpKCX|Kv~O0F7?`D&sP z5kc6(us3|h>0_<1!(<6MgB7UXbk88#iZW6?8L1g}?ULFg8Ryx#WxaN4ESnCHd|o{K zLdTqk@mlSwD)w0eTqJsB+{i>;cuSi)V*o4 zfp++rYte^eCNtn=-ElU#;*39Cr{gqagSNTZ|P>Ba^wS*X`;0K&hb1@6@)p0-;h z*8-;#DLl+e}(If*R0Qq$}Rcgl`D;@oxyi6P#T%x2 zWe6lh>It*4)q6I1akcdF?Q}|Kx)mu%d`jE4kwtw(BVjHwp@(&)wjzr&IxV9SSNJ^{ zc5n^0tpuWGb>;WO<;_Sm7CEvm$lw$9mz93M zQoSR5hYpk@grW^t|BCj4fWbKM(fZ`0gFU~?%-Hs#$J@}Wev9Oo_RP2D%+w*7Wax+; zLJLR^>0r;_D~)B}u{qSA z426kfuZa^`uWf8>O3S#2q}F@qDaaw!9RfRi?Sb zJogd^W1Q5ug|xmUeK=F|kpUB%J;q8A$uOF8= zvgeS*<46aeRi9rsB|jUS>t3UxUHwvN6Mx;t%Cq3L3I$il-|Xe7V&?!K>34{g$nAgw zP$1QzQdG*?{bBB8V_ye9Mcr$LwD*37w2x20<8%G*qr^3v4EO#LGW<41A&EaxYaw=5 zOvOo*&277^c8oEfGJ?QZJo?EU=ulIfwKq()1|es1z1F2oh0ar9kSY8P+E2+LSm8A5 zfZ;9Brizb}sS0(RFXxZX^0{yMv;4tH*;GUN@c%mnju2qI68?T>j4*xb+EIXgi^XK;C z5k1h3^2ZDOu{;^^T_)J&uNL_$`n@^UO26fgk4wk=^^&t*^=3pr+2TRw`0|@I^=0nH zeKB4ydLb)LA8I{s6V_g$cE|onWkGC(TgH-Cr82GNeItlP#Zgq7-+gY#{K_gwlBnXp z(XMNfG`xonY(N2kX6Pr#n&Fr=tc(XgOkm=W5-93xU#PS6`$-S6ImD-$qU7*R6T=qrHy~0ciKo-I-*jWIJTYjJY9!*~$X`0EEtqGAB%nDS< zrJ$1fKJ`5g0zf*>aW^Y5J@RnaI`A8u|J1Pgw;+!M$|DrvVJ3roiETB*}|_^Hd)&VDSbH0u{l9Jr79Tzby zugv0FC_Nvyr#cy<7M^PQUheO)@#r#t{J_im>9aqS|Dz7ZsePx$`lLoprVP9~JgYjy zPB2t4gKe5IJ)*gej1OU^&h0I-E;tCW6V4%HmgyzpLWbRrD2Jn+RV`t^(@SvnjVhLI zJ7m3p^8l8M3z{RXYJVIF2t92mjHH;DgMd7t4+G%A@Z{n!>Lp#kC!f5eSEvff&|ark|dhn3zhAzp>P8U83M$iArfNw~5i4F_6u$ z6g#{n++lL2QnkQ{R7@T4adhX}eZNTDeeZoHk@#2*2JbRh#e4*nr82z*;mOIygt(7Q zvnjoSLLIiy(L_<~*Fr;z8=CU+G`1&vn@ZY4d+1p<8GaGnw5DQDWK7~$9Az)_u`Ut6 z6>CBxciX57RB?=Gu*j@La@gy_jhOiP-J&h>1r%`zVagqBA~6a7luWHU@xFXw9PFKkeg=R@!Xf1-ew;y?ap zHR{o41g@*C;K@}IqfOY`^?v>(a!Lb@GF zALE+0t}9*Jpm1$9@#0I;gO!*PKALib`1e*_^0@xS877QGYE)B^J#crx(KAR|PH#R= zN-k$zzhXh$NVJ}4wUHWXb9jfwhML@`#>Y?o^b12K%BIfbu0{V~k6?5V>>K~S^$;(! zF}#h<_9Ra&;?<(JF6so7iqs#MhM(uYMxBd%Rm(?yt$~p=uKHiZdqIZskBcU8U~eb5`IE>%^?TFL=|@~9zIu;)|9sod2r#fqW z>~&UE)+m%cnoVuCAzS8koz=NCv#9+kqMwoF#rNBBPFJmb`8OjD?pEx&?7A&v`7~lR ztT0GcH92gqWyq5XC+?f)jyUBk!AmN}Br8#`+96)nhSqo!(}0s3#@a?4s(Y@X5B$3t zRDy9P77**7uE$5loHbuHde1q1Qyz&?Z)X^QqJ-*?P9`bTZ^A2iy6Hy#sBeKc&iO6^ z`WQ0NxL?1;y&^52C+&);jbqb%3%Op5FskLW2qw#@o1+-NrrzOcscs2MN{c#3x)^AC zl=~w;k;FAvZ%Ea(XFEIwg^zM=6bmBPlt~++jAU&iH9zG%_$CF7)MMk%=z9kIig}C$ zY%MoM${38QPg%o;Hl?=VX1a%b0KMDUO1Cj9i@xi(n*YInf1`iCfpDP;Gw=wO6Qvo} z^`YeFZ>|rUNy?8f11zdlkX``5`SLuRwaSZ*#+-4$lZM6Xo1Nx(M) ze1I{1#eq@U!1e(5Tp2X`so4n%UKoUIA4Img*L=ZYe*ZV*LwHE-Gl%eootexLcBrc4 z)ukUI@OOk*H9AaHxTPQ*m*3RBsaE=(UxnOtAQZOQxi!snxujpk(TF=FBRJ;dZHu!l z%+UbG9upChGFNrDhVXSoWwMV?4I0tw=*%bqunhE62_rXgWZcL!DNl=qnRH*f!#WPT zPE}GLXug}~FoW8F5=#B!cmC?_y9=zSWn9o?48!<$Zu;G3lV*k(up6Bz^f#k4eBlT) zwi$=Vf~r^IeB>12;`F!RW3DbqE?E_YQK)R6LEp|$(X@x z_EaSgg}o`NQPOIJVcklL=B5}SX@oLSxc83-L1sNX1J7#o5`{@ddaNd*X#gjtp;1NU z5Vyqo2FI`cDNe>1oq&X}!1Z&^a!e%`IY63(4w(s((eb7M7k>)m!2xAx))VRI8PM(2 zqq63zsu48AI#!V5DEX{PPGtxk*DI;xHo`x^gaHdp>BsP1qBKk<$1{8frYjJYZtHk! zPElYu#Ua6@ZU-RVz}3kxfzYxB1ys}f8JAYL$ymHV`o`-X0icW)m}v%h?c))^2^4cG zt+iaPN7$icF@5{l36<+VB9=$V5)?)alChb#DqX~nK4;2}!crBI2$Q!BvEe&zIjLE{ zqXnwh07r{D)hrB|R@WMcSkNJbkEu=>dn=Gkt=p%Im8w_*p*$I5Z34r-;zoLN26?LgaKHx+lM_u~&H{lk23YJD^<{Q>G z33w~KxpVDuI3D%GD7MmrOqPDkWg&;MkLIhf*v15&&7Mx2ZL?W6|9Hb##j%I97*%IP zQwzZXTiTb}rGDqeyDtVUCC9D1D3Ocg)*P*k^Le5zB2%9mWj zd5jNr4nUP2m(qy(Km0o0NfQy1s3h`&u(hO~Yf~5jDz!0{f+!ahj~Zeenr`MxviDQR z(S!1+N_niuk$s#a6_L!(+z}qt?qI_Ch_njCo7&e6$xCe6h)FY3sh7?G zE*@sBzK9%@Wyo@3ofZ#OQnW8x1V-o> z1mk|w8%8$WufBT~u3ouXtsJ#(I$D3RS-i6oYsp#EF#YZ-7MW(F!un8=pEUH|qDrYw ztYWYo)*0Q7Ar&*eOBoJHQyRyg6X+1)_{ntFYP1?v*5g9HXvs!NwLd1Li3k7eIG!2| z(!{h4Gp)`m9JdPTq3iAG)ADSsQw?XK+u6)vaaMOfi`|b#>d=}C)^G)@w&en2J|uDk z3qq6Jj{#h+P1dVMI}(Y)s!=kmS7jNrYP#EHJklV8fV}4_4Do@Eud+s(@MYYdfyl(> z3muv%`tselRRY@DYk*hrckJ)GDL+zViJkSn2pNcsWOn2`C>zjFuB;xAZ@Gn3ac1o8 z5GV@Z5Qa~kUbB|8GidFETY&7{RObw>r>uL0!zs#>K^HZ>Fr736JE(gCsdXd_X=2o5 z=5am?_}A~L#SP$dJ}d#Lm`W{gq)x#evBqu{DAlAtuYgm>n}5W?}|4yeLp3LbNoP}d?w zPPQKtJj0x`0b~0_Cz7^iP!rdvlOXqtkq>FtNcj|f@z`m?<=#xF%J2<>x=uRuVLE!s zlJBLr_tkZYdQo|6yx`~wKJmgZo8mOTC%?4|(^yc@PtoHwrWT%+9YRa9s#`Q(aFIKROnvqSG4?yuiOZEhYjIcowS_o8Es@qeTwEGjw0es zdq|duR-+#pKL%8>p+SPBsyLT6nv)d{PZjb;Si6EW+@qjR4@cNO#$|yey)oray8-w1 z=$N(x{;zsZljfidJoDPXGv16+Z`wKEE*bQz(dTH*PmQ8bEwI|s1e+*sLCb;ZkDHYj zGe9EuTEV1hU=Odm=3fZ@y=fSiQNM*WG=qB>V72xnKG@_`RZ~c((G$A)SjXIZsMPnJ z7yDR2pYw$33rRJ%)GDDNkZkUiKAQmIEu*EWgJ}Fll-vzHGn$L0%kZW>kyO{%frfoN zhv*J6kOKq(t->kUU4@Lbu|k;G@5qZY%63OXPu;7>N~qvvI7e6I8NyeN&CFxEDA!6o zIT>N);jjjs0oZsUseXhJ*W86FwMn*$xI0|0B$+|i~t zF&ec@y!KU!2-!1Llitnv$R4Ovd~w+{s_6ViMGl#Ac&S%(nF+E%VrL1OQ_Ew(3I|a{a7yzX32aA_ ztz1)0DnSaw>`9rNI;1{9UrlMe!iBq zo5Ue$Z@b<~6V?*hJwka(#C<9t0k}^rA5pSV6eQo#O!5641smgL4ePSE{4qw{@4980 zvt%dmVvJ{ati2}T8ZS6cA%g30iL^l3PAyaPOtGY@>LsF#6)2rd z3=+VR5Hyw^rQ(#ydzG9Fr*6Z;0{j-^b-IS(>Y`EwB27XpB*Krt@4H{3C&&av(%h$X zUeQSU&$suXGthDsQ23pk556aY8eWga_PVz!tB26~5j4}Od3G%CQ71YpROMXIm5*6Z8quucnv zX>|)h7h)jN3i%18VDqr;SXl!9M1}~9NmZ3pte-RCC@pfQt=u;vpG`UabmNC5 zK{y;%b$zUh#L30f$Hc6ykleH?RMwfo=}1DsIEISDkdTHB^ni~GGtWx7`M3ywGrgOl ztc6rL0{g=AindA6aHHKSO_9`?X13Q7r8gW;6Ut~JJjr+DadEcQxJC7N`*s>hkdO8@LI zqmrITwo(aE-b|wBs4@CvA-8?H#2qIg6K9frgic$pXHxu_4y_tXf0mI;0@Zj7UPYbC z1b?r0(r*WSQ$C;iy!zsNtvx~R*QK^kj=)mRU`b#sW9gBF^-_; zM7i-4-JoykbV%hScXY3#L`$iO{_0I`h#2%pjRfy5NdF^Te%zn`&=9$1oUgDOX#+YU8& zVNx}F9Z!^W9K8pRT?>5t5;%X!9!E;0hn$Z&DnCWDJ9wQHh3;WBdhDgv8Q}e_))K~f zb{uSCOwGPb%wxgA#Uv;iyvhcDkq}fIc#C>?U9IBEp3V2s)rhe6rzxy;Eqmx|L?+QR z@oR#?4BG!PN_{p=a~czGydyeyWNNE;v7e`*$-lJPf!L%f#wG!42X`Bn6Z=R~??-pm z!zCp9epTLrc#}-L%Oxf1s9^Ovrg}&=UT&Fps5=!SM7(|EIEz9f>Zuls>K6KEh#^w9 zZu}d5M{g)I4}1Nuqz=^w6rTrfsTopWnIIPQ^QB;DiW>sH<@S~^oO1;%erx@Y>AZ5ZpUnWFTUQ6$~e>Hi27gApNDIC+cmx!*Sxue9D5c z0v?j6#keA&VmjkIrqOXE+61Y*0p`V0uqJbVx6^5kLAJ)2As2b8yHUf5RL=wY;bpkq z8Kh=|`fcVto5Yh$jAHX_zSl}B=T`?cpfP^@7$x;tnq3|ufjK^`WAB#?( zRhem_aqbiinWjQDh!yG@_e>yoCL00JN|?HUKlv2tA)idoXQ`y?@@MGp(0t_S%)iGv4U)m@o2Q=8bHJh7XCX^J0ivj}FoB z#MP$y z6rwRDwMS=4nqED~|0}nX`q5LsD9u{USFqv14Nc+)wCg_fsgr%lvB) z!Cp&prLQ%xQN8UDguN|rEiAEJZ%!(xP;wgO|K zJFI)Xxf#D(O2@)I14uP`C-nJ#I>g_3QO$UHIe3#)3nMw?7(4QgFs|`uj4--p#K<%} zfKFp8Y9jTg5J#8j_h9-T5jU3%k-wmXo9FC*{`w~*rDI_lkb6RU>DbOBJz!5AZk77c zoMdW%Y&4@hll_L!Ud&02Gyt>}jqad{d322KsXlW%!+HtAZ3Ep1e(D#5-AQ6tGU@w& z4VQ92?qLxYHe|z-lWbRep@5a5IjD_AL~U}Ww5{*E=0d~d|Ah>Yp3Cs7E~X&1iA4Nm z;?);x`u{UX|1*ean4JGZu+cN2|0$IGzlbXvwT(mBGQClM4}12`?%&0x>AsWk^t0;X zt0Z5gX-wOlQ+`lTwm>ExFH<)hlU?R6hKB!rOkQm0|DV|#O=|w{VfxHj8OHn#r??&% z9FXNXawFn8$w64cm_l#*1)pooD5K^GLwBM>U3^`(V_p36c)x>PypO-z(az(%l6*RJ zbs$p;M^zh3A^QWQPExgSVsQ+G{%$IxK>qDkqy1ggC^LDk+pbFaGo+vRs=uf_e+LA9 z)~)fa_5Pk}b$m~KHji#9SbGB=EqqNZsD@MH7f{qD)dlyoM%671q8;3_yt1@Y!b4Iw z(?5XSIwufqWlO!9f%W2Rn6mR8mZKWLpWMK0!fQ~iQjstPZ!?;@W^y%2+jTRHZYn(fXDES%D;QoSl9L z4W%=xEA%te4uu-XnD?lq4+#7PHQ_4#JIKNCl(wKW<*orPA6c3{y}amHPNg0?_{eL61G1;j617_RD+<3kwW3st?u24d zcJZe{ui+{D6ien7uLPxn)ckb|RG#&y$1V(qgdcK#(H-YzT7;J|ra5KGAIaKt?x)fFjzQsoqBNswbv~xu+_t zJgxhaKu58hzoizCKZBLqkK>NVCd+r~lPV)ni=(+5FXz}XGyhG9qdqnC3-*@(in&C$ zsjj@hTt1%3^V2v*;VQ$?=2DzK-rO!UVpTNJk9@gcEqUqvRZ5(5`xsY{DDA73tcK+I zvHSAulSK|bLGt{^anyQV>JXpiV5lF(E_Fsu7w6JktqAr3zNq^!_Th8-w53u9**RS-@b=8WWR|RBXdJau9 zAvl~_tj=zFwp(S0z13}ZeCYHYNx;BQ^16PkJ}$LOu}n;$h%dE0HBoT3R42gL)etH$ z%a1)%D-$9ued=*%y52O|E_L@d5e%|qR&NF}SinQQ-VI&YlGFgxrcHPP?VPE=h?YaA zEy(>{e*~~6qWx_Qmu0Tfl`@&arJ`MO;+@|W%lw8ZN2gQDOfeNr)$aE*hHjLA8Y?Gq z(~g~y{~cw7W}s+N{ke3b>!M7IU%Ew73rWa5{YWbYYRX6q@s!0nV!`TWbG*P;FC&LD zr_kS+DE83k>NAk?r^d$+GtO%kodG^9>wp$yvD#7@$gY>=QMfqauAbsCobDCb_nUTd znnRgHTP4Jd`O!MDdl=F)NKUCgit$Yf;~SQ<01+yJV`g=}gqLHcu~dYq){$5nGRF7n z?0Jrm19HW=f!H0G=IBqw;3tDaH0eI<;M`!*ouQ|IA5p~6Ad{_&27?e1T6tG}j>f(u z@<|t$OqCRgD1#^U(ldFSMrCJLB&2MGb9u~lvcR;RPevuU_Gf2NF&Z2w65R%GmUBmJ z(L&B?yH~&Qq8=?390TBedISQRcs5R-J2bE0I62bahSeu91G%7`*i3AwQ0z}so?_xN zRuoUdU83&7$Wgc1DRte97kp`MM=CP-XR=93Fe5CpS)&MxXh^e%EW$UfO78)6oo;!s z#JeSau|%k(T%GP9;95jCqdTp!ZonwM*yN>4H=QZB2tS?Dhb}RqKqb?fLhF-TkFLn* zwjW)H5!>6!4Vn}ES+l3bPwX!z#?8_|02m*Kx-s*(Z$lZ#V%X>;nU=r^vG#p4~PH47}$)tG+}5 zDKiIG1Cv}OTnyqFa{!Vgg(v`pyL;1MlX+~^bU7+*cjv$+4zZ@9;gQ;vwE-1!t)wEr zG1F1=@Lv#K^wC98J)!qg@mqM@ycA3|_*9M$X@6SMak)L;oPb95Y1fIqNldIrSsah` z9Vq*xsS~;3M@JLT1<28RvGnAZf1xiYTd%lEJi1`;dL{$P7+MH(db;`!XJ7-%vYV* z$zrKU@wvSy%V!3YL4r+;TKKu*(fh6w7YzmSIMoT>;u&OZ?$uXV7z%aO|FV?d-$td> zWHW;l`w9(H!50Vr>&XG)^A&Wv8tO1;aV}Kmte$p12A9F9NcFlgFB{5EG3Z)+qMNG1 zsDYNu64FIDI^dDRd-7-}(#*dgDYi#e zanzyY;*s9VGNeMKEi zS2Zu(b&R6~9j2$$gT-{&|N1nkXC zn<1-_OmmGs-@be>f87#UJB=!pB+artUQ~SW_BINiydU|g!}~U5RBGLX%+RBA3uVNx?ZvXdOVp{xAf6!LYnqi5F-BF_&zaa#4Kp+YNt;#TjwiCZQlA zpNwm96mPDF=b+cLT_NFT%>PmOFIvqc#ayiED6dZC-YQ*&Kx=>k&4@3nib{h=%8gN* zvcN9-0GvqNLDI@RN?uZwc~to`IveD5Ui3RIz72QTSH+}yA!VinpqYs!I4({&pN5@5 zPihTdA2a;hX~L;A`L#~9sRky-US8raxARCn0|F=&Hl;cN@GX#Y{SY$Rp|A?s?3_+O z{}9+7PaIT$9QFZdCjR)t1?y+wzDaFicnIj!Y07q{Ps&-YHE8x55SIAtG;*ddb0V3r zWBKSi({p*Mj%ZH=$I=X2S9hZFVn+xqX=XHJJOvsQAV-f7jjrq18{y7^t2xkKLNX>$ zx*{V>0HU8U9F|rZ0qEy${l)9|kEM@0BCKn4F;m5`4KUPoI4bPR2R>%t2rO}61H|y_ z4kmj-?SZi@Q!Lnb$nOV{q7&aINCL(t)L&a;pKhnMM%;dixD6z1Pf!$GS7c~3!87(t z+bzt*bDC0M5U7i9CQ}^w(dcXlp_pfJz?P=qLRvxB{sCcF)rSu$ z5KPOtKRCxRj_Vm#K7%EFqW{8;pzbNvMABsI%Lk4f9DViH4oOlz#^{qDy}O|OjK<4J zymn@xqe*&x*9rS(vb{Pck$bH3Dj|pffiUD2^`@`KmN16I3P9tT>Kzn%>Zj)>CVWL* zy=~_wynLj0LGfUNF`YI{ZwQ7_Jw-yHf0_NSG!=pQ?T@E0{B2_6%a>XBzu6g3qxKP3 zl2&W)<}W6i!p5bMOV)e%C)WTKY+{#DTvW? zu#d)=)OSSWCW3xrZSFf=5a!YM6i@}sfost37Z_v)F*1g3vK6oq6aSD6ptb_A_)e&v z2n1_$j^fE@46z0Xe`18CrA6NmiiyOg64;{tWcE;hBphG&aYY&-h%7(24LpO0Ow;qu z7lhZJ_`~0z$IrCQsslo#ukdI?KXM2cDh~(k22kges*i~6i1D;nPyHwy(j9N;u?P;6 zDT@y^{ojE|Xu8HHrEU#C702lHX$^M^wy_>e#Oc5-=`FT>@@oC*9t z>G0hB)dElnJw-BU)L)1%fW` z7_`0A*_QnS(*AcUHS7Yy>wuqtzd(S6%Myoyv<&>9Qpz96=3#G`9Ju+^f}Ob^T(&$6VCEV8nvEZNy^ethJEwJ@ zFsxgZu7LwxT)G2ZzXi7IP;E<7%}v}1uvY~w8E)SExnTZWG=DDXEz&E6ZV?sW|0z*} z-arILs7Hf8%K5|0apt6i@X)w|JYFDh(Adk3NF4LH2ESqpXv?g}!DejdTSla2;;xAKCRqgQ^XFbeTRuozH*Fa-X5be_zw z@ZZ_SE&e2^!{5a=?>1F@R(O-kE4+c@RcY!0t9OI;LrCa}g>`U!)v9{VO9vJ$P_05p zW`O@-+8_8Aj~C@&z~j!Lo`_40=SG`O1$I}fQLP4*v;n8~$VcR+O#p0Q$KQ1I8-xm| z%jkRR7}P=752j@x@JpBh%^8z(SUvLtD+7*c6`e%&+B)%}oKqSPbxb@^s7Q-ERhlP6 zQELDw7-^4p3sj@h#5^PAyGDz)sCh%g3z=pl9m0y^N*hFOKy`(4df?7VPi>IaAndh| z10Q5gif8$6WhA`C{e0>4#2JH8Kop0jd9aty99tjQ>P4g#zNk@zb(a7OqA-(LYT%Bs z)n?jJi}Xs*Pn6M^98wW0b!Du<(VO8k^m{PZA@zdCL87beiwhdz|?xQToX;WvDFb=sO5*6MvQ@etBh z2GZl9{Kb^#w1069R$zqhOm*$MoqmSr^&#t0j6TSx-}tS4?X zr7SSC=Sab%Zyuf=7XuZvjcC^F-c_z?-azl^wyi%>pM=wp1OfiL&y%674Djy@Y!!ac zCe+O_Kp!hjA}tsDd)vTF9<$hs!}fZN!$Ij7d5DW`BstFz)m0&qP}d{{sYi#OfztMc zzk=oqe0Rc}!@Ar}ruzZGlIwurPbGgK@G3MA{^yPW@C>AUo5-o)FI1>N^xiwnF4XpIoi-Yz z3ezFJ9MG|A?=k-Xl{bmHshu}tgh6K@j0OLeFCJ>)TM|BLy@DxU;;_ z-T`qe+g#!ow^zLEkjsO<8ic^mL#O$Of1TH_%j&G{cV6wEjS$$NYM=IksAKJ0LSU_5>vK$+Rn2h88K}x$DfT(k7bSfjdTtp8s?Y*$&_OiO zLk;AKcnK)#pa9fqOEP`Bu;@Wu0E}fvGy%XJhkb0RLlD}}4pG;GT0~T*pasRy|_SB>nXy6kMx1cnHmW*CR|Fwd^PY-s9Hi>Tm3l4qBUteuHQ}@OHw`ib9H(TQ2We zSf`f}So8tER6G^+ddLqnudQJ0dS@Aq*}6!WL447Y#Gu``7)SNI);X7Zsi(;zE06gR z6Tq^fEI7f7J6<>wpnj+b5w5?7%-%Js7j6QQI#!5}%~I4h)aGj*>Xj zW4yk|ib37nK7UX$rCijzBo6*#4*!GVz&{W%H2t7m()={uNLeKf;E1zF z)$!&#)lcB?!$E4`7M9^`^5H<)^|UP$ex;KGEX6*bX;7gy8O!@1r-yeCzo3p-shzC@ z6{-)ENcV%*A>4X{MK1YUZ(HP^C8UxW6SQGwz?B2qZv}1` z78++~2{mnck}sABo{diLTv6CETZ4t4vl;_y)8iW&(ES<#!=5Yj>cmhZ+LKmztJfzY zSCct*F41attZ1gyi($RYruI90-PHSs4sbecyrRN8P`SacopR|wIJH9~n^6ZKoA)(N zgyzg6^)QD{#H}(*F^J)V{>_>ZhU$$bGr@}JN--F7*Jj!^HUFndqrcU$@Q~+FuUWG& z3JcU1h}wX89ZgL89a&c+R1_7lO88|XuG6UqHH#{|XqOch-+Z6&m9L~FI^T%ugfQRS zpJ3yY4tt)CzWE*==gaxyvwV(AawE5A>N?SCv;xUoE^xX57Q$J%gLTYt(xSY&a@3`4 z*8n#^LBoXjE)V$^e|H?|z7KfBZ)C9)=gq)HAcS3Eg$%CHZTxbm=p`vXXl6o^&mh5H zO|H!bVw9A#!e#5)R^~BR*=ETHJyHp6+Kuq8Ub804HxL2mkoOk^F12!YZxPUztEoyYk_jR?)RA7_;HpLm` zFzX-Rl+J?xDARS;s1b+9QaY7?k(&tHiNI=m_dD~WF=5vTgF@LsA}m_F!_Mi9<(AM0 zs?r{_>Bw9k$;4D~A{rC!osN3J+tlrJxuaVIM=w)-2#iv(5o#KEZe&@uMUsT&O}xo{ zyCOzUNQ+|mQ8{rAzcVxrUw*8@nCE{M7>$(-(d9x~mXMHPZHHAIRB_`(D>Na%?GiW} z>d<8_ivHVCx=X9%GwF9wRge)?OQ*#bfWas!eNKNdwCoy{B=l)+T$TT%J+QLrTWT3b ztiH5X1xI=NbNb{_a%N^aB&9Ylfd8;lyQ;=&cVuYaX2tV!>rSl)zPzzWw%GlNE?Lr~ zwV7F`3t5QRz0$KOM=L~larnd?t&kprbE(j=mt2YJhUMFTpStGcANQ^lAOb|mw zh{T8;`I#|uP}#mBEhuG)?->v5$@xNBWCaIF#H4sui{VF_um7s)E5@Y+kNWm9^Z%Bx zfN#EOfAdf9Tf%a_84Z9h_}%?dPM|^ZyrKn;YpH0p$~Nk%*kmSUf@JNQ(oY$E{5Nya zeADVLS)1kGXV8g6Oc1#h#A_@TApv1&tJ$dFQ z@iy@%VRq_Bp3EmbalWFd74Y#OyA_$+VvwW13)p^lXR46NRClM!naojuAFpS(@w*@V zPh}sTWsWjaK_*jxKlArF>N}uiA@;Cyz+aZ|pE`X~I>s06 z;4-NfgnjXfz=5C!q{7X>UW=;%Ev4Mg(l#C88-hsY2-@eDgDUSLeWzwabEf^v(^u4g zFm;~U1(Ydeb}~79e4a-jl;Lr3mo>Y6N(gaY6rkdBo*965H8`Z%;DZuA$(-}jaAoKG z;r>(=Fs(=P-G%?;UwOMjdU6B{fsU@R_hN=YHOS%|P9CvAek-HkcZmzancw33%=sgJ zS-7D`1N{g`ImOF>!bq3+Ed z_OXKF!4irzQydNf`X1Ic*G>VwAztd6H8c&43)i8Y{clSY6Y*~b$P3*5e!gL#?>4*1Up-qJ1UqL?W> z@|HFkGaK|zwZK#ZHl|4`lliPA_+IB%nv^rt`U$yC6^!wKxr;|7{i&0u^x^X+|X? z$@L=|_P{(jFDtyklLKR}XX#im)#5f~!ZkPrFo6eYv=?tw%6)P znOvRU3~fUs`ur|Cv{8p%?{6Uj939{!spWp4{tT9bk~G<;3mKkY?BQx3vXPeU+`iKi z{=PsA&M*)f{4H*9ex5IzBBIARkdl);(w0oAnL}t2dCipM)a??j#ElPD5ySEYb(Avs z5?wts>N8zt^F;ju{`8Wtuc;9hF#ZaNXfB6)lZP{8Zm0YS9_}I&x4e6Y6z{VZHO-$K zQp=2@nZaYOpMBv0)g4;l>tZQ8o0Ur%pnb*Ufyw7>7CYnv6UcR*XRczqm2J~!YfSu( zmg!RNsY~^VN#bixI-%RO84UDe_<6FBg9`+Dr=|3%gT0V{&El{89^bRANN4ti+tBYy zc&8I$mg&?TwF2`h-ww{{f?SguwLn`-XTD7<&oSReOYb0b@{iej>by*yR(>$xi13$j zcI!Zy3UJpKa2I~S!N!hXkt_tShQQ#2?+qP9+Jr+a5fTuuR?KlL{P0dVA!@T2@Lg0O z!bxB81(n5=xum{)U`kt8TYDa`f_sDIM+3X7QNkyjsk4k0{z^z2E#qP z=T3JSJ?JsgF1YUSEuNhq_csokXDr6YygRrF!7LxaW3~PJM6DZi>%Q3dvYLI!>*102 z$=_$`tMfX6_K+D(`_U_JCGJ06(fJd@aLmyyx+ABF&sqT|OH*TNPK;>D-1fVK4yQSx zQ~2N4Kv9ffHOIYUkJNjnLKpB6-I?=zv+-qte-`?LALk2!>;aC;uaTY4HyP&7d9x!G z+K@S-Y3o@bE$YrXHVjZd7riz*Jm)T53H>bJE2S3SB9nocREf@hmSD7h7?~_!JYU^3 z!{9LBVG5ajBt_drZr>-6oUZWOSRb>h4;njTULVnVafbQV>?`qx7gIqn3q%<~x{znu zmB-chv*y_B!r12**ruLgCRPK2nD^2X@mWXBEo71US!NH3_BpRIr+8n1d_y~dv_3$5 zxywFeSLim`U(IX2XfB&s%G=*|wun#5IvxJlB1~>&4VsZaRBR(kZwoc0b5_a8-T7wA?yqCBQ|cg zhilu;2+hnJCJFKN#6Xr<12|*1`Q**YuV$Cy%pd=M`1V>`J>X(yW5q z00fUb@gc=mO};aRYMm2fo4XUf?2?8&mFob9Dy|1Iu1Ey%QRyB@dT^f;aKGm1oVD`S z8AT>Px7$Wqw%g?W`;k*%FSuZTDiGhs`VD6F|6I}zwQ=hCUO=a0)IO0g z?k8jLk}mJl%#JXM-J%$E%h1)#uIG>J^9jm!jb>%sGGiQquk4$NhTm12Oe z85ExLx2#~eAeMhG1OJ7tnTx5C%B&C^9vd3I`$|Z8G)IX4YOxHv{TR0R;1Ho^Cp)d!?c+C3(TKUn9v4YqOm4VH|5 zWcQ^BP_J3lL^?UtbIY8UOi%04o=)_9GnHN4EHBtSt4*L#ZlI>?e5^EDfYdXdE& zO%dc*kRFQDLTgO*@yk}2y%z7S2;E;diJBop^oMo>2Nb!)Y@2eM_uZU|{q<_!o z3V*;c3q`ugn|w$?u%p}V6sOkaXB}kqgFLg9{N)dn1%PMR&+LG<3}DsG_H+mE^OmH8 zuIizM8eO;$0EO+&4^&jj>Pjfk8C*eM5X6f5J zPPVw{E~jKI$JxRy2Yw}idMUTWl=Bf8nP8idghkJJRtC?q9)lSy*}c+y0VlT}%<)Jo zEF;Zs5z*%9O>U`YC|j@Po$H5| zRILS8YrqG#)<7scOAB<_w6ZKO0s3W{Om5+FA%OEQxa*FPlH@HM-|Z0bJL~boFwdaN z@@XW2vx7(y6lpee5uQIfJ%l7QEYc(%h;LeCi%VG~FKAR{#kp4Fve4Qi5h90Tc0g+L zqC2-IqV~tH&chcb4YbE|bmg|Qi_y)YgKtM^emaoaA z1yCBtK)aj|?m?U?qoQDahoxOQ(vx&Y?&Fg)!v!uf_ueI7A7t#y=NVBmxLF{07n?vL&QES}ymx}W6ZkIVBuE}-tE^aB z!Mi2jBjsC>WhESO0EP~Cy5Y#>P1mCVC|HU*yI@h3*H^s2a#H3mGT7%k{0EEv$OUg_6!xH;vcBce?K~T_3`&+3d1VW{ zS|$$6G`;4S7bZlRW7$oZ4`GrRh(`us%0zn?7^D@@$qW|qJpTX>I!l`QsR7LXg;{y| z71CWmtdJt`%q_3wV!grXS@w)kX>KXeBtHEEw7JeG@#8QwDnl zC=pF91Gp*dV~uFjA=#x~m{@|w6D5>Ak~#81!BBOesA+MZEEx~k`)#|&TT<|J@YK-Q67AoONwo4kNn_z=Q)L^2xoru>cIvRmCYp9As3X*eXS zm*cx0bVwQJg~qieF);Jlg)Dm#;88QZV#^k?9B|cZpwDLY*(_<;A*N^AiQoa>p4aUN zExkZ7?sA9LcgcjG{2o}nys%|YqC@2S1Xp-6e}J>hEVw{LTDw?a^Gf8^IWk~(Sq0it zG}W>Yh~mKdwt;zo5_B1n>M--D_r6LLiq!oM0-P)D)&4HS0lUbPJ#ir`-Xce6);-M7 z-AryT0h#&;gtyF9_p;q0lQqPhJo*#CuiT4}#!2RrwK#Vd{2*1jVw2&MJ%TrF-k!M> zX7~6&?3yVDwZ5}O_XX<~xC`v2fY5uSH(c67`5#5ipnF-;!WsIF;q0$Su>_(%{^({E zqQW9)bMwT%mR`2yA!+1xm5@XpS;SI_W;)9Tefm{-%_`k#;Wbzw_TloC1%Vgx)v3rY zR0IY)eddFIFdJGUJs3l^4;?C(HYBA;!O@n&&v;_hVDH9U`xV6XJ_^CP-2(1@BTLeG zsS6Gsw#o;;xFDJ(jMHphE{I#^cb0IbEM^Ari7b@x>tk_Jd}Tjq zbJi(0roRTr0q;A^C2|g+@IPB*ns-a+aC*NJX;MW6I}sq^SRP2SeWA;u*v$(6jzR$I zRdyK$=d*Yow%4uy0hNoXRW*Bf(2}n))VM8P-to|?;qHJwY*R0DC!)e z=GW7f?+@~efMvOfdQB&scG zPJ4XLenzi5N})!rQN{p{?GhKd2GhC@SV2UJ=j&Hz)FZ?K(kudu_{|b8carv{&_86q z)&&PZr!@L1o08<3mJ3plh}BWc#8c*afvD?XKek?@>bL@NkwW5@3sG~-fH3@My`ar8 zXn;O#aBtBF(ewG;9{^H z&1%KA7~0CD13E0uI%HyHn-0bqQ?GsZ<=VE8R??S&LAJl8HUW8$gEiK`G`5+&Ko5^Q zzG@ozs5X<85vAO1ffa&?@I;Qm6Ck+X$pMyBf-NEaWDf!8HwqU0t~&HPFE{ypb`3Ao z;ze^;UA<%uE0RKm#4cw_L^1Cj7`B8J$aY1fLoGzGxV2uidOSs95uA0&>W=M#gUPHq z)k<4%Jy}qyN3mVV{R0V`2u?-1+rv@4)grTg(gdv5V{l(u{>8hG=nEfBW;XY4mdk z767%MUL0JsWe&hzX~@#;mIbhtJ$5Ib-M3~t&m8aqf#Q6gKV$t?g_Y0jNK20Cc;E$U zM@pN`^BIWBg68wYEPaCmS;)lH%PsE@gV7HEhyC=xMi2%MWc{AY&NEe8U`^0Nw!as* ztK60uv!u@X8+D zWCYFXDr;zOcd*Z1V5tv@n?sQ@*hTaUGV2FSPH~eb4@hPFNHe||;HDRL?)Gh);1VhN zYM~aH^Lyf9Ktw%5ED{lggAVET*+hO{Vj7BU|9npI_yFFeEz7{X|3DVJi+0KQ_GVZE zwh(PsMz6{HeQWKdHeV3Sq~Sg)@VaoCa!V|bghhnBM~-~taGA>u` zJpGsGy!?G!+NqLV$ZtB}z_M39J4(R^cdw<{o6p&*y)OC20y|O2&E|3|z}9RZ5f2k) zdpm3-Fydx%p;ygP?--uydEa~z>=6@}k!NDE5QeIP)~X--G~#Pf{Iy|g zK{=w&F+kv8ZpYIHF{RMMb+iK@3@9+<3#g>bAF^Wy@w~;y{U|=($ckR@QLy*AAJG7! z)*L&q{4!3uTXZuAKgvw&y97;+>e>GxH!W_aQZMzp zqX=DE=0WC;c;sjLw=&??uN2ErL^$Nh3pJN%@ws>uuNAW6R&ggK__X>=R0p|Lf|P`h z{@5Yo`c%IBvUS#>AJ{U%@dVf%#E05^b_L1uK3ceUisTt3Vl6x8tdVBtF54q=TAC*h zy5~TykOe&U5Hf&hwyImeyxQz>B+ZPH0Wp+x44r_s3E0*Palx`3V2E|w?NR(w#muLI zHd`?Uc<@1C04nKgq?uK;mi&P3)TaZC7$?x!$%J}inC<5q1_>O;K}n2!GXhG%8x~gA!TCl!WZ0H!Q5eR z!QCEN{P{9FOpuo;5^K6nj`V52>hZ~c-eCg+u5LvFf#@*z*dXA>+i+~mb2hXwcb6EB z+6#FnoVMwXyJDqn`Gp+O>hlZ$KI?Y@>(|JFkuNV5^8->$R{NxAIPDVI=xW{l0W*eW zwl$EC%GTJI?Q&LycCwuG`f+$S}Z-_Q5n9CQv5KdX8Di<9d z#93`!+$Sqtk^P==3O!3H4I(yaNy#RAl$+dDTZkjhZLw1lUCRgT-g3a*9%xNuPuP3n zmXG;#?`Oybc8xUnSw`HkPISk zZi)017Pr}UwQYtb@n+p={DY2JL1sgX%deAFyx5?AIMk)UKFfDI>=jq!sC9LWcw*gM zWv&Y5l}8NUf_LVL7JA?1QJ{I1pGf@x+#9lJ2kBsjK+H zE;XH|K)`>)5^ znSnlUGY|T5tP~^Hoh+VH*lRYzu~Q+rv5Nt85+PL~s61q6#Z;FQ%?Pe!zQ|BfW@pUN zu$P(RqqoH5mXdj_uvzY0a%}K_NfIZ|woH>9V;%_MNSe!&cVBScK2`JWWn0->`~|F; zHDhuDxeqcbCa)^vLYjKtISXc7vks@Muj5~kkh{LJ* zOIMdBO2G-2(4fE@pBO3v6u@d~s%L@*jUv-hS>5MNi z-<>fc{cNu5h~IrJX_pXXjNnZ)C~rnqW}tm^iJ9jY1L`u@4@{3**k`#Oyug%rPyQ7Z zoPjujzfdfC?%A4w{(4TPpD`*2AO^MuA~>;UM{prw9quog9e6C`3g`L$oGYmKB;>D7 zvGFDT2mQ5n#Gl$iQ-~+wOJbp9+(mlX#ggq~>2hN1WWag`bnFZc2D^#^1&2T=#nX+V z0z~aWu|Mm1F~C#Y`DET{s1oWZ8%ZZC`4Rxj17)&@k#B^HhW)u&&kLua9R<4B?GN?{ zpt!;&`5JG#W_|YPKj_8X{573sb;vGiWfl({j(A^%!-{GXY|stzAepsc1_uT`?6WRA z4W|g?v>Wz+CyjzK?g!4bj7d=N?qK8e;)%W}dX_w2Hsbt`6XW~54}7bMtm8L@o)PZn zS-1*MBz%=(s>ys*FyqW;m-u_-D$nGQupw|CvHzPE>Xmmm#7?he*GczXdI_SCfm|^H znYlw{t_{xS4;d8?`4H_Qnk@3Or9+OIBdWK|&sGi@jY)c6<{(;vaM z<7@bEFcoGq#j`elIC(fVM`l6Z^w~qDwgfk*y|!%@Jp~Vf9~fbEY(HEllPqy$`9097 z*-oMbH3E={3>mcZv*hj9RO0}J0h+QW6yui7oP#Vg*LO#bPQsjp<*eu?7F593!D^sJ zW!G-9t|4^g!a-7iC$S?;OH|SqTH*i5z}9X}}X5xSLwS3?_VmfzVLA zxeeg1uCIgkxXp}4hnce;hlq$>c^jKotV3j4W3c41{h5PR3fNRhCy&TPn) zwjaLMz(RM?n<3_7``gN?Od4>#0}}Jg%p<3lSZRxvWGaK=Ao?Ylp3oPS1Ls;Ad2fsD&|d z0Ue~+y-a-wMomV$b&4VDS}xHXZoEywd*XQ`!+^epyu-@|i`gELV_D_&ew+9a@n-KF z(L(MElA(gOp`e~&l$tr*=gu#4)C-uB!}5#Bu&WYL>fOg(7LAX{^hUxh$(={{B}yFmOi*%&njd@M}Ep7hMSE&5});uWpYgxvz;z$pv807=pwtKi!6~382x#UCw1+R zLi-P~ z1a+J?CtxW)<@F&@aG1{u9Mp{H+S9IwWE>~Ibwv2a9+}kk$Znj`D0Z?)Ni;G84yxk& z^o(`Jw4NLEQQ-M-T=spQ*)Ov7?wKrPeHQFQbJ@vJSVX`r_U8++*)O9OlQ!fizKE4W zhDIJUBAUEadrh$gwz4dB=J_-e8tq9+v|INbn@LVd+__k#>!HH2d4(ni6Y_yPr7I6i zJ!{*_wj}H3u(wm%U4hf`4tYW=ClNZhy@K-!X~~Zr_L(Tf-VBcT&H9m*DTUs2_?ztW zj{OEt3p;|KEDkw1*xs!VFHYpg5vMHcxv#L(mmN;VREoV>IN~=lk%D>iLn1|GBJu_& zvP4wkiKxV4FneV2kLC8BRz?bsenLk&pHYX_Tze-S^76_F;ku`o#cQUNz%*@}t7Tui z6_#O?5(@bT8DBhhxaT7ua(xTEVEkLpMNZF=<@Zk~wLl1TzIbHWxvFg^$Z1L3p;7K* zMfYOa%Bw_1LuTn8Z7#cfhn!TvTHjJ!W`GkYQSF@CsPBOI73BuWn8@)EtTa;r;7qZj zCc1z#xt+Ijj;+gH6hU&g%_&9Y*{vH!UO@BGgUhW{EWm*x6whX%ePY=GFIWshL0V`i zxaV*t1`5>SV>W+i;l;n#$hf1ngW}{hu0tZ#&eanKN0+Fx^@FCb3)Ww{y%qoD-B*DJcCo@(~_H zj$oNpvl6MU$B~aql%@7Y*m`wWZYw7pWKx%pt(JGnWk)1IkpaVFqFVPCtcE$mCB6o( zfcVHG4$cr4UL%s?v*d9-<4mX`GA``0hUkd9#oH1{mqaF#y*SV3deOpH*d2BLj>*MB zdB`Kq74I1xAgBW;+zXUwiVa`0>k&~^ep}?IAGBR|j;J-=?_y+^<(l1u`c0jx5E{<+`O&zEavDa1Xu<7URmId)9==8|h&dmC69cAJL;*unAj9 z1vF*YotdZwLE0j8CbfkknzXE%SWt<(2@d9uV#BljNHQZbA8{&H>%lQe@V)G#Bf|^R zMG-zaC5KvTbI-C~uSQpPB*F!e!BTEO5_}QK`u3z6WdZN3fauM$!Y^|Xz;V1;FUD6v zsUPRFD%FvGpJ(5W;+iA~%(Ep;=g&KfdV8$pJRmZ9p>=lpSk2l|Y|{9d?JlGrE>cRd zZAuFoWLn^Yb@h5hYVKTd9=Pz!xvM%{3s>!{dE%Ek*{5COic(y%G8?a-vcDfG?#$Fr zVv4Q#U1jL*3Y#LFv6?YVxc{BrYqYp47i?||^yrs^{6R6}jje~ffH$T?Cf#NRlb~7j-{p8 zzw&3aam&XxS4Q;9=3+1{5LiogUYO&}=+x%dqRH0jIFBgOPn<$$Pn0iga3Q|1N;7Q! zhE*O>042r;EFZ_E7tS5r41`Zo$60G8h`(n8i~!zZyLXt04-C1cTdtVvA27Yv)e9UC zBz0$@^mF}~izrFuVu3IL1_&z-x~M9)gbW1C+%el#-8Zx>egzpeOKfAqQ#)4@cOp^; z&mP;W!R{80Ilaib^M(c0V@X|`2fG2$!FHC})^&GpU9J`LGUVE^%u=;>oY2B8`6Cze zE5tN4+v*lWFGk8cQpn7g*yRZSR&HI?;LJ1tsU+94l1jOO+nfv~s;+4t`N9Lq$9Hkd zqduY>?8u7X09}qbtqGz?)jTu&ZD94 za4_>TpfJc_Xm1s(67Bj)L@STTmWMzAxE*mfFdVuib4T-PEzDcqz9$VJd4PDoMu5>=|tFT+rl0m48}c)=tBKrY=Pt(k z^!38}_6av^|Ay5PtW~`~Vsb<*9=XfSWjQnCmX&RsbZ71SG3S;)lB9$rxy@bh!}bL| z?Oc!oGvMSzWmU@Kv?tQih2)4qE~`&-3pv5XamETo%cJE0+3-ez(T6>49xrr;5}Q%$ zWMiD#EAvh(*N0WL&GVRsT7WRI#A{S_kJY``S?Q7CFNCiu5-!pg3qUtC7YaRPqkO~8OJ)!pIQomZnneq3>NWe;hHQb z3+yh_<;nk`Zd;s^=ThU327$Tb^e>UGnhfRSqs$n&GlQRTgZ3PEZugE_+Pk3^5l)jy<+H zw{nl|L93*AIv8APJ} z?9w^Ul@NXR>D-3VE*F3){y3-XyiCYS?vy)xJWpO}^9HKiLTgVa*q>)*QFy>pSH1(v z=bxg1c<0IZb#|PHu&f#V*WRen1%ddTIx8Ey!TaGwUfL)G4~fNZXZDyd@4-wZoTS;lmk!yf{7@QhH^M zN$N|y(i0^bqOvVTVvx6A*ra~_%n(>3Uxn4|`mXuO1#Yg)qoQ^e=HrwXAxn_8X?0cT z>a55hzDiXj;5X2*O{1?|mp1x}=Ln}} zqgBD+PigJa8QDUrqU5}5DkOsNRt^qa5-gHS=v17V0z4P`Pb}|&EI_Hup;PBZLseWM z$A8M6cuwwi?0145=vfHa52`)2dT$a5T$P4etFA7Yb8S0emO@r z0eOk@U$@`B5aTFs>*#5mG$TsN3Sc=#UF}hUG9*$N0ZIsyK`Yr@UguFJx_iJmB4Oen zHz4;iA1v=Blu?`9<#0ok0@$(!p^4|Xwt1w4`#Oc+3f;`duSd3@BwYTSr&!bvl(rRN z@=Qp~3C?eG+83fFT*+NdfE(yAX3y|%%QnsdOg+3p;*cJ$jc(}KAmvxw@WKU z-hz~6TRc;i0p!6LC(p^3VwG8rhQCP}A-)`}o|*6=xLmKeQ<4DAPsuV(1nC?l{QPom z^~B6x;YEoL+1)ui8RIhvnL;WD6FHo9Q{akzzKF@sBiVJe>ORjFS5hSw8wZMM+Esys z#Yv<^^?8fz%yFV%(MP}HdAt_x#{v359O#`KW;Stw&TFi)+WP*AYckxDYe2?naw{q0 z7LR;ODNqI>ty7&lqqmDC=Kmx=tdPAtPv;@4ll&jt@$DhbiQ+OKxiL95=?LY%+g%1b zg{@`IS%S*n<=6tK*V|%shh#NuZ<$twS!QVoiRqbxPF2((_0K);%50YpDDXskQXH*c zXc?|alG+086hs&m)f&oF{HaJu!3!*}nJl=A+*!!#ulYGch4Y@IyRZb3 zFM=jKWLX6JXlCVW0o#FmrGfIJpn(D>Pk=IDwb)%r^+$Qy*oaLUeo9am=~$^ci<~=@ zb@mq?c$7rn#VHGpRgbxS106M0G}P`Z7b~s?V*o|$|1Kw)3UZvwZ;jJ0_Yy$HiK{W@ zlhI7IM_$Ovev6Rwt&M}bNZ$-e2nYp^o*C#*1oU!7Ie{uA;Pxm0h?MUtzwO=XWev;+ zM2~jY_gO~YH(3-5OdZL1Miy^L_%Jr)Lehlq&e~_q13w*SqLCqr(+UOd83i7gE$^Q4 zT|$Xx%Fhhn7lvK;l7grCQh6X;KBCk?nR@#|ojR)YM^!IpEwZ<&E{<$w`%a-R`=yp9 z(K5v$m%=yRT^L5UaiL~X;M8@JbT{0$?Z`}?c31P}CJgM%UHt=-x=Z)XVfCOKWt~%( zihuCrC5!UWU4^3&NoB^gWPsF6s;O~dp>iXuOPWyncx*-`ETP#YaoOapc(ruE46)Vh z1vwLT1D)gh`09`oV%*z(i`Gj%I%Ne3JvuXY=@n-B% zjBX@`mvf*lsdM^|0&6^Snb}jT110{haPn{W-7>|{or?mRyFYCQ>^cl5QJfA|*&5e4 zV?KMM;>A`PuV`AZQ9IOrBGdqQFj8$VpMxPaQxok-N=hnq@e} zVUVd3DcIkhB^&>Y1?ffh6NE<(9b`5qYZe*%IZ@nSJ+idf4^L_#1R8 zgm@#abc1@E0$QNZ4^LPj01y!uEM|CiEe{{~A!lz|uMojG^$kmwMC*8592-2n&vKAn z_lmV*q%AsGB@_HUd-ISE_Us3BP+aB_mQZc6`^f1d23u-&1?2^7a_a+y-jPY|W~icK z2||O4o{19Q@|<1v0I1Bq2J38lkq%cblrMhqHM@GD=D#ah8IR18_Q^5q(EgYfN^X+{ zru(Y-61%#s?%J(sxdl>z9|;6Vt$p>x&4dQua=>w~qTy!J3SiAoFeJ2(6vpo7elWM% ztr-1!SP@0Hr0;sZ;8aZue51XVZFC^I<6mAU*)u-Y%*o)w#L>Ju3~wz z#q)ql(cMCxbI`KIeVx^FD;!3-Oo@e_xu1Iu=vw0& zxJVAQE9y|Yj@bC6Dr}k4-=G$vu7t>yGc_7ija}uVzowsoDt4WpO`Zu+hKs(JofR5! zu1cJhnkZ_~rkyL-irv~hKYBQ4qC^UVCO>NlgO`V!@1o7mI_E~=!|ukrKg1CkJ+ONG zXz9#UjXPWBi9DQ|-1CRDPLrahw&dk@T)w~;Njwq{|b41s( z-Fq{+`4czqTFvt$hCXBqE9b0i!se?Q97W0PeV*$|G9EN2-$g)25UauC}HjF6KDl^~q z$ew!*l{`mt;Nk?x`qFK7g+Aot3OQX1G(#v=Sg>a|PbhvOd0hEC>~j>rtbHE$&sh$= zu%BVR?))P2FZcZBfv&F0F8MZ|QIeVqtB|?lf?;3d_t{6jnO|^v`LjE+ol`!O0CptveO?&czE^G@LB6_sXFnR4}8nTaNDU zowM%uoTu3p2wX^Hhj6O!6l0DMRwP@)V}a;9TwtO8f=x1`k1$jvw^St$JWy$VsIGN;N2?kSI14SIVq%%}fnxOLo$!UGEw?R2)vj1LD`W_7D&1Iw<1K&lv^BihM(<+KN zfs-4~JNxr`!XBpN{VE=&b{C>4XOqJ7NrD5RfUtLE7mjq_ty5*%!qbT)l%VAH${~WA zbk8EiHw(?6am_a5Dqn+J9PvWjizuCpt41%kM8Z{p%l`44>vVW)_L@P8L()SWGcca4 zI#@rCl$4~@hJXk+oO$9xGdDMj7amA29%_LDa&R&4d&%)$LjSDPu0OU-&LXBLFNYjt zN|Rv42uJ!%Di=1aT+4nFIbHJ=c9Z4ag+t2s65L(JX3H*xyH}=o?pa`waYLddbXU0n zcg`&uc+Ar#+le?j%x8tBxHO4Ef1WB4qEq6et`ID6We6yfm!crS1KoosYgwHV>nt#V z;_VAcIys=EJEiA1tFyMF%6fw`MALWRvD-Ou0Kek=hX~Xc!lR=>nS+RM7TpSEK9yt7 z%pe6rJt9SV$l{#{rMrn_9g|}?+~AxY@S(zax-O%)573=io4G8_Q*6NT(uGOwP$Un| z-7A&TIJqIQ7h zvKzCrfUw-1fR*DyX{GNz9{qsi8A;PB&Y3ZQ!ij5Ns@dZWP1!;pv;EkT?z8QR0x;Gy z5daHGe&kNTtdB;ttT5Se-h{90(k-#Lcbs49PMLjCAHX+qhxz*Eso~2(>mWacaB$*` zqsNLa^am-quwX^7#Qr7MlJ1_^_29}d@07~4N@rLE&hSzk*zW6!SQT~bg?`z;H2vkf zlIc4zUlvR*F}d1^uXb4zRs`N7(pVDjfRrtJ^Yz$K3c2vc^QCE*+2}<+j?uQ)cN`zRY;pV&fKrqJ2a0jH4LS6FnoMvlVdYuw@Pxf2@|(!B^UG=PV5_r!_sFAn5lIpAFUG$6ilkwOj)|i**h!71#6QfW^1`*F%*(A zlC_FPY}iFtOF`)siptuPL;G;WpT! zt~m2;`%3-94xg(!=I34>5M&5JzFA^pie#^s z6xw}0X}Pb7!+ZA0QMD)IH;gDe+Ij7G8SJpK z03~6}@<)K$B?N5Pr-{7`*i#}x82gtN)}7Ivcl?5ZUWJ|Hh8RR(6V25t`;gpTt4uxx z&^2b`jK44o911zlH~dqbts|^0T_axpObC^Dce74U@O|x!*qQ)ZK&8Jqt}SD3(UN2v z1a~0kYAw;jtLMvzUNg{o&5%h-|0=N*7;}A>T9LairBaIWjhwLcYq}9uNMtG3A_o#( zMsu~O)-;G{P0weglN_gFc?ianxK$?4$E+iFSF9u)K!|qwYm@6+i+a~3X(V{AxFr4lN+B)DFx@ND z{mYdud09C8$?n&g0iDdTo!oQ}xvl1|j1R@OGRo<10}ha-?!*DTbEUj+C08uVJX+LiiD@}IMc|dI|gq5*3#B5%Rs=17Ov=`B)1W?8X89fR)&$CaU zh7G9?vT6yk=-u1`Q65IR#R&LR(e^4hd?4(ODGJgC{K}OiI#|`e*;k4{pIdcWh1o@W zZ(l9oS95DuBJ-RP+wdm_dCprqyzK7qBrUCe!EBzj!~C^u@#^?nEZ^CCy!hY0#~MQ9 z02Qc3=uHMk5~QlU%XgIs6!TKd_6Uoa*(AOzE|`J)K@{N4nqk879wtmT>{7_|>igI* zb7AjNbOw3L?r5o%vs!` zWm-InT)q2)vMH3i+@f=-oflTKJ#Gp{FMI80?KY}RJ!6iSz_;E@w6ij{0=C{HhssnG+41jGksPrAoM9s_po!ubz(_a+9gxR<%#^w zxTU;IZfW$_tPDSSDn-l4SqkW3J21eq2ic zAv>V#cCM__*7vy{w+dBfECcWU&@`9&>T|2XHF?%Q5tq>pIN8DOv!wIAB3lMke#sp2 zJ7o%@K)x+82t8dhm7oe9Sq30E8Rc2CQc?4!3WQ?75v+oFBCS8WW4A#?P_BvJ1oNeU zW?N@GJ!*1H{KJ+W)Ou8=cxPt+*3MN#w6R1>xhILQA+<1(fzxLO)613cievRoLSL6m=*4IE}RaMawNa(>(Ub&*0R@wDy($Qpy#JFOW=A$av#Bv;AHH&Jctzt&KM24T$0}3@R#h!MF=_ZMq9gvr9P@3gA zHL4=s+*j3aMxrgQfkw^5olc`AyZ4y{AHfa{kn{BaP$iVO%Qma(H>2`4JNX`=Ucc`c zDFN4vb#nI9uF=#v@A(Lel8LJesJyq^3*+Xknabj z(-q%G;@R@$KF@kkMSlL^v8u2Xeo+De&_LZ)E$VV~kJn57S}y%3OkzQqd5&_TQfLzg zO`zHhECO)ZXBSiQdSi*=nbKWf@azT`eB%{4e1~{~szoez`*wwnXJ#Ji9IKu)J%DI= zZtJx&4h=fBXwY0$yv{HVCTpDXq1aQE%sL$@nWOw%`oS_gp50RL#9ogagZ490A_7Qp zm1^KXJ_<6+UW=K7Dgl7PBAFb<(=0q@m+5e`jjyn@Mafj9!;nt|D*g)r*BHF3MW?E~bMKN^nKu3?93WgZHAYPh!Tk-`f zQie1vx=LxhXwb+WAc&BC`aiMDiA1dWQ9Xt5Z@cDlkYO0>6%y@ zWPn?@V$!)NQ)#lGqMh=jT*%c$&afvC)E2n*18O)p;7I%~8#OXevde#7nd-HbYeljF zE$&-f=Fwx#X!RBYt7K<(bZI;YVO+BgG-y>gT|QU3P-XGB_6EEB<=b46>5d|bi$X%i zQ&v;mo{H86v{m{bIRf|FmXGcay17uH7`XwlES1Fy=!e1)r~`u0E+>*(l`={}?8}9{ z(&nk8jUiVd^8aW3k!Z$wFK+1d>q(+j-@P)0^&oTHwTRxMu2I|64-!P+^5(+R5CGsp zlcgJOW}jSMR7AZEn1%ugd|RdXL!zctx};d4k#+29Z25|EP@n{$@ugS5@1Y*^$+x!ammo7;D=YypU4?x>t|Y9UWfPl0?t zdCd+>MJd6z&0L2-;&0$Ou7@QRHf)#K3G57 z(^Xa3Rgf(zL?e){A}#*0Yw2#d^vUrL%7K08SG|ymo+4=he}ZlDL#%L`yxsdiU1`9X zUrC`uvL-j!iTG)cyqX&qQpK!5(hXIu=^mS^HR6wav`Sg^jyZ&tKPonlRUr>`+ZCS= zC4(}}{&kx-c3;P)ukYvp?Hj74mCJbEqV8()Hfs+;)hY@%GV=4GDlSH;JVojJAVH4! z4}{UM8H^Q;^j&Z-X{79lbH{yEVF);OIC7lXVy>(THDN#!KP)cnaGf5sl1#Fhcb-97 z92`?36Lg1{mbgP>i)^4C@Uut#YhM&>j}-d6KZkr;?tyj|JayQm zq```l#~oGpEI8xB?K{@%5?A7|z9`S)ReYF{XC$*i+{dY!YnjXPKn}XBu4S(}kh$+r z-Qk=}cY%`iL1AjM-m(-ol5!Kl6UT|k?z47Wmaf22Q1!dbbMy|%E$&DLk=$y~$}Tl1 zpHZ<(!IN#Jt27$Ps?tGL@oIUYzRFLW2%4g_;kM<=eRqjVkt`o@eJ;-P-C*AXGFd|9 zbIAsA!0y5nt6%Do*8S-ANV_1z2Cj5CW&IBCn?;EeFnaW3p^RF2*K;g zUkDr?>4rE}b;2+OO4cbF#vWnd_;iXVpDURcmdhM4T`^#jGN)XIvkciXr15ir?1QY-Q00;m;uGR>A*AshPa{PpdxgKqt*Ih<~Fr!NP; zPQjly{d#lo>)X%2PEXHtx{c=7>u%$w-5ks`JLj!V6H30Sw_DB5F!r`r>kpd!nbVtA zyD`%oT+h_I*Vo<7Ks4~vYHfDvP;$3M-9PPj@8I=MZld1p4EwFqnbX>!`FinHt>3Rb zoZg(B{q%+!&A)sstxltPAFlJiG!5WV^|~FX_f_+{H5@_>;=Aj7oiWXwx4Wmc_Tfcq zFy?qn6*t3Hd+d+YlF|6T561p}*spa4y>5T_?3N#zwZZehzNige)w}&4==fmf{EiC@Y(avYV38}?N;afN2<7Mo(eL9;dKVX{!M+@?f;Cv>56}_lIO2Ht0!ZZ zd{j6aoG+cy-$9)cOx&fBDSMVx8}H0uP-D3bFY5Rd+s6 z;JVhSoihpzbl{6VHdCk#rWj98qVmFSG2JX5emy+iEgux#7j{lBoAu#zz2B@2n-iUz zc6;(&VP>Y#=@zQB9u$Bdu-6{oY;OP2;U9ngX zs>EEVL=QHxDli``&@}}XLItjyg8|HkDzg|WbJIKT*BZLaQm9O)+wG|Wuc?4PVPE&l zAIkd&<;cYS(UDKDnh%2s{^8{GS+`%V)h{OCRpI?V3V;65DZu|im4CK62IaqCr{KR( z|I?)IS9yPbXaB1x3-A9d3?F*Ux6t`!zu)cu@#|EfQ5)9qfgsd^d|r5hDw_Am9pEG0 z)>N=NQ+7-EHPBt_I#5C3sc_csUPF`9OvGYydDj|VY}baZ+hzi%G4vYy+&wFZzux22 zpWSroLy!oeqyPM;n4}3_>K7_?1C)LSOr!zD{{DAS4F4zRzt`^$yZF`guzLWz2@Z;S zt=*o$8YX2!pSx6+YE8`n@a2zRCjdK@OwP>J%#Fxmne)Ec?Cyon++FZw_zzoj~)da<>;|W_}M8pMcsYO_8_M z+TZ_<|Ctt2CG=}Btaa*6b4ZDLlDOClJ)RJhD9EqyG*uYf^ynx`h^tN&a3zqrO|pTt z&I%I_aX>$)2G#?ye1DoA<7amD)@wFps?iCo6Bk&$e=!v_r6!P$Mv9 zrn{YXx7L87YL^uzthpAI*2TGt#muMu=HRA1oF4Srt>FZ4Xc)lfxi4&z^w9tK^%OW8 zj8@gd2Tb$$&YCl;ky@iTD8ZnQ_P6vZV|m@-VV4L?yyRQZrN5(AXZVK7T0@kLV(E8b zTF)TlP)#`NrY(y!dCj>#l$=ZOpXt+wVRPr~Y|tFC2U{S44lh^>@PBP!UWesRhhNLv z=}xJo+D;t|z)$N_#z5Rp3qYocH9iP-r>mYlaU$ic- z+Si?K?|XkRyt%!*e|Vgon_pO5dcFK+<>kx^A;ug5UDOKgZujb@R~Xh#+fCphz;rr| z0?<=I+&fg`vY3{V%>E?tY`3s00&Mux`dW~}h5_4e!w`B|JntccV`A;#h z={D_Oc=Gb4UP;mFXHfwEO<{72!->`;O3y88?)hnfCj^^8emr2?$SwwwB3Kvs7gL4S z6qM~iDJm_yH&r-QN6?EG>KMTxvEe{T{PFUAVZkCv`6WE3@qDIwKexUV{_&5(JU=kp zf)f+E=-;u<|NPIw;$-2U1@#z?lsT$paWYpmqWs?rb4yg$yi?aa)%7~FF01t43$GWx z*xMO5C(hpgDl8Cv%!g*;z5FpfxH%Of!^EtbU^(A~SB1GrXywKG7ZI+;TbX-)EAyfi zw;9RFL}_{ATJ$DVsz`65j7MrjPU37bU6IZHR+yb$Uea{N-x2-cew)?&Z%+T3*S{9@ zuf=y}=0#1Py_x(X_Uii=_B^pJzIye}=CF~f=EGHGR%Z)~V*1#YllzgKH50rl*pWH5 z?Z_>;X!TdkER>Y2Mh?{GHSfGH<}<&*4Ho)pVboXip|2K4eYIe3Roa@pmoJe;PUsQp zjjl&P3?urXDW@65BL9AY*w*Op7c|d$%|Blxt}z+hZEQj1mgBk!uDA#*H!?I9x)!-_ zt&$m5n4r4jIqHJ|^DvieIXAmf{1F<@!kceEIvO$q518&joK4y zZu|aHncIGRKLqz=-~umd$9ul`<>^c0EE}4aUs#Rjy2Sn|&-1qh&_Qa&8L8pV@6QZbOv`7TuJ}<^{u^Dp}W0zcUAwx{v*r$ z*gQR;I}02@rcK?1|Dms62+&bXQN>$cKRn!p1F>`dO4>k zsF~phw&j@-KHt?n+yup_Xot~RnIb&uy|tixo$1^tP(rM1HwQ@wjbD%M%~Ox3GwZCX3jnshWm zNUUA3kE)xW8WZtZv29dsu8^Incv9!kKinN+j|=bTj*#=tXAm!6$^n9uBL^Sacv=f( zw=sR$ZFMFz=}l&^uqRtb<(#mLj&uw3BzC?;R?_}hYQata-ucoJe)ahazo?FQ=KjDh;vzbr@9lSJ7Lrr4b(33I?sB z7UpQtq*Pu4!)ey8jg5jGaKxu!Uaw^t)}NtzWfa_a>45_$a5`lw#z*Z8zUV|5S_2Xi zVBh&4BTZb8?c-hWRDvV6*Xjc=JAEK_Wll&OUv2nS^V~-Bw%G=!hW_+*_YoW(1mkUX zUL76GG`jV{4179M+^x*$Dh6Na&pt4~&iPmU_$!EL=-K!mL<9Irj_s=$h2Kvk7<>Hx zS(uxD9o+EvzYA`#Vj7OQ$#>xoupAnNNFOi0mS^tdG+0Nd3e%B;dA`^`c{hFb$(bQ-Di ztD0wJyXM5{c3>@2sz|m1f??~iX&FMr3z$}=hrpB2D&_ZTaM3y&PE3ZBDV7?T?H#I- z35b_WI1I@TSl$;GMD0RG(;feO3EE2MgukR=xMTBZD>xqYKi)6pXZ|G9$c2xe%OOP_H;E)kVg z*jh{&hWvNp$HILt!kOvJb(h($VfpM`d~%#`vqdmcrAf+L(5tXpJl@(VmJI3ToG>jz zx&23DWzJsA>0ZFrDsPv{rLSA%?X|=8uXC@T*P$GZ&PN-Cd-XVtW(k&t-bak_8MHtD zSJJ-pdkAlU`N_OA91!=YX6@``J!3vk{JA_Srq8ulI~(i3m~@?Q=|)h>GnVenzisK> zJXcD8_OfNRhfV<`w9B`vhus4hFhZ{%`P_;%L$<_}z0o}LO+(t5Kh2L^Vm zjy)%`lTXog^hN>x@rC!H=U`7NW6PrVbSqF3Ize3mTS{k==4psQx?h!D1Fw7T6WEe} z3O9=h=hf#Ie|rHuoND~ye`&vlYCeCFDkX6vgD$*dvyWd(RlAx0VxuuA)Xbc>)rf`{ zHFWxEx6%C7>fCm(K=BIzQfWW3W|v(Ry_-crCDiLE9KYxrxU>7yEZSHrf zXTRw8lTKr@9WhBbn8HP^(`ZZg8vJ%Hb5vk`Zw{NIdyzFr*|;97?13Kb={xI$;lA*i zghO`EI)+!8KDD@KSzQEM!uEspte?_8q`#RgV`@i3Ehr9KmcoWhDNpu@on{kl` z!GH!L-XMJr1k3Dn<);AjfcFOUA%jcADF#76dGJA~-F90I2%Ws{g232@rl-{kxw9Z- zwy~E;c0Y^V;O?@|S;KjNM8@JIAhI+YPlf5}={O&W@C}r4ygmG!{fp#;{kEJeTw13K zp_t04akidEv~z-J-TG~!#qL0;fbc&zWfk?xMY5LN5IpM~BVMB2SI*{Tf+Hv>uF5EqE{;)a;M0hqI3wduYgqlG79gs`u^ z49JsIz&S9D({ussV`j?Oftibp6}=MCjC1O>&3W~MBy3G?wuI+x<@BNnQUcHseyeW{ zfOMkww>k*MnvJB}1>V#dXFj0Ktr1fqYyagJF;YE)vW#(zkXJM7{%25c4lY{P7Q0Q?9CA*zP!bu|Z5utDS{8FG$$qdM%MzWK~u0P>e@x3NH9k;6c&NVhi}Sf)pOFbx9`?%wptz?x%R1=Gn@ zJPQ0VO@r>KF=2Yh^)^@m?=Y{z8e^=I2)ze77M$0y`xcq#jP3~{;%<`YNk!^wxCHk> zY(7N-T3GmBprkuTHSk2X3#)M0pHvi)6c5U;7r*X+!$0clP*Rv)SP)^ScTIHh1h026 z$aaAx-%5J?X1udulwZJs3G`3jKuZW6LI09L=fzOLPAF`R6`z(&C^*yQSUi!?H%7+F z+zij&uzKFPNC!M}4SiYA>z(rq(m>ant@Z@*1=B4&y@(XZQQ|juu3T3P){g<>Oynu6 z#T}ve4m(9a0r(GmYs*0ahe}z@ihXmOBkJ&}FxWa=O?KiX%7k(F30_539rL;BXh0=& z*(v-3jmOQ|%sLnH!(zb9yo*({ILepPoZPvCzt3y!tIiB)llu<}IztOJfRqQG1F$O# z)_X1Z4J6tIG~Yv!vjZA)QtF)1fgtd3V*1jUS~LujU~MSjqS5yPp#|NwNXI#u}y&a{g+!%)+|hj_{%LI z13mxv)gB0q(1;%DE@Kbbj8-m^ie#a^hX4DG6|P}GVy!;p(=n~e>GGa=2!uyaM09C% z16E93&DEnBf37V_)Xb?jn|I(hPGB0g&lxecpqwj|4OG2b7xni&y>nj?tC8=-A8rXj z+Ny~7%MoMP)Z(m@0fYh>;!~;kmY^l~H6tGPl_H*3!l*|iEuWd9>e8(j`iVFeh$Ik? zq#&iTR;=40iW_rhSZbFEhPJ0&1T`&Z*Bpo?)#~BkwC@1g;(%tv0E4E@%GTsBw^efC5`bvPTB)l{rduB(ovg z+;}-Rs7(ZcGY&r;j%kzo!isFnImDU{l$XI407KKfH5a46guus$6r*|?#r1f0qe z>^4exIPXxsGwL2bn~?8d%-Zjsod1vdt%*VXqInJUq{InOG6s|(vRL7z&0QcSer5(C z4FeqO>qU1k?9{IDcnH47;YZ$)z|yPXg*)^m^>u>&bz$UqtKNQ6@09(4no$q^<59ht zCM2|-vk8O%_*J;7znTLNH(ehhkbEX+NB!s}Jo>`rUh173bLcn_V@7Vw5%~y}j};g+ z>o=gDgLskco9j~$Kb>z;Ils8L0C#GIvuoA#OYWK`sVY$POvW%rX*OV-_IG1rk0JnO z^xkbPwZEWJbGavJS86FlX@5O=X=Mog9oqk$hGEt9mUruE997Ouha!UDK1l%me{^2J z&Lb5~efUCa%xmr5MeUS$`wN52_Z(cmS6^SKYxs*vrVD(%IEC0DN;N>*nkJbP;nFYf z{-7_qedikzJ%tkffm}2{ zusyt=R0I&d{6|6Cu5H@1wM+X-YBk>2x3%^SUkDlfEc_M31jdbgcYMqC|Il%OgX0K5=M`LYG>KuNH5OuL|(`f-Wf)Dae4>1jMLdZCP?w#RoFJ<@v zoNydDt0OJ5xThxr#$C1b@jWE~xN~CR;CoPzP8$X31bze)t!$2DyutJVO+euw7)VgR zh|P_f0|gg~1!?WHzlB~h(IBpe-d(LP3dl1jf7Mz#ox(&gH$k38z@#$Q zVh+MrUpm7QSmaXPStv?|@;HrG1*5#zaGv(OSMqDyTpeid;NDJ>pLde*Me5M0u z7*j~6NayzQPH|PglOV}MoBGMdh$(Vpv8E+xllXzXY6Pt79@y^WQfdYSQ-Z*#69Eu? zxrr}Se800R7%fY3e=9+lSQreaa!Abr`xGlg0DhROK@$}q@3gCsWn|cum}<(zU9@Xh-6n{NaDMO;J!kyx^E(S5wb z!JQZSj@Py~v(|kw5M)L3dEY?adhdcfaw5Ikx%SNA$^`mO4^KS}U&{4(@S73$XhWuk zR8@u$8BWLF&$t(6f=AOyG|0MynPGYYUQNC73`tfF5)8hVTOGdrCH$SO)^NnAu!_5` zSSy+r-7_P4XhKA1!Poa_-GbaUt|BIEfsqC?0BInfr$Iq}Jvj~VQUy}M!|iytvb|Q2 zc(W*wf#R>(zXs~iH42H%(y#+(MJ4kX3QJ|S@f4NVsfp2QMwLr1%C$_~i_{N-WlqQ1 zkdBo*gq^h^kO~8zFgpMr7O5B;qu8FSh|E^LVrkcwrBveB(f5Uk$pGkBtSU#3tJKst zuDvKkzl!gIu=k5)S_pU=4Fx!lgZ&b!F38mAW6$%5sq(@5R8Ta!O<)8B>YXDAYxw_O zy%PO`G4#Aq2l0pkT$31b_6+17M57NU{J*OABlM7drEz-}&=qo8MHKZ1@V5-^Y30Xb z?E%`j!Tl^wcE?mDt)9Dlzw76&6$J`qTCjFN&x7LbK-!!X=c;RjzQI`5lq|cI<{}!T zG_+gA)fiO=$SMVpm}0BsBib3X8WKj#a2#euwC-=lxQqgf%Lz=59){Q$v9~f>^$h2M zePM=C6Go|m!brqH&;#zsFmc9R6&L1+xpmPFlS-OcKuFlznDoe@w7GV>*^xk^_@ z2!@z0FtmwO+9^lC3=g`C7;kqi7~bha4`pmgS9m}O3$ehIkihIAlYP)M>2hLdN@Dd( zI(5~4@*bCM7uD#op)6)%3DNb1?Ar~{?~yT1hygT(#`nZtEv+uF32rh>>_8FcT?xZ* z*L(rTDz>9!6n~21LVp$?FsH-hyVzC0Qp^ZkDMku*VkcM)2pJZ)aDHCPmL}r}uYr-S}ivUgo z!fUSE=`=~a$}OY7r=h(g&HvnPF73y^E8T&-e&g?e+^*aUnCqem`O`#O2M!JA2|$fY zvZc#q!`^PRoQCOAXE5RkG-B6EpX6ULsm;%UFLsd{(Fh?;FX5eOq+jPUj8|Z)8{#<{ z;Z~9##L(lu>5;+B!+5<_1MC=^U+8Ap01iQv;wgdnS%kRGUxTZqia3&(!zyhCLm zJPkB=Z;9RVp4?Hv{G;8)1gZ$@Y(5QK8%GqAP}~Cs0jJ1|~08HIfC!yj!VjQm*L^ zP6RpZ{i;ZlWLXhFhYu$Iy19d)jyrdjRQ8Ef>d>dSi@ma5<#4dq<};(F&ZG8ryy-`3 zzF|u{p`Bre`k(1AFH>|&9jp9{GVrdI4}BL>JVf8)dFb891&Er~2^+mFz4@K}eoJ-= zFN#8Bm(Rh~@dAY^UYXP!uT}$EK@sX3W%$7@qMGG1j-Ux&Yu;%sXOZHf^|Vf5x*1gB zBc;MkOhfjZQ>C776)QRWvY>13sgnDNP|$B;a`- z>3%i7P8>F4zqU?@kb|i13tNZ4;F7Rni_!w-0OXG7%ZX5@)c@=ty)pZfJ&YWoeUSmm z6%q9yC{4HlCq^$P_TkewuzL~Hwte3d$FjNaNj#6>g&<4|(Xs#WYbuh1zrstX*b#UT z%n*G3JIcP=9KJs~Tz&P%zbwRn?BfG^%0;@7t`$Hth7={QQFRI64nf9^67T z#81dQ0u+8-y8>&vMSw(-F;0$rF%c!Qpr|a3@@%4o0$=z9!%qF3zk6GVf+Rmph2Ob6 z@twa{D4t8pf1`b(Jm$0A6p7aw2-$+@kpSAFMM2bc$jfE}vKrMf4vYM7aLRpI+|)|u z*ozw>5x$`Hej(QzJ>a^XHl=+N|Ao9`;2B#x1KIyK36gY=4BP~3GWC8P)H{Re0{Q^= zDF$qc06Tu#;LC%c5!&D)z#L6;cF@I-K9Ib33>59G!Q z+({mFil+`zOxotzHQiF5O&toR^xe2|a?$wPpj5Bttl#&Qps}b{_#s6shjk7WhD_(C zXGxL4_)sVYe540KFE@kyS9MiA(l_;eGTR&Tz46A>;yf@~IwiCO7CNZ2C`5e}J_E@= z$xWwrl4sL-QN(YbmAV}Aj5codmXlfTg-%?TD3KRFW zUmMGi&&OZU+EjS7Qw8>uMJ(JkPlfNyEAIFn3#Z6|yhPqRm1|kGCZ-}qUf~_P@O{unl)#V|^T>JzV3D!p|5WUvpb5qE_WmW}AD+(xTa%RQgB@~kHfDCx(@ji< zZqgKe(C?l$70_vZv0pL(GVK`KvhQUq!yasBz!|@X2{g{x<1(#NTJN>sDL# zis}84Pp@#VomA&dYG1S>LA(Rb*(4jH&5u8rO!@xLYUG_*Krx4VE0GrHJ`O zKfMceReN004;miz+V)*`^%a&Qvpzle5vV+Gr@W9hw3NLqnC7OkyeFuS%Hte*34!yh zcjVySy!F(*=2LMieNRdo^PTeUFg-W)>QK`2T^Qlmv4pVZ8D!&VAsNE$q=h1GlZ2Er z5GE|wV)zg))_6@9NjtbJq$w53s;uD9Vi*ho*edynNmF8%14(MQtID>R*E>&B;e5$Q zJ)s=!17b^tJEzi|x9>1@iO|5yG-uM!0v%)*7nUc3NxseL`{z@{GW1K3uV-e$l#b3) zxXUz~OOx4kkDPgRq=5WXzZow-paVnX$^w}klB-E#xOOC5T`KCDx z=D4V}Ns$fKo@Pf!ecTKMh@ZrOfXD^_Q4dy4ak({w^+3ZEOnD1YJdk++Gm&ucz*rud z0ObpmtX4w?^0`?*_sY7}6g9VD4qFeqVMPpK78e$qWm*Va$^mw&pXmH4CTps0o>D zox?7vBZSo$F|pfipb2#^?vg>MFAhVo!Nc__l}1kE@n|RfXE@_CgQREN%wt%NTM2@J zD@-Y@ZV@@nn0IIxh@z$54Q#7Uw$b9>7g%sNP+p?iG|&`@=hJj6{zLj%=oz1nFD@Z7+$Wpwz#zdqn#6+Xb_5n4Tz#*rX2Zw}Cd zn@0(GF~$xG4+JZgyr%TgBmL~9dMKcA`sEj{_zi3H$JNnl&HdP_QZd1TnU*MA5j?!% z+4Yq5s@$<&W$RRJP2^!*6FFKlr-z(JITw-O7?XmTH=Xz;%W5@BQ5R`TfXwSA-YeCE zZgs*TYaN_4$$d(74Ld?;7MmHT>Wg>PGgKk3oz@tHEo36Y+dqIy?OZIT>5QHbYLJmp z1ANsAQB{Z&-U{A25YVVI@0g@JwZTKDK2y7^wT4qtT*Pd*R0_>y;EW_NTtGk3!nuM# ze26-DI0J!i5S=NKL`O{xn^;<|q$OORs1dOfl&uNj0^!ftxvxw$Y!7J+k-*lQ5b%c6 z)#9hG2gTL$*UI)`d9A#k2UOXOEkRYFNSgx{)3}L!^&mgeAxNI!7&l?{YZ6n??+gFg zc)iU|d?*&H2-abJ?ewWDr_z8pyvqn;q_Nr6sqb(c6zY^U4s1KirBrYMoQ$}1Mgy40 z&{Rqiff#sD$xKPKzo$_$BKeNM2P5xzQ6JC|(!L+(PCd)=Ul${diJVzekj+7&AQ>TN z$IOm63LXHhQWPf!N58iX_aw?FMFp8ojt>03URSw_tk zjQ%8NP?lnItPtGiEAjs4YT0s4*`Lq8JpNyJlk=SCnGd`^2=lwY+jl!(z*X>dOkP!Z zP_Bgf@gOMG`sEIta-O(sIZo)eq$!nKMOFS5TAk9*bWwPGIAySMpto<;NTzfm)cpC> zNMyc2jgFVDOWgm&!);qOaeoNEW-A9n9L_)=8=he}{3^=n5Wun>mKX3VHIn74dK>K$GvcF}#b$G^vD8>uJY86seO+6r&o0fME-tN{ z&DGw_y*Zs*I$L;iwlY_j4N8)tRB8yZgQ`3MSexCvxi{I(H=6VHrPp&!z*}Dg-PGyw zo3pvo#_8N?ZDFN(_Ga#M{>}V+{d7S#-){<1duC&23-j~K%k_n`*NxZn^UY>`so9ua zIa^#=sMnecXA27}bB+1Md4nJ=Y~&CKjV8syR`V8G1KsI=4(LH!{*A5wqcBme92PJS zHu%L(#!|>BF%0(L%zsb({&wQ`Uq1i$+yDCGkD1^9y{Du`lySn5g zR{6&t_(b#z{``-LX{vulWG8NE? ztKU=@Zs2#2y#s$E$Rj-idcptpn{6`Qi*myY{I9s+z&67_;0i@ANv5IZI(2C7#UGt7 zp&Z4uAvtWiRG{@`+D_m|GJmH^SMlOAW&~)uPrtn2xZ$UWq6*n8!0DhVe%gLQLwUUc z#nY*<%uE1^_$g*nw4a`$eG`Or;Cz4~GxK%^uzX&;d*K%Z8J#6}w1p{@hOQ}`9egdC zbsR4qg_PPrckj9Zk|(D}5q%3g&R zGcN?pAiPqUG~ltFRhC+$TGgjMMX}0X>8j(kh(8R8_?0Sb6fEe>n?2=rsuU}nLMz6_ zElLv#aLE7u=ieuRWB&a;u*~Ws<@UG6(Eho>`BrEO`QrSUEYpvZyt-Wl!mD&TqkseE6NNxhkY4Le7XD5Q*fxQ7ay6&8tv+ zC*%oy|1RYGXfkD~6D(9rn(9O$O_jobT7iNAKMlMk%U-BTsn@4Zd_-|MCUN2f6k;YB zs;t9Jj2cQNu16ek1T}LZCe4(0C+6t~kZaUj+C5M>_iVcTQU9L(`fVW(s`)q=@Ybx+ z+@Q}Y%N-U(zXZoKW#}^rjIJSg4d&?q0~JKnx~3Gl)#60L=PeTi-t`PMOPaOb!3=7n zr}B3n_?`Mh4$t_+Rz^u6Cmc|0q|fXKtciuNA9EwlQRpq7>nv|$xd>T)#bR~hb~c6I z#Ge2Y`Rt}1)X?rz?i&_z5PHXqp6vCPF&Md6Gl*~$ueZqcZ8m~MWn<-e;M2nkoD!o% z@cK+X`gS%9^*;w@BwR>lj(khvzVps@T_EIOul;@#;y1xwcBJYFH3H^Au)(%)K@LDd zxCpl9hXMqPc^-Lh!~VyPy*19wbh ztbCu9&(a9paEJNZ%oL>=^m1T|{cZfXow=oLHX}J*Ajp9^4Ds{O3Wf@M4Oz#h%+%(* zh_1|7AZ3V7DF+P50Mv?4-q1YHdxuY1tn3OIK6ZwXmHR^(9Q;W#B&&%n)WcnX%( z_~&$7`*l1!IM;VC3Q*Z(#6x+tg}@v4f-naP3Pd@<>m(C@{K|7Q16hc81Vr}`k5_b=ajZ%ONyS)C=l%3217>)H+e#qX17pu)k2PteiNu7!*f>IXeS( z*Bom_Eq@yi0w0H!vA#~&NvAmkz3vs?Z*A)G)DK$L1CuYuYOqHGV;?=`Pu_vVLUghq zCQW9AGnPsex!q_SU0T*xtPXtOd;V$ftfzb!mByP(WKH@r=J@G|RvcK^Kdp=_sFtJ{ClqS3GVrbUg}@~Uz1u?r*I!zGYIcTcI+O+&<%r2dMP>lyz)!ZvZl@V= zP;I$rkiUx;k6 zE5m!wbKGM{(&iE&icO4wk*;)FC`*HI%J&ACAMtuh0IV_v3nX(+1daJI$gx;x=^wvtce(yqdnN}kF2@8X3x$F3$#tgc z^K2GClauXAXTfnp)G^KmZ;K+AHchH=ygu`jmFc{x6PE*kk&zdn$?QO9cMvW&H=@>< z@OduvP>S_%XhS!YvL_P>OiNeZr<$1JBM1V~%gBG=aD5bmO$!By)hpgN?^`0#0Wf6aHik}czoC!YEjK0tp92*IA4c8JpjYA`|6f%S2mrUhub$|I(NcJXfx z+aCHz__DFDguB|P&opn~4%wqV(y}MmBx|sf{P^dfq$&$%W%`Pt_YQeVfM_ zgl;C7oo>`osz0SI6XN`Sc0pY#%SSrH9eV@`Sz?P2OY{mk0(u6I6!`)t@;I1hu3~Nn zb0^(cD9h9jwh#g_jDq-PALo96Z)_h)yE79u>4Po6C}SIJlxi=7Zf#ji zpemvSDeq1c$8|vpkAd`&LrSs0K-3XxfK0;iBbxNO8N`QM8hrf%tDQl70_!+8*?A<8 z1HLstj@|x9Vq~HELidq7l zUil~rlq>t@m>Tb!tjX{S=NdlGa+x)DUT*Zj^+j9RGHu-&b2w1yHBULmEF|t1zK-my zb}NGJ55t$^F|=SLc*|2WdKHMPNMfh?Q~}asOg=*a<~K1CHJ|K>%u<8ut0pK;8>Ds} z1CHDed5`JXECt*6w+{P4;T&|KLrkWsc1!tEClCilGEs^sj4%9VI{!`Qkp&&~lS z^_}9C+7KZRCJ)OlN7`Fr_gagsc8t5|CiXEHxTrBY)usyKJ5dy+2%c<*<0YBL4yrP& zIs+M{a-}R5@|MYWI|h~6S+D)v2icj-U0<-wRqzX|T-N!L6$dj+YaNE4w_C$hDS4ue zn5eHvES2%9bp)axjBds_YlLz4!7rgX+%=vX9#11P7J@-8rbawLMmv zd9#Tl8bXJ){dPbd)@3F~__|SH{w&+^O&9kQz==Q#7FF0{igyX_R?!Uj+h-s6Alg`fG0eXk-)NiBa5C)S(jg? zBD>#27=1(faI=U#-+g=1vrCd;)^qVjnTDJpMQl~AGqk=VNZtDy^1msW;zr#ar<86* z2|^eJLBNwx-<0j8gt(NTU+g?K`(39G0;8agCJ55Yw42uhHg99Ns5`zHe5NAK89C84 zM&0zn7neA3tYTRKvr-T_H}Y>-*^Vz{YrgbL@bZ#rB-eN(Zn<9^+d;6N923m}Ui3jC z@s_Y*Aqft`>QBeuqJU|9DgCP1B-10z_2q=&YCm&kEJ}k4@$D$Oi%&^R$TwrTBuKnF3gf_AD9*2t$_6 zkO@lqfO~)a@Nic**#;5%l?+mu%uBGLRSuwLl1+kgJ zxKOBMbiqp|AHd7^1sA}2v?p~7rh68(D!itDxa%EkJ2KlQ_PsTteW&yD@5B*_qC6(% zc^O`W2;!)}-a$bQql#+YA~c_jEl?RbrhR{Aq2G8C zP`DSs-w;>H*~kJm3;H#sS_L2OjxV8DH+y!a^S*o+oKJfWiR1r^+YGH+TqkBPn{WkS zb@VAAyZeM~0P;&?92F=7_7`I9RZzSL&CG^6ch5P+l7(-DM<3aN!J{ zgO8|_R^4A4k#b-vIDc<7d1Pcr393~^R7P02>M`&h%C>$va)anh2JeYv&ys?ZyTb#5 zc`)m5AQ)}hOY!U3sFh_^W`xOcm!*Vb4doL#Le}-&C!XF#%(}%+BOTohX7Z%+5wQ*fVbm2v`iIm+ zLe^T$=hioh=ARntt2}e_^ln_kNTw|$e4BMldz!1gi^Q_!xV*VT)-KBV!V&fDF*6*| zCWwijoQPulFvAfNq{(nQdWa*27OFX9)d>#aX_R=HFUz%yzx{)$+Q)Q!9w#MQ)YCll zLGDr0kP@Fk9g`{Bj{HYifU z7(F4&aYcOwgK{EUY%UP)UPozr3$?Q$&eDK_FyU_u0))sZH{}$32WQ5qgzOccq6(7Q z{ub?N2F^<^MS6zjnrwgCt8y?Uj~Ws4)kY;EPT@6%z2P$fAIriH<2UFcW}tr3HN(|b zDkIgCk(zPaE~!nDzRWI4HXBFAvT03H$csmOd5IU;sPhhU+_?;^;c(ag?^x6-_uvWm zd%L|Bx21^Nk1q_kpIb=V`oLC@W;{Hc0~kt27>2fIgKJAnJyXy{(Pm9Jjq1<|V z@Z96VD(cUIh-NV;Mg3K7U_|{zDA`V4kU~EBPRlMzvq(=afx!{jTOcPIyl%PG6bfOR zKP04|SHx-hB2AQdB+UutX3ReVbkp+)kr=H?7gQ=u`Q> zl7K>^+_J%P|JA!W1%0lBeRjcvq4zQ^FCi2WY|s?;M{haY#Lz7ZXiy|@!*&DB%Fnup zK8*ju^=mvxGLFScD0lCv?MVx)R#a|w+Dk+}nxQ}ge9qwaptA~bS&ULbvYSQ>#$py0 zl8{1Yq=<<02^!vhaX2wM8RSpFvU8I`2_!fmAJ{SH701*@2*e|5ax{3q030~M{r!$m z-@hxY@0n@91QE%eBctW3`HN9Da#|WWWW9zzICh0tn5Q;7M1b}>(;pJ$dytqt+oMp3wp!`b7mEDk|8D{z379vD!<0Ajo_{CdaNMvpL z5HZg_(=w|Hh>*Sz44QgmF)kodP@lJeJ8StC%aK^iM^E)A8qyWN)osx{ydVd<#bzX876qC(8K zG)GO~2a~ei&r&qNXQ>fyzK9FG+r8D6NQxsG7JrTE9+euWd-#FdJ$&YOPYF}|wDbdt zgGBy=+!d2M%Jj`s7=OSPY6{=rq``flMpbhe%t~kB$~7&S22&89O?eX&Vfu!RG(kNI zQVp^$MsdIyxfW@{Aq}X@sY)znRwUiYMkl$BKq| zysRG+?YxgI2)y*DC(O`gZIKZ(mm0}~bv^}zqNld_8CyaFPv)Fh4kbR54La}S=Cpzq zk<|vzJT-I3bu;D;Uk7JzszVqR-6Bo>XLc@>Zu;4;D{;fVJkCgaEoKC3#vypsU3 zu&?{AnvO*%Oc;QeP7OYVuo}n+M-K51cQu}*WMp6j0Bl>FNiPL3wAzl+U8Lv~7#po?t#@E&{n^ z^ur4<@)m?DeNec*83?HPQ=MO4@_EW!HidtKfkc8F*F+u|pl~#WNGEEOwsOCGP~QJg zE`2S3C~qGgm~@SQ{Hl@Wr<^BWm1B!~&SB{T4|xI+g#Er#MtSzs23kSO32*`$os0w7 zhIkT~mjYS!IZ@_;X-=+)2OWq(_$99W;viO>1t5jD_?ijU{T$MVUD?~3WB_-a9X zMSs7`HPWx;{r#PN@%5rLUiD@~JxOJ|xPSbWb$v-xW538(iyp{ps}41ur%AS!WLsl@ zQr=_V&X%iuJ4rzsG?ct;}q%ci1hx8FE z00cE!7dJUFZb)>ksJ@Be1d+phW?!>%N3pWjmdeN_<$nSLj^to;1L#08Z^vz+Tqv^s zl3nSgUQZ{L0@L=0`~`HR!*O_>k97GGd#;)zJ_=Da_W7mINAtd+E$>y#LMrmoslL~Q zkODIcaiPMS5wmZ9oB8JAE6F?((g!)zr2^!o7Hlw5p59h;Ax}8>kdljvUcMCf@E7~ zLftJya*MrZtA^n7G4{s`hl#(y=^>d8+4w1Fk5Mk|G;|G2q9zak8Ly8y=%xM3(^gpD z*IcDQhB4im7eoc2S9T+OocfqW5AU*2>CBtKR; zDQ?P*hMBpuE*|}-P4K`H&X4lmhx6pEu4;w$8b$phk|T5KILIgH8`szvH7bisr~Jk?qKa?62zf6o%$1tHFc(&4iDYg4khG^N$&svA6&+Xl zyKUXt!k>5$l>PMH&y@eDf;`E2Ra@^>t8vaCMu&SMNmXT4$pnYP459s2C!PMjSaXgd>{I9gqgCZgHThhx5YPi$C18r)&p1 z+Yd!v#}I1j^9}$^tjx#1Al-DIed$Hq|-jnZ@1VbMIhtV?hvFw%fg;L_gL|Q_8Ec!24}70$~%( z1$!zUAk5TkJ>uYBgj=@qa+@5z7&me;m|{mPiKs9RrLG3(+={6Ju^sKc_Qt;w_r^WX zBvcTltHZMlMlt7*vIzU;GyL*pYf`$8y%MJM7GCPGgbsIhsb60j3ZmfP=5(N_1KJMY z%is)Pd8k<~GWI?zg>`7;Y8!Qd%H9==BjDr0g_wN)YS9vf zBAx}tLBVcpGMXi5N_MS2IUeAtKqFFvl2q|5%uzA@sN~2)I3qZ#s)+lY$5)PPMwBDS z{jd;NC=Z1|s&A+~><>vV_$OZQ3gXAVcX3rX4MpY14%Try73$HW_SLJ_n8>$Je?4uG zivT+ZdM6d@ibuhU?Om-t-daUhxhl&UwZ zeeWs1k)8+8I);=M@G0orlIw-6Hj_X4nzx>PyXI42+iLvmkg^7boDCmMS(o^6(?SMZ ze|>=oL!}|Q&RGL{1uQ*-#0?Juh7z*{gn2;mz)-grosd7E8^i#_qKIbJP#>0Bou?RRgF<@4+p*SW}*uyTE^ zCnMIb`k&*ypu?R^jY1&^sdgtv%_4|*`R33s$YwA+fjMs)pvJ_&O_}llBV|F80dQK~ z8$f9qcy|PtrtZT;I2&p9y*6;46bMGm#=fPFo`~cH$h`kOS;}Lra=or~YUjc?S^GPZ z-^z=C{b0IqKrUbO?P;^X-3al%jo#|!Qr4B%086-U37-GI}1fY_={z(r^Xi-AhXMtTgc z*f4qlbWySbuB8| zVK-bOa0;&pY_XuZZxSIH%{%IlgU+hT8ijX{c3Ycm$d-B96zW{+nQMP?^fPjJ{(4)^ z>8ex+Alz|qXW%+=)%hhWq!DXi3S_dX$<1b4h5}f9zHgr0;*>RnAgjp9R$Q;z3@>ZL zYl6sm;N*s2AdW+I-!}Ate^-lgL{EE&9pUZ-z$>&JZV=%Z5(?gP9fWi5n5$Vi(s;J-5jOy zYibNnOLa;RYCh^9>0lU4GxtaFL?Y{9LPYvp+u?5%u0)1wqqHE3q<0gBDI;5ZTbP@& z9(-K+$ z-(TrJU*U40GDnFPm=mRG*7l(k&!21`Hj_07=M1Q*QA2(K6D|%f^aMtW6(E+A3R|bM z7sxl}5Y<&7j5m6v!bt+Y8Q=qq_*&aWX#>ln04`=GDR|*#Anb!ER`=Tv*vy~*1%ORg zg{qJcp0F|lZN)=XCGbD}Aus%0$*fvk!Bs>_NpK=Rxb{tD_<+AjcGrba*mn2a6w~<} zf0K?zqCzr)W72?*bhd>)nu+0UB4HA=W*1uo^sAamwc~dU3ejt~XOy8pHgs1TI47~w zuG38dl4F!90aAFgmcy=o-%N4nLF0xHFaP$Z`0DAKJz1`0T#`u+!}vE*^cxqG zrZWuKt?m^1n-Na%V1yalv?JPrw4BoU$jTBb@cF^Z#|+n6=4oDuRUxBH^Dsi8;TlF# ztSM?QkNi+~S@?!vXo&UEQ_i*>+IVL3q%X*7f5y$}qG#MkW6WATmXnYG+thYJ2Nm>< zmlEo*iKi1ufqZ97W4awm)#xEg zAsP9x>WJn60y&Rbl`03{5*un9zYb%t39`|A-GGC? z0QbQgN+F>;($zhn(+MP^{)0}t2n8|GCZNc~_o__#0HNc0Bu!jK_zwtSAVL#9DxOP( z6KRrAz;|G}f~(Sb6Hm=43Jj+>Bmhv%1(d%# zmnzfMAiiu!4c~CdNzM8VEl_}Qb_3(Zq{;)qs~asOEU1ve$5f?)dTW68+8ffrN@=!% zQ3(HBg(2`Z+V-o$H~Vx)d>`VEP}NjH`JMr%EKE;N1F!ogi1Ql^Qv#KKlYr%sdSybX ziKSV{>6*J0w=!|!h%74a3pIkOW*z?seJa+kbj@}JR%NR~&_L`&n!E-AnLcNN{9eC{ zw^|Vyq{XrbmW+SvbyN&UX)FkUK&>b0FS2?_xv6EQvKI1F*y=W`l7%EgJ4YtLWuH;q z9^j?0k=5@3T$0-2465}T3ia1IlBOhzI2~>RtdhPKDlf^#t=3@z+}-4ei5YTBj;#-s z58U8w31nY855EDwN|blp$HIIF|2hf|l;8-oMJ7Rufk~LY=HW7k$`Nb9?Gm@u(DG|JmPwBkG)tr(LyETo}FE8nN zk+(qsLwEf_L=lh1%TY-frL$&NSwH=agSD90Os(YU&?U&^eV0(=l#&}1U=8Ym<Hy==bg>W$@UymKfaFn?a@+KYJ^B6rXlBi-e8k9Y&SDt0)OL_@ov}??OytJbXj!Ia z-KEWDG_hHauozK1%v^raTQE+KfBcHMTtN}a2JtMK;w#2Zqqq54vz(p@Z=Cu?kWm@7 z98Dw_;7W@3xmoHYAA?}ruX@4Aru!vyuENnPk5&evZ{y{g%mqBN0G`>=WVehPPK=#q ztJrSUgg#W>pY-fKxk@R~KnVAY&1-f}U6Io3o6Hj?anybKIfM!!j-O0-1ZXVuxRB67 zB3Dy#vPoGaKz}@rrvZ($5w>Cay88&*twwt2X6Mz>!AzrDAIw0tGsWG?jIMqLs~=6& z1J)NzG7na5<^p3rBz6P?LX+J08#r9sLa*vpBySWfiCR{z$}%`;w$B22#wOqn0{1;z zVTccOd=+bHGL#Zz8X^|-KCO=w5+}MTQ7iR_{BZWBf z4U`RNC|6bwNC!Yf6Nhtn*X_3(v6VqOMH)I+S~A#P!uXexW6xqD)?#L50*B+T}u&h-}XFYOx_!;M2*GZq_gU`1J+2 z?KN+8kQ{J@mj!q%P(p2s6gka7I}g+)1a1-BB!CIJ)Pxfz~!ffJYvK;hsU z=7tm~ktg%G(eTIeCqCuTB;`6wBiHgwO5~kJsGqMjZ;h3n5J0!T*6cNwuSDns`5D1t zLm~Y0whQz;3t^1#_gkiknl^f1mw&2;MugEwJ>2J31Ho+I=ezvLJ%Nk-*KqJkq>&1Z zw9obvBtSCRwu1TeBy675C#N^j?9hxfvVhQR6^i}_(?Yj|%WSI=b+dOH5{c9&AT`I_ z_~DS~SVi&WLf+$U-gq9@6oNF(Be;~^;Jw=-^(jS6J_-P(i8T^wFx_Nm)w3G{?+-!>6@50(0%{ld2u)Hz3_J|9a8szwO~fn|$Y>9a{--ma*30|X~pg;NT56*AU(nYyvwkq4(McDtdc_R+%t z6@mii=(K?ua%FB|9^s;FEA`8ljwlbCHSOMjjTb=m9YIupjY$pLl)rAyBa#B%x|XGa zzUBy6YU2A^Xo$ts8nO^3URZp^KZ=nf!Gv^++(2g76z&j?+-DSmXH~5&QXG;8GuyL` z*dED_jFOpTY6GE)8f_|%d(42x$>a< zKa?Atgs-C#^*%F-EKjdT^%#4LlkQW}*n*E-0|mwB-%VXb=U2+YEI3Dyd%44m+zq0Y zMKq_(V}ON&C?+_i<&KEh5wn$Ru1Pu4ftlSYlT(+}C+G{Rxh|fLxUmE*tFx&J56xj- zb0QzNXjo3XrzLW3k(8cIt9e{nd!LnEl)p-zw0phsxV@#!!FOFdy- z9%VuLbEM){;jOT}k)fF%5z}IWIKuwy&Tv~vix)$K_QbDo6%v7Zb+_^b=P5$49WId< zDBCGBMNe0DRNCJt$*@4_I5UV$MjwgeQPUU?%zV=+W16Wse`}sLeG)mQFV`N4BfOh@91evPjnf z*TzAXOn@<9eR2DYIhj7!?Jg!h7?pr8MvUC#Y*2i%<(>l|{K16Qx=c>P`C10Q#fb@2 zfW1GKq-(UK+D(f*U2#?}LI1k&N}(C|@`Q4Z%&tvSNE@m-B$~*W@jez?S~kI&0m0jp}ZJTTbTj;n5Q>Ch$A6; zf*1K8>qjQaiEPF2sEOw`GYa%XqLs=J<##cDjvAx)jJWyklI}PWB+i(9gmzoMZy
& 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

6#(zlIS{jy?&$3FY= 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 t8v2)!^q literal 0 HcmV?d00001 diff --git a/packages/js-dapi-client/package.json b/packages/js-dapi-client/package.json index 8f13a34a86b..a9793033f16 100644 --- a/packages/js-dapi-client/package.json +++ b/packages/js-dapi-client/package.json @@ -57,7 +57,7 @@ "eslint-plugin-import": "^2.29.0", "eslint-plugin-jsdoc": "^46.9.0", "events": "^3.3.0", - "karma": "^6.4.1", + "karma": "^6.4.3", "karma-chai": "^0.1.0", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^2.1.2", diff --git a/packages/js-dash-sdk/package.json b/packages/js-dash-sdk/package.json index 662bc45dd04..36675334e9d 100644 --- a/packages/js-dash-sdk/package.json +++ b/packages/js-dash-sdk/package.json @@ -78,7 +78,7 @@ "eslint-plugin-import": "^2.29.0", "events": "^3.3.0", "https-browserify": "^1.0.0", - "karma": "^6.4.1", + "karma": "^6.4.3", "karma-chai": "^0.1.0", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^2.1.2", diff --git a/packages/platform-test-suite/package.json b/packages/platform-test-suite/package.json index 237ca3bc5d4..f55c7ded77f 100644 --- a/packages/platform-test-suite/package.json +++ b/packages/platform-test-suite/package.json @@ -47,7 +47,7 @@ "glob": "^10.3.4", "https-browserify": "^1.0.0", "js-merkle": "^0.1.5", - "karma": "^6.4.1", + "karma": "^6.4.3", "karma-chai": "^0.1.0", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^2.1.2", diff --git a/packages/wallet-lib/package.json b/packages/wallet-lib/package.json index 263c42579f0..9aa0faeccc7 100644 --- a/packages/wallet-lib/package.json +++ b/packages/wallet-lib/package.json @@ -72,7 +72,7 @@ "eslint-plugin-import": "^2.29.0", "events": "^3.3.0", "https-browserify": "^1.0.0", - "karma": "^6.4.1", + "karma": "^6.4.3", "karma-chai": "^0.1.0", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^2.1.2", diff --git a/packages/wasm-dpp/package.json b/packages/wasm-dpp/package.json index ef9f8f09b3a..6617b1e6ac3 100644 --- a/packages/wasm-dpp/package.json +++ b/packages/wasm-dpp/package.json @@ -64,7 +64,7 @@ "fast-json-patch": "^3.1.1", "https-browserify": "^1.0.0", "json-schema-diff-validator": "^0.4.1", - "karma": "^6.4.1", + "karma": "^6.4.3", "karma-chai": "^0.1.0", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^2.1.2", diff --git a/yarn.lock b/yarn.lock index 558ca6ba5a5..4ef1c970230 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1490,7 +1490,7 @@ __metadata: eslint-plugin-jsdoc: "npm:^46.9.0" events: "npm:^3.3.0" google-protobuf: "npm:^3.12.2" - karma: "npm:^6.4.1" + karma: "npm:^6.4.3" karma-chai: "npm:^0.1.0" karma-chrome-launcher: "npm:^3.1.0" karma-firefox-launcher: "npm:^2.1.2" @@ -1806,7 +1806,7 @@ __metadata: glob: "npm:^10.3.4" https-browserify: "npm:^1.0.0" js-merkle: "npm:^0.1.5" - karma: "npm:^6.4.1" + karma: "npm:^6.4.3" karma-chai: "npm:^0.1.0" karma-chrome-launcher: "npm:^3.1.0" karma-firefox-launcher: "npm:^2.1.2" @@ -1903,7 +1903,7 @@ __metadata: eslint-plugin-import: "npm:^2.29.0" events: "npm:^3.3.0" https-browserify: "npm:^1.0.0" - karma: "npm:^6.4.1" + karma: "npm:^6.4.3" karma-chai: "npm:^0.1.0" karma-chrome-launcher: "npm:^3.1.0" karma-firefox-launcher: "npm:^2.1.2" @@ -1966,7 +1966,7 @@ __metadata: fast-json-patch: "npm:^3.1.1" https-browserify: "npm:^1.0.0" json-schema-diff-validator: "npm:^0.4.1" - karma: "npm:^6.4.1" + karma: "npm:^6.4.3" karma-chai: "npm:^0.1.0" karma-chrome-launcher: "npm:^3.1.0" karma-firefox-launcher: "npm:^2.1.2" @@ -6274,7 +6274,7 @@ __metadata: eslint-plugin-import: "npm:^2.29.0" events: "npm:^3.3.0" https-browserify: "npm:^1.0.0" - karma: "npm:^6.4.1" + karma: "npm:^6.4.3" karma-chai: "npm:^0.1.0" karma-chrome-launcher: "npm:^3.1.0" karma-firefox-launcher: "npm:^2.1.2" @@ -6438,6 +6438,18 @@ __metadata: languageName: node linkType: hard +"debug@npm:~4.3.4": + version: 4.3.5 + resolution: "debug@npm:4.3.5" + dependencies: + ms: "npm:2.1.2" + peerDependenciesMeta: + supports-color: + optional: true + checksum: cb6eab424c410e07813ca1392888589972ce9a32b8829c6508f5e1f25f3c3e70a76731610ae55b4bbe58d1a2fffa1424b30e97fa8d394e49cd2656a9643aedd2 + languageName: node + linkType: hard + "debuglog@npm:^1.0.1": version: 1.0.1 resolution: "debuglog@npm:1.0.1" @@ -9924,9 +9936,9 @@ __metadata: languageName: node linkType: hard -"karma@npm:^6.4.1": - version: 6.4.1 - resolution: "karma@npm:6.4.1" +"karma@npm:^6.4.3": + version: 6.4.3 + resolution: "karma@npm:6.4.3" dependencies: "@colors/colors": "npm:1.5.0" body-parser: "npm:^1.19.0" @@ -9947,14 +9959,14 @@ __metadata: qjobs: "npm:^1.2.0" range-parser: "npm:^1.2.1" rimraf: "npm:^3.0.2" - socket.io: "npm:^4.4.1" + socket.io: "npm:^4.7.2" source-map: "npm:^0.6.1" tmp: "npm:^0.2.1" ua-parser-js: "npm:^0.7.30" yargs: "npm:^16.1.1" bin: karma: bin/karma - checksum: 24faabfaf05fbef1bb3a7b218549ace55566c59f64e3602c55e5fc221c3fcec69f80ec43901f64225d0020fd3f9d756e947df609530ef0a5565020096bf6a056 + checksum: 7fc194f5d4b0dae27e97375d0e005a7b74a6bee3c6ad676c3e21ec7c6309f32202d62cf0f0645ea99aa5adea455d79afe1d32e8aa28ac3c09609f16d0e2120ca languageName: node linkType: hard @@ -13896,10 +13908,13 @@ __metadata: languageName: node linkType: hard -"socket.io-adapter@npm:~2.4.0": - version: 2.4.0 - resolution: "socket.io-adapter@npm:2.4.0" - checksum: e10c8c36a1b0744432d9fb7266c69268fb11cacb548e95f5feb7708c1438c4c1e034abf3eee56dc3fd4d5524aba4e5a306a402f0c15efb1334be364a05bfad04 +"socket.io-adapter@npm:~2.5.2": + version: 2.5.5 + resolution: "socket.io-adapter@npm:2.5.5" + dependencies: + debug: "npm:~4.3.4" + ws: "npm:~8.17.1" + checksum: e364733a4c34ff1d4a02219e409bd48074fd614b7f5b0568ccfa30dd553252a5b9a41056931306a276891d13ea76a19e2c6f2128a4675c37323f642896874d80 languageName: node linkType: hard @@ -13913,17 +13928,18 @@ __metadata: languageName: node linkType: hard -"socket.io@npm:^4.4.1": - version: 4.5.2 - resolution: "socket.io@npm:4.5.2" +"socket.io@npm:^4.7.2": + version: 4.7.5 + resolution: "socket.io@npm:4.7.5" dependencies: accepts: "npm:~1.3.4" base64id: "npm:~2.0.0" + cors: "npm:~2.8.5" debug: "npm:~4.3.2" - engine.io: "npm:~6.2.0" - socket.io-adapter: "npm:~2.4.0" - socket.io-parser: "npm:~4.2.0" - checksum: 872605db0f8bb3fa78c54ba13b22dced2270a7a52967ef215c3121b93312606ec5e0862a6cde058a63ba23c404733e52d560c3ca73dc3d0c8cbed35bbae65731 + engine.io: "npm:~6.5.2" + socket.io-adapter: "npm:~2.5.2" + socket.io-parser: "npm:~4.2.4" + checksum: 911528f5bfdf83dbe2b154866884b736a7498f112f294a6f8420418fa11baadf08578869dab3e220c943094ff0d17b7f4587de3b1ad39679d9c12ed4cb226900 languageName: node linkType: hard From 9edcd10bdbba038180baa298056a70b48ec67905 Mon Sep 17 00:00:00 2001 From: Ivan Shumkov Date: Sat, 22 Jun 2024 21:26:43 +0700 Subject: [PATCH 3/5] fix(dashmate): background SSL renewal stuck on error (#1897) --- .../src/helper/scheduleRenewZeroSslCertificateFactory.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/dashmate/src/helper/scheduleRenewZeroSslCertificateFactory.js b/packages/dashmate/src/helper/scheduleRenewZeroSslCertificateFactory.js index 8b490c6b3e9..c403c2bef39 100644 --- a/packages/dashmate/src/helper/scheduleRenewZeroSslCertificateFactory.js +++ b/packages/dashmate/src/helper/scheduleRenewZeroSslCertificateFactory.js @@ -55,6 +55,7 @@ export default function scheduleRenewZeroSslCertificateFactory( await tasks.run({ expirationDays: Certificate.EXPIRATION_LIMIT_DAYS, + noRetry: true, }); // Write config files From e1e85b82b6dd52d54436aebc0ae5951fc1834893 Mon Sep 17 00:00:00 2001 From: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com> Date: Sun, 23 Jun 2024 18:28:38 +0900 Subject: [PATCH 4/5] refactor(dpp): change String and ByteArray DocumentPropertyType sizes to structs (#1874) --- .../class_methods/try_from_schema/v0/mod.rs | 62 ++++++----- .../document_type/property/mod.rs | 104 ++++++++++-------- .../v0/mod.rs | 2 +- .../document_type/v0/random_document_type.rs | 51 +++++---- .../src/data_contract/errors/contract.rs | 1 - .../src/tests/fixtures/identity_fixture.rs | 3 +- 6 files changed, 125 insertions(+), 98 deletions(-) diff --git a/packages/rs-dpp/src/data_contract/document_type/class_methods/try_from_schema/v0/mod.rs b/packages/rs-dpp/src/data_contract/document_type/class_methods/try_from_schema/v0/mod.rs index 97534fe049e..9c79f5c2812 100644 --- a/packages/rs-dpp/src/data_contract/document_type/class_methods/try_from_schema/v0/mod.rs +++ b/packages/rs-dpp/src/data_contract/document_type/class_methods/try_from_schema/v0/mod.rs @@ -39,7 +39,9 @@ use crate::data_contract::document_type::property_names::{ CAN_BE_DELETED, CREATION_RESTRICTION_MODE, DOCUMENTS_KEEP_HISTORY, DOCUMENTS_MUTABLE, TRADE_MODE, TRANSFERABLE, }; -use crate::data_contract::document_type::{property_names, DocumentType}; +use crate::data_contract::document_type::{ + property_names, ByteArrayPropertySizes, DocumentType, StringPropertySizes, +}; use crate::data_contract::errors::DataContractError; use crate::data_contract::storage_requirements::keys_for_document_type::StorageKeyRequirements; use crate::identity::SecurityLevel; @@ -383,7 +385,7 @@ impl DocumentTypeV0 { })?; // Validate indexed property type - match property_definition.property_type { + match &property_definition.property_type { // Array and objects aren't supported for indexing yet DocumentPropertyType::Array(_) | DocumentPropertyType::Object(_) @@ -399,9 +401,9 @@ impl DocumentTypeV0 { ))) } // Indexed byte array size must be limited - DocumentPropertyType::ByteArray(_, maybe_max_size) - if maybe_max_size.is_none() - || maybe_max_size.unwrap() + DocumentPropertyType::ByteArray(sizes) + if sizes.max_size.is_none() + || sizes.max_size.unwrap() > MAX_INDEXED_BYTE_ARRAY_PROPERTY_LENGTH => { Err(ProtocolError::ConsensusError(Box::new( @@ -419,9 +421,9 @@ impl DocumentTypeV0 { ))) } // Indexed string length must be limited - DocumentPropertyType::String(_, maybe_max_length) - if maybe_max_length.is_none() - || maybe_max_length.unwrap() + DocumentPropertyType::String(sizes) + if sizes.max_length.is_none() + || sizes.max_length.unwrap() > MAX_INDEXED_STRING_PROPERTY_LENGTH => { Err(ProtocolError::ConsensusError(Box::new( @@ -567,12 +569,14 @@ fn insert_values( Some("application/x.dash.dpp.identifier") => { DocumentPropertyType::Identifier } - Some(_) | None => DocumentPropertyType::ByteArray( - inner_properties - .get_optional_integer(property_names::MIN_ITEMS)?, - inner_properties - .get_optional_integer(property_names::MAX_ITEMS)?, - ), + Some(_) | None => { + DocumentPropertyType::ByteArray(ByteArrayPropertySizes { + min_size: inner_properties + .get_optional_integer(property_names::MIN_ITEMS)?, + max_size: inner_properties + .get_optional_integer(property_names::MAX_ITEMS)?, + }) + } } } else { return Err(DataContractError::InvalidContractStructure( @@ -622,10 +626,12 @@ fn insert_values( } "string" => { - field_type = DocumentPropertyType::String( - inner_properties.get_optional_integer(property_names::MIN_LENGTH)?, - inner_properties.get_optional_integer(property_names::MAX_LENGTH)?, - ); + field_type = DocumentPropertyType::String(StringPropertySizes { + min_length: inner_properties + .get_optional_integer(property_names::MIN_LENGTH)?, + max_length: inner_properties + .get_optional_integer(property_names::MAX_LENGTH)?, + }); document_properties.insert( prefixed_property_key, DocumentProperty { @@ -673,10 +679,10 @@ fn insert_values_nested( let field_type = match type_value { "integer" => DocumentPropertyType::Integer, "number" => DocumentPropertyType::Number, - "string" => DocumentPropertyType::String( - inner_properties.get_optional_integer(property_names::MIN_LENGTH)?, - inner_properties.get_optional_integer(property_names::MAX_LENGTH)?, - ), + "string" => DocumentPropertyType::String(StringPropertySizes { + min_length: inner_properties.get_optional_integer(property_names::MIN_LENGTH)?, + max_length: inner_properties.get_optional_integer(property_names::MAX_LENGTH)?, + }), "array" => { // Only handling bytearrays for v1 // Return an error if it is not a byte array @@ -689,10 +695,14 @@ fn insert_values_nested( Some("application/x.dash.dpp.identifier") => { DocumentPropertyType::Identifier } - Some(_) | None => DocumentPropertyType::ByteArray( - inner_properties.get_optional_integer(property_names::MIN_ITEMS)?, - inner_properties.get_optional_integer(property_names::MAX_ITEMS)?, - ), + Some(_) | None => { + DocumentPropertyType::ByteArray(ByteArrayPropertySizes { + min_size: inner_properties + .get_optional_integer(property_names::MIN_ITEMS)?, + max_size: inner_properties + .get_optional_integer(property_names::MAX_ITEMS)?, + }) + } } } else { return Err(DataContractError::InvalidContractStructure( diff --git a/packages/rs-dpp/src/data_contract/document_type/property/mod.rs b/packages/rs-dpp/src/data_contract/document_type/property/mod.rs index e3a4003239b..b4d69b8e071 100644 --- a/packages/rs-dpp/src/data_contract/document_type/property/mod.rs +++ b/packages/rs-dpp/src/data_contract/document_type/property/mod.rs @@ -28,14 +28,26 @@ pub struct DocumentProperty { pub required: bool, } +#[derive(Debug, PartialEq, Clone, Serialize)] +pub struct StringPropertySizes { + pub min_length: Option, + pub max_length: Option, +} + +#[derive(Debug, PartialEq, Clone, Serialize)] +pub struct ByteArrayPropertySizes { + pub min_size: Option, + pub max_size: Option, +} + // @append_only #[derive(Debug, PartialEq, Clone, Serialize)] pub enum DocumentPropertyType { ///Todo decompose integer Integer, Number, - String(Option, Option), // TODO use structure - ByteArray(Option, Option), // TODO user structure + String(StringPropertySizes), + ByteArray(ByteArrayPropertySizes), Identifier, Boolean, Date, @@ -62,8 +74,8 @@ impl DocumentPropertyType { match self { DocumentPropertyType::Integer => "integer".to_string(), DocumentPropertyType::Number => "number".to_string(), - DocumentPropertyType::String(_, _) => "string".to_string(), - DocumentPropertyType::ByteArray(_, _) => "byteArray".to_string(), + DocumentPropertyType::String(_) => "string".to_string(), + DocumentPropertyType::ByteArray(_) => "byteArray".to_string(), DocumentPropertyType::Identifier => "identifier".to_string(), DocumentPropertyType::Boolean => "boolean".to_string(), DocumentPropertyType::Date => "date".to_string(), @@ -77,13 +89,13 @@ impl DocumentPropertyType { match self { DocumentPropertyType::Integer => Some(8), DocumentPropertyType::Number => Some(8), - DocumentPropertyType::String(min_length, _) => match min_length { + DocumentPropertyType::String(sizes) => match sizes.min_length { None => Some(0), - Some(size) => Some(*size), + Some(size) => Some(size), }, - DocumentPropertyType::ByteArray(min_size, _) => match min_size { + DocumentPropertyType::ByteArray(sizes) => match sizes.min_size { None => Some(0), - Some(size) => Some(*size), + Some(size) => Some(size), }, DocumentPropertyType::Boolean => Some(1), DocumentPropertyType::Date => Some(8), @@ -101,13 +113,13 @@ impl DocumentPropertyType { match self { DocumentPropertyType::Integer => Some(8), DocumentPropertyType::Number => Some(8), - DocumentPropertyType::String(min_length, _) => match min_length { + DocumentPropertyType::String(sizes) => match sizes.min_length { None => Some(0), - Some(size) => Some(*size * 4), + Some(size) => Some(size * 4), }, - DocumentPropertyType::ByteArray(min_size, _) => match min_size { + DocumentPropertyType::ByteArray(sizes) => match sizes.min_size { None => Some(0), - Some(size) => Some(*size), + Some(size) => Some(size), }, DocumentPropertyType::Boolean => Some(1), DocumentPropertyType::Date => Some(8), @@ -125,13 +137,13 @@ impl DocumentPropertyType { match self { DocumentPropertyType::Integer => Some(8), DocumentPropertyType::Number => Some(8), - DocumentPropertyType::String(_, max_length) => match max_length { + DocumentPropertyType::String(sizes) => match sizes.max_length { None => Some(u16::MAX), - Some(size) => Some(*size * 4), + Some(size) => Some(size * 4), }, - DocumentPropertyType::ByteArray(_, max_size) => match max_size { + DocumentPropertyType::ByteArray(sizes) => match sizes.max_size { None => Some(u16::MAX), - Some(size) => Some(*size), + Some(size) => Some(size), }, DocumentPropertyType::Boolean => Some(1), DocumentPropertyType::Date => Some(8), @@ -149,13 +161,13 @@ impl DocumentPropertyType { match self { DocumentPropertyType::Integer => Some(8), DocumentPropertyType::Number => Some(8), - DocumentPropertyType::String(_, max_length) => match max_length { + DocumentPropertyType::String(sizes) => match sizes.max_length { None => Some(16383), - Some(size) => Some(*size), + Some(size) => Some(size), }, - DocumentPropertyType::ByteArray(_, max_size) => match max_size { + DocumentPropertyType::ByteArray(sizes) => match sizes.max_size { None => Some(u16::MAX), - Some(size) => Some(*size), + Some(size) => Some(size), }, DocumentPropertyType::Boolean => Some(1), DocumentPropertyType::Date => Some(8), @@ -231,7 +243,7 @@ impl DocumentPropertyType { match self { DocumentPropertyType::Integer => Value::I64(rng.gen::()), DocumentPropertyType::Number => Value::Float(rng.gen::()), - DocumentPropertyType::String(_, _) => { + DocumentPropertyType::String(_) => { let size = self.random_size(rng); Value::Text( rng.sample_iter(Alphanumeric) @@ -240,7 +252,7 @@ impl DocumentPropertyType { .collect(), ) } - DocumentPropertyType::ByteArray(_, _) => { + DocumentPropertyType::ByteArray(_) => { let size = self.random_size(rng); if self.min_size() == self.max_size() { match size { @@ -290,7 +302,7 @@ impl DocumentPropertyType { match self { DocumentPropertyType::Integer => Value::I64(rng.gen::()), DocumentPropertyType::Number => Value::Float(rng.gen::()), - DocumentPropertyType::String(_, _) => { + DocumentPropertyType::String(_) => { let size = self.min_size().unwrap(); Value::Text( rng.sample_iter(Alphanumeric) @@ -299,7 +311,7 @@ impl DocumentPropertyType { .collect(), ) } - DocumentPropertyType::ByteArray(_, _) => { + DocumentPropertyType::ByteArray(_) => { let size = self.min_size().unwrap(); Value::Bytes(rng.sample_iter(Standard).take(size as usize).collect()) } @@ -330,7 +342,7 @@ impl DocumentPropertyType { match self { DocumentPropertyType::Integer => Value::I64(rng.gen::()), DocumentPropertyType::Number => Value::Float(rng.gen::()), - DocumentPropertyType::String(_, _) => { + DocumentPropertyType::String(_) => { let size = self.max_size().unwrap(); Value::Text( rng.sample_iter(Alphanumeric) @@ -339,7 +351,7 @@ impl DocumentPropertyType { .collect(), ) } - DocumentPropertyType::ByteArray(_, _) => { + DocumentPropertyType::ByteArray(_) => { let size = self.max_size().unwrap(); Value::Bytes(rng.sample_iter(Standard).take(size as usize).collect()) } @@ -401,7 +413,7 @@ impl DocumentPropertyType { } } match self { - DocumentPropertyType::String(_, _) => { + DocumentPropertyType::String(_) => { let bytes = Self::read_varint_value(buf)?; let string = String::from_utf8(bytes).map_err(|_| { DataContractError::CorruptedSerialization( @@ -437,11 +449,11 @@ impl DocumentPropertyType { _ => Ok((Some(Value::Bool(true)), false)), } } - DocumentPropertyType::ByteArray(min, max) => { - match (min, max) { + DocumentPropertyType::ByteArray(sizes) => { + match (sizes.min_size, sizes.max_size) { (Some(min), Some(max)) if min == max => { // if min == max, then we don't need a varint for the length - let len = *min as usize; + let len = min as usize; let mut bytes = vec![0; len]; buf.read_exact(&mut bytes).map_err(|_| { DataContractError::DecodingContractError(DecodingError::new(format!( @@ -543,7 +555,7 @@ impl DocumentPropertyType { return Ok(vec![]); } match self { - DocumentPropertyType::String(_, _) => { + DocumentPropertyType::String(_) => { if let Value::Text(value) = value { let vec = value.into_bytes(); let mut r_vec = vec.len().encode_var_vec(); @@ -589,7 +601,7 @@ impl DocumentPropertyType { Ok(r_vec) } } - DocumentPropertyType::ByteArray(_, _) => { + DocumentPropertyType::ByteArray(_) => { let mut bytes = value.into_binary_bytes()?; let mut r_vec = bytes.len().encode_var_vec(); @@ -675,7 +687,7 @@ impl DocumentPropertyType { return Ok(vec![]); } return match self { - DocumentPropertyType::String(_, _) => { + DocumentPropertyType::String(_) => { let value_as_text = value.as_text().ok_or_else(get_field_type_matching_error)?; let vec = value_as_text.as_bytes().to_vec(); let mut r_vec = vec.len().encode_var_vec(); @@ -704,7 +716,7 @@ impl DocumentPropertyType { let value_as_f64 = value.to_float().map_err(ProtocolError::ValueError)?; Ok(value_as_f64.to_be_bytes().to_vec()) } - DocumentPropertyType::ByteArray(min, max) => match (min, max) { + DocumentPropertyType::ByteArray(sizes) => match (sizes.min_size, sizes.max_size) { (Some(min), Some(max)) if min == max => Ok(value.to_binary_bytes()?), _ => { let mut bytes = value.to_binary_bytes()?; @@ -786,7 +798,7 @@ impl DocumentPropertyType { return Ok(vec![]); } match self { - DocumentPropertyType::String(_, _) => { + DocumentPropertyType::String(_) => { let value_as_text = value.as_text().ok_or_else(get_field_type_matching_error)?; let vec = value_as_text.as_bytes().to_vec(); if vec.is_empty() { @@ -807,7 +819,7 @@ impl DocumentPropertyType { DocumentPropertyType::Number => Ok(Self::encode_float( value.to_float().map_err(ProtocolError::ValueError)?, )), - DocumentPropertyType::ByteArray(_, _) => { + DocumentPropertyType::ByteArray(_) => { value.to_binary_bytes().map_err(ProtocolError::ValueError) } DocumentPropertyType::Identifier => value @@ -839,16 +851,16 @@ impl DocumentPropertyType { // Given a field type and a value this function chooses and executes the right encoding method pub fn value_from_string(&self, str: &str) -> Result { match self { - DocumentPropertyType::String(min, max) => { - if let Some(min) = min { - if str.len() < *min as usize { + DocumentPropertyType::String(sizes) => { + if let Some(min) = sizes.min_length { + if str.len() < min as usize { return Err(DataContractError::FieldRequirementUnmet( "string is too small".to_string(), )); } } - if let Some(max) = max { - if str.len() > *max as usize { + if let Some(max) = sizes.max_length { + if str.len() > max as usize { return Err(DataContractError::FieldRequirementUnmet( "string is too big".to_string(), )); @@ -866,16 +878,16 @@ impl DocumentPropertyType { ) }) } - DocumentPropertyType::ByteArray(min, max) => { - if let Some(min) = min { - if str.len() / 2 < *min as usize { + DocumentPropertyType::ByteArray(sizes) => { + if let Some(min) = sizes.min_size { + if str.len() / 2 < min as usize { return Err(DataContractError::FieldRequirementUnmet( "byte array is too small".to_string(), )); } } - if let Some(max) = max { - if str.len() / 2 > *max as usize { + if let Some(max) = sizes.max_size { + if str.len() / 2 > max as usize { return Err(DataContractError::FieldRequirementUnmet( "byte array is too big".to_string(), )); diff --git a/packages/rs-dpp/src/data_contract/document_type/schema/find_identifier_and_binary_paths/v0/mod.rs b/packages/rs-dpp/src/data_contract/document_type/schema/find_identifier_and_binary_paths/v0/mod.rs index 35fb76650d1..3fc2259f7ef 100644 --- a/packages/rs-dpp/src/data_contract/document_type/schema/find_identifier_and_binary_paths/v0/mod.rs +++ b/packages/rs-dpp/src/data_contract/document_type/schema/find_identifier_and_binary_paths/v0/mod.rs @@ -32,7 +32,7 @@ impl DocumentTypeV0 { DocumentPropertyType::Identifier => { identifier_paths.insert(new_path); } - DocumentPropertyType::ByteArray(_, _) => { + DocumentPropertyType::ByteArray(_) => { binary_paths.insert(new_path); } DocumentPropertyType::Object(inner_properties) => { diff --git a/packages/rs-dpp/src/data_contract/document_type/v0/random_document_type.rs b/packages/rs-dpp/src/data_contract/document_type/v0/random_document_type.rs index 3e46c291ea1..35649093130 100644 --- a/packages/rs-dpp/src/data_contract/document_type/v0/random_document_type.rs +++ b/packages/rs-dpp/src/data_contract/document_type/v0/random_document_type.rs @@ -106,6 +106,7 @@ use crate::data_contract::document_type::v0::StatelessJsonSchemaLazyValidator; use crate::data_contract::document_type::{ v0::DocumentTypeV0, DocumentProperty, DocumentPropertyType, DocumentType, Index, }; +use crate::data_contract::document_type::{ByteArrayPropertySizes, StringPropertySizes}; use crate::document::transfer::Transferable; use crate::identity::SecurityLevel; use crate::nft::TradeMode; @@ -145,14 +146,17 @@ impl DocumentTypeV0 { let random_weight = rng.gen_range(0..total_weight); let document_type = if random_weight < field_weights.string_weight { let has_min_len = rng.gen_bool(parameters.field_bounds.string_has_min_len_chance); - let min_len = if has_min_len { + let min_length = if has_min_len { Some(rng.gen_range(parameters.field_bounds.string_min_len.clone())) } else { None }; // If a string property is used in an index it must have maxLength 63 or less (v1.0-dev) - let max_len = Some(63); - DocumentPropertyType::String(min_len, max_len) + let max_length = Some(63); + DocumentPropertyType::String(StringPropertySizes { + min_length, + max_length, + }) } else if random_weight < field_weights.string_weight + field_weights.integer_weight { DocumentPropertyType::Integer } else if random_weight @@ -179,14 +183,14 @@ impl DocumentTypeV0 { } else { let has_min_len = rng.gen_bool(parameters.field_bounds.byte_array_has_min_len_chance); - let min_len = if has_min_len { + let min_size = if has_min_len { Some(rng.gen_range(parameters.field_bounds.byte_array_min_len.clone())) } else { None }; // Indexed arrays must have maxItems 255 or less (v1.0-dev) - let max_len = Some(255); - DocumentPropertyType::ByteArray(min_len, max_len) + let max_size = Some(255); + DocumentPropertyType::ByteArray(ByteArrayPropertySizes { min_size, max_size }) }; DocumentProperty { @@ -263,14 +267,14 @@ impl DocumentTypeV0 { let mut position_counter = 0; let properties_json_schema = properties.iter().map(|(key, prop)| { let mut schema_part = match &prop.property_type { - DocumentPropertyType::String(min, max) => { + DocumentPropertyType::String(sizes) => { let mut schema = serde_json::Map::new(); schema.insert("type".to_string(), serde_json::Value::String("string".to_owned())); - if let Some(min_len) = min { - schema.insert("minLength".to_string(), serde_json::Value::Number(serde_json::Number::from(*min_len))); + if let Some(min_len) = sizes.min_length { + schema.insert("minLength".to_string(), serde_json::Value::Number(serde_json::Number::from(min_len))); } - if let Some(max_len) = max { - schema.insert("maxLength".to_string(), serde_json::Value::Number(serde_json::Number::from(*max_len))); + if let Some(max_len) = sizes.max_length { + schema.insert("maxLength".to_string(), serde_json::Value::Number(serde_json::Number::from(max_len))); } serde_json::Value::Object(schema) }, @@ -305,14 +309,14 @@ impl DocumentTypeV0 { DocumentPropertyType::Boolean => { serde_json::json!({"type": "boolean"}) }, - DocumentPropertyType::ByteArray(min, max) => { + DocumentPropertyType::ByteArray(sizes) => { let mut schema = serde_json::Map::new(); schema.insert("type".to_string(), serde_json::Value::String("array".to_owned())); - if let Some(min_len) = min { - schema.insert("minItems".to_string(), serde_json::Value::Number(serde_json::Number::from(*min_len))); + if let Some(min_len) = sizes.min_size { + schema.insert("minItems".to_string(), serde_json::Value::Number(serde_json::Number::from(min_len))); } - if let Some(max_len) = max { - schema.insert("maxItems".to_string(), serde_json::Value::Number(serde_json::Number::from(*max_len))); + if let Some(max_len) = sizes.max_size { + schema.insert("maxItems".to_string(), serde_json::Value::Number(serde_json::Number::from(max_len))); } schema.insert("byteArray".to_string(), serde_json::Value::Bool(true)); serde_json::Value::Object(schema) @@ -463,14 +467,17 @@ impl DocumentTypeV0 { let random_weight = rng.gen_range(0..total_weight); let document_type = if random_weight < field_weights.string_weight { let has_min_len = rng.gen_bool(parameters.field_bounds.string_has_min_len_chance); - let min_len = if has_min_len { + let min_length = if has_min_len { Some(rng.gen_range(parameters.field_bounds.string_min_len.clone())) } else { None }; // If a string property is used in an index it must have maxLength 63 or less (v1.0-dev) - let max_len = Some(63); - DocumentPropertyType::String(min_len, max_len) + let max_length = Some(63); + DocumentPropertyType::String(StringPropertySizes { + min_length, + max_length, + }) } else if random_weight < field_weights.string_weight + field_weights.integer_weight { DocumentPropertyType::Integer } else if random_weight @@ -497,14 +504,14 @@ impl DocumentTypeV0 { } else { let has_min_len = rng.gen_bool(parameters.field_bounds.byte_array_has_min_len_chance); - let min_len = if has_min_len { + let min_size = if has_min_len { Some(rng.gen_range(parameters.field_bounds.byte_array_min_len.clone())) } else { None }; // Indexed arrays must have maxItems 255 or less (v1.0-dev) - let max_len = Some(255); - DocumentPropertyType::ByteArray(min_len, max_len) + let max_size = Some(255); + DocumentPropertyType::ByteArray(ByteArrayPropertySizes { min_size, max_size }) }; DocumentProperty { diff --git a/packages/rs-dpp/src/data_contract/errors/contract.rs b/packages/rs-dpp/src/data_contract/errors/contract.rs index 5b152a0a6b1..32989597a00 100644 --- a/packages/rs-dpp/src/data_contract/errors/contract.rs +++ b/packages/rs-dpp/src/data_contract/errors/contract.rs @@ -3,7 +3,6 @@ use crate::consensus::basic::decode::DecodingError; use crate::consensus::basic::BasicError; use bincode::{Decode, Encode}; use platform_serialization_derive::{PlatformDeserialize, PlatformSerialize}; -use platform_value::Identifier; use thiserror::Error; use crate::consensus::basic::document::InvalidDocumentTypeError; diff --git a/packages/rs-dpp/src/tests/fixtures/identity_fixture.rs b/packages/rs-dpp/src/tests/fixtures/identity_fixture.rs index b0e92a5850d..b8ff26652ab 100644 --- a/packages/rs-dpp/src/tests/fixtures/identity_fixture.rs +++ b/packages/rs-dpp/src/tests/fixtures/identity_fixture.rs @@ -1,10 +1,9 @@ use crate::identity::identity_public_key::v0::IdentityPublicKeyV0; -use crate::identity::{IdentityPublicKey, IdentityV0, KeyType, Purpose, SecurityLevel}; +use crate::identity::{IdentityV0, KeyType, Purpose, SecurityLevel}; use platform_value::platform_value; use platform_value::string_encoding::Encoding; use platform_value::BinaryData; use serde_json::json; -use std::collections::BTreeMap; use crate::prelude::{Identifier, Identity}; From a89d854bb594b60c21291dac7aef0c32e7b5a7e1 Mon Sep 17 00:00:00 2001 From: Ivan Shumkov Date: Sun, 23 Jun 2024 19:13:51 +0700 Subject: [PATCH 5/5] perf(drive)!: verify instant lock signatures with Drive (#1875) --- .github/actions/rust/action.yaml | 2 +- .github/workflows/tests-rs-package.yml | 2 +- Cargo.lock | 1 + .../configs/defaults/getBaseConfigFactory.js | 29 +- .../configs/defaults/getLocalConfigFactory.js | 24 +- .../defaults/getTestnetConfigFactory.js | 24 +- .../configs/getConfigFileMigrationsFactory.js | 54 ++ packages/dashmate/docker-compose.yml | 16 +- .../dashmate/src/config/configJsonSchema.js | 54 +- .../local/configureTenderdashTaskFactory.js | 2 +- .../local/enableCoreQuorumsTaskFactory.js | 2 +- .../test/unit/commands/config/set.spec.js | 8 +- ...nstant_asset_lock_proof_signature_error.rs | 2 +- packages/rs-drive-abci/.env.local | 15 +- packages/rs-drive-abci/.env.mainnet | 12 + packages/rs-drive-abci/.env.testnet | 12 + packages/rs-drive-abci/Cargo.toml | 3 +- packages/rs-drive-abci/src/config.rs | 465 ++++++++++++--- .../src/execution/check_tx/v0/mod.rs | 257 +++++---- .../engine/finalize_block_proposal/v0/mod.rs | 15 +- .../initialization/init_chain/v0/mod.rs | 3 +- .../v0/mod.rs | 4 +- .../process_block_fees/v0/mod.rs | 4 +- .../update_quorum_info/v0/mod.rs | 395 ++++++++----- .../core_chain_lock/choose_quorum/mod.rs | 2 +- .../v0/mod.rs | 2 + .../verify_chain_lock_locally/v0/mod.rs | 78 +-- .../core_instant_send_lock/mod.rs | 2 + .../verify_recent_signature_locally/mod.rs | 47 ++ .../verify_recent_signature_locally/v0/mod.rs | 144 +++++ .../src/execution/platform_events/mod.rs | 3 + .../process_raw_state_transitions/v0/mod.rs | 13 + .../asset_lock/proof/validate/instant/mod.rs | 30 +- .../data_contract_update/mod.rs | 8 +- .../state_transitions/identity_create/mod.rs | 81 ++- .../state_transitions/identity_top_up/mod.rs | 17 +- packages/rs-drive-abci/src/mimic/mod.rs | 10 +- .../rs-drive-abci/src/mimic/test_quorum.rs | 8 + .../rs-drive-abci/src/platform_types/mod.rs | 4 +- .../src/platform_types/platform/mod.rs | 3 +- .../src/platform_types/platform_state/mod.rs | 39 +- .../platform_types/platform_state/v0/mod.rs | 92 ++- .../signature_verification_quorum_set/mod.rs | 141 +++++ .../v0/for_saving.rs | 167 ++++++ .../v0/mod.rs | 3 + .../v0/quorum_set.rs | 296 ++++++++++ .../v0/quorums.rs | 220 ++++++++ .../signature_verification_quorums/mod.rs | 91 --- .../signature_verification_quorums/v0/mod.rs | 198 ------- .../src/platform_types/validator_set/mod.rs | 12 + .../platform_types/validator_set/v0/mod.rs | 22 + .../src/query/response_metadata/v0/mod.rs | 2 +- .../tests/strategy_tests/chain_lock_update.rs | 17 +- .../tests/strategy_tests/core_update_tests.rs | 32 +- .../tests/strategy_tests/execution.rs | 170 ++++-- .../tests/strategy_tests/failures.rs | 29 +- .../tests/strategy_tests/main.rs | 532 ++++++++++++------ .../tests/strategy_tests/masternodes.rs | 1 + .../tests/strategy_tests/query.rs | 23 +- .../tests/strategy_tests/strategy.rs | 180 +++++- .../strategy_tests/upgrade_fork_tests.rs | 164 ++++-- .../src/version/drive_abci_versions.rs | 7 + .../src/version/mocks/v2_test.rs | 10 +- .../src/version/mocks/v3_test.rs | 10 +- .../rs-platform-version/src/version/v1.rs | 10 +- packages/strategy-tests/src/transitions.rs | 30 +- 66 files changed, 3257 insertions(+), 1098 deletions(-) create mode 100644 packages/rs-drive-abci/src/execution/platform_events/core_instant_send_lock/mod.rs create mode 100644 packages/rs-drive-abci/src/execution/platform_events/core_instant_send_lock/verify_recent_signature_locally/mod.rs create mode 100644 packages/rs-drive-abci/src/execution/platform_events/core_instant_send_lock/verify_recent_signature_locally/v0/mod.rs create mode 100644 packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/mod.rs create mode 100644 packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/v0/for_saving.rs create mode 100644 packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/v0/mod.rs create mode 100644 packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/v0/quorum_set.rs create mode 100644 packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/v0/quorums.rs delete mode 100644 packages/rs-drive-abci/src/platform_types/signature_verification_quorums/mod.rs delete mode 100644 packages/rs-drive-abci/src/platform_types/signature_verification_quorums/v0/mod.rs diff --git a/.github/actions/rust/action.yaml b/.github/actions/rust/action.yaml index a6aa86446e0..4965f7721a9 100644 --- a/.github/actions/rust/action.yaml +++ b/.github/actions/rust/action.yaml @@ -5,7 +5,7 @@ inputs: toolchain: description: Rust toolchain to use, stable / nightly / beta, or exact version # The same as in /README.md - default: "stable" + default: "1.76" target: description: Target Rust platform required: false diff --git a/.github/workflows/tests-rs-package.yml b/.github/workflows/tests-rs-package.yml index 77e28b2232f..2cf0b636d12 100644 --- a/.github/workflows/tests-rs-package.yml +++ b/.github/workflows/tests-rs-package.yml @@ -73,7 +73,7 @@ jobs: cache: false - name: Check formatting - run: exit `cargo fmt --check --package=${{ inputs.package }} | wc -l` + run: cargo fmt --check --package=${{ inputs.package }} unused_deps: name: Unused dependencies diff --git a/Cargo.lock b/Cargo.lock index 19c63f23809..f5e046b964f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1653,6 +1653,7 @@ dependencies = [ "dotenvy", "dpp", "drive", + "drive-abci", "envy", "file-rotate", "hex", diff --git a/packages/dashmate/configs/defaults/getBaseConfigFactory.js b/packages/dashmate/configs/defaults/getBaseConfigFactory.js index 9459d657db5..f52fa4ab2ed 100644 --- a/packages/dashmate/configs/defaults/getBaseConfigFactory.js +++ b/packages/dashmate/configs/defaults/getBaseConfigFactory.js @@ -15,7 +15,8 @@ import semver from 'semver'; import fs from 'fs'; import { - NETWORK_TESTNET, PACKAGE_ROOT_DIR, + NETWORK_MAINNET, + PACKAGE_ROOT_DIR, } from '../../src/constants.js'; import Config from '../../src/config/Config.js'; @@ -245,12 +246,28 @@ export default function getBaseConfigFactory(homeDir) { retention: 60 * 3, }, validatorSet: { - llmqType: 4, + quorum: { + llmqType: 4, + dkgInterval: 24, + activeSigners: 24, + rotation: false, + }, }, chainLock: { - llmqType: 2, - dkgInterval: 288, - llmqSize: 400, + quorum: { + llmqType: 2, + dkgInterval: 288, + activeSigners: 4, + rotation: false, + }, + }, + instantLock: { + quorum: { + llmqType: 5, + dkgInterval: 288, + activeSigners: 32, + rotation: true, + }, }, metrics: { enabled: false, @@ -425,7 +442,7 @@ export default function getBaseConfigFactory(homeDir) { }, }, externalIp: null, - network: NETWORK_TESTNET, + network: NETWORK_MAINNET, environment: 'production', }; diff --git a/packages/dashmate/configs/defaults/getLocalConfigFactory.js b/packages/dashmate/configs/defaults/getLocalConfigFactory.js index 33992ceceb7..6148abbf866 100644 --- a/packages/dashmate/configs/defaults/getLocalConfigFactory.js +++ b/packages/dashmate/configs/defaults/getLocalConfigFactory.js @@ -70,12 +70,28 @@ export default function getLocalConfigFactory(getBaseConfig) { }, abci: { validatorSet: { - llmqType: 106, + quorum: { + llmqType: 106, + dkgInterval: 24, + activeSigners: 2, + rotation: false, + }, }, chainLock: { - llmqType: 100, - dkgInterval: 24, - llmqSize: 3, + quorum: { + llmqType: 100, + dkgInterval: 24, + activeSigners: 2, + rotation: false, + }, + }, + instantLock: { + quorum: { + llmqType: 104, + dkgInterval: 24, + activeSigners: 2, + rotation: false, + }, }, }, }, diff --git a/packages/dashmate/configs/defaults/getTestnetConfigFactory.js b/packages/dashmate/configs/defaults/getTestnetConfigFactory.js index 323d63314bb..59210678ce1 100644 --- a/packages/dashmate/configs/defaults/getTestnetConfigFactory.js +++ b/packages/dashmate/configs/defaults/getTestnetConfigFactory.js @@ -55,12 +55,28 @@ export default function getTestnetConfigFactory(homeDir, getBaseConfig) { abci: { epochTime: 3600, validatorSet: { - llmqType: 6, + quorum: { + llmqType: 6, + dkgInterval: 24, + activeSigners: 24, + rotation: false, + }, }, chainLock: { - llmqType: 1, - dkgInterval: 24, - llmqSize: 50, + quorum: { + llmqType: 1, + dkgInterval: 24, + activeSigners: 24, + rotation: false, + }, + }, + instantLock: { + quorum: { + llmqType: 5, + dkgInterval: 288, + activeSigners: 32, + rotation: true, + }, }, }, tenderdash: { diff --git a/packages/dashmate/configs/getConfigFileMigrationsFactory.js b/packages/dashmate/configs/getConfigFileMigrationsFactory.js index cdd3cd9405f..664f9bcf3d8 100644 --- a/packages/dashmate/configs/getConfigFileMigrationsFactory.js +++ b/packages/dashmate/configs/getConfigFileMigrationsFactory.js @@ -40,6 +40,20 @@ export default function getConfigFileMigrationsFactory(homeDir, defaultConfigs) return defaultConfigs.get(baseConfigName); } + function getDefaultConfigByNetwork(network) { + if (network === NETWORK_MAINNET) { + return defaultConfigs.get('mainnet'); + } + if (network === NETWORK_TESTNET) { + return defaultConfigs.get('testnet'); + } + if (network === NETWORK_LOCAL) { + return defaultConfigs.get('local'); + } + + return defaultConfigs.get('base'); + } + return { '0.24.0': (configFile) => { Object.entries(configFile.configs) @@ -613,6 +627,46 @@ export default function getConfigFileMigrationsFactory(homeDir, defaultConfigs) return configFile; }, + '1.0.0-dev.16': (configFile) => { + Object.entries(configFile.configs) + .forEach(([name, options]) => { + if (name === 'base') { + options.network = NETWORK_MAINNET; + } + + const networkConfig = getDefaultConfigByNetwork(options.network); + + options.platform.drive.abci.chainLock.quorum = { + llmqType: networkConfig.get('platform.drive.abci.chainLock.quorum.llmqType'), + dkgInterval: networkConfig.get('platform.drive.abci.chainLock.quorum.dkgInterval'), + activeSigners: networkConfig.get('platform.drive.abci.chainLock.quorum.activeSigners'), + rotation: networkConfig.get('platform.drive.abci.chainLock.quorum.rotation'), + }; + + delete options.platform.drive.abci.chainLock.llmqType; + delete options.platform.drive.abci.chainLock.llmqSize; + delete options.platform.drive.abci.chainLock.dkgInterval; + + options.platform.drive.abci.validatorSet.quorum = { + llmqType: networkConfig.get('platform.drive.abci.validatorSet.quorum.llmqType'), + dkgInterval: networkConfig.get('platform.drive.abci.validatorSet.quorum.dkgInterval'), + activeSigners: networkConfig.get('platform.drive.abci.validatorSet.quorum.activeSigners'), + rotation: networkConfig.get('platform.drive.abci.validatorSet.quorum.rotation'), + }; + + delete options.platform.drive.abci.validatorSet.llmqType; + + options.platform.drive.abci.instantLock = { + quorum: { + llmqType: networkConfig.get('platform.drive.abci.instantLock.quorum.llmqType'), + dkgInterval: networkConfig.get('platform.drive.abci.instantLock.quorum.dkgInterval'), + activeSigners: networkConfig.get('platform.drive.abci.instantLock.quorum.activeSigners'), + rotation: networkConfig.get('platform.drive.abci.instantLock.quorum.rotation'), + }, + }; + }); + return configFile; + }, }; } diff --git a/packages/dashmate/docker-compose.yml b/packages/dashmate/docker-compose.yml index e4782168e48..3d41a95ecd6 100644 --- a/packages/dashmate/docker-compose.yml +++ b/packages/dashmate/docker-compose.yml @@ -65,10 +65,18 @@ services: - MASTERNODE_REWARD_SHARES_SECOND_PUBLIC_KEY=${PLATFORM_MASTERNODE_REWARD_SHARES_SECOND_PUBLIC_KEY} - WITHDRAWALS_MASTER_PUBLIC_KEY=${PLATFORM_WITHDRAWALS_MASTER_PUBLIC_KEY} - WITHDRAWALS_SECOND_PUBLIC_KEY=${PLATFORM_WITHDRAWALS_SECOND_PUBLIC_KEY} - - VALIDATOR_SET_QUORUM_TYPE=${PLATFORM_DRIVE_ABCI_VALIDATOR_SET_LLMQ_TYPE:?err} - - CHAIN_LOCK_QUORUM_TYPE=${PLATFORM_DRIVE_ABCI_CHAIN_LOCK_LLMQ_TYPE:?err} - - CHAIN_LOCK_QUORUM_WINDOW=${PLATFORM_DRIVE_ABCI_CHAIN_LOCK_DKG_INTERVAL:?err} - - CHAIN_LOCK_QUORUM_SIZE=${PLATFORM_DRIVE_ABCI_CHAIN_LOCK_LLMQ_SIZE:?err} + - VALIDATOR_SET_QUORUM_TYPE=${PLATFORM_DRIVE_ABCI_VALIDATOR_SET_QUORUM_LLMQ_TYPE:?err} + - VALIDATOR_SET_QUORUM_WINDOW=${PLATFORM_DRIVE_ABCI_VALIDATOR_SET_QUORUM_DKG_INTERVAL:?err} + - VALIDATOR_SET_QUORUM_ACTIVE_SIGNERS=${PLATFORM_DRIVE_ABCI_VALIDATOR_SET_QUORUM_ACTIVE_SIGNERS:?err} + - VALIDATOR_SET_QUORUM_ROTATION=${PLATFORM_DRIVE_ABCI_VALIDATOR_SET_QUORUM_ROTATION:?err} + - CHAIN_LOCK_QUORUM_TYPE=${PLATFORM_DRIVE_ABCI_CHAIN_LOCK_QUORUM_LLMQ_TYPE:?err} + - CHAIN_LOCK_QUORUM_WINDOW=${PLATFORM_DRIVE_ABCI_CHAIN_LOCK_QUORUM_DKG_INTERVAL:?err} + - CHAIN_LOCK_QUORUM_ACTIVE_SIGNERS=${PLATFORM_DRIVE_ABCI_CHAIN_LOCK_QUORUM_ACTIVE_SIGNERS:?err} + - CHAIN_LOCK_QUORUM_ROTATION=${PLATFORM_DRIVE_ABCI_CHAIN_LOCK_QUORUM_ROTATION:?err} + - INSTANT_LOCK_QUORUM_TYPE=${PLATFORM_DRIVE_ABCI_INSTANT_LOCK_QUORUM_LLMQ_TYPE:?err} + - INSTANT_LOCK_QUORUM_WINDOW=${PLATFORM_DRIVE_ABCI_INSTANT_LOCK_QUORUM_DKG_INTERVAL:?err} + - INSTANT_LOCK_QUORUM_ACTIVE_SIGNERS=${PLATFORM_DRIVE_ABCI_INSTANT_LOCK_QUORUM_ACTIVE_SIGNERS:?err} + - INSTANT_LOCK_QUORUM_ROTATION=${PLATFORM_DRIVE_ABCI_INSTANT_LOCK_QUORUM_ROTATION:?err} - DB_PATH=/var/lib/dash/rs-drive-abci/db - ABCI_CONSENSUS_BIND_ADDRESS=tcp://0.0.0.0:26658 - GRPC_BIND_ADDRESS=0.0.0.0:26670 diff --git a/packages/dashmate/src/config/configJsonSchema.js b/packages/dashmate/src/config/configJsonSchema.js index b003a4aded4..d2633953cb2 100644 --- a/packages/dashmate/src/config/configJsonSchema.js +++ b/packages/dashmate/src/config/configJsonSchema.js @@ -105,6 +105,28 @@ export default { additionalProperties: false, required: ['enabled', 'host', 'port'], }, + quorum: { + type: 'object', + properties: { + llmqType: { + type: 'integer', + enum: [1, 2, 3, 4, 5, 6, 100, 101, 102, 103, 104, 105, 106, 107], + }, + dkgInterval: { + type: 'integer', + minimum: 1, + }, + activeSigners: { + type: 'integer', + minimum: 1, + }, + rotation: { + type: 'boolean', + }, + }, + required: ['llmqType', 'dkgInterval', 'activeSigners', 'rotation'], + additionalProperties: false, + }, }, properties: { description: { @@ -766,34 +788,32 @@ export default { validatorSet: { type: 'object', properties: { - llmqType: { - type: 'number', - // https://github.com/dashpay/dashcore-lib/blob/843176fed9fc81feae43ccf319d99e2dd942fe1f/lib/constants/index.js#L50-L99 - enum: [1, 2, 3, 4, 5, 6, 100, 101, 102, 103, 104, 105, 106, 107], + quorum: { + $ref: '#/definitions/quorum', }, }, additionalProperties: false, - required: ['llmqType'], + required: ['quorum'], }, chainLock: { type: 'object', properties: { - llmqType: { - type: 'number', - // https://github.com/dashpay/dashcore-lib/blob/843176fed9fc81feae43ccf319d99e2dd942fe1f/lib/constants/index.js#L50-L99 - enum: [1, 2, 3, 4, 5, 6, 100, 101, 102, 103, 104, 105, 106, 107], - }, - llmqSize: { - type: 'integer', - minimum: 0, + quorum: { + $ref: '#/definitions/quorum', }, - dkgInterval: { - type: 'integer', - minimum: 0, + }, + additionalProperties: false, + required: ['quorum'], + }, + instantLock: { + type: 'object', + properties: { + quorum: { + $ref: '#/definitions/quorum', }, }, additionalProperties: false, - required: ['llmqType', 'llmqSize', 'dkgInterval'], + required: ['quorum'], }, epochTime: { type: 'integer', diff --git a/packages/dashmate/src/listr/tasks/setup/local/configureTenderdashTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/local/configureTenderdashTaskFactory.js index af533570888..da5e7e66fc0 100644 --- a/packages/dashmate/src/listr/tasks/setup/local/configureTenderdashTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/setup/local/configureTenderdashTaskFactory.js @@ -50,7 +50,7 @@ export default function configureTenderdashTaskFactory() { config.set( 'platform.drive.tenderdash.genesis.validator_quorum_type', - config.get('platform.drive.abci.validatorSet.llmqType'), + config.get('platform.drive.abci.validatorSet.quorum.llmqType'), ); }); }, diff --git a/packages/dashmate/src/listr/tasks/setup/local/enableCoreQuorumsTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/local/enableCoreQuorumsTaskFactory.js index 9dd3f68699a..49fbbd47379 100644 --- a/packages/dashmate/src/listr/tasks/setup/local/enableCoreQuorumsTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/setup/local/enableCoreQuorumsTaskFactory.js @@ -268,7 +268,7 @@ export default function enableCoreQuorumsTaskFactory(generateBlocks) { // eslint-disable-next-line prefer-destructuring ctx.quorumHash = quorumList[LLMQ_TYPE_TEST_PLATFORM][0]; - const llmqType = ctx.masternodeCoreServices[0].getConfig().get('platform.drive.abci.validatorSet.llmqType'); + const llmqType = ctx.masternodeCoreServices[0].getConfig().get('platform.drive.abci.validatorSet.quorum.llmqType'); const { result: quorumInfo } = await ctx.seedRpcClient.quorum('info', llmqType, ctx.quorumHash); diff --git a/packages/dashmate/test/unit/commands/config/set.spec.js b/packages/dashmate/test/unit/commands/config/set.spec.js index 94089cb9a77..67b8bef75a3 100644 --- a/packages/dashmate/test/unit/commands/config/set.spec.js +++ b/packages/dashmate/test/unit/commands/config/set.spec.js @@ -42,18 +42,18 @@ describe('Config set command', () => { const command = new ConfigSetCommand(); await command.runWithDependencies({ - option: 'platform.drive.abci.validatorSet.llmqType', + option: 'platform.drive.abci.validatorSet.quorum.llmqType', value: 107, }, flags, config); - expect(config.get('platform.drive.abci.validatorSet.llmqType')).to.equal(107); + expect(config.get('platform.drive.abci.validatorSet.quorum.llmqType')).to.equal(107); await command.runWithDependencies({ - option: 'platform.drive.abci.validatorSet.llmqType', + option: 'platform.drive.abci.validatorSet.quorum.llmqType', value: '107', }, flags, config); - expect(config.get('platform.drive.abci.validatorSet.llmqType')).to.equal(107); + expect(config.get('platform.drive.abci.validatorSet.quorum.llmqType')).to.equal(107); }); it('should allow setting booleans', async () => { diff --git a/packages/rs-dpp/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs b/packages/rs-dpp/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs index 130349d16a8..8d72de7772b 100644 --- a/packages/rs-dpp/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +++ b/packages/rs-dpp/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs @@ -18,7 +18,7 @@ use bincode::{Decode, Encode}; PlatformSerialize, PlatformDeserialize, )] -#[error("Invalid instant lock proof signature")] +#[error("Instant lock proof signature is invalid or wasn't created recently. Pleases try chain asset lock proof instead.")] #[platform_serialize(unversioned)] pub struct InvalidInstantAssetLockProofSignatureError; diff --git a/packages/rs-drive-abci/.env.local b/packages/rs-drive-abci/.env.local index 942707ab200..739b5b8d214 100644 --- a/packages/rs-drive-abci/.env.local +++ b/packages/rs-drive-abci/.env.local @@ -28,13 +28,24 @@ CORE_JSON_RPC_PASSWORD=password INITIAL_CORE_CHAINLOCKED_HEIGHT=1243 # https://github.com/dashevo/dashcore-lib/blob/286c33a9d29d33f05d874c47a9b33764a0be0cf1/lib/constants/index.js#L42-L57 -VALIDATOR_SET_QUORUM_TYPE=llmq_test +VALIDATOR_SET_QUORUM_TYPE=llmq_test_platform VALIDATOR_SET_QUORUM_SIZE=3 +VALIDATOR_SET_QUORUM_WINDOW=24 +VALIDATOR_SET_QUORUM_ACTIVE_SIGNERS=2 +VALIDATOR_SET_QUORUM_ROTATION=false VALIDATOR_SET_ROTATION_BLOCK_COUNT=64 CHAIN_LOCK_QUORUM_TYPE=llmq_test -CHAIN_LOCK_QUORUM_WINDOW=24 CHAIN_LOCK_QUORUM_SIZE=3 +CHAIN_LOCK_QUORUM_WINDOW=24 +CHAIN_LOCK_QUORUM_ACTIVE_SIGNERS=2 +CHAIN_LOCK_QUORUM_ROTATION=false + +INSTANT_LOCK_QUORUM_TYPE=llmq_test_instantsend +INSTANT_LOCK_QUORUM_SIZE=3 +INSTANT_LOCK_QUORUM_WINDOW=24 +INSTANT_LOCK_QUORUM_ACTIVE_SIGNERS=2 +INSTANT_LOCK_QUORUM_ROTATION=false # DPNS Contract diff --git a/packages/rs-drive-abci/.env.mainnet b/packages/rs-drive-abci/.env.mainnet index a15602a413f..8e7f40cff51 100644 --- a/packages/rs-drive-abci/.env.mainnet +++ b/packages/rs-drive-abci/.env.mainnet @@ -30,10 +30,22 @@ INITIAL_CORE_CHAINLOCKED_HEIGHT=1243 # https://github.com/dashevo/dashcore-lib/blob/286c33a9d29d33f05d874c47a9b33764a0be0cf1/lib/constants/index.js#L42-L57 VALIDATOR_SET_QUORUM_TYPE=llmq_100_67 VALIDATOR_SET_QUORUM_SIZE=100 +VALIDATOR_SET_QUORUM_WINDOW=24 +VALIDATOR_SET_QUORUM_ACTIVE_SIGNERS=24 +VALIDATOR_SET_QUORUM_ROTATION=false VALIDATOR_SET_ROTATION_BLOCK_COUNT=64 CHAIN_LOCK_QUORUM_TYPE=llmq_400_60 +CHAIN_LOCK_QUORUM_SIZE=400 CHAIN_LOCK_QUORUM_WINDOW=288 +CHAIN_LOCK_QUORUM_ACTIVE_SIGNERS=4 +CHAIN_LOCK_QUORUM_ROTATION=false + +INSTANT_LOCK_QUORUM_TYPE=llmq_60_75 +INSTANT_LOCK_QUORUM_SIZE=60 +INSTANT_LOCK_QUORUM_WINDOW=288 +INSTANT_LOCK_QUORUM_ACTIVE_SIGNERS=32 +INSTANT_LOCK_QUORUM_ROTATION=true # DPNS Contract diff --git a/packages/rs-drive-abci/.env.testnet b/packages/rs-drive-abci/.env.testnet index e40ea7efc00..f0e6abf52ea 100644 --- a/packages/rs-drive-abci/.env.testnet +++ b/packages/rs-drive-abci/.env.testnet @@ -30,10 +30,22 @@ INITIAL_CORE_CHAINLOCKED_HEIGHT=1243 # https://github.com/dashevo/dashcore-lib/blob/286c33a9d29d33f05d874c47a9b33764a0be0cf1/lib/constants/index.js#L42-L57 VALIDATOR_SET_QUORUM_TYPE=llmq_25_67 VALIDATOR_SET_QUORUM_SIZE=25 +VALIDATOR_SET_QUORUM_WINDOW=24 +VALIDATOR_SET_QUORUM_ACTIVE_SIGNERS=24 +VALIDATOR_SET_QUORUM_ROTATION=false VALIDATOR_SET_ROTATION_BLOCK_COUNT=64 CHAIN_LOCK_QUORUM_TYPE=llmq_50_60 +CHAIN_LOCK_QUORUM_SIZE=50 CHAIN_LOCK_QUORUM_WINDOW=24 +CHAIN_LOCK_QUORUM_ACTIVE_SIGNERS=24 +CHAIN_LOCK_QUORUM_ROTATION=false + +INSTANT_LOCK_QUORUM_TYPE=llmq_60_75 +INSTANT_LOCK_QUORUM_SIZE=50 +INSTANT_LOCK_QUORUM_WINDOW=288 +INSTANT_LOCK_QUORUM_ACTIVE_SIGNERS=32 +INSTANT_LOCK_QUORUM_ROTATION=true # DPNS Contract diff --git a/packages/rs-drive-abci/Cargo.toml b/packages/rs-drive-abci/Cargo.toml index 8b1281b271e..eb01bfd39d8 100644 --- a/packages/rs-drive-abci/Cargo.toml +++ b/packages/rs-drive-abci/Cargo.toml @@ -99,6 +99,7 @@ dpp = { path = "../rs-dpp", features = [ drive = { path = "../rs-drive" } strategy-tests = { path = "../strategy-tests" } assert_matches = "1.5.0" +drive-abci = { path = ".", features = ["testing-config"]} # For tests of grovedb verify rocksdb = { version = "0.22.0" } @@ -109,7 +110,7 @@ integer-encoding = { version = "4.0.0" } default = ["mocks", "console"] mocks = ["mockall", "drive/fixtures-and-mocks"] console = ["console-subscriber", "tokio/tracing"] - +testing-config = [] [[bin]] name = "drive-abci" diff --git a/packages/rs-drive-abci/src/config.rs b/packages/rs-drive-abci/src/config.rs index e3d043d479e..23846e41e5c 100644 --- a/packages/rs-drive-abci/src/config.rs +++ b/packages/rs-drive-abci/src/config.rs @@ -26,6 +26,7 @@ // IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. +use bincode::{Decode, Encode}; use dashcore_rpc::json::QuorumType; use std::path::PathBuf; @@ -98,6 +99,7 @@ pub struct ExecutionConfig { #[serde(default = "ExecutionConfig::default_verify_sum_trees")] pub verify_sum_trees: bool, + // TODO: Move to ValidatorSetConfig /// How often should quorums change? #[serde( default = "ExecutionConfig::default_validator_set_rotation_block_count", @@ -175,21 +177,16 @@ pub struct PlatformConfig { pub execution: ExecutionConfig, /// The default quorum type - pub validator_set_quorum_type: String, - - /// The quorum type used for verifying chain locks - pub chain_lock_quorum_type: String, - - /// The validator set quorum size - pub validator_set_quorum_size: u16, + #[serde(flatten)] + pub validator_set: ValidatorSetConfig, - /// The chain lock quorum size - pub chain_lock_quorum_size: u16, + /// Chain lock configuration + #[serde(flatten)] + pub chain_lock: ChainLockConfig, - /// The window for chain locks - /// On Mainnet Chain Locks are signed using 400_60: One quorum in every 288 blocks and activeQuorumCount is 4. - /// On Testnet Chain Locks are signed using 50_60: One quorum in every 24 blocks and activeQuorumCount is 24. - pub chain_lock_quorum_window: u32, + /// Instant lock configuration + #[serde(flatten)] + pub instant_lock: InstantLockConfig, // todo: this should probably be coming from Tenderdash config. It's a test only param /// Approximately how often are blocks produced @@ -209,7 +206,7 @@ pub struct PlatformConfig { #[serde(default)] pub rejections_path: Option, - // todo: put this in tests like #[cfg(test)] + #[cfg(feature = "testing-config")] /// This should be None, except in the case of Testing platform #[serde(skip)] pub testing_configs: PlatformTestConfig, @@ -226,6 +223,317 @@ pub struct PlatformConfig { pub tokio_console_retention_secs: u64, } +/// A config suitable for a quorum configuration +pub trait QuorumLikeConfig: Sized { + /// Quorum type + fn quorum_type(&self) -> QuorumType; + + /// Quorum size + fn quorum_size(&self) -> u16; + + /// Quorum DKG interval + fn quorum_window(&self) -> u32; + + /// Quorum active signers count + fn quorum_active_signers(&self) -> u16; + + /// Quorum rotation (dip24) or classic + fn quorum_rotation(&self) -> bool; +} + +/// Chain Lock quorum configuration +#[derive(Clone, Debug, Serialize, Deserialize, Encode, Decode)] +pub struct ValidatorSetConfig { + /// The quorum type used for verifying chain locks + #[serde( + rename = "validator_set_quorum_type", + serialize_with = "serialize_quorum_type", + deserialize_with = "deserialize_quorum_type" + )] + pub quorum_type: QuorumType, + + /// The quorum size + #[serde( + rename = "validator_set_quorum_size", + deserialize_with = "from_str_or_number" + )] + pub quorum_size: u16, + + /// The quorum window (DKG interval) + /// On Mainnet Chain Locks are signed using 400_60: One quorum in every 288 blocks and activeQuorumCount is 4. + /// On Testnet Chain Locks are signed using 50_60: One quorum in every 24 blocks and activeQuorumCount is 24. + #[serde( + rename = "validator_set_quorum_window", + deserialize_with = "from_str_or_number" + )] + pub quorum_window: u32, + + /// The number of active signers + #[serde( + rename = "validator_set_quorum_active_signers", + deserialize_with = "from_str_or_number" + )] + pub quorum_active_signers: u16, + + /// Whether the quorum is rotated DIP24 or classic + #[serde( + rename = "validator_set_quorum_rotation", + deserialize_with = "from_str_or_number" + )] + pub quorum_rotation: bool, +} + +impl Default for ValidatorSetConfig { + fn default() -> Self { + // Mainnet + Self::default_100_67() + } +} + +impl ValidatorSetConfig { + /// Creates a default config for LLMQ 100 67 + pub fn default_100_67() -> Self { + Self { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 100, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + } + } +} + +impl QuorumLikeConfig for ValidatorSetConfig { + fn quorum_type(&self) -> QuorumType { + self.quorum_type + } + + fn quorum_size(&self) -> u16 { + self.quorum_size + } + + fn quorum_window(&self) -> u32 { + self.quorum_window + } + + fn quorum_active_signers(&self) -> u16 { + self.quorum_active_signers + } + + fn quorum_rotation(&self) -> bool { + self.quorum_rotation + } +} + +/// Chain Lock quorum configuration +#[derive(Clone, Debug, Serialize, Deserialize, Encode, Decode)] +pub struct ChainLockConfig { + /// The quorum type used for verifying chain locks + #[serde( + rename = "chain_lock_quorum_type", + serialize_with = "serialize_quorum_type", + deserialize_with = "deserialize_quorum_type" + )] + pub quorum_type: QuorumType, + + /// The quorum size + #[serde( + rename = "chain_lock_quorum_size", + deserialize_with = "from_str_or_number" + )] + pub quorum_size: u16, + + /// The quorum window (DKG interval) + /// On Mainnet Chain Locks are signed using 400_60: One quorum in every 288 blocks and activeQuorumCount is 4. + /// On Testnet Chain Locks are signed using 50_60: One quorum in every 24 blocks and activeQuorumCount is 24. + #[serde( + rename = "chain_lock_quorum_window", + deserialize_with = "from_str_or_number" + )] + pub quorum_window: u32, + + /// The number of active signers + #[serde( + rename = "chain_lock_quorum_active_signers", + deserialize_with = "from_str_or_number" + )] + pub quorum_active_signers: u16, + + /// Whether the quorum is rotated DIP24 or classic + #[serde( + rename = "chain_lock_quorum_rotation", + deserialize_with = "from_str_or_number" + )] + pub quorum_rotation: bool, +} + +impl Default for ChainLockConfig { + fn default() -> Self { + // Mainnet + Self { + quorum_type: QuorumType::Llmq400_60, + quorum_size: 400, + quorum_window: 24 * 12, + quorum_active_signers: 4, + quorum_rotation: false, + } + } +} + +impl QuorumLikeConfig for ChainLockConfig { + fn quorum_type(&self) -> QuorumType { + self.quorum_type + } + + fn quorum_size(&self) -> u16 { + self.quorum_size + } + + fn quorum_window(&self) -> u32 { + self.quorum_window + } + + fn quorum_active_signers(&self) -> u16 { + self.quorum_active_signers + } + + fn quorum_rotation(&self) -> bool { + self.quorum_rotation + } +} + +impl ChainLockConfig { + /// Creates a default config for LLMQ 100 67 + pub fn default_100_67() -> Self { + Self { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 100, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + } + } +} + +/// Chain Lock quorum configuration +#[derive(Clone, Debug, Serialize, Deserialize, Encode, Decode)] +pub struct InstantLockConfig { + /// The quorum type used for verifying chain locks + #[serde( + rename = "instant_lock_quorum_type", + serialize_with = "serialize_quorum_type", + deserialize_with = "deserialize_quorum_type" + )] + pub quorum_type: QuorumType, + + /// The quorum size + #[serde( + rename = "instant_lock_quorum_size", + deserialize_with = "from_str_or_number" + )] + pub quorum_size: u16, + + /// The quorum window (DKG interval) + /// On Mainnet Chain Locks are signed using 400_60: One quorum in every 288 blocks and activeQuorumCount is 4. + /// On Testnet Chain Locks are signed using 50_60: One quorum in every 24 blocks and activeQuorumCount is 24. + #[serde( + rename = "instant_lock_quorum_window", + deserialize_with = "from_str_or_number" + )] + pub quorum_window: u32, + + /// The number of active signers + #[serde( + rename = "instant_lock_quorum_active_signers", + deserialize_with = "from_str_or_number" + )] + pub quorum_active_signers: u16, + + /// Whether the quorum is rotated DIP24 or classic + #[serde( + rename = "instant_lock_quorum_rotation", + deserialize_with = "from_str_or_number" + )] + pub quorum_rotation: bool, +} + +impl Default for InstantLockConfig { + fn default() -> Self { + // Mainnet + Self { + quorum_type: QuorumType::Llmq60_75, + quorum_active_signers: 32, + quorum_size: 60, + quorum_window: 24 * 12, + quorum_rotation: true, + } + } +} + +impl InstantLockConfig { + /// Creates a default config for LLMQ 100 67 + pub fn default_100_67() -> Self { + Self { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 100, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + } + } +} + +impl QuorumLikeConfig for InstantLockConfig { + fn quorum_type(&self) -> QuorumType { + self.quorum_type + } + + fn quorum_size(&self) -> u16 { + self.quorum_size + } + + fn quorum_window(&self) -> u32 { + self.quorum_window + } + + fn quorum_active_signers(&self) -> u16 { + self.quorum_active_signers + } + + fn quorum_rotation(&self) -> bool { + self.quorum_rotation + } +} + +fn serialize_quorum_type(quorum_type: &QuorumType, serializer: S) -> Result +where + S: serde::Serializer, +{ + serializer.serialize_str(quorum_type.to_string().as_str()) +} + +fn deserialize_quorum_type<'de, D>(deserializer: D) -> Result +where + D: serde::Deserializer<'de>, +{ + let quorum_type_name = String::deserialize(deserializer)?; + + let quorum_type = if let Ok(t) = quorum_type_name.trim().parse::() { + QuorumType::from(t) + } else { + QuorumType::from(quorum_type_name.as_str()) + }; + + if quorum_type == QuorumType::UNKNOWN { + return Err(serde::de::Error::custom(format!( + "unsupported QUORUM_TYPE: {}", + quorum_type_name + ))); + }; + + Ok(quorum_type) +} + impl ExecutionConfig { fn default_verify_sum_trees() -> bool { true @@ -256,43 +564,8 @@ impl PlatformConfig { fn default_tokio_console_retention_secs() -> u64 { 60 * 3 } - - /// Return type of quorum - pub fn validator_set_quorum_type(&self) -> QuorumType { - let found = if let Ok(t) = self.validator_set_quorum_type.trim().parse::() { - QuorumType::from(t) - } else { - QuorumType::from(self.validator_set_quorum_type.as_str()) - }; - - if found == QuorumType::UNKNOWN { - panic!( - "config: unsupported QUORUM_TYPE: {}", - self.validator_set_quorum_type - ); - } - - found - } - - /// Return type of quorum for validating chain locks - pub fn chain_lock_quorum_type(&self) -> QuorumType { - let found = if let Ok(t) = self.chain_lock_quorum_type.trim().parse::() { - QuorumType::from(t) - } else { - QuorumType::from(self.chain_lock_quorum_type.as_str()) - }; - - if found == QuorumType::UNKNOWN { - panic!( - "config: unsupported QUORUM_TYPE: {}", - self.chain_lock_quorum_type - ); - } - - found - } } + /// create new object using values from environment variables pub trait FromEnv { /// create new object using values from environment variables @@ -338,11 +611,27 @@ impl Default for PlatformConfig { impl PlatformConfig { pub fn default_local() -> Self { Self { - validator_set_quorum_type: "llmq_test_platform".to_string(), - chain_lock_quorum_type: "llmq_test".to_string(), - validator_set_quorum_size: 3, - chain_lock_quorum_size: 3, - chain_lock_quorum_window: 24, + validator_set: ValidatorSetConfig { + quorum_type: QuorumType::LlmqTestPlatform, + quorum_size: 3, + quorum_window: 24, + quorum_active_signers: 2, + quorum_rotation: false, + }, + chain_lock: ChainLockConfig { + quorum_type: QuorumType::LlmqTest, + quorum_active_signers: 2, + quorum_size: 3, + quorum_window: 24, + quorum_rotation: false, + }, + instant_lock: InstantLockConfig { + quorum_type: QuorumType::LlmqTest, + quorum_active_signers: 2, + quorum_size: 3, + quorum_window: 24, + quorum_rotation: false, + }, block_spacing_ms: 5000, drive: Default::default(), abci: Default::default(), @@ -350,6 +639,7 @@ impl PlatformConfig { execution: Default::default(), db_path: PathBuf::from("/var/lib/dash-platform/data"), rejections_path: Some(PathBuf::from("/var/log/dash/rejected")), + #[cfg(feature = "testing-config")] testing_configs: PlatformTestConfig::default(), tokio_console_enabled: false, tokio_console_address: PlatformConfig::default_tokio_console_address(), @@ -362,11 +652,27 @@ impl PlatformConfig { pub fn default_testnet() -> Self { Self { - validator_set_quorum_type: "llmq_25_67".to_string(), - chain_lock_quorum_type: "llmq_50_60".to_string(), - validator_set_quorum_size: 25, - chain_lock_quorum_size: 50, - chain_lock_quorum_window: 24, + validator_set: ValidatorSetConfig { + quorum_type: QuorumType::Llmq25_67, + quorum_size: 25, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + }, + chain_lock: ChainLockConfig { + quorum_type: QuorumType::Llmq50_60, + quorum_active_signers: 24, + quorum_size: 50, + quorum_window: 24, + quorum_rotation: false, + }, + instant_lock: InstantLockConfig { + quorum_type: QuorumType::Llmq60_75, + quorum_active_signers: 32, + quorum_size: 60, + quorum_window: 24 * 12, + quorum_rotation: true, + }, block_spacing_ms: 5000, drive: Default::default(), abci: Default::default(), @@ -374,6 +680,7 @@ impl PlatformConfig { execution: Default::default(), db_path: PathBuf::from("/var/lib/dash-platform/data"), rejections_path: Some(PathBuf::from("/var/log/dash/rejected")), + #[cfg(feature = "testing-config")] testing_configs: PlatformTestConfig::default(), initial_protocol_version: Self::default_initial_protocol_version(), prometheus_bind_address: None, @@ -386,11 +693,27 @@ impl PlatformConfig { pub fn default_mainnet() -> Self { Self { - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_400_60".to_string(), - validator_set_quorum_size: 100, - chain_lock_quorum_size: 400, - chain_lock_quorum_window: 288, + validator_set: ValidatorSetConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 100, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + }, + chain_lock: ChainLockConfig { + quorum_type: QuorumType::Llmq400_60, + quorum_active_signers: 4, + quorum_size: 400, + quorum_window: 24 * 12, + quorum_rotation: false, + }, + instant_lock: InstantLockConfig { + quorum_type: QuorumType::Llmq60_75, + quorum_active_signers: 32, + quorum_size: 60, + quorum_window: 24 * 12, + quorum_rotation: true, + }, block_spacing_ms: 5000, drive: Default::default(), abci: Default::default(), @@ -398,6 +721,7 @@ impl PlatformConfig { execution: Default::default(), db_path: PathBuf::from("/var/lib/dash-platform/data"), rejections_path: Some(PathBuf::from("/var/log/dash/rejected")), + #[cfg(feature = "testing-config")] testing_configs: PlatformTestConfig::default(), initial_protocol_version: Self::default_initial_protocol_version(), prometheus_bind_address: None, @@ -409,30 +733,37 @@ impl PlatformConfig { } } +#[cfg(feature = "testing-config")] /// Configs that should only happen during testing -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Clone, Debug)] pub struct PlatformTestConfig { /// Block signing pub block_signing: bool, /// Block signature verification pub block_commit_signature_verification: bool, + /// Disable instant lock signature verification + pub disable_instant_lock_signature_verification: bool, } +#[cfg(feature = "testing-config")] impl PlatformTestConfig { /// Much faster config for tests pub fn default_with_no_block_signing() -> Self { Self { block_signing: false, block_commit_signature_verification: false, + disable_instant_lock_signature_verification: false, } } } +#[cfg(feature = "testing-config")] impl Default for PlatformTestConfig { fn default() -> Self { Self { block_signing: true, block_commit_signature_verification: true, + disable_instant_lock_signature_verification: false, } } } @@ -468,7 +799,7 @@ mod tests { let config = super::PlatformConfig::from_env().expect("expected config from env"); assert!(config.execution.verify_sum_trees); - assert_ne!(config.validator_set_quorum_type(), QuorumType::UNKNOWN); + assert_ne!(config.validator_set.quorum_type, QuorumType::UNKNOWN); for id in vectors { matches!(config.abci.log[id.0].destination, LogDestination::Bytes); } diff --git a/packages/rs-drive-abci/src/execution/check_tx/v0/mod.rs b/packages/rs-drive-abci/src/execution/check_tx/v0/mod.rs index e6fa1e13e84..155cced9dad 100644 --- a/packages/rs-drive-abci/src/execution/check_tx/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/check_tx/v0/mod.rs @@ -205,7 +205,7 @@ where #[cfg(test)] mod tests { - use crate::config::PlatformConfig; + use crate::config::{PlatformConfig, PlatformTestConfig}; use crate::platform_types::event_execution_result::EventExecutionResult::{ SuccessfulPaidExecution, UnpaidConsensusExecutionError, UnsuccessfulPaidExecution, }; @@ -276,14 +276,17 @@ mod tests { #[test] #[ignore] fn verify_check_tx_on_data_contract_create() { - let mut platform = TestPlatformBuilder::new() - .with_config(PlatformConfig::default()) - .build_with_mock_rpc(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); + let platform = TestPlatformBuilder::new() + .with_config(platform_config) + .build_with_mock_rpc(); let platform_state = platform.state.load(); let protocol_version = platform_state.current_protocol_version_in_consensus(); @@ -370,14 +373,17 @@ mod tests { #[test] fn data_contract_create_check_tx() { - let mut platform = TestPlatformBuilder::new() - .with_config(PlatformConfig::default()) - .build_with_mock_rpc(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); + let platform = TestPlatformBuilder::new() + .with_config(platform_config) + .build_with_mock_rpc(); let platform_state = platform.state.load(); let protocol_version = platform_state.current_protocol_version_in_consensus(); @@ -501,14 +507,17 @@ mod tests { #[test] fn data_contract_create_check_tx_for_invalid_contract() { - let mut platform = TestPlatformBuilder::new() - .with_config(PlatformConfig::default()) - .build_with_mock_rpc(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); + let platform = TestPlatformBuilder::new() + .with_config(platform_config) + .build_with_mock_rpc(); let platform_state = platform.state.load(); let protocol_version = platform_state.current_protocol_version_in_consensus(); @@ -693,14 +702,17 @@ mod tests { #[test] fn data_contract_create_check_tx_priority() { - let mut platform = TestPlatformBuilder::new() - .with_config(PlatformConfig::default()) - .build_with_mock_rpc(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); + let platform = TestPlatformBuilder::new() + .with_config(platform_config) + .build_with_mock_rpc(); let platform_state = platform.state.load(); let protocol_version = platform_state.current_protocol_version_in_consensus(); @@ -838,14 +850,17 @@ mod tests { #[test] fn data_contract_create_check_tx_after_identity_balance_used_up() { - let mut platform = TestPlatformBuilder::new() - .with_config(PlatformConfig::default()) - .build_with_mock_rpc(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); + let platform = TestPlatformBuilder::new() + .with_config(platform_config) + .build_with_mock_rpc(); let platform_state = platform.state.load(); let protocol_version = platform_state.current_protocol_version_in_consensus(); @@ -962,14 +977,17 @@ mod tests { #[test] fn data_contract_update_check_tx() { - let mut platform = TestPlatformBuilder::new() - .with_config(PlatformConfig::default()) - .build_with_mock_rpc(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); + let platform = TestPlatformBuilder::new() + .with_config(platform_config) + .build_with_mock_rpc(); let platform_state = platform.state.load(); let protocol_version = platform_state.current_protocol_version_in_consensus(); @@ -1158,14 +1176,17 @@ mod tests { #[test] fn data_contract_update_check_tx_for_invalid_update() { - let mut platform = TestPlatformBuilder::new() - .with_config(PlatformConfig::default()) - .build_with_mock_rpc(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); + let platform = TestPlatformBuilder::new() + .with_config(platform_config) + .build_with_mock_rpc(); let platform_state = platform.state.load(); let protocol_version = platform_state.current_protocol_version_in_consensus(); @@ -1389,16 +1410,19 @@ mod tests { #[test] fn document_update_check_tx() { - let mut platform = TestPlatformBuilder::new() - .with_config(PlatformConfig::default()) + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; + + let platform = TestPlatformBuilder::new() + .with_config(platform_config) .build_with_mock_rpc() .set_genesis_state(); - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); - let platform_state = platform.state.load(); let platform_version = platform_state.current_platform_version().unwrap(); @@ -1577,14 +1601,17 @@ mod tests { #[test] fn identity_top_up_check_tx() { - let mut platform = TestPlatformBuilder::new() - .with_config(PlatformConfig::default()) - .build_with_mock_rpc(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); + let platform = TestPlatformBuilder::new() + .with_config(platform_config) + .build_with_mock_rpc(); let platform_state = platform.state.load(); let platform_version = platform_state.current_platform_version().unwrap(); @@ -1716,14 +1743,17 @@ mod tests { #[test] fn identity_cant_double_top_up() { - let mut platform = TestPlatformBuilder::new() - .with_config(PlatformConfig::default()) - .build_with_mock_rpc(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); + let platform = TestPlatformBuilder::new() + .with_config(platform_config) + .build_with_mock_rpc(); let platform_state = platform.state.load(); let platform_version = platform_state.current_platform_version().unwrap(); @@ -1887,14 +1917,17 @@ mod tests { #[test] fn identity_top_up_with_unknown_identity_doesnt_panic() { - let mut platform = TestPlatformBuilder::new() - .with_config(PlatformConfig::default()) - .build_with_mock_rpc(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); + let platform = TestPlatformBuilder::new() + .with_config(platform_config) + .build_with_mock_rpc(); let platform_state = platform.state.load(); let platform_version = platform_state.current_platform_version().unwrap(); @@ -1981,14 +2014,17 @@ mod tests { #[test] fn identity_cant_create_with_used_outpoint() { - let mut platform = TestPlatformBuilder::new() - .with_config(PlatformConfig::default()) - .build_with_mock_rpc(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); + let platform = TestPlatformBuilder::new() + .with_config(platform_config) + .build_with_mock_rpc(); let platform_state = platform.state.load(); let platform_version = platform_state.current_platform_version().unwrap(); @@ -2199,14 +2235,17 @@ mod tests { #[test] fn identity_can_create_with_semi_used_outpoint() { - let mut platform = TestPlatformBuilder::new() - .with_config(PlatformConfig::default()) - .build_with_mock_rpc(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); + let platform = TestPlatformBuilder::new() + .with_config(platform_config) + .build_with_mock_rpc(); let platform_state = platform.state.load(); let platform_version = platform_state.current_platform_version().unwrap(); @@ -2513,14 +2552,17 @@ mod tests { config.abci.keys.dpns_second_public_key = high_public_key.serialize().to_vec(); - let mut platform = TestPlatformBuilder::new() - .with_config(config) - .build_with_mock_rpc(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); + let platform = TestPlatformBuilder::new() + .with_config(platform_config) + .build_with_mock_rpc(); let platform_state = platform.state.load(); let platform_version = platform_state.current_platform_version().unwrap(); @@ -2627,14 +2669,17 @@ mod tests { config.abci.keys.dashpay_second_public_key = high_public_key.serialize().to_vec(); - let mut platform = TestPlatformBuilder::new() - .with_config(config) - .build_with_mock_rpc(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); + let platform = TestPlatformBuilder::new() + .with_config(platform_config) + .build_with_mock_rpc(); let platform_state = platform.state.load(); let platform_version = platform_state.current_platform_version().unwrap(); diff --git a/packages/rs-drive-abci/src/execution/engine/finalize_block_proposal/v0/mod.rs b/packages/rs-drive-abci/src/execution/engine/finalize_block_proposal/v0/mod.rs index ae78f603616..68b226873b1 100644 --- a/packages/rs-drive-abci/src/execution/engine/finalize_block_proposal/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/engine/finalize_block_proposal/v0/mod.rs @@ -154,18 +154,23 @@ where return Ok(validation_result.into()); } + // Verify commit + // In production this will always be true - if self + #[cfg(not(feature = "testing-config"))] + let verify_commit_signature = true; + + #[cfg(feature = "testing-config")] + let verify_commit_signature = self .config .testing_configs - .block_commit_signature_verification - { - // Verify commit + .block_commit_signature_verification; + if verify_commit_signature { let quorum_public_key = last_committed_state .current_validator_set()? .threshold_public_key(); - let quorum_type = self.config.validator_set_quorum_type(); + let quorum_type = self.config.validator_set.quorum_type; // TODO: We already had commit in the function above, why do we need to create it again with clone? let commit = Commit::new_from_cleaned( commit_info.clone(), diff --git a/packages/rs-drive-abci/src/execution/engine/initialization/init_chain/v0/mod.rs b/packages/rs-drive-abci/src/execution/engine/initialization/init_chain/v0/mod.rs index 29fba3c5148..75bd88a55cf 100644 --- a/packages/rs-drive-abci/src/execution/engine/initialization/init_chain/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/engine/initialization/init_chain/v0/mod.rs @@ -52,7 +52,8 @@ where let mut initial_platform_state = PlatformState::default_with_protocol_versions( request.initial_protocol_version, request.initial_protocol_version, - ); + &self.config, + )?; let genesis_block_info = BlockInfo { height: request.initial_height, diff --git a/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/add_process_epoch_change_operations/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/add_process_epoch_change_operations/v0/mod.rs index e705b047ba0..3e34b5c5822 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/add_process_epoch_change_operations/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/add_process_epoch_change_operations/v0/mod.rs @@ -252,7 +252,9 @@ mod tests { let block_platform_state = PlatformState::default_with_protocol_versions( INITIAL_PROTOCOL_VERSION, INITIAL_PROTOCOL_VERSION, - ); + &platform.config, + ) + .expect("failed to create platform state"); let block_execution_context = BlockExecutionContextV0 { block_state_info: block_info.clone().into(), diff --git a/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/process_block_fees/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/process_block_fees/v0/mod.rs index 0b92b87f241..d6df6c83012 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/process_block_fees/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/process_block_fees/v0/mod.rs @@ -283,7 +283,9 @@ mod tests { let block_platform_state = PlatformState::default_with_protocol_versions( INITIAL_PROTOCOL_VERSION, INITIAL_PROTOCOL_VERSION, - ); + &platform.config, + ) + .expect("failed to create default platform state"); let block_execution_context = BlockExecutionContextV0 { block_state_info: block_info.clone().into(), diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_quorum_info/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_quorum_info/v0/mod.rs index 50ad933c426..55c4b053321 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_quorum_info/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_quorum_info/v0/mod.rs @@ -3,17 +3,45 @@ use crate::error::Error; use crate::platform_types::platform::Platform; use crate::platform_types::platform_state::v0::PlatformStateV0Methods; use crate::platform_types::platform_state::PlatformState; -use crate::platform_types::signature_verification_quorums::SignatureVerificationQuorumsV0Methods; +use dashcore_rpc::json::{ExtendedQuorumListResult, QuorumType}; use std::collections::BTreeMap; +use std::fmt::Display; use crate::platform_types::validator_set::v0::{ValidatorSetV0, ValidatorSetV0Getters}; use crate::platform_types::validator_set::ValidatorSet; use crate::rpc::core::CoreRPCLike; +use crate::platform_types::signature_verification_quorum_set::{ + SignatureVerificationQuorumSet, SignatureVerificationQuorumSetV0Methods, VerificationQuorum, +}; use dpp::bls_signatures::PublicKey as BlsPublicKey; use dpp::dashcore::QuorumHash; use tracing::Level; +#[derive(Copy, Clone)] +enum QuorumSetType { + ChainLock(QuorumType), + InstantLock(QuorumType), +} + +impl QuorumSetType { + fn quorum_type(&self) -> QuorumType { + match self { + QuorumSetType::ChainLock(quorum_type) => *quorum_type, + QuorumSetType::InstantLock(quorum_type) => *quorum_type, + } + } +} + +impl Display for QuorumSetType { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + QuorumSetType::ChainLock(quorum_type) => write!(f, "chain lock ({quorum_type})"), + QuorumSetType::InstantLock(quorum_type) => write!(f, "instant lock ({quorum_type})"), + } + } +} + impl Platform where C: CoreRPCLike, @@ -63,8 +91,9 @@ where .core_rpc .get_quorum_listextended(Some(core_block_height))?; - let validator_set_quorum_type = self.config.validator_set_quorum_type(); - let chain_lock_quorum_type = self.config.chain_lock_quorum_type(); + let validator_set_quorum_type = self.config.validator_set.quorum_type; + let chain_lock_quorum_type = self.config.chain_lock.quorum_type; + let instant_lock_quorum_type = self.config.instant_lock.quorum_type; let validator_quorums_list: BTreeMap<_, _> = extended_quorum_list .quorums_by_type @@ -72,7 +101,7 @@ where .ok_or(Error::Execution(ExecutionError::DashCoreBadResponseError( format!( "expected quorums of type {}, but did not receive any from Dash Core", - self.config.validator_set_quorum_type + self.config.validator_set.quorum_type ), )))? .into_iter() @@ -90,10 +119,10 @@ where if !retain { tracing::trace!( ?quorum_hash, - quorum_type = ?self.config.validator_set_quorum_type(), + quorum_type = ?self.config.validator_set.quorum_type, "removed validator set {} with quorum type {}", quorum_hash, - self.config.validator_set_quorum_type() + self.config.validator_set.quorum_type ) } @@ -102,7 +131,7 @@ where // Fetch quorum info and their keys from the RPC for new quorums let mut quorum_infos = validator_quorums_list - .iter() + .into_iter() .filter(|(key, _)| { !block_platform_state .validator_sets() @@ -110,12 +139,12 @@ where }) .map(|(key, _)| { let quorum_info_result = self.core_rpc.get_quorum_info( - self.config.validator_set_quorum_type(), - key, + self.config.validator_set.quorum_type, + &key, None, )?; - Ok((*key, quorum_info_result)) + Ok((key, quorum_info_result)) }) .collect::, Error>>()?; @@ -141,17 +170,17 @@ where tracing::trace!( ?validator_set, ?quorum_hash, - quorum_type = ?self.config.validator_set_quorum_type(), + quorum_type = ?self.config.validator_set.quorum_type, "add new validator set {} with quorum type {}", quorum_hash, - self.config.validator_set_quorum_type() + self.config.validator_set.quorum_type ); Ok((quorum_hash, validator_set)) }) .collect::, Error>>()?; - let added_a_validator_set = !new_validator_sets.is_empty(); + let is_validator_set_updated = !new_validator_sets.is_empty() || removed_a_validator_set; // Add new validator_sets entries block_platform_state @@ -173,139 +202,227 @@ where } }); - if validator_set_quorum_type == chain_lock_quorum_type { - // Remove validator_sets entries that are no longer valid for the core block height - if removed_a_validator_set || added_a_validator_set { - let quorums = block_platform_state - .validator_sets() - .iter() - .map(|(quorum_hash, validator_set)| { - (*quorum_hash, validator_set.threshold_public_key().clone()) - }) - .collect(); - - tracing::trace!("updated chain lock validating quorums to current validator set"); - - if platform_state.is_some() { - // we already have state, so we update last and previous quorums - block_platform_state - .chain_lock_validating_quorums_mut() - .rotate_quorums(quorums, last_committed_core_height, core_block_height); - } else { - // the only case where there will be no platform_state is init chain, - // so there is no previous quorums to update - block_platform_state - .chain_lock_validating_quorums_mut() - .set_current_quorums(quorums) - } + // Update Chain Lock quorums + + // Use already updated validator sets if we use the same quorums + let quorum_set_type = QuorumSetType::ChainLock(chain_lock_quorum_type); + let are_chainlock_quorum_updated = if chain_lock_quorum_type == validator_set_quorum_type { + // Update only in case if there are any changes + if is_validator_set_updated { + Self::update_quorums_from_validator_set( + quorum_set_type, + platform_state, + block_platform_state, + core_block_height, + ); } + + is_validator_set_updated } else { - let chain_lock_quorums_list: BTreeMap<_, _> = extended_quorum_list - .quorums_by_type - .remove(&chain_lock_quorum_type) - .ok_or(Error::Execution(ExecutionError::DashCoreBadResponseError( - format!( - "expected quorums of type {}, but did not receive any from Dash Core", - self.config.chain_lock_quorum_type - ), - )))? - .into_iter() - .map(|(quorum_hash, extended_quorum_details)| { - (quorum_hash, extended_quorum_details.quorum_index) - }) - .collect(); - - let mut removed_a_chain_lock_validating_quorum = false; - - // Remove chain_lock_validating_quorums entries that are no longer valid for the core block height - block_platform_state - .chain_lock_validating_quorums_mut() - .current_quorums_mut() - .retain(|quorum_hash, _| { - let retain = chain_lock_quorums_list.contains_key::(quorum_hash); - if !retain { - tracing::trace!( - ?quorum_hash, - quorum_type = ?chain_lock_quorum_type, - "removed old chain lock quorum {} with quorum type {}", - quorum_hash, - chain_lock_quorum_type - ); - } - removed_a_chain_lock_validating_quorum |= !retain; - retain - }); - - // Fetch quorum info and their keys from the RPC for new quorums - let quorum_infos = chain_lock_quorums_list - .iter() - .filter(|(key, _)| { - !block_platform_state - .chain_lock_validating_quorums() - .current_quorums() - .contains_key::(key) - }) - .map(|(key, _)| { - let quorum_info_result = - self.core_rpc - .get_quorum_info(chain_lock_quorum_type, key, None)?; - - Ok((*key, quorum_info_result)) - }) - .collect::, Error>>()?; - - let added_a_chain_lock_validating_quorum = !quorum_infos.is_empty(); - - if added_a_chain_lock_validating_quorum { - // Map to chain lock validating quorums - let new_chain_lock_quorums = quorum_infos - .into_iter() - .map(|(quorum_hash, info_result)| { - let public_key = match BlsPublicKey::from_bytes( - info_result.quorum_public_key.as_slice(), - ) - .map_err(ExecutionError::BlsErrorFromDashCoreResponse) - { - Ok(public_key) => public_key, - Err(e) => return Err(e.into()), - }; - - tracing::trace!( - ?public_key, - ?quorum_hash, - quorum_type = ?chain_lock_quorum_type, - "add new chain lock quorum {} with quorum type {}", - quorum_hash, - chain_lock_quorum_type - ); - - Ok((quorum_hash, public_key)) - }) - .collect::, Error>>()?; - - // Add new validator_sets entries - block_platform_state - .chain_lock_validating_quorums_mut() - .current_quorums_mut() - .extend(new_chain_lock_quorums); + self.update_quorums_from_quorum_list( + quorum_set_type, + block_platform_state.chain_lock_validating_quorums_mut(), + platform_state, + &extended_quorum_list, + last_committed_core_height, + core_block_height, + )? + }; + + // Update Instant Lock quorums + + // Use already updated chainlock quorums if we use the same quorum type + let quorum_set_type = QuorumSetType::InstantLock(instant_lock_quorum_type); + if instant_lock_quorum_type == chain_lock_quorum_type { + if are_chainlock_quorum_updated { + tracing::trace!( + "updated instant lock validating quorums to chain lock validating quorums", + ); + + block_platform_state.set_instant_lock_validating_quorums( + block_platform_state.chain_lock_validating_quorums().clone(), + ); + } + // The same for validator set quorum type + } else if instant_lock_quorum_type == validator_set_quorum_type { + if is_validator_set_updated { + Self::update_quorums_from_validator_set( + quorum_set_type, + platform_state, + block_platform_state, + core_block_height, + ); } + } else { + self.update_quorums_from_quorum_list( + quorum_set_type, + block_platform_state.instant_lock_validating_quorums_mut(), + platform_state, + &extended_quorum_list, + last_committed_core_height, + core_block_height, + )?; + } + + Ok(()) + } - if added_a_chain_lock_validating_quorum || removed_a_chain_lock_validating_quorum { - if let Some(old_state) = platform_state { - let previous_chain_lock_validating_quorums = - old_state.chain_lock_validating_quorums().current_quorums(); - - block_platform_state - .chain_lock_validating_quorums_mut() - .set_previous_past_quorums( - previous_chain_lock_validating_quorums.clone(), - last_committed_core_height, - core_block_height, - ); + fn update_quorums_from_validator_set( + quorum_set_type: QuorumSetType, + platform_state: Option<&PlatformState>, + block_platform_state: &mut PlatformState, + core_block_height: u32, + ) { + let quorums = block_platform_state + .validator_sets() + .iter() + .map(|(quorum_hash, validator_set)| { + ( + *quorum_hash, + VerificationQuorum { + public_key: validator_set.threshold_public_key().clone(), + index: validator_set.quorum_index(), + }, + ) + }) + .collect(); + + tracing::trace!( + "updated {} validating quorums to current validator set", + quorum_set_type + ); + + let last_committed_core_height = block_platform_state.last_committed_core_height(); + + let quorum_set = quorum_set_by_type_mut(block_platform_state, &quorum_set_type); + + if platform_state.is_some() { + // we already have state, so we update last and previous quorums + quorum_set.replace_quorums(quorums, last_committed_core_height, core_block_height); + } else { + // the only case where there will be no platform_state is init chain, + // so there is no previous quorums to update + quorum_set.set_current_quorums(quorums) + } + } + + fn update_quorums_from_quorum_list( + &self, + quorum_set_type: QuorumSetType, + quorum_set: &mut SignatureVerificationQuorumSet, + platform_state: Option<&PlatformState>, + full_quorum_list: &ExtendedQuorumListResult, + last_committed_core_height: u32, + next_core_height: u32, + ) -> Result { + let quorums_list: BTreeMap<_, _> = full_quorum_list + .quorums_by_type + .get(&quorum_set_type.quorum_type()) + .ok_or(Error::Execution(ExecutionError::DashCoreBadResponseError( + format!( + "expected quorums {}, but did not receive any from Dash Core", + quorum_set_type + ), + )))? + .iter() + .map(|(quorum_hash, extended_quorum_details)| { + (quorum_hash, extended_quorum_details.quorum_index) + }) + .collect(); + + let mut removed_a_validating_quorum = false; + + // Remove validating_quorums entries that are no longer valid for the core block height + // and update quorum index for existing validator sets + quorum_set + .current_quorums_mut() + .retain(|quorum_hash, quorum| { + let retain = match quorums_list.get(quorum_hash) { + Some(index) => { + quorum.index = *index; + true + } + None => false, + }; + + if !retain { + tracing::trace!( + ?quorum_hash, + quorum_type = ?quorum_set_type.quorum_type(), + "removed old {} quorum {}", + quorum_set_type, + quorum_hash, + ); } + removed_a_validating_quorum |= !retain; + retain + }); + + // Fetch quorum info and their keys from the RPC for new quorums + // and then create VerificationQuorum instances + let new_quorums = quorums_list + .into_iter() + .filter(|(quorum_hash, _)| { + !quorum_set + .current_quorums() + .contains_key::(quorum_hash) + }) + .map(|(quorum_hash, index)| { + let quorum_info = self.core_rpc.get_quorum_info( + quorum_set_type.quorum_type(), + quorum_hash, + None, + )?; + + let public_key = + match BlsPublicKey::from_bytes(quorum_info.quorum_public_key.as_slice()) + .map_err(ExecutionError::BlsErrorFromDashCoreResponse) + { + Ok(public_key) => public_key, + Err(e) => return Err(e.into()), + }; + + tracing::trace!( + ?public_key, + ?quorum_hash, + index, + quorum_type = ?quorum_set_type.quorum_type(), + "add new {} quorum {}", + quorum_set_type, + quorum_hash, + ); + + Ok((*quorum_hash, VerificationQuorum { public_key, index })) + }) + .collect::, Error>>()?; + + let are_quorums_updated = !new_quorums.is_empty() || removed_a_validating_quorum; + + quorum_set.current_quorums_mut().extend(new_quorums); + + if are_quorums_updated { + if let Some(old_state) = platform_state { + let previous_validating_quorums = + old_state.chain_lock_validating_quorums().current_quorums(); + + quorum_set.set_previous_past_quorums( + previous_validating_quorums.clone(), + last_committed_core_height, + next_core_height, + ); } } - Ok(()) + Ok(are_quorums_updated) + } +} + +fn quorum_set_by_type_mut<'p>( + block_platform_state: &'p mut PlatformState, + quorum_set_type: &QuorumSetType, +) -> &'p mut SignatureVerificationQuorumSet { + match quorum_set_type { + QuorumSetType::ChainLock(_) => block_platform_state.chain_lock_validating_quorums_mut(), + QuorumSetType::InstantLock(_) => block_platform_state.instant_lock_validating_quorums_mut(), } } diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/choose_quorum/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/choose_quorum/mod.rs index 11d1b02f782..3af3b3fbd2d 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/choose_quorum/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/choose_quorum/mod.rs @@ -21,7 +21,7 @@ where C: CoreRPCLike, { /// Based on DIP8 deterministically chooses a pseudorandom quorum from the list of quorums - /// + // TODO: use CoreQuorumSet.select_quorums instead pub fn choose_quorum<'a>( llmq_quorum_type: QuorumType, quorums: &'a BTreeMap, diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/make_sure_core_is_synced_to_chain_lock/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/make_sure_core_is_synced_to_chain_lock/v0/mod.rs index 4ca9f9705cb..f92183277b4 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/make_sure_core_is_synced_to_chain_lock/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/make_sure_core_is_synced_to_chain_lock/v0/mod.rs @@ -18,6 +18,8 @@ where ) -> Result { let given_chain_lock_height = chain_lock.block_height; // We need to make sure core is synced to the core height we see as valid for the state transitions + + // TODO: submit_chain_lock responds with invalid signature. We should handle it properly and return CoreSyncStatus let best_chain_locked_height = self.core_rpc.submit_chain_lock(chain_lock)?; Ok(if best_chain_locked_height >= given_chain_lock_height { CoreSyncStatus::Done diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/verify_chain_lock_locally/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/verify_chain_lock_locally/v0/mod.rs index d0f7b60af84..a48fc30c670 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/verify_chain_lock_locally/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/verify_chain_lock_locally/v0/mod.rs @@ -12,7 +12,7 @@ use crate::rpc::core::CoreRPCLike; use crate::error::execution::ExecutionError; use crate::platform_types::platform_state::v0::PlatformStateV0Methods; use crate::platform_types::platform_state::PlatformState; -use crate::platform_types::signature_verification_quorums::SignatureVerificationQuorumsV0Methods; +use crate::platform_types::signature_verification_quorum_set::SignatureVerificationQuorumSetV0Methods; use dpp::version::PlatformVersion; const CHAIN_LOCK_REQUEST_ID_PREFIX: &str = "clsig"; @@ -31,15 +31,20 @@ where round: u32, platform_state: &PlatformState, chain_lock: &ChainLock, - platform_version: &PlatformVersion, + _platform_version: &PlatformVersion, ) -> Result, Error> { + let quorum_set = platform_state.chain_lock_validating_quorums(); + let quorum_config = quorum_set.config(); + // First verify that the signature conforms to a signature - let signature = G2Element::from_bytes(chain_lock.signature.as_bytes())?; + let Ok(signature) = G2Element::from_bytes(chain_lock.signature.as_bytes()) else { + return Ok(Some(false)); + }; // we attempt to verify the chain lock locally let chain_lock_height = chain_lock.block_height; - let window_width = self.config.chain_lock_quorum_window; + let window_width = quorum_config.window; // The last block in the window where the quorums would be the same let last_block_in_window = platform_state.last_committed_core_height() @@ -63,10 +68,12 @@ where return Ok(None); // the chain lock is too far in the future or the past to verify locally } - let mut selected_quorum_sets = platform_state + let mut selected_quorums = platform_state .chain_lock_validating_quorums() .select_quorums(chain_lock_height, verification_height); + // TODO: We can use chain_lock.request_id() + // From DIP 8: https://github.com/dashpay/dips/blob/master/dip-0008.md#finalization-of-signed-blocks // The request id is SHA256("clsig", blockHeight) and the message hash is the block hash of the previously successful attempt. @@ -86,20 +93,15 @@ where ); // Based on the deterministic masternode list at the given height, a quorum must be selected that was active at the time this block was mined - let probable_quorums = selected_quorum_sets.next().ok_or_else(|| { + + let probable_quorums = selected_quorums.next().ok_or_else(|| { Error::Execution(ExecutionError::CorruptedCodeExecution( - "at lest one set of quorums must be selected", + "No quorums selected for chain lock signature verification for specified height", )) })?; - let quorum = Platform::::choose_quorum( - self.config.chain_lock_quorum_type(), - probable_quorums, - request_id.as_ref(), - platform_version, - )?; - - let Some((quorum_hash, public_key)) = quorum else { + let Some((quorum_hash, quorum)) = probable_quorums.choose_quorum(request_id.as_ref()) + else { return Ok(None); }; @@ -107,14 +109,19 @@ where let mut engine = sha256d::Hash::engine(); - engine.input(&[self.config.chain_lock_quorum_type() as u8]); - engine.input(quorum_hash.as_slice()); + let mut reversed_quorum_hash = quorum_hash.to_byte_array().to_vec(); + reversed_quorum_hash.reverse(); + + engine.input(&[quorum_config.quorum_type as u8]); + engine.input(reversed_quorum_hash.as_slice()); engine.input(request_id.as_byte_array()); engine.input(chain_lock.block_hash.as_byte_array()); let message_digest = sha256d::Hash::from_engine(engine); - let mut chain_lock_verified = public_key.verify(&signature, message_digest.as_ref()); + let mut chain_lock_verified = quorum + .public_key + .verify(&signature, message_digest.as_ref()); tracing::debug!( ?chain_lock, @@ -123,7 +130,7 @@ where round, chain_lock.block_height, hex::encode(message_digest.as_byte_array()), - hex::encode(quorum_hash.as_slice()), + hex::encode(reversed_quorum_hash.as_slice()), hex::encode(chain_lock.block_hash.as_byte_array()), if chain_lock_verified { "verified"} else {"not verified"}, platform_state.last_committed_core_height(), @@ -133,15 +140,10 @@ where if !chain_lock_verified { // We should also check the other quorum, as there could be the situation where the core height wasn't updated every block. - if let Some(second_to_check_quorums) = selected_quorum_sets.next() { - let quorum = Platform::::choose_quorum( - self.config.chain_lock_quorum_type(), - second_to_check_quorums, - request_id.as_ref(), - platform_version, - )?; - - let Some((quorum_hash, public_key)) = quorum else { + if let Some(second_to_check_quorums) = selected_quorums.next() { + let Some((quorum_hash, quorum)) = + second_to_check_quorums.choose_quorum(request_id.as_ref()) + else { // we return that we are not able to verify return Ok(None); }; @@ -150,14 +152,19 @@ where let mut engine = sha256d::Hash::engine(); - engine.input(&[self.config.chain_lock_quorum_type() as u8]); - engine.input(quorum_hash.as_slice()); + let mut reversed_quorum_hash = quorum_hash.to_byte_array().to_vec(); + reversed_quorum_hash.reverse(); + + engine.input(&[quorum_config.quorum_type as u8]); + engine.input(reversed_quorum_hash.as_slice()); engine.input(request_id.as_byte_array()); engine.input(chain_lock.block_hash.as_byte_array()); let message_digest = sha256d::Hash::from_engine(engine); - chain_lock_verified = public_key.verify(&signature, message_digest.as_ref()); + chain_lock_verified = quorum + .public_key + .verify(&signature, message_digest.as_ref()); tracing::debug!( ?chain_lock, @@ -166,7 +173,7 @@ where round, chain_lock.block_height, hex::encode(message_digest.as_byte_array()), - hex::encode(quorum_hash.as_slice()), + hex::encode(reversed_quorum_hash.as_slice()), hex::encode(chain_lock.block_hash.as_byte_array()), if chain_lock_verified { "verified"} else {"not verified"} ); @@ -175,17 +182,16 @@ where "chain lock was invalid for both recent and old chain lock quorums" ); } - } else if platform_state + } else if !platform_state .chain_lock_validating_quorums() - .previous_past_quorums() - .is_none() + .has_previous_past_quorums() { // we don't have old quorums, this means our node is very new. tracing::debug!( "we had no previous quorums locally, we should validate through core", ); return Ok(None); - } else if !selected_quorum_sets.should_be_verifiable { + } else if !selected_quorums.should_be_verifiable() { tracing::debug!( "we were in a situation where it would be possible we didn't have all quorums and we couldn't verify locally, we should validate through core", ); diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_instant_send_lock/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_instant_send_lock/mod.rs new file mode 100644 index 00000000000..87db2f8862d --- /dev/null +++ b/packages/rs-drive-abci/src/execution/platform_events/core_instant_send_lock/mod.rs @@ -0,0 +1,2 @@ +/// Instant Lock recent signature verification +pub mod verify_recent_signature_locally; diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_instant_send_lock/verify_recent_signature_locally/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_instant_send_lock/verify_recent_signature_locally/mod.rs new file mode 100644 index 00000000000..e804ad228ef --- /dev/null +++ b/packages/rs-drive-abci/src/execution/platform_events/core_instant_send_lock/verify_recent_signature_locally/mod.rs @@ -0,0 +1,47 @@ +mod v0; + +use crate::error::execution::ExecutionError; +use crate::error::Error; +use dpp::dashcore::InstantLock; + +use crate::platform_types::platform_state::PlatformState; +use dpp::version::PlatformVersion; + +/// Traits implements a method for signature verification using platform execution state +pub trait VerifyInstantLockSignature { + fn verify_recent_signature_locally( + &self, + platform_state: &PlatformState, + platform_version: &PlatformVersion, + ) -> Result; +} + +impl VerifyInstantLockSignature for InstantLock { + /// Verify instant lock signature with limited quorum set what we store in Platform state + /// + /// This is a limited verification and will work properly only for recently signed instant locks. + /// Even valid instant locks that was signed some time ago will be considered invalid due to limited + /// quorum information in the platform state. In turn, this verification doesn't use Core RPC or any other + /// IO. This is done to prevent DoS attacks on slow verify instant lock signature Core RPC method. + /// In case of failed signature verification (or any knowing the fact that signing quorum is old), + /// we expect clients to use ChainAssetLockProof. + fn verify_recent_signature_locally( + &self, + platform_state: &PlatformState, + platform_version: &PlatformVersion, + ) -> Result { + match platform_version + .drive_abci + .methods + .core_instant_send_lock + .verify_recent_signature_locally + { + 0 => v0::verify_recent_instant_lock_signature_locally_v0(self, platform_state), + version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { + method: "InstantLock.verify_recent_signature_locally".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_instant_send_lock/verify_recent_signature_locally/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_instant_send_lock/verify_recent_signature_locally/v0/mod.rs new file mode 100644 index 00000000000..b7fb76a10c0 --- /dev/null +++ b/packages/rs-drive-abci/src/execution/platform_events/core_instant_send_lock/verify_recent_signature_locally/v0/mod.rs @@ -0,0 +1,144 @@ +use dpp::bls_signatures::G2Element; +use std::fmt::{Debug, Formatter}; + +use dpp::dashcore::hashes::{sha256d, Hash, HashEngine}; +use dpp::dashcore::InstantLock; + +use crate::error::execution::ExecutionError; +use crate::error::Error; + +use crate::error::serialization::SerializationError; +use crate::platform_types::platform_state::v0::PlatformStateV0Methods; +use crate::platform_types::platform_state::PlatformState; +use crate::platform_types::signature_verification_quorum_set::{ + SignatureVerificationQuorumSetV0Methods, SIGN_OFFSET, +}; + +#[inline(always)] +pub(super) fn verify_recent_instant_lock_signature_locally_v0( + instant_lock: &InstantLock, + platform_state: &PlatformState, +) -> Result { + // First verify that the signature conforms to a signature + let signature = match G2Element::from_bytes(instant_lock.signature.as_bytes()) { + Ok(signature) => signature, + Err(e) => { + tracing::trace!( + instant_lock = ?InstantLockDebug(instant_lock), + "Invalid instant Lock {} signature format: {}", + instant_lock.txid, + e, + ); + + return Ok(false); + } + }; + + let signing_height = platform_state.last_committed_core_height(); + let verification_height = signing_height.saturating_sub(SIGN_OFFSET); + + let quorum_set = platform_state.instant_lock_validating_quorums(); + + // Based on the deterministic masternode list at the given height, a quorum must be selected + // that was active at the time this block was mined + let selected_quorums = quorum_set.select_quorums(signing_height, verification_height); + + if selected_quorums.is_empty() { + return Err(Error::Execution(ExecutionError::CorruptedCodeExecution( + "No quorums selected for instant lock signature verification for specified height", + ))); + }; + + let request_id = instant_lock.request_id().map_err(|e| { + Error::Serialization(SerializationError::CorruptedSerialization(format!( + "can't hash instant lock request ID for signature verification: {e}" + ))) + })?; + + for (i, quorums) in selected_quorums.enumerate() { + let Some((quorum_hash, quorum)) = quorums.choose_quorum(request_id.as_ref()) else { + if tracing::enabled!(tracing::Level::TRACE) { + tracing::trace!( + quorums_iteration = i + 1, + instant_lock = ?InstantLockDebug(instant_lock), + request_id = request_id.to_string(), + quorums = ?quorums.quorums, + request_id = request_id.to_string(), + signing_height, + verification_height, + "No chosen for instant Lock {} request ID {}", + instant_lock.txid, + request_id, + ); + }; + + continue; + }; + + // The signature must verify against the quorum public key and SHA256(llmqType, quorumHash, SHA256(height), txId). + // llmqType and quorumHash must be taken from the quorum selected in 1. + let mut engine = sha256d::Hash::engine(); + + let mut reversed_quorum_hash = quorum_hash.to_byte_array().to_vec(); + reversed_quorum_hash.reverse(); + + engine.input(&[quorum_set.config().quorum_type as u8]); + engine.input(reversed_quorum_hash.as_slice()); + engine.input(request_id.as_byte_array()); + engine.input(instant_lock.txid.as_byte_array()); + + let message_digest = sha256d::Hash::from_engine(engine); + + if quorum + .public_key + .verify(&signature, message_digest.as_ref()) + { + return Ok(true); + } + + if tracing::enabled!(tracing::Level::TRACE) { + tracing::trace!( + quorums_iteration = i + 1, + instant_lock = ?InstantLockDebug(instant_lock), + quorum_hash = quorum_hash.to_string(), + quorum_config = ?quorum_set.config(), + quorum = ?quorum, + request_id = request_id.to_string(), + message_digest = message_digest.to_string(), + signing_height, + verification_height, + "Instant Lock {} signature verification failed", + instant_lock.txid, + ); + }; + } + + Ok(false) +} + +// TODO: The best way is to implement Value trait for InstantLock and hashes +// in dashcore + +/// An additional struct to implement Debug for InstantLock with hex strings +/// instead of byte arrays +struct InstantLockDebug<'a>(&'a InstantLock); + +impl<'a> Debug for InstantLockDebug<'a> { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + let instant_lock = &self.0; + f.debug_struct("InstantLock") + .field("version", &instant_lock.version) + .field( + "inputs", + &instant_lock + .inputs + .iter() + .map(|input| input.to_string()) + .collect::>(), + ) + .field("txid", &instant_lock.txid.to_string()) + .field("cyclehash", &instant_lock.cyclehash.to_string()) + .field("signature", &instant_lock.signature.to_string()) + .finish() + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/mod.rs index 79821827bea..d63103d880d 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/mod.rs @@ -26,3 +26,6 @@ pub(in crate::execution) mod block_start; /// Verify the chain lock pub(in crate::execution) mod core_chain_lock; + +/// Instant lock methods +pub(in crate::execution) mod core_instant_send_lock; diff --git a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_raw_state_transitions/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_raw_state_transitions/v0/mod.rs index 29827900d00..a9ba48da712 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_raw_state_transitions/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_raw_state_transitions/v0/mod.rs @@ -214,6 +214,19 @@ where // the first error must be present for an invalid result .remove(0); + if tracing::enabled!(tracing::Level::DEBUG) { + let st_hash = hex::encode(hash_single(raw_state_transition)); + + tracing::debug!( + error = ?first_consensus_error, + st_hash, + "Invalid {} state transition without identity ({}): {}", + state_transition_name, + st_hash, + &first_consensus_error + ); + } + // We don't have execution event, so we can't pay for processing return Ok(StateTransitionExecutionResult::UnpaidConsensusError( first_consensus_error, diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/common/asset_lock/proof/validate/instant/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/common/asset_lock/proof/validate/instant/mod.rs index e9fb84b8f8d..a2500b06636 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/common/asset_lock/proof/validate/instant/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/common/asset_lock/proof/validate/instant/mod.rs @@ -1,7 +1,6 @@ use crate::error::Error; use crate::platform_types::platform::PlatformRef; use crate::rpc::core::CoreRPCLike; -use crate::rpc::signature::CoreSignatureVerification; use dpp::asset_lock::reduced_asset_lock_value::AssetLockValue; use dpp::consensus::basic::identity::InvalidInstantAssetLockProofSignatureError; use dpp::fee::Credits; @@ -11,10 +10,10 @@ use dpp::state_transition::signable_bytes_hasher::SignableBytesHasher; use dpp::validation::ConsensusValidationResult; use dpp::version::PlatformVersion; use drive::grovedb::TransactionArg; +use crate::execution::platform_events::core_instant_send_lock::verify_recent_signature_locally::VerifyInstantLockSignature; use crate::execution::validation::state_transition::common::asset_lock::proof::validate::AssetLockProofValidation; use crate::execution::validation::state_transition::common::asset_lock::proof::verify_is_not_spent::AssetLockProofVerifyIsNotSpent; use crate::execution::validation::state_transition::ValidationMode; -use crate::platform_types::platform_state::v0::PlatformStateV0Methods; // TODO: Versioning impl AssetLockProofValidation for InstantAssetLockProof { @@ -45,12 +44,29 @@ impl AssetLockProofValidation for InstantAssetLockProof { // As we know this outpoint was already considered final and locked. if validation_mode != ValidationMode::RecheckTx && !validation_result.has_data() { - let is_instant_lock_signature_valid = self.instant_lock().verify_signature( - platform_ref.core_rpc, - platform_ref.state.last_committed_core_height(), - )?; + // We should be able to disable instant lock versification for integration tests + #[cfg(feature = "testing-config")] + if platform_ref + .config + .testing_configs + .disable_instant_lock_signature_verification + { + return Ok(validation_result); + } + + // TODO: Shouldn't we add an operation for fees? + + // This is a limited verification and will work properly only for recently signed instant locks. + // Even valid instant locks that was signed some time ago will be considered invalid due to limited + // quorum information in the platform state. In turn, this verification doesn't use Core RPC or any other + // IO. This is done to prevent DoS attacks on slow verify instant lock signature Core RPC method. + // In case of failed signature verification (or any knowing the fact that signing quorum is old), + // we expect clients to use ChainAssetLockProof. + let is_valid = self + .instant_lock() + .verify_recent_signature_locally(platform_ref.state, platform_version)?; - if !is_instant_lock_signature_valid { + if !is_valid { return Ok(ConsensusValidationResult::new_with_error( InvalidInstantAssetLockProofSignatureError::new().into(), )); diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/data_contract_update/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/data_contract_update/mod.rs index dffa542954d..ae6e797a544 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/data_contract_update/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/data_contract_update/mod.rs @@ -52,12 +52,11 @@ impl StateTransitionActionTransformerV0 for DataContractUpdateTransition { #[cfg(test)] mod tests { - use crate::config::{ExecutionConfig, PlatformConfig, PlatformTestConfig}; + use crate::config::{ExecutionConfig, PlatformConfig, PlatformTestConfig, ValidatorSetConfig}; use crate::platform_types::platform::PlatformRef; use crate::rpc::core::MockCoreRPCLike; use crate::test::helpers::setup::{TempPlatform, TestPlatformBuilder}; use dpp::block::block_info::BlockInfo; - use dpp::consensus::basic::BasicError; use dpp::consensus::state::state_error::StateError; use dpp::consensus::ConsensusError; use dpp::dash_to_credits; @@ -174,7 +173,10 @@ mod tests { .data_contract_owned(); let config = PlatformConfig { - validator_set_quorum_size: 10, + validator_set: ValidatorSetConfig { + quorum_size: 10, + ..Default::default() + }, execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_create/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_create/mod.rs index f68781b6b13..a7db42dc744 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_create/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_create/mod.rs @@ -193,6 +193,7 @@ impl StateTransitionStateValidationForIdentityCreateTransitionV0 for IdentityCre #[cfg(test)] mod tests { + use crate::config::{PlatformConfig, PlatformTestConfig}; use crate::test::helpers::setup::TestPlatformBuilder; use dpp::block::block_info::BlockInfo; use dpp::dashcore::{Network, PrivateKey}; @@ -215,15 +216,19 @@ mod tests { #[test] fn test_identity_create_validation() { let platform_version = PlatformVersion::latest(); - let mut platform = TestPlatformBuilder::new() + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; + + let platform = TestPlatformBuilder::new() + .with_config(platform_config) .build_with_mock_rpc() .set_initial_state_structure(); - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); - let platform_state = platform.state.load(); let mut signer = SimpleSigner::default(); @@ -322,15 +327,19 @@ mod tests { #[test] fn test_identity_create_asset_lock_reuse_after_issue() { let platform_version = PlatformVersion::latest(); - let mut platform = TestPlatformBuilder::new() + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; + + let platform = TestPlatformBuilder::new() + .with_config(platform_config) .build_with_mock_rpc() .set_initial_state_structure(); - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); - let platform_state = platform.state.load(); let mut signer = SimpleSigner::default(); @@ -536,15 +545,19 @@ mod tests { #[test] fn test_identity_create_asset_lock_reuse_after_max_issues() { let platform_version = PlatformVersion::latest(); - let mut platform = TestPlatformBuilder::new() + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; + + let platform = TestPlatformBuilder::new() + .with_config(platform_config) .build_with_mock_rpc() .set_initial_state_structure(); - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); - let platform_state = platform.state.load(); let mut signer = SimpleSigner::default(); @@ -756,15 +769,19 @@ mod tests { #[test] fn test_identity_create_asset_lock_use_all_funds() { let platform_version = PlatformVersion::latest(); - let mut platform = TestPlatformBuilder::new() + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; + + let platform = TestPlatformBuilder::new() + .with_config(platform_config) .build_with_mock_rpc() .set_initial_state_structure(); - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); - let platform_state = platform.state.load(); let mut signer = SimpleSigner::default(); @@ -977,15 +994,19 @@ mod tests { #[test] fn test_identity_create_asset_lock_replay_attack() { let platform_version = PlatformVersion::latest(); - let mut platform = TestPlatformBuilder::new() + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; + + let platform = TestPlatformBuilder::new() + .with_config(platform_config) .build_with_mock_rpc() .set_initial_state_structure(); - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); - let platform_state = platform.state.load(); let mut signer = SimpleSigner::default(); diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_top_up/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_top_up/mod.rs index 670a1ac80cb..7bfa108e724 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_top_up/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_top_up/mod.rs @@ -100,6 +100,7 @@ impl StateTransitionBasicStructureValidationV0 for IdentityTopUpTransition { #[cfg(test)] mod tests { + use crate::config::{PlatformConfig, PlatformTestConfig}; use crate::test::helpers::setup::TestPlatformBuilder; use dpp::block::block_info::BlockInfo; use dpp::dashcore::{Network, PrivateKey}; @@ -121,15 +122,19 @@ mod tests { #[test] fn test_identity_top_up_validation() { let platform_version = PlatformVersion::latest(); - let mut platform = TestPlatformBuilder::new() + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; + + let platform = TestPlatformBuilder::new() + .with_config(platform_config) .build_with_mock_rpc() .set_initial_state_structure(); - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); - let platform_state = platform.state.load(); let mut signer = SimpleSigner::default(); diff --git a/packages/rs-drive-abci/src/mimic/mod.rs b/packages/rs-drive-abci/src/mimic/mod.rs index d548590106a..a691cd47724 100644 --- a/packages/rs-drive-abci/src/mimic/mod.rs +++ b/packages/rs-drive-abci/src/mimic/mod.rs @@ -457,7 +457,7 @@ impl<'a, C: CoreRPCLike> FullAbciApplication<'a, C> { // We need to sign the block - let quorum_type = self.platform.config.validator_set_quorum_type(); + let quorum_type = self.platform.config.validator_set.quorum_type; let state_id_hash = state_id .calculate_msg_hash(CHAIN_ID, height as i64, round as i32) .expect("cannot calculate state id hash"); @@ -480,7 +480,13 @@ impl<'a, C: CoreRPCLike> FullAbciApplication<'a, C> { threshold_vote_extensions: extensions, }; //if not in testing this will default to true - if self.platform.config.testing_configs.block_signing { + #[cfg(not(feature = "testing-config"))] + let sign_block = true; + + #[cfg(feature = "testing-config")] + let sign_block = self.platform.config.testing_configs.block_signing; + + if sign_block { let quorum_hash: [u8; 32] = quorum_hash.try_into().expect("wrong quorum hash len"); let digest = commit .calculate_sign_hash( diff --git a/packages/rs-drive-abci/src/mimic/test_quorum.rs b/packages/rs-drive-abci/src/mimic/test_quorum.rs index e32888457bc..c1653183c6d 100644 --- a/packages/rs-drive-abci/src/mimic/test_quorum.rs +++ b/packages/rs-drive-abci/src/mimic/test_quorum.rs @@ -95,6 +95,8 @@ pub struct TestQuorumInfo { pub core_height: u32, /// The hash of the quorum. pub quorum_hash: QuorumHash, + /// The quorum index. Available only for DIP24 rotated quorums. + pub quorum_index: Option, /// The set of validators that belong to the quorum. pub validator_set: Vec, /// A map of validators indexed by their `ProTxHash` identifiers. @@ -129,6 +131,7 @@ impl TestQuorumInfo { pub fn from_quorum_hash_and_pro_tx_hashes( core_height: u32, quorum_hash: QuorumHash, + quorum_index: Option, pro_tx_hashes: Vec, rng: &mut StdRng, ) -> Self { @@ -172,6 +175,7 @@ impl TestQuorumInfo { TestQuorumInfo { core_height, quorum_hash, + quorum_index, validator_set, validator_map: map, private_key: recovered_private_key, @@ -185,6 +189,7 @@ impl From<&TestQuorumInfo> for ValidatorSetV0 { let TestQuorumInfo { core_height, quorum_hash, + quorum_index, validator_set, private_key: _, public_key, @@ -199,6 +204,7 @@ impl From<&TestQuorumInfo> for ValidatorSetV0 { .map(|v| (v.pro_tx_hash, v.into())) .collect(), threshold_public_key: public_key.clone(), + quorum_index: *quorum_index, } } } @@ -208,6 +214,7 @@ impl From for ValidatorSetV0 { let TestQuorumInfo { core_height, quorum_hash, + quorum_index, validator_set, private_key: _, public_key, @@ -216,6 +223,7 @@ impl From for ValidatorSetV0 { ValidatorSetV0 { quorum_hash, + quorum_index, core_height, members: validator_set .iter() diff --git a/packages/rs-drive-abci/src/platform_types/mod.rs b/packages/rs-drive-abci/src/platform_types/mod.rs index 66a86cbbee2..f6e9b3f838e 100644 --- a/packages/rs-drive-abci/src/platform_types/mod.rs +++ b/packages/rs-drive-abci/src/platform_types/mod.rs @@ -47,8 +47,8 @@ pub mod platform; pub mod platform_state; /// Required identity public key set for system identities pub mod required_identity_public_key_set; -/// Signature verification quorums -pub mod signature_verification_quorums; +/// Signature verification quorums for Core +pub mod signature_verification_quorum_set; /// The state transition execution result as part of the block execution outcome pub mod state_transitions_processing_result; /// System identity public keys diff --git a/packages/rs-drive-abci/src/platform_types/platform/mod.rs b/packages/rs-drive-abci/src/platform_types/platform/mod.rs index 3cab0f01fc8..24c2dba3df8 100644 --- a/packages/rs-drive-abci/src/platform_types/platform/mod.rs +++ b/packages/rs-drive-abci/src/platform_types/platform/mod.rs @@ -249,7 +249,8 @@ impl Platform { let platform_state = PlatformState::default_with_protocol_versions( current_protocol_version_in_consensus, next_epoch_protocol_version, - ); + &config, + )?; let height = platform_state.last_committed_block_height(); diff --git a/packages/rs-drive-abci/src/platform_types/platform_state/mod.rs b/packages/rs-drive-abci/src/platform_types/platform_state/mod.rs index be67bdb11e4..d92a5a00c88 100644 --- a/packages/rs-drive-abci/src/platform_types/platform_state/mod.rs +++ b/packages/rs-drive-abci/src/platform_types/platform_state/mod.rs @@ -20,8 +20,9 @@ use dpp::version::{PlatformVersion, TryFromPlatformVersioned, TryIntoPlatformVer use dpp::ProtocolError; use indexmap::IndexMap; +use crate::config::PlatformConfig; use crate::error::execution::ExecutionError; -use crate::platform_types::signature_verification_quorums::SignatureVerificationQuorums; +use crate::platform_types::signature_verification_quorum_set::SignatureVerificationQuorumSet; use dpp::block::block_info::BlockInfo; use dpp::util::hash::hash_double; use std::collections::BTreeMap; @@ -119,13 +120,17 @@ impl PlatformState { pub fn default_with_protocol_versions( current_protocol_version_in_consensus: ProtocolVersion, next_epoch_protocol_version: ProtocolVersion, - ) -> PlatformState { + config: &PlatformConfig, + ) -> Result { //todo find the current Platform state for the protocol version - PlatformStateV0::default_with_protocol_versions( + let state = PlatformStateV0::default_with_protocol_versions( current_protocol_version_in_consensus, next_epoch_protocol_version, - ) - .into() + config, + )? + .into(); + + Ok(state) } /// Retrieve version 0, or an error if not currently on version 0 @@ -316,7 +321,7 @@ impl PlatformStateV0Methods for PlatformState { } } - fn chain_lock_validating_quorums(&self) -> &SignatureVerificationQuorums { + fn chain_lock_validating_quorums(&self) -> &SignatureVerificationQuorumSet { match self { PlatformState::V0(v0) => &v0.chain_lock_validating_quorums, } @@ -382,12 +387,18 @@ impl PlatformStateV0Methods for PlatformState { } } - fn set_chain_lock_validating_quorums(&mut self, quorums: SignatureVerificationQuorums) { + fn set_chain_lock_validating_quorums(&mut self, quorums: SignatureVerificationQuorumSet) { match self { PlatformState::V0(v0) => v0.set_chain_lock_validating_quorums(quorums), } } + fn set_instant_lock_validating_quorums(&mut self, quorums: SignatureVerificationQuorumSet) { + match self { + PlatformState::V0(v0) => v0.set_instant_lock_validating_quorums(quorums), + } + } + fn set_full_masternode_list(&mut self, list: BTreeMap) { match self { PlatformState::V0(v0) => v0.set_full_masternode_list(list), @@ -442,7 +453,7 @@ impl PlatformStateV0Methods for PlatformState { } } - fn chain_lock_validating_quorums_mut(&mut self) -> &mut SignatureVerificationQuorums { + fn chain_lock_validating_quorums_mut(&mut self) -> &mut SignatureVerificationQuorumSet { match self { PlatformState::V0(v0) => v0.chain_lock_validating_quorums_mut(), } @@ -471,4 +482,16 @@ impl PlatformStateV0Methods for PlatformState { PlatformState::V0(v0) => v0.last_committed_block_id_hash(), } } + + fn instant_lock_validating_quorums(&self) -> &SignatureVerificationQuorumSet { + match self { + PlatformState::V0(v0) => v0.instant_lock_validating_quorums(), + } + } + + fn instant_lock_validating_quorums_mut(&mut self) -> &mut SignatureVerificationQuorumSet { + match self { + PlatformState::V0(v0) => v0.instant_lock_validating_quorums_mut(), + } + } } diff --git a/packages/rs-drive-abci/src/platform_types/platform_state/v0/mod.rs b/packages/rs-drive-abci/src/platform_types/platform_state/v0/mod.rs index 4a9da76867f..2c22025628b 100644 --- a/packages/rs-drive-abci/src/platform_types/platform_state/v0/mod.rs +++ b/packages/rs-drive-abci/src/platform_types/platform_state/v0/mod.rs @@ -19,7 +19,10 @@ use dpp::block::block_info::{BlockInfo, DEFAULT_BLOCK_INFO}; use dpp::block::extended_block_info::v0::ExtendedBlockInfoV0Getters; use dpp::version::{PlatformVersion, TryIntoPlatformVersioned}; -use crate::platform_types::signature_verification_quorums::SignatureVerificationQuorums; +use crate::config::PlatformConfig; +use crate::platform_types::signature_verification_quorum_set::{ + SignatureVerificationQuorumSet, SignatureVerificationQuorumSetForSaving, +}; use itertools::Itertools; use std::collections::BTreeMap; use std::fmt::{Debug, Formatter}; @@ -44,8 +47,11 @@ pub struct PlatformStateV0 { /// all members pub validator_sets: IndexMap, - /// The current quorums used for validating chain locks (400 60 for mainnet) - pub chain_lock_validating_quorums: SignatureVerificationQuorums, + /// Quorums used for validating chain locks (400 60 for mainnet) + pub chain_lock_validating_quorums: SignatureVerificationQuorumSet, + + /// Quorums used for validating instant locks + pub instant_lock_validating_quorums: SignatureVerificationQuorumSet, /// current full masternode list pub full_masternode_list: BTreeMap, @@ -89,6 +95,10 @@ impl Debug for PlatformStateV0 { "chain_lock_validating_quorums", &self.chain_lock_validating_quorums, ) + .field( + "instant_lock_validating_quorums", + &self.instant_lock_validating_quorums, + ) .finish() } } @@ -122,8 +132,11 @@ pub struct PlatformStateForSavingV0 { #[bincode(with_serde)] pub validator_sets: Vec<(Bytes32, ValidatorSet)>, - /// The 400 60 quorums used for validating chain locks - pub chain_lock_validating_quorums: SignatureVerificationQuorums, + /// The quorums used for validating chain locks + pub chain_lock_validating_quorums: SignatureVerificationQuorumSetForSaving, + + /// The quorums used for validating instant locks + pub instant_lock_validating_quorums: SignatureVerificationQuorumSetForSaving, /// current full masternode list pub full_masternode_list: BTreeMap, @@ -154,7 +167,8 @@ impl TryFrom for PlatformStateForSavingV0 { .into_iter() .map(|(k, v)| (k.to_byte_array().into(), v)) .collect(), - chain_lock_validating_quorums: value.chain_lock_validating_quorums, + chain_lock_validating_quorums: value.chain_lock_validating_quorums.into(), + instant_lock_validating_quorums: value.instant_lock_validating_quorums.into(), full_masternode_list: value .full_masternode_list .into_iter() @@ -197,7 +211,8 @@ impl From for PlatformStateV0 { .into_iter() .map(|(k, v)| (QuorumHash::from_byte_array(k.to_buffer()), v)) .collect(), - chain_lock_validating_quorums: value.chain_lock_validating_quorums, + chain_lock_validating_quorums: value.chain_lock_validating_quorums.into(), + instant_lock_validating_quorums: value.instant_lock_validating_quorums.into(), full_masternode_list: value .full_masternode_list .into_iter() @@ -217,23 +232,31 @@ impl PlatformStateV0 { pub(super) fn default_with_protocol_versions( current_protocol_version_in_consensus: ProtocolVersion, next_epoch_protocol_version: ProtocolVersion, - ) -> PlatformStateV0 { - let platform_version = PlatformVersion::get(current_protocol_version_in_consensus) - .expect("invalid protocol version"); + config: &PlatformConfig, + ) -> Result { + let platform_version = PlatformVersion::get(current_protocol_version_in_consensus)?; - PlatformStateV0 { + let state = PlatformStateV0 { last_committed_block_info: None, current_protocol_version_in_consensus, next_epoch_protocol_version, current_validator_set_quorum_hash: QuorumHash::all_zeros(), next_validator_set_quorum_hash: None, validator_sets: Default::default(), - chain_lock_validating_quorums: - SignatureVerificationQuorums::default_for_platform_version(platform_version), + chain_lock_validating_quorums: SignatureVerificationQuorumSet::new( + &config.chain_lock, + platform_version, + )?, + instant_lock_validating_quorums: SignatureVerificationQuorumSet::new( + &config.instant_lock, + platform_version, + )?, full_masternode_list: Default::default(), hpmn_masternode_list: Default::default(), genesis_block_info: None, - } + }; + + Ok(state) } } @@ -283,8 +306,11 @@ pub trait PlatformStateV0Methods { /// Returns the current validator sets. fn validator_sets(&self) -> &IndexMap; - /// Returns the current 400 60 quorums used to validate chain locks. - fn chain_lock_validating_quorums(&self) -> &SignatureVerificationQuorums; + /// Returns the quorums used to validate chain locks. + fn chain_lock_validating_quorums(&self) -> &SignatureVerificationQuorumSet; + + /// Returns quorums used to validate instant locks. + fn instant_lock_validating_quorums(&self) -> &SignatureVerificationQuorumSet; /// Returns the full list of masternodes. fn full_masternode_list(&self) -> &BTreeMap; @@ -317,7 +343,10 @@ pub trait PlatformStateV0Methods { fn set_validator_sets(&mut self, sets: IndexMap); /// Sets the current chain lock validating quorums. - fn set_chain_lock_validating_quorums(&mut self, quorums: SignatureVerificationQuorums); + fn set_chain_lock_validating_quorums(&mut self, quorums: SignatureVerificationQuorumSet); + + /// Sets the current instant lock validating quorums. + fn set_instant_lock_validating_quorums(&mut self, quorums: SignatureVerificationQuorumSet); /// Sets the full masternode list. fn set_full_masternode_list(&mut self, list: BTreeMap); @@ -345,8 +374,11 @@ pub trait PlatformStateV0Methods { /// Returns a mutable reference to the current validator sets. fn validator_sets_mut(&mut self) -> &mut IndexMap; - /// Returns a mutable reference to the current chain lock validating quorums. - fn chain_lock_validating_quorums_mut(&mut self) -> &mut SignatureVerificationQuorums; + /// Returns a mutable reference to the chain lock validating quorums. + fn chain_lock_validating_quorums_mut(&mut self) -> &mut SignatureVerificationQuorumSet; + + /// Returns a mutable reference to the instant lock validating quorums. + fn instant_lock_validating_quorums_mut(&mut self) -> &mut SignatureVerificationQuorumSet; /// Returns a mutable reference to the full masternode list. fn full_masternode_list_mut(&mut self) -> &mut BTreeMap; @@ -499,11 +531,16 @@ impl PlatformStateV0Methods for PlatformStateV0 { &self.validator_sets } - /// Returns the current 400 60 quorums used to validate chain locks. - fn chain_lock_validating_quorums(&self) -> &SignatureVerificationQuorums { + /// Returns the quorums used to validate chain locks. + fn chain_lock_validating_quorums(&self) -> &SignatureVerificationQuorumSet { &self.chain_lock_validating_quorums } + /// Returns the quorums used to validate instant locks. + fn instant_lock_validating_quorums(&self) -> &SignatureVerificationQuorumSet { + &self.instant_lock_validating_quorums + } + /// Returns the full list of masternodes. fn full_masternode_list(&self) -> &BTreeMap { &self.full_masternode_list @@ -561,10 +598,15 @@ impl PlatformStateV0Methods for PlatformStateV0 { } /// Sets the current chain lock validating quorums. - fn set_chain_lock_validating_quorums(&mut self, quorums: SignatureVerificationQuorums) { + fn set_chain_lock_validating_quorums(&mut self, quorums: SignatureVerificationQuorumSet) { self.chain_lock_validating_quorums = quorums; } + /// Sets the current instant lock validating quorums. + fn set_instant_lock_validating_quorums(&mut self, quorums: SignatureVerificationQuorumSet) { + self.instant_lock_validating_quorums = quorums; + } + /// Sets the full masternode list. fn set_full_masternode_list(&mut self, list: BTreeMap) { self.full_masternode_list = list; @@ -604,10 +646,14 @@ impl PlatformStateV0Methods for PlatformStateV0 { &mut self.validator_sets } - fn chain_lock_validating_quorums_mut(&mut self) -> &mut SignatureVerificationQuorums { + fn chain_lock_validating_quorums_mut(&mut self) -> &mut SignatureVerificationQuorumSet { &mut self.chain_lock_validating_quorums } + fn instant_lock_validating_quorums_mut(&mut self) -> &mut SignatureVerificationQuorumSet { + &mut self.instant_lock_validating_quorums + } + fn full_masternode_list_mut(&mut self) -> &mut BTreeMap { &mut self.full_masternode_list } diff --git a/packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/mod.rs b/packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/mod.rs new file mode 100644 index 00000000000..8d0eac3c0a3 --- /dev/null +++ b/packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/mod.rs @@ -0,0 +1,141 @@ +mod v0; + +use crate::config::QuorumLikeConfig; +use crate::error::execution::ExecutionError; +use crate::error::Error; +use crate::platform_types::signature_verification_quorum_set::v0::for_saving::SignatureVerificationQuorumSetForSavingV0; +pub use crate::platform_types::signature_verification_quorum_set::v0::quorum_set::{ + QuorumConfig, QuorumsWithConfig, SelectedQuorumSetIterator, SignatureVerificationQuorumSetV0, + SignatureVerificationQuorumSetV0Methods, SIGN_OFFSET, +}; +pub use crate::platform_types::signature_verification_quorum_set::v0::quorums::{ + Quorum, Quorums, SigningQuorum, ThresholdBlsPublicKey, VerificationQuorum, +}; +use bincode::{Decode, Encode}; +use derive_more::From; +use dpp::version::PlatformVersion; + +/// Quorums with keys for signature verification +#[derive(Debug, Clone, From)] +pub enum SignatureVerificationQuorumSet { + /// Version 0 of the signature verification quorums + V0(SignatureVerificationQuorumSetV0), +} + +impl SignatureVerificationQuorumSet { + /// Create a default SignatureVerificationQuorums + pub fn new( + config: &impl QuorumLikeConfig, + platform_version: &PlatformVersion, + ) -> Result { + match platform_version + .drive_abci + .structs + .signature_verification_quorum_set + { + 0 => Ok(SignatureVerificationQuorumSetV0::new(config).into()), + version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { + method: "SignatureVerificationQuorumSet.new".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} + +impl SignatureVerificationQuorumSetV0Methods for SignatureVerificationQuorumSet { + fn config(&self) -> &QuorumConfig { + match self { + Self::V0(v0) => v0.config(), + } + } + + fn set_current_quorums(&mut self, quorums: Quorums) { + match self { + Self::V0(v0) => v0.set_current_quorums(quorums), + } + } + + fn current_quorums(&self) -> &Quorums { + match self { + Self::V0(v0) => v0.current_quorums(), + } + } + + fn current_quorums_mut(&mut self) -> &mut Quorums { + match self { + Self::V0(v0) => v0.current_quorums_mut(), + } + } + + fn has_previous_past_quorums(&self) -> bool { + match self { + Self::V0(v0) => v0.has_previous_past_quorums(), + } + } + + fn replace_quorums( + &mut self, + quorums: Quorums, + last_active_core_height: u32, + updated_at_core_height: u32, + ) { + match self { + Self::V0(v0) => { + v0.replace_quorums(quorums, last_active_core_height, updated_at_core_height) + } + } + } + + fn set_previous_past_quorums( + &mut self, + previous_quorums: Quorums, + last_active_core_height: u32, + updated_at_core_height: u32, + ) { + match self { + Self::V0(v0) => v0.set_previous_past_quorums( + previous_quorums, + last_active_core_height, + updated_at_core_height, + ), + } + } + + fn select_quorums( + &self, + signing_height: u32, + verification_height: u32, + ) -> SelectedQuorumSetIterator { + match self { + Self::V0(v0) => v0.select_quorums(signing_height, verification_height), + } + } +} + +/// Core Quorum Set structure for saving to the database +#[derive(Debug, Clone, Encode, Decode)] +pub enum SignatureVerificationQuorumSetForSaving { + /// Version 0 of the signature verification quorums + V0(SignatureVerificationQuorumSetForSavingV0), +} + +impl From for SignatureVerificationQuorumSetForSaving { + fn from(value: SignatureVerificationQuorumSet) -> Self { + match value { + SignatureVerificationQuorumSet::V0(v0) => { + SignatureVerificationQuorumSetForSaving::V0(v0.into()) + } + } + } +} + +impl From for SignatureVerificationQuorumSet { + fn from(value: SignatureVerificationQuorumSetForSaving) -> Self { + match value { + SignatureVerificationQuorumSetForSaving::V0(v0) => { + SignatureVerificationQuorumSet::V0(v0.into()) + } + } + } +} diff --git a/packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/v0/for_saving.rs b/packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/v0/for_saving.rs new file mode 100644 index 00000000000..5e254e62023 --- /dev/null +++ b/packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/v0/for_saving.rs @@ -0,0 +1,167 @@ +use crate::platform_types::signature_verification_quorum_set::v0::quorum_set::{ + PreviousPastQuorumsV0, QuorumConfig, +}; +use crate::platform_types::signature_verification_quorum_set::{ + Quorums, SignatureVerificationQuorumSetForSaving, SignatureVerificationQuorumSetV0, + ThresholdBlsPublicKey, VerificationQuorum, +}; +use dashcore_rpc::dashcore::hashes::Hash; +use dashcore_rpc::dashcore::QuorumHash; +use dashcore_rpc::json::QuorumType; +use dpp::identity::state_transition::asset_lock_proof::Encode; +use dpp::platform_serialization::de::Decode; +use dpp::platform_value::Bytes32; + +#[derive(Debug, Clone, Encode, Decode)] +pub struct SignatureVerificationQuorumSetForSavingV0 { + config: QuorumConfigForSavingV0, + current_quorums: Vec, + previous_quorums: Option, +} + +impl From for SignatureVerificationQuorumSetForSaving { + fn from(value: SignatureVerificationQuorumSetForSavingV0) -> Self { + SignatureVerificationQuorumSetForSaving::V0(value) + } +} + +impl From for SignatureVerificationQuorumSetForSavingV0 { + fn from(value: SignatureVerificationQuorumSetV0) -> Self { + let SignatureVerificationQuorumSetV0 { + config, + current_quorums, + previous, + } = value; + + Self { + config: config.into(), + current_quorums: current_quorums.into(), + previous_quorums: previous.map(|previous| previous.into()), + } + } +} + +impl From for SignatureVerificationQuorumSetV0 { + fn from(value: SignatureVerificationQuorumSetForSavingV0) -> Self { + let SignatureVerificationQuorumSetForSavingV0 { + config, + current_quorums, + previous_quorums, + } = value; + + Self { + config: config.into(), + current_quorums: current_quorums.into(), + previous: previous_quorums.map(|previous| previous.into()), + } + } +} + +#[derive(Debug, Clone, Encode, Decode)] +pub struct QuorumConfigForSavingV0 { + quorum_type: QuorumType, + active_signers: u16, + rotation: bool, + window: u32, +} + +impl From for QuorumConfigForSavingV0 { + fn from(config: QuorumConfig) -> Self { + Self { + quorum_type: config.quorum_type, + active_signers: config.active_signers, + rotation: config.rotation, + window: config.window, + } + } +} + +impl From for QuorumConfig { + fn from(config: QuorumConfigForSavingV0) -> Self { + Self { + quorum_type: config.quorum_type, + active_signers: config.active_signers, + rotation: config.rotation, + window: config.window, + } + } +} + +#[derive(Debug, Clone, Encode, Decode)] +pub struct PreviousPastQuorumsForSavingV0 { + quorums: Vec, + active_core_height: u32, + updated_at_core_height: u32, + previous_change_height: Option, +} + +impl From for PreviousPastQuorumsForSavingV0 { + fn from(value: PreviousPastQuorumsV0) -> Self { + let PreviousPastQuorumsV0 { + quorums, + active_core_height, + updated_at_core_height, + previous_change_height, + } = value; + + Self { + quorums: quorums.into(), + active_core_height, + updated_at_core_height, + previous_change_height, + } + } +} + +impl From for PreviousPastQuorumsV0 { + fn from(value: PreviousPastQuorumsForSavingV0) -> Self { + let PreviousPastQuorumsForSavingV0 { + quorums, + active_core_height, + updated_at_core_height, + previous_change_height, + } = value; + + Self { + quorums: quorums.into(), + active_core_height, + updated_at_core_height, + previous_change_height, + } + } +} + +#[derive(Debug, Clone, Encode, Decode)] +pub struct QuorumForSavingV0 { + hash: Bytes32, + #[bincode(with_serde)] + public_key: ThresholdBlsPublicKey, + index: Option, +} + +impl From> for Quorums { + fn from(value: Vec) -> Self { + Quorums::from_iter(value.into_iter().map(|quorum| { + ( + QuorumHash::from_byte_array(quorum.hash.to_buffer()), + VerificationQuorum { + public_key: quorum.public_key, + index: quorum.index, + }, + ) + })) + } +} + +#[allow(clippy::from_over_into)] +impl Into> for Quorums { + fn into(self) -> Vec { + self.into_iter() + .map(|(hash, quorum)| QuorumForSavingV0 { + hash: Bytes32::from(hash.as_byte_array()), + public_key: quorum.public_key, + index: quorum.index, + }) + .collect() + } +} diff --git a/packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/v0/mod.rs b/packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/v0/mod.rs new file mode 100644 index 00000000000..e78d6c1c7f4 --- /dev/null +++ b/packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/v0/mod.rs @@ -0,0 +1,3 @@ +pub mod for_saving; +pub mod quorum_set; +pub mod quorums; diff --git a/packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/v0/quorum_set.rs b/packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/v0/quorum_set.rs new file mode 100644 index 00000000000..9225ced3164 --- /dev/null +++ b/packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/v0/quorum_set.rs @@ -0,0 +1,296 @@ +use crate::config::{ChainLockConfig, QuorumLikeConfig}; +use crate::platform_types::signature_verification_quorum_set::v0::quorums::Quorums; +use crate::platform_types::signature_verification_quorum_set::VerificationQuorum; +use dashcore_rpc::json::QuorumType; +use dpp::dashcore::QuorumHash; +use std::vec::IntoIter; + +/// Offset for signature verification +pub const SIGN_OFFSET: u32 = 8; + +/// Previously obtained quorums and heights. Required for signature verification +#[derive(Debug, Clone)] +pub(super) struct PreviousPastQuorumsV0 { + pub(super) quorums: Quorums, + + /// The core height at which these quorums were last active + pub(super) active_core_height: u32, + + /// The core height when the quorums were changed + pub(super) updated_at_core_height: u32, + + /// The core height the previous chain lock validating quorums became active + pub(super) previous_change_height: Option, +} + +/// Quorums with keys for signature verification +#[derive(Debug, Clone)] +pub struct SignatureVerificationQuorumSetV0 { + /// Quorum configuration + pub(super) config: QuorumConfig, + + /// Current quorums + pub(super) current_quorums: Quorums, + + /// The slightly old quorums used for validating ch ain locks (or instant locks), it's important to keep + /// these because validation of signatures happens for the quorums that are 8 blocks before the + /// height written in the chain lock. The same for instant locks + pub(super) previous: Option, +} + +/// The trait defines methods for the signature verification quorums structure v0 +pub trait SignatureVerificationQuorumSetV0Methods { + /// Config + fn config(&self) -> &QuorumConfig; + + /// Set current quorum keys + fn set_current_quorums(&mut self, quorums: Quorums); + + /// Current quorum + fn current_quorums(&self) -> &Quorums; + + /// Last quorum keys mutable + fn current_quorums_mut(&mut self) -> &mut Quorums; + + /// Has previous quorums? + fn has_previous_past_quorums(&self) -> bool; + + /// Set last quorums keys and update previous quorums + fn replace_quorums( + &mut self, + quorums: Quorums, + last_active_core_height: u32, + updated_at_core_height: u32, + ); + + /// Update previous quorums + fn set_previous_past_quorums( + &mut self, + previous_quorums: Quorums, + last_active_core_height: u32, + updated_at_core_height: u32, + ); + + /// Select quorums for signature verification based on sign and verification heights + fn select_quorums( + &self, + signing_height: u32, + verification_height: u32, + ) -> SelectedQuorumSetIterator; +} + +/// Iterator over selected quorum sets and specific quorums based on request_id and quorum configuration +pub struct SelectedQuorumSetIterator<'q> { + /// Quorum configuration + config: &'q QuorumConfig, + /// Appropriate quorum sets + quorum_set: IntoIter<&'q Quorums>, + /// Should we expect signature verification to be successful + should_be_verifiable: bool, +} + +impl<'q> Iterator for SelectedQuorumSetIterator<'q> { + type Item = QuorumsWithConfig<'q>; + + fn next(&mut self) -> Option { + self.quorum_set.next().map(|quorums| QuorumsWithConfig { + quorums, + config: self.config, + }) + } +} + +/// Quorums with configuration +pub struct QuorumsWithConfig<'q> { + /// Quorums + pub quorums: &'q Quorums, + /// Config + pub config: &'q QuorumConfig, +} + +impl<'q> QuorumsWithConfig<'q> { + /// Choose pseudorandom DIP8 or DIP24 quorum based on quorum config + /// and request_id + pub fn choose_quorum( + &self, + request_id: &[u8; 32], + ) -> Option<(QuorumHash, &VerificationQuorum)> { + self.quorums.choose_quorum(self.config, request_id) + } +} + +impl<'q> SelectedQuorumSetIterator<'q> { + /// Number of quorum sets + pub fn len(&self) -> usize { + self.quorum_set.len() + } + + /// Does the iterator have any quorum sets + pub fn is_empty(&self) -> bool { + self.quorum_set.len() == 0 + } + + /// Should we expect signature verification to be successful + pub fn should_be_verifiable(&self) -> bool { + self.should_be_verifiable + } +} + +/// Quorum configuration +#[derive(Debug, Clone)] +pub struct QuorumConfig { + /// Type + pub quorum_type: QuorumType, + /// Active quorum signers count + pub active_signers: u16, + /// Is it a DIP24 rotating quorum or classic + pub rotation: bool, + /// DKG interval + pub window: u32, +} + +impl SignatureVerificationQuorumSetV0Methods for SignatureVerificationQuorumSetV0 { + fn config(&self) -> &QuorumConfig { + &self.config + } + + fn set_current_quorums(&mut self, quorums: Quorums) { + self.current_quorums = quorums; + } + + fn current_quorums(&self) -> &Quorums { + &self.current_quorums + } + + fn current_quorums_mut(&mut self) -> &mut Quorums { + &mut self.current_quorums + } + + fn has_previous_past_quorums(&self) -> bool { + self.previous.is_some() + } + + fn replace_quorums( + &mut self, + quorums: Quorums, + last_active_height: u32, + updated_at_core_height: u32, + ) { + let previous_quorums = std::mem::replace(&mut self.current_quorums, quorums); + + self.set_previous_past_quorums( + previous_quorums, + last_active_height, + updated_at_core_height, + ); + } + + fn set_previous_past_quorums( + &mut self, + previous_quorums: Quorums, + last_active_core_height: u32, + updated_at_core_height: u32, + ) { + self.previous = Some(PreviousPastQuorumsV0 { + quorums: previous_quorums, + active_core_height: last_active_core_height, + updated_at_core_height, + previous_change_height: self + .previous + .as_ref() + .map(|previous| previous.updated_at_core_height), + }); + } + + fn select_quorums( + &self, + signing_height: u32, + verification_height: u32, + ) -> SelectedQuorumSetIterator { + let mut quorums = Vec::new(); + let mut should_be_verifiable = false; + + if let Some(previous) = &self.previous { + let previous_quorum_height = previous.active_core_height; + let change_quorum_height = previous.updated_at_core_height; + let previous_quorums_change_height = previous.previous_change_height; + + if signing_height > SIGN_OFFSET && verification_height >= change_quorum_height { + // in this case we are sure that we should be targeting the current quorum + // We updated core chain lock height from 100 to 105, new chain lock comes in for block 114 + // ------- 100 (previous_quorum_height) ------ 105 (change_quorum_height) ------ 106 (new chain lock verification height 114 - 8) + // We are sure that we should use current quorums + // If we have + // ------- 100 (previous_quorum_height) ------ 105 (change_quorum_height) ------ 105 (new chain lock verification height 113 - 8) + // We should also use current quorums, this is because at 105 we are sure new chain lock validating quorums are active + quorums.push(&self.current_quorums); + should_be_verifiable = true; + } else if signing_height > SIGN_OFFSET && verification_height <= previous_quorum_height + { + should_be_verifiable = previous_quorums_change_height + .map(|previous_quorums_change_height| { + verification_height > previous_quorums_change_height + }) + .unwrap_or(false); + // In this case the quorums were changed recently meaning that we should use the previous quorums to verify the chain lock + // We updated core chain lock height from 100 to 105, new chain lock comes in for block 106 + // -------- 98 (new chain lock verification height 106 - 8) ------- 100 (previous_quorum_height) ------ 105 (change_quorum_height) + // We are sure that we should use previous quorums + // If we have + // -------- 100 (new chain lock verification height 108 - 8) ------- 100 (previous_quorum_height) ------ 105 (change_quorum_height) + // We should also use previous quorums, this is because at 100 we are sure the old quorum set was active + quorums.push(&previous.quorums); + } else { + should_be_verifiable = previous_quorums_change_height + .map(|previous_quorums_change_height| { + verification_height > previous_quorums_change_height + }) + .unwrap_or(false); + // we are in between, so we don't actually know if it was the old one or the new one to be used. + // ------- 100 (previous_quorum_height) ------ 104 (new chain lock verification height 112 - 8) -------105 (change_quorum_height) + // we should just try both, starting with the current quorums + quorums.push(&self.current_quorums); + quorums.push(&previous.quorums); + } + } else { + quorums.push(&self.current_quorums); + } + + SelectedQuorumSetIterator { + config: &self.config, + quorum_set: quorums.into_iter(), + should_be_verifiable, + } + } +} + +impl SignatureVerificationQuorumSetV0 { + /// New empty quorum set based on quorum configuration + pub fn new(config: &impl QuorumLikeConfig) -> Self { + SignatureVerificationQuorumSetV0 { + config: QuorumConfig { + quorum_type: config.quorum_type(), + active_signers: config.quorum_active_signers(), + rotation: config.quorum_rotation(), + window: config.quorum_window(), + }, + current_quorums: Quorums::default(), + previous: None, + } + } +} + +impl From for SignatureVerificationQuorumSetV0 { + fn from(value: ChainLockConfig) -> Self { + SignatureVerificationQuorumSetV0 { + config: QuorumConfig { + quorum_type: value.quorum_type, + active_signers: value.quorum_active_signers, + rotation: value.quorum_rotation, + window: value.quorum_window, + }, + current_quorums: Quorums::default(), + previous: None, + } + } +} diff --git a/packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/v0/quorums.rs b/packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/v0/quorums.rs new file mode 100644 index 00000000000..112b877a9b8 --- /dev/null +++ b/packages/rs-drive-abci/src/platform_types/signature_verification_quorum_set/v0/quorums.rs @@ -0,0 +1,220 @@ +use derive_more::{Deref, DerefMut, From}; +use dpp::bls_signatures::PrivateKey; +use dpp::dashcore::bls_sig_utils::BLSSignature; +use dpp::dashcore::{QuorumHash, Txid}; +use std::collections::BTreeMap; +use std::convert::TryInto; +use std::fmt::Debug; + +pub use dpp::bls_signatures::PublicKey as ThresholdBlsPublicKey; + +use crate::error::Error; +use crate::platform_types::signature_verification_quorum_set::QuorumConfig; +use dpp::dashcore::hashes::{sha256d, Hash, HashEngine}; + +/// Quorum per hash +#[derive(Clone, Deref, DerefMut, From)] +pub struct Quorums(BTreeMap); + +impl Default for Quorums { + fn default() -> Self { + Quorums::(BTreeMap::new()) + } +} + +impl FromIterator<(QuorumHash, Q)> for Quorums { + fn from_iter>(iter: T) -> Self { + Quorums::(BTreeMap::from_iter(iter)) + } +} + +impl IntoIterator for Quorums { + type Item = (QuorumHash, Q); + type IntoIter = std::collections::btree_map::IntoIter; + + fn into_iter(self) -> Self::IntoIter { + self.0.into_iter() + } +} + +impl Quorums { + /// Choose pseudorandom DIP8 or DIP24 quorum based on quorum config + /// and request_id + pub fn choose_quorum( + &self, + quorum_config: &QuorumConfig, + request_id: &[u8; 32], + ) -> Option<(QuorumHash, &Q)> { + if quorum_config.rotation { + self.choose_rotating_quorum(quorum_config, request_id) + } else { + self.choose_classic_quorum(quorum_config, request_id) + } + } + + /// Based on DIP8 deterministically chooses a pseudorandom quorum from the list of quorums + fn choose_classic_quorum( + &self, + quorum_config: &QuorumConfig, + request_id: &[u8; 32], + ) -> Option<(QuorumHash, &Q)> { + // Scoring system logic + let mut scores: Vec<(&QuorumHash, &Q, [u8; 32])> = Vec::new(); + + for (quorum_hash, quorum) in self.0.iter() { + let mut quorum_hash_bytes = quorum_hash.to_byte_array().to_vec(); + + // Only the quorum hash needs reversal. + quorum_hash_bytes.reverse(); + + let mut hasher = sha256d::Hash::engine(); + + // Serialize and hash the LLMQ type + hasher.input(&[quorum_config.quorum_type as u8]); + + // Serialize and add the quorum hash + hasher.input(quorum_hash_bytes.as_slice()); + + // Serialize and add the selection hash from the chain lock + hasher.input(request_id.as_slice()); + + // Finalize the hash + let hash_result = sha256d::Hash::from_engine(hasher); + scores.push((quorum_hash, quorum, hash_result.into())); + } + + if scores.is_empty() { + return None; + } + + scores.sort_by_key(|k| k.2); + + let (quorum_hash, quorum, _) = scores.remove(0); + + Some((*quorum_hash, quorum)) + } + + /// Based on DIP24 deterministically chooses a pseudorandom quorum from the list of quorums + fn choose_rotating_quorum( + &self, + quorum_config: &QuorumConfig, + request_id: &[u8; 32], + ) -> Option<(QuorumHash, &Q)> { + let active_signers = quorum_config.active_signers as u32; + + // binary (base-2) logarithm from active_signers + let n = 31 - active_signers.leading_zeros(); + + // Extract last 64 bits of request_id + let b = u64::from_le_bytes( + request_id[24..32] + .try_into() + .expect("request_id is [u8; 32]"), + ); + + // Take last n bits of b + let mask = (1u64 << n) - 1; + let signer = (mask & (b >> (64 - n - 1))) as u32; + + self.0 + .iter() + .find(|(_, quorum)| quorum.index() == Some(signer)) + .map(|(quorum_hash, quorum)| (*quorum_hash, quorum)) + } +} + +impl Debug for Quorums { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_map() + .entries( + self.0 + .iter() + .map(|(quorum_hash, quorum)| (quorum_hash.to_string(), quorum)), + ) + .finish() + } +} + +/// Quorum trait for Quorums collection +pub trait Quorum { + /// Index is present only for rotated quorums (DIP24) + fn index(&self) -> Option; +} + +/// Quorum for signature verification +#[derive(Clone)] +pub struct VerificationQuorum { + /// Index is present only for rotated quorums (DIP24) + pub index: Option, + + /// Quorum threshold public key is used to verify + /// signatures produced by corresponding quorum + pub public_key: ThresholdBlsPublicKey, +} + +impl Debug for VerificationQuorum { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("VerificationQuorum") + .field("index", &self.index) + .field( + "public_key", + &hex::encode(*self.public_key.to_bytes()).to_string(), + ) + .finish() + } +} + +impl Quorum for VerificationQuorum { + fn index(&self) -> Option { + self.index + } +} + +/// Quorum for signature verification +#[derive(Debug, Clone)] +pub struct SigningQuorum { + /// Index is present only for rotated quorums (DIP24) + pub index: Option, + + /// Quorum private key for signing + pub private_key: [u8; 32], +} + +impl Quorum for SigningQuorum { + fn index(&self) -> Option { + self.index + } +} + +impl SigningQuorum { + /// Signs a transition for instant lock + pub fn sign_for_instant_lock( + &self, + quorum_config: &QuorumConfig, + quorum_hash: &QuorumHash, + request_id: &[u8; 32], + transaction_id: &Txid, + ) -> Result { + // The signature must verify against the quorum public key and SHA256(llmqType, quorumHash, SHA256(height), txId). + // llmqType and quorumHash must be taken from the quorum selected in 1. + let mut engine = sha256d::Hash::engine(); + + let mut reversed_quorum_hash = quorum_hash.to_byte_array().to_vec(); + reversed_quorum_hash.reverse(); + + engine.input(&[quorum_config.quorum_type as u8]); + engine.input(reversed_quorum_hash.as_slice()); + engine.input(request_id); + engine.input(transaction_id.as_byte_array()); + + let message_digest = sha256d::Hash::from_engine(engine); + + let private_key = + PrivateKey::from_bytes(&self.private_key, false).map_err(Error::BLSError)?; + + let g2element = private_key.sign(message_digest.as_ref()); + let g2element_bytes = *g2element.to_bytes(); + + Ok(BLSSignature::from(g2element_bytes)) + } +} diff --git a/packages/rs-drive-abci/src/platform_types/signature_verification_quorums/mod.rs b/packages/rs-drive-abci/src/platform_types/signature_verification_quorums/mod.rs deleted file mode 100644 index 4ad03aebc33..00000000000 --- a/packages/rs-drive-abci/src/platform_types/signature_verification_quorums/mod.rs +++ /dev/null @@ -1,91 +0,0 @@ -mod v0; - -use crate::platform_types::signature_verification_quorums::v0::{ - PreviousPastQuorums, SelectedVerificationQuorumSets, -}; -use bincode::{Decode, Encode}; -use derive_more::From; -use dpp::version::PlatformVersion; -pub use v0::{ - QuorumKeysByQuorumHash, SignatureVerificationQuorumsV0, SignatureVerificationQuorumsV0Methods, -}; - -/// Quorums with keys for signature verification -#[derive(Debug, Clone, Encode, Decode, From)] -pub enum SignatureVerificationQuorums { - /// Version 0 of the signature verification quorums - V0(SignatureVerificationQuorumsV0), -} - -impl SignatureVerificationQuorums { - /// Create a default SignatureVerificationQuorums - pub fn default_for_platform_version(platform_version: &PlatformVersion) -> Self { - // TODO: default for platform version - - SignatureVerificationQuorumsV0::default().into() - } -} - -impl SignatureVerificationQuorumsV0Methods for SignatureVerificationQuorums { - fn set_current_quorums(&mut self, quorums: QuorumKeysByQuorumHash) { - match self { - Self::V0(v0) => v0.set_current_quorums(quorums), - } - } - - fn current_quorums(&self) -> &QuorumKeysByQuorumHash { - match self { - Self::V0(v0) => v0.current_quorums(), - } - } - - fn current_quorums_mut(&mut self) -> &mut QuorumKeysByQuorumHash { - match self { - Self::V0(v0) => v0.current_quorums_mut(), - } - } - - fn previous_past_quorums(&self) -> Option<&PreviousPastQuorums> { - match self { - Self::V0(v0) => v0.previous_past_quorums(), - } - } - - fn rotate_quorums( - &mut self, - quorums: QuorumKeysByQuorumHash, - last_active_core_height: u32, - updated_at_core_height: u32, - ) { - match self { - Self::V0(v0) => { - v0.rotate_quorums(quorums, last_active_core_height, updated_at_core_height) - } - } - } - - fn set_previous_past_quorums( - &mut self, - previous_quorums: QuorumKeysByQuorumHash, - last_active_core_height: u32, - updated_at_core_height: u32, - ) { - match self { - Self::V0(v0) => v0.set_previous_past_quorums( - previous_quorums, - last_active_core_height, - updated_at_core_height, - ), - } - } - - fn select_quorums( - &self, - signing_height: u32, - verification_height: u32, - ) -> SelectedVerificationQuorumSets { - match self { - Self::V0(v0) => v0.select_quorums(signing_height, verification_height), - } - } -} diff --git a/packages/rs-drive-abci/src/platform_types/signature_verification_quorums/v0/mod.rs b/packages/rs-drive-abci/src/platform_types/signature_verification_quorums/v0/mod.rs deleted file mode 100644 index 6ab87f6f6b0..00000000000 --- a/packages/rs-drive-abci/src/platform_types/signature_verification_quorums/v0/mod.rs +++ /dev/null @@ -1,198 +0,0 @@ -use bincode::{Decode, Encode}; -use dpp::dashcore::QuorumHash; -use std::collections::{BTreeMap, VecDeque}; - -pub use dpp::bls_signatures::PublicKey as ThresholdBlsPublicKey; - -/// Quorum key per hash -pub type QuorumKeysByQuorumHash = BTreeMap; - -/// Previously obtained quorums and heights. Required for signature verification -#[derive(Debug, Clone, Encode, Decode, Default)] -pub struct PreviousPastQuorums { - /// The quorum keys by quorum hash - #[bincode(with_serde)] - quorums: QuorumKeysByQuorumHash, - - /// The core height at which these quorums were last active - active_core_height: u32, - - /// The core height when the quorums were changed - updated_at_core_height: u32, - - /// The core height the previous chain lock validating quorums became active - previous_change_height: Option, -} - -/// Quorums with keys for signature verification -#[derive(Debug, Clone, Encode, Decode, Default)] -pub struct SignatureVerificationQuorumsV0 { - /// Current quorums - #[bincode(with_serde)] - current_quorums: QuorumKeysByQuorumHash, - - /// The slightly old quorums used for validating chain locks (or instant locks), it's important to keep - /// these because validation of signatures happens for the quorums that are 8 blocks before the - /// height written in the chain lock. The same for instant locks - previous: Option, -} - -/// The trait defines methods for the signature verification quorums structure v0 -pub trait SignatureVerificationQuorumsV0Methods { - /// Set last quorum keys - fn set_current_quorums(&mut self, quorums: QuorumKeysByQuorumHash); - - /// Current quorum keys by quorum hash - fn current_quorums(&self) -> &QuorumKeysByQuorumHash; - - /// The current quorums keys mutable - fn current_quorums_mut(&mut self) -> &mut QuorumKeysByQuorumHash; - - /// Previous quorums - fn previous_past_quorums(&self) -> Option<&PreviousPastQuorums>; - - /// Set last quorums keys and update previous quorums - fn rotate_quorums( - &mut self, - quorums: QuorumKeysByQuorumHash, - last_active_core_height: u32, - updated_at_core_height: u32, - ); - - /// Set previous quorums - fn set_previous_past_quorums( - &mut self, - previous_quorums: QuorumKeysByQuorumHash, - last_active_core_height: u32, - updated_at_core_height: u32, - ); - - /// Select quorum sets for signature verification - fn select_quorums( - &self, - signing_height: u32, - verification_height: u32, - ) -> SelectedVerificationQuorumSets; -} - -pub struct SelectedVerificationQuorumSets<'q> { - pub quorum_sets: VecDeque<&'q QuorumKeysByQuorumHash>, - pub should_be_verifiable: bool, -} - -impl<'q> Iterator for SelectedVerificationQuorumSets<'q> { - type Item = &'q QuorumKeysByQuorumHash; - - fn next(&mut self) -> Option { - self.quorum_sets.pop_front() - } -} - -impl SignatureVerificationQuorumsV0Methods for SignatureVerificationQuorumsV0 { - fn set_current_quorums(&mut self, quorums: QuorumKeysByQuorumHash) { - self.current_quorums = quorums; - } - - fn current_quorums(&self) -> &QuorumKeysByQuorumHash { - &self.current_quorums - } - - fn current_quorums_mut(&mut self) -> &mut QuorumKeysByQuorumHash { - &mut self.current_quorums - } - - fn previous_past_quorums(&self) -> Option<&PreviousPastQuorums> { - self.previous.as_ref() - } - - fn rotate_quorums( - &mut self, - quorums: QuorumKeysByQuorumHash, - last_active_height: u32, - updated_at_core_height: u32, - ) { - let previous_quorums = std::mem::replace(&mut self.current_quorums, quorums); - - self.set_previous_past_quorums( - previous_quorums, - last_active_height, - updated_at_core_height, - ); - } - - fn set_previous_past_quorums( - &mut self, - previous_quorums: QuorumKeysByQuorumHash, - last_active_core_height: u32, - updated_at_core_height: u32, - ) { - self.previous = Some(PreviousPastQuorums { - quorums: previous_quorums, - active_core_height: last_active_core_height, - updated_at_core_height, - previous_change_height: self - .previous - .as_ref() - .map(|previous| previous.updated_at_core_height), - }); - } - - fn select_quorums( - &self, - signing_height: u32, - verification_height: u32, - ) -> SelectedVerificationQuorumSets { - let mut quorums = VecDeque::new(); - let mut should_be_verifiable = false; - - if let Some(previous) = &self.previous { - let previous_quorum_height = previous.active_core_height; - let change_quorum_height = previous.updated_at_core_height; - let previous_quorums_change_height = previous.previous_change_height; - - if signing_height > 8 && verification_height >= change_quorum_height { - // in this case we are sure that we should be targeting the current quorum - // We updated core chain lock height from 100 to 105, new chain lock comes in for block 114 - // ------- 100 (previous_quorum_height) ------ 105 (change_quorum_height) ------ 106 (new chain lock verification height 114 - 8) - // We are sure that we should use current quorums - // If we have - // ------- 100 (previous_quorum_height) ------ 105 (change_quorum_height) ------ 105 (new chain lock verification height 113 - 8) - // We should also use current quorums, this is because at 105 we are sure new chain lock validating quorums are active - quorums.push_back(&self.current_quorums); - should_be_verifiable = true; - } else if signing_height > 8 && verification_height <= previous_quorum_height { - should_be_verifiable = previous_quorums_change_height - .map(|previous_quorums_change_height| { - verification_height > previous_quorums_change_height - }) - .unwrap_or(false); - // In this case the quorums were changed recently meaning that we should use the previous quorums to verify the chain lock - // We updated core chain lock height from 100 to 105, new chain lock comes in for block 106 - // -------- 98 (new chain lock verification height 106 - 8) ------- 100 (previous_quorum_height) ------ 105 (change_quorum_height) - // We are sure that we should use previous quorums - // If we have - // -------- 100 (new chain lock verification height 108 - 8) ------- 100 (previous_quorum_height) ------ 105 (change_quorum_height) - // We should also use previous quorums, this is because at 100 we are sure the old quorum set was active - quorums.push_back(&previous.quorums); - } else { - should_be_verifiable = previous_quorums_change_height - .map(|previous_quorums_change_height| { - verification_height > previous_quorums_change_height - }) - .unwrap_or(false); - // we are in between, so we don't actually know if it was the old one or the new one to be used. - // ------- 100 (previous_quorum_height) ------ 104 (new chain lock verification height 112 - 8) -------105 (change_quorum_height) - // we should just try both, starting with the current quorums - quorums.push_back(&self.current_quorums); - quorums.push_back(&previous.quorums); - } - } else { - quorums.push_back(&self.current_quorums); - } - - SelectedVerificationQuorumSets { - quorum_sets: quorums, - should_be_verifiable, - } - } -} diff --git a/packages/rs-drive-abci/src/platform_types/validator_set/mod.rs b/packages/rs-drive-abci/src/platform_types/validator_set/mod.rs index 70fd7fe1067..5dd9adb1f83 100644 --- a/packages/rs-drive-abci/src/platform_types/validator_set/mod.rs +++ b/packages/rs-drive-abci/src/platform_types/validator_set/mod.rs @@ -26,6 +26,12 @@ impl ValidatorSetV0Getters for ValidatorSet { } } + fn quorum_index(&self) -> Option { + match self { + ValidatorSet::V0(v0) => v0.quorum_index(), + } + } + fn core_height(&self) -> u32 { match self { ValidatorSet::V0(v0) => v0.core_height(), @@ -64,6 +70,12 @@ impl ValidatorSetV0Setters for ValidatorSet { } } + fn set_quorum_index(&mut self, index: Option) { + match self { + ValidatorSet::V0(v0) => v0.set_quorum_index(index), + } + } + fn set_core_height(&mut self, core_height: u32) { match self { ValidatorSet::V0(v0) => v0.set_core_height(core_height), diff --git a/packages/rs-drive-abci/src/platform_types/validator_set/v0/mod.rs b/packages/rs-drive-abci/src/platform_types/validator_set/v0/mod.rs index 3adf9559b02..7574a5d31db 100644 --- a/packages/rs-drive-abci/src/platform_types/validator_set/v0/mod.rs +++ b/packages/rs-drive-abci/src/platform_types/validator_set/v0/mod.rs @@ -21,6 +21,8 @@ use tenderdash_abci::proto::{abci, crypto}; pub struct ValidatorSetV0 { /// The quorum hash pub quorum_hash: QuorumHash, + /// Rotation quorum index is available only for DIP24 quorums + pub quorum_index: Option, /// Active height pub core_height: u32, /// The list of masternodes @@ -297,6 +299,7 @@ impl ValidatorSetV0 { let QuorumInfoResult { height, quorum_hash, + quorum_index, quorum_public_key, members, .. @@ -332,8 +335,15 @@ impl ValidatorSetV0 { let threshold_public_key = BlsPublicKey::from_bytes(quorum_public_key.as_slice()) .map_err(ExecutionError::BlsErrorFromDashCoreResponse)?; + let optional_quorum_index = if quorum_index == 0 { + None + } else { + Some(quorum_index) + }; + Ok(ValidatorSetV0 { quorum_hash, + quorum_index: optional_quorum_index, core_height: height, members: validator_set, threshold_public_key, @@ -345,6 +355,8 @@ impl ValidatorSetV0 { pub trait ValidatorSetV0Getters { /// Returns the quorum hash of the validator set. fn quorum_hash(&self) -> &QuorumHash; + /// Returns rotation quorum index. It's available only for DIP24 quorums + fn quorum_index(&self) -> Option; /// Returns the active height of the validator set. fn core_height(&self) -> u32; /// Returns the members of the validator set. @@ -361,6 +373,8 @@ pub trait ValidatorSetV0Getters { pub trait ValidatorSetV0Setters { /// Sets the quorum hash of the validator set. fn set_quorum_hash(&mut self, quorum_hash: QuorumHash); + /// Sets the quorum index of the validator set. + fn set_quorum_index(&mut self, index: Option); /// Sets the active height of the validator set. fn set_core_height(&mut self, core_height: u32); /// Sets the members of the validator set. @@ -374,6 +388,10 @@ impl ValidatorSetV0Getters for ValidatorSetV0 { &self.quorum_hash } + fn quorum_index(&self) -> Option { + self.quorum_index + } + fn core_height(&self) -> u32 { self.core_height } @@ -400,6 +418,10 @@ impl ValidatorSetV0Setters for ValidatorSetV0 { self.quorum_hash = quorum_hash; } + fn set_quorum_index(&mut self, index: Option) { + self.quorum_index = index; + } + fn set_core_height(&mut self, core_height: u32) { self.core_height = core_height; } diff --git a/packages/rs-drive-abci/src/query/response_metadata/v0/mod.rs b/packages/rs-drive-abci/src/query/response_metadata/v0/mod.rs index 12286271562..edd234ab2d4 100644 --- a/packages/rs-drive-abci/src/query/response_metadata/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/response_metadata/v0/mod.rs @@ -28,7 +28,7 @@ impl Platform { Proof { grovedb_proof: proof, quorum_hash: platform_state.last_committed_quorum_hash().to_vec(), - quorum_type: self.config.validator_set_quorum_type() as u32, + quorum_type: self.config.validator_set.quorum_type as u32, block_id_hash: platform_state.last_committed_block_id_hash().to_vec(), signature: platform_state.last_committed_block_signature().to_vec(), round: platform_state.last_committed_block_round(), diff --git a/packages/rs-drive-abci/tests/strategy_tests/chain_lock_update.rs b/packages/rs-drive-abci/tests/strategy_tests/chain_lock_update.rs index f80ec3645de..c406e2159d8 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/chain_lock_update.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/chain_lock_update.rs @@ -4,7 +4,10 @@ mod tests { use crate::execution::run_chain_for_strategy; use crate::strategy::CoreHeightIncrease::RandomCoreHeightIncrease; use crate::strategy::{MasternodeListChangesStrategy, NetworkStrategy}; - use drive_abci::config::{ExecutionConfig, PlatformConfig, PlatformTestConfig}; + use drive_abci::config::{ + ChainLockConfig, ExecutionConfig, InstantLockConfig, PlatformConfig, PlatformTestConfig, + ValidatorSetConfig, + }; use drive_abci::test::helpers::setup::TestPlatformBuilder; use strategy_tests::frequency::Frequency; @@ -58,19 +61,19 @@ mod tests { ..Default::default() }; - let quorum_size = 100; - let config = PlatformConfig { - validator_set_quorum_size: quorum_size, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_400_60".to_string(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; let mut platform = TestPlatformBuilder::new() diff --git a/packages/rs-drive-abci/tests/strategy_tests/core_update_tests.rs b/packages/rs-drive-abci/tests/strategy_tests/core_update_tests.rs index 4c892673123..5ec8b6b9d29 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/core_update_tests.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/core_update_tests.rs @@ -4,7 +4,10 @@ mod tests { use crate::execution::run_chain_for_strategy; use crate::strategy::CoreHeightIncrease::RandomCoreHeightIncrease; use crate::strategy::{MasternodeListChangesStrategy, NetworkStrategy}; - use drive_abci::config::{ExecutionConfig, PlatformConfig, PlatformTestConfig}; + use drive_abci::config::{ + ChainLockConfig, ExecutionConfig, InstantLockConfig, PlatformConfig, PlatformTestConfig, + ValidatorSetConfig, + }; use drive_abci::platform_types::platform_state::v0::PlatformStateV0Methods; use drive_abci::platform_types::validator_set::v0::ValidatorSetV0Getters; use drive_abci::test::helpers::setup::TestPlatformBuilder; @@ -61,9 +64,12 @@ mod tests { let quorum_size = 100; let config = PlatformConfig { - validator_set_quorum_size: quorum_size, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig { + quorum_size, + ..Default::default() + }, + + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, @@ -159,9 +165,12 @@ mod tests { let quorum_size = 100; let config = PlatformConfig { - validator_set_quorum_size: quorum_size, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig { + quorum_size, + ..Default::default() + }, + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, @@ -246,9 +255,12 @@ mod tests { let quorum_size = 100; let config = PlatformConfig { - validator_set_quorum_size: quorum_size, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig { + quorum_size, + ..Default::default() + }, + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, diff --git a/packages/rs-drive-abci/tests/strategy_tests/execution.rs b/packages/rs-drive-abci/tests/strategy_tests/execution.rs index 3db5a245faa..08728958757 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/execution.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/execution.rs @@ -31,6 +31,7 @@ use drive_abci::mimic::{MimicExecuteBlockOptions, MimicExecuteBlockOutcome}; use drive_abci::platform_types::epoch_info::v0::EpochInfoV0; use drive_abci::platform_types::platform::Platform; use drive_abci::platform_types::platform_state::v0::PlatformStateV0Methods; +use drive_abci::platform_types::signature_verification_quorum_set::{Quorums, SigningQuorum}; use drive_abci::platform_types::withdrawal::unsigned_withdrawal_txs::v0::UnsignedWithdrawalTxs; use drive_abci::rpc::core::MockCoreRPCLike; use drive_abci::test::fixture::abci::static_init_chain_request; @@ -50,13 +51,16 @@ pub(crate) fn run_chain_for_strategy( platform: &mut Platform, block_count: u64, strategy: NetworkStrategy, - config: PlatformConfig, + mut config: PlatformConfig, seed: u64, ) -> ChainExecutionOutcome { + // TODO: Do we want to sign instant locks or just disable verification? + let validator_quorum_count = strategy.validator_quorum_count; // In most tests 24 quorums let chain_lock_quorum_count = strategy.chain_lock_quorum_count; // In most tests 4 quorums when not the same as validator - let validator_set_quorum_size = config.validator_set_quorum_size; - let chain_lock_quorum_size = config.chain_lock_quorum_size; + let instant_lock_quorum_count = strategy.instant_lock_quorum_count; // In most tests 24 quorums when not the same as validator + let validator_set_quorum_size = config.validator_set.quorum_size; + let chain_lock_quorum_size = config.chain_lock.quorum_size; let mut rng = StdRng::seed_from_u64(seed); @@ -68,7 +72,7 @@ pub(crate) fn run_chain_for_strategy( let max_core_height = core_height_increase.max_core_height(block_count, strategy.initial_core_height); - let chain_lock_quorum_type = config.chain_lock_quorum_type(); + let chain_lock_quorum_type = config.chain_lock.quorum_type; let sign_chain_locks = strategy.sign_chain_locks; @@ -242,7 +246,7 @@ pub(crate) fn run_chain_for_strategy( &mut rng, ); - let mut quorums_details: Vec<(QuorumHash, ExtendedQuorumDetails)> = validator_quorums + let mut validator_quorums_details: Vec<(QuorumHash, ExtendedQuorumDetails)> = validator_quorums .keys() .map(|quorum_hash| { ( @@ -258,10 +262,10 @@ pub(crate) fn run_chain_for_strategy( }) .collect(); - quorums_details.shuffle(&mut rng); + validator_quorums_details.shuffle(&mut rng); let (chain_lock_quorums, chain_lock_quorums_details) = - if config.validator_set_quorum_type != config.chain_lock_quorum_type { + if config.validator_set.quorum_type != config.chain_lock.quorum_type { let total_chain_lock_quorums = if strategy.rotate_quorums { chain_lock_quorum_count * 10 } else { @@ -301,6 +305,95 @@ pub(crate) fn run_chain_for_strategy( (BTreeMap::new(), vec![]) }; + let (instant_lock_quorum_infos, instant_lock_quorums_details, instant_lock_signing_quorums) = + if config.validator_set.quorum_type != config.instant_lock.quorum_type { + // TODO: Implement instant lock quorums rotation? + let total_instant_lock_quorums = if strategy.rotate_quorums { + instant_lock_quorum_count * 10 + } else { + instant_lock_quorum_count + }; + + let instant_lock_quorums_infos = masternodes::generate_test_quorums( + total_instant_lock_quorums as usize, + initial_all_masternodes + .iter() + .map(|masternode| &masternode.masternode), + config.instant_lock.quorum_size as usize, + &mut rng, + ); + + let mut instant_lock_quorums_details: Vec<(QuorumHash, ExtendedQuorumDetails)> = + instant_lock_quorums_infos + .iter() + .map(|(hash, quorum)| { + ( + *hash, + ExtendedQuorumDetails { + creation_height: 0, + quorum_index: quorum.quorum_index, + mined_block_hash: BlockHash::all_zeros(), + num_valid_members: 0, + health_ratio: 0.0, + }, + ) + }) + .collect(); + + instant_lock_quorums_details.shuffle(&mut rng); + + let instant_lock_signing_quorums: Quorums = + if strategy.sign_instant_locks { + instant_lock_quorums_infos + .iter() + .map(|(quorum_hash, info)| { + let bytes = info.private_key.to_bytes(); + let fixed_bytes: [u8; 32] = bytes + .as_slice() + .try_into() + .expect("Expected a byte array of length 32"); + ( + *quorum_hash, + SigningQuorum { + index: info.quorum_index, + private_key: fixed_bytes, + }, + ) + }) + .collect() + } else { + Default::default() + }; + + ( + instant_lock_quorums_infos, + instant_lock_quorums_details, + instant_lock_signing_quorums, + ) + } else if strategy.sign_instant_locks { + let signing_quorums = validator_quorums + .iter() + .map(|(quorum_hash, info)| { + let bytes = info.private_key.to_bytes(); + let fixed_bytes: [u8; 32] = bytes + .as_slice() + .try_into() + .expect("Expected a byte array of length 32"); + ( + *quorum_hash, + SigningQuorum { + index: info.quorum_index, + private_key: fixed_bytes, + }, + ) + }) + .collect(); + + (Default::default(), Default::default(), signing_quorums) + } else { + Default::default() + }; + let start_core_height = platform.config.abci.genesis_core_height; platform @@ -330,17 +423,12 @@ pub(crate) fn run_chain_for_strategy( })) }); - platform - .core_rpc - .expect_verify_instant_lock() - .returning(|_, _| Ok(true)); - platform .core_rpc .expect_get_quorum_listextended() .returning(move |core_height: Option| { let validator_set_extended_info = if !strategy.rotate_quorums { - quorums_details.clone().into_iter().collect() + validator_quorums_details.clone().into_iter().collect() } else { let core_height = core_height.expect("expected a core height"); // if we rotate quorums we shouldn't give back the same ones every time @@ -350,18 +438,18 @@ pub(crate) fn run_chain_for_strategy( let end_range = end_range % total_validator_quorums as u32; if end_range > start_range { - quorums_details + validator_quorums_details .iter() .skip(start_range as usize) .take((end_range - start_range) as usize) .map(|(quorum_hash, quorum)| (*quorum_hash, quorum.clone())) .collect() } else { - let first_range = quorums_details + let first_range = validator_quorums_details .iter() .skip(start_range as usize) .take((total_validator_quorums as u32 - start_range) as usize); - let second_range = quorums_details.iter().take(end_range as usize); + let second_range = validator_quorums_details.iter().take(end_range as usize); first_range .chain(second_range) .map(|(quorum_hash, quorum)| (*quorum_hash, quorum.clone())) @@ -379,6 +467,13 @@ pub(crate) fn run_chain_for_strategy( ); } + if !instant_lock_quorums_details.is_empty() { + quorums_by_type.insert( + QuorumType::Llmq60_75, + instant_lock_quorums_details.clone().into_iter().collect(), + ); + } + let result = ExtendedQuorumListResult { quorums_by_type }; Ok(result) @@ -387,6 +482,7 @@ pub(crate) fn run_chain_for_strategy( let all_quorums_info: HashMap = validator_quorums .iter() .chain(chain_lock_quorums.iter()) + .chain(instant_lock_quorum_infos.iter()) .map(|(quorum_hash, test_quorum_info)| (*quorum_hash, test_quorum_info.into())) .collect(); @@ -661,6 +757,7 @@ pub(crate) fn run_chain_for_strategy( block_count, all_hpmns_with_updates, validator_quorums, + instant_lock_signing_quorums, strategy, config, rng, @@ -671,7 +768,8 @@ pub(crate) fn create_chain_for_strategy( platform: &Platform, block_count: u64, proposers_with_updates: Vec, - quorums: BTreeMap, + validator_quorums: BTreeMap, + instant_lock_quorums: Quorums, strategy: NetworkStrategy, config: PlatformConfig, rng: StdRng, @@ -688,7 +786,8 @@ pub(crate) fn create_chain_for_strategy( abci_application, block_count, proposers_with_updates, - quorums, + validator_quorums, + instant_lock_quorums, strategy, config, seed, @@ -699,7 +798,8 @@ pub(crate) fn start_chain_for_strategy( abci_application: FullAbciApplication, block_count: u64, proposers_with_updates: Vec, - quorums: BTreeMap, + validator_quorums: BTreeMap, + instant_lock_quorums: Quorums, strategy: NetworkStrategy, config: PlatformConfig, seed: StrategyRandomness, @@ -709,14 +809,14 @@ pub(crate) fn start_chain_for_strategy( StrategyRandomness::RNGEntropy(rng) => rng, }; - let quorum_hashes: Vec<&QuorumHash> = quorums.keys().collect(); + let quorum_hashes: Vec<&QuorumHash> = validator_quorums.keys().collect(); - let mut current_quorum_hash = **quorum_hashes + let mut current_validator_quorum_hash = **quorum_hashes .choose(&mut rng) .expect("expected quorums to be initialized"); - let current_quorum_with_test_info = quorums - .get::(¤t_quorum_hash) + let current_quorum_with_test_info = validator_quorums + .get::(¤t_validator_quorum_hash) .expect("expected a quorum to be found"); // init chain @@ -743,7 +843,7 @@ pub(crate) fn start_chain_for_strategy( current_quorum_with_test_info.public_key.to_bytes().to_vec(), )), }), - quorum_hash: current_quorum_hash.to_byte_array().to_vec(), + quorum_hash: current_validator_quorum_hash.to_byte_array().to_vec(), }); let ResponseInitChain { @@ -754,7 +854,7 @@ pub(crate) fn start_chain_for_strategy( .expect("should init chain"); // initialization will change the current quorum hash - current_quorum_hash = abci_application + current_validator_quorum_hash = abci_application .platform .state .load() @@ -767,8 +867,9 @@ pub(crate) fn start_chain_for_strategy( core_height_start: initial_core_height, block_count, proposers: proposers_with_updates, - quorums, - current_quorum_hash, + validator_quorums, + current_validator_quorum_hash, + instant_lock_quorums, current_proposer_versions: None, current_identity_nonce_counter: Default::default(), current_identity_contract_nonce_counter: Default::default(), @@ -794,19 +895,20 @@ pub(crate) fn continue_chain_for_strategy( core_height_start: _, block_count, proposers: proposers_with_updates, - quorums, - mut current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: mut current_quorum_hash, current_proposer_versions, mut current_identity_nonce_counter, mut current_identity_contract_nonce_counter, start_time_ms, mut current_time_ms, + instant_lock_quorums, } = chain_execution_parameters; let mut rng = match seed { StrategyRandomness::SeedEntropy(seed) => StdRng::seed_from_u64(seed), StrategyRandomness::RNGEntropy(rng) => rng, }; - let quorum_size = config.validator_set_quorum_size; + let quorum_size = config.validator_set.quorum_size; let first_block_time = start_time_ms; let mut current_identities = vec![]; let mut signer = strategy.strategy.signer.clone().unwrap_or_default(); @@ -877,6 +979,7 @@ pub(crate) fn continue_chain_for_strategy( &mut current_identity_contract_nonce_counter, &mut signer, &mut rng, + &instant_lock_quorums, ); state_transitions_per_block.insert(block_height, state_transitions.clone()); @@ -1013,7 +1116,7 @@ pub(crate) fn continue_chain_for_strategy( query_strategy.query_chain_for_strategy( &ProofVerification { quorum_hash: ¤t_quorum_with_test_info.quorum_hash.into(), - quorum_type: config.validator_set_quorum_type(), + quorum_type: config.validator_set.quorum_type, app_version, chain_id: drive_abci::mimic::CHAIN_ID.to_string(), core_chain_locked_height: state_id.core_chain_locked_height, @@ -1076,8 +1179,8 @@ pub(crate) fn continue_chain_for_strategy( masternode_identity_balances, identities: current_identities, proposers: proposers_with_updates, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions: proposer_versions, identity_nonce_counter: current_identity_nonce_counter, identity_contract_nonce_counter: current_identity_contract_nonce_counter, @@ -1087,5 +1190,6 @@ pub(crate) fn continue_chain_for_strategy( withdrawals: total_withdrawals, validator_set_updates, state_transition_results_per_block, + instant_lock_quorums, } } diff --git a/packages/rs-drive-abci/tests/strategy_tests/failures.rs b/packages/rs-drive-abci/tests/strategy_tests/failures.rs index c1fe8150951..addb94cdbf7 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/failures.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/failures.rs @@ -7,7 +7,10 @@ mod tests { use crate::strategy::{FailureStrategy, NetworkStrategy}; use strategy_tests::{IdentityInsertInfo, StartIdentities, Strategy}; - use drive_abci::config::{ExecutionConfig, PlatformConfig, PlatformTestConfig}; + use drive_abci::config::{ + ChainLockConfig, ExecutionConfig, InstantLockConfig, PlatformConfig, PlatformTestConfig, + ValidatorSetConfig, + }; use dpp::dashcore::hashes::Hash; use dpp::dashcore::{BlockHash, ChainLock}; @@ -75,16 +78,20 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; let mut platform = TestPlatformBuilder::new() @@ -150,9 +157,9 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, @@ -198,9 +205,9 @@ mod tests { // // We use the dpns contract and we insert two documents both with the same "name" // // This is a common scenario we should see quite often // let config = PlatformConfig { - // validator_set_quorum_size: 100, - // validator_set_quorum_type: "llmq_100_67".to_string(), - // chain_lock_quorum_type: "llmq_100_67".to_string(), + // validator_set_quorum_quorum_size: 100, + // validator_set_quorum_type: QuorumType::Llmq100_67, + // chain_lock_quorum_type: QuorumType::Llmq100_67, // execution: ExecutionConfig { // //we disable document triggers because we are using dpns and dpns needs a preorder // use_document_triggers: false, diff --git a/packages/rs-drive-abci/tests/strategy_tests/main.rs b/packages/rs-drive-abci/tests/strategy_tests/main.rs index 43ea171e360..bef89ceca8c 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/main.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/main.rs @@ -47,7 +47,7 @@ mod tests { use dashcore_rpc::dashcore::hashes::Hash; use dashcore_rpc::dashcore::BlockHash; use dashcore_rpc::dashcore_rpc_json::AssetUnlockStatus; - use dashcore_rpc::json::AssetUnlockStatusResult; + use dashcore_rpc::json::{AssetUnlockStatusResult, QuorumType}; use dpp::block::extended_block_info::v0::ExtendedBlockInfoV0Getters; use std::sync::{Arc, Mutex}; use strategy_tests::operations::DocumentAction::{ @@ -74,7 +74,9 @@ mod tests { use dpp::version::PlatformVersion; use drive::drive::config::DEFAULT_QUERY_LIMIT; use drive::drive::identity::withdrawals::WithdrawalTransactionIndex; - use drive_abci::config::{ExecutionConfig, PlatformTestConfig}; + use drive_abci::config::{ + ChainLockConfig, ExecutionConfig, InstantLockConfig, PlatformTestConfig, ValidatorSetConfig, + }; use drive_abci::logging::LogLevel; use drive_abci::platform_types::platform_state::v0::PlatformStateV0Methods; @@ -113,9 +115,9 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, @@ -158,9 +160,9 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, @@ -203,9 +205,9 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, @@ -225,12 +227,13 @@ mod tests { let ChainExecutionOutcome { abci_app, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions, end_time_ms, identity_nonce_counter, identity_contract_nonce_counter, + instant_lock_quorums, .. } = run_chain_for_strategy(&mut platform, 15, strategy.clone(), config.clone(), 40); @@ -289,13 +292,14 @@ mod tests { core_height_start: 1, block_count: 30, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions: Some(current_proposer_versions), current_identity_nonce_counter: identity_nonce_counter, current_identity_contract_nonce_counter: identity_contract_nonce_counter, start_time_ms: 1681094380000, current_time_ms: end_time_ms, + instant_lock_quorums, }, strategy, config, @@ -335,9 +339,9 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, @@ -357,12 +361,13 @@ mod tests { let ChainExecutionOutcome { abci_app, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions, end_time_ms, identity_nonce_counter, identity_contract_nonce_counter, + instant_lock_quorums, .. } = run_chain_for_strategy(&mut platform, 15, strategy.clone(), config.clone(), 40); @@ -421,13 +426,14 @@ mod tests { core_height_start: 1, block_count: 30, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions: Some(current_proposer_versions), current_identity_nonce_counter: identity_nonce_counter, current_identity_contract_nonce_counter: identity_contract_nonce_counter, start_time_ms: 1681094380000, current_time_ms: end_time_ms, + instant_lock_quorums, }, strategy, config, @@ -468,16 +474,20 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; let mut platform = TestPlatformBuilder::new() @@ -530,9 +540,9 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, @@ -579,9 +589,9 @@ mod tests { }; let hour_in_ms = 1000 * 60 * 60; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 100, @@ -636,9 +646,9 @@ mod tests { let hour_in_s = 60 * 60; let three_mins_in_ms = 1000 * 60 * 3; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 100, @@ -694,9 +704,25 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 10, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 10, + ..Default::default() + }, + chain_lock: ChainLockConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 10, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + }, + instant_lock: InstantLockConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 10, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + }, execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, @@ -774,9 +800,25 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 10, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 10, + ..Default::default() + }, + chain_lock: ChainLockConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 10, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + }, + instant_lock: InstantLockConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 10, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + }, execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, @@ -841,9 +883,25 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 10, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 10, + ..Default::default() + }, + chain_lock: ChainLockConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 10, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + }, + instant_lock: InstantLockConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 10, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + }, execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, @@ -903,9 +961,25 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 10, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 10, + ..Default::default() + }, + chain_lock: ChainLockConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 10, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + }, + instant_lock: InstantLockConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 10, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + }, execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, @@ -962,7 +1036,8 @@ mod tests { #[test] fn run_chain_insert_one_new_identity_per_block_with_block_signing() { - // drive_abci::logging::Loggers::default().try_install().ok(); + drive_abci::logging::init_for_tests(LogLevel::Silent); + let strategy = NetworkStrategy { strategy: Strategy { start_contracts: vec![], @@ -995,12 +1070,13 @@ mod tests { }, }), verify_state_transition_results: true, + sign_instant_locks: true, ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, @@ -1052,16 +1128,20 @@ mod tests { }; let day_in_ms = 1000 * 60 * 60 * 24; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 100, ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; @@ -1133,16 +1213,20 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; let mut platform = TestPlatformBuilder::new() @@ -1252,9 +1336,9 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, @@ -1339,16 +1423,20 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; let mut platform = TestPlatformBuilder::new() @@ -1443,9 +1531,9 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, @@ -1524,16 +1612,20 @@ mod tests { }; let day_in_ms = 1000 * 60 * 60 * 24; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 100, ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; let block_count = 120; @@ -1632,16 +1724,20 @@ mod tests { }; let day_in_ms = 1000 * 60 * 60 * 24; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 100, ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; let block_count = 120; @@ -1740,16 +1836,20 @@ mod tests { }; let day_in_ms = 1000 * 60 * 60 * 24; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 100, ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; @@ -1866,16 +1966,20 @@ mod tests { }; let day_in_ms = 1000 * 60 * 60 * 24; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 100, ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; @@ -1991,9 +2095,9 @@ mod tests { }; let day_in_ms = 1000 * 60 * 60 * 24; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 100, @@ -2105,9 +2209,9 @@ mod tests { }; let day_in_ms = 1000 * 60 * 60 * 24; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 100, @@ -2219,9 +2323,9 @@ mod tests { let day_in_ms = 1000 * 60 * 60 * 24; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 100, @@ -2229,7 +2333,11 @@ mod tests { ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; let block_count = 30; @@ -2348,9 +2456,9 @@ mod tests { let day_in_ms = 1000 * 60 * 60 * 24; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 100, @@ -2358,7 +2466,11 @@ mod tests { ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; let block_count = 30; @@ -2493,9 +2605,9 @@ mod tests { let day_in_ms = 1000 * 60 * 60 * 24; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 100, @@ -2503,7 +2615,11 @@ mod tests { ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; let block_count = 30; @@ -2559,12 +2675,13 @@ mod tests { failure_testing: None, query_testing: None, verify_state_transition_results: true, + sign_instant_locks: true, ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, @@ -2642,16 +2759,20 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; let mut platform = TestPlatformBuilder::new() @@ -2727,16 +2848,20 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; let mut platform = TestPlatformBuilder::new() @@ -2824,16 +2949,20 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; @@ -2901,12 +3030,13 @@ mod tests { ChainExecutionOutcome { abci_app, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions, end_time_ms, identity_nonce_counter, identity_contract_nonce_counter, + instant_lock_quorums, .. }, last_block_pooled_withdrawals_amount, @@ -2940,13 +3070,14 @@ mod tests { let ChainExecutionOutcome { abci_app, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions, end_time_ms, withdrawals: last_block_withdrawals, identity_nonce_counter, identity_contract_nonce_counter, + instant_lock_quorums, .. } = { let outcome = continue_chain_for_strategy( @@ -2956,13 +3087,14 @@ mod tests { core_height_start: 1, block_count: 1, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions: Some(current_proposer_versions), current_identity_nonce_counter: identity_nonce_counter, current_identity_contract_nonce_counter: identity_contract_nonce_counter, start_time_ms: GENESIS_TIME_MS, current_time_ms: end_time_ms, + instant_lock_quorums, }, strategy.clone(), config.clone(), @@ -3019,13 +3151,14 @@ mod tests { ChainExecutionOutcome { abci_app, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions, end_time_ms, withdrawals: last_block_withdrawals, identity_nonce_counter, identity_contract_nonce_counter, + instant_lock_quorums, .. }, last_block_broadcased_withdrawals_amount, @@ -3037,13 +3170,14 @@ mod tests { core_height_start: 1, block_count: 1, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions: Some(current_proposer_versions), current_identity_nonce_counter: identity_nonce_counter, current_identity_contract_nonce_counter: identity_contract_nonce_counter, start_time_ms: GENESIS_TIME_MS, current_time_ms: end_time_ms + 1000, + instant_lock_quorums, }, strategy.clone(), config.clone(), @@ -3131,13 +3265,14 @@ mod tests { ChainExecutionOutcome { abci_app, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions, end_time_ms, withdrawals: last_block_withdrawals, identity_nonce_counter, identity_contract_nonce_counter, + instant_lock_quorums, .. }, last_block_withdrawals_completed_amount, @@ -3149,13 +3284,14 @@ mod tests { core_height_start: 1, block_count: 1, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions: Some(current_proposer_versions), current_identity_nonce_counter: identity_nonce_counter, current_identity_contract_nonce_counter: identity_contract_nonce_counter, start_time_ms: GENESIS_TIME_MS, current_time_ms: end_time_ms + 1000, + instant_lock_quorums, }, strategy.clone(), config.clone(), @@ -3256,13 +3392,14 @@ mod tests { core_height_start: 1, block_count: 1, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions: Some(current_proposer_versions), current_identity_nonce_counter: identity_nonce_counter, current_identity_contract_nonce_counter: identity_contract_nonce_counter, start_time_ms: GENESIS_TIME_MS, current_time_ms: end_time_ms + 1000, + instant_lock_quorums, }, strategy.clone(), config.clone(), @@ -3387,9 +3524,25 @@ mod tests { }; let day_in_ms = 1000 * 60 * 60 * 24; let config = PlatformConfig { - validator_set_quorum_size: 3, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 3, + ..Default::default() + }, + chain_lock: ChainLockConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 3, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + }, + instant_lock: InstantLockConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 3, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + }, execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 1, @@ -3552,9 +3705,25 @@ mod tests { }; let day_in_ms = 1000 * 60 * 60 * 24; let config = PlatformConfig { - validator_set_quorum_size: 3, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 3, + ..Default::default() + }, + chain_lock: ChainLockConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 3, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + }, + instant_lock: InstantLockConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 3, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + }, execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 1, @@ -3688,16 +3857,36 @@ mod tests { }; let day_in_ms = 1000 * 60 * 60 * 24; let config = PlatformConfig { - validator_set_quorum_size: 3, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 3, + ..Default::default() + }, + chain_lock: ChainLockConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 3, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + }, + instant_lock: InstantLockConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 3, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + }, execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 1, ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; let mut platform_a = TestPlatformBuilder::new() @@ -3814,9 +4003,25 @@ mod tests { }; let day_in_ms = 1000 * 60 * 60 * 24; let config = PlatformConfig { - validator_set_quorum_size: 3, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 3, + ..Default::default() + }, + chain_lock: ChainLockConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 3, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + }, + instant_lock: InstantLockConfig { + quorum_type: QuorumType::Llmq100_67, + quorum_size: 3, + quorum_window: 24, + quorum_active_signers: 24, + quorum_rotation: false, + }, execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 1, @@ -3837,8 +4042,8 @@ mod tests { let ChainExecutionOutcome { abci_app, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions, end_time_ms, identity_nonce_counter, @@ -3899,8 +4104,9 @@ mod tests { core_height_start: 10, block_count: 30, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + instant_lock_quorums: Default::default(), current_proposer_versions: Some(current_proposer_versions), current_identity_nonce_counter: identity_nonce_counter, current_identity_contract_nonce_counter: identity_contract_nonce_counter, @@ -3958,16 +4164,20 @@ mod tests { }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; @@ -4014,16 +4224,20 @@ mod tests { ..Default::default() }; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 25, ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; let mut platform = TestPlatformBuilder::new() diff --git a/packages/rs-drive-abci/tests/strategy_tests/masternodes.rs b/packages/rs-drive-abci/tests/strategy_tests/masternodes.rs index d240752a265..7dcde2d97af 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/masternodes.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/masternodes.rs @@ -537,6 +537,7 @@ where TestQuorumInfo::from_quorum_hash_and_pro_tx_hashes( index as u32 * 24, quorum_hash, + Some(index as u32 + 1), validator_pro_tx_hashes, rng, ), diff --git a/packages/rs-drive-abci/tests/strategy_tests/query.rs b/packages/rs-drive-abci/tests/strategy_tests/query.rs index c8825c7dfef..e7e4fd7ca9e 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/query.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/query.rs @@ -306,7 +306,10 @@ mod tests { use dpp::block::extended_epoch_info::v0::ExtendedEpochInfoV0Getters; use dpp::version::PlatformVersion; - use drive_abci::config::{ExecutionConfig, PlatformConfig, PlatformTestConfig}; + use drive_abci::config::{ + ChainLockConfig, ExecutionConfig, InstantLockConfig, PlatformConfig, PlatformTestConfig, + ValidatorSetConfig, + }; use drive_abci::platform_types::platform_state::v0::PlatformStateV0Methods; use drive_abci::test::helpers::setup::TestPlatformBuilder; @@ -369,9 +372,9 @@ mod tests { }; let hour_in_ms = 1000 * 60 * 60; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 100, @@ -467,9 +470,9 @@ mod tests { }; let hour_in_ms = 1000 * 60 * 60; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 100, @@ -566,9 +569,9 @@ mod tests { }; let hour_in_ms = 1000 * 60 * 60; let config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 100, diff --git a/packages/rs-drive-abci/tests/strategy_tests/strategy.rs b/packages/rs-drive-abci/tests/strategy_tests/strategy.rs index dae0d7acc8f..43fba42224d 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/strategy.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/strategy.rs @@ -40,7 +40,7 @@ use drive_abci::rpc::core::MockCoreRPCLike; use rand::prelude::{IteratorRandom, SliceRandom, StdRng}; use rand::Rng; use strategy_tests::{KeyMaps, Strategy}; -use strategy_tests::transitions::{create_state_transitions_for_identities, instant_asset_lock_proof_fixture}; +use strategy_tests::transitions::{create_state_transitions_for_identities, create_state_transitions_for_identities_and_proofs, instant_asset_lock_proof_fixture}; use std::borrow::Cow; use std::collections::{BTreeMap, HashMap, HashSet}; use std::str::FromStr; @@ -48,8 +48,9 @@ use tenderdash_abci::proto::abci::{ExecTxResult, ValidatorSetUpdate}; use dpp::data_contract::document_type::accessors::DocumentTypeV0Getters; use dpp::data_contract::document_type::v0::DocumentTypeV0; use dpp::identity::accessors::IdentityGettersV0; +use dpp::identity::state_transition::asset_lock_proof::InstantAssetLockProof; use dpp::platform_value::{BinaryData, Value}; -use dpp::prelude::{Identifier, IdentityNonce}; +use dpp::prelude::{AssetLockProof, Identifier, IdentityNonce}; use dpp::state_transition::documents_batch_transition::document_base_transition::v0::DocumentBaseTransitionV0; use dpp::state_transition::documents_batch_transition::document_create_transition::{DocumentCreateTransition, DocumentCreateTransitionV0}; use dpp::state_transition::documents_batch_transition::document_transition::document_delete_transition::DocumentDeleteTransitionV0; @@ -59,7 +60,10 @@ use dpp::state_transition::documents_batch_transition::document_transition::{Doc use drive::drive::document::query::QueryDocumentsOutcomeV0Methods; use dpp::state_transition::data_contract_create_transition::methods::v0::DataContractCreateTransitionMethodsV0; use dpp::state_transition::documents_batch_transition::document_transition::document_transfer_transition::DocumentTransferTransitionV0; +use dpp::state_transition::identity_topup_transition::v0::IdentityTopUpTransitionV0; use drive_abci::abci::app::FullAbciApplication; +use drive_abci::config::PlatformConfig; +use drive_abci::platform_types::signature_verification_quorum_set::{QuorumConfig, Quorums, SigningQuorum}; use drive_abci::platform_types::withdrawal::unsigned_withdrawal_txs::v0::UnsignedWithdrawalTxs; use crate::strategy::CoreHeightIncrease::NoCoreHeightIncrease; @@ -240,6 +244,7 @@ pub struct NetworkStrategy { pub extra_normal_mns: u16, pub validator_quorum_count: u16, pub chain_lock_quorum_count: u16, + pub instant_lock_quorum_count: u16, pub initial_core_height: u32, pub upgrading_info: Option, pub core_height_increase: CoreHeightIncrease, @@ -251,6 +256,7 @@ pub struct NetworkStrategy { pub max_tx_bytes_per_block: u64, pub independent_process_proposal_verification: bool, pub sign_chain_locks: bool, + pub sign_instant_locks: bool, } impl Default for NetworkStrategy { @@ -261,6 +267,7 @@ impl Default for NetworkStrategy { extra_normal_mns: 0, validator_quorum_count: 24, chain_lock_quorum_count: 24, + instant_lock_quorum_count: 24, initial_core_height: 1, upgrading_info: None, core_height_increase: NoCoreHeightIncrease, @@ -272,6 +279,7 @@ impl Default for NetworkStrategy { max_tx_bytes_per_block: 44800, independent_process_proposal_verification: false, sign_chain_locks: false, + sign_instant_locks: false, } } } @@ -365,16 +373,18 @@ impl NetworkStrategy { block_info: &BlockInfo, signer: &mut SimpleSigner, rng: &mut StdRng, + instant_lock_quorums: &Quorums, + platform_config: &PlatformConfig, platform_version: &PlatformVersion, ) -> Result, ProtocolError> { let mut state_transitions = vec![]; if block_info.height == 1 && self.strategy.start_identities.number_of_identities > 0 { - let mut new_transitions = NetworkStrategy::create_identities_state_transitions( + let mut new_transitions = self.create_identities_state_transitions( self.strategy.start_identities.number_of_identities.into(), - self.strategy.identity_inserts.start_keys as KeyID, - &self.strategy.identity_inserts.extra_keys, signer, rng, + instant_lock_quorums, + platform_config, platform_version, ); state_transitions.append(&mut new_transitions); @@ -382,12 +392,12 @@ impl NetworkStrategy { let frequency = &self.strategy.identity_inserts.frequency; if frequency.check_hit(rng) { let count = frequency.events(rng); - let mut new_transitions = NetworkStrategy::create_identities_state_transitions( + let mut new_transitions = self.create_identities_state_transitions( count, - self.strategy.identity_inserts.start_keys as KeyID, - &self.strategy.identity_inserts.extra_keys, signer, rng, + instant_lock_quorums, + platform_config, platform_version, ); state_transitions.append(&mut new_transitions); @@ -522,6 +532,7 @@ impl NetworkStrategy { signer: &mut SimpleSigner, identity_nonce_counter: &mut BTreeMap, contract_nonce_counter: &mut BTreeMap<(Identifier, Identifier), u64>, + instant_lock_quorums: &Quorums, rng: &mut StdRng, platform_version: &PlatformVersion, ) -> (Vec, Vec) { @@ -1046,9 +1057,11 @@ impl NetworkStrategy { .collect(); for random_identity in random_identities { - operations.push(NetworkStrategy::create_identity_top_up_transition( + operations.push(self.create_identity_top_up_transition( rng, random_identity, + instant_lock_quorums, + &platform.config, platform_version, )); } @@ -1252,6 +1265,7 @@ impl NetworkStrategy { contract_nonce_counter: &mut BTreeMap<(Identifier, Identifier), u64>, signer: &mut SimpleSigner, rng: &mut StdRng, + instant_lock_quorums: &Quorums, ) -> (Vec, Vec) { let mut finalize_block_operations = vec![]; let platform_state = platform.state.load(); @@ -1259,8 +1273,14 @@ impl NetworkStrategy { .current_platform_version() .expect("expected platform version"); - let identity_state_transitions_result = - self.identity_state_transitions_for_block(block_info, signer, rng, platform_version); + let identity_state_transitions_result = self.identity_state_transitions_for_block( + block_info, + signer, + rng, + instant_lock_quorums, + &platform.config, + platform_version, + ); // Handle the Result returned by identity_state_transitions_for_block let (mut identities, mut state_transitions) = match identity_state_transitions_result { @@ -1293,6 +1313,7 @@ impl NetworkStrategy { signer, identity_nonce_counter, contract_nonce_counter, + instant_lock_quorums, rng, platform_version, ); @@ -1317,13 +1338,17 @@ impl NetworkStrategy { // add this because strategy tests library now requires a callback and uses the actual chain. fn create_identities_state_transitions( + &self, count: u16, - key_count: KeyID, - extra_keys: &KeyMaps, signer: &mut SimpleSigner, rng: &mut StdRng, + instant_lock_quorums: &Quorums, + platform_config: &PlatformConfig, platform_version: &PlatformVersion, ) -> Vec<(Identity, StateTransition)> { + let key_count = self.strategy.identity_inserts.start_keys as KeyID; + let extra_keys = &self.strategy.identity_inserts.extra_keys; + let (mut identities, mut keys) = Identity::random_identities_with_private_keys_with_rng::< Vec<_>, >(count, key_count, rng, platform_version) @@ -1352,13 +1377,33 @@ impl NetworkStrategy { } signer.add_keys(keys); - create_state_transitions_for_identities(identities, signer, rng, platform_version) + + if self.sign_instant_locks { + let identities_with_proofs = create_signed_instant_asset_lock_proofs_for_identities( + identities, + rng, + instant_lock_quorums, + platform_config, + platform_version, + ); + + create_state_transitions_for_identities_and_proofs( + identities_with_proofs, + signer, + platform_version, + ) + } else { + create_state_transitions_for_identities(identities, signer, rng, platform_version) + } } // add this because strategy tests library now requires a callback and uses the actual chain. fn create_identity_top_up_transition( + &self, rng: &mut StdRng, identity: &Identity, + instant_lock_quorums: &Quorums, + platform_config: &PlatformConfig, platform_version: &PlatformVersion, ) -> StateTransition { let (_, pk) = ECDSA_SECP256K1 @@ -1366,9 +1411,43 @@ impl NetworkStrategy { .unwrap(); let sk: [u8; 32] = pk.try_into().unwrap(); let secret_key = SecretKey::from_str(hex::encode(sk).as_str()).unwrap(); - let asset_lock_proof = + let mut asset_lock_proof = instant_asset_lock_proof_fixture(PrivateKey::new(secret_key, Network::Dash)); + // Sign transaction and update signature in instant lock proof + if self.sign_instant_locks { + let quorum_config = QuorumConfig { + quorum_type: platform_config.instant_lock.quorum_type, + active_signers: platform_config.instant_lock.quorum_active_signers, + rotation: platform_config.instant_lock.quorum_rotation, + window: platform_config.instant_lock.quorum_window, + }; + + // Sign transaction and update instant lock + let AssetLockProof::Instant(InstantAssetLockProof { instant_lock, .. }) = + &mut asset_lock_proof + else { + panic!("must be instant lock proof"); + }; + + let request_id = instant_lock + .request_id() + .expect("failed to build request id"); + + let (quorum_hash, quorum) = instant_lock_quorums + .choose_quorum(&quorum_config, request_id.as_ref()) + .expect("failed to choose quorum for instant lock transaction signing"); + + instant_lock.signature = quorum + .sign_for_instant_lock( + &quorum_config, + &quorum_hash, + request_id.as_ref(), + &instant_lock.txid, + ) + .expect("failed to sign transaction for instant lock"); + } + IdentityTopUpTransition::try_from_identity( identity, asset_lock_proof, @@ -1399,9 +1478,10 @@ pub struct ChainExecutionOutcome<'a> { pub masternode_identity_balances: BTreeMap<[u8; 32], Credits>, pub identities: Vec, pub proposers: Vec, - pub quorums: BTreeMap, - pub current_quorum_hash: QuorumHash, + pub validator_quorums: BTreeMap, + pub current_validator_quorum_hash: QuorumHash, pub current_proposer_versions: Option>, + pub instant_lock_quorums: Quorums, /// Identity nonce counters pub identity_nonce_counter: BTreeMap, /// Identity Contract nonce counters @@ -1417,8 +1497,8 @@ pub struct ChainExecutionOutcome<'a> { impl<'a> ChainExecutionOutcome<'a> { pub fn current_quorum(&self) -> &TestQuorumInfo { - self.quorums - .get::(&self.current_quorum_hash) + self.validator_quorums + .get::(&self.current_validator_quorum_hash) .unwrap() } } @@ -1428,8 +1508,9 @@ pub struct ChainExecutionParameters { pub core_height_start: u32, pub block_count: u64, pub proposers: Vec, - pub quorums: BTreeMap, - pub current_quorum_hash: QuorumHash, + pub validator_quorums: BTreeMap, + pub current_validator_quorum_hash: QuorumHash, + pub instant_lock_quorums: Quorums, // the first option is if it is set // the second option is if we are even upgrading pub current_proposer_versions: Option>>, @@ -1438,3 +1519,60 @@ pub struct ChainExecutionParameters { pub start_time_ms: u64, pub current_time_ms: u64, } + +fn create_signed_instant_asset_lock_proofs_for_identities( + identities: Vec, + rng: &mut StdRng, + instant_lock_quorums: &Quorums, + platform_config: &PlatformConfig, + platform_version: &PlatformVersion, +) -> Vec<(Identity, [u8; 32], AssetLockProof)> { + let quorum_config = QuorumConfig { + quorum_type: platform_config.instant_lock.quorum_type, + active_signers: platform_config.instant_lock.quorum_active_signers, + rotation: platform_config.instant_lock.quorum_rotation, + window: platform_config.instant_lock.quorum_window, + }; + + identities + .into_iter() + .map(|identity| { + // Create instant asset lock proof + let (_, pk) = ECDSA_SECP256K1 + .random_public_and_private_key_data(rng, platform_version) + .unwrap(); + + let pk_fixed: [u8; 32] = pk.try_into().unwrap(); + let secret_key = SecretKey::from_str(hex::encode(pk_fixed).as_str()).unwrap(); + let private_key = PrivateKey::new(secret_key, Network::Dash); + + let mut asset_lock_proof = instant_asset_lock_proof_fixture(private_key); + + // Sign transaction and update instant lock + let AssetLockProof::Instant(InstantAssetLockProof { instant_lock, .. }) = + &mut asset_lock_proof + else { + panic!("must be instant lock proof"); + }; + + let request_id = instant_lock + .request_id() + .expect("failed to build request id"); + + let (quorum_hash, quorum) = instant_lock_quorums + .choose_quorum(&quorum_config, request_id.as_ref()) + .expect("failed to choose quorum for instant lock transaction signing"); + + instant_lock.signature = quorum + .sign_for_instant_lock( + &quorum_config, + &quorum_hash, + request_id.as_ref(), + &instant_lock.txid, + ) + .expect("failed to sign transaction for instant lock"); + + (identity, pk_fixed, asset_lock_proof) + }) + .collect() +} diff --git a/packages/rs-drive-abci/tests/strategy_tests/upgrade_fork_tests.rs b/packages/rs-drive-abci/tests/strategy_tests/upgrade_fork_tests.rs index 7b588734515..0146fc16f7d 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/upgrade_fork_tests.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/upgrade_fork_tests.rs @@ -13,7 +13,10 @@ mod tests { ChainExecutionOutcome, ChainExecutionParameters, CoreHeightIncrease, MasternodeListChangesStrategy, NetworkStrategy, StrategyRandomness, UpgradingInfo, }; - use drive_abci::config::{ExecutionConfig, PlatformConfig, PlatformTestConfig}; + use drive_abci::config::{ + ChainLockConfig, ExecutionConfig, InstantLockConfig, PlatformConfig, PlatformTestConfig, + ValidatorSetConfig, + }; use drive_abci::mimic::MimicExecuteBlockOptions; use drive_abci::platform_types::platform_state::v0::PlatformStateV0Methods; use drive_abci::test::helpers::setup::TestPlatformBuilder; @@ -64,9 +67,9 @@ mod tests { }; let twenty_minutes_in_ms = 1000 * 60 * 20; let mut config = PlatformConfig { - validator_set_quorum_size: 100, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 125, @@ -98,12 +101,13 @@ mod tests { let ChainExecutionOutcome { abci_app, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions, end_time_ms, identity_nonce_counter, identity_contract_nonce_counter, + instant_lock_quorums, .. } = run_chain_for_strategy( &mut platform, @@ -162,11 +166,12 @@ mod tests { let ChainExecutionOutcome { abci_app, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, end_time_ms, identity_nonce_counter, identity_contract_nonce_counter, + instant_lock_quorums, .. } = continue_chain_for_strategy( abci_app, @@ -175,13 +180,14 @@ mod tests { core_height_start: 1, block_count: 200, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions: Some(current_proposer_versions.clone()), current_identity_nonce_counter: identity_nonce_counter, current_identity_contract_nonce_counter: identity_contract_nonce_counter, start_time_ms: 1681094380000, current_time_ms: end_time_ms, + instant_lock_quorums, }, strategy.clone(), config.clone(), @@ -225,13 +231,14 @@ mod tests { core_height_start: 1, block_count: 400, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions: Some(current_proposer_versions), current_identity_nonce_counter: identity_nonce_counter, current_identity_contract_nonce_counter: identity_contract_nonce_counter, start_time_ms: 1681094380000, current_time_ms: end_time_ms, + instant_lock_quorums, }, strategy, config, @@ -307,9 +314,12 @@ mod tests { let one_hour_in_s = 60 * 60; let thirty_seconds_in_ms = 1000 * 30; let config = PlatformConfig { - validator_set_quorum_size: 30, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig { + quorum_size: 30, + ..Default::default() + }, + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 30, @@ -337,12 +347,13 @@ mod tests { let ChainExecutionOutcome { abci_app, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions, end_time_ms, identity_nonce_counter, identity_contract_nonce_counter, + instant_lock_quorums, .. } = run_chain_for_strategy( &mut platform, @@ -398,11 +409,12 @@ mod tests { let ChainExecutionOutcome { abci_app, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, end_time_ms, identity_nonce_counter, identity_contract_nonce_counter, + instant_lock_quorums, .. } = continue_chain_for_strategy( abci_app, @@ -411,13 +423,14 @@ mod tests { core_height_start: 1, block_count: 1, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions: Some(current_proposer_versions.clone()), current_identity_nonce_counter: identity_nonce_counter, current_identity_contract_nonce_counter: identity_contract_nonce_counter, start_time_ms: 1681094380000, current_time_ms: end_time_ms, + instant_lock_quorums, }, strategy.clone(), config.clone(), @@ -461,13 +474,14 @@ mod tests { core_height_start: 1, block_count: 120, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions: Some(current_proposer_versions), current_identity_nonce_counter: identity_nonce_counter, current_identity_contract_nonce_counter: identity_contract_nonce_counter, start_time_ms: 1681094380000, current_time_ms: end_time_ms, + instant_lock_quorums, }, strategy, config, @@ -544,14 +558,23 @@ mod tests { let epoch_time_length_s = 60; let config = PlatformConfig { - validator_set_quorum_size: 30, + validator_set: ValidatorSetConfig { + quorum_size: 30, + ..Default::default() + }, + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { epoch_time_length_s, ..Default::default() }, initial_protocol_version: TEST_PROTOCOL_VERSION_4_WITH_1_HPMN_UPGRADE, block_spacing_ms: epoch_time_length_s * 1000, - testing_configs: PlatformTestConfig::default_with_no_block_signing(), + testing_configs: PlatformTestConfig { + block_signing: false, + block_commit_signature_verification: false, + disable_instant_lock_signature_verification: true, + }, ..Default::default() }; @@ -562,8 +585,8 @@ mod tests { let ChainExecutionOutcome { abci_app, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, end_time_ms, .. } = run_chain_for_strategy(&mut platform, 1, strategy.clone(), config.clone(), 13); @@ -701,9 +724,12 @@ mod tests { }; let hour_in_ms = 1000 * 60 * 60; let config = PlatformConfig { - validator_set_quorum_size: 40, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig { + quorum_size: 40, + ..Default::default() + }, + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 80, @@ -736,12 +762,13 @@ mod tests { let ChainExecutionOutcome { abci_app, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions, end_time_ms, identity_nonce_counter, identity_contract_nonce_counter, + instant_lock_quorums, .. } = run_chain_for_strategy( &mut platform, @@ -789,12 +816,13 @@ mod tests { let ChainExecutionOutcome { abci_app, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, end_time_ms, identity_nonce_counter, identity_contract_nonce_counter, + instant_lock_quorums, .. } = continue_chain_for_strategy( abci_app, @@ -803,13 +831,14 @@ mod tests { core_height_start: 1, block_count: 2500, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions: Some(current_proposer_versions.clone()), current_identity_nonce_counter: identity_nonce_counter, current_identity_contract_nonce_counter: identity_contract_nonce_counter, start_time_ms: 1681094380000, current_time_ms: end_time_ms, + instant_lock_quorums, }, strategy.clone(), config.clone(), @@ -856,13 +885,14 @@ mod tests { core_height_start: 1, block_count: 400, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions: Some(current_proposer_versions), current_identity_nonce_counter: identity_nonce_counter, current_identity_contract_nonce_counter: identity_contract_nonce_counter, start_time_ms: 1681094380000, current_time_ms: end_time_ms, + instant_lock_quorums, }, strategy, config, @@ -934,9 +964,12 @@ mod tests { }; let hour_in_ms = 1000 * 60 * 60; let mut config = PlatformConfig { - validator_set_quorum_size: 50, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig { + quorum_size: 50, + ..Default::default() + }, + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 50, @@ -968,12 +1001,13 @@ mod tests { let ChainExecutionOutcome { abci_app, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions, end_time_ms, identity_nonce_counter, identity_contract_nonce_counter, + instant_lock_quorums, .. } = run_chain_for_strategy( &mut platform, @@ -1013,12 +1047,13 @@ mod tests { let ChainExecutionOutcome { abci_app, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, end_time_ms, identity_nonce_counter, identity_contract_nonce_counter, + instant_lock_quorums, .. } = continue_chain_for_strategy( abci_app, @@ -1027,13 +1062,14 @@ mod tests { core_height_start: 1, block_count: 3000, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions: Some(current_proposer_versions), current_identity_nonce_counter: identity_nonce_counter, current_identity_contract_nonce_counter: identity_contract_nonce_counter, start_time_ms: 1681094380000, current_time_ms: end_time_ms, + instant_lock_quorums, }, strategy, config.clone(), @@ -1108,13 +1144,14 @@ mod tests { let ChainExecutionOutcome { abci_app, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions, end_time_ms, identity_nonce_counter, identity_contract_nonce_counter, + instant_lock_quorums, .. } = continue_chain_for_strategy( abci_app, @@ -1123,13 +1160,14 @@ mod tests { core_height_start: 1, block_count: 2000, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions: None, //restart the proposer versions current_identity_nonce_counter: identity_nonce_counter, current_identity_contract_nonce_counter: identity_contract_nonce_counter, start_time_ms: 1681094380000, current_time_ms: end_time_ms, + instant_lock_quorums, }, strategy.clone(), config.clone(), @@ -1178,13 +1216,14 @@ mod tests { core_height_start: 1, block_count: 100, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions: Some(current_proposer_versions), current_identity_nonce_counter: identity_nonce_counter, current_identity_contract_nonce_counter: identity_contract_nonce_counter, start_time_ms: 1681094380000, current_time_ms: end_time_ms, + instant_lock_quorums, }, strategy, config, @@ -1263,9 +1302,12 @@ mod tests { }; let hour_in_ms = 1000 * 60 * 60; let config = PlatformConfig { - validator_set_quorum_size: 50, - validator_set_quorum_type: "llmq_100_67".to_string(), - chain_lock_quorum_type: "llmq_100_67".to_string(), + validator_set: ValidatorSetConfig { + quorum_size: 50, + ..Default::default() + }, + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { verify_sum_trees: true, validator_set_rotation_block_count: 30, @@ -1297,11 +1339,12 @@ mod tests { let ChainExecutionOutcome { abci_app, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, end_time_ms, identity_nonce_counter, identity_contract_nonce_counter, + instant_lock_quorums, .. } = run_chain_for_strategy(&mut platform, 1400, strategy, config.clone(), 15); let state = abci_app.platform.state.load(); @@ -1395,13 +1438,14 @@ mod tests { core_height_start: 1, block_count: 1100, proposers, - quorums, - current_quorum_hash, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, current_proposer_versions: None, current_identity_nonce_counter: identity_nonce_counter, current_identity_contract_nonce_counter: identity_contract_nonce_counter, start_time_ms: 1681094380000, current_time_ms: end_time_ms, + instant_lock_quorums, }, strategy, config, diff --git a/packages/rs-platform-version/src/version/drive_abci_versions.rs b/packages/rs-platform-version/src/version/drive_abci_versions.rs index 2439f050b17..5953f56e91c 100644 --- a/packages/rs-platform-version/src/version/drive_abci_versions.rs +++ b/packages/rs-platform-version/src/version/drive_abci_versions.rs @@ -53,6 +53,7 @@ pub struct DriveAbciStructureVersions { pub state_transition_execution_context: FeatureVersion, pub commit: FeatureVersion, pub masternode: FeatureVersion, + pub signature_verification_quorum_set: FeatureVersion, } #[derive(Clone, Debug, Default)] @@ -64,6 +65,7 @@ pub struct DriveAbciMethodVersions { pub block_fee_processing: DriveAbciBlockFeeProcessingMethodVersions, pub core_subsidy: DriveAbciCoreSubsidyMethodVersions, pub core_chain_lock: DriveAbciCoreChainLockMethodVersionsAndConstants, + pub core_instant_send_lock: DriveAbciCoreInstantSendLockMethodVersions, pub fee_pool_inwards_distribution: DriveAbciFeePoolInwardsDistributionMethodVersions, pub fee_pool_outwards_distribution: DriveAbciFeePoolOutwardsDistributionMethodVersions, pub withdrawals: DriveAbciIdentityCreditWithdrawalMethodVersions, @@ -231,6 +233,11 @@ pub struct DriveAbciCoreSubsidyMethodVersions { pub epoch_core_reward_credits_for_distribution: FeatureVersion, } +#[derive(Clone, Debug, Default)] +pub struct DriveAbciCoreInstantSendLockMethodVersions { + pub verify_recent_signature_locally: FeatureVersion, +} + #[derive(Clone, Debug, Default)] pub struct DriveAbciCoreChainLockMethodVersionsAndConstants { pub choose_quorum: FeatureVersion, diff --git a/packages/rs-platform-version/src/version/mocks/v2_test.rs b/packages/rs-platform-version/src/version/mocks/v2_test.rs index d47370d65b7..41e1a4f381b 100644 --- a/packages/rs-platform-version/src/version/mocks/v2_test.rs +++ b/packages/rs-platform-version/src/version/mocks/v2_test.rs @@ -15,9 +15,9 @@ use crate::version::drive_abci_versions::{ DriveAbciAssetLockValidationVersions, DriveAbciBlockEndMethodVersions, DriveAbciBlockFeeProcessingMethodVersions, DriveAbciBlockStartMethodVersions, DriveAbciCoreBasedUpdatesMethodVersions, DriveAbciCoreChainLockMethodVersionsAndConstants, - DriveAbciCoreSubsidyMethodVersions, DriveAbciDocumentsStateTransitionValidationVersions, - DriveAbciEngineMethodVersions, DriveAbciEpochMethodVersions, - DriveAbciFeePoolInwardsDistributionMethodVersions, + DriveAbciCoreInstantSendLockMethodVersions, DriveAbciCoreSubsidyMethodVersions, + DriveAbciDocumentsStateTransitionValidationVersions, DriveAbciEngineMethodVersions, + DriveAbciEpochMethodVersions, DriveAbciFeePoolInwardsDistributionMethodVersions, DriveAbciFeePoolOutwardsDistributionMethodVersions, DriveAbciIdentityCreditWithdrawalMethodVersions, DriveAbciInitializationMethodVersions, DriveAbciMasternodeIdentitiesUpdatesMethodVersions, DriveAbciMethodVersions, @@ -502,6 +502,7 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { state_transition_execution_context: 0, commit: 0, masternode: 0, + signature_verification_quorum_set: 0, }, methods: DriveAbciMethodVersions { engine: DriveAbciEngineMethodVersions { @@ -555,6 +556,9 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { make_sure_core_is_synced_to_chain_lock: 0, recent_block_count_amount: 2, }, + core_instant_send_lock: DriveAbciCoreInstantSendLockMethodVersions { + verify_recent_signature_locally: 0, + }, fee_pool_inwards_distribution: DriveAbciFeePoolInwardsDistributionMethodVersions { add_distribute_block_fees_into_pools_operations: 0, add_distribute_storage_fee_to_epochs_operations: 0, diff --git a/packages/rs-platform-version/src/version/mocks/v3_test.rs b/packages/rs-platform-version/src/version/mocks/v3_test.rs index d603bf780e8..c027f7886fc 100644 --- a/packages/rs-platform-version/src/version/mocks/v3_test.rs +++ b/packages/rs-platform-version/src/version/mocks/v3_test.rs @@ -15,9 +15,9 @@ use crate::version::drive_abci_versions::{ DriveAbciAssetLockValidationVersions, DriveAbciBlockEndMethodVersions, DriveAbciBlockFeeProcessingMethodVersions, DriveAbciBlockStartMethodVersions, DriveAbciCoreBasedUpdatesMethodVersions, DriveAbciCoreChainLockMethodVersionsAndConstants, - DriveAbciCoreSubsidyMethodVersions, DriveAbciDocumentsStateTransitionValidationVersions, - DriveAbciEngineMethodVersions, DriveAbciEpochMethodVersions, - DriveAbciFeePoolInwardsDistributionMethodVersions, + DriveAbciCoreInstantSendLockMethodVersions, DriveAbciCoreSubsidyMethodVersions, + DriveAbciDocumentsStateTransitionValidationVersions, DriveAbciEngineMethodVersions, + DriveAbciEpochMethodVersions, DriveAbciFeePoolInwardsDistributionMethodVersions, DriveAbciFeePoolOutwardsDistributionMethodVersions, DriveAbciIdentityCreditWithdrawalMethodVersions, DriveAbciInitializationMethodVersions, DriveAbciMasternodeIdentitiesUpdatesMethodVersions, DriveAbciMethodVersions, @@ -502,6 +502,7 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { state_transition_execution_context: 0, commit: 0, masternode: 0, + signature_verification_quorum_set: 0, }, methods: DriveAbciMethodVersions { engine: DriveAbciEngineMethodVersions { @@ -555,6 +556,9 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { make_sure_core_is_synced_to_chain_lock: 0, recent_block_count_amount: 2, }, + core_instant_send_lock: DriveAbciCoreInstantSendLockMethodVersions { + verify_recent_signature_locally: 0, + }, fee_pool_inwards_distribution: DriveAbciFeePoolInwardsDistributionMethodVersions { add_distribute_block_fees_into_pools_operations: 0, add_distribute_storage_fee_to_epochs_operations: 0, diff --git a/packages/rs-platform-version/src/version/v1.rs b/packages/rs-platform-version/src/version/v1.rs index 268ae2a7c57..a539e8bc29e 100644 --- a/packages/rs-platform-version/src/version/v1.rs +++ b/packages/rs-platform-version/src/version/v1.rs @@ -15,9 +15,9 @@ use crate::version::drive_abci_versions::{ DriveAbciAssetLockValidationVersions, DriveAbciBlockEndMethodVersions, DriveAbciBlockFeeProcessingMethodVersions, DriveAbciBlockStartMethodVersions, DriveAbciCoreBasedUpdatesMethodVersions, DriveAbciCoreChainLockMethodVersionsAndConstants, - DriveAbciCoreSubsidyMethodVersions, DriveAbciDocumentsStateTransitionValidationVersions, - DriveAbciEngineMethodVersions, DriveAbciEpochMethodVersions, - DriveAbciFeePoolInwardsDistributionMethodVersions, + DriveAbciCoreInstantSendLockMethodVersions, DriveAbciCoreSubsidyMethodVersions, + DriveAbciDocumentsStateTransitionValidationVersions, DriveAbciEngineMethodVersions, + DriveAbciEpochMethodVersions, DriveAbciFeePoolInwardsDistributionMethodVersions, DriveAbciFeePoolOutwardsDistributionMethodVersions, DriveAbciIdentityCreditWithdrawalMethodVersions, DriveAbciInitializationMethodVersions, DriveAbciMasternodeIdentitiesUpdatesMethodVersions, DriveAbciMethodVersions, @@ -501,6 +501,7 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { state_transition_execution_context: 0, commit: 0, masternode: 0, + signature_verification_quorum_set: 0, }, methods: DriveAbciMethodVersions { engine: DriveAbciEngineMethodVersions { @@ -554,6 +555,9 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { make_sure_core_is_synced_to_chain_lock: 0, recent_block_count_amount: 2, }, + core_instant_send_lock: DriveAbciCoreInstantSendLockMethodVersions { + verify_recent_signature_locally: 0, + }, fee_pool_inwards_distribution: DriveAbciFeePoolInwardsDistributionMethodVersions { add_distribute_block_fees_into_pools_operations: 0, add_distribute_storage_fee_to_epochs_operations: 0, diff --git a/packages/strategy-tests/src/transitions.rs b/packages/strategy-tests/src/transitions.rs index 0ef26db956b..0a9ef44be30 100644 --- a/packages/strategy-tests/src/transitions.rs +++ b/packages/strategy-tests/src/transitions.rs @@ -779,7 +779,7 @@ pub fn create_state_transitions_for_identities( let (_, pk) = ECDSA_SECP256K1 .random_public_and_private_key_data(rng, platform_version) .unwrap(); - let sk: [u8; 32] = pk.clone().try_into().unwrap(); + let sk: [u8; 32] = pk.try_into().unwrap(); let secret_key = SecretKey::from_str(hex::encode(sk).as_str()).unwrap(); let asset_lock_proof = instant_asset_lock_proof_fixture(PrivateKey::new(secret_key, Network::Dash)); @@ -787,7 +787,33 @@ pub fn create_state_transitions_for_identities( IdentityCreateTransition::try_from_identity_with_signer( &identity.clone(), asset_lock_proof, - pk.as_slice(), + &sk, + signer, + &NativeBlsModule, + 0, + platform_version, + ) + .expect("expected to transform identity into identity create transition"); + identity.set_id(identity_create_transition.owner_id()); + + (identity, identity_create_transition) + }) + .collect() +} + +pub fn create_state_transitions_for_identities_and_proofs( + identities_with_proofs: Vec<(Identity, [u8; 32], AssetLockProof)>, + signer: &mut SimpleSigner, + platform_version: &PlatformVersion, +) -> Vec<(Identity, StateTransition)> { + identities_with_proofs + .into_iter() + .map(|(mut identity, private_key, asset_lock_proof)| { + let identity_create_transition = + IdentityCreateTransition::try_from_identity_with_signer( + &identity.clone(), + asset_lock_proof, + &private_key, signer, &NativeBlsModule, 0,