@aztec/l1-artifacts 1.0.0-nightly.20250805 → 1.0.0-nightly.20250807

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 (155) hide show
  1. package/dest/CoinIssuerAbi.d.ts +40 -0
  2. package/dest/CoinIssuerAbi.d.ts.map +1 -1
  3. package/dest/CoinIssuerAbi.js +54 -0
  4. package/dest/CoinIssuerBytecode.d.ts +1 -1
  5. package/dest/CoinIssuerBytecode.js +1 -1
  6. package/dest/EmpireBaseAbi.d.ts +40 -0
  7. package/dest/EmpireBaseAbi.d.ts.map +1 -1
  8. package/dest/EmpireBaseAbi.js +54 -0
  9. package/dest/ErrorsAbi.d.ts +40 -0
  10. package/dest/ErrorsAbi.d.ts.map +1 -1
  11. package/dest/ErrorsAbi.js +54 -0
  12. package/dest/ExtRollupLib2Abi.d.ts +140 -0
  13. package/dest/ExtRollupLib2Abi.d.ts.map +1 -1
  14. package/dest/ExtRollupLib2Abi.js +182 -0
  15. package/dest/ExtRollupLib2Bytecode.d.ts +1 -1
  16. package/dest/ExtRollupLib2Bytecode.d.ts.map +1 -1
  17. package/dest/ExtRollupLib2Bytecode.js +1 -1
  18. package/dest/ExtRollupLib3Abi.d.ts +40 -0
  19. package/dest/ExtRollupLib3Abi.d.ts.map +1 -1
  20. package/dest/ExtRollupLib3Abi.js +54 -0
  21. package/dest/ExtRollupLib3Bytecode.d.ts +1 -1
  22. package/dest/ExtRollupLib3Bytecode.js +1 -1
  23. package/dest/ExtRollupLibAbi.d.ts +40 -0
  24. package/dest/ExtRollupLibAbi.d.ts.map +1 -1
  25. package/dest/ExtRollupLibAbi.js +54 -0
  26. package/dest/ExtRollupLibBytecode.d.ts +1 -1
  27. package/dest/ExtRollupLibBytecode.js +1 -1
  28. package/dest/FeeAssetHandlerAbi.d.ts +40 -0
  29. package/dest/FeeAssetHandlerAbi.d.ts.map +1 -1
  30. package/dest/FeeAssetHandlerAbi.js +54 -0
  31. package/dest/FeeJuicePortalAbi.d.ts +40 -0
  32. package/dest/FeeJuicePortalAbi.d.ts.map +1 -1
  33. package/dest/FeeJuicePortalAbi.js +54 -0
  34. package/dest/FeeJuicePortalBytecode.d.ts +1 -1
  35. package/dest/FeeJuicePortalBytecode.js +1 -1
  36. package/dest/GSEAbi.d.ts +221 -16
  37. package/dest/GSEAbi.d.ts.map +1 -1
  38. package/dest/GSEAbi.js +291 -20
  39. package/dest/GSEBytecode.d.ts +1 -1
  40. package/dest/GSEBytecode.d.ts.map +1 -1
  41. package/dest/GSEBytecode.js +1 -1
  42. package/dest/GovernanceAbi.d.ts +40 -0
  43. package/dest/GovernanceAbi.d.ts.map +1 -1
  44. package/dest/GovernanceAbi.js +54 -0
  45. package/dest/GovernanceBytecode.d.ts +1 -1
  46. package/dest/GovernanceBytecode.js +1 -1
  47. package/dest/GovernanceProposerAbi.d.ts +40 -0
  48. package/dest/GovernanceProposerAbi.d.ts.map +1 -1
  49. package/dest/GovernanceProposerAbi.js +54 -0
  50. package/dest/GovernanceProposerBytecode.d.ts +1 -1
  51. package/dest/GovernanceProposerBytecode.js +1 -1
  52. package/dest/HonkVerifierAbi.d.ts +40 -0
  53. package/dest/HonkVerifierAbi.d.ts.map +1 -1
  54. package/dest/HonkVerifierAbi.js +54 -0
  55. package/dest/HonkVerifierBytecode.d.ts +1 -1
  56. package/dest/HonkVerifierBytecode.d.ts.map +1 -1
  57. package/dest/HonkVerifierBytecode.js +1 -1
  58. package/dest/IERC20Abi.d.ts +40 -0
  59. package/dest/IERC20Abi.d.ts.map +1 -1
  60. package/dest/IERC20Abi.js +54 -0
  61. package/dest/IVerifierAbi.d.ts +40 -0
  62. package/dest/IVerifierAbi.d.ts.map +1 -1
  63. package/dest/IVerifierAbi.js +54 -0
  64. package/dest/InboxAbi.d.ts +40 -0
  65. package/dest/InboxAbi.d.ts.map +1 -1
  66. package/dest/InboxAbi.js +54 -0
  67. package/dest/InboxBytecode.d.ts +1 -1
  68. package/dest/InboxBytecode.js +1 -1
  69. package/dest/MockVerifierAbi.d.ts +40 -0
  70. package/dest/MockVerifierAbi.d.ts.map +1 -1
  71. package/dest/MockVerifierAbi.js +54 -0
  72. package/dest/MockZKPassportVerifierAbi.d.ts +40 -0
  73. package/dest/MockZKPassportVerifierAbi.d.ts.map +1 -1
  74. package/dest/MockZKPassportVerifierAbi.js +54 -0
  75. package/dest/MultiAdderAbi.d.ts +87 -0
  76. package/dest/MultiAdderAbi.d.ts.map +1 -1
  77. package/dest/MultiAdderAbi.js +115 -0
  78. package/dest/MultiAdderBytecode.d.ts +1 -1
  79. package/dest/MultiAdderBytecode.d.ts.map +1 -1
  80. package/dest/MultiAdderBytecode.js +1 -1
  81. package/dest/NewGovernanceProposerPayloadAbi.d.ts +41 -1
  82. package/dest/NewGovernanceProposerPayloadAbi.d.ts.map +1 -1
  83. package/dest/NewGovernanceProposerPayloadAbi.js +55 -1
  84. package/dest/NewGovernanceProposerPayloadBytecode.d.ts +1 -1
  85. package/dest/NewGovernanceProposerPayloadBytecode.js +1 -1
  86. package/dest/OutboxAbi.d.ts +40 -0
  87. package/dest/OutboxAbi.d.ts.map +1 -1
  88. package/dest/OutboxAbi.js +54 -0
  89. package/dest/OutboxBytecode.d.ts +1 -1
  90. package/dest/OutboxBytecode.js +1 -1
  91. package/dest/RegisterNewRollupVersionPayloadAbi.d.ts +41 -1
  92. package/dest/RegisterNewRollupVersionPayloadAbi.d.ts.map +1 -1
  93. package/dest/RegisterNewRollupVersionPayloadAbi.js +55 -1
  94. package/dest/RegisterNewRollupVersionPayloadBytecode.d.ts +1 -1
  95. package/dest/RegisterNewRollupVersionPayloadBytecode.js +1 -1
  96. package/dest/RegistryAbi.d.ts +40 -0
  97. package/dest/RegistryAbi.d.ts.map +1 -1
  98. package/dest/RegistryAbi.js +54 -0
  99. package/dest/RegistryBytecode.d.ts +1 -1
  100. package/dest/RegistryBytecode.js +1 -1
  101. package/dest/RewardDistributorAbi.d.ts +40 -0
  102. package/dest/RewardDistributorAbi.d.ts.map +1 -1
  103. package/dest/RewardDistributorAbi.js +54 -0
  104. package/dest/RewardDistributorBytecode.d.ts +1 -1
  105. package/dest/RewardDistributorBytecode.js +1 -1
  106. package/dest/RollupAbi.d.ts +213 -0
  107. package/dest/RollupAbi.d.ts.map +1 -1
  108. package/dest/RollupAbi.js +277 -0
  109. package/dest/RollupBytecode.d.ts +27 -27
  110. package/dest/RollupBytecode.d.ts.map +1 -1
  111. package/dest/RollupBytecode.js +27 -27
  112. package/dest/RollupStorage.d.ts +3 -3
  113. package/dest/RollupStorage.js +3 -3
  114. package/dest/SlashFactoryAbi.d.ts +40 -0
  115. package/dest/SlashFactoryAbi.d.ts.map +1 -1
  116. package/dest/SlashFactoryAbi.js +54 -0
  117. package/dest/SlashFactoryBytecode.d.ts +1 -1
  118. package/dest/SlashFactoryBytecode.js +1 -1
  119. package/dest/SlasherAbi.d.ts +40 -0
  120. package/dest/SlasherAbi.d.ts.map +1 -1
  121. package/dest/SlasherAbi.js +54 -0
  122. package/dest/SlasherBytecode.d.ts +1 -1
  123. package/dest/SlasherBytecode.js +1 -1
  124. package/dest/SlashingProposerAbi.d.ts +40 -0
  125. package/dest/SlashingProposerAbi.d.ts.map +1 -1
  126. package/dest/SlashingProposerAbi.js +54 -0
  127. package/dest/SlashingProposerBytecode.d.ts +1 -1
  128. package/dest/SlashingProposerBytecode.js +1 -1
  129. package/dest/StakingAssetHandlerAbi.d.ts +134 -0
  130. package/dest/StakingAssetHandlerAbi.d.ts.map +1 -1
  131. package/dest/StakingAssetHandlerAbi.js +176 -0
  132. package/dest/StakingAssetHandlerBytecode.d.ts +1 -1
  133. package/dest/StakingAssetHandlerBytecode.d.ts.map +1 -1
  134. package/dest/StakingAssetHandlerBytecode.js +1 -1
  135. package/dest/TestERC20Abi.d.ts +40 -0
  136. package/dest/TestERC20Abi.d.ts.map +1 -1
  137. package/dest/TestERC20Abi.js +54 -0
  138. package/dest/TokenPortalAbi.d.ts +40 -0
  139. package/dest/TokenPortalAbi.d.ts.map +1 -1
  140. package/dest/TokenPortalAbi.js +54 -0
  141. package/dest/TokenPortalBytecode.d.ts +1 -1
  142. package/dest/TokenPortalBytecode.js +1 -1
  143. package/dest/UniswapPortalAbi.d.ts +40 -0
  144. package/dest/UniswapPortalAbi.d.ts.map +1 -1
  145. package/dest/UniswapPortalAbi.js +54 -0
  146. package/dest/UniswapPortalBytecode.d.ts +1 -1
  147. package/dest/UniswapPortalBytecode.js +1 -1
  148. package/dest/ValidatorSelectionLibAbi.d.ts +40 -0
  149. package/dest/ValidatorSelectionLibAbi.d.ts.map +1 -1
  150. package/dest/ValidatorSelectionLibAbi.js +54 -0
  151. package/dest/ValidatorSelectionLibBytecode.d.ts +1 -1
  152. package/dest/ValidatorSelectionLibBytecode.js +1 -1
  153. package/dest/checksum.d.ts +1 -1
  154. package/dest/checksum.js +1 -1
  155. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * HonkVerifier bytecode.
3
3
  */
4
- export declare const HonkVerifierBytecode = "0x610100604052348015610010575f5ffd5b506302000000608052601960a0527f218b5ba3dac6886daf9ab941ce3933dc2e473e2f3cbe77b8c3fa1b3a2bc75d3b60c05260ae60e05260805160a05160c05160e05161533961008d5f395f818160f3015261066901525f60d201525f818161077401528181610cda0152610d7801525f61060d01526153395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004614ef5565b610054565b604051901515815260200160405180910390f35b5f61006261017f6020614fcd565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a6101dc565b90505f61009787876101f1565b9050601082604001516100aa9190614fe4565b84146100c95760405163fa06659360e01b815260040160405180910390fd5b5f6101178287877f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061054a565b90506101678686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050855185516060810151608090910151919350915060016105f7565b815160a001525f610178838361076c565b905080610198576040516313f8744360e31b815260040160405180910390fd5b5f6101a484868561086d565b9050806101c4576040516352ec174560e11b815260040160405180910390fd5b8180156101ce5750805b9a9950505050505050505050565b6101e4614972565b6101ec6110b2565b905090565b6101f9614afc565b5f805b601081101561025b57610228858386610216602083614ff7565b926102239392919061500a565b6119ed565b8351826010811061023b5761023b615031565b6020020181815250506020826102519190614ff7565b91506001016101fc565b5061027f84828561026d604083614ff7565b9261027a9392919061500a565b611a07565b602083015261028f604082614ff7565b90506102a284828561026d604083614ff7565b6040808401919091526102b59082614ff7565b90506102c884828561026d604083614ff7565b60608301526102d8604082614ff7565b90506102eb84828561026d604083614ff7565b60c08301526102fb604082614ff7565b905061030e84828561026d604083614ff7565b60e083015261031e604082614ff7565b905061033184828561026d604083614ff7565b6080830152610341604082614ff7565b905061035484828561026d604083614ff7565b610100830152610365604082614ff7565b905061037884828561026d604083614ff7565b60a0830152610388604082614ff7565b90505f5b601c811015610407575f5b60088110156103fe576103b1868487610216602083614ff7565b84610120015183601c81106103c8576103c8615031565b602002015182600881106103de576103de615031565b6020020181815250506020836103f49190614ff7565b9250600101610397565b5060010161038c565b505f5b602981101561045b57610424858386610216602083614ff7565b836101400151826029811061043b5761043b615031565b6020020181815250506020826104519190614ff7565b915060010161040a565b505f5b61046a6001601c614fe4565b8110156104b35761048285838661026d604083614ff7565b83610160015182601b811061049957610499615031565b60200201526104a9604083614ff7565b915060010161045e565b505f5b601c811015610507576104d0858386610216602083614ff7565b83610180015182601c81106104e7576104e7615031565b6020020181815250506020826104fd9190614ff7565b91506001016104b6565b5061051984828561026d604083614ff7565b6101a083015261052a604082614ff7565b905061053d84828561026d604083614ff7565b6101c08301525092915050565b610552614bac565b5f610561878787878786611a89565b90835290506105708188611add565b6020840191909152905061058381611c8a565b604084019190915290506105978782611ceb565b606084019190915290506105ab8782611dbf565b608084019190915290506105bf8782611e4a565b60a084019190915290506105d38782611f20565b60c084019190915290506105e78782611f92565b5060e08301525095945050505050565b5f600180826106408661063b896106366106318a7f0000000000000000000000000000000000000000000000000000000000000000614ff7565b611fcf565b611fe7565b612002565b90505f61065e876106598a6106366106318b6001614ff7565b61201b565b90505f5b61068d60107f0000000000000000000000000000000000000000000000000000000000000000614fe4565b8110156106fa575f6106b78c83815181106106aa576106aa615031565b6020026020010151612043565b90506106c7866106368684612002565b95506106d7856106368584612002565b94506106e3848b612002565b93506106ef838b61201b565b925050600101610662565b505f5b6010811015610761575f8a826010811061071957610719615031565b6020020151905061072e866106368684612002565b955061073e856106368584612002565b945061074a848b612002565b9350610756838b61201b565b9250506001016106fd565b506101ce8484612058565b5f806001815b7f0000000000000000000000000000000000000000000000000000000000000000811015610843575f86610120015182601c81106107b2576107b2615031565b602002015190505f6107c48286612066565b9050806107e4576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106107fb576107fb615031565b6020020151905061080c8382612083565b9550610833886040015185601c811061082757610827615031565b60200201518683612232565b9450505050806001019050610772565b505f61085d866101400151865f015187602001518561225d565b90508281145b9695505050505050565b5f610876614c05565b5f6108848460a001516122d6565b905061088e614c75565b610896614c94565b60e08601516108b5906108b090855f5b602002015161201b565b61233b565b61012085015260e08601516108d5906108b090855f5b6020020151612002565b610140850181905261012085015160c08801516108f69261063b9190611fe7565b845260a08601516109269061090a9061233b565b6106368661012001516106598a60c00151896101400151611fe7565b602085015260018083526101a0890151825260a08501525f60c0850152835161094e906123a4565b60408501526020840151610961906123a4565b606085015260015b60248111610a065761098385604001518660a00151611fe7565b83826042811061099557610995615031565b602002015260c08501516101408a01516109d8919061063b906109b9600186614fe4565b602981106109c9576109c9615031565b60200201518860a00151611fe7565b60c086015260a085015160808801516109f19190611fe7565b60a08601526109ff81615045565b9050610969565b505f5b6005811015610acd575f610a1e601d83614ff7565b90505f610a2c602484614ff7565b9050610a5a858360428110610a4357610a43615031565b602002015161063b89606001518a60a00151611fe7565b858360428110610a6c57610a6c615031565b602002015260c08701516101408c0151610aa5919061063b908460298110610a9657610a96615031565b60200201518a60a00151611fe7565b60c088015260a087015160808a0151610abe9190611fe7565b60a08801525050600101610a09565b50606087015181600160200201526080870151816002602002015260a0870151816003602002015260c0870151816004602002015260e0870151816005602002015261010087015181600660200201526101208701518160076020020152610140870151816008602002015261016087015181600960200201526101c087015181600a602002015261018087015181600b60200201526101a087015181600c60200201526101e087015181600d602002015261020087015181600e602002015261022087015181600f60200201526102408701518160106020020152610260870151816011602002015261028087015181601260200201526102a087015181601360200201526102c087015181601460200201526102e08701518160156020020152610300870151816016602002015261032087015181601760200201526103408701518160186020020152610360870151816019602002015261038087015181601a60200201526103a087015181601b60200201526103c087015181601c6020020181905250876020015181601d60428110610c6c57610c6c615031565b602002015260408801516103c08201526060808901516103e0830152608089015161040083015260a089015161042083015261010089015161044083015260c0808a015161046084015260e08a015161048084015290870151908501516101808a01515f92610cfe929091877f00000000000000000000000000000000000000000000000000000000000000006123b6565b8051610120870151919250610d1291611fe7565b608086018190526101808a01515160c0890151610d43929161063b91610d389190611fe7565b886101400151611fe7565b608086015260c0870151610d56906124d1565b60a08601525f5b610d696001601c614fe4565b811015610f68575f610d9c60017f0000000000000000000000000000000000000000000000000000000000000000614fe4565b821015905080610f1657610dcf6108b08a60e0015188856001610dbf9190614ff7565b601c81106108a6576108a6615031565b61012088015260e0890151610dfe906108b09088610dee866001614ff7565b601c81106108cb576108cb615031565b61014088015260a0870151610120880151610e199190611fe7565b61016088015260a087015160c08a0151610e3691610d3891611fe7565b6101808801819052610e5990610e4b906123a4565b61063b8961016001516123a4565b8583610e6760246001614ff7565b610e719190614ff7565b60428110610e8157610e81615031565b602002015261018080880151908c01515f91610ebc91610ea2866001614ff7565b601c8110610eb257610eb2615031565b6020020151611fe7565b9050610ed98161063b8a610160015187876001610ea29190614ff7565b9050610ee9886080015182612002565b608089015260a088015160c08b0151610f0f91610f0591611fe7565b8b60c00151611fe7565b60a0890152505b8a610160015182601b8110610f2d57610f2d615031565b60200201518483610f4060246001614ff7565b610f4a9190614ff7565b60428110610f5a57610f5a615031565b602002015250600101610d5d565b5060408051808201909152600181526002602082015282610f8b601c6024614ff7565b60428110610f9b57610f9b615031565b6020020152608085015183610fb2601c6024614ff7565b60428110610fc257610fc2615031565b60200201526101c08901518083610fdb601c6024614ff7565b610fe6906001614ff7565b60428110610ff657610ff6615031565b602002015260e08801518461100d601c6024614ff7565b611018906001614ff7565b6042811061102857611028615031565b60200201525f61103884866124dc565b90505f611044836125d4565b90505f6110558d5f0151848461261a565b90505f5f6110658f5f0151612690565b9150915061107282612751565b61107b81612751565b6110868583856127f4565b94506110938482856127f4565b935061109f858561281a565b9f9e505050505050505050505050505050565b6110ba614972565b50604080516103e08101825263020000008152601960208083019190915260ae82840152825180840184527f0b287cb25bf5f5ac4ad0438197a4f048354b795df04a410b9ec1425076a5e3ec81527f193e335b344272ac3c3bfa974cf46b0061d4224f47f15da542ccbcefe531393f818301526060830152825180840184527f2b2e9955cc11344ae0936b05cf3b987a4f9637baa959abf09c0250a23b017dc181527f28a3058fd889c596b91745ed838bf3736446db4cb3b36dd2dacce81489d07c95818301526080830152825180840184527f1a51cb328a7cd05fae4487dae7194de40cfd08948e3d0edf7829c343dec40e2a81527f05c1631aa974bafbf54d3c67f04992e7dc210181650bb5e8d6d8fcdb83d08db68183015260a0830152825180840184527f247b89e60bcf80990060a55652c3f99c45fbe9c63c3cc56187c89884fe0afec981527f113373b2fa89f39d5dd017e74ed381105b7e346f7edb710a01e6023c9f4c11f28183015260c0830152825180840184527f170646ace9d1dc250635c2b0223c2d217ea3c393a92bf4da7b02eb93d06e407c81527f0698f5cd285a0e7c66b190edcafa8e2aa308e9845d407b7a4022dcd0bc2d39a18183015260e0830152825180840184527f29317cd1d11ebb337022fb18adb6dccae139a7f4b9501ccdf6b1da5ceaa277d681527f0bfd17c712045576050c3750fa8cecdf3545b20a909c2a9e49bfa38deee63ab081830152610100830152825180840184527f107d2d79c20982125b9f302008ecbd7b7f25eebc71271311c28f58223170c78b81527f0f3c9104533084fca88d92d900c94cb1400899b1c3c2b40cf32807f7d8517f4781830152610120830152825180840184527f2f7c19133b7fa4723f994ff7c1b86bacf0442b1b4a373e914999a517b9f9088c81527f202c2883214d09f854e5d882122c2d798ebde93534703f6b9b31ed67ed78053381830152610140830152825180840184527f1824537c9cbf10d30d95365c3daa59560dc1ab5c6c5bd451a7996b995133924681527eaeb1e6a7f37efed65a975f240f5d21d117ccc0d261157efce1dc9cc48d8f5081830152610160830152825180840184527f0f9a24fe18ee4223bd246309373ba1ba49c3430f295b1d8f7dcf449c4702996a81527f03f22f592401a3a064254b059c5b80e679837394b6cc055f928e50247065213b81830152610180830152825180840184527f23871f2846447cbbcfe466d17ae56916887a7981e5dd6a39b4b48986824e29ab81527f1f97b21f264509dfe03a5bd32018e4a421f89838670ddda4c54403e3a097c996818301526101a0830152825180840184527f1118f14ccae43b041d5254f889788445d28b6bbc9d53dec2eb834cbd72cdc66681527f1a999ce69190e3a8d3a6010946cb88e548632c13f0cf4931ee26fb886668fa76818301526101c0830152825180840184527f0c2f5bb1df382d88fbd69c72ee26c0ee2ee9d99dba033d94d09e98999b236ad881527f0cee084cc57d55b6cef5e081d2eb72a872b5e67d5d6e73e89ddf70eb6cfa213b818301526101e0830152825180840184527f1209104307d414629bcc973b1254df5742edd6b263b64f5900bbc65e865e6a5781527f16b9cb53d0fef78c064c2c76e110fb5657354627af442f487fd8902baf18f48a81830152610200830152825180840184527f1c699689ae5074fa23e88c139c2be34c8d83497ebdf78fe0afa90c620e9d7fd081527f1f07c2afec8c6471748202cdf64c07a767cc7d67372cc40c3695043cc668c6bf81830152610220830152825180840184527f03318ed4d03f6436228d54d2f30206691481617fbbfadc368123ae256ecd926d81527f087bbb64395c6c8a577414026180167096149df7dac99a395a4ae69c821c966781830152610240830152825180840184527f1a3fe29c2190d74147c7d6e343593d9f0614611d57697ce501c96c4b3fa6d3bd81527f0860eb7bde7aa84e66b01b442c1e2d9b881356d9c664cfe5291092cf3acd8d9081830152610260830152825180840184527f2d308ff80759949ab75dbf23c8c69b6272125c8358ab9da1ac65fae159c4479f81527f2433b5a3099ebf6530ec234dc7c0787772e434b8e5d8e930634e71814ee3972b81830152610280830152825180840184527f2b3ac4495aff9d111d72fd411b83dfee5e8ab40a48cd3a0a9ebe97b59f2bd51281527f1874c8068f2ebdc3c467e412b55a0954d5933f6129f1ddd8545a432c3c6ec13b818301526102a0830152825180840184527f0a0f17800912eba26d0dc7dae3bca4abefc31865458bb68cefe6cd98fc861bfe81527f1a9009903ac14eb5593f18de0bf2e14680aad30fae65da8880b5c189efa32cfc818301526102c0830152825180840184527f269a2111f3c5f2384735e69bbeb3c18e39cea0b6c5d3016b84c98ba271403d2b81527f1e897afdb1567b25e480f8c2093476151ca1eb2e62a13487857e31c2b299cbe9818301526102e0830152825180840184527f2227278132610dce2c2d27339d603b89b86f8df36d4bfc5e26f95a79f6803eb581527f0e98e051d59a887ba89d09e62544f51aa4c725ae8ae4e3edb787ce40277318b281830152610300830152825180840184527f275a0bb22f8c37a3476d71c556d266909fdde001df48d48a78940343ccb0b48a81527f2a4cc2119d1bd729845e8630c5b1aec652a2f2a7ae690c52238e3eafd44b385681830152610320830152825180840184527f1e1d6ac562a951aa01bc279a090d34488936a6404b3c75294fd260df0d36689381527f1643515b25c47e776b6d99eb3ce8b4613b209886681842e5c39ee92efe72c27281830152610340830152825180840184527f20db30b046148206e1ce5d50fe2559d2e60dbe3472bb605600c6e01d0965df8281527f0d5d5be706d7b3b8a7d3d02043ef0e324676187770f682c791ce1cd3deadc05881830152610360830152825180840184527f1f59b85de9212665c6c3e59fb35ab6609d72f5ad8007449dc8019a5886fad88f81527f21c9b787b5e0109e8ab3c2293b8c67fa9ec871818722fb8bea77aa6477aaae4c8183015261038083015282518084018452600181526002818301526103a083015282518084019093527f050548122c01e8e2581a91e14104afc52ce1a3db285bed6025d71405fc85dce983527f2f4749311aa5648001d78bdecffdd372faecc5b5e7a8a007b12a2315cedd69dd908301526103c081019190915290565b5f611a006119fb838561505d565b612043565b9392505050565b611a0f614cc2565b60408051808201909152805f5160206152f95f395f51905f52611a3560205f878961500a565b611a3e9161505d565b611a48919061508e565b81526020908101905f5160206152f95f395f51905f5290611a6d90604090878961500a565b611a769161505d565b611a80919061508e565b90529392505050565b611a91614cda565b5f611a9f8888888888612a0e565b604086019190915260208501919091529083529250611abe8389612d0b565b6080850191909152606084019190915291989197509095505050505050565b611ae5614d0a565b5f611aee614d29565b8481526101008401805151602080840191909152905181015160408084019190915260a08601805151606085015251820151608084015251611b5191611b36918491016150a1565b60405160208183030381529060405280519060200120612043565b9150611b5c82612d92565b6020850152835260015b6002611b746001601c614fe4565b611b7e91906150d4565b811015611bfe57611b9b83604051602001611b3691815260200190565b9250611ba683612d92565b85611bb2846002614fcd565b601b8110611bc257611bc2615031565b6020020186611bd2856002614fcd565b611bdd906001614ff7565b601b8110611bed57611bed615031565b602002019190915252600101611b66565b50611c0b6001601c614fe4565b6001166001148015611c2857506002611c266001601c614fe4565b115b15611c8257611c4382604051602001611b3691815260200190565b91505f611c4f83612d92565b856001611c5d81601c614fe4565b611c679190614fe4565b601b8110611c7757611c77615031565b602002019190915250505b509250929050565b611c92614d47565b5f805b601c811015611ce457611cb484604051602001611b3691815260200190565b93505f611cc085612d92565b8584601c8110611cd257611cd2615031565b60200201919091525050600101611c95565b5090929050565b611cf3614d47565b5f805b601c811015611db657611d07614d66565b8481525f5b6008811015611d705786610120015183601c8110611d2c57611d2c615031565b60200201518160088110611d4257611d42615031565b602002015182611d53836001614ff7565b60098110611d6357611d63615031565b6020020152600101611d0c565b50611d8581604051602001611b3691906150e7565b94505f611d9186612d92565b8685601c8110611da357611da3615031565b6020020191909152505050600101611cf6565b50909391925050565b5f5f611dc9614d85565b8381525f5b6029811015611e1c578561014001518160298110611dee57611dee615031565b602002015182611dff836001614ff7565b602a8110611e0f57611e0f615031565b6020020152600101611dce565b50611e3181604051602001611b36919061511b565b91505f611e3d83612d92565b5096929550919350505050565b5f5f611e54614da4565b8381525f5b611e656001601c614fe4565b811015611f0b5785610160015181601b8110611e8357611e83615031565b60200201515182611e95836002614fcd565b611ea0906001614ff7565b60378110611eb057611eb0615031565b602002015261016086015181601b8110611ecc57611ecc615031565b60200201516020015182826002611ee39190614fcd565b611eee906002614ff7565b60378110611efe57611efe615031565b6020020152600101611e59565b50611e3181604051602001611b36919061514f565b5f5f611f2a614dc3565b8381525f5b601c811015611f7d5785610180015181601c8110611f4f57611f4f615031565b602002015182611f60836001614ff7565b601d8110611f7057611f70615031565b6020020152600101611f2f565b50611e3181604051602001611b369190615183565b5f5f611f9c614de2565b8381526101a08501805151602080840191909152905181015160408084019190915251611e3191611b36918491016151b7565b5f5f5160206153195f395f51905f52825b0692915050565b5f5f5160206153195f395f51905f5282840990505b92915050565b5f5f5160206153195f395f51905f528284089392505050565b5f5f5160206153195f395f51905f52825f5160206153195f395f51905f520384089392505050565b5f5f5160206153195f395f51905f5282611fe0565b5f611a00836106368461233b565b81515f908190612078908560016108cb565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b600881101561216a5761216082610636878461201b565b9150600101612149565b50612173614e00565b5f5b60088110156121d4575f84826008811061219157612191615031565b602002015190506121a681610636898561201b565b90506121b18161233b565b9050808383600881106121c6576121c6615031565b602002015250600101612175565b505f5b6008811015612227575f8782600881106121f3576121f3615031565b6020020151905061221081848460088110610eb257610eb2615031565b905061221c8682612002565b9550506001016121d7565b506108638483611fe7565b5f5f612248600161063b8561063689600161201b565b90506122548482611fe7565b95945050505050565b5f612266614d47565b612271868285612dc2565b61227d86868386612f6e565b6122898686838661315a565b612294868285613385565b61229f868285613579565b6122ab868683866138c2565b6122b6868285613d75565b6122c1868285614187565b6122cc868285614548565b6108638185614848565b6122de614d47565b81815260015b601c81101561233557612316826122fc600184614fe4565b601c811061230c5761230c615031565b60200201516124d1565b8282601c811061232857612328615031565b60200201526001016122e4565b50919050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f5160206153195f395f51905f520360808201525f5160206153195f395f51905f5260a082015260205f60c08360055afa905080612399575f5ffd5b50505f519392505050565b5f5160206153195f395f51905f520390565b6123be614d47565b601c5b80156124c7575f846123d4600184614fe4565b601c81106123e4576123e4615031565b602002015190505f886123f8600185614fe4565b601c811061240857612408615031565b602002015190505f612463612427612420858c611fe7565b6002611fe7565b6106598a612436600189614fe4565b601c811061244657612446615031565b602002015161063661245d8861063660018a61201b565b8761201b565b9050612484816106366108b061247e8761063660018961201b565b86612002565b90508584116124b357975087808561249d600187614fe4565b601c81106124ad576124ad615031565b60200201525b505050806124c0906151ea565b90506123c1565b5095945050505050565b5f611ffc8283611fe7565b6124e4614cc2565b5f6124f1601c6024614ff7565b6124fc906002614ff7565b90505f5b8181101561252f5761252785826042811061251d5761251d615031565b6020020151612751565b600101612500565b506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b838110156125bc5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612563565b50805184526020810151602085015250505092915050565b6125dc614cc2565b5f5160206152f95f395f51905f5282602001515f5160206152f95f395f51905f526126079190614fe4565b612611919061508e565b60208301525090565b5f5f5f61262686612690565b91509150612632614e00565b82518152602080840151818301528251604080840191909152838201516060840152875160808401528782015160a0840152865160c08401528682015160e08401525161268591611b36918491016151ff565b979650505050505050565b612698614cc2565b6126a0614cc2565b82516020808501516040860151606087015160cc90811b608892831b604494851b90961795909517949094178652608087015160a088015160c089015160e08a0151871b90841b91851b9092171717868401526101008701516101208801516101408901516101608a0151871b90841b91851b909217171785526101808701516101a08801516101c08901516101e09099015190951b9790911b9390911b1791909117939093179281019290925291565b805160208201515f5f5160206152f95f395f51905f528380095f5160206152f95f395f51905f5260035f5160206152f95f395f51905f52838709085f5160206152f95f395f51905f5284850914915050806127ee5760405162461bcd60e51b8152602060048201526019602482015278706f696e74206973206e6f74206f6e2074686520637572766560381b604482015260640160405180910390fd5b50505050565b6127fc614cc2565b612804614cc2565b61280e83866148ad565b905061225481856148fd565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516129b09190615233565b5f60405180830381855afa9150503d805f81146129e8576040519150601f19603f3d011682016040523d82523d5f602084013e6129ed565b606091505b50915091508180156108635750808060200190518101906108639190615249565b5f80808080612a1e866001614ff7565b612a29906006614ff7565b6001600160401b03811115612a4057612a40615268565b604051908082528060200260200182016040528015612a69578160200160208202803683370190505b509050865f1b815f81518110612a8157612a81615031565b60209081029190910101525f5b612a99601088614fe4565b811015612aea57898982818110612ab257612ab2615031565b9050602002013582826001612ac79190614ff7565b81518110612ad757612ad7615031565b6020908102919091010152600101612a8e565b505f5b6010811015612b5b578a51612b15908260108110612b0d57612b0d615031565b602002015190565b82826010612b248b6001614ff7565b612b2e9190614fe4565b612b389190614ff7565b81518110612b4857612b48615031565b6020908102919091010152600101612aed565b5060208a01515181612b6e886001614ff7565b81518110612b7e57612b7e615031565b6020908102919091018101919091528a810151015181612b9f886001614ff7565b612baa906001614ff7565b81518110612bba57612bba615031565b602090810291909101015260408a01515181612bd7886001614ff7565b612be2906002614ff7565b81518110612bf257612bf2615031565b60209081029190910181019190915260408b0151015181612c14886001614ff7565b612c1f906003614ff7565b81518110612c2f57612c2f615031565b602090810291909101015260608a01515181612c4c886001614ff7565b612c57906004614ff7565b81518110612c6757612c67615031565b60209081029190910181019190915260608b0151015181612c89886001614ff7565b612c94906005614ff7565b81518110612ca457612ca4615031565b602002602001018181525050612cc481604051602001611b36919061527c565b9150612ccf82612d92565b6040805160208101869052929750909550612cea9101611b36565b91505f612cf683612d92565b50959b949a5094985090965091945050505050565b5f5f5f612d16614e1f565b85815260c0858101805151602080850191909152905181015160408085019190915260e08801805151606086015251820151608080860191909152880180515160a086015251820151928401929092529051612d7891611b36918491016152b1565b9150612d8382612d92565b90979096509194509092505050565b5f80826001600160801b038116608082901c612dad82612043565b9450612db881612043565b9350505050915091565b5f612dce846007614942565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612e2f612e29612e0385600361201b565b610636612e1e612e138b5f614942565b6106368c601d614942565b6106368b601c614942565b83611fe7565b9050612eb0612ea5612e8c612e73612e5a8561063b612e4f8d6002614942565b6106368e601c614942565b61063b612e688c6003614942565b6106368d601d614942565b61063b612e818b6004614942565b6106368c601e614942565b61063b612e9a8a6005614942565b6106368b601f614942565b61063b886001614942565b9050612ecf8161063b612ec486600161201b565b6106368a6027614942565b9050612edb8184611fe7565b9050612ee78185611fe7565b8552505f9050612f21612f17612f0c612f0188601c614942565b61063b89601f614942565b610659886024614942565b61063b875f614942565b9050612f328161063684600261201b565b9050612f438161063684600161201b565b9050612f4f8183611fe7565b9050612f5b8184611fe7565b9050808460015b60200201525050505050565b5f5f5f612fa4612f9a612f8289601c614942565b61063b612f908b6012614942565b8a60600151611fe7565b8760800151612002565b9050612fdd81610636612fd3612fbb8b601d614942565b61063b612fc98d6013614942565b8c60600151611fe7565b8960800151612002565b905061300281610636612fd3612ff48b601e614942565b61063b612fc98d6014614942565b905061302781610636612fd36130198b601f614942565b61063b612fc98d6015614942565b92505f905061304b612f9a61303d89601c614942565b61063b612f908b600e614942565b905061307081610636612fd36130628b601d614942565b61063b612fc98d600f614942565b905061309581610636612fd36130878b601e614942565b61063b612fc98d6010614942565b90506130ba81610636612fd36130ac8b601f614942565b61063b612fc98d6011614942565b91505f90506130e16130db6130d0896020614942565b61063b8a601a614942565b84611fe7565b9050613116816106596131106130f88b6028614942565b61063b6131068d601b614942565b8c60a00151611fe7565b85611fe7565b90506131228185611fe7565b6040860152505f61314561311061313a89601b614942565b6106368a6028614942565b9050808560035b602002015250505050505050565b5f5f6131b86131a0613188613173612fd38a6016614942565b61063b6131818b6017614942565b8a51611fe7565b61063b6131968a6018614942565b8960200151611fe7565b61063b6131ae896019614942565b8860400151611fe7565b91505f6131ef6131d66131cc89601c614942565b8860800151612002565b61063b6131e48a6003614942565b6106368b6024614942565b90505f61321861320089601d614942565b61063b61320d8b5f614942565b6106368c6025614942565b90505f6132426132298a601e614942565b61063b6132378c6001614942565b6106368d6026614942565b905061328161326961325b8561063b868d5f0151611fe7565b61063b848c60200151611fe7565b61063b6132778c6004614942565b8b60400151611fe7565b93505050505f6132956130db886021614942565b90505f6132a66130db896021614942565b90505f6132de6132c56132ba8b6023614942565b61063b8c6006614942565b6106596132d38c6023614942565b6106368d6006614942565b90505f6133026132fc6132f18789611fe7565b6106368d6021614942565b8361201b565b905061330e8188611fe7565b90505f6133366133286133228d6006614942565b87611fe7565b6106596133228e6022614942565b90505f6133448c6023614942565b90505f6133546132fc8384611fe7565b60808c0185905260a08c01849052905061336e818b611fe7565b8b6006602002015250505050505050505050505050565b5f6133915f600161201b565b90505f61339f5f600261201b565b90505f6133ad5f600361201b565b90505f6133c96133be88601d614942565b61065989601c614942565b90505f6133e56133da89601e614942565b6106598a601d614942565b90505f6134016133f68a601f614942565b6106598b601e614942565b90505f61341d6134128b6024614942565b6106598c601f614942565b90508361342e81610636818b612002565b905061343e81610636878a612002565b905061344e816106368789612002565b905061345f816106368d6008614942565b905061346b818a611fe7565b60e08b0152508261348081610636818b612002565b905061349081610636868a612002565b90506134a0816106368689612002565b90506134b1816106368d6008614942565b90506134bd818a611fe7565b6101008b015250816134d381610636818b612002565b90506134e381610636858a612002565b90506134f3816106368589612002565b9050613504816106368d6008614942565b9050613510818a611fe7565b6101208b0152508061352681610636818b612002565b905061353681610636848a612002565b9050613546816106368489612002565b9050613557816106368d6008614942565b9050613563818a611fe7565b610140909a019990995250505050505050505050565b6135b26040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6135bd84601d614942565b81526135ca84601e614942565b60208201526135da846024614942565b60408201526135ea846027614942565b60608201526135fa846026614942565b608082015261360a846025614942565b60a08201525f61361b856002614942565b90505f613628865f614942565b90505f61363c8460400151855f015161201b565b90505f61365185602001518660200151611fe7565b606086015190915086905f906136679080611fe7565b90505f61368561367f89602001518a60600151611fe7565b88611fe7565b90505f6136a461369d8a60a001518b60400151612002565b8a51612002565b90506136b36133228288611fe7565b90506136da6136d46136ce6136c8848761201b565b8861201b565b84612002565b83612002565b90506137026136f76136ec8387611fe7565b6106368f6009614942565b61063660018a61201b565b6101608c015250505050602085015160808601515f9161372191612002565b90505f61373f613735886060015188611fe7565b886020015161201b565b90505f61376361374f8487611fe7565b61063b6131108b60a001518c5f015161201b565b905061378b613780613775838c611fe7565b6106368e6009614942565b61063660018961201b565b6101808b0152505f91506137ac90506137a5836011612002565b8751611fe7565b90505f6137b98384612002565b90506137c58182612002565b90505f6137d3836009611fe7565b90506137fc6137f66130db6137ef8b60a001518c5f0151612002565b8b51612002565b8261201b565b60c089018190525f906138179061367f906136ec908d611fe7565b905061382a8b600b602002015182612002565b6101608c0152505086515f925061385191506137a59061384a9080612002565b8851612002565b90505f61389161386c836106368a5f01518b60a0015161201b565b60208901516106599061387f9080612002565b6106368b602001518c60800151612002565b90506138ae89600c602002015161063b61367f6136ec858d611fe7565b89600c602002015250505050505050505050565b61392c604051806101e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61394461393a86601e614942565b8560400151611fe7565b8082526139639061063b61395988601d614942565b8760200151611fe7565b8082526139789061063b6137a588601c614942565b80825261398a9061063b876001614942565b808252602082018190526139a39061065987601f614942565b81526139be6139b3866024614942565b61065987601c614942565b60808201526139dc6139d1866027614942565b61065987601f614942565b606082015260808101516139fe906139f49080611fe7565b826080015161201b565b6101c08201526080810151613a3e90613a3490613a2d9061063660015f5160206153195f395f51905f52614fe4565b6001612002565b8260600151611fe7565b60a08201819052613a7490613a6690610636613a5b896002614942565b6106368a6003614942565b61063661311088600a614942565b83600e60200201526101c0810151613a9890613a6690610636613a5b896002614942565b6101e08401528051613abd90610636613ab2886002614942565b610636896003614942565b6101208201525f613adc613ad287601f614942565b836020015161201b565b9050613aeb6137f68283611fe7565b60e0830152613b08613afe876026614942565b8660400151611fe7565b60408301819052613b2b9061063b613b21896025614942565b8860200151611fe7565b60408301819052613b4b9061063b613b44896024614942565b8851611fe7565b6040830152613b68613b5e876027614942565b836040015161201b565b60408301525f613b87613b7c886026614942565b61065989601e614942565b9050613bd9613bb4612e29613a2d866080015160015f5160206153195f395f51905f526106369190614fe4565b610636613a2d866040015160015f5160206153195f395f51905f526106369190614fe4565b60c08401526040830151613bfb90613bf19080611fe7565b846040015161201b565b61010084015260c0830151613c2790613c19906106368a6004614942565b6106366133228a600a614942565b6102008601526101c0830151613c4690613c19906106368a6004614942565b610220860152610100830151613c6590613c19906106368a6004614942565b61024086015260e0830151613c7f90610636896004614942565b610140840152613c9e613c93886025614942565b61065989601d614942565b6101608401526080830151613cdc90613b7c90613cd190613a2d9061063660015f5160206153195f395f51905f52614fe4565b856101600151611fe7565b61018084018190526101208401516101a08501819052613d139161063b90610636613d088c6005614942565b6106368d6002614942565b6101a084018190528351613d33919061063b90610636613d088c5f614942565b6101a08401819052610140840151613d4b9190612002565b6101a08401819052613d65906106366133228a600a614942565b6101a0840181905285600d61314c565b613dae6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613de3613dca613dbf86601c614942565b610636876025614942565b61063b613dd8876024614942565b61063688601d614942565b8152613e28613e1d613e04613df987601c614942565b61063688601f614942565b61063b613e1288601d614942565b61063689601e614942565b610659866026614942565b60408201819052613e3d90600160441b611fe7565b60408201819052613e5390610659866027614942565b604082018190528151613e669190612002565b60408201819052613e7c90610636866005614942565b60408201528051613e9190600160441b611fe7565b808252613eb19061063b613ea6876024614942565b610636886025614942565b80825260208201819052613ed890610659613ecd87601e614942565b61063b88601f614942565b60208201819052613eee90610636866004614942565b6020820152805160608201819052613f0b9061063b86601f614942565b60608201819052613f2f90610659613f24876026614942565b61063b886027614942565b60608201819052613f4490610636865f614942565b8160600181815250505f613f6d613f6383602001518460400151612002565b8360600151612002565b9050613f7e81610636876003614942565b9050613f96613f8e866025614942565b614000611fe7565b60808301819052613fac9061063b876024614942565b60808301819052613fbf90614000611fe7565b60808301819052613fd59061063b87601e614942565b60808301819052613fe890614000611fe7565b60808301819052613ffe9061063b87601d614942565b6080830181905261401190614000611fe7565b608083018190526140279061063b87601c614942565b6080830181905261403d9061065987601f614942565b6080830181905261405390610636876005614942565b6080830152614066613f8e866026614942565b60a0830181905261407c9061063b876025614942565b60a0830181905261408f90614000611fe7565b60a083018190526140a59061063b876024614942565b60a083018190526140b890614000611fe7565b60a083018190526140ce9061063b87601f614942565b60a083018190526140e190614000611fe7565b60a083018190526140f79061063b87601e614942565b60a0830181905261410d90610659876027614942565b60a0830181905261412290610636875f614942565b60a0830181905260808301515f9161413a9190612002565b905061414b81610636886004614942565b90506141578282612002565b60c084018190526141709061063661332289600b614942565b60c084018190528560136020020152505050505050565b6141fd6040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61421661420b85601c614942565b61063b866002614942565b815261423161422685601d614942565b61063b866003614942565b602082015261424f61424485601e614942565b61063b866004614942565b604082015261426d61426285601f614942565b61063b866005614942565b6060820152805161429f90614298906142919061428a9080611fe7565b8451611fe7565b8351611fe7565b8251611fe7565b608082015260208101516142dd906142d3906142c9906142bf9080611fe7565b8460200151611fe7565b8360200151611fe7565b8260200151611fe7565b60a0820152604081015161431b9061431190614307906142fd9080611fe7565b8460400151611fe7565b8360400151611fe7565b8260400151611fe7565b60c0820152606081015161434f90613a34906143459061433b9080611fe7565b8460600151611fe7565b8360600151611fe7565b60e0820152608081015160a08201516143689190612002565b61010082015260c081015160e08201516143829190612002565b61012082015260a08101516143a69061439b9080612002565b826101200151612002565b61014082015260e08101516143ca906143bf9080612002565b826101000151612002565b6101608201526101208101516143e09080612002565b6101e08201819052614401906143f69080612002565b826101600151612002565b6101e08201526101008101516144179080612002565b6101a082018190526144389061442d9080612002565b826101400151612002565b6101a0820181905261016082015161444f91612002565b6101808201526101408101516101e082015161446b9190612002565b6101c082015261447f612e2985600c614942565b61020082018190526102808401516101808301516144aa9261063b91610636906106598a6024614942565b83601460200201526144da836015602002015161063b836102000151610636856101a001516106598a6025614942565b836015602002015261450a836016602002015161063b836102000151610636856101c001516106598a6026614942565b836016602002015261453a836017602002015161063b836102000151610636856101e001516106598a6027614942565b836017602002015250505050565b61459a6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60405180608001604052806145cf7f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7611fcf565b81526020016145fd7f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b611fcf565b815260200161462a7e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15611fcf565b81526020016146587f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b611fcf565b9052905061467561466a86601c614942565b61063b876002614942565b61012083018190526146b4906146a99061469e906146939080611fe7565b856101200151611fe7565b846101200151611fe7565b836101200151611fe7565b82526146c185601d614942565b60208301526146d185601e614942565b60408301526146e185601f614942565b60608301528151602083015161470991613f63916146ff9190612002565b8460400151612002565b608083015261471c6130db86600d614942565b610140830152815161473d9061473390835f610eb2565b8360800151612002565b60a0830152614769846018602002015161063b8461014001516106368660a001516106598b6024614942565b61030085015260208201516147849061473390836001610eb2565b60c08301526147b0846019602002015161063b8461014001516106368660c001516106598b6025614942565b61032085015260408201516147cb9061473390836002610eb2565b60e08301526147f784601a602002015161063b8461014001516106368660e001516106598b6026614942565b61034085015260608201516148129061473390836003610eb2565b61010083015261484084601b602002015161063b8461014001516106368661010001516106598b6027614942565b84601b612f62565b5f6148548184816108cb565b905060015b601c8110156148a65761489c8261063b8684601c811061487b5761487b615031565b60200201518661488c600187614fe4565b601b8110610eb257610eb2615031565b9150600101614859565b5092915050565b6148b5614cc2565b6148bd614cc2565b604051835181526020840151602082015284604082015260408160608360075afa806148e7575f5ffd5b5080518252602090810151908201529392505050565b614905614cc2565b61490d614cc2565b6040518451815260208501516020820152835160408201526020840151606082015260408160808360065afa806148e7575f5ffd5b5f82826028811115614956576149566152e4565b6029811061496657614966615031565b60200201519392505050565b604051806103e001604052805f81526020015f81526020015f8152602001614998614cc2565b81526020016149a5614cc2565b81526020016149b2614cc2565b81526020016149bf614cc2565b81526020016149cc614cc2565b81526020016149d9614cc2565b81526020016149e6614cc2565b81526020016149f3614cc2565b8152602001614a00614cc2565b8152602001614a0d614cc2565b8152602001614a1a614cc2565b8152602001614a27614cc2565b8152602001614a34614cc2565b8152602001614a41614cc2565b8152602001614a4e614cc2565b8152602001614a5b614cc2565b8152602001614a68614cc2565b8152602001614a75614cc2565b8152602001614a82614cc2565b8152602001614a8f614cc2565b8152602001614a9c614cc2565b8152602001614aa9614cc2565b8152602001614ab6614cc2565b8152602001614ac3614cc2565b8152602001614ad0614cc2565b8152602001614add614cc2565b8152602001614aea614cc2565b8152602001614af7614cc2565b905290565b604051806101e00160405280614b10614e3d565b8152602001614b1d614cc2565b8152602001614b2a614cc2565b8152602001614b37614cc2565b8152602001614b44614cc2565b8152602001614b51614cc2565b8152602001614b5e614cc2565b8152602001614b6b614cc2565b8152602001614b78614cc2565b8152602001614b85614e5c565b8152602001614b92614e8a565b8152602001614b9f614ea9565b8152602001614add614d47565b604051806101000160405280614bc0614cda565b8152602001614bcd614d0a565b8152602001614bda614d47565b8152602001614be7614d47565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f8152602001614c43614ed7565b8152602001614c50614ed7565b81526020015f81526020015f81526020015f81526020015f8152602001614af7614d47565b6040518061084001604052806042906020820280368337509192915050565b6040518061084001604052806042905b614cac614cc2565b815260200190600190039081614ca45790505090565b60405180604001604052805f81526020015f81525090565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604051806103600160405280601b906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806105400160405280602a906020820280368337509192915050565b604051806106e001604052806037906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b6040518061020001604052806010906020820280368337509192915050565b604051806103800160405280601c905b614e74614e00565b815260200190600190039081614e6c5790505090565b6040518061052001604052806029906020820280368337509192915050565b604051806103600160405280601b905b614ec1614cc2565b815260200190600190039081614eb95790505090565b60405180608001604052806004906020820280368337509192915050565b5f5f5f5f60408587031215614f08575f5ffd5b84356001600160401b03811115614f1d575f5ffd5b8501601f81018713614f2d575f5ffd5b80356001600160401b03811115614f42575f5ffd5b876020828401011115614f53575f5ffd5b6020918201955093508501356001600160401b03811115614f72575f5ffd5b8501601f81018713614f82575f5ffd5b80356001600160401b03811115614f97575f5ffd5b8760208260051b8401011115614fab575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417611ffc57611ffc614fb9565b81810381811115611ffc57611ffc614fb9565b80820180821115611ffc57611ffc614fb9565b5f5f85851115615018575f5ffd5b83861115615024575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161505657615056614fb9565b5060010190565b80356020831015611ffc575f19602084900360031b1b1692915050565b634e487b7160e01b5f52601260045260245ffd5b5f8261509c5761509c61507a565b500690565b5f8183825b60058110156150c55781518352602092830192909101906001016150a6565b50505060a08201905092915050565b5f826150e2576150e261507a565b500490565b5f8183825b600981101561510b5781518352602092830192909101906001016150ec565b5050506101208201905092915050565b5f8183825b602a81101561513f578151835260209283019290910190600101615120565b5050506105408201905092915050565b5f8183825b6037811015615173578151835260209283019290910190600101615154565b5050506106e08201905092915050565b5f8183825b601d8110156151a7578151835260209283019290910190600101615188565b5050506103a08201905092915050565b5f8183825b60038110156151db5781518352602092830192909101906001016151bc565b50505060608201905092915050565b5f816151f8576151f8614fb9565b505f190190565b5f8183825b6008811015615223578151835260209283019290910190600101615204565b5050506101008201905092915050565b5f82518060208501845e5f920191825250919050565b5f60208284031215615259575f5ffd5b81518015158114611a00575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b828110156152a6578151845260209384019390910190600101615288565b509195945050505050565b5f8183825b60078110156152d55781518352602092830192909101906001016152b6565b50505060e08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001";
4
+ export declare const HonkVerifierBytecode = "0x610100604052348015610010575f5ffd5b506302000000608052601960a0527f29a869aa0d5b700fd05cbd274ef3872101fbda8d9aaaf7b9a93b84d957e4b64760c05260ae60e05260805160a05160c05160e05161533a61008d5f395f818160f3015261066901525f60d201525f818161077401528181610cda0152610d7801525f61060d015261533a5ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004614ef6565b610054565b604051901515815260200160405180910390f35b5f61006261017f6020614fce565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a6101dc565b90505f61009787876101f1565b9050601082604001516100aa9190614fe5565b84146100c95760405163fa06659360e01b815260040160405180910390fd5b5f6101178287877f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061054a565b90506101678686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050855185516060810151608090910151919350915060016105f7565b815160a001525f610178838361076c565b905080610198576040516313f8744360e31b815260040160405180910390fd5b5f6101a484868561086d565b9050806101c4576040516352ec174560e11b815260040160405180910390fd5b8180156101ce5750805b9a9950505050505050505050565b6101e4614973565b6101ec6110b2565b905090565b6101f9614afd565b5f805b601081101561025b57610228858386610216602083614ff8565b926102239392919061500b565b6119ee565b8351826010811061023b5761023b615032565b6020020181815250506020826102519190614ff8565b91506001016101fc565b5061027f84828561026d604083614ff8565b9261027a9392919061500b565b611a08565b602083015261028f604082614ff8565b90506102a284828561026d604083614ff8565b6040808401919091526102b59082614ff8565b90506102c884828561026d604083614ff8565b60608301526102d8604082614ff8565b90506102eb84828561026d604083614ff8565b60c08301526102fb604082614ff8565b905061030e84828561026d604083614ff8565b60e083015261031e604082614ff8565b905061033184828561026d604083614ff8565b6080830152610341604082614ff8565b905061035484828561026d604083614ff8565b610100830152610365604082614ff8565b905061037884828561026d604083614ff8565b60a0830152610388604082614ff8565b90505f5b601c811015610407575f5b60088110156103fe576103b1868487610216602083614ff8565b84610120015183601c81106103c8576103c8615032565b602002015182600881106103de576103de615032565b6020020181815250506020836103f49190614ff8565b9250600101610397565b5060010161038c565b505f5b602981101561045b57610424858386610216602083614ff8565b836101400151826029811061043b5761043b615032565b6020020181815250506020826104519190614ff8565b915060010161040a565b505f5b61046a6001601c614fe5565b8110156104b35761048285838661026d604083614ff8565b83610160015182601b811061049957610499615032565b60200201526104a9604083614ff8565b915060010161045e565b505f5b601c811015610507576104d0858386610216602083614ff8565b83610180015182601c81106104e7576104e7615032565b6020020181815250506020826104fd9190614ff8565b91506001016104b6565b5061051984828561026d604083614ff8565b6101a083015261052a604082614ff8565b905061053d84828561026d604083614ff8565b6101c08301525092915050565b610552614bad565b5f610561878787878786611a8a565b90835290506105708188611ade565b6020840191909152905061058381611c8b565b604084019190915290506105978782611cec565b606084019190915290506105ab8782611dc0565b608084019190915290506105bf8782611e4b565b60a084019190915290506105d38782611f21565b60c084019190915290506105e78782611f93565b5060e08301525095945050505050565b5f600180826106408661063b896106366106318a7f0000000000000000000000000000000000000000000000000000000000000000614ff8565b611fd0565b611fe8565b612003565b90505f61065e876106598a6106366106318b6001614ff8565b61201c565b90505f5b61068d60107f0000000000000000000000000000000000000000000000000000000000000000614fe5565b8110156106fa575f6106b78c83815181106106aa576106aa615032565b6020026020010151612044565b90506106c7866106368684612003565b95506106d7856106368584612003565b94506106e3848b612003565b93506106ef838b61201c565b925050600101610662565b505f5b6010811015610761575f8a826010811061071957610719615032565b6020020151905061072e866106368684612003565b955061073e856106368584612003565b945061074a848b612003565b9350610756838b61201c565b9250506001016106fd565b506101ce8484612059565b5f806001815b7f0000000000000000000000000000000000000000000000000000000000000000811015610843575f86610120015182601c81106107b2576107b2615032565b602002015190505f6107c48286612067565b9050806107e4576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106107fb576107fb615032565b6020020151905061080c8382612084565b9550610833886040015185601c811061082757610827615032565b60200201518683612233565b9450505050806001019050610772565b505f61085d866101400151865f015187602001518561225e565b90508281145b9695505050505050565b5f610876614c06565b5f6108848460a001516122d7565b905061088e614c76565b610896614c95565b60e08601516108b5906108b090855f5b602002015161201c565b61233c565b61012085015260e08601516108d5906108b090855f5b6020020151612003565b610140850181905261012085015160c08801516108f69261063b9190611fe8565b845260a08601516109269061090a9061233c565b6106368661012001516106598a60c00151896101400151611fe8565b602085015260018083526101a0890151825260a08501525f60c0850152835161094e906123a5565b60408501526020840151610961906123a5565b606085015260015b60248111610a065761098385604001518660a00151611fe8565b83826042811061099557610995615032565b602002015260c08501516101408a01516109d8919061063b906109b9600186614fe5565b602981106109c9576109c9615032565b60200201518860a00151611fe8565b60c086015260a085015160808801516109f19190611fe8565b60a08601526109ff81615046565b9050610969565b505f5b6005811015610acd575f610a1e601d83614ff8565b90505f610a2c602484614ff8565b9050610a5a858360428110610a4357610a43615032565b602002015161063b89606001518a60a00151611fe8565b858360428110610a6c57610a6c615032565b602002015260c08701516101408c0151610aa5919061063b908460298110610a9657610a96615032565b60200201518a60a00151611fe8565b60c088015260a087015160808a0151610abe9190611fe8565b60a08801525050600101610a09565b50606087015181600160200201526080870151816002602002015260a0870151816003602002015260c0870151816004602002015260e0870151816005602002015261010087015181600660200201526101208701518160076020020152610140870151816008602002015261016087015181600960200201526101c087015181600a602002015261018087015181600b60200201526101a087015181600c60200201526101e087015181600d602002015261020087015181600e602002015261022087015181600f60200201526102408701518160106020020152610260870151816011602002015261028087015181601260200201526102a087015181601360200201526102c087015181601460200201526102e08701518160156020020152610300870151816016602002015261032087015181601760200201526103408701518160186020020152610360870151816019602002015261038087015181601a60200201526103a087015181601b60200201526103c087015181601c6020020181905250876020015181601d60428110610c6c57610c6c615032565b602002015260408801516103c08201526060808901516103e0830152608089015161040083015260a089015161042083015261010089015161044083015260c0808a015161046084015260e08a015161048084015290870151908501516101808a01515f92610cfe929091877f00000000000000000000000000000000000000000000000000000000000000006123b7565b8051610120870151919250610d1291611fe8565b608086018190526101808a01515160c0890151610d43929161063b91610d389190611fe8565b886101400151611fe8565b608086015260c0870151610d56906124d2565b60a08601525f5b610d696001601c614fe5565b811015610f68575f610d9c60017f0000000000000000000000000000000000000000000000000000000000000000614fe5565b821015905080610f1657610dcf6108b08a60e0015188856001610dbf9190614ff8565b601c81106108a6576108a6615032565b61012088015260e0890151610dfe906108b09088610dee866001614ff8565b601c81106108cb576108cb615032565b61014088015260a0870151610120880151610e199190611fe8565b61016088015260a087015160c08a0151610e3691610d3891611fe8565b6101808801819052610e5990610e4b906123a5565b61063b8961016001516123a5565b8583610e6760246001614ff8565b610e719190614ff8565b60428110610e8157610e81615032565b602002015261018080880151908c01515f91610ebc91610ea2866001614ff8565b601c8110610eb257610eb2615032565b6020020151611fe8565b9050610ed98161063b8a610160015187876001610ea29190614ff8565b9050610ee9886080015182612003565b608089015260a088015160c08b0151610f0f91610f0591611fe8565b8b60c00151611fe8565b60a0890152505b8a610160015182601b8110610f2d57610f2d615032565b60200201518483610f4060246001614ff8565b610f4a9190614ff8565b60428110610f5a57610f5a615032565b602002015250600101610d5d565b5060408051808201909152600181526002602082015282610f8b601c6024614ff8565b60428110610f9b57610f9b615032565b6020020152608085015183610fb2601c6024614ff8565b60428110610fc257610fc2615032565b60200201526101c08901518083610fdb601c6024614ff8565b610fe6906001614ff8565b60428110610ff657610ff6615032565b602002015260e08801518461100d601c6024614ff8565b611018906001614ff8565b6042811061102857611028615032565b60200201525f61103884866124dd565b90505f611044836125d5565b90505f6110558d5f0151848461261b565b90505f5f6110658f5f0151612691565b9150915061107282612752565b61107b81612752565b6110868583856127f5565b94506110938482856127f5565b935061109f858561281b565b9f9e505050505050505050505050505050565b6110ba614973565b50604080516103e08101825263020000008152601960208083019190915260ae82840152825180840184527f0b3f62f3f6c5017aaa9519628a6777574dd3a3e8b9be8bafacb59241a31f6ef281527f22c46708330e68d40d6d75e76ddc6ad8e8dbbe645c8dbe3aeae9fc0b6ff2f564818301526060830152825180840184527f0aaec5b2db0e153f9229fad5ca8943dd084073d3548e8be6aa14692ae749706781527f1e184ad18815a3488da231da8e9573e2571acaf99f8dda266410111c854a6f54818301526080830152825180840184527f2ff668a3ae5fab26b260df724051d04c4ad5e3f0ed1b5c93cbbc04a4e704ad1281527f20ac8bf24cb672460e6449f5846e8a09f0b676b75199528ca438884805ac71078183015260a0830152825180840184527f0cb05f99b8cb78fd23c33ff6c79984b31c772f76386919b0af2d6d7f31b410a981527f0e7406cbe98170f4594bb8934ec65f4e5f05973c42ad2899bc30a8f0333d78468183015260c0830152825180840184527f0aa8ea6587c72f82bf25657d3030894240bb5ba04aa098d3344032132d915d2181527f2d9e98215851da82124e19cf6a82df47d60f9a7d4cbb1df6fd5ebd01f6f8e84f8183015260e0830152825180840184527f124f505289bc6e10b47ff3e6c287e8045fcff3b5b497ad155ab6d7f59a556a3e81527f102bc4f353cfbc4b8f1ebf2b0d919f8ecba427ed17d9d8fde2fc124605d3da1781830152610100830152825180840184527f107d2d79c20982125b9f302008ecbd7b7f25eebc71271311c28f58223170c78b81527f0f3c9104533084fca88d92d900c94cb1400899b1c3c2b40cf32807f7d8517f4781830152610120830152825180840184527f111d52582cbe399e100bfa8fa0062f03c3e44bb5818a0ce0df5a501b1053eca981527f239d1511ac29c5868cdc6cc505d7590797e329a0bec8953231d6d118b06ccf7881830152610140830152825180840184527f0dbe912213504e8e618ac46ec344fbcd2079cd644fb700e474d5ad1d3f9e59ef81527f2f2d778251e4230b60ba35a27c9987703c18a7a0827a4fe4bf61f7715b7142d081830152610160830152825180840184527f1bd4812cc18da46c90c0df7ad2ab3625b348777c74d7cfd2ef3a57904bcf450681527f272e0c95dd04534f4f3b2d97cc139d34fc52369563762cee3bcdfd6ea563576981830152610180830152825180840184527f06847e9961de658bab8d67964b8534382c071bcc38da7ded353f3121f32c9cb681527f16a3670522efe93a626a255eccded79df2b584888dd1302d296488fb97f4938b818301526101a0830152825180840184527f27861a4ccb7471b7348a0cbef681587c321fa41b0c6fde3be5bcfc9fd2585df381527f23df46cc92442f2c32e40a6f23cd103c0bcc5c179d1f0f14ccf22ca9b3a7bdec818301526101c0830152825180840184527f2bc6b8f00645f278d5b882f10c4e55fec4fe551aba9a16aa18b0adcc411c50b481527f0472a2c4a32ca081e99533a3d5dddadc10ee5afbee55fccd428a0804ec1a5393818301526101e0830152825180840184527f1410954ae3a1cc739e89fc51cd79433baae6beb6d3fc32a967e5badaa7be59e181527f20a4c789c9f4899bf1ff5f1d2631843e9f9d3f72f500287464bf3df695d4ab1781830152610200830152825180840184527f1793aedf20837e05960820648c16fe83c885a784e034097e715d15c79f148ecd81527f0c085a4322cc34b3a1ac59005b8466cca12413b5c55e07019d9b8dac51cd0f8b81830152610220830152825180840184527f2188ce4b9fc323bb305161bb779328a9560e026c88fd18001b0fc0b49b80217f81527f1b35bb7b082d8d84edc9e09b447269b7b8cea44baebfe177766bf2d03ecb21bc81830152610240830152825180840184527f0e67d3510f35239605dbd18fe89f19dc101c86eda733d46879f5c2103d97f7b481527f1c1aa2036f66fdfc840113a884977ecbcd87f0e28c20ea750323154c8c60b7fc81830152610260830152825180840184527f2dd95865a052c6ebf85f2448c1bfcab1efff71c3fc01d075cdffad3af06b588881527f01ea8f1598cfb4fa94cc8454b2c47fd4a155d2bd62bb9c966b849ef261dc522b81830152610280830152825180840184527f066bda395062463af4dac356f75000fbd403f06460b7740197bc0a9318810bb381527f2f90eda7cd64e477e97b2ab955b47183102177d0bce8802a5fee4a053999bce5818301526102a0830152825180840184527f0d4ec539f36413f18aa5e32633894dcfe0e50ae61de5f5893cf6f4bf83470bc981527f04139a6e9810bc93e75dfd69fd766d164c4eb4329b01c4313b5538c9222070ff818301526102c0830152825180840184527f22e8257f0c17086a1c190c6605372e3bdf31a0f01b98892245deb418028a088f81527f0fd2a6b33fdfab8bf5959276d1eaa4d44ba84b4223ca4bc9cb25ae9f92695c3c818301526102e0830152825180840184527f239f5f650c143b063ad1fa7f32bc32261265a04eaca5d02b1641ec3c7a3251ef81527f01dab24d41be2806d498e21913e1947f9a81aa9b795278c0afbbcf6779eaa43081830152610300830152825180840184527f275a0bb22f8c37a3476d71c556d266909fdde001df48d48a78940343ccb0b48a81527f2a4cc2119d1bd729845e8630c5b1aec652a2f2a7ae690c52238e3eafd44b385681830152610320830152825180840184527f1e1d6ac562a951aa01bc279a090d34488936a6404b3c75294fd260df0d36689381527f1643515b25c47e776b6d99eb3ce8b4613b209886681842e5c39ee92efe72c27281830152610340830152825180840184527f20db30b046148206e1ce5d50fe2559d2e60dbe3472bb605600c6e01d0965df8281527f0d5d5be706d7b3b8a7d3d02043ef0e324676187770f682c791ce1cd3deadc05881830152610360830152825180840184527f1f59b85de9212665c6c3e59fb35ab6609d72f5ad8007449dc8019a5886fad88f81527f21c9b787b5e0109e8ab3c2293b8c67fa9ec871818722fb8bea77aa6477aaae4c8183015261038083015282518084018452600181526002818301526103a083015282518084019093527f033c9a82d0df9b87d2c963f9950073c025e4b62dd83133c92da4fdff5c8cfc2a83527f0d757acf0a4de6b20e939b75bb83b07334d0a4bd6f13d63d2299fc08dfdab7af908301526103c081019190915290565b5f611a016119fc838561505e565b612044565b9392505050565b611a10614cc3565b60408051808201909152805f5160206152fa5f395f51905f52611a3660205f878961500b565b611a3f9161505e565b611a49919061508f565b81526020908101905f5160206152fa5f395f51905f5290611a6e90604090878961500b565b611a779161505e565b611a81919061508f565b90529392505050565b611a92614cdb565b5f611aa08888888888612a0f565b604086019190915260208501919091529083529250611abf8389612d0c565b6080850191909152606084019190915291989197509095505050505050565b611ae6614d0b565b5f611aef614d2a565b8481526101008401805151602080840191909152905181015160408084019190915260a08601805151606085015251820151608084015251611b5291611b37918491016150a2565b60405160208183030381529060405280519060200120612044565b9150611b5d82612d93565b6020850152835260015b6002611b756001601c614fe5565b611b7f91906150d5565b811015611bff57611b9c83604051602001611b3791815260200190565b9250611ba783612d93565b85611bb3846002614fce565b601b8110611bc357611bc3615032565b6020020186611bd3856002614fce565b611bde906001614ff8565b601b8110611bee57611bee615032565b602002019190915252600101611b67565b50611c0c6001601c614fe5565b6001166001148015611c2957506002611c276001601c614fe5565b115b15611c8357611c4482604051602001611b3791815260200190565b91505f611c5083612d93565b856001611c5e81601c614fe5565b611c689190614fe5565b601b8110611c7857611c78615032565b602002019190915250505b509250929050565b611c93614d48565b5f805b601c811015611ce557611cb584604051602001611b3791815260200190565b93505f611cc185612d93565b8584601c8110611cd357611cd3615032565b60200201919091525050600101611c96565b5090929050565b611cf4614d48565b5f805b601c811015611db757611d08614d67565b8481525f5b6008811015611d715786610120015183601c8110611d2d57611d2d615032565b60200201518160088110611d4357611d43615032565b602002015182611d54836001614ff8565b60098110611d6457611d64615032565b6020020152600101611d0d565b50611d8681604051602001611b3791906150e8565b94505f611d9286612d93565b8685601c8110611da457611da4615032565b6020020191909152505050600101611cf7565b50909391925050565b5f5f611dca614d86565b8381525f5b6029811015611e1d578561014001518160298110611def57611def615032565b602002015182611e00836001614ff8565b602a8110611e1057611e10615032565b6020020152600101611dcf565b50611e3281604051602001611b37919061511c565b91505f611e3e83612d93565b5096929550919350505050565b5f5f611e55614da5565b8381525f5b611e666001601c614fe5565b811015611f0c5785610160015181601b8110611e8457611e84615032565b60200201515182611e96836002614fce565b611ea1906001614ff8565b60378110611eb157611eb1615032565b602002015261016086015181601b8110611ecd57611ecd615032565b60200201516020015182826002611ee49190614fce565b611eef906002614ff8565b60378110611eff57611eff615032565b6020020152600101611e5a565b50611e3281604051602001611b379190615150565b5f5f611f2b614dc4565b8381525f5b601c811015611f7e5785610180015181601c8110611f5057611f50615032565b602002015182611f61836001614ff8565b601d8110611f7157611f71615032565b6020020152600101611f30565b50611e3281604051602001611b379190615184565b5f5f611f9d614de3565b8381526101a08501805151602080840191909152905181015160408084019190915251611e3291611b37918491016151b8565b5f5f51602061531a5f395f51905f52825b0692915050565b5f5f51602061531a5f395f51905f5282840990505b92915050565b5f5f51602061531a5f395f51905f528284089392505050565b5f5f51602061531a5f395f51905f52825f51602061531a5f395f51905f520384089392505050565b5f5f51602061531a5f395f51905f5282611fe1565b5f611a01836106368461233c565b81515f908190612079908560016108cb565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b600881101561216b5761216182610636878461201c565b915060010161214a565b50612174614e01565b5f5b60088110156121d5575f84826008811061219257612192615032565b602002015190506121a781610636898561201c565b90506121b28161233c565b9050808383600881106121c7576121c7615032565b602002015250600101612176565b505f5b6008811015612228575f8782600881106121f4576121f4615032565b6020020151905061221181848460088110610eb257610eb2615032565b905061221d8682612003565b9550506001016121d8565b506108638483611fe8565b5f5f612249600161063b8561063689600161201c565b90506122558482611fe8565b95945050505050565b5f612267614d48565b612272868285612dc3565b61227e86868386612f6f565b61228a8686838661315b565b612295868285613386565b6122a086828561357a565b6122ac868683866138c3565b6122b7868285613d76565b6122c2868285614188565b6122cd868285614549565b6108638185614849565b6122df614d48565b81815260015b601c81101561233657612317826122fd600184614fe5565b601c811061230d5761230d615032565b60200201516124d2565b8282601c811061232957612329615032565b60200201526001016122e5565b50919050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f51602061531a5f395f51905f520360808201525f51602061531a5f395f51905f5260a082015260205f60c08360055afa90508061239a575f5ffd5b50505f519392505050565b5f51602061531a5f395f51905f520390565b6123bf614d48565b601c5b80156124c8575f846123d5600184614fe5565b601c81106123e5576123e5615032565b602002015190505f886123f9600185614fe5565b601c811061240957612409615032565b602002015190505f612464612428612421858c611fe8565b6002611fe8565b6106598a612437600189614fe5565b601c811061244757612447615032565b602002015161063661245e8861063660018a61201c565b8761201c565b9050612485816106366108b061247f8761063660018961201c565b86612003565b90508584116124b457975087808561249e600187614fe5565b601c81106124ae576124ae615032565b60200201525b505050806124c1906151eb565b90506123c2565b5095945050505050565b5f611ffd8283611fe8565b6124e5614cc3565b5f6124f2601c6024614ff8565b6124fd906002614ff8565b90505f5b818110156125305761252885826042811061251e5761251e615032565b6020020151612752565b600101612501565b506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b838110156125bd5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612564565b50805184526020810151602085015250505092915050565b6125dd614cc3565b5f5160206152fa5f395f51905f5282602001515f5160206152fa5f395f51905f526126089190614fe5565b612612919061508f565b60208301525090565b5f5f5f61262786612691565b91509150612633614e01565b82518152602080840151818301528251604080840191909152838201516060840152875160808401528782015160a0840152865160c08401528682015160e08401525161268691611b3791849101615200565b979650505050505050565b612699614cc3565b6126a1614cc3565b82516020808501516040860151606087015160cc90811b608892831b604494851b90961795909517949094178652608087015160a088015160c089015160e08a0151871b90841b91851b9092171717868401526101008701516101208801516101408901516101608a0151871b90841b91851b909217171785526101808701516101a08801516101c08901516101e09099015190951b9790911b9390911b1791909117939093179281019290925291565b805160208201515f5f5160206152fa5f395f51905f528380095f5160206152fa5f395f51905f5260035f5160206152fa5f395f51905f52838709085f5160206152fa5f395f51905f5284850914915050806127ef5760405162461bcd60e51b8152602060048201526019602482015278706f696e74206973206e6f74206f6e2074686520637572766560381b604482015260640160405180910390fd5b50505050565b6127fd614cc3565b612805614cc3565b61280f83866148ae565b905061225581856148fe565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516129b19190615234565b5f60405180830381855afa9150503d805f81146129e9576040519150601f19603f3d011682016040523d82523d5f602084013e6129ee565b606091505b5091509150818015610863575080806020019051810190610863919061524a565b5f80808080612a1f866001614ff8565b612a2a906006614ff8565b6001600160401b03811115612a4157612a41615269565b604051908082528060200260200182016040528015612a6a578160200160208202803683370190505b509050865f1b815f81518110612a8257612a82615032565b60209081029190910101525f5b612a9a601088614fe5565b811015612aeb57898982818110612ab357612ab3615032565b9050602002013582826001612ac89190614ff8565b81518110612ad857612ad8615032565b6020908102919091010152600101612a8f565b505f5b6010811015612b5c578a51612b16908260108110612b0e57612b0e615032565b602002015190565b82826010612b258b6001614ff8565b612b2f9190614fe5565b612b399190614ff8565b81518110612b4957612b49615032565b6020908102919091010152600101612aee565b5060208a01515181612b6f886001614ff8565b81518110612b7f57612b7f615032565b6020908102919091018101919091528a810151015181612ba0886001614ff8565b612bab906001614ff8565b81518110612bbb57612bbb615032565b602090810291909101015260408a01515181612bd8886001614ff8565b612be3906002614ff8565b81518110612bf357612bf3615032565b60209081029190910181019190915260408b0151015181612c15886001614ff8565b612c20906003614ff8565b81518110612c3057612c30615032565b602090810291909101015260608a01515181612c4d886001614ff8565b612c58906004614ff8565b81518110612c6857612c68615032565b60209081029190910181019190915260608b0151015181612c8a886001614ff8565b612c95906005614ff8565b81518110612ca557612ca5615032565b602002602001018181525050612cc581604051602001611b37919061527d565b9150612cd082612d93565b6040805160208101869052929750909550612ceb9101611b37565b91505f612cf783612d93565b50959b949a5094985090965091945050505050565b5f5f5f612d17614e20565b85815260c0858101805151602080850191909152905181015160408085019190915260e08801805151606086015251820151608080860191909152880180515160a086015251820151928401929092529051612d7991611b37918491016152b2565b9150612d8482612d93565b90979096509194509092505050565b5f80826001600160801b038116608082901c612dae82612044565b9450612db981612044565b9350505050915091565b5f612dcf846007614943565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612e30612e2a612e0485600361201c565b610636612e1f612e148b5f614943565b6106368c601d614943565b6106368b601c614943565b83611fe8565b9050612eb1612ea6612e8d612e74612e5b8561063b612e508d6002614943565b6106368e601c614943565b61063b612e698c6003614943565b6106368d601d614943565b61063b612e828b6004614943565b6106368c601e614943565b61063b612e9b8a6005614943565b6106368b601f614943565b61063b886001614943565b9050612ed08161063b612ec586600161201c565b6106368a6027614943565b9050612edc8184611fe8565b9050612ee88185611fe8565b8552505f9050612f22612f18612f0d612f0288601c614943565b61063b89601f614943565b610659886024614943565b61063b875f614943565b9050612f338161063684600261201c565b9050612f448161063684600161201c565b9050612f508183611fe8565b9050612f5c8184611fe8565b9050808460015b60200201525050505050565b5f5f5f612fa5612f9b612f8389601c614943565b61063b612f918b6012614943565b8a60600151611fe8565b8760800151612003565b9050612fde81610636612fd4612fbc8b601d614943565b61063b612fca8d6013614943565b8c60600151611fe8565b8960800151612003565b905061300381610636612fd4612ff58b601e614943565b61063b612fca8d6014614943565b905061302881610636612fd461301a8b601f614943565b61063b612fca8d6015614943565b92505f905061304c612f9b61303e89601c614943565b61063b612f918b600e614943565b905061307181610636612fd46130638b601d614943565b61063b612fca8d600f614943565b905061309681610636612fd46130888b601e614943565b61063b612fca8d6010614943565b90506130bb81610636612fd46130ad8b601f614943565b61063b612fca8d6011614943565b91505f90506130e26130dc6130d1896020614943565b61063b8a601a614943565b84611fe8565b9050613117816106596131116130f98b6028614943565b61063b6131078d601b614943565b8c60a00151611fe8565b85611fe8565b90506131238185611fe8565b6040860152505f61314661311161313b89601b614943565b6106368a6028614943565b9050808560035b602002015250505050505050565b5f5f6131b96131a1613189613174612fd48a6016614943565b61063b6131828b6017614943565b8a51611fe8565b61063b6131978a6018614943565b8960200151611fe8565b61063b6131af896019614943565b8860400151611fe8565b91505f6131f06131d76131cd89601c614943565b8860800151612003565b61063b6131e58a6003614943565b6106368b6024614943565b90505f61321961320189601d614943565b61063b61320e8b5f614943565b6106368c6025614943565b90505f61324361322a8a601e614943565b61063b6132388c6001614943565b6106368d6026614943565b905061328261326a61325c8561063b868d5f0151611fe8565b61063b848c60200151611fe8565b61063b6132788c6004614943565b8b60400151611fe8565b93505050505f6132966130dc886021614943565b90505f6132a76130dc896021614943565b90505f6132df6132c66132bb8b6023614943565b61063b8c6006614943565b6106596132d48c6023614943565b6106368d6006614943565b90505f6133036132fd6132f28789611fe8565b6106368d6021614943565b8361201c565b905061330f8188611fe8565b90505f6133376133296133238d6006614943565b87611fe8565b6106596133238e6022614943565b90505f6133458c6023614943565b90505f6133556132fd8384611fe8565b60808c0185905260a08c01849052905061336f818b611fe8565b8b6006602002015250505050505050505050505050565b5f6133925f600161201c565b90505f6133a05f600261201c565b90505f6133ae5f600361201c565b90505f6133ca6133bf88601d614943565b61065989601c614943565b90505f6133e66133db89601e614943565b6106598a601d614943565b90505f6134026133f78a601f614943565b6106598b601e614943565b90505f61341e6134138b6024614943565b6106598c601f614943565b90508361342f81610636818b612003565b905061343f81610636878a612003565b905061344f816106368789612003565b9050613460816106368d6008614943565b905061346c818a611fe8565b60e08b0152508261348181610636818b612003565b905061349181610636868a612003565b90506134a1816106368689612003565b90506134b2816106368d6008614943565b90506134be818a611fe8565b6101008b015250816134d481610636818b612003565b90506134e481610636858a612003565b90506134f4816106368589612003565b9050613505816106368d6008614943565b9050613511818a611fe8565b6101208b0152508061352781610636818b612003565b905061353781610636848a612003565b9050613547816106368489612003565b9050613558816106368d6008614943565b9050613564818a611fe8565b610140909a019990995250505050505050505050565b6135b36040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6135be84601d614943565b81526135cb84601e614943565b60208201526135db846024614943565b60408201526135eb846027614943565b60608201526135fb846026614943565b608082015261360b846025614943565b60a08201525f61361c856002614943565b90505f613629865f614943565b90505f61363d8460400151855f015161201c565b90505f61365285602001518660200151611fe8565b606086015190915086905f906136689080611fe8565b90505f61368661368089602001518a60600151611fe8565b88611fe8565b90505f6136a561369e8a60a001518b60400151612003565b8a51612003565b90506136b46133238288611fe8565b90506136db6136d56136cf6136c9848761201c565b8861201c565b84612003565b83612003565b90506137036136f86136ed8387611fe8565b6106368f6009614943565b61063660018a61201c565b6101608c015250505050602085015160808601515f9161372291612003565b90505f613740613736886060015188611fe8565b886020015161201c565b90505f6137646137508487611fe8565b61063b6131118b60a001518c5f015161201c565b905061378c613781613776838c611fe8565b6106368e6009614943565b61063660018961201c565b6101808b0152505f91506137ad90506137a6836011612003565b8751611fe8565b90505f6137ba8384612003565b90506137c68182612003565b90505f6137d4836009611fe8565b90506137fd6137f76130dc6137f08b60a001518c5f0151612003565b8b51612003565b8261201c565b60c089018190525f9061381890613680906136ed908d611fe8565b905061382b8b600b602002015182612003565b6101608c0152505086515f925061385291506137a69061384b9080612003565b8851612003565b90505f61389261386d836106368a5f01518b60a0015161201c565b6020890151610659906138809080612003565b6106368b602001518c60800151612003565b90506138af89600c602002015161063b6136806136ed858d611fe8565b89600c602002015250505050505050505050565b61392d604051806101e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61394561393b86601e614943565b8560400151611fe8565b8082526139649061063b61395a88601d614943565b8760200151611fe8565b8082526139799061063b6137a688601c614943565b80825261398b9061063b876001614943565b808252602082018190526139a49061065987601f614943565b81526139bf6139b4866024614943565b61065987601c614943565b60808201526139dd6139d2866027614943565b61065987601f614943565b606082015260808101516139ff906139f59080611fe8565b826080015161201c565b6101c08201526080810151613a3f90613a3590613a2e9061063660015f51602061531a5f395f51905f52614fe5565b6001612003565b8260600151611fe8565b60a08201819052613a7590613a6790610636613a5c896002614943565b6106368a6003614943565b61063661311188600a614943565b83600e60200201526101c0810151613a9990613a6790610636613a5c896002614943565b6101e08401528051613abe90610636613ab3886002614943565b610636896003614943565b6101208201525f613add613ad387601f614943565b836020015161201c565b9050613aec6137f78283611fe8565b60e0830152613b09613aff876026614943565b8660400151611fe8565b60408301819052613b2c9061063b613b22896025614943565b8860200151611fe8565b60408301819052613b4c9061063b613b45896024614943565b8851611fe8565b6040830152613b69613b5f876027614943565b836040015161201c565b60408301525f613b88613b7d886026614943565b61065989601e614943565b9050613bda613bb5612e2a613a2e866080015160015f51602061531a5f395f51905f526106369190614fe5565b610636613a2e866040015160015f51602061531a5f395f51905f526106369190614fe5565b60c08401526040830151613bfc90613bf29080611fe8565b846040015161201c565b61010084015260c0830151613c2890613c1a906106368a6004614943565b6106366133238a600a614943565b6102008601526101c0830151613c4790613c1a906106368a6004614943565b610220860152610100830151613c6690613c1a906106368a6004614943565b61024086015260e0830151613c8090610636896004614943565b610140840152613c9f613c94886025614943565b61065989601d614943565b6101608401526080830151613cdd90613b7d90613cd290613a2e9061063660015f51602061531a5f395f51905f52614fe5565b856101600151611fe8565b61018084018190526101208401516101a08501819052613d149161063b90610636613d098c6005614943565b6106368d6002614943565b6101a084018190528351613d34919061063b90610636613d098c5f614943565b6101a08401819052610140840151613d4c9190612003565b6101a08401819052613d66906106366133238a600a614943565b6101a0840181905285600d61314d565b613daf6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613de4613dcb613dc086601c614943565b610636876025614943565b61063b613dd9876024614943565b61063688601d614943565b8152613e29613e1e613e05613dfa87601c614943565b61063688601f614943565b61063b613e1388601d614943565b61063689601e614943565b610659866026614943565b60408201819052613e3e90600160441b611fe8565b60408201819052613e5490610659866027614943565b604082018190528151613e679190612003565b60408201819052613e7d90610636866005614943565b60408201528051613e9290600160441b611fe8565b808252613eb29061063b613ea7876024614943565b610636886025614943565b80825260208201819052613ed990610659613ece87601e614943565b61063b88601f614943565b60208201819052613eef90610636866004614943565b6020820152805160608201819052613f0c9061063b86601f614943565b60608201819052613f3090610659613f25876026614943565b61063b886027614943565b60608201819052613f4590610636865f614943565b8160600181815250505f613f6e613f6483602001518460400151612003565b8360600151612003565b9050613f7f81610636876003614943565b9050613f97613f8f866025614943565b614000611fe8565b60808301819052613fad9061063b876024614943565b60808301819052613fc090614000611fe8565b60808301819052613fd69061063b87601e614943565b60808301819052613fe990614000611fe8565b60808301819052613fff9061063b87601d614943565b6080830181905261401290614000611fe8565b608083018190526140289061063b87601c614943565b6080830181905261403e9061065987601f614943565b6080830181905261405490610636876005614943565b6080830152614067613f8f866026614943565b60a0830181905261407d9061063b876025614943565b60a0830181905261409090614000611fe8565b60a083018190526140a69061063b876024614943565b60a083018190526140b990614000611fe8565b60a083018190526140cf9061063b87601f614943565b60a083018190526140e290614000611fe8565b60a083018190526140f89061063b87601e614943565b60a0830181905261410e90610659876027614943565b60a0830181905261412390610636875f614943565b60a0830181905260808301515f9161413b9190612003565b905061414c81610636886004614943565b90506141588282612003565b60c084018190526141719061063661332389600b614943565b60c084018190528560136020020152505050505050565b6141fe6040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61421761420c85601c614943565b61063b866002614943565b815261423261422785601d614943565b61063b866003614943565b602082015261425061424585601e614943565b61063b866004614943565b604082015261426e61426385601f614943565b61063b866005614943565b606082015280516142a090614299906142929061428b9080611fe8565b8451611fe8565b8351611fe8565b8251611fe8565b608082015260208101516142de906142d4906142ca906142c09080611fe8565b8460200151611fe8565b8360200151611fe8565b8260200151611fe8565b60a0820152604081015161431c9061431290614308906142fe9080611fe8565b8460400151611fe8565b8360400151611fe8565b8260400151611fe8565b60c0820152606081015161435090613a35906143469061433c9080611fe8565b8460600151611fe8565b8360600151611fe8565b60e0820152608081015160a08201516143699190612003565b61010082015260c081015160e08201516143839190612003565b61012082015260a08101516143a79061439c9080612003565b826101200151612003565b61014082015260e08101516143cb906143c09080612003565b826101000151612003565b6101608201526101208101516143e19080612003565b6101e08201819052614402906143f79080612003565b826101600151612003565b6101e08201526101008101516144189080612003565b6101a082018190526144399061442e9080612003565b826101400151612003565b6101a0820181905261016082015161445091612003565b6101808201526101408101516101e082015161446c9190612003565b6101c0820152614480612e2a85600c614943565b61020082018190526102808401516101808301516144ab9261063b91610636906106598a6024614943565b83601460200201526144db836015602002015161063b836102000151610636856101a001516106598a6025614943565b836015602002015261450b836016602002015161063b836102000151610636856101c001516106598a6026614943565b836016602002015261453b836017602002015161063b836102000151610636856101e001516106598a6027614943565b836017602002015250505050565b61459b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60405180608001604052806145d07f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7611fd0565b81526020016145fe7f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b611fd0565b815260200161462b7e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15611fd0565b81526020016146597f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b611fd0565b9052905061467661466b86601c614943565b61063b876002614943565b61012083018190526146b5906146aa9061469f906146949080611fe8565b856101200151611fe8565b846101200151611fe8565b836101200151611fe8565b82526146c285601d614943565b60208301526146d285601e614943565b60408301526146e285601f614943565b60608301528151602083015161470a91613f64916147009190612003565b8460400151612003565b608083015261471d6130dc86600d614943565b610140830152815161473e9061473490835f610eb2565b8360800151612003565b60a083015261476a846018602002015161063b8461014001516106368660a001516106598b6024614943565b61030085015260208201516147859061473490836001610eb2565b60c08301526147b1846019602002015161063b8461014001516106368660c001516106598b6025614943565b61032085015260408201516147cc9061473490836002610eb2565b60e08301526147f884601a602002015161063b8461014001516106368660e001516106598b6026614943565b61034085015260608201516148139061473490836003610eb2565b61010083015261484184601b602002015161063b8461014001516106368661010001516106598b6027614943565b84601b612f63565b5f6148558184816108cb565b905060015b601c8110156148a75761489d8261063b8684601c811061487c5761487c615032565b60200201518661488d600187614fe5565b601b8110610eb257610eb2615032565b915060010161485a565b5092915050565b6148b6614cc3565b6148be614cc3565b604051835181526020840151602082015284604082015260408160608360075afa806148e8575f5ffd5b5080518252602090810151908201529392505050565b614906614cc3565b61490e614cc3565b6040518451815260208501516020820152835160408201526020840151606082015260408160808360065afa806148e8575f5ffd5b5f82826028811115614957576149576152e5565b6029811061496757614967615032565b60200201519392505050565b604051806103e001604052805f81526020015f81526020015f8152602001614999614cc3565b81526020016149a6614cc3565b81526020016149b3614cc3565b81526020016149c0614cc3565b81526020016149cd614cc3565b81526020016149da614cc3565b81526020016149e7614cc3565b81526020016149f4614cc3565b8152602001614a01614cc3565b8152602001614a0e614cc3565b8152602001614a1b614cc3565b8152602001614a28614cc3565b8152602001614a35614cc3565b8152602001614a42614cc3565b8152602001614a4f614cc3565b8152602001614a5c614cc3565b8152602001614a69614cc3565b8152602001614a76614cc3565b8152602001614a83614cc3565b8152602001614a90614cc3565b8152602001614a9d614cc3565b8152602001614aaa614cc3565b8152602001614ab7614cc3565b8152602001614ac4614cc3565b8152602001614ad1614cc3565b8152602001614ade614cc3565b8152602001614aeb614cc3565b8152602001614af8614cc3565b905290565b604051806101e00160405280614b11614e3e565b8152602001614b1e614cc3565b8152602001614b2b614cc3565b8152602001614b38614cc3565b8152602001614b45614cc3565b8152602001614b52614cc3565b8152602001614b5f614cc3565b8152602001614b6c614cc3565b8152602001614b79614cc3565b8152602001614b86614e5d565b8152602001614b93614e8b565b8152602001614ba0614eaa565b8152602001614ade614d48565b604051806101000160405280614bc1614cdb565b8152602001614bce614d0b565b8152602001614bdb614d48565b8152602001614be8614d48565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f8152602001614c44614ed8565b8152602001614c51614ed8565b81526020015f81526020015f81526020015f81526020015f8152602001614af8614d48565b6040518061084001604052806042906020820280368337509192915050565b6040518061084001604052806042905b614cad614cc3565b815260200190600190039081614ca55790505090565b60405180604001604052805f81526020015f81525090565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604051806103600160405280601b906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806105400160405280602a906020820280368337509192915050565b604051806106e001604052806037906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b6040518061020001604052806010906020820280368337509192915050565b604051806103800160405280601c905b614e75614e01565b815260200190600190039081614e6d5790505090565b6040518061052001604052806029906020820280368337509192915050565b604051806103600160405280601b905b614ec2614cc3565b815260200190600190039081614eba5790505090565b60405180608001604052806004906020820280368337509192915050565b5f5f5f5f60408587031215614f09575f5ffd5b84356001600160401b03811115614f1e575f5ffd5b8501601f81018713614f2e575f5ffd5b80356001600160401b03811115614f43575f5ffd5b876020828401011115614f54575f5ffd5b6020918201955093508501356001600160401b03811115614f73575f5ffd5b8501601f81018713614f83575f5ffd5b80356001600160401b03811115614f98575f5ffd5b8760208260051b8401011115614fac575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417611ffd57611ffd614fba565b81810381811115611ffd57611ffd614fba565b80820180821115611ffd57611ffd614fba565b5f5f85851115615019575f5ffd5b83861115615025575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161505757615057614fba565b5060010190565b80356020831015611ffd575f19602084900360031b1b1692915050565b634e487b7160e01b5f52601260045260245ffd5b5f8261509d5761509d61507b565b500690565b5f8183825b60058110156150c65781518352602092830192909101906001016150a7565b50505060a08201905092915050565b5f826150e3576150e361507b565b500490565b5f8183825b600981101561510c5781518352602092830192909101906001016150ed565b5050506101208201905092915050565b5f8183825b602a811015615140578151835260209283019290910190600101615121565b5050506105408201905092915050565b5f8183825b6037811015615174578151835260209283019290910190600101615155565b5050506106e08201905092915050565b5f8183825b601d8110156151a8578151835260209283019290910190600101615189565b5050506103a08201905092915050565b5f8183825b60038110156151dc5781518352602092830192909101906001016151bd565b50505060608201905092915050565b5f816151f9576151f9614fba565b505f190190565b5f8183825b6008811015615224578151835260209283019290910190600101615205565b5050506101008201905092915050565b5f82518060208501845e5f920191825250919050565b5f6020828403121561525a575f5ffd5b81518015158114611a01575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b828110156152a7578151845260209384019390910190600101615289565b509195945050505050565b5f8183825b60078110156152d65781518352602092830192909101906001016152b7565b50505060e08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001";
5
5
  /**
6
6
  * HonkVerifier link references.
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"HonkVerifierBytecode.d.ts","sourceRoot":"","sources":["../src/HonkVerifierBytecode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB,m5zCAAm5zC,CAAC;AACr7zC;;GAEG;AACH,eAAO,MAAM,0BAA0B,IAAc,CAAC"}
1
+ {"version":3,"file":"HonkVerifierBytecode.d.ts","sourceRoot":"","sources":["../src/HonkVerifierBytecode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB,q5zCAAq5zC,CAAC;AACv7zC;;GAEG;AACH,eAAO,MAAM,0BAA0B,IAAc,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * HonkVerifier bytecode.
3
- */ export const HonkVerifierBytecode = "0x610100604052348015610010575f5ffd5b506302000000608052601960a0527f218b5ba3dac6886daf9ab941ce3933dc2e473e2f3cbe77b8c3fa1b3a2bc75d3b60c05260ae60e05260805160a05160c05160e05161533961008d5f395f818160f3015261066901525f60d201525f818161077401528181610cda0152610d7801525f61060d01526153395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004614ef5565b610054565b604051901515815260200160405180910390f35b5f61006261017f6020614fcd565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a6101dc565b90505f61009787876101f1565b9050601082604001516100aa9190614fe4565b84146100c95760405163fa06659360e01b815260040160405180910390fd5b5f6101178287877f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061054a565b90506101678686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050855185516060810151608090910151919350915060016105f7565b815160a001525f610178838361076c565b905080610198576040516313f8744360e31b815260040160405180910390fd5b5f6101a484868561086d565b9050806101c4576040516352ec174560e11b815260040160405180910390fd5b8180156101ce5750805b9a9950505050505050505050565b6101e4614972565b6101ec6110b2565b905090565b6101f9614afc565b5f805b601081101561025b57610228858386610216602083614ff7565b926102239392919061500a565b6119ed565b8351826010811061023b5761023b615031565b6020020181815250506020826102519190614ff7565b91506001016101fc565b5061027f84828561026d604083614ff7565b9261027a9392919061500a565b611a07565b602083015261028f604082614ff7565b90506102a284828561026d604083614ff7565b6040808401919091526102b59082614ff7565b90506102c884828561026d604083614ff7565b60608301526102d8604082614ff7565b90506102eb84828561026d604083614ff7565b60c08301526102fb604082614ff7565b905061030e84828561026d604083614ff7565b60e083015261031e604082614ff7565b905061033184828561026d604083614ff7565b6080830152610341604082614ff7565b905061035484828561026d604083614ff7565b610100830152610365604082614ff7565b905061037884828561026d604083614ff7565b60a0830152610388604082614ff7565b90505f5b601c811015610407575f5b60088110156103fe576103b1868487610216602083614ff7565b84610120015183601c81106103c8576103c8615031565b602002015182600881106103de576103de615031565b6020020181815250506020836103f49190614ff7565b9250600101610397565b5060010161038c565b505f5b602981101561045b57610424858386610216602083614ff7565b836101400151826029811061043b5761043b615031565b6020020181815250506020826104519190614ff7565b915060010161040a565b505f5b61046a6001601c614fe4565b8110156104b35761048285838661026d604083614ff7565b83610160015182601b811061049957610499615031565b60200201526104a9604083614ff7565b915060010161045e565b505f5b601c811015610507576104d0858386610216602083614ff7565b83610180015182601c81106104e7576104e7615031565b6020020181815250506020826104fd9190614ff7565b91506001016104b6565b5061051984828561026d604083614ff7565b6101a083015261052a604082614ff7565b905061053d84828561026d604083614ff7565b6101c08301525092915050565b610552614bac565b5f610561878787878786611a89565b90835290506105708188611add565b6020840191909152905061058381611c8a565b604084019190915290506105978782611ceb565b606084019190915290506105ab8782611dbf565b608084019190915290506105bf8782611e4a565b60a084019190915290506105d38782611f20565b60c084019190915290506105e78782611f92565b5060e08301525095945050505050565b5f600180826106408661063b896106366106318a7f0000000000000000000000000000000000000000000000000000000000000000614ff7565b611fcf565b611fe7565b612002565b90505f61065e876106598a6106366106318b6001614ff7565b61201b565b90505f5b61068d60107f0000000000000000000000000000000000000000000000000000000000000000614fe4565b8110156106fa575f6106b78c83815181106106aa576106aa615031565b6020026020010151612043565b90506106c7866106368684612002565b95506106d7856106368584612002565b94506106e3848b612002565b93506106ef838b61201b565b925050600101610662565b505f5b6010811015610761575f8a826010811061071957610719615031565b6020020151905061072e866106368684612002565b955061073e856106368584612002565b945061074a848b612002565b9350610756838b61201b565b9250506001016106fd565b506101ce8484612058565b5f806001815b7f0000000000000000000000000000000000000000000000000000000000000000811015610843575f86610120015182601c81106107b2576107b2615031565b602002015190505f6107c48286612066565b9050806107e4576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106107fb576107fb615031565b6020020151905061080c8382612083565b9550610833886040015185601c811061082757610827615031565b60200201518683612232565b9450505050806001019050610772565b505f61085d866101400151865f015187602001518561225d565b90508281145b9695505050505050565b5f610876614c05565b5f6108848460a001516122d6565b905061088e614c75565b610896614c94565b60e08601516108b5906108b090855f5b602002015161201b565b61233b565b61012085015260e08601516108d5906108b090855f5b6020020151612002565b610140850181905261012085015160c08801516108f69261063b9190611fe7565b845260a08601516109269061090a9061233b565b6106368661012001516106598a60c00151896101400151611fe7565b602085015260018083526101a0890151825260a08501525f60c0850152835161094e906123a4565b60408501526020840151610961906123a4565b606085015260015b60248111610a065761098385604001518660a00151611fe7565b83826042811061099557610995615031565b602002015260c08501516101408a01516109d8919061063b906109b9600186614fe4565b602981106109c9576109c9615031565b60200201518860a00151611fe7565b60c086015260a085015160808801516109f19190611fe7565b60a08601526109ff81615045565b9050610969565b505f5b6005811015610acd575f610a1e601d83614ff7565b90505f610a2c602484614ff7565b9050610a5a858360428110610a4357610a43615031565b602002015161063b89606001518a60a00151611fe7565b858360428110610a6c57610a6c615031565b602002015260c08701516101408c0151610aa5919061063b908460298110610a9657610a96615031565b60200201518a60a00151611fe7565b60c088015260a087015160808a0151610abe9190611fe7565b60a08801525050600101610a09565b50606087015181600160200201526080870151816002602002015260a0870151816003602002015260c0870151816004602002015260e0870151816005602002015261010087015181600660200201526101208701518160076020020152610140870151816008602002015261016087015181600960200201526101c087015181600a602002015261018087015181600b60200201526101a087015181600c60200201526101e087015181600d602002015261020087015181600e602002015261022087015181600f60200201526102408701518160106020020152610260870151816011602002015261028087015181601260200201526102a087015181601360200201526102c087015181601460200201526102e08701518160156020020152610300870151816016602002015261032087015181601760200201526103408701518160186020020152610360870151816019602002015261038087015181601a60200201526103a087015181601b60200201526103c087015181601c6020020181905250876020015181601d60428110610c6c57610c6c615031565b602002015260408801516103c08201526060808901516103e0830152608089015161040083015260a089015161042083015261010089015161044083015260c0808a015161046084015260e08a015161048084015290870151908501516101808a01515f92610cfe929091877f00000000000000000000000000000000000000000000000000000000000000006123b6565b8051610120870151919250610d1291611fe7565b608086018190526101808a01515160c0890151610d43929161063b91610d389190611fe7565b886101400151611fe7565b608086015260c0870151610d56906124d1565b60a08601525f5b610d696001601c614fe4565b811015610f68575f610d9c60017f0000000000000000000000000000000000000000000000000000000000000000614fe4565b821015905080610f1657610dcf6108b08a60e0015188856001610dbf9190614ff7565b601c81106108a6576108a6615031565b61012088015260e0890151610dfe906108b09088610dee866001614ff7565b601c81106108cb576108cb615031565b61014088015260a0870151610120880151610e199190611fe7565b61016088015260a087015160c08a0151610e3691610d3891611fe7565b6101808801819052610e5990610e4b906123a4565b61063b8961016001516123a4565b8583610e6760246001614ff7565b610e719190614ff7565b60428110610e8157610e81615031565b602002015261018080880151908c01515f91610ebc91610ea2866001614ff7565b601c8110610eb257610eb2615031565b6020020151611fe7565b9050610ed98161063b8a610160015187876001610ea29190614ff7565b9050610ee9886080015182612002565b608089015260a088015160c08b0151610f0f91610f0591611fe7565b8b60c00151611fe7565b60a0890152505b8a610160015182601b8110610f2d57610f2d615031565b60200201518483610f4060246001614ff7565b610f4a9190614ff7565b60428110610f5a57610f5a615031565b602002015250600101610d5d565b5060408051808201909152600181526002602082015282610f8b601c6024614ff7565b60428110610f9b57610f9b615031565b6020020152608085015183610fb2601c6024614ff7565b60428110610fc257610fc2615031565b60200201526101c08901518083610fdb601c6024614ff7565b610fe6906001614ff7565b60428110610ff657610ff6615031565b602002015260e08801518461100d601c6024614ff7565b611018906001614ff7565b6042811061102857611028615031565b60200201525f61103884866124dc565b90505f611044836125d4565b90505f6110558d5f0151848461261a565b90505f5f6110658f5f0151612690565b9150915061107282612751565b61107b81612751565b6110868583856127f4565b94506110938482856127f4565b935061109f858561281a565b9f9e505050505050505050505050505050565b6110ba614972565b50604080516103e08101825263020000008152601960208083019190915260ae82840152825180840184527f0b287cb25bf5f5ac4ad0438197a4f048354b795df04a410b9ec1425076a5e3ec81527f193e335b344272ac3c3bfa974cf46b0061d4224f47f15da542ccbcefe531393f818301526060830152825180840184527f2b2e9955cc11344ae0936b05cf3b987a4f9637baa959abf09c0250a23b017dc181527f28a3058fd889c596b91745ed838bf3736446db4cb3b36dd2dacce81489d07c95818301526080830152825180840184527f1a51cb328a7cd05fae4487dae7194de40cfd08948e3d0edf7829c343dec40e2a81527f05c1631aa974bafbf54d3c67f04992e7dc210181650bb5e8d6d8fcdb83d08db68183015260a0830152825180840184527f247b89e60bcf80990060a55652c3f99c45fbe9c63c3cc56187c89884fe0afec981527f113373b2fa89f39d5dd017e74ed381105b7e346f7edb710a01e6023c9f4c11f28183015260c0830152825180840184527f170646ace9d1dc250635c2b0223c2d217ea3c393a92bf4da7b02eb93d06e407c81527f0698f5cd285a0e7c66b190edcafa8e2aa308e9845d407b7a4022dcd0bc2d39a18183015260e0830152825180840184527f29317cd1d11ebb337022fb18adb6dccae139a7f4b9501ccdf6b1da5ceaa277d681527f0bfd17c712045576050c3750fa8cecdf3545b20a909c2a9e49bfa38deee63ab081830152610100830152825180840184527f107d2d79c20982125b9f302008ecbd7b7f25eebc71271311c28f58223170c78b81527f0f3c9104533084fca88d92d900c94cb1400899b1c3c2b40cf32807f7d8517f4781830152610120830152825180840184527f2f7c19133b7fa4723f994ff7c1b86bacf0442b1b4a373e914999a517b9f9088c81527f202c2883214d09f854e5d882122c2d798ebde93534703f6b9b31ed67ed78053381830152610140830152825180840184527f1824537c9cbf10d30d95365c3daa59560dc1ab5c6c5bd451a7996b995133924681527eaeb1e6a7f37efed65a975f240f5d21d117ccc0d261157efce1dc9cc48d8f5081830152610160830152825180840184527f0f9a24fe18ee4223bd246309373ba1ba49c3430f295b1d8f7dcf449c4702996a81527f03f22f592401a3a064254b059c5b80e679837394b6cc055f928e50247065213b81830152610180830152825180840184527f23871f2846447cbbcfe466d17ae56916887a7981e5dd6a39b4b48986824e29ab81527f1f97b21f264509dfe03a5bd32018e4a421f89838670ddda4c54403e3a097c996818301526101a0830152825180840184527f1118f14ccae43b041d5254f889788445d28b6bbc9d53dec2eb834cbd72cdc66681527f1a999ce69190e3a8d3a6010946cb88e548632c13f0cf4931ee26fb886668fa76818301526101c0830152825180840184527f0c2f5bb1df382d88fbd69c72ee26c0ee2ee9d99dba033d94d09e98999b236ad881527f0cee084cc57d55b6cef5e081d2eb72a872b5e67d5d6e73e89ddf70eb6cfa213b818301526101e0830152825180840184527f1209104307d414629bcc973b1254df5742edd6b263b64f5900bbc65e865e6a5781527f16b9cb53d0fef78c064c2c76e110fb5657354627af442f487fd8902baf18f48a81830152610200830152825180840184527f1c699689ae5074fa23e88c139c2be34c8d83497ebdf78fe0afa90c620e9d7fd081527f1f07c2afec8c6471748202cdf64c07a767cc7d67372cc40c3695043cc668c6bf81830152610220830152825180840184527f03318ed4d03f6436228d54d2f30206691481617fbbfadc368123ae256ecd926d81527f087bbb64395c6c8a577414026180167096149df7dac99a395a4ae69c821c966781830152610240830152825180840184527f1a3fe29c2190d74147c7d6e343593d9f0614611d57697ce501c96c4b3fa6d3bd81527f0860eb7bde7aa84e66b01b442c1e2d9b881356d9c664cfe5291092cf3acd8d9081830152610260830152825180840184527f2d308ff80759949ab75dbf23c8c69b6272125c8358ab9da1ac65fae159c4479f81527f2433b5a3099ebf6530ec234dc7c0787772e434b8e5d8e930634e71814ee3972b81830152610280830152825180840184527f2b3ac4495aff9d111d72fd411b83dfee5e8ab40a48cd3a0a9ebe97b59f2bd51281527f1874c8068f2ebdc3c467e412b55a0954d5933f6129f1ddd8545a432c3c6ec13b818301526102a0830152825180840184527f0a0f17800912eba26d0dc7dae3bca4abefc31865458bb68cefe6cd98fc861bfe81527f1a9009903ac14eb5593f18de0bf2e14680aad30fae65da8880b5c189efa32cfc818301526102c0830152825180840184527f269a2111f3c5f2384735e69bbeb3c18e39cea0b6c5d3016b84c98ba271403d2b81527f1e897afdb1567b25e480f8c2093476151ca1eb2e62a13487857e31c2b299cbe9818301526102e0830152825180840184527f2227278132610dce2c2d27339d603b89b86f8df36d4bfc5e26f95a79f6803eb581527f0e98e051d59a887ba89d09e62544f51aa4c725ae8ae4e3edb787ce40277318b281830152610300830152825180840184527f275a0bb22f8c37a3476d71c556d266909fdde001df48d48a78940343ccb0b48a81527f2a4cc2119d1bd729845e8630c5b1aec652a2f2a7ae690c52238e3eafd44b385681830152610320830152825180840184527f1e1d6ac562a951aa01bc279a090d34488936a6404b3c75294fd260df0d36689381527f1643515b25c47e776b6d99eb3ce8b4613b209886681842e5c39ee92efe72c27281830152610340830152825180840184527f20db30b046148206e1ce5d50fe2559d2e60dbe3472bb605600c6e01d0965df8281527f0d5d5be706d7b3b8a7d3d02043ef0e324676187770f682c791ce1cd3deadc05881830152610360830152825180840184527f1f59b85de9212665c6c3e59fb35ab6609d72f5ad8007449dc8019a5886fad88f81527f21c9b787b5e0109e8ab3c2293b8c67fa9ec871818722fb8bea77aa6477aaae4c8183015261038083015282518084018452600181526002818301526103a083015282518084019093527f050548122c01e8e2581a91e14104afc52ce1a3db285bed6025d71405fc85dce983527f2f4749311aa5648001d78bdecffdd372faecc5b5e7a8a007b12a2315cedd69dd908301526103c081019190915290565b5f611a006119fb838561505d565b612043565b9392505050565b611a0f614cc2565b60408051808201909152805f5160206152f95f395f51905f52611a3560205f878961500a565b611a3e9161505d565b611a48919061508e565b81526020908101905f5160206152f95f395f51905f5290611a6d90604090878961500a565b611a769161505d565b611a80919061508e565b90529392505050565b611a91614cda565b5f611a9f8888888888612a0e565b604086019190915260208501919091529083529250611abe8389612d0b565b6080850191909152606084019190915291989197509095505050505050565b611ae5614d0a565b5f611aee614d29565b8481526101008401805151602080840191909152905181015160408084019190915260a08601805151606085015251820151608084015251611b5191611b36918491016150a1565b60405160208183030381529060405280519060200120612043565b9150611b5c82612d92565b6020850152835260015b6002611b746001601c614fe4565b611b7e91906150d4565b811015611bfe57611b9b83604051602001611b3691815260200190565b9250611ba683612d92565b85611bb2846002614fcd565b601b8110611bc257611bc2615031565b6020020186611bd2856002614fcd565b611bdd906001614ff7565b601b8110611bed57611bed615031565b602002019190915252600101611b66565b50611c0b6001601c614fe4565b6001166001148015611c2857506002611c266001601c614fe4565b115b15611c8257611c4382604051602001611b3691815260200190565b91505f611c4f83612d92565b856001611c5d81601c614fe4565b611c679190614fe4565b601b8110611c7757611c77615031565b602002019190915250505b509250929050565b611c92614d47565b5f805b601c811015611ce457611cb484604051602001611b3691815260200190565b93505f611cc085612d92565b8584601c8110611cd257611cd2615031565b60200201919091525050600101611c95565b5090929050565b611cf3614d47565b5f805b601c811015611db657611d07614d66565b8481525f5b6008811015611d705786610120015183601c8110611d2c57611d2c615031565b60200201518160088110611d4257611d42615031565b602002015182611d53836001614ff7565b60098110611d6357611d63615031565b6020020152600101611d0c565b50611d8581604051602001611b3691906150e7565b94505f611d9186612d92565b8685601c8110611da357611da3615031565b6020020191909152505050600101611cf6565b50909391925050565b5f5f611dc9614d85565b8381525f5b6029811015611e1c578561014001518160298110611dee57611dee615031565b602002015182611dff836001614ff7565b602a8110611e0f57611e0f615031565b6020020152600101611dce565b50611e3181604051602001611b36919061511b565b91505f611e3d83612d92565b5096929550919350505050565b5f5f611e54614da4565b8381525f5b611e656001601c614fe4565b811015611f0b5785610160015181601b8110611e8357611e83615031565b60200201515182611e95836002614fcd565b611ea0906001614ff7565b60378110611eb057611eb0615031565b602002015261016086015181601b8110611ecc57611ecc615031565b60200201516020015182826002611ee39190614fcd565b611eee906002614ff7565b60378110611efe57611efe615031565b6020020152600101611e59565b50611e3181604051602001611b36919061514f565b5f5f611f2a614dc3565b8381525f5b601c811015611f7d5785610180015181601c8110611f4f57611f4f615031565b602002015182611f60836001614ff7565b601d8110611f7057611f70615031565b6020020152600101611f2f565b50611e3181604051602001611b369190615183565b5f5f611f9c614de2565b8381526101a08501805151602080840191909152905181015160408084019190915251611e3191611b36918491016151b7565b5f5f5160206153195f395f51905f52825b0692915050565b5f5f5160206153195f395f51905f5282840990505b92915050565b5f5f5160206153195f395f51905f528284089392505050565b5f5f5160206153195f395f51905f52825f5160206153195f395f51905f520384089392505050565b5f5f5160206153195f395f51905f5282611fe0565b5f611a00836106368461233b565b81515f908190612078908560016108cb565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b600881101561216a5761216082610636878461201b565b9150600101612149565b50612173614e00565b5f5b60088110156121d4575f84826008811061219157612191615031565b602002015190506121a681610636898561201b565b90506121b18161233b565b9050808383600881106121c6576121c6615031565b602002015250600101612175565b505f5b6008811015612227575f8782600881106121f3576121f3615031565b6020020151905061221081848460088110610eb257610eb2615031565b905061221c8682612002565b9550506001016121d7565b506108638483611fe7565b5f5f612248600161063b8561063689600161201b565b90506122548482611fe7565b95945050505050565b5f612266614d47565b612271868285612dc2565b61227d86868386612f6e565b6122898686838661315a565b612294868285613385565b61229f868285613579565b6122ab868683866138c2565b6122b6868285613d75565b6122c1868285614187565b6122cc868285614548565b6108638185614848565b6122de614d47565b81815260015b601c81101561233557612316826122fc600184614fe4565b601c811061230c5761230c615031565b60200201516124d1565b8282601c811061232857612328615031565b60200201526001016122e4565b50919050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f5160206153195f395f51905f520360808201525f5160206153195f395f51905f5260a082015260205f60c08360055afa905080612399575f5ffd5b50505f519392505050565b5f5160206153195f395f51905f520390565b6123be614d47565b601c5b80156124c7575f846123d4600184614fe4565b601c81106123e4576123e4615031565b602002015190505f886123f8600185614fe4565b601c811061240857612408615031565b602002015190505f612463612427612420858c611fe7565b6002611fe7565b6106598a612436600189614fe4565b601c811061244657612446615031565b602002015161063661245d8861063660018a61201b565b8761201b565b9050612484816106366108b061247e8761063660018961201b565b86612002565b90508584116124b357975087808561249d600187614fe4565b601c81106124ad576124ad615031565b60200201525b505050806124c0906151ea565b90506123c1565b5095945050505050565b5f611ffc8283611fe7565b6124e4614cc2565b5f6124f1601c6024614ff7565b6124fc906002614ff7565b90505f5b8181101561252f5761252785826042811061251d5761251d615031565b6020020151612751565b600101612500565b506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b838110156125bc5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612563565b50805184526020810151602085015250505092915050565b6125dc614cc2565b5f5160206152f95f395f51905f5282602001515f5160206152f95f395f51905f526126079190614fe4565b612611919061508e565b60208301525090565b5f5f5f61262686612690565b91509150612632614e00565b82518152602080840151818301528251604080840191909152838201516060840152875160808401528782015160a0840152865160c08401528682015160e08401525161268591611b36918491016151ff565b979650505050505050565b612698614cc2565b6126a0614cc2565b82516020808501516040860151606087015160cc90811b608892831b604494851b90961795909517949094178652608087015160a088015160c089015160e08a0151871b90841b91851b9092171717868401526101008701516101208801516101408901516101608a0151871b90841b91851b909217171785526101808701516101a08801516101c08901516101e09099015190951b9790911b9390911b1791909117939093179281019290925291565b805160208201515f5f5160206152f95f395f51905f528380095f5160206152f95f395f51905f5260035f5160206152f95f395f51905f52838709085f5160206152f95f395f51905f5284850914915050806127ee5760405162461bcd60e51b8152602060048201526019602482015278706f696e74206973206e6f74206f6e2074686520637572766560381b604482015260640160405180910390fd5b50505050565b6127fc614cc2565b612804614cc2565b61280e83866148ad565b905061225481856148fd565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516129b09190615233565b5f60405180830381855afa9150503d805f81146129e8576040519150601f19603f3d011682016040523d82523d5f602084013e6129ed565b606091505b50915091508180156108635750808060200190518101906108639190615249565b5f80808080612a1e866001614ff7565b612a29906006614ff7565b6001600160401b03811115612a4057612a40615268565b604051908082528060200260200182016040528015612a69578160200160208202803683370190505b509050865f1b815f81518110612a8157612a81615031565b60209081029190910101525f5b612a99601088614fe4565b811015612aea57898982818110612ab257612ab2615031565b9050602002013582826001612ac79190614ff7565b81518110612ad757612ad7615031565b6020908102919091010152600101612a8e565b505f5b6010811015612b5b578a51612b15908260108110612b0d57612b0d615031565b602002015190565b82826010612b248b6001614ff7565b612b2e9190614fe4565b612b389190614ff7565b81518110612b4857612b48615031565b6020908102919091010152600101612aed565b5060208a01515181612b6e886001614ff7565b81518110612b7e57612b7e615031565b6020908102919091018101919091528a810151015181612b9f886001614ff7565b612baa906001614ff7565b81518110612bba57612bba615031565b602090810291909101015260408a01515181612bd7886001614ff7565b612be2906002614ff7565b81518110612bf257612bf2615031565b60209081029190910181019190915260408b0151015181612c14886001614ff7565b612c1f906003614ff7565b81518110612c2f57612c2f615031565b602090810291909101015260608a01515181612c4c886001614ff7565b612c57906004614ff7565b81518110612c6757612c67615031565b60209081029190910181019190915260608b0151015181612c89886001614ff7565b612c94906005614ff7565b81518110612ca457612ca4615031565b602002602001018181525050612cc481604051602001611b36919061527c565b9150612ccf82612d92565b6040805160208101869052929750909550612cea9101611b36565b91505f612cf683612d92565b50959b949a5094985090965091945050505050565b5f5f5f612d16614e1f565b85815260c0858101805151602080850191909152905181015160408085019190915260e08801805151606086015251820151608080860191909152880180515160a086015251820151928401929092529051612d7891611b36918491016152b1565b9150612d8382612d92565b90979096509194509092505050565b5f80826001600160801b038116608082901c612dad82612043565b9450612db881612043565b9350505050915091565b5f612dce846007614942565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612e2f612e29612e0385600361201b565b610636612e1e612e138b5f614942565b6106368c601d614942565b6106368b601c614942565b83611fe7565b9050612eb0612ea5612e8c612e73612e5a8561063b612e4f8d6002614942565b6106368e601c614942565b61063b612e688c6003614942565b6106368d601d614942565b61063b612e818b6004614942565b6106368c601e614942565b61063b612e9a8a6005614942565b6106368b601f614942565b61063b886001614942565b9050612ecf8161063b612ec486600161201b565b6106368a6027614942565b9050612edb8184611fe7565b9050612ee78185611fe7565b8552505f9050612f21612f17612f0c612f0188601c614942565b61063b89601f614942565b610659886024614942565b61063b875f614942565b9050612f328161063684600261201b565b9050612f438161063684600161201b565b9050612f4f8183611fe7565b9050612f5b8184611fe7565b9050808460015b60200201525050505050565b5f5f5f612fa4612f9a612f8289601c614942565b61063b612f908b6012614942565b8a60600151611fe7565b8760800151612002565b9050612fdd81610636612fd3612fbb8b601d614942565b61063b612fc98d6013614942565b8c60600151611fe7565b8960800151612002565b905061300281610636612fd3612ff48b601e614942565b61063b612fc98d6014614942565b905061302781610636612fd36130198b601f614942565b61063b612fc98d6015614942565b92505f905061304b612f9a61303d89601c614942565b61063b612f908b600e614942565b905061307081610636612fd36130628b601d614942565b61063b612fc98d600f614942565b905061309581610636612fd36130878b601e614942565b61063b612fc98d6010614942565b90506130ba81610636612fd36130ac8b601f614942565b61063b612fc98d6011614942565b91505f90506130e16130db6130d0896020614942565b61063b8a601a614942565b84611fe7565b9050613116816106596131106130f88b6028614942565b61063b6131068d601b614942565b8c60a00151611fe7565b85611fe7565b90506131228185611fe7565b6040860152505f61314561311061313a89601b614942565b6106368a6028614942565b9050808560035b602002015250505050505050565b5f5f6131b86131a0613188613173612fd38a6016614942565b61063b6131818b6017614942565b8a51611fe7565b61063b6131968a6018614942565b8960200151611fe7565b61063b6131ae896019614942565b8860400151611fe7565b91505f6131ef6131d66131cc89601c614942565b8860800151612002565b61063b6131e48a6003614942565b6106368b6024614942565b90505f61321861320089601d614942565b61063b61320d8b5f614942565b6106368c6025614942565b90505f6132426132298a601e614942565b61063b6132378c6001614942565b6106368d6026614942565b905061328161326961325b8561063b868d5f0151611fe7565b61063b848c60200151611fe7565b61063b6132778c6004614942565b8b60400151611fe7565b93505050505f6132956130db886021614942565b90505f6132a66130db896021614942565b90505f6132de6132c56132ba8b6023614942565b61063b8c6006614942565b6106596132d38c6023614942565b6106368d6006614942565b90505f6133026132fc6132f18789611fe7565b6106368d6021614942565b8361201b565b905061330e8188611fe7565b90505f6133366133286133228d6006614942565b87611fe7565b6106596133228e6022614942565b90505f6133448c6023614942565b90505f6133546132fc8384611fe7565b60808c0185905260a08c01849052905061336e818b611fe7565b8b6006602002015250505050505050505050505050565b5f6133915f600161201b565b90505f61339f5f600261201b565b90505f6133ad5f600361201b565b90505f6133c96133be88601d614942565b61065989601c614942565b90505f6133e56133da89601e614942565b6106598a601d614942565b90505f6134016133f68a601f614942565b6106598b601e614942565b90505f61341d6134128b6024614942565b6106598c601f614942565b90508361342e81610636818b612002565b905061343e81610636878a612002565b905061344e816106368789612002565b905061345f816106368d6008614942565b905061346b818a611fe7565b60e08b0152508261348081610636818b612002565b905061349081610636868a612002565b90506134a0816106368689612002565b90506134b1816106368d6008614942565b90506134bd818a611fe7565b6101008b015250816134d381610636818b612002565b90506134e381610636858a612002565b90506134f3816106368589612002565b9050613504816106368d6008614942565b9050613510818a611fe7565b6101208b0152508061352681610636818b612002565b905061353681610636848a612002565b9050613546816106368489612002565b9050613557816106368d6008614942565b9050613563818a611fe7565b610140909a019990995250505050505050505050565b6135b26040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6135bd84601d614942565b81526135ca84601e614942565b60208201526135da846024614942565b60408201526135ea846027614942565b60608201526135fa846026614942565b608082015261360a846025614942565b60a08201525f61361b856002614942565b90505f613628865f614942565b90505f61363c8460400151855f015161201b565b90505f61365185602001518660200151611fe7565b606086015190915086905f906136679080611fe7565b90505f61368561367f89602001518a60600151611fe7565b88611fe7565b90505f6136a461369d8a60a001518b60400151612002565b8a51612002565b90506136b36133228288611fe7565b90506136da6136d46136ce6136c8848761201b565b8861201b565b84612002565b83612002565b90506137026136f76136ec8387611fe7565b6106368f6009614942565b61063660018a61201b565b6101608c015250505050602085015160808601515f9161372191612002565b90505f61373f613735886060015188611fe7565b886020015161201b565b90505f61376361374f8487611fe7565b61063b6131108b60a001518c5f015161201b565b905061378b613780613775838c611fe7565b6106368e6009614942565b61063660018961201b565b6101808b0152505f91506137ac90506137a5836011612002565b8751611fe7565b90505f6137b98384612002565b90506137c58182612002565b90505f6137d3836009611fe7565b90506137fc6137f66130db6137ef8b60a001518c5f0151612002565b8b51612002565b8261201b565b60c089018190525f906138179061367f906136ec908d611fe7565b905061382a8b600b602002015182612002565b6101608c0152505086515f925061385191506137a59061384a9080612002565b8851612002565b90505f61389161386c836106368a5f01518b60a0015161201b565b60208901516106599061387f9080612002565b6106368b602001518c60800151612002565b90506138ae89600c602002015161063b61367f6136ec858d611fe7565b89600c602002015250505050505050505050565b61392c604051806101e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61394461393a86601e614942565b8560400151611fe7565b8082526139639061063b61395988601d614942565b8760200151611fe7565b8082526139789061063b6137a588601c614942565b80825261398a9061063b876001614942565b808252602082018190526139a39061065987601f614942565b81526139be6139b3866024614942565b61065987601c614942565b60808201526139dc6139d1866027614942565b61065987601f614942565b606082015260808101516139fe906139f49080611fe7565b826080015161201b565b6101c08201526080810151613a3e90613a3490613a2d9061063660015f5160206153195f395f51905f52614fe4565b6001612002565b8260600151611fe7565b60a08201819052613a7490613a6690610636613a5b896002614942565b6106368a6003614942565b61063661311088600a614942565b83600e60200201526101c0810151613a9890613a6690610636613a5b896002614942565b6101e08401528051613abd90610636613ab2886002614942565b610636896003614942565b6101208201525f613adc613ad287601f614942565b836020015161201b565b9050613aeb6137f68283611fe7565b60e0830152613b08613afe876026614942565b8660400151611fe7565b60408301819052613b2b9061063b613b21896025614942565b8860200151611fe7565b60408301819052613b4b9061063b613b44896024614942565b8851611fe7565b6040830152613b68613b5e876027614942565b836040015161201b565b60408301525f613b87613b7c886026614942565b61065989601e614942565b9050613bd9613bb4612e29613a2d866080015160015f5160206153195f395f51905f526106369190614fe4565b610636613a2d866040015160015f5160206153195f395f51905f526106369190614fe4565b60c08401526040830151613bfb90613bf19080611fe7565b846040015161201b565b61010084015260c0830151613c2790613c19906106368a6004614942565b6106366133228a600a614942565b6102008601526101c0830151613c4690613c19906106368a6004614942565b610220860152610100830151613c6590613c19906106368a6004614942565b61024086015260e0830151613c7f90610636896004614942565b610140840152613c9e613c93886025614942565b61065989601d614942565b6101608401526080830151613cdc90613b7c90613cd190613a2d9061063660015f5160206153195f395f51905f52614fe4565b856101600151611fe7565b61018084018190526101208401516101a08501819052613d139161063b90610636613d088c6005614942565b6106368d6002614942565b6101a084018190528351613d33919061063b90610636613d088c5f614942565b6101a08401819052610140840151613d4b9190612002565b6101a08401819052613d65906106366133228a600a614942565b6101a0840181905285600d61314c565b613dae6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613de3613dca613dbf86601c614942565b610636876025614942565b61063b613dd8876024614942565b61063688601d614942565b8152613e28613e1d613e04613df987601c614942565b61063688601f614942565b61063b613e1288601d614942565b61063689601e614942565b610659866026614942565b60408201819052613e3d90600160441b611fe7565b60408201819052613e5390610659866027614942565b604082018190528151613e669190612002565b60408201819052613e7c90610636866005614942565b60408201528051613e9190600160441b611fe7565b808252613eb19061063b613ea6876024614942565b610636886025614942565b80825260208201819052613ed890610659613ecd87601e614942565b61063b88601f614942565b60208201819052613eee90610636866004614942565b6020820152805160608201819052613f0b9061063b86601f614942565b60608201819052613f2f90610659613f24876026614942565b61063b886027614942565b60608201819052613f4490610636865f614942565b8160600181815250505f613f6d613f6383602001518460400151612002565b8360600151612002565b9050613f7e81610636876003614942565b9050613f96613f8e866025614942565b614000611fe7565b60808301819052613fac9061063b876024614942565b60808301819052613fbf90614000611fe7565b60808301819052613fd59061063b87601e614942565b60808301819052613fe890614000611fe7565b60808301819052613ffe9061063b87601d614942565b6080830181905261401190614000611fe7565b608083018190526140279061063b87601c614942565b6080830181905261403d9061065987601f614942565b6080830181905261405390610636876005614942565b6080830152614066613f8e866026614942565b60a0830181905261407c9061063b876025614942565b60a0830181905261408f90614000611fe7565b60a083018190526140a59061063b876024614942565b60a083018190526140b890614000611fe7565b60a083018190526140ce9061063b87601f614942565b60a083018190526140e190614000611fe7565b60a083018190526140f79061063b87601e614942565b60a0830181905261410d90610659876027614942565b60a0830181905261412290610636875f614942565b60a0830181905260808301515f9161413a9190612002565b905061414b81610636886004614942565b90506141578282612002565b60c084018190526141709061063661332289600b614942565b60c084018190528560136020020152505050505050565b6141fd6040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61421661420b85601c614942565b61063b866002614942565b815261423161422685601d614942565b61063b866003614942565b602082015261424f61424485601e614942565b61063b866004614942565b604082015261426d61426285601f614942565b61063b866005614942565b6060820152805161429f90614298906142919061428a9080611fe7565b8451611fe7565b8351611fe7565b8251611fe7565b608082015260208101516142dd906142d3906142c9906142bf9080611fe7565b8460200151611fe7565b8360200151611fe7565b8260200151611fe7565b60a0820152604081015161431b9061431190614307906142fd9080611fe7565b8460400151611fe7565b8360400151611fe7565b8260400151611fe7565b60c0820152606081015161434f90613a34906143459061433b9080611fe7565b8460600151611fe7565b8360600151611fe7565b60e0820152608081015160a08201516143689190612002565b61010082015260c081015160e08201516143829190612002565b61012082015260a08101516143a69061439b9080612002565b826101200151612002565b61014082015260e08101516143ca906143bf9080612002565b826101000151612002565b6101608201526101208101516143e09080612002565b6101e08201819052614401906143f69080612002565b826101600151612002565b6101e08201526101008101516144179080612002565b6101a082018190526144389061442d9080612002565b826101400151612002565b6101a0820181905261016082015161444f91612002565b6101808201526101408101516101e082015161446b9190612002565b6101c082015261447f612e2985600c614942565b61020082018190526102808401516101808301516144aa9261063b91610636906106598a6024614942565b83601460200201526144da836015602002015161063b836102000151610636856101a001516106598a6025614942565b836015602002015261450a836016602002015161063b836102000151610636856101c001516106598a6026614942565b836016602002015261453a836017602002015161063b836102000151610636856101e001516106598a6027614942565b836017602002015250505050565b61459a6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60405180608001604052806145cf7f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7611fcf565b81526020016145fd7f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b611fcf565b815260200161462a7e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15611fcf565b81526020016146587f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b611fcf565b9052905061467561466a86601c614942565b61063b876002614942565b61012083018190526146b4906146a99061469e906146939080611fe7565b856101200151611fe7565b846101200151611fe7565b836101200151611fe7565b82526146c185601d614942565b60208301526146d185601e614942565b60408301526146e185601f614942565b60608301528151602083015161470991613f63916146ff9190612002565b8460400151612002565b608083015261471c6130db86600d614942565b610140830152815161473d9061473390835f610eb2565b8360800151612002565b60a0830152614769846018602002015161063b8461014001516106368660a001516106598b6024614942565b61030085015260208201516147849061473390836001610eb2565b60c08301526147b0846019602002015161063b8461014001516106368660c001516106598b6025614942565b61032085015260408201516147cb9061473390836002610eb2565b60e08301526147f784601a602002015161063b8461014001516106368660e001516106598b6026614942565b61034085015260608201516148129061473390836003610eb2565b61010083015261484084601b602002015161063b8461014001516106368661010001516106598b6027614942565b84601b612f62565b5f6148548184816108cb565b905060015b601c8110156148a65761489c8261063b8684601c811061487b5761487b615031565b60200201518661488c600187614fe4565b601b8110610eb257610eb2615031565b9150600101614859565b5092915050565b6148b5614cc2565b6148bd614cc2565b604051835181526020840151602082015284604082015260408160608360075afa806148e7575f5ffd5b5080518252602090810151908201529392505050565b614905614cc2565b61490d614cc2565b6040518451815260208501516020820152835160408201526020840151606082015260408160808360065afa806148e7575f5ffd5b5f82826028811115614956576149566152e4565b6029811061496657614966615031565b60200201519392505050565b604051806103e001604052805f81526020015f81526020015f8152602001614998614cc2565b81526020016149a5614cc2565b81526020016149b2614cc2565b81526020016149bf614cc2565b81526020016149cc614cc2565b81526020016149d9614cc2565b81526020016149e6614cc2565b81526020016149f3614cc2565b8152602001614a00614cc2565b8152602001614a0d614cc2565b8152602001614a1a614cc2565b8152602001614a27614cc2565b8152602001614a34614cc2565b8152602001614a41614cc2565b8152602001614a4e614cc2565b8152602001614a5b614cc2565b8152602001614a68614cc2565b8152602001614a75614cc2565b8152602001614a82614cc2565b8152602001614a8f614cc2565b8152602001614a9c614cc2565b8152602001614aa9614cc2565b8152602001614ab6614cc2565b8152602001614ac3614cc2565b8152602001614ad0614cc2565b8152602001614add614cc2565b8152602001614aea614cc2565b8152602001614af7614cc2565b905290565b604051806101e00160405280614b10614e3d565b8152602001614b1d614cc2565b8152602001614b2a614cc2565b8152602001614b37614cc2565b8152602001614b44614cc2565b8152602001614b51614cc2565b8152602001614b5e614cc2565b8152602001614b6b614cc2565b8152602001614b78614cc2565b8152602001614b85614e5c565b8152602001614b92614e8a565b8152602001614b9f614ea9565b8152602001614add614d47565b604051806101000160405280614bc0614cda565b8152602001614bcd614d0a565b8152602001614bda614d47565b8152602001614be7614d47565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f8152602001614c43614ed7565b8152602001614c50614ed7565b81526020015f81526020015f81526020015f81526020015f8152602001614af7614d47565b6040518061084001604052806042906020820280368337509192915050565b6040518061084001604052806042905b614cac614cc2565b815260200190600190039081614ca45790505090565b60405180604001604052805f81526020015f81525090565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604051806103600160405280601b906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806105400160405280602a906020820280368337509192915050565b604051806106e001604052806037906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b6040518061020001604052806010906020820280368337509192915050565b604051806103800160405280601c905b614e74614e00565b815260200190600190039081614e6c5790505090565b6040518061052001604052806029906020820280368337509192915050565b604051806103600160405280601b905b614ec1614cc2565b815260200190600190039081614eb95790505090565b60405180608001604052806004906020820280368337509192915050565b5f5f5f5f60408587031215614f08575f5ffd5b84356001600160401b03811115614f1d575f5ffd5b8501601f81018713614f2d575f5ffd5b80356001600160401b03811115614f42575f5ffd5b876020828401011115614f53575f5ffd5b6020918201955093508501356001600160401b03811115614f72575f5ffd5b8501601f81018713614f82575f5ffd5b80356001600160401b03811115614f97575f5ffd5b8760208260051b8401011115614fab575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417611ffc57611ffc614fb9565b81810381811115611ffc57611ffc614fb9565b80820180821115611ffc57611ffc614fb9565b5f5f85851115615018575f5ffd5b83861115615024575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161505657615056614fb9565b5060010190565b80356020831015611ffc575f19602084900360031b1b1692915050565b634e487b7160e01b5f52601260045260245ffd5b5f8261509c5761509c61507a565b500690565b5f8183825b60058110156150c55781518352602092830192909101906001016150a6565b50505060a08201905092915050565b5f826150e2576150e261507a565b500490565b5f8183825b600981101561510b5781518352602092830192909101906001016150ec565b5050506101208201905092915050565b5f8183825b602a81101561513f578151835260209283019290910190600101615120565b5050506105408201905092915050565b5f8183825b6037811015615173578151835260209283019290910190600101615154565b5050506106e08201905092915050565b5f8183825b601d8110156151a7578151835260209283019290910190600101615188565b5050506103a08201905092915050565b5f8183825b60038110156151db5781518352602092830192909101906001016151bc565b50505060608201905092915050565b5f816151f8576151f8614fb9565b505f190190565b5f8183825b6008811015615223578151835260209283019290910190600101615204565b5050506101008201905092915050565b5f82518060208501845e5f920191825250919050565b5f60208284031215615259575f5ffd5b81518015158114611a00575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b828110156152a6578151845260209384019390910190600101615288565b509195945050505050565b5f8183825b60078110156152d55781518352602092830192909101906001016152b6565b50505060e08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001";
3
+ */ export const HonkVerifierBytecode = "0x610100604052348015610010575f5ffd5b506302000000608052601960a0527f29a869aa0d5b700fd05cbd274ef3872101fbda8d9aaaf7b9a93b84d957e4b64760c05260ae60e05260805160a05160c05160e05161533a61008d5f395f818160f3015261066901525f60d201525f818161077401528181610cda0152610d7801525f61060d015261533a5ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004614ef6565b610054565b604051901515815260200160405180910390f35b5f61006261017f6020614fce565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a6101dc565b90505f61009787876101f1565b9050601082604001516100aa9190614fe5565b84146100c95760405163fa06659360e01b815260040160405180910390fd5b5f6101178287877f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061054a565b90506101678686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050855185516060810151608090910151919350915060016105f7565b815160a001525f610178838361076c565b905080610198576040516313f8744360e31b815260040160405180910390fd5b5f6101a484868561086d565b9050806101c4576040516352ec174560e11b815260040160405180910390fd5b8180156101ce5750805b9a9950505050505050505050565b6101e4614973565b6101ec6110b2565b905090565b6101f9614afd565b5f805b601081101561025b57610228858386610216602083614ff8565b926102239392919061500b565b6119ee565b8351826010811061023b5761023b615032565b6020020181815250506020826102519190614ff8565b91506001016101fc565b5061027f84828561026d604083614ff8565b9261027a9392919061500b565b611a08565b602083015261028f604082614ff8565b90506102a284828561026d604083614ff8565b6040808401919091526102b59082614ff8565b90506102c884828561026d604083614ff8565b60608301526102d8604082614ff8565b90506102eb84828561026d604083614ff8565b60c08301526102fb604082614ff8565b905061030e84828561026d604083614ff8565b60e083015261031e604082614ff8565b905061033184828561026d604083614ff8565b6080830152610341604082614ff8565b905061035484828561026d604083614ff8565b610100830152610365604082614ff8565b905061037884828561026d604083614ff8565b60a0830152610388604082614ff8565b90505f5b601c811015610407575f5b60088110156103fe576103b1868487610216602083614ff8565b84610120015183601c81106103c8576103c8615032565b602002015182600881106103de576103de615032565b6020020181815250506020836103f49190614ff8565b9250600101610397565b5060010161038c565b505f5b602981101561045b57610424858386610216602083614ff8565b836101400151826029811061043b5761043b615032565b6020020181815250506020826104519190614ff8565b915060010161040a565b505f5b61046a6001601c614fe5565b8110156104b35761048285838661026d604083614ff8565b83610160015182601b811061049957610499615032565b60200201526104a9604083614ff8565b915060010161045e565b505f5b601c811015610507576104d0858386610216602083614ff8565b83610180015182601c81106104e7576104e7615032565b6020020181815250506020826104fd9190614ff8565b91506001016104b6565b5061051984828561026d604083614ff8565b6101a083015261052a604082614ff8565b905061053d84828561026d604083614ff8565b6101c08301525092915050565b610552614bad565b5f610561878787878786611a8a565b90835290506105708188611ade565b6020840191909152905061058381611c8b565b604084019190915290506105978782611cec565b606084019190915290506105ab8782611dc0565b608084019190915290506105bf8782611e4b565b60a084019190915290506105d38782611f21565b60c084019190915290506105e78782611f93565b5060e08301525095945050505050565b5f600180826106408661063b896106366106318a7f0000000000000000000000000000000000000000000000000000000000000000614ff8565b611fd0565b611fe8565b612003565b90505f61065e876106598a6106366106318b6001614ff8565b61201c565b90505f5b61068d60107f0000000000000000000000000000000000000000000000000000000000000000614fe5565b8110156106fa575f6106b78c83815181106106aa576106aa615032565b6020026020010151612044565b90506106c7866106368684612003565b95506106d7856106368584612003565b94506106e3848b612003565b93506106ef838b61201c565b925050600101610662565b505f5b6010811015610761575f8a826010811061071957610719615032565b6020020151905061072e866106368684612003565b955061073e856106368584612003565b945061074a848b612003565b9350610756838b61201c565b9250506001016106fd565b506101ce8484612059565b5f806001815b7f0000000000000000000000000000000000000000000000000000000000000000811015610843575f86610120015182601c81106107b2576107b2615032565b602002015190505f6107c48286612067565b9050806107e4576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106107fb576107fb615032565b6020020151905061080c8382612084565b9550610833886040015185601c811061082757610827615032565b60200201518683612233565b9450505050806001019050610772565b505f61085d866101400151865f015187602001518561225e565b90508281145b9695505050505050565b5f610876614c06565b5f6108848460a001516122d7565b905061088e614c76565b610896614c95565b60e08601516108b5906108b090855f5b602002015161201c565b61233c565b61012085015260e08601516108d5906108b090855f5b6020020151612003565b610140850181905261012085015160c08801516108f69261063b9190611fe8565b845260a08601516109269061090a9061233c565b6106368661012001516106598a60c00151896101400151611fe8565b602085015260018083526101a0890151825260a08501525f60c0850152835161094e906123a5565b60408501526020840151610961906123a5565b606085015260015b60248111610a065761098385604001518660a00151611fe8565b83826042811061099557610995615032565b602002015260c08501516101408a01516109d8919061063b906109b9600186614fe5565b602981106109c9576109c9615032565b60200201518860a00151611fe8565b60c086015260a085015160808801516109f19190611fe8565b60a08601526109ff81615046565b9050610969565b505f5b6005811015610acd575f610a1e601d83614ff8565b90505f610a2c602484614ff8565b9050610a5a858360428110610a4357610a43615032565b602002015161063b89606001518a60a00151611fe8565b858360428110610a6c57610a6c615032565b602002015260c08701516101408c0151610aa5919061063b908460298110610a9657610a96615032565b60200201518a60a00151611fe8565b60c088015260a087015160808a0151610abe9190611fe8565b60a08801525050600101610a09565b50606087015181600160200201526080870151816002602002015260a0870151816003602002015260c0870151816004602002015260e0870151816005602002015261010087015181600660200201526101208701518160076020020152610140870151816008602002015261016087015181600960200201526101c087015181600a602002015261018087015181600b60200201526101a087015181600c60200201526101e087015181600d602002015261020087015181600e602002015261022087015181600f60200201526102408701518160106020020152610260870151816011602002015261028087015181601260200201526102a087015181601360200201526102c087015181601460200201526102e08701518160156020020152610300870151816016602002015261032087015181601760200201526103408701518160186020020152610360870151816019602002015261038087015181601a60200201526103a087015181601b60200201526103c087015181601c6020020181905250876020015181601d60428110610c6c57610c6c615032565b602002015260408801516103c08201526060808901516103e0830152608089015161040083015260a089015161042083015261010089015161044083015260c0808a015161046084015260e08a015161048084015290870151908501516101808a01515f92610cfe929091877f00000000000000000000000000000000000000000000000000000000000000006123b7565b8051610120870151919250610d1291611fe8565b608086018190526101808a01515160c0890151610d43929161063b91610d389190611fe8565b886101400151611fe8565b608086015260c0870151610d56906124d2565b60a08601525f5b610d696001601c614fe5565b811015610f68575f610d9c60017f0000000000000000000000000000000000000000000000000000000000000000614fe5565b821015905080610f1657610dcf6108b08a60e0015188856001610dbf9190614ff8565b601c81106108a6576108a6615032565b61012088015260e0890151610dfe906108b09088610dee866001614ff8565b601c81106108cb576108cb615032565b61014088015260a0870151610120880151610e199190611fe8565b61016088015260a087015160c08a0151610e3691610d3891611fe8565b6101808801819052610e5990610e4b906123a5565b61063b8961016001516123a5565b8583610e6760246001614ff8565b610e719190614ff8565b60428110610e8157610e81615032565b602002015261018080880151908c01515f91610ebc91610ea2866001614ff8565b601c8110610eb257610eb2615032565b6020020151611fe8565b9050610ed98161063b8a610160015187876001610ea29190614ff8565b9050610ee9886080015182612003565b608089015260a088015160c08b0151610f0f91610f0591611fe8565b8b60c00151611fe8565b60a0890152505b8a610160015182601b8110610f2d57610f2d615032565b60200201518483610f4060246001614ff8565b610f4a9190614ff8565b60428110610f5a57610f5a615032565b602002015250600101610d5d565b5060408051808201909152600181526002602082015282610f8b601c6024614ff8565b60428110610f9b57610f9b615032565b6020020152608085015183610fb2601c6024614ff8565b60428110610fc257610fc2615032565b60200201526101c08901518083610fdb601c6024614ff8565b610fe6906001614ff8565b60428110610ff657610ff6615032565b602002015260e08801518461100d601c6024614ff8565b611018906001614ff8565b6042811061102857611028615032565b60200201525f61103884866124dd565b90505f611044836125d5565b90505f6110558d5f0151848461261b565b90505f5f6110658f5f0151612691565b9150915061107282612752565b61107b81612752565b6110868583856127f5565b94506110938482856127f5565b935061109f858561281b565b9f9e505050505050505050505050505050565b6110ba614973565b50604080516103e08101825263020000008152601960208083019190915260ae82840152825180840184527f0b3f62f3f6c5017aaa9519628a6777574dd3a3e8b9be8bafacb59241a31f6ef281527f22c46708330e68d40d6d75e76ddc6ad8e8dbbe645c8dbe3aeae9fc0b6ff2f564818301526060830152825180840184527f0aaec5b2db0e153f9229fad5ca8943dd084073d3548e8be6aa14692ae749706781527f1e184ad18815a3488da231da8e9573e2571acaf99f8dda266410111c854a6f54818301526080830152825180840184527f2ff668a3ae5fab26b260df724051d04c4ad5e3f0ed1b5c93cbbc04a4e704ad1281527f20ac8bf24cb672460e6449f5846e8a09f0b676b75199528ca438884805ac71078183015260a0830152825180840184527f0cb05f99b8cb78fd23c33ff6c79984b31c772f76386919b0af2d6d7f31b410a981527f0e7406cbe98170f4594bb8934ec65f4e5f05973c42ad2899bc30a8f0333d78468183015260c0830152825180840184527f0aa8ea6587c72f82bf25657d3030894240bb5ba04aa098d3344032132d915d2181527f2d9e98215851da82124e19cf6a82df47d60f9a7d4cbb1df6fd5ebd01f6f8e84f8183015260e0830152825180840184527f124f505289bc6e10b47ff3e6c287e8045fcff3b5b497ad155ab6d7f59a556a3e81527f102bc4f353cfbc4b8f1ebf2b0d919f8ecba427ed17d9d8fde2fc124605d3da1781830152610100830152825180840184527f107d2d79c20982125b9f302008ecbd7b7f25eebc71271311c28f58223170c78b81527f0f3c9104533084fca88d92d900c94cb1400899b1c3c2b40cf32807f7d8517f4781830152610120830152825180840184527f111d52582cbe399e100bfa8fa0062f03c3e44bb5818a0ce0df5a501b1053eca981527f239d1511ac29c5868cdc6cc505d7590797e329a0bec8953231d6d118b06ccf7881830152610140830152825180840184527f0dbe912213504e8e618ac46ec344fbcd2079cd644fb700e474d5ad1d3f9e59ef81527f2f2d778251e4230b60ba35a27c9987703c18a7a0827a4fe4bf61f7715b7142d081830152610160830152825180840184527f1bd4812cc18da46c90c0df7ad2ab3625b348777c74d7cfd2ef3a57904bcf450681527f272e0c95dd04534f4f3b2d97cc139d34fc52369563762cee3bcdfd6ea563576981830152610180830152825180840184527f06847e9961de658bab8d67964b8534382c071bcc38da7ded353f3121f32c9cb681527f16a3670522efe93a626a255eccded79df2b584888dd1302d296488fb97f4938b818301526101a0830152825180840184527f27861a4ccb7471b7348a0cbef681587c321fa41b0c6fde3be5bcfc9fd2585df381527f23df46cc92442f2c32e40a6f23cd103c0bcc5c179d1f0f14ccf22ca9b3a7bdec818301526101c0830152825180840184527f2bc6b8f00645f278d5b882f10c4e55fec4fe551aba9a16aa18b0adcc411c50b481527f0472a2c4a32ca081e99533a3d5dddadc10ee5afbee55fccd428a0804ec1a5393818301526101e0830152825180840184527f1410954ae3a1cc739e89fc51cd79433baae6beb6d3fc32a967e5badaa7be59e181527f20a4c789c9f4899bf1ff5f1d2631843e9f9d3f72f500287464bf3df695d4ab1781830152610200830152825180840184527f1793aedf20837e05960820648c16fe83c885a784e034097e715d15c79f148ecd81527f0c085a4322cc34b3a1ac59005b8466cca12413b5c55e07019d9b8dac51cd0f8b81830152610220830152825180840184527f2188ce4b9fc323bb305161bb779328a9560e026c88fd18001b0fc0b49b80217f81527f1b35bb7b082d8d84edc9e09b447269b7b8cea44baebfe177766bf2d03ecb21bc81830152610240830152825180840184527f0e67d3510f35239605dbd18fe89f19dc101c86eda733d46879f5c2103d97f7b481527f1c1aa2036f66fdfc840113a884977ecbcd87f0e28c20ea750323154c8c60b7fc81830152610260830152825180840184527f2dd95865a052c6ebf85f2448c1bfcab1efff71c3fc01d075cdffad3af06b588881527f01ea8f1598cfb4fa94cc8454b2c47fd4a155d2bd62bb9c966b849ef261dc522b81830152610280830152825180840184527f066bda395062463af4dac356f75000fbd403f06460b7740197bc0a9318810bb381527f2f90eda7cd64e477e97b2ab955b47183102177d0bce8802a5fee4a053999bce5818301526102a0830152825180840184527f0d4ec539f36413f18aa5e32633894dcfe0e50ae61de5f5893cf6f4bf83470bc981527f04139a6e9810bc93e75dfd69fd766d164c4eb4329b01c4313b5538c9222070ff818301526102c0830152825180840184527f22e8257f0c17086a1c190c6605372e3bdf31a0f01b98892245deb418028a088f81527f0fd2a6b33fdfab8bf5959276d1eaa4d44ba84b4223ca4bc9cb25ae9f92695c3c818301526102e0830152825180840184527f239f5f650c143b063ad1fa7f32bc32261265a04eaca5d02b1641ec3c7a3251ef81527f01dab24d41be2806d498e21913e1947f9a81aa9b795278c0afbbcf6779eaa43081830152610300830152825180840184527f275a0bb22f8c37a3476d71c556d266909fdde001df48d48a78940343ccb0b48a81527f2a4cc2119d1bd729845e8630c5b1aec652a2f2a7ae690c52238e3eafd44b385681830152610320830152825180840184527f1e1d6ac562a951aa01bc279a090d34488936a6404b3c75294fd260df0d36689381527f1643515b25c47e776b6d99eb3ce8b4613b209886681842e5c39ee92efe72c27281830152610340830152825180840184527f20db30b046148206e1ce5d50fe2559d2e60dbe3472bb605600c6e01d0965df8281527f0d5d5be706d7b3b8a7d3d02043ef0e324676187770f682c791ce1cd3deadc05881830152610360830152825180840184527f1f59b85de9212665c6c3e59fb35ab6609d72f5ad8007449dc8019a5886fad88f81527f21c9b787b5e0109e8ab3c2293b8c67fa9ec871818722fb8bea77aa6477aaae4c8183015261038083015282518084018452600181526002818301526103a083015282518084019093527f033c9a82d0df9b87d2c963f9950073c025e4b62dd83133c92da4fdff5c8cfc2a83527f0d757acf0a4de6b20e939b75bb83b07334d0a4bd6f13d63d2299fc08dfdab7af908301526103c081019190915290565b5f611a016119fc838561505e565b612044565b9392505050565b611a10614cc3565b60408051808201909152805f5160206152fa5f395f51905f52611a3660205f878961500b565b611a3f9161505e565b611a49919061508f565b81526020908101905f5160206152fa5f395f51905f5290611a6e90604090878961500b565b611a779161505e565b611a81919061508f565b90529392505050565b611a92614cdb565b5f611aa08888888888612a0f565b604086019190915260208501919091529083529250611abf8389612d0c565b6080850191909152606084019190915291989197509095505050505050565b611ae6614d0b565b5f611aef614d2a565b8481526101008401805151602080840191909152905181015160408084019190915260a08601805151606085015251820151608084015251611b5291611b37918491016150a2565b60405160208183030381529060405280519060200120612044565b9150611b5d82612d93565b6020850152835260015b6002611b756001601c614fe5565b611b7f91906150d5565b811015611bff57611b9c83604051602001611b3791815260200190565b9250611ba783612d93565b85611bb3846002614fce565b601b8110611bc357611bc3615032565b6020020186611bd3856002614fce565b611bde906001614ff8565b601b8110611bee57611bee615032565b602002019190915252600101611b67565b50611c0c6001601c614fe5565b6001166001148015611c2957506002611c276001601c614fe5565b115b15611c8357611c4482604051602001611b3791815260200190565b91505f611c5083612d93565b856001611c5e81601c614fe5565b611c689190614fe5565b601b8110611c7857611c78615032565b602002019190915250505b509250929050565b611c93614d48565b5f805b601c811015611ce557611cb584604051602001611b3791815260200190565b93505f611cc185612d93565b8584601c8110611cd357611cd3615032565b60200201919091525050600101611c96565b5090929050565b611cf4614d48565b5f805b601c811015611db757611d08614d67565b8481525f5b6008811015611d715786610120015183601c8110611d2d57611d2d615032565b60200201518160088110611d4357611d43615032565b602002015182611d54836001614ff8565b60098110611d6457611d64615032565b6020020152600101611d0d565b50611d8681604051602001611b3791906150e8565b94505f611d9286612d93565b8685601c8110611da457611da4615032565b6020020191909152505050600101611cf7565b50909391925050565b5f5f611dca614d86565b8381525f5b6029811015611e1d578561014001518160298110611def57611def615032565b602002015182611e00836001614ff8565b602a8110611e1057611e10615032565b6020020152600101611dcf565b50611e3281604051602001611b37919061511c565b91505f611e3e83612d93565b5096929550919350505050565b5f5f611e55614da5565b8381525f5b611e666001601c614fe5565b811015611f0c5785610160015181601b8110611e8457611e84615032565b60200201515182611e96836002614fce565b611ea1906001614ff8565b60378110611eb157611eb1615032565b602002015261016086015181601b8110611ecd57611ecd615032565b60200201516020015182826002611ee49190614fce565b611eef906002614ff8565b60378110611eff57611eff615032565b6020020152600101611e5a565b50611e3281604051602001611b379190615150565b5f5f611f2b614dc4565b8381525f5b601c811015611f7e5785610180015181601c8110611f5057611f50615032565b602002015182611f61836001614ff8565b601d8110611f7157611f71615032565b6020020152600101611f30565b50611e3281604051602001611b379190615184565b5f5f611f9d614de3565b8381526101a08501805151602080840191909152905181015160408084019190915251611e3291611b37918491016151b8565b5f5f51602061531a5f395f51905f52825b0692915050565b5f5f51602061531a5f395f51905f5282840990505b92915050565b5f5f51602061531a5f395f51905f528284089392505050565b5f5f51602061531a5f395f51905f52825f51602061531a5f395f51905f520384089392505050565b5f5f51602061531a5f395f51905f5282611fe1565b5f611a01836106368461233c565b81515f908190612079908560016108cb565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b600881101561216b5761216182610636878461201c565b915060010161214a565b50612174614e01565b5f5b60088110156121d5575f84826008811061219257612192615032565b602002015190506121a781610636898561201c565b90506121b28161233c565b9050808383600881106121c7576121c7615032565b602002015250600101612176565b505f5b6008811015612228575f8782600881106121f4576121f4615032565b6020020151905061221181848460088110610eb257610eb2615032565b905061221d8682612003565b9550506001016121d8565b506108638483611fe8565b5f5f612249600161063b8561063689600161201c565b90506122558482611fe8565b95945050505050565b5f612267614d48565b612272868285612dc3565b61227e86868386612f6f565b61228a8686838661315b565b612295868285613386565b6122a086828561357a565b6122ac868683866138c3565b6122b7868285613d76565b6122c2868285614188565b6122cd868285614549565b6108638185614849565b6122df614d48565b81815260015b601c81101561233657612317826122fd600184614fe5565b601c811061230d5761230d615032565b60200201516124d2565b8282601c811061232957612329615032565b60200201526001016122e5565b50919050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f51602061531a5f395f51905f520360808201525f51602061531a5f395f51905f5260a082015260205f60c08360055afa90508061239a575f5ffd5b50505f519392505050565b5f51602061531a5f395f51905f520390565b6123bf614d48565b601c5b80156124c8575f846123d5600184614fe5565b601c81106123e5576123e5615032565b602002015190505f886123f9600185614fe5565b601c811061240957612409615032565b602002015190505f612464612428612421858c611fe8565b6002611fe8565b6106598a612437600189614fe5565b601c811061244757612447615032565b602002015161063661245e8861063660018a61201c565b8761201c565b9050612485816106366108b061247f8761063660018961201c565b86612003565b90508584116124b457975087808561249e600187614fe5565b601c81106124ae576124ae615032565b60200201525b505050806124c1906151eb565b90506123c2565b5095945050505050565b5f611ffd8283611fe8565b6124e5614cc3565b5f6124f2601c6024614ff8565b6124fd906002614ff8565b90505f5b818110156125305761252885826042811061251e5761251e615032565b6020020151612752565b600101612501565b506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b838110156125bd5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612564565b50805184526020810151602085015250505092915050565b6125dd614cc3565b5f5160206152fa5f395f51905f5282602001515f5160206152fa5f395f51905f526126089190614fe5565b612612919061508f565b60208301525090565b5f5f5f61262786612691565b91509150612633614e01565b82518152602080840151818301528251604080840191909152838201516060840152875160808401528782015160a0840152865160c08401528682015160e08401525161268691611b3791849101615200565b979650505050505050565b612699614cc3565b6126a1614cc3565b82516020808501516040860151606087015160cc90811b608892831b604494851b90961795909517949094178652608087015160a088015160c089015160e08a0151871b90841b91851b9092171717868401526101008701516101208801516101408901516101608a0151871b90841b91851b909217171785526101808701516101a08801516101c08901516101e09099015190951b9790911b9390911b1791909117939093179281019290925291565b805160208201515f5f5160206152fa5f395f51905f528380095f5160206152fa5f395f51905f5260035f5160206152fa5f395f51905f52838709085f5160206152fa5f395f51905f5284850914915050806127ef5760405162461bcd60e51b8152602060048201526019602482015278706f696e74206973206e6f74206f6e2074686520637572766560381b604482015260640160405180910390fd5b50505050565b6127fd614cc3565b612805614cc3565b61280f83866148ae565b905061225581856148fe565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516129b19190615234565b5f60405180830381855afa9150503d805f81146129e9576040519150601f19603f3d011682016040523d82523d5f602084013e6129ee565b606091505b5091509150818015610863575080806020019051810190610863919061524a565b5f80808080612a1f866001614ff8565b612a2a906006614ff8565b6001600160401b03811115612a4157612a41615269565b604051908082528060200260200182016040528015612a6a578160200160208202803683370190505b509050865f1b815f81518110612a8257612a82615032565b60209081029190910101525f5b612a9a601088614fe5565b811015612aeb57898982818110612ab357612ab3615032565b9050602002013582826001612ac89190614ff8565b81518110612ad857612ad8615032565b6020908102919091010152600101612a8f565b505f5b6010811015612b5c578a51612b16908260108110612b0e57612b0e615032565b602002015190565b82826010612b258b6001614ff8565b612b2f9190614fe5565b612b399190614ff8565b81518110612b4957612b49615032565b6020908102919091010152600101612aee565b5060208a01515181612b6f886001614ff8565b81518110612b7f57612b7f615032565b6020908102919091018101919091528a810151015181612ba0886001614ff8565b612bab906001614ff8565b81518110612bbb57612bbb615032565b602090810291909101015260408a01515181612bd8886001614ff8565b612be3906002614ff8565b81518110612bf357612bf3615032565b60209081029190910181019190915260408b0151015181612c15886001614ff8565b612c20906003614ff8565b81518110612c3057612c30615032565b602090810291909101015260608a01515181612c4d886001614ff8565b612c58906004614ff8565b81518110612c6857612c68615032565b60209081029190910181019190915260608b0151015181612c8a886001614ff8565b612c95906005614ff8565b81518110612ca557612ca5615032565b602002602001018181525050612cc581604051602001611b37919061527d565b9150612cd082612d93565b6040805160208101869052929750909550612ceb9101611b37565b91505f612cf783612d93565b50959b949a5094985090965091945050505050565b5f5f5f612d17614e20565b85815260c0858101805151602080850191909152905181015160408085019190915260e08801805151606086015251820151608080860191909152880180515160a086015251820151928401929092529051612d7991611b37918491016152b2565b9150612d8482612d93565b90979096509194509092505050565b5f80826001600160801b038116608082901c612dae82612044565b9450612db981612044565b9350505050915091565b5f612dcf846007614943565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612e30612e2a612e0485600361201c565b610636612e1f612e148b5f614943565b6106368c601d614943565b6106368b601c614943565b83611fe8565b9050612eb1612ea6612e8d612e74612e5b8561063b612e508d6002614943565b6106368e601c614943565b61063b612e698c6003614943565b6106368d601d614943565b61063b612e828b6004614943565b6106368c601e614943565b61063b612e9b8a6005614943565b6106368b601f614943565b61063b886001614943565b9050612ed08161063b612ec586600161201c565b6106368a6027614943565b9050612edc8184611fe8565b9050612ee88185611fe8565b8552505f9050612f22612f18612f0d612f0288601c614943565b61063b89601f614943565b610659886024614943565b61063b875f614943565b9050612f338161063684600261201c565b9050612f448161063684600161201c565b9050612f508183611fe8565b9050612f5c8184611fe8565b9050808460015b60200201525050505050565b5f5f5f612fa5612f9b612f8389601c614943565b61063b612f918b6012614943565b8a60600151611fe8565b8760800151612003565b9050612fde81610636612fd4612fbc8b601d614943565b61063b612fca8d6013614943565b8c60600151611fe8565b8960800151612003565b905061300381610636612fd4612ff58b601e614943565b61063b612fca8d6014614943565b905061302881610636612fd461301a8b601f614943565b61063b612fca8d6015614943565b92505f905061304c612f9b61303e89601c614943565b61063b612f918b600e614943565b905061307181610636612fd46130638b601d614943565b61063b612fca8d600f614943565b905061309681610636612fd46130888b601e614943565b61063b612fca8d6010614943565b90506130bb81610636612fd46130ad8b601f614943565b61063b612fca8d6011614943565b91505f90506130e26130dc6130d1896020614943565b61063b8a601a614943565b84611fe8565b9050613117816106596131116130f98b6028614943565b61063b6131078d601b614943565b8c60a00151611fe8565b85611fe8565b90506131238185611fe8565b6040860152505f61314661311161313b89601b614943565b6106368a6028614943565b9050808560035b602002015250505050505050565b5f5f6131b96131a1613189613174612fd48a6016614943565b61063b6131828b6017614943565b8a51611fe8565b61063b6131978a6018614943565b8960200151611fe8565b61063b6131af896019614943565b8860400151611fe8565b91505f6131f06131d76131cd89601c614943565b8860800151612003565b61063b6131e58a6003614943565b6106368b6024614943565b90505f61321961320189601d614943565b61063b61320e8b5f614943565b6106368c6025614943565b90505f61324361322a8a601e614943565b61063b6132388c6001614943565b6106368d6026614943565b905061328261326a61325c8561063b868d5f0151611fe8565b61063b848c60200151611fe8565b61063b6132788c6004614943565b8b60400151611fe8565b93505050505f6132966130dc886021614943565b90505f6132a76130dc896021614943565b90505f6132df6132c66132bb8b6023614943565b61063b8c6006614943565b6106596132d48c6023614943565b6106368d6006614943565b90505f6133036132fd6132f28789611fe8565b6106368d6021614943565b8361201c565b905061330f8188611fe8565b90505f6133376133296133238d6006614943565b87611fe8565b6106596133238e6022614943565b90505f6133458c6023614943565b90505f6133556132fd8384611fe8565b60808c0185905260a08c01849052905061336f818b611fe8565b8b6006602002015250505050505050505050505050565b5f6133925f600161201c565b90505f6133a05f600261201c565b90505f6133ae5f600361201c565b90505f6133ca6133bf88601d614943565b61065989601c614943565b90505f6133e66133db89601e614943565b6106598a601d614943565b90505f6134026133f78a601f614943565b6106598b601e614943565b90505f61341e6134138b6024614943565b6106598c601f614943565b90508361342f81610636818b612003565b905061343f81610636878a612003565b905061344f816106368789612003565b9050613460816106368d6008614943565b905061346c818a611fe8565b60e08b0152508261348181610636818b612003565b905061349181610636868a612003565b90506134a1816106368689612003565b90506134b2816106368d6008614943565b90506134be818a611fe8565b6101008b015250816134d481610636818b612003565b90506134e481610636858a612003565b90506134f4816106368589612003565b9050613505816106368d6008614943565b9050613511818a611fe8565b6101208b0152508061352781610636818b612003565b905061353781610636848a612003565b9050613547816106368489612003565b9050613558816106368d6008614943565b9050613564818a611fe8565b610140909a019990995250505050505050505050565b6135b36040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6135be84601d614943565b81526135cb84601e614943565b60208201526135db846024614943565b60408201526135eb846027614943565b60608201526135fb846026614943565b608082015261360b846025614943565b60a08201525f61361c856002614943565b90505f613629865f614943565b90505f61363d8460400151855f015161201c565b90505f61365285602001518660200151611fe8565b606086015190915086905f906136689080611fe8565b90505f61368661368089602001518a60600151611fe8565b88611fe8565b90505f6136a561369e8a60a001518b60400151612003565b8a51612003565b90506136b46133238288611fe8565b90506136db6136d56136cf6136c9848761201c565b8861201c565b84612003565b83612003565b90506137036136f86136ed8387611fe8565b6106368f6009614943565b61063660018a61201c565b6101608c015250505050602085015160808601515f9161372291612003565b90505f613740613736886060015188611fe8565b886020015161201c565b90505f6137646137508487611fe8565b61063b6131118b60a001518c5f015161201c565b905061378c613781613776838c611fe8565b6106368e6009614943565b61063660018961201c565b6101808b0152505f91506137ad90506137a6836011612003565b8751611fe8565b90505f6137ba8384612003565b90506137c68182612003565b90505f6137d4836009611fe8565b90506137fd6137f76130dc6137f08b60a001518c5f0151612003565b8b51612003565b8261201c565b60c089018190525f9061381890613680906136ed908d611fe8565b905061382b8b600b602002015182612003565b6101608c0152505086515f925061385291506137a69061384b9080612003565b8851612003565b90505f61389261386d836106368a5f01518b60a0015161201c565b6020890151610659906138809080612003565b6106368b602001518c60800151612003565b90506138af89600c602002015161063b6136806136ed858d611fe8565b89600c602002015250505050505050505050565b61392d604051806101e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61394561393b86601e614943565b8560400151611fe8565b8082526139649061063b61395a88601d614943565b8760200151611fe8565b8082526139799061063b6137a688601c614943565b80825261398b9061063b876001614943565b808252602082018190526139a49061065987601f614943565b81526139bf6139b4866024614943565b61065987601c614943565b60808201526139dd6139d2866027614943565b61065987601f614943565b606082015260808101516139ff906139f59080611fe8565b826080015161201c565b6101c08201526080810151613a3f90613a3590613a2e9061063660015f51602061531a5f395f51905f52614fe5565b6001612003565b8260600151611fe8565b60a08201819052613a7590613a6790610636613a5c896002614943565b6106368a6003614943565b61063661311188600a614943565b83600e60200201526101c0810151613a9990613a6790610636613a5c896002614943565b6101e08401528051613abe90610636613ab3886002614943565b610636896003614943565b6101208201525f613add613ad387601f614943565b836020015161201c565b9050613aec6137f78283611fe8565b60e0830152613b09613aff876026614943565b8660400151611fe8565b60408301819052613b2c9061063b613b22896025614943565b8860200151611fe8565b60408301819052613b4c9061063b613b45896024614943565b8851611fe8565b6040830152613b69613b5f876027614943565b836040015161201c565b60408301525f613b88613b7d886026614943565b61065989601e614943565b9050613bda613bb5612e2a613a2e866080015160015f51602061531a5f395f51905f526106369190614fe5565b610636613a2e866040015160015f51602061531a5f395f51905f526106369190614fe5565b60c08401526040830151613bfc90613bf29080611fe8565b846040015161201c565b61010084015260c0830151613c2890613c1a906106368a6004614943565b6106366133238a600a614943565b6102008601526101c0830151613c4790613c1a906106368a6004614943565b610220860152610100830151613c6690613c1a906106368a6004614943565b61024086015260e0830151613c8090610636896004614943565b610140840152613c9f613c94886025614943565b61065989601d614943565b6101608401526080830151613cdd90613b7d90613cd290613a2e9061063660015f51602061531a5f395f51905f52614fe5565b856101600151611fe8565b61018084018190526101208401516101a08501819052613d149161063b90610636613d098c6005614943565b6106368d6002614943565b6101a084018190528351613d34919061063b90610636613d098c5f614943565b6101a08401819052610140840151613d4c9190612003565b6101a08401819052613d66906106366133238a600a614943565b6101a0840181905285600d61314d565b613daf6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613de4613dcb613dc086601c614943565b610636876025614943565b61063b613dd9876024614943565b61063688601d614943565b8152613e29613e1e613e05613dfa87601c614943565b61063688601f614943565b61063b613e1388601d614943565b61063689601e614943565b610659866026614943565b60408201819052613e3e90600160441b611fe8565b60408201819052613e5490610659866027614943565b604082018190528151613e679190612003565b60408201819052613e7d90610636866005614943565b60408201528051613e9290600160441b611fe8565b808252613eb29061063b613ea7876024614943565b610636886025614943565b80825260208201819052613ed990610659613ece87601e614943565b61063b88601f614943565b60208201819052613eef90610636866004614943565b6020820152805160608201819052613f0c9061063b86601f614943565b60608201819052613f3090610659613f25876026614943565b61063b886027614943565b60608201819052613f4590610636865f614943565b8160600181815250505f613f6e613f6483602001518460400151612003565b8360600151612003565b9050613f7f81610636876003614943565b9050613f97613f8f866025614943565b614000611fe8565b60808301819052613fad9061063b876024614943565b60808301819052613fc090614000611fe8565b60808301819052613fd69061063b87601e614943565b60808301819052613fe990614000611fe8565b60808301819052613fff9061063b87601d614943565b6080830181905261401290614000611fe8565b608083018190526140289061063b87601c614943565b6080830181905261403e9061065987601f614943565b6080830181905261405490610636876005614943565b6080830152614067613f8f866026614943565b60a0830181905261407d9061063b876025614943565b60a0830181905261409090614000611fe8565b60a083018190526140a69061063b876024614943565b60a083018190526140b990614000611fe8565b60a083018190526140cf9061063b87601f614943565b60a083018190526140e290614000611fe8565b60a083018190526140f89061063b87601e614943565b60a0830181905261410e90610659876027614943565b60a0830181905261412390610636875f614943565b60a0830181905260808301515f9161413b9190612003565b905061414c81610636886004614943565b90506141588282612003565b60c084018190526141719061063661332389600b614943565b60c084018190528560136020020152505050505050565b6141fe6040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61421761420c85601c614943565b61063b866002614943565b815261423261422785601d614943565b61063b866003614943565b602082015261425061424585601e614943565b61063b866004614943565b604082015261426e61426385601f614943565b61063b866005614943565b606082015280516142a090614299906142929061428b9080611fe8565b8451611fe8565b8351611fe8565b8251611fe8565b608082015260208101516142de906142d4906142ca906142c09080611fe8565b8460200151611fe8565b8360200151611fe8565b8260200151611fe8565b60a0820152604081015161431c9061431290614308906142fe9080611fe8565b8460400151611fe8565b8360400151611fe8565b8260400151611fe8565b60c0820152606081015161435090613a35906143469061433c9080611fe8565b8460600151611fe8565b8360600151611fe8565b60e0820152608081015160a08201516143699190612003565b61010082015260c081015160e08201516143839190612003565b61012082015260a08101516143a79061439c9080612003565b826101200151612003565b61014082015260e08101516143cb906143c09080612003565b826101000151612003565b6101608201526101208101516143e19080612003565b6101e08201819052614402906143f79080612003565b826101600151612003565b6101e08201526101008101516144189080612003565b6101a082018190526144399061442e9080612003565b826101400151612003565b6101a0820181905261016082015161445091612003565b6101808201526101408101516101e082015161446c9190612003565b6101c0820152614480612e2a85600c614943565b61020082018190526102808401516101808301516144ab9261063b91610636906106598a6024614943565b83601460200201526144db836015602002015161063b836102000151610636856101a001516106598a6025614943565b836015602002015261450b836016602002015161063b836102000151610636856101c001516106598a6026614943565b836016602002015261453b836017602002015161063b836102000151610636856101e001516106598a6027614943565b836017602002015250505050565b61459b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60405180608001604052806145d07f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7611fd0565b81526020016145fe7f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b611fd0565b815260200161462b7e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15611fd0565b81526020016146597f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b611fd0565b9052905061467661466b86601c614943565b61063b876002614943565b61012083018190526146b5906146aa9061469f906146949080611fe8565b856101200151611fe8565b846101200151611fe8565b836101200151611fe8565b82526146c285601d614943565b60208301526146d285601e614943565b60408301526146e285601f614943565b60608301528151602083015161470a91613f64916147009190612003565b8460400151612003565b608083015261471d6130dc86600d614943565b610140830152815161473e9061473490835f610eb2565b8360800151612003565b60a083015261476a846018602002015161063b8461014001516106368660a001516106598b6024614943565b61030085015260208201516147859061473490836001610eb2565b60c08301526147b1846019602002015161063b8461014001516106368660c001516106598b6025614943565b61032085015260408201516147cc9061473490836002610eb2565b60e08301526147f884601a602002015161063b8461014001516106368660e001516106598b6026614943565b61034085015260608201516148139061473490836003610eb2565b61010083015261484184601b602002015161063b8461014001516106368661010001516106598b6027614943565b84601b612f63565b5f6148558184816108cb565b905060015b601c8110156148a75761489d8261063b8684601c811061487c5761487c615032565b60200201518661488d600187614fe5565b601b8110610eb257610eb2615032565b915060010161485a565b5092915050565b6148b6614cc3565b6148be614cc3565b604051835181526020840151602082015284604082015260408160608360075afa806148e8575f5ffd5b5080518252602090810151908201529392505050565b614906614cc3565b61490e614cc3565b6040518451815260208501516020820152835160408201526020840151606082015260408160808360065afa806148e8575f5ffd5b5f82826028811115614957576149576152e5565b6029811061496757614967615032565b60200201519392505050565b604051806103e001604052805f81526020015f81526020015f8152602001614999614cc3565b81526020016149a6614cc3565b81526020016149b3614cc3565b81526020016149c0614cc3565b81526020016149cd614cc3565b81526020016149da614cc3565b81526020016149e7614cc3565b81526020016149f4614cc3565b8152602001614a01614cc3565b8152602001614a0e614cc3565b8152602001614a1b614cc3565b8152602001614a28614cc3565b8152602001614a35614cc3565b8152602001614a42614cc3565b8152602001614a4f614cc3565b8152602001614a5c614cc3565b8152602001614a69614cc3565b8152602001614a76614cc3565b8152602001614a83614cc3565b8152602001614a90614cc3565b8152602001614a9d614cc3565b8152602001614aaa614cc3565b8152602001614ab7614cc3565b8152602001614ac4614cc3565b8152602001614ad1614cc3565b8152602001614ade614cc3565b8152602001614aeb614cc3565b8152602001614af8614cc3565b905290565b604051806101e00160405280614b11614e3e565b8152602001614b1e614cc3565b8152602001614b2b614cc3565b8152602001614b38614cc3565b8152602001614b45614cc3565b8152602001614b52614cc3565b8152602001614b5f614cc3565b8152602001614b6c614cc3565b8152602001614b79614cc3565b8152602001614b86614e5d565b8152602001614b93614e8b565b8152602001614ba0614eaa565b8152602001614ade614d48565b604051806101000160405280614bc1614cdb565b8152602001614bce614d0b565b8152602001614bdb614d48565b8152602001614be8614d48565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f8152602001614c44614ed8565b8152602001614c51614ed8565b81526020015f81526020015f81526020015f81526020015f8152602001614af8614d48565b6040518061084001604052806042906020820280368337509192915050565b6040518061084001604052806042905b614cad614cc3565b815260200190600190039081614ca55790505090565b60405180604001604052805f81526020015f81525090565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604051806103600160405280601b906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806105400160405280602a906020820280368337509192915050565b604051806106e001604052806037906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b6040518061020001604052806010906020820280368337509192915050565b604051806103800160405280601c905b614e75614e01565b815260200190600190039081614e6d5790505090565b6040518061052001604052806029906020820280368337509192915050565b604051806103600160405280601b905b614ec2614cc3565b815260200190600190039081614eba5790505090565b60405180608001604052806004906020820280368337509192915050565b5f5f5f5f60408587031215614f09575f5ffd5b84356001600160401b03811115614f1e575f5ffd5b8501601f81018713614f2e575f5ffd5b80356001600160401b03811115614f43575f5ffd5b876020828401011115614f54575f5ffd5b6020918201955093508501356001600160401b03811115614f73575f5ffd5b8501601f81018713614f83575f5ffd5b80356001600160401b03811115614f98575f5ffd5b8760208260051b8401011115614fac575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417611ffd57611ffd614fba565b81810381811115611ffd57611ffd614fba565b80820180821115611ffd57611ffd614fba565b5f5f85851115615019575f5ffd5b83861115615025575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161505757615057614fba565b5060010190565b80356020831015611ffd575f19602084900360031b1b1692915050565b634e487b7160e01b5f52601260045260245ffd5b5f8261509d5761509d61507b565b500690565b5f8183825b60058110156150c65781518352602092830192909101906001016150a7565b50505060a08201905092915050565b5f826150e3576150e361507b565b500490565b5f8183825b600981101561510c5781518352602092830192909101906001016150ed565b5050506101208201905092915050565b5f8183825b602a811015615140578151835260209283019290910190600101615121565b5050506105408201905092915050565b5f8183825b6037811015615174578151835260209283019290910190600101615155565b5050506106e08201905092915050565b5f8183825b601d8110156151a8578151835260209283019290910190600101615189565b5050506103a08201905092915050565b5f8183825b60038110156151dc5781518352602092830192909101906001016151bd565b50505060608201905092915050565b5f816151f9576151f9614fba565b505f190190565b5f8183825b6008811015615224578151835260209283019290910190600101615205565b5050506101008201905092915050565b5f82518060208501845e5f920191825250919050565b5f6020828403121561525a575f5ffd5b81518015158114611a01575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b828110156152a7578151845260209384019390910190600101615289565b509195945050505050565b5f8183825b60078110156152d65781518352602092830192909101906001016152b7565b50505060e08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001";
4
4
  /**
5
5
  * HonkVerifier link references.
6
6
  */ export const HonkVerifierLinkReferences = {};
@@ -97,6 +97,18 @@ export declare const IERC20Abi: readonly [{
97
97
  readonly type: "address";
98
98
  readonly internalType: "address";
99
99
  }];
100
+ }, {
101
+ readonly type: "error";
102
+ readonly name: "GSE__CannotChangePublicKeys";
103
+ readonly inputs: readonly [{
104
+ readonly name: "existingPk1x";
105
+ readonly type: "uint256";
106
+ readonly internalType: "uint256";
107
+ }, {
108
+ readonly name: "existingPk1y";
109
+ readonly type: "uint256";
110
+ readonly internalType: "uint256";
111
+ }];
100
112
  }, {
101
113
  readonly type: "error";
102
114
  readonly name: "GSE__FailedToRemove";
@@ -137,6 +149,10 @@ export declare const IERC20Abi: readonly [{
137
149
  readonly type: "uint256";
138
150
  readonly internalType: "uint256";
139
151
  }];
152
+ }, {
153
+ readonly type: "error";
154
+ readonly name: "GSE__InvalidProofOfPossession";
155
+ readonly inputs: readonly [];
140
156
  }, {
141
157
  readonly type: "error";
142
158
  readonly name: "GSE__InvalidRollupAddress";
@@ -193,6 +209,14 @@ export declare const IERC20Abi: readonly [{
193
209
  readonly type: "uint256";
194
210
  readonly internalType: "uint256";
195
211
  }];
212
+ }, {
213
+ readonly type: "error";
214
+ readonly name: "GSE__ProofOfPossessionAlreadySeen";
215
+ readonly inputs: readonly [{
216
+ readonly name: "hashedPK1";
217
+ readonly type: "bytes32";
218
+ readonly internalType: "bytes32";
219
+ }];
196
220
  }, {
197
221
  readonly type: "error";
198
222
  readonly name: "GSE__RollupAlreadyRegistered";
@@ -333,6 +357,22 @@ export declare const IERC20Abi: readonly [{
333
357
  readonly type: "uint256";
334
358
  readonly internalType: "Slot";
335
359
  }];
360
+ }, {
361
+ readonly type: "error";
362
+ readonly name: "Governance__BlsKeyInvalidG1Point";
363
+ readonly inputs: readonly [{
364
+ readonly name: "";
365
+ readonly type: "uint256[2]";
366
+ readonly internalType: "uint256[2]";
367
+ }];
368
+ }, {
369
+ readonly type: "error";
370
+ readonly name: "Governance__BlsKeyInvalidG2Point";
371
+ readonly inputs: readonly [{
372
+ readonly name: "";
373
+ readonly type: "uint256[4]";
374
+ readonly internalType: "uint256[4]";
375
+ }];
336
376
  }, {
337
377
  readonly type: "error";
338
378
  readonly name: "Governance__CallFailed";
@@ -1 +1 @@
1
- {"version":3,"file":"IERC20Abi.d.ts","sourceRoot":"","sources":["../src/IERC20Abi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuoEZ,CAAC"}
1
+ {"version":3,"file":"IERC20Abi.d.ts","sourceRoot":"","sources":["../src/IERC20Abi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6rEZ,CAAC"}
package/dest/IERC20Abi.js CHANGED
@@ -125,6 +125,22 @@
125
125
  }
126
126
  ]
127
127
  },
128
+ {
129
+ "type": "error",
130
+ "name": "GSE__CannotChangePublicKeys",
131
+ "inputs": [
132
+ {
133
+ "name": "existingPk1x",
134
+ "type": "uint256",
135
+ "internalType": "uint256"
136
+ },
137
+ {
138
+ "name": "existingPk1y",
139
+ "type": "uint256",
140
+ "internalType": "uint256"
141
+ }
142
+ ]
143
+ },
128
144
  {
129
145
  "type": "error",
130
146
  "name": "GSE__FailedToRemove",
@@ -179,6 +195,11 @@
179
195
  }
180
196
  ]
181
197
  },
198
+ {
199
+ "type": "error",
200
+ "name": "GSE__InvalidProofOfPossession",
201
+ "inputs": []
202
+ },
182
203
  {
183
204
  "type": "error",
184
205
  "name": "GSE__InvalidRollupAddress",
@@ -255,6 +276,17 @@
255
276
  }
256
277
  ]
257
278
  },
279
+ {
280
+ "type": "error",
281
+ "name": "GSE__ProofOfPossessionAlreadySeen",
282
+ "inputs": [
283
+ {
284
+ "name": "hashedPK1",
285
+ "type": "bytes32",
286
+ "internalType": "bytes32"
287
+ }
288
+ ]
289
+ },
258
290
  {
259
291
  "type": "error",
260
292
  "name": "GSE__RollupAlreadyRegistered",
@@ -443,6 +475,28 @@
443
475
  }
444
476
  ]
445
477
  },
478
+ {
479
+ "type": "error",
480
+ "name": "Governance__BlsKeyInvalidG1Point",
481
+ "inputs": [
482
+ {
483
+ "name": "",
484
+ "type": "uint256[2]",
485
+ "internalType": "uint256[2]"
486
+ }
487
+ ]
488
+ },
489
+ {
490
+ "type": "error",
491
+ "name": "Governance__BlsKeyInvalidG2Point",
492
+ "inputs": [
493
+ {
494
+ "name": "",
495
+ "type": "uint256[4]",
496
+ "internalType": "uint256[4]"
497
+ }
498
+ ]
499
+ },
446
500
  {
447
501
  "type": "error",
448
502
  "name": "Governance__CallFailed",