@witnet/solidity 2.2.8 → 2.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/build/contracts/Clonable.json +2 -2
- package/build/contracts/Context.json +1 -1
- package/build/contracts/Create3.json +2 -2
- package/build/contracts/ERC165.json +1 -1
- package/build/contracts/IERC165.json +1 -1
- package/build/contracts/IERC20.json +1 -1
- package/build/contracts/IERC2362.json +1 -1
- package/build/contracts/IFeeds.json +2 -2
- package/build/contracts/IWitnetConsumer.json +2 -2
- package/build/contracts/IWitnetFeeds.json +2 -2
- package/build/contracts/IWitnetFeedsAdmin.json +2 -2
- package/build/contracts/IWitnetOracle.json +2 -2
- package/build/contracts/IWitnetOracleEvents.json +2 -2
- package/build/contracts/IWitnetOracleReporter.json +2 -2
- package/build/contracts/IWitnetPriceFeeds.json +2 -2
- package/build/contracts/IWitnetPriceSolver.json +2 -2
- package/build/contracts/IWitnetPriceSolverDeployer.json +2 -2
- package/build/contracts/IWitnetRandomness.json +2 -2
- package/build/contracts/IWitnetRandomnessAdmin.json +2 -2
- package/build/contracts/IWitnetRandomnessEvents.json +2 -2
- package/build/contracts/IWitnetRequestBoardAdmin.json +2 -2
- package/build/contracts/IWitnetRequestBoardAdminACLs.json +2 -2
- package/build/contracts/IWitnetRequestBytecodes.json +2 -2
- package/build/contracts/IWitnetRequestFactory.json +2 -2
- package/build/contracts/Initializable.json +1 -1
- package/build/contracts/OVM_GasPriceOracle.json +2 -2
- package/build/contracts/Ownable.json +1 -1
- package/build/contracts/Ownable2Step.json +2 -2
- package/build/contracts/Payable.json +2 -2
- package/build/contracts/Proxiable.json +2 -2
- package/build/contracts/ReentrancyGuard.json +1 -1
- package/build/contracts/Slices.json +2 -2
- package/build/contracts/Upgradeable.json +2 -2
- package/build/contracts/UsingWitnet.json +2 -2
- package/build/contracts/UsingWitnetRandomness.json +2 -2
- package/build/contracts/UsingWitnetRequest.json +2 -2
- package/build/contracts/UsingWitnetRequestTemplate.json +2 -2
- package/build/contracts/Witnet.json +2 -2
- package/build/contracts/WitnetBuffer.json +2 -2
- package/build/contracts/WitnetCBOR.json +2 -2
- package/build/contracts/WitnetConsumer.json +2 -2
- package/build/contracts/WitnetDeployer.json +2 -2
- package/build/contracts/WitnetDeployerCfxCore.json +2 -2
- package/build/contracts/WitnetDeployerMeter.json +2 -2
- package/build/contracts/WitnetEncodingLib.json +2 -2
- package/build/contracts/WitnetErrorsLib.json +2 -2
- package/build/contracts/WitnetFeeds.json +2 -2
- package/build/contracts/WitnetMockedOracle.json +2 -2
- package/build/contracts/WitnetMockedPriceFeeds.json +2 -2
- package/build/contracts/WitnetMockedRandomness.json +2 -2
- package/build/contracts/WitnetMockedRequestBytecodes.json +2 -2
- package/build/contracts/WitnetMockedRequestFactory.json +2 -2
- package/build/contracts/WitnetOracle.json +2 -2
- package/build/contracts/WitnetOracleDataLib.json +2 -2
- package/build/contracts/WitnetOracleTrustableBase.json +2 -2
- package/build/contracts/WitnetOracleTrustableDefault.json +2 -2
- package/build/contracts/WitnetOracleTrustableObscuro.json +2 -2
- package/build/contracts/WitnetOracleTrustableOvm2.json +2 -2
- package/build/contracts/WitnetOracleTrustableReef.json +2 -2
- package/build/contracts/WitnetPriceFeeds.json +2 -2
- package/build/contracts/WitnetPriceFeedsData.json +2 -2
- package/build/contracts/WitnetPriceFeedsDefault.json +2 -2
- package/build/contracts/WitnetPriceFeedsLib.json +2 -2
- package/build/contracts/WitnetPriceSolverBase.json +2 -2
- package/build/contracts/WitnetProxy.json +2 -2
- package/build/contracts/WitnetRandomness.json +2 -2
- package/build/contracts/WitnetRandomnessRequestConsumer.json +2 -2
- package/build/contracts/WitnetRandomnessV2.json +2 -2
- package/build/contracts/WitnetRequest.json +2 -2
- package/build/contracts/WitnetRequestBytecodes.json +2 -2
- package/build/contracts/WitnetRequestBytecodesData.json +2 -2
- package/build/contracts/WitnetRequestBytecodesDefault.json +2 -2
- package/build/contracts/WitnetRequestBytecodesNoSha256.json +2 -2
- package/build/contracts/WitnetRequestConsumer.json +2 -2
- package/build/contracts/WitnetRequestFactory.json +2 -2
- package/build/contracts/WitnetRequestFactoryCfxCore.json +2 -2
- package/build/contracts/WitnetRequestFactoryData.json +2 -2
- package/build/contracts/WitnetRequestFactoryDefault.json +2 -2
- package/build/contracts/WitnetRequestTemplate.json +2 -2
- package/build/contracts/WitnetRequestTemplateConsumer.json +2 -2
- package/build/contracts/WitnetUpgradableBase.json +2 -2
- package/build/contracts/WitnetV2.json +2 -2
- package/package.json +1 -1
|
@@ -5861,7 +5861,7 @@
|
|
|
5861
5861
|
"sourceMap": "229:5010:41:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;229:5010:41;;;;;;;;;;;;;;;;;",
|
|
5862
5862
|
"deployedSourceMap": "229:5010:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3820:925;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4751:486;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3820:925::-;3954:24;4018:8;4006:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3994:40;;4049:8;4044:695;4063:21;;;4044:695;;;4146:28;4112:30;4128:8;;4137:3;4128:13;;;;;;;:::i;:::-;;;;;;;4112:15;:30::i;:::-;:62;;;;;;;;:::i;:::-;;4108:621;;4194:34;4231:14;4194:34;4246:8;;4255:3;4246:13;;;;;;;:::i;:::-;;;;;;;4231:29;;;;;;;;;;;:37;;4194:74;;4321:1;4313:10;;4290:9;:19;;;:33;4286:429;;4409:19;;;;4364:131;;-1:-1:-1;;;4364:131:41;;-1:-1:-1;;;;;4364:19:41;;;;;:131;;4409:19;4454;;;;4364:131;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4364:131:41;;;;;;;;;;;;:::i;:::-;4347:9;4357:3;4347:14;;;;;;;;:::i;:::-;;;;;;:148;;;;4286:429;;;4559:137;;-1:-1:-1;;;4559:137:41;;-1:-1:-1;;;;;4559:19:41;;;;;:137;;4604:24;;;;4654:19;;;;4559:137;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4559:137:41;;;;;;;;;;;;:::i;:::-;4542:9;4552:3;4542:14;;;;;;;;:::i;:::-;;;;;;:154;;;;4286:429;4176:553;4108:621;4086:6;;4044:695;;;;3820:925;;;;;:::o;4751:486::-;4833:13;4870:27;4862:4;:35;;;;;;;;:::i;:::-;;4858:373;;-1:-1:-1;;4913:35:41;;;;;;;;;;;;;;;;;;4751:486::o;4858:373::-;4977:29;4969:4;:37;;;;;;;;:::i;:::-;;4965:266;;-1:-1:-1;;5022:37:41;;;;;;;;;;;;;;;;;;4751:486::o;4965:266::-;5088:30;5080:4;:38;;;;;;;;:::i;:::-;;5076:155;;-1:-1:-1;;5134:38:41;;;;;;;;;;;;;;;;;;4751:486::o;5076:155::-;-1:-1:-1;;5203:17:41;;;;;;;;;;;;-1:-1:-1;;;5203:17:41;;;;;4751:486::o;1833:604::-;1898:20;1963:23;;;:14;:23;;;;;2000:16;;;:32;-1:-1:-1;;;2000:32:41;;;;:37;1996:435;;2073:16;;;:25;-1:-1:-1;;;2073:25:41;;;;2057:12;:41;2053:192;;-1:-1:-1;2125:30:41;;1833:604;-1:-1:-1;;1833:604:41:o;2053:192::-;-1:-1:-1;2201:29:41;;1833:604;-1:-1:-1;;1833:604:41:o;1996:435::-;2265:25;;-1:-1:-1;;;;;2265:25:41;:39;2261:170;;-1:-1:-1;2327:27:41;;1833:604;-1:-1:-1;;1833:604:41:o;2261:170::-;-1:-1:-1;2392:28:41;;1833:604;-1:-1:-1;;1833:604:41:o;14:819:84:-;139:6;147;155;208:2;196:9;187:7;183:23;179:32;176:52;;;224:1;221;214:12;176:52;250:23;;-1:-1:-1;;;;;302:31:84;;292:42;;282:70;;348:1;345;338:12;282:70;371:5;-1:-1:-1;427:2:84;412:18;;399:32;450:18;480:14;;;477:34;;;507:1;504;497:12;477:34;545:6;534:9;530:22;520:32;;590:7;583:4;579:2;575:13;571:27;561:55;;612:1;609;602:12;561:55;652:2;639:16;678:2;670:6;667:14;664:34;;;694:1;691;684:12;664:34;747:7;742:2;732:6;729:1;725:14;721:2;717:23;713:32;710:45;707:65;;;768:1;765;758:12;707:65;799:2;795;791:11;781:21;;821:6;811:16;;;;;14:819;;;;;:::o;1010:250::-;1095:1;1105:113;1119:6;1116:1;1113:13;1105:113;;;1195:11;;;1189:18;1176:11;;;1169:39;1141:2;1134:10;1105:113;;;-1:-1:-1;;1252:1:84;1234:16;;1227:27;1010:250::o;1265:270::-;1306:3;1344:5;1338:12;1371:6;1366:3;1359:19;1387:76;1456:6;1449:4;1444:3;1440:14;1433:4;1426:5;1422:16;1387:76;:::i;:::-;1517:2;1496:15;-1:-1:-1;;1492:29:84;1483:39;;;;1524:4;1479:50;;1265:270;-1:-1:-1;;1265:270:84:o;1540:808::-;1708:4;1737:2;1777;1766:9;1762:18;1807:2;1796:9;1789:21;1830:6;1865;1859:13;1896:6;1888;1881:22;1934:2;1923:9;1919:18;1912:25;;1996:2;1986:6;1983:1;1979:14;1968:9;1964:30;1960:39;1946:53;;2034:2;2026:6;2022:15;2055:1;2065:254;2079:6;2076:1;2073:13;2065:254;;;2172:2;2168:7;2156:9;2148:6;2144:22;2140:36;2135:3;2128:49;2200:39;2232:6;2223;2217:13;2200:39;:::i;:::-;2190:49;-1:-1:-1;2297:12:84;;;;2262:15;;;;2101:1;2094:9;2065:254;;;-1:-1:-1;2336:6:84;;1540:808;-1:-1:-1;;;;;;;1540:808:84:o;2353:273::-;2429:6;2482:2;2470:9;2461:7;2457:23;2453:32;2450:52;;;2498:1;2495;2488:12;2450:52;2537:9;2524:23;2576:1;2569:5;2566:12;2556:40;;2592:1;2589;2582:12;2556:40;2615:5;2353:273;-1:-1:-1;;;2353:273:84:o;2631:227::-;2788:2;2777:9;2770:21;2751:4;2808:44;2848:2;2837:9;2833:18;2825:6;2808:44;:::i;2863:127::-;2924:10;2919:3;2915:20;2912:1;2905:31;2955:4;2952:1;2945:15;2979:4;2976:1;2969:15;2995:127;3056:10;3051:3;3047:20;3044:1;3037:31;3087:4;3084:1;3077:15;3111:4;3108:1;3101:15;3127:127;3188:10;3183:3;3179:20;3176:1;3169:31;3219:4;3216:1;3209:15;3243:4;3240:1;3233:15;3486:327;3711:25;;;3699:2;3684:18;;3745:62;3803:2;3788:18;;3780:6;3346:12;3394:4;3379:20;;3367:33;;3440:1;3436:17;3455:18;3432:42;3425:4;3416:14;;;3409:66;3259:222;3818:896;3897:6;3950:2;3938:9;3929:7;3925:23;3921:32;3918:52;;;3966:1;3963;3956:12;3918:52;3999:9;3993:16;4028:18;4069:2;4061:6;4058:14;4055:34;;;4085:1;4082;4075:12;4055:34;4123:6;4112:9;4108:22;4098:32;;4168:7;4161:4;4157:2;4153:13;4149:27;4139:55;;4190:1;4187;4180:12;4139:55;4219:2;4213:9;4241:2;4237;4234:10;4231:36;;;4247:18;;:::i;:::-;4322:2;4316:9;4290:2;4376:13;;-1:-1:-1;;4372:22:84;;;4396:2;4368:31;4364:40;4352:53;;;4420:18;;;4440:22;;;4417:46;4414:72;;;4466:18;;:::i;:::-;4506:10;4502:2;4495:22;4541:2;4533:6;4526:18;4581:7;4576:2;4571;4567;4563:11;4559:20;4556:33;4553:53;;;4602:1;4599;4592:12;4553:53;4615:68;4680:2;4675;4667:6;4663:15;4658:2;4654;4650:11;4615:68;:::i;:::-;4702:6;3818:896;-1:-1:-1;;;;;;;3818:896:84:o;4844:1376::-;5067:2;5056:9;5049:21;5030:4;5090:1;5123:6;5117:13;5153:3;5175:1;5202:9;5199:1;5195:17;5185:27;;5262:1;5251:9;5247:17;5283:18;5273:61;;5327:4;5319:6;5315:17;5305:27;;5273:61;5353:2;5401;5393:6;5390:14;5370:18;5367:38;5364:165;;-1:-1:-1;;;5428:33:84;;5484:4;5481:1;5474:15;5514:4;5435:3;5502:17;5364:165;5617:2;5602:18;;942:19;;;985:14;;;5645:18;5672:128;;;;5814:1;5809:314;;;;5638:485;;5672:128;-1:-1:-1;;5705:24:84;;5693:37;;5773:14;;5766:22;5763:1;5759:30;5750:40;;;-1:-1:-1;5672:128:84;;5809:314;4791:1;4784:14;;;4828:4;4815:18;;5903:1;5917:165;5931:6;5928:1;5925:13;5917:165;;;6009:14;;5996:11;;;5989:35;6052:16;;;;5946:10;;5917:165;;;6102:11;;;-1:-1:-1;;5638:485:84;;;;;;;;6140:3;6132:11;;;6152:62;6210:2;6199:9;6195:18;6187:6;3346:12;3394:4;3379:20;;3367:33;;3440:1;3436:17;3455:18;3432:42;3425:4;3416:14;;;3409:66;3259:222",
|
|
5863
5863
|
"source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.7.0 <0.9.0;\n\nimport \"../WitnetRequestBytecodes.sol\";\nimport \"../libs/WitnetV2.sol\";\n\n/// @title Witnet Request Board base data model library\n/// @author The Witnet Foundation.\nlibrary WitnetOracleDataLib { \n\n using WitnetV2 for WitnetV2.Request;\n\n bytes32 internal constant _WITNET_ORACLE_DATA_SLOTHASH =\n /* keccak256(\"io.witnet.boards.data\") */\n 0xf595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e183;\n\n struct Storage {\n uint256 nonce;\n mapping (uint => WitnetV2.Query) queries;\n mapping (address => bool) reporters;\n }\n\n // ================================================================================================================\n // --- Internal functions -----------------------------------------------------------------------------------------\n\n /// Returns storage pointer to contents of 'WitnetBoardState' struct.\n function data() internal pure returns (Storage storage _ptr)\n {\n assembly {\n _ptr.slot := _WITNET_ORACLE_DATA_SLOTHASH\n }\n }\n\n function isReporter(address addr) internal view returns (bool) {\n return data().reporters[addr];\n }\n\n /// Gets query storage by query id.\n function seekQuery(uint256 _queryId) internal view returns (WitnetV2.Query storage) {\n return data().queries[_queryId];\n }\n\n /// Gets the Witnet.Request part of a given query.\n function seekQueryRequest(uint256 _queryId) internal view returns (WitnetV2.Request storage) {\n return data().queries[_queryId].request;\n } \n\n /// Gets the Witnet.Result part of a given query.\n function seekQueryResponse(uint256 _queryId) internal view returns (WitnetV2.Response storage) {\n return data().queries[_queryId].response;\n }\n\n function seekQueryStatus(uint256 queryId) internal view returns (WitnetV2.QueryStatus) {\n WitnetV2.Query storage __query = data().queries[queryId];\n if (__query.response.resultTimestamp != 0) {\n if (block.number >= __query.response.finality) {\n return WitnetV2.QueryStatus.Finalized;\n } else {\n return WitnetV2.QueryStatus.Reported;\n }\n } else if (__query.request.requester != address(0)) {\n return WitnetV2.QueryStatus.Posted;\n } else {\n return WitnetV2.QueryStatus.Unknown;\n }\n }\n\n function seekQueryResponseStatus(uint256 queryId) internal view returns (WitnetV2.ResponseStatus) {\n WitnetV2.QueryStatus _queryStatus = seekQueryStatus(queryId);\n if (_queryStatus == WitnetV2.QueryStatus.Finalized) {\n bytes storage __cborValues = data().queries[queryId].response.resultCborBytes;\n if (__cborValues.length > 0) {\n // determine whether stored result is an error by peeking the first byte\n return (__cborValues[0] == bytes1(0xd8)\n ? WitnetV2.ResponseStatus.Error \n : WitnetV2.ResponseStatus.Ready\n );\n } else {\n // the result is final but delivered to the requesting address\n return WitnetV2.ResponseStatus.Delivered;\n }\n } else if (_queryStatus == WitnetV2.QueryStatus.Posted) {\n return WitnetV2.ResponseStatus.Awaiting;\n } else if (_queryStatus == WitnetV2.QueryStatus.Reported) {\n return WitnetV2.ResponseStatus.Finalizing;\n } else {\n return WitnetV2.ResponseStatus.Void;\n }\n }\n\n // ================================================================================================================\n // --- Public functions -------------------------------------------------------------------------------------------\n\n function extractWitnetDataRequests(WitnetRequestBytecodes registry, uint256[] calldata queryIds)\n public view\n returns (bytes[] memory bytecodes)\n {\n bytecodes = new bytes[](queryIds.length);\n for (uint _ix = 0; _ix < queryIds.length; _ix ++) {\n if (seekQueryStatus(queryIds[_ix]) != WitnetV2.QueryStatus.Unknown) {\n WitnetV2.Request storage __request = data().queries[queryIds[_ix]].request;\n if (__request.witnetRAD != bytes32(0)) {\n bytecodes[_ix] = registry.bytecodeOf(\n __request.witnetRAD,\n __request.witnetSLA\n );\n } else {\n bytecodes[_ix] = registry.bytecodeOf(\n __request.witnetBytecode,\n __request.witnetSLA \n );\n }\n }\n }\n }\n\n function notInStatusRevertMessage(WitnetV2.QueryStatus self) public pure returns (string memory) {\n if (self == WitnetV2.QueryStatus.Posted) {\n return \"query not in Posted status\";\n } else if (self == WitnetV2.QueryStatus.Reported) {\n return \"query not in Reported status\";\n } else if (self == WitnetV2.QueryStatus.Finalized) {\n return \"query not in Finalized status\";\n } else {\n return \"bad mood\";\n }\n }\n}\n",
|
|
5864
|
-
"sourcePath": "/home/
|
|
5864
|
+
"sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/data/WitnetOracleDataLib.sol",
|
|
5865
5865
|
"ast": {
|
|
5866
5866
|
"absolutePath": "project:/contracts/data/WitnetOracleDataLib.sol",
|
|
5867
5867
|
"exportedSymbols": {
|
|
@@ -10601,7 +10601,7 @@
|
|
|
10601
10601
|
},
|
|
10602
10602
|
"networks": {},
|
|
10603
10603
|
"schemaVersion": "3.4.16",
|
|
10604
|
-
"updatedAt": "2025-10-
|
|
10604
|
+
"updatedAt": "2025-10-15T18:03:23.772Z",
|
|
10605
10605
|
"devdoc": {
|
|
10606
10606
|
"author": "The Witnet Foundation.",
|
|
10607
10607
|
"kind": "dev",
|
|
@@ -1464,7 +1464,7 @@
|
|
|
1464
1464
|
"sourceMap": "",
|
|
1465
1465
|
"deployedSourceMap": "",
|
|
1466
1466
|
"source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.7.0 <0.9.0;\npragma experimental ABIEncoderV2;\n\nimport \"../WitnetUpgradableBase.sol\";\nimport \"../../WitnetOracle.sol\";\nimport \"../../WitnetRequestFactory.sol\";\nimport \"../../data/WitnetOracleDataLib.sol\";\nimport \"../../interfaces/IWitnetOracleReporter.sol\";\nimport \"../../interfaces/IWitnetRequestBoardAdminACLs.sol\";\nimport \"../../interfaces/IWitnetConsumer.sol\";\nimport \"../../libs/WitnetErrorsLib.sol\";\nimport \"../../patterns/Payable.sol\";\n\n/// @title Witnet Request Board \"trustable\" base implementation contract.\n/// @notice Contract to bridge requests to Witnet Decentralized Oracle Network.\n/// @dev This contract enables posting requests that Witnet bridges will insert into the Witnet network.\n/// The result of the requests will be posted back to this contract by the bridge nodes too.\n/// @author The Witnet Foundation\nabstract contract WitnetOracleTrustableBase\n is \n WitnetUpgradableBase,\n WitnetOracle,\n IWitnetOracleReporter,\n IWitnetRequestBoardAdminACLs,\n Payable \n{\n using Witnet for bytes;\n using Witnet for Witnet.Result;\n using WitnetCBOR for WitnetCBOR.CBOR;\n using WitnetV2 for WitnetV2.RadonSLA;\n using WitnetV2 for WitnetV2.Request;\n using WitnetV2 for WitnetV2.Response;\n\n bytes4 public immutable override specs = type(IWitnetOracle).interfaceId;\n WitnetRequestBytecodes immutable public override registry;\n \n WitnetRequestFactory immutable private __factory;\n\n modifier checkCallbackRecipient(address _addr, uint24 _callbackGasLimit) {\n _require(\n _addr.code.length > 0 && IWitnetConsumer(_addr).reportableFrom(address(this)) && _callbackGasLimit > 0,\n \"invalid callback\"\n ); _;\n }\n\n modifier checkReward(uint256 _baseFee) {\n _require(\n _getMsgValue() >= _baseFee, \n \"insufficient reward\"\n ); \n _require(\n _getMsgValue() <= _baseFee * 10,\n \"too much reward\"\n );\n _;\n }\n\n modifier checkSLA(WitnetV2.RadonSLA calldata sla) {\n _require(\n WitnetV2.isValid(sla), \n \"invalid SLA\"\n ); _;\n }\n\n /// Asserts the given query is currently in the given status.\n modifier inStatus(uint256 _queryId, WitnetV2.QueryStatus _status) {\n if (WitnetOracleDataLib.seekQueryStatus(_queryId) != _status) {\n _revert(WitnetOracleDataLib.notInStatusRevertMessage(_status));\n } else {\n _;\n }\n }\n\n /// Asserts the caller actually posted the referred query.\n modifier onlyRequester(uint256 _queryId) {\n _require(\n msg.sender == WitnetOracleDataLib.seekQueryRequest(_queryId).requester, \n \"not the requester\"\n ); _;\n }\n\n /// Asserts the caller is authorized as a reporter\n modifier onlyReporters {\n _require(\n __storage().reporters[msg.sender],\n \"unauthorized reporter\"\n );\n _;\n } \n \n constructor(\n WitnetRequestFactory _factory,\n WitnetRequestBytecodes _registry,\n bool _upgradable,\n bytes32 _versionTag,\n address _currency\n )\n Ownable(address(msg.sender))\n Payable(_currency)\n WitnetUpgradableBase(\n _upgradable,\n _versionTag,\n \"io.witnet.proxiable.board\"\n )\n {\n __factory = _factory;\n registry = _registry;\n }\n\n receive() external payable { \n _revert(\"no transfers accepted\");\n }\n\n /// @dev Provide backwards compatibility for dapps bound to versions <= 0.6.1\n /// @dev (i.e. calling methods in IWitnetOracle)\n /// @dev (Until 'function ... abi(...)' modifier is allegedly supported in solc versions >= 0.9.1)\n /* solhint-disable payable-fallback */\n /* solhint-disable no-complex-fallback */\n fallback() override external { \n _revert(string(abi.encodePacked(\n \"not implemented: 0x\",\n Witnet.toHexString(uint8(bytes1(msg.sig))),\n Witnet.toHexString(uint8(bytes1(msg.sig << 8))),\n Witnet.toHexString(uint8(bytes1(msg.sig << 16))),\n Witnet.toHexString(uint8(bytes1(msg.sig << 24)))\n )));\n }\n\n function channel() virtual override public view returns (bytes4) {\n return bytes4(keccak256(abi.encode(address(this), block.chainid)));\n }\n\n function class()\n public view\n virtual override(WitnetOracle, WitnetUpgradableBase) \n returns (string memory)\n {\n return type(WitnetOracleTrustableBase).name;\n }\n\n function factory() virtual override public view returns (WitnetRequestFactory) {\n return __factory;\n }\n\n \n // ================================================================================================================\n // --- Yet to be implemented virtual methods ----------------------------------------------------------------------\n\n /// @notice Estimate the minimum reward required for posting a data request.\n /// @dev Underestimates if the size of returned data is greater than `_resultMaxSize`. \n /// @param _gasPrice Expected gas price to pay upon posting the data request.\n /// @param _resultMaxSize Maximum expected size of returned data (in bytes).\n function estimateBaseFee(uint256 _gasPrice, uint16 _resultMaxSize) virtual public view returns (uint256); \n\n /// @notice Estimate the minimum reward required for posting a data request with a callback.\n /// @param _gasPrice Expected gas price to pay upon posting the data request.\n /// @param _callbackGasLimit Maximum gas to be spent when reporting the data request result.\n function estimateBaseFeeWithCallback(uint256 _gasPrice, uint24 _callbackGasLimit) virtual public view returns (uint256);\n\n \n // ================================================================================================================\n // --- Overrides 'Upgradeable' ------------------------------------------------------------------------------------\n\n /// @notice Re-initialize contract's storage context upon a new upgrade from a proxy.\n /// @dev Must fail when trying to upgrade to same logic contract more than once.\n function initialize(bytes memory _initData)\n public\n override\n {\n address _owner = owner();\n address[] memory _newReporters;\n\n if (_owner == address(0)) {\n // get owner (and reporters) from _initData\n bytes memory _newReportersRaw;\n (_owner, _newReportersRaw) = abi.decode(_initData, (address, bytes));\n _transferOwnership(_owner);\n _newReporters = abi.decode(_newReportersRaw, (address[]));\n } else {\n // only owner can initialize:\n _require(\n msg.sender == _owner,\n \"not the owner\"\n );\n // get reporters from _initData\n _newReporters = abi.decode(_initData, (address[]));\n }\n\n if (\n __proxiable().codehash != bytes32(0)\n && __proxiable().codehash == codehash()\n ) {\n _revert(\"already upgraded\");\n }\n __proxiable().codehash = codehash();\n\n _require(\n address(__factory).code.length > 0,\n \"inexistent factory\"\n );\n _require(\n __factory.specs() == type(IWitnetRequestFactory).interfaceId, \n \"uncompliant factory\"\n );\n _require(\n address(__factory.witnet()) == address(this) \n && address(__factory.registry()) == address(registry),\n \"discordant factory\"\n );\n\n // Set reporters, if any\n __setReporters(_newReporters);\n\n emit Upgraded(_owner, base(), codehash(), version());\n }\n\n /// Tells whether provided address could eventually upgrade the contract.\n function isUpgradableFrom(address _from) external view override returns (bool) {\n return (\n // false if the WRB is intrinsically not upgradable, or `_from` is no owner\n isUpgradable()\n && owner() == _from\n );\n }\n\n\n // ================================================================================================================\n // --- Partial implementation of IWitnetOracle --------------------------------------------------------------\n\n /// @notice Estimate the minimum reward required for posting a data request.\n /// @dev Underestimates if the size of returned data is greater than `resultMaxSize`. \n /// @param gasPrice Expected gas price to pay upon posting the data request.\n /// @param radHash The hash of some Witnet Data Request previously posted in the WitnetRequestBytecodes registry.\n function estimateBaseFee(uint256 gasPrice, bytes32 radHash)\n public view\n virtual override\n returns (uint256)\n {\n uint16 _resultMaxSize = registry.lookupRadonRequestResultMaxSize(radHash);\n _require(\n _resultMaxSize > 0, \n \"invalid RAD\"\n );\n return estimateBaseFee(\n gasPrice,\n _resultMaxSize\n );\n }\n\n /// Retrieves copy of all response data related to a previously posted request, removing the whole query from storage.\n /// @dev Fails if the `_witnetQueryId` is not in 'Reported' status, or called from an address different to\n /// @dev the one that actually posted the given request.\n /// @param _witnetQueryId The unique query identifier.\n function fetchQueryResponse(uint256 _witnetQueryId)\n virtual override\n external\n inStatus(_witnetQueryId, WitnetV2.QueryStatus.Finalized)\n onlyRequester(_witnetQueryId)\n returns (WitnetV2.Response memory _response)\n {\n _response = WitnetOracleDataLib.seekQuery(_witnetQueryId).response;\n delete __storage().queries[_witnetQueryId];\n }\n\n /// Gets the whole Query data contents, if any, no matter its current status.\n function getQuery(uint256 _witnetQueryId)\n public view\n virtual override\n returns (WitnetV2.Query memory)\n {\n return __storage().queries[_witnetQueryId];\n }\n\n /// @notice Gets the current EVM reward the report can claim, if not done yet.\n function getQueryEvmReward(uint256 _witnetQueryId) \n external view \n virtual override\n returns (uint256)\n {\n return __storage().queries[_witnetQueryId].request.evmReward;\n }\n\n /// @notice Retrieves the RAD hash and SLA parameters of the given query.\n /// @param _witnetQueryId The unique query identifier.\n function getQueryRequest(uint256 _witnetQueryId)\n external view \n override\n returns (WitnetV2.Request memory)\n {\n return WitnetOracleDataLib.seekQueryRequest(_witnetQueryId);\n }\n\n /// Retrieves the Witnet-provable result, and metadata, to a previously posted request. \n /// @dev Fails if the `_witnetQueryId` is not in 'Reported' status.\n /// @param _witnetQueryId The unique query identifier\n function getQueryResponse(uint256 _witnetQueryId)\n public view\n virtual override\n returns (WitnetV2.Response memory)\n {\n return WitnetOracleDataLib.seekQueryResponse(_witnetQueryId);\n }\n\n /// @notice Returns query's result current status from a requester's point of view:\n /// @notice - 0 => Void: the query is either non-existent or deleted;\n /// @notice - 1 => Awaiting: the query has not yet been reported;\n /// @notice - 2 => Ready: the query has been succesfully solved;\n /// @notice - 3 => Error: the query couldn't get solved due to some issue.\n /// @param _witnetQueryId The unique query identifier.\n function getQueryResponseStatus(uint256 _witnetQueryId)\n virtual override public view\n returns (WitnetV2.ResponseStatus)\n {\n return WitnetOracleDataLib.seekQueryResponseStatus(_witnetQueryId);\n }\n\n /// @notice Retrieves the CBOR-encoded buffer containing the Witnet-provided result to the given query.\n /// @param _witnetQueryId The unique query identifier.\n function getQueryResultCborBytes(uint256 _witnetQueryId) \n external view \n virtual override\n returns (bytes memory)\n {\n return WitnetOracleDataLib.seekQueryResponse(_witnetQueryId).resultCborBytes;\n }\n\n /// @notice Gets error code identifying some possible failure on the resolution of the given query.\n /// @param _witnetQueryId The unique query identifier.\n function getQueryResultError(uint256 _witnetQueryId)\n virtual override \n public view\n returns (Witnet.ResultError memory)\n {\n WitnetV2.ResponseStatus _status = WitnetOracleDataLib.seekQueryResponseStatus(_witnetQueryId);\n try WitnetErrorsLib.asResultError(_status, WitnetOracleDataLib.seekQueryResponse(_witnetQueryId).resultCborBytes)\n returns (Witnet.ResultError memory _resultError)\n {\n return _resultError;\n } \n catch Error(string memory _reason) {\n return Witnet.ResultError({\n code: Witnet.ResultErrorCodes.Unknown,\n reason: string(abi.encodePacked(\"WitnetErrorsLib: \", _reason))\n });\n }\n catch (bytes memory) {\n return Witnet.ResultError({\n code: Witnet.ResultErrorCodes.Unknown,\n reason: \"WitnetErrorsLib: assertion failed\"\n });\n }\n }\n\n /// Gets current status of given query.\n function getQueryStatus(uint256 _witnetQueryId)\n external view\n override\n returns (WitnetV2.QueryStatus)\n {\n return WitnetOracleDataLib.seekQueryStatus(_witnetQueryId);\n }\n\n function getQueryStatusBatch(uint256[] calldata _witnetQueryIds)\n external view\n override\n returns (WitnetV2.QueryStatus[] memory _status)\n {\n _status = new WitnetV2.QueryStatus[](_witnetQueryIds.length);\n for (uint _ix = 0; _ix < _witnetQueryIds.length; _ix ++) {\n _status[_ix] = WitnetOracleDataLib.seekQueryStatus(_witnetQueryIds[_ix]);\n }\n }\n\n /// @notice Returns next query id to be generated by the Witnet Request Board.\n function getNextQueryId()\n external view\n override\n returns (uint256)\n {\n return __storage().nonce + 1;\n }\n\n /// @notice Requests the execution of the given Witnet Data Request, in expectation that it will be relayed and \n /// @notice solved by the Witnet blockchain. A reward amount is escrowed by the Witnet Request Board that will be \n /// @notice transferred to the reporter who relays back the Witnet-provable result to this request.\n /// @dev Reasons to fail:\n /// @dev - the RAD hash was not previously verified by the WitnetRequestBytecodes registry;\n /// @dev - invalid SLA parameters were provided;\n /// @dev - insufficient value is paid as reward.\n /// @param _queryRAD The RAD hash of the data request to be solved by Witnet.\n /// @param _querySLA The data query SLA to be fulfilled on the Witnet blockchain.\n /// @return _witnetQueryId Unique query identifier.\n function postRequest(\n bytes32 _queryRAD, \n WitnetV2.RadonSLA calldata _querySLA\n )\n virtual override\n external payable\n checkReward(estimateBaseFee(_getGasPrice(), _queryRAD))\n checkSLA(_querySLA)\n returns (uint256 _witnetQueryId)\n {\n _witnetQueryId = __postRequest(_queryRAD, _querySLA, 0);\n // Let Web3 observers know that a new request has been posted\n emit WitnetQuery(\n _witnetQueryId, \n _getMsgValue(),\n _querySLA\n );\n }\n \n /// @notice Requests the execution of the given Witnet Data Request, in expectation that it will be relayed and solved by \n /// @notice the Witnet blockchain. A reward amount is escrowed by the Witnet Request Board that will be transferred to the \n /// @notice reporter who relays back the Witnet-provable result to this request. The Witnet-provable result will be reported\n /// @notice directly to the requesting contract. If the report callback fails for any reason, an `WitnetQueryResponseDeliveryFailed`\n /// @notice will be triggered, and the Witnet audit trail will be saved in storage, but not so the actual CBOR-encoded result.\n /// @dev Reasons to fail:\n /// @dev - the caller is not a contract implementing the IWitnetConsumer interface;\n /// @dev - the RAD hash was not previously verified by the WitnetRequestBytecodes registry;\n /// @dev - invalid SLA parameters were provided;\n /// @dev - zero callback gas limit is provided;\n /// @dev - insufficient value is paid as reward.\n /// @param _queryRAD The RAD hash of the data request to be solved by Witnet.\n /// @param _querySLA The data query SLA to be fulfilled on the Witnet blockchain.\n /// @param _queryCallbackGasLimit Maximum gas to be spent when reporting the data request result.\n /// @return _witnetQueryId Unique query identifier.\n function postRequestWithCallback(\n bytes32 _queryRAD, \n WitnetV2.RadonSLA calldata _querySLA,\n uint24 _queryCallbackGasLimit\n )\n virtual override\n external payable \n checkCallbackRecipient(msg.sender, _queryCallbackGasLimit)\n checkReward(estimateBaseFeeWithCallback(_getGasPrice(), _queryCallbackGasLimit))\n checkSLA(_querySLA)\n returns (uint256 _witnetQueryId)\n {\n _witnetQueryId = __postRequest(\n _queryRAD,\n _querySLA,\n _queryCallbackGasLimit\n );\n emit WitnetQuery(\n _witnetQueryId, \n _getMsgValue(),\n _querySLA\n );\n }\n\n /// @notice Requests the execution of the given Witnet Data Request, in expectation that it will be relayed and solved by \n /// @notice the Witnet blockchain. A reward amount is escrowed by the Witnet Request Board that will be transferred to the \n /// @notice reporter who relays back the Witnet-provable result to this request. The Witnet-provable result will be reported\n /// @notice directly to the requesting contract. If the report callback fails for any reason, a `WitnetQueryResponseDeliveryFailed`\n /// @notice event will be triggered, and the Witnet audit trail will be saved in storage, but not so the CBOR-encoded result.\n /// @dev Reasons to fail:\n /// @dev - the caller is not a contract implementing the IWitnetConsumer interface;\n /// @dev - the provided bytecode is empty;\n /// @dev - invalid SLA parameters were provided;\n /// @dev - zero callback gas limit is provided;\n /// @dev - insufficient value is paid as reward.\n /// @param _queryUnverifiedBytecode The (unverified) bytecode containing the actual data request to be solved by the Witnet blockchain.\n /// @param _querySLA The data query SLA to be fulfilled on the Witnet blockchain.\n /// @param _queryCallbackGasLimit Maximum gas to be spent when reporting the data request result.\n /// @return _witnetQueryId Unique query identifier.\n function postRequestWithCallback(\n bytes calldata _queryUnverifiedBytecode,\n WitnetV2.RadonSLA calldata _querySLA, \n uint24 _queryCallbackGasLimit\n )\n virtual override\n external payable \n checkCallbackRecipient(msg.sender, _queryCallbackGasLimit)\n checkReward(estimateBaseFeeWithCallback(_getGasPrice(), _queryCallbackGasLimit))\n checkSLA(_querySLA)\n returns (uint256 _witnetQueryId)\n {\n _witnetQueryId = __postRequest(\n bytes32(0),\n _querySLA,\n _queryCallbackGasLimit\n );\n WitnetOracleDataLib.seekQueryRequest(_witnetQueryId).witnetBytecode = _queryUnverifiedBytecode;\n emit WitnetQuery(\n _witnetQueryId,\n _getMsgValue(),\n _querySLA\n );\n }\n \n /// Increments the reward of a previously posted request by adding the transaction value to it.\n /// @dev Fails if the `_witnetQueryId` is not in 'Posted' status.\n /// @param _witnetQueryId The unique query identifier.\n function upgradeQueryEvmReward(uint256 _witnetQueryId)\n external payable\n virtual override \n inStatus(_witnetQueryId, WitnetV2.QueryStatus.Posted)\n {\n WitnetV2.Request storage __request = WitnetOracleDataLib.seekQueryRequest(_witnetQueryId);\n __request.evmReward += uint72(_getMsgValue());\n emit WitnetQueryRewardUpgraded(_witnetQueryId, __request.evmReward);\n }\n\n \n // ================================================================================================================\n // --- Full implementation of IWitnetOracleReporter ---------------------------------------------------------\n\n /// @notice Estimates the actual earnings (or loss), in WEI, that a reporter would get by reporting result to given query,\n /// @notice based on the gas price of the calling transaction. Data requesters should consider upgrading the reward on \n /// @notice queries providing no actual earnings.\n function estimateReportEarnings(\n uint256[] calldata _witnetQueryIds, \n bytes calldata,\n uint256 _txGasPrice,\n uint256 _nanoWitPrice\n )\n external view\n virtual override\n returns (uint256 _revenues, uint256 _expenses)\n {\n for (uint _ix = 0; _ix < _witnetQueryIds.length; _ix ++) {\n if (WitnetOracleDataLib.seekQueryStatus(_witnetQueryIds[_ix]) == WitnetV2.QueryStatus.Posted) {\n WitnetV2.Request storage __request = WitnetOracleDataLib.seekQueryRequest(_witnetQueryIds[_ix]);\n _revenues += __request.evmReward;\n if (__request.gasCallback > 0) {\n _expenses += estimateBaseFeeWithCallback(_txGasPrice, __request.gasCallback);\n } else {\n if (__request.witnetRAD != bytes32(0)) {\n _expenses += estimateBaseFee(_txGasPrice, __request.witnetRAD);\n } else {\n // todo: improve profit estimation accuracy if reporting on deleted query\n _expenses += estimateBaseFee(_txGasPrice, uint16(0)); \n }\n }\n _expenses += __request.witnetSLA.nanoWitTotalFee() * _nanoWitPrice;\n }\n }\n }\n\n /// @notice Retrieves the Witnet Data Request bytecodes and SLAs of previously posted queries.\n /// @dev Returns empty buffer if the query does not exist.\n /// @param _queryIds Query identifies.\n function extractWitnetDataRequests(uint256[] calldata _queryIds)\n external view \n virtual override\n returns (bytes[] memory _bytecodes)\n {\n return WitnetOracleDataLib.extractWitnetDataRequests(registry, _queryIds);\n }\n\n /// Reports the Witnet-provable result to a previously posted request. \n /// @dev Will assume `block.timestamp` as the timestamp at which the request was solved.\n /// @dev Fails if:\n /// @dev - the `_witnetQueryId` is not in 'Posted' status.\n /// @dev - provided `_witnetQueryResultTallyHash` is zero;\n /// @dev - length of provided `_result` is zero.\n /// @param _witnetQueryId The unique identifier of the data request.\n /// @param _witnetQueryResultTallyHash Hash of the commit/reveal witnessing act that took place in the Witnet blockahin.\n /// @param _witnetQueryResultCborBytes The result itself as bytes.\n function reportResult(\n uint256 _witnetQueryId,\n bytes32 _witnetQueryResultTallyHash,\n bytes calldata _witnetQueryResultCborBytes\n )\n external override\n onlyReporters\n inStatus(_witnetQueryId, WitnetV2.QueryStatus.Posted)\n returns (uint256)\n {\n // results cannot be empty:\n _require(\n _witnetQueryResultCborBytes.length != 0, \n \"result cannot be empty\"\n );\n // do actual report and return reward transfered to the reproter:\n // solhint-disable not-rely-on-time\n return __reportResultAndReward(\n _witnetQueryId,\n uint32(block.timestamp),\n _witnetQueryResultTallyHash,\n _witnetQueryResultCborBytes\n );\n }\n\n /// Reports the Witnet-provable result to a previously posted request.\n /// @dev Fails if:\n /// @dev - called from unauthorized address;\n /// @dev - the `_witnetQueryId` is not in 'Posted' status.\n /// @dev - provided `_witnetQueryResultTallyHash` is zero;\n /// @dev - length of provided `_witnetQueryResultCborBytes` is zero.\n /// @param _witnetQueryId The unique query identifier\n /// @param _witnetQueryResultTimestamp Timestamp at which the reported value was captured by the Witnet blockchain. \n /// @param _witnetQueryResultTallyHash Hash of the commit/reveal witnessing act that took place in the Witnet blockahin.\n /// @param _witnetQueryResultCborBytes The result itself as bytes.\n function reportResult(\n uint256 _witnetQueryId,\n uint32 _witnetQueryResultTimestamp,\n bytes32 _witnetQueryResultTallyHash,\n bytes calldata _witnetQueryResultCborBytes\n )\n external\n override\n onlyReporters\n inStatus(_witnetQueryId, WitnetV2.QueryStatus.Posted)\n returns (uint256)\n {\n // validate timestamp\n _require(\n _witnetQueryResultTimestamp > 0 \n && _witnetQueryResultTimestamp <= block.timestamp, \n \"bad timestamp\"\n );\n // results cannot be empty\n _require(\n _witnetQueryResultCborBytes.length != 0, \n \"result cannot be empty\"\n );\n // do actual report and return reward transfered to the reproter:\n return __reportResultAndReward(\n _witnetQueryId,\n _witnetQueryResultTimestamp,\n _witnetQueryResultTallyHash,\n _witnetQueryResultCborBytes\n );\n }\n\n /// @notice Reports Witnet-provided results to multiple requests within a single EVM tx.\n /// @notice Emits either a WitnetQueryResponse* or a BatchReportError event per batched report.\n /// @dev Fails only if called from unauthorized address.\n /// @param _batchResults Array of BatchResult structs, every one containing:\n /// - unique query identifier;\n /// - timestamp of the solving tally txs in Witnet. If zero is provided, EVM-timestamp will be used instead;\n /// - hash of the corresponding data request tx at the Witnet side-chain level;\n /// - data request result in raw bytes.\n function reportResultBatch(IWitnetOracleReporter.BatchResult[] calldata _batchResults)\n external override\n onlyReporters\n returns (uint256 _batchReward)\n {\n for ( uint _i = 0; _i < _batchResults.length; _i ++) {\n if (\n WitnetOracleDataLib.seekQueryStatus(_batchResults[_i].queryId)\n != WitnetV2.QueryStatus.Posted\n ) {\n emit BatchReportError(\n _batchResults[_i].queryId,\n WitnetOracleDataLib.notInStatusRevertMessage(WitnetV2.QueryStatus.Posted)\n );\n } else if (\n _batchResults[_i].queryResultTimestamp == 0\n || _batchResults[_i].queryResultCborBytes.length == 0\n ) {\n emit BatchReportError(\n _batchResults[_i].queryId, \n string(abi.encodePacked(\n class(),\n \": invalid report data\"\n ))\n );\n } else {\n _batchReward += __reportResult(\n _batchResults[_i].queryId,\n _batchResults[_i].queryResultTimestamp,\n _batchResults[_i].queryResultTallyHash,\n _batchResults[_i].queryResultCborBytes\n );\n }\n } \n // Transfer rewards to all reported results in one single transfer to the reporter:\n if (_batchReward > 0) {\n __safeTransferTo(\n payable(msg.sender),\n _batchReward\n );\n }\n }\n\n\n // ================================================================================================================\n // --- Full implementation of 'IWitnetRequestBoardAdminACLs' ------------------------------------------------------\n\n /// Tells whether given address is included in the active reporters control list.\n /// @param _reporter The address to be checked.\n function isReporter(address _reporter) public view override returns (bool) {\n return WitnetOracleDataLib.isReporter(_reporter);\n }\n\n /// Adds given addresses to the active reporters control list.\n /// @dev Can only be called from the owner address.\n /// @dev Emits the `ReportersSet` event. \n /// @param _reporters List of addresses to be added to the active reporters control list.\n function setReporters(address[] memory _reporters)\n public\n override\n onlyOwner\n {\n __setReporters(_reporters);\n }\n\n /// Removes given addresses from the active reporters control list.\n /// @dev Can only be called from the owner address.\n /// @dev Emits the `ReportersUnset` event. \n /// @param _exReporters List of addresses to be added to the active reporters control list.\n function unsetReporters(address[] memory _exReporters)\n public\n override\n onlyOwner\n {\n for (uint ix = 0; ix < _exReporters.length; ix ++) {\n address _reporter = _exReporters[ix];\n __storage().reporters[_reporter] = false;\n }\n emit ReportersUnset(_exReporters);\n }\n\n\n // ================================================================================================================\n // --- Internal functions -----------------------------------------------------------------------------------------\n\n function __newQueryId(bytes32 _queryRAD, bytes32 _querySLA)\n virtual internal view\n returns (uint256)\n {\n return uint(keccak256(abi.encode(\n channel(),\n block.number,\n msg.sender,\n _queryRAD,\n _querySLA\n )));\n }\n\n function __postRequest(bytes32 _radHash, WitnetV2.RadonSLA calldata _sla, uint24 _callbackGasLimit)\n virtual internal\n returns (uint256 _witnetQueryId)\n {\n _witnetQueryId = ++ __storage().nonce; //__newQueryId(_radHash, _packedSLA);\n WitnetV2.Request storage __request = WitnetOracleDataLib.seekQueryRequest(_witnetQueryId);\n _require(__request.requester == address(0), \"already posted\");\n {\n __request.requester = msg.sender;\n __request.gasCallback = _callbackGasLimit;\n __request.evmReward = uint72(_getMsgValue());\n __request.witnetRAD = _radHash;\n __request.witnetSLA = _sla;\n }\n }\n\n function __reportResult(\n uint256 _witnetQueryId,\n uint32 _witnetQueryResultTimestamp,\n bytes32 _witnetQueryResultTallyHash,\n bytes calldata _witnetQueryResultCborBytes\n )\n virtual internal\n returns (uint256 _evmReward)\n {\n // read requester address and whether a callback was requested:\n WitnetV2.Request storage __request = WitnetOracleDataLib.seekQueryRequest(_witnetQueryId);\n \n // read query EVM reward:\n _evmReward = __request.evmReward;\n \n // set EVM reward right now as to avoid re-entrancy attacks:\n __request.evmReward = 0; \n\n // determine whether a callback is required\n if (__request.gasCallback > 0) {\n (\n uint256 _evmCallbackActualGas,\n bool _evmCallbackSuccess,\n string memory _evmCallbackRevertMessage\n ) = __reportResultCallback(\n _witnetQueryId,\n _witnetQueryResultTimestamp,\n _witnetQueryResultTallyHash,\n _witnetQueryResultCborBytes,\n __request.requester,\n __request.gasCallback\n );\n if (_evmCallbackSuccess) {\n // => the callback run successfully\n emit WitnetQueryResponseDelivered(\n _witnetQueryId,\n _getGasPrice(),\n _evmCallbackActualGas\n );\n } else {\n // => the callback reverted\n emit WitnetQueryResponseDeliveryFailed(\n _witnetQueryId,\n _witnetQueryResultCborBytes,\n _getGasPrice(),\n _evmCallbackActualGas,\n bytes(_evmCallbackRevertMessage).length > 0 \n ? _evmCallbackRevertMessage\n : \"WitnetOracle: callback exceeded gas limit\"\n );\n }\n // upon delivery, successfull or not, the audit trail is saved into storage, \n // but not the actual result which was intended to be passed over to the requester:\n __writeQueryResponse(\n _witnetQueryId, \n _witnetQueryResultTimestamp, \n _witnetQueryResultTallyHash, \n hex\"\"\n );\n } else {\n // => no callback is involved\n emit WitnetQueryResponse(\n _witnetQueryId, \n _getGasPrice()\n );\n // write query result and audit trail data into storage \n __writeQueryResponse(\n _witnetQueryId,\n _witnetQueryResultTimestamp,\n _witnetQueryResultTallyHash,\n _witnetQueryResultCborBytes\n );\n }\n }\n\n function __reportResultAndReward(\n uint256 _witnetQueryId,\n uint32 _witnetQueryResultTimestamp,\n bytes32 _witnetQueryResultTallyHash,\n bytes calldata _witnetQueryResultCborBytes\n )\n virtual internal\n returns (uint256 _evmReward)\n {\n _evmReward = __reportResult(\n _witnetQueryId, \n _witnetQueryResultTimestamp, \n _witnetQueryResultTallyHash, \n _witnetQueryResultCborBytes\n );\n // transfer reward to reporter\n __safeTransferTo(\n payable(msg.sender),\n _evmReward\n );\n }\n\n function __reportResultCallback(\n uint256 _witnetQueryId,\n uint64 _witnetQueryResultTimestamp,\n bytes32 _witnetQueryResultTallyHash,\n bytes calldata _witnetQueryResultCborBytes,\n address _evmRequester,\n uint256 _evmCallbackGasLimit\n )\n virtual internal\n returns (\n uint256 _evmCallbackActualGas, \n bool _evmCallbackSuccess, \n string memory _evmCallbackRevertMessage\n )\n {\n _evmCallbackActualGas = gasleft();\n if (_witnetQueryResultCborBytes[0] == bytes1(0xd8)) {\n WitnetCBOR.CBOR[] memory _errors = WitnetCBOR.fromBytes(_witnetQueryResultCborBytes).readArray();\n if (_errors.length < 2) {\n // try to report result with unknown error:\n try IWitnetConsumer(_evmRequester).reportWitnetQueryError{gas: _evmCallbackGasLimit}(\n _witnetQueryId,\n _witnetQueryResultTimestamp,\n _witnetQueryResultTallyHash,\n block.number,\n Witnet.ResultErrorCodes.Unknown,\n WitnetCBOR.CBOR({\n buffer: WitnetBuffer.Buffer({ data: hex\"\", cursor: 0}),\n initialByte: 0,\n majorType: 0,\n additionalInformation: 0,\n len: 0,\n tag: 0\n })\n ) {\n _evmCallbackSuccess = true;\n } catch Error(string memory err) {\n _evmCallbackRevertMessage = err;\n }\n } else {\n // try to report result with parsable error:\n try IWitnetConsumer(_evmRequester).reportWitnetQueryError{gas: _evmCallbackGasLimit}(\n _witnetQueryId,\n _witnetQueryResultTimestamp,\n _witnetQueryResultTallyHash,\n block.number,\n Witnet.ResultErrorCodes(_errors[0].readUint()),\n _errors[0]\n ) {\n _evmCallbackSuccess = true;\n } catch Error(string memory err) {\n _evmCallbackRevertMessage = err; \n }\n }\n } else {\n // try to report result result with no error :\n try IWitnetConsumer(_evmRequester).reportWitnetQueryResult{gas: _evmCallbackGasLimit}(\n _witnetQueryId,\n _witnetQueryResultTimestamp,\n _witnetQueryResultTallyHash,\n block.number,\n WitnetCBOR.fromBytes(_witnetQueryResultCborBytes)\n ) {\n _evmCallbackSuccess = true;\n } catch Error(string memory err) {\n _evmCallbackRevertMessage = err;\n } catch (bytes memory) {}\n }\n _evmCallbackActualGas -= gasleft();\n }\n\n function __setReporters(address[] memory _reporters)\n virtual internal\n {\n for (uint ix = 0; ix < _reporters.length; ix ++) {\n address _reporter = _reporters[ix];\n __storage().reporters[_reporter] = true;\n }\n emit ReportersSet(_reporters);\n }\n\n /// Returns storage pointer to contents of 'WitnetBoardState' struct.\n function __storage() virtual internal pure returns (WitnetOracleDataLib.Storage storage _ptr) {\n return WitnetOracleDataLib.data();\n }\n\n function __writeQueryResponse(\n uint256 _witnetQueryId, \n uint32 _witnetQueryResultTimestamp, \n bytes32 _witnetQueryResultTallyHash, \n bytes memory _witnetQueryResultCborBytes\n )\n virtual internal\n {\n WitnetOracleDataLib.seekQuery(_witnetQueryId).response = WitnetV2.Response({\n reporter: msg.sender,\n finality: uint64(block.number),\n resultTimestamp: _witnetQueryResultTimestamp,\n resultTallyHash: _witnetQueryResultTallyHash,\n resultCborBytes: _witnetQueryResultCborBytes\n });\n }\n\n}",
|
|
1467
|
-
"sourcePath": "/home/
|
|
1467
|
+
"sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/core/defaults/WitnetOracleTrustableBase.sol",
|
|
1468
1468
|
"ast": {
|
|
1469
1469
|
"absolutePath": "project:/contracts/core/defaults/WitnetOracleTrustableBase.sol",
|
|
1470
1470
|
"exportedSymbols": {
|
|
@@ -27150,7 +27150,7 @@
|
|
|
27150
27150
|
},
|
|
27151
27151
|
"networks": {},
|
|
27152
27152
|
"schemaVersion": "3.4.16",
|
|
27153
|
-
"updatedAt": "2025-10-
|
|
27153
|
+
"updatedAt": "2025-10-15T18:03:23.670Z",
|
|
27154
27154
|
"devdoc": {
|
|
27155
27155
|
"author": "The Witnet Foundation",
|
|
27156
27156
|
"details": "This contract enables posting requests that Witnet bridges will insert into the Witnet network. The result of the requests will be posted back to this contract by the bridge nodes too.",
|
|
@@ -41350,7 +41350,7 @@
|
|
|
41350
41350
|
"sourceMap": "566:4305:37:-:0;;;653:10:28;617:46;;-1:-1:-1;;;1310:72:36;;1036:822:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1453:8;1476:9;1499:11;1525;1559:1;3269:9:36;3322:11;3347;670:279:28;;;;;;;;;;;;;;;;;817:11;3240:10:36;1297:1:1;-1:-1:-1;;;;;1273:26:1;:12;-1:-1:-1;;;;;1273:26:1;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:1;;1350:1;1322:31;;;1282:51:84;1255:18;;1322:31:1;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;1250:4:83;1265:13;;1288:27;;;;1857:1:4;2061:7;:21;844:40:28::1;::::0;;;;910:32;;::::1;::::0;;::::1;::::0;894:48:::1;::::0;-1:-1:-1;;;;;;332:28:80;;;;;3424:20:36;;::::3;;::::0;-1:-1:-1;;;3454:20:36::3;;::::0;1589:44:37::1;::::0;;;;1643:68:::1;::::0;;;;1721:80:::1;::::0;1811:40:::1;::::0;-1:-1:-1;566:4305:37;;-1:-1:-1;;;566:4305:37;1437:153:79;1526:13;1519:20;;-1:-1:-1;;;;;;1519:20:79;;;1549:34;1574:8;1549:24;:34::i;:::-;1437:153;:::o;2912:187:1:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:1;;;-1:-1:-1;;;;;;3020:17:1;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:153:84:-;-1:-1:-1;;;;;111:31:84;;101:42;;91:70;;157:1;154;147:12;172:959;360:6;368;376;384;392;400;408;416;469:3;457:9;448:7;444:23;440:33;437:53;;;486:1;483;476:12;437:53;518:9;512:16;537:53;584:5;537:53;:::i;:::-;659:2;644:18;;638:25;609:5;;-1:-1:-1;672:55:84;638:25;672:55;:::i;:::-;798:2;783:18;;777:25;746:7;;-1:-1:-1;840:15:84;;833:23;821:36;;811:64;;871:1;868;861:12;811:64;941:2;926:18;;920:25;985:3;970:19;;964:26;1030:3;1015:19;;1009:26;1075:3;1060:19;;1054:26;1120:3;1105:19;;;1099:26;172:959;;;;-1:-1:-1;894:7:84;;920:25;;964:26;;1009;;-1:-1:-1;1054:26:84;;-1:-1:-1;1099:26:84;-1:-1:-1;172:959:84;-1:-1:-1;;;172:959:84:o;1136:203::-;566:4305:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
|
|
41351
41351
|
"deployedSourceMap": "566:4305:37:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3525:32:36;;;;;;;;;;;;;;-1:-1:-1;;;3525:32:36;;;:7;:32::i;:::-;566:4305:37;;;;;;;;;;;-1:-1:-1;3937:319:36;4017:42;4049:7;;4036:22;;4017:18;:42::i;:::-;4073:47;4092:27;4105:7;;4092:27;;;4073:18;:47::i;:::-;4134:48;4153:28;4166:7;;4153:28;;;4134:18;:48::i;:::-;4196;4215:28;4228:7;;4215:28;;;4196:18;:48::i;:::-;3952:302;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3937:7;:319::i;28848:140::-;;;;;;;;;;-1:-1:-1;28848:140:36;;;;;:::i;:::-;;:::i;:::-;;;1899:14:84;;1892:22;1874:41;;1862:2;1847:18;28848:140:36;;;;;;;;3077:896:37;;;;;;;;;;-1:-1:-1;3077:896:37;;;;;:::i;:::-;;:::i;:::-;;;2495:25:84;;;2483:2;2468:18;3077:896:37;2349:177:84;26837:1625:36;;;;;;;;;;-1:-1:-1;26837:1625:36;;;;;:::i;:::-;;:::i;9563:389::-;;;;;;;;;;-1:-1:-1;9563:389:36;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10663:211::-;;;;;;;;;;-1:-1:-1;10663:211:36;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11778:222::-;;;;;;;;;;-1:-1:-1;11778:222:36;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;29683:334::-;;;;;;;;;;-1:-1:-1;29683:334:36;;;;;:::i;:::-;;:::i;15223:558::-;;;;;;:::i;:::-;;:::i;6259:1577::-;;;;;;;;;;-1:-1:-1;6259:1577:36;;;;;:::i;:::-;;:::i;22765:251::-;;;;;;;;;;-1:-1:-1;22765:251:36;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;29257:148::-;;;;;;;;;;-1:-1:-1;29257:148:36;;;;;:::i;:::-;;:::i;1433:75:83:-;;;;;;;;;;-1:-1:-1;1496:5:83;1433:75;;;-1:-1:-1;;;;;10568:32:84;;;10550:51;;10538:2;10523:18;1433:75:83;10404:203:84;1748:47:28;;;;;;;;;;;;;;;1874:86:83;;;;;;;;;;-1:-1:-1;1942:11:83;1874:86;;2118:133:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13788:404:36:-;;;;;;;;;;-1:-1:-1;13788:404:36;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;23662:791::-;;;;;;;;;;-1:-1:-1;23662:791:36;;;;;:::i;:::-;;:::i;7920:265::-;;;;;;;;;;-1:-1:-1;7920:265:36;;;;;:::i;:::-;;:::i;13577:205::-;;;;;;;;;;-1:-1:-1;13577:205:36;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10313:207::-;;;;;;;;;;-1:-1:-1;10313:207:36;;;;;:::i;:::-;10430:7;10460:35;;;-1:-1:-1;;;;;;;;;;;10460:35:36;;;;;:53;-1:-1:-1;;;10460:53:36;;-1:-1:-1;;;;;10460:53:36;;10313:207;2293:101:1;;;;;;;;;;;;;:::i;1670:239:79:-;;;;;;;;;;;;;:::i;1388:57:36:-;;;;;;;;;;;;;;;4269:148;;;;;;;;;;-1:-1:-1;4368:40:36;;;4387:4;4368:40;;;;30249:51:84;;;;4394:13:36;30316:18:84;;;30309:34;4368:40:36;;;;;;;;;30222:18:84;;;;4368:40:36;;;4358:51;;;;;4269:148;;;-1:-1:-1;;;;;;13358:33:84;;;13340:52;;13328:2;13313:18;4269:148:36;13196:202:84;2436:359:37;;;;;;;;;;-1:-1:-1;2436:359:37;;;;;:::i;:::-;;:::i;12173:234:36:-;;;;;;;;;;-1:-1:-1;12173:234:36;;;;;:::i;:::-;;:::i;1638:85:1:-;;;;;;;;;;-1:-1:-1;1684:7:1;1710:6;-1:-1:-1;;;;;1710:6:1;1638:85;;21240:1314:36;;;;;;;;;;-1:-1:-1;21240:1314:36;;;;;:::i;:::-;;:::i;:::-;;;;15146:25:84;;;15202:2;15187:18;;15180:34;;;;15119:18;21240:1314:36;14972:248:84;8798:405:36;;;;;;;;;;-1:-1:-1;8798:405:36;;;;;:::i;:::-;;:::i;19207:830::-;;;;;;:::i;:::-;;:::i;12576:951::-;;;;;;;;;;-1:-1:-1;12576:951:36;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1611:171:83:-;;;;;;;;;;-1:-1:-1;1697:5:83;1748:18;1611:171;;1310:72:36;;;;;;;;;;;;;;;10040:184;;;;;;;;;;-1:-1:-1;10040:184:36;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;25180:1008::-;;;;;;;;;;-1:-1:-1;25180:1008:36;;;;;:::i;:::-;;:::i;652:133:37:-;;;;;;;;;;;;;:::i;4624:112:36:-;;;;;;;;;;-1:-1:-1;4720:9:36;4624:112;;14281:140;;;;;;;;;;;;;:::i;617:46:28:-;;;;;;;;;;;;;;;783:99:79;;;;;;;;;;-1:-1:-1;862:13:79;;-1:-1:-1;;;;;862:13:79;783:99;;155:32:80;;;;;;;;;;;;;;;17140:704:36;;;;;;:::i;:::-;;:::i;20274:415::-;;;;;;:::i;:::-;;:::i;1075:178:79:-;;;;;;;;;;-1:-1:-1;1075:178:79;;;;;:::i;:::-;;:::i;11106:219:36:-;;;;;;;;;;-1:-1:-1;11106:219:36;;;;;:::i;:::-;;:::i;2700:225:28:-;2838:7;:5;:7::i;:::-;2885:8;2804:103;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2804:103:28;;;;;;;;;;-1:-1:-1;;;2777:141:28;;;;;;;:::i;:::-;;;;;;;;19497:383:64;19614:12;;;19624:1;19614:12;;;;;;;;;19567:13;;19596:15;;19614:12;;;;;;;;;;;-1:-1:-1;;19596:30:64;-1:-1:-1;19636:8:64;19653:7;19658:2;19653;:7;:::i;:::-;19647:19;;19664:2;19647:19;:::i;:::-;19636:30;-1:-1:-1;19676:8:64;19693:7;19698:2;19693;:7;:::i;:::-;19687:19;;19704:2;19687:19;:::i;:::-;19676:30;;19725:2;19720;:7;;;19716:32;;;19741:7;19747:1;19741:7;;:::i;:::-;;;19716:32;19767:2;19762;:7;;;19758:32;;;19783:7;19789:1;19783:7;;:::i;:::-;;;19758:32;19815:2;19808:10;;19800:2;19803:1;19800:5;;;;;;;;:::i;:::-;;;;:18;-1:-1:-1;;;;;19800:18:64;;;;;;;;;19843:2;19836:10;;19828:2;19831:1;19828:5;;;;;;;;:::i;:::-;;;;:18;-1:-1:-1;;;;;19828:18:64;;;;;;;;-1:-1:-1;19870:2:64;;19497:383;-1:-1:-1;;;;19497:383:64:o;28848:140:36:-;-1:-1:-1;;;;;1197:22:41;;28917:4:36;1197:22:41;;;:16;:22;;;;;;;;28940:41:36;28933:48;28848:140;-1:-1:-1;;28848:140:36:o;3077:896:37:-;3221:7;;3361:23;3365:19;3361:1;:23;:::i;:::-;3303:81;;:39;:81;:::i;:::-;3244:150;;3441:37;3421:17;:57;;;:170;;;-1:-1:-1;3554:37:37;3498:53;;;;:33;:53;:::i;:::-;:93;3421:170;3404:563;;;3641:69;3673:37;3641:9;:69;:::i;:::-;3616:108;;;;;3404:563;3839:81;;;;:33;:81;:::i;:::-;3780:162;;:9;:162;:::i;3404:563::-;3234:739;3077:896;;;;:::o;26837:1625:36:-;26989:20;2880:102;-1:-1:-1;;;;;;;;;;;2902:11:36;2924:10;2902:33;;;;:21;;;;;:33;;;;;;;;;;2880:102;;;;;;;;;;;-1:-1:-1;;;2880:102:36;;;;;;;2902:33;;;2880:8;:102::i;:::-;27031:7:::1;27025:1183;27044:25:::0;;::::1;27025:1183;;;27199:27;27113:62;27149:13;;27163:2;27149:17;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:25;27113:35;:62::i;:::-;:113;;;;;;;;:::i;:::-;;27092:1106;;27264:176;27302:13;;27316:2;27302:17;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;27349:73;::::0;-1:-1:-1;;;27349:73:36;;27302:25;::::1;::::0;27349:19:::1;::::0;:44:::1;::::0;:73:::1;::::0;27394:27:::1;::::0;27349:73:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;27349:73:36::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;27264:176;;;;;;;:::i;:::-;;;;;;;;27092:1106;;;27482:13;;27496:2;27482:17;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:38;::::0;;;;;::::1;;;:::i;:::-;:43;;::::0;;:117:::1;;;27549:13;;27563:2;27549:17;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:38;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;:50:::0;;-1:-1:-1;27482:117:36::1;27461:737;;;27637:232;27675:13;;27689:2;27675:17;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:25;27772:7;:5;:7::i;:::-;27730:120;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;27730:120:36;;::::1;::::0;;;;;;;27637:232:::1;::::0;;::::1;:::i;27461:737::-;27924:259;27960:13;;27974:2;27960:17;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:25;28007:13:::0;;28021:2;28007:17;;::::1;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:38;::::0;;;;;::::1;;;:::i;:::-;28067:13;;28081:2;28067:17;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:38;;;28127:13;;28141:2;28127:17;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:38;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;27924:14;:259::i;:::-;27908:275;::::0;;::::1;:::i;:::-;;;27461:737;27071:5;;27025:1183;;;-1:-1:-1::0;28316:16:36;;28312:144:::1;;28348:97;28390:10;28419:12;28348:16;:97::i;9563:389::-:0;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9674:14:36;9690:30;;2349:45;2385:8;2349:35;:45::i;:::-;:56;;;;;;;;:::i;:::-;;2345:169;;2425:53;;-1:-1:-1;;;2425:53:36;;2417:62;;2425:19;;:44;;:53;;2470:7;;2425:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2425:53:36;;;;;;;;;;;;:::i;:::-;2417:7;:62::i;:::-;2345:169;;;9744:14:::1;2640:136;2676:46;2713:8;2676:36;:46::i;:::-;:56:::0;2640:136:::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;2640:136:36::1;::::0;::::1;::::0;-1:-1:-1;;;;;2676:56:36;;::::1;2662:10;:70;::::0;2640:8:::1;:136::i;:::-;9839:45:::2;9869:14;9839:29;:45::i;:::-;9827:66;::::0;;::::2;::::0;::::2;::::0;;9839:54:::2;::::0;::::2;9827:66:::0;;-1:-1:-1;;;;;9827:66:36;::::2;::::0;;-1:-1:-1;;;9827:66:36;::::2;-1:-1:-1::0;;;;;9827:66:36::2;;::::0;::::2;::::0;-1:-1:-1;;;9827:66:36;::::2;;;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;::::2;::::0;::::2;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;9910:11;-1:-1:-1::0;;;;;;;;;;;1067:28:41;2118:133:28;9910:11:36::2;:35;::::0;;;:19:::2;::::0;;::::2;:35;::::0;;;;9903:42;;;9910:35;;;;;9903:42:::2;::::0;;::::2;9910:35:::0;9903:42:::2;:::i;:::-;-1:-1:-1::0;9903:42:36::2;;::::0;::::2;::::0;;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;9903:42:36;;;::::2;::::0;::::2;::::0;;;;;;;;;;::::2;::::0;;;;::::2;:::i;:::-;;;;;2504:1:::1;2345:169:::0;9563:389;;;;;:::o;10663:211::-;10769:23;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10769:23:36;10815:52;10852:14;10815:36;:52::i;:::-;10808:59;;;;;;;;;;-1:-1:-1;;;;;10808:59:36;;;;-1:-1:-1;;;10808:59:36;;;;;;;;-1:-1:-1;;;10808:59:36;;-1:-1:-1;;;;;10808:59:36;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10808:59:36;;;-1:-1:-1;;10808:59:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10808:59:36;;;;;;;;;;;;-1:-1:-1;;10663:211:36:o;11778:222::-;11888:23;11934:59;11978:14;11934:43;:59::i;29683:334::-;1531:13:1;:11;:13::i;:::-;29807:7:36::1;29802:166;29825:12;:19;29820:2;:24;29802:166;;;29867:17;29887:12;29900:2;29887:16;;;;;;;;:::i;:::-;;;;;;;29867:36;;29952:5;29917:11;-1:-1:-1::0;;;;;;;;;;;1067:28:41;2118:133:28;29917:11:36::1;-1:-1:-1::0;;;;;29917:32:36;;;::::1;;::::0;;;:21:::1;::::0;;::::1;:32;::::0;;;;;:40;;-1:-1:-1;;29917:40:36::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;29846:5:36::1;29802:166;;;;29982:28;29997:12;29982:28;;;;;;:::i;:::-;;;;;;;;29683:334:::0;:::o;15223:558::-;15495:22;15406:42;4379:11:37;15438:9:36;15406:15;:42::i;:::-;1825:94;1865:8;4557:9:37;1847:14:36;:26;;1825:94;;;;;;;;;;;;;-1:-1:-1;;;1825:94:36;;;:8;:94::i;:::-;1930;1970:13;:8;1981:2;1970:13;:::i;:::-;4557:9:37;1952:31:36;;1930:94;;;;;;;;;;;;;-1:-1:-1;;;1930:94:36;;;:8;:94::i;:::-;15467:9:::1;2108:81;2130:21;2147:3;2130:16;:21::i;:::-;2108:81;;;;;;;;;;;;;-1:-1:-1::0;;;2108:81:36::1;;::::0;:8:::1;:81::i;:::-;15550:38:::2;15564:9;15575;15586:1;15550:13;:38::i;:::-;15533:55:::0;-1:-1:-1;15673:101:36::2;15533:55:::0;4557:9:37;15755::36::2;15673:101;;;;;;;;:::i;:::-;;;;;;;;2034:1:::1;15223:558:::0;;;;;:::o;6259:1577::-;6349:14;1710:6:1;-1:-1:-1;;;;;1710:6:1;6383:30:36;1710:6:1;6424:603:36;;6520:29;6603:9;6592:39;;;;;;;;;;;;:::i;:::-;6563:68;;-1:-1:-1;6563:68:36;-1:-1:-1;6645:26:36;6563:68;6645:18;:26::i;:::-;6712:16;6701:41;;;;;;;;;;;;:::i;:::-;6685:57;;6450:303;6424:603;;;6815:93;6855:6;-1:-1:-1;;;;;6841:20:36;:10;-1:-1:-1;;;;;6841:20:36;;6815:93;;;;;;;;;;;;;-1:-1:-1;;;6815:93:36;;;:8;:93::i;:::-;6993:9;6982:34;;;;;;;;;;;;:::i;:::-;6966:50;;6424:603;7054:22;;:36;;;;:92;;-1:-1:-1;7110:22:36;;1697:5:83;1748:18;7110:36:36;7054:92;7037:172;;;7171:27;;;;;;;;;;;;;;-1:-1:-1;;;7171:27:36;;;:7;:27::i;:::-;1697:5:83;1748:18;7218:22:36;:35;7264:100;;;;;;;;;;;;-1:-1:-1;;;7264:100:36;;;;;;7294:9;-1:-1:-1;;;;;7286:30:36;;:34;;;7264:8;:100::i;:::-;7374:128;-1:-1:-1;;;;;;;;7396:60:36;;:9;-1:-1:-1;;;;;7396:15:36;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7396:60:36;;;7374:128;;;;;;;;;;;;;-1:-1:-1;;;7374:128:36;;;:8;:128::i;:::-;7512:181;7573:4;-1:-1:-1;;;;;7534:44:36;7542:9;-1:-1:-1;;;;;7542:16:36;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7534:44:36;;:115;;;;;7640:8;-1:-1:-1;;;;;7599:50:36;7607:9;-1:-1:-1;;;;;7607:18:36;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7599:50:36;;7534:115;7512:181;;;;;;;;;;;;;-1:-1:-1;;;7512:181:36;;;:8;:181::i;:::-;7737:29;7752:13;7737:14;:29::i;:::-;1697:5:83;1748:18;1496:5;-1:-1:-1;;;;;7782:47:36;7791:6;-1:-1:-1;;;;;7782:47:36;;7819:9;:7;:9::i;:::-;7782:47;;;;;;:::i;:::-;;;;;;;;6339:1497;;6259:1577;:::o;22765:251::-;22943:66;;-1:-1:-1;;;22943:66:36;;22895:25;;22943:19;;:45;;:66;;22989:8;;22999:9;;;;22943:66;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22943:66:36;;;;;;;;;;;;:::i;:::-;22936:73;22765:251;-1:-1:-1;;;22765:251:36:o;29257:148::-;1531:13:1;:11;:13::i;:::-;29372:26:36::1;29387:10;29372:14;:26::i;:::-;29257:148:::0;:::o;2118:133:28:-;2175:13;2207:37;2217:26;2207:9;:37::i;:::-;2200:44;;2118:133;:::o;13788:404:36:-;13909:37;13999:15;-1:-1:-1;;;;;13972:50:36;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13972:50:36;;13962:60;;14037:8;14032:154;14051:28;;;14032:154;;;14118:57;14154:15;;14170:3;14154:20;;;;;;;:::i;:::-;;;;;;;14118:35;:57::i;:::-;14103:7;14111:3;14103:12;;;;;;;;:::i;:::-;;;;;;:72;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;14081:6:36;;14032:154;;23662:791;23962:7;2880:102;-1:-1:-1;;;;;;;;;;;2902:11:36;2118:133:28;2880:102:36;23900:14;23916:27:::1;::::0;2349:45:::1;2385:8;2349:35;:45::i;:::-;:56;;;;;;;;:::i;:::-;;2345:169;;2425:53;::::0;-1:-1:-1;;;2425:53:36;;2417:62:::1;::::0;2425:19:::1;::::0;:44:::1;::::0;:53:::1;::::0;2470:7;;2425:53:::1;;;:::i;2417:62::-;2345:169;;;24021:110:::2;::::0;;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;;24021:110:36::2;::::0;::::2;::::0;::::2;::::0;24043:39;;::::2;::::0;24021:8:::2;:110::i;:::-;24266:180;24303:14;24338:15;24368:27;24409;;24266:23;:180::i;:::-;24259:187;;2504:1;2992::::1;;23662:791:::0;;;;;;:::o;7920:265::-;7993:4;1942:11:83;8118:50:36;;;;;8163:5;-1:-1:-1;;;;;8152:16:36;:7;1684::1;1710:6;-1:-1:-1;;;;;1710:6:1;;1638:85;8152:7:36;-1:-1:-1;;;;;8152:16:36;;8009:169;7920:265;-1:-1:-1;;7920:265:36:o;13577:205::-;13681:20;13724:51;13760:14;13724:35;:51::i;2293:101:1:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1670:239:79:-;862:13;;735:10:3;;-1:-1:-1;;;;;862:13:79;1765:24;;1761:106;;1805:51;;-1:-1:-1;;;1805:51:79;;29867:2:84;1805:51:79;;;29849:21:84;29906:2;29886:18;;;29879:30;29945:34;29925:18;;;29918:62;-1:-1:-1;;;29996:18:84;;;29989:39;30045:19;;1805:51:79;29665:405:84;1761:106:79;1876:26;1895:6;1876:18;:26::i;2436:359:37:-;2565:7;2758:2;2710:19;;;;:44;;2736:18;2753:1;2736:14;:18;:::i;:::-;2710:44;;;2732:1;2710:44;2709:51;;;;:::i;:::-;2705:55;;:1;:55;:::i;:::-;2661:117;;;;:19;:117;:::i;:::-;2621:157;;:21;:157;:::i;:::-;2595:193;;:9;:193;:::i;12173:234:36:-;12296:12;12331:53;12369:14;12331:37;:53::i;:::-;:69;;12324:76;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12173:234;;;:::o;21240:1314::-;21491:17;21510;21548:8;21543:1005;21562:28;;;21543:1005;;;21679:27;21618:57;21654:15;;21670:3;21654:20;;;;;;;:::i;21618:57::-;:88;;;;;;;;:::i;:::-;;21614:924;;21726:34;21763:58;21800:15;;21816:3;21800:20;;;;;;;:::i;:::-;;;;;;;21763:36;:58::i;:::-;21852:19;;;;-1:-1:-1;21839:32:36;;-1:-1:-1;;;21852:19:36;;-1:-1:-1;;;;;21852:19:36;21839:32;;:::i;:::-;21893:21;;21839:32;;-1:-1:-1;;;;21893:21:36;;;;:25;21889:550;;21996:21;;21955:63;;21983:11;;-1:-1:-1;;;21996:21:36;;;;21955:27;:63::i;:::-;21942:76;;;;:::i;:::-;;;21889:550;;;22069:19;;;;:33;22065:356;;22143:49;22159:11;22172:9;:19;;;22143:15;:49::i;22065:356::-;22358:39;22374:11;22394:1;22358:15;:39::i;:::-;22345:52;;;;:::i;:::-;;;22065:356;22510:13;22470:37;:9;:19;;:35;:37::i;:::-;-1:-1:-1;;;;;22470:53:36;;;;;:::i;:::-;22456:67;;;;:::i;:::-;;;21708:830;21614:924;21592:6;;21543:1005;;;;21240:1314;;;;;;;;;:::o;8798:405::-;8967:49;;-1:-1:-1;;;8967:49:36;;;;;2495:25:84;;;8920:7:36;;;;-1:-1:-1;;;;;8967:8:36;:40;;;;2468:18:84;;8967:49:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8943:73;;9026:78;9065:1;9048:14;:18;;;9026:78;;;;;;;;;;;;;-1:-1:-1;;;9026:78:36;;;:8;:78::i;:::-;9121:75;9150:8;9172:14;9121:15;:75::i;:::-;9114:82;8798:405;-1:-1:-1;;;;8798:405:36:o;19207:830::-;19650:22;19479:10;19491:22;1594:166;1616:17;;:21;;;;:77;;-1:-1:-1;1641:52:36;;-1:-1:-1;;;1641:52:36;;1687:4;1641:52;;;10550:51:84;-1:-1:-1;;;;;1641:37:36;;;;;10523:18:84;;1641:52:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1616:102;;;;;1717:1;1697:17;:21;;;1616:102;1594:166;;;;;;;;;;;;;-1:-1:-1;;;1594:166:36;;;:8;:166::i;:::-;19535:68:::1;4379:11:37::0;19563:14:36::1;19580:22;19535:27;:68::i;:::-;1825:94;1865:8:::0;4557:9:37;1847:14:36::1;4439:134:37::0;1825:94:36::1;1930;1970:13;:8:::0;1981:2:::1;1970:13;:::i;1930:94::-;19622:9:::2;2108:81;2130:21;2147:3;2130:16;:21::i;2108:81::-;19705:106:::3;19740:1;19756:9:::0;19779:22;19705:13:::3;:106::i;:::-;19688:123;;19891:24;;19821:52;19858:14;19821:36;:52::i;:::-;:67;;::::0;:94:::3;::::0;;:67;:94:::3;:::i;:::-;-1:-1:-1::0;19930:100:36::3;19955:14:::0;4557:9:37;20011::36::3;19930:100;;;;;;;;:::i;:::-;;;;;;;;2034:1:::2;1762::::1;19207:830:::0;;;;;;;;:::o;12576:951::-;-1:-1:-1;;;;;;;;;;;;;;;;;12733:31:36;12767:59;12811:14;12767:43;:59::i;:::-;12733:93;;12840:15;:29;12870:7;12879:53;12917:14;12879:37;:53::i;:::-;:69;;12840:109;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12840:109:36;;;;;;;;;;;;:::i;:::-;;;12836:685;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13129:169;;;;;;;;;;-1:-1:-1;13129:169:36;;;;13274:7;13236:46;;;;;;;;:::i;:::-;;;;-1:-1:-1;;13236:46:36;;;;;;;;;13129:169;;13122:176;12576:951;-1:-1:-1;;;;12576:951:36:o;12836:685::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13360:150:36;;;;;;;;;;-1:-1:-1;13360:150:36;;;;;;;;;;;;;;;;;;;;;;;13353:157;12576:951;-1:-1:-1;;;;12576:951:36:o;12836:685::-;12723:804;12576:951;;;:::o;10040:184::-;10138:21;;:::i;:::-;10182:35;;;;-1:-1:-1;;;;;;;;;;;10182:35:36;;;;;;;10175:42;;;;;;;;;-1:-1:-1;;;;;10175:42:36;;;;;;;;-1:-1:-1;;;10175:42:36;;;;;;;;-1:-1:-1;;;10175:42:36;;-1:-1:-1;;;;;10175:42:36;;;;;10182:19;10175:42;;;;;;;;;;10182:35;;10175:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10175:42:36;;;-1:-1:-1;;10175:42:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10175:42:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10175:42:36;;;;-1:-1:-1;;;10175:42:36;;;;;;;;;-1:-1:-1;;;10175:42:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10175:42:36;;;;-1:-1:-1;;;10175:42:36;;-1:-1:-1;10175:42:36;10040:184;-1:-1:-1;;10040:184:36:o;25180:1008::-;25537:7;2880:102;-1:-1:-1;;;;;;;;;;;2902:11:36;2118:133:28;2880:102:36;25475:14;25491:27:::1;::::0;2349:45:::1;2385:8;2349:35;:45::i;:::-;:56;;;;;;;;:::i;:::-;;2345:169;;2425:53;::::0;-1:-1:-1;;;2425:53:36;;2417:62:::1;::::0;2425:19:::1;::::0;:44:::1;::::0;:53:::1;::::0;2470:7;;2425:53:::1;;;:::i;2417:62::-;2345:169;;;25590:160:::2;25642:1;25612:27;:31;;;:98;;;;;25695:15;25664:27;:46;;;;25612:98;25590:160;;;;;;;;;;;;;-1:-1:-1::0;;;25590:160:36::2;;::::0;:8:::2;:160::i;:::-;25795:110;::::0;;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;;25795:110:36::2;::::0;::::2;::::0;::::2;::::0;25817:39;;::::2;::::0;25795:8:::2;:110::i;:::-;25997:184;26034:14;26062:27;26103;26144;;25997:23;:184::i;:::-;25989:192;;2504:1;2992::::1;;25180:1008:::0;;;;;;;:::o;652:133:37:-;739:39;;;;;;;;;;;;;;;;;;652:133::o;14281:140:36:-;14363:7;-1:-1:-1;;;;;;;;;;;14393:17:36;:21;;14413:1;14393:21;:::i;17140:704::-;17561:22;17390:10;17402:22;1594:166;1616:17;;:21;;;;:77;;-1:-1:-1;1641:52:36;;-1:-1:-1;;;1641:52:36;;1687:4;1641:52;;;10550:51:84;-1:-1:-1;;;;;1641:37:36;;;;;10523:18:84;;1641:52:36;10404:203:84;1594:166:36;17446:68:::1;4379:11:37::0;17474:14:36::1;4261:136:37::0;17446:68:36::1;1825:94;1865:8:::0;4557:9:37;1847:14:36::1;4439:134:37::0;1825:94:36::1;1930;1970:13;:8:::0;1981:2:::1;1970:13;:::i;1930:94::-;17533:9:::2;2108:81;2130:21;2147:3;2130:16;:21::i;2108:81::-;17616:105:::3;17643:9;17666;17689:22;17616:13;:105::i;:::-;17599:122:::0;-1:-1:-1;17736:101:36::3;17599:122:::0;4557:9:37;17818::36::3;17736:101;;;;;;;;:::i;:::-;;;;;;;;2034:1:::2;1762::::1;17140:704:::0;;;;;;;:::o;20274:415::-;20402:14;20418:27;;2349:45;2385:8;2349:35;:45::i;:::-;:56;;;;;;;;:::i;:::-;;2345:169;;2425:53;;-1:-1:-1;;;2425:53:36;;2417:62;;2425:19;;:44;;:53;;2470:7;;2425:53;;;:::i;2417:62::-;20274:415;;;:::o;2345:169::-;20461:34:::1;20498:52;20535:14;20498:36;:52::i;:::-;20461:89:::0;-1:-1:-1;4557:9:37;20560:45:36;;;;:19:::1;::::0;:45:::1;::::0;;;-1:-1:-1;;;20560:45:36;::::1;-1:-1:-1::0;;;;;20560:45:36::1;;:::i;:::-;::::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;;20560:45:36;;::::1;;::::0;;::::1;::::0;;::::1;;;::::0;;;20662:19;;20620:62:::1;::::0;;37148:25:84;;;-1:-1:-1;;;20662:19:36;;::::1;::::0;;::::1;37204:2:84::0;37189:18;;37182:61;20620:62:36::1;::::0;-1:-1:-1;37121:18:84;20620:62:36::1;;;;;;;20451:238;20274:415:::0;;;:::o;1075:178:79:-;1531:13:1;:11;:13::i;:::-;1164::79::1;:24:::0;;-1:-1:-1;;;;;1164:24:79;::::1;-1:-1:-1::0;;;;;;1164:24:79;;::::1;::::0;::::1;::::0;;;1228:7:::1;1684::1::0;1710:6;-1:-1:-1;;;;;1710:6:1;;1638:85;1228:7:79::1;-1:-1:-1::0;;;;;1203:43:79::1;;;;;;;;;;;1075:178:::0;:::o;11106:219:36:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11265:53:36;11303:14;11265:37;:53::i;:::-;11258:60;;;;;;;;;;-1:-1:-1;;;;;11258:60:36;;;;-1:-1:-1;;;11258:60:36;;-1:-1:-1;;;;;11258:60:36;;;;;-1:-1:-1;;;11258:60:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11106:219;;;:::o;2499:195:28:-;2634:10;2629:59;;2660:17;2668:8;2660:7;:17::i;:::-;2499:195;;:::o;1833:604:41:-;1898:20;1963:23;;;-1:-1:-1;;;;;;;;;;;1963:23:41;;;;;2000:16;;;:32;-1:-1:-1;;;2000:32:41;;;;:37;1996:435;;2073:16;;;:25;-1:-1:-1;;;2073:25:41;;-1:-1:-1;;;;;2073:25:41;2057:12;:41;2053:192;;-1:-1:-1;2125:30:41;;1833:604;-1:-1:-1;;1833:604:41:o;2053:192::-;-1:-1:-1;2201:29:41;;1833:604;-1:-1:-1;;1833:604:41:o;1996:435::-;2265:25;;-1:-1:-1;;;;;2265:25:41;:39;2261:170;;-1:-1:-1;2327:27:41;;1833:604;-1:-1:-1;;1833:604:41:o;2261:170::-;-1:-1:-1;2392:28:41;;1833:604;-1:-1:-1;;1833:604:41:o;31272:2855:36:-;31538:18;31644:34;31681:52;31718:14;31681:36;:52::i;:::-;31807:19;;-1:-1:-1;;;;;31914:23:36;;;;;-1:-1:-1;;;31807:19:36;;;-1:-1:-1;;;;;31807:19:36;;-1:-1:-1;31807:19:36;;-1:-1:-1;;;;32005:21:36;;;;:25;32001:2120;;32416:19;;32064:29;;;;;;32209:279;;32249:14;;32209:279;;;;32326:27;;32371;;;;-1:-1:-1;;;;;32416:19:36;;;-1:-1:-1;;;32453:21:36;;;;32209:22;:279::i;:::-;32046:442;;;;;;32506:19;32502:767;;;32602:161;;;37456:25:84;;;4379:11:37;37512:2:84;37497:18;;37490:34;37540:18;;;37533:34;;;32602:161:36;;;;;;;37444:2:84;32602:161:36;;;32502:767;;;32851:403;32906:14;32942:27;;4379:11:37;33027:21:36;33112:1;33076:25;33070:39;:43;:166;;;;;;;;;;;;;;;;;;;;;;33141:25;33070:166;32851:403;;;;;;;;;;;:::i;:::-;;;;;;;;32502:767;33468:182;33506:14;33539:27;33585;33468:182;;;;;;;;;;;;:20;:182::i;:::-;32032:1629;;;32001:2120;;;33728:98;33765:14;4379:11:37;33728:98:36;;;15146:25:84;;;15202:2;15187:18;;15180:34;;;;15119:18;33728:98:36;;;;;;;33909:201;33947:14;33979:27;34024;34069;;33909:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33909:20:36;;-1:-1:-1;;;33909:201:36:i;:::-;31562:2565;31272:2855;;;;;;;:::o;4709:157:37:-;4829:30;;-1:-1:-1;;;;;4829:21:37;;;:30;;;;;4851:7;;4829:30;;;;4851:7;4829:21;:30;;;;;;;;;;;;;;;;;;;1463:149:41;1530:24;1573;;;-1:-1:-1;;;;;;;;;;;1573:24:41;;;;;;1463:149::o;2443:1130::-;2516:23;2551:33;2587:24;2603:7;2587:15;:24::i;:::-;2551:60;-1:-1:-1;2641:30:41;2625:12;:46;;;;;;;;:::i;:::-;;2621:946;;2687:26;2716:23;;;-1:-1:-1;;;;;;;;;;;2716:23:41;;;;;:48;;2782:19;;2716:48;;2687:26;2716:48;;2782:19;;;:::i;:::-;;;:23;2778:471;;;2922:15;;-1:-1:-1;;;2941:12:41;2922;;2935:1;;2922:15;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2922:15:41;-1:-1:-1;;;;;2922:31:41;;;:136;;3029:29;2922:136;;;2976:29;2914:162;2443:1130;-1:-1:-1;;;;2443:1130:41:o;2778:471::-;-1:-1:-1;3201:33:41;;2443:1130;-1:-1:-1;;;2443:1130:41:o;2621:946::-;3285:27;3269:12;:43;;;;;;;;:::i;:::-;;3265:302;;-1:-1:-1;3335:32:41;;2443:1130;-1:-1:-1;;2443:1130:41:o;3265:302::-;3404:29;3388:12;:45;;;;;;;;:::i;:::-;;3384:183;;-1:-1:-1;3456:34:41;;2443:1130;-1:-1:-1;;2443:1130:41:o;1796:162:1:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:1;735:10:3;1855:23:1;1851:101;;1901:40;;-1:-1:-1;;;1901:40:1;;735:10:3;1901:40:1;;;10550:51:84;10523:18;;1901:40:1;10404:203:84;3011:215:70;3074:4;;3111:24;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3111:28:70;;:70;;;;-1:-1:-1;3180:1:70;3160:17;;;;:3;:17;:::i;:::-;:21;;;3111:70;:98;;;;-1:-1:-1;3206:3:70;3185:17;;;;:3;:17;:::i;:::-;:24;;;;3090:129;3011:215;-1:-1:-1;;3011:215:70:o;30571:695:36:-;30713:22;-1:-1:-1;;;;;;;;;;;30768:20:36;;30771:17;;30768:20;;;:::i;:::-;;;;;-1:-1:-1;30768:20:36;-1:-1:-1;30836:34:36;30873:52;30768:20;30873:36;:52::i;:::-;30944:19;;30935:61;;;;;;;;;;;;-1:-1:-1;;;30935:61:36;;;;30944:19;;-1:-1:-1;30935:61:36;;-1:-1:-1;;;;;30944:19:36;;;:33;;30935:8;:61::i;:::-;31020:32;;4557:9:37;-1:-1:-1;;;;;31121:44:36;-1:-1:-1;;;31121:44:36;-1:-1:-1;;;;;;31066:41:36;;;31042:10;-1:-1:-1;;;;31066:41:36;;-1:-1:-1;;;31066:41:36;;;;;-1:-1:-1;;;;;31121:44:36;;;;31179:19;;;:30;;;31245:4;31223:19;;;:26;31245:4;31223:19;:26;:::i;:::-;;;;30741:525;30571:695;;;;;:::o;1437:153:79:-;1526:13;1519:20;;-1:-1:-1;;;;;;1519:20:79;;;1549:34;1574:8;1549:24;:34::i;37747:298:36:-;37844:7;37839:161;37862:10;:17;37857:2;:22;37839:161;;;37902:17;37922:10;37933:2;37922:14;;;;;;;;:::i;:::-;;;;;;;37902:34;;37985:4;37950:11;-1:-1:-1;;;;;;;;;;;1067:28:41;2118:133:28;37950:11:36;-1:-1:-1;;;;;37950:32:36;;;;;;;;:21;;;;:32;;;;;;:39;;-1:-1:-1;;37950:39:36;;;;;;;;;;-1:-1:-1;37881:5:36;37839:161;;;;38014:24;38027:10;38014:24;;;;;;:::i;2969:360:28:-;3045:13;3074:19;3106:25;3122:8;3106:15;:25::i;:::-;-1:-1:-1;;;;;3096:36:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3096:36:28;;3074:58;;3147:7;3142:150;3165:6;:13;3160:2;:18;3142:150;;;3208:8;3217:2;3208:12;;;;;;;:::i;:::-;;;;3195:6;3202:2;3195:10;;;;;;;;:::i;:::-;;;;:25;-1:-1:-1;;;;;3195:25:28;;;;;;;;-1:-1:-1;3262:5:28;;3142:150;;34133:639:36;34408:18;34455:178;34483:14;34512:27;34554;34596;;34455:14;:178::i;:::-;34442:191;;34682:83;34720:10;34745;34682:16;:83::i;:::-;34133:639;;;;;;;:::o;1675:152:41:-;1743:25;1787:24;;;-1:-1:-1;;;;;;;;;;;1787:24:41;;;;;:33;;;1675:152::o;3658:155:70:-;3783:18;;3729:6;;3783:22;;:18;;3804:1;3783:22;:::i;:::-;3754:25;;:52;;;;;:25;;;-1:-1:-1;;;;;3754:25:70;:52;:::i;34778:2963:36:-;35142:29;35186:24;35225:39;35313:9;35289:33;-1:-1:-1;;;;35336:27:36;;35364:1;35336:30;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;35336:46:36;;;35332:2359;;35398:32;35433:61;:49;35454:27;;35433:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;35433:20:36;;-1:-1:-1;;;35433:49:36:i;:::-;:59;:61::i;:::-;35398:96;;35529:1;35512:7;:14;:18;35508:1586;;;35630:13;-1:-1:-1;;;;;35614:53:36;;35673:20;35716:14;35752:27;35801;35850:12;35884:31;35937:311;;;;;;;;35987:46;;;;;;;;;;;;;;;;;;;;;;;;36030:1;35987:46;;;35937:311;;;;36072:1;35937:311;;;;;;36110:1;35937:311;;;;;;36160:1;35937:311;;;;;;36192:1;-1:-1:-1;;;;;35937:311:36;;;;;36224:1;-1:-1:-1;;;;;35937:311:36;;;;35614:652;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35610:828;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;36416:3;-1:-1:-1;35508:1586:36;;35610:828;;;;;;;;;;;36311:4;36289:26;;35508:1586;;;36557:13;-1:-1:-1;;;;;36541:53:36;;36600:20;36643:14;36679:27;36728;36777:12;36835:21;:7;36843:1;36835:10;;;;;;;;:::i;:::-;;;;;;;:19;:21::i;:::-;36811:46;;;;;;;;:::i;:::-;36879:7;36887:1;36879:10;;;;;;;;:::i;:::-;;;;;;;36541:366;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36537:543;;;;:::i;:::-;36952:4;36930:26;;36537:543;35384:1720;35332:2359;;;37203:13;-1:-1:-1;;;;;37187:54:36;;37247:20;37286:14;37318:27;37363;37408:12;37438:49;37459:27;;37438:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;37438:20:36;;-1:-1:-1;;;37438:49:36:i;:::-;37187:314;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37183:498;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;37639:3;-1:-1:-1;37183:498:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37658:23;37183:498;;;37542:4;37520:26;;37183:498;37725:9;37700:34;;;;:::i;:::-;;;34778:2963;;;;;;;;;;;:::o;38273:615::-;38600:281;;;;;;;;38642:10;-1:-1:-1;;;;;38600:281:36;;;;;38683:12;-1:-1:-1;;;;;38600:281:36;;;;;38727:27;38600:281;;;;;;38785:27;38600:281;;;;38843:27;38600:281;;;38543:45;38573:14;38543:29;:45::i;:::-;:338;;:54;;;:338;;;;;;;;;;;;-1:-1:-1;;;38543:338:36;-1:-1:-1;;;;;;;;;;38543:338:36;;;-1:-1:-1;;;38543:338:36;-1:-1:-1;;;;;;38543:338:36;;;-1:-1:-1;;;;;38543:338:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:54;;:338;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;38273:615:36:o;2912:187:1:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:1;;;-1:-1:-1;;;;;;3020:17:1;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;3398:295:28:-;3480:12;3508:179;3525:2;3515:7;:12;3508:179;;;3549:8;3558:7;3549:17;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;3549:22:28;3545:66;3591:5;3545:66;3652:10;;3508:179;;;3398:295;;;:::o;2415:198:66:-;2488:11;;:::i;:::-;2545:32;;;;;;;;;;;;2509:33;2545:32;;;;2590:18;2545:32;2590:10;:18::i;5910:1202::-;6018:19;5981:4;1139:1;1738:8;1720:26;;:4;:14;;;:26;;;1716:99;;1783:14;;;;;1763:45;;-1:-1:-1;;;1763:45:66;;43510:4:84;43498:17;;;1763:45:66;;;43480:36:84;43552:17;;;43532:18;;;43525:45;43453:18;;1763:45:66;43310:266:84;1716:99:66;6131:10:::1;6144:51;6155:4;:11;;;6168:4;:26;;;6144:10;:51::i;:::-;6131:64:::0;-1:-1:-1;6220:7:66::1;6131:64:::0;6226:1:::1;6220:7;:::i;:::-;-1:-1:-1::0;;;;;6209:19:66::1;-1:-1:-1::0;;;;;6209:19:66::1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;6201:27;;6239:7;6234:722;6257:3;-1:-1:-1::0;;;;;6252:8:66::1;:2;:8;6234:722;;;6327:13;:4;:11;:13::i;:::-;6320:20;;6424:11;:4;:9;:11::i;:::-;6412:5;6418:2;6412:9;;;;;;;;:::i;:::-;;;;;;:23;;;;1139:1;6447:34;;:4;:14;;;:34;;::::0;6443:507:::1;;6493:23;6519:16;:4;:14;:16::i;:::-;6493:42;;6616:9;6645:1;6626:9;:16;:20;;;;:::i;:::-;6616:31;;;;;;;;:::i;:::-;;;;;;;6609:38;;6483:173;6443:507;;;1185:1;6666:32;;:4;:14;;;:32;;::::0;6662:288:::1;;6710:23;6736:14;:4;:12;:14::i;6662:288::-;6930:11;:4;:9;:11::i;:::-;;6662:288;6262:5;;6234:722;;;;7103:4;7090:5;7096:3;-1:-1:-1::0;;;;;7090:10:66::1;;;;;;;;;:::i;:::-;;;;;;:17;;;;6041:1071;5910:1202:::0;;;;;:::o;17335:200::-;17440:4;17405;939:1;1738:8;1720:26;;:4;:14;;;:26;;;1716:99;;1783:14;;;;;1763:45;;-1:-1:-1;;;1763:45:66;;43510:4:84;43498:17;;;1763:45:66;;;43480:36:84;43552:17;;;43532:18;;;43525:45;43453:18;;1763:45:66;43310:266:84;1716:99:66;17461:69:::1;17479:4;:11;;;17498:4;:26;;;17461:10;:69::i;:::-;-1:-1:-1::0;;;;;17454:76:66::1;::::0;17335:200;-1:-1:-1;;;;17335:200:66:o;2925:996::-;3032:11;;:::i;:::-;1893;;:18;3011:6;;1893:11;:23;1889:77;;1933:26;;-1:-1:-1;;;1933:26:66;;;;;;;;;;;1889:77;3053:17:::1;3094:3;3053:17:::0;-1:-1:-1;;;;;3053:17:66;3198:4:::1;3208:478;3215:8;3208:478;;;3303:18;:6;:16;:18::i;:::-;3289:32:::0;-1:-1:-1;3329:6:66;::::1;::::0;::::1;:::i;:::-;3355:16:::0;3370:1:::1;3355:16:::0;;;;;-1:-1:-1;3417:4:66::1;3403:18:::0;::::1;::::0;-1:-1:-1;3329:6:66;-1:-1:-1;;;;3466:27:66;;3462:218:::1;;3520:13;::::0;::::1;::::0;3549:41:::1;3520:6:::0;3568:21;3549:10:::1;:41::i;:::-;3543:47;;3623:7;3607:6;:13;;;:23;;;;:::i;:::-;3600:30;::::0;;::::1;:::i;:::-;;;3495:144;3208:478;;3462:218;-1:-1:-1::0;3666:5:66::1;3208:478;;;1286:1;3695:35;::::0;::::1;;3691:94;;;3747:31;::::0;-1:-1:-1;;;3747:31:66;;43940:4:84;43928:17;;3747:31:66::1;::::0;::::1;43910:36:84::0;43883:18;;3747:31:66::1;43766:186:84::0;3691:94:66::1;-1:-1:-1::0;3797:119:66::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;::::1;::::0;;;;-1:-1:-1;;;;;3797:119:66;;::::1;::::0;;;;::::1;::::0;;;;-1:-1:-1;3797:119:66;;2925:996;-1:-1:-1;2925:996:66:o;8569:671::-;8703:6;8747:2;8723:21;:26;;;8719:75;;;-1:-1:-1;8759:28:66;;;;;8719:75;8803:21;:27;;8828:2;8803:27;8799:73;;8847:18;:6;:16;:18::i;:::-;8840:25;;;;;;8799:73;8881:21;:27;;8906:2;8881:27;8877:74;;8925:19;:6;:17;:19::i;:::-;8918:26;;;;;;8877:74;8960:21;:27;;8985:2;8960:27;8956:74;;9004:19;:6;:17;:19::i;:::-;8997:26;;;;;;8956:74;9039:21;:27;;9064:2;9039:27;9035:74;;9083:19;:6;:17;:19::i;:::-;9076:26;;;;9035:74;9118:21;:27;;9143:2;9118:27;9114:65;;-1:-1:-1;;;;;;9155:17:66;;9114:65;9191:44;;-1:-1:-1;;;9191:44:66;;43940:4:84;43928:17;;9191:44:66;;;43910:36:84;43883:18;;9191:44:66;43766:186:84;4262:199:66;4331:22;;:::i;:::-;2086:11;;:16;;:23;2064:18;;;;;:45;;4363:94;;4406:11;;4395:23;;:10;:23::i;4363:94::-;-1:-1:-1;4446:4:66;4262:199::o;3925:333::-;3999:22;;:::i;:::-;4038:215;;;;;;;;;4059:11;;-1:-1:-1;;;;;;;;;;;;;;2694:52:65;;;;;;;;2708:11;;2694:52;;-1:-1:-1;2727:13:65;;;;2694:52;;;;4038:215:66;;;;;;;4098:4;:16;;;4038:215;;;;;;4133:4;:14;;;4038:215;;;;;;4178:4;:26;;;4038:215;;;;;;4217:4;:8;;;-1:-1:-1;;;;;4038:215:66;;;;;4238:4;:8;;;-1:-1:-1;;;;;4038:215:66;;;;4031:222;;3925:333;;;:::o;7116:1279::-;7220:19;7185:4;1185:1;1738:8;1720:26;;:4;:14;;;:26;;;1716:99;;1783:14;;;;;1763:45;;-1:-1:-1;;;1763:45:66;;43510:4:84;43498:17;;;1763:45:66;;;43480:36:84;43552:17;;;43532:18;;;43525:45;43453:18;;1763:45:66;43310:266:84;1716:99:66;7349:10:::1;7362:51;7373:4;:11;;;7386:4;:26;;;7362:10;:51::i;:::-;:55;::::0;7416:1:::1;7362:55;:::i;:::-;7349:68:::0;-1:-1:-1;7442:7:66::1;7349:68:::0;7448:1:::1;7442:7;:::i;:::-;-1:-1:-1::0;;;;;7431:19:66::1;-1:-1:-1::0;;;;;7431:19:66::1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7423:27;;7461:7;7456:783;7479:3;-1:-1:-1::0;;;;;7474:8:66::1;:2;:8;7456:783;;;7549:13;:4;:11;:13::i;:::-;7542:20;;7646:11;:4;:9;:11::i;:::-;7634:5;7640:2;7634:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:23;7669:6:::1;7674:1;7669:2:::0;:6:::1;:::i;:::-;:11:::0;:50;::::1;;;-1:-1:-1::0;7684:14:66::1;::::0;::::1;::::0;:35:::1;;1091:1;7684:35;;7669:50;7665:568;;;7758:14;::::0;;::::1;::::0;7738:54;;-1:-1:-1;;;7738:54:66;;43510:4:84;43498:17;;;7738:54:66::1;::::0;::::1;43480:36:84::0;1091:1:66::1;43532:18:84::0;;;43525:45;43453:18;;7738:54:66::1;43310:266:84::0;7665:568:66::1;7811:14;::::0;::::1;::::0;:34:::1;;1139:1;7811:34;::::0;:70:::1;;-1:-1:-1::0;7849:14:66::1;::::0;::::1;::::0;:32:::1;;1185:1;7849:32;7811:70;7807:426;;;7920:14;::::0;::::1;::::0;7893:23:::1;::::0;7920:34:::1;;1139:1;7920:34;:94;;8000:14;:4;:12;:14::i;:::-;7920:94;;;7969:16;:4;:14;:16::i;:::-;7893:131;;8112:9;8141:1;8122:9;:16;:20;;;;:::i;:::-;8112:31;;;;;;;;:::i;:::-;;;;;;;8105:38;;7883:269;7807:426;;;8213:11;:4;:9;:11::i;:::-;;7807:426;7484:5;;7456:783;;4465:1100:::0;4532:22;;:::i;:::-;4575:14;;;;:32;;;;:85;;-1:-1:-1;4619:14:66;;;;:41;;994:1;4619:41;4575:85;:257;;;-1:-1:-1;4684:14:66;;;;:41;;1286:1;4684:41;:90;;;;;4772:2;4742:4;:26;;;:32;;;;4684:90;:138;;;;;4820:2;4790:4;:26;;;:32;;;;4684:138;4564:980;;;4869:17;:4;:15;:17::i;:::-;-1:-1:-1;;;;;4847:39:66;:4;:11;;;:18;;:39;;;;;;;:::i;:::-;;;-1:-1:-1;;4446:4:66;4262:199::o;4564:980::-;4912:14;;;;:35;;1091:1;4912:35;;:83;;-1:-1:-1;4961:14:66;;;;:34;;1042:1;4961:34;4912:83;4899:645;;;5010:10;5023:51;5034:4;:11;;;5047:4;:26;;;5023:10;:51::i;:::-;5010:64;;5104:3;-1:-1:-1;;;;;5082:25:66;:4;:11;;;:18;;:25;;;;;;;:::i;:::-;;;-1:-1:-1;4899:645:66;;-1:-1:-1;4899:645:66;;5131:14;;;;:34;;1139:1;5131:34;;:78;;-1:-1:-1;5177:14:66;;;;:32;;1185:1;5177:32;5131:78;5120:424;;;5236:51;5247:4;:11;;;5260:4;:26;;;5236:10;:51::i;:::-;-1:-1:-1;;;;;5225:62:66;:8;;;:62;-1:-1:-1;4446:4:66;4262:199::o;5120:424::-;5318:14;;;;:41;;1286:1;5318:41;;;:155;;;5383:4;:26;;;:32;;5413:2;5383:32;;:80;;;;;5431:4;:26;;;:32;;5461:2;5431:32;;5383:80;5306:238;;;5488:49;;-1:-1:-1;;;5488:49:66;;44276:2:84;5488:49:66;;;44258:21:84;44315:2;44295:18;;;44288:30;44354:34;44334:18;;;44327:62;-1:-1:-1;;;44405:18:84;;;44398:37;44452:19;;5488:49:66;44074:403:84;13332:304:65;13455:11;13407:6;:13;;;13422:6;:11;;;:18;988:6;980:5;:14;976:73;;;1011:31;;-1:-1:-1;;;1011:31:65;;;;;15146:25:84;;;15187:18;;;15180:34;;;15119:18;;1011:31:65;14972:248:84;976:73:65;13496:11;;13527:13:::1;::::0;::::1;::::0;;13578:25;;;13592:1:::1;13578:25:::0;13572:32;;-1:-1:-1;13527:13:65;;;13615:16:::1;13527:13:::0;13615:16:::1;:::i;:::-;;;::::0;::::1;13470:166;;13332:304:::0;;;;;:::o;13873:312::-;14001:12;13949:6;:13;;;13965:1;13949:17;;;;:::i;:::-;13968:11;;:18;980:14;;;976:73;;;1011:31;;-1:-1:-1;;;1011:31:65;;;;;15146:25:84;;;15187:18;;;15180:34;;;15119:18;;1011:31:65;14972:248:84;976:73:65;14043:11;;14074:13:::1;::::0;::::1;::::0;;14139:1:::1;14125:25:::0;;;;;14119:32;;-1:-1:-1;14074:13:65;;14162:18:::1;14139:1:::0;14074:13;14162:18:::1;:::i;:::-;::::0;;-1:-1:-1;13873:312:65;;;-1:-1:-1;;;;;13873:312:65:o;14422:::-;14550:12;14498:6;:13;;;14514:1;14498:17;;;;:::i;:::-;14517:11;;:18;980:14;;;976:73;;;1011:31;;-1:-1:-1;;;1011:31:65;;;;;15146:25:84;;;15187:18;;;15180:34;;;15119:18;;1011:31:65;14972:248:84;976:73:65;14592:11;;14623:13:::1;::::0;::::1;::::0;;14688:1:::1;14674:25:::0;;;;;14668:32;;-1:-1:-1;14623:13:65;;14711:18:::1;14688:1:::0;14623:13;14711:18:::1;:::i;14971:312::-:0;15099:12;15047:6;:13;;;15063:1;15047:17;;;;:::i;:::-;15066:11;;:18;980:14;;;976:73;;;1011:31;;-1:-1:-1;;;1011:31:65;;;;;15146:25:84;;;15187:18;;;15180:34;;;15119:18;;1011:31:65;14972:248:84;976:73:65;15141:11;;15172:13:::1;::::0;::::1;::::0;;15237:1:::1;15223:25:::0;;;;;15217:32;;-1:-1:-1;15172:13:65;;15260:18:::1;15237:1:::0;15172:13;15260:18:::1;:::i;5569:337:66:-:0;5638:6;5687:2;5658:4;:26;;;:31;;;5654:248;;;-1:-1:-1;5706:1:66;;5569:337;-1:-1:-1;5569:337:66:o;5654:248::-;5753:2;5724:4;:26;;;:31;;;5720:182;;;5814:2;5785:4;:26;;;:31;;;;:::i;:::-;5779:38;;:1;:38;;5765:53;;5569:337;;;:::o;5720:182::-;5868:26;;;;5846:49;;-1:-1:-1;;;5846:49:66;;43940:4:84;43928:17;;;5846:49:66;;;43910:36:84;43883:18;;5846:49:66;43766:186:84;-1:-1:-1;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;14:250:84;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:84;238:16;;231:27;14:250::o;269:1072::-;-1:-1:-1;;;670:3:84;663:34;645:3;726:6;720:13;742:75;810:6;805:2;800:3;796:12;789:4;781:6;777:17;742:75;:::i;:::-;877:13;;836:16;;;;899:76;877:13;961:2;953:11;;946:4;934:17;;899:76;:::i;:::-;1036:13;;994:17;;;1058:76;1036:13;1120:2;1112:11;;1105:4;1093:17;;1058:76;:::i;:::-;1195:13;;1153:17;;;1217:76;1195:13;1279:2;1271:11;;1264:4;1252:17;;1217:76;:::i;:::-;1313:17;1332:2;1309:26;;269:1072;-1:-1:-1;;;;;;269:1072:84:o;1346:131::-;-1:-1:-1;;;;;1421:31:84;;1411:42;;1401:70;;1467:1;1464;1457:12;1482:247;1541:6;1594:2;1582:9;1573:7;1569:23;1565:32;1562:52;;;1610:1;1607;1600:12;1562:52;1649:9;1636:23;1668:31;1693:5;1668:31;:::i;1926:161::-;1993:20;;2053:8;2042:20;;2032:31;;2022:59;;2077:1;2074;2067:12;2092:252;2159:6;2167;2220:2;2208:9;2199:7;2195:23;2191:32;2188:52;;;2236:1;2233;2226:12;2188:52;2272:9;2259:23;2249:33;;2301:37;2334:2;2323:9;2319:18;2301:37;:::i;:::-;2291:47;;2092:252;;;;;:::o;2531:387::-;2614:8;2624:6;2678:3;2671:4;2663:6;2659:17;2655:27;2645:55;;2696:1;2693;2686:12;2645:55;-1:-1:-1;2719:20:84;;-1:-1:-1;;;;;2751:30:84;;2748:50;;;2794:1;2791;2784:12;2748:50;2831:4;2823:6;2819:17;2807:29;;2891:3;2884:4;2874:6;2871:1;2867:14;2859:6;2855:27;2851:38;2848:47;2845:67;;;2908:1;2905;2898:12;2845:67;2531:387;;;;;:::o;2923:489::-;3041:6;3049;3102:2;3090:9;3081:7;3077:23;3073:32;3070:52;;;3118:1;3115;3108:12;3070:52;3158:9;3145:23;-1:-1:-1;;;;;3183:6:84;3180:30;3177:50;;;3223:1;3220;3213:12;3177:50;3262:90;3344:7;3335:6;3324:9;3320:22;3262:90;:::i;:::-;3371:8;;3236:116;;-1:-1:-1;2923:489:84;-1:-1:-1;;;;2923:489:84:o;3417:180::-;3476:6;3529:2;3517:9;3508:7;3504:23;3500:32;3497:52;;;3545:1;3542;3535:12;3497:52;-1:-1:-1;3568:23:84;;3417:180;-1:-1:-1;3417:180:84:o;3602:270::-;3643:3;3681:5;3675:12;3708:6;3703:3;3696:19;3724:76;3793:6;3786:4;3781:3;3777:14;3770:4;3763:5;3759:16;3724:76;:::i;:::-;3854:2;3833:15;-1:-1:-1;;3829:29:84;3820:39;;;;3861:4;3816:50;;3602:270;-1:-1:-1;;3602:270:84:o;3877:487::-;3993:1;3989;3984:3;3980:11;3976:19;3968:5;3962:12;3958:38;3953:3;3946:51;-1:-1:-1;;;;;4050:4:84;4043:5;4039:16;4033:23;4029:48;4022:4;4017:3;4013:14;4006:72;4139:10;4131:4;4124:5;4120:16;4114:23;4110:40;4103:4;4098:3;4094:14;4087:64;4200:4;4193:5;4189:16;4183:23;4176:4;4171:3;4167:14;4160:47;3928:3;4253:4;4246:5;4242:16;4236:23;4291:4;4284;4279:3;4275:14;4268:28;4312:46;4352:4;4347:3;4343:14;4329:12;4312:46;:::i;4369:263::-;4552:2;4541:9;4534:21;4515:4;4572:54;4622:2;4611:9;4607:18;4599:6;4572:54;:::i;4637:719::-;4752:1;4748;4743:3;4739:11;4735:19;4727:5;4721:12;4717:38;4712:3;4705:51;4817:8;4809:4;4802:5;4798:16;4792:23;4788:38;4781:4;4776:3;4772:14;4765:62;-1:-1:-1;;;;;4880:4:84;4873:5;4869:16;4863:23;4859:50;4852:4;4847:3;4843:14;4836:74;4687:3;4956:4;4949:5;4945:16;4939:23;4994:4;4987;4982:3;4978:14;4971:28;5020:46;5060:4;5055:3;5051:14;5037:12;5020:46;:::i;:::-;5008:58;;5115:4;5108:5;5104:16;5098:23;5091:4;5086:3;5082:14;5075:47;5170:4;5163:5;5159:16;5153:23;5235:4;5218:14;5212:21;5208:32;5201:4;5196:3;5192:14;5185:56;-1:-1:-1;;;;;5302:4:84;5286:14;5282:25;5276:32;5272:57;5266:3;5261;5257:13;5250:80;;5346:4;5339:11;;;4637:719;;;;:::o;5361:260::-;5542:2;5531:9;5524:21;5505:4;5562:53;5611:2;5600:9;5596:18;5588:6;5562:53;:::i;5626:127::-;5687:10;5682:3;5678:20;5675:1;5668:31;5718:4;5715:1;5708:15;5742:4;5739:1;5732:15;5758:145;5844:1;5837:5;5834:12;5824:46;;5850:18;;:::i;:::-;5879;;5758:145::o;5908:219::-;6060:2;6045:18;;6072:49;6049:9;6103:6;6072:49;:::i;6132:127::-;6193:10;6188:3;6184:20;6181:1;6174:31;6224:4;6221:1;6214:15;6248:4;6245:1;6238:15;6264:249;6374:2;6355:13;;-1:-1:-1;;6351:27:84;6339:40;;-1:-1:-1;;;;;6394:34:84;;6430:22;;;6391:62;6388:88;;;6456:18;;:::i;:::-;6492:2;6485:22;-1:-1:-1;;6264:249:84:o;6518:183::-;6578:4;-1:-1:-1;;;;;6603:6:84;6600:30;6597:56;;;6633:18;;:::i;:::-;-1:-1:-1;6678:1:84;6674:14;6690:4;6670:25;;6518:183::o;6706:1028::-;6790:6;6821:2;6864;6852:9;6843:7;6839:23;6835:32;6832:52;;;6880:1;6877;6870:12;6832:52;6920:9;6907:23;-1:-1:-1;;;;;6945:6:84;6942:30;6939:50;;;6985:1;6982;6975:12;6939:50;7008:22;;7061:4;7053:13;;7049:27;-1:-1:-1;7039:55:84;;7090:1;7087;7080:12;7039:55;7126:2;7113:16;7148:43;7188:2;7148:43;:::i;:::-;7220:2;7214:9;7232:31;7260:2;7252:6;7232:31;:::i;:::-;7298:18;;;7386:1;7382:10;;;;7374:19;;7370:28;;;7332:15;;;;-1:-1:-1;7410:19:84;;;7407:39;;;7442:1;7439;7432:12;7407:39;7466:11;;;;7486:217;7502:6;7497:3;7494:15;7486:217;;;7582:3;7569:17;7599:31;7624:5;7599:31;:::i;:::-;7643:18;;7519:12;;;;7681;;;;7486:217;;;7722:6;6706:1028;-1:-1:-1;;;;;;;6706:1028:84:o;7739:156::-;7800:5;7845:2;7836:6;7831:3;7827:16;7823:25;7820:45;;;7861:1;7858;7851:12;7900:309;7997:6;8005;8058:2;8046:9;8037:7;8033:23;8029:32;8026:52;;;8074:1;8071;8064:12;8026:52;8110:9;8097:23;8087:33;;8139:64;8195:7;8190:2;8179:9;8175:18;8139:64;:::i;8214:186::-;8262:4;-1:-1:-1;;;;;8287:6:84;8284:30;8281:56;;;8317:18;;:::i;:::-;-1:-1:-1;8383:2:84;8362:15;-1:-1:-1;;8358:29:84;8389:4;8354:40;;8214:186::o;8405:727::-;8473:6;8526:2;8514:9;8505:7;8501:23;8497:32;8494:52;;;8542:1;8539;8532:12;8494:52;8582:9;8569:23;-1:-1:-1;;;;;8607:6:84;8604:30;8601:50;;;8647:1;8644;8637:12;8601:50;8670:22;;8723:4;8715:13;;8711:27;-1:-1:-1;8701:55:84;;8752:1;8749;8742:12;8701:55;8788:2;8775:16;8810:31;8838:2;8810:31;:::i;:::-;8870:2;8864:9;8882:31;8910:2;8902:6;8882:31;:::i;:::-;8937:2;8929:6;8922:18;8977:7;8972:2;8967;8963;8959:11;8955:20;8952:33;8949:53;;;8998:1;8995;8988:12;8949:53;9054:2;9049;9045;9041:11;9036:2;9028:6;9024:15;9011:46;9099:1;9077:15;;;9094:2;9073:24;9066:35;;;;-1:-1:-1;9081:6:84;8405:727;-1:-1:-1;;;;8405:727:84:o;9599:800::-;9759:4;9788:2;9828;9817:9;9813:18;9858:2;9847:9;9840:21;9881:6;9916;9910:13;9947:6;9939;9932:22;9985:2;9974:9;9970:18;9963:25;;10047:2;10037:6;10034:1;10030:14;10019:9;10015:30;10011:39;9997:53;;10085:2;10077:6;10073:15;10106:1;10116:254;10130:6;10127:1;10124:13;10116:254;;;10223:2;10219:7;10207:9;10199:6;10195:22;10191:36;10186:3;10179:49;10251:39;10283:6;10274;10268:13;10251:39;:::i;:::-;10241:49;-1:-1:-1;10348:12:84;;;;10313:15;;;;10152:1;10145:9;10116:254;;;-1:-1:-1;10387:6:84;;9599:800;-1:-1:-1;;;;;;;9599:800:84:o;10794:219::-;10943:2;10932:9;10925:21;10906:4;10963:44;11003:2;10992:9;10988:18;10980:6;10963:44;:::i;11018:142::-;11101:1;11094:5;11091:12;11081:46;;11107:18;;:::i;11165:668::-;11351:2;11403:21;;;11473:13;;11376:18;;;11495:22;;;11322:4;;11351:2;11574:15;;;;11548:2;11533:18;;;11322:4;11617:190;11631:6;11628:1;11625:13;11617:190;;;11680:47;11723:3;11714:6;11708:13;11680:47;:::i;:::-;11782:15;;;;11747:12;;;;11653:1;11646:9;11617:190;;;-1:-1:-1;11824:3:84;;11165:668;-1:-1:-1;;;;;;11165:668:84:o;11838:347::-;11889:8;11899:6;11953:3;11946:4;11938:6;11934:17;11930:27;11920:55;;11971:1;11968;11961:12;11920:55;-1:-1:-1;11994:20:84;;-1:-1:-1;;;;;12026:30:84;;12023:50;;;12069:1;12066;12059:12;12023:50;12106:4;12098:6;12094:17;12082:29;;12158:3;12151:4;12142:6;12134;12130:19;12126:30;12123:39;12120:59;;;12175:1;12172;12165:12;12190:545;12278:6;12286;12294;12302;12355:2;12343:9;12334:7;12330:23;12326:32;12323:52;;;12371:1;12368;12361:12;12323:52;12407:9;12394:23;12384:33;;12464:2;12453:9;12449:18;12436:32;12426:42;;12519:2;12508:9;12504:18;12491:32;-1:-1:-1;;;;;12538:6:84;12535:30;12532:50;;;12578:1;12575;12568:12;12532:50;12617:58;12667:7;12658:6;12647:9;12643:22;12617:58;:::i;:::-;12190:545;;;;-1:-1:-1;12694:8:84;-1:-1:-1;;;;12190:545:84:o;12740:213::-;12889:2;12874:18;;12901:46;12878:9;12929:6;12901:46;:::i;13403:117::-;13488:6;13481:5;13477:18;13470:5;13467:29;13457:57;;13510:1;13507;13500:12;13525:313;13592:6;13600;13653:2;13641:9;13632:7;13628:23;13624:32;13621:52;;;13669:1;13666;13659:12;13621:52;13705:9;13692:23;13682:33;;13765:2;13754:9;13750:18;13737:32;13778:30;13802:5;13778:30;:::i;:::-;13827:5;13817:15;;;13525:313;;;;;:::o;14065:902::-;14189:6;14197;14205;14213;14221;14229;14282:3;14270:9;14261:7;14257:23;14253:33;14250:53;;;14299:1;14296;14289:12;14250:53;14339:9;14326:23;-1:-1:-1;;;;;14409:2:84;14401:6;14398:14;14395:34;;;14425:1;14422;14415:12;14395:34;14464:90;14546:7;14537:6;14526:9;14522:22;14464:90;:::i;:::-;14573:8;;-1:-1:-1;14438:116:84;-1:-1:-1;14661:2:84;14646:18;;14633:32;;-1:-1:-1;14677:16:84;;;14674:36;;;14706:1;14703;14696:12;14674:36;;14745:60;14797:7;14786:8;14775:9;14771:24;14745:60;:::i;:::-;14065:902;;;;-1:-1:-1;14824:8:84;14906:2;14891:18;;14878:32;;14957:2;14942:18;;;14929:32;;-1:-1:-1;14065:902:84;-1:-1:-1;;;;14065:902:84:o;15225:248::-;15293:6;15301;15354:2;15342:9;15333:7;15329:23;15325:32;15322:52;;;15370:1;15367;15360:12;15322:52;-1:-1:-1;;15393:23:84;;;15463:2;15448:18;;;15435:32;;-1:-1:-1;15225:248:84:o;15478:611::-;15594:6;15602;15610;15618;15671:3;15659:9;15650:7;15646:23;15642:33;15639:53;;;15688:1;15685;15678:12;15639:53;15728:9;15715:23;-1:-1:-1;;;;;15753:6:84;15750:30;15747:50;;;15793:1;15790;15783:12;15747:50;15832:58;15882:7;15873:6;15862:9;15858:22;15832:58;:::i;:::-;15909:8;;-1:-1:-1;15806:84:84;-1:-1:-1;15963:64:84;;-1:-1:-1;16019:7:84;16014:2;15999:18;;15963:64;:::i;:::-;15953:74;;16046:37;16079:2;16068:9;16064:18;16046:37;:::i;:::-;16036:47;;15478:611;;;;;;;:::o;16094:149::-;16182:3;16175:5;16172:14;16162:48;;16190:18;;:::i;16248:435::-;16437:2;16426:9;16419:21;16449:67;16512:2;16501:9;16497:18;16488:6;16482:13;16449:67;:::i;:::-;16400:4;16563:2;16555:6;16551:15;16545:22;16605:4;16598;16587:9;16583:20;16576:34;16627:50;16673:2;16662:9;16658:18;16644:12;16627:50;:::i;16688:546::-;16865:2;16854:9;16847:21;16828:4;16903:6;16897:13;16946:4;16941:2;16930:9;16926:18;16919:32;16974:59;17029:2;17018:9;17014:18;17000:12;16974:59;:::i;:::-;16960:73;;17082:2;17074:6;17070:15;17064:22;17156:2;17152:7;17140:9;17132:6;17128:22;17124:36;17117:4;17106:9;17102:20;17095:66;17178:50;17221:6;17205:14;17178:50;:::i;17239:163::-;17306:20;;17366:10;17355:22;;17345:33;;17335:61;;17392:1;17389;17382:12;17407:618;17503:6;17511;17519;17527;17535;17588:3;17576:9;17567:7;17563:23;17559:33;17556:53;;;17605:1;17602;17595:12;17556:53;17641:9;17628:23;17618:33;;17670:37;17703:2;17692:9;17688:18;17670:37;:::i;:::-;17660:47;;17754:2;17743:9;17739:18;17726:32;17716:42;;17809:2;17798:9;17794:18;17781:32;-1:-1:-1;;;;;17828:6:84;17825:30;17822:50;;;17868:1;17865;17858:12;17822:50;17907:58;17957:7;17948:6;17937:9;17933:22;17907:58;:::i;:::-;17407:618;;;;-1:-1:-1;17407:618:84;;-1:-1:-1;17984:8:84;;17881:84;17407:618;-1:-1:-1;;;17407:618:84:o;18488:382::-;18593:6;18601;18609;18662:3;18650:9;18641:7;18637:23;18633:33;18630:53;;;18679:1;18676;18669:12;18630:53;18715:9;18702:23;18692:33;;18744:64;18800:7;18795:2;18784:9;18780:18;18744:64;:::i;:::-;18734:74;;18827:37;18860:2;18849:9;18845:18;18827:37;:::i;:::-;18817:47;;18488:382;;;;;:::o;18875:641::-;19155:3;19193:6;19187:13;19209:66;19268:6;19263:3;19256:4;19248:6;19244:17;19209:66;:::i;:::-;-1:-1:-1;;;19297:16:84;;;19322:19;;;19366:13;;19388:78;19366:13;19453:1;19442:13;;19435:4;19423:17;;19388:78;:::i;:::-;19486:20;19508:1;19482:28;;18875:641;-1:-1:-1;;;;18875:641:84:o;19521:127::-;19582:10;19577:3;19573:20;19570:1;19563:31;19613:4;19610:1;19603:15;19637:4;19634:1;19627:15;19653:127;19714:10;19709:3;19705:20;19702:1;19695:31;19745:4;19742:1;19735:15;19769:4;19766:1;19759:15;19785:165;19823:1;19857:4;19854:1;19850:12;19881:3;19871:37;;19888:18;;:::i;:::-;19940:3;19933:4;19930:1;19926:12;19922:22;19917:27;;;19785:165;;;;:::o;19955:148::-;20043:4;20022:12;;;20036;;;20018:31;;20061:13;;20058:39;;;20077:18;;:::i;20108:157::-;20138:1;20172:4;20169:1;20165:12;20196:3;20186:37;;20203:18;;:::i;:::-;20255:3;20248:4;20245:1;20241:12;20237:22;20232:27;;;20108:157;;;;:::o;20270:127::-;20331:10;20326:3;20322:20;20319:1;20312:31;20362:4;20359:1;20352:15;20386:4;20383:1;20376:15;20402:168;20475:9;;;20506;;20523:15;;;20517:22;;20503:37;20493:71;;20544:18;;:::i;20575:125::-;20640:9;;;20661:10;;;20658:36;;;20674:18;;:::i;20705:330::-;20803:4;20861:11;20848:25;20955:3;20951:8;20940;20924:14;20920:29;20916:44;20896:18;20892:69;20882:97;;20975:1;20972;20965:12;20882:97;20996:33;;;;;20705:330;-1:-1:-1;;20705:330:84:o;21266:489::-;21320:5;21373:3;21366:4;21358:6;21354:17;21350:27;21340:55;;21391:1;21388;21381:12;21340:55;21420:6;21414:13;21446:31;21474:2;21446:31;:::i;:::-;21506:2;21500:9;21518:31;21546:2;21538:6;21518:31;:::i;:::-;21573:2;21565:6;21558:18;21619:3;21612:4;21607:2;21599:6;21595:15;21591:26;21588:35;21585:55;;;21636:1;21633;21626:12;21585:55;21649:76;21722:2;21715:4;21707:6;21703:17;21696:4;21688:6;21684:17;21649:76;:::i;21760:337::-;21840:6;21893:2;21881:9;21872:7;21868:23;21864:32;21861:52;;;21909:1;21906;21899:12;21861:52;21942:9;21936:16;-1:-1:-1;;;;;21967:6:84;21964:30;21961:50;;;22007:1;22004;21997:12;21961:50;22030:61;22083:7;22074:6;22063:9;22059:22;22030:61;:::i;22102:290::-;22279:6;22268:9;22261:25;22322:2;22317;22306:9;22302:18;22295:30;22242:4;22342:44;22382:2;22371:9;22367:18;22359:6;22342:44;:::i;22397:184::-;22455:6;22508:2;22496:9;22487:7;22483:23;22479:32;22476:52;;;22524:1;22521;22514:12;22476:52;22547:28;22565:9;22547:28;:::i;22586:521::-;22663:4;22669:6;22729:11;22716:25;22823:2;22819:7;22808:8;22792:14;22788:29;22784:43;22764:18;22760:68;22750:96;;22842:1;22839;22832:12;22750:96;22869:33;;22921:20;;;-1:-1:-1;;;;;;22953:30:84;;22950:50;;;22996:1;22993;22986:12;22950:50;23029:4;23017:17;;-1:-1:-1;23060:14:84;23056:27;;;23046:38;;23043:58;;;23097:1;23094;23087:12;23112:473;23344:3;23382:6;23376:13;23398:66;23457:6;23452:3;23445:4;23437:6;23433:17;23398:66;:::i;:::-;-1:-1:-1;;;23486:16:84;;23511:38;;;-1:-1:-1;23576:2:84;23565:14;;23112:473;-1:-1:-1;23112:473:84:o;23590:380::-;23669:1;23665:12;;;;23712;;;23733:61;;23787:4;23779:6;23775:17;23765:27;;23733:61;23840:2;23832:6;23829:14;23809:18;23806:38;23803:161;;23886:10;23881:3;23877:20;23874:1;23867:31;23921:4;23918:1;23911:15;23949:4;23946:1;23939:15;23975:658;24146:2;24198:21;;;24268:13;;24171:18;;;24290:22;;;24117:4;;24146:2;24369:15;;;;24343:2;24328:18;;;24117:4;24412:195;24426:6;24423:1;24420:13;24412:195;;;24491:13;;-1:-1:-1;;;;;24487:39:84;24475:52;;24582:15;;;;24547:12;;;;24523:1;24441:9;24412:195;;24638:114;24722:4;24715:5;24711:16;24704:5;24701:27;24691:55;;24742:1;24739;24732:12;24757:129;-1:-1:-1;;;;;24835:5:84;24831:30;24824:5;24821:41;24811:69;;24876:1;24873;24866:12;24891:629;25150:25;;;25206:2;25191:18;;25184:34;;;25137:3;25122:19;;25240:20;;25269:29;25240:20;25269:29;:::i;:::-;25345:4;25334:16;25329:2;25314:18;;25307:44;25400:2;25388:15;;25375:29;25413:32;25375:29;25413:32;:::i;:::-;-1:-1:-1;;;;;25485:7:84;25481:32;25476:2;25465:9;25461:18;25454:60;;24891:629;;;;;;:::o;25525:472::-;25621:6;25629;25682:2;25670:9;25661:7;25657:23;25653:32;25650:52;;;25698:1;25695;25688:12;25650:52;25730:9;25724:16;25749:31;25774:5;25749:31;:::i;:::-;25848:2;25833:18;;25827:25;25799:5;;-1:-1:-1;;;;;;25864:30:84;;25861:50;;;25907:1;25904;25897:12;25861:50;25930:61;25983:7;25974:6;25963:9;25959:22;25930:61;:::i;:::-;25920:71;;;25525:472;;;;;:::o;26002:1018::-;26097:6;26128:2;26171;26159:9;26150:7;26146:23;26142:32;26139:52;;;26187:1;26184;26177:12;26139:52;26220:9;26214:16;-1:-1:-1;;;;;26245:6:84;26242:30;26239:50;;;26285:1;26282;26275:12;26239:50;26308:22;;26361:4;26353:13;;26349:27;-1:-1:-1;26339:55:84;;26390:1;26387;26380:12;26339:55;26419:2;26413:9;26441:43;26481:2;26441:43;:::i;:::-;26513:2;26507:9;26525:31;26553:2;26545:6;26525:31;:::i;:::-;26591:18;;;26679:1;26675:10;;;;26667:19;;26663:28;;;26625:15;;;;-1:-1:-1;26703:19:84;;;26700:39;;;26735:1;26732;26725:12;26700:39;26759:11;;;;26779:210;26795:6;26790:3;26787:15;26779:210;;;26868:3;26862:10;26885:31;26910:5;26885:31;:::i;:::-;26929:18;;26812:12;;;;26967;;;;26779:210;;27025:290;27094:6;27147:2;27135:9;27126:7;27122:23;27118:32;27115:52;;;27163:1;27160;27153:12;27115:52;27189:16;;-1:-1:-1;;;;;;27234:32:84;;27224:43;;27214:71;;27281:1;27278;27271:12;27320:271;27410:6;27463:2;27451:9;27442:7;27438:23;27434:32;27431:52;;;27479:1;27476;27469:12;27431:52;27511:9;27505:16;27530:31;27555:5;27530:31;:::i;27882:578::-;-1:-1:-1;;;;;28137:32:84;;28119:51;;28206:2;28201;28186:18;;28179:30;;;28225:18;;28218:34;;;-1:-1:-1;;;;;;28264:31:84;;28261:51;;;28308:1;28305;28298:12;28261:51;28342:6;28339:1;28335:14;28399:6;28391;28386:2;28375:9;28371:18;28358:48;28427:22;;;;28451:2;28423:31;;27882:578;-1:-1:-1;;;;27882:578:84:o;28465:1195::-;28569:6;28600:2;28643;28631:9;28622:7;28618:23;28614:32;28611:52;;;28659:1;28656;28649:12;28611:52;28692:9;28686:16;-1:-1:-1;;;;;28762:2:84;28754:6;28751:14;28748:34;;;28778:1;28775;28768:12;28748:34;28816:6;28805:9;28801:22;28791:32;;28861:7;28854:4;28850:2;28846:13;28842:27;28832:55;;28883:1;28880;28873:12;28832:55;28912:2;28906:9;28934:43;28974:2;28934:43;:::i;:::-;29006:2;29000:9;29018:31;29046:2;29038:6;29018:31;:::i;:::-;29084:18;;;29172:1;29168:10;;;;29160:19;;29156:28;;;29118:15;;;;-1:-1:-1;29196:19:84;;;29193:39;;;29228:1;29225;29218:12;29193:39;29260:2;29256;29252:11;29272:357;29288:6;29283:3;29280:15;29272:357;;;29367:3;29361:10;29403:2;29390:11;29387:19;29384:109;;;29447:1;29476:2;29472;29465:14;29384:109;29518:68;29578:7;29573:2;29559:11;29555:2;29551:20;29547:29;29518:68;:::i;:::-;29506:81;;-1:-1:-1;29607:12:84;;;;29305;;29272:357;;;-1:-1:-1;29648:6:84;28465:1195;-1:-1:-1;;;;;;;;28465:1195:84:o;30354:171::-;30422:6;30461:10;;;30449;;;30445:27;;30484:12;;;30481:38;;;30499:18;;:::i;30530:187::-;30569:1;30595:6;30628:2;30625:1;30621:10;30650:3;30640:37;;30657:18;;:::i;:::-;30695:10;;30691:20;;;;;30530:187;-1:-1:-1;;30530:187:84:o;30722:168::-;30789:6;30815:10;;;30827;;;30811:27;;30850:11;;;30847:37;;;30864:18;;:::i;30895:249::-;30964:6;31017:2;31005:9;30996:7;30992:23;30988:32;30985:52;;;31033:1;31030;31023:12;30985:52;31065:9;31059:16;31084:30;31108:5;31084:30;:::i;31149:277::-;31216:6;31269:2;31257:9;31248:7;31244:23;31240:32;31237:52;;;31285:1;31282;31275:12;31237:52;31317:9;31311:16;31370:5;31363:13;31356:21;31349:5;31346:32;31336:60;;31392:1;31389;31382:12;31556:542;31657:2;31652:3;31649:11;31646:446;;;31693:1;31717:5;31714:1;31707:16;31761:4;31758:1;31748:18;31831:2;31819:10;31815:19;31812:1;31808:27;31802:4;31798:38;31867:4;31855:10;31852:20;31849:47;;;-1:-1:-1;31890:4:84;31849:47;31945:2;31940:3;31936:12;31933:1;31929:20;31923:4;31919:31;31909:41;;32000:82;32018:2;32011:5;32008:13;32000:82;;;32063:17;;;32044:1;32033:13;32000:82;;;32004:3;;;31556:542;;;:::o;32274:1202::-;-1:-1:-1;;;;;32391:3:84;32388:27;32385:53;;;32418:18;;:::i;:::-;32447:93;32536:3;32496:38;32528:4;32522:11;32496:38;:::i;:::-;32490:4;32447:93;:::i;:::-;32566:1;32591:2;32586:3;32583:11;32608:1;32603:615;;;;33262:1;33279:3;33276:93;;;-1:-1:-1;33335:19:84;;;33322:33;33276:93;-1:-1:-1;;32231:1:84;32227:11;;;32223:24;32219:29;32209:40;32255:1;32251:11;;;32206:57;33382:78;;32576:894;;32603:615;31503:1;31496:14;;;31540:4;31527:18;;-1:-1:-1;;32639:17:84;;;32739:9;32761:229;32775:7;32772:1;32769:14;32761:229;;;32864:19;;;32851:33;32836:49;;32971:4;32956:20;;;;32924:1;32912:14;;;;32791:12;32761:229;;;32765:3;33018;33009:7;33006:16;33003:159;;;33142:1;33138:6;33132:3;33126;33123:1;33119:11;33115:21;33111:34;33107:39;33094:9;33089:3;33085:19;33072:33;33068:79;33060:6;33053:95;33003:159;;;33205:1;33199:3;33196:1;33192:11;33188:19;33182:4;33175:33;32576:894;;;32274:1202;;;:::o;33481:1081::-;33661:49;33700:9;33692:6;33661:49;:::i;:::-;33642:4;33729:2;33767;33762;33751:9;33747:18;33740:30;33790:1;33823:6;33817:13;33853:36;33879:9;33853:36;:::i;:::-;33925:6;33920:2;33909:9;33905:18;33898:34;33951:2;33972:1;34004;33993:9;33989:17;34020:1;34015:158;;;;34187:1;34182:354;;;;33982:554;;34015:158;34082:3;34078:8;34067:9;34063:24;34058:2;34047:9;34043:18;34036:52;34160:2;34148:6;34141:14;34134:22;34131:1;34127:30;34116:9;34112:46;34108:55;34101:62;;34015:158;;34182:354;34213:6;34210:1;34203:17;34261:2;34258:1;34248:16;34286:1;34300:180;34314:6;34311:1;34308:13;34300:180;;;34407:14;;34383:17;;;34379:26;;34372:50;34450:16;;;;34329:10;;34300:180;;;34504:17;;34523:2;34500:26;;-1:-1:-1;;33982:554:84;-1:-1:-1;34553:3:84;;33481:1081;-1:-1:-1;;;;;;;;;33481:1081:84:o;34567:902::-;34667:6;34720:2;34708:9;34699:7;34695:23;34691:32;34688:52;;;34736:1;34733;34726:12;34688:52;34769:9;34763:16;-1:-1:-1;;;;;34839:2:84;34831:6;34828:14;34825:34;;;34855:1;34852;34845:12;34825:34;34878:22;;;;34934:4;34916:16;;;34912:27;34909:47;;;34952:1;34949;34942:12;34909:47;34985:4;34979:11;35029:4;35021:6;35017:17;35084:6;35072:10;35069:22;35064:2;35052:10;35049:18;35046:46;35043:72;;;35095:18;;:::i;:::-;35131:4;35124:24;35170:9;;35208:3;35198:14;;35188:42;;35226:1;35223;35216:12;35188:42;35239:21;;35299:2;35291:11;;35285:18;35315:16;;;35312:36;;;35344:1;35341;35334:12;35312:36;35381:56;35429:7;35418:8;35414:2;35410:17;35381:56;:::i;:::-;35376:2;35364:15;;35357:81;-1:-1:-1;35368:6:84;34567:902;-1:-1:-1;;;;;34567:902:84:o;35474:179::-;35509:3;35551:1;35533:16;35530:23;35527:120;;;35597:1;35594;35591;35576:23;-1:-1:-1;35634:1:84;35628:8;35623:3;35619:18;35527:120;35474:179;:::o;35658:671::-;35697:3;35739:4;35721:16;35718:26;35715:39;;;35658:671;:::o;35715:39::-;35781:2;35775:9;-1:-1:-1;;35846:16:84;35842:25;;35839:1;35775:9;35818:50;35897:4;35891:11;35921:16;-1:-1:-1;;;;;36027:2:84;36020:4;36012:6;36008:17;36005:25;36000:2;35992:6;35989:14;35986:45;35983:58;;;36034:5;;;;;35658:671;:::o;35983:58::-;36071:6;36065:4;36061:17;36050:28;;36107:3;36101:10;36134:2;36126:6;36123:14;36120:27;;;36140:5;;;;;;35658:671;:::o;36120:27::-;36224:2;36205:16;36199:4;36195:27;36191:36;36184:4;36175:6;36170:3;36166:16;36162:27;36159:69;36156:82;;;36231:5;;;;;;35658:671;:::o;36156:82::-;36247:57;36298:4;36289:6;36281;36277:19;36273:30;36267:4;36247:57;:::i;:::-;-1:-1:-1;36320:3:84;;35658:671;-1:-1:-1;;;;;35658:671:84:o;36334:449::-;-1:-1:-1;;;36591:3:84;36584:32;36566:3;36645:6;36639:13;36661:75;36729:6;36724:2;36719:3;36715:12;36708:4;36700:6;36696:17;36661:75;:::i;:::-;36756:16;;;;36774:2;36752:25;;36334:449;-1:-1:-1;;36334:449:84:o;36788:182::-;-1:-1:-1;;;;;36895:10:84;;;36907;;;36891:27;;36930:11;;;36927:37;;;36944:18;;:::i;37578:767::-;37867:6;37856:9;37849:25;37910:3;37905:2;37894:9;37890:18;37883:31;37951:6;37945:3;37934:9;37930:19;37923:35;38009:6;38001;37995:3;37984:9;37980:19;37967:49;38066:1;38060:3;38051:6;38040:9;38036:22;38032:32;38025:43;37830:4;38127:2;38123:7;38118:2;38110:6;38106:15;38102:29;38091:9;38087:45;38168:6;38163:2;38152:9;38148:18;38141:34;38211:6;38206:2;38195:9;38191:18;38184:34;38279:3;38267:9;38263:2;38259:18;38255:28;38249:3;38238:9;38234:19;38227:57;38301:38;38334:3;38330:2;38326:12;38318:6;38301:38;:::i;:::-;38293:46;37578:767;-1:-1:-1;;;;;;;;;37578:767:84:o;38350:245::-;38408:6;38461:2;38449:9;38440:7;38436:23;38432:32;38429:52;;;38477:1;38474;38467:12;38429:52;38516:9;38503:23;38535:30;38559:5;38535:30;:::i;38600:243::-;38657:6;38710:2;38698:9;38689:7;38685:23;38681:32;38678:52;;;38726:1;38723;38716:12;38678:52;38765:9;38752:23;38784:29;38807:5;38784:29;:::i;38848:135::-;38887:3;38908:17;;;38905:43;;38928:18;;:::i;:::-;-1:-1:-1;38975:1:84;38964:13;;38848:135::o;38988:542::-;39157:5;39144:19;39172:31;39195:7;39172:31;:::i;:::-;39235:4;39226:7;39222:18;39212:28;;39265:4;39259:11;39314:2;39307:3;39303:8;39299:2;39295:17;39292:25;39286:4;39279:39;39366:2;39359:5;39355:14;39342:28;39379:32;39403:7;39379:32;:::i;:::-;39501:20;39491:7;39488:1;39484:15;39480:42;39475:2;-1:-1:-1;;;;;39447:25:84;39443:2;39439:34;39436:42;39433:90;39427:4;39420:104;;;;38988:542;;:::o;39535:257::-;-1:-1:-1;;;;;39656:10:84;;;39668;;;39652:27;39699:20;;;;39606:18;39738:24;;;39728:58;;39766:18;;:::i;:::-;39728:58;;39535:257;;;;:::o;39797:779::-;39844:3;39888:5;39882:12;39915:4;39910:3;39903:17;39957:12;39951:19;40002:4;39995;39990:3;39986:14;39979:28;40028:47;40070:3;40065;40061:13;40045:14;40028:47;:::i;:::-;40016:59;;40130:4;40116:12;40112:23;40106:30;40100:3;40095;40091:13;40084:53;40198:4;40190;40183:5;40179:16;40173:23;40169:34;40162:4;40157:3;40153:14;40146:58;40265:4;40257;40250:5;40246:16;40240:23;40236:34;40229:4;40224:3;40220:14;40213:58;40332:4;40324;40317:5;40313:16;40307:23;40303:34;40296:4;40291:3;40287:14;40280:58;40386:4;40379:5;40375:16;40369:23;40347:45;;-1:-1:-1;;;;;40481:2:84;40465:14;40461:23;40454:4;40449:3;40445:14;40438:47;40546:2;40538:4;40531:5;40527:16;40521:23;40517:32;40510:4;40505:3;40501:14;40494:56;;40566:4;40559:11;;;;39797:779;;;;:::o;40581:679::-;40914:6;40903:9;40896:25;-1:-1:-1;;;;;40961:6:84;40957:31;40952:2;40941:9;40937:18;40930:59;41025:6;41020:2;41009:9;41005:18;40998:34;41068:6;41063:2;41052:9;41048:18;41041:34;41084:61;41140:3;41129:9;41125:19;41117:6;41084:61;:::i;:::-;41182:3;41176;41165:9;41161:19;41154:32;40877:4;41203:51;41249:3;41238:9;41234:19;41226:6;41203:51;:::i;:::-;41195:59;40581:679;-1:-1:-1;;;;;;;;40581:679:84:o;41265:561::-;41550:6;41539:9;41532:25;-1:-1:-1;;;;;41597:6:84;41593:31;41588:2;41577:9;41573:18;41566:59;41661:6;41656:2;41645:9;41641:18;41634:34;41704:6;41699:2;41688:9;41684:18;41677:34;41748:3;41742;41731:9;41727:19;41720:32;41513:4;41769:51;41815:3;41804:9;41800:19;41792:6;41769:51;:::i;41831:128::-;41898:9;;;41919:11;;;41916:37;;;41933:18;;:::i;41964:1341::-;42088:3;42082:10;-1:-1:-1;;;;;42107:6:84;42104:30;42101:56;;;42137:18;;:::i;:::-;42166:96;42255:6;42215:38;42247:4;42241:11;42215:38;:::i;:::-;42209:4;42166:96;:::i;:::-;42317:4;;42374:2;42363:14;;42391:1;42386:662;;;;43092:1;43109:6;43106:89;;;-1:-1:-1;43161:19:84;;;43155:26;43106:89;-1:-1:-1;;32231:1:84;32227:11;;;32223:24;32219:29;32209:40;32255:1;32251:11;;;32206:57;43208:81;;42356:943;;42386:662;31503:1;31496:14;;;31540:4;31527:18;;-1:-1:-1;;42422:20:84;;;42539:236;42553:7;42550:1;42547:14;42539:236;;;42642:19;;;42636:26;42621:42;;42734:27;;;;42702:1;42690:14;;;;42569:19;;42539:236;;;42543:3;42803:6;42794:7;42791:19;42788:201;;;42864:19;;;42858:26;-1:-1:-1;;42947:1:84;42943:14;;;42959:3;42939:24;42935:37;42931:42;42916:58;42901:74;;42788:201;-1:-1:-1;;;;;43035:1:84;43019:14;;;43015:22;43002:36;;-1:-1:-1;41964:1341:84:o;43581:180::-;-1:-1:-1;;;;;43686:10:84;;;43698;;;43682:27;;43721:11;;;43718:37;;;43735:18;;:::i;43957:112::-;43989:1;44015;44005:35;;44020:18;;:::i;:::-;-1:-1:-1;44054:9:84;;43957:112::o;44482:151::-;44572:4;44565:12;;;44551;;;44547:31;;44590:14;;44587:40;;;44607:18;;:::i",
|
|
41352
41352
|
"source": "// SPDX-License-Identifier: MIT\n\n/* solhint-disable var-name-mixedcase */\n\npragma solidity >=0.7.0 <0.9.0;\npragma experimental ABIEncoderV2;\n\nimport \"./WitnetOracleTrustableBase.sol\";\n\n/// @title Witnet Request Board \"trustable\" implementation contract.\n/// @notice Contract to bridge requests to Witnet Decentralized Oracle Network.\n/// @dev This contract enables posting requests that Witnet bridges will insert into the Witnet network.\n/// The result of the requests will be posted back to this contract by the bridge nodes too.\n/// @author The Witnet Foundation\ncontract WitnetOracleTrustableDefault\n is \n WitnetOracleTrustableBase\n{\n function class() virtual override public view returns (string memory) {\n return type(WitnetOracleTrustableDefault).name;\n }\n\n uint256 internal immutable __reportResultGasBase;\n uint256 internal immutable __reportResultWithCallbackGasBase;\n uint256 internal immutable __reportResultWithCallbackRevertGasBase;\n uint256 internal immutable __sstoreFromZeroGas;\n\n constructor(\n WitnetRequestFactory _factory,\n WitnetRequestBytecodes _registry,\n bool _upgradable,\n bytes32 _versionTag,\n uint256 _reportResultGasBase,\n uint256 _reportResultWithCallbackGasBase,\n uint256 _reportResultWithCallbackRevertGasBase,\n uint256 _sstoreFromZeroGas\n )\n WitnetOracleTrustableBase(\n _factory, \n _registry,\n _upgradable, \n _versionTag, \n address(0)\n )\n { \n __reportResultGasBase = _reportResultGasBase;\n __reportResultWithCallbackGasBase = _reportResultWithCallbackGasBase;\n __reportResultWithCallbackRevertGasBase = _reportResultWithCallbackRevertGasBase;\n __sstoreFromZeroGas = _sstoreFromZeroGas;\n }\n\n\n // ================================================================================================================\n // --- Overrides 'IWitnetOracle' ----------------------------------------------------------------------------\n\n /// @notice Estimate the minimum reward required for posting a data request.\n /// @dev Underestimates if the size of returned data is greater than `_resultMaxSize`. \n /// @param _gasPrice Expected gas price to pay upon posting the data request.\n /// @param _resultMaxSize Maximum expected size of returned data (in bytes).\n function estimateBaseFee(uint256 _gasPrice, uint16 _resultMaxSize)\n public view\n virtual override\n returns (uint256)\n {\n return _gasPrice * (\n __reportResultGasBase\n + __sstoreFromZeroGas * (\n 4 + (_resultMaxSize == 0 ? 0 : _resultMaxSize - 1) / 32\n )\n );\n }\n\n /// @notice Estimate the minimum reward required for posting a data request with a callback.\n /// @param _gasPrice Expected gas price to pay upon posting the data request.\n /// @param _callbackGasLimit Maximum gas to be spent when reporting the data request result.\n function estimateBaseFeeWithCallback(uint256 _gasPrice, uint24 _callbackGasLimit)\n public view\n virtual override\n returns (uint256)\n {\n uint _reportResultWithCallbackGasThreshold = (\n __reportResultWithCallbackRevertGasBase\n + 3 * __sstoreFromZeroGas\n );\n if (\n _callbackGasLimit < _reportResultWithCallbackGasThreshold\n || __reportResultWithCallbackGasBase + _callbackGasLimit < _reportResultWithCallbackGasThreshold\n ) {\n return (\n _gasPrice\n * _reportResultWithCallbackGasThreshold\n );\n } else {\n return (\n _gasPrice \n * (\n __reportResultWithCallbackGasBase\n + _callbackGasLimit\n )\n );\n }\n }\n\n\n // ================================================================================================================\n // --- Overrides 'Payable' ----------------------------------------------------------------------------------------\n\n /// Gets current transaction price.\n function _getGasPrice()\n internal view\n virtual override\n returns (uint256)\n {\n return tx.gasprice;\n }\n\n /// Gets current payment value.\n function _getMsgValue()\n internal view\n virtual override\n returns (uint256)\n {\n return msg.value;\n }\n\n /// Transfers ETHs to given address.\n /// @param _to Recipient address.\n /// @param _amount Amount of ETHs to transfer.\n function __safeTransferTo(address payable _to, uint256 _amount)\n internal\n virtual override\n {\n payable(_to).transfer(_amount);\n } \n}\n",
|
|
41353
|
-
"sourcePath": "/home/
|
|
41353
|
+
"sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/core/defaults/WitnetOracleTrustableDefault.sol",
|
|
41354
41354
|
"ast": {
|
|
41355
41355
|
"absolutePath": "project:/contracts/core/defaults/WitnetOracleTrustableDefault.sol",
|
|
41356
41356
|
"exportedSymbols": {
|
|
@@ -43887,7 +43887,7 @@
|
|
|
43887
43887
|
},
|
|
43888
43888
|
"networks": {},
|
|
43889
43889
|
"schemaVersion": "3.4.16",
|
|
43890
|
-
"updatedAt": "2025-10-
|
|
43890
|
+
"updatedAt": "2025-10-15T18:03:23.683Z",
|
|
43891
43891
|
"devdoc": {
|
|
43892
43892
|
"author": "The Witnet Foundation",
|
|
43893
43893
|
"details": "This contract enables posting requests that Witnet bridges will insert into the Witnet network. The result of the requests will be posted back to this contract by the bridge nodes too.",
|
|
@@ -41350,7 +41350,7 @@
|
|
|
41350
41350
|
"sourceMap": "579:2500:31:-:0;;;653:10:28;617:46;;-1:-1:-1;;;1310:72:36;;807:684:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1227:8;1250:9;1273:11;1299;1324:20;1358:32;1404:38;1456:18;1453:8:37;1476:9;1499:11;1525;1559:1;3269:9:36;3322:11;3347;670:279:28;;;;;;;;;;;;;;;;;817:11;3240:10:36;1297:1:1;-1:-1:-1;;;;;1273:26:1;:12;-1:-1:-1;;;;;1273:26:1;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:1;;1350:1;1322:31;;;1282:51:84;1255:18;;1322:31:1;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;1250:4:83;1265:13;;1288:27;;;;1857:1:4;2061:7;:21;844:40:28::1;::::0;;;;910:32;;::::1;::::0;;::::1;::::0;894:48:::1;::::0;-1:-1:-1;;;;;;332:28:80;;;;;3424:20:36;;::::3;;::::0;-1:-1:-1;;;3454:20:36::3;;::::0;1589:44:37::1;::::0;;;;1643:68:::1;::::0;;;;1721:80:::1;::::0;1811:40:::1;::::0;-1:-1:-1;579:2500:31;;-1:-1:-1;;;;;;;;;;;579:2500:31;1437:153:79;1526:13;1519:20;;-1:-1:-1;;;;;;1519:20:79;;;1549:34;1574:8;1549:24;:34::i;:::-;1437:153;:::o;2912:187:1:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:1;;;-1:-1:-1;;;;;;3020:17:1;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:153:84:-;-1:-1:-1;;;;;111:31:84;;101:42;;91:70;;157:1;154;147:12;172:959;360:6;368;376;384;392;400;408;416;469:3;457:9;448:7;444:23;440:33;437:53;;;486:1;483;476:12;437:53;518:9;512:16;537:53;584:5;537:53;:::i;:::-;659:2;644:18;;638:25;609:5;;-1:-1:-1;672:55:84;638:25;672:55;:::i;:::-;798:2;783:18;;777:25;746:7;;-1:-1:-1;840:15:84;;833:23;821:36;;811:64;;871:1;868;861:12;811:64;941:2;926:18;;920:25;985:3;970:19;;964:26;1030:3;1015:19;;1009:26;1075:3;1060:19;;1054:26;1120:3;1105:19;;;1099:26;172:959;;;;-1:-1:-1;894:7:84;;920:25;;964:26;;1009;;-1:-1:-1;1054:26:84;;-1:-1:-1;1099:26:84;-1:-1:-1;172:959:84;-1:-1:-1;;;172:959:84:o;1136:203::-;579:2500:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
|
|
41351
41351
|
"deployedSourceMap": "579:2500:31:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3525:32:36;;;;;;;;;;;;;;-1:-1:-1;;;3525:32:36;;;:7;:32::i;:::-;579:2500:31;;;;;;;;;;;-1:-1:-1;3937:319:36;4017:42;4049:7;;4036:22;;4017:18;:42::i;:::-;4073:47;4092:27;4105:7;;4092:27;;;4073:18;:47::i;:::-;4134:48;4153:28;4166:7;;4153:28;;;4134:18;:48::i;:::-;4196;4215:28;4228:7;;4215:28;;;4196:18;:48::i;:::-;3952:302;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3937:7;:319::i;28848:140::-;;;;;;;;;;-1:-1:-1;28848:140:36;;;;;:::i;:::-;;:::i;:::-;;;1899:14:84;;1892:22;1874:41;;1862:2;1847:18;28848:140:36;;;;;;;;3077:896:37;;;;;;;;;;-1:-1:-1;3077:896:37;;;;;:::i;:::-;;:::i;:::-;;;2495:25:84;;;2483:2;2468:18;3077:896:37;2349:177:84;26837:1625:36;;;;;;;;;;-1:-1:-1;26837:1625:36;;;;;:::i;:::-;;:::i;9563:389::-;;;;;;;;;;-1:-1:-1;9563:389:36;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10663:211::-;;;;;;;;;;-1:-1:-1;10663:211:36;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11778:222::-;;;;;;;;;;-1:-1:-1;11778:222:36;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;29683:334::-;;;;;;;;;;-1:-1:-1;29683:334:36;;;;;:::i;:::-;;:::i;15223:558::-;;;;;;:::i;:::-;;:::i;6259:1577::-;;;;;;;;;;-1:-1:-1;6259:1577:36;;;;;:::i;:::-;;:::i;22765:251::-;;;;;;;;;;-1:-1:-1;22765:251:36;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;29257:148::-;;;;;;;;;;-1:-1:-1;29257:148:36;;;;;:::i;:::-;;:::i;1433:75:83:-;;;;;;;;;;-1:-1:-1;1496:5:83;1433:75;;;-1:-1:-1;;;;;10568:32:84;;;10550:51;;10538:2;10523:18;1433:75:83;10404:203:84;1748:47:28;;;;;;;;;;;;;;;1874:86:83;;;;;;;;;;-1:-1:-1;1942:11:83;1874:86;;2118:133:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13788:404:36:-;;;;;;;;;;-1:-1:-1;13788:404:36;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;23662:791::-;;;;;;;;;;-1:-1:-1;23662:791:36;;;;;:::i;:::-;;:::i;7920:265::-;;;;;;;;;;-1:-1:-1;7920:265:36;;;;;:::i;:::-;;:::i;13577:205::-;;;;;;;;;;-1:-1:-1;13577:205:36;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10313:207::-;;;;;;;;;;-1:-1:-1;10313:207:36;;;;;:::i;:::-;10430:7;10460:35;;;-1:-1:-1;;;;;;;;;;;10460:35:36;;;;;:53;-1:-1:-1;;;10460:53:36;;-1:-1:-1;;;;;10460:53:36;;10313:207;2293:101:1;;;;;;;;;;;;;:::i;1670:239:79:-;;;;;;;;;;;;;:::i;1388:57:36:-;;;;;;;;;;;;;;;4269:148;;;;;;;;;;-1:-1:-1;4368:40:36;;;4387:4;4368:40;;;;30249:51:84;;;;4394:13:36;30316:18:84;;;30309:34;4368:40:36;;;;;;;;;30222:18:84;;;;4368:40:36;;;4358:51;;;;;4269:148;;;-1:-1:-1;;;;;;13358:33:84;;;13340:52;;13328:2;13313:18;4269:148:36;13196:202:84;2436:359:37;;;;;;;;;;-1:-1:-1;2436:359:37;;;;;:::i;:::-;;:::i;12173:234:36:-;;;;;;;;;;-1:-1:-1;12173:234:36;;;;;:::i;:::-;;:::i;1638:85:1:-;;;;;;;;;;-1:-1:-1;1684:7:1;1710:6;-1:-1:-1;;;;;1710:6:1;1638:85;;21240:1314:36;;;;;;;;;;-1:-1:-1;21240:1314:36;;;;;:::i;:::-;;:::i;:::-;;;;15146:25:84;;;15202:2;15187:18;;15180:34;;;;15119:18;21240:1314:36;14972:248:84;8798:405:36;;;;;;;;;;-1:-1:-1;8798:405:36;;;;;:::i;:::-;;:::i;19207:830::-;;;;;;:::i;:::-;;:::i;2821:251:31:-;;;;;;;;;;-1:-1:-1;2821:251:31;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1611:171:83:-;;;;;;;;;;-1:-1:-1;1697:5:83;1748:18;1611:171;;1310:72:36;;;;;;;;;;;;;;;1893:225:31;;;;;;;;;;-1:-1:-1;1893:225:31;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;25180:1008:36:-;;;;;;;;;;-1:-1:-1;25180:1008:36;;;;;:::i;:::-;;:::i;668:133:31:-;;;;;;;;;;;;;:::i;4624:112:36:-;;;;;;;;;;-1:-1:-1;4720:9:36;4624:112;;14281:140;;;;;;;;;;;;;:::i;617:46:28:-;;;;;;;;;;;;;;;783:99:79;;;;;;;;;;-1:-1:-1;862:13:79;;-1:-1:-1;;;;;862:13:79;783:99;;155:32:80;;;;;;;;;;;;;;;17140:704:36;;;;;;:::i;:::-;;:::i;20274:415::-;;;;;;:::i;:::-;;:::i;1075:178:79:-;;;;;;;;;;-1:-1:-1;1075:178:79;;;;;:::i;:::-;;:::i;2404:254:31:-;;;;;;;;;;-1:-1:-1;2404:254:31;;;;;:::i;:::-;;:::i;2700:225:28:-;2838:7;:5;:7::i;:::-;2885:8;2804:103;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2804:103:28;;;;;;;;;;-1:-1:-1;;;2777:141:28;;;;;;;:::i;:::-;;;;;;;;19497:383:64;19614:12;;;19624:1;19614:12;;;;;;;;;19567:13;;19596:15;;19614:12;;;;;;;;;;;-1:-1:-1;;19596:30:64;-1:-1:-1;19636:8:64;19653:7;19658:2;19653;:7;:::i;:::-;19647:19;;19664:2;19647:19;:::i;:::-;19636:30;-1:-1:-1;19676:8:64;19693:7;19698:2;19693;:7;:::i;:::-;19687:19;;19704:2;19687:19;:::i;:::-;19676:30;;19725:2;19720;:7;;;19716:32;;;19741:7;19747:1;19741:7;;:::i;:::-;;;19716:32;19767:2;19762;:7;;;19758:32;;;19783:7;19789:1;19783:7;;:::i;:::-;;;19758:32;19815:2;19808:10;;19800:2;19803:1;19800:5;;;;;;;;:::i;:::-;;;;:18;-1:-1:-1;;;;;19800:18:64;;;;;;;;;19843:2;19836:10;;19828:2;19831:1;19828:5;;;;;;;;:::i;:::-;;;;:18;-1:-1:-1;;;;;19828:18:64;;;;;;;;-1:-1:-1;19870:2:64;;19497:383;-1:-1:-1;;;;19497:383:64:o;28848:140:36:-;-1:-1:-1;;;;;1197:22:41;;28917:4:36;1197:22:41;;;:16;:22;;;;;;;;28940:41:36;28933:48;28848:140;-1:-1:-1;;28848:140:36:o;3077:896:37:-;3221:7;;3361:23;3365:19;3361:1;:23;:::i;:::-;3303:81;;:39;:81;:::i;:::-;3244:150;;3441:37;3421:17;:57;;;:170;;;-1:-1:-1;3554:37:37;3498:53;;;;:33;:53;:::i;:::-;:93;3421:170;3404:563;;;3641:69;3673:37;3641:9;:69;:::i;:::-;3616:108;;;;;3404:563;3839:81;;;;:33;:81;:::i;:::-;3780:162;;:9;:162;:::i;3404:563::-;3234:739;3077:896;;;;:::o;26837:1625:36:-;26989:20;2880:102;-1:-1:-1;;;;;;;;;;;2902:11:36;2924:10;2902:33;;;;:21;;;;;:33;;;;;;;;;;2880:102;;;;;;;;;;;-1:-1:-1;;;2880:102:36;;;;;;;2902:33;;;2880:8;:102::i;:::-;27031:7:::1;27025:1183;27044:25:::0;;::::1;27025:1183;;;27199:27;27113:62;27149:13;;27163:2;27149:17;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:25;27113:35;:62::i;:::-;:113;;;;;;;;:::i;:::-;;27092:1106;;27264:176;27302:13;;27316:2;27302:17;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;27349:73;::::0;-1:-1:-1;;;27349:73:36;;27302:25;::::1;::::0;27349:19:::1;::::0;:44:::1;::::0;:73:::1;::::0;27394:27:::1;::::0;27349:73:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;27349:73:36::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;27264:176;;;;;;;:::i;:::-;;;;;;;;27092:1106;;;27482:13;;27496:2;27482:17;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:38;::::0;;;;;::::1;;;:::i;:::-;:43;;::::0;;:117:::1;;;27549:13;;27563:2;27549:17;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:38;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;:50:::0;;-1:-1:-1;27482:117:36::1;27461:737;;;27637:232;27675:13;;27689:2;27675:17;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:25;27772:7;:5;:7::i;:::-;27730:120;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;27730:120:36;;::::1;::::0;;;;;;;27637:232:::1;::::0;;::::1;:::i;27461:737::-;27924:259;27960:13;;27974:2;27960:17;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:25;28007:13:::0;;28021:2;28007:17;;::::1;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:38;::::0;;;;;::::1;;;:::i;:::-;28067:13;;28081:2;28067:17;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:38;;;28127:13;;28141:2;28127:17;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:38;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;27924:14;:259::i;:::-;27908:275;::::0;;::::1;:::i;:::-;;;27461:737;27071:5;;27025:1183;;;-1:-1:-1::0;28316:16:36;;28312:144:::1;;28348:97;28390:10;28419:12;28348:16;:97::i;9563:389::-:0;9777:34;;:::i;:::-;9674:14;9690:30;;2349:45;2385:8;2349:35;:45::i;:::-;:56;;;;;;;;:::i;:::-;;2345:169;;2425:53;;-1:-1:-1;;;2425:53:36;;2417:62;;2425:19;;:44;;:53;;2470:7;;2425:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2425:53:36;;;;;;;;;;;;:::i;:::-;2417:7;:62::i;:::-;2345:169;;;9744:14:::1;2640:136;2676:46;2713:8;2676:36;:46::i;:::-;:56:::0;2640:136:::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;2640:136:36::1;::::0;::::1;::::0;-1:-1:-1;;;;;2676:56:36;;::::1;2662:10;:70;::::0;2640:8:::1;:136::i;:::-;9839:45:::2;9869:14;9839:29;:45::i;:::-;9827:66;::::0;;::::2;::::0;::::2;::::0;;9839:54:::2;::::0;::::2;9827:66:::0;;-1:-1:-1;;;;;9827:66:36;::::2;::::0;;-1:-1:-1;;;9827:66:36;::::2;-1:-1:-1::0;;;;;9827:66:36::2;;::::0;::::2;::::0;-1:-1:-1;;;9827:66:36;::::2;;;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;::::2;::::0;::::2;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;9910:11;-1:-1:-1::0;;;;;;;;;;;1067:28:41;2118:133:28;9910:11:36::2;:35;::::0;;;:19:::2;::::0;;::::2;:35;::::0;;;;9903:42;;;9910:35;;;;;9903:42:::2;::::0;;::::2;9910:35:::0;9903:42:::2;:::i;:::-;-1:-1:-1::0;9903:42:36::2;;::::0;::::2;::::0;;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;9903:42:36;;;::::2;::::0;::::2;::::0;;;;;;;;;;::::2;::::0;;;;::::2;:::i;:::-;;;;;2504:1:::1;2345:169:::0;9563:389;;;;;:::o;10663:211::-;10769:23;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10769:23:36;10815:52;10852:14;10815:36;:52::i;:::-;10808:59;;;;;;;;;;-1:-1:-1;;;;;10808:59:36;;;;-1:-1:-1;;;10808:59:36;;;;;;;;-1:-1:-1;;;10808:59:36;;-1:-1:-1;;;;;10808:59:36;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10808:59:36;;;-1:-1:-1;;10808:59:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10808:59:36;;;;;;;;;;;;-1:-1:-1;;10663:211:36:o;11778:222::-;11888:23;11934:59;11978:14;11934:43;:59::i;29683:334::-;1531:13:1;:11;:13::i;:::-;29807:7:36::1;29802:166;29825:12;:19;29820:2;:24;29802:166;;;29867:17;29887:12;29900:2;29887:16;;;;;;;;:::i;:::-;;;;;;;29867:36;;29952:5;29917:11;-1:-1:-1::0;;;;;;;;;;;1067:28:41;2118:133:28;29917:11:36::1;-1:-1:-1::0;;;;;29917:32:36;;;::::1;;::::0;;;:21:::1;::::0;;::::1;:32;::::0;;;;;:40;;-1:-1:-1;;29917:40:36::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;29846:5:36::1;29802:166;;;;29982:28;29997:12;29982:28;;;;;;:::i;:::-;;;;;;;;29683:334:::0;:::o;15223:558::-;15495:22;15406:42;4379:11:37;15438:9:36;15406:15;:42::i;:::-;1825:94;1865:8;4557:9:37;1847:14:36;:26;;1825:94;;;;;;;;;;;;;-1:-1:-1;;;1825:94:36;;;:8;:94::i;:::-;1930;1970:13;:8;1981:2;1970:13;:::i;:::-;4557:9:37;1952:31:36;;1930:94;;;;;;;;;;;;;-1:-1:-1;;;1930:94:36;;;:8;:94::i;:::-;15467:9:::1;2108:81;2130:21;2147:3;2130:16;:21::i;:::-;2108:81;;;;;;;;;;;;;-1:-1:-1::0;;;2108:81:36::1;;::::0;:8:::1;:81::i;:::-;15550:38:::2;15564:9;15575;15586:1;15550:13;:38::i;:::-;15533:55:::0;-1:-1:-1;15673:101:36::2;15533:55:::0;4557:9:37;15755::36::2;15673:101;;;;;;;;:::i;:::-;;;;;;;;2034:1:::1;15223:558:::0;;;;;:::o;6259:1577::-;6349:14;1710:6:1;-1:-1:-1;;;;;1710:6:1;6383:30:36;1710:6:1;6424:603:36;;6520:29;6603:9;6592:39;;;;;;;;;;;;:::i;:::-;6563:68;;-1:-1:-1;6563:68:36;-1:-1:-1;6645:26:36;6563:68;6645:18;:26::i;:::-;6712:16;6701:41;;;;;;;;;;;;:::i;:::-;6685:57;;6450:303;6424:603;;;6815:93;6855:6;-1:-1:-1;;;;;6841:20:36;:10;-1:-1:-1;;;;;6841:20:36;;6815:93;;;;;;;;;;;;;-1:-1:-1;;;6815:93:36;;;:8;:93::i;:::-;6993:9;6982:34;;;;;;;;;;;;:::i;:::-;6966:50;;6424:603;7054:22;;:36;;;;:92;;-1:-1:-1;7110:22:36;;1697:5:83;1748:18;7110:36:36;7054:92;7037:172;;;7171:27;;;;;;;;;;;;;;-1:-1:-1;;;7171:27:36;;;:7;:27::i;:::-;1697:5:83;1748:18;7218:22:36;:35;7264:100;;;;;;;;;;;;-1:-1:-1;;;7264:100:36;;;;;;7294:9;-1:-1:-1;;;;;7286:30:36;;:34;;;7264:8;:100::i;:::-;7374:128;-1:-1:-1;;;;;;;;7396:60:36;;:9;-1:-1:-1;;;;;7396:15:36;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7396:60:36;;;7374:128;;;;;;;;;;;;;-1:-1:-1;;;7374:128:36;;;:8;:128::i;:::-;7512:181;7573:4;-1:-1:-1;;;;;7534:44:36;7542:9;-1:-1:-1;;;;;7542:16:36;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7534:44:36;;:115;;;;;7640:8;-1:-1:-1;;;;;7599:50:36;7607:9;-1:-1:-1;;;;;7607:18:36;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7599:50:36;;7534:115;7512:181;;;;;;;;;;;;;-1:-1:-1;;;7512:181:36;;;:8;:181::i;:::-;7737:29;7752:13;7737:14;:29::i;:::-;1697:5:83;1748:18;1496:5;-1:-1:-1;;;;;7782:47:36;7791:6;-1:-1:-1;;;;;7782:47:36;;7819:9;:7;:9::i;:::-;7782:47;;;;;;:::i;:::-;;;;;;;;6339:1497;;6259:1577;:::o;22765:251::-;22943:66;;-1:-1:-1;;;22943:66:36;;22895:25;;22943:19;;:45;;:66;;22989:8;;22999:9;;;;22943:66;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22943:66:36;;;;;;;;;;;;:::i;:::-;22936:73;22765:251;-1:-1:-1;;;22765:251:36:o;29257:148::-;1531:13:1;:11;:13::i;:::-;29372:26:36::1;29387:10;29372:14;:26::i;:::-;29257:148:::0;:::o;2118:133:28:-;2175:13;2207:37;2217:26;2207:9;:37::i;:::-;2200:44;;2118:133;:::o;13788:404:36:-;13909:37;13999:15;-1:-1:-1;;;;;13972:50:36;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13972:50:36;;13962:60;;14037:8;14032:154;14051:28;;;14032:154;;;14118:57;14154:15;;14170:3;14154:20;;;;;;;:::i;:::-;;;;;;;14118:35;:57::i;:::-;14103:7;14111:3;14103:12;;;;;;;;:::i;:::-;;;;;;:72;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;14081:6:36;;14032:154;;23662:791;23962:7;2880:102;-1:-1:-1;;;;;;;;;;;2902:11:36;2118:133:28;2880:102:36;23900:14;23916:27:::1;::::0;2349:45:::1;2385:8;2349:35;:45::i;:::-;:56;;;;;;;;:::i;:::-;;2345:169;;2425:53;::::0;-1:-1:-1;;;2425:53:36;;2417:62:::1;::::0;2425:19:::1;::::0;:44:::1;::::0;:53:::1;::::0;2470:7;;2425:53:::1;;;:::i;2417:62::-;2345:169;;;24021:110:::2;::::0;;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;;24021:110:36::2;::::0;::::2;::::0;::::2;::::0;24043:39;;::::2;::::0;24021:8:::2;:110::i;:::-;24266:180;24303:14;24338:15;24368:27;24409;;24266:23;:180::i;:::-;24259:187;;2504:1;2992::::1;;23662:791:::0;;;;;;:::o;7920:265::-;7993:4;1942:11:83;8118:50:36;;;;;8163:5;-1:-1:-1;;;;;8152:16:36;:7;1684::1;1710:6;-1:-1:-1;;;;;1710:6:1;;1638:85;8152:7:36;-1:-1:-1;;;;;8152:16:36;;8009:169;7920:265;-1:-1:-1;;7920:265:36:o;13577:205::-;13681:20;13724:51;13760:14;13724:35;:51::i;2293:101:1:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1670:239:79:-;862:13;;735:10:3;;-1:-1:-1;;;;;862:13:79;1765:24;;1761:106;;1805:51;;-1:-1:-1;;;1805:51:79;;29867:2:84;1805:51:79;;;29849:21:84;29906:2;29886:18;;;29879:30;29945:34;29925:18;;;29918:62;-1:-1:-1;;;29996:18:84;;;29989:39;30045:19;;1805:51:79;29665:405:84;1761:106:79;1876:26;1895:6;1876:18;:26::i;2436:359:37:-;2565:7;2758:2;2710:19;;;;:44;;2736:18;2753:1;2736:14;:18;:::i;:::-;2710:44;;;2732:1;2710:44;2709:51;;;;:::i;:::-;2705:55;;:1;:55;:::i;:::-;2661:117;;;;:19;:117;:::i;:::-;2621:157;;:21;:157;:::i;:::-;2595:193;;:9;:193;:::i;12173:234:36:-;12296:12;12331:53;12369:14;12331:37;:53::i;:::-;:69;;12324:76;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12173:234;;;:::o;21240:1314::-;21491:17;21510;21548:8;21543:1005;21562:28;;;21543:1005;;;21679:27;21618:57;21654:15;;21670:3;21654:20;;;;;;;:::i;21618:57::-;:88;;;;;;;;:::i;:::-;;21614:924;;21726:34;21763:58;21800:15;;21816:3;21800:20;;;;;;;:::i;:::-;;;;;;;21763:36;:58::i;:::-;21852:19;;;;-1:-1:-1;21839:32:36;;-1:-1:-1;;;21852:19:36;;-1:-1:-1;;;;;21852:19:36;21839:32;;:::i;:::-;21893:21;;21839:32;;-1:-1:-1;;;;21893:21:36;;;;:25;21889:550;;21996:21;;21955:63;;21983:11;;-1:-1:-1;;;21996:21:36;;;;21955:27;:63::i;:::-;21942:76;;;;:::i;:::-;;;21889:550;;;22069:19;;;;:33;22065:356;;22143:49;22159:11;22172:9;:19;;;22143:15;:49::i;22065:356::-;22358:39;22374:11;22394:1;22358:15;:39::i;:::-;22345:52;;;;:::i;:::-;;;22065:356;22510:13;22470:37;:9;:19;;:35;:37::i;:::-;-1:-1:-1;;;;;22470:53:36;;;;;:::i;:::-;22456:67;;;;:::i;:::-;;;21708:830;21614:924;21592:6;;21543:1005;;;;21240:1314;;;;;;;;;:::o;8798:405::-;8967:49;;-1:-1:-1;;;8967:49:36;;;;;2495:25:84;;;8920:7:36;;;;-1:-1:-1;;;;;8967:8:36;:40;;;;2468:18:84;;8967:49:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8943:73;;9026:78;9065:1;9048:14;:18;;;9026:78;;;;;;;;;;;;;-1:-1:-1;;;9026:78:36;;;:8;:78::i;:::-;9121:75;9150:8;9172:14;9121:15;:75::i;:::-;9114:82;8798:405;-1:-1:-1;;;;8798:405:36:o;19207:830::-;19650:22;19479:10;19491:22;1594:166;1616:17;;:21;;;;:77;;-1:-1:-1;1641:52:36;;-1:-1:-1;;;1641:52:36;;1687:4;1641:52;;;10550:51:84;-1:-1:-1;;;;;1641:37:36;;;;;10523:18:84;;1641:52:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1616:102;;;;;1717:1;1697:17;:21;;;1616:102;1594:166;;;;;;;;;;;;;-1:-1:-1;;;1594:166:36;;;:8;:166::i;:::-;19535:68:::1;4379:11:37::0;19563:14:36::1;19580:22;19535:27;:68::i;:::-;1825:94;1865:8:::0;4557:9:37;1847:14:36::1;4439:134:37::0;1825:94:36::1;1930;1970:13;:8:::0;1981:2:::1;1970:13;:::i;1930:94::-;19622:9:::2;2108:81;2130:21;2147:3;2130:16;:21::i;2108:81::-;19705:106:::3;19740:1;19756:9:::0;19779:22;19705:13:::3;:106::i;:::-;19688:123;;19891:24;;19821:52;19858:14;19821:36;:52::i;:::-;:67;;::::0;:94:::3;::::0;;:67;:94:::3;:::i;:::-;-1:-1:-1::0;19930:100:36::3;19955:14:::0;4557:9:37;20011::36::3;19930:100;;;;;;;;:::i;:::-;;;;;;;;2034:1:::2;1762::::1;19207:830:::0;;;;;;;;:::o;2821:251:31:-;-1:-1:-1;;;;;;;;;;;;;;;;;2935:8:31;2640:136:36;2676:46;2713:8;2676:36;:46::i;2640:136::-;3010:55:31::1;3056:8;3010:45;:55::i;:::-;3003:62;;2778:1:36;2821:251:31::0;;;;:::o;1893:225::-;2023:21;;:::i;:::-;1996:8;2640:136:36;2676:46;2713:8;2676:36;:46::i;2640:136::-;2067:44:31::1;2102:8;2067:34;:44::i;25180:1008:36:-:0;25537:7;2880:102;-1:-1:-1;;;;;;;;;;;2902:11:36;2118:133:28;2880:102:36;25475:14;25491:27:::1;::::0;2349:45:::1;2385:8;2349:35;:45::i;:::-;:56;;;;;;;;:::i;:::-;;2345:169;;2425:53;::::0;-1:-1:-1;;;2425:53:36;;2417:62:::1;::::0;2425:19:::1;::::0;:44:::1;::::0;:53:::1;::::0;2470:7;;2425:53:::1;;;:::i;2417:62::-;2345:169;;;25590:160:::2;25642:1;25612:27;:31;;;:98;;;;;25695:15;25664:27;:46;;;;25612:98;25590:160;;;;;;;;;;;;;-1:-1:-1::0;;;25590:160:36::2;;::::0;:8:::2;:160::i;:::-;25795:110;::::0;;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;;25795:110:36::2;::::0;::::2;::::0;::::2;::::0;25817:39;;::::2;::::0;25795:8:::2;:110::i;:::-;25997:184;26034:14;26062:27;26103;26144;;25997:23;:184::i;:::-;25989:192;;2504:1;2992::::1;;25180:1008:::0;;;;;;;:::o;668:133:31:-;755:39;;;;;;;;;;;;;;;;;;668:133::o;14281:140:36:-;14363:7;-1:-1:-1;;;;;;;;;;;14393:17:36;:21;;14413:1;14393:21;:::i;17140:704::-;17561:22;17390:10;17402:22;1594:166;1616:17;;:21;;;;:77;;-1:-1:-1;1641:52:36;;-1:-1:-1;;;1641:52:36;;1687:4;1641:52;;;10550:51:84;-1:-1:-1;;;;;1641:37:36;;;;;10523:18:84;;1641:52:36;10404:203:84;1594:166:36;17446:68:::1;4379:11:37::0;17474:14:36::1;4261:136:37::0;17446:68:36::1;1825:94;1865:8:::0;4557:9:37;1847:14:36::1;4439:134:37::0;1825:94:36::1;1930;1970:13;:8:::0;1981:2:::1;1970:13;:::i;1930:94::-;17533:9:::2;2108:81;2130:21;2147:3;2130:16;:21::i;2108:81::-;17616:105:::3;17643:9;17666;17689:22;17616:13;:105::i;:::-;17599:122:::0;-1:-1:-1;17736:101:36::3;17599:122:::0;4557:9:37;17818::36::3;17736:101;;;;;;;;:::i;:::-;;;;;;;;2034:1:::2;1762::::1;17140:704:::0;;;;;;;:::o;20274:415::-;20402:14;20418:27;;2349:45;2385:8;2349:35;:45::i;:::-;:56;;;;;;;;:::i;:::-;;2345:169;;2425:53;;-1:-1:-1;;;2425:53:36;;2417:62;;2425:19;;:44;;:53;;2470:7;;2425:53;;;:::i;2417:62::-;20274:415;;;:::o;2345:169::-;20461:34:::1;20498:52;20535:14;20498:36;:52::i;:::-;20461:89:::0;-1:-1:-1;4557:9:37;20560:45:36;;;;:19:::1;::::0;:45:::1;::::0;;;-1:-1:-1;;;20560:45:36;::::1;-1:-1:-1::0;;;;;20560:45:36::1;;:::i;:::-;::::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;;20560:45:36;;::::1;;::::0;;::::1;::::0;;::::1;;;::::0;;;20662:19;;20620:62:::1;::::0;;33841:25:84;;;-1:-1:-1;;;20662:19:36;;::::1;::::0;;::::1;33897:2:84::0;33882:18;;33875:61;20620:62:36::1;::::0;-1:-1:-1;33814:18:84;20620:62:36::1;;;;;;;20451:238;20274:415:::0;;;:::o;1075:178:79:-;1531:13:1;:11;:13::i;:::-;1164::79::1;:24:::0;;-1:-1:-1;;;;;1164:24:79;::::1;-1:-1:-1::0;;;;;;1164:24:79;;::::1;::::0;::::1;::::0;;;1228:7:::1;1684::1::0;1710:6;-1:-1:-1;;;;;1710:6:1;;1638:85;1228:7:79::1;-1:-1:-1::0;;;;;1203:43:79::1;;;;;;;;;;;1075:178:::0;:::o;2404:254:31:-;2542:34;;:::i;:::-;2515:8;2640:136:36;2676:46;2713:8;2676:36;:46::i;2640:136::-;2599:52:31::1;2642:8;2599:42;:52::i;2499:195:28:-:0;2634:10;2629:59;;2660:17;2668:8;2660:7;:17::i;:::-;2499:195;;:::o;1833:604:41:-;1898:20;1963:23;;;-1:-1:-1;;;;;;;;;;;1963:23:41;;;;;2000:16;;;:32;-1:-1:-1;;;2000:32:41;;;;:37;1996:435;;2073:16;;;:25;-1:-1:-1;;;2073:25:41;;-1:-1:-1;;;;;2073:25:41;2057:12;:41;2053:192;;-1:-1:-1;2125:30:41;;1833:604;-1:-1:-1;;1833:604:41:o;2053:192::-;-1:-1:-1;2201:29:41;;1833:604;-1:-1:-1;;1833:604:41:o;1996:435::-;2265:25;;-1:-1:-1;;;;;2265:25:41;:39;2261:170;;-1:-1:-1;2327:27:41;;1833:604;-1:-1:-1;;1833:604:41:o;2261:170::-;-1:-1:-1;2392:28:41;;1833:604;-1:-1:-1;;1833:604:41:o;31272:2855:36:-;31538:18;31644:34;31681:52;31718:14;31681:36;:52::i;:::-;31807:19;;-1:-1:-1;;;;;31914:23:36;;;;;-1:-1:-1;;;31807:19:36;;;-1:-1:-1;;;;;31807:19:36;;-1:-1:-1;31807:19:36;;-1:-1:-1;;;;32005:21:36;;;;:25;32001:2120;;32416:19;;32064:29;;;;;;32209:279;;32249:14;;32209:279;;;;32326:27;;32371;;;;-1:-1:-1;;;;;32416:19:36;;;-1:-1:-1;;;32453:21:36;;;;32209:22;:279::i;:::-;32046:442;;;;;;32506:19;32502:767;;;32602:161;;;34149:25:84;;;4379:11:37;34205:2:84;34190:18;;34183:34;34233:18;;;34226:34;;;32602:161:36;;;;;;;34137:2:84;32602:161:36;;;32502:767;;;32851:403;32906:14;32942:27;;4379:11:37;33027:21:36;33112:1;33076:25;33070:39;:43;:166;;;;;;;;;;;;;;;;;;;;;;33141:25;33070:166;32851:403;;;;;;;;;;;:::i;:::-;;;;;;;;32502:767;33468:182;33506:14;33539:27;33585;33468:182;;;;;;;;;;;;:20;:182::i;:::-;32032:1629;;;32001:2120;;;33728:98;33765:14;4379:11:37;33728:98:36;;;15146:25:84;;;15202:2;15187:18;;15180:34;;;;15119:18;33728:98:36;;;;;;;33909:201;33947:14;33979:27;34024;34069;;33909:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33909:20:36;;-1:-1:-1;;;33909:201:36:i;:::-;31562:2565;31272:2855;;;;;;;:::o;4709:157:37:-;4829:30;;-1:-1:-1;;;;;4829:21:37;;;:30;;;;;4851:7;;4829:30;;;;4851:7;4829:21;:30;;;;;;;;;;;;;;;;;;;1463:149:41;1530:24;1573;;;-1:-1:-1;;;;;;;;;;;1573:24:41;;;;;;1463:149::o;2443:1130::-;2516:23;2551:33;2587:24;2603:7;2587:15;:24::i;:::-;2551:60;-1:-1:-1;2641:30:41;2625:12;:46;;;;;;;;:::i;:::-;;2621:946;;2687:26;2716:23;;;-1:-1:-1;;;;;;;;;;;2716:23:41;;;;;:48;;2782:19;;2716:48;;2687:26;2716:48;;2782:19;;;:::i;:::-;;;:23;2778:471;;;2922:15;;-1:-1:-1;;;2941:12:41;2922;;2935:1;;2922:15;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2922:15:41;-1:-1:-1;;;;;2922:31:41;;;:136;;3029:29;2922:136;;;2976:29;2914:162;2443:1130;-1:-1:-1;;;;2443:1130:41:o;2778:471::-;-1:-1:-1;3201:33:41;;2443:1130;-1:-1:-1;;;2443:1130:41:o;2621:946::-;3285:27;3269:12;:43;;;;;;;;:::i;:::-;;3265:302;;-1:-1:-1;3335:32:41;;2443:1130;-1:-1:-1;;2443:1130:41:o;3265:302::-;3404:29;3388:12;:45;;;;;;;;:::i;:::-;;3384:183;;-1:-1:-1;3456:34:41;;2443:1130;-1:-1:-1;;2443:1130:41:o;1796:162:1:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:1;735:10:3;1855:23:1;1851:101;;1901:40;;-1:-1:-1;;;1901:40:1;;735:10:3;1901:40:1;;;10550:51:84;10523:18;;1901:40:1;10404:203:84;3011:215:70;3074:4;;3111:24;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3111:28:70;;:70;;;;-1:-1:-1;3180:1:70;3160:17;;;;:3;:17;:::i;:::-;:21;;;3111:70;:98;;;;-1:-1:-1;3206:3:70;3185:17;;;;:3;:17;:::i;:::-;:24;;;;3090:129;3011:215;-1:-1:-1;;3011:215:70:o;30571:695:36:-;30713:22;-1:-1:-1;;;;;;;;;;;30768:20:36;;30771:17;;30768:20;;;:::i;:::-;;;;;-1:-1:-1;30768:20:36;-1:-1:-1;30836:34:36;30873:52;30768:20;30873:36;:52::i;:::-;30944:19;;30935:61;;;;;;;;;;;;-1:-1:-1;;;30935:61:36;;;;30944:19;;-1:-1:-1;30935:61:36;;-1:-1:-1;;;;;30944:19:36;;;:33;;30935:8;:61::i;:::-;31020:32;;4557:9:37;-1:-1:-1;;;;;31121:44:36;-1:-1:-1;;;31121:44:36;-1:-1:-1;;;;;;31066:41:36;;;31042:10;-1:-1:-1;;;;31066:41:36;;-1:-1:-1;;;31066:41:36;;;;;-1:-1:-1;;;;;31121:44:36;;;;31179:19;;;:30;;;31245:4;31223:19;;;:26;31245:4;31223:19;:26;:::i;:::-;;;;30741:525;30571:695;;;;;:::o;1437:153:79:-;1526:13;1519:20;;-1:-1:-1;;;;;;1519:20:79;;;1549:34;1574:8;1549:24;:34::i;37747:298:36:-;37844:7;37839:161;37862:10;:17;37857:2;:22;37839:161;;;37902:17;37922:10;37933:2;37922:14;;;;;;;;:::i;:::-;;;;;;;37902:34;;37985:4;37950:11;-1:-1:-1;;;;;;;;;;;1067:28:41;2118:133:28;37950:11:36;-1:-1:-1;;;;;37950:32:36;;;;;;;;:21;;;;:32;;;;;;:39;;-1:-1:-1;;37950:39:36;;;;;;;;;;-1:-1:-1;37881:5:36;37839:161;;;;38014:24;38027:10;38014:24;;;;;;:::i;2969:360:28:-;3045:13;3074:19;3106:25;3122:8;3106:15;:25::i;:::-;-1:-1:-1;;;;;3096:36:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3096:36:28;;3074:58;;3147:7;3142:150;3165:6;:13;3160:2;:18;3142:150;;;3208:8;3217:2;3208:12;;;;;;;:::i;:::-;;;;3195:6;3202:2;3195:10;;;;;;;;:::i;:::-;;;;:25;-1:-1:-1;;;;;3195:25:28;;;;;;;;-1:-1:-1;3262:5:28;;3142:150;;34133:639:36;34408:18;34455:178;34483:14;34512:27;34554;34596;;34455:14;:178::i;:::-;34442:191;;34682:83;34720:10;34745;34682:16;:83::i;:::-;34133:639;;;;;;;:::o;1675:152:41:-;1743:25;1787:24;;;-1:-1:-1;;;;;;;;;;;1787:24:41;;;;;:33;;;1675:152::o;3658:155:70:-;3783:18;;3729:6;;3783:22;;:18;;3804:1;3783:22;:::i;:::-;3754:25;;:52;;;;;:25;;;-1:-1:-1;;;;;3754:25:70;:52;:::i;12576:951:36:-;-1:-1:-1;;;;;;;;;;;;;;;;;12733:31:36;12767:59;12811:14;12767:43;:59::i;:::-;12733:93;;12840:15;:29;12870:7;12879:53;12917:14;12879:37;:53::i;:::-;:69;;12840:109;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12840:109:36;;;;;;;;;;;;:::i;:::-;;;12836:685;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13129:169;;;;;;;;;;-1:-1:-1;13129:169:36;;;;13274:7;13236:46;;;;;;;;:::i;:::-;;;;-1:-1:-1;;13236:46:36;;;;;;;;;13129:169;;13122:176;12576:951;-1:-1:-1;;;;12576:951:36:o;12836:685::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13360:150:36;;;;;;;;;;-1:-1:-1;13360:150:36;;;;;;;;;;;;;;;;;;;;;;;13353:157;12576:951;-1:-1:-1;;;;12576:951:36:o;10040:184::-;10138:21;;:::i;:::-;10182:35;;;;-1:-1:-1;;;;;;;;;;;10182:35:36;;;;;;;10175:42;;;;;;;;;-1:-1:-1;;;;;10175:42:36;;;;;;;;-1:-1:-1;;;10175:42:36;;;;;;;;-1:-1:-1;;;10175:42:36;;-1:-1:-1;;;;;10175:42:36;;;;;10182:19;10175:42;;;;;;;;;;10182:35;;10175:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10175:42:36;;;-1:-1:-1;;10175:42:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10175:42:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10175:42:36;;;;-1:-1:-1;;;10175:42:36;;;;;;;;;-1:-1:-1;;;10175:42:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10175:42:36;;;;-1:-1:-1;;;10175:42:36;;-1:-1:-1;10175:42:36;10040:184;-1:-1:-1;;10040:184:36:o;11106:219::-;11218:24;;:::i;:::-;11265:53;11303:14;11265:37;:53::i;:::-;11258:60;;;;;;;;;;-1:-1:-1;;;;;11258:60:36;;;;-1:-1:-1;;;11258:60:36;;-1:-1:-1;;;;;11258:60:36;;;;;-1:-1:-1;;;11258:60:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11106:219;;;:::o;34778:2963::-;35142:29;35186:24;35225:39;35313:9;35289:33;-1:-1:-1;;;;35336:27:36;;35364:1;35336:30;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;35336:46:36;;;35332:2359;;35398:32;35433:61;:49;35454:27;;35433:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;35433:20:36;;-1:-1:-1;;;35433:49:36:i;:::-;:59;:61::i;:::-;35398:96;;35529:1;35512:7;:14;:18;35508:1586;;;35630:13;-1:-1:-1;;;;;35614:53:36;;35673:20;35716:14;35752:27;35801;35850:12;35884:31;35937:311;;;;;;;;35987:46;;;;;;;;;;;;;;;;;;;;;;;;36030:1;35987:46;;;35937:311;;;;36072:1;35937:311;;;;;;36110:1;35937:311;;;;;;36160:1;35937:311;;;;;;36192:1;-1:-1:-1;;;;;35937:311:36;;;;;36224:1;-1:-1:-1;;;;;35937:311:36;;;;35614:652;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35610:828;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;36416:3;-1:-1:-1;35508:1586:36;;35610:828;;;;;;;;;;;36311:4;36289:26;;35508:1586;;;36557:13;-1:-1:-1;;;;;36541:53:36;;36600:20;36643:14;36679:27;36728;36777:12;36835:21;:7;36843:1;36835:10;;;;;;;;:::i;:::-;;;;;;;:19;:21::i;:::-;36811:46;;;;;;;;:::i;:::-;36879:7;36887:1;36879:10;;;;;;;;:::i;:::-;;;;;;;36541:366;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36537:543;;;;:::i;:::-;36952:4;36930:26;;36537:543;35384:1720;35332:2359;;;37203:13;-1:-1:-1;;;;;37187:54:36;;37247:20;37286:14;37318:27;37363;37408:12;37438:49;37459:27;;37438:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;37438:20:36;;-1:-1:-1;;;37438:49:36:i;:::-;37187:314;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37183:498;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;37639:3;-1:-1:-1;37183:498:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37658:23;37183:498;;;37542:4;37520:26;;37183:498;37725:9;37700:34;;;;:::i;:::-;;;34778:2963;;;;;;;;;;;:::o;38273:615::-;38600:281;;;;;;;;38642:10;-1:-1:-1;;;;;38600:281:36;;;;;38683:12;-1:-1:-1;;;;;38600:281:36;;;;;38727:27;38600:281;;;;;;38785:27;38600:281;;;;38843:27;38600:281;;;38543:45;38573:14;38543:29;:45::i;:::-;:338;;:54;;;:338;;;;;;;;;;;;-1:-1:-1;;;38543:338:36;-1:-1:-1;;;;;;;;;;38543:338:36;;;-1:-1:-1;;;38543:338:36;-1:-1:-1;;;;;;38543:338:36;;;-1:-1:-1;;;;;38543:338:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:54;;:338;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;38273:615:36:o;2912:187:1:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:1;;;-1:-1:-1;;;;;;3020:17:1;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;3398:295:28:-;3480:12;3508:179;3525:2;3515:7;:12;3508:179;;;3549:8;3558:7;3549:17;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;3549:22:28;3545:66;3591:5;3545:66;3652:10;;3508:179;;;3398:295;;;:::o;2415:198:66:-;2488:11;;:::i;:::-;2545:32;;;;;;;;;;;;2509:33;2545:32;;;;2590:18;2545:32;2590:10;:18::i;5910:1202::-;6018:19;5981:4;1139:1;1738:8;1720:26;;:4;:14;;;:26;;;1716:99;;1783:14;;;;;1763:45;;-1:-1:-1;;;1763:45:66;;43510:4:84;43498:17;;;1763:45:66;;;43480:36:84;43552:17;;;43532:18;;;43525:45;43453:18;;1763:45:66;43310:266:84;1716:99:66;6131:10:::1;6144:51;6155:4;:11;;;6168:4;:26;;;6144:10;:51::i;:::-;6131:64:::0;-1:-1:-1;6220:7:66::1;6131:64:::0;6226:1:::1;6220:7;:::i;:::-;-1:-1:-1::0;;;;;6209:19:66::1;-1:-1:-1::0;;;;;6209:19:66::1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;6201:27;;6239:7;6234:722;6257:3;-1:-1:-1::0;;;;;6252:8:66::1;:2;:8;6234:722;;;6327:13;:4;:11;:13::i;:::-;6320:20;;6424:11;:4;:9;:11::i;:::-;6412:5;6418:2;6412:9;;;;;;;;:::i;:::-;;;;;;:23;;;;1139:1;6447:34;;:4;:14;;;:34;;::::0;6443:507:::1;;6493:23;6519:16;:4;:14;:16::i;:::-;6493:42;;6616:9;6645:1;6626:9;:16;:20;;;;:::i;:::-;6616:31;;;;;;;;:::i;:::-;;;;;;;6609:38;;6483:173;6443:507;;;1185:1;6666:32;;:4;:14;;;:32;;::::0;6662:288:::1;;6710:23;6736:14;:4;:12;:14::i;6662:288::-;6930:11;:4;:9;:11::i;:::-;;6662:288;6262:5;;6234:722;;;;7103:4;7090:5;7096:3;-1:-1:-1::0;;;;;7090:10:66::1;;;;;;;;;:::i;:::-;;;;;;:17;;;;6041:1071;5910:1202:::0;;;;;:::o;17335:200::-;17440:4;17405;939:1;1738:8;1720:26;;:4;:14;;;:26;;;1716:99;;1783:14;;;;;1763:45;;-1:-1:-1;;;1763:45:66;;43510:4:84;43498:17;;;1763:45:66;;;43480:36:84;43552:17;;;43532:18;;;43525:45;43453:18;;1763:45:66;43310:266:84;1716:99:66;17461:69:::1;17479:4;:11;;;17498:4;:26;;;17461:10;:69::i;:::-;-1:-1:-1::0;;;;;17454:76:66::1;::::0;17335:200;-1:-1:-1;;;;17335:200:66:o;2925:996::-;3032:11;;:::i;:::-;1893;;:18;3011:6;;1893:11;:23;1889:77;;1933:26;;-1:-1:-1;;;1933:26:66;;;;;;;;;;;1889:77;3053:17:::1;3094:3;3053:17:::0;-1:-1:-1;;;;;3053:17:66;3198:4:::1;3208:478;3215:8;3208:478;;;3303:18;:6;:16;:18::i;:::-;3289:32:::0;-1:-1:-1;3329:6:66;::::1;::::0;::::1;:::i;:::-;3355:16:::0;3370:1:::1;3355:16:::0;;;;;-1:-1:-1;3417:4:66::1;3403:18:::0;::::1;::::0;-1:-1:-1;3329:6:66;-1:-1:-1;;;;3466:27:66;;3462:218:::1;;3520:13;::::0;::::1;::::0;3549:41:::1;3520:6:::0;3568:21;3549:10:::1;:41::i;:::-;3543:47;;3623:7;3607:6;:13;;;:23;;;;:::i;:::-;3600:30;::::0;;::::1;:::i;:::-;;;3495:144;3208:478;;3462:218;-1:-1:-1::0;3666:5:66::1;3208:478;;;1286:1;3695:35;::::0;::::1;;3691:94;;;3747:31;::::0;-1:-1:-1;;;3747:31:66;;43940:4:84;43928:17;;3747:31:66::1;::::0;::::1;43910:36:84::0;43883:18;;3747:31:66::1;43766:186:84::0;3691:94:66::1;-1:-1:-1::0;3797:119:66::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;::::1;::::0;;;;-1:-1:-1;;;;;3797:119:66;;::::1;::::0;;;;::::1;::::0;;;;-1:-1:-1;3797:119:66;;2925:996;-1:-1:-1;2925:996:66:o;8569:671::-;8703:6;8747:2;8723:21;:26;;;8719:75;;;-1:-1:-1;8759:28:66;;;;;8719:75;8803:21;:27;;8828:2;8803:27;8799:73;;8847:18;:6;:16;:18::i;:::-;8840:25;;;;;;8799:73;8881:21;:27;;8906:2;8881:27;8877:74;;8925:19;:6;:17;:19::i;:::-;8918:26;;;;;;8877:74;8960:21;:27;;8985:2;8960:27;8956:74;;9004:19;:6;:17;:19::i;:::-;8997:26;;;;;;8956:74;9039:21;:27;;9064:2;9039:27;9035:74;;9083:19;:6;:17;:19::i;:::-;9076:26;;;;9035:74;9118:21;:27;;9143:2;9118:27;9114:65;;-1:-1:-1;;;;;;9155:17:66;;9114:65;9191:44;;-1:-1:-1;;;9191:44:66;;43940:4:84;43928:17;;9191:44:66;;;43910:36:84;43883:18;;9191:44:66;43766:186:84;4262:199:66;4331:22;;:::i;:::-;2086:11;;:16;;:23;2064:18;;;;;:45;;4363:94;;4406:11;;4395:23;;:10;:23::i;4363:94::-;-1:-1:-1;4446:4:66;4262:199::o;3925:333::-;3999:22;;:::i;:::-;4038:215;;;;;;;;;4059:11;;-1:-1:-1;;;;;;;;;;;;;;2694:52:65;;;;;;;;2708:11;;2694:52;;-1:-1:-1;2727:13:65;;;;2694:52;;;;4038:215:66;;;;;;;4098:4;:16;;;4038:215;;;;;;4133:4;:14;;;4038:215;;;;;;4178:4;:26;;;4038:215;;;;;;4217:4;:8;;;-1:-1:-1;;;;;4038:215:66;;;;;4238:4;:8;;;-1:-1:-1;;;;;4038:215:66;;;;4031:222;;3925:333;;;:::o;7116:1279::-;7220:19;7185:4;1185:1;1738:8;1720:26;;:4;:14;;;:26;;;1716:99;;1783:14;;;;;1763:45;;-1:-1:-1;;;1763:45:66;;43510:4:84;43498:17;;;1763:45:66;;;43480:36:84;43552:17;;;43532:18;;;43525:45;43453:18;;1763:45:66;43310:266:84;1716:99:66;7349:10:::1;7362:51;7373:4;:11;;;7386:4;:26;;;7362:10;:51::i;:::-;:55;::::0;7416:1:::1;7362:55;:::i;:::-;7349:68:::0;-1:-1:-1;7442:7:66::1;7349:68:::0;7448:1:::1;7442:7;:::i;:::-;-1:-1:-1::0;;;;;7431:19:66::1;-1:-1:-1::0;;;;;7431:19:66::1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7423:27;;7461:7;7456:783;7479:3;-1:-1:-1::0;;;;;7474:8:66::1;:2;:8;7456:783;;;7549:13;:4;:11;:13::i;:::-;7542:20;;7646:11;:4;:9;:11::i;:::-;7634:5;7640:2;7634:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:23;7669:6:::1;7674:1;7669:2:::0;:6:::1;:::i;:::-;:11:::0;:50;::::1;;;-1:-1:-1::0;7684:14:66::1;::::0;::::1;::::0;:35:::1;;1091:1;7684:35;;7669:50;7665:568;;;7758:14;::::0;;::::1;::::0;7738:54;;-1:-1:-1;;;7738:54:66;;43510:4:84;43498:17;;;7738:54:66::1;::::0;::::1;43480:36:84::0;1091:1:66::1;43532:18:84::0;;;43525:45;43453:18;;7738:54:66::1;43310:266:84::0;7665:568:66::1;7811:14;::::0;::::1;::::0;:34:::1;;1139:1;7811:34;::::0;:70:::1;;-1:-1:-1::0;7849:14:66::1;::::0;::::1;::::0;:32:::1;;1185:1;7849:32;7811:70;7807:426;;;7920:14;::::0;::::1;::::0;7893:23:::1;::::0;7920:34:::1;;1139:1;7920:34;:94;;8000:14;:4;:12;:14::i;:::-;7920:94;;;7969:16;:4;:14;:16::i;:::-;7893:131;;8112:9;8141:1;8122:9;:16;:20;;;;:::i;:::-;8112:31;;;;;;;;:::i;:::-;;;;;;;8105:38;;7883:269;7807:426;;;8213:11;:4;:9;:11::i;:::-;;7807:426;7484:5;;7456:783;;4465:1100:::0;4532:22;;:::i;:::-;4575:14;;;;:32;;;;:85;;-1:-1:-1;4619:14:66;;;;:41;;994:1;4619:41;4575:85;:257;;;-1:-1:-1;4684:14:66;;;;:41;;1286:1;4684:41;:90;;;;;4772:2;4742:4;:26;;;:32;;;;4684:90;:138;;;;;4820:2;4790:4;:26;;;:32;;;;4684:138;4564:980;;;4869:17;:4;:15;:17::i;:::-;-1:-1:-1;;;;;4847:39:66;:4;:11;;;:18;;:39;;;;;;;:::i;:::-;;;-1:-1:-1;;4446:4:66;4262:199::o;4564:980::-;4912:14;;;;:35;;1091:1;4912:35;;:83;;-1:-1:-1;4961:14:66;;;;:34;;1042:1;4961:34;4912:83;4899:645;;;5010:10;5023:51;5034:4;:11;;;5047:4;:26;;;5023:10;:51::i;:::-;5010:64;;5104:3;-1:-1:-1;;;;;5082:25:66;:4;:11;;;:18;;:25;;;;;;;:::i;:::-;;;-1:-1:-1;4899:645:66;;-1:-1:-1;4899:645:66;;5131:14;;;;:34;;1139:1;5131:34;;:78;;-1:-1:-1;5177:14:66;;;;:32;;1185:1;5177:32;5131:78;5120:424;;;5236:51;5247:4;:11;;;5260:4;:26;;;5236:10;:51::i;:::-;-1:-1:-1;;;;;5225:62:66;:8;;;:62;-1:-1:-1;4446:4:66;4262:199::o;5120:424::-;5318:14;;;;:41;;1286:1;5318:41;;;:155;;;5383:4;:26;;;:32;;5413:2;5383:32;;:80;;;;;5431:4;:26;;;:32;;5461:2;5431:32;;5383:80;5306:238;;;5488:49;;-1:-1:-1;;;5488:49:66;;44276:2:84;5488:49:66;;;44258:21:84;44315:2;44295:18;;;44288:30;44354:34;44334:18;;;44327:62;-1:-1:-1;;;44405:18:84;;;44398:37;44452:19;;5488:49:66;44074:403:84;13332:304:65;13455:11;13407:6;:13;;;13422:6;:11;;;:18;988:6;980:5;:14;976:73;;;1011:31;;-1:-1:-1;;;1011:31:65;;;;;15146:25:84;;;15187:18;;;15180:34;;;15119:18;;1011:31:65;14972:248:84;976:73:65;13496:11;;13527:13:::1;::::0;::::1;::::0;;13578:25;;;13592:1:::1;13578:25:::0;13572:32;;-1:-1:-1;13527:13:65;;;13615:16:::1;13527:13:::0;13615:16:::1;:::i;:::-;;;::::0;::::1;13470:166;;13332:304:::0;;;;;:::o;13873:312::-;14001:12;13949:6;:13;;;13965:1;13949:17;;;;:::i;:::-;13968:11;;:18;980:14;;;976:73;;;1011:31;;-1:-1:-1;;;1011:31:65;;;;;15146:25:84;;;15187:18;;;15180:34;;;15119:18;;1011:31:65;14972:248:84;976:73:65;14043:11;;14074:13:::1;::::0;::::1;::::0;;14139:1:::1;14125:25:::0;;;;;14119:32;;-1:-1:-1;14074:13:65;;14162:18:::1;14139:1:::0;14074:13;14162:18:::1;:::i;:::-;::::0;;-1:-1:-1;13873:312:65;;;-1:-1:-1;;;;;13873:312:65:o;14422:::-;14550:12;14498:6;:13;;;14514:1;14498:17;;;;:::i;:::-;14517:11;;:18;980:14;;;976:73;;;1011:31;;-1:-1:-1;;;1011:31:65;;;;;15146:25:84;;;15187:18;;;15180:34;;;15119:18;;1011:31:65;14972:248:84;976:73:65;14592:11;;14623:13:::1;::::0;::::1;::::0;;14688:1:::1;14674:25:::0;;;;;14668:32;;-1:-1:-1;14623:13:65;;14711:18:::1;14688:1:::0;14623:13;14711:18:::1;:::i;14971:312::-:0;15099:12;15047:6;:13;;;15063:1;15047:17;;;;:::i;:::-;15066:11;;:18;980:14;;;976:73;;;1011:31;;-1:-1:-1;;;1011:31:65;;;;;15146:25:84;;;15187:18;;;15180:34;;;15119:18;;1011:31:65;14972:248:84;976:73:65;15141:11;;15172:13:::1;::::0;::::1;::::0;;15237:1:::1;15223:25:::0;;;;;15217:32;;-1:-1:-1;15172:13:65;;15260:18:::1;15237:1:::0;15172:13;15260:18:::1;:::i;5569:337:66:-:0;5638:6;5687:2;5658:4;:26;;;:31;;;5654:248;;;-1:-1:-1;5706:1:66;;5569:337;-1:-1:-1;5569:337:66:o;5654:248::-;5753:2;5724:4;:26;;;:31;;;5720:182;;;5814:2;5785:4;:26;;;:31;;;;:::i;:::-;5779:38;;:1;:38;;5765:53;;5569:337;;;:::o;5720:182::-;5868:26;;;;5846:49;;-1:-1:-1;;;5846:49:66;;43940:4:84;43928:17;;;5846:49:66;;;43910:36:84;43883:18;;5846:49:66;43766:186:84;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;14:250:84;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:84;238:16;;231:27;14:250::o;269:1072::-;-1:-1:-1;;;670:3:84;663:34;645:3;726:6;720:13;742:75;810:6;805:2;800:3;796:12;789:4;781:6;777:17;742:75;:::i;:::-;877:13;;836:16;;;;899:76;877:13;961:2;953:11;;946:4;934:17;;899:76;:::i;:::-;1036:13;;994:17;;;1058:76;1036:13;1120:2;1112:11;;1105:4;1093:17;;1058:76;:::i;:::-;1195:13;;1153:17;;;1217:76;1195:13;1279:2;1271:11;;1264:4;1252:17;;1217:76;:::i;:::-;1313:17;1332:2;1309:26;;269:1072;-1:-1:-1;;;;;;269:1072:84:o;1346:131::-;-1:-1:-1;;;;;1421:31:84;;1411:42;;1401:70;;1467:1;1464;1457:12;1482:247;1541:6;1594:2;1582:9;1573:7;1569:23;1565:32;1562:52;;;1610:1;1607;1600:12;1562:52;1649:9;1636:23;1668:31;1693:5;1668:31;:::i;1926:161::-;1993:20;;2053:8;2042:20;;2032:31;;2022:59;;2077:1;2074;2067:12;2092:252;2159:6;2167;2220:2;2208:9;2199:7;2195:23;2191:32;2188:52;;;2236:1;2233;2226:12;2188:52;2272:9;2259:23;2249:33;;2301:37;2334:2;2323:9;2319:18;2301:37;:::i;:::-;2291:47;;2092:252;;;;;:::o;2531:387::-;2614:8;2624:6;2678:3;2671:4;2663:6;2659:17;2655:27;2645:55;;2696:1;2693;2686:12;2645:55;-1:-1:-1;2719:20:84;;-1:-1:-1;;;;;2751:30:84;;2748:50;;;2794:1;2791;2784:12;2748:50;2831:4;2823:6;2819:17;2807:29;;2891:3;2884:4;2874:6;2871:1;2867:14;2859:6;2855:27;2851:38;2848:47;2845:67;;;2908:1;2905;2898:12;2845:67;2531:387;;;;;:::o;2923:489::-;3041:6;3049;3102:2;3090:9;3081:7;3077:23;3073:32;3070:52;;;3118:1;3115;3108:12;3070:52;3158:9;3145:23;-1:-1:-1;;;;;3183:6:84;3180:30;3177:50;;;3223:1;3220;3213:12;3177:50;3262:90;3344:7;3335:6;3324:9;3320:22;3262:90;:::i;:::-;3371:8;;3236:116;;-1:-1:-1;2923:489:84;-1:-1:-1;;;;2923:489:84:o;3417:180::-;3476:6;3529:2;3517:9;3508:7;3504:23;3500:32;3497:52;;;3545:1;3542;3535:12;3497:52;-1:-1:-1;3568:23:84;;3417:180;-1:-1:-1;3417:180:84:o;3602:270::-;3643:3;3681:5;3675:12;3708:6;3703:3;3696:19;3724:76;3793:6;3786:4;3781:3;3777:14;3770:4;3763:5;3759:16;3724:76;:::i;:::-;3854:2;3833:15;-1:-1:-1;;3829:29:84;3820:39;;;;3861:4;3816:50;;3602:270;-1:-1:-1;;3602:270:84:o;3877:487::-;3993:1;3989;3984:3;3980:11;3976:19;3968:5;3962:12;3958:38;3953:3;3946:51;-1:-1:-1;;;;;4050:4:84;4043:5;4039:16;4033:23;4029:48;4022:4;4017:3;4013:14;4006:72;4139:10;4131:4;4124:5;4120:16;4114:23;4110:40;4103:4;4098:3;4094:14;4087:64;4200:4;4193:5;4189:16;4183:23;4176:4;4171:3;4167:14;4160:47;3928:3;4253:4;4246:5;4242:16;4236:23;4291:4;4284;4279:3;4275:14;4268:28;4312:46;4352:4;4347:3;4343:14;4329:12;4312:46;:::i;4369:263::-;4552:2;4541:9;4534:21;4515:4;4572:54;4622:2;4611:9;4607:18;4599:6;4572:54;:::i;4637:719::-;4752:1;4748;4743:3;4739:11;4735:19;4727:5;4721:12;4717:38;4712:3;4705:51;4817:8;4809:4;4802:5;4798:16;4792:23;4788:38;4781:4;4776:3;4772:14;4765:62;-1:-1:-1;;;;;4880:4:84;4873:5;4869:16;4863:23;4859:50;4852:4;4847:3;4843:14;4836:74;4687:3;4956:4;4949:5;4945:16;4939:23;4994:4;4987;4982:3;4978:14;4971:28;5020:46;5060:4;5055:3;5051:14;5037:12;5020:46;:::i;:::-;5008:58;;5115:4;5108:5;5104:16;5098:23;5091:4;5086:3;5082:14;5075:47;5170:4;5163:5;5159:16;5153:23;5235:4;5218:14;5212:21;5208:32;5201:4;5196:3;5192:14;5185:56;-1:-1:-1;;;;;5302:4:84;5286:14;5282:25;5276:32;5272:57;5266:3;5261;5257:13;5250:80;;5346:4;5339:11;;;4637:719;;;;:::o;5361:260::-;5542:2;5531:9;5524:21;5505:4;5562:53;5611:2;5600:9;5596:18;5588:6;5562:53;:::i;5626:127::-;5687:10;5682:3;5678:20;5675:1;5668:31;5718:4;5715:1;5708:15;5742:4;5739:1;5732:15;5758:145;5844:1;5837:5;5834:12;5824:46;;5850:18;;:::i;:::-;5879;;5758:145::o;5908:219::-;6060:2;6045:18;;6072:49;6049:9;6103:6;6072:49;:::i;6132:127::-;6193:10;6188:3;6184:20;6181:1;6174:31;6224:4;6221:1;6214:15;6248:4;6245:1;6238:15;6264:249;6374:2;6355:13;;-1:-1:-1;;6351:27:84;6339:40;;-1:-1:-1;;;;;6394:34:84;;6430:22;;;6391:62;6388:88;;;6456:18;;:::i;:::-;6492:2;6485:22;-1:-1:-1;;6264:249:84:o;6518:183::-;6578:4;-1:-1:-1;;;;;6603:6:84;6600:30;6597:56;;;6633:18;;:::i;:::-;-1:-1:-1;6678:1:84;6674:14;6690:4;6670:25;;6518:183::o;6706:1028::-;6790:6;6821:2;6864;6852:9;6843:7;6839:23;6835:32;6832:52;;;6880:1;6877;6870:12;6832:52;6920:9;6907:23;-1:-1:-1;;;;;6945:6:84;6942:30;6939:50;;;6985:1;6982;6975:12;6939:50;7008:22;;7061:4;7053:13;;7049:27;-1:-1:-1;7039:55:84;;7090:1;7087;7080:12;7039:55;7126:2;7113:16;7148:43;7188:2;7148:43;:::i;:::-;7220:2;7214:9;7232:31;7260:2;7252:6;7232:31;:::i;:::-;7298:18;;;7386:1;7382:10;;;;7374:19;;7370:28;;;7332:15;;;;-1:-1:-1;7410:19:84;;;7407:39;;;7442:1;7439;7432:12;7407:39;7466:11;;;;7486:217;7502:6;7497:3;7494:15;7486:217;;;7582:3;7569:17;7599:31;7624:5;7599:31;:::i;:::-;7643:18;;7519:12;;;;7681;;;;7486:217;;;7722:6;6706:1028;-1:-1:-1;;;;;;;6706:1028:84:o;7739:156::-;7800:5;7845:2;7836:6;7831:3;7827:16;7823:25;7820:45;;;7861:1;7858;7851:12;7900:309;7997:6;8005;8058:2;8046:9;8037:7;8033:23;8029:32;8026:52;;;8074:1;8071;8064:12;8026:52;8110:9;8097:23;8087:33;;8139:64;8195:7;8190:2;8179:9;8175:18;8139:64;:::i;8214:186::-;8262:4;-1:-1:-1;;;;;8287:6:84;8284:30;8281:56;;;8317:18;;:::i;:::-;-1:-1:-1;8383:2:84;8362:15;-1:-1:-1;;8358:29:84;8389:4;8354:40;;8214:186::o;8405:727::-;8473:6;8526:2;8514:9;8505:7;8501:23;8497:32;8494:52;;;8542:1;8539;8532:12;8494:52;8582:9;8569:23;-1:-1:-1;;;;;8607:6:84;8604:30;8601:50;;;8647:1;8644;8637:12;8601:50;8670:22;;8723:4;8715:13;;8711:27;-1:-1:-1;8701:55:84;;8752:1;8749;8742:12;8701:55;8788:2;8775:16;8810:31;8838:2;8810:31;:::i;:::-;8870:2;8864:9;8882:31;8910:2;8902:6;8882:31;:::i;:::-;8937:2;8929:6;8922:18;8977:7;8972:2;8967;8963;8959:11;8955:20;8952:33;8949:53;;;8998:1;8995;8988:12;8949:53;9054:2;9049;9045;9041:11;9036:2;9028:6;9024:15;9011:46;9099:1;9077:15;;;9094:2;9073:24;9066:35;;;;-1:-1:-1;9081:6:84;8405:727;-1:-1:-1;;;;8405:727:84:o;9599:800::-;9759:4;9788:2;9828;9817:9;9813:18;9858:2;9847:9;9840:21;9881:6;9916;9910:13;9947:6;9939;9932:22;9985:2;9974:9;9970:18;9963:25;;10047:2;10037:6;10034:1;10030:14;10019:9;10015:30;10011:39;9997:53;;10085:2;10077:6;10073:15;10106:1;10116:254;10130:6;10127:1;10124:13;10116:254;;;10223:2;10219:7;10207:9;10199:6;10195:22;10191:36;10186:3;10179:49;10251:39;10283:6;10274;10268:13;10251:39;:::i;:::-;10241:49;-1:-1:-1;10348:12:84;;;;10313:15;;;;10152:1;10145:9;10116:254;;;-1:-1:-1;10387:6:84;;9599:800;-1:-1:-1;;;;;;;9599:800:84:o;10794:219::-;10943:2;10932:9;10925:21;10906:4;10963:44;11003:2;10992:9;10988:18;10980:6;10963:44;:::i;11018:142::-;11101:1;11094:5;11091:12;11081:46;;11107:18;;:::i;11165:668::-;11351:2;11403:21;;;11473:13;;11376:18;;;11495:22;;;11322:4;;11351:2;11574:15;;;;11548:2;11533:18;;;11322:4;11617:190;11631:6;11628:1;11625:13;11617:190;;;11680:47;11723:3;11714:6;11708:13;11680:47;:::i;:::-;11782:15;;;;11747:12;;;;11653:1;11646:9;11617:190;;;-1:-1:-1;11824:3:84;;11165:668;-1:-1:-1;;;;;;11165:668:84:o;11838:347::-;11889:8;11899:6;11953:3;11946:4;11938:6;11934:17;11930:27;11920:55;;11971:1;11968;11961:12;11920:55;-1:-1:-1;11994:20:84;;-1:-1:-1;;;;;12026:30:84;;12023:50;;;12069:1;12066;12059:12;12023:50;12106:4;12098:6;12094:17;12082:29;;12158:3;12151:4;12142:6;12134;12130:19;12126:30;12123:39;12120:59;;;12175:1;12172;12165:12;12190:545;12278:6;12286;12294;12302;12355:2;12343:9;12334:7;12330:23;12326:32;12323:52;;;12371:1;12368;12361:12;12323:52;12407:9;12394:23;12384:33;;12464:2;12453:9;12449:18;12436:32;12426:42;;12519:2;12508:9;12504:18;12491:32;-1:-1:-1;;;;;12538:6:84;12535:30;12532:50;;;12578:1;12575;12568:12;12532:50;12617:58;12667:7;12658:6;12647:9;12643:22;12617:58;:::i;:::-;12190:545;;;;-1:-1:-1;12694:8:84;-1:-1:-1;;;;12190:545:84:o;12740:213::-;12889:2;12874:18;;12901:46;12878:9;12929:6;12901:46;:::i;13403:117::-;13488:6;13481:5;13477:18;13470:5;13467:29;13457:57;;13510:1;13507;13500:12;13525:313;13592:6;13600;13653:2;13641:9;13632:7;13628:23;13624:32;13621:52;;;13669:1;13666;13659:12;13621:52;13705:9;13692:23;13682:33;;13765:2;13754:9;13750:18;13737:32;13778:30;13802:5;13778:30;:::i;:::-;13827:5;13817:15;;;13525:313;;;;;:::o;14065:902::-;14189:6;14197;14205;14213;14221;14229;14282:3;14270:9;14261:7;14257:23;14253:33;14250:53;;;14299:1;14296;14289:12;14250:53;14339:9;14326:23;-1:-1:-1;;;;;14409:2:84;14401:6;14398:14;14395:34;;;14425:1;14422;14415:12;14395:34;14464:90;14546:7;14537:6;14526:9;14522:22;14464:90;:::i;:::-;14573:8;;-1:-1:-1;14438:116:84;-1:-1:-1;14661:2:84;14646:18;;14633:32;;-1:-1:-1;14677:16:84;;;14674:36;;;14706:1;14703;14696:12;14674:36;;14745:60;14797:7;14786:8;14775:9;14771:24;14745:60;:::i;:::-;14065:902;;;;-1:-1:-1;14824:8:84;14906:2;14891:18;;14878:32;;14957:2;14942:18;;;14929:32;;-1:-1:-1;14065:902:84;-1:-1:-1;;;;14065:902:84:o;15225:248::-;15293:6;15301;15354:2;15342:9;15333:7;15329:23;15325:32;15322:52;;;15370:1;15367;15360:12;15322:52;-1:-1:-1;;15393:23:84;;;15463:2;15448:18;;;15435:32;;-1:-1:-1;15225:248:84:o;15478:611::-;15594:6;15602;15610;15618;15671:3;15659:9;15650:7;15646:23;15642:33;15639:53;;;15688:1;15685;15678:12;15639:53;15728:9;15715:23;-1:-1:-1;;;;;15753:6:84;15750:30;15747:50;;;15793:1;15790;15783:12;15747:50;15832:58;15882:7;15873:6;15862:9;15858:22;15832:58;:::i;:::-;15909:8;;-1:-1:-1;15806:84:84;-1:-1:-1;15963:64:84;;-1:-1:-1;16019:7:84;16014:2;15999:18;;15963:64;:::i;:::-;15953:74;;16046:37;16079:2;16068:9;16064:18;16046:37;:::i;:::-;16036:47;;15478:611;;;;;;;:::o;16094:149::-;16182:3;16175:5;16172:14;16162:48;;16190:18;;:::i;16248:435::-;16437:2;16426:9;16419:21;16449:67;16512:2;16501:9;16497:18;16488:6;16482:13;16449:67;:::i;:::-;16400:4;16563:2;16555:6;16551:15;16545:22;16605:4;16598;16587:9;16583:20;16576:34;16627:50;16673:2;16662:9;16658:18;16644:12;16627:50;:::i;16688:546::-;16865:2;16854:9;16847:21;16828:4;16903:6;16897:13;16946:4;16941:2;16930:9;16926:18;16919:32;16974:59;17029:2;17018:9;17014:18;17000:12;16974:59;:::i;:::-;16960:73;;17082:2;17074:6;17070:15;17064:22;17156:2;17152:7;17140:9;17132:6;17128:22;17124:36;17117:4;17106:9;17102:20;17095:66;17178:50;17221:6;17205:14;17178:50;:::i;17239:163::-;17306:20;;17366:10;17355:22;;17345:33;;17335:61;;17392:1;17389;17382:12;17407:618;17503:6;17511;17519;17527;17535;17588:3;17576:9;17567:7;17563:23;17559:33;17556:53;;;17605:1;17602;17595:12;17556:53;17641:9;17628:23;17618:33;;17670:37;17703:2;17692:9;17688:18;17670:37;:::i;:::-;17660:47;;17754:2;17743:9;17739:18;17726:32;17716:42;;17809:2;17798:9;17794:18;17781:32;-1:-1:-1;;;;;17828:6:84;17825:30;17822:50;;;17868:1;17865;17858:12;17822:50;17907:58;17957:7;17948:6;17937:9;17933:22;17907:58;:::i;:::-;17407:618;;;;-1:-1:-1;17407:618:84;;-1:-1:-1;17984:8:84;;17881:84;17407:618;-1:-1:-1;;;17407:618:84:o;18488:382::-;18593:6;18601;18609;18662:3;18650:9;18641:7;18637:23;18633:33;18630:53;;;18679:1;18676;18669:12;18630:53;18715:9;18702:23;18692:33;;18744:64;18800:7;18795:2;18784:9;18780:18;18744:64;:::i;:::-;18734:74;;18827:37;18860:2;18849:9;18845:18;18827:37;:::i;:::-;18817:47;;18488:382;;;;;:::o;18875:641::-;19155:3;19193:6;19187:13;19209:66;19268:6;19263:3;19256:4;19248:6;19244:17;19209:66;:::i;:::-;-1:-1:-1;;;19297:16:84;;;19322:19;;;19366:13;;19388:78;19366:13;19453:1;19442:13;;19435:4;19423:17;;19388:78;:::i;:::-;19486:20;19508:1;19482:28;;18875:641;-1:-1:-1;;;;18875:641:84:o;19521:127::-;19582:10;19577:3;19573:20;19570:1;19563:31;19613:4;19610:1;19603:15;19637:4;19634:1;19627:15;19653:127;19714:10;19709:3;19705:20;19702:1;19695:31;19745:4;19742:1;19735:15;19769:4;19766:1;19759:15;19785:165;19823:1;19857:4;19854:1;19850:12;19881:3;19871:37;;19888:18;;:::i;:::-;19940:3;19933:4;19930:1;19926:12;19922:22;19917:27;;;19785:165;;;;:::o;19955:148::-;20043:4;20022:12;;;20036;;;20018:31;;20061:13;;20058:39;;;20077:18;;:::i;20108:157::-;20138:1;20172:4;20169:1;20165:12;20196:3;20186:37;;20203:18;;:::i;:::-;20255:3;20248:4;20245:1;20241:12;20237:22;20232:27;;;20108:157;;;;:::o;20270:127::-;20331:10;20326:3;20322:20;20319:1;20312:31;20362:4;20359:1;20352:15;20386:4;20383:1;20376:15;20402:168;20475:9;;;20506;;20523:15;;;20517:22;;20503:37;20493:71;;20544:18;;:::i;20575:125::-;20640:9;;;20661:10;;;20658:36;;;20674:18;;:::i;20705:330::-;20803:4;20861:11;20848:25;20955:3;20951:8;20940;20924:14;20920:29;20916:44;20896:18;20892:69;20882:97;;20975:1;20972;20965:12;20882:97;20996:33;;;;;20705:330;-1:-1:-1;;20705:330:84:o;21266:489::-;21320:5;21373:3;21366:4;21358:6;21354:17;21350:27;21340:55;;21391:1;21388;21381:12;21340:55;21420:6;21414:13;21446:31;21474:2;21446:31;:::i;:::-;21506:2;21500:9;21518:31;21546:2;21538:6;21518:31;:::i;:::-;21573:2;21565:6;21558:18;21619:3;21612:4;21607:2;21599:6;21595:15;21591:26;21588:35;21585:55;;;21636:1;21633;21626:12;21585:55;21649:76;21722:2;21715:4;21707:6;21703:17;21696:4;21688:6;21684:17;21649:76;:::i;21760:337::-;21840:6;21893:2;21881:9;21872:7;21868:23;21864:32;21861:52;;;21909:1;21906;21899:12;21861:52;21942:9;21936:16;-1:-1:-1;;;;;21967:6:84;21964:30;21961:50;;;22007:1;22004;21997:12;21961:50;22030:61;22083:7;22074:6;22063:9;22059:22;22030:61;:::i;22102:290::-;22279:6;22268:9;22261:25;22322:2;22317;22306:9;22302:18;22295:30;22242:4;22342:44;22382:2;22371:9;22367:18;22359:6;22342:44;:::i;22397:184::-;22455:6;22508:2;22496:9;22487:7;22483:23;22479:32;22476:52;;;22524:1;22521;22514:12;22476:52;22547:28;22565:9;22547:28;:::i;22586:521::-;22663:4;22669:6;22729:11;22716:25;22823:2;22819:7;22808:8;22792:14;22788:29;22784:43;22764:18;22760:68;22750:96;;22842:1;22839;22832:12;22750:96;22869:33;;22921:20;;;-1:-1:-1;;;;;;22953:30:84;;22950:50;;;22996:1;22993;22986:12;22950:50;23029:4;23017:17;;-1:-1:-1;23060:14:84;23056:27;;;23046:38;;23043:58;;;23097:1;23094;23087:12;23112:473;23344:3;23382:6;23376:13;23398:66;23457:6;23452:3;23445:4;23437:6;23433:17;23398:66;:::i;:::-;-1:-1:-1;;;23486:16:84;;23511:38;;;-1:-1:-1;23576:2:84;23565:14;;23112:473;-1:-1:-1;23112:473:84:o;23590:380::-;23669:1;23665:12;;;;23712;;;23733:61;;23787:4;23779:6;23775:17;23765:27;;23733:61;23840:2;23832:6;23829:14;23809:18;23806:38;23803:161;;23886:10;23881:3;23877:20;23874:1;23867:31;23921:4;23918:1;23911:15;23949:4;23946:1;23939:15;23975:658;24146:2;24198:21;;;24268:13;;24171:18;;;24290:22;;;24117:4;;24146:2;24369:15;;;;24343:2;24328:18;;;24117:4;24412:195;24426:6;24423:1;24420:13;24412:195;;;24491:13;;-1:-1:-1;;;;;24487:39:84;24475:52;;24582:15;;;;24547:12;;;;24523:1;24441:9;24412:195;;24638:114;24722:4;24715:5;24711:16;24704:5;24701:27;24691:55;;24742:1;24739;24732:12;24757:129;-1:-1:-1;;;;;24835:5:84;24831:30;24824:5;24821:41;24811:69;;24876:1;24873;24866:12;24891:629;25150:25;;;25206:2;25191:18;;25184:34;;;25137:3;25122:19;;25240:20;;25269:29;25240:20;25269:29;:::i;:::-;25345:4;25334:16;25329:2;25314:18;;25307:44;25400:2;25388:15;;25375:29;25413:32;25375:29;25413:32;:::i;:::-;-1:-1:-1;;;;;25485:7:84;25481:32;25476:2;25465:9;25461:18;25454:60;;24891:629;;;;;;:::o;25525:472::-;25621:6;25629;25682:2;25670:9;25661:7;25657:23;25653:32;25650:52;;;25698:1;25695;25688:12;25650:52;25730:9;25724:16;25749:31;25774:5;25749:31;:::i;:::-;25848:2;25833:18;;25827:25;25799:5;;-1:-1:-1;;;;;;25864:30:84;;25861:50;;;25907:1;25904;25897:12;25861:50;25930:61;25983:7;25974:6;25963:9;25959:22;25930:61;:::i;:::-;25920:71;;;25525:472;;;;;:::o;26002:1018::-;26097:6;26128:2;26171;26159:9;26150:7;26146:23;26142:32;26139:52;;;26187:1;26184;26177:12;26139:52;26220:9;26214:16;-1:-1:-1;;;;;26245:6:84;26242:30;26239:50;;;26285:1;26282;26275:12;26239:50;26308:22;;26361:4;26353:13;;26349:27;-1:-1:-1;26339:55:84;;26390:1;26387;26380:12;26339:55;26419:2;26413:9;26441:43;26481:2;26441:43;:::i;:::-;26513:2;26507:9;26525:31;26553:2;26545:6;26525:31;:::i;:::-;26591:18;;;26679:1;26675:10;;;;26667:19;;26663:28;;;26625:15;;;;-1:-1:-1;26703:19:84;;;26700:39;;;26735:1;26732;26725:12;26700:39;26759:11;;;;26779:210;26795:6;26790:3;26787:15;26779:210;;;26868:3;26862:10;26885:31;26910:5;26885:31;:::i;:::-;26929:18;;26812:12;;;;26967;;;;26779:210;;27025:290;27094:6;27147:2;27135:9;27126:7;27122:23;27118:32;27115:52;;;27163:1;27160;27153:12;27115:52;27189:16;;-1:-1:-1;;;;;;27234:32:84;;27224:43;;27214:71;;27281:1;27278;27271:12;27320:271;27410:6;27463:2;27451:9;27442:7;27438:23;27434:32;27431:52;;;27479:1;27476;27469:12;27431:52;27511:9;27505:16;27530:31;27555:5;27530:31;:::i;27882:578::-;-1:-1:-1;;;;;28137:32:84;;28119:51;;28206:2;28201;28186:18;;28179:30;;;28225:18;;28218:34;;;-1:-1:-1;;;;;;28264:31:84;;28261:51;;;28308:1;28305;28298:12;28261:51;28342:6;28339:1;28335:14;28399:6;28391;28386:2;28375:9;28371:18;28358:48;28427:22;;;;28451:2;28423:31;;27882:578;-1:-1:-1;;;;27882:578:84:o;28465:1195::-;28569:6;28600:2;28643;28631:9;28622:7;28618:23;28614:32;28611:52;;;28659:1;28656;28649:12;28611:52;28692:9;28686:16;-1:-1:-1;;;;;28762:2:84;28754:6;28751:14;28748:34;;;28778:1;28775;28768:12;28748:34;28816:6;28805:9;28801:22;28791:32;;28861:7;28854:4;28850:2;28846:13;28842:27;28832:55;;28883:1;28880;28873:12;28832:55;28912:2;28906:9;28934:43;28974:2;28934:43;:::i;:::-;29006:2;29000:9;29018:31;29046:2;29038:6;29018:31;:::i;:::-;29084:18;;;29172:1;29168:10;;;;29160:19;;29156:28;;;29118:15;;;;-1:-1:-1;29196:19:84;;;29193:39;;;29228:1;29225;29218:12;29193:39;29260:2;29256;29252:11;29272:357;29288:6;29283:3;29280:15;29272:357;;;29367:3;29361:10;29403:2;29390:11;29387:19;29384:109;;;29447:1;29476:2;29472;29465:14;29384:109;29518:68;29578:7;29573:2;29559:11;29555:2;29551:20;29547:29;29518:68;:::i;:::-;29506:81;;-1:-1:-1;29607:12:84;;;;29305;;29272:357;;;-1:-1:-1;29648:6:84;28465:1195;-1:-1:-1;;;;;;;;28465:1195:84:o;30354:171::-;30422:6;30461:10;;;30449;;;30445:27;;30484:12;;;30481:38;;;30499:18;;:::i;30530:187::-;30569:1;30595:6;30628:2;30625:1;30621:10;30650:3;30640:37;;30657:18;;:::i;:::-;30695:10;;30691:20;;;;;30530:187;-1:-1:-1;;30530:187:84:o;30722:168::-;30789:6;30815:10;;;30827;;;30811:27;;30850:11;;;30847:37;;;30864:18;;:::i;30895:249::-;30964:6;31017:2;31005:9;30996:7;30992:23;30988:32;30985:52;;;31033:1;31030;31023:12;30985:52;31065:9;31059:16;31084:30;31108:5;31084:30;:::i;31149:277::-;31216:6;31269:2;31257:9;31248:7;31244:23;31240:32;31237:52;;;31285:1;31282;31275:12;31237:52;31317:9;31311:16;31370:5;31363:13;31356:21;31349:5;31346:32;31336:60;;31392:1;31389;31382:12;31556:542;31657:2;31652:3;31649:11;31646:446;;;31693:1;31717:5;31714:1;31707:16;31761:4;31758:1;31748:18;31831:2;31819:10;31815:19;31812:1;31808:27;31802:4;31798:38;31867:4;31855:10;31852:20;31849:47;;;-1:-1:-1;31890:4:84;31849:47;31945:2;31940:3;31936:12;31933:1;31929:20;31923:4;31919:31;31909:41;;32000:82;32018:2;32011:5;32008:13;32000:82;;;32063:17;;;32044:1;32033:13;32000:82;;;32004:3;;;31556:542;;;:::o;32274:1202::-;-1:-1:-1;;;;;32391:3:84;32388:27;32385:53;;;32418:18;;:::i;:::-;32447:93;32536:3;32496:38;32528:4;32522:11;32496:38;:::i;:::-;32490:4;32447:93;:::i;:::-;32566:1;32591:2;32586:3;32583:11;32608:1;32603:615;;;;33262:1;33279:3;33276:93;;;-1:-1:-1;33335:19:84;;;33322:33;33276:93;-1:-1:-1;;32231:1:84;32227:11;;;32223:24;32219:29;32209:40;32255:1;32251:11;;;32206:57;33382:78;;32576:894;;32603:615;31503:1;31496:14;;;31540:4;31527:18;;-1:-1:-1;;32639:17:84;;;32739:9;32761:229;32775:7;32772:1;32769:14;32761:229;;;32864:19;;;32851:33;32836:49;;32971:4;32956:20;;;;32924:1;32912:14;;;;32791:12;32761:229;;;32765:3;33018;33009:7;33006:16;33003:159;;;33142:1;33138:6;33132:3;33126;33123:1;33119:11;33115:21;33111:34;33107:39;33094:9;33089:3;33085:19;33072:33;33068:79;33060:6;33053:95;33003:159;;;33205:1;33199:3;33196:1;33192:11;33188:19;33182:4;33175:33;32576:894;;;32274:1202;;;:::o;33481:182::-;-1:-1:-1;;;;;33588:10:84;;;33600;;;33584:27;;33623:11;;;33620:37;;;33637:18;;:::i;34271:767::-;34560:6;34549:9;34542:25;34603:3;34598:2;34587:9;34583:18;34576:31;34644:6;34638:3;34627:9;34623:19;34616:35;34702:6;34694;34688:3;34677:9;34673:19;34660:49;34759:1;34753:3;34744:6;34733:9;34729:22;34725:32;34718:43;34523:4;34820:2;34816:7;34811:2;34803:6;34799:15;34795:29;34784:9;34780:45;34861:6;34856:2;34845:9;34841:18;34834:34;34904:6;34899:2;34888:9;34884:18;34877:34;34972:3;34960:9;34956:2;34952:18;34948:28;34942:3;34931:9;34927:19;34920:57;34994:38;35027:3;35023:2;35019:12;35011:6;34994:38;:::i;:::-;34986:46;34271:767;-1:-1:-1;;;;;;;;;34271:767:84:o;35043:245::-;35101:6;35154:2;35142:9;35133:7;35129:23;35125:32;35122:52;;;35170:1;35167;35160:12;35122:52;35209:9;35196:23;35228:30;35252:5;35228:30;:::i;35293:243::-;35350:6;35403:2;35391:9;35382:7;35378:23;35374:32;35371:52;;;35419:1;35416;35409:12;35371:52;35458:9;35445:23;35477:29;35500:5;35477:29;:::i;35541:135::-;35580:3;35601:17;;;35598:43;;35621:18;;:::i;:::-;-1:-1:-1;35668:1:84;35657:13;;35541:135::o;35681:542::-;35850:5;35837:19;35865:31;35888:7;35865:31;:::i;:::-;35928:4;35919:7;35915:18;35905:28;;35958:4;35952:11;36007:2;36000:3;35996:8;35992:2;35988:17;35985:25;35979:4;35972:39;36059:2;36052:5;36048:14;36035:28;36072:32;36096:7;36072:32;:::i;:::-;36194:20;36184:7;36181:1;36177:15;36173:42;36168:2;-1:-1:-1;;;;;36140:25:84;36136:2;36132:34;36129:42;36126:90;36120:4;36113:104;;;;35681:542;;:::o;36228:257::-;-1:-1:-1;;;;;36349:10:84;;;36361;;;36345:27;36392:20;;;;36299:18;36431:24;;;36421:58;;36459:18;;:::i;:::-;36421:58;;36228:257;;;;:::o;36490:1081::-;36670:49;36709:9;36701:6;36670:49;:::i;:::-;36651:4;36738:2;36776;36771;36760:9;36756:18;36749:30;36799:1;36832:6;36826:13;36862:36;36888:9;36862:36;:::i;:::-;36934:6;36929:2;36918:9;36914:18;36907:34;36960:2;36981:1;37013;37002:9;36998:17;37029:1;37024:158;;;;37196:1;37191:354;;;;36991:554;;37024:158;37091:3;37087:8;37076:9;37072:24;37067:2;37056:9;37052:18;37045:52;37169:2;37157:6;37150:14;37143:22;37140:1;37136:30;37125:9;37121:46;37117:55;37110:62;;37024:158;;37191:354;37222:6;37219:1;37212:17;37270:2;37267:1;37257:16;37295:1;37309:180;37323:6;37320:1;37317:13;37309:180;;;37416:14;;37392:17;;;37388:26;;37381:50;37459:16;;;;37338:10;;37309:180;;;37513:17;;37532:2;37509:26;;-1:-1:-1;;36991:554:84;-1:-1:-1;37562:3:84;;36490:1081;-1:-1:-1;;;;;;;;;36490:1081:84:o;37576:902::-;37676:6;37729:2;37717:9;37708:7;37704:23;37700:32;37697:52;;;37745:1;37742;37735:12;37697:52;37778:9;37772:16;-1:-1:-1;;;;;37848:2:84;37840:6;37837:14;37834:34;;;37864:1;37861;37854:12;37834:34;37887:22;;;;37943:4;37925:16;;;37921:27;37918:47;;;37961:1;37958;37951:12;37918:47;37994:4;37988:11;38038:4;38030:6;38026:17;38093:6;38081:10;38078:22;38073:2;38061:10;38058:18;38055:46;38052:72;;;38104:18;;:::i;:::-;38140:4;38133:24;38179:9;;38217:3;38207:14;;38197:42;;38235:1;38232;38225:12;38197:42;38248:21;;38308:2;38300:11;;38294:18;38324:16;;;38321:36;;;38353:1;38350;38343:12;38321:36;38390:56;38438:7;38427:8;38423:2;38419:17;38390:56;:::i;:::-;38385:2;38373:15;;38366:81;-1:-1:-1;38377:6:84;37576:902;-1:-1:-1;;;;;37576:902:84:o;38483:179::-;38518:3;38560:1;38542:16;38539:23;38536:120;;;38606:1;38603;38600;38585:23;-1:-1:-1;38643:1:84;38637:8;38632:3;38628:18;38536:120;38483:179;:::o;38667:671::-;38706:3;38748:4;38730:16;38727:26;38724:39;;;38667:671;:::o;38724:39::-;38790:2;38784:9;-1:-1:-1;;38855:16:84;38851:25;;38848:1;38784:9;38827:50;38906:4;38900:11;38930:16;-1:-1:-1;;;;;39036:2:84;39029:4;39021:6;39017:17;39014:25;39009:2;39001:6;38998:14;38995:45;38992:58;;;39043:5;;;;;38667:671;:::o;38992:58::-;39080:6;39074:4;39070:17;39059:28;;39116:3;39110:10;39143:2;39135:6;39132:14;39129:27;;;39149:5;;;;;;38667:671;:::o;39129:27::-;39233:2;39214:16;39208:4;39204:27;39200:36;39193:4;39184:6;39179:3;39175:16;39171:27;39168:69;39165:82;;;39240:5;;;;;;38667:671;:::o;39165:82::-;39256:57;39307:4;39298:6;39290;39286:19;39282:30;39276:4;39256:57;:::i;:::-;-1:-1:-1;39329:3:84;;38667:671;-1:-1:-1;;;;;38667:671:84:o;39343:449::-;-1:-1:-1;;;39600:3:84;39593:32;39575:3;39654:6;39648:13;39670:75;39738:6;39733:2;39728:3;39724:12;39717:4;39709:6;39705:17;39670:75;:::i;:::-;39765:16;;;;39783:2;39761:25;;39343:449;-1:-1:-1;;39343:449:84:o;39797:779::-;39844:3;39888:5;39882:12;39915:4;39910:3;39903:17;39957:12;39951:19;40002:4;39995;39990:3;39986:14;39979:28;40028:47;40070:3;40065;40061:13;40045:14;40028:47;:::i;:::-;40016:59;;40130:4;40116:12;40112:23;40106:30;40100:3;40095;40091:13;40084:53;40198:4;40190;40183:5;40179:16;40173:23;40169:34;40162:4;40157:3;40153:14;40146:58;40265:4;40257;40250:5;40246:16;40240:23;40236:34;40229:4;40224:3;40220:14;40213:58;40332:4;40324;40317:5;40313:16;40307:23;40303:34;40296:4;40291:3;40287:14;40280:58;40386:4;40379:5;40375:16;40369:23;40347:45;;-1:-1:-1;;;;;40481:2:84;40465:14;40461:23;40454:4;40449:3;40445:14;40438:47;40546:2;40538:4;40531:5;40527:16;40521:23;40517:32;40510:4;40505:3;40501:14;40494:56;;40566:4;40559:11;;;;39797:779;;;;:::o;40581:679::-;40914:6;40903:9;40896:25;-1:-1:-1;;;;;40961:6:84;40957:31;40952:2;40941:9;40937:18;40930:59;41025:6;41020:2;41009:9;41005:18;40998:34;41068:6;41063:2;41052:9;41048:18;41041:34;41084:61;41140:3;41129:9;41125:19;41117:6;41084:61;:::i;:::-;41182:3;41176;41165:9;41161:19;41154:32;40877:4;41203:51;41249:3;41238:9;41234:19;41226:6;41203:51;:::i;:::-;41195:59;40581:679;-1:-1:-1;;;;;;;;40581:679:84:o;41265:561::-;41550:6;41539:9;41532:25;-1:-1:-1;;;;;41597:6:84;41593:31;41588:2;41577:9;41573:18;41566:59;41661:6;41656:2;41645:9;41641:18;41634:34;41704:6;41699:2;41688:9;41684:18;41677:34;41748:3;41742;41731:9;41727:19;41720:32;41513:4;41769:51;41815:3;41804:9;41800:19;41792:6;41769:51;:::i;41831:128::-;41898:9;;;41919:11;;;41916:37;;;41933:18;;:::i;41964:1341::-;42088:3;42082:10;-1:-1:-1;;;;;42107:6:84;42104:30;42101:56;;;42137:18;;:::i;:::-;42166:96;42255:6;42215:38;42247:4;42241:11;42215:38;:::i;:::-;42209:4;42166:96;:::i;:::-;42317:4;;42374:2;42363:14;;42391:1;42386:662;;;;43092:1;43109:6;43106:89;;;-1:-1:-1;43161:19:84;;;43155:26;43106:89;-1:-1:-1;;32231:1:84;32227:11;;;32223:24;32219:29;32209:40;32255:1;32251:11;;;32206:57;43208:81;;42356:943;;42386:662;31503:1;31496:14;;;31540:4;31527:18;;-1:-1:-1;;42422:20:84;;;42539:236;42553:7;42550:1;42547:14;42539:236;;;42642:19;;;42636:26;42621:42;;42734:27;;;;42702:1;42690:14;;;;42569:19;;42539:236;;;42543:3;42803:6;42794:7;42791:19;42788:201;;;42864:19;;;42858:26;-1:-1:-1;;42947:1:84;42943:14;;;42959:3;42939:24;42935:37;42931:42;42916:58;42901:74;;42788:201;-1:-1:-1;;;;;43035:1:84;43019:14;;;43015:22;43002:36;;-1:-1:-1;41964:1341:84:o;43581:180::-;-1:-1:-1;;;;;43686:10:84;;;43698;;;43682:27;;43721:11;;;43718:37;;;43735:18;;:::i;43957:112::-;43989:1;44015;44005:35;;44020:18;;:::i;:::-;-1:-1:-1;44054:9:84;;43957:112::o;44482:151::-;44572:4;44565:12;;;44551;;;44547:31;;44590:14;;44587:40;;;44607:18;;:::i",
|
|
41352
41352
|
"source": "// SPDX-License-Identifier: MIT\n\n/* solhint-disable var-name-mixedcase */\n\npragma solidity >=0.7.0 <0.9.0;\npragma experimental ABIEncoderV2;\n\nimport \"../defaults/WitnetOracleTrustableDefault.sol\";\n\n/// @title Witnet Request Board \"trustable\" implementation contract.\n/// @notice Contract to bridge requests to Witnet Decentralized Oracle Network.\n/// @dev This contract enables posting requests that Witnet bridges will insert into the Witnet network.\n/// The result of the requests will be posted back to this contract by the bridge nodes too.\n/// @author The Witnet Foundation\ncontract WitnetOracleTrustableObscuro\n is \n WitnetOracleTrustableDefault\n{\n function class() virtual override public view returns (string memory) {\n return type(WitnetOracleTrustableObscuro).name;\n }\n\n constructor(\n WitnetRequestFactory _factory,\n WitnetRequestBytecodes _registry,\n bool _upgradable,\n bytes32 _versionTag,\n uint256 _reportResultGasBase,\n uint256 _reportResultWithCallbackGasBase,\n uint256 _reportResultWithCallbackRevertGasBase,\n uint256 _sstoreFromZeroGas\n )\n WitnetOracleTrustableDefault(\n _factory, \n _registry,\n _upgradable, \n _versionTag,\n _reportResultGasBase,\n _reportResultWithCallbackGasBase,\n _reportResultWithCallbackRevertGasBase,\n _sstoreFromZeroGas\n )\n {}\n\n\n // ================================================================================================================\n // --- Overrides implementation of 'IWitnetOracleView' ------------------------------------------------------\n\n /// @notice Gets the whole Query data contents, if any, no matter its current status.\n /// @dev Fails if or if `msg.sender` is not the actual requester.\n function getQuery(uint256 _queryId)\n public view\n virtual override\n onlyRequester(_queryId)\n returns (WitnetV2.Query memory)\n {\n return WitnetOracleTrustableBase.getQuery(_queryId);\n }\n\n /// @notice Retrieves the whole `Witnet.Response` record referred to a previously posted Witnet Data Request.\n /// @dev Fails if the `_queryId` is not in 'Reported' status, or if `msg.sender` is not the actual requester.\n /// @param _queryId The unique query identifier\n function getQueryResponse(uint256 _queryId)\n public view\n virtual override\n onlyRequester(_queryId)\n returns (WitnetV2.Response memory _response)\n {\n return WitnetOracleTrustableBase.getQueryResponse(_queryId);\n }\n\n /// @notice Gets error code identifying some possible failure on the resolution of the given query.\n /// @param _queryId The unique query identifier.\n function getQueryResultError(uint256 _queryId)\n public view\n virtual override\n onlyRequester(_queryId)\n returns (Witnet.ResultError memory)\n {\n return WitnetOracleTrustableBase.getQueryResultError(_queryId);\n }\n \n}\n",
|
|
41353
|
-
"sourcePath": "/home/
|
|
41353
|
+
"sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/core/customs/WitnetOracleTrustableObscuro.sol",
|
|
41354
41354
|
"ast": {
|
|
41355
41355
|
"absolutePath": "project:/contracts/core/customs/WitnetOracleTrustableObscuro.sol",
|
|
41356
41356
|
"exportedSymbols": {
|
|
@@ -42763,7 +42763,7 @@
|
|
|
42763
42763
|
},
|
|
42764
42764
|
"networks": {},
|
|
42765
42765
|
"schemaVersion": "3.4.16",
|
|
42766
|
-
"updatedAt": "2025-10-
|
|
42766
|
+
"updatedAt": "2025-10-15T18:03:23.588Z",
|
|
42767
42767
|
"devdoc": {
|
|
42768
42768
|
"author": "The Witnet Foundation",
|
|
42769
42769
|
"details": "This contract enables posting requests that Witnet bridges will insert into the Witnet network. The result of the requests will be posted back to this contract by the bridge nodes too.",
|