@aztec/l1-artifacts 4.0.0-nightly.20250907 → 4.0.0-nightly.20260107

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 (206) hide show
  1. package/dest/CoinIssuerAbi.d.ts +464 -161
  2. package/dest/CoinIssuerAbi.d.ts.map +1 -1
  3. package/dest/CoinIssuerAbi.js +597 -193
  4. package/dest/CoinIssuerBytecode.d.ts +2 -2
  5. package/dest/CoinIssuerBytecode.d.ts.map +1 -1
  6. package/dest/CoinIssuerBytecode.js +1 -1
  7. package/dest/DateGatedRelayerAbi.d.ts +2254 -0
  8. package/dest/DateGatedRelayerAbi.d.ts.map +1 -0
  9. package/dest/DateGatedRelayerAbi.js +2997 -0
  10. package/dest/DateGatedRelayerBytecode.d.ts +9 -0
  11. package/dest/DateGatedRelayerBytecode.d.ts.map +1 -0
  12. package/dest/DateGatedRelayerBytecode.js +6 -0
  13. package/dest/EmpireBaseAbi.d.ts +395 -143
  14. package/dest/EmpireBaseAbi.d.ts.map +1 -1
  15. package/dest/EmpireBaseAbi.js +491 -153
  16. package/dest/EmpireBaseBytecode.d.ts +1 -1
  17. package/dest/EmpireSlasherDeploymentExtLibAbi.d.ts +427 -143
  18. package/dest/EmpireSlasherDeploymentExtLibAbi.d.ts.map +1 -1
  19. package/dest/EmpireSlasherDeploymentExtLibAbi.js +552 -171
  20. package/dest/EmpireSlasherDeploymentExtLibBytecode.d.ts +2 -2
  21. package/dest/EmpireSlasherDeploymentExtLibBytecode.d.ts.map +1 -1
  22. package/dest/EmpireSlasherDeploymentExtLibBytecode.js +1 -1
  23. package/dest/EmpireSlashingProposerAbi.d.ts +395 -143
  24. package/dest/EmpireSlashingProposerAbi.d.ts.map +1 -1
  25. package/dest/EmpireSlashingProposerAbi.js +491 -153
  26. package/dest/EmpireSlashingProposerBytecode.d.ts +2 -2
  27. package/dest/EmpireSlashingProposerBytecode.js +1 -1
  28. package/dest/ErrorsAbi.d.ts +427 -143
  29. package/dest/ErrorsAbi.d.ts.map +1 -1
  30. package/dest/ErrorsAbi.js +552 -171
  31. package/dest/FeeAssetHandlerAbi.d.ts +411 -143
  32. package/dest/FeeAssetHandlerAbi.d.ts.map +1 -1
  33. package/dest/FeeAssetHandlerAbi.js +508 -149
  34. package/dest/FeeAssetHandlerBytecode.d.ts +2 -2
  35. package/dest/FeeAssetHandlerBytecode.js +1 -1
  36. package/dest/FeeJuicePortalAbi.d.ts +441 -157
  37. package/dest/FeeJuicePortalAbi.d.ts.map +1 -1
  38. package/dest/FeeJuicePortalAbi.js +553 -172
  39. package/dest/FeeJuicePortalBytecode.d.ts +2 -2
  40. package/dest/FeeJuicePortalBytecode.js +1 -1
  41. package/dest/GSEAbi.d.ts +431 -193
  42. package/dest/GSEAbi.d.ts.map +1 -1
  43. package/dest/GSEAbi.js +546 -224
  44. package/dest/GSEBytecode.d.ts +2 -2
  45. package/dest/GSEBytecode.d.ts.map +1 -1
  46. package/dest/GSEBytecode.js +1 -1
  47. package/dest/GovernanceAbi.d.ts +423 -167
  48. package/dest/GovernanceAbi.d.ts.map +1 -1
  49. package/dest/GovernanceAbi.js +544 -202
  50. package/dest/GovernanceBytecode.d.ts +2 -2
  51. package/dest/GovernanceBytecode.d.ts.map +1 -1
  52. package/dest/GovernanceBytecode.js +1 -1
  53. package/dest/GovernanceProposerAbi.d.ts +395 -143
  54. package/dest/GovernanceProposerAbi.d.ts.map +1 -1
  55. package/dest/GovernanceProposerAbi.js +491 -153
  56. package/dest/GovernanceProposerBytecode.d.ts +2 -2
  57. package/dest/GovernanceProposerBytecode.js +1 -1
  58. package/dest/HonkVerifierAbi.d.ts +427 -143
  59. package/dest/HonkVerifierAbi.d.ts.map +1 -1
  60. package/dest/HonkVerifierAbi.js +554 -173
  61. package/dest/HonkVerifierBytecode.d.ts +2 -2
  62. package/dest/HonkVerifierBytecode.d.ts.map +1 -1
  63. package/dest/HonkVerifierBytecode.js +1 -1
  64. package/dest/IERC20Abi.d.ts +427 -143
  65. package/dest/IERC20Abi.d.ts.map +1 -1
  66. package/dest/IERC20Abi.js +551 -170
  67. package/dest/IERC20Bytecode.d.ts +1 -1
  68. package/dest/IVerifierAbi.d.ts +427 -143
  69. package/dest/IVerifierAbi.d.ts.map +1 -1
  70. package/dest/IVerifierAbi.js +552 -171
  71. package/dest/IVerifierBytecode.d.ts +1 -1
  72. package/dest/InboxAbi.d.ts +453 -167
  73. package/dest/InboxAbi.d.ts.map +1 -1
  74. package/dest/InboxAbi.js +575 -192
  75. package/dest/InboxBytecode.d.ts +2 -2
  76. package/dest/InboxBytecode.d.ts.map +1 -1
  77. package/dest/InboxBytecode.js +1 -1
  78. package/dest/MockVerifierAbi.d.ts +427 -143
  79. package/dest/MockVerifierAbi.d.ts.map +1 -1
  80. package/dest/MockVerifierAbi.js +552 -171
  81. package/dest/MockVerifierBytecode.d.ts +2 -2
  82. package/dest/MockVerifierBytecode.js +1 -1
  83. package/dest/MockZKPassportVerifierAbi.d.ts +471 -176
  84. package/dest/MockZKPassportVerifierAbi.d.ts.map +1 -1
  85. package/dest/MockZKPassportVerifierAbi.js +607 -210
  86. package/dest/MockZKPassportVerifierBytecode.d.ts +2 -2
  87. package/dest/MockZKPassportVerifierBytecode.d.ts.map +1 -1
  88. package/dest/MockZKPassportVerifierBytecode.js +1 -1
  89. package/dest/MultiAdderAbi.d.ts +430 -146
  90. package/dest/MultiAdderAbi.d.ts.map +1 -1
  91. package/dest/MultiAdderAbi.js +559 -178
  92. package/dest/MultiAdderBytecode.d.ts +2 -2
  93. package/dest/MultiAdderBytecode.d.ts.map +1 -1
  94. package/dest/MultiAdderBytecode.js +1 -1
  95. package/dest/NewGovernanceProposerPayloadAbi.d.ts +427 -143
  96. package/dest/NewGovernanceProposerPayloadAbi.d.ts.map +1 -1
  97. package/dest/NewGovernanceProposerPayloadAbi.js +556 -175
  98. package/dest/NewGovernanceProposerPayloadBytecode.d.ts +2 -2
  99. package/dest/NewGovernanceProposerPayloadBytecode.js +1 -1
  100. package/dest/OutboxAbi.d.ts +434 -150
  101. package/dest/OutboxAbi.d.ts.map +1 -1
  102. package/dest/OutboxAbi.js +563 -182
  103. package/dest/OutboxBytecode.d.ts +2 -2
  104. package/dest/OutboxBytecode.d.ts.map +1 -1
  105. package/dest/OutboxBytecode.js +1 -1
  106. package/dest/RegisterNewRollupVersionPayloadAbi.d.ts +427 -143
  107. package/dest/RegisterNewRollupVersionPayloadAbi.d.ts.map +1 -1
  108. package/dest/RegisterNewRollupVersionPayloadAbi.js +556 -175
  109. package/dest/RegisterNewRollupVersionPayloadBytecode.d.ts +2 -2
  110. package/dest/RegisterNewRollupVersionPayloadBytecode.js +1 -1
  111. package/dest/RegistryAbi.d.ts +411 -143
  112. package/dest/RegistryAbi.d.ts.map +1 -1
  113. package/dest/RegistryAbi.js +508 -149
  114. package/dest/RegistryBytecode.d.ts +2 -2
  115. package/dest/RegistryBytecode.js +1 -1
  116. package/dest/RewardDistributorAbi.d.ts +427 -143
  117. package/dest/RewardDistributorAbi.d.ts.map +1 -1
  118. package/dest/RewardDistributorAbi.js +556 -175
  119. package/dest/RewardDistributorBytecode.d.ts +2 -2
  120. package/dest/RewardDistributorBytecode.js +1 -1
  121. package/dest/{RewardDeploymentExtLibAbi.d.ts → RewardExtLibAbi.d.ts} +437 -145
  122. package/dest/{RewardDeploymentExtLibAbi.d.ts.map → RewardExtLibAbi.d.ts.map} +1 -1
  123. package/dest/{RewardDeploymentExtLibAbi.js → RewardExtLibAbi.js} +565 -173
  124. package/dest/RewardExtLibBytecode.d.ts +9 -0
  125. package/dest/RewardExtLibBytecode.d.ts.map +1 -0
  126. package/dest/RewardExtLibBytecode.js +6 -0
  127. package/dest/RollupAbi.d.ts +954 -465
  128. package/dest/RollupAbi.d.ts.map +1 -1
  129. package/dest/RollupAbi.js +1217 -574
  130. package/dest/RollupBytecode.d.ts +77 -35
  131. package/dest/RollupBytecode.d.ts.map +1 -1
  132. package/dest/RollupBytecode.js +90 -34
  133. package/dest/RollupOperationsExtLibAbi.d.ts +424 -166
  134. package/dest/RollupOperationsExtLibAbi.d.ts.map +1 -1
  135. package/dest/RollupOperationsExtLibAbi.js +528 -183
  136. package/dest/RollupOperationsExtLibBytecode.d.ts +2 -2
  137. package/dest/RollupOperationsExtLibBytecode.d.ts.map +1 -1
  138. package/dest/RollupOperationsExtLibBytecode.js +1 -1
  139. package/dest/RollupStorage.d.ts +6 -13
  140. package/dest/RollupStorage.d.ts.map +1 -1
  141. package/dest/RollupStorage.js +5 -13
  142. package/dest/SlashFactoryAbi.d.ts +427 -143
  143. package/dest/SlashFactoryAbi.d.ts.map +1 -1
  144. package/dest/SlashFactoryAbi.js +552 -171
  145. package/dest/SlashFactoryBytecode.d.ts +2 -2
  146. package/dest/SlashFactoryBytecode.js +1 -1
  147. package/dest/SlasherAbi.d.ts +495 -153
  148. package/dest/SlasherAbi.d.ts.map +1 -1
  149. package/dest/SlasherAbi.js +629 -173
  150. package/dest/SlasherBytecode.d.ts +2 -2
  151. package/dest/SlasherBytecode.d.ts.map +1 -1
  152. package/dest/SlasherBytecode.js +1 -1
  153. package/dest/StakingAssetHandlerAbi.d.ts +549 -196
  154. package/dest/StakingAssetHandlerAbi.d.ts.map +1 -1
  155. package/dest/StakingAssetHandlerAbi.js +686 -216
  156. package/dest/StakingAssetHandlerBytecode.d.ts +2 -2
  157. package/dest/StakingAssetHandlerBytecode.d.ts.map +1 -1
  158. package/dest/StakingAssetHandlerBytecode.js +1 -1
  159. package/dest/TallySlasherDeploymentExtLibAbi.d.ts +427 -143
  160. package/dest/TallySlasherDeploymentExtLibAbi.d.ts.map +1 -1
  161. package/dest/TallySlasherDeploymentExtLibAbi.js +552 -171
  162. package/dest/TallySlasherDeploymentExtLibBytecode.d.ts +2 -2
  163. package/dest/TallySlasherDeploymentExtLibBytecode.d.ts.map +1 -1
  164. package/dest/TallySlasherDeploymentExtLibBytecode.js +1 -1
  165. package/dest/TallySlashingProposerAbi.d.ts +413 -147
  166. package/dest/TallySlashingProposerAbi.d.ts.map +1 -1
  167. package/dest/TallySlashingProposerAbi.js +516 -159
  168. package/dest/TallySlashingProposerBytecode.d.ts +2 -2
  169. package/dest/TallySlashingProposerBytecode.d.ts.map +1 -1
  170. package/dest/TallySlashingProposerBytecode.js +1 -1
  171. package/dest/TestERC20Abi.d.ts +353 -149
  172. package/dest/TestERC20Abi.d.ts.map +1 -1
  173. package/dest/TestERC20Abi.js +428 -155
  174. package/dest/TestERC20Bytecode.d.ts +2 -2
  175. package/dest/TestERC20Bytecode.js +1 -1
  176. package/dest/TokenPortalAbi.d.ts +428 -144
  177. package/dest/TokenPortalAbi.d.ts.map +1 -1
  178. package/dest/TokenPortalAbi.js +553 -172
  179. package/dest/TokenPortalBytecode.d.ts +2 -2
  180. package/dest/TokenPortalBytecode.d.ts.map +1 -1
  181. package/dest/TokenPortalBytecode.js +1 -1
  182. package/dest/UniswapPortalAbi.d.ts +429 -145
  183. package/dest/UniswapPortalAbi.d.ts.map +1 -1
  184. package/dest/UniswapPortalAbi.js +558 -177
  185. package/dest/UniswapPortalBytecode.d.ts +2 -2
  186. package/dest/UniswapPortalBytecode.js +1 -1
  187. package/dest/ValidatorOperationsExtLibAbi.d.ts +490 -145
  188. package/dest/ValidatorOperationsExtLibAbi.d.ts.map +1 -1
  189. package/dest/ValidatorOperationsExtLibAbi.js +628 -167
  190. package/dest/ValidatorOperationsExtLibBytecode.d.ts +2 -2
  191. package/dest/ValidatorOperationsExtLibBytecode.d.ts.map +1 -1
  192. package/dest/ValidatorOperationsExtLibBytecode.js +1 -1
  193. package/dest/ValidatorSelectionLibAbi.d.ts +427 -143
  194. package/dest/ValidatorSelectionLibAbi.d.ts.map +1 -1
  195. package/dest/ValidatorSelectionLibAbi.js +552 -171
  196. package/dest/ValidatorSelectionLibBytecode.d.ts +2 -2
  197. package/dest/ValidatorSelectionLibBytecode.js +1 -1
  198. package/dest/checksum.d.ts +2 -2
  199. package/dest/checksum.js +1 -1
  200. package/dest/index.d.ts +5 -3
  201. package/dest/index.d.ts.map +1 -1
  202. package/dest/index.js +4 -2
  203. package/package.json +3 -2
  204. package/dest/RewardDeploymentExtLibBytecode.d.ts +0 -9
  205. package/dest/RewardDeploymentExtLibBytecode.d.ts.map +0 -1
  206. package/dest/RewardDeploymentExtLibBytecode.js +0 -6
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * HonkVerifier bytecode.
3
3
  */
4
- export declare const HonkVerifierBytecode = "0x610100604052348015610010575f5ffd5b506302000000608052601960a0527f27b76d01cc1ea78ae0c8cf3225eb613b0d972a52d3a043786ec39610b786aef160c05260ae60e05260805160a05160c05160e051615ada6100de5f395f818161018101526107ae01525f61016001525f8181605b01528181609401528181610101015281816101a2015281816108c7015281816109d401528181610a0001528181610a7a015281816112bb0152818161135b01528181611598015281816115e401528181611632015281816116890152612d5b01525f5050615ada5ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b3660046156fe565b610054565b604051901515815260200160405180910390f35b5f5f61007f7f000000000000000000000000000000000000000000000000000000000000000061028c565b905061008c8160206157d6565b85146100ee577f0000000000000000000000000000000000000000000000000000000000000000856100bf8360206157d6565b6040516359895a5360e01b81526004810193909352602483019190915260448201526064015b60405180910390fd5b5f6100f761033a565b90505f61012588887f000000000000000000000000000000000000000000000000000000000000000061034f565b90506010826040015161013891906157ed565b85146101575760405163fa06659360e01b815260040160405180910390fd5b5f6101c68288887f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006106a6565b90506102168787808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152505085518551606081015160809091015191935091506001610758565b815160a001525f61022783836108bf565b905080610247576040516313f8744360e31b815260040160405180910390fd5b5f6102538486856109c0565b905080610273576040516352ec174560e11b815260040160405180910390fd5b81801561027d5750805b9b9a5050505050505050505050565b5f8061029a600260086157d6565b905060016102a96008856157d6565b6102b391906157d6565b6102bd9082615800565b90506102cb600160296157d6565b6102d59082615800565b905060026102e46001856157ed565b6102ee91906157d6565b6102f89082615800565b90506103056001846157d6565b61030f9082615800565b905061031c6002806157d6565b6103269082615800565b9050610333601082615800565b9392505050565b610342615206565b61034a61175b565b905090565b610357615390565b5f805b60108110156103b957610386868387610374602083615800565b9261038193929190615813565b612096565b835182601081106103995761039961583a565b6020020181815250506020826103af9190615800565b915060010161035a565b506103dd8582866103cb604083615800565b926103d893929190615813565b6120a9565b60208301526103ed604082615800565b90506104008582866103cb604083615800565b6040808401919091526104139082615800565b90506104268582866103cb604083615800565b6060830152610436604082615800565b90506104498582866103cb604083615800565b60c0830152610459604082615800565b905061046c8582866103cb604083615800565b60e083015261047c604082615800565b905061048f8582866103cb604083615800565b608083015261049f604082615800565b90506104b28582866103cb604083615800565b6101008301526104c3604082615800565b90506104d68582866103cb604083615800565b60a08301526104e6604082615800565b90505f5b83811015610564575f5b600881101561055b5761050e878488610374602083615800565b84610120015183601c81106105255761052561583a565b6020020151826008811061053b5761053b61583a565b6020020181815250506020836105519190615800565b92506001016104f4565b506001016104ea565b505f5b60298110156105b857610581868387610374602083615800565b83610140015182602981106105985761059861583a565b6020020181815250506020826105ae9190615800565b9150600101610567565b505f5b6105c66001856157ed565b81101561060f576105de8683876103cb604083615800565b83610160015182601b81106105f5576105f561583a565b6020020152610605604083615800565b91506001016105bb565b505f5b838110156106625761062b868387610374602083615800565b83610180015182601c81106106425761064261583a565b6020020181815250506020826106589190615800565b9150600101610612565b506106748582866103cb604083615800565b6101a0830152610685604082615800565b90506106988582866103cb604083615800565b6101c0830152509392505050565b6106ae615440565b5f6106bd88888888888661212b565b90835290506106cc818961217f565b602084019190915290506106e0818461232c565b604084019190915290506106f58882856123bb565b60608401919091529050610709888261248f565b6080840191909152905061071e88828561251a565b60a0840191909152905061073388828561268e565b60c084019190915290506107478882612752565b5060e0830152509695505050505050565b5f60018082610785866107808961077b6107768a6310000000615800565b61278f565b6127a7565b6127c2565b90505f6107a38761079e8a61077b6107768b6001615800565b6127db565b90505f5b6107d260107f00000000000000000000000000000000000000000000000000000000000000006157ed565b81101561083f575f6107fc8c83815181106107ef576107ef61583a565b6020026020010151612803565b905061080c8661077b86846127c2565b955061081c8561077b85846127c2565b9450610828848b6127c2565b9350610834838b6127db565b9250506001016107a7565b505f5b60108110156108a6575f8a826010811061085e5761085e61583a565b602002015190506108738661077b86846127c2565b95506108838561077b85846127c2565b945061088f848b6127c2565b935061089b838b6127db565b925050600101610842565b506108b18484612818565b9a9950505050505050505050565b5f806001815b7f0000000000000000000000000000000000000000000000000000000000000000811015610996575f86610120015182601c81106109055761090561583a565b602002015190505f6109178286612826565b905080610937576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c811061094e5761094e61583a565b6020020151905061095f8382612846565b9550610986886040015185601c811061097a5761097a61583a565b602002015186836129f5565b94505050508060010190506108c5565b505f6109b0866101400151865f0151876020015185612a20565b90508281145b9695505050505050565b5f6109c9615499565b5f6109f88460a001517f0000000000000000000000000000000000000000000000000000000000000000612a99565b90505f610a267f00000000000000000000000000000000000000000000000000000000000000006024615800565b610a31906002615800565b6001600160401b03811115610a4857610a4861584e565b604051908082528060200260200182016040528015610a71578160200160208202803683370190505b5090505f610aa07f00000000000000000000000000000000000000000000000000000000000000006024615800565b610aab906002615800565b6001600160401b03811115610ac257610ac261584e565b604051908082528060200260200182016040528015610afb57816020015b610ae8615509565b815260200190600190039081610ae05790505b509050610b2d610b288760e00151855f81518110610b1b57610b1b61583a565b60200260200101516127db565b612b62565b84610120018181525050610b61610b288760e00151855f81518110610b5457610b5461583a565b60200260200101516127c2565b610140850181905261012085015160c0880151610b829261078091906127a7565b845260a0860151610bb290610b9690612b62565b61077b86610120015161079e8a60c001518961014001516127a7565b6020850152815160019083905f90610bcc57610bcc61583a565b602002602001018181525050876101a00151815f81518110610bf057610bf061583a565b6020908102919091010152600160a08501525f60c08501528351610c1390612bd2565b60408501526020840151610c2690612bd2565b606085015260015b60248111610cd157610c4885604001518660a001516127a7565b838281518110610c5a57610c5a61583a565b602002602001018181525050610ca38560c001516107808b6101400151600185610c8491906157ed565b60298110610c9457610c9461583a565b60200201518860a001516127a7565b60c086015260a08501516080880151610cbc91906127a7565b60a0860152610cca81615862565b9050610c2e565b505f5b6005811015610d9f575f610ce9601d83615800565b90505f610cf7602484615800565b9050610d28858381518110610d0e57610d0e61583a565b602002602001015161078089606001518a60a001516127a7565b858381518110610d3a57610d3a61583a565b602002602001018181525050610d778760c001516107808d61014001518460298110610d6857610d6861583a565b60200201518a60a001516127a7565b60c088015260a087015160808a0151610d9091906127a7565b60a08801525050600101610cd4565b50866060015181600181518110610db857610db861583a565b6020026020010181905250866080015181600281518110610ddb57610ddb61583a565b60200260200101819052508660a0015181600381518110610dfe57610dfe61583a565b60200260200101819052508660c0015181600481518110610e2157610e2161583a565b60200260200101819052508660e0015181600581518110610e4457610e4461583a565b602002602001018190525086610100015181600681518110610e6857610e6861583a565b602002602001018190525086610120015181600781518110610e8c57610e8c61583a565b602002602001018190525086610140015181600881518110610eb057610eb061583a565b602002602001018190525086610160015181600981518110610ed457610ed461583a565b6020026020010181905250866101c0015181600a81518110610ef857610ef861583a565b602002602001018190525086610180015181600b81518110610f1c57610f1c61583a565b6020026020010181905250866101a0015181600c81518110610f4057610f4061583a565b6020026020010181905250866101e0015181600d81518110610f6457610f6461583a565b602002602001018190525086610200015181600e81518110610f8857610f8861583a565b602002602001018190525086610220015181600f81518110610fac57610fac61583a565b602002602001018190525086610240015181601081518110610fd057610fd061583a565b602002602001018190525086610260015181601181518110610ff457610ff461583a565b6020026020010181905250866102800151816012815181106110185761101861583a565b6020026020010181905250866102a001518160138151811061103c5761103c61583a565b6020026020010181905250866102c00151816014815181106110605761106061583a565b6020026020010181905250866102e00151816015815181106110845761108461583a565b6020026020010181905250866103000151816016815181106110a8576110a861583a565b6020026020010181905250866103200151816017815181106110cc576110cc61583a565b6020026020010181905250866103400151816018815181106110f0576110f061583a565b6020026020010181905250866103600151816019815181106111145761111461583a565b602002602001018190525086610380015181601a815181106111385761113861583a565b6020026020010181905250866103a0015181601b8151811061115c5761115c61583a565b6020026020010181905250866103c0015181601c815181106111805761118061583a565b6020026020010181905250876020015181601d815181106111a3576111a361583a565b6020026020010181905250876040015181601e815181106111c6576111c661583a565b6020026020010181905250876060015181601f815181106111e9576111e961583a565b602002602001018190525087608001518160208151811061120c5761120c61583a565b60200260200101819052508760a001518160218151811061122f5761122f61583a565b6020026020010181905250876101000151816022815181106112535761125361583a565b60200260200101819052508760c00151816023815181106112765761127661583a565b60200260200101819052508760e00151816024815181106112995761129961583a565b60200260200101819052505f6112df87606001518660c001518b6101800151877f0000000000000000000000000000000000000000000000000000000000000000612be4565b9050611309815f815181106112f6576112f661583a565b60200260200101518661012001516127a7565b608086018190526101808a01515160c089015161133a92916107809161132f91906127a7565b8861014001516127a7565b608086015260c087015161134d90612d42565b60a08601525f5b61137f60017f00000000000000000000000000000000000000000000000000000000000000006157ed565b81101561157c576113af610b288960e001518784600161139f9190615800565b81518110610b1b57610b1b61583a565b61012087015260e08801516113de90610b2890876113ce856001615800565b81518110610b5457610b5461583a565b61014087015260a08601516101208701516113f991906127a7565b61016087015260a086015160c089015161142191611416916127a7565b8761014001516127a7565b61018087018190526114449061143690612bd2565b610780886101600151612bd2565b848261145260246001615800565b61145c9190615800565b8151811061146c5761146c61583a565b6020026020010181815250505f6114af8761018001518c61018001518460016114959190615800565b601c81106114a5576114a561583a565b60200201516127a7565b90506114e981610780896101600151868660016114cc9190615800565b815181106114dc576114dc61583a565b60200260200101516127a7565b90506114f98760800151826127c2565b608088015260a087015160c08a015161151f91611515916127a7565b8a60c001516127a7565b60a08801526101608b015182601b811061153b5761153b61583a565b6020020151848361154e60246001615800565b6115589190615800565b815181106115685761156861583a565b602090810291909101015250600101611354565b50604080518082019091526001815260026020820152826115be7f00000000000000000000000000000000000000000000000000000000000000006024615800565b815181106115ce576115ce61583a565b602090810291909101015260808501518361160a7f00000000000000000000000000000000000000000000000000000000000000006024615800565b8151811061161a5761161a61583a565b60209081029190910101526101c089015180836116587f00000000000000000000000000000000000000000000000000000000000000006024615800565b611663906001615800565b815181106116735761167361583a565b602090810291909101015260e0880151846116af7f00000000000000000000000000000000000000000000000000000000000000006024615800565b6116ba906001615800565b815181106116ca576116ca61583a565b6020026020010181815250505f6116e18486612d4d565b90505f6116ed83612e5d565b90505f6116fe8d5f01518484612ea3565b90505f5f61170e8f5f0151612f19565b9150915061171b82612fda565b61172481612fda565b61172f858385613079565b945061173c848285613079565b9350611748858561309f565b9f9e505050505050505050505050505050565b611763615206565b50604080516103e08101825263020000008152601960208083019190915260ae82840152825180840184527f11a7a72ab9c84ba85f7ce248d1e95b0301cf033b758bd8698a46f42bfe080c2281527f026797cc7f4108e8a73b79af8afdf37a8a248ea568a0a73af5552415ab1654f5818301526060830152825180840184527f2955230171649b265519608f34cd6493ce24270b068dbb0ecadf423e1ceb197f81527f2aae76193862c0eb16aefa9e9c19c145f027d2782300bb15de6f490b4dfb8921818301526080830152825180840184527f293f2002fb518146b8b4126c58d6eab1c0bd92dc1aa9836548df4b2b84fd63fa81527f0e428717bcb646448cb750da71236a418cc62134862b2900241189fc310eaef18183015260a0830152825180840184527f01769432c893e80a29ba5b1cc058a9941ea87737cfb0f23e2987573aa16b33d381527f21c127a4f597cbdae9e3970781eff9da45aff9e62e053293771af654f12a0b498183015260c0830152825180840184527f2af347c8f9b40f82a2cb7fd3e6b96e53c18ab2253fc3915b8be72c3bae177d1c81527f0bde59fa4bf2a21e94a0cc0e8ee5377496f9827c04c1e7819a147e318a2ae0b38183015260e0830152825180840184527f2953162287652ce150786cfffba3a968b4e5d378f5ec5e0d9e8274797e14de0881527f20cd82ffa9d903fc21a1c1fe28abfa5673ccef0c8a5aa59df119e0805efdfc3d81830152610100830152825180840184527f107d2d79c20982125b9f302008ecbd7b7f25eebc71271311c28f58223170c78b81527f0f3c9104533084fca88d92d900c94cb1400899b1c3c2b40cf32807f7d8517f4781830152610120830152825180840184527f15dcbe0db3d034c82c80400ac7f3aa53a42e5d1dedbd0704ce11bc4d71e9895981527f1bc74a76a98e11deccb2bce4eee40f9e73b3b30454e5db4d6476c55126acce2181830152610140830152825180840184527f0871168649cbc0441f1234995e5353f04b724ad2a8b0755dd802cd879043c16981527f302c06c3fe3aee1157d48876d8b12e06c0f849d66438c03fa6cabc8756ba284781830152610160830152825180840184527f29f7acf34b95134f31724e86315a45176f8f8e8a0d98e09e78ce53f3175bcb7181527f18c048e35e4d5443a9a5c6d8688d640f4b4b413548d377cd5c8b9f5ed67f8d3081830152610180830152825180840184527f12ca84fbf9f5c8283e0007c1c44eef4769f180606b248e4e441662be57a65ae081527f0f3b92564b6a4235346bef1407f901c64b45ac0aeee560f87113dcea9fe04b3f818301526101a0830152825180840184527f08660ce1208402729f1946036ac74322a052c4eb2f2fa87ee1924ae3987c268781527f129c97fef6c35c522a19f0e249d5fbdcff853c008b3f1f1205f63fdc46e32e89818301526101c0830152825180840184527f0ea3262373e20232c5d6a21dc2a4531361fd912dc91f0ece8b457495d368607081527f29152a83b2e1a9df18312a8ca62cebb78eec479741bbdbad019c774c2b2edf6d818301526101e0830152825180840184527f06e149274cf33818b12d07803a7148c574bfdade407e0f0342e225f7ab1ce7ca81527f243d93cc233615be9cc6ee05a5dff4d4f4b6a04675115764a12b857fb33b4af481830152610200830152825180840184527f28523d76ae8dd9f19edb5766cac5f959b4495ea1a5b2af3e885a59d0b746974e81527f16bb162ffeb0fd1dbd92eb082c0c404627629df624f118c11c29909b0d91c26081830152610220830152825180840184527f1c2ec4d7f9d65b8aacd953e0cc0a62bc1121cd5e41ea445394298d1f30cefead81527f24a7128bd403b543cb8b64a1b8b5bd81a4ea5309722bbf352624cf76844f4e8f81830152610240830152825180840184527f07196b86b0b3bf50024c6eac810fe07444033e33ab9f8c9a0cf9dec88316fb5d81527f2b3d64053f1b282f649893b4e42fcf7cb3fa38703f68871e355c29c02ab380c581830152610260830152825180840184527f0b1af30b3dd63ae4616f72b0372f938bd06ad5ba9a0f9c2fb46ccab8a9f16ab381527f286d5d8510c8d044701ec5f03621a131636a6e29384624ecf91ec4d92e0ede9d81830152610280830152825180840184527ebe0277c5bcaaa1e0bca92f1a2aa4dcdd36f41fbdb2698046ad0aa896c6852381527f30071c99b0ddf3463adbfab2aeb1424ff3f179114bbc63a04c02141223d25080818301526102a0830152825180840184527f18feb8b9442ea3cefee50d6393936678e2ed825ea2719956c68c94d79563defe81527f238c1be2d6bd7fd7c24912ac29b73389a3ba43113d0b93e7648ab46e6faca63d818301526102c0830152825180840184527f16f8ef9cd9196f016ee08c94814ebacefdabbb226d658d9afca44053b5bcb93b81527f249ebd3951a4677df874b8425fdda032ae309f9884e5fa4f8540a03082742c2c818301526102e0830152825180840184527f2b6a8fb05374f12129a2ab44aa31da8fdb3738502d8d3b3d5b520b7174a4410b81527f1654d0d283ce14dac4a7a763cd36788e5ade3b281b970552480cac0013aadf1881830152610300830152825180840184527f275a0bb22f8c37a3476d71c556d266909fdde001df48d48a78940343ccb0b48a81527f2a4cc2119d1bd729845e8630c5b1aec652a2f2a7ae690c52238e3eafd44b385681830152610320830152825180840184527f1e1d6ac562a951aa01bc279a090d34488936a6404b3c75294fd260df0d36689381527f1643515b25c47e776b6d99eb3ce8b4613b209886681842e5c39ee92efe72c27281830152610340830152825180840184527f20db30b046148206e1ce5d50fe2559d2e60dbe3472bb605600c6e01d0965df8281527f0d5d5be706d7b3b8a7d3d02043ef0e324676187770f682c791ce1cd3deadc05881830152610360830152825180840184527f1f59b85de9212665c6c3e59fb35ab6609d72f5ad8007449dc8019a5886fad88f81527f21c9b787b5e0109e8ab3c2293b8c67fa9ec871818722fb8bea77aa6477aaae4c8183015261038083015282518084018452600181526002818301526103a083015282518084019093527f19d2fe7fafa2b39b777720b870d7ad825dabf6f520a462e65a7d7385a60b36e983527f089d0b1ec26396c39d17274a132ac640da654fb818ae72bd30185240dec588d9908301526103c081019190915290565b5f6103336120a4838561587a565b612803565b6120b1615509565b60408051808201909152805f516020615a9a5f395f51905f526120d760205f8789615813565b6120e09161587a565b6120ea91906158ab565b81526020908101905f516020615a9a5f395f51905f529061210f906040908789615813565b6121189161587a565b61212291906158ab565b90529392505050565b612133615521565b5f6121418888888888613293565b6040860191909152602085019190915290835292506121608389613590565b6080850191909152606084019190915291989197509095505050505050565b612187615551565b5f612190615570565b8481526101008401805151602080840191909152905181015160408084019190915260a086018051516060850152518201516080840152516121f3916121d8918491016158be565b60405160208183030381529060405280519060200120612803565b91506121fe82613617565b6020850152835260015b60026122166001601c6157ed565b61222091906158f1565b8110156122a05761223d836040516020016121d891815260200190565b925061224883613617565b856122548460026157d6565b601b81106122645761226461583a565b60200201866122748560026157d6565b61227f906001615800565b601b811061228f5761228f61583a565b602002019190915252600101612208565b506122ad6001601c6157ed565b60011660011480156122ca575060026122c86001601c6157ed565b115b15612324576122e5826040516020016121d891815260200190565b91505f6122f183613617565b8560016122ff81601c6157ed565b61230991906157ed565b601b81106123195761231961583a565b602002019190915250505b509250929050565b61233461558e565b5f61234b846040516020016121d891815260200190565b935061235684613617565b50825260015b838110156123b357612394836123736001846157ed565b601c81106123835761238361583a565b6020020151846114956001856157ed565b8382601c81106123a6576123a661583a565b602002015260010161235c565b509093915050565b6123c361558e565b5f805b83811015612485576123d66155ad565b8581525f5b600881101561243f5787610120015183601c81106123fb576123fb61583a565b602002015181600881106124115761241161583a565b602002015182612422836001615800565b600981106124325761243261583a565b60200201526001016123db565b50612454816040516020016121d89190615904565b95505f61246087613617565b8685601c81106124725761247261583a565b60200201919091525050506001016123c6565b5090949293505050565b5f5f6124996155cc565b8381525f5b60298110156124ec5785610140015181602981106124be576124be61583a565b6020020151826124cf836001615800565b602a81106124df576124df61583a565b602002015260010161249e565b50612501816040516020016121d89190615938565b91505f61250d83613617565b5096929550919350505050565b5f80806125286001856157ed565b6125339060026157d6565b61253e906001615800565b6001600160401b038111156125555761255561584e565b60405190808252806020026020018201604052801561257e578160200160208202803683370190505b50905084815f815181106125945761259461583a565b60209081029190910101525f5b6125ac6001866157ed565b81101561265f5786610160015181601b81106125ca576125ca61583a565b602002015151826125dc8360026157d6565b6125e7906001615800565b815181106125f7576125f761583a565b60200260200101818152505086610160015181601b811061261a5761261a61583a565b6020020151602001518282600261263191906157d6565b61263c906002615800565b8151811061264c5761264c61583a565b60209081029190910101526001016125a1565b50612674816040516020016121d8919061596c565b91505f61268083613617565b509792965091945050505050565b5f808061269c846001615800565b6001600160401b038111156126b3576126b361584e565b6040519080825280602002602001820160405280156126dc578160200160208202803683370190505b50905084815f815181106126f2576126f261583a565b60209081029190910101525f5b8481101561265f5786610180015181601c811061271e5761271e61583a565b60200201518261272f836001615800565b8151811061273f5761273f61583a565b60209081029190910101526001016126ff565b5f5f61275c6155eb565b8381526101a08501805151602080840191909152905181015160408084019190915251612501916121d8918491016159a1565b5f5f516020615aba5f395f51905f52825b0692915050565b5f5f516020615aba5f395f51905f5282840990505b92915050565b5f5f516020615aba5f395f51905f528284089392505050565b5f5f516020615aba5f395f51905f52825f516020615aba5f395f51905f520384089392505050565b5f5f516020615aba5f395f51905f52826127a0565b5f6103338361077b84612b62565b815160208301515f91829161283b91906127c2565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b600881101561292d576129238261077b87846127db565b915060010161290c565b50612936615609565b5f5b6008811015612997575f8482600881106129545761295461583a565b602002015190506129698161077b89856127db565b905061297481612b62565b9050808383600881106129895761298961583a565b602002015250600101612938565b505f5b60088110156129ea575f8782600881106129b6576129b661583a565b602002015190506129d3818484600881106114a5576114a561583a565b90506129df86826127c2565b95505060010161299a565b506109b684836127a7565b5f5f612a0b60016107808561077b8960016127db565b9050612a1784826127a7565b95945050505050565b5f612a2961558e565b612a34868285613647565b612a40868683866137f3565b612a4c868683866139df565b612a57868285613c0a565b612a62868285613dfe565b612a6e86868386614147565b612a798682856145f3565b612a84868285614a05565b612a8f868285614dc6565b6109b681856150c6565b60605f826001600160401b03811115612ab457612ab461584e565b604051908082528060200260200182016040528015612add578160200160208202803683370190505b50905083815f81518110612af357612af361583a565b602090810291909101015260015b83811015612b5a57612b3582612b186001846157ed565b81518110612b2857612b2861583a565b6020026020010151612d42565b828281518110612b4757612b4761583a565b6020908102919091010152600101612b01565b509392505050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f516020615aba5f395f51905f520360808201525f516020615aba5f395f51905f5260a082015260205f60c08360055afa80612bbe575f5ffd5b505f51608091909101604052949350505050565b5f516020615aba5f395f51905f520390565b60605f826001600160401b03811115612bff57612bff61584e565b604051908082528060200260200182016040528015612c28578160200160208202803683370190505b509050825b8015612d37575f85612c406001846157ed565b81518110612c5057612c5061583a565b602002602001015190505f89600184612c6991906157ed565b601c8110612c7957612c7961583a565b602002015190505f612cd4612c98612c91858d6127a7565b60026127a7565b61079e8b612ca76001896157ed565b601c8110612cb757612cb761583a565b602002015161077b612cce8861077b60018a6127db565b876127db565b9050612cf58161077b610b28612cef8761077b6001896127db565b866127c2565b99508990508085612d076001876157ed565b81518110612d1757612d1761583a565b60200260200101818152505050505080612d30906159d4565b9050612c2d565b509695505050505050565b5f6127bc82836127a7565b612d55615509565b5f612d817f00000000000000000000000000000000000000000000000000000000000000006024615800565b612d8c906002615800565b90505f5b81811015612dc257612dba858281518110612dad57612dad61583a565b6020026020010151612fda565b600101612d90565b50604051600190815b60018401811015612e275760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612dcb565b5080518452602081015160208501525080612e55576040516352ec174560e11b815260040160405180910390fd5b505092915050565b612e65615509565b5f516020615a9a5f395f51905f5282602001515f516020615a9a5f395f51905f52612e9091906157ed565b612e9a91906158ab565b60208301525090565b5f5f5f612eaf86612f19565b91509150612ebb615609565b82518152602080840151818301528251604080840191909152838201516060840152875160808401528782015160a0840152865160c08401528682015160e084015251612f0e916121d8918491016159e9565b979650505050505050565b612f21615509565b612f29615509565b82516020808501516040860151606087015160cc90811b608892831b604494851b90961795909517949094178652608087015160a088015160c089015160e08a0151871b90841b91851b9092171717868401526101008701516101208801516101408901516101608a0151871b90841b91851b909217171785526101808701516101a08801516101c08901516101e09099015190951b9790911b9390911b1791909117939093179281019290925291565b805160208201515f5f516020615a9a5f395f51905f528380095f516020615a9a5f395f51905f5260035f516020615a9a5f395f51905f52838709085f516020615a9a5f395f51905f5284850914915050806130735760405162461bcd60e51b8152602060048201526019602482015278706f696e74206973206e6f74206f6e2074686520637572766560381b60448201526064016100e5565b50505050565b613081615509565b613089615509565b613093838661511f565b9050612a178185615175565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516132359190615a1d565b5f60405180830381855afa9150503d805f811461326d576040519150601f19603f3d011682016040523d82523d5f602084013e613272565b606091505b50915091508180156109b65750808060200190518101906109b69190615a33565b5f808080806132a3866001615800565b6132ae906006615800565b6001600160401b038111156132c5576132c561584e565b6040519080825280602002602001820160405280156132ee578160200160208202803683370190505b509050865f1b815f815181106133065761330661583a565b60209081029190910101525f5b61331e6010886157ed565b81101561336f578989828181106133375761333761583a565b905060200201358282600161334c9190615800565b8151811061335c5761335c61583a565b6020908102919091010152600101613313565b505f5b60108110156133e0578a5161339a9082601081106133925761339261583a565b602002015190565b828260106133a98b6001615800565b6133b391906157ed565b6133bd9190615800565b815181106133cd576133cd61583a565b6020908102919091010152600101613372565b5060208a015151816133f3886001615800565b815181106134035761340361583a565b6020908102919091018101919091528a810151015181613424886001615800565b61342f906001615800565b8151811061343f5761343f61583a565b602090810291909101015260408a0151518161345c886001615800565b613467906002615800565b815181106134775761347761583a565b60209081029190910181019190915260408b0151015181613499886001615800565b6134a4906003615800565b815181106134b4576134b461583a565b602090810291909101015260608a015151816134d1886001615800565b6134dc906004615800565b815181106134ec576134ec61583a565b60209081029190910181019190915260608b015101518161350e886001615800565b613519906005615800565b815181106135295761352961583a565b602002602001018181525050613549816040516020016121d8919061596c565b915061355482613617565b604080516020810186905292975090955061356f91016121d8565b91505f61357b83613617565b50959b949a5094985090965091945050505050565b5f5f5f61359b615628565b85815260c0858101805151602080850191909152905181015160408085019190915260e08801805151606086015251820151608080860191909152880180515160a0860152518201519284019290925290516135fd916121d891849101615a52565b915061360882613617565b90979096509194509092505050565b5f80826001600160801b038116608082901c61363282612803565b945061363d81612803565b9350505050915091565b5f6136538460076151d6565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f6136b46136ae6136888560036127db565b61077b6136a36136988b5f6151d6565b61077b8c601d6151d6565b61077b8b601c6151d6565b836127a7565b905061373561372a6137116136f86136df856107806136d48d60026151d6565b61077b8e601c6151d6565b6107806136ed8c60036151d6565b61077b8d601d6151d6565b6107806137068b60046151d6565b61077b8c601e6151d6565b61078061371f8a60056151d6565b61077b8b601f6151d6565b6107808860016151d6565b9050613754816107806137498660016127db565b61077b8a60276151d6565b905061376081846127a7565b905061376c81856127a7565b8552505f90506137a661379c61379161378688601c6151d6565b61078089601f6151d6565b61079e8860246151d6565b610780875f6151d6565b90506137b78161077b8460026127db565b90506137c88161077b8460016127db565b90506137d481836127a7565b90506137e081846127a7565b9050808460015b60200201525050505050565b5f5f5f61382961381f61380789601c6151d6565b6107806138158b60126151d6565b8a606001516127a7565b87608001516127c2565b90506138628161077b6138586138408b601d6151d6565b61078061384e8d60136151d6565b8c606001516127a7565b89608001516127c2565b90506138878161077b6138586138798b601e6151d6565b61078061384e8d60146151d6565b90506138ac8161077b61385861389e8b601f6151d6565b61078061384e8d60156151d6565b92505f90506138d061381f6138c289601c6151d6565b6107806138158b600e6151d6565b90506138f58161077b6138586138e78b601d6151d6565b61078061384e8d600f6151d6565b905061391a8161077b61385861390c8b601e6151d6565b61078061384e8d60106151d6565b905061393f8161077b6138586139318b601f6151d6565b61078061384e8d60116151d6565b91505f90506139666139606139558960206151d6565b6107808a601a6151d6565b846127a7565b905061399b8161079e61399561397d8b60286151d6565b61078061398b8d601b6151d6565b8c60a001516127a7565b856127a7565b90506139a781856127a7565b6040860152505f6139ca6139956139bf89601b6151d6565b61077b8a60286151d6565b9050808560035b602002015250505050505050565b5f5f613a3d613a25613a0d6139f86138588a60166151d6565b610780613a068b60176151d6565b8a516127a7565b610780613a1b8a60186151d6565b89602001516127a7565b610780613a338960196151d6565b88604001516127a7565b91505f613a74613a5b613a5189601c6151d6565b88608001516127c2565b610780613a698a60036151d6565b61077b8b60246151d6565b90505f613a9d613a8589601d6151d6565b610780613a928b5f6151d6565b61077b8c60256151d6565b90505f613ac7613aae8a601e6151d6565b610780613abc8c60016151d6565b61077b8d60266151d6565b9050613b06613aee613ae085610780868d5f01516127a7565b610780848c602001516127a7565b610780613afc8c60046151d6565b8b604001516127a7565b93505050505f613b1a6139608860216151d6565b90505f613b2b6139608960216151d6565b90505f613b63613b4a613b3f8b60236151d6565b6107808c60066151d6565b61079e613b588c60236151d6565b61077b8d60066151d6565b90505f613b87613b81613b7687896127a7565b61077b8d60216151d6565b836127db565b9050613b9381886127a7565b90505f613bbb613bad613ba78d60066151d6565b876127a7565b61079e613ba78e60226151d6565b90505f613bc98c60236151d6565b90505f613bd9613b8183846127a7565b60808c0185905260a08c018490529050613bf3818b6127a7565b8b6006602002015250505050505050505050505050565b5f613c165f60016127db565b90505f613c245f60026127db565b90505f613c325f60036127db565b90505f613c4e613c4388601d6151d6565b61079e89601c6151d6565b90505f613c6a613c5f89601e6151d6565b61079e8a601d6151d6565b90505f613c86613c7b8a601f6151d6565b61079e8b601e6151d6565b90505f613ca2613c978b60246151d6565b61079e8c601f6151d6565b905083613cb38161077b818b6127c2565b9050613cc38161077b878a6127c2565b9050613cd38161077b87896127c2565b9050613ce48161077b8d60086151d6565b9050613cf0818a6127a7565b60e08b01525082613d058161077b818b6127c2565b9050613d158161077b868a6127c2565b9050613d258161077b86896127c2565b9050613d368161077b8d60086151d6565b9050613d42818a6127a7565b6101008b01525081613d588161077b818b6127c2565b9050613d688161077b858a6127c2565b9050613d788161077b85896127c2565b9050613d898161077b8d60086151d6565b9050613d95818a6127a7565b6101208b01525080613dab8161077b818b6127c2565b9050613dbb8161077b848a6127c2565b9050613dcb8161077b84896127c2565b9050613ddc8161077b8d60086151d6565b9050613de8818a6127a7565b610140909a019990995250505050505050505050565b613e376040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613e4284601d6151d6565b8152613e4f84601e6151d6565b6020820152613e5f8460246151d6565b6040820152613e6f8460276151d6565b6060820152613e7f8460266151d6565b6080820152613e8f8460256151d6565b60a08201525f613ea08560026151d6565b90505f613ead865f6151d6565b90505f613ec18460400151855f01516127db565b90505f613ed6856020015186602001516127a7565b606086015190915086905f90613eec90806127a7565b90505f613f0a613f0489602001518a606001516127a7565b886127a7565b90505f613f29613f228a60a001518b604001516127c2565b8a516127c2565b9050613f38613ba782886127a7565b9050613f5f613f59613f53613f4d84876127db565b886127db565b846127c2565b836127c2565b9050613f87613f7c613f7183876127a7565b61077b8f60096151d6565b61077b60018a6127db565b6101608c015250505050602085015160808601515f91613fa6916127c2565b90505f613fc4613fba8860600151886127a7565b88602001516127db565b90505f613fe8613fd484876127a7565b6107806139958b60a001518c5f01516127db565b9050614010614005613ffa838c6127a7565b61077b8e60096151d6565b61077b6001896127db565b6101808b0152505f9150614031905061402a8360116127c2565b87516127a7565b90505f61403e83846127c2565b905061404a81826127c2565b90505f6140588360096127a7565b905061408161407b6139606140748b60a001518c5f01516127c2565b8b516127c2565b826127db565b60c089018190525f9061409c90613f0490613f71908d6127a7565b90506140af8b600b6020020151826127c2565b6101608c0152505086515f92506140d6915061402a906140cf90806127c2565b88516127c2565b90505f6141166140f18361077b8a5f01518b60a001516127db565b602089015161079e9061410490806127c2565b61077b8b602001518c608001516127c2565b905061413389600c6020020151610780613f04613f71858d6127a7565b89600c602002015250505050505050505050565b6141b1604051806101e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6141c96141bf86601e6151d6565b85604001516127a7565b8082526141e8906107806141de88601d6151d6565b87602001516127a7565b8082526141fd9061078061402a88601c6151d6565b80825261420f906107808760016151d6565b808252602082018190526142289061079e87601f6151d6565b81526142436142388660246151d6565b61079e87601c6151d6565b60808201526142616142568660276151d6565b61079e87601f6151d6565b6060820152608081015161427a9061077b8160016127db565b6101c082015260808101516142ba906142b0906142a99061077b60015f516020615aba5f395f51905f526157ed565b60016127c2565b82606001516127a7565b60a082018190526142f0906142e29061077b6142d78960026151d6565b61077b8a60036151d6565b61077b61399588600a6151d6565b83600e60200201526101c0810151614314906142e29061077b6142d78960026151d6565b6101e084015280516143399061077b61432e8860026151d6565b61077b8960036151d6565b6101208201525f61435861434e87601f6151d6565b83602001516127db565b90506143698161077b8360016127db565b60e083015261438661437c8760266151d6565b86604001516127a7565b604083018190526143a99061078061439f8960256151d6565b88602001516127a7565b604083018190526143c9906107806143c28960246151d6565b88516127a7565b60408301526143e66143dc8760276151d6565b83604001516127db565b60408301525f6144056143fa8860266151d6565b61079e89601e6151d6565b90506144576144326136ae6142a9866080015160015f516020615aba5f395f51905f5261077b91906157ed565b61077b6142a9866040015160015f516020615aba5f395f51905f5261077b91906157ed565b60c084015260408301516144799061446f90806127a7565b84604001516127db565b61010084015260c08301516144a5906144979061077b8a60046151d6565b61077b613ba78a600a6151d6565b6102008601526101c08301516144c4906144979061077b8a60046151d6565b6102208601526101008301516144e3906144979061077b8a60046151d6565b61024086015260e08301516144fd9061077b8960046151d6565b61014084015261451c6145118860256151d6565b61079e89601d6151d6565b610160840152608083015161455a906143fa9061454f906142a99061077b60015f516020615aba5f395f51905f526157ed565b8561016001516127a7565b61018084018190526101208401516101a08501819052614591916107809061077b6145868c60056151d6565b61077b8d60026151d6565b6101a0840181905283516145b191906107809061077b6145868c5f6151d6565b6101a084018190526101408401516145c991906127c2565b6101a084018190526145e39061077b613ba78a600a6151d6565b6101a0840181905285600d6139d1565b61462c6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61466161464861463d86601c6151d6565b61077b8760256151d6565b6107806146568760246151d6565b61077b88601d6151d6565b81526146a661469b61468261467787601c6151d6565b61077b88601f6151d6565b61078061469088601d6151d6565b61077b89601e6151d6565b61079e8660266151d6565b604082018190526146bb90600160441b6127a7565b604082018190526146d19061079e8660276151d6565b6040820181905281516146e491906127c2565b604082018190526146fa9061077b8660056151d6565b6040820152805161470f90600160441b6127a7565b80825261472f906107806147248760246151d6565b61077b8860256151d6565b808252602082018190526147569061079e61474b87601e6151d6565b61078088601f6151d6565b6020820181905261476c9061077b8660046151d6565b60208201528051606082018190526147899061078086601f6151d6565b606082018190526147ad9061079e6147a28760266151d6565b6107808860276151d6565b606082018190526147c29061077b865f6151d6565b8160600181815250505f6147eb6147e1836020015184604001516127c2565b83606001516127c2565b90506147fc8161077b8760036151d6565b905061481461480c8660256151d6565b6140006127a7565b6080830181905261482a906107808760246151d6565b6080830181905261483d906140006127a7565b608083018190526148539061078087601e6151d6565b60808301819052614866906140006127a7565b6080830181905261487c9061078087601d6151d6565b6080830181905261488f906140006127a7565b608083018190526148a59061078087601c6151d6565b608083018190526148bb9061079e87601f6151d6565b608083018190526148d19061077b8760056151d6565b60808301526148e461480c8660266151d6565b60a083018190526148fa906107808760256151d6565b60a0830181905261490d906140006127a7565b60a08301819052614923906107808760246151d6565b60a08301819052614936906140006127a7565b60a0830181905261494c9061078087601f6151d6565b60a0830181905261495f906140006127a7565b60a083018190526149759061078087601e6151d6565b60a0830181905261498b9061079e8760276151d6565b60a083018190526149a09061077b875f6151d6565b60a0830181905260808301515f916149b891906127c2565b90506149c98161077b8860046151d6565b90506149d582826127c2565b60c084018190526149ee9061077b613ba789600b6151d6565b60c084018190528560136020020152505050505050565b614a7b6040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b614a94614a8985601c6151d6565b6107808660026151d6565b8152614aaf614aa485601d6151d6565b6107808660036151d6565b6020820152614acd614ac285601e6151d6565b6107808660046151d6565b6040820152614aeb614ae085601f6151d6565b6107808660056151d6565b60608201528051614b1d90614b1690614b0f90614b0890806127a7565b84516127a7565b83516127a7565b82516127a7565b60808201526020810151614b5b90614b5190614b4790614b3d90806127a7565b84602001516127a7565b83602001516127a7565b82602001516127a7565b60a08201526040810151614b9990614b8f90614b8590614b7b90806127a7565b84604001516127a7565b83604001516127a7565b82604001516127a7565b60c08201526060810151614bcd906142b090614bc390614bb990806127a7565b84606001516127a7565b83606001516127a7565b60e0820152608081015160a0820151614be691906127c2565b61010082015260c081015160e0820151614c0091906127c2565b61012082015260a0810151614c2490614c1990806127c2565b8261012001516127c2565b61014082015260e0810151614c4890614c3d90806127c2565b8261010001516127c2565b610160820152610120810151614c5e90806127c2565b6101e08201819052614c7f90614c7490806127c2565b8261016001516127c2565b6101e0820152610100810151614c9590806127c2565b6101a08201819052614cb690614cab90806127c2565b8261014001516127c2565b6101a08201819052610160820151614ccd916127c2565b6101808201526101408101516101e0820151614ce991906127c2565b6101c0820152614cfd6136ae85600c6151d6565b6102008201819052610280840151610180830151614d28926107809161077b9061079e8a60246151d6565b8360146020020152614d58836015602002015161078083610200015161077b856101a0015161079e8a60256151d6565b8360156020020152614d88836016602002015161078083610200015161077b856101c0015161079e8a60266151d6565b8360166020020152614db8836017602002015161078083610200015161077b856101e0015161079e8a60276151d6565b836017602002015250505050565b614e186040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f6040518060800160405280614e4d7f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e761278f565b8152602001614e7b7f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b61278f565b8152602001614ea87e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac1561278f565b8152602001614ed67f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b61278f565b90529050614ef3614ee886601c6151d6565b6107808760026151d6565b6101208301819052614f3290614f2790614f1c90614f1190806127a7565b8561012001516127a7565b8461012001516127a7565b8361012001516127a7565b8252614f3f85601d6151d6565b6020830152614f4f85601e6151d6565b6040830152614f5f85601f6151d6565b606083015281516020830151614f87916147e191614f7d91906127c2565b84604001516127c2565b6080830152614f9a61396086600d6151d6565b6101408301528151614fbb90614fb190835f6114a5565b83608001516127c2565b60a0830152614fe7846018602002015161078084610140015161077b8660a0015161079e8b60246151d6565b610300850152602082015161500290614fb1908360016114a5565b60c083015261502e846019602002015161078084610140015161077b8660c0015161079e8b60256151d6565b610320850152604082015161504990614fb1908360026114a5565b60e083015261507584601a602002015161078084610140015161077b8660e0015161079e8b60266151d6565b610340850152606082015161509090614fb1908360036114a5565b6101008301526150be84601b602002015161078084610140015161077b86610100015161079e8b60276151d6565b84601b6137e7565b815160015b601c8110156151185761510e826107808684601c81106150ed576150ed61583a565b6020020151866150fe6001876157ed565b601b81106114a5576114a561583a565b91506001016150cb565b5092915050565b615127615509565b61512f615509565b604051835181526020840151602082015284604082015260408160608360075afa80615159575f5ffd5b5080518252602080820151908301526060016040529392505050565b61517d615509565b615185615509565b6040518451815260208501516020820152835160408201526020840151606082015260408160808360065afa806151ba575f5ffd5b5080518252602080820151908301526080016040529392505050565b5f828260288111156151ea576151ea615a85565b602981106151fa576151fa61583a565b60200201519392505050565b604051806103e001604052805f81526020015f81526020015f815260200161522c615509565b8152602001615239615509565b8152602001615246615509565b8152602001615253615509565b8152602001615260615509565b815260200161526d615509565b815260200161527a615509565b8152602001615287615509565b8152602001615294615509565b81526020016152a1615509565b81526020016152ae615509565b81526020016152bb615509565b81526020016152c8615509565b81526020016152d5615509565b81526020016152e2615509565b81526020016152ef615509565b81526020016152fc615509565b8152602001615309615509565b8152602001615316615509565b8152602001615323615509565b8152602001615330615509565b815260200161533d615509565b815260200161534a615509565b8152602001615357615509565b8152602001615364615509565b8152602001615371615509565b815260200161537e615509565b815260200161538b615509565b905290565b604051806101e001604052806153a4615646565b81526020016153b1615509565b81526020016153be615509565b81526020016153cb615509565b81526020016153d8615509565b81526020016153e5615509565b81526020016153f2615509565b81526020016153ff615509565b815260200161540c615509565b8152602001615419615665565b8152602001615426615693565b81526020016154336156b2565b815260200161537161558e565b604051806101000160405280615454615521565b8152602001615461615551565b815260200161546e61558e565b815260200161547b61558e565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020016154d76156e0565b81526020016154e46156e0565b81526020015f81526020015f81526020015f81526020015f8152602001606081525090565b60405180604001604052805f81526020015f81525090565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604051806103600160405280601b906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806105400160405280602a906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b6040518061020001604052806010906020820280368337509192915050565b604051806103800160405280601c905b61567d615609565b8152602001906001900390816156755790505090565b6040518061052001604052806029906020820280368337509192915050565b604051806103600160405280601b905b6156ca615509565b8152602001906001900390816156c25790505090565b60405180608001604052806004906020820280368337509192915050565b5f5f5f5f60408587031215615711575f5ffd5b84356001600160401b03811115615726575f5ffd5b8501601f81018713615736575f5ffd5b80356001600160401b0381111561574b575f5ffd5b87602082840101111561575c575f5ffd5b6020918201955093508501356001600160401b0381111561577b575f5ffd5b8501601f8101871361578b575f5ffd5b80356001600160401b038111156157a0575f5ffd5b8760208260051b84010111156157b4575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176127bc576127bc6157c2565b818103818111156127bc576127bc6157c2565b808201808211156127bc576127bc6157c2565b5f5f85851115615821575f5ffd5b8386111561582d575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b5f60018201615873576158736157c2565b5060010190565b803560208310156127bc575f19602084900360031b1b1692915050565b634e487b7160e01b5f52601260045260245ffd5b5f826158b9576158b9615897565b500690565b5f8183825b60058110156158e25781518352602092830192909101906001016158c3565b50505060a08201905092915050565b5f826158ff576158ff615897565b500490565b5f8183825b6009811015615928578151835260209283019290910190600101615909565b5050506101208201905092915050565b5f8183825b602a81101561595c57815183526020928301929091019060010161593d565b5050506105408201905092915050565b81515f90829060208501835b82811015615996578151845260209384019390910190600101615978565b509195945050505050565b5f8183825b60038110156159c55781518352602092830192909101906001016159a6565b50505060608201905092915050565b5f816159e2576159e26157c2565b505f190190565b5f8183825b6008811015615a0d5781518352602092830192909101906001016159ee565b5050506101008201905092915050565b5f82518060208501845e5f920191825250919050565b5f60208284031215615a43575f5ffd5b81518015158114610333575f5ffd5b5f8183825b6007811015615a76578151835260209283019290910190600101615a57565b50505060e08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001";
4
+ export declare const HonkVerifierBytecode = "0x610100604052348015610010575f5ffd5b506301000000608052601860a0527f1e00f0a8746b94225fb97cdd22989aab31d75d3dfe27f2b5b7dc73220c444fba60c05260ae60e05260805160a05160c05160e051615d996100de5f395f818161018101526107ae01525f61016001525f8181605b01528181609401528181610101015281816101a2015281816108c7015281816109d401528181610a0001528181610a7b015281816112d401528181611374015281816115c30152818161160f0152818161165d015281816116b40152612cfc01525f5050615d995ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b36600461599f565b610054565b604051901515815260200160405180910390f35b5f5f61007f7f000000000000000000000000000000000000000000000000000000000000000061028c565b905061008c816020615a7b565b85146100ee577f0000000000000000000000000000000000000000000000000000000000000000856100bf836020615a7b565b6040516359895a5360e01b81526004810193909352602483019190915260448201526064015b60405180910390fd5b5f6100f761033a565b90505f61012588887f000000000000000000000000000000000000000000000000000000000000000061034f565b9050601082604001516101389190615a92565b85146101575760405163fa06659360e01b815260040160405180910390fd5b5f6101c68288887f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006106a6565b90506102168787808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152505085518551606081015160809091015191935091506001610758565b815160a001525f61022783836108bf565b905080610247576040516313f8744360e31b815260040160405180910390fd5b5f6102538486856109c0565b905080610273576040516352ec174560e11b815260040160405180910390fd5b81801561027d5750805b9b9a5050505050505050505050565b5f8061029a60026008615a7b565b905060016102a9600885615a7b565b6102b39190615a7b565b6102bd9082615aa5565b90506102cb60016029615a7b565b6102d59082615aa5565b905060026102e4600185615a92565b6102ee9190615a7b565b6102f89082615aa5565b9050610305600184615a7b565b61030f9082615aa5565b905061031c600280615a7b565b6103269082615aa5565b9050610333601082615aa5565b9392505050565b61034261520d565b61034a611786565b905090565b6103576155ab565b5f805b60108110156103b957610386868387610374602083615aa5565b9261038193929190615ab8565b6120c2565b8351826010811061039957610399615adf565b6020020181815250506020826103af9190615aa5565b915060010161035a565b506103dd8582866103cb604083615aa5565b926103d893929190615ab8565b6120d5565b60208301526103ed604082615aa5565b90506104008582866103cb604083615aa5565b6040808401919091526104139082615aa5565b90506104268582866103cb604083615aa5565b6060830152610436604082615aa5565b90506104498582866103cb604083615aa5565b60c0830152610459604082615aa5565b905061046c8582866103cb604083615aa5565b60e083015261047c604082615aa5565b905061048f8582866103cb604083615aa5565b608083015261049f604082615aa5565b90506104b28582866103cb604083615aa5565b6101008301526104c3604082615aa5565b90506104d68582866103cb604083615aa5565b60a08301526104e6604082615aa5565b90505f5b83811015610564575f5b600881101561055b5761050e878488610374602083615aa5565b84610120015183601c811061052557610525615adf565b6020020151826008811061053b5761053b615adf565b6020020181815250506020836105519190615aa5565b92506001016104f4565b506001016104ea565b505f5b60298110156105b857610581868387610374602083615aa5565b836101400151826029811061059857610598615adf565b6020020181815250506020826105ae9190615aa5565b9150600101610567565b505f5b6105c6600185615a92565b81101561060f576105de8683876103cb604083615aa5565b83610160015182601b81106105f5576105f5615adf565b6020020152610605604083615aa5565b91506001016105bb565b505f5b838110156106625761062b868387610374602083615aa5565b83610180015182601c811061064257610642615adf565b6020020181815250506020826106589190615aa5565b9150600101610612565b506106748582866103cb604083615aa5565b6101a0830152610685604082615aa5565b90506106988582866103cb604083615aa5565b6101c0830152509392505050565b6106ae6156f3565b5f6106bd888888888886612162565b90835290506106cc81896121e1565b602084019190915290506106e081846122d0565b604084019190915290506106f588828561235f565b606084019190915290506107098882612433565b6080840191909152905061071e8882856124be565b60a08401919091529050610733888285612633565b60c0840191909152905061074788826126f8565b5060e0830152509695505050505050565b5f60018082610785866107808961077b6107768a6310000000615aa5565b612735565b61274d565b612768565b90505f6107a38761079e8a61077b6107768b6001615aa5565b612781565b90505f5b6107d260107f0000000000000000000000000000000000000000000000000000000000000000615a92565b81101561083f575f6107fc8c83815181106107ef576107ef615adf565b60200260200101516127a9565b905061080c8661077b8684612768565b955061081c8561077b8584612768565b9450610828848b612768565b9350610834838b612781565b9250506001016107a7565b505f5b60108110156108a6575f8a826010811061085e5761085e615adf565b602002015190506108738661077b8684612768565b95506108838561077b8584612768565b945061088f848b612768565b935061089b838b612781565b925050600101610842565b506108b184846127be565b9a9950505050505050505050565b5f806001815b7f0000000000000000000000000000000000000000000000000000000000000000811015610996575f86610120015182601c811061090557610905615adf565b602002015190505f61091782866127cc565b905080610937576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c811061094e5761094e615adf565b6020020151905061095f83826127ec565b9550610986886040015185601c811061097a5761097a615adf565b6020020151868361299b565b94505050508060010190506108c5565b505f6109b0866101400151865f01518760200151856129c6565b90508281145b9695505050505050565b5f6109c9615777565b5f6109f88460a001517f0000000000000000000000000000000000000000000000000000000000000000612a3f565b90505f610a267f00000000000000000000000000000000000000000000000000000000000000006024615aa5565b610a31906002615aa5565b67ffffffffffffffff811115610a4957610a49615af3565b604051908082528060200260200182016040528015610a72578160200160208202803683370190505b5090505f610aa17f00000000000000000000000000000000000000000000000000000000000000006024615aa5565b610aac906002615aa5565b67ffffffffffffffff811115610ac457610ac4615af3565b604051908082528060200260200182016040528015610b0857816020015b604080518082019091525f8082526020820152815260200190600190039081610ae25790505b509050610b3a610b358760e00151855f81518110610b2857610b28615adf565b6020026020010151612781565b612b09565b84610120018181525050610b6e610b358760e00151855f81518110610b6157610b61615adf565b6020026020010151612768565b610140850181905261012085015160c0880151610b8f92610780919061274d565b845260a0860151610bbf90610ba390612b09565b61077b86610120015161079e8a60c0015189610140015161274d565b6020850152815160019083905f90610bd957610bd9615adf565b602002602001018181525050876101a00151815f81518110610bfd57610bfd615adf565b6020908102919091010152600160a08501525f60c085015283515f516020615d445f395f51905f5203604085015260208401515f516020615d445f395f51905f5203606085015260015b60248111610cea57610c6185604001518660a0015161274d565b838281518110610c7357610c73615adf565b602002602001018181525050610cbc8560c001516107808b6101400151600185610c9d9190615a92565b60298110610cad57610cad615adf565b60200201518860a0015161274d565b60c086015260a08501516080880151610cd5919061274d565b60a0860152610ce381615b07565b9050610c47565b505f5b6005811015610db8575f610d02601d83615aa5565b90505f610d10602484615aa5565b9050610d41858381518110610d2757610d27615adf565b602002602001015161078089606001518a60a0015161274d565b858381518110610d5357610d53615adf565b602002602001018181525050610d908760c001516107808d61014001518460298110610d8157610d81615adf565b60200201518a60a0015161274d565b60c088015260a087015160808a0151610da9919061274d565b60a08801525050600101610ced565b50866060015181600181518110610dd157610dd1615adf565b6020026020010181905250866080015181600281518110610df457610df4615adf565b60200260200101819052508660a0015181600381518110610e1757610e17615adf565b60200260200101819052508660c0015181600481518110610e3a57610e3a615adf565b60200260200101819052508660e0015181600581518110610e5d57610e5d615adf565b602002602001018190525086610100015181600681518110610e8157610e81615adf565b602002602001018190525086610120015181600781518110610ea557610ea5615adf565b602002602001018190525086610140015181600881518110610ec957610ec9615adf565b602002602001018190525086610160015181600981518110610eed57610eed615adf565b6020026020010181905250866101c0015181600a81518110610f1157610f11615adf565b602002602001018190525086610180015181600b81518110610f3557610f35615adf565b6020026020010181905250866101a0015181600c81518110610f5957610f59615adf565b6020026020010181905250866101e0015181600d81518110610f7d57610f7d615adf565b602002602001018190525086610200015181600e81518110610fa157610fa1615adf565b602002602001018190525086610220015181600f81518110610fc557610fc5615adf565b602002602001018190525086610240015181601081518110610fe957610fe9615adf565b60200260200101819052508661026001518160118151811061100d5761100d615adf565b60200260200101819052508661028001518160128151811061103157611031615adf565b6020026020010181905250866102a001518160138151811061105557611055615adf565b6020026020010181905250866102c001518160148151811061107957611079615adf565b6020026020010181905250866102e001518160158151811061109d5761109d615adf565b6020026020010181905250866103000151816016815181106110c1576110c1615adf565b6020026020010181905250866103200151816017815181106110e5576110e5615adf565b60200260200101819052508661034001518160188151811061110957611109615adf565b60200260200101819052508661036001518160198151811061112d5761112d615adf565b602002602001018190525086610380015181601a8151811061115157611151615adf565b6020026020010181905250866103a0015181601b8151811061117557611175615adf565b6020026020010181905250866103c0015181601c8151811061119957611199615adf565b6020026020010181905250876020015181601d815181106111bc576111bc615adf565b6020026020010181905250876040015181601e815181106111df576111df615adf565b6020026020010181905250876060015181601f8151811061120257611202615adf565b602002602001018190525087608001518160208151811061122557611225615adf565b60200260200101819052508760a001518160218151811061124857611248615adf565b60200260200101819052508761010001518160228151811061126c5761126c615adf565b60200260200101819052508760c001518160238151811061128f5761128f615adf565b60200260200101819052508760e00151816024815181106112b2576112b2615adf565b60200260200101819052505f6112f887606001518660c001518b6101800151877f0000000000000000000000000000000000000000000000000000000000000000612b79565b9050611322815f8151811061130f5761130f615adf565b602002602001015186610120015161274d565b608086018190526101808a01515160c0890151611353929161078091611348919061274d565b88610140015161274d565b608086015260c087015161136690612cd8565b60a08601525f5b61139860017f0000000000000000000000000000000000000000000000000000000000000000615a92565b8110156115a7576113c8610b358960e00151878460016113b89190615aa5565b81518110610b2857610b28615adf565b61012087015260e08801516113f790610b3590876113e7856001615aa5565b81518110610b6157610b61615adf565b61014087015260a0860151610120870151611412919061274d565b61016087015260a086015160c089015161143a9161142f9161274d565b87610140015161274d565b610180870181905261146f905f516020615d445f395f51905f52036101608801515f516020615d445f395f51905f5203612768565b848261147d60246001615aa5565b6114879190615aa5565b8151811061149757611497615adf565b6020026020010181815250505f6114da8761018001518c61018001518460016114c09190615aa5565b601c81106114d0576114d0615adf565b602002015161274d565b905061151481610780896101600151868660016114f79190615aa5565b8151811061150757611507615adf565b602002602001015161274d565b9050611524876080015182612768565b608088015260a087015160c08a015161154a916115409161274d565b8a60c0015161274d565b60a08801526101608b015182601b811061156657611566615adf565b6020020151848361157960246001615aa5565b6115839190615aa5565b8151811061159357611593615adf565b60209081029190910101525060010161136d565b50604080518082019091526001815260026020820152826115e97f00000000000000000000000000000000000000000000000000000000000000006024615aa5565b815181106115f9576115f9615adf565b60209081029190910101526080850151836116357f00000000000000000000000000000000000000000000000000000000000000006024615aa5565b8151811061164557611645615adf565b60209081029190910101526101c089015180836116837f00000000000000000000000000000000000000000000000000000000000000006024615aa5565b61168e906001615aa5565b8151811061169e5761169e615adf565b602090810291909101015260e0880151846116da7f00000000000000000000000000000000000000000000000000000000000000006024615aa5565b6116e5906001615aa5565b815181106116f5576116f5615adf565b6020026020010181815250505f61170c8486612ce3565b90505f61171883612dfe565b90505f6117298d5f01518484612e4f565b90505f5f6117398f5f0151612ec5565b9150915061174682612f91565b61174f81612f91565b61175a858385613034565b9450611767848285613034565b93506117738585613070565b9f9e505050505050505050505050505050565b61178e61520d565b50604080516103e08101825263010000008152601860208083019190915260ae82840152825180840184527f0667f5b88e41d772c0d539748a784b84ea03b85b89a268985e995be26b73e15a81527f202582df1b430341e7e29c13fa24a2c1eedee35d41b480a63bd0c771d1390427818301526060830152825180840184527f2fa0c5987cfc873bc615a5b0e3efd9befb9a79eb9e4afbc268ccf4b8cd8077cc81527f305323583cc9223edd9c365046db732d1e0a7630309ae5d543121e4a6caf4ec6818301526080830152825180840184527f05946a446c58e2b13d591ff0e7921296736c241319ded24f912f02c40c7676af81527f10b9f3397351a14724ae05421a7aa5ecf9b069265c54738f6ae637c89b84cc7c8183015260a0830152825180840184527f2ba2b78bc57b240b9f53fb6343d4a725b00c13397001485bb0987a3b57ea12de81527f2dcdfa11a40f4b8924de62d7d57b5280a517719ad737486592fbaf24d5fbde238183015260c0830152825180840184527f25e591b949689586801137b7fdd80d9577d9908cbb733e5754314c1f8e48bb1e81527f02078e66955a36ed7ae14a02d7cfa2b35ef1e02d4c80d8972a59f87aca188bd68183015260e0830152825180840184527f218695998954026a2a59bee2896c0430556eb91eecc4ff2716d659e28af39a7981527f2511e9ee73f406417987177314853885f880d34be8430a9299d30eaaf8f22a1081830152610100830152825180840184527f01a8abe0d74344165494348196db5fa7da3a745f398fd1374cc2cb15bcc58ff481527f0f62b9babe865f3d0c422867d8b7f7fa5c13d85721a659f3b9ff8fc8cc6fc99281830152610120830152825180840184527f140e3166362411c572c06bcdeb9fca7d795d1299511970f7d59fb3160d03017781527f058f012fcb0bff4e5428cea25576d2aa66fd4f400f3b0bb5a324f5dad932afa981830152610140830152825180840184527f23834aa2db0bcbb7f07d1923228f216c0112ca432cfce5ee4c81ebafdadfcd2d81527f14b0cb70e2bd749cf86bec2fb5af60c79b01633b69aef29a2ea457cc0ffad58681830152610160830152825180840184527f14c4cf3fc4c9d731d69e6beb3c53ce8bb200dab5a7668c4a263aabb186ba67d681527f01ba79f236fbe3cd647672676fb28e8d198d63642def512176778c048f5afd9281830152610180830152825180840184527f0405fe23190f1876256650aa1e5a7d2d3e5f158bbcd672f323392b827f934b1481527f0d42519e0a2cb357c9d9b4a12e0a81e45a5c5d1f193a88ef206c0ed708846ba6818301526101a0830152825180840184527f24cfbd32c0eb0e587e0ad50fe734e4deb6e1ee8915f5f803066e959f13fd782481527f0fd4ab2a0b6909810022fd8341f2e1b570c73ed9ee2cf3069e849517f9ef6a41818301526101c0830152825180840184527f289c1dd5164fa409901ce1559dc9b0a61a38502b531c16a8dca05f38ef89996381527f2b8d7391421dcb8ef4c5b88a42ce36b1cf7b03c249fb0ac8cc94fd288df17a5e818301526101e0830152825180840184527f0a12abe1ed13bdfb00343a2508fbf9bd0de187fe6196b4b217e2ca6b0e3bf8cb81527f21dc750f5f6ae42e1028e9190c529409d01b45411f5b033caf2f70d061ea35cc81830152610200830152825180840184527f1f9907dfdab4b17c711f48ca5b55c5e7dab84340326d3d53e6279fa8e7d7321d81527f0b7d032a1d48b01be412691518c5c4c0b60c9c89262484e7ee438475ea41286781830152610220830152825180840184527f013541ba89ee33df2c0987ea1be57e1b48cc08e87951364c25b0ecae42f7f9bc81527f10a5713eba8c4ecb6c9f6f7b376a6247be42a03e9f6eab17cd8bb673a11edecb81830152610240830152825180840184527f17d194fc3f964c0776f8e703e248e17c60312a5536fe2b9dc8ba28fa3646d0f981527f21c4b144d6ba8db2028c0e881a60668da40d8a0769fc6455f11f85800dc3f7f081830152610260830152825180840184527f159f4c58d3c11cb71b2766f7318f198b897c339a0eddcd21ce5cbfd6862e0af281527f08162b014c9ec1ad13ebc75d7eac9cfdc03b13e36fc6aa2d3a1ad68a6756858881830152610280830152825180840184527f234b2cea42b7e87985a337cb87a3f58e0215e15cf89805161416890d8cdb94ce81527f0d4fbe5f254c6fcd9ca3926c9ca364ece020d48de02f337bd5c3cb06c1bfa48e818301526102a0830152825180840184527f2f19154027fe950e547846f12b5fa03ac0a28fa1238dfc747a50dd3543ca349681527f0824492e6af67d67584f0a8ff56122c804995740354cfe02c1768de2c781e733818301526102c0830152825180840184527f2402751a3285aac5eda731f77748be000e96ca95053c466d29b77baf60b4718e81527f0f8f340c4592fb76a8c1fe4d0323f2e13f44db07d209cd44fb147f38f8db5bdd818301526102e0830152825180840184527f1a181112f1f83d59de5257bbfaac127538b2b4bca181b114a6048d705df92df781527f27977772b4df2d39ff4168beb587e8f7077ce188ce41dddd9f03dc98ef908e8381830152610300830152825180840184527f2194d92617bbb3ba3d9e53f4f13c5c7c6fc5ae0c56f06e0a35747f24625e576381527f11ca88979a66ada092bb26e2b64b8602eb63f6e2fc21862f6fefead2978de7e081830152610320830152825180840184527f1d346dd159688f85b77717f8197777c6ced8daf349335d74908736241f5f332881527f10e952d77959f4aa6fe9cb7222d9901d06ddfeea51240c79980d4daac814444381830152610340830152825180840184527f109830b81fd8b5e0a3327bf961ea6746fcc9155039d285eaa76f4b0f8839e44781527f28de29af66333e8ea2ee2d23ff9df4297471377a71b5240987690610bad14c7881830152610360830152825180840184527f062b31b3719d79c253d59707efcc41556e43d9f4f122ba79d3484e023fb4da7d81527f283eb52c07506637e09fb73d7875ada840d8e4c75295a90dc312b4d2571c52c38183015261038083015282518084018452600181526002818301526103a083015282518084019093527f244040daefb41eda271d3e24552460d6becaa56222bc29708cd88aacbd7b913483527f23e4636e64cbe2f2aa74d1dd6f693f6ffeaab252f5ac469d319cfd4554144448908301526103c081019190915290565b5f6103336120d08385615b1f565b6127a9565b604080518082019091525f808252602082015260408051808201909152805f516020615d245f395f51905f5261210e60205f8789615ab8565b61211791615b1f565b6121219190615b3c565b81526020908101905f516020615d245f395f51905f5290612146906040908789615ab8565b61214f91615b1f565b6121599190615b3c565b90529392505050565b6121956040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f6121a38888888888613264565b6040860191909152602085019190915290835292506121c28389613562565b6080850191909152606084019190915291989197509095505050505050565b6121e96157e7565b5f6121f2615806565b8481526101008401805151602080840191909152905181015160408084019190915260a086018051516060850152518201516080840152516122559161223a91849101615b5b565b604051602081830303815290604052805190602001206127a9565b91505f612261836135e9565b50808552905060015b6122766001601c615a92565b8110156122c6576122a78561228c600184615a92565b601b811061229c5761229c615adf565b60200201518361274d565b8582601b81106122b9576122b9615adf565b602002015260010161226a565b5050509250929050565b6122d8615824565b5f6122ef8460405160200161223a91815260200190565b93506122fa846135e9565b50825260015b838110156123575761233883612317600184615a92565b601c811061232757612327615adf565b6020020151846114c0600185615a92565b8382601c811061234a5761234a615adf565b6020020152600101612300565b509093915050565b612367615824565b5f805b838110156124295761237a615843565b8581525f5b60088110156123e35787610120015183601c811061239f5761239f615adf565b602002015181600881106123b5576123b5615adf565b6020020151826123c6836001615aa5565b600981106123d6576123d6615adf565b602002015260010161237f565b506123f88160405160200161223a9190615b8e565b95505f612404876135e9565b8685601c811061241657612416615adf565b602002019190915250505060010161236a565b5090949293505050565b5f5f61243d615862565b8381525f5b602981101561249057856101400151816029811061246257612462615adf565b602002015182612473836001615aa5565b602a811061248357612483615adf565b6020020152600101612442565b506124a58160405160200161223a9190615bc2565b91505f6124b1836135e9565b5096929550919350505050565b5f80806124cc600185615a92565b6124d7906002615a7b565b6124e2906001615aa5565b67ffffffffffffffff8111156124fa576124fa615af3565b604051908082528060200260200182016040528015612523578160200160208202803683370190505b50905084815f8151811061253957612539615adf565b60209081029190910101525f5b612551600186615a92565b8110156126045786610160015181601b811061256f5761256f615adf565b60200201515182612581836002615a7b565b61258c906001615aa5565b8151811061259c5761259c615adf565b60200260200101818152505086610160015181601b81106125bf576125bf615adf565b602002015160200151828260026125d69190615a7b565b6125e1906002615aa5565b815181106125f1576125f1615adf565b6020908102919091010152600101612546565b506126198160405160200161223a9190615bf6565b91505f612625836135e9565b509792965091945050505050565b5f8080612641846001615aa5565b67ffffffffffffffff81111561265957612659615af3565b604051908082528060200260200182016040528015612682578160200160208202803683370190505b50905084815f8151811061269857612698615adf565b60209081029190910101525f5b848110156126045786610180015181601c81106126c4576126c4615adf565b6020020151826126d5836001615aa5565b815181106126e5576126e5615adf565b60209081029190910101526001016126a5565b5f5f612702615881565b8381526101a085018051516020808401919091529051810151604080840191909152516124a59161223a91849101615c2b565b5f5f516020615d445f395f51905f52825b0692915050565b5f5f516020615d445f395f51905f5282840990505b92915050565b5f5f516020615d445f395f51905f528284089392505050565b5f5f516020615d445f395f51905f52825f516020615d445f395f51905f520384089392505050565b5f5f516020615d445f395f51905f5282612746565b5f6103338361077b84612b09565b815160208301515f9182916127e19190612768565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b60088110156128d3576128c98261077b8784612781565b91506001016128b2565b506128dc61589f565b5f5b600881101561293d575f8482600881106128fa576128fa615adf565b6020020151905061290f8161077b8985612781565b905061291a81612b09565b90508083836008811061292f5761292f615adf565b6020020152506001016128de565b505f5b6008811015612990575f87826008811061295c5761295c615adf565b60200201519050612979818484600881106114d0576114d0615adf565b90506129858682612768565b955050600101612940565b506109b6848361274d565b5f5f6129b160016107808561077b896001612781565b90506129bd848261274d565b95945050505050565b5f6129cf615824565b6129da868285613622565b6129e6868683866137ce565b6129f2868683866139ba565b6129fd868285613be5565b612a08868285613dd9565b612a1486868386614122565b612a1f8682856145ce565b612a2a8682856149e0565b612a35868285614da1565b6109b681856150a1565b60605f8267ffffffffffffffff811115612a5b57612a5b615af3565b604051908082528060200260200182016040528015612a84578160200160208202803683370190505b50905083815f81518110612a9a57612a9a615adf565b602090810291909101015260015b83811015612b0157612adc82612abf600184615a92565b81518110612acf57612acf615adf565b6020026020010151612cd8565b828281518110612aee57612aee615adf565b6020908102919091010152600101612aa8565b509392505050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f516020615d445f395f51905f520360808201525f516020615d445f395f51905f5260a082015260205f60c08360055afa80612b65575f5ffd5b505f51608091909101604052949350505050565b60605f8267ffffffffffffffff811115612b9557612b95615af3565b604051908082528060200260200182016040528015612bbe578160200160208202803683370190505b509050825b8015612ccd575f85612bd6600184615a92565b81518110612be657612be6615adf565b602002602001015190505f89600184612bff9190615a92565b601c8110612c0f57612c0f615adf565b602002015190505f612c6a612c2e612c27858d61274d565b600261274d565b61079e8b612c3d600189615a92565b601c8110612c4d57612c4d615adf565b602002015161077b612c648861077b60018a612781565b87612781565b9050612c8b8161077b610b35612c858761077b600189612781565b86612768565b99508990508085612c9d600187615a92565b81518110612cad57612cad615adf565b60200260200101818152505050505080612cc690615c5e565b9050612bc3565b509695505050505050565b5f612762828361274d565b604080518082019091525f80825260208201525f612d227f00000000000000000000000000000000000000000000000000000000000000006024615aa5565b612d2d906002615aa5565b90505f5b81811015612d6357612d5b858281518110612d4e57612d4e615adf565b6020026020010151612f91565b600101612d31565b50604051600190815b60018401811015612dc85760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612d6c565b5080518452602081015160208501525080612df6576040516352ec174560e11b815260040160405180910390fd5b505092915050565b604080518082019091525f80825260208201525f516020615d245f395f51905f5282602001515f516020615d245f395f51905f52612e3c9190615a92565b612e469190615b3c565b60208301525090565b5f5f5f612e5b86612ec5565b91509150612e6761589f565b82518152602080840151818301528251604080840191909152838201516060840152875160808401528782015160a0840152865160c08401528682015160e084015251612eba9161223a91849101615c73565b979650505050505050565b6040805180820182525f80825260208083018281528451808601865283815280830193845286519287015195870151606088015160cc90811b608892831b6044998a1b90961795909517949094178652608088015160a089015160c08a015160e08b0151871b90841b918a1b90921717179092526101008701516101208801516101408901516101608a0151861b90851b91891b909217171781526101808701516101a08801516101c08901516101e09099015190941b9790921b9290951b1717939093179092529091565b805160208201515f5f516020615d245f395f51905f528380095f516020615d245f395f51905f5260035f516020615d245f395f51905f52838709085f516020615d245f395f51905f52848509149150508061302e5760405162461bcd60e51b815260206004820152601960248201527f706f696e74206973206e6f74206f6e207468652063757276650000000000000060448201526064016100e5565b50505050565b604080518082019091525f8082526020820152604080518082019091525f808252602082015261306483866150fa565b90506129bd8185615166565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516132069190615ca7565b5f60405180830381855afa9150503d805f811461323e576040519150601f19603f3d011682016040523d82523d5f602084013e613243565b606091505b50915091508180156109b65750808060200190518101906109b69190615cbd565b5f80808080613274866001615aa5565b61327f906006615aa5565b67ffffffffffffffff81111561329757613297615af3565b6040519080825280602002602001820160405280156132c0578160200160208202803683370190505b509050865f1b815f815181106132d8576132d8615adf565b60209081029190910101525f5b6132f0601088615a92565b8110156133415789898281811061330957613309615adf565b905060200201358282600161331e9190615aa5565b8151811061332e5761332e615adf565b60209081029190910101526001016132e5565b505f5b60108110156133b2578a5161336c90826010811061336457613364615adf565b602002015190565b8282601061337b8b6001615aa5565b6133859190615a92565b61338f9190615aa5565b8151811061339f5761339f615adf565b6020908102919091010152600101613344565b5060208a015151816133c5886001615aa5565b815181106133d5576133d5615adf565b6020908102919091018101919091528a8101510151816133f6886001615aa5565b613401906001615aa5565b8151811061341157613411615adf565b602090810291909101015260408a0151518161342e886001615aa5565b613439906002615aa5565b8151811061344957613449615adf565b60209081029190910181019190915260408b015101518161346b886001615aa5565b613476906003615aa5565b8151811061348657613486615adf565b602090810291909101015260608a015151816134a3886001615aa5565b6134ae906004615aa5565b815181106134be576134be615adf565b60209081029190910181019190915260608b01510151816134e0886001615aa5565b6134eb906005615aa5565b815181106134fb576134fb615adf565b60200260200101818152505061351b8160405160200161223a9190615bf6565b9150613526826135e9565b6040805160208101869052929750909550613541910161223a565b91505f61354d836135e9565b50959b949a5094985090965091945050505050565b5f5f5f61356d6158be565b85815260c0858101805151602080850191909152905181015160408085019190915260e08801805151606086015251820151608080860191909152880180515160a0860152518201519284019290925290516135cf9161223a91849101615cdc565b91506135da826135e9565b90979096509194509092505050565b5f80826f7fffffffffffffffffffffffffffffff8116607f82901c61360d826127a9565b9450613618816127a9565b9350505050915091565b5f61362e8460076151dd565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f61368f613689613663856003612781565b61077b61367e6136738b5f6151dd565b61077b8c601d6151dd565b61077b8b601c6151dd565b8361274d565b90506137106137056136ec6136d36136ba856107806136af8d60026151dd565b61077b8e601c6151dd565b6107806136c88c60036151dd565b61077b8d601d6151dd565b6107806136e18b60046151dd565b61077b8c601e6151dd565b6107806136fa8a60056151dd565b61077b8b601f6151dd565b6107808860016151dd565b905061372f81610780613724866001612781565b61077b8a60276151dd565b905061373b818461274d565b9050613747818561274d565b8552505f905061378161377761376c61376188601c6151dd565b61078089601f6151dd565b61079e8860246151dd565b610780875f6151dd565b90506137928161077b846002612781565b90506137a38161077b846001612781565b90506137af818361274d565b90506137bb818461274d565b9050808460015b60200201525050505050565b5f5f5f6138046137fa6137e289601c6151dd565b6107806137f08b60126151dd565b8a6060015161274d565b8760800151612768565b905061383d8161077b61383361381b8b601d6151dd565b6107806138298d60136151dd565b8c6060015161274d565b8960800151612768565b90506138628161077b6138336138548b601e6151dd565b6107806138298d60146151dd565b90506138878161077b6138336138798b601f6151dd565b6107806138298d60156151dd565b92505f90506138ab6137fa61389d89601c6151dd565b6107806137f08b600e6151dd565b90506138d08161077b6138336138c28b601d6151dd565b6107806138298d600f6151dd565b90506138f58161077b6138336138e78b601e6151dd565b6107806138298d60106151dd565b905061391a8161077b61383361390c8b601f6151dd565b6107806138298d60116151dd565b91505f905061394161393b6139308960206151dd565b6107808a601a6151dd565b8461274d565b90506139768161079e6139706139588b60286151dd565b6107806139668d601b6151dd565b8c60a0015161274d565b8561274d565b9050613982818561274d565b6040860152505f6139a561397061399a89601b6151dd565b61077b8a60286151dd565b9050808560035b602002015250505050505050565b5f5f613a18613a006139e86139d36138338a60166151dd565b6107806139e18b60176151dd565b8a5161274d565b6107806139f68a60186151dd565b896020015161274d565b610780613a0e8960196151dd565b886040015161274d565b91505f613a4f613a36613a2c89601c6151dd565b8860800151612768565b610780613a448a60036151dd565b61077b8b60246151dd565b90505f613a78613a6089601d6151dd565b610780613a6d8b5f6151dd565b61077b8c60256151dd565b90505f613aa2613a898a601e6151dd565b610780613a978c60016151dd565b61077b8d60266151dd565b9050613ae1613ac9613abb85610780868d5f015161274d565b610780848c6020015161274d565b610780613ad78c60046151dd565b8b6040015161274d565b93505050505f613af561393b8860216151dd565b90505f613b0661393b8960216151dd565b90505f613b3e613b25613b1a8b60236151dd565b6107808c60066151dd565b61079e613b338c60236151dd565b61077b8d60066151dd565b90505f613b62613b5c613b51878961274d565b61077b8d60216151dd565b83612781565b9050613b6e818861274d565b90505f613b96613b88613b828d60066151dd565b8761274d565b61079e613b828e60226151dd565b90505f613ba48c60236151dd565b90505f613bb4613b5c838461274d565b60808c0185905260a08c018490529050613bce818b61274d565b8b6006602002015250505050505050505050505050565b5f613bf15f6001612781565b90505f613bff5f6002612781565b90505f613c0d5f6003612781565b90505f613c29613c1e88601d6151dd565b61079e89601c6151dd565b90505f613c45613c3a89601e6151dd565b61079e8a601d6151dd565b90505f613c61613c568a601f6151dd565b61079e8b601e6151dd565b90505f613c7d613c728b60246151dd565b61079e8c601f6151dd565b905083613c8e8161077b818b612768565b9050613c9e8161077b878a612768565b9050613cae8161077b8789612768565b9050613cbf8161077b8d60086151dd565b9050613ccb818a61274d565b60e08b01525082613ce08161077b818b612768565b9050613cf08161077b868a612768565b9050613d008161077b8689612768565b9050613d118161077b8d60086151dd565b9050613d1d818a61274d565b6101008b01525081613d338161077b818b612768565b9050613d438161077b858a612768565b9050613d538161077b8589612768565b9050613d648161077b8d60086151dd565b9050613d70818a61274d565b6101208b01525080613d868161077b818b612768565b9050613d968161077b848a612768565b9050613da68161077b8489612768565b9050613db78161077b8d60086151dd565b9050613dc3818a61274d565b610140909a019990995250505050505050505050565b613e126040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613e1d84601d6151dd565b8152613e2a84601e6151dd565b6020820152613e3a8460246151dd565b6040820152613e4a8460276151dd565b6060820152613e5a8460266151dd565b6080820152613e6a8460256151dd565b60a08201525f613e7b8560026151dd565b90505f613e88865f6151dd565b90505f613e9c8460400151855f0151612781565b90505f613eb18560200151866020015161274d565b606086015190915086905f90613ec7908061274d565b90505f613ee5613edf89602001518a6060015161274d565b8861274d565b90505f613f04613efd8a60a001518b60400151612768565b8a51612768565b9050613f13613b82828861274d565b9050613f3a613f34613f2e613f288487612781565b88612781565b84612768565b83612768565b9050613f62613f57613f4c838761274d565b61077b8f60096151dd565b61077b60018a612781565b6101608c015250505050602085015160808601515f91613f8191612768565b90505f613f9f613f9588606001518861274d565b8860200151612781565b90505f613fc3613faf848761274d565b6107806139708b60a001518c5f0151612781565b9050613feb613fe0613fd5838c61274d565b61077b8e60096151dd565b61077b600189612781565b6101808b0152505f915061400c9050614005836011612768565b875161274d565b90505f6140198384612768565b90506140258182612768565b90505f61403383600961274d565b905061405c61405661393b61404f8b60a001518c5f0151612768565b8b51612768565b82612781565b60c089018190525f9061407790613edf90613f4c908d61274d565b905061408a8b600b602002015182612768565b6101608c0152505086515f92506140b19150614005906140aa9080612768565b8851612768565b90505f6140f16140cc8361077b8a5f01518b60a00151612781565b602089015161079e906140df9080612768565b61077b8b602001518c60800151612768565b905061410e89600c6020020151610780613edf613f4c858d61274d565b89600c602002015250505050505050505050565b61418c604051806101e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6141a461419a86601e6151dd565b856040015161274d565b8082526141c3906107806141b988601d6151dd565b876020015161274d565b8082526141d89061078061400588601c6151dd565b8082526141ea906107808760016151dd565b808252602082018190526142039061079e87601f6151dd565b815261421e6142138660246151dd565b61079e87601c6151dd565b608082015261423c6142318660276151dd565b61079e87601f6151dd565b606082015260808101516142559061077b816001612781565b6101c082015260808101516142959061428b906142849061077b60015f516020615d445f395f51905f52615a92565b6001612768565b826060015161274d565b60a082018190526142cb906142bd9061077b6142b28960026151dd565b61077b8a60036151dd565b61077b61397088600a6151dd565b83600e60200201526101c08101516142ef906142bd9061077b6142b28960026151dd565b6101e084015280516143149061077b6143098860026151dd565b61077b8960036151dd565b6101208201525f61433361432987601f6151dd565b8360200151612781565b90506143448161077b836001612781565b60e08301526143616143578760266151dd565b866040015161274d565b604083018190526143849061078061437a8960256151dd565b886020015161274d565b604083018190526143a49061078061439d8960246151dd565b885161274d565b60408301526143c16143b78760276151dd565b8360400151612781565b60408301525f6143e06143d58860266151dd565b61079e89601e6151dd565b905061443261440d613689614284866080015160015f516020615d445f395f51905f5261077b9190615a92565b61077b614284866040015160015f516020615d445f395f51905f5261077b9190615a92565b60c084015260408301516144549061444a908061274d565b8460400151612781565b61010084015260c0830151614480906144729061077b8a60046151dd565b61077b613b828a600a6151dd565b6102008601526101c083015161449f906144729061077b8a60046151dd565b6102208601526101008301516144be906144729061077b8a60046151dd565b61024086015260e08301516144d89061077b8960046151dd565b6101408401526144f76144ec8860256151dd565b61079e89601d6151dd565b6101608401526080830151614535906143d59061452a906142849061077b60015f516020615d445f395f51905f52615a92565b85610160015161274d565b61018084018190526101208401516101a0850181905261456c916107809061077b6145618c60056151dd565b61077b8d60026151dd565b6101a08401819052835161458c91906107809061077b6145618c5f6151dd565b6101a084018190526101408401516145a49190612768565b6101a084018190526145be9061077b613b828a600a6151dd565b6101a0840181905285600d6139ac565b6146076040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61463c61462361461886601c6151dd565b61077b8760256151dd565b6107806146318760246151dd565b61077b88601d6151dd565b815261468161467661465d61465287601c6151dd565b61077b88601f6151dd565b61078061466b88601d6151dd565b61077b89601e6151dd565b61079e8660266151dd565b6040820181905261469690600160441b61274d565b604082018190526146ac9061079e8660276151dd565b6040820181905281516146bf9190612768565b604082018190526146d59061077b8660056151dd565b604082015280516146ea90600160441b61274d565b80825261470a906107806146ff8760246151dd565b61077b8860256151dd565b808252602082018190526147319061079e61472687601e6151dd565b61078088601f6151dd565b602082018190526147479061077b8660046151dd565b60208201528051606082018190526147649061078086601f6151dd565b606082018190526147889061079e61477d8760266151dd565b6107808860276151dd565b6060820181905261479d9061077b865f6151dd565b8160600181815250505f6147c66147bc83602001518460400151612768565b8360600151612768565b90506147d78161077b8760036151dd565b90506147ef6147e78660256151dd565b61400061274d565b60808301819052614805906107808760246151dd565b608083018190526148189061400061274d565b6080830181905261482e9061078087601e6151dd565b608083018190526148419061400061274d565b608083018190526148579061078087601d6151dd565b6080830181905261486a9061400061274d565b608083018190526148809061078087601c6151dd565b608083018190526148969061079e87601f6151dd565b608083018190526148ac9061077b8760056151dd565b60808301526148bf6147e78660266151dd565b60a083018190526148d5906107808760256151dd565b60a083018190526148e89061400061274d565b60a083018190526148fe906107808760246151dd565b60a083018190526149119061400061274d565b60a083018190526149279061078087601f6151dd565b60a0830181905261493a9061400061274d565b60a083018190526149509061078087601e6151dd565b60a083018190526149669061079e8760276151dd565b60a0830181905261497b9061077b875f6151dd565b60a0830181905260808301515f916149939190612768565b90506149a48161077b8860046151dd565b90506149b08282612768565b60c084018190526149c99061077b613b8289600b6151dd565b60c084018190528560136020020152505050505050565b614a566040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b614a6f614a6485601c6151dd565b6107808660026151dd565b8152614a8a614a7f85601d6151dd565b6107808660036151dd565b6020820152614aa8614a9d85601e6151dd565b6107808660046151dd565b6040820152614ac6614abb85601f6151dd565b6107808660056151dd565b60608201528051614af890614af190614aea90614ae3908061274d565b845161274d565b835161274d565b825161274d565b60808201526020810151614b3690614b2c90614b2290614b18908061274d565b846020015161274d565b836020015161274d565b826020015161274d565b60a08201526040810151614b7490614b6a90614b6090614b56908061274d565b846040015161274d565b836040015161274d565b826040015161274d565b60c08201526060810151614ba89061428b90614b9e90614b94908061274d565b846060015161274d565b836060015161274d565b60e0820152608081015160a0820151614bc19190612768565b61010082015260c081015160e0820151614bdb9190612768565b61012082015260a0810151614bff90614bf49080612768565b826101200151612768565b61014082015260e0810151614c2390614c189080612768565b826101000151612768565b610160820152610120810151614c399080612768565b6101e08201819052614c5a90614c4f9080612768565b826101600151612768565b6101e0820152610100810151614c709080612768565b6101a08201819052614c9190614c869080612768565b826101400151612768565b6101a08201819052610160820151614ca891612768565b6101808201526101408101516101e0820151614cc49190612768565b6101c0820152614cd861368985600c6151dd565b6102008201819052610280840151610180830151614d03926107809161077b9061079e8a60246151dd565b8360146020020152614d33836015602002015161078083610200015161077b856101a0015161079e8a60256151dd565b8360156020020152614d63836016602002015161078083610200015161077b856101c0015161079e8a60266151dd565b8360166020020152614d93836017602002015161078083610200015161077b856101e0015161079e8a60276151dd565b836017602002015250505050565b614df36040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f6040518060800160405280614e287f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7612735565b8152602001614e567f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b612735565b8152602001614e837e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15612735565b8152602001614eb17f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b612735565b90529050614ece614ec386601c6151dd565b6107808760026151dd565b6101208301819052614f0d90614f0290614ef790614eec908061274d565b85610120015161274d565b84610120015161274d565b83610120015161274d565b8252614f1a85601d6151dd565b6020830152614f2a85601e6151dd565b6040830152614f3a85601f6151dd565b606083015281516020830151614f62916147bc91614f589190612768565b8460400151612768565b6080830152614f7561393b86600d6151dd565b6101408301528151614f9690614f8c90835f6114d0565b8360800151612768565b60a0830152614fc2846018602002015161078084610140015161077b8660a0015161079e8b60246151dd565b6103008501526020820151614fdd90614f8c908360016114d0565b60c0830152615009846019602002015161078084610140015161077b8660c0015161079e8b60256151dd565b610320850152604082015161502490614f8c908360026114d0565b60e083015261505084601a602002015161078084610140015161077b8660e0015161079e8b60266151dd565b610340850152606082015161506b90614f8c908360036114d0565b61010083015261509984601b602002015161078084610140015161077b86610100015161079e8b60276151dd565b84601b6137c2565b815160015b601c8110156150f3576150e9826107808684601c81106150c8576150c8615adf565b6020020151866150d9600187615a92565b601b81106114d0576114d0615adf565b91506001016150a6565b5092915050565b604080518082019091525f8082526020820152604080518082019091525f8082526020820152604051835181526020840151602082015284604082015260408160608360075afa8061514a575f5ffd5b5080518252602080820151908301526060016040529392505050565b604080518082019091525f8082526020820152604080518082019091525f80825260208201526040518451815260208501516020820152835160408201526020840151606082015260408160808360065afa806151c1575f5ffd5b5080518252602080820151908301526080016040529392505050565b5f828260288111156151f1576151f1615d0f565b6029811061520157615201615adf565b60200201519392505050565b604051806103e001604052805f81526020015f81526020015f815260200161524660405180604001604052805f81526020015f81525090565b815260200161526660405180604001604052805f81526020015f81525090565b815260200161528660405180604001604052805f81526020015f81525090565b81526020016152a660405180604001604052805f81526020015f81525090565b81526020016152c660405180604001604052805f81526020015f81525090565b81526020016152e660405180604001604052805f81526020015f81525090565b815260200161530660405180604001604052805f81526020015f81525090565b815260200161532660405180604001604052805f81526020015f81525090565b815260200161534660405180604001604052805f81526020015f81525090565b815260200161536660405180604001604052805f81526020015f81525090565b815260200161538660405180604001604052805f81526020015f81525090565b81526020016153a660405180604001604052805f81526020015f81525090565b81526020016153c660405180604001604052805f81526020015f81525090565b81526020016153e660405180604001604052805f81526020015f81525090565b815260200161540660405180604001604052805f81526020015f81525090565b815260200161542660405180604001604052805f81526020015f81525090565b815260200161544660405180604001604052805f81526020015f81525090565b815260200161546660405180604001604052805f81526020015f81525090565b815260200161548660405180604001604052805f81526020015f81525090565b81526020016154a660405180604001604052805f81526020015f81525090565b81526020016154c660405180604001604052805f81526020015f81525090565b81526020016154e660405180604001604052805f81526020015f81525090565b815260200161550660405180604001604052805f81526020015f81525090565b815260200161552660405180604001604052805f81526020015f81525090565b815260200161554660405180604001604052805f81526020015f81525090565b815260200161556660405180604001604052805f81526020015f81525090565b815260200161558660405180604001604052805f81526020015f81525090565b81526020016155a660405180604001604052805f81526020015f81525090565b905290565b604051806101e001604052806155bf6158dc565b81526020016155df60405180604001604052805f81526020015f81525090565b81526020016155ff60405180604001604052805f81526020015f81525090565b815260200161561f60405180604001604052805f81526020015f81525090565b815260200161563f60405180604001604052805f81526020015f81525090565b815260200161565f60405180604001604052805f81526020015f81525090565b815260200161567f60405180604001604052805f81526020015f81525090565b815260200161569f60405180604001604052805f81526020015f81525090565b81526020016156bf60405180604001604052805f81526020015f81525090565b81526020016156cc6158fb565b81526020016156d9615929565b81526020016156e6615948565b8152602001615566615824565b6040518061010001604052806157326040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b815260200161573f6157e7565b815260200161574c615824565b8152602001615759615824565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020016157b5615981565b81526020016157c2615981565b81526020015f81526020015f81526020015f81526020015f8152602001606081525090565b604051806103600160405280601b906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806105400160405280602a906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b6040518061020001604052806010906020820280368337509192915050565b604051806103800160405280601c905b61591361589f565b81526020019060019003908161590b5790505090565b6040518061052001604052806029906020820280368337509192915050565b604051806103600160405280601b905b604080518082019091525f80825260208201528152602001906001900390816159585790505090565b60405180608001604052806004906020820280368337509192915050565b5f5f5f5f604085870312156159b2575f5ffd5b843567ffffffffffffffff8111156159c8575f5ffd5b8501601f810187136159d8575f5ffd5b803567ffffffffffffffff8111156159ee575f5ffd5b8760208284010111156159ff575f5ffd5b60209182019550935085013567ffffffffffffffff811115615a1f575f5ffd5b8501601f81018713615a2f575f5ffd5b803567ffffffffffffffff811115615a45575f5ffd5b8760208260051b8401011115615a59575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761276257612762615a67565b8181038181111561276257612762615a67565b8082018082111561276257612762615a67565b5f5f85851115615ac6575f5ffd5b83861115615ad2575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b5f60018201615b1857615b18615a67565b5060010190565b80356020831015612762575f19602084900360031b1b1692915050565b5f82615b5657634e487b7160e01b5f52601260045260245ffd5b500690565b5f8183825b6005811015615b7f578151835260209283019290910190600101615b60565b50505060a08201905092915050565b5f8183825b6009811015615bb2578151835260209283019290910190600101615b93565b5050506101208201905092915050565b5f8183825b602a811015615be6578151835260209283019290910190600101615bc7565b5050506105408201905092915050565b81515f90829060208501835b82811015615c20578151845260209384019390910190600101615c02565b509195945050505050565b5f8183825b6003811015615c4f578151835260209283019290910190600101615c30565b50505060608201905092915050565b5f81615c6c57615c6c615a67565b505f190190565b5f8183825b6008811015615c97578151835260209283019290910190600101615c78565b5050506101008201905092915050565b5f82518060208501845e5f920191825250919050565b5f60208284031215615ccd575f5ffd5b81518015158114610333575f5ffd5b5f8183825b6007811015615d00578151835260209283019290910190600101615ce1565b50505060e08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220387d34811d45a38e4fae37e7a6b9e809877e7d62ba18e5726873dea35daedf4264736f6c634300081b0033";
5
5
  /**
6
6
  * HonkVerifier link references.
7
7
  */
8
8
  export declare const HonkVerifierLinkReferences: {};
9
- //# sourceMappingURL=HonkVerifierBytecode.d.ts.map
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSG9ua1ZlcmlmaWVyQnl0ZWNvZGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Ib25rVmVyaWZpZXJCeXRlY29kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGVBQU8sTUFBTSxvQkFBb0IscXYrQ0FBcXYrQyxDQUFDO0FBQ3Z4K0M7O0dBRUc7QUFDSCxlQUFPLE1BQU0sMEJBQTBCLElBQWMsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"HonkVerifierBytecode.d.ts","sourceRoot":"","sources":["../src/HonkVerifierBytecode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB,u37CAAu37C,CAAC;AACz57C;;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,qv+CAAqv+C,CAAC;AACvx+C;;GAEG;AACH,eAAO,MAAM,0BAA0B,IAAc,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * HonkVerifier bytecode.
3
- */ export const HonkVerifierBytecode = "0x610100604052348015610010575f5ffd5b506302000000608052601960a0527f27b76d01cc1ea78ae0c8cf3225eb613b0d972a52d3a043786ec39610b786aef160c05260ae60e05260805160a05160c05160e051615ada6100de5f395f818161018101526107ae01525f61016001525f8181605b01528181609401528181610101015281816101a2015281816108c7015281816109d401528181610a0001528181610a7a015281816112bb0152818161135b01528181611598015281816115e401528181611632015281816116890152612d5b01525f5050615ada5ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b3660046156fe565b610054565b604051901515815260200160405180910390f35b5f5f61007f7f000000000000000000000000000000000000000000000000000000000000000061028c565b905061008c8160206157d6565b85146100ee577f0000000000000000000000000000000000000000000000000000000000000000856100bf8360206157d6565b6040516359895a5360e01b81526004810193909352602483019190915260448201526064015b60405180910390fd5b5f6100f761033a565b90505f61012588887f000000000000000000000000000000000000000000000000000000000000000061034f565b90506010826040015161013891906157ed565b85146101575760405163fa06659360e01b815260040160405180910390fd5b5f6101c68288887f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006106a6565b90506102168787808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152505085518551606081015160809091015191935091506001610758565b815160a001525f61022783836108bf565b905080610247576040516313f8744360e31b815260040160405180910390fd5b5f6102538486856109c0565b905080610273576040516352ec174560e11b815260040160405180910390fd5b81801561027d5750805b9b9a5050505050505050505050565b5f8061029a600260086157d6565b905060016102a96008856157d6565b6102b391906157d6565b6102bd9082615800565b90506102cb600160296157d6565b6102d59082615800565b905060026102e46001856157ed565b6102ee91906157d6565b6102f89082615800565b90506103056001846157d6565b61030f9082615800565b905061031c6002806157d6565b6103269082615800565b9050610333601082615800565b9392505050565b610342615206565b61034a61175b565b905090565b610357615390565b5f805b60108110156103b957610386868387610374602083615800565b9261038193929190615813565b612096565b835182601081106103995761039961583a565b6020020181815250506020826103af9190615800565b915060010161035a565b506103dd8582866103cb604083615800565b926103d893929190615813565b6120a9565b60208301526103ed604082615800565b90506104008582866103cb604083615800565b6040808401919091526104139082615800565b90506104268582866103cb604083615800565b6060830152610436604082615800565b90506104498582866103cb604083615800565b60c0830152610459604082615800565b905061046c8582866103cb604083615800565b60e083015261047c604082615800565b905061048f8582866103cb604083615800565b608083015261049f604082615800565b90506104b28582866103cb604083615800565b6101008301526104c3604082615800565b90506104d68582866103cb604083615800565b60a08301526104e6604082615800565b90505f5b83811015610564575f5b600881101561055b5761050e878488610374602083615800565b84610120015183601c81106105255761052561583a565b6020020151826008811061053b5761053b61583a565b6020020181815250506020836105519190615800565b92506001016104f4565b506001016104ea565b505f5b60298110156105b857610581868387610374602083615800565b83610140015182602981106105985761059861583a565b6020020181815250506020826105ae9190615800565b9150600101610567565b505f5b6105c66001856157ed565b81101561060f576105de8683876103cb604083615800565b83610160015182601b81106105f5576105f561583a565b6020020152610605604083615800565b91506001016105bb565b505f5b838110156106625761062b868387610374602083615800565b83610180015182601c81106106425761064261583a565b6020020181815250506020826106589190615800565b9150600101610612565b506106748582866103cb604083615800565b6101a0830152610685604082615800565b90506106988582866103cb604083615800565b6101c0830152509392505050565b6106ae615440565b5f6106bd88888888888661212b565b90835290506106cc818961217f565b602084019190915290506106e0818461232c565b604084019190915290506106f58882856123bb565b60608401919091529050610709888261248f565b6080840191909152905061071e88828561251a565b60a0840191909152905061073388828561268e565b60c084019190915290506107478882612752565b5060e0830152509695505050505050565b5f60018082610785866107808961077b6107768a6310000000615800565b61278f565b6127a7565b6127c2565b90505f6107a38761079e8a61077b6107768b6001615800565b6127db565b90505f5b6107d260107f00000000000000000000000000000000000000000000000000000000000000006157ed565b81101561083f575f6107fc8c83815181106107ef576107ef61583a565b6020026020010151612803565b905061080c8661077b86846127c2565b955061081c8561077b85846127c2565b9450610828848b6127c2565b9350610834838b6127db565b9250506001016107a7565b505f5b60108110156108a6575f8a826010811061085e5761085e61583a565b602002015190506108738661077b86846127c2565b95506108838561077b85846127c2565b945061088f848b6127c2565b935061089b838b6127db565b925050600101610842565b506108b18484612818565b9a9950505050505050505050565b5f806001815b7f0000000000000000000000000000000000000000000000000000000000000000811015610996575f86610120015182601c81106109055761090561583a565b602002015190505f6109178286612826565b905080610937576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c811061094e5761094e61583a565b6020020151905061095f8382612846565b9550610986886040015185601c811061097a5761097a61583a565b602002015186836129f5565b94505050508060010190506108c5565b505f6109b0866101400151865f0151876020015185612a20565b90508281145b9695505050505050565b5f6109c9615499565b5f6109f88460a001517f0000000000000000000000000000000000000000000000000000000000000000612a99565b90505f610a267f00000000000000000000000000000000000000000000000000000000000000006024615800565b610a31906002615800565b6001600160401b03811115610a4857610a4861584e565b604051908082528060200260200182016040528015610a71578160200160208202803683370190505b5090505f610aa07f00000000000000000000000000000000000000000000000000000000000000006024615800565b610aab906002615800565b6001600160401b03811115610ac257610ac261584e565b604051908082528060200260200182016040528015610afb57816020015b610ae8615509565b815260200190600190039081610ae05790505b509050610b2d610b288760e00151855f81518110610b1b57610b1b61583a565b60200260200101516127db565b612b62565b84610120018181525050610b61610b288760e00151855f81518110610b5457610b5461583a565b60200260200101516127c2565b610140850181905261012085015160c0880151610b829261078091906127a7565b845260a0860151610bb290610b9690612b62565b61077b86610120015161079e8a60c001518961014001516127a7565b6020850152815160019083905f90610bcc57610bcc61583a565b602002602001018181525050876101a00151815f81518110610bf057610bf061583a565b6020908102919091010152600160a08501525f60c08501528351610c1390612bd2565b60408501526020840151610c2690612bd2565b606085015260015b60248111610cd157610c4885604001518660a001516127a7565b838281518110610c5a57610c5a61583a565b602002602001018181525050610ca38560c001516107808b6101400151600185610c8491906157ed565b60298110610c9457610c9461583a565b60200201518860a001516127a7565b60c086015260a08501516080880151610cbc91906127a7565b60a0860152610cca81615862565b9050610c2e565b505f5b6005811015610d9f575f610ce9601d83615800565b90505f610cf7602484615800565b9050610d28858381518110610d0e57610d0e61583a565b602002602001015161078089606001518a60a001516127a7565b858381518110610d3a57610d3a61583a565b602002602001018181525050610d778760c001516107808d61014001518460298110610d6857610d6861583a565b60200201518a60a001516127a7565b60c088015260a087015160808a0151610d9091906127a7565b60a08801525050600101610cd4565b50866060015181600181518110610db857610db861583a565b6020026020010181905250866080015181600281518110610ddb57610ddb61583a565b60200260200101819052508660a0015181600381518110610dfe57610dfe61583a565b60200260200101819052508660c0015181600481518110610e2157610e2161583a565b60200260200101819052508660e0015181600581518110610e4457610e4461583a565b602002602001018190525086610100015181600681518110610e6857610e6861583a565b602002602001018190525086610120015181600781518110610e8c57610e8c61583a565b602002602001018190525086610140015181600881518110610eb057610eb061583a565b602002602001018190525086610160015181600981518110610ed457610ed461583a565b6020026020010181905250866101c0015181600a81518110610ef857610ef861583a565b602002602001018190525086610180015181600b81518110610f1c57610f1c61583a565b6020026020010181905250866101a0015181600c81518110610f4057610f4061583a565b6020026020010181905250866101e0015181600d81518110610f6457610f6461583a565b602002602001018190525086610200015181600e81518110610f8857610f8861583a565b602002602001018190525086610220015181600f81518110610fac57610fac61583a565b602002602001018190525086610240015181601081518110610fd057610fd061583a565b602002602001018190525086610260015181601181518110610ff457610ff461583a565b6020026020010181905250866102800151816012815181106110185761101861583a565b6020026020010181905250866102a001518160138151811061103c5761103c61583a565b6020026020010181905250866102c00151816014815181106110605761106061583a565b6020026020010181905250866102e00151816015815181106110845761108461583a565b6020026020010181905250866103000151816016815181106110a8576110a861583a565b6020026020010181905250866103200151816017815181106110cc576110cc61583a565b6020026020010181905250866103400151816018815181106110f0576110f061583a565b6020026020010181905250866103600151816019815181106111145761111461583a565b602002602001018190525086610380015181601a815181106111385761113861583a565b6020026020010181905250866103a0015181601b8151811061115c5761115c61583a565b6020026020010181905250866103c0015181601c815181106111805761118061583a565b6020026020010181905250876020015181601d815181106111a3576111a361583a565b6020026020010181905250876040015181601e815181106111c6576111c661583a565b6020026020010181905250876060015181601f815181106111e9576111e961583a565b602002602001018190525087608001518160208151811061120c5761120c61583a565b60200260200101819052508760a001518160218151811061122f5761122f61583a565b6020026020010181905250876101000151816022815181106112535761125361583a565b60200260200101819052508760c00151816023815181106112765761127661583a565b60200260200101819052508760e00151816024815181106112995761129961583a565b60200260200101819052505f6112df87606001518660c001518b6101800151877f0000000000000000000000000000000000000000000000000000000000000000612be4565b9050611309815f815181106112f6576112f661583a565b60200260200101518661012001516127a7565b608086018190526101808a01515160c089015161133a92916107809161132f91906127a7565b8861014001516127a7565b608086015260c087015161134d90612d42565b60a08601525f5b61137f60017f00000000000000000000000000000000000000000000000000000000000000006157ed565b81101561157c576113af610b288960e001518784600161139f9190615800565b81518110610b1b57610b1b61583a565b61012087015260e08801516113de90610b2890876113ce856001615800565b81518110610b5457610b5461583a565b61014087015260a08601516101208701516113f991906127a7565b61016087015260a086015160c089015161142191611416916127a7565b8761014001516127a7565b61018087018190526114449061143690612bd2565b610780886101600151612bd2565b848261145260246001615800565b61145c9190615800565b8151811061146c5761146c61583a565b6020026020010181815250505f6114af8761018001518c61018001518460016114959190615800565b601c81106114a5576114a561583a565b60200201516127a7565b90506114e981610780896101600151868660016114cc9190615800565b815181106114dc576114dc61583a565b60200260200101516127a7565b90506114f98760800151826127c2565b608088015260a087015160c08a015161151f91611515916127a7565b8a60c001516127a7565b60a08801526101608b015182601b811061153b5761153b61583a565b6020020151848361154e60246001615800565b6115589190615800565b815181106115685761156861583a565b602090810291909101015250600101611354565b50604080518082019091526001815260026020820152826115be7f00000000000000000000000000000000000000000000000000000000000000006024615800565b815181106115ce576115ce61583a565b602090810291909101015260808501518361160a7f00000000000000000000000000000000000000000000000000000000000000006024615800565b8151811061161a5761161a61583a565b60209081029190910101526101c089015180836116587f00000000000000000000000000000000000000000000000000000000000000006024615800565b611663906001615800565b815181106116735761167361583a565b602090810291909101015260e0880151846116af7f00000000000000000000000000000000000000000000000000000000000000006024615800565b6116ba906001615800565b815181106116ca576116ca61583a565b6020026020010181815250505f6116e18486612d4d565b90505f6116ed83612e5d565b90505f6116fe8d5f01518484612ea3565b90505f5f61170e8f5f0151612f19565b9150915061171b82612fda565b61172481612fda565b61172f858385613079565b945061173c848285613079565b9350611748858561309f565b9f9e505050505050505050505050505050565b611763615206565b50604080516103e08101825263020000008152601960208083019190915260ae82840152825180840184527f11a7a72ab9c84ba85f7ce248d1e95b0301cf033b758bd8698a46f42bfe080c2281527f026797cc7f4108e8a73b79af8afdf37a8a248ea568a0a73af5552415ab1654f5818301526060830152825180840184527f2955230171649b265519608f34cd6493ce24270b068dbb0ecadf423e1ceb197f81527f2aae76193862c0eb16aefa9e9c19c145f027d2782300bb15de6f490b4dfb8921818301526080830152825180840184527f293f2002fb518146b8b4126c58d6eab1c0bd92dc1aa9836548df4b2b84fd63fa81527f0e428717bcb646448cb750da71236a418cc62134862b2900241189fc310eaef18183015260a0830152825180840184527f01769432c893e80a29ba5b1cc058a9941ea87737cfb0f23e2987573aa16b33d381527f21c127a4f597cbdae9e3970781eff9da45aff9e62e053293771af654f12a0b498183015260c0830152825180840184527f2af347c8f9b40f82a2cb7fd3e6b96e53c18ab2253fc3915b8be72c3bae177d1c81527f0bde59fa4bf2a21e94a0cc0e8ee5377496f9827c04c1e7819a147e318a2ae0b38183015260e0830152825180840184527f2953162287652ce150786cfffba3a968b4e5d378f5ec5e0d9e8274797e14de0881527f20cd82ffa9d903fc21a1c1fe28abfa5673ccef0c8a5aa59df119e0805efdfc3d81830152610100830152825180840184527f107d2d79c20982125b9f302008ecbd7b7f25eebc71271311c28f58223170c78b81527f0f3c9104533084fca88d92d900c94cb1400899b1c3c2b40cf32807f7d8517f4781830152610120830152825180840184527f15dcbe0db3d034c82c80400ac7f3aa53a42e5d1dedbd0704ce11bc4d71e9895981527f1bc74a76a98e11deccb2bce4eee40f9e73b3b30454e5db4d6476c55126acce2181830152610140830152825180840184527f0871168649cbc0441f1234995e5353f04b724ad2a8b0755dd802cd879043c16981527f302c06c3fe3aee1157d48876d8b12e06c0f849d66438c03fa6cabc8756ba284781830152610160830152825180840184527f29f7acf34b95134f31724e86315a45176f8f8e8a0d98e09e78ce53f3175bcb7181527f18c048e35e4d5443a9a5c6d8688d640f4b4b413548d377cd5c8b9f5ed67f8d3081830152610180830152825180840184527f12ca84fbf9f5c8283e0007c1c44eef4769f180606b248e4e441662be57a65ae081527f0f3b92564b6a4235346bef1407f901c64b45ac0aeee560f87113dcea9fe04b3f818301526101a0830152825180840184527f08660ce1208402729f1946036ac74322a052c4eb2f2fa87ee1924ae3987c268781527f129c97fef6c35c522a19f0e249d5fbdcff853c008b3f1f1205f63fdc46e32e89818301526101c0830152825180840184527f0ea3262373e20232c5d6a21dc2a4531361fd912dc91f0ece8b457495d368607081527f29152a83b2e1a9df18312a8ca62cebb78eec479741bbdbad019c774c2b2edf6d818301526101e0830152825180840184527f06e149274cf33818b12d07803a7148c574bfdade407e0f0342e225f7ab1ce7ca81527f243d93cc233615be9cc6ee05a5dff4d4f4b6a04675115764a12b857fb33b4af481830152610200830152825180840184527f28523d76ae8dd9f19edb5766cac5f959b4495ea1a5b2af3e885a59d0b746974e81527f16bb162ffeb0fd1dbd92eb082c0c404627629df624f118c11c29909b0d91c26081830152610220830152825180840184527f1c2ec4d7f9d65b8aacd953e0cc0a62bc1121cd5e41ea445394298d1f30cefead81527f24a7128bd403b543cb8b64a1b8b5bd81a4ea5309722bbf352624cf76844f4e8f81830152610240830152825180840184527f07196b86b0b3bf50024c6eac810fe07444033e33ab9f8c9a0cf9dec88316fb5d81527f2b3d64053f1b282f649893b4e42fcf7cb3fa38703f68871e355c29c02ab380c581830152610260830152825180840184527f0b1af30b3dd63ae4616f72b0372f938bd06ad5ba9a0f9c2fb46ccab8a9f16ab381527f286d5d8510c8d044701ec5f03621a131636a6e29384624ecf91ec4d92e0ede9d81830152610280830152825180840184527ebe0277c5bcaaa1e0bca92f1a2aa4dcdd36f41fbdb2698046ad0aa896c6852381527f30071c99b0ddf3463adbfab2aeb1424ff3f179114bbc63a04c02141223d25080818301526102a0830152825180840184527f18feb8b9442ea3cefee50d6393936678e2ed825ea2719956c68c94d79563defe81527f238c1be2d6bd7fd7c24912ac29b73389a3ba43113d0b93e7648ab46e6faca63d818301526102c0830152825180840184527f16f8ef9cd9196f016ee08c94814ebacefdabbb226d658d9afca44053b5bcb93b81527f249ebd3951a4677df874b8425fdda032ae309f9884e5fa4f8540a03082742c2c818301526102e0830152825180840184527f2b6a8fb05374f12129a2ab44aa31da8fdb3738502d8d3b3d5b520b7174a4410b81527f1654d0d283ce14dac4a7a763cd36788e5ade3b281b970552480cac0013aadf1881830152610300830152825180840184527f275a0bb22f8c37a3476d71c556d266909fdde001df48d48a78940343ccb0b48a81527f2a4cc2119d1bd729845e8630c5b1aec652a2f2a7ae690c52238e3eafd44b385681830152610320830152825180840184527f1e1d6ac562a951aa01bc279a090d34488936a6404b3c75294fd260df0d36689381527f1643515b25c47e776b6d99eb3ce8b4613b209886681842e5c39ee92efe72c27281830152610340830152825180840184527f20db30b046148206e1ce5d50fe2559d2e60dbe3472bb605600c6e01d0965df8281527f0d5d5be706d7b3b8a7d3d02043ef0e324676187770f682c791ce1cd3deadc05881830152610360830152825180840184527f1f59b85de9212665c6c3e59fb35ab6609d72f5ad8007449dc8019a5886fad88f81527f21c9b787b5e0109e8ab3c2293b8c67fa9ec871818722fb8bea77aa6477aaae4c8183015261038083015282518084018452600181526002818301526103a083015282518084019093527f19d2fe7fafa2b39b777720b870d7ad825dabf6f520a462e65a7d7385a60b36e983527f089d0b1ec26396c39d17274a132ac640da654fb818ae72bd30185240dec588d9908301526103c081019190915290565b5f6103336120a4838561587a565b612803565b6120b1615509565b60408051808201909152805f516020615a9a5f395f51905f526120d760205f8789615813565b6120e09161587a565b6120ea91906158ab565b81526020908101905f516020615a9a5f395f51905f529061210f906040908789615813565b6121189161587a565b61212291906158ab565b90529392505050565b612133615521565b5f6121418888888888613293565b6040860191909152602085019190915290835292506121608389613590565b6080850191909152606084019190915291989197509095505050505050565b612187615551565b5f612190615570565b8481526101008401805151602080840191909152905181015160408084019190915260a086018051516060850152518201516080840152516121f3916121d8918491016158be565b60405160208183030381529060405280519060200120612803565b91506121fe82613617565b6020850152835260015b60026122166001601c6157ed565b61222091906158f1565b8110156122a05761223d836040516020016121d891815260200190565b925061224883613617565b856122548460026157d6565b601b81106122645761226461583a565b60200201866122748560026157d6565b61227f906001615800565b601b811061228f5761228f61583a565b602002019190915252600101612208565b506122ad6001601c6157ed565b60011660011480156122ca575060026122c86001601c6157ed565b115b15612324576122e5826040516020016121d891815260200190565b91505f6122f183613617565b8560016122ff81601c6157ed565b61230991906157ed565b601b81106123195761231961583a565b602002019190915250505b509250929050565b61233461558e565b5f61234b846040516020016121d891815260200190565b935061235684613617565b50825260015b838110156123b357612394836123736001846157ed565b601c81106123835761238361583a565b6020020151846114956001856157ed565b8382601c81106123a6576123a661583a565b602002015260010161235c565b509093915050565b6123c361558e565b5f805b83811015612485576123d66155ad565b8581525f5b600881101561243f5787610120015183601c81106123fb576123fb61583a565b602002015181600881106124115761241161583a565b602002015182612422836001615800565b600981106124325761243261583a565b60200201526001016123db565b50612454816040516020016121d89190615904565b95505f61246087613617565b8685601c81106124725761247261583a565b60200201919091525050506001016123c6565b5090949293505050565b5f5f6124996155cc565b8381525f5b60298110156124ec5785610140015181602981106124be576124be61583a565b6020020151826124cf836001615800565b602a81106124df576124df61583a565b602002015260010161249e565b50612501816040516020016121d89190615938565b91505f61250d83613617565b5096929550919350505050565b5f80806125286001856157ed565b6125339060026157d6565b61253e906001615800565b6001600160401b038111156125555761255561584e565b60405190808252806020026020018201604052801561257e578160200160208202803683370190505b50905084815f815181106125945761259461583a565b60209081029190910101525f5b6125ac6001866157ed565b81101561265f5786610160015181601b81106125ca576125ca61583a565b602002015151826125dc8360026157d6565b6125e7906001615800565b815181106125f7576125f761583a565b60200260200101818152505086610160015181601b811061261a5761261a61583a565b6020020151602001518282600261263191906157d6565b61263c906002615800565b8151811061264c5761264c61583a565b60209081029190910101526001016125a1565b50612674816040516020016121d8919061596c565b91505f61268083613617565b509792965091945050505050565b5f808061269c846001615800565b6001600160401b038111156126b3576126b361584e565b6040519080825280602002602001820160405280156126dc578160200160208202803683370190505b50905084815f815181106126f2576126f261583a565b60209081029190910101525f5b8481101561265f5786610180015181601c811061271e5761271e61583a565b60200201518261272f836001615800565b8151811061273f5761273f61583a565b60209081029190910101526001016126ff565b5f5f61275c6155eb565b8381526101a08501805151602080840191909152905181015160408084019190915251612501916121d8918491016159a1565b5f5f516020615aba5f395f51905f52825b0692915050565b5f5f516020615aba5f395f51905f5282840990505b92915050565b5f5f516020615aba5f395f51905f528284089392505050565b5f5f516020615aba5f395f51905f52825f516020615aba5f395f51905f520384089392505050565b5f5f516020615aba5f395f51905f52826127a0565b5f6103338361077b84612b62565b815160208301515f91829161283b91906127c2565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b600881101561292d576129238261077b87846127db565b915060010161290c565b50612936615609565b5f5b6008811015612997575f8482600881106129545761295461583a565b602002015190506129698161077b89856127db565b905061297481612b62565b9050808383600881106129895761298961583a565b602002015250600101612938565b505f5b60088110156129ea575f8782600881106129b6576129b661583a565b602002015190506129d3818484600881106114a5576114a561583a565b90506129df86826127c2565b95505060010161299a565b506109b684836127a7565b5f5f612a0b60016107808561077b8960016127db565b9050612a1784826127a7565b95945050505050565b5f612a2961558e565b612a34868285613647565b612a40868683866137f3565b612a4c868683866139df565b612a57868285613c0a565b612a62868285613dfe565b612a6e86868386614147565b612a798682856145f3565b612a84868285614a05565b612a8f868285614dc6565b6109b681856150c6565b60605f826001600160401b03811115612ab457612ab461584e565b604051908082528060200260200182016040528015612add578160200160208202803683370190505b50905083815f81518110612af357612af361583a565b602090810291909101015260015b83811015612b5a57612b3582612b186001846157ed565b81518110612b2857612b2861583a565b6020026020010151612d42565b828281518110612b4757612b4761583a565b6020908102919091010152600101612b01565b509392505050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f516020615aba5f395f51905f520360808201525f516020615aba5f395f51905f5260a082015260205f60c08360055afa80612bbe575f5ffd5b505f51608091909101604052949350505050565b5f516020615aba5f395f51905f520390565b60605f826001600160401b03811115612bff57612bff61584e565b604051908082528060200260200182016040528015612c28578160200160208202803683370190505b509050825b8015612d37575f85612c406001846157ed565b81518110612c5057612c5061583a565b602002602001015190505f89600184612c6991906157ed565b601c8110612c7957612c7961583a565b602002015190505f612cd4612c98612c91858d6127a7565b60026127a7565b61079e8b612ca76001896157ed565b601c8110612cb757612cb761583a565b602002015161077b612cce8861077b60018a6127db565b876127db565b9050612cf58161077b610b28612cef8761077b6001896127db565b866127c2565b99508990508085612d076001876157ed565b81518110612d1757612d1761583a565b60200260200101818152505050505080612d30906159d4565b9050612c2d565b509695505050505050565b5f6127bc82836127a7565b612d55615509565b5f612d817f00000000000000000000000000000000000000000000000000000000000000006024615800565b612d8c906002615800565b90505f5b81811015612dc257612dba858281518110612dad57612dad61583a565b6020026020010151612fda565b600101612d90565b50604051600190815b60018401811015612e275760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612dcb565b5080518452602081015160208501525080612e55576040516352ec174560e11b815260040160405180910390fd5b505092915050565b612e65615509565b5f516020615a9a5f395f51905f5282602001515f516020615a9a5f395f51905f52612e9091906157ed565b612e9a91906158ab565b60208301525090565b5f5f5f612eaf86612f19565b91509150612ebb615609565b82518152602080840151818301528251604080840191909152838201516060840152875160808401528782015160a0840152865160c08401528682015160e084015251612f0e916121d8918491016159e9565b979650505050505050565b612f21615509565b612f29615509565b82516020808501516040860151606087015160cc90811b608892831b604494851b90961795909517949094178652608087015160a088015160c089015160e08a0151871b90841b91851b9092171717868401526101008701516101208801516101408901516101608a0151871b90841b91851b909217171785526101808701516101a08801516101c08901516101e09099015190951b9790911b9390911b1791909117939093179281019290925291565b805160208201515f5f516020615a9a5f395f51905f528380095f516020615a9a5f395f51905f5260035f516020615a9a5f395f51905f52838709085f516020615a9a5f395f51905f5284850914915050806130735760405162461bcd60e51b8152602060048201526019602482015278706f696e74206973206e6f74206f6e2074686520637572766560381b60448201526064016100e5565b50505050565b613081615509565b613089615509565b613093838661511f565b9050612a178185615175565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516132359190615a1d565b5f60405180830381855afa9150503d805f811461326d576040519150601f19603f3d011682016040523d82523d5f602084013e613272565b606091505b50915091508180156109b65750808060200190518101906109b69190615a33565b5f808080806132a3866001615800565b6132ae906006615800565b6001600160401b038111156132c5576132c561584e565b6040519080825280602002602001820160405280156132ee578160200160208202803683370190505b509050865f1b815f815181106133065761330661583a565b60209081029190910101525f5b61331e6010886157ed565b81101561336f578989828181106133375761333761583a565b905060200201358282600161334c9190615800565b8151811061335c5761335c61583a565b6020908102919091010152600101613313565b505f5b60108110156133e0578a5161339a9082601081106133925761339261583a565b602002015190565b828260106133a98b6001615800565b6133b391906157ed565b6133bd9190615800565b815181106133cd576133cd61583a565b6020908102919091010152600101613372565b5060208a015151816133f3886001615800565b815181106134035761340361583a565b6020908102919091018101919091528a810151015181613424886001615800565b61342f906001615800565b8151811061343f5761343f61583a565b602090810291909101015260408a0151518161345c886001615800565b613467906002615800565b815181106134775761347761583a565b60209081029190910181019190915260408b0151015181613499886001615800565b6134a4906003615800565b815181106134b4576134b461583a565b602090810291909101015260608a015151816134d1886001615800565b6134dc906004615800565b815181106134ec576134ec61583a565b60209081029190910181019190915260608b015101518161350e886001615800565b613519906005615800565b815181106135295761352961583a565b602002602001018181525050613549816040516020016121d8919061596c565b915061355482613617565b604080516020810186905292975090955061356f91016121d8565b91505f61357b83613617565b50959b949a5094985090965091945050505050565b5f5f5f61359b615628565b85815260c0858101805151602080850191909152905181015160408085019190915260e08801805151606086015251820151608080860191909152880180515160a0860152518201519284019290925290516135fd916121d891849101615a52565b915061360882613617565b90979096509194509092505050565b5f80826001600160801b038116608082901c61363282612803565b945061363d81612803565b9350505050915091565b5f6136538460076151d6565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f6136b46136ae6136888560036127db565b61077b6136a36136988b5f6151d6565b61077b8c601d6151d6565b61077b8b601c6151d6565b836127a7565b905061373561372a6137116136f86136df856107806136d48d60026151d6565b61077b8e601c6151d6565b6107806136ed8c60036151d6565b61077b8d601d6151d6565b6107806137068b60046151d6565b61077b8c601e6151d6565b61078061371f8a60056151d6565b61077b8b601f6151d6565b6107808860016151d6565b9050613754816107806137498660016127db565b61077b8a60276151d6565b905061376081846127a7565b905061376c81856127a7565b8552505f90506137a661379c61379161378688601c6151d6565b61078089601f6151d6565b61079e8860246151d6565b610780875f6151d6565b90506137b78161077b8460026127db565b90506137c88161077b8460016127db565b90506137d481836127a7565b90506137e081846127a7565b9050808460015b60200201525050505050565b5f5f5f61382961381f61380789601c6151d6565b6107806138158b60126151d6565b8a606001516127a7565b87608001516127c2565b90506138628161077b6138586138408b601d6151d6565b61078061384e8d60136151d6565b8c606001516127a7565b89608001516127c2565b90506138878161077b6138586138798b601e6151d6565b61078061384e8d60146151d6565b90506138ac8161077b61385861389e8b601f6151d6565b61078061384e8d60156151d6565b92505f90506138d061381f6138c289601c6151d6565b6107806138158b600e6151d6565b90506138f58161077b6138586138e78b601d6151d6565b61078061384e8d600f6151d6565b905061391a8161077b61385861390c8b601e6151d6565b61078061384e8d60106151d6565b905061393f8161077b6138586139318b601f6151d6565b61078061384e8d60116151d6565b91505f90506139666139606139558960206151d6565b6107808a601a6151d6565b846127a7565b905061399b8161079e61399561397d8b60286151d6565b61078061398b8d601b6151d6565b8c60a001516127a7565b856127a7565b90506139a781856127a7565b6040860152505f6139ca6139956139bf89601b6151d6565b61077b8a60286151d6565b9050808560035b602002015250505050505050565b5f5f613a3d613a25613a0d6139f86138588a60166151d6565b610780613a068b60176151d6565b8a516127a7565b610780613a1b8a60186151d6565b89602001516127a7565b610780613a338960196151d6565b88604001516127a7565b91505f613a74613a5b613a5189601c6151d6565b88608001516127c2565b610780613a698a60036151d6565b61077b8b60246151d6565b90505f613a9d613a8589601d6151d6565b610780613a928b5f6151d6565b61077b8c60256151d6565b90505f613ac7613aae8a601e6151d6565b610780613abc8c60016151d6565b61077b8d60266151d6565b9050613b06613aee613ae085610780868d5f01516127a7565b610780848c602001516127a7565b610780613afc8c60046151d6565b8b604001516127a7565b93505050505f613b1a6139608860216151d6565b90505f613b2b6139608960216151d6565b90505f613b63613b4a613b3f8b60236151d6565b6107808c60066151d6565b61079e613b588c60236151d6565b61077b8d60066151d6565b90505f613b87613b81613b7687896127a7565b61077b8d60216151d6565b836127db565b9050613b9381886127a7565b90505f613bbb613bad613ba78d60066151d6565b876127a7565b61079e613ba78e60226151d6565b90505f613bc98c60236151d6565b90505f613bd9613b8183846127a7565b60808c0185905260a08c018490529050613bf3818b6127a7565b8b6006602002015250505050505050505050505050565b5f613c165f60016127db565b90505f613c245f60026127db565b90505f613c325f60036127db565b90505f613c4e613c4388601d6151d6565b61079e89601c6151d6565b90505f613c6a613c5f89601e6151d6565b61079e8a601d6151d6565b90505f613c86613c7b8a601f6151d6565b61079e8b601e6151d6565b90505f613ca2613c978b60246151d6565b61079e8c601f6151d6565b905083613cb38161077b818b6127c2565b9050613cc38161077b878a6127c2565b9050613cd38161077b87896127c2565b9050613ce48161077b8d60086151d6565b9050613cf0818a6127a7565b60e08b01525082613d058161077b818b6127c2565b9050613d158161077b868a6127c2565b9050613d258161077b86896127c2565b9050613d368161077b8d60086151d6565b9050613d42818a6127a7565b6101008b01525081613d588161077b818b6127c2565b9050613d688161077b858a6127c2565b9050613d788161077b85896127c2565b9050613d898161077b8d60086151d6565b9050613d95818a6127a7565b6101208b01525080613dab8161077b818b6127c2565b9050613dbb8161077b848a6127c2565b9050613dcb8161077b84896127c2565b9050613ddc8161077b8d60086151d6565b9050613de8818a6127a7565b610140909a019990995250505050505050505050565b613e376040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613e4284601d6151d6565b8152613e4f84601e6151d6565b6020820152613e5f8460246151d6565b6040820152613e6f8460276151d6565b6060820152613e7f8460266151d6565b6080820152613e8f8460256151d6565b60a08201525f613ea08560026151d6565b90505f613ead865f6151d6565b90505f613ec18460400151855f01516127db565b90505f613ed6856020015186602001516127a7565b606086015190915086905f90613eec90806127a7565b90505f613f0a613f0489602001518a606001516127a7565b886127a7565b90505f613f29613f228a60a001518b604001516127c2565b8a516127c2565b9050613f38613ba782886127a7565b9050613f5f613f59613f53613f4d84876127db565b886127db565b846127c2565b836127c2565b9050613f87613f7c613f7183876127a7565b61077b8f60096151d6565b61077b60018a6127db565b6101608c015250505050602085015160808601515f91613fa6916127c2565b90505f613fc4613fba8860600151886127a7565b88602001516127db565b90505f613fe8613fd484876127a7565b6107806139958b60a001518c5f01516127db565b9050614010614005613ffa838c6127a7565b61077b8e60096151d6565b61077b6001896127db565b6101808b0152505f9150614031905061402a8360116127c2565b87516127a7565b90505f61403e83846127c2565b905061404a81826127c2565b90505f6140588360096127a7565b905061408161407b6139606140748b60a001518c5f01516127c2565b8b516127c2565b826127db565b60c089018190525f9061409c90613f0490613f71908d6127a7565b90506140af8b600b6020020151826127c2565b6101608c0152505086515f92506140d6915061402a906140cf90806127c2565b88516127c2565b90505f6141166140f18361077b8a5f01518b60a001516127db565b602089015161079e9061410490806127c2565b61077b8b602001518c608001516127c2565b905061413389600c6020020151610780613f04613f71858d6127a7565b89600c602002015250505050505050505050565b6141b1604051806101e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6141c96141bf86601e6151d6565b85604001516127a7565b8082526141e8906107806141de88601d6151d6565b87602001516127a7565b8082526141fd9061078061402a88601c6151d6565b80825261420f906107808760016151d6565b808252602082018190526142289061079e87601f6151d6565b81526142436142388660246151d6565b61079e87601c6151d6565b60808201526142616142568660276151d6565b61079e87601f6151d6565b6060820152608081015161427a9061077b8160016127db565b6101c082015260808101516142ba906142b0906142a99061077b60015f516020615aba5f395f51905f526157ed565b60016127c2565b82606001516127a7565b60a082018190526142f0906142e29061077b6142d78960026151d6565b61077b8a60036151d6565b61077b61399588600a6151d6565b83600e60200201526101c0810151614314906142e29061077b6142d78960026151d6565b6101e084015280516143399061077b61432e8860026151d6565b61077b8960036151d6565b6101208201525f61435861434e87601f6151d6565b83602001516127db565b90506143698161077b8360016127db565b60e083015261438661437c8760266151d6565b86604001516127a7565b604083018190526143a99061078061439f8960256151d6565b88602001516127a7565b604083018190526143c9906107806143c28960246151d6565b88516127a7565b60408301526143e66143dc8760276151d6565b83604001516127db565b60408301525f6144056143fa8860266151d6565b61079e89601e6151d6565b90506144576144326136ae6142a9866080015160015f516020615aba5f395f51905f5261077b91906157ed565b61077b6142a9866040015160015f516020615aba5f395f51905f5261077b91906157ed565b60c084015260408301516144799061446f90806127a7565b84604001516127db565b61010084015260c08301516144a5906144979061077b8a60046151d6565b61077b613ba78a600a6151d6565b6102008601526101c08301516144c4906144979061077b8a60046151d6565b6102208601526101008301516144e3906144979061077b8a60046151d6565b61024086015260e08301516144fd9061077b8960046151d6565b61014084015261451c6145118860256151d6565b61079e89601d6151d6565b610160840152608083015161455a906143fa9061454f906142a99061077b60015f516020615aba5f395f51905f526157ed565b8561016001516127a7565b61018084018190526101208401516101a08501819052614591916107809061077b6145868c60056151d6565b61077b8d60026151d6565b6101a0840181905283516145b191906107809061077b6145868c5f6151d6565b6101a084018190526101408401516145c991906127c2565b6101a084018190526145e39061077b613ba78a600a6151d6565b6101a0840181905285600d6139d1565b61462c6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61466161464861463d86601c6151d6565b61077b8760256151d6565b6107806146568760246151d6565b61077b88601d6151d6565b81526146a661469b61468261467787601c6151d6565b61077b88601f6151d6565b61078061469088601d6151d6565b61077b89601e6151d6565b61079e8660266151d6565b604082018190526146bb90600160441b6127a7565b604082018190526146d19061079e8660276151d6565b6040820181905281516146e491906127c2565b604082018190526146fa9061077b8660056151d6565b6040820152805161470f90600160441b6127a7565b80825261472f906107806147248760246151d6565b61077b8860256151d6565b808252602082018190526147569061079e61474b87601e6151d6565b61078088601f6151d6565b6020820181905261476c9061077b8660046151d6565b60208201528051606082018190526147899061078086601f6151d6565b606082018190526147ad9061079e6147a28760266151d6565b6107808860276151d6565b606082018190526147c29061077b865f6151d6565b8160600181815250505f6147eb6147e1836020015184604001516127c2565b83606001516127c2565b90506147fc8161077b8760036151d6565b905061481461480c8660256151d6565b6140006127a7565b6080830181905261482a906107808760246151d6565b6080830181905261483d906140006127a7565b608083018190526148539061078087601e6151d6565b60808301819052614866906140006127a7565b6080830181905261487c9061078087601d6151d6565b6080830181905261488f906140006127a7565b608083018190526148a59061078087601c6151d6565b608083018190526148bb9061079e87601f6151d6565b608083018190526148d19061077b8760056151d6565b60808301526148e461480c8660266151d6565b60a083018190526148fa906107808760256151d6565b60a0830181905261490d906140006127a7565b60a08301819052614923906107808760246151d6565b60a08301819052614936906140006127a7565b60a0830181905261494c9061078087601f6151d6565b60a0830181905261495f906140006127a7565b60a083018190526149759061078087601e6151d6565b60a0830181905261498b9061079e8760276151d6565b60a083018190526149a09061077b875f6151d6565b60a0830181905260808301515f916149b891906127c2565b90506149c98161077b8860046151d6565b90506149d582826127c2565b60c084018190526149ee9061077b613ba789600b6151d6565b60c084018190528560136020020152505050505050565b614a7b6040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b614a94614a8985601c6151d6565b6107808660026151d6565b8152614aaf614aa485601d6151d6565b6107808660036151d6565b6020820152614acd614ac285601e6151d6565b6107808660046151d6565b6040820152614aeb614ae085601f6151d6565b6107808660056151d6565b60608201528051614b1d90614b1690614b0f90614b0890806127a7565b84516127a7565b83516127a7565b82516127a7565b60808201526020810151614b5b90614b5190614b4790614b3d90806127a7565b84602001516127a7565b83602001516127a7565b82602001516127a7565b60a08201526040810151614b9990614b8f90614b8590614b7b90806127a7565b84604001516127a7565b83604001516127a7565b82604001516127a7565b60c08201526060810151614bcd906142b090614bc390614bb990806127a7565b84606001516127a7565b83606001516127a7565b60e0820152608081015160a0820151614be691906127c2565b61010082015260c081015160e0820151614c0091906127c2565b61012082015260a0810151614c2490614c1990806127c2565b8261012001516127c2565b61014082015260e0810151614c4890614c3d90806127c2565b8261010001516127c2565b610160820152610120810151614c5e90806127c2565b6101e08201819052614c7f90614c7490806127c2565b8261016001516127c2565b6101e0820152610100810151614c9590806127c2565b6101a08201819052614cb690614cab90806127c2565b8261014001516127c2565b6101a08201819052610160820151614ccd916127c2565b6101808201526101408101516101e0820151614ce991906127c2565b6101c0820152614cfd6136ae85600c6151d6565b6102008201819052610280840151610180830151614d28926107809161077b9061079e8a60246151d6565b8360146020020152614d58836015602002015161078083610200015161077b856101a0015161079e8a60256151d6565b8360156020020152614d88836016602002015161078083610200015161077b856101c0015161079e8a60266151d6565b8360166020020152614db8836017602002015161078083610200015161077b856101e0015161079e8a60276151d6565b836017602002015250505050565b614e186040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f6040518060800160405280614e4d7f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e761278f565b8152602001614e7b7f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b61278f565b8152602001614ea87e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac1561278f565b8152602001614ed67f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b61278f565b90529050614ef3614ee886601c6151d6565b6107808760026151d6565b6101208301819052614f3290614f2790614f1c90614f1190806127a7565b8561012001516127a7565b8461012001516127a7565b8361012001516127a7565b8252614f3f85601d6151d6565b6020830152614f4f85601e6151d6565b6040830152614f5f85601f6151d6565b606083015281516020830151614f87916147e191614f7d91906127c2565b84604001516127c2565b6080830152614f9a61396086600d6151d6565b6101408301528151614fbb90614fb190835f6114a5565b83608001516127c2565b60a0830152614fe7846018602002015161078084610140015161077b8660a0015161079e8b60246151d6565b610300850152602082015161500290614fb1908360016114a5565b60c083015261502e846019602002015161078084610140015161077b8660c0015161079e8b60256151d6565b610320850152604082015161504990614fb1908360026114a5565b60e083015261507584601a602002015161078084610140015161077b8660e0015161079e8b60266151d6565b610340850152606082015161509090614fb1908360036114a5565b6101008301526150be84601b602002015161078084610140015161077b86610100015161079e8b60276151d6565b84601b6137e7565b815160015b601c8110156151185761510e826107808684601c81106150ed576150ed61583a565b6020020151866150fe6001876157ed565b601b81106114a5576114a561583a565b91506001016150cb565b5092915050565b615127615509565b61512f615509565b604051835181526020840151602082015284604082015260408160608360075afa80615159575f5ffd5b5080518252602080820151908301526060016040529392505050565b61517d615509565b615185615509565b6040518451815260208501516020820152835160408201526020840151606082015260408160808360065afa806151ba575f5ffd5b5080518252602080820151908301526080016040529392505050565b5f828260288111156151ea576151ea615a85565b602981106151fa576151fa61583a565b60200201519392505050565b604051806103e001604052805f81526020015f81526020015f815260200161522c615509565b8152602001615239615509565b8152602001615246615509565b8152602001615253615509565b8152602001615260615509565b815260200161526d615509565b815260200161527a615509565b8152602001615287615509565b8152602001615294615509565b81526020016152a1615509565b81526020016152ae615509565b81526020016152bb615509565b81526020016152c8615509565b81526020016152d5615509565b81526020016152e2615509565b81526020016152ef615509565b81526020016152fc615509565b8152602001615309615509565b8152602001615316615509565b8152602001615323615509565b8152602001615330615509565b815260200161533d615509565b815260200161534a615509565b8152602001615357615509565b8152602001615364615509565b8152602001615371615509565b815260200161537e615509565b815260200161538b615509565b905290565b604051806101e001604052806153a4615646565b81526020016153b1615509565b81526020016153be615509565b81526020016153cb615509565b81526020016153d8615509565b81526020016153e5615509565b81526020016153f2615509565b81526020016153ff615509565b815260200161540c615509565b8152602001615419615665565b8152602001615426615693565b81526020016154336156b2565b815260200161537161558e565b604051806101000160405280615454615521565b8152602001615461615551565b815260200161546e61558e565b815260200161547b61558e565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020016154d76156e0565b81526020016154e46156e0565b81526020015f81526020015f81526020015f81526020015f8152602001606081525090565b60405180604001604052805f81526020015f81525090565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604051806103600160405280601b906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806105400160405280602a906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b6040518061020001604052806010906020820280368337509192915050565b604051806103800160405280601c905b61567d615609565b8152602001906001900390816156755790505090565b6040518061052001604052806029906020820280368337509192915050565b604051806103600160405280601b905b6156ca615509565b8152602001906001900390816156c25790505090565b60405180608001604052806004906020820280368337509192915050565b5f5f5f5f60408587031215615711575f5ffd5b84356001600160401b03811115615726575f5ffd5b8501601f81018713615736575f5ffd5b80356001600160401b0381111561574b575f5ffd5b87602082840101111561575c575f5ffd5b6020918201955093508501356001600160401b0381111561577b575f5ffd5b8501601f8101871361578b575f5ffd5b80356001600160401b038111156157a0575f5ffd5b8760208260051b84010111156157b4575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176127bc576127bc6157c2565b818103818111156127bc576127bc6157c2565b808201808211156127bc576127bc6157c2565b5f5f85851115615821575f5ffd5b8386111561582d575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b5f60018201615873576158736157c2565b5060010190565b803560208310156127bc575f19602084900360031b1b1692915050565b634e487b7160e01b5f52601260045260245ffd5b5f826158b9576158b9615897565b500690565b5f8183825b60058110156158e25781518352602092830192909101906001016158c3565b50505060a08201905092915050565b5f826158ff576158ff615897565b500490565b5f8183825b6009811015615928578151835260209283019290910190600101615909565b5050506101208201905092915050565b5f8183825b602a81101561595c57815183526020928301929091019060010161593d565b5050506105408201905092915050565b81515f90829060208501835b82811015615996578151845260209384019390910190600101615978565b509195945050505050565b5f8183825b60038110156159c55781518352602092830192909101906001016159a6565b50505060608201905092915050565b5f816159e2576159e26157c2565b505f190190565b5f8183825b6008811015615a0d5781518352602092830192909101906001016159ee565b5050506101008201905092915050565b5f82518060208501845e5f920191825250919050565b5f60208284031215615a43575f5ffd5b81518015158114610333575f5ffd5b5f8183825b6007811015615a76578151835260209283019290910190600101615a57565b50505060e08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001";
3
+ */ export const HonkVerifierBytecode = "0x610100604052348015610010575f5ffd5b506301000000608052601860a0527f1e00f0a8746b94225fb97cdd22989aab31d75d3dfe27f2b5b7dc73220c444fba60c05260ae60e05260805160a05160c05160e051615d996100de5f395f818161018101526107ae01525f61016001525f8181605b01528181609401528181610101015281816101a2015281816108c7015281816109d401528181610a0001528181610a7b015281816112d401528181611374015281816115c30152818161160f0152818161165d015281816116b40152612cfc01525f5050615d995ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b36600461599f565b610054565b604051901515815260200160405180910390f35b5f5f61007f7f000000000000000000000000000000000000000000000000000000000000000061028c565b905061008c816020615a7b565b85146100ee577f0000000000000000000000000000000000000000000000000000000000000000856100bf836020615a7b565b6040516359895a5360e01b81526004810193909352602483019190915260448201526064015b60405180910390fd5b5f6100f761033a565b90505f61012588887f000000000000000000000000000000000000000000000000000000000000000061034f565b9050601082604001516101389190615a92565b85146101575760405163fa06659360e01b815260040160405180910390fd5b5f6101c68288887f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006106a6565b90506102168787808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152505085518551606081015160809091015191935091506001610758565b815160a001525f61022783836108bf565b905080610247576040516313f8744360e31b815260040160405180910390fd5b5f6102538486856109c0565b905080610273576040516352ec174560e11b815260040160405180910390fd5b81801561027d5750805b9b9a5050505050505050505050565b5f8061029a60026008615a7b565b905060016102a9600885615a7b565b6102b39190615a7b565b6102bd9082615aa5565b90506102cb60016029615a7b565b6102d59082615aa5565b905060026102e4600185615a92565b6102ee9190615a7b565b6102f89082615aa5565b9050610305600184615a7b565b61030f9082615aa5565b905061031c600280615a7b565b6103269082615aa5565b9050610333601082615aa5565b9392505050565b61034261520d565b61034a611786565b905090565b6103576155ab565b5f805b60108110156103b957610386868387610374602083615aa5565b9261038193929190615ab8565b6120c2565b8351826010811061039957610399615adf565b6020020181815250506020826103af9190615aa5565b915060010161035a565b506103dd8582866103cb604083615aa5565b926103d893929190615ab8565b6120d5565b60208301526103ed604082615aa5565b90506104008582866103cb604083615aa5565b6040808401919091526104139082615aa5565b90506104268582866103cb604083615aa5565b6060830152610436604082615aa5565b90506104498582866103cb604083615aa5565b60c0830152610459604082615aa5565b905061046c8582866103cb604083615aa5565b60e083015261047c604082615aa5565b905061048f8582866103cb604083615aa5565b608083015261049f604082615aa5565b90506104b28582866103cb604083615aa5565b6101008301526104c3604082615aa5565b90506104d68582866103cb604083615aa5565b60a08301526104e6604082615aa5565b90505f5b83811015610564575f5b600881101561055b5761050e878488610374602083615aa5565b84610120015183601c811061052557610525615adf565b6020020151826008811061053b5761053b615adf565b6020020181815250506020836105519190615aa5565b92506001016104f4565b506001016104ea565b505f5b60298110156105b857610581868387610374602083615aa5565b836101400151826029811061059857610598615adf565b6020020181815250506020826105ae9190615aa5565b9150600101610567565b505f5b6105c6600185615a92565b81101561060f576105de8683876103cb604083615aa5565b83610160015182601b81106105f5576105f5615adf565b6020020152610605604083615aa5565b91506001016105bb565b505f5b838110156106625761062b868387610374602083615aa5565b83610180015182601c811061064257610642615adf565b6020020181815250506020826106589190615aa5565b9150600101610612565b506106748582866103cb604083615aa5565b6101a0830152610685604082615aa5565b90506106988582866103cb604083615aa5565b6101c0830152509392505050565b6106ae6156f3565b5f6106bd888888888886612162565b90835290506106cc81896121e1565b602084019190915290506106e081846122d0565b604084019190915290506106f588828561235f565b606084019190915290506107098882612433565b6080840191909152905061071e8882856124be565b60a08401919091529050610733888285612633565b60c0840191909152905061074788826126f8565b5060e0830152509695505050505050565b5f60018082610785866107808961077b6107768a6310000000615aa5565b612735565b61274d565b612768565b90505f6107a38761079e8a61077b6107768b6001615aa5565b612781565b90505f5b6107d260107f0000000000000000000000000000000000000000000000000000000000000000615a92565b81101561083f575f6107fc8c83815181106107ef576107ef615adf565b60200260200101516127a9565b905061080c8661077b8684612768565b955061081c8561077b8584612768565b9450610828848b612768565b9350610834838b612781565b9250506001016107a7565b505f5b60108110156108a6575f8a826010811061085e5761085e615adf565b602002015190506108738661077b8684612768565b95506108838561077b8584612768565b945061088f848b612768565b935061089b838b612781565b925050600101610842565b506108b184846127be565b9a9950505050505050505050565b5f806001815b7f0000000000000000000000000000000000000000000000000000000000000000811015610996575f86610120015182601c811061090557610905615adf565b602002015190505f61091782866127cc565b905080610937576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c811061094e5761094e615adf565b6020020151905061095f83826127ec565b9550610986886040015185601c811061097a5761097a615adf565b6020020151868361299b565b94505050508060010190506108c5565b505f6109b0866101400151865f01518760200151856129c6565b90508281145b9695505050505050565b5f6109c9615777565b5f6109f88460a001517f0000000000000000000000000000000000000000000000000000000000000000612a3f565b90505f610a267f00000000000000000000000000000000000000000000000000000000000000006024615aa5565b610a31906002615aa5565b67ffffffffffffffff811115610a4957610a49615af3565b604051908082528060200260200182016040528015610a72578160200160208202803683370190505b5090505f610aa17f00000000000000000000000000000000000000000000000000000000000000006024615aa5565b610aac906002615aa5565b67ffffffffffffffff811115610ac457610ac4615af3565b604051908082528060200260200182016040528015610b0857816020015b604080518082019091525f8082526020820152815260200190600190039081610ae25790505b509050610b3a610b358760e00151855f81518110610b2857610b28615adf565b6020026020010151612781565b612b09565b84610120018181525050610b6e610b358760e00151855f81518110610b6157610b61615adf565b6020026020010151612768565b610140850181905261012085015160c0880151610b8f92610780919061274d565b845260a0860151610bbf90610ba390612b09565b61077b86610120015161079e8a60c0015189610140015161274d565b6020850152815160019083905f90610bd957610bd9615adf565b602002602001018181525050876101a00151815f81518110610bfd57610bfd615adf565b6020908102919091010152600160a08501525f60c085015283515f516020615d445f395f51905f5203604085015260208401515f516020615d445f395f51905f5203606085015260015b60248111610cea57610c6185604001518660a0015161274d565b838281518110610c7357610c73615adf565b602002602001018181525050610cbc8560c001516107808b6101400151600185610c9d9190615a92565b60298110610cad57610cad615adf565b60200201518860a0015161274d565b60c086015260a08501516080880151610cd5919061274d565b60a0860152610ce381615b07565b9050610c47565b505f5b6005811015610db8575f610d02601d83615aa5565b90505f610d10602484615aa5565b9050610d41858381518110610d2757610d27615adf565b602002602001015161078089606001518a60a0015161274d565b858381518110610d5357610d53615adf565b602002602001018181525050610d908760c001516107808d61014001518460298110610d8157610d81615adf565b60200201518a60a0015161274d565b60c088015260a087015160808a0151610da9919061274d565b60a08801525050600101610ced565b50866060015181600181518110610dd157610dd1615adf565b6020026020010181905250866080015181600281518110610df457610df4615adf565b60200260200101819052508660a0015181600381518110610e1757610e17615adf565b60200260200101819052508660c0015181600481518110610e3a57610e3a615adf565b60200260200101819052508660e0015181600581518110610e5d57610e5d615adf565b602002602001018190525086610100015181600681518110610e8157610e81615adf565b602002602001018190525086610120015181600781518110610ea557610ea5615adf565b602002602001018190525086610140015181600881518110610ec957610ec9615adf565b602002602001018190525086610160015181600981518110610eed57610eed615adf565b6020026020010181905250866101c0015181600a81518110610f1157610f11615adf565b602002602001018190525086610180015181600b81518110610f3557610f35615adf565b6020026020010181905250866101a0015181600c81518110610f5957610f59615adf565b6020026020010181905250866101e0015181600d81518110610f7d57610f7d615adf565b602002602001018190525086610200015181600e81518110610fa157610fa1615adf565b602002602001018190525086610220015181600f81518110610fc557610fc5615adf565b602002602001018190525086610240015181601081518110610fe957610fe9615adf565b60200260200101819052508661026001518160118151811061100d5761100d615adf565b60200260200101819052508661028001518160128151811061103157611031615adf565b6020026020010181905250866102a001518160138151811061105557611055615adf565b6020026020010181905250866102c001518160148151811061107957611079615adf565b6020026020010181905250866102e001518160158151811061109d5761109d615adf565b6020026020010181905250866103000151816016815181106110c1576110c1615adf565b6020026020010181905250866103200151816017815181106110e5576110e5615adf565b60200260200101819052508661034001518160188151811061110957611109615adf565b60200260200101819052508661036001518160198151811061112d5761112d615adf565b602002602001018190525086610380015181601a8151811061115157611151615adf565b6020026020010181905250866103a0015181601b8151811061117557611175615adf565b6020026020010181905250866103c0015181601c8151811061119957611199615adf565b6020026020010181905250876020015181601d815181106111bc576111bc615adf565b6020026020010181905250876040015181601e815181106111df576111df615adf565b6020026020010181905250876060015181601f8151811061120257611202615adf565b602002602001018190525087608001518160208151811061122557611225615adf565b60200260200101819052508760a001518160218151811061124857611248615adf565b60200260200101819052508761010001518160228151811061126c5761126c615adf565b60200260200101819052508760c001518160238151811061128f5761128f615adf565b60200260200101819052508760e00151816024815181106112b2576112b2615adf565b60200260200101819052505f6112f887606001518660c001518b6101800151877f0000000000000000000000000000000000000000000000000000000000000000612b79565b9050611322815f8151811061130f5761130f615adf565b602002602001015186610120015161274d565b608086018190526101808a01515160c0890151611353929161078091611348919061274d565b88610140015161274d565b608086015260c087015161136690612cd8565b60a08601525f5b61139860017f0000000000000000000000000000000000000000000000000000000000000000615a92565b8110156115a7576113c8610b358960e00151878460016113b89190615aa5565b81518110610b2857610b28615adf565b61012087015260e08801516113f790610b3590876113e7856001615aa5565b81518110610b6157610b61615adf565b61014087015260a0860151610120870151611412919061274d565b61016087015260a086015160c089015161143a9161142f9161274d565b87610140015161274d565b610180870181905261146f905f516020615d445f395f51905f52036101608801515f516020615d445f395f51905f5203612768565b848261147d60246001615aa5565b6114879190615aa5565b8151811061149757611497615adf565b6020026020010181815250505f6114da8761018001518c61018001518460016114c09190615aa5565b601c81106114d0576114d0615adf565b602002015161274d565b905061151481610780896101600151868660016114f79190615aa5565b8151811061150757611507615adf565b602002602001015161274d565b9050611524876080015182612768565b608088015260a087015160c08a015161154a916115409161274d565b8a60c0015161274d565b60a08801526101608b015182601b811061156657611566615adf565b6020020151848361157960246001615aa5565b6115839190615aa5565b8151811061159357611593615adf565b60209081029190910101525060010161136d565b50604080518082019091526001815260026020820152826115e97f00000000000000000000000000000000000000000000000000000000000000006024615aa5565b815181106115f9576115f9615adf565b60209081029190910101526080850151836116357f00000000000000000000000000000000000000000000000000000000000000006024615aa5565b8151811061164557611645615adf565b60209081029190910101526101c089015180836116837f00000000000000000000000000000000000000000000000000000000000000006024615aa5565b61168e906001615aa5565b8151811061169e5761169e615adf565b602090810291909101015260e0880151846116da7f00000000000000000000000000000000000000000000000000000000000000006024615aa5565b6116e5906001615aa5565b815181106116f5576116f5615adf565b6020026020010181815250505f61170c8486612ce3565b90505f61171883612dfe565b90505f6117298d5f01518484612e4f565b90505f5f6117398f5f0151612ec5565b9150915061174682612f91565b61174f81612f91565b61175a858385613034565b9450611767848285613034565b93506117738585613070565b9f9e505050505050505050505050505050565b61178e61520d565b50604080516103e08101825263010000008152601860208083019190915260ae82840152825180840184527f0667f5b88e41d772c0d539748a784b84ea03b85b89a268985e995be26b73e15a81527f202582df1b430341e7e29c13fa24a2c1eedee35d41b480a63bd0c771d1390427818301526060830152825180840184527f2fa0c5987cfc873bc615a5b0e3efd9befb9a79eb9e4afbc268ccf4b8cd8077cc81527f305323583cc9223edd9c365046db732d1e0a7630309ae5d543121e4a6caf4ec6818301526080830152825180840184527f05946a446c58e2b13d591ff0e7921296736c241319ded24f912f02c40c7676af81527f10b9f3397351a14724ae05421a7aa5ecf9b069265c54738f6ae637c89b84cc7c8183015260a0830152825180840184527f2ba2b78bc57b240b9f53fb6343d4a725b00c13397001485bb0987a3b57ea12de81527f2dcdfa11a40f4b8924de62d7d57b5280a517719ad737486592fbaf24d5fbde238183015260c0830152825180840184527f25e591b949689586801137b7fdd80d9577d9908cbb733e5754314c1f8e48bb1e81527f02078e66955a36ed7ae14a02d7cfa2b35ef1e02d4c80d8972a59f87aca188bd68183015260e0830152825180840184527f218695998954026a2a59bee2896c0430556eb91eecc4ff2716d659e28af39a7981527f2511e9ee73f406417987177314853885f880d34be8430a9299d30eaaf8f22a1081830152610100830152825180840184527f01a8abe0d74344165494348196db5fa7da3a745f398fd1374cc2cb15bcc58ff481527f0f62b9babe865f3d0c422867d8b7f7fa5c13d85721a659f3b9ff8fc8cc6fc99281830152610120830152825180840184527f140e3166362411c572c06bcdeb9fca7d795d1299511970f7d59fb3160d03017781527f058f012fcb0bff4e5428cea25576d2aa66fd4f400f3b0bb5a324f5dad932afa981830152610140830152825180840184527f23834aa2db0bcbb7f07d1923228f216c0112ca432cfce5ee4c81ebafdadfcd2d81527f14b0cb70e2bd749cf86bec2fb5af60c79b01633b69aef29a2ea457cc0ffad58681830152610160830152825180840184527f14c4cf3fc4c9d731d69e6beb3c53ce8bb200dab5a7668c4a263aabb186ba67d681527f01ba79f236fbe3cd647672676fb28e8d198d63642def512176778c048f5afd9281830152610180830152825180840184527f0405fe23190f1876256650aa1e5a7d2d3e5f158bbcd672f323392b827f934b1481527f0d42519e0a2cb357c9d9b4a12e0a81e45a5c5d1f193a88ef206c0ed708846ba6818301526101a0830152825180840184527f24cfbd32c0eb0e587e0ad50fe734e4deb6e1ee8915f5f803066e959f13fd782481527f0fd4ab2a0b6909810022fd8341f2e1b570c73ed9ee2cf3069e849517f9ef6a41818301526101c0830152825180840184527f289c1dd5164fa409901ce1559dc9b0a61a38502b531c16a8dca05f38ef89996381527f2b8d7391421dcb8ef4c5b88a42ce36b1cf7b03c249fb0ac8cc94fd288df17a5e818301526101e0830152825180840184527f0a12abe1ed13bdfb00343a2508fbf9bd0de187fe6196b4b217e2ca6b0e3bf8cb81527f21dc750f5f6ae42e1028e9190c529409d01b45411f5b033caf2f70d061ea35cc81830152610200830152825180840184527f1f9907dfdab4b17c711f48ca5b55c5e7dab84340326d3d53e6279fa8e7d7321d81527f0b7d032a1d48b01be412691518c5c4c0b60c9c89262484e7ee438475ea41286781830152610220830152825180840184527f013541ba89ee33df2c0987ea1be57e1b48cc08e87951364c25b0ecae42f7f9bc81527f10a5713eba8c4ecb6c9f6f7b376a6247be42a03e9f6eab17cd8bb673a11edecb81830152610240830152825180840184527f17d194fc3f964c0776f8e703e248e17c60312a5536fe2b9dc8ba28fa3646d0f981527f21c4b144d6ba8db2028c0e881a60668da40d8a0769fc6455f11f85800dc3f7f081830152610260830152825180840184527f159f4c58d3c11cb71b2766f7318f198b897c339a0eddcd21ce5cbfd6862e0af281527f08162b014c9ec1ad13ebc75d7eac9cfdc03b13e36fc6aa2d3a1ad68a6756858881830152610280830152825180840184527f234b2cea42b7e87985a337cb87a3f58e0215e15cf89805161416890d8cdb94ce81527f0d4fbe5f254c6fcd9ca3926c9ca364ece020d48de02f337bd5c3cb06c1bfa48e818301526102a0830152825180840184527f2f19154027fe950e547846f12b5fa03ac0a28fa1238dfc747a50dd3543ca349681527f0824492e6af67d67584f0a8ff56122c804995740354cfe02c1768de2c781e733818301526102c0830152825180840184527f2402751a3285aac5eda731f77748be000e96ca95053c466d29b77baf60b4718e81527f0f8f340c4592fb76a8c1fe4d0323f2e13f44db07d209cd44fb147f38f8db5bdd818301526102e0830152825180840184527f1a181112f1f83d59de5257bbfaac127538b2b4bca181b114a6048d705df92df781527f27977772b4df2d39ff4168beb587e8f7077ce188ce41dddd9f03dc98ef908e8381830152610300830152825180840184527f2194d92617bbb3ba3d9e53f4f13c5c7c6fc5ae0c56f06e0a35747f24625e576381527f11ca88979a66ada092bb26e2b64b8602eb63f6e2fc21862f6fefead2978de7e081830152610320830152825180840184527f1d346dd159688f85b77717f8197777c6ced8daf349335d74908736241f5f332881527f10e952d77959f4aa6fe9cb7222d9901d06ddfeea51240c79980d4daac814444381830152610340830152825180840184527f109830b81fd8b5e0a3327bf961ea6746fcc9155039d285eaa76f4b0f8839e44781527f28de29af66333e8ea2ee2d23ff9df4297471377a71b5240987690610bad14c7881830152610360830152825180840184527f062b31b3719d79c253d59707efcc41556e43d9f4f122ba79d3484e023fb4da7d81527f283eb52c07506637e09fb73d7875ada840d8e4c75295a90dc312b4d2571c52c38183015261038083015282518084018452600181526002818301526103a083015282518084019093527f244040daefb41eda271d3e24552460d6becaa56222bc29708cd88aacbd7b913483527f23e4636e64cbe2f2aa74d1dd6f693f6ffeaab252f5ac469d319cfd4554144448908301526103c081019190915290565b5f6103336120d08385615b1f565b6127a9565b604080518082019091525f808252602082015260408051808201909152805f516020615d245f395f51905f5261210e60205f8789615ab8565b61211791615b1f565b6121219190615b3c565b81526020908101905f516020615d245f395f51905f5290612146906040908789615ab8565b61214f91615b1f565b6121599190615b3c565b90529392505050565b6121956040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f6121a38888888888613264565b6040860191909152602085019190915290835292506121c28389613562565b6080850191909152606084019190915291989197509095505050505050565b6121e96157e7565b5f6121f2615806565b8481526101008401805151602080840191909152905181015160408084019190915260a086018051516060850152518201516080840152516122559161223a91849101615b5b565b604051602081830303815290604052805190602001206127a9565b91505f612261836135e9565b50808552905060015b6122766001601c615a92565b8110156122c6576122a78561228c600184615a92565b601b811061229c5761229c615adf565b60200201518361274d565b8582601b81106122b9576122b9615adf565b602002015260010161226a565b5050509250929050565b6122d8615824565b5f6122ef8460405160200161223a91815260200190565b93506122fa846135e9565b50825260015b838110156123575761233883612317600184615a92565b601c811061232757612327615adf565b6020020151846114c0600185615a92565b8382601c811061234a5761234a615adf565b6020020152600101612300565b509093915050565b612367615824565b5f805b838110156124295761237a615843565b8581525f5b60088110156123e35787610120015183601c811061239f5761239f615adf565b602002015181600881106123b5576123b5615adf565b6020020151826123c6836001615aa5565b600981106123d6576123d6615adf565b602002015260010161237f565b506123f88160405160200161223a9190615b8e565b95505f612404876135e9565b8685601c811061241657612416615adf565b602002019190915250505060010161236a565b5090949293505050565b5f5f61243d615862565b8381525f5b602981101561249057856101400151816029811061246257612462615adf565b602002015182612473836001615aa5565b602a811061248357612483615adf565b6020020152600101612442565b506124a58160405160200161223a9190615bc2565b91505f6124b1836135e9565b5096929550919350505050565b5f80806124cc600185615a92565b6124d7906002615a7b565b6124e2906001615aa5565b67ffffffffffffffff8111156124fa576124fa615af3565b604051908082528060200260200182016040528015612523578160200160208202803683370190505b50905084815f8151811061253957612539615adf565b60209081029190910101525f5b612551600186615a92565b8110156126045786610160015181601b811061256f5761256f615adf565b60200201515182612581836002615a7b565b61258c906001615aa5565b8151811061259c5761259c615adf565b60200260200101818152505086610160015181601b81106125bf576125bf615adf565b602002015160200151828260026125d69190615a7b565b6125e1906002615aa5565b815181106125f1576125f1615adf565b6020908102919091010152600101612546565b506126198160405160200161223a9190615bf6565b91505f612625836135e9565b509792965091945050505050565b5f8080612641846001615aa5565b67ffffffffffffffff81111561265957612659615af3565b604051908082528060200260200182016040528015612682578160200160208202803683370190505b50905084815f8151811061269857612698615adf565b60209081029190910101525f5b848110156126045786610180015181601c81106126c4576126c4615adf565b6020020151826126d5836001615aa5565b815181106126e5576126e5615adf565b60209081029190910101526001016126a5565b5f5f612702615881565b8381526101a085018051516020808401919091529051810151604080840191909152516124a59161223a91849101615c2b565b5f5f516020615d445f395f51905f52825b0692915050565b5f5f516020615d445f395f51905f5282840990505b92915050565b5f5f516020615d445f395f51905f528284089392505050565b5f5f516020615d445f395f51905f52825f516020615d445f395f51905f520384089392505050565b5f5f516020615d445f395f51905f5282612746565b5f6103338361077b84612b09565b815160208301515f9182916127e19190612768565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b60088110156128d3576128c98261077b8784612781565b91506001016128b2565b506128dc61589f565b5f5b600881101561293d575f8482600881106128fa576128fa615adf565b6020020151905061290f8161077b8985612781565b905061291a81612b09565b90508083836008811061292f5761292f615adf565b6020020152506001016128de565b505f5b6008811015612990575f87826008811061295c5761295c615adf565b60200201519050612979818484600881106114d0576114d0615adf565b90506129858682612768565b955050600101612940565b506109b6848361274d565b5f5f6129b160016107808561077b896001612781565b90506129bd848261274d565b95945050505050565b5f6129cf615824565b6129da868285613622565b6129e6868683866137ce565b6129f2868683866139ba565b6129fd868285613be5565b612a08868285613dd9565b612a1486868386614122565b612a1f8682856145ce565b612a2a8682856149e0565b612a35868285614da1565b6109b681856150a1565b60605f8267ffffffffffffffff811115612a5b57612a5b615af3565b604051908082528060200260200182016040528015612a84578160200160208202803683370190505b50905083815f81518110612a9a57612a9a615adf565b602090810291909101015260015b83811015612b0157612adc82612abf600184615a92565b81518110612acf57612acf615adf565b6020026020010151612cd8565b828281518110612aee57612aee615adf565b6020908102919091010152600101612aa8565b509392505050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f516020615d445f395f51905f520360808201525f516020615d445f395f51905f5260a082015260205f60c08360055afa80612b65575f5ffd5b505f51608091909101604052949350505050565b60605f8267ffffffffffffffff811115612b9557612b95615af3565b604051908082528060200260200182016040528015612bbe578160200160208202803683370190505b509050825b8015612ccd575f85612bd6600184615a92565b81518110612be657612be6615adf565b602002602001015190505f89600184612bff9190615a92565b601c8110612c0f57612c0f615adf565b602002015190505f612c6a612c2e612c27858d61274d565b600261274d565b61079e8b612c3d600189615a92565b601c8110612c4d57612c4d615adf565b602002015161077b612c648861077b60018a612781565b87612781565b9050612c8b8161077b610b35612c858761077b600189612781565b86612768565b99508990508085612c9d600187615a92565b81518110612cad57612cad615adf565b60200260200101818152505050505080612cc690615c5e565b9050612bc3565b509695505050505050565b5f612762828361274d565b604080518082019091525f80825260208201525f612d227f00000000000000000000000000000000000000000000000000000000000000006024615aa5565b612d2d906002615aa5565b90505f5b81811015612d6357612d5b858281518110612d4e57612d4e615adf565b6020026020010151612f91565b600101612d31565b50604051600190815b60018401811015612dc85760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612d6c565b5080518452602081015160208501525080612df6576040516352ec174560e11b815260040160405180910390fd5b505092915050565b604080518082019091525f80825260208201525f516020615d245f395f51905f5282602001515f516020615d245f395f51905f52612e3c9190615a92565b612e469190615b3c565b60208301525090565b5f5f5f612e5b86612ec5565b91509150612e6761589f565b82518152602080840151818301528251604080840191909152838201516060840152875160808401528782015160a0840152865160c08401528682015160e084015251612eba9161223a91849101615c73565b979650505050505050565b6040805180820182525f80825260208083018281528451808601865283815280830193845286519287015195870151606088015160cc90811b608892831b6044998a1b90961795909517949094178652608088015160a089015160c08a015160e08b0151871b90841b918a1b90921717179092526101008701516101208801516101408901516101608a0151861b90851b91891b909217171781526101808701516101a08801516101c08901516101e09099015190941b9790921b9290951b1717939093179092529091565b805160208201515f5f516020615d245f395f51905f528380095f516020615d245f395f51905f5260035f516020615d245f395f51905f52838709085f516020615d245f395f51905f52848509149150508061302e5760405162461bcd60e51b815260206004820152601960248201527f706f696e74206973206e6f74206f6e207468652063757276650000000000000060448201526064016100e5565b50505050565b604080518082019091525f8082526020820152604080518082019091525f808252602082015261306483866150fa565b90506129bd8185615166565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516132069190615ca7565b5f60405180830381855afa9150503d805f811461323e576040519150601f19603f3d011682016040523d82523d5f602084013e613243565b606091505b50915091508180156109b65750808060200190518101906109b69190615cbd565b5f80808080613274866001615aa5565b61327f906006615aa5565b67ffffffffffffffff81111561329757613297615af3565b6040519080825280602002602001820160405280156132c0578160200160208202803683370190505b509050865f1b815f815181106132d8576132d8615adf565b60209081029190910101525f5b6132f0601088615a92565b8110156133415789898281811061330957613309615adf565b905060200201358282600161331e9190615aa5565b8151811061332e5761332e615adf565b60209081029190910101526001016132e5565b505f5b60108110156133b2578a5161336c90826010811061336457613364615adf565b602002015190565b8282601061337b8b6001615aa5565b6133859190615a92565b61338f9190615aa5565b8151811061339f5761339f615adf565b6020908102919091010152600101613344565b5060208a015151816133c5886001615aa5565b815181106133d5576133d5615adf565b6020908102919091018101919091528a8101510151816133f6886001615aa5565b613401906001615aa5565b8151811061341157613411615adf565b602090810291909101015260408a0151518161342e886001615aa5565b613439906002615aa5565b8151811061344957613449615adf565b60209081029190910181019190915260408b015101518161346b886001615aa5565b613476906003615aa5565b8151811061348657613486615adf565b602090810291909101015260608a015151816134a3886001615aa5565b6134ae906004615aa5565b815181106134be576134be615adf565b60209081029190910181019190915260608b01510151816134e0886001615aa5565b6134eb906005615aa5565b815181106134fb576134fb615adf565b60200260200101818152505061351b8160405160200161223a9190615bf6565b9150613526826135e9565b6040805160208101869052929750909550613541910161223a565b91505f61354d836135e9565b50959b949a5094985090965091945050505050565b5f5f5f61356d6158be565b85815260c0858101805151602080850191909152905181015160408085019190915260e08801805151606086015251820151608080860191909152880180515160a0860152518201519284019290925290516135cf9161223a91849101615cdc565b91506135da826135e9565b90979096509194509092505050565b5f80826f7fffffffffffffffffffffffffffffff8116607f82901c61360d826127a9565b9450613618816127a9565b9350505050915091565b5f61362e8460076151dd565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f61368f613689613663856003612781565b61077b61367e6136738b5f6151dd565b61077b8c601d6151dd565b61077b8b601c6151dd565b8361274d565b90506137106137056136ec6136d36136ba856107806136af8d60026151dd565b61077b8e601c6151dd565b6107806136c88c60036151dd565b61077b8d601d6151dd565b6107806136e18b60046151dd565b61077b8c601e6151dd565b6107806136fa8a60056151dd565b61077b8b601f6151dd565b6107808860016151dd565b905061372f81610780613724866001612781565b61077b8a60276151dd565b905061373b818461274d565b9050613747818561274d565b8552505f905061378161377761376c61376188601c6151dd565b61078089601f6151dd565b61079e8860246151dd565b610780875f6151dd565b90506137928161077b846002612781565b90506137a38161077b846001612781565b90506137af818361274d565b90506137bb818461274d565b9050808460015b60200201525050505050565b5f5f5f6138046137fa6137e289601c6151dd565b6107806137f08b60126151dd565b8a6060015161274d565b8760800151612768565b905061383d8161077b61383361381b8b601d6151dd565b6107806138298d60136151dd565b8c6060015161274d565b8960800151612768565b90506138628161077b6138336138548b601e6151dd565b6107806138298d60146151dd565b90506138878161077b6138336138798b601f6151dd565b6107806138298d60156151dd565b92505f90506138ab6137fa61389d89601c6151dd565b6107806137f08b600e6151dd565b90506138d08161077b6138336138c28b601d6151dd565b6107806138298d600f6151dd565b90506138f58161077b6138336138e78b601e6151dd565b6107806138298d60106151dd565b905061391a8161077b61383361390c8b601f6151dd565b6107806138298d60116151dd565b91505f905061394161393b6139308960206151dd565b6107808a601a6151dd565b8461274d565b90506139768161079e6139706139588b60286151dd565b6107806139668d601b6151dd565b8c60a0015161274d565b8561274d565b9050613982818561274d565b6040860152505f6139a561397061399a89601b6151dd565b61077b8a60286151dd565b9050808560035b602002015250505050505050565b5f5f613a18613a006139e86139d36138338a60166151dd565b6107806139e18b60176151dd565b8a5161274d565b6107806139f68a60186151dd565b896020015161274d565b610780613a0e8960196151dd565b886040015161274d565b91505f613a4f613a36613a2c89601c6151dd565b8860800151612768565b610780613a448a60036151dd565b61077b8b60246151dd565b90505f613a78613a6089601d6151dd565b610780613a6d8b5f6151dd565b61077b8c60256151dd565b90505f613aa2613a898a601e6151dd565b610780613a978c60016151dd565b61077b8d60266151dd565b9050613ae1613ac9613abb85610780868d5f015161274d565b610780848c6020015161274d565b610780613ad78c60046151dd565b8b6040015161274d565b93505050505f613af561393b8860216151dd565b90505f613b0661393b8960216151dd565b90505f613b3e613b25613b1a8b60236151dd565b6107808c60066151dd565b61079e613b338c60236151dd565b61077b8d60066151dd565b90505f613b62613b5c613b51878961274d565b61077b8d60216151dd565b83612781565b9050613b6e818861274d565b90505f613b96613b88613b828d60066151dd565b8761274d565b61079e613b828e60226151dd565b90505f613ba48c60236151dd565b90505f613bb4613b5c838461274d565b60808c0185905260a08c018490529050613bce818b61274d565b8b6006602002015250505050505050505050505050565b5f613bf15f6001612781565b90505f613bff5f6002612781565b90505f613c0d5f6003612781565b90505f613c29613c1e88601d6151dd565b61079e89601c6151dd565b90505f613c45613c3a89601e6151dd565b61079e8a601d6151dd565b90505f613c61613c568a601f6151dd565b61079e8b601e6151dd565b90505f613c7d613c728b60246151dd565b61079e8c601f6151dd565b905083613c8e8161077b818b612768565b9050613c9e8161077b878a612768565b9050613cae8161077b8789612768565b9050613cbf8161077b8d60086151dd565b9050613ccb818a61274d565b60e08b01525082613ce08161077b818b612768565b9050613cf08161077b868a612768565b9050613d008161077b8689612768565b9050613d118161077b8d60086151dd565b9050613d1d818a61274d565b6101008b01525081613d338161077b818b612768565b9050613d438161077b858a612768565b9050613d538161077b8589612768565b9050613d648161077b8d60086151dd565b9050613d70818a61274d565b6101208b01525080613d868161077b818b612768565b9050613d968161077b848a612768565b9050613da68161077b8489612768565b9050613db78161077b8d60086151dd565b9050613dc3818a61274d565b610140909a019990995250505050505050505050565b613e126040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613e1d84601d6151dd565b8152613e2a84601e6151dd565b6020820152613e3a8460246151dd565b6040820152613e4a8460276151dd565b6060820152613e5a8460266151dd565b6080820152613e6a8460256151dd565b60a08201525f613e7b8560026151dd565b90505f613e88865f6151dd565b90505f613e9c8460400151855f0151612781565b90505f613eb18560200151866020015161274d565b606086015190915086905f90613ec7908061274d565b90505f613ee5613edf89602001518a6060015161274d565b8861274d565b90505f613f04613efd8a60a001518b60400151612768565b8a51612768565b9050613f13613b82828861274d565b9050613f3a613f34613f2e613f288487612781565b88612781565b84612768565b83612768565b9050613f62613f57613f4c838761274d565b61077b8f60096151dd565b61077b60018a612781565b6101608c015250505050602085015160808601515f91613f8191612768565b90505f613f9f613f9588606001518861274d565b8860200151612781565b90505f613fc3613faf848761274d565b6107806139708b60a001518c5f0151612781565b9050613feb613fe0613fd5838c61274d565b61077b8e60096151dd565b61077b600189612781565b6101808b0152505f915061400c9050614005836011612768565b875161274d565b90505f6140198384612768565b90506140258182612768565b90505f61403383600961274d565b905061405c61405661393b61404f8b60a001518c5f0151612768565b8b51612768565b82612781565b60c089018190525f9061407790613edf90613f4c908d61274d565b905061408a8b600b602002015182612768565b6101608c0152505086515f92506140b19150614005906140aa9080612768565b8851612768565b90505f6140f16140cc8361077b8a5f01518b60a00151612781565b602089015161079e906140df9080612768565b61077b8b602001518c60800151612768565b905061410e89600c6020020151610780613edf613f4c858d61274d565b89600c602002015250505050505050505050565b61418c604051806101e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6141a461419a86601e6151dd565b856040015161274d565b8082526141c3906107806141b988601d6151dd565b876020015161274d565b8082526141d89061078061400588601c6151dd565b8082526141ea906107808760016151dd565b808252602082018190526142039061079e87601f6151dd565b815261421e6142138660246151dd565b61079e87601c6151dd565b608082015261423c6142318660276151dd565b61079e87601f6151dd565b606082015260808101516142559061077b816001612781565b6101c082015260808101516142959061428b906142849061077b60015f516020615d445f395f51905f52615a92565b6001612768565b826060015161274d565b60a082018190526142cb906142bd9061077b6142b28960026151dd565b61077b8a60036151dd565b61077b61397088600a6151dd565b83600e60200201526101c08101516142ef906142bd9061077b6142b28960026151dd565b6101e084015280516143149061077b6143098860026151dd565b61077b8960036151dd565b6101208201525f61433361432987601f6151dd565b8360200151612781565b90506143448161077b836001612781565b60e08301526143616143578760266151dd565b866040015161274d565b604083018190526143849061078061437a8960256151dd565b886020015161274d565b604083018190526143a49061078061439d8960246151dd565b885161274d565b60408301526143c16143b78760276151dd565b8360400151612781565b60408301525f6143e06143d58860266151dd565b61079e89601e6151dd565b905061443261440d613689614284866080015160015f516020615d445f395f51905f5261077b9190615a92565b61077b614284866040015160015f516020615d445f395f51905f5261077b9190615a92565b60c084015260408301516144549061444a908061274d565b8460400151612781565b61010084015260c0830151614480906144729061077b8a60046151dd565b61077b613b828a600a6151dd565b6102008601526101c083015161449f906144729061077b8a60046151dd565b6102208601526101008301516144be906144729061077b8a60046151dd565b61024086015260e08301516144d89061077b8960046151dd565b6101408401526144f76144ec8860256151dd565b61079e89601d6151dd565b6101608401526080830151614535906143d59061452a906142849061077b60015f516020615d445f395f51905f52615a92565b85610160015161274d565b61018084018190526101208401516101a0850181905261456c916107809061077b6145618c60056151dd565b61077b8d60026151dd565b6101a08401819052835161458c91906107809061077b6145618c5f6151dd565b6101a084018190526101408401516145a49190612768565b6101a084018190526145be9061077b613b828a600a6151dd565b6101a0840181905285600d6139ac565b6146076040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61463c61462361461886601c6151dd565b61077b8760256151dd565b6107806146318760246151dd565b61077b88601d6151dd565b815261468161467661465d61465287601c6151dd565b61077b88601f6151dd565b61078061466b88601d6151dd565b61077b89601e6151dd565b61079e8660266151dd565b6040820181905261469690600160441b61274d565b604082018190526146ac9061079e8660276151dd565b6040820181905281516146bf9190612768565b604082018190526146d59061077b8660056151dd565b604082015280516146ea90600160441b61274d565b80825261470a906107806146ff8760246151dd565b61077b8860256151dd565b808252602082018190526147319061079e61472687601e6151dd565b61078088601f6151dd565b602082018190526147479061077b8660046151dd565b60208201528051606082018190526147649061078086601f6151dd565b606082018190526147889061079e61477d8760266151dd565b6107808860276151dd565b6060820181905261479d9061077b865f6151dd565b8160600181815250505f6147c66147bc83602001518460400151612768565b8360600151612768565b90506147d78161077b8760036151dd565b90506147ef6147e78660256151dd565b61400061274d565b60808301819052614805906107808760246151dd565b608083018190526148189061400061274d565b6080830181905261482e9061078087601e6151dd565b608083018190526148419061400061274d565b608083018190526148579061078087601d6151dd565b6080830181905261486a9061400061274d565b608083018190526148809061078087601c6151dd565b608083018190526148969061079e87601f6151dd565b608083018190526148ac9061077b8760056151dd565b60808301526148bf6147e78660266151dd565b60a083018190526148d5906107808760256151dd565b60a083018190526148e89061400061274d565b60a083018190526148fe906107808760246151dd565b60a083018190526149119061400061274d565b60a083018190526149279061078087601f6151dd565b60a0830181905261493a9061400061274d565b60a083018190526149509061078087601e6151dd565b60a083018190526149669061079e8760276151dd565b60a0830181905261497b9061077b875f6151dd565b60a0830181905260808301515f916149939190612768565b90506149a48161077b8860046151dd565b90506149b08282612768565b60c084018190526149c99061077b613b8289600b6151dd565b60c084018190528560136020020152505050505050565b614a566040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b614a6f614a6485601c6151dd565b6107808660026151dd565b8152614a8a614a7f85601d6151dd565b6107808660036151dd565b6020820152614aa8614a9d85601e6151dd565b6107808660046151dd565b6040820152614ac6614abb85601f6151dd565b6107808660056151dd565b60608201528051614af890614af190614aea90614ae3908061274d565b845161274d565b835161274d565b825161274d565b60808201526020810151614b3690614b2c90614b2290614b18908061274d565b846020015161274d565b836020015161274d565b826020015161274d565b60a08201526040810151614b7490614b6a90614b6090614b56908061274d565b846040015161274d565b836040015161274d565b826040015161274d565b60c08201526060810151614ba89061428b90614b9e90614b94908061274d565b846060015161274d565b836060015161274d565b60e0820152608081015160a0820151614bc19190612768565b61010082015260c081015160e0820151614bdb9190612768565b61012082015260a0810151614bff90614bf49080612768565b826101200151612768565b61014082015260e0810151614c2390614c189080612768565b826101000151612768565b610160820152610120810151614c399080612768565b6101e08201819052614c5a90614c4f9080612768565b826101600151612768565b6101e0820152610100810151614c709080612768565b6101a08201819052614c9190614c869080612768565b826101400151612768565b6101a08201819052610160820151614ca891612768565b6101808201526101408101516101e0820151614cc49190612768565b6101c0820152614cd861368985600c6151dd565b6102008201819052610280840151610180830151614d03926107809161077b9061079e8a60246151dd565b8360146020020152614d33836015602002015161078083610200015161077b856101a0015161079e8a60256151dd565b8360156020020152614d63836016602002015161078083610200015161077b856101c0015161079e8a60266151dd565b8360166020020152614d93836017602002015161078083610200015161077b856101e0015161079e8a60276151dd565b836017602002015250505050565b614df36040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f6040518060800160405280614e287f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7612735565b8152602001614e567f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b612735565b8152602001614e837e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15612735565b8152602001614eb17f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b612735565b90529050614ece614ec386601c6151dd565b6107808760026151dd565b6101208301819052614f0d90614f0290614ef790614eec908061274d565b85610120015161274d565b84610120015161274d565b83610120015161274d565b8252614f1a85601d6151dd565b6020830152614f2a85601e6151dd565b6040830152614f3a85601f6151dd565b606083015281516020830151614f62916147bc91614f589190612768565b8460400151612768565b6080830152614f7561393b86600d6151dd565b6101408301528151614f9690614f8c90835f6114d0565b8360800151612768565b60a0830152614fc2846018602002015161078084610140015161077b8660a0015161079e8b60246151dd565b6103008501526020820151614fdd90614f8c908360016114d0565b60c0830152615009846019602002015161078084610140015161077b8660c0015161079e8b60256151dd565b610320850152604082015161502490614f8c908360026114d0565b60e083015261505084601a602002015161078084610140015161077b8660e0015161079e8b60266151dd565b610340850152606082015161506b90614f8c908360036114d0565b61010083015261509984601b602002015161078084610140015161077b86610100015161079e8b60276151dd565b84601b6137c2565b815160015b601c8110156150f3576150e9826107808684601c81106150c8576150c8615adf565b6020020151866150d9600187615a92565b601b81106114d0576114d0615adf565b91506001016150a6565b5092915050565b604080518082019091525f8082526020820152604080518082019091525f8082526020820152604051835181526020840151602082015284604082015260408160608360075afa8061514a575f5ffd5b5080518252602080820151908301526060016040529392505050565b604080518082019091525f8082526020820152604080518082019091525f80825260208201526040518451815260208501516020820152835160408201526020840151606082015260408160808360065afa806151c1575f5ffd5b5080518252602080820151908301526080016040529392505050565b5f828260288111156151f1576151f1615d0f565b6029811061520157615201615adf565b60200201519392505050565b604051806103e001604052805f81526020015f81526020015f815260200161524660405180604001604052805f81526020015f81525090565b815260200161526660405180604001604052805f81526020015f81525090565b815260200161528660405180604001604052805f81526020015f81525090565b81526020016152a660405180604001604052805f81526020015f81525090565b81526020016152c660405180604001604052805f81526020015f81525090565b81526020016152e660405180604001604052805f81526020015f81525090565b815260200161530660405180604001604052805f81526020015f81525090565b815260200161532660405180604001604052805f81526020015f81525090565b815260200161534660405180604001604052805f81526020015f81525090565b815260200161536660405180604001604052805f81526020015f81525090565b815260200161538660405180604001604052805f81526020015f81525090565b81526020016153a660405180604001604052805f81526020015f81525090565b81526020016153c660405180604001604052805f81526020015f81525090565b81526020016153e660405180604001604052805f81526020015f81525090565b815260200161540660405180604001604052805f81526020015f81525090565b815260200161542660405180604001604052805f81526020015f81525090565b815260200161544660405180604001604052805f81526020015f81525090565b815260200161546660405180604001604052805f81526020015f81525090565b815260200161548660405180604001604052805f81526020015f81525090565b81526020016154a660405180604001604052805f81526020015f81525090565b81526020016154c660405180604001604052805f81526020015f81525090565b81526020016154e660405180604001604052805f81526020015f81525090565b815260200161550660405180604001604052805f81526020015f81525090565b815260200161552660405180604001604052805f81526020015f81525090565b815260200161554660405180604001604052805f81526020015f81525090565b815260200161556660405180604001604052805f81526020015f81525090565b815260200161558660405180604001604052805f81526020015f81525090565b81526020016155a660405180604001604052805f81526020015f81525090565b905290565b604051806101e001604052806155bf6158dc565b81526020016155df60405180604001604052805f81526020015f81525090565b81526020016155ff60405180604001604052805f81526020015f81525090565b815260200161561f60405180604001604052805f81526020015f81525090565b815260200161563f60405180604001604052805f81526020015f81525090565b815260200161565f60405180604001604052805f81526020015f81525090565b815260200161567f60405180604001604052805f81526020015f81525090565b815260200161569f60405180604001604052805f81526020015f81525090565b81526020016156bf60405180604001604052805f81526020015f81525090565b81526020016156cc6158fb565b81526020016156d9615929565b81526020016156e6615948565b8152602001615566615824565b6040518061010001604052806157326040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b815260200161573f6157e7565b815260200161574c615824565b8152602001615759615824565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020016157b5615981565b81526020016157c2615981565b81526020015f81526020015f81526020015f81526020015f8152602001606081525090565b604051806103600160405280601b906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806105400160405280602a906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b6040518061020001604052806010906020820280368337509192915050565b604051806103800160405280601c905b61591361589f565b81526020019060019003908161590b5790505090565b6040518061052001604052806029906020820280368337509192915050565b604051806103600160405280601b905b604080518082019091525f80825260208201528152602001906001900390816159585790505090565b60405180608001604052806004906020820280368337509192915050565b5f5f5f5f604085870312156159b2575f5ffd5b843567ffffffffffffffff8111156159c8575f5ffd5b8501601f810187136159d8575f5ffd5b803567ffffffffffffffff8111156159ee575f5ffd5b8760208284010111156159ff575f5ffd5b60209182019550935085013567ffffffffffffffff811115615a1f575f5ffd5b8501601f81018713615a2f575f5ffd5b803567ffffffffffffffff811115615a45575f5ffd5b8760208260051b8401011115615a59575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761276257612762615a67565b8181038181111561276257612762615a67565b8082018082111561276257612762615a67565b5f5f85851115615ac6575f5ffd5b83861115615ad2575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b5f60018201615b1857615b18615a67565b5060010190565b80356020831015612762575f19602084900360031b1b1692915050565b5f82615b5657634e487b7160e01b5f52601260045260245ffd5b500690565b5f8183825b6005811015615b7f578151835260209283019290910190600101615b60565b50505060a08201905092915050565b5f8183825b6009811015615bb2578151835260209283019290910190600101615b93565b5050506101208201905092915050565b5f8183825b602a811015615be6578151835260209283019290910190600101615bc7565b5050506105408201905092915050565b81515f90829060208501835b82811015615c20578151845260209384019390910190600101615c02565b509195945050505050565b5f8183825b6003811015615c4f578151835260209283019290910190600101615c30565b50505060608201905092915050565b5f81615c6c57615c6c615a67565b505f190190565b5f8183825b6008811015615c97578151835260209283019290910190600101615c78565b5050506101008201905092915050565b5f82518060208501845e5f920191825250919050565b5f60208284031215615ccd575f5ffd5b81518015158114610333575f5ffd5b5f8183825b6007811015615d00578151835260209283019290910190600101615ce1565b50505060e08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220387d34811d45a38e4fae37e7a6b9e809877e7d62ba18e5726873dea35daedf4264736f6c634300081b0033";
4
4
  /**
5
5
  * HonkVerifier link references.
6
6
  */ export const HonkVerifierLinkReferences = {};