@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.
Files changed (84) hide show
  1. package/README.md +1 -1
  2. package/build/contracts/Clonable.json +2 -2
  3. package/build/contracts/Context.json +1 -1
  4. package/build/contracts/Create3.json +2 -2
  5. package/build/contracts/ERC165.json +1 -1
  6. package/build/contracts/IERC165.json +1 -1
  7. package/build/contracts/IERC20.json +1 -1
  8. package/build/contracts/IERC2362.json +1 -1
  9. package/build/contracts/IFeeds.json +2 -2
  10. package/build/contracts/IWitnetConsumer.json +2 -2
  11. package/build/contracts/IWitnetFeeds.json +2 -2
  12. package/build/contracts/IWitnetFeedsAdmin.json +2 -2
  13. package/build/contracts/IWitnetOracle.json +2 -2
  14. package/build/contracts/IWitnetOracleEvents.json +2 -2
  15. package/build/contracts/IWitnetOracleReporter.json +2 -2
  16. package/build/contracts/IWitnetPriceFeeds.json +2 -2
  17. package/build/contracts/IWitnetPriceSolver.json +2 -2
  18. package/build/contracts/IWitnetPriceSolverDeployer.json +2 -2
  19. package/build/contracts/IWitnetRandomness.json +2 -2
  20. package/build/contracts/IWitnetRandomnessAdmin.json +2 -2
  21. package/build/contracts/IWitnetRandomnessEvents.json +2 -2
  22. package/build/contracts/IWitnetRequestBoardAdmin.json +2 -2
  23. package/build/contracts/IWitnetRequestBoardAdminACLs.json +2 -2
  24. package/build/contracts/IWitnetRequestBytecodes.json +2 -2
  25. package/build/contracts/IWitnetRequestFactory.json +2 -2
  26. package/build/contracts/Initializable.json +1 -1
  27. package/build/contracts/OVM_GasPriceOracle.json +2 -2
  28. package/build/contracts/Ownable.json +1 -1
  29. package/build/contracts/Ownable2Step.json +2 -2
  30. package/build/contracts/Payable.json +2 -2
  31. package/build/contracts/Proxiable.json +2 -2
  32. package/build/contracts/ReentrancyGuard.json +1 -1
  33. package/build/contracts/Slices.json +2 -2
  34. package/build/contracts/Upgradeable.json +2 -2
  35. package/build/contracts/UsingWitnet.json +2 -2
  36. package/build/contracts/UsingWitnetRandomness.json +2 -2
  37. package/build/contracts/UsingWitnetRequest.json +2 -2
  38. package/build/contracts/UsingWitnetRequestTemplate.json +2 -2
  39. package/build/contracts/Witnet.json +2 -2
  40. package/build/contracts/WitnetBuffer.json +2 -2
  41. package/build/contracts/WitnetCBOR.json +2 -2
  42. package/build/contracts/WitnetConsumer.json +2 -2
  43. package/build/contracts/WitnetDeployer.json +2 -2
  44. package/build/contracts/WitnetDeployerCfxCore.json +2 -2
  45. package/build/contracts/WitnetDeployerMeter.json +2 -2
  46. package/build/contracts/WitnetEncodingLib.json +2 -2
  47. package/build/contracts/WitnetErrorsLib.json +2 -2
  48. package/build/contracts/WitnetFeeds.json +2 -2
  49. package/build/contracts/WitnetMockedOracle.json +2 -2
  50. package/build/contracts/WitnetMockedPriceFeeds.json +2 -2
  51. package/build/contracts/WitnetMockedRandomness.json +2 -2
  52. package/build/contracts/WitnetMockedRequestBytecodes.json +2 -2
  53. package/build/contracts/WitnetMockedRequestFactory.json +2 -2
  54. package/build/contracts/WitnetOracle.json +2 -2
  55. package/build/contracts/WitnetOracleDataLib.json +2 -2
  56. package/build/contracts/WitnetOracleTrustableBase.json +2 -2
  57. package/build/contracts/WitnetOracleTrustableDefault.json +2 -2
  58. package/build/contracts/WitnetOracleTrustableObscuro.json +2 -2
  59. package/build/contracts/WitnetOracleTrustableOvm2.json +2 -2
  60. package/build/contracts/WitnetOracleTrustableReef.json +2 -2
  61. package/build/contracts/WitnetPriceFeeds.json +2 -2
  62. package/build/contracts/WitnetPriceFeedsData.json +2 -2
  63. package/build/contracts/WitnetPriceFeedsDefault.json +2 -2
  64. package/build/contracts/WitnetPriceFeedsLib.json +2 -2
  65. package/build/contracts/WitnetPriceSolverBase.json +2 -2
  66. package/build/contracts/WitnetProxy.json +2 -2
  67. package/build/contracts/WitnetRandomness.json +2 -2
  68. package/build/contracts/WitnetRandomnessRequestConsumer.json +2 -2
  69. package/build/contracts/WitnetRandomnessV2.json +2 -2
  70. package/build/contracts/WitnetRequest.json +2 -2
  71. package/build/contracts/WitnetRequestBytecodes.json +2 -2
  72. package/build/contracts/WitnetRequestBytecodesData.json +2 -2
  73. package/build/contracts/WitnetRequestBytecodesDefault.json +2 -2
  74. package/build/contracts/WitnetRequestBytecodesNoSha256.json +2 -2
  75. package/build/contracts/WitnetRequestConsumer.json +2 -2
  76. package/build/contracts/WitnetRequestFactory.json +2 -2
  77. package/build/contracts/WitnetRequestFactoryCfxCore.json +2 -2
  78. package/build/contracts/WitnetRequestFactoryData.json +2 -2
  79. package/build/contracts/WitnetRequestFactoryDefault.json +2 -2
  80. package/build/contracts/WitnetRequestTemplate.json +2 -2
  81. package/build/contracts/WitnetRequestTemplateConsumer.json +2 -2
  82. package/build/contracts/WitnetUpgradableBase.json +2 -2
  83. package/build/contracts/WitnetV2.json +2 -2
  84. package/package.json +1 -1
@@ -36273,7 +36273,7 @@
36273
36273
  "sourceMap": "311:20701:40:-:0;;;202:4:76;159:48;;653:10:28;617:46;;1508:644:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;670:279:28;;;;;;;;;;;;;;;;;1752:11:40;;1777;;1752;1697:10;;1269:95:1;;1322:31;;-1:-1:-1;;;1322:31:1;;1350:1;1322:31;;;1002:51:84;975: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;;;;;1855:16:40;;::::2;;::::0;1881:20;;;::::2;;::::0;-1:-1:-1;;2003:19:40;:35;;-1:-1:-1;;;;;;2003:35:40;;::::2;::::0;::::2;::::0;;;853:66:81;2048:44:40;;;::::2;::::0;;::::2;::::0;;;-1:-1:-1;;;;;;;;;;;2102:43:40;;;;::::2;::::0;;-1:-1:-1;311:20701:40;;8709:356;8819:37;8812:44;;-1:-1:-1;;;;;;8812:44:40;;;-1:-1:-1;8886:7:40;-1:-1:-1;;;;;;;;;;;8076:30:40;-1:-1:-1;;;;;8076:30:40;;7967:146;8886:7;8866:27;;8920:9;-1:-1:-1;;;;;8907:22:40;:9;-1:-1:-1;;;;;8907:22:40;;8903:156;;8978:9;-1:-1:-1;;;;;;;;;;;8945:42:40;;-1:-1:-1;;;;;;8945:42:40;-1:-1:-1;;;;;8945:42:40;;;;;;9006;;;;;;;;;;;-1:-1:-1;;9006:42:40;8903:156;8802:263;8709:356;:::o;14:145:84:-;-1:-1:-1;;;;;103:31:84;;93:42;;83:70;;149:1;146;139:12;83:70;14:145;:::o;164:687::-;308:6;316;324;332;385:3;373:9;364:7;360:23;356:33;353:53;;;402:1;399;392:12;353:53;434:9;428:16;453:45;492:5;453:45;:::i;:::-;567:2;552:18;;546:25;517:5;;-1:-1:-1;580:47:84;546:25;580:47;:::i;:::-;698:2;683:18;;677:25;646:7;;-1:-1:-1;740:15:84;;733:23;721:36;;711:64;;771:1;768;761:12;711:64;841:2;826:18;;;;820:25;164:687;;;;-1:-1:-1;;;164:687:84:o;856:203::-;311:20701:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
36274
36274
  "deployedSourceMap": "311:20701:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1063:26:28;;;;;;;;;;;;;;-1:-1:-1;;;1063:26:28;;;:7;:26::i;:::-;311:20701:40;14923:389;;;:::i;:::-;;;188:6:84;176:19;;;158:38;;146:2;131:18;14923:389:40;;;;;;;;16465:463;;;:::i;:::-;;;;;;;:::i;11859:257::-;;;:::i;:::-;;;2348:14:84;;2341:22;2323:41;;2311:2;2296:18;11859:257:40;2183:187:84;13171:163:40;;;:::i;:::-;;;2521:25:84;;;2509:2;2494:18;13171:163:40;2375:177:84;14167:369:40;;;:::i;17608:403::-;;;:::i;15318:396::-;;;:::i;:::-;;;;;;;:::i;16934:668::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;16105:354::-;;;:::i;9489:1538::-;;;;;;:::i;:::-;;:::i;798:90::-;;;;;;;;-1:-1:-1;;;;;7932:32:84;;;7914:51;;7902:2;7887:18;798:90:40;7748:223:84;14542:375:40;;;:::i;12998:167::-;;;:::i;:::-;;;;;;;:::i;1433:75:83:-;1496:5;1433:75;;1748:47:28;;;;;1874:86:83;1942:11;1874:86;;13340:200:40;;;:::i;:::-;;;;;;;:::i;11111:321::-;;;;;;:::i;:::-;;:::i;12813:179::-;;;:::i;12192:203::-;;;:::i;2293:101:1:-;;;:::i;1670:239:79:-;;;:::i;572:102:40:-;;;;;18471:1243;;;;;;:::i;:::-;;:::i;18017:448::-;;;:::i;7967:146::-;;;:::i;607:136:76:-;;;:::i;1611:171:83:-;1697:5;1748:18;1611:171;;6924:513:40;;;:::i;:::-;;;-1:-1:-1;;;;;;13408:33:84;;;13390:52;;13378:2;13363:18;6924:513:40;13246:202:84;15720:379:40;;;:::i;:::-;;;;;;;:::i;2158:2138::-;;;;;;:::i;:::-;;:::i;19720:694::-;;;;;;:::i;:::-;;:::i;6401:517::-;;;:::i;13788:373::-;;;:::i;617:46:28:-;;;;;4302:407:40;;;;;;:::i;:::-;;:::i;4957:1438::-;;;;;;:::i;:::-;;:::i;7743:160::-;;;:::i;12643:164::-;;;:::i;8300:233::-;;;;;;:::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;:::-;;;;;;;;14923:389:40;15034:6;-1:-1:-1;;;;;1002:5:40;985:22;993:4;985:22;964:110;;;;-1:-1:-1;;;964:110:40;;;;;;;:::i;:::-;15056:31:::1;15090:17;:15;:17::i;:::-;:26;;::::0;-1:-1:-1;;;;;15090:26:40::1;::::0;-1:-1:-1;15130:32:40;;15126:180:::1;;15185:9;-1:-1:-1::0;;;;;15185:27:40::1;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15178:36;;;14923:389:::0;:::o;15126:180::-:1;-1:-1:-1::0;;;;;;;;;;;;;15252:43:40;::::1;::::0;::::1;;;::::0;14923:389::o;15126:180::-:1;15046:266;14923:389:::0;:::o;16465:463::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;1002:5:40;985:22;993:4;985:22;964:110;;;;-1:-1:-1;;;964:110:40;;;;;;;:::i;:::-;16619:31:::1;16653:17;:15;:17::i;:::-;:26;;::::0;-1:-1:-1;;;;;16653:26:40::1;::::0;-1:-1:-1;16693:32:40;;16689:233:::1;;16748:9;-1:-1:-1::0;;;;;16748:28:40::1;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;16748:30:40::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;16689:233::-;-1:-1:-1::0;;;;;;;;;;;16861:36:40;16816:95:::1;::::0;-1:-1:-1;;;16816:95:40;;::::1;::::0;::::1;2521:25:84::0;;;;16816:8:40::1;-1:-1:-1::0;;;;;16816:27:40::1;::::0;::::1;::::0;2494:18:84;;16816:95:40::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;11859:257:::0;-1:-1:-1;;;;;;;;;;;11995:31:40;11954:4;;11995:45;;;:104;;-1:-1:-1;12097:1:40;12060:17;:15;:17::i;:::-;:25;;;:39;;11995:104;11974:135;;11859:257;:::o;13171:163::-;13272:7;-1:-1:-1;;;;;1002:5:40;985:22;993:4;985:22;964:110;;;;-1:-1:-1;;;964:110:40;;;;;;;:::i;:::-;13302:17:::1;:15;:17::i;:::-;:25;;;13295:32;;13171:163:::0;:::o;14167:369::-;14271:7;-1:-1:-1;;;;;1002:5:40;985:22;993:4;985:22;964:110;;;;-1:-1:-1;;;964:110:40;;;;;;;:::i;:::-;14294:31:::1;14328:17;:15;:17::i;:::-;:26;;::::0;-1:-1:-1;;;;;14328:26:40::1;::::0;-1:-1:-1;14368:32:40;;14364:166:::1;;14423:9;-1:-1:-1::0;;;;;14423:20:40::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14364:166::-;-1:-1:-1::0;;;;;;;;;;;;;14483:36:40;14923:389;:::o;17608:403::-;17726:7;-1:-1:-1;;;;;1002:5:40;985:22;993:4;985:22;964:110;;;;-1:-1:-1;;;964:110:40;;;;;;;:::i;:::-;17749:31:::1;17783:17;:15;:17::i;:::-;:26;;::::0;-1:-1:-1;;;;;17783:26:40::1;::::0;-1:-1:-1;17823:32:40;;17819:186:::1;;17878:9;-1:-1:-1::0;;;;;17878:33:40::1;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;17819:186;-1:-1:-1::0;;;;;;;;;;;;;17951:43:40;14923:389;:::o;15318:396::-;15427:21;-1:-1:-1;;;;;1002:5:40;985:22;993:4;985:22;964:110;;;;-1:-1:-1;;;964:110:40;;;;;;;:::i;:::-;15464:31:::1;15498:17;:15;:17::i;:::-;:26;;::::0;-1:-1:-1;;;;;15498:26:40::1;::::0;-1:-1:-1;15538:32:40;;15534:174:::1;;15593:9;-1:-1:-1::0;;;;;15593:24:40::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15534:174::-;-1:-1:-1::0;;;;;;;;;;;;;15657:40:40;::::1;;14923:389:::0;:::o;16934:668::-;17067:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17067:28:40;-1:-1:-1;;;;;1002:5:40;985:22;993:4;985:22;964:110;;;;-1:-1:-1;;;964:110:40;;;;;;;:::i;:::-;17111:31:::1;17145:17;:15;:17::i;:::-;:26;;::::0;-1:-1:-1;;;;;17145:26:40::1;::::0;-1:-1:-1;17185:32:40;;17181:415:::1;;17240:42;::::0;-1:-1:-1;;;17240:42:40;;::::1;::::0;::::1;2521:25:84::0;;;-1:-1:-1;;;;;17240:34:40;::::1;::::0;::::1;::::0;2494:18:84;;17240:42:40::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;17240:42:40::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;17233:49:::0;16934:668;-1:-1:-1;;;16934:668:40:o;17181:415::-:1;-1:-1:-1::0;;;;;;;;;;;17347:43:40;17338:52;::::1;17313:146;;;::::0;-1:-1:-1;;;17313:146:40;;25840:2:84;17313:146:40::1;::::0;::::1;25822:21:84::0;25879:2;25859:18;;;25852:30;25918:34;25898:18;;;25891:62;-1:-1:-1;;;25969:18:84;;;25962:33;26012:19;;17313:146:40::1;25638:399:84::0;17313:146:40::1;-1:-1:-1::0;;;;;17480:8:40::1;:29;;-1:-1:-1::0;;;;;;;;;;;17527:36:40::1;;17564:6;17527:44;;;;;;;;:::i;:::-;;;;;;;;;17480:105;;;;;;;;;;;;;2521:25:84::0;;2509:2;2494:18;;2375:177;17181:415:40::1;17101:501;1084:1;16934:668:::0;;;:::o;16105:354::-;16204:7;-1:-1:-1;;;;;1002:5:40;985:22;993:4;985:22;964:110;;;;-1:-1:-1;;;964:110:40;;;;;;;:::i;:::-;16227:31:::1;16261:17;:15;:17::i;:::-;:26;;::::0;-1:-1:-1;;;;;16261:26:40::1;::::0;-1:-1:-1;16301:32:40;;16297:156:::1;;16356:9;-1:-1:-1::0;;;;;16356:15:40::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;16297:156;-1:-1:-1::0;;;;;;;;;;;;;16411:31:40;;14923:389::o;9489:1538::-;-1:-1:-1;;;;;1002:5:40;985:22;993:4;985:22;964:110;;;;-1:-1:-1;;;964:110:40;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;9777:30:40;-1:-1:-1;;;;;9777:30:40::1;::::0;9817:392:::1;;9939:9;9928:32;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;;;;;;9974:39:40;;-1:-1:-1;;;;;;9974:39:40::1;-1:-1:-1::0;;;;;9974:39:40;::::1;;::::0;;;-1:-1:-1;9817:392:40::1;;;10099:10;-1:-1:-1::0;;;;;10099:20:40;::::1;;10095:104;;10139:45;::::0;-1:-1:-1;;;10139:45:40;;26640:2:84;10139:45:40::1;::::0;::::1;26622:21:84::0;26679:2;26659:18;;;26652:30;26718:34;26698:18;;;26691:62;-1:-1:-1;;;26769:18:84;;;26762:33;26812:19;;10139:45:40::1;26438:399:84::0;10095:104:40::1;10223:19:::0;;-1:-1:-1;;;;;10223:19:40::1;10219:148;;10321:19:::0;:35;;-1:-1:-1;;;;;;10321:35:40::1;10351:4;10321:35;::::0;;10219:148:::1;-1:-1:-1::0;;;;;;;;;;;10381:28:40;-1:-1:-1;;;;;10381:28:40::1;:42:::0;10377:272:::1;;1496:5:83::0;-1:-1:-1;;;;;10515:38:40::1;-1:-1:-1::0;;;;;;;;;;;10515:28:40;-1:-1:-1;;;;;10515:28:40::1;:38:::0;10512:127:::1;;10573:51;::::0;-1:-1:-1;;;10573:51:40;;27044:2:84;10573:51:40::1;::::0;::::1;27026:21:84::0;27083:2;27063:18;;;27056:30;27122:34;27102:18;;;27095:62;-1:-1:-1;;;27173:18:84;;;27166:39;27222:19;;10573:51:40::1;26842:405:84::0;10512:127:40::1;1496:5:83::0;-1:-1:-1;;;;;;;;;;;10666:37:40;;-1:-1:-1;;;;;;10666:37:40::1;-1:-1:-1::0;;;;;10666:37:40;;::::1;;::::0;;10730:8:::1;10722:29;;10714:96;;;::::0;-1:-1:-1;;;10714:96:40;;27454:2:84;10714:96:40::1;::::0;::::1;27436:21:84::0;27493:2;27473:18;;;27466:30;27532:34;27512:18;;;27505:62;-1:-1:-1;;;27583:18:84;;;27576:48;27641:19;;10714:96:40::1;27252:414:84::0;10714:96:40::1;-1:-1:-1::0;;;;;;;;10828:61:40::1;;:8;-1:-1:-1::0;;;;;10828:14:40::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;10828:61:40::1;;10820:125;;;::::0;-1:-1:-1;;;10820:125:40;;28168:2:84;10820:125:40::1;::::0;::::1;28150:21:84::0;28207:2;28187:18;;;28180:30;28246:34;28226:18;;;28219:62;-1:-1:-1;;;28297:18:84;;;28290:49;28356:19;;10820:125:40::1;27966:415:84::0;10820:125:40::1;1697:5:83::0;1748:18;1496:5;-1:-1:-1;;;;;10969:51:40::1;10978:10;10969:51;11010:9;:7;:9::i;:::-;10969:51;;;;;;:::i;:::-;;;;;;;;9604:1423;9489:1538:::0;:::o;14542:375::-;14649:4;-1:-1:-1;;;;;1002:5:40;985:22;993:4;985:22;964:110;;;;-1:-1:-1;;;964:110:40;;;;;;;:::i;:::-;14669:31:::1;14703:17;:15;:17::i;:::-;:26;;::::0;-1:-1:-1;;;;;14703:26:40::1;::::0;-1:-1:-1;14743:32:40;;14739:172:::1;;14798:9;-1:-1:-1::0;;;;;14798:23:40::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14739:172::-;-1:-1:-1::0;;14861:39:40;;-1:-1:-1;;;14861:39:40;::::1;;;::::0;14923:389::o;12998:167::-;13096:17;-1:-1:-1;;;;;1002:5:40;985:22;993:4;985:22;964:110;;;;-1:-1:-1;;;964:110:40;;;;;;;:::i;:::-;13136:17:::1;:15;:17::i;:::-;13129:29:::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;;;;13136:22;13129:29;13136:22:::1;::::0;13129:29;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12998:167:::0;:::o;13340:200::-;13467:13;13503:30;:28;:30::i;11111:321::-;-1:-1:-1;;;;;;;;;;;11217:30:40;11184:4;;-1:-1:-1;;;;;11217:30:40;1942:11:83;11366:49:40;;;;;11410:5;-1:-1:-1;;;;;11400:15:40;:6;-1:-1:-1;;;;;11400:15:40;;11257:168;11111:321;-1:-1:-1;;;11111:321:40:o;12813:179::-;12915:21;-1:-1:-1;;;;;1002:5:40;985:22;993:4;985:22;964:110;;;;-1:-1:-1;;;964:110:40;;;;;;;:::i;:::-;12959:17:::1;:15;:17::i;:::-;:26;;::::0;-1:-1:-1;;;;;12959:26:40::1;::::0;-1:-1:-1;12813:179:40;:::o;12192:203::-;12270:7;;12301:9;:7;:9::i;:::-;-1:-1:-1;;;;;12301:23:40;;:77;;-1:-1:-1;1496:5:83;;11859:257:40:o;12301:77::-;12339:18;:16;:18::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:-;735:10:3;;1765:14:79;:12;:14::i;:::-;-1:-1:-1;;;;;1765:24:79;;1761:106;;1805:51;;-1:-1:-1;;;1805:51:79;;29255:2:84;1805:51:79;;;29237:21:84;29294:2;29274:18;;;29267:30;29333:34;29313:18;;;29306:62;-1:-1:-1;;;29384:18:84;;;29377:39;29433:19;;1805:51:79;29053:405:84;1761:106:79;1876:26;1895:6;1876:18;:26::i;:::-;1712:197;1670:239::o;18471:1243:40:-;18601:16;-1:-1:-1;;;;;1002:5:40;985:22;993:4;985:22;964:110;;;;-1:-1:-1;;;964:110:40;;;;;;;:::i;:::-;18734:1:::1;18695:17;:15;:17::i;:::-;:26;;::::0;-1:-1:-1;;;;;18695:26:40::1;18687:49;18683:183;;18809:17;:15;:17::i;:::-;:26;;::::0;:46:::1;::::0;-1:-1:-1;;;18809:46:40;;-1:-1:-1;;;;;18809:26:40;;::::1;::::0;:39:::1;::::0;:46:::1;::::0;18849:5;;18809:46:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18802:53:::0;16934:668;-1:-1:-1;;16934:668:40:o;18683:183::-:1;-1:-1:-1::0;;;;;;;;;;;19044:17:40;;-1:-1:-1;;;;;;;;;;;19075:12:40;-1:-1:-1;;;;;;;;;;;19101:24:40;18972:182:::1;::::0;-1:-1:-1;;;18972:182:40;;18875:40:::1;::::0;18972:8:::1;-1:-1:-1::0;;;;;18972:27:40::1;::::0;::::1;::::0;:182:::1;::::0;-1:-1:-1;;;;;;;;;;;19013:17:40;19044;19075:12;19101:24:::1;::::0;::::1;;;::::0;19139:5;;19101:24:::1;18972:182;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18953:201;;19316:13;19359:41;19391:8;19359:31;:41::i;:::-;19339:61:::0;;-1:-1:-1;19339:61:40;-1:-1:-1;;;;;;19414:20:40;::::1;;19438:1;19414:25:::0;19410:238:::1;;19494:26;19514:5;19494:19;:26::i;:::-;-1:-1:-1::0;;;;;19466:96:40::1;;19584:8;19614:5;19466:171;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19455:182;;19410:238;19691:8;19681;-1:-1:-1::0;;;;;19662:45:40::1;;19701:5;19662:45;;;;;;:::i;:::-;;;;;;;;18623:1091;;;18471:1243:::0;;;:::o;18017:448::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;1002:5:40;985:22;993:4;985:22;964:110;;;;-1:-1:-1;;;964:110:40;;;;;;;:::i;:::-;18166:31:::1;18200:17;:15;:17::i;:::-;:26;;::::0;-1:-1:-1;;;;;18200:26:40::1;::::0;-1:-1:-1;18240:32:40;;18236:223:::1;;18295:9;-1:-1:-1::0;;;;;18295:23:40::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;18236:223;-1:-1:-1::0;;;;;;;;;;;18403:31:40;18358:90:::1;::::0;-1:-1:-1;;;18358:90:40;;::::1;::::0;::::1;2521:25:84::0;;;;18358:8:40::1;-1:-1:-1::0;;;;;18358:27:40::1;::::0;::::1;::::0;2494:18:84;;18358:90:40::1;2375:177:84::0;7967:146:40;8046:7;-1:-1:-1;;;;;;;;;;;8076:24:40;:30;-1:-1:-1;;;;;8076:30:40;;7967:146;-1:-1:-1;7967:146:40:o;607:136:76:-;662:4;720:6;:4;:6::i;:::-;-1:-1:-1;;;;;703:23:76;711:4;-1:-1:-1;;;;;703:23:76;;;682:54;;607:136;:::o;6924:513:40:-;7051:6;7098:4;-1:-1:-1;;;;;7107:5:40;7090:22;;;:68;;;7149:9;:7;:9::i;:::-;-1:-1:-1;;;;;7132:26:40;7140:4;-1:-1:-1;;;;;7132:26:40;;7090:68;7073:358;;;-1:-1:-1;;;;7190:39:40;6924:513::o;7073:358::-;7287:1;7250:17;:15;:17::i;:::-;:25;;;:39;7246:185;;-1:-1:-1;;;;7312:31:40;6924:513::o;7246:185::-;-1:-1:-1;;;;7381:39:40;6924:513::o;15720:379::-;15824:16;-1:-1:-1;;;;;1002:5:40;985:22;993:4;985:22;964:110;;;;-1:-1:-1;;;964:110:40;;;;;;;:::i;:::-;15856:31:::1;15890:17;:15;:17::i;:::-;:26;;::::0;-1:-1:-1;;;;;15890:26:40::1;::::0;-1:-1:-1;15930:32:40;;15926:166:::1;;15985:9;-1:-1:-1::0;;;;;15985:20:40::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;15985:22:40::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;15926:166::-;-1:-1:-1::0;;;;;;;;;;;16038:43:40;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;;;;16045:36;16038:43;;::::1;16045:36:::0;16038:43;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14923:389:::0;:::o;2158:2138::-;3147:66:0;4302:15;;2421:21:40;;3147:66:0;-1:-1:-1;;;4302:15:0;;;;4301:16;;-1:-1:-1;;;;;4348:14:0;2421:21:40;4724:16:0;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;-1:-1:-1;;;;;4788:16:0;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:0;4808:25;:30;4788:50;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1;;;4906:23:0;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;4949:18:0;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:0;-1:-1:-1;;;5011:22:0;;;4977:67;2515:37:40::1;2583:25:::0;2562:109:::1;;;::::0;-1:-1:-1;;;2562:109:40;;32514:2:84;2562:109:40::1;::::0;::::1;32496:21:84::0;32553:2;32533:18;;;32526:30;32592:34;32572:18;;;32565:62;-1:-1:-1;;;32643:18:84;;;32636:35;32688:19;;2562:109:40::1;32312:401:84::0;2562:109:40::1;2791:19;::::0;2820:718:::1;2839:27:::0;;::::1;2820:718;;;2890:22;2915:14;;2930:3;2915:19;;;;;;;:::i;:::-;;;;;;;2890:44;;2952:3;2959:1;2952:8:::0;2948:357:::1;;2998:59;::::0;-1:-1:-1;;;2998:59:40;;::::1;::::0;::::1;2521:25:84::0;;;2998:8:40::1;-1:-1:-1::0;;;;;2998:43:40::1;::::0;::::1;::::0;2494:18:84;;2998:59:40::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2980:77;;2948:357;;;3144:59;::::0;-1:-1:-1;;;3144:59:40;;::::1;::::0;::::1;2521:25:84::0;;;3144:8:40::1;-1:-1:-1::0;;;;;3144:43:40::1;::::0;::::1;::::0;2494:18:84;;3144:59:40::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3125:78;;;;;;;;:::i;:::-;:15;:78;;;;;;;;:::i;:::-;;3096:194;;;::::0;-1:-1:-1;;;3096:194:40;;32920:2:84;3096:194:40::1;::::0;::::1;32902:21:84::0;32959:2;32939:18;;;32932:30;32998:34;32978:18;;;32971:62;-1:-1:-1;;;33049:18:84;;;33042:43;33102:19;;3096:194:40::1;32718:409:84::0;3096:194:40::1;3323:14;3318:210;;3455:54;::::0;-1:-1:-1;;;3455:54:40;;::::1;::::0;::::1;2521:25:84::0;;;3512:1:40::1;::::0;3455:8:::1;-1:-1:-1::0;;;;;3455:38:40::1;::::0;::::1;::::0;2494:18:84;;3455:54:40::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:58;;;3438:75;;3318:210;-1:-1:-1::0;2868:6:40::1;;2820:718;;;-1:-1:-1::0;3652:42:40::1;::::0;-1:-1:-1;;;3652:42:40;;::::1;::::0;::::1;2521:25:84::0;;;3652:8:40::1;-1:-1:-1::0;;;;;3652:27:40::1;::::0;::::1;::::0;2494:18:84;;3652:42:40::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;3652:42:40::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;3708:37:40::1;::::0;-1:-1:-1;;;3708:37:40;;::::1;::::0;::::1;2521:25:84::0;;;3708:8:40::1;-1:-1:-1::0;;;;;3708:27:40::1;::::0;::::1;::::0;2494:18:84;;3708:37:40::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;3708:37:40::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;;;;;;;;;;3882:33:40;;;3929:14;:49;;-1:-1:-1;;;;;;3992:37:40;3967:10:::1;-1:-1:-1::0;;;;3992:37:40;;-1:-1:-1;;;3992:37:40;::::1;;;;::::0;;-1:-1:-1;;;;;;;;;;;4043:39:40;;4067:15;;4043:21;-1:-1:-1;;4043:39:40::1;-1:-1:-1::0;4067:15:40;4043:39:::1;::::0;::::1;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;4096:24:40::1;::::0;::::1;:45:::0;;-1:-1:-1;;4096:45:40::1;;;::::0;::::1;;;::::0;;4155:34:::1;:17;::::0;::::1;4175:14:::0;;4155:34:::1;:::i;:::-;-1:-1:-1::0;4203:12:40::1;;:23:::0;;;-1:-1:-1;4283:4:40::1;::::0;-1:-1:-1;;5068:14:0;5064:101;;;5098:23;;-1:-1:-1;;;;5098:23:0;;;5140:14;;-1:-1:-1;33494:50:84;;5140:14:0;;33482:2:84;33467:18;5140:14:0;;;;;;;5064:101;4092:1079;;;;;2158:2138:40;;;;;;;:::o;19720:694::-;19856:16;-1:-1:-1;;;;;1002:5:40;985:22;993:4;985:22;964:110;;;;-1:-1:-1;;;964:110:40;;;;;;;:::i;:::-;19989:1:::1;19950:17;:15;:17::i;:::-;:26;;::::0;-1:-1:-1;;;;;19950:26:40::1;19942:49;19938:189;;20064:17;:15;:17::i;:::-;:26;;::::0;:52:::1;::::0;-1:-1:-1;;;20064:52:40;;-1:-1:-1;;;;;20064:26:40;;::::1;::::0;:45:::1;::::0;:52:::1;::::0;20110:5;;20064:52:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19938:189::-;-1:-1:-1::0;;;;;;;;;;;20297:17:40;;-1:-1:-1;;;;;;;;;;;20328:12:40;-1:-1:-1;;;;;;;;;;;20354:24:40;20225:182:::1;::::0;-1:-1:-1;;;20225:182:40;;:8:::1;-1:-1:-1::0;;;;;20225:27:40::1;::::0;::::1;::::0;:182:::1;::::0;-1:-1:-1;;;;;;;;;;;20266:17:40;20354:24:::1;::::0;;::::1;;;::::0;20392:5;;20354:24:::1;20225:182;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6401:517::-:0;6547:13;6601:4;-1:-1:-1;;;;;6610:5:40;6593:22;;;:68;;;6652:9;:7;:9::i;:::-;-1:-1:-1;;;;;6635:26:40;6643:4;-1:-1:-1;;;;;6635:26:40;;6593:68;6576:336;;;-1:-1:-1;6693:31:40;;;;;;;;;;;;-1:-1:-1;;;6693:31:40;;;;;6401:517::o;6576:336::-;6782:1;6745:17;:15;:17::i;:::-;:25;;;:39;6741:171;;-1:-1:-1;6807:24:40;;;;;;;;;;;;-1:-1:-1;;;6807:24:40;;;;;6401:517::o;6741:171::-;-1:-1:-1;6869:32:40;;;;;;;;;;;;-1:-1:-1;;;6869:32:40;;;;;6401:517::o;13788:373::-;13889:20;-1:-1:-1;;;;;1002:5:40;985:22;993:4;985:22;964:110;;;;-1:-1:-1;;;964:110:40;;;;;;;:::i;:::-;13925:31:::1;13959:17;:15;:17::i;:::-;:26;;::::0;-1:-1:-1;;;;;13959:26:40::1;::::0;-1:-1:-1;13999:32:40;;13995:160:::1;;14054:9;-1:-1:-1::0;;;;;14054:17:40::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13995:160::-;-1:-1:-1::0;;14111:33:40;;-1:-1:-1;;;;;14111:33:40::1;14923:389:::0;:::o;4302:407::-;3147:66:0;4302:15;;4472:7:40;;3147:66:0;-1:-1:-1;;;4302:15:0;;;;4301:16;;-1:-1:-1;;;;;4348:14:0;4472:7:40;4724:16:0;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;-1:-1:-1;;;;;4788:16:0;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:0;4808:25;:30;4788:50;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1;;;4906:23:0;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;4949:18:0;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:0;-1:-1:-1;;;5011:22:0;;;4977:67;4495:32:40::1;4530:17;:15;:17::i;:::-;4557:19:::0;;4495:52;;-1:-1:-1;4557:19:40::1;::::0;4495:52;;4557:19:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;4586:14:40::1;::::0;::::1;:25:::0;;;4621:15:::1;;:51:::0;;-1:-1:-1;;;;;;4621:51:40::1;4661:10;4621:51;::::0;;4697:4:::1;::::0;-1:-1:-1;5068:14:0;5064:101;;;5098:23;;-1:-1:-1;;;;5098:23:0;;;5140:14;;-1:-1:-1;33494:50:84;;5140:14:0;;33482:2:84;33467:18;5140:14:0;;;;;;;5064:101;4092:1079;;;;;4302:407:40;;;;:::o;4957:1438::-;5219:17;1169:9;:7;:9::i;:::-;-1:-1:-1;;;;;1152:26:40;1160:4;-1:-1:-1;;;;;1152:26:40;;:69;;;-1:-1:-1;1206:4:40;-1:-1:-1;;;;;1496:5:83;1198:23:40;;1152:69;1131:153;;;;-1:-1:-1;;;1131:153:40;;34041:2:84;1131:153:40;;;34023:21:84;34080:2;34060:18;;;34053:30;34119:34;34099:18;;;34092:62;-1:-1:-1;;;34170:18:84;;;34163:35;34215:19;;1131:153:40;33839:401:84;1131:153:40;5252:13:::1;5456:26;5550:11;5580;5609:6;5633:18;5352:313;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5268:407;;;;;;5252:423;;5785:4;5778:12;;5816:4;5839:5;5872:16;:14;:16::i;:::-;5862:27:::0;;::::1;::::0;;::::1;::::0;5744:159:::1;::::0;::::1;::::0;;;;::::1;;:::i;:::-;;;;;;;;;;;;;5721:192;;;;;;5713:201;;5685:231;;5930:9;-1:-1:-1::0;;;;;5930:21:40::1;;5955:1;5930:26:::0;5926:327:::1;;6037:26;6057:5;6037:19;:26::i;:::-;-1:-1:-1::0;;;;;5992:117:40::1;;6127:11;6156;6185:6;6209:18;5992:249;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5972:270;;5926:327;6267:121;6307:9;6352;-1:-1:-1::0;;;;;6330:46:40::1;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6267:121;::::0;;-1:-1:-1;;;;;36529:32:84;;;36511:51;;36605:14;;36598:22;36593:2;36578:18;;36571:50;36484:18;6267:121:40::1;;;;;;;5242:1153;4957:1438:::0;;;;;;:::o;7743:160::-;7829:7;-1:-1:-1;;;;;;;;;;;7859:24:40;:37;;;-1:-1:-1;;;;;7859:37:40;;7743:160;-1:-1:-1;7743:160:40:o;12643:164::-;12719:12;12754:8;-1:-1:-1;;;;;12754:19:40;;12774:17;:15;:17::i;:::-;:25;;;12754:46;;;;;;;;;;;;;2521:25:84;;2509:2;2494:18;;2375:177;12754:46:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12754:46:40;;;;;;;;;;;;:::i;8300:233::-;1531:13:1;:11;:13::i;:::-;8418:37:40;:49;;-1:-1:-1;;;;;;8418:49:40::1;-1:-1:-1::0;;;;;8418:49:40;::::1;::::0;;::::1;::::0;;;8507:7:::1;:5;:7::i;:::-;-1:-1:-1::0;;;;;8482:44:40::1;;;;;;;;;;;8300:233:::0;:::o;1980:186:44:-;2126:24;;1980:186::o;2118:133:28:-;2175:13;2207:37;2217:26;2207:9;:37::i;544:94:81:-;586:7;-1:-1:-1;;;;;;;;;;;612:13:81;644:291;426:112;477:7;-1:-1:-1;;;;;;;;;;;503:13:81;644:291;1796:162:1;735:10:3;1855:7:1;:5;:7::i;:::-;-1:-1:-1;;;;;1855:23:1;;1851:101;;1901:40;;-1:-1:-1;;;1901:40:1;;735:10:3;1901:40:1;;;7914:51:84;7887:18;;1901:40:1;7748:223:84;8709:356:40;8819:37;8812:44;;-1:-1:-1;;;;;;8812:44:40;;;-1:-1:-1;8886:7:40;:5;:7::i;:::-;8866:27;;8920:9;-1:-1:-1;;;;;8907:22:40;:9;-1:-1:-1;;;;;8907:22:40;;8903:156;;8978:9;-1:-1:-1;;;;;;;;;;;8945:42:40;;-1:-1:-1;;;;;;8945:42:40;-1:-1:-1;;;;;8945:42:40;;;;;;9006;;;;;;;;;;;-1:-1:-1;;9006:42:40;8903:156;8802:263;8709:356;:::o;20420:590::-;20518:7;20527;20550:13;20623:8;20657:26;20589:109;;;;;;;;37127:19:84;;;-1:-1:-1;;;;;;37176:33:84;37171:2;37162:12;;37155:55;37235:2;37226:12;;36972:272;20589:109:40;;;;;;;;;;;;;20566:142;;;;;;20550:158;;20835:4;20828:12;;20870:4;20897:5;20934:16;:14;:16::i;:::-;20924:27;;;;;;;20790:179;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;20790:179:40;;;;;;;;;20763:220;;20790:179;20763:220;;;;;20988:5;;-1:-1:-1;20420:590:40;-1:-1:-1;;20420:590:40:o;3472:406:76:-;3558:17;3591:16;3610:19;:17;:19::i;:::-;3591:38;;3734:5;3728:4;3723:3;3720:1;3712:28;3699:41;-1:-1:-1;;;;;;3767:23:76;;3759:60;;;;-1:-1:-1;;;3759:60:76;;37451:2:84;3759:60:76;;;37433:21:84;37490:2;37470:18;;;37463:30;37529:26;37509:18;;;37502:54;37573:18;;3759:60:76;37249:348:84;3759:60:76;3861:9;-1:-1:-1;;;;;3834:37:76;3853:6;:4;:6::i;:::-;-1:-1:-1;;;;;3834:37:76;3841:10;-1:-1:-1;;;;;3834:37:76;;;;;;;;;;;3581:297;3472:406;;;:::o;1911:278::-;1984:12;2116:6;:4;:6::i;:::-;2108:15;;2019:163;;;;;;;-1:-1:-1;;;37933:64:84;;-1:-1:-1;;38027:44:84;;;;38022:2;38013:12;;38006:66;-1:-1:-1;;;38097:2:84;38088:12;;38081:64;38170:2;38161:12;;37602:577;2019:163:76;;;;;;;;;;;;;2012:170;;1911:278;:::o;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;;;-1:-1:-1;3315:6:28;2969:360;-1:-1:-1;;2969:360:28:o;2267:657:76:-;2343:16;2375:13;2391:6;:4;:6::i;:::-;2375:22;;2475:4;2469:11;2462:18;;-1:-1:-1;;;2558:3:76;2551:79;2742:5;2736:4;2732:16;2725:4;2720:3;2716:14;2709:40;-1:-1:-1;;;2834:4:76;2829:3;2825:14;2818:90;2416:502;2267:657;:::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;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;207:127:84:-;268:10;263:3;259:20;256:1;249:31;299:4;296:1;289:15;323:4;320:1;313:15;339:250;424:1;434:113;448:6;445:1;442:13;434:113;;;524:11;;;518:18;505:11;;;498:39;470:2;463:10;434:113;;;-1:-1:-1;;581:1:84;563:16;;556:27;339:250::o;594:270::-;635:3;673:5;667:12;700:6;695:3;688:19;716:76;785:6;778:4;773:3;769:14;762:4;755:5;751:16;716:76;:::i;:::-;846:2;825:15;-1:-1:-1;;821:29:84;812:39;;;;853:4;808:50;;594:270;-1:-1:-1;;594:270:84:o;869:1309::-;1023:4;1052:2;1081;1070:9;1063:21;1122:2;1111:9;1107:18;1150:6;1144:13;1183:2;1179;1176:10;1166:44;;1190:18;;:::i;:::-;1226;;;1219:30;1284:15;;;1278:22;1319:4;1339:20;;;1332:34;;;1415:19;;1443:22;;;;1496:3;1546:1;1542:14;;;1527:30;;1523:40;;;1586:21;;;;1481:19;;;;1625:1;1635:514;1649:6;1646:1;1643:13;1635:514;;;1714:22;;;-1:-1:-1;;1710:37:84;1698:50;;1771:13;;1807:9;;1846:2;1839:10;;1829:44;;1853:18;;:::i;:::-;1886;;1945:11;;1939:18;1977:15;;;1970:27;;;2020:49;2053:15;;;1939:18;2020:49;:::i;:::-;2010:59;-1:-1:-1;;2092:15:84;;;;2127:12;;;;1671:1;1664:9;1635:514;;;-1:-1:-1;2166:6:84;;869:1309;-1:-1:-1;;;;;;;;869:1309:84:o;2739:146::-;2825:2;2818:5;2815:13;2805:47;;2832:18;;:::i;:::-;2861;;2739:146::o;2890:219::-;3042:2;3027:18;;3054:49;3031:9;3085:6;3054:49;:::i;3114:180::-;3173:6;3226:2;3214:9;3205:7;3201:23;3197:32;3194:52;;;3242:1;3239;3232:12;3194:52;-1:-1:-1;3265:23:84;;3114:180;-1:-1:-1;3114:180:84:o;3299:154::-;3394:1;3387:5;3384:12;3374:46;;3400:18;;:::i;3458:1069::-;3516:3;3547;3579:5;3573:12;3606:6;3601:3;3594:19;3632:4;3661:2;3656:3;3652:12;3645:19;;3717:2;3707:6;3704:1;3700:14;3693:5;3689:26;3685:35;3754:2;3747:5;3743:14;3775:1;3796;3806:695;3822:6;3817:3;3814:15;3806:695;;;3891:16;;;-1:-1:-1;;3887:30:84;3875:43;;3941:13;;3895:4;4047:2;4037:13;;4105:1;4119:275;4135:4;4130:3;4127:13;4119:275;;;4220:4;4212:6;4208:17;4201:5;4194:32;4253:41;4287:6;4276:8;4270:15;4253:41;:::i;:::-;4323:17;;;;4366:14;;;;4243:51;-1:-1:-1;4159:1:84;4150:11;4119:275;;;-1:-1:-1;4479:12:84;;;;4415:6;-1:-1:-1;;;4444:15:84;;;;3848:1;3839:11;3806:695;;;-1:-1:-1;4517:4:84;;3458:1069;-1:-1:-1;;;;;;;;3458:1069:84:o;4532:1293::-;4727:2;4716:9;4709:21;4785:4;4776:6;4770:13;4766:24;4761:2;4750:9;4746:18;4739:52;4690:4;4838:2;4830:6;4826:15;4820:22;4851:73;4920:2;4909:9;4905:18;4891:12;4851:73;:::i;:::-;;4973:2;4965:6;4961:15;4955:22;4986:66;5048:2;5037:9;5033:18;5017:14;4986:66;:::i;:::-;;5101:2;5093:6;5089:15;5083:22;5142:4;5136:3;5125:9;5121:19;5114:33;5170:53;5218:3;5207:9;5203:19;5187:14;5170:53;:::i;:::-;5156:67;;5272:3;5264:6;5260:16;5254:23;5300:2;5296:7;5368:2;5356:9;5348:6;5344:22;5340:31;5334:3;5323:9;5319:19;5312:60;5395:40;5428:6;5412:14;5395:40;:::i;:::-;5381:54;;5484:3;5476:6;5472:16;5466:23;5444:45;;5554:2;5542:9;5534:6;5530:22;5526:31;5520:3;5509:9;5505:19;5498:60;5581:57;5631:6;5615:14;5581:57;:::i;:::-;5567:71;;5687:3;5679:6;5675:16;5669:23;5647:45;;5758:2;5746:9;5738:6;5734:22;5730:31;5723:4;5712:9;5708:20;5701:61;;5779:40;5812:6;5796:14;5779:40;:::i;:::-;5771:48;4532:1293;-1:-1:-1;;;;;4532:1293:84:o;5830:127::-;5891:10;5886:3;5882:20;5879:1;5872:31;5922:4;5919:1;5912:15;5946:4;5943:1;5936:15;5962:257;6034:4;6028:11;;;6066:17;;-1:-1:-1;;;;;6098:34:84;;6134:22;;;6095:62;6092:88;;;6160:18;;:::i;:::-;6196:4;6189:24;5962:257;:::o;6224:253::-;6296:2;6290:9;6338:4;6326:17;;-1:-1:-1;;;;;6358:34:84;;6394:22;;;6355:62;6352:88;;;6420:18;;:::i;6482:275::-;6553:2;6547:9;6618:2;6599:13;;-1:-1:-1;;6595:27:84;6583:40;;-1:-1:-1;;;;;6638:34:84;;6674:22;;;6635:62;6632:88;;;6700:18;;:::i;:::-;6736:2;6729:22;6482:275;;-1:-1:-1;6482:275:84:o;6762:186::-;6810:4;-1:-1:-1;;;;;6835:6:84;6832:30;6829:56;;;6865:18;;:::i;:::-;-1:-1:-1;6931:2:84;6910:15;-1:-1:-1;;6906:29:84;6937:4;6902:40;;6762:186::o;6953:336::-;7017:5;7046:52;7062:35;7090:6;7062:35;:::i;:::-;7046:52;:::i;:::-;7037:61;;7121:6;7114:5;7107:21;7161:3;7152:6;7147:3;7143:16;7140:25;7137:45;;;7178:1;7175;7168:12;7137:45;7227:6;7222:3;7215:4;7208:5;7204:16;7191:43;7281:1;7274:4;7265:6;7258:5;7254:18;7250:29;7243:40;6953:336;;;;;:::o;7294:449::-;7362:6;7415:2;7403:9;7394:7;7390:23;7386:32;7383:52;;;7431:1;7428;7421:12;7383:52;7471:9;7458:23;-1:-1:-1;;;;;7496:6:84;7493:30;7490:50;;;7536:1;7533;7526:12;7490:50;7559:22;;7612:4;7604:13;;7600:27;-1:-1:-1;7590:55:84;;7641:1;7638;7631:12;7590:55;7664:73;7729:7;7724:2;7711:16;7706:2;7702;7698:11;7664:73;:::i;:::-;7654:83;7294:449;-1:-1:-1;;;;7294:449:84:o;7976:1246::-;8038:3;8069;8101:5;8095:12;8128:6;8123:3;8116:19;8154:4;8183:2;8178:3;8174:12;8167:19;;8205:1;8259:2;8249:6;8246:1;8242:14;8235:5;8231:26;8227:35;8296:2;8289:5;8285:14;8317:1;8338;8348:848;8364:6;8359:3;8356:15;8348:848;;;-1:-1:-1;;8463:16:84;;;8459:25;;8447:38;;8508:13;;8580:9;;8602:22;;;8752:11;;;;8646:13;;;;8700:17;;;8690:28;;8686:37;;8787:1;8801:288;8817:8;8812:3;8809:17;8801:288;;;8917:2;8910:4;8902:6;8898:17;8894:26;8887:5;8880:41;8948;8982:6;8971:8;8965:15;8948:41;:::i;:::-;9018:17;;;;9061:14;;;;8938:51;-1:-1:-1;8845:1:84;8836:11;8801:288;;;-1:-1:-1;9174:12:84;;;;9110:6;-1:-1:-1;;;9139:15:84;;;;-1:-1:-1;;8390:1:84;8381:11;8348:848;;;-1:-1:-1;9212:4:84;;7976:1246;-1:-1:-1;;;;;;;;;7976:1246:84:o;9227:340::-;9476:2;9465:9;9458:21;9439:4;9496:65;9557:2;9546:9;9542:18;9534:6;9496:65;:::i;9780:219::-;9929:2;9918:9;9911:21;9892:4;9949:44;9989:2;9978:9;9974:18;9966:6;9949:44;:::i;10004:131::-;-1:-1:-1;;;;;10079:31:84;;10069:42;;10059:70;;10125:1;10122;10115:12;10140:247;10199:6;10252:2;10240:9;10231:7;10227:23;10223:32;10220:52;;;10268:1;10265;10258:12;10220:52;10307:9;10294:23;10326:31;10351:5;10326:31;:::i;10868:192::-;10937:4;-1:-1:-1;;;;;10962:6:84;10959:30;10956:56;;;10992:18;;:::i;:::-;-1:-1:-1;11037:1:84;11033:14;11049:4;11029:25;;10868:192::o;11065:1779::-;11128:5;11181:3;11174:4;11166:6;11162:17;11158:27;11148:55;;11199:1;11196;11189:12;11148:55;11235:6;11222:20;11261:4;11285:69;11301:52;11350:2;11301:52;:::i;11285:69::-;11388:15;;;11474:1;11470:10;;;;11458:23;;11454:32;;;11419:12;;;;11498:15;;;11495:35;;;11526:1;11523;11516:12;11495:35;11562:2;11554:6;11550:15;11574:1241;11590:6;11585:3;11582:15;11574:1241;;;11676:3;11663:17;-1:-1:-1;;;;;11753:2:84;11740:11;11737:19;11734:39;;;11769:1;11766;11759:12;11734:39;11808:11;11800:6;11796:24;11786:34;;11860:3;11855:2;11851;11847:11;11843:21;11833:49;;11878:1;11875;11868:12;11833:49;11926:2;11922;11918:11;11905:25;11956:69;11972:52;12021:2;11972:52;:::i;11956:69::-;12069:17;;;12167:1;12163:10;;;;12155:19;;12176:2;12151:28;;12108:14;;;;12195:17;;;12192:37;;;12225:1;12222;12215:12;12192:37;12263:2;12259;12255:11;12279:463;12297:8;12290:5;12287:19;12279:463;;;12399:5;12386:19;12443:2;12428:13;12425:21;12422:41;;;12459:1;12456;12449:12;12422:41;12490:22;;12551:2;12543:11;;12539:21;-1:-1:-1;12529:49:84;;12574:1;12571;12564:12;12529:49;12609:78;12683:3;12677:2;12673;12669:11;12656:25;12651:2;12647;12643:11;12609:78;:::i;:::-;12595:93;;-1:-1:-1;12714:14:84;;;;12318;;12279:463;;;-1:-1:-1;12755:18:84;;-1:-1:-1;;;12793:12:84;;;;-1:-1:-1;11607:12:84;;11574:1241;;;-1:-1:-1;12833:5:84;11065:1779;-1:-1:-1;;;;;;11065:1779:84:o;12849:392::-;12968:6;13021:2;13009:9;13000:7;12996:23;12992:32;12989:52;;;13037:1;13034;13027:12;12989:52;13077:9;13064:23;-1:-1:-1;;;;;13102:6:84;13099:30;13096:50;;;13142:1;13139;13132:12;13096:50;13165:70;13227:7;13218:6;13207:9;13203:22;13165:70;:::i;13453:439::-;13506:3;13544:5;13538:12;13571:6;13566:3;13559:19;13597:4;13626;13621:3;13617:14;13610:21;;13665:4;13658:5;13654:16;13688:1;13698:169;13712:6;13709:1;13706:13;13698:169;;;13773:13;;13761:26;;13807:12;;;;13842:15;;;;13734:1;13727:9;13698:169;;;-1:-1:-1;13883:3:84;;13453:439;-1:-1:-1;;;;;13453:439:84:o;13897:261::-;14076:2;14065:9;14058:21;14039:4;14096:56;14148:2;14137:9;14133:18;14125:6;14096:56;:::i;14163:117::-;14248:6;14241:5;14237:18;14230:5;14227:29;14217:57;;14270:1;14267;14260:12;14285:132;14352:20;;14381:30;14352:20;14381:30;:::i;14422:891::-;14534:6;14542;14550;14558;14566;14619:3;14607:9;14598:7;14594:23;14590:33;14587:53;;;14636:1;14633;14626:12;14587:53;14676:9;14663:23;-1:-1:-1;;;;;14746:2:84;14738:6;14735:14;14732:34;;;14762:1;14759;14752:12;14732:34;14800:6;14789:9;14785:22;14775:32;;14845:7;14838:4;14834:2;14830:13;14826:27;14816:55;;14867:1;14864;14857:12;14816:55;14907:2;14894:16;14933:2;14925:6;14922:14;14919:34;;;14949:1;14946;14939:12;14919:34;15004:7;14997:4;14987:6;14984:1;14980:14;14976:2;14972:23;14968:34;14965:47;14962:67;;;15025:1;15022;15015:12;14962:67;15056:4;15048:13;;;;-1:-1:-1;15080:6:84;-1:-1:-1;;15118:20:84;;15105:34;;-1:-1:-1;15186:2:84;15171:18;;15158:32;;-1:-1:-1;15240:2:84;15225:18;;15212:32;15253:30;15212:32;15253:30;:::i;:::-;15302:5;15292:15;;;14422:891;;;;;;;;:::o;15554:460::-;15682:6;15690;15743:2;15731:9;15722:7;15718:23;15714:32;15711:52;;;15759:1;15756;15749:12;15711:52;15795:9;15782:23;15772:33;;15856:2;15845:9;15841:18;15828:32;-1:-1:-1;;;;;15875:6:84;15872:30;15869:50;;;15915:1;15912;15905:12;15869:50;15938:70;16000:7;15991:6;15980:9;15976:22;15938:70;:::i;:::-;15928:80;;;15554:460;;;;;:::o;16019:1111::-;16129:6;16137;16145;16153;16206:3;16194:9;16185:7;16181:23;16177:33;16174:53;;;16223:1;16220;16213:12;16174:53;16263:9;16250:23;-1:-1:-1;;;;;16288:6:84;16285:30;16282:50;;;16328:1;16325;16318:12;16282:50;16351:22;;16404:4;16396:13;;16392:27;-1:-1:-1;16382:55:84;;16433:1;16430;16423:12;16382:55;16469:2;16456:16;16491:4;16515:69;16531:52;16580:2;16531:52;:::i;16515:69::-;16618:15;;;16700:1;16696:10;;;;16688:19;;16684:28;;;16649:12;;;;16724:19;;;16721:39;;;16756:1;16753;16746:12;16721:39;16780:11;;;;16800:142;16816:6;16811:3;16808:15;16800:142;;;16882:17;;16870:30;;16833:12;;;;16920;;;;16800:142;;;16961:5;-1:-1:-1;;16998:18:84;;16985:32;;-1:-1:-1;;;17064:2:84;17049:18;;17036:32;;-1:-1:-1;17087:37:84;17120:2;17105:18;;17087:37;:::i;:::-;17077:47;;16019:1111;;;;;;;:::o;17357:641::-;17637:3;17675:6;17669:13;17691:66;17750:6;17745:3;17738:4;17730:6;17726:17;17691:66;:::i;:::-;-1:-1:-1;;;17779:16:84;;;17804:19;;;17848:13;;17870:78;17848:13;17935:1;17924:13;;17917:4;17905:17;;17870:78;:::i;:::-;17968:20;17990:1;17964:28;;17357:641;-1:-1:-1;;;;17357:641:84:o;18003:405::-;18205:2;18187:21;;;18244:2;18224:18;;;18217:30;18283:34;18278:2;18263:18;;18256:62;-1:-1:-1;;;18349:2:84;18334:18;;18327:39;18398:3;18383:19;;18003:405::o;18413:249::-;18482:6;18535:2;18523:9;18514:7;18510:23;18506:32;18503:52;;;18551:1;18548;18541:12;18503:52;18583:9;18577:16;18602:30;18626:5;18602:30;:::i;18667:441::-;18720:5;18773:3;18766:4;18758:6;18754:17;18750:27;18740:55;;18791:1;18788;18781:12;18740:55;18820:6;18814:13;18851:48;18867:31;18895:2;18867:31;:::i;18851:48::-;18924:2;18915:7;18908:19;18970:3;18963:4;18958:2;18950:6;18946:15;18942:26;18939:35;18936:55;;;18987:1;18984;18977:12;18936:55;19000:77;19074:2;19067:4;19058:7;19054:18;19047:4;19039:6;19035:17;19000:77;:::i;19113:2198::-;19214:6;19245:2;19288;19276:9;19267:7;19263:23;19259:32;19256:52;;;19304:1;19301;19294:12;19256:52;19337:9;19331:16;-1:-1:-1;;;;;19407:2:84;19399:6;19396:14;19393:34;;;19423:1;19420;19413:12;19393:34;19461:6;19450:9;19446:22;19436:32;;19487:4;19525;19520:2;19511:7;19507:16;19503:27;19500:47;;;19543:1;19540;19533:12;19500:47;19569:22;;:::i;:::-;19621:2;19615:9;19655:2;19646:7;19643:15;19633:43;;19672:1;19669;19662:12;19633:43;19685:22;;19738:11;;;19732:18;19762:16;;;19759:36;;;19791:1;19788;19781:12;19759:36;19822:8;19818:2;19814:17;19804:27;;;19869:7;19862:4;19858:2;19854:13;19850:27;19840:55;;19891:1;19888;19881:12;19840:55;19920:2;19914:9;19943:69;19959:52;20008:2;19959:52;:::i;19943:69::-;20046:15;;;20128:1;20124:10;;;;20116:19;;20112:28;;;20077:12;;;;20152:19;;;20149:39;;;20184:1;20181;20174:12;20149:39;20216:2;20212;20208:11;20228:1015;20244:6;20239:3;20236:15;20228:1015;;;20323:3;20317:10;20359:2;20346:11;20343:19;20340:109;;;20403:1;20432:2;20428;20421:14;20340:109;20472:20;;20516:16;;;-1:-1:-1;;20512:30:84;20508:39;-1:-1:-1;20505:129:84;;;20588:1;20617:2;20613;20606:14;20505:129;20662:22;;:::i;:::-;20726:2;20722;20718:11;20712:18;20765:2;20756:7;20753:15;20743:116;;20811:1;20841:3;20836;20829:16;20743:116;20872:24;;20931:11;;;20925:18;20959:16;;;20956:109;;;21017:1;21047:3;21042;21035:16;20956:109;21103:64;21159:7;21154:2;21143:8;21139:2;21135:17;21131:26;21103:64;:::i;:::-;21085:16;;;21078:90;-1:-1:-1;21181:20:84;;-1:-1:-1;21221:12:84;;;;20261;;20228:1015;;;-1:-1:-1;21259:14:84;;;21252:29;;;;-1:-1:-1;21263:5:84;19113:2198;-1:-1:-1;;;;;;;19113:2198:84:o;21316:184::-;21386:6;21439:2;21427:9;21418:7;21414:23;21410:32;21407:52;;;21455:1;21452;21445:12;21407:52;-1:-1:-1;21478:16:84;;21316:184;-1:-1:-1;21316:184:84:o;21694:160::-;21785:13;;21827:2;21817:13;;21807:41;;21844:1;21841;21834:12;21859:240;21949:6;22002:2;21990:9;21981:7;21977:23;21973:32;21970:52;;;22018:1;22015;22008:12;21970:52;22041;22083:9;22041:52;:::i;22104:160::-;22181:13;;22234:4;22223:16;;22213:27;;22203:55;;22254:1;22251;22244:12;22269:168;22369:13;;22411:1;22401:12;;22391:40;;22427:1;22424;22417:12;22442:1755;22512:5;22565:3;22558:4;22550:6;22546:17;22542:27;22532:55;;22583:1;22580;22573:12;22532:55;22612:6;22606:13;22638:4;22662:69;22678:52;22727:2;22678:52;:::i;22662:69::-;22765:15;;;22851:1;22847:10;;;;22835:23;;22831:32;;;22796:12;;;;22875:15;;;22872:35;;;22903:1;22900;22893:12;22872:35;22939:2;22931:6;22927:15;22951:1217;22967:6;22962:3;22959:15;22951:1217;;;23046:3;23040:10;-1:-1:-1;;;;;23123:2:84;23110:11;23107:19;23104:109;;;23167:1;23196:2;23192;23185:14;23104:109;23248:11;23240:6;23236:24;23226:34;;23300:3;23295:2;23291;23287:11;23283:21;23273:119;;23346:1;23375:2;23371;23364:14;23273:119;23418:22;;:::i;:::-;23466:5;23508:2;23504;23500:11;23540:3;23530:8;23527:17;23524:107;;;23585:1;23614:2;23610;23603:14;23524:107;23665:2;23661;23657:11;23681:414;23699:8;23692:5;23689:19;23681:414;;;23794:5;23788:12;23838:2;23823:13;23820:21;23817:127;;;23890:1;23923:2;23919;23912:14;23817:127;23975:65;24036:3;24031:2;24015:13;24011:2;24007:22;24003:31;23975:65;:::i;:::-;23961:80;;-1:-1:-1;24067:14:84;;;;23720;;23681:414;;;-1:-1:-1;;24108:18:84;;-1:-1:-1;;;24146:12:84;;;;22984;;22951:1217;;24202:1431;24305:6;24358:2;24346:9;24337:7;24333:23;24329:32;24326:52;;;24374:1;24371;24364:12;24326:52;24407:9;24401:16;-1:-1:-1;;;;;24477:2:84;24469:6;24466:14;24463:34;;;24493:1;24490;24483:12;24463:34;24516:22;;;;24572:4;24554:16;;;24550:27;24547:47;;;24590:1;24587;24580:12;24547:47;24616:22;;:::i;:::-;24661:31;24689:2;24661:31;:::i;:::-;24654:5;24647:46;24725:63;24784:2;24780;24776:11;24725:63;:::i;:::-;24720:2;24713:5;24709:14;24702:87;24821:54;24871:2;24867;24863:11;24821:54;:::i;:::-;24816:2;24809:5;24805:14;24798:78;24915:2;24911;24907:11;24901:18;24944:2;24934:8;24931:16;24928:36;;;24960:1;24957;24950:12;24928:36;24996:55;25043:7;25032:8;25028:2;25024:17;24996:55;:::i;:::-;24991:2;24984:5;24980:14;24973:79;;25091:3;25087:2;25083:12;25077:19;25121:2;25111:8;25108:16;25105:36;;;25137:1;25134;25127:12;25105:36;25174:55;25221:7;25210:8;25206:2;25202:17;25174:55;:::i;:::-;25168:3;25161:5;25157:15;25150:80;;25269:3;25265:2;25261:12;25255:19;25299:2;25289:8;25286:16;25283:36;;;25315:1;25312;25305:12;25283:36;25352:72;25416:7;25405:8;25401:2;25397:17;25352:72;:::i;:::-;25346:3;25339:5;25335:15;25328:97;;25464:3;25460:2;25456:12;25450:19;25494:2;25484:8;25481:16;25478:36;;;25510:1;25507;25500:12;25478:36;25547:55;25594:7;25583:8;25579:2;25575:17;25547:55;:::i;:::-;25541:3;25530:15;;25523:80;-1:-1:-1;25534:5:84;24202:1431;-1:-1:-1;;;;;24202:1431:84:o;26042:127::-;26103:10;26098:3;26094:20;26091:1;26084:31;26134:4;26131:1;26124:15;26158:4;26155:1;26148:15;26174:259;26252:6;26305:2;26293:9;26284:7;26280:23;26276:32;26273:52;;;26321:1;26318;26311:12;26273:52;26353:9;26347:16;26372:31;26397:5;26372:31;:::i;27671:290::-;27740:6;27793:2;27781:9;27772:7;27768:23;27764:32;27761:52;;;27809:1;27806;27799:12;27761:52;27835:16;;-1:-1:-1;;;;;;27880:32:84;;27870:43;;27860:71;;27927:1;27924;27917:12;28386:277;28453:6;28506:2;28494:9;28485:7;28481:23;28477:32;28474:52;;;28522:1;28519;28512:12;28474:52;28554:9;28548:16;28607:5;28600:13;28593:21;28586:5;28583:32;28573:60;;28629:1;28626;28619:12;28668:380;28747:1;28743:12;;;;28790;;;28811:61;;28865:4;28857:6;28853:17;28843:27;;28811:61;28918:2;28910:6;28907:14;28887:18;28884:38;28881:161;;28964:10;28959:3;28955:20;28952:1;28945:31;28999:4;28996:1;28989:15;29027:4;29024:1;29017:15;29856:1140;30225:4;30273:3;30262:9;30258:19;30304:3;30293:9;30286:22;30328:6;30363;30357:13;30394:6;30386;30379:22;30432:3;30421:9;30417:19;30410:26;;30455:6;30452:1;30445:17;30481:4;30471:14;;30521:4;30518:1;30508:18;30544:1;30554:168;30568:6;30565:1;30562:13;30554:168;;;30629:13;;30617:26;;30663:12;;;;30710:1;30698:14;;;;30583:9;30554:168;;;30558:3;;;30760:6;30753:4;30742:9;30738:20;30731:36;30803:6;30798:2;30787:9;30783:18;30776:34;30858:6;30850;30846:19;30841:2;30830:9;30826:18;30819:47;30912:9;30907:3;30903:19;30897:3;30886:9;30882:19;30875:48;30940:50;30986:3;30978:6;30940:50;:::i;:::-;30932:58;29856:1140;-1:-1:-1;;;;;;;;;29856:1140:84:o;31001:411::-;31278:6;31267:9;31260:25;31321:2;31316;31305:9;31301:18;31294:30;31241:4;31341:65;31402:2;31391:9;31387:18;31379:6;31341:65;:::i;31417:890::-;31512:6;31543:2;31586;31574:9;31565:7;31561:23;31557:32;31554:52;;;31602:1;31599;31592:12;31554:52;31635:9;31629:16;-1:-1:-1;;;;;31660:6:84;31657:30;31654:50;;;31700:1;31697;31690:12;31654:50;31723:22;;31776:4;31768:13;;31764:27;-1:-1:-1;31754:55:84;;31805:1;31802;31795:12;31754:55;31834:2;31828:9;31857:69;31873:52;31922:2;31873:52;:::i;31857:69::-;31960:15;;;32042:1;32038:10;;;;32030:19;;32026:28;;;31991:12;;;;32066:19;;;32063:39;;;32098:1;32095;32088:12;32063:39;32122:11;;;;32142:135;32158:6;32153:3;32150:15;32142:135;;;32224:10;;32212:23;;32175:12;;;;32255;;;;32142:135;;;32296:5;31417:890;-1:-1:-1;;;;;;;31417:890:84:o;33132:204::-;33200:6;33253:2;33241:9;33232:7;33228:23;33224:32;33221:52;;;33269:1;33266;33259:12;33221:52;33292:38;33320:9;33292:38;:::i;34245:869::-;34565:10;34560:3;34556:20;34548:6;34544:33;34539:3;34532:46;34514:3;34609:1;34604:3;34600:11;34640:6;34634:13;34689:4;34728;34720:6;34716:17;34751:1;34761:175;34775:6;34772:1;34769:13;34761:175;;;34838:13;;34824:28;;34874:14;;;;34911:15;;;;34797:1;34790:9;34761:175;;;-1:-1:-1;;;34945:21:84;;;34993:4;34982:16;;34975:32;;;;-1:-1:-1;;35065:3:84;35043:16;-1:-1:-1;;;;;;35039:38:84;35034:2;35023:14;;35016:62;35105:2;35094:14;;34245:869;-1:-1:-1;;;34245:869:84:o;35119:441::-;-1:-1:-1;;;;;;35342:26:84;;;;35330:39;;35406:2;35402:15;;;;-1:-1:-1;;35398:53:84;35394:1;35385:11;;35378:74;35477:2;35468:12;;35461:28;35514:2;35505:12;;35498:28;35551:2;35542:12;;35119:441::o;35565:487::-;35826:3;35815:9;35808:22;35789:4;35847:57;35899:3;35888:9;35884:19;35876:6;35847:57;:::i;:::-;35935:2;35920:18;;35913:34;;;;-1:-1:-1;35978:2:84;35963:18;;35956:34;;;;36038:6;36026:19;36021:2;36006:18;;;35999:47;35839:65;35565:487;-1:-1:-1;35565:487:84:o;36632:335::-;36711:6;36764:2;36752:9;36743:7;36739:23;36735:32;36732:52;;;36780:1;36777;36770:12;36732:52;36813:9;36807:16;-1:-1:-1;;;;;36838:6:84;36835:30;36832:50;;;36878:1;36875;36868:12;36832:50;36901:60;36953:7;36944:6;36933:9;36929:22;36901:60;:::i;38184:543::-;38286:2;38281:3;38278:11;38275:446;;;38322:1;38346:5;38343:1;38336:16;38390:4;38387:1;38377:18;38460:2;38448:10;38444:19;38441:1;38437:27;38431:4;38427:38;38496:4;38484:10;38481:20;38478:47;;;-1:-1:-1;38519:4:84;38478:47;38574:2;38569:3;38565:12;38562:1;38558:20;38552:4;38548:31;38538:41;;38629:82;38647:2;38640:5;38637:13;38629:82;;;38692:17;;;38673:1;38662:13;38629:82;;;38633:3;;;38275:446;38184:543;;;:::o;38903:1356::-;39029:3;39023:10;-1:-1:-1;;;;;39048:6:84;39045:30;39042:56;;;39078:18;;:::i;:::-;39107:97;39197:6;39157:38;39189:4;39183:11;39157:38;:::i;:::-;39151:4;39107:97;:::i;:::-;39259:4;;39316:2;39305:14;;39333:1;39328:674;;;;40046:1;40063:6;40060:89;;;-1:-1:-1;40115:19:84;;;40109:26;40060:89;-1:-1:-1;;38860:1:84;38856:11;;;38852:24;38848:29;38838:40;38884:1;38880:11;;;38835:57;40162:81;;39298:955;;39328:674;29803:1;29796:14;;;29840:4;29827:18;;-1:-1:-1;;39364:20:84;;;39493:236;39507:7;39504:1;39501:14;39493:236;;;39596:19;;;39590:26;39575:42;;39688:27;;;;39656:1;39644:14;;;;39523:19;;39493:236;;;39497:3;39757:6;39748:7;39745:19;39742:201;;;39818:19;;;39812:26;-1:-1:-1;;39901:1:84;39897:14;;;39913:3;39893:24;39889:37;39885:42;39870:58;39855:74;;39742:201;-1:-1:-1;;;;;39989:1:84;39973:14;;;39969:22;39956:36;;-1:-1:-1;38903:1356:84:o",
36275
36275
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.7.0 <0.9.0;\npragma experimental ABIEncoderV2;\n\nimport \"../WitnetUpgradableBase.sol\";\nimport \"../../WitnetRequestBytecodes.sol\";\nimport \"../../WitnetRequestFactory.sol\";\nimport \"../../data/WitnetRequestFactoryData.sol\";\nimport \"../../patterns/Clonable.sol\";\n\ncontract WitnetRequestFactoryDefault\n is\n Clonable,\n WitnetRequest,\n WitnetRequestFactory,\n WitnetRequestFactoryData,\n WitnetUpgradableBase \n{\n /// @notice Reference to Witnet Data Requests Bytecode Registry.\n WitnetRequestBytecodes immutable public override(WitnetRequestFactory, WitnetRequestTemplate) registry;\n\n /// @notice Reference to the Witnet Request Board that all templates built out from this factory will refer to.\n WitnetOracle immutable public override(WitnetRequestFactory, WitnetRequestTemplate) witnet;\n\n modifier onlyDelegateCalls override(Clonable, Upgradeable) {\n require(\n address(this) != _BASE,\n \"WitnetRequestFactory: not a delegate call\"\n );\n _;\n }\n\n modifier onlyOnFactory {\n require(\n address(this) == __proxy()\n || address(this) == base(),\n \"WitnetRequestFactory: not the factory\"\n );\n _;\n }\n\n modifier onlyOnTemplates {\n require(\n __witnetRequestTemplate().tally != bytes32(0),\n \"WitnetRequestFactory: not a WitnetRequestTemplate\"\n );\n _;\n }\n\n constructor(\n WitnetOracle _witnet,\n WitnetRequestBytecodes _registry,\n bool _upgradable,\n bytes32 _versionTag\n )\n Ownable(address(msg.sender))\n WitnetUpgradableBase(\n _upgradable,\n _versionTag,\n \"io.witnet.requests.factory\"\n )\n {\n witnet = _witnet;\n registry = _registry;\n // let logic contract be used as a factory, while avoiding further initializations:\n __proxiable().proxy = address(this);\n __proxiable().implementation = address(this);\n __witnetRequestFactory().owner = address(0);\n }\n\n function initializeWitnetRequestTemplate(\n bytes32[] calldata _retrievalsIds,\n bytes32 _aggregatorId,\n bytes32 _tallyId,\n uint16 _resultDataMaxSize\n )\n virtual public\n initializer\n returns (WitnetRequestTemplate)\n {\n // check that at least one retrieval is provided\n Witnet.RadonDataTypes _resultDataType;\n require(\n _retrievalsIds.length > 0,\n \"WitnetRequestTemplate: no retrievals?\"\n );\n // check that all retrievals exist in the registry,\n // and they all return the same data type\n bool _parameterized;\n for (uint _ix = 0; _ix < _retrievalsIds.length; _ix ++) {\n bytes32 _retrievalHash = _retrievalsIds[_ix];\n if (_ix == 0) {\n _resultDataType = registry.lookupRadonRetrievalResultDataType(_retrievalHash);\n } else {\n require(\n _resultDataType == registry.lookupRadonRetrievalResultDataType(_retrievalHash),\n \"WitnetRequestTemplate: mismatching retrievals\"\n );\n }\n if (!_parameterized) {\n // check whether at least one of the retrievals is parameterized\n _parameterized = registry.lookupRadonRetrievalArgsCount(_retrievalHash) > 0;\n }\n }\n {\n // check that the aggregator and tally reducers actually exist in the registry\n registry.lookupRadonReducer(_aggregatorId);\n registry.lookupRadonReducer(_tallyId);\n\n // write data into storage:\n WitnetRequestTemplateSlot storage __data = __witnetRequestTemplate();\n __data.aggregator = _aggregatorId;\n __data.factory = WitnetRequestFactory(msg.sender);\n __data.parameterized = _parameterized;\n __data.resultDataType = _resultDataType;\n __data.resultDataMaxSize = _resultDataMaxSize;\n __data.retrievals = _retrievalsIds;\n __data.tally = _tallyId;\n }\n return WitnetRequestTemplate(address(this));\n }\n\n function initializeWitnetRequest(\n bytes32 _radHash,\n string[][] memory _args\n )\n virtual public\n initializer\n returns (address)\n {\n WitnetRequestSlot storage __data = __witnetRequest();\n __data.args = _args;\n __data.radHash = _radHash;\n __data.template = WitnetRequestTemplate(msg.sender);\n return address(this);\n }\n\n\n /// ===============================================================================================================\n /// --- IWitnetRequestFactory implementation ----------------------------------------------------------------------\n\n function buildRequestTemplate(\n bytes32[] memory _retrievals,\n bytes32 _aggregator,\n bytes32 _tally,\n uint16 _resultDataMaxSize\n )\n virtual override\n public\n onlyOnFactory\n returns (address _template)\n {\n bytes32 _salt = keccak256(\n // As to avoid template address collisions from:\n abi.encodePacked( \n // - different factory major or mid versions:\n bytes4(_WITNET_UPGRADABLE_VERSION),\n // - different templates params:\n _retrievals, \n _aggregator,\n _tally,\n _resultDataMaxSize\n )\n );\n _template = address(uint160(uint256(keccak256(\n abi.encodePacked(\n bytes1(0xff),\n address(this),\n _salt,\n keccak256(_cloneBytecode())\n )\n ))));\n if (_template.code.length == 0) {\n _template = address(WitnetRequestFactoryDefault(\n _cloneDeterministic(_salt)\n ).initializeWitnetRequestTemplate(\n _retrievals,\n _aggregator,\n _tally,\n _resultDataMaxSize\n ));\n }\n emit WitnetRequestTemplateBuilt(\n _template,\n WitnetRequestTemplate(_template).parameterized()\n );\n }\n\n function class()\n virtual override(WitnetRequestFactory, WitnetRequestTemplate, WitnetUpgradableBase)\n public view\n returns (string memory)\n {\n if (\n address(this) == _SELF\n || address(this) == __proxy()\n ) {\n return type(WitnetRequestFactory).name;\n } else if (__witnetRequest().radHash != bytes32(0)) {\n return type(WitnetRequest).name;\n } else {\n return type(WitnetRequestTemplate).name;\n }\n }\n\n function specs() \n virtual override(WitnetRequestFactory, WitnetRequestTemplate)\n external view\n returns (bytes4)\n {\n if (\n address(this) == _SELF\n || address(this) == __proxy()\n ) {\n return type(IWitnetRequestFactory).interfaceId;\n } else if (__witnetRequest().radHash != bytes32(0)) {\n return type(WitnetRequest).interfaceId;\n } else {\n return type(WitnetRequestTemplate).interfaceId;\n }\n }\n\n\n // ================================================================================================================\n // --- Overrides 'Ownable2Step' -----------------------------------------------------------------------------------\n\n /// @notice Returns the address of the pending owner.\n function pendingOwner()\n public view\n virtual override\n returns (address)\n {\n return __witnetRequestFactory().pendingOwner;\n }\n\n /// @notice Returns the address of the current owner.\n function owner()\n public view\n virtual override\n returns (address)\n {\n return __witnetRequestFactory().owner;\n }\n\n /// @notice Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n /// @dev Can only be called by the current owner.\n function transferOwnership(address _newOwner)\n public\n virtual override\n onlyOwner\n {\n __witnetRequestFactory().pendingOwner = _newOwner;\n emit OwnershipTransferStarted(owner(), _newOwner);\n }\n\n /// @dev Transfers ownership of the contract to a new account (`_newOwner`) and deletes any pending owner.\n /// @dev Internal function without access restriction.\n function _transferOwnership(address _newOwner)\n internal\n virtual override\n {\n delete __witnetRequestFactory().pendingOwner;\n address _oldOwner = owner();\n if (_newOwner != _oldOwner) {\n __witnetRequestFactory().owner = _newOwner;\n emit OwnershipTransferred(_oldOwner, _newOwner);\n }\n }\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 virtual override\n public\n onlyDelegateCalls\n {\n // WitnetRequest or WitnetRequestTemplate instances would already be initialized,\n // so only callable from proxies, in practice.\n\n address _owner = __witnetRequestFactory().owner;\n if (_owner == address(0)) {\n // set owner from the one specified in _initData\n _owner = abi.decode(_initData, (address));\n __witnetRequestFactory().owner = _owner;\n } else {\n // only owner can initialize the proxy\n if (msg.sender != _owner) {\n revert(\"WitnetRequestFactory: not the owner\");\n }\n }\n\n if (__proxiable().proxy == address(0)) {\n // first initialization of the proxy\n __proxiable().proxy = address(this);\n }\n\n if (__proxiable().implementation != address(0)) {\n // same implementation cannot be initialized more than once:\n if(__proxiable().implementation == base()) {\n revert(\"WitnetRequestFactory: already initialized\");\n }\n } \n __proxiable().implementation = base();\n\n require(address(registry).code.length > 0, \"WitnetRequestFactory: inexistent requests registry\");\n require(registry.specs() == type(IWitnetRequestBytecodes).interfaceId, \"WitnetRequestFactory: uncompliant requests registry\");\n \n emit Upgraded(msg.sender, 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 address _owner = __witnetRequestFactory().owner;\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 /// --- Clonable implementation and override ----------------------------------------------------------------------\n\n /// @notice Tells whether a WitnetRequest or a WitnetRequestTemplate has been properly initialized.\n /// @dev True only on WitnetRequest instances with some Radon SLA set.\n function initialized()\n virtual override(Clonable)\n public view\n returns (bool)\n {\n return (\n __witnetRequestTemplate().tally != bytes32(0)\n || __witnetRequest().radHash != bytes32(0)\n );\n }\n\n /// @notice Contract address to which clones will be re-directed.\n function self()\n virtual override\n public view\n returns (address)\n {\n return (__proxy() != address(0)\n ? __implementation()\n : base()\n );\n }\n\n\n /// ===============================================================================================================\n /// --- WitnetRequest implementation ------------------------------------------------------------------------------\n\n function bytecode()\n override\n external view\n returns (bytes memory)\n {\n return registry.bytecodeOf(__witnetRequest().radHash);\n }\n\n function template()\n override\n external view\n onlyDelegateCalls\n returns (WitnetRequestTemplate)\n {\n return __witnetRequest().template;\n }\n\n function args()\n override\n external view\n onlyDelegateCalls\n returns (string[][] memory)\n {\n return __witnetRequest().args;\n }\n\n function radHash()\n override\n external view\n onlyDelegateCalls\n returns (bytes32)\n {\n return __witnetRequest().radHash;\n }\n\n function version() \n virtual override(WitnetRequestTemplate, WitnetUpgradableBase)\n public view\n returns (string memory)\n {\n return WitnetUpgradableBase.version();\n }\n\n\n /// ===============================================================================================================\n /// --- WitnetRequestTemplate implementation ----------------------------------------------------------------------\n\n function factory()\n override\n external view\n onlyDelegateCalls\n returns (WitnetRequestFactory)\n {\n WitnetRequestTemplate _template = __witnetRequest().template;\n if (address(_template) != address(0)) {\n return _template.factory();\n } else {\n return __witnetRequestTemplate().factory;\n }\n }\n\n function aggregator()\n override\n external view\n onlyDelegateCalls\n returns (bytes32)\n {\n WitnetRequestTemplate _template = __witnetRequest().template;\n if (address(_template) != address(0)) {\n return _template.aggregator();\n } else {\n return __witnetRequestTemplate().aggregator;\n }\n }\n\n function parameterized()\n override\n external view\n onlyDelegateCalls\n returns (bool)\n {\n WitnetRequestTemplate _template = __witnetRequest().template;\n if (address(_template) != address(0)) {\n return _template.parameterized();\n } else {\n return __witnetRequestTemplate().parameterized;\n }\n }\n\n function resultDataMaxSize()\n override\n external view\n onlyDelegateCalls\n returns (uint16)\n {\n WitnetRequestTemplate _template = __witnetRequest().template;\n if (address(_template) != address(0)) {\n return _template.resultDataMaxSize();\n } else {\n return __witnetRequestTemplate().resultDataMaxSize;\n }\n }\n\n function resultDataType() \n override\n external view\n onlyDelegateCalls\n returns (Witnet.RadonDataTypes)\n {\n WitnetRequestTemplate _template = __witnetRequest().template;\n if (address(_template) != address(0)) {\n return _template.resultDataType();\n } else {\n return __witnetRequestTemplate().resultDataType;\n }\n }\n\n function retrievals()\n override\n external view\n onlyDelegateCalls\n returns (bytes32[] memory)\n {\n WitnetRequestTemplate _template = __witnetRequest().template;\n if (address(_template) != address(0)) {\n return _template.retrievals();\n } else {\n return __witnetRequestTemplate().retrievals;\n }\n\n }\n\n function tally()\n override\n external view\n onlyDelegateCalls\n returns (bytes32)\n {\n WitnetRequestTemplate _template = __witnetRequest().template;\n if (address(_template) != address(0)) {\n return _template.tally();\n } else {\n return __witnetRequestTemplate().tally;\n }\n }\n\n function getRadonAggregator()\n override\n external view\n onlyDelegateCalls\n returns (Witnet.RadonReducer memory)\n {\n WitnetRequestTemplate _template = __witnetRequest().template;\n if (address(_template) != address(0)) {\n return _template.getRadonAggregator();\n } else {\n return registry.lookupRadonReducer(\n __witnetRequestTemplate().aggregator\n );\n }\n }\n\n function getRadonRetrievalByIndex(uint256 _index) \n override\n external view\n onlyDelegateCalls\n returns (Witnet.RadonRetrieval memory)\n {\n WitnetRequestTemplate _template = __witnetRequest().template;\n if (address(_template) != address(0)) {\n return _template.getRadonRetrievalByIndex(_index);\n } else {\n require(\n _index < __witnetRequestTemplate().retrievals.length,\n \"WitnetRequestTemplate: out of range\"\n );\n return registry.lookupRadonRetrieval(\n __witnetRequestTemplate().retrievals[_index]\n );\n }\n }\n\n function getRadonRetrievalsCount() \n override\n external view\n onlyDelegateCalls\n returns (uint256)\n {\n WitnetRequestTemplate _template = __witnetRequest().template;\n if (address(_template) != address(0)) {\n return _template.getRadonRetrievalsCount();\n } else {\n return __witnetRequestTemplate().retrievals.length;\n }\n }\n\n function getRadonTally()\n override\n external view\n onlyDelegateCalls\n returns (Witnet.RadonReducer memory)\n {\n WitnetRequestTemplate _template = __witnetRequest().template;\n if (address(_template) != address(0)) {\n return _template.getRadonTally();\n } else {\n return registry.lookupRadonReducer(\n __witnetRequestTemplate().tally\n );\n }\n }\n\n function buildRequest(string[][] memory _args)\n virtual override\n public\n onlyDelegateCalls\n returns (address _request)\n {\n // if called on a WitnetRequest instance:\n if (address(__witnetRequest().template) != address(0)) {\n // ...surrogate to request's template\n return __witnetRequest().template.buildRequest(_args);\n }\n WitnetRequestTemplateSlot storage __data = __witnetRequestTemplate();\n bytes32 _radHash = registry.verifyRadonRequest(\n __data.retrievals,\n __data.aggregator,\n __data.tally,\n __data.resultDataMaxSize,\n _args\n );\n // the request address will be determined by the template's address,\n // the request's radHash and the factory's implementation version:\n bytes32 _salt;\n (_request, _salt) = _determineRequestAddressAndSalt(_radHash);\n if (_request.code.length == 0) {\n _request = WitnetRequestFactoryDefault(_cloneDeterministic(_salt))\n .initializeWitnetRequest(\n _radHash,\n _args\n );\n }\n emit WitnetRequestBuilt(_request, _radHash, _args);\n }\n\n function verifyRadonRequest(string[][] memory _args)\n virtual override\n public\n onlyDelegateCalls\n returns (bytes32 _radHash)\n {\n // if called on a WitnetRequest instance:\n if (address(__witnetRequest().template) != address(0)) {\n // ...surrogate to request's template\n return __witnetRequest().template.verifyRadonRequest(_args);\n }\n WitnetRequestTemplateSlot storage __data = __witnetRequestTemplate();\n _radHash = registry.verifyRadonRequest(\n __data.retrievals,\n __data.aggregator,\n __data.tally,\n __data.resultDataMaxSize,\n _args\n );\n }\n\n function _determineRequestAddressAndSalt(bytes32 _radHash)\n internal view\n returns (address, bytes32)\n {\n bytes32 _salt = keccak256(\n abi.encodePacked(\n _radHash, \n bytes4(_WITNET_UPGRADABLE_VERSION)\n )\n );\n return (\n address(uint160(uint256(keccak256(\n abi.encodePacked(\n bytes1(0xff),\n address(this),\n _salt,\n keccak256(_cloneBytecode())\n )\n )))), _salt\n );\n }\n}",
36276
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/core/defaults/WitnetRequestFactoryDefault.sol",
36276
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/core/defaults/WitnetRequestFactoryDefault.sol",
36277
36277
  "ast": {
36278
36278
  "absolutePath": "project:/contracts/core/defaults/WitnetRequestFactoryDefault.sol",
36279
36279
  "exportedSymbols": {
@@ -56106,7 +56106,7 @@
56106
56106
  },
56107
56107
  "networks": {},
56108
56108
  "schemaVersion": "3.4.16",
56109
- "updatedAt": "2025-10-15T17:39:32.705Z",
56109
+ "updatedAt": "2025-10-15T18:03:23.758Z",
56110
56110
  "devdoc": {
56111
56111
  "errors": {
56112
56112
  "InvalidInitialization()": [
@@ -373,7 +373,7 @@
373
373
  "sourceMap": "",
374
374
  "deployedSourceMap": "",
375
375
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.7.0 <0.9.0;\npragma experimental ABIEncoderV2;\n\nimport \"./WitnetRequestBytecodes.sol\";\nimport \"./WitnetOracle.sol\";\nimport \"./WitnetRequestFactory.sol\";\n\nabstract contract WitnetRequestTemplate\n{\n event WitnetRequestBuilt(address indexed request, bytes32 indexed radHash, string[][] args);\n\n function class() virtual external view returns (string memory);\n function factory() virtual external view returns (WitnetRequestFactory);\n function registry() virtual external view returns (WitnetRequestBytecodes);\n function specs() virtual external view returns (bytes4);\n function version() virtual external view returns (string memory);\n function witnet() virtual external view returns (WitnetOracle);\n\n function aggregator() virtual external view returns (bytes32);\n function parameterized() virtual external view returns (bool);\n function resultDataMaxSize() virtual external view returns (uint16);\n function resultDataType() virtual external view returns (Witnet.RadonDataTypes);\n function retrievals() virtual external view returns (bytes32[] memory);\n function tally() virtual external view returns (bytes32);\n \n function getRadonAggregator() virtual external view returns (Witnet.RadonReducer memory);\n function getRadonRetrievalByIndex(uint256) virtual external view returns (Witnet.RadonRetrieval memory);\n function getRadonRetrievalsCount() virtual external view returns (uint256);\n function getRadonTally() virtual external view returns (Witnet.RadonReducer memory);\n \n function buildRequest(string[][] calldata args) virtual external returns (address);\n function verifyRadonRequest(string[][] calldata args) virtual external returns (bytes32);\n}",
376
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/WitnetRequestTemplate.sol",
376
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/WitnetRequestTemplate.sol",
377
377
  "ast": {
378
378
  "absolutePath": "project:/contracts/WitnetRequestTemplate.sol",
379
379
  "exportedSymbols": {
@@ -1822,7 +1822,7 @@
1822
1822
  },
1823
1823
  "networks": {},
1824
1824
  "schemaVersion": "3.4.16",
1825
- "updatedAt": "2025-10-15T17:39:32.415Z",
1825
+ "updatedAt": "2025-10-15T18:03:23.539Z",
1826
1826
  "devdoc": {
1827
1827
  "kind": "dev",
1828
1828
  "methods": {},
@@ -352,7 +352,7 @@
352
352
  "sourceMap": "",
353
353
  "deployedSourceMap": "",
354
354
  "source": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./UsingWitnetRequestTemplate.sol\";\nimport \"./WitnetConsumer.sol\";\n\nabstract contract WitnetRequestTemplateConsumer\n is\n UsingWitnetRequestTemplate,\n WitnetConsumer\n{\n using WitnetCBOR for WitnetCBOR.CBOR;\n using WitnetCBOR for WitnetCBOR.CBOR[];\n \n /// @param _witnetRequestTemplate Address of the WitnetRequestTemplate from which actual data requests will get built.\n /// @param _baseFeeOverheadPercentage Percentage over base fee to pay as on every data request.\n /// @param _callbackGasLimit Maximum gas to be spent by the IWitnetConsumer's callback methods.\n constructor(\n WitnetRequestTemplate _witnetRequestTemplate, \n uint16 _baseFeeOverheadPercentage,\n uint24 _callbackGasLimit\n )\n UsingWitnetRequestTemplate(_witnetRequestTemplate, _baseFeeOverheadPercentage)\n WitnetConsumer(_callbackGasLimit)\n {}\n\n function _witnetEstimateEvmReward()\n virtual override(UsingWitnetRequestTemplate, WitnetConsumer)\n internal view\n returns (uint256)\n {\n return WitnetConsumer._witnetEstimateEvmReward(__witnetQueryResultMaxSize);\n }\n\n function _witnetEstimateEvmReward(uint16) \n virtual override(UsingWitnet, WitnetConsumer) \n internal view\n returns (uint256)\n {\n return WitnetConsumer._witnetEstimateEvmReward();\n } \n\n function __witnetRequestData(\n uint256 _witnetEvmReward,\n string[][] memory _witnetRequestArgs,\n WitnetV2.RadonSLA memory _witnetQuerySLA\n )\n virtual override\n internal returns (uint256)\n {\n return __witnet.postRequestWithCallback{\n value: _witnetEvmReward\n }(\n _witnetBuildRadHash(_witnetRequestArgs),\n _witnetQuerySLA,\n __witnetCallbackGasLimit\n );\n }\n\n}\n",
355
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/apps/WitnetRequestTemplateConsumer.sol",
355
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/apps/WitnetRequestTemplateConsumer.sol",
356
356
  "ast": {
357
357
  "absolutePath": "project:/contracts/apps/WitnetRequestTemplateConsumer.sol",
358
358
  "exportedSymbols": {
@@ -1509,7 +1509,7 @@
1509
1509
  },
1510
1510
  "networks": {},
1511
1511
  "schemaVersion": "3.4.16",
1512
- "updatedAt": "2025-10-15T17:39:32.461Z",
1512
+ "updatedAt": "2025-10-15T18:03:23.563Z",
1513
1513
  "devdoc": {
1514
1514
  "kind": "dev",
1515
1515
  "methods": {
@@ -310,7 +310,7 @@
310
310
  "sourceMap": "",
311
311
  "deployedSourceMap": "",
312
312
  "source": "// SPDX-License-Identifier: MIT\n// solhint-disable var-name-mixedcase\n// solhint-disable payable-fallback\n\npragma solidity >=0.8.0 <0.9.0;\n\nimport \"../patterns/Ownable2Step.sol\";\nimport \"../patterns/ReentrancyGuard.sol\";\nimport \"../patterns/Upgradeable.sol\";\n\nimport \"./WitnetProxy.sol\";\n\n/// @title Witnet Request Board base contract, with an Upgradeable (and Destructible) touch.\n/// @author Guillermo Díaz <guillermo@otherplane.com>\nabstract contract WitnetUpgradableBase\n is\n Ownable2Step,\n Upgradeable, \n ReentrancyGuard\n{\n bytes32 internal immutable _WITNET_UPGRADABLE_VERSION;\n\n address public immutable deployer = msg.sender;\n\n constructor(\n bool _upgradable,\n bytes32 _versionTag,\n string memory _proxiableUUID\n )\n Upgradeable(_upgradable)\n {\n _WITNET_UPGRADABLE_VERSION = _versionTag;\n proxiableUUID = keccak256(bytes(_proxiableUUID));\n }\n \n /// @dev Reverts if proxy delegatecalls to unexistent method.\n fallback() virtual external {\n _revert(\"not implemented\");\n }\n\n\n function class() virtual public view returns (string memory) {\n return type(WitnetUpgradableBase).name;\n }\n \n // ================================================================================================================\n // --- Overrides 'Proxiable' --------------------------------------------------------------------------------------\n\n /// @dev Gets immutable \"heritage blood line\" (ie. genotype) as a Proxiable, and eventually Upgradeable, contract.\n /// If implemented as an Upgradeable touch, upgrading this contract to another one with a different \n /// `proxiableUUID()` value should fail.\n bytes32 public immutable override proxiableUUID;\n\n\n // ================================================================================================================\n // --- Overrides 'Upgradeable' --------------------------------------------------------------------------------------\n\n /// Retrieves human-readable version tag of current implementation.\n function version() public view virtual override returns (string memory) {\n return _toString(_WITNET_UPGRADABLE_VERSION);\n }\n\n\n // ================================================================================================================\n // --- Internal methods -------------------------------------------------------------------------------------------\n\n function _require(\n bool _condition, \n string memory _message\n )\n internal view\n {\n if (!_condition) {\n _revert(_message);\n }\n }\n\n function _revert(string memory _message)\n internal view\n {\n revert(\n string(abi.encodePacked(\n class(),\n \": \",\n _message\n ))\n );\n }\n\n /// Converts bytes32 into string.\n function _toString(bytes32 _bytes32)\n internal pure\n returns (string memory)\n {\n bytes memory _bytes = new bytes(_toStringLength(_bytes32));\n for (uint _i = 0; _i < _bytes.length;) {\n _bytes[_i] = _bytes32[_i];\n unchecked {\n _i ++;\n }\n }\n return string(_bytes);\n }\n\n // Calculate length of string-equivalent to given bytes32.\n function _toStringLength(bytes32 _bytes32)\n internal pure\n returns (uint _length)\n {\n for (; _length < 32; ) {\n if (_bytes32[_length] == 0) {\n break;\n }\n unchecked {\n _length ++;\n }\n }\n }\n\n}",
313
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/core/WitnetUpgradableBase.sol",
313
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/core/WitnetUpgradableBase.sol",
314
314
  "ast": {
315
315
  "absolutePath": "project:/contracts/core/WitnetUpgradableBase.sol",
316
316
  "exportedSymbols": {
@@ -2588,7 +2588,7 @@
2588
2588
  },
2589
2589
  "networks": {},
2590
2590
  "schemaVersion": "3.4.16",
2591
- "updatedAt": "2025-10-15T17:39:32.482Z",
2591
+ "updatedAt": "2025-10-15T18:03:23.573Z",
2592
2592
  "devdoc": {
2593
2593
  "author": "Guillermo Díaz <guillermo@otherplane.com>",
2594
2594
  "errors": {
@@ -10,7 +10,7 @@
10
10
  "sourceMap": "90:4459:70:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;90:4459:70;;;;;;;;;;;;;;;;;",
11
11
  "deployedSourceMap": "90:4459:70:-:0;;;;;;;;",
12
12
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0 <0.9.0;\n\nimport \"./Witnet.sol\";\n\nlibrary WitnetV2 {\n\n /// Struct containing both request and response data related to every query posted to the Witnet Request Board\n struct Query {\n Request request;\n Response response;\n }\n\n /// Possible status of a Witnet query.\n enum QueryStatus {\n Unknown,\n Posted,\n Reported,\n Finalized\n }\n\n /// Data kept in EVM-storage for every Request posted to the Witnet Request Board.\n struct Request {\n address requester; // EVM address from which the request was posted.\n uint24 gasCallback; // Max callback gas limit upon response, if a callback is required.\n uint72 evmReward; // EVM amount in wei eventually to be paid to the legit result reporter.\n bytes witnetBytecode; // Optional: Witnet Data Request bytecode to be solved by the Witnet blockchain.\n bytes32 witnetRAD; // Optional: Previously verified hash of the Witnet Data Request to be solved.\n WitnetV2.RadonSLA witnetSLA; // Minimum Service-Level parameters to be committed by the Witnet blockchain. \n }\n\n /// Response metadata and result as resolved by the Witnet blockchain.\n struct Response {\n address reporter; // EVM address from which the Data Request result was reported.\n uint64 finality; // EVM block number at which the reported data will be considered to be finalized.\n uint32 resultTimestamp; // Unix timestamp (seconds) at which the data request was resolved in the Witnet blockchain.\n bytes32 resultTallyHash; // Unique hash of the commit/reveal act in the Witnet blockchain that resolved the data request.\n bytes resultCborBytes; // CBOR-encode result to the request, as resolved in the Witnet blockchain.\n }\n\n /// Response status from a requester's point of view.\n enum ResponseStatus {\n Void,\n Awaiting,\n Ready,\n Error,\n Finalizing,\n Delivered\n }\n\n struct RadonSLA {\n /// @notice Number of nodes in the Witnet blockchain that will take part in solving the data request. \n uint8 committeeSize;\n \n /// @notice Fee in $nanoWIT paid to every node in the Witnet blockchain involved in solving the data request.\n /// @dev Witnet nodes participating as witnesses will have to stake as collateral 100x this amount.\n uint64 witnessingFeeNanoWit;\n }\n\n \n /// ===============================================================================================================\n /// --- 'WitnetV2.RadonSLA' helper methods ------------------------------------------------------------------------\n\n function equalOrGreaterThan(RadonSLA memory a, RadonSLA memory b) \n internal pure returns (bool)\n {\n return (a.committeeSize >= b.committeeSize);\n }\n \n function isValid(RadonSLA calldata sla) internal pure returns (bool) {\n return (\n sla.witnessingFeeNanoWit > 0 \n && sla.committeeSize > 0 && sla.committeeSize <= 127\n );\n }\n\n function toV1(RadonSLA memory self) internal pure returns (Witnet.RadonSLA memory) {\n return Witnet.RadonSLA({\n numWitnesses: self.committeeSize,\n minConsensusPercentage: 51,\n witnessReward: self.witnessingFeeNanoWit,\n witnessCollateral: self.witnessingFeeNanoWit * 100,\n minerCommitRevealFee: self.witnessingFeeNanoWit / self.committeeSize\n });\n }\n\n function nanoWitTotalFee(RadonSLA storage self) internal view returns (uint64) {\n return self.witnessingFeeNanoWit * (self.committeeSize + 3);\n }\n\n\n /// ===============================================================================================================\n /// --- P-RNG generators ------------------------------------------------------------------------------------------\n\n /// Generates a pseudo-random uint32 number uniformly distributed within the range `[0 .. range)`, based on\n /// the given `nonce` and `seed` values. \n function randomUniformUint32(uint32 range, uint256 nonce, bytes32 seed)\n internal pure \n returns (uint32) \n {\n uint256 _number = uint256(\n keccak256(\n abi.encode(seed, nonce)\n )\n ) & uint256(2 ** 224 - 1);\n return uint32((_number * range) >> 224);\n }\n}\n",
13
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/libs/WitnetV2.sol",
13
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/libs/WitnetV2.sol",
14
14
  "ast": {
15
15
  "absolutePath": "project:/contracts/libs/WitnetV2.sol",
16
16
  "exportedSymbols": {
@@ -2546,7 +2546,7 @@
2546
2546
  },
2547
2547
  "networks": {},
2548
2548
  "schemaVersion": "3.4.16",
2549
- "updatedAt": "2025-10-15T17:39:32.964Z",
2549
+ "updatedAt": "2025-10-15T18:03:23.863Z",
2550
2550
  "devdoc": {
2551
2551
  "kind": "dev",
2552
2552
  "methods": {},
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@witnet/solidity",
3
- "version": "2.2.8",
3
+ "version": "2.2.10",
4
4
  "description": "Wit/Oracle (aka Witnet) contracts and tooling for EVM-compatible chains",
5
5
  "author": "Witnet Foundation <info@witnet.foundation>",
6
6
  "license": "MIT",