@aztec/l1-artifacts 0.0.1-commit.e310a4c8 → 0.0.1-commit.e558bd1c

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 (56) hide show
  1. package/dest/HonkVerifierBytecode.d.ts +2 -2
  2. package/dest/HonkVerifierBytecode.d.ts.map +1 -1
  3. package/dest/HonkVerifierBytecode.js +1 -1
  4. package/l1-contracts/cache/solidity-files-cache.json +1 -1
  5. package/l1-contracts/foundry.toml +1 -1
  6. package/l1-contracts/generated/HonkVerifier.sol +77 -82
  7. package/l1-contracts/out/CoinIssuer.sol/CoinIssuer.json +1 -1
  8. package/l1-contracts/out/DateGatedRelayer.sol/DateGatedRelayer.json +1 -1
  9. package/l1-contracts/out/DeployAztecL1Contracts.s.sol/DeployAztecL1Contracts.json +1 -1
  10. package/l1-contracts/out/DeployAztecL1Contracts.t.sol/DeployAztecL1ContractsTest.json +1 -1
  11. package/l1-contracts/out/DeployRollupForUpgrade.s.sol/DeployRollupForUpgrade.json +1 -1
  12. package/l1-contracts/out/DeployRollupForUpgrade.t.sol/DeployRollupForUpgradeTest.json +1 -1
  13. package/l1-contracts/out/DeployRollupLib.sol/DeployRollupLib.json +1 -1
  14. package/l1-contracts/out/DeploymentConfiguration.sol/DeploymentConfiguration.json +1 -1
  15. package/l1-contracts/out/FeeAssetHandler.sol/FeeAssetHandler.json +1 -1
  16. package/l1-contracts/out/FlushRewarder.sol/FlushRewarder.json +1 -1
  17. package/l1-contracts/out/HonkVerifier.sol/BaseHonkVerifier.json +1 -1
  18. package/l1-contracts/out/HonkVerifier.sol/CommitmentSchemeLib.json +1 -1
  19. package/l1-contracts/out/HonkVerifier.sol/FrLib.json +1 -1
  20. package/l1-contracts/out/HonkVerifier.sol/Honk.json +1 -1
  21. package/l1-contracts/out/HonkVerifier.sol/HonkVerificationKey.json +1 -1
  22. package/l1-contracts/out/HonkVerifier.sol/HonkVerifier.json +1 -1
  23. package/l1-contracts/out/HonkVerifier.sol/IVerifier.json +1 -1
  24. package/l1-contracts/out/HonkVerifier.sol/RelationsLib.json +1 -1
  25. package/l1-contracts/out/HonkVerifier.sol/TranscriptLib.json +1 -1
  26. package/l1-contracts/out/IDateGatedRelayer.sol/IDateGatedRelayer.json +1 -1
  27. package/l1-contracts/out/IFlushRewarder.sol/IFlushRewarder.json +1 -1
  28. package/l1-contracts/out/IMintableERC20.sol/IMintableERC20.json +1 -1
  29. package/l1-contracts/out/ISlashFactory.sol/ISlashFactory.json +1 -1
  30. package/l1-contracts/out/InputsExtractor.sol/InputsExtractor.json +1 -1
  31. package/l1-contracts/out/MockERC20.sol/MockERC20.json +1 -1
  32. package/l1-contracts/out/MockERC721.sol/MockERC721.json +1 -1
  33. package/l1-contracts/out/MockFeeJuicePortal.sol/MockFeeJuicePortal.json +1 -1
  34. package/l1-contracts/out/MockVerifier.sol/MockVerifier.json +1 -1
  35. package/l1-contracts/out/MockZKPassportVerifier.sol/MockZKPassportVerifier.json +1 -1
  36. package/l1-contracts/out/MultiAdder.sol/MultiAdder.json +1 -1
  37. package/l1-contracts/out/RegisterNewRollupVersionPayload.sol/RegisterNewRollupVersionPayload.json +1 -1
  38. package/l1-contracts/out/Registry.sol/Registry.json +1 -1
  39. package/l1-contracts/out/RewardDistributor.sol/RewardDistributor.json +1 -1
  40. package/l1-contracts/out/RollupConfiguration.sol/RollupConfiguration.json +1 -1
  41. package/l1-contracts/out/SlashFactory.sol/SlashFactory.json +1 -1
  42. package/l1-contracts/out/SlashPayload.sol/SlashPayload.json +1 -1
  43. package/l1-contracts/out/StakingAssetHandler.sol/StakingAssetHandler.json +1 -1
  44. package/l1-contracts/out/StdError.sol/stdError.json +1 -1
  45. package/l1-contracts/out/TestERC20.sol/TestERC20.json +1 -1
  46. package/l1-contracts/out/ZKPassportHelper.sol/ZKPassportHelper.json +1 -1
  47. package/l1-contracts/out/ZKPassportRootVerifier.sol/ZKPassportRootVerifier.json +1 -1
  48. package/l1-contracts/out/ZKPassportSubVerifier.sol/ZKPassportSubVerifier.json +1 -1
  49. package/l1-contracts/out/build-info/{bcca871da7c17f8e.json → 6b707081690bc1a6.json} +1 -1
  50. package/l1-contracts/out/build-info/{33d81a4b1b05e4ba.json → 948f40d6c0589dfb.json} +1 -1
  51. package/l1-contracts/out/shouting.t.sol/ScreamAndShoutTest.json +1 -1
  52. package/l1-contracts/script/deploy/DeployRollupForUpgrade.s.sol +17 -1
  53. package/l1-contracts/test/script/DeployAztecL1Contracts.t.sol +61 -0
  54. package/l1-contracts/test/script/DeployRollupForUpgrade.t.sol +112 -0
  55. package/package.json +1 -1
  56. package/l1-contracts/solc-0.8.30 +0 -0
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * HonkVerifier bytecode.
3
3
  */
4
- export declare const HonkVerifierBytecode = "0x610100604052348015610010575f5ffd5b506301000000608052601860a0527f14df98df2670d6b3040164748f97485945b94d6558c54e148cf7cc5f64f0d1f860c05260af60e05260805160a05160c05160e051615d606100de5f395f818161018101526107ae01525f61016001525f8181605b01528181609401528181610101015281816101a2015281816108c7015281816109d401528181610a0001528181610a7b015281816112d401528181611374015281816115c30152818161160f0152818161165d015281816116b40152612cde01525f5050615d605ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004615966565b610054565b604051901515815260200160405180910390f35b5f5f61007f7f000000000000000000000000000000000000000000000000000000000000000061028c565b905061008c816020615a42565b85146100ee577f0000000000000000000000000000000000000000000000000000000000000000856100bf836020615a42565b6040516359895a5360e01b81526004810193909352602483019190915260448201526064015b60405180910390fd5b5f6100f761033a565b90505f61012588887f000000000000000000000000000000000000000000000000000000000000000061034f565b9050601082604001516101389190615a59565b85146101575760405163fa06659360e01b815260040160405180910390fd5b5f6101c68288887f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006106a6565b90506102168787808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152505085518551602081015160409091015191935091506001610758565b8151606001525f61022783836108bf565b905080610247576040516313f8744360e31b815260040160405180910390fd5b5f6102538486856109c0565b905080610273576040516352ec174560e11b815260040160405180910390fd5b81801561027d5750805b9b9a5050505050505050505050565b5f8061029a60026008615a42565b905060016102a9600885615a42565b6102b39190615a42565b6102bd9082615a6c565b90506102cb60016029615a42565b6102d59082615a6c565b905060026102e4600185615a59565b6102ee9190615a42565b6102f89082615a6c565b9050610305600184615a42565b61030f9082615a6c565b905061031c600280615a42565b6103269082615a6c565b9050610333601082615a6c565b9392505050565b6103426151e0565b61034a611786565b905090565b61035761557e565b5f805b60108110156103b957610386868387610374602083615a6c565b9261038193929190615a7f565b6120c0565b8351826010811061039957610399615aa6565b6020020181815250506020826103af9190615a6c565b915060010161035a565b506103dd8582866103cb604083615a6c565b926103d893929190615a7f565b6120d3565b60208301526103ed604082615a6c565b90506104008582866103cb604083615a6c565b6040808401919091526104139082615a6c565b90506104268582866103cb604083615a6c565b6060830152610436604082615a6c565b90506104498582866103cb604083615a6c565b60c0830152610459604082615a6c565b905061046c8582866103cb604083615a6c565b60e083015261047c604082615a6c565b905061048f8582866103cb604083615a6c565b608083015261049f604082615a6c565b90506104b28582866103cb604083615a6c565b6101008301526104c3604082615a6c565b90506104d68582866103cb604083615a6c565b60a08301526104e6604082615a6c565b90505f5b83811015610564575f5b600881101561055b5761050e878488610374602083615a6c565b84610120015183601c811061052557610525615aa6565b6020020151826008811061053b5761053b615aa6565b6020020181815250506020836105519190615a6c565b92506001016104f4565b506001016104ea565b505f5b60298110156105b857610581868387610374602083615a6c565b836101400151826029811061059857610598615aa6565b6020020181815250506020826105ae9190615a6c565b9150600101610567565b505f5b6105c6600185615a59565b81101561060f576105de8683876103cb604083615a6c565b83610160015182601b81106105f5576105f5615aa6565b6020020152610605604083615a6c565b91506001016105bb565b505f5b838110156106625761062b868387610374602083615a6c565b83610180015182601c811061064257610642615aa6565b6020020181815250506020826106589190615a6c565b9150600101610612565b506106748582866103cb604083615a6c565b6101a0830152610685604082615a6c565b90506106988582866103cb604083615a6c565b6101c0830152509392505050565b6106ae6156c6565b5f6106bd888888888886612160565b90835290506106cc81896121c3565b602084019190915290506106e081846122b2565b604084019190915290506106f5888285612341565b606084019190915290506107098882612415565b6080840191909152905061071e8882856124a0565b60a08401919091529050610733888285612615565b60c0840191909152905061074788826126da565b5060e0830152509695505050505050565b5f60018082610785866107808961077b6107768a6310000000615a6c565b612717565b61272f565b61274a565b90505f6107a38761079e8a61077b6107768b6001615a6c565b612763565b90505f5b6107d260107f0000000000000000000000000000000000000000000000000000000000000000615a59565b81101561083f575f6107fc8c83815181106107ef576107ef615aa6565b602002602001015161278b565b905061080c8661077b868461274a565b955061081c8561077b858461274a565b9450610828848b61274a565b9350610834838b612763565b9250506001016107a7565b505f5b60108110156108a6575f8a826010811061085e5761085e615aa6565b602002015190506108738661077b868461274a565b95506108838561077b858461274a565b945061088f848b61274a565b935061089b838b612763565b925050600101610842565b506108b184846127a0565b9a9950505050505050505050565b5f806001815b7f0000000000000000000000000000000000000000000000000000000000000000811015610996575f86610120015182601c811061090557610905615aa6565b602002015190505f61091782866127ae565b905080610937576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c811061094e5761094e615aa6565b6020020151905061095f83826127ce565b9550610986886040015185601c811061097a5761097a615aa6565b6020020151868361297d565b94505050508060010190506108c5565b505f6109b0866101400151865f01518760200151856129a8565b90508281145b9695505050505050565b5f6109c961573e565b5f6109f88460a001517f0000000000000000000000000000000000000000000000000000000000000000612a21565b90505f610a267f00000000000000000000000000000000000000000000000000000000000000006024615a6c565b610a31906002615a6c565b67ffffffffffffffff811115610a4957610a49615aba565b604051908082528060200260200182016040528015610a72578160200160208202803683370190505b5090505f610aa17f00000000000000000000000000000000000000000000000000000000000000006024615a6c565b610aac906002615a6c565b67ffffffffffffffff811115610ac457610ac4615aba565b604051908082528060200260200182016040528015610b0857816020015b604080518082019091525f8082526020820152815260200190600190039081610ae25790505b509050610b3a610b358760e00151855f81518110610b2857610b28615aa6565b6020026020010151612763565b612aeb565b84610120018181525050610b6e610b358760e00151855f81518110610b6157610b61615aa6565b602002602001015161274a565b610140850181905261012085015160c0880151610b8f92610780919061272f565b845260a0860151610bbf90610ba390612aeb565b61077b86610120015161079e8a60c0015189610140015161272f565b6020850152815160019083905f90610bd957610bd9615aa6565b602002602001018181525050876101a00151815f81518110610bfd57610bfd615aa6565b6020908102919091010152600160a08501525f60c085015283515f516020615d0b5f395f51905f5203604085015260208401515f516020615d0b5f395f51905f5203606085015260015b60248111610cea57610c6185604001518660a0015161272f565b838281518110610c7357610c73615aa6565b602002602001018181525050610cbc8560c001516107808b6101400151600185610c9d9190615a59565b60298110610cad57610cad615aa6565b60200201518860a0015161272f565b60c086015260a08501516080880151610cd5919061272f565b60a0860152610ce381615ace565b9050610c47565b505f5b6005811015610db8575f610d02601d83615a6c565b90505f610d10602484615a6c565b9050610d41858381518110610d2757610d27615aa6565b602002602001015161078089606001518a60a0015161272f565b858381518110610d5357610d53615aa6565b602002602001018181525050610d908760c001516107808d61014001518460298110610d8157610d81615aa6565b60200201518a60a0015161272f565b60c088015260a087015160808a0151610da9919061272f565b60a08801525050600101610ced565b50866060015181600181518110610dd157610dd1615aa6565b6020026020010181905250866080015181600281518110610df457610df4615aa6565b60200260200101819052508660a0015181600381518110610e1757610e17615aa6565b60200260200101819052508660c0015181600481518110610e3a57610e3a615aa6565b60200260200101819052508660e0015181600581518110610e5d57610e5d615aa6565b602002602001018190525086610100015181600681518110610e8157610e81615aa6565b602002602001018190525086610120015181600781518110610ea557610ea5615aa6565b602002602001018190525086610140015181600881518110610ec957610ec9615aa6565b602002602001018190525086610160015181600981518110610eed57610eed615aa6565b6020026020010181905250866101c0015181600a81518110610f1157610f11615aa6565b602002602001018190525086610180015181600b81518110610f3557610f35615aa6565b6020026020010181905250866101a0015181600c81518110610f5957610f59615aa6565b6020026020010181905250866101e0015181600d81518110610f7d57610f7d615aa6565b602002602001018190525086610200015181600e81518110610fa157610fa1615aa6565b602002602001018190525086610220015181600f81518110610fc557610fc5615aa6565b602002602001018190525086610240015181601081518110610fe957610fe9615aa6565b60200260200101819052508661026001518160118151811061100d5761100d615aa6565b60200260200101819052508661028001518160128151811061103157611031615aa6565b6020026020010181905250866102a001518160138151811061105557611055615aa6565b6020026020010181905250866102c001518160148151811061107957611079615aa6565b6020026020010181905250866102e001518160158151811061109d5761109d615aa6565b6020026020010181905250866103000151816016815181106110c1576110c1615aa6565b6020026020010181905250866103200151816017815181106110e5576110e5615aa6565b60200260200101819052508661034001518160188151811061110957611109615aa6565b60200260200101819052508661036001518160198151811061112d5761112d615aa6565b602002602001018190525086610380015181601a8151811061115157611151615aa6565b6020026020010181905250866103a0015181601b8151811061117557611175615aa6565b6020026020010181905250866103c0015181601c8151811061119957611199615aa6565b6020026020010181905250876020015181601d815181106111bc576111bc615aa6565b6020026020010181905250876040015181601e815181106111df576111df615aa6565b6020026020010181905250876060015181601f8151811061120257611202615aa6565b602002602001018190525087608001518160208151811061122557611225615aa6565b60200260200101819052508760a001518160218151811061124857611248615aa6565b60200260200101819052508761010001518160228151811061126c5761126c615aa6565b60200260200101819052508760c001518160238151811061128f5761128f615aa6565b60200260200101819052508760e00151816024815181106112b2576112b2615aa6565b60200260200101819052505f6112f887606001518660c001518b6101800151877f0000000000000000000000000000000000000000000000000000000000000000612b5b565b9050611322815f8151811061130f5761130f615aa6565b602002602001015186610120015161272f565b608086018190526101808a01515160c0890151611353929161078091611348919061272f565b88610140015161272f565b608086015260c087015161136690612cba565b60a08601525f5b61139860017f0000000000000000000000000000000000000000000000000000000000000000615a59565b8110156115a7576113c8610b358960e00151878460016113b89190615a6c565b81518110610b2857610b28615aa6565b61012087015260e08801516113f790610b3590876113e7856001615a6c565b81518110610b6157610b61615aa6565b61014087015260a0860151610120870151611412919061272f565b61016087015260a086015160c089015161143a9161142f9161272f565b87610140015161272f565b610180870181905261146f905f516020615d0b5f395f51905f52036101608801515f516020615d0b5f395f51905f520361274a565b848261147d60246001615a6c565b6114879190615a6c565b8151811061149757611497615aa6565b6020026020010181815250505f6114da8761018001518c61018001518460016114c09190615a6c565b601c81106114d0576114d0615aa6565b602002015161272f565b905061151481610780896101600151868660016114f79190615a6c565b8151811061150757611507615aa6565b602002602001015161272f565b905061152487608001518261274a565b608088015260a087015160c08a015161154a916115409161272f565b8a60c0015161272f565b60a08801526101608b015182601b811061156657611566615aa6565b6020020151848361157960246001615a6c565b6115839190615a6c565b8151811061159357611593615aa6565b60209081029190910101525060010161136d565b50604080518082019091526001815260026020820152826115e97f00000000000000000000000000000000000000000000000000000000000000006024615a6c565b815181106115f9576115f9615aa6565b60209081029190910101526080850151836116357f00000000000000000000000000000000000000000000000000000000000000006024615a6c565b8151811061164557611645615aa6565b60209081029190910101526101c089015180836116837f00000000000000000000000000000000000000000000000000000000000000006024615a6c565b61168e906001615a6c565b8151811061169e5761169e615aa6565b602090810291909101015260e0880151846116da7f00000000000000000000000000000000000000000000000000000000000000006024615a6c565b6116e5906001615a6c565b815181106116f5576116f5615aa6565b6020026020010181815250505f61170c8486612cc5565b90505f61171883612de0565b90505f6117298d5f01518484612e31565b90505f5f6117398f5f0151612ea7565b9150915061174682612f73565b61174f81612f73565b61175a858385613016565b9450611767848285613016565b93506117738585613052565b9f9e505050505050505050505050505050565b61178e6151e0565b50604080516103e08101825263010000008152601860208083019190915260af82840152825180840184527f1d9cb9d7cc64006646f3df3e62b599798c8c61b2c476167bd745f13cbcb336cf81527f24e6761b164d72e79971c2ca847f1bfc7963f76fb4744dbd3fbf884b9d13f816818301526060830152825180840184527f2e941d384dd60cf65119590a8dd0f73b837023432814b7d4c61a1fff5816cfdb81527f0f7add8130ab78e8060be7a64a44019567902336a55b0d134baaa7c59e8c0fc2818301526080830152825180840184527f27847eb60113003e6048d692010d2f34a6bab66abacbcd61caef29cab6d449c381527f0efd0069e03aae24e155656868bc035df2981e9fd15976796ac646416782aa538183015260a0830152825180840184527f0a5b2a5256090326a00a42163677b4829941efbc11eb19bef1b5539efd61294c81527f27a19d279cceed3879d7450443897882caf7e3581ba3353c1f78ba1e6b82ac488183015260c0830152825180840184527f028286f63006d05df4908855d06596e9340a64db1b4e01b51f396764d3515ca781527f0cdb7d89e67240094775e5741041f607a485833412e08898b56c3c05652bfe0e8183015260e0830152825180840184527f2579ebceccd9bfa3fdd390fc03ae3abf05d351b7339cf3db68861b9fd0a9d90881527f297157bfac210a90374c90cd46287129d4bd134d61b0969a7e08eca684e517df81830152610100830152825180840184527f14e11f086d7ccfc3c02ecfbc088af8a76c737f6b09014c4493310b6f43c12b1e81527f2a68571d45e0c3e4845d1b9a44e95e1d3848f411ba63e1aae95709c95667555181830152610120830152825180840184527f20b9abe371b2651322996fb63b36d13538d0c0db6f6ccbddb728721b3f5e5c9681527f0246dc1b27480f4038ec2f99f3f4c6ee65d7712e1976dd5f06188f8bb0ed49c781830152610140830152825180840184527ebef0d9b68a8330fbda054d5f7d397a7bfc315cd43688a5bf9e4a79a9cfb57281527f18a87e55ecdea0b2388e9f0e850bde15f3c508d102b4bb1e7a1b7f60cdab368681830152610160830152825180840184527f263821169579a7db7bf164508ea7b1951aae6af5732b77341ab62bbf1e445eb481527f26eb45d875b3b31dbb51c82f14091c0b6281a77c0c5ac5f7faad686301fa453081830152610180830152825180840184527f1e123d620a2d96e97adf481e65d9a1f6a7f8c41d5ef8bd31cc45ea6f80184c3d81527f2e5794a1f47815a3c0158369fb50e721ab32603fd4edb543dd1a3bd5f9cb4ae6818301526101a0830152825180840184527f053f97c8e42c90dc2b46d69775469f54e39427c5faef3e9a0db94b6bb9f831eb81527f09f90c434a3a2ee58cc00018ac8da9526ce387f97a448de1553a61d5efca293e818301526101c0830152825180840184527ec3459f447a9931225bf4741d1c9aeca29b38a105771775e41c0f8b997a8d3781527f2f073c67b0df2d38f9b9cf970173b532309414a7725bfe9b070c49a9cb0120ac818301526101e0830152825180840184527f0568f5f391b0ca1ad7d6a3a0c6ccd54d226e036169095edf2bc7e84267269a7781527f2637d9fb5c49a52121f77ef8b87cb0b6cbb647758fadb59a0fcbc36a3e4cbf8181830152610200830152825180840184527f0aedc518303b97e839f61f7e684e5841ae8d0d666e29f05419da1f986a6cef2b81527f131ed1a4df863fe4ea7f94b3d6d18d818e7ecdc30a39f4cbfb04df05a9f6f01681830152610220830152825180840184527f1fbb79e803c3e062879d9aa10a20054f46a9515b55459ff99630034f7cff656d81527f2881cf95f7536ca8aec1407af3d385fea3a24c44514900f5e0566f663c4790e881830152610240830152825180840184527f12ff283fe9460e4a0e67fe6079694a88005ee164708ed01a2e5705daa6dd1cd981527f1392475bbbaef7536ff1c546bccc3f93238232277f08b3d672e4b66fbcec138381830152610260830152825180840184527f222f6d2115dfd437c0b182f3912b74d35a4286de3353d36d8e93f1db57352b0d81527f20b55b77c275a90c61a0ddd0cadbfa4b41f35d690c9bc016a3da6f9a7e07d75e81830152610280830152825180840184527f07b7bf778a4a4f5fe35c10e8bb9e467109c368c662322deef1f6819d96983ac981527f18350deae666b24be7d654cf1437ebed2ad8d92e3359b208d186709f722e9b19818301526102a0830152825180840184527f1f15f6fd77323dab76d5af9ede42360e803af182791a91cef61f325c40b57ef381527f2cda7a98826a052e73f61bb13ca429b7cedb05d13a5fc48154caa314ab124a2e818301526102c0830152825180840184527f259b6f7636b3ee6a0db3f71518910d684dbbfa67bf1202dbfca1f584aa0abd5f81527f164fac6641a65692bf1a1bbfae3a4f67c46e825ceeb91a1b66a0ca4225a732fc818301526102e0830152825180840184527f1d0e7748f66648e20212db2fe8b9bbe8345459705b18918f2cf9dd08d35eaa0981527f092b3c3841f37b28c82c68e1ba4f97e271d61b29d9390fccfcb68b0041d991e381830152610300830152825180840184527f2194d92617bbb3ba3d9e53f4f13c5c7c6fc5ae0c56f06e0a35747f24625e576381527f11ca88979a66ada092bb26e2b64b8602eb63f6e2fc21862f6fefead2978de7e081830152610320830152825180840184527f1d346dd159688f85b77717f8197777c6ced8daf349335d74908736241f5f332881527f10e952d77959f4aa6fe9cb7222d9901d06ddfeea51240c79980d4daac814444381830152610340830152825180840184527f20b8784b739f9968d269d3db4e7e7e7e666acd5804af5ff4a54f8dfbea8d257281527f21ad5edf078583d5e29052c50b4e8d46067ddaae2aa2345c15a755074d932f9581830152610360830152825180840184527f062b31b3719d79c253d59707efcc41556e43d9f4f122ba79d3484e023fb4da7d81527f283eb52c07506637e09fb73d7875ada840d8e4c75295a90dc312b4d2571c52c38183015261038083015282518084018452600181526002818301526103a083015282518084019093527f0989b1e1b8f685966ad282d1c4bb61b585653712c257ccad59c6f098e1aa6ee083527f2be85d735fa2155cb588417ba94164a383d3adae5b70546c4bf28888aee6299f908301526103c081019190915290565b5f6103336120ce8385615ae6565b61278b565b604080518082019091525f808252602082015260408051808201909152805f516020615ceb5f395f51905f5261210c60205f8789615a7f565b61211591615ae6565b61211f9190615b03565b81526020908101905f516020615ceb5f395f51905f5290612144906040908789615a7f565b61214d91615ae6565b6121579190615b03565b90529392505050565b61218760405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f6121958888888888613246565b90835292506121a48389613515565b6040850191909152602084019190915291989197509095505050505050565b6121cb6157ae565b5f6121d46157cd565b8481526101008401805151602080840191909152905181015160408084019190915260a086018051516060850152518201516080840152516122379161221c91849101615b22565b6040516020818303038152906040528051906020012061278b565b91505f6122438361359c565b50808552905060015b6122586001601c615a59565b8110156122a8576122898561226e600184615a59565b601b811061227e5761227e615aa6565b60200201518361272f565b8582601b811061229b5761229b615aa6565b602002015260010161224c565b5050509250929050565b6122ba6157eb565b5f6122d18460405160200161221c91815260200190565b93506122dc8461359c565b50825260015b838110156123395761231a836122f9600184615a59565b601c811061230957612309615aa6565b6020020151846114c0600185615a59565b8382601c811061232c5761232c615aa6565b60200201526001016122e2565b509093915050565b6123496157eb565b5f805b8381101561240b5761235c61580a565b8581525f5b60088110156123c55787610120015183601c811061238157612381615aa6565b6020020151816008811061239757612397615aa6565b6020020151826123a8836001615a6c565b600981106123b8576123b8615aa6565b6020020152600101612361565b506123da8160405160200161221c9190615b55565b95505f6123e68761359c565b8685601c81106123f8576123f8615aa6565b602002019190915250505060010161234c565b5090949293505050565b5f5f61241f615829565b8381525f5b602981101561247257856101400151816029811061244457612444615aa6565b602002015182612455836001615a6c565b602a811061246557612465615aa6565b6020020152600101612424565b506124878160405160200161221c9190615b89565b91505f6124938361359c565b5096929550919350505050565b5f80806124ae600185615a59565b6124b9906002615a42565b6124c4906001615a6c565b67ffffffffffffffff8111156124dc576124dc615aba565b604051908082528060200260200182016040528015612505578160200160208202803683370190505b50905084815f8151811061251b5761251b615aa6565b60209081029190910101525f5b612533600186615a59565b8110156125e65786610160015181601b811061255157612551615aa6565b60200201515182612563836002615a42565b61256e906001615a6c565b8151811061257e5761257e615aa6565b60200260200101818152505086610160015181601b81106125a1576125a1615aa6565b602002015160200151828260026125b89190615a42565b6125c3906002615a6c565b815181106125d3576125d3615aa6565b6020908102919091010152600101612528565b506125fb8160405160200161221c9190615bbd565b91505f6126078361359c565b509792965091945050505050565b5f8080612623846001615a6c565b67ffffffffffffffff81111561263b5761263b615aba565b604051908082528060200260200182016040528015612664578160200160208202803683370190505b50905084815f8151811061267a5761267a615aa6565b60209081029190910101525f5b848110156125e65786610180015181601c81106126a6576126a6615aa6565b6020020151826126b7836001615a6c565b815181106126c7576126c7615aa6565b6020908102919091010152600101612687565b5f5f6126e4615848565b8381526101a085018051516020808401919091529051810151604080840191909152516124879161221c91849101615bf2565b5f5f516020615d0b5f395f51905f52825b0692915050565b5f5f516020615d0b5f395f51905f5282840990505b92915050565b5f5f516020615d0b5f395f51905f528284089392505050565b5f5f516020615d0b5f395f51905f52825f516020615d0b5f395f51905f520384089392505050565b5f5f516020615d0b5f395f51905f5282612728565b5f6103338361077b84612aeb565b815160208301515f9182916127c3919061274a565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b60088110156128b5576128ab8261077b8784612763565b9150600101612894565b506128be615866565b5f5b600881101561291f575f8482600881106128dc576128dc615aa6565b602002015190506128f18161077b8985612763565b90506128fc81612aeb565b90508083836008811061291157612911615aa6565b6020020152506001016128c0565b505f5b6008811015612972575f87826008811061293e5761293e615aa6565b6020020151905061295b818484600881106114d0576114d0615aa6565b9050612967868261274a565b955050600101612922565b506109b6848361272f565b5f5f61299360016107808561077b896001612763565b905061299f848261272f565b95945050505050565b5f6129b16157eb565b6129bc8682856135d5565b6129c886868386613781565b6129d486868386613969565b6129df868285613bb8565b6129ea868285613dac565b6129f6868683866140ef565b612a018682856145a1565b612a0c8682856149b3565b612a17868285614d74565b6109b68185615074565b60605f8267ffffffffffffffff811115612a3d57612a3d615aba565b604051908082528060200260200182016040528015612a66578160200160208202803683370190505b50905083815f81518110612a7c57612a7c615aa6565b602090810291909101015260015b83811015612ae357612abe82612aa1600184615a59565b81518110612ab157612ab1615aa6565b6020026020010151612cba565b828281518110612ad057612ad0615aa6565b6020908102919091010152600101612a8a565b509392505050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f516020615d0b5f395f51905f520360808201525f516020615d0b5f395f51905f5260a082015260205f60c08360055afa80612b47575f5ffd5b505f51608091909101604052949350505050565b60605f8267ffffffffffffffff811115612b7757612b77615aba565b604051908082528060200260200182016040528015612ba0578160200160208202803683370190505b509050825b8015612caf575f85612bb8600184615a59565b81518110612bc857612bc8615aa6565b602002602001015190505f89600184612be19190615a59565b601c8110612bf157612bf1615aa6565b602002015190505f612c4c612c10612c09858d61272f565b600261272f565b61079e8b612c1f600189615a59565b601c8110612c2f57612c2f615aa6565b602002015161077b612c468861077b60018a612763565b87612763565b9050612c6d8161077b610b35612c678761077b600189612763565b8661274a565b99508990508085612c7f600187615a59565b81518110612c8f57612c8f615aa6565b60200260200101818152505050505080612ca890615c25565b9050612ba5565b509695505050505050565b5f612744828361272f565b604080518082019091525f80825260208201525f612d047f00000000000000000000000000000000000000000000000000000000000000006024615a6c565b612d0f906002615a6c565b90505f5b81811015612d4557612d3d858281518110612d3057612d30615aa6565b6020026020010151612f73565b600101612d13565b50604051600190815b60018401811015612daa5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612d4e565b5080518452602081015160208501525080612dd8576040516352ec174560e11b815260040160405180910390fd5b505092915050565b604080518082019091525f80825260208201525f516020615ceb5f395f51905f5282602001515f516020615ceb5f395f51905f52612e1e9190615a59565b612e289190615b03565b60208301525090565b5f5f5f612e3d86612ea7565b91509150612e49615866565b82518152602080840151818301528251604080840191909152838201516060840152875160808401528782015160a0840152865160c08401528682015160e084015251612e9c9161221c91849101615c3a565b979650505050505050565b6040805180820182525f80825260208083018281528451808601865283815280830193845286519287015195870151606088015160cc90811b608892831b6044998a1b90961795909517949094178652608088015160a089015160c08a015160e08b0151871b90841b918a1b90921717179092526101008701516101208801516101408901516101608a0151861b90851b91891b909217171781526101808701516101a08801516101c08901516101e09099015190941b9790921b9290951b1717939093179092529091565b805160208201515f5f516020615ceb5f395f51905f528380095f516020615ceb5f395f51905f5260035f516020615ceb5f395f51905f52838709085f516020615ceb5f395f51905f5284850914915050806130105760405162461bcd60e51b815260206004820152601960248201527f706f696e74206973206e6f74206f6e207468652063757276650000000000000060448201526064016100e5565b50505050565b604080518082019091525f8082526020820152604080518082019091525f808252602082015261304683866150cd565b905061299f8185615139565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516131e89190615c6e565b5f60405180830381855afa9150503d805f8114613220576040519150601f19603f3d011682016040523d82523d5f602084013e613225565b606091505b50915091508180156109b65750808060200190518101906109b69190615c84565b5f8080613254846001615a6c565b61325f906006615a6c565b67ffffffffffffffff81111561327757613277615aba565b6040519080825280602002602001820160405280156132a0578160200160208202803683370190505b509050845f1b815f815181106132b8576132b8615aa6565b60209081029190910101525f5b6132d0601086615a59565b811015613321578787828181106132e9576132e9615aa6565b90506020020135828260016132fe9190615a6c565b8151811061330e5761330e615aa6565b60209081029190910101526001016132c5565b505f5b601081101561339257885161334c90826010811061334457613344615aa6565b602002015190565b8282601061335b896001615a6c565b6133659190615a59565b61336f9190615a6c565b8151811061337f5761337f615aa6565b6020908102919091010152600101613324565b50602088015151816133a5866001615a6c565b815181106133b5576133b5615aa6565b602090810291909101810191909152888101510151816133d6866001615a6c565b6133e1906001615a6c565b815181106133f1576133f1615aa6565b60209081029190910101526040880151518161340e866001615a6c565b613419906002615a6c565b8151811061342957613429615aa6565b602090810291909101810191909152604089015101518161344b866001615a6c565b613456906003615a6c565b8151811061346657613466615aa6565b602090810291909101015260608801515181613483866001615a6c565b61348e906004615a6c565b8151811061349e5761349e615aa6565b60209081029190910181019190915260608901510151816134c0866001615a6c565b6134cb906005615a6c565b815181106134db576134db615aa6565b6020026020010181815250506134fb8160405160200161221c9190615bbd565b91506135068261359c565b50989197509095505050505050565b5f5f5f613520615885565b85815260c0858101805151602080850191909152905181015160408085019190915260e08801805151606086015251820151608080860191909152880180515160a0860152518201519284019290925290516135829161221c91849101615ca3565b915061358d8261359c565b90979096509194509092505050565b5f80826f7fffffffffffffffffffffffffffffff8116607f82901c6135c08261278b565b94506135cb8161278b565b9350505050915091565b5f6135e18460076151b0565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f61364261363c613616856003612763565b61077b6136316136268b5f6151b0565b61077b8c601d6151b0565b61077b8b601c6151b0565b8361272f565b90506136c36136b861369f61368661366d856107806136628d60026151b0565b61077b8e601c6151b0565b61078061367b8c60036151b0565b61077b8d601d6151b0565b6107806136948b60046151b0565b61077b8c601e6151b0565b6107806136ad8a60056151b0565b61077b8b601f6151b0565b6107808860016151b0565b90506136e2816107806136d7866001612763565b61077b8a60276151b0565b90506136ee818461272f565b90506136fa818561272f565b8552505f905061373461372a61371f61371488601c6151b0565b61078089601f6151b0565b61079e8860246151b0565b610780875f6151b0565b90506137458161077b846002612763565b90506137568161077b846001612763565b9050613762818361272f565b905061376e818461272f565b9050808460015b60200201525050505050565b5f5f5f6137b76137ad61379589601c6151b0565b6107806137a38b60126151b0565b8a6020015161272f565b876040015161274a565b90506137f08161077b6137e66137ce8b601d6151b0565b6107806137dc8d60136151b0565b8c6020015161272f565b896040015161274a565b90506138158161077b6137e66138078b601e6151b0565b6107806137dc8d60146151b0565b905061383a8161077b6137e661382c8b601f6151b0565b6107806137dc8d60156151b0565b92505f905061385e6137ad61385089601c6151b0565b6107806137a38b600e6151b0565b90506138838161077b6137e66138758b601d6151b0565b6107806137dc8d600f6151b0565b90506138a88161077b6137e661389a8b601e6151b0565b6107806137dc8d60106151b0565b90506138cd8161077b6137e66138bf8b601f6151b0565b6107806137dc8d60116151b0565b91505f90506138f46138ee6138e38960206151b0565b6107808a601a6151b0565b8461272f565b90506139298161079e61392361390b8b60286151b0565b6107806139198d601b6151b0565b8c6060015161272f565b8561272f565b9050613935818561272f565b6040860152505f61395861392361394d89601b6151b0565b61077b8a60286151b0565b606090950194909452505050505050565b5f5f5f61397e8660200151876020015161272f565b90506139e26139c76139b96139a16139978b60166151b0565b8a6040015161274a565b6107806139af8c60176151b0565b8b6020015161272f565b6107806139238b60186151b0565b6107806139d86139238b60196151b0565b896020015161272f565b9250505f6139f88660200151876020015161272f565b90505f613a25613a0c6137e68a601c6151b0565b610780613a1a8b60036151b0565b61077b8c60246151b0565b90505f613a4e613a368a601d6151b0565b610780613a438c5f6151b0565b61077b8d60256151b0565b90505f613a78613a5f8b601e6151b0565b610780613a6d8d60016151b0565b61077b8e60266151b0565b9050613ab3613a9c613a9285610780868e6020015161272f565b610780848861272f565b6107806137dc613aad8e60046151b0565b8861272f565b9450505050505f613ac86138ee8860216151b0565b90505f613ad96138ee8960216151b0565b90505f613b11613af8613aed8b60236151b0565b6107808c60066151b0565b61079e613b068c60236151b0565b61077b8d60066151b0565b90505f613b35613b2f613b24878961272f565b61077b8d60216151b0565b83612763565b9050613b41818861272f565b90505f613b69613b5b613b558d60066151b0565b8761272f565b61079e613b558e60226151b0565b90505f613b778c60236151b0565b90505f613b87613b2f838461272f565b60808c0185905260a08c018490529050613ba1818b61272f565b8b6006602002015250505050505050505050505050565b5f613bc45f6001612763565b90505f613bd25f6002612763565b90505f613be05f6003612763565b90505f613bfc613bf188601d6151b0565b61079e89601c6151b0565b90505f613c18613c0d89601e6151b0565b61079e8a601d6151b0565b90505f613c34613c298a601f6151b0565b61079e8b601e6151b0565b90505f613c50613c458b60246151b0565b61079e8c601f6151b0565b905083613c618161077b818b61274a565b9050613c718161077b878a61274a565b9050613c818161077b878961274a565b9050613c928161077b8d60086151b0565b9050613c9e818a61272f565b60e08b01525082613cb38161077b818b61274a565b9050613cc38161077b868a61274a565b9050613cd38161077b868961274a565b9050613ce48161077b8d60086151b0565b9050613cf0818a61272f565b6101008b01525081613d068161077b818b61274a565b9050613d168161077b858a61274a565b9050613d268161077b858961274a565b9050613d378161077b8d60086151b0565b9050613d43818a61272f565b6101208b01525080613d598161077b818b61274a565b9050613d698161077b848a61274a565b9050613d798161077b848961274a565b9050613d8a8161077b8d60086151b0565b9050613d96818a61272f565b610140909a019990995250505050505050505050565b613de56040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613df084601d6151b0565b8152613dfd84601e6151b0565b6020820152613e0d8460246151b0565b6040820152613e1d8460276151b0565b6060820152613e2d8460266151b0565b6080820152613e3d8460256151b0565b60a08201525f613e4e8560026151b0565b90505f613e5b865f6151b0565b90505f613e6f8460400151855f0151612763565b90505f613e848560200151866020015161272f565b606086015190915086905f90613e9a908061272f565b90505f613eb2613aad89602001518a6060015161272f565b90505f613ed1613eca8a60a001518b6040015161274a565b8a5161274a565b9050613ee0613b55828861272f565b9050613f07613f01613efb613ef58487612763565b88612763565b8461274a565b8361274a565b9050613f2f613f24613f19838761272f565b61077b8f60096151b0565b61077b60018a612763565b6101608c015250505050602085015160808601515f91613f4e9161274a565b90505f613f6c613f6288606001518861272f565b8860200151612763565b90505f613f90613f7c848761272f565b6107806139238b60a001518c5f0151612763565b9050613fb8613fad613fa2838c61272f565b61077b8e60096151b0565b61077b600189612763565b6101808b0152505f9150613fd99050613fd283601161274a565b875161272f565b90505f613fe6838461274a565b9050613ff2818261274a565b90505f61400083600961272f565b90506140296140236138ee61401c8b60a001518c5f015161274a565b8b5161274a565b82612763565b60c089018190525f9061404490613aad90613f19908d61272f565b90506140578b600b60200201518261274a565b6101608c0152505086515f925061407e9150613fd290614077908061274a565b885161274a565b90505f6140be6140998361077b8a5f01518b60a00151612763565b602089015161079e906140ac908061274a565b61077b8b602001518c6080015161274a565b90506140db89600c6020020151610780613aad613f19858d61272f565b89600c602002015250505050505050505050565b614159604051806101e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b83515f90614167908061272f565b90505f61417782875f015161272f565b905061418d61418788601e6151b0565b8261272f565b8084526141a2906107806139238a601d6151b0565b8084526141be906107806141b78a601c6151b0565b895161272f565b8084526141d0906107808960016151b0565b808452602084018190526141e99061079e89601f6151b0565b83526141f9613bf18860246151b0565b608084015261421761420c8860276151b0565b61079e89601f6151b0565b606084015260808301516142309061077b816001612763565b6101c08401526080830151614270906142669061425f9061077b60015f516020615d0b5f395f51905f52615a59565b600161274a565b846060015161272f565b60a084018190526142a6906142989061077b61428d8b60026151b0565b61077b8c60036151b0565b61077b613b558a600a6151b0565b85600e60200201526101c08301516142ca906142989061077b61428d8b60026151b0565b6101e086015282516142ef9061077b6142e48a60026151b0565b61077b8b60036151b0565b6101208401525f61430e61430489601f6151b0565b8560200151612763565b905061431f8161077b836001612763565b60e085015261433261363c8960266151b0565b604085018190526143519061078061434b8b60256151b0565b8661272f565b604085018190526143719061078061436a8b60246151b0565b8a5161272f565b604085015261438e6143848960276151b0565b8560400151612763565b60408501525f6143a2613c298a60266151b0565b90506143f46143cf61363c61425f886080015160015f516020615d0b5f395f51905f5261077b9190615a59565b61077b61425f886040015160015f516020615d0b5f395f51905f5261077b9190615a59565b60c086015260408501516144169061440c908061272f565b8660400151612763565b61010086015260c0850151614448906144349061077b8c60046151b0565b61077b6144428c600a6151b0565b8961272f565b6102008801526101c0850151614467906144349061077b8c60046151b0565b610220880152610100850151614486906144349061077b8c60046151b0565b61024088015260e08501516144a09061077b8b60046151b0565b6101408601526144bf6144b48a60256151b0565b61079e8b601d6151b0565b61016086015260808501516144fd90613c29906144f29061425f9061077b60015f516020615d0b5f395f51905f52615a59565b87610160015161272f565b61018086018190526101208601516101a08701819052614534916107809061077b6145298e60056151b0565b61077b8f60026151b0565b6101a08601819052855161455491906107809061077b6145298e5f6151b0565b6101a0860181905261014086015161456c919061274a565b6101a086018190526145869061077b6144428c600a6151b0565b6101a0860181905287600d6020020152505050505050505050565b6145da6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61460f6145f66145eb86601c6151b0565b61077b8760256151b0565b6107806146048760246151b0565b61077b88601d6151b0565b815261465461464961463061462587601c6151b0565b61077b88601f6151b0565b61078061463e88601d6151b0565b61077b89601e6151b0565b61079e8660266151b0565b6040820181905261466990600160441b61272f565b6040820181905261467f9061079e8660276151b0565b604082018190528151614692919061274a565b604082018190526146a89061077b8660056151b0565b604082015280516146bd90600160441b61272f565b8082526146dd906107806146d28760246151b0565b61077b8860256151b0565b808252602082018190526147049061079e6146f987601e6151b0565b61078088601f6151b0565b6020820181905261471a9061077b8660046151b0565b60208201528051606082018190526147379061078086601f6151b0565b6060820181905261475b9061079e6147508760266151b0565b6107808860276151b0565b606082018190526147709061077b865f6151b0565b8160600181815250505f61479961478f8360200151846040015161274a565b836060015161274a565b90506147aa8161077b8760036151b0565b90506147c26147ba8660256151b0565b61400061272f565b608083018190526147d8906107808760246151b0565b608083018190526147eb9061400061272f565b608083018190526148019061078087601e6151b0565b608083018190526148149061400061272f565b6080830181905261482a9061078087601d6151b0565b6080830181905261483d9061400061272f565b608083018190526148539061078087601c6151b0565b608083018190526148699061079e87601f6151b0565b6080830181905261487f9061077b8760056151b0565b60808301526148926147ba8660266151b0565b60a083018190526148a8906107808760256151b0565b60a083018190526148bb9061400061272f565b60a083018190526148d1906107808760246151b0565b60a083018190526148e49061400061272f565b60a083018190526148fa9061078087601f6151b0565b60a0830181905261490d9061400061272f565b60a083018190526149239061078087601e6151b0565b60a083018190526149399061079e8760276151b0565b60a0830181905261494e9061077b875f6151b0565b60a0830181905260808301515f91614966919061274a565b90506149778161077b8860046151b0565b9050614983828261274a565b60c0840181905261499c9061077b613b5589600b6151b0565b60c084018190528560136020020152505050505050565b614a296040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b614a42614a3785601c6151b0565b6107808660026151b0565b8152614a5d614a5285601d6151b0565b6107808660036151b0565b6020820152614a7b614a7085601e6151b0565b6107808660046151b0565b6040820152614a99614a8e85601f6151b0565b6107808660056151b0565b60608201528051614acb90614ac490614abd90614ab6908061272f565b845161272f565b835161272f565b825161272f565b60808201526020810151614b0990614aff90614af590614aeb908061272f565b846020015161272f565b836020015161272f565b826020015161272f565b60a08201526040810151614b4790614b3d90614b3390614b29908061272f565b846040015161272f565b836040015161272f565b826040015161272f565b60c08201526060810151614b7b90614b7190614b6790614266908061272f565b836060015161272f565b826060015161272f565b60e0820152608081015160a0820151614b94919061274a565b61010082015260c081015160e0820151614bae919061274a565b61012082015260a0810151614bd290614bc7908061274a565b82610120015161274a565b61014082015260e0810151614bf690614beb908061274a565b82610100015161274a565b610160820152610120810151614c0c908061274a565b6101e08201819052614c2d90614c22908061274a565b82610160015161274a565b6101e0820152610100810151614c43908061274a565b6101a08201819052614c6490614c59908061274a565b82610140015161274a565b6101a08201819052610160820151614c7b9161274a565b6101808201526101408101516101e0820151614c97919061274a565b6101c0820152614cab61363c85600c6151b0565b6102008201819052610280840151610180830151614cd6926107809161077b9061079e8a60246151b0565b8360146020020152614d06836015602002015161078083610200015161077b856101a0015161079e8a60256151b0565b8360156020020152614d36836016602002015161078083610200015161077b856101c0015161079e8a60266151b0565b8360166020020152614d66836017602002015161078083610200015161077b856101e0015161079e8a60276151b0565b836017602002015250505050565b614dc66040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f6040518060800160405280614dfb7f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7612717565b8152602001614e297f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b612717565b8152602001614e567e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15612717565b8152602001614e847f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b612717565b90529050614ea1614e9686601c6151b0565b6107808760026151b0565b6101208301819052614ee090614ed590614eca90614ebf908061272f565b85610120015161272f565b84610120015161272f565b83610120015161272f565b8252614eed85601d6151b0565b6020830152614efd85601e6151b0565b6040830152614f0d85601f6151b0565b606083015281516020830151614f359161478f91614f2b919061274a565b846040015161274a565b6080830152614f486138ee86600d6151b0565b6101408301528151614f6990614f5f90835f6114d0565b836080015161274a565b60a0830152614f95846018602002015161078084610140015161077b8660a0015161079e8b60246151b0565b6103008501526020820151614fb090614f5f908360016114d0565b60c0830152614fdc846019602002015161078084610140015161077b8660c0015161079e8b60256151b0565b6103208501526040820151614ff790614f5f908360026114d0565b60e083015261502384601a602002015161078084610140015161077b8660e0015161079e8b60266151b0565b610340850152606082015161503e90614f5f908360036114d0565b61010083015261506c84601b602002015161078084610140015161077b86610100015161079e8b60276151b0565b84601b613775565b815160015b601c8110156150c6576150bc826107808684601c811061509b5761509b615aa6565b6020020151866150ac600187615a59565b601b81106114d0576114d0615aa6565b9150600101615079565b5092915050565b604080518082019091525f8082526020820152604080518082019091525f8082526020820152604051835181526020840151602082015284604082015260408160608360075afa8061511d575f5ffd5b5080518252602080820151908301526060016040529392505050565b604080518082019091525f8082526020820152604080518082019091525f80825260208201526040518451815260208501516020820152835160408201526020840151606082015260408160808360065afa80615194575f5ffd5b5080518252602080820151908301526080016040529392505050565b5f828260288111156151c4576151c4615cd6565b602981106151d4576151d4615aa6565b60200201519392505050565b604051806103e001604052805f81526020015f81526020015f815260200161521960405180604001604052805f81526020015f81525090565b815260200161523960405180604001604052805f81526020015f81525090565b815260200161525960405180604001604052805f81526020015f81525090565b815260200161527960405180604001604052805f81526020015f81525090565b815260200161529960405180604001604052805f81526020015f81525090565b81526020016152b960405180604001604052805f81526020015f81525090565b81526020016152d960405180604001604052805f81526020015f81525090565b81526020016152f960405180604001604052805f81526020015f81525090565b815260200161531960405180604001604052805f81526020015f81525090565b815260200161533960405180604001604052805f81526020015f81525090565b815260200161535960405180604001604052805f81526020015f81525090565b815260200161537960405180604001604052805f81526020015f81525090565b815260200161539960405180604001604052805f81526020015f81525090565b81526020016153b960405180604001604052805f81526020015f81525090565b81526020016153d960405180604001604052805f81526020015f81525090565b81526020016153f960405180604001604052805f81526020015f81525090565b815260200161541960405180604001604052805f81526020015f81525090565b815260200161543960405180604001604052805f81526020015f81525090565b815260200161545960405180604001604052805f81526020015f81525090565b815260200161547960405180604001604052805f81526020015f81525090565b815260200161549960405180604001604052805f81526020015f81525090565b81526020016154b960405180604001604052805f81526020015f81525090565b81526020016154d960405180604001604052805f81526020015f81525090565b81526020016154f960405180604001604052805f81526020015f81525090565b815260200161551960405180604001604052805f81526020015f81525090565b815260200161553960405180604001604052805f81526020015f81525090565b815260200161555960405180604001604052805f81526020015f81525090565b815260200161557960405180604001604052805f81526020015f81525090565b905290565b604051806101e001604052806155926158a3565b81526020016155b260405180604001604052805f81526020015f81525090565b81526020016155d260405180604001604052805f81526020015f81525090565b81526020016155f260405180604001604052805f81526020015f81525090565b815260200161561260405180604001604052805f81526020015f81525090565b815260200161563260405180604001604052805f81526020015f81525090565b815260200161565260405180604001604052805f81526020015f81525090565b815260200161567260405180604001604052805f81526020015f81525090565b815260200161569260405180604001604052805f81526020015f81525090565b815260200161569f6158c2565b81526020016156ac6158f0565b81526020016156b961590f565b81526020016155396157eb565b6040518061010001604052806156f960405180608001604052805f81526020015f81526020015f81526020015f81525090565b81526020016157066157ae565b81526020016157136157eb565b81526020016157206157eb565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f815260200161577c615948565b8152602001615789615948565b81526020015f81526020015f81526020015f81526020015f8152602001606081525090565b604051806103600160405280601b906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806105400160405280602a906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b6040518061020001604052806010906020820280368337509192915050565b604051806103800160405280601c905b6158da615866565b8152602001906001900390816158d25790505090565b6040518061052001604052806029906020820280368337509192915050565b604051806103600160405280601b905b604080518082019091525f808252602082015281526020019060019003908161591f5790505090565b60405180608001604052806004906020820280368337509192915050565b5f5f5f5f60408587031215615979575f5ffd5b843567ffffffffffffffff81111561598f575f5ffd5b8501601f8101871361599f575f5ffd5b803567ffffffffffffffff8111156159b5575f5ffd5b8760208284010111156159c6575f5ffd5b60209182019550935085013567ffffffffffffffff8111156159e6575f5ffd5b8501601f810187136159f6575f5ffd5b803567ffffffffffffffff811115615a0c575f5ffd5b8760208260051b8401011115615a20575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761274457612744615a2e565b8181038181111561274457612744615a2e565b8082018082111561274457612744615a2e565b5f5f85851115615a8d575f5ffd5b83861115615a99575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b5f60018201615adf57615adf615a2e565b5060010190565b80356020831015612744575f19602084900360031b1b1692915050565b5f82615b1d57634e487b7160e01b5f52601260045260245ffd5b500690565b5f8183825b6005811015615b46578151835260209283019290910190600101615b27565b50505060a08201905092915050565b5f8183825b6009811015615b79578151835260209283019290910190600101615b5a565b5050506101208201905092915050565b5f8183825b602a811015615bad578151835260209283019290910190600101615b8e565b5050506105408201905092915050565b81515f90829060208501835b82811015615be7578151845260209384019390910190600101615bc9565b509195945050505050565b5f8183825b6003811015615c16578151835260209283019290910190600101615bf7565b50505060608201905092915050565b5f81615c3357615c33615a2e565b505f190190565b5f8183825b6008811015615c5e578151835260209283019290910190600101615c3f565b5050506101008201905092915050565b5f82518060208501845e5f920191825250919050565b5f60208284031215615c94575f5ffd5b81518015158114610333575f5ffd5b5f8183825b6007811015615cc7578151835260209283019290910190600101615ca8565b50505060e08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220eeb5ba06059313776a210a02ab545b3d9b62c7056e7bc1a59aa7af942a17f91364736f6c634300081e0033";
4
+ export declare const HonkVerifierBytecode = "0x610100604052348015610010575f5ffd5b506301000000608052601860a0527f03283433ea4127dbfc7e979496d557867240e6a1ca611eb1684aaadb63b9a7fd60c05260a760e05260805160a05160c05160e051615cdf6100de5f395f818161018101526107ae01525f61016001525f8181605b01528181609401528181610101015281816101a2015281816108c7015281816109d401528181610a0001528181610a7b015281816112d401528181611374015281816115c30152818161160f0152818161165d015281816116b40152612cdf01525f5050615cdf5ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b3660046158e5565b610054565b604051901515815260200160405180910390f35b5f5f61007f7f000000000000000000000000000000000000000000000000000000000000000061028c565b905061008c8160206159c1565b85146100ee577f0000000000000000000000000000000000000000000000000000000000000000856100bf8360206159c1565b6040516359895a5360e01b81526004810193909352602483019190915260448201526064015b60405180910390fd5b5f6100f761033a565b90505f61012588887f000000000000000000000000000000000000000000000000000000000000000061034f565b90506008826040015161013891906159d8565b85146101575760405163fa06659360e01b815260040160405180910390fd5b5f6101c68288887f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006106a6565b90506102168787808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152505085518551602081015160409091015191935091506001610758565b8151606001525f61022783836108bf565b905080610247576040516313f8744360e31b815260040160405180910390fd5b5f6102538486856109c0565b905080610273576040516352ec174560e11b815260040160405180910390fd5b81801561027d5750805b9b9a5050505050505050505050565b5f8061029a600260086159c1565b905060016102a96008856159c1565b6102b391906159c1565b6102bd90826159eb565b90506102cb600160296159c1565b6102d590826159eb565b905060026102e46001856159d8565b6102ee91906159c1565b6102f890826159eb565b90506103056001846159c1565b61030f90826159eb565b905061031c6002806159c1565b61032690826159eb565b90506103336008826159eb565b9392505050565b61034261517e565b61034a611786565b905090565b61035761551c565b5f805b60088110156103b9576103868683876103746020836159eb565b92610381939291906159fe565b6120c1565b8351826008811061039957610399615a25565b6020020181815250506020826103af91906159eb565b915060010161035a565b506103dd8582866103cb6040836159eb565b926103d8939291906159fe565b6120d4565b60208301526103ed6040826159eb565b90506104008582866103cb6040836159eb565b60408084019190915261041390826159eb565b90506104268582866103cb6040836159eb565b60608301526104366040826159eb565b90506104498582866103cb6040836159eb565b60c08301526104596040826159eb565b905061046c8582866103cb6040836159eb565b60e083015261047c6040826159eb565b905061048f8582866103cb6040836159eb565b608083015261049f6040826159eb565b90506104b28582866103cb6040836159eb565b6101008301526104c36040826159eb565b90506104d68582866103cb6040836159eb565b60a08301526104e66040826159eb565b90505f5b83811015610564575f5b600881101561055b5761050e8784886103746020836159eb565b84610120015183601c811061052557610525615a25565b6020020151826008811061053b5761053b615a25565b60200201818152505060208361055191906159eb565b92506001016104f4565b506001016104ea565b505f5b60298110156105b8576105818683876103746020836159eb565b836101400151826029811061059857610598615a25565b6020020181815250506020826105ae91906159eb565b9150600101610567565b505f5b6105c66001856159d8565b81101561060f576105de8683876103cb6040836159eb565b83610160015182601b81106105f5576105f5615a25565b60200201526106056040836159eb565b91506001016105bb565b505f5b838110156106625761062b8683876103746020836159eb565b83610180015182601c811061064257610642615a25565b60200201818152505060208261065891906159eb565b9150600101610612565b506106748582866103cb6040836159eb565b6101a08301526106856040826159eb565b90506106988582866103cb6040836159eb565b6101c0830152509392505050565b6106ae615664565b5f6106bd888888888886612161565b90835290506106cc81896121c4565b602084019190915290506106e081846122b3565b604084019190915290506106f5888285612342565b606084019190915290506107098882612416565b6080840191909152905061071e8882856124a1565b60a08401919091529050610733888285612616565b60c0840191909152905061074788826126db565b5060e0830152509695505050505050565b5f60018082610785866107808961077b6107768a63100000006159eb565b612718565b612730565b61274b565b90505f6107a38761079e8a61077b6107768b60016159eb565b612764565b90505f5b6107d260087f00000000000000000000000000000000000000000000000000000000000000006159d8565b81101561083f575f6107fc8c83815181106107ef576107ef615a25565b602002602001015161278c565b905061080c8661077b868461274b565b955061081c8561077b858461274b565b9450610828848b61274b565b9350610834838b612764565b9250506001016107a7565b505f5b60088110156108a6575f8a826008811061085e5761085e615a25565b602002015190506108738661077b868461274b565b95506108838561077b858461274b565b945061088f848b61274b565b935061089b838b612764565b925050600101610842565b506108b184846127a1565b9a9950505050505050505050565b5f806001815b7f0000000000000000000000000000000000000000000000000000000000000000811015610996575f86610120015182601c811061090557610905615a25565b602002015190505f61091782866127af565b905080610937576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c811061094e5761094e615a25565b6020020151905061095f83826127cf565b9550610986886040015185601c811061097a5761097a615a25565b6020020151868361297e565b94505050508060010190506108c5565b505f6109b0866101400151865f01518760200151856129a9565b90508281145b9695505050505050565b5f6109c96156dc565b5f6109f88460a001517f0000000000000000000000000000000000000000000000000000000000000000612a22565b90505f610a267f000000000000000000000000000000000000000000000000000000000000000060246159eb565b610a319060026159eb565b67ffffffffffffffff811115610a4957610a49615a39565b604051908082528060200260200182016040528015610a72578160200160208202803683370190505b5090505f610aa17f000000000000000000000000000000000000000000000000000000000000000060246159eb565b610aac9060026159eb565b67ffffffffffffffff811115610ac457610ac4615a39565b604051908082528060200260200182016040528015610b0857816020015b604080518082019091525f8082526020820152815260200190600190039081610ae25790505b509050610b3a610b358760e00151855f81518110610b2857610b28615a25565b6020026020010151612764565b612aec565b84610120018181525050610b6e610b358760e00151855f81518110610b6157610b61615a25565b602002602001015161274b565b610140850181905261012085015160c0880151610b8f926107809190612730565b845260a0860151610bbf90610ba390612aec565b61077b86610120015161079e8a60c00151896101400151612730565b6020850152815160019083905f90610bd957610bd9615a25565b602002602001018181525050876101a00151815f81518110610bfd57610bfd615a25565b6020908102919091010152600160a08501525f60c085015283515f516020615c8a5f395f51905f5203604085015260208401515f516020615c8a5f395f51905f5203606085015260015b60248111610cea57610c6185604001518660a00151612730565b838281518110610c7357610c73615a25565b602002602001018181525050610cbc8560c001516107808b6101400151600185610c9d91906159d8565b60298110610cad57610cad615a25565b60200201518860a00151612730565b60c086015260a08501516080880151610cd59190612730565b60a0860152610ce381615a4d565b9050610c47565b505f5b6005811015610db8575f610d02601d836159eb565b90505f610d106024846159eb565b9050610d41858381518110610d2757610d27615a25565b602002602001015161078089606001518a60a00151612730565b858381518110610d5357610d53615a25565b602002602001018181525050610d908760c001516107808d61014001518460298110610d8157610d81615a25565b60200201518a60a00151612730565b60c088015260a087015160808a0151610da99190612730565b60a08801525050600101610ced565b50866060015181600181518110610dd157610dd1615a25565b6020026020010181905250866080015181600281518110610df457610df4615a25565b60200260200101819052508660a0015181600381518110610e1757610e17615a25565b60200260200101819052508660c0015181600481518110610e3a57610e3a615a25565b60200260200101819052508660e0015181600581518110610e5d57610e5d615a25565b602002602001018190525086610100015181600681518110610e8157610e81615a25565b602002602001018190525086610120015181600781518110610ea557610ea5615a25565b602002602001018190525086610140015181600881518110610ec957610ec9615a25565b602002602001018190525086610160015181600981518110610eed57610eed615a25565b6020026020010181905250866101c0015181600a81518110610f1157610f11615a25565b602002602001018190525086610180015181600b81518110610f3557610f35615a25565b6020026020010181905250866101a0015181600c81518110610f5957610f59615a25565b6020026020010181905250866101e0015181600d81518110610f7d57610f7d615a25565b602002602001018190525086610200015181600e81518110610fa157610fa1615a25565b602002602001018190525086610220015181600f81518110610fc557610fc5615a25565b602002602001018190525086610240015181601081518110610fe957610fe9615a25565b60200260200101819052508661026001518160118151811061100d5761100d615a25565b60200260200101819052508661028001518160128151811061103157611031615a25565b6020026020010181905250866102a001518160138151811061105557611055615a25565b6020026020010181905250866102c001518160148151811061107957611079615a25565b6020026020010181905250866102e001518160158151811061109d5761109d615a25565b6020026020010181905250866103000151816016815181106110c1576110c1615a25565b6020026020010181905250866103200151816017815181106110e5576110e5615a25565b60200260200101819052508661034001518160188151811061110957611109615a25565b60200260200101819052508661036001518160198151811061112d5761112d615a25565b602002602001018190525086610380015181601a8151811061115157611151615a25565b6020026020010181905250866103a0015181601b8151811061117557611175615a25565b6020026020010181905250866103c0015181601c8151811061119957611199615a25565b6020026020010181905250876020015181601d815181106111bc576111bc615a25565b6020026020010181905250876040015181601e815181106111df576111df615a25565b6020026020010181905250876060015181601f8151811061120257611202615a25565b602002602001018190525087608001518160208151811061122557611225615a25565b60200260200101819052508760a001518160218151811061124857611248615a25565b60200260200101819052508761010001518160228151811061126c5761126c615a25565b60200260200101819052508760c001518160238151811061128f5761128f615a25565b60200260200101819052508760e00151816024815181106112b2576112b2615a25565b60200260200101819052505f6112f887606001518660c001518b6101800151877f0000000000000000000000000000000000000000000000000000000000000000612b5c565b9050611322815f8151811061130f5761130f615a25565b6020026020010151866101200151612730565b608086018190526101808a01515160c08901516113539291610780916113489190612730565b886101400151612730565b608086015260c087015161136690612cbb565b60a08601525f5b61139860017f00000000000000000000000000000000000000000000000000000000000000006159d8565b8110156115a7576113c8610b358960e00151878460016113b891906159eb565b81518110610b2857610b28615a25565b61012087015260e08801516113f790610b3590876113e78560016159eb565b81518110610b6157610b61615a25565b61014087015260a08601516101208701516114129190612730565b61016087015260a086015160c089015161143a9161142f91612730565b876101400151612730565b610180870181905261146f905f516020615c8a5f395f51905f52036101608801515f516020615c8a5f395f51905f520361274b565b848261147d602460016159eb565b61148791906159eb565b8151811061149757611497615a25565b6020026020010181815250505f6114da8761018001518c61018001518460016114c091906159eb565b601c81106114d0576114d0615a25565b6020020151612730565b905061151481610780896101600151868660016114f791906159eb565b8151811061150757611507615a25565b6020026020010151612730565b905061152487608001518261274b565b608088015260a087015160c08a015161154a9161154091612730565b8a60c00151612730565b60a08801526101608b015182601b811061156657611566615a25565b60200201518483611579602460016159eb565b61158391906159eb565b8151811061159357611593615a25565b60209081029190910101525060010161136d565b50604080518082019091526001815260026020820152826115e97f000000000000000000000000000000000000000000000000000000000000000060246159eb565b815181106115f9576115f9615a25565b60209081029190910101526080850151836116357f000000000000000000000000000000000000000000000000000000000000000060246159eb565b8151811061164557611645615a25565b60209081029190910101526101c089015180836116837f000000000000000000000000000000000000000000000000000000000000000060246159eb565b61168e9060016159eb565b8151811061169e5761169e615a25565b602090810291909101015260e0880151846116da7f000000000000000000000000000000000000000000000000000000000000000060246159eb565b6116e59060016159eb565b815181106116f5576116f5615a25565b6020026020010181815250505f61170c8486612cc6565b90505f61171883612de1565b90505f6117298d5f01518484612e32565b90505f5f6117398f5f0151612ea8565b9150915061174682612f11565b61174f81612f11565b61175a858385612fb4565b9450611767848285612fb4565b93506117738585612ff0565b9f9e505050505050505050505050505050565b61178e61517e565b50604080516103e08101825263010000008152601860208083019190915260a782840152825180840184527f29f13b36c63603df2c6cdd0b843a5ccf83c98ea1a0fb68c4a0db553cab1311da81527f1c715aa948a89a92d1cf42c53c6e9b75bc7ef5b6a26551089ea4592af7bc23c6818301526060830152825180840184527f28ef3f7c626ce65a6902c8f5df1099fa1a7134bb48e6d3d08ee16db205e889b381527f2a959acd6e8b7f1d2637e82e3ee258a7d836c1af9fcbf966717010080df1eaa2818301526080830152825180840184527f06a12e97212b59b98c6c2fe4eb2a5c72a30cc0e1e91f0e4ed172b799a9fab7d581527f1fb4b0f8e12e5cd975184c58041a8a7bbe34d5f4c761ae2f2230149a51e9e6548183015260a0830152825180840184527f0c067799b7cabe77e4eb7e35ee24e367b0f6cc07232ef176d11978b6548e676781527f0b7570919561a62913a84189015f45f1778bc4fab1418fe058f679314a5abd9c8183015260c0830152825180840184527f2c51ac1e1c0f608352eb0056b45a45f2ad450d772cfcd9cc5c81b9f76474e37281527f1baa38146c622af2bb4f30efa399a689783bc8f588af0352f9501970ba20a87b8183015260e0830152825180840184527f030e47bfb15824bb1a220786bbcfede7bd47a6a1c514ae8e941217d19eca1a0681527f13d415b5a45fd6dc6993e94f773608278d071c1c040782915a0c6a64656deb8a81830152610100830152825180840184527f0d5cd90aceba65851b2ed0af6db9a5d741f62886d05381d516916a3e1b72cbf681527f08207020e5d8f9360f392c108796ee1b6b58c6cd8a259a85ac8c76ac30fcac4581830152610120830152825180840184527f1eb813f3af6a65dbd7199c4f80225777d30877959a5efd16b9460252ee9455a381527f23db0e832dacb3d57e84df60498392ceb8c9ebded1f3486433ca9d51eb9f5e1881830152610140830152825180840184527f1075a1f463c1fcf4a98ef8157e0b313a1845f58e2fcfd9024d936f2cb7a4a33a81527f28f5f4038a3cf23fdd1e1b2edfe561b0457053ffd7c4eb48ddfee86d380b4ff481830152610160830152825180840184527f108ba73a24e693b4280b41380e417e1a66581a60e698d7ad91ba6796af94cfc781527f22dd20de874310e033e20f35adf11eb07b5be49df338dc524dcf7127413426b881830152610180830152825180840184527f2ea423222f367697033b489ae4007f685f80dad5e179257bb95cb8f3b615bb9081527f30066d85237e0918961a583a9cfaf0cfa21213fa902f4feabbf4a0bf835cd1d9818301526101a0830152825180840184527f10cedadab7e912bbe987fc86334eed65f97df6fd5f55eef455d5c50fa34a745d81527f1945f210a1324a76edca3a9dafea7f5ee9327c42200a8590c5e5228ae339fa4b818301526101c0830152825180840184527f01279e522f1aa5ee5f175649ac506acd35eea3f5aa52cd96e35aaf2ace0acf0b81527f17309146bcd19bf48eb704e50be86506b8f6641c27827844c382e179c3efad1a818301526101e0830152825180840184527f2532ed35f6d84a7987415f529052293b0299c119ac3ea159ed09d489b9ff3b8581527f0291068f76ff6a133110ba332df3acbd2c429ef6fc7dc4e5890a30bd9925745981830152610200830152825180840184527f09000a699e3ad80b08fbffe0f39319201c3c7df4e18b0dcf360e3ba7bba497ca81527f024c9d2daf06a9effedaa31c8d3b10a2e61ed7de526d32ad7854dee103cda93881830152610220830152825180840184527f12e3ff67a11b346fd08116eafe67cecdde0ce46a78fd23693e943b79178dca1681527f1e25a991ccb6c56209cb6b4d2d00eb050886b10164dc4c72a8afce6b859f50dd81830152610240830152825180840184527f0dcadef02eb38d2acb010e6034aae7ef2455bb9f0502ef7d8294724d0f48d3c181527f21aabf13f5bb0d86af4f22d133a143cd8a8b84f5f5fcd411cca79ab0324a7cae81830152610260830152825180840184527f07dd9d2903434c1b090f16695e1933982b73338172cfbf30bd300c5c30dc3e4881527f0683d4bbb0a94563fe197f1c94783375e1d39967506a6a1ed84dfb3dab76e0b981830152610280830152825180840184527f28f0fe6358b508e50d0c0974e90ca964107acf7c6410c12fc3fb548626c31ff681527f096568eeeaa264778d6197602ec70948ebee44cee79334edcf01cd4128077762818301526102a0830152825180840184527f1925b8a1fc15bda192821e9617de6226fc18da486488b66c9b02370a0f02ee5581527f2f217ad241880b147481da14527aa1732c9e68a95e011f579a394cb2f254c059818301526102c0830152825180840184527f1c3e3dd8ed2267546aec250cd822afcb940ee0df0f2ac62ccc64ef10a32fa39b81527f04d84ffe345778db75e2003b3a2947fb5d612646f169b4749bd0f6d2a00b21d5818301526102e0830152825180840184527eb5bffe09de82571170c06d65833eb42cfe96327efdb70e31ffab79d854ef1281527f2ebca7701bb11eab3da3ca5e88bee81374034d18f452407a4016d69b64427cbe81830152610300830152825180840184527f2194d92617bbb3ba3d9e53f4f13c5c7c6fc5ae0c56f06e0a35747f24625e576381527f11ca88979a66ada092bb26e2b64b8602eb63f6e2fc21862f6fefead2978de7e081830152610320830152825180840184527f1d346dd159688f85b77717f8197777c6ced8daf349335d74908736241f5f332881527f10e952d77959f4aa6fe9cb7222d9901d06ddfeea51240c79980d4daac814444381830152610340830152825180840184527f20b8784b739f9968d269d3db4e7e7e7e666acd5804af5ff4a54f8dfbea8d257281527f21ad5edf078583d5e29052c50b4e8d46067ddaae2aa2345c15a755074d932f9581830152610360830152825180840184527f062b31b3719d79c253d59707efcc41556e43d9f4f122ba79d3484e023fb4da7d81527f283eb52c07506637e09fb73d7875ada840d8e4c75295a90dc312b4d2571c52c38183015261038083015282518084018452600181526002818301526103a083015282518084019093527f177e3cdf761b7ac2ca1a76ed4d7808b7df0dc7b82589529a692642fa1d94c67683527f016f7afe942b343181bdb40aaf4b5aece1c9d2aed1cd4ff3a7c3dadf36bbd494908301526103c081019190915290565b5f6103336120cf8385615a65565b61278c565b604080518082019091525f808252602082015260408051808201909152805f516020615c6a5f395f51905f5261210d60205f87896159fe565b61211691615a65565b6121209190615a82565b81526020908101905f516020615c6a5f395f51905f52906121459060409087896159fe565b61214e91615a65565b6121589190615a82565b90529392505050565b61218860405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f61219688888888886131e4565b90835292506121a583896134b3565b6040850191909152602084019190915291989197509095505050505050565b6121cc61574c565b5f6121d561576b565b8481526101008401805151602080840191909152905181015160408084019190915260a086018051516060850152518201516080840152516122389161221d91849101615aa1565b6040516020818303038152906040528051906020012061278c565b91505f6122448361353a565b50808552905060015b6122596001601c6159d8565b8110156122a95761228a8561226f6001846159d8565b601b811061227f5761227f615a25565b602002015183612730565b8582601b811061229c5761229c615a25565b602002015260010161224d565b5050509250929050565b6122bb615789565b5f6122d28460405160200161221d91815260200190565b93506122dd8461353a565b50825260015b8381101561233a5761231b836122fa6001846159d8565b601c811061230a5761230a615a25565b6020020151846114c06001856159d8565b8382601c811061232d5761232d615a25565b60200201526001016122e3565b509093915050565b61234a615789565b5f805b8381101561240c5761235d6157a8565b8581525f5b60088110156123c65787610120015183601c811061238257612382615a25565b6020020151816008811061239857612398615a25565b6020020151826123a98360016159eb565b600981106123b9576123b9615a25565b6020020152600101612362565b506123db8160405160200161221d9190615ad4565b95505f6123e78761353a565b8685601c81106123f9576123f9615a25565b602002019190915250505060010161234d565b5090949293505050565b5f5f6124206157c7565b8381525f5b602981101561247357856101400151816029811061244557612445615a25565b6020020151826124568360016159eb565b602a811061246657612466615a25565b6020020152600101612425565b506124888160405160200161221d9190615b08565b91505f6124948361353a565b5096929550919350505050565b5f80806124af6001856159d8565b6124ba9060026159c1565b6124c59060016159eb565b67ffffffffffffffff8111156124dd576124dd615a39565b604051908082528060200260200182016040528015612506578160200160208202803683370190505b50905084815f8151811061251c5761251c615a25565b60209081029190910101525f5b6125346001866159d8565b8110156125e75786610160015181601b811061255257612552615a25565b602002015151826125648360026159c1565b61256f9060016159eb565b8151811061257f5761257f615a25565b60200260200101818152505086610160015181601b81106125a2576125a2615a25565b602002015160200151828260026125b991906159c1565b6125c49060026159eb565b815181106125d4576125d4615a25565b6020908102919091010152600101612529565b506125fc8160405160200161221d9190615b3c565b91505f6126088361353a565b509792965091945050505050565b5f80806126248460016159eb565b67ffffffffffffffff81111561263c5761263c615a39565b604051908082528060200260200182016040528015612665578160200160208202803683370190505b50905084815f8151811061267b5761267b615a25565b60209081029190910101525f5b848110156125e75786610180015181601c81106126a7576126a7615a25565b6020020151826126b88360016159eb565b815181106126c8576126c8615a25565b6020908102919091010152600101612688565b5f5f6126e56157e6565b8381526101a085018051516020808401919091529051810151604080840191909152516124889161221d91849101615b71565b5f5f516020615c8a5f395f51905f52825b0692915050565b5f5f516020615c8a5f395f51905f5282840990505b92915050565b5f5f516020615c8a5f395f51905f528284089392505050565b5f5f516020615c8a5f395f51905f52825f516020615c8a5f395f51905f520384089392505050565b5f5f516020615c8a5f395f51905f5282612729565b5f6103338361077b84612aec565b815160208301515f9182916127c4919061274b565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b60088110156128b6576128ac8261077b8784612764565b9150600101612895565b506128bf615804565b5f5b6008811015612920575f8482600881106128dd576128dd615a25565b602002015190506128f28161077b8985612764565b90506128fd81612aec565b90508083836008811061291257612912615a25565b6020020152506001016128c1565b505f5b6008811015612973575f87826008811061293f5761293f615a25565b6020020151905061295c818484600881106114d0576114d0615a25565b9050612968868261274b565b955050600101612923565b506109b68483612730565b5f5f61299460016107808561077b896001612764565b90506129a08482612730565b95945050505050565b5f6129b2615789565b6129bd868285613573565b6129c98686838661371f565b6129d586868386613907565b6129e0868285613b56565b6129eb868285613d4a565b6129f78686838661408d565b612a0286828561453f565b612a0d868285614951565b612a18868285614d12565b6109b68185615012565b60605f8267ffffffffffffffff811115612a3e57612a3e615a39565b604051908082528060200260200182016040528015612a67578160200160208202803683370190505b50905083815f81518110612a7d57612a7d615a25565b602090810291909101015260015b83811015612ae457612abf82612aa26001846159d8565b81518110612ab257612ab2615a25565b6020026020010151612cbb565b828281518110612ad157612ad1615a25565b6020908102919091010152600101612a8b565b509392505050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f516020615c8a5f395f51905f520360808201525f516020615c8a5f395f51905f5260a082015260205f60c08360055afa80612b48575f5ffd5b505f51608091909101604052949350505050565b60605f8267ffffffffffffffff811115612b7857612b78615a39565b604051908082528060200260200182016040528015612ba1578160200160208202803683370190505b509050825b8015612cb0575f85612bb96001846159d8565b81518110612bc957612bc9615a25565b602002602001015190505f89600184612be291906159d8565b601c8110612bf257612bf2615a25565b602002015190505f612c4d612c11612c0a858d612730565b6002612730565b61079e8b612c206001896159d8565b601c8110612c3057612c30615a25565b602002015161077b612c478861077b60018a612764565b87612764565b9050612c6e8161077b610b35612c688761077b600189612764565b8661274b565b99508990508085612c806001876159d8565b81518110612c9057612c90615a25565b60200260200101818152505050505080612ca990615ba4565b9050612ba6565b509695505050505050565b5f6127458283612730565b604080518082019091525f80825260208201525f612d057f000000000000000000000000000000000000000000000000000000000000000060246159eb565b612d109060026159eb565b90505f5b81811015612d4657612d3e858281518110612d3157612d31615a25565b6020026020010151612f11565b600101612d14565b50604051600190815b60018401811015612dab5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612d4f565b5080518452602081015160208501525080612dd9576040516352ec174560e11b815260040160405180910390fd5b505092915050565b604080518082019091525f80825260208201525f516020615c6a5f395f51905f5282602001515f516020615c6a5f395f51905f52612e1f91906159d8565b612e299190615a82565b60208301525090565b5f5f5f612e3e86612ea8565b91509150612e4a615804565b82518152602080840151818301528251604080840191909152838201516060840152875160808401528782015160a0840152865160c08401528682015160e084015251612e9d9161221d91849101615bb9565b979650505050505050565b6040805180820182525f808252602080830182815284518086018652838152808301938452865192870151608890811b9093178552948601516060870151831b179052608085015160a0860151821b17845260c085015160e090950151901b9093179092529091565b805160208201515f5f516020615c6a5f395f51905f528380095f516020615c6a5f395f51905f5260035f516020615c6a5f395f51905f52838709085f516020615c6a5f395f51905f528485091491505080612fae5760405162461bcd60e51b815260206004820152601960248201527f706f696e74206973206e6f74206f6e207468652063757276650000000000000060448201526064016100e5565b50505050565b604080518082019091525f8082526020820152604080518082019091525f8082526020820152612fe4838661506b565b90506129a081856150d7565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516131869190615bed565b5f60405180830381855afa9150503d805f81146131be576040519150601f19603f3d011682016040523d82523d5f602084013e6131c3565b606091505b50915091508180156109b65750808060200190518101906109b69190615c03565b5f80806131f28460016159eb565b6131fd9060066159eb565b67ffffffffffffffff81111561321557613215615a39565b60405190808252806020026020018201604052801561323e578160200160208202803683370190505b509050845f1b815f8151811061325657613256615a25565b60209081029190910101525f5b61326e6008866159d8565b8110156132bf5787878281811061328757613287615a25565b905060200201358282600161329c91906159eb565b815181106132ac576132ac615a25565b6020908102919091010152600101613263565b505f5b60088110156133305788516132ea9082600881106132e2576132e2615a25565b602002015190565b828260086132f98960016159eb565b61330391906159d8565b61330d91906159eb565b8151811061331d5761331d615a25565b60209081029190910101526001016132c2565b50602088015151816133438660016159eb565b8151811061335357613353615a25565b602090810291909101810191909152888101510151816133748660016159eb565b61337f9060016159eb565b8151811061338f5761338f615a25565b6020908102919091010152604088015151816133ac8660016159eb565b6133b79060026159eb565b815181106133c7576133c7615a25565b60209081029190910181019190915260408901510151816133e98660016159eb565b6133f49060036159eb565b8151811061340457613404615a25565b6020908102919091010152606088015151816134218660016159eb565b61342c9060046159eb565b8151811061343c5761343c615a25565b602090810291909101810191909152606089015101518161345e8660016159eb565b6134699060056159eb565b8151811061347957613479615a25565b6020026020010181815250506134998160405160200161221d9190615b3c565b91506134a48261353a565b50989197509095505050505050565b5f5f5f6134be615823565b85815260c0858101805151602080850191909152905181015160408085019190915260e08801805151606086015251820151608080860191909152880180515160a0860152518201519284019290925290516135209161221d91849101615c22565b915061352b8261353a565b90979096509194509092505050565b5f80826f7fffffffffffffffffffffffffffffff8116607f82901c61355e8261278c565b94506135698161278c565b9350505050915091565b5f61357f84600761514e565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f6135e06135da6135b4856003612764565b61077b6135cf6135c48b5f61514e565b61077b8c601d61514e565b61077b8b601c61514e565b83612730565b905061366161365661363d61362461360b856107806136008d600261514e565b61077b8e601c61514e565b6107806136198c600361514e565b61077b8d601d61514e565b6107806136328b600461514e565b61077b8c601e61514e565b61078061364b8a600561514e565b61077b8b601f61514e565b61078088600161514e565b905061368081610780613675866001612764565b61077b8a602761514e565b905061368c8184612730565b90506136988185612730565b8552505f90506136d26136c86136bd6136b288601c61514e565b61078089601f61514e565b61079e88602461514e565b610780875f61514e565b90506136e38161077b846002612764565b90506136f48161077b846001612764565b90506137008183612730565b905061370c8184612730565b9050808460015b60200201525050505050565b5f5f5f61375561374b61373389601c61514e565b6107806137418b601261514e565b8a60200151612730565b876040015161274b565b905061378e8161077b61378461376c8b601d61514e565b61078061377a8d601361514e565b8c60200151612730565b896040015161274b565b90506137b38161077b6137846137a58b601e61514e565b61078061377a8d601461514e565b90506137d88161077b6137846137ca8b601f61514e565b61078061377a8d601561514e565b92505f90506137fc61374b6137ee89601c61514e565b6107806137418b600e61514e565b90506138218161077b6137846138138b601d61514e565b61078061377a8d600f61514e565b90506138468161077b6137846138388b601e61514e565b61078061377a8d601061514e565b905061386b8161077b61378461385d8b601f61514e565b61078061377a8d601161514e565b91505f905061389261388c61388189602061514e565b6107808a601a61514e565b84612730565b90506138c78161079e6138c16138a98b602861514e565b6107806138b78d601b61514e565b8c60600151612730565b85612730565b90506138d38185612730565b6040860152505f6138f66138c16138eb89601b61514e565b61077b8a602861514e565b606090950194909452505050505050565b5f5f5f61391c86602001518760200151612730565b905061398061396561395761393f6139358b601661514e565b8a6040015161274b565b61078061394d8c601761514e565b8b60200151612730565b6107806138c18b601861514e565b6107806139766138c18b601961514e565b8960200151612730565b9250505f61399686602001518760200151612730565b90505f6139c36139aa6137848a601c61514e565b6107806139b88b600361514e565b61077b8c602461514e565b90505f6139ec6139d48a601d61514e565b6107806139e18c5f61514e565b61077b8d602561514e565b90505f613a166139fd8b601e61514e565b610780613a0b8d600161514e565b61077b8e602661514e565b9050613a51613a3a613a3085610780868e60200151612730565b6107808488612730565b61078061377a613a4b8e600461514e565b88612730565b9450505050505f613a6661388c88602161514e565b90505f613a7761388c89602161514e565b90505f613aaf613a96613a8b8b602361514e565b6107808c600661514e565b61079e613aa48c602361514e565b61077b8d600661514e565b90505f613ad3613acd613ac28789612730565b61077b8d602161514e565b83612764565b9050613adf8188612730565b90505f613b07613af9613af38d600661514e565b87612730565b61079e613af38e602261514e565b90505f613b158c602361514e565b90505f613b25613acd8384612730565b60808c0185905260a08c018490529050613b3f818b612730565b8b6006602002015250505050505050505050505050565b5f613b625f6001612764565b90505f613b705f6002612764565b90505f613b7e5f6003612764565b90505f613b9a613b8f88601d61514e565b61079e89601c61514e565b90505f613bb6613bab89601e61514e565b61079e8a601d61514e565b90505f613bd2613bc78a601f61514e565b61079e8b601e61514e565b90505f613bee613be38b602461514e565b61079e8c601f61514e565b905083613bff8161077b818b61274b565b9050613c0f8161077b878a61274b565b9050613c1f8161077b878961274b565b9050613c308161077b8d600861514e565b9050613c3c818a612730565b60e08b01525082613c518161077b818b61274b565b9050613c618161077b868a61274b565b9050613c718161077b868961274b565b9050613c828161077b8d600861514e565b9050613c8e818a612730565b6101008b01525081613ca48161077b818b61274b565b9050613cb48161077b858a61274b565b9050613cc48161077b858961274b565b9050613cd58161077b8d600861514e565b9050613ce1818a612730565b6101208b01525080613cf78161077b818b61274b565b9050613d078161077b848a61274b565b9050613d178161077b848961274b565b9050613d288161077b8d600861514e565b9050613d34818a612730565b610140909a019990995250505050505050505050565b613d836040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613d8e84601d61514e565b8152613d9b84601e61514e565b6020820152613dab84602461514e565b6040820152613dbb84602761514e565b6060820152613dcb84602661514e565b6080820152613ddb84602561514e565b60a08201525f613dec85600261514e565b90505f613df9865f61514e565b90505f613e0d8460400151855f0151612764565b90505f613e2285602001518660200151612730565b606086015190915086905f90613e389080612730565b90505f613e50613a4b89602001518a60600151612730565b90505f613e6f613e688a60a001518b6040015161274b565b8a5161274b565b9050613e7e613af38288612730565b9050613ea5613e9f613e99613e938487612764565b88612764565b8461274b565b8361274b565b9050613ecd613ec2613eb78387612730565b61077b8f600961514e565b61077b60018a612764565b6101608c015250505050602085015160808601515f91613eec9161274b565b90505f613f0a613f00886060015188612730565b8860200151612764565b90505f613f2e613f1a8487612730565b6107806138c18b60a001518c5f0151612764565b9050613f56613f4b613f40838c612730565b61077b8e600961514e565b61077b600189612764565b6101808b0152505f9150613f779050613f7083601161274b565b8751612730565b90505f613f84838461274b565b9050613f90818261274b565b90505f613f9e836009612730565b9050613fc7613fc161388c613fba8b60a001518c5f015161274b565b8b5161274b565b82612764565b60c089018190525f90613fe290613a4b90613eb7908d612730565b9050613ff58b600b60200201518261274b565b6101608c0152505086515f925061401c9150613f7090614015908061274b565b885161274b565b90505f61405c6140378361077b8a5f01518b60a00151612764565b602089015161079e9061404a908061274b565b61077b8b602001518c6080015161274b565b905061407989600c6020020151610780613a4b613eb7858d612730565b89600c602002015250505050505050505050565b6140f7604051806101e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b83515f906141059080612730565b90505f61411582875f0151612730565b905061412b61412588601e61514e565b82612730565b808452614140906107806138c18a601d61514e565b80845261415c906107806141558a601c61514e565b8951612730565b80845261416e9061078089600161514e565b808452602084018190526141879061079e89601f61514e565b8352614197613b8f88602461514e565b60808401526141b56141aa88602761514e565b61079e89601f61514e565b606084015260808301516141ce9061077b816001612764565b6101c0840152608083015161420e90614204906141fd9061077b60015f516020615c8a5f395f51905f526159d8565b600161274b565b8460600151612730565b60a08401819052614244906142369061077b61422b8b600261514e565b61077b8c600361514e565b61077b613af38a600a61514e565b85600e60200201526101c0830151614268906142369061077b61422b8b600261514e565b6101e0860152825161428d9061077b6142828a600261514e565b61077b8b600361514e565b6101208401525f6142ac6142a289601f61514e565b8560200151612764565b90506142bd8161077b836001612764565b60e08501526142d06135da89602661514e565b604085018190526142ef906107806142e98b602561514e565b86612730565b6040850181905261430f906107806143088b602461514e565b8a51612730565b604085015261432c61432289602761514e565b8560400151612764565b60408501525f614340613bc78a602661514e565b905061439261436d6135da6141fd886080015160015f516020615c8a5f395f51905f5261077b91906159d8565b61077b6141fd886040015160015f516020615c8a5f395f51905f5261077b91906159d8565b60c086015260408501516143b4906143aa9080612730565b8660400151612764565b61010086015260c08501516143e6906143d29061077b8c600461514e565b61077b6143e08c600a61514e565b89612730565b6102008801526101c0850151614405906143d29061077b8c600461514e565b610220880152610100850151614424906143d29061077b8c600461514e565b61024088015260e085015161443e9061077b8b600461514e565b61014086015261445d6144528a602561514e565b61079e8b601d61514e565b610160860152608085015161449b90613bc790614490906141fd9061077b60015f516020615c8a5f395f51905f526159d8565b876101600151612730565b61018086018190526101208601516101a087018190526144d2916107809061077b6144c78e600561514e565b61077b8f600261514e565b6101a0860181905285516144f291906107809061077b6144c78e5f61514e565b6101a0860181905261014086015161450a919061274b565b6101a086018190526145249061077b6143e08c600a61514e565b6101a0860181905287600d6020020152505050505050505050565b6145786040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6145ad61459461458986601c61514e565b61077b87602561514e565b6107806145a287602461514e565b61077b88601d61514e565b81526145f26145e76145ce6145c387601c61514e565b61077b88601f61514e565b6107806145dc88601d61514e565b61077b89601e61514e565b61079e86602661514e565b6040820181905261460790600160441b612730565b6040820181905261461d9061079e86602761514e565b604082018190528151614630919061274b565b604082018190526146469061077b86600561514e565b6040820152805161465b90600160441b612730565b80825261467b9061078061467087602461514e565b61077b88602561514e565b808252602082018190526146a29061079e61469787601e61514e565b61078088601f61514e565b602082018190526146b89061077b86600461514e565b60208201528051606082018190526146d59061078086601f61514e565b606082018190526146f99061079e6146ee87602661514e565b61078088602761514e565b6060820181905261470e9061077b865f61514e565b8160600181815250505f61473761472d8360200151846040015161274b565b836060015161274b565b90506147488161077b87600361514e565b905061476061475886602561514e565b614000612730565b608083018190526147769061078087602461514e565b6080830181905261478990614000612730565b6080830181905261479f9061078087601e61514e565b608083018190526147b290614000612730565b608083018190526147c89061078087601d61514e565b608083018190526147db90614000612730565b608083018190526147f19061078087601c61514e565b608083018190526148079061079e87601f61514e565b6080830181905261481d9061077b87600561514e565b608083015261483061475886602661514e565b60a083018190526148469061078087602561514e565b60a0830181905261485990614000612730565b60a0830181905261486f9061078087602461514e565b60a0830181905261488290614000612730565b60a083018190526148989061078087601f61514e565b60a083018190526148ab90614000612730565b60a083018190526148c19061078087601e61514e565b60a083018190526148d79061079e87602761514e565b60a083018190526148ec9061077b875f61514e565b60a0830181905260808301515f91614904919061274b565b90506149158161077b88600461514e565b9050614921828261274b565b60c0840181905261493a9061077b613af389600b61514e565b60c084018190528560136020020152505050505050565b6149c76040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6149e06149d585601c61514e565b61078086600261514e565b81526149fb6149f085601d61514e565b61078086600361514e565b6020820152614a19614a0e85601e61514e565b61078086600461514e565b6040820152614a37614a2c85601f61514e565b61078086600561514e565b60608201528051614a6990614a6290614a5b90614a549080612730565b8451612730565b8351612730565b8251612730565b60808201526020810151614aa790614a9d90614a9390614a899080612730565b8460200151612730565b8360200151612730565b8260200151612730565b60a08201526040810151614ae590614adb90614ad190614ac79080612730565b8460400151612730565b8360400151612730565b8260400151612730565b60c08201526060810151614b1990614b0f90614b05906142049080612730565b8360600151612730565b8260600151612730565b60e0820152608081015160a0820151614b32919061274b565b61010082015260c081015160e0820151614b4c919061274b565b61012082015260a0810151614b7090614b65908061274b565b82610120015161274b565b61014082015260e0810151614b9490614b89908061274b565b82610100015161274b565b610160820152610120810151614baa908061274b565b6101e08201819052614bcb90614bc0908061274b565b82610160015161274b565b6101e0820152610100810151614be1908061274b565b6101a08201819052614c0290614bf7908061274b565b82610140015161274b565b6101a08201819052610160820151614c199161274b565b6101808201526101408101516101e0820151614c35919061274b565b6101c0820152614c496135da85600c61514e565b6102008201819052610280840151610180830151614c74926107809161077b9061079e8a602461514e565b8360146020020152614ca4836015602002015161078083610200015161077b856101a0015161079e8a602561514e565b8360156020020152614cd4836016602002015161078083610200015161077b856101c0015161079e8a602661514e565b8360166020020152614d04836017602002015161078083610200015161077b856101e0015161079e8a602761514e565b836017602002015250505050565b614d646040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f6040518060800160405280614d997f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7612718565b8152602001614dc77f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b612718565b8152602001614df47e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15612718565b8152602001614e227f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b612718565b90529050614e3f614e3486601c61514e565b61078087600261514e565b6101208301819052614e7e90614e7390614e6890614e5d9080612730565b856101200151612730565b846101200151612730565b836101200151612730565b8252614e8b85601d61514e565b6020830152614e9b85601e61514e565b6040830152614eab85601f61514e565b606083015281516020830151614ed39161472d91614ec9919061274b565b846040015161274b565b6080830152614ee661388c86600d61514e565b6101408301528151614f0790614efd90835f6114d0565b836080015161274b565b60a0830152614f33846018602002015161078084610140015161077b8660a0015161079e8b602461514e565b6103008501526020820151614f4e90614efd908360016114d0565b60c0830152614f7a846019602002015161078084610140015161077b8660c0015161079e8b602561514e565b6103208501526040820151614f9590614efd908360026114d0565b60e0830152614fc184601a602002015161078084610140015161077b8660e0015161079e8b602661514e565b6103408501526060820151614fdc90614efd908360036114d0565b61010083015261500a84601b602002015161078084610140015161077b86610100015161079e8b602761514e565b84601b613713565b815160015b601c8110156150645761505a826107808684601c811061503957615039615a25565b60200201518661504a6001876159d8565b601b81106114d0576114d0615a25565b9150600101615017565b5092915050565b604080518082019091525f8082526020820152604080518082019091525f8082526020820152604051835181526020840151602082015284604082015260408160608360075afa806150bb575f5ffd5b5080518252602080820151908301526060016040529392505050565b604080518082019091525f8082526020820152604080518082019091525f80825260208201526040518451815260208501516020820152835160408201526020840151606082015260408160808360065afa80615132575f5ffd5b5080518252602080820151908301526080016040529392505050565b5f8282602881111561516257615162615c55565b6029811061517257615172615a25565b60200201519392505050565b604051806103e001604052805f81526020015f81526020015f81526020016151b760405180604001604052805f81526020015f81525090565b81526020016151d760405180604001604052805f81526020015f81525090565b81526020016151f760405180604001604052805f81526020015f81525090565b815260200161521760405180604001604052805f81526020015f81525090565b815260200161523760405180604001604052805f81526020015f81525090565b815260200161525760405180604001604052805f81526020015f81525090565b815260200161527760405180604001604052805f81526020015f81525090565b815260200161529760405180604001604052805f81526020015f81525090565b81526020016152b760405180604001604052805f81526020015f81525090565b81526020016152d760405180604001604052805f81526020015f81525090565b81526020016152f760405180604001604052805f81526020015f81525090565b815260200161531760405180604001604052805f81526020015f81525090565b815260200161533760405180604001604052805f81526020015f81525090565b815260200161535760405180604001604052805f81526020015f81525090565b815260200161537760405180604001604052805f81526020015f81525090565b815260200161539760405180604001604052805f81526020015f81525090565b81526020016153b760405180604001604052805f81526020015f81525090565b81526020016153d760405180604001604052805f81526020015f81525090565b81526020016153f760405180604001604052805f81526020015f81525090565b815260200161541760405180604001604052805f81526020015f81525090565b815260200161543760405180604001604052805f81526020015f81525090565b815260200161545760405180604001604052805f81526020015f81525090565b815260200161547760405180604001604052805f81526020015f81525090565b815260200161549760405180604001604052805f81526020015f81525090565b81526020016154b760405180604001604052805f81526020015f81525090565b81526020016154d760405180604001604052805f81526020015f81525090565b81526020016154f760405180604001604052805f81526020015f81525090565b815260200161551760405180604001604052805f81526020015f81525090565b905290565b604051806101e00160405280615530615804565b815260200161555060405180604001604052805f81526020015f81525090565b815260200161557060405180604001604052805f81526020015f81525090565b815260200161559060405180604001604052805f81526020015f81525090565b81526020016155b060405180604001604052805f81526020015f81525090565b81526020016155d060405180604001604052805f81526020015f81525090565b81526020016155f060405180604001604052805f81526020015f81525090565b815260200161561060405180604001604052805f81526020015f81525090565b815260200161563060405180604001604052805f81526020015f81525090565b815260200161563d615841565b815260200161564a61586f565b815260200161565761588e565b81526020016154d7615789565b60405180610100016040528061569760405180608001604052805f81526020015f81526020015f81526020015f81525090565b81526020016156a461574c565b81526020016156b1615789565b81526020016156be615789565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f815260200161571a6158c7565b81526020016157276158c7565b81526020015f81526020015f81526020015f81526020015f8152602001606081525090565b604051806103600160405280601b906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806105400160405280602a906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b604051806103800160405280601c905b615859615804565b8152602001906001900390816158515790505090565b6040518061052001604052806029906020820280368337509192915050565b604051806103600160405280601b905b604080518082019091525f808252602082015281526020019060019003908161589e5790505090565b60405180608001604052806004906020820280368337509192915050565b5f5f5f5f604085870312156158f8575f5ffd5b843567ffffffffffffffff81111561590e575f5ffd5b8501601f8101871361591e575f5ffd5b803567ffffffffffffffff811115615934575f5ffd5b876020828401011115615945575f5ffd5b60209182019550935085013567ffffffffffffffff811115615965575f5ffd5b8501601f81018713615975575f5ffd5b803567ffffffffffffffff81111561598b575f5ffd5b8760208260051b840101111561599f575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417612745576127456159ad565b81810381811115612745576127456159ad565b80820180821115612745576127456159ad565b5f5f85851115615a0c575f5ffd5b83861115615a18575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b5f60018201615a5e57615a5e6159ad565b5060010190565b80356020831015612745575f19602084900360031b1b1692915050565b5f82615a9c57634e487b7160e01b5f52601260045260245ffd5b500690565b5f8183825b6005811015615ac5578151835260209283019290910190600101615aa6565b50505060a08201905092915050565b5f8183825b6009811015615af8578151835260209283019290910190600101615ad9565b5050506101208201905092915050565b5f8183825b602a811015615b2c578151835260209283019290910190600101615b0d565b5050506105408201905092915050565b81515f90829060208501835b82811015615b66578151845260209384019390910190600101615b48565b509195945050505050565b5f8183825b6003811015615b95578151835260209283019290910190600101615b76565b50505060608201905092915050565b5f81615bb257615bb26159ad565b505f190190565b5f8183825b6008811015615bdd578151835260209283019290910190600101615bbe565b5050506101008201905092915050565b5f82518060208501845e5f920191825250919050565b5f60208284031215615c13575f5ffd5b81518015158114610333575f5ffd5b5f8183825b6007811015615c46578151835260209283019290910190600101615c27565b50505060e08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220bb551b63faf3bcc45955d63161945b29a2216ffcd1742eac2a726a6312f1312464736f6c634300081e0033";
5
5
  /**
6
6
  * HonkVerifier link references.
7
7
  */
8
8
  export declare const HonkVerifierLinkReferences: {};
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSG9ua1ZlcmlmaWVyQnl0ZWNvZGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Ib25rVmVyaWZpZXJCeXRlY29kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGVBQU8sTUFBTSxvQkFBb0IsbW8rQ0FBbW8rQyxDQUFDO0FBQ3JxK0M7O0dBRUc7QUFDSCxlQUFPLE1BQU0sMEJBQTBCLElBQWMsQ0FBQyJ9
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSG9ua1ZlcmlmaWVyQnl0ZWNvZGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Ib25rVmVyaWZpZXJCeXRlY29kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGVBQU8sTUFBTSxvQkFBb0IsaTQ5Q0FBaTQ5QyxDQUFDO0FBQ242OUM7O0dBRUc7QUFDSCxlQUFPLE1BQU0sMEJBQTBCLElBQWMsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"HonkVerifierBytecode.d.ts","sourceRoot":"","sources":["../src/HonkVerifierBytecode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB,mo+CAAmo+C,CAAC;AACrq+C;;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,i49CAAi49C,CAAC;AACn69C;;GAEG;AACH,eAAO,MAAM,0BAA0B,IAAc,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * HonkVerifier bytecode.
3
- */ export const HonkVerifierBytecode = "0x610100604052348015610010575f5ffd5b506301000000608052601860a0527f14df98df2670d6b3040164748f97485945b94d6558c54e148cf7cc5f64f0d1f860c05260af60e05260805160a05160c05160e051615d606100de5f395f818161018101526107ae01525f61016001525f8181605b01528181609401528181610101015281816101a2015281816108c7015281816109d401528181610a0001528181610a7b015281816112d401528181611374015281816115c30152818161160f0152818161165d015281816116b40152612cde01525f5050615d605ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004615966565b610054565b604051901515815260200160405180910390f35b5f5f61007f7f000000000000000000000000000000000000000000000000000000000000000061028c565b905061008c816020615a42565b85146100ee577f0000000000000000000000000000000000000000000000000000000000000000856100bf836020615a42565b6040516359895a5360e01b81526004810193909352602483019190915260448201526064015b60405180910390fd5b5f6100f761033a565b90505f61012588887f000000000000000000000000000000000000000000000000000000000000000061034f565b9050601082604001516101389190615a59565b85146101575760405163fa06659360e01b815260040160405180910390fd5b5f6101c68288887f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006106a6565b90506102168787808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152505085518551602081015160409091015191935091506001610758565b8151606001525f61022783836108bf565b905080610247576040516313f8744360e31b815260040160405180910390fd5b5f6102538486856109c0565b905080610273576040516352ec174560e11b815260040160405180910390fd5b81801561027d5750805b9b9a5050505050505050505050565b5f8061029a60026008615a42565b905060016102a9600885615a42565b6102b39190615a42565b6102bd9082615a6c565b90506102cb60016029615a42565b6102d59082615a6c565b905060026102e4600185615a59565b6102ee9190615a42565b6102f89082615a6c565b9050610305600184615a42565b61030f9082615a6c565b905061031c600280615a42565b6103269082615a6c565b9050610333601082615a6c565b9392505050565b6103426151e0565b61034a611786565b905090565b61035761557e565b5f805b60108110156103b957610386868387610374602083615a6c565b9261038193929190615a7f565b6120c0565b8351826010811061039957610399615aa6565b6020020181815250506020826103af9190615a6c565b915060010161035a565b506103dd8582866103cb604083615a6c565b926103d893929190615a7f565b6120d3565b60208301526103ed604082615a6c565b90506104008582866103cb604083615a6c565b6040808401919091526104139082615a6c565b90506104268582866103cb604083615a6c565b6060830152610436604082615a6c565b90506104498582866103cb604083615a6c565b60c0830152610459604082615a6c565b905061046c8582866103cb604083615a6c565b60e083015261047c604082615a6c565b905061048f8582866103cb604083615a6c565b608083015261049f604082615a6c565b90506104b28582866103cb604083615a6c565b6101008301526104c3604082615a6c565b90506104d68582866103cb604083615a6c565b60a08301526104e6604082615a6c565b90505f5b83811015610564575f5b600881101561055b5761050e878488610374602083615a6c565b84610120015183601c811061052557610525615aa6565b6020020151826008811061053b5761053b615aa6565b6020020181815250506020836105519190615a6c565b92506001016104f4565b506001016104ea565b505f5b60298110156105b857610581868387610374602083615a6c565b836101400151826029811061059857610598615aa6565b6020020181815250506020826105ae9190615a6c565b9150600101610567565b505f5b6105c6600185615a59565b81101561060f576105de8683876103cb604083615a6c565b83610160015182601b81106105f5576105f5615aa6565b6020020152610605604083615a6c565b91506001016105bb565b505f5b838110156106625761062b868387610374602083615a6c565b83610180015182601c811061064257610642615aa6565b6020020181815250506020826106589190615a6c565b9150600101610612565b506106748582866103cb604083615a6c565b6101a0830152610685604082615a6c565b90506106988582866103cb604083615a6c565b6101c0830152509392505050565b6106ae6156c6565b5f6106bd888888888886612160565b90835290506106cc81896121c3565b602084019190915290506106e081846122b2565b604084019190915290506106f5888285612341565b606084019190915290506107098882612415565b6080840191909152905061071e8882856124a0565b60a08401919091529050610733888285612615565b60c0840191909152905061074788826126da565b5060e0830152509695505050505050565b5f60018082610785866107808961077b6107768a6310000000615a6c565b612717565b61272f565b61274a565b90505f6107a38761079e8a61077b6107768b6001615a6c565b612763565b90505f5b6107d260107f0000000000000000000000000000000000000000000000000000000000000000615a59565b81101561083f575f6107fc8c83815181106107ef576107ef615aa6565b602002602001015161278b565b905061080c8661077b868461274a565b955061081c8561077b858461274a565b9450610828848b61274a565b9350610834838b612763565b9250506001016107a7565b505f5b60108110156108a6575f8a826010811061085e5761085e615aa6565b602002015190506108738661077b868461274a565b95506108838561077b858461274a565b945061088f848b61274a565b935061089b838b612763565b925050600101610842565b506108b184846127a0565b9a9950505050505050505050565b5f806001815b7f0000000000000000000000000000000000000000000000000000000000000000811015610996575f86610120015182601c811061090557610905615aa6565b602002015190505f61091782866127ae565b905080610937576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c811061094e5761094e615aa6565b6020020151905061095f83826127ce565b9550610986886040015185601c811061097a5761097a615aa6565b6020020151868361297d565b94505050508060010190506108c5565b505f6109b0866101400151865f01518760200151856129a8565b90508281145b9695505050505050565b5f6109c961573e565b5f6109f88460a001517f0000000000000000000000000000000000000000000000000000000000000000612a21565b90505f610a267f00000000000000000000000000000000000000000000000000000000000000006024615a6c565b610a31906002615a6c565b67ffffffffffffffff811115610a4957610a49615aba565b604051908082528060200260200182016040528015610a72578160200160208202803683370190505b5090505f610aa17f00000000000000000000000000000000000000000000000000000000000000006024615a6c565b610aac906002615a6c565b67ffffffffffffffff811115610ac457610ac4615aba565b604051908082528060200260200182016040528015610b0857816020015b604080518082019091525f8082526020820152815260200190600190039081610ae25790505b509050610b3a610b358760e00151855f81518110610b2857610b28615aa6565b6020026020010151612763565b612aeb565b84610120018181525050610b6e610b358760e00151855f81518110610b6157610b61615aa6565b602002602001015161274a565b610140850181905261012085015160c0880151610b8f92610780919061272f565b845260a0860151610bbf90610ba390612aeb565b61077b86610120015161079e8a60c0015189610140015161272f565b6020850152815160019083905f90610bd957610bd9615aa6565b602002602001018181525050876101a00151815f81518110610bfd57610bfd615aa6565b6020908102919091010152600160a08501525f60c085015283515f516020615d0b5f395f51905f5203604085015260208401515f516020615d0b5f395f51905f5203606085015260015b60248111610cea57610c6185604001518660a0015161272f565b838281518110610c7357610c73615aa6565b602002602001018181525050610cbc8560c001516107808b6101400151600185610c9d9190615a59565b60298110610cad57610cad615aa6565b60200201518860a0015161272f565b60c086015260a08501516080880151610cd5919061272f565b60a0860152610ce381615ace565b9050610c47565b505f5b6005811015610db8575f610d02601d83615a6c565b90505f610d10602484615a6c565b9050610d41858381518110610d2757610d27615aa6565b602002602001015161078089606001518a60a0015161272f565b858381518110610d5357610d53615aa6565b602002602001018181525050610d908760c001516107808d61014001518460298110610d8157610d81615aa6565b60200201518a60a0015161272f565b60c088015260a087015160808a0151610da9919061272f565b60a08801525050600101610ced565b50866060015181600181518110610dd157610dd1615aa6565b6020026020010181905250866080015181600281518110610df457610df4615aa6565b60200260200101819052508660a0015181600381518110610e1757610e17615aa6565b60200260200101819052508660c0015181600481518110610e3a57610e3a615aa6565b60200260200101819052508660e0015181600581518110610e5d57610e5d615aa6565b602002602001018190525086610100015181600681518110610e8157610e81615aa6565b602002602001018190525086610120015181600781518110610ea557610ea5615aa6565b602002602001018190525086610140015181600881518110610ec957610ec9615aa6565b602002602001018190525086610160015181600981518110610eed57610eed615aa6565b6020026020010181905250866101c0015181600a81518110610f1157610f11615aa6565b602002602001018190525086610180015181600b81518110610f3557610f35615aa6565b6020026020010181905250866101a0015181600c81518110610f5957610f59615aa6565b6020026020010181905250866101e0015181600d81518110610f7d57610f7d615aa6565b602002602001018190525086610200015181600e81518110610fa157610fa1615aa6565b602002602001018190525086610220015181600f81518110610fc557610fc5615aa6565b602002602001018190525086610240015181601081518110610fe957610fe9615aa6565b60200260200101819052508661026001518160118151811061100d5761100d615aa6565b60200260200101819052508661028001518160128151811061103157611031615aa6565b6020026020010181905250866102a001518160138151811061105557611055615aa6565b6020026020010181905250866102c001518160148151811061107957611079615aa6565b6020026020010181905250866102e001518160158151811061109d5761109d615aa6565b6020026020010181905250866103000151816016815181106110c1576110c1615aa6565b6020026020010181905250866103200151816017815181106110e5576110e5615aa6565b60200260200101819052508661034001518160188151811061110957611109615aa6565b60200260200101819052508661036001518160198151811061112d5761112d615aa6565b602002602001018190525086610380015181601a8151811061115157611151615aa6565b6020026020010181905250866103a0015181601b8151811061117557611175615aa6565b6020026020010181905250866103c0015181601c8151811061119957611199615aa6565b6020026020010181905250876020015181601d815181106111bc576111bc615aa6565b6020026020010181905250876040015181601e815181106111df576111df615aa6565b6020026020010181905250876060015181601f8151811061120257611202615aa6565b602002602001018190525087608001518160208151811061122557611225615aa6565b60200260200101819052508760a001518160218151811061124857611248615aa6565b60200260200101819052508761010001518160228151811061126c5761126c615aa6565b60200260200101819052508760c001518160238151811061128f5761128f615aa6565b60200260200101819052508760e00151816024815181106112b2576112b2615aa6565b60200260200101819052505f6112f887606001518660c001518b6101800151877f0000000000000000000000000000000000000000000000000000000000000000612b5b565b9050611322815f8151811061130f5761130f615aa6565b602002602001015186610120015161272f565b608086018190526101808a01515160c0890151611353929161078091611348919061272f565b88610140015161272f565b608086015260c087015161136690612cba565b60a08601525f5b61139860017f0000000000000000000000000000000000000000000000000000000000000000615a59565b8110156115a7576113c8610b358960e00151878460016113b89190615a6c565b81518110610b2857610b28615aa6565b61012087015260e08801516113f790610b3590876113e7856001615a6c565b81518110610b6157610b61615aa6565b61014087015260a0860151610120870151611412919061272f565b61016087015260a086015160c089015161143a9161142f9161272f565b87610140015161272f565b610180870181905261146f905f516020615d0b5f395f51905f52036101608801515f516020615d0b5f395f51905f520361274a565b848261147d60246001615a6c565b6114879190615a6c565b8151811061149757611497615aa6565b6020026020010181815250505f6114da8761018001518c61018001518460016114c09190615a6c565b601c81106114d0576114d0615aa6565b602002015161272f565b905061151481610780896101600151868660016114f79190615a6c565b8151811061150757611507615aa6565b602002602001015161272f565b905061152487608001518261274a565b608088015260a087015160c08a015161154a916115409161272f565b8a60c0015161272f565b60a08801526101608b015182601b811061156657611566615aa6565b6020020151848361157960246001615a6c565b6115839190615a6c565b8151811061159357611593615aa6565b60209081029190910101525060010161136d565b50604080518082019091526001815260026020820152826115e97f00000000000000000000000000000000000000000000000000000000000000006024615a6c565b815181106115f9576115f9615aa6565b60209081029190910101526080850151836116357f00000000000000000000000000000000000000000000000000000000000000006024615a6c565b8151811061164557611645615aa6565b60209081029190910101526101c089015180836116837f00000000000000000000000000000000000000000000000000000000000000006024615a6c565b61168e906001615a6c565b8151811061169e5761169e615aa6565b602090810291909101015260e0880151846116da7f00000000000000000000000000000000000000000000000000000000000000006024615a6c565b6116e5906001615a6c565b815181106116f5576116f5615aa6565b6020026020010181815250505f61170c8486612cc5565b90505f61171883612de0565b90505f6117298d5f01518484612e31565b90505f5f6117398f5f0151612ea7565b9150915061174682612f73565b61174f81612f73565b61175a858385613016565b9450611767848285613016565b93506117738585613052565b9f9e505050505050505050505050505050565b61178e6151e0565b50604080516103e08101825263010000008152601860208083019190915260af82840152825180840184527f1d9cb9d7cc64006646f3df3e62b599798c8c61b2c476167bd745f13cbcb336cf81527f24e6761b164d72e79971c2ca847f1bfc7963f76fb4744dbd3fbf884b9d13f816818301526060830152825180840184527f2e941d384dd60cf65119590a8dd0f73b837023432814b7d4c61a1fff5816cfdb81527f0f7add8130ab78e8060be7a64a44019567902336a55b0d134baaa7c59e8c0fc2818301526080830152825180840184527f27847eb60113003e6048d692010d2f34a6bab66abacbcd61caef29cab6d449c381527f0efd0069e03aae24e155656868bc035df2981e9fd15976796ac646416782aa538183015260a0830152825180840184527f0a5b2a5256090326a00a42163677b4829941efbc11eb19bef1b5539efd61294c81527f27a19d279cceed3879d7450443897882caf7e3581ba3353c1f78ba1e6b82ac488183015260c0830152825180840184527f028286f63006d05df4908855d06596e9340a64db1b4e01b51f396764d3515ca781527f0cdb7d89e67240094775e5741041f607a485833412e08898b56c3c05652bfe0e8183015260e0830152825180840184527f2579ebceccd9bfa3fdd390fc03ae3abf05d351b7339cf3db68861b9fd0a9d90881527f297157bfac210a90374c90cd46287129d4bd134d61b0969a7e08eca684e517df81830152610100830152825180840184527f14e11f086d7ccfc3c02ecfbc088af8a76c737f6b09014c4493310b6f43c12b1e81527f2a68571d45e0c3e4845d1b9a44e95e1d3848f411ba63e1aae95709c95667555181830152610120830152825180840184527f20b9abe371b2651322996fb63b36d13538d0c0db6f6ccbddb728721b3f5e5c9681527f0246dc1b27480f4038ec2f99f3f4c6ee65d7712e1976dd5f06188f8bb0ed49c781830152610140830152825180840184527ebef0d9b68a8330fbda054d5f7d397a7bfc315cd43688a5bf9e4a79a9cfb57281527f18a87e55ecdea0b2388e9f0e850bde15f3c508d102b4bb1e7a1b7f60cdab368681830152610160830152825180840184527f263821169579a7db7bf164508ea7b1951aae6af5732b77341ab62bbf1e445eb481527f26eb45d875b3b31dbb51c82f14091c0b6281a77c0c5ac5f7faad686301fa453081830152610180830152825180840184527f1e123d620a2d96e97adf481e65d9a1f6a7f8c41d5ef8bd31cc45ea6f80184c3d81527f2e5794a1f47815a3c0158369fb50e721ab32603fd4edb543dd1a3bd5f9cb4ae6818301526101a0830152825180840184527f053f97c8e42c90dc2b46d69775469f54e39427c5faef3e9a0db94b6bb9f831eb81527f09f90c434a3a2ee58cc00018ac8da9526ce387f97a448de1553a61d5efca293e818301526101c0830152825180840184527ec3459f447a9931225bf4741d1c9aeca29b38a105771775e41c0f8b997a8d3781527f2f073c67b0df2d38f9b9cf970173b532309414a7725bfe9b070c49a9cb0120ac818301526101e0830152825180840184527f0568f5f391b0ca1ad7d6a3a0c6ccd54d226e036169095edf2bc7e84267269a7781527f2637d9fb5c49a52121f77ef8b87cb0b6cbb647758fadb59a0fcbc36a3e4cbf8181830152610200830152825180840184527f0aedc518303b97e839f61f7e684e5841ae8d0d666e29f05419da1f986a6cef2b81527f131ed1a4df863fe4ea7f94b3d6d18d818e7ecdc30a39f4cbfb04df05a9f6f01681830152610220830152825180840184527f1fbb79e803c3e062879d9aa10a20054f46a9515b55459ff99630034f7cff656d81527f2881cf95f7536ca8aec1407af3d385fea3a24c44514900f5e0566f663c4790e881830152610240830152825180840184527f12ff283fe9460e4a0e67fe6079694a88005ee164708ed01a2e5705daa6dd1cd981527f1392475bbbaef7536ff1c546bccc3f93238232277f08b3d672e4b66fbcec138381830152610260830152825180840184527f222f6d2115dfd437c0b182f3912b74d35a4286de3353d36d8e93f1db57352b0d81527f20b55b77c275a90c61a0ddd0cadbfa4b41f35d690c9bc016a3da6f9a7e07d75e81830152610280830152825180840184527f07b7bf778a4a4f5fe35c10e8bb9e467109c368c662322deef1f6819d96983ac981527f18350deae666b24be7d654cf1437ebed2ad8d92e3359b208d186709f722e9b19818301526102a0830152825180840184527f1f15f6fd77323dab76d5af9ede42360e803af182791a91cef61f325c40b57ef381527f2cda7a98826a052e73f61bb13ca429b7cedb05d13a5fc48154caa314ab124a2e818301526102c0830152825180840184527f259b6f7636b3ee6a0db3f71518910d684dbbfa67bf1202dbfca1f584aa0abd5f81527f164fac6641a65692bf1a1bbfae3a4f67c46e825ceeb91a1b66a0ca4225a732fc818301526102e0830152825180840184527f1d0e7748f66648e20212db2fe8b9bbe8345459705b18918f2cf9dd08d35eaa0981527f092b3c3841f37b28c82c68e1ba4f97e271d61b29d9390fccfcb68b0041d991e381830152610300830152825180840184527f2194d92617bbb3ba3d9e53f4f13c5c7c6fc5ae0c56f06e0a35747f24625e576381527f11ca88979a66ada092bb26e2b64b8602eb63f6e2fc21862f6fefead2978de7e081830152610320830152825180840184527f1d346dd159688f85b77717f8197777c6ced8daf349335d74908736241f5f332881527f10e952d77959f4aa6fe9cb7222d9901d06ddfeea51240c79980d4daac814444381830152610340830152825180840184527f20b8784b739f9968d269d3db4e7e7e7e666acd5804af5ff4a54f8dfbea8d257281527f21ad5edf078583d5e29052c50b4e8d46067ddaae2aa2345c15a755074d932f9581830152610360830152825180840184527f062b31b3719d79c253d59707efcc41556e43d9f4f122ba79d3484e023fb4da7d81527f283eb52c07506637e09fb73d7875ada840d8e4c75295a90dc312b4d2571c52c38183015261038083015282518084018452600181526002818301526103a083015282518084019093527f0989b1e1b8f685966ad282d1c4bb61b585653712c257ccad59c6f098e1aa6ee083527f2be85d735fa2155cb588417ba94164a383d3adae5b70546c4bf28888aee6299f908301526103c081019190915290565b5f6103336120ce8385615ae6565b61278b565b604080518082019091525f808252602082015260408051808201909152805f516020615ceb5f395f51905f5261210c60205f8789615a7f565b61211591615ae6565b61211f9190615b03565b81526020908101905f516020615ceb5f395f51905f5290612144906040908789615a7f565b61214d91615ae6565b6121579190615b03565b90529392505050565b61218760405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f6121958888888888613246565b90835292506121a48389613515565b6040850191909152602084019190915291989197509095505050505050565b6121cb6157ae565b5f6121d46157cd565b8481526101008401805151602080840191909152905181015160408084019190915260a086018051516060850152518201516080840152516122379161221c91849101615b22565b6040516020818303038152906040528051906020012061278b565b91505f6122438361359c565b50808552905060015b6122586001601c615a59565b8110156122a8576122898561226e600184615a59565b601b811061227e5761227e615aa6565b60200201518361272f565b8582601b811061229b5761229b615aa6565b602002015260010161224c565b5050509250929050565b6122ba6157eb565b5f6122d18460405160200161221c91815260200190565b93506122dc8461359c565b50825260015b838110156123395761231a836122f9600184615a59565b601c811061230957612309615aa6565b6020020151846114c0600185615a59565b8382601c811061232c5761232c615aa6565b60200201526001016122e2565b509093915050565b6123496157eb565b5f805b8381101561240b5761235c61580a565b8581525f5b60088110156123c55787610120015183601c811061238157612381615aa6565b6020020151816008811061239757612397615aa6565b6020020151826123a8836001615a6c565b600981106123b8576123b8615aa6565b6020020152600101612361565b506123da8160405160200161221c9190615b55565b95505f6123e68761359c565b8685601c81106123f8576123f8615aa6565b602002019190915250505060010161234c565b5090949293505050565b5f5f61241f615829565b8381525f5b602981101561247257856101400151816029811061244457612444615aa6565b602002015182612455836001615a6c565b602a811061246557612465615aa6565b6020020152600101612424565b506124878160405160200161221c9190615b89565b91505f6124938361359c565b5096929550919350505050565b5f80806124ae600185615a59565b6124b9906002615a42565b6124c4906001615a6c565b67ffffffffffffffff8111156124dc576124dc615aba565b604051908082528060200260200182016040528015612505578160200160208202803683370190505b50905084815f8151811061251b5761251b615aa6565b60209081029190910101525f5b612533600186615a59565b8110156125e65786610160015181601b811061255157612551615aa6565b60200201515182612563836002615a42565b61256e906001615a6c565b8151811061257e5761257e615aa6565b60200260200101818152505086610160015181601b81106125a1576125a1615aa6565b602002015160200151828260026125b89190615a42565b6125c3906002615a6c565b815181106125d3576125d3615aa6565b6020908102919091010152600101612528565b506125fb8160405160200161221c9190615bbd565b91505f6126078361359c565b509792965091945050505050565b5f8080612623846001615a6c565b67ffffffffffffffff81111561263b5761263b615aba565b604051908082528060200260200182016040528015612664578160200160208202803683370190505b50905084815f8151811061267a5761267a615aa6565b60209081029190910101525f5b848110156125e65786610180015181601c81106126a6576126a6615aa6565b6020020151826126b7836001615a6c565b815181106126c7576126c7615aa6565b6020908102919091010152600101612687565b5f5f6126e4615848565b8381526101a085018051516020808401919091529051810151604080840191909152516124879161221c91849101615bf2565b5f5f516020615d0b5f395f51905f52825b0692915050565b5f5f516020615d0b5f395f51905f5282840990505b92915050565b5f5f516020615d0b5f395f51905f528284089392505050565b5f5f516020615d0b5f395f51905f52825f516020615d0b5f395f51905f520384089392505050565b5f5f516020615d0b5f395f51905f5282612728565b5f6103338361077b84612aeb565b815160208301515f9182916127c3919061274a565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b60088110156128b5576128ab8261077b8784612763565b9150600101612894565b506128be615866565b5f5b600881101561291f575f8482600881106128dc576128dc615aa6565b602002015190506128f18161077b8985612763565b90506128fc81612aeb565b90508083836008811061291157612911615aa6565b6020020152506001016128c0565b505f5b6008811015612972575f87826008811061293e5761293e615aa6565b6020020151905061295b818484600881106114d0576114d0615aa6565b9050612967868261274a565b955050600101612922565b506109b6848361272f565b5f5f61299360016107808561077b896001612763565b905061299f848261272f565b95945050505050565b5f6129b16157eb565b6129bc8682856135d5565b6129c886868386613781565b6129d486868386613969565b6129df868285613bb8565b6129ea868285613dac565b6129f6868683866140ef565b612a018682856145a1565b612a0c8682856149b3565b612a17868285614d74565b6109b68185615074565b60605f8267ffffffffffffffff811115612a3d57612a3d615aba565b604051908082528060200260200182016040528015612a66578160200160208202803683370190505b50905083815f81518110612a7c57612a7c615aa6565b602090810291909101015260015b83811015612ae357612abe82612aa1600184615a59565b81518110612ab157612ab1615aa6565b6020026020010151612cba565b828281518110612ad057612ad0615aa6565b6020908102919091010152600101612a8a565b509392505050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f516020615d0b5f395f51905f520360808201525f516020615d0b5f395f51905f5260a082015260205f60c08360055afa80612b47575f5ffd5b505f51608091909101604052949350505050565b60605f8267ffffffffffffffff811115612b7757612b77615aba565b604051908082528060200260200182016040528015612ba0578160200160208202803683370190505b509050825b8015612caf575f85612bb8600184615a59565b81518110612bc857612bc8615aa6565b602002602001015190505f89600184612be19190615a59565b601c8110612bf157612bf1615aa6565b602002015190505f612c4c612c10612c09858d61272f565b600261272f565b61079e8b612c1f600189615a59565b601c8110612c2f57612c2f615aa6565b602002015161077b612c468861077b60018a612763565b87612763565b9050612c6d8161077b610b35612c678761077b600189612763565b8661274a565b99508990508085612c7f600187615a59565b81518110612c8f57612c8f615aa6565b60200260200101818152505050505080612ca890615c25565b9050612ba5565b509695505050505050565b5f612744828361272f565b604080518082019091525f80825260208201525f612d047f00000000000000000000000000000000000000000000000000000000000000006024615a6c565b612d0f906002615a6c565b90505f5b81811015612d4557612d3d858281518110612d3057612d30615aa6565b6020026020010151612f73565b600101612d13565b50604051600190815b60018401811015612daa5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612d4e565b5080518452602081015160208501525080612dd8576040516352ec174560e11b815260040160405180910390fd5b505092915050565b604080518082019091525f80825260208201525f516020615ceb5f395f51905f5282602001515f516020615ceb5f395f51905f52612e1e9190615a59565b612e289190615b03565b60208301525090565b5f5f5f612e3d86612ea7565b91509150612e49615866565b82518152602080840151818301528251604080840191909152838201516060840152875160808401528782015160a0840152865160c08401528682015160e084015251612e9c9161221c91849101615c3a565b979650505050505050565b6040805180820182525f80825260208083018281528451808601865283815280830193845286519287015195870151606088015160cc90811b608892831b6044998a1b90961795909517949094178652608088015160a089015160c08a015160e08b0151871b90841b918a1b90921717179092526101008701516101208801516101408901516101608a0151861b90851b91891b909217171781526101808701516101a08801516101c08901516101e09099015190941b9790921b9290951b1717939093179092529091565b805160208201515f5f516020615ceb5f395f51905f528380095f516020615ceb5f395f51905f5260035f516020615ceb5f395f51905f52838709085f516020615ceb5f395f51905f5284850914915050806130105760405162461bcd60e51b815260206004820152601960248201527f706f696e74206973206e6f74206f6e207468652063757276650000000000000060448201526064016100e5565b50505050565b604080518082019091525f8082526020820152604080518082019091525f808252602082015261304683866150cd565b905061299f8185615139565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516131e89190615c6e565b5f60405180830381855afa9150503d805f8114613220576040519150601f19603f3d011682016040523d82523d5f602084013e613225565b606091505b50915091508180156109b65750808060200190518101906109b69190615c84565b5f8080613254846001615a6c565b61325f906006615a6c565b67ffffffffffffffff81111561327757613277615aba565b6040519080825280602002602001820160405280156132a0578160200160208202803683370190505b509050845f1b815f815181106132b8576132b8615aa6565b60209081029190910101525f5b6132d0601086615a59565b811015613321578787828181106132e9576132e9615aa6565b90506020020135828260016132fe9190615a6c565b8151811061330e5761330e615aa6565b60209081029190910101526001016132c5565b505f5b601081101561339257885161334c90826010811061334457613344615aa6565b602002015190565b8282601061335b896001615a6c565b6133659190615a59565b61336f9190615a6c565b8151811061337f5761337f615aa6565b6020908102919091010152600101613324565b50602088015151816133a5866001615a6c565b815181106133b5576133b5615aa6565b602090810291909101810191909152888101510151816133d6866001615a6c565b6133e1906001615a6c565b815181106133f1576133f1615aa6565b60209081029190910101526040880151518161340e866001615a6c565b613419906002615a6c565b8151811061342957613429615aa6565b602090810291909101810191909152604089015101518161344b866001615a6c565b613456906003615a6c565b8151811061346657613466615aa6565b602090810291909101015260608801515181613483866001615a6c565b61348e906004615a6c565b8151811061349e5761349e615aa6565b60209081029190910181019190915260608901510151816134c0866001615a6c565b6134cb906005615a6c565b815181106134db576134db615aa6565b6020026020010181815250506134fb8160405160200161221c9190615bbd565b91506135068261359c565b50989197509095505050505050565b5f5f5f613520615885565b85815260c0858101805151602080850191909152905181015160408085019190915260e08801805151606086015251820151608080860191909152880180515160a0860152518201519284019290925290516135829161221c91849101615ca3565b915061358d8261359c565b90979096509194509092505050565b5f80826f7fffffffffffffffffffffffffffffff8116607f82901c6135c08261278b565b94506135cb8161278b565b9350505050915091565b5f6135e18460076151b0565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f61364261363c613616856003612763565b61077b6136316136268b5f6151b0565b61077b8c601d6151b0565b61077b8b601c6151b0565b8361272f565b90506136c36136b861369f61368661366d856107806136628d60026151b0565b61077b8e601c6151b0565b61078061367b8c60036151b0565b61077b8d601d6151b0565b6107806136948b60046151b0565b61077b8c601e6151b0565b6107806136ad8a60056151b0565b61077b8b601f6151b0565b6107808860016151b0565b90506136e2816107806136d7866001612763565b61077b8a60276151b0565b90506136ee818461272f565b90506136fa818561272f565b8552505f905061373461372a61371f61371488601c6151b0565b61078089601f6151b0565b61079e8860246151b0565b610780875f6151b0565b90506137458161077b846002612763565b90506137568161077b846001612763565b9050613762818361272f565b905061376e818461272f565b9050808460015b60200201525050505050565b5f5f5f6137b76137ad61379589601c6151b0565b6107806137a38b60126151b0565b8a6020015161272f565b876040015161274a565b90506137f08161077b6137e66137ce8b601d6151b0565b6107806137dc8d60136151b0565b8c6020015161272f565b896040015161274a565b90506138158161077b6137e66138078b601e6151b0565b6107806137dc8d60146151b0565b905061383a8161077b6137e661382c8b601f6151b0565b6107806137dc8d60156151b0565b92505f905061385e6137ad61385089601c6151b0565b6107806137a38b600e6151b0565b90506138838161077b6137e66138758b601d6151b0565b6107806137dc8d600f6151b0565b90506138a88161077b6137e661389a8b601e6151b0565b6107806137dc8d60106151b0565b90506138cd8161077b6137e66138bf8b601f6151b0565b6107806137dc8d60116151b0565b91505f90506138f46138ee6138e38960206151b0565b6107808a601a6151b0565b8461272f565b90506139298161079e61392361390b8b60286151b0565b6107806139198d601b6151b0565b8c6060015161272f565b8561272f565b9050613935818561272f565b6040860152505f61395861392361394d89601b6151b0565b61077b8a60286151b0565b606090950194909452505050505050565b5f5f5f61397e8660200151876020015161272f565b90506139e26139c76139b96139a16139978b60166151b0565b8a6040015161274a565b6107806139af8c60176151b0565b8b6020015161272f565b6107806139238b60186151b0565b6107806139d86139238b60196151b0565b896020015161272f565b9250505f6139f88660200151876020015161272f565b90505f613a25613a0c6137e68a601c6151b0565b610780613a1a8b60036151b0565b61077b8c60246151b0565b90505f613a4e613a368a601d6151b0565b610780613a438c5f6151b0565b61077b8d60256151b0565b90505f613a78613a5f8b601e6151b0565b610780613a6d8d60016151b0565b61077b8e60266151b0565b9050613ab3613a9c613a9285610780868e6020015161272f565b610780848861272f565b6107806137dc613aad8e60046151b0565b8861272f565b9450505050505f613ac86138ee8860216151b0565b90505f613ad96138ee8960216151b0565b90505f613b11613af8613aed8b60236151b0565b6107808c60066151b0565b61079e613b068c60236151b0565b61077b8d60066151b0565b90505f613b35613b2f613b24878961272f565b61077b8d60216151b0565b83612763565b9050613b41818861272f565b90505f613b69613b5b613b558d60066151b0565b8761272f565b61079e613b558e60226151b0565b90505f613b778c60236151b0565b90505f613b87613b2f838461272f565b60808c0185905260a08c018490529050613ba1818b61272f565b8b6006602002015250505050505050505050505050565b5f613bc45f6001612763565b90505f613bd25f6002612763565b90505f613be05f6003612763565b90505f613bfc613bf188601d6151b0565b61079e89601c6151b0565b90505f613c18613c0d89601e6151b0565b61079e8a601d6151b0565b90505f613c34613c298a601f6151b0565b61079e8b601e6151b0565b90505f613c50613c458b60246151b0565b61079e8c601f6151b0565b905083613c618161077b818b61274a565b9050613c718161077b878a61274a565b9050613c818161077b878961274a565b9050613c928161077b8d60086151b0565b9050613c9e818a61272f565b60e08b01525082613cb38161077b818b61274a565b9050613cc38161077b868a61274a565b9050613cd38161077b868961274a565b9050613ce48161077b8d60086151b0565b9050613cf0818a61272f565b6101008b01525081613d068161077b818b61274a565b9050613d168161077b858a61274a565b9050613d268161077b858961274a565b9050613d378161077b8d60086151b0565b9050613d43818a61272f565b6101208b01525080613d598161077b818b61274a565b9050613d698161077b848a61274a565b9050613d798161077b848961274a565b9050613d8a8161077b8d60086151b0565b9050613d96818a61272f565b610140909a019990995250505050505050505050565b613de56040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613df084601d6151b0565b8152613dfd84601e6151b0565b6020820152613e0d8460246151b0565b6040820152613e1d8460276151b0565b6060820152613e2d8460266151b0565b6080820152613e3d8460256151b0565b60a08201525f613e4e8560026151b0565b90505f613e5b865f6151b0565b90505f613e6f8460400151855f0151612763565b90505f613e848560200151866020015161272f565b606086015190915086905f90613e9a908061272f565b90505f613eb2613aad89602001518a6060015161272f565b90505f613ed1613eca8a60a001518b6040015161274a565b8a5161274a565b9050613ee0613b55828861272f565b9050613f07613f01613efb613ef58487612763565b88612763565b8461274a565b8361274a565b9050613f2f613f24613f19838761272f565b61077b8f60096151b0565b61077b60018a612763565b6101608c015250505050602085015160808601515f91613f4e9161274a565b90505f613f6c613f6288606001518861272f565b8860200151612763565b90505f613f90613f7c848761272f565b6107806139238b60a001518c5f0151612763565b9050613fb8613fad613fa2838c61272f565b61077b8e60096151b0565b61077b600189612763565b6101808b0152505f9150613fd99050613fd283601161274a565b875161272f565b90505f613fe6838461274a565b9050613ff2818261274a565b90505f61400083600961272f565b90506140296140236138ee61401c8b60a001518c5f015161274a565b8b5161274a565b82612763565b60c089018190525f9061404490613aad90613f19908d61272f565b90506140578b600b60200201518261274a565b6101608c0152505086515f925061407e9150613fd290614077908061274a565b885161274a565b90505f6140be6140998361077b8a5f01518b60a00151612763565b602089015161079e906140ac908061274a565b61077b8b602001518c6080015161274a565b90506140db89600c6020020151610780613aad613f19858d61272f565b89600c602002015250505050505050505050565b614159604051806101e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b83515f90614167908061272f565b90505f61417782875f015161272f565b905061418d61418788601e6151b0565b8261272f565b8084526141a2906107806139238a601d6151b0565b8084526141be906107806141b78a601c6151b0565b895161272f565b8084526141d0906107808960016151b0565b808452602084018190526141e99061079e89601f6151b0565b83526141f9613bf18860246151b0565b608084015261421761420c8860276151b0565b61079e89601f6151b0565b606084015260808301516142309061077b816001612763565b6101c08401526080830151614270906142669061425f9061077b60015f516020615d0b5f395f51905f52615a59565b600161274a565b846060015161272f565b60a084018190526142a6906142989061077b61428d8b60026151b0565b61077b8c60036151b0565b61077b613b558a600a6151b0565b85600e60200201526101c08301516142ca906142989061077b61428d8b60026151b0565b6101e086015282516142ef9061077b6142e48a60026151b0565b61077b8b60036151b0565b6101208401525f61430e61430489601f6151b0565b8560200151612763565b905061431f8161077b836001612763565b60e085015261433261363c8960266151b0565b604085018190526143519061078061434b8b60256151b0565b8661272f565b604085018190526143719061078061436a8b60246151b0565b8a5161272f565b604085015261438e6143848960276151b0565b8560400151612763565b60408501525f6143a2613c298a60266151b0565b90506143f46143cf61363c61425f886080015160015f516020615d0b5f395f51905f5261077b9190615a59565b61077b61425f886040015160015f516020615d0b5f395f51905f5261077b9190615a59565b60c086015260408501516144169061440c908061272f565b8660400151612763565b61010086015260c0850151614448906144349061077b8c60046151b0565b61077b6144428c600a6151b0565b8961272f565b6102008801526101c0850151614467906144349061077b8c60046151b0565b610220880152610100850151614486906144349061077b8c60046151b0565b61024088015260e08501516144a09061077b8b60046151b0565b6101408601526144bf6144b48a60256151b0565b61079e8b601d6151b0565b61016086015260808501516144fd90613c29906144f29061425f9061077b60015f516020615d0b5f395f51905f52615a59565b87610160015161272f565b61018086018190526101208601516101a08701819052614534916107809061077b6145298e60056151b0565b61077b8f60026151b0565b6101a08601819052855161455491906107809061077b6145298e5f6151b0565b6101a0860181905261014086015161456c919061274a565b6101a086018190526145869061077b6144428c600a6151b0565b6101a0860181905287600d6020020152505050505050505050565b6145da6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61460f6145f66145eb86601c6151b0565b61077b8760256151b0565b6107806146048760246151b0565b61077b88601d6151b0565b815261465461464961463061462587601c6151b0565b61077b88601f6151b0565b61078061463e88601d6151b0565b61077b89601e6151b0565b61079e8660266151b0565b6040820181905261466990600160441b61272f565b6040820181905261467f9061079e8660276151b0565b604082018190528151614692919061274a565b604082018190526146a89061077b8660056151b0565b604082015280516146bd90600160441b61272f565b8082526146dd906107806146d28760246151b0565b61077b8860256151b0565b808252602082018190526147049061079e6146f987601e6151b0565b61078088601f6151b0565b6020820181905261471a9061077b8660046151b0565b60208201528051606082018190526147379061078086601f6151b0565b6060820181905261475b9061079e6147508760266151b0565b6107808860276151b0565b606082018190526147709061077b865f6151b0565b8160600181815250505f61479961478f8360200151846040015161274a565b836060015161274a565b90506147aa8161077b8760036151b0565b90506147c26147ba8660256151b0565b61400061272f565b608083018190526147d8906107808760246151b0565b608083018190526147eb9061400061272f565b608083018190526148019061078087601e6151b0565b608083018190526148149061400061272f565b6080830181905261482a9061078087601d6151b0565b6080830181905261483d9061400061272f565b608083018190526148539061078087601c6151b0565b608083018190526148699061079e87601f6151b0565b6080830181905261487f9061077b8760056151b0565b60808301526148926147ba8660266151b0565b60a083018190526148a8906107808760256151b0565b60a083018190526148bb9061400061272f565b60a083018190526148d1906107808760246151b0565b60a083018190526148e49061400061272f565b60a083018190526148fa9061078087601f6151b0565b60a0830181905261490d9061400061272f565b60a083018190526149239061078087601e6151b0565b60a083018190526149399061079e8760276151b0565b60a0830181905261494e9061077b875f6151b0565b60a0830181905260808301515f91614966919061274a565b90506149778161077b8860046151b0565b9050614983828261274a565b60c0840181905261499c9061077b613b5589600b6151b0565b60c084018190528560136020020152505050505050565b614a296040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b614a42614a3785601c6151b0565b6107808660026151b0565b8152614a5d614a5285601d6151b0565b6107808660036151b0565b6020820152614a7b614a7085601e6151b0565b6107808660046151b0565b6040820152614a99614a8e85601f6151b0565b6107808660056151b0565b60608201528051614acb90614ac490614abd90614ab6908061272f565b845161272f565b835161272f565b825161272f565b60808201526020810151614b0990614aff90614af590614aeb908061272f565b846020015161272f565b836020015161272f565b826020015161272f565b60a08201526040810151614b4790614b3d90614b3390614b29908061272f565b846040015161272f565b836040015161272f565b826040015161272f565b60c08201526060810151614b7b90614b7190614b6790614266908061272f565b836060015161272f565b826060015161272f565b60e0820152608081015160a0820151614b94919061274a565b61010082015260c081015160e0820151614bae919061274a565b61012082015260a0810151614bd290614bc7908061274a565b82610120015161274a565b61014082015260e0810151614bf690614beb908061274a565b82610100015161274a565b610160820152610120810151614c0c908061274a565b6101e08201819052614c2d90614c22908061274a565b82610160015161274a565b6101e0820152610100810151614c43908061274a565b6101a08201819052614c6490614c59908061274a565b82610140015161274a565b6101a08201819052610160820151614c7b9161274a565b6101808201526101408101516101e0820151614c97919061274a565b6101c0820152614cab61363c85600c6151b0565b6102008201819052610280840151610180830151614cd6926107809161077b9061079e8a60246151b0565b8360146020020152614d06836015602002015161078083610200015161077b856101a0015161079e8a60256151b0565b8360156020020152614d36836016602002015161078083610200015161077b856101c0015161079e8a60266151b0565b8360166020020152614d66836017602002015161078083610200015161077b856101e0015161079e8a60276151b0565b836017602002015250505050565b614dc66040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f6040518060800160405280614dfb7f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7612717565b8152602001614e297f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b612717565b8152602001614e567e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15612717565b8152602001614e847f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b612717565b90529050614ea1614e9686601c6151b0565b6107808760026151b0565b6101208301819052614ee090614ed590614eca90614ebf908061272f565b85610120015161272f565b84610120015161272f565b83610120015161272f565b8252614eed85601d6151b0565b6020830152614efd85601e6151b0565b6040830152614f0d85601f6151b0565b606083015281516020830151614f359161478f91614f2b919061274a565b846040015161274a565b6080830152614f486138ee86600d6151b0565b6101408301528151614f6990614f5f90835f6114d0565b836080015161274a565b60a0830152614f95846018602002015161078084610140015161077b8660a0015161079e8b60246151b0565b6103008501526020820151614fb090614f5f908360016114d0565b60c0830152614fdc846019602002015161078084610140015161077b8660c0015161079e8b60256151b0565b6103208501526040820151614ff790614f5f908360026114d0565b60e083015261502384601a602002015161078084610140015161077b8660e0015161079e8b60266151b0565b610340850152606082015161503e90614f5f908360036114d0565b61010083015261506c84601b602002015161078084610140015161077b86610100015161079e8b60276151b0565b84601b613775565b815160015b601c8110156150c6576150bc826107808684601c811061509b5761509b615aa6565b6020020151866150ac600187615a59565b601b81106114d0576114d0615aa6565b9150600101615079565b5092915050565b604080518082019091525f8082526020820152604080518082019091525f8082526020820152604051835181526020840151602082015284604082015260408160608360075afa8061511d575f5ffd5b5080518252602080820151908301526060016040529392505050565b604080518082019091525f8082526020820152604080518082019091525f80825260208201526040518451815260208501516020820152835160408201526020840151606082015260408160808360065afa80615194575f5ffd5b5080518252602080820151908301526080016040529392505050565b5f828260288111156151c4576151c4615cd6565b602981106151d4576151d4615aa6565b60200201519392505050565b604051806103e001604052805f81526020015f81526020015f815260200161521960405180604001604052805f81526020015f81525090565b815260200161523960405180604001604052805f81526020015f81525090565b815260200161525960405180604001604052805f81526020015f81525090565b815260200161527960405180604001604052805f81526020015f81525090565b815260200161529960405180604001604052805f81526020015f81525090565b81526020016152b960405180604001604052805f81526020015f81525090565b81526020016152d960405180604001604052805f81526020015f81525090565b81526020016152f960405180604001604052805f81526020015f81525090565b815260200161531960405180604001604052805f81526020015f81525090565b815260200161533960405180604001604052805f81526020015f81525090565b815260200161535960405180604001604052805f81526020015f81525090565b815260200161537960405180604001604052805f81526020015f81525090565b815260200161539960405180604001604052805f81526020015f81525090565b81526020016153b960405180604001604052805f81526020015f81525090565b81526020016153d960405180604001604052805f81526020015f81525090565b81526020016153f960405180604001604052805f81526020015f81525090565b815260200161541960405180604001604052805f81526020015f81525090565b815260200161543960405180604001604052805f81526020015f81525090565b815260200161545960405180604001604052805f81526020015f81525090565b815260200161547960405180604001604052805f81526020015f81525090565b815260200161549960405180604001604052805f81526020015f81525090565b81526020016154b960405180604001604052805f81526020015f81525090565b81526020016154d960405180604001604052805f81526020015f81525090565b81526020016154f960405180604001604052805f81526020015f81525090565b815260200161551960405180604001604052805f81526020015f81525090565b815260200161553960405180604001604052805f81526020015f81525090565b815260200161555960405180604001604052805f81526020015f81525090565b815260200161557960405180604001604052805f81526020015f81525090565b905290565b604051806101e001604052806155926158a3565b81526020016155b260405180604001604052805f81526020015f81525090565b81526020016155d260405180604001604052805f81526020015f81525090565b81526020016155f260405180604001604052805f81526020015f81525090565b815260200161561260405180604001604052805f81526020015f81525090565b815260200161563260405180604001604052805f81526020015f81525090565b815260200161565260405180604001604052805f81526020015f81525090565b815260200161567260405180604001604052805f81526020015f81525090565b815260200161569260405180604001604052805f81526020015f81525090565b815260200161569f6158c2565b81526020016156ac6158f0565b81526020016156b961590f565b81526020016155396157eb565b6040518061010001604052806156f960405180608001604052805f81526020015f81526020015f81526020015f81525090565b81526020016157066157ae565b81526020016157136157eb565b81526020016157206157eb565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f815260200161577c615948565b8152602001615789615948565b81526020015f81526020015f81526020015f81526020015f8152602001606081525090565b604051806103600160405280601b906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806105400160405280602a906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b6040518061020001604052806010906020820280368337509192915050565b604051806103800160405280601c905b6158da615866565b8152602001906001900390816158d25790505090565b6040518061052001604052806029906020820280368337509192915050565b604051806103600160405280601b905b604080518082019091525f808252602082015281526020019060019003908161591f5790505090565b60405180608001604052806004906020820280368337509192915050565b5f5f5f5f60408587031215615979575f5ffd5b843567ffffffffffffffff81111561598f575f5ffd5b8501601f8101871361599f575f5ffd5b803567ffffffffffffffff8111156159b5575f5ffd5b8760208284010111156159c6575f5ffd5b60209182019550935085013567ffffffffffffffff8111156159e6575f5ffd5b8501601f810187136159f6575f5ffd5b803567ffffffffffffffff811115615a0c575f5ffd5b8760208260051b8401011115615a20575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761274457612744615a2e565b8181038181111561274457612744615a2e565b8082018082111561274457612744615a2e565b5f5f85851115615a8d575f5ffd5b83861115615a99575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b5f60018201615adf57615adf615a2e565b5060010190565b80356020831015612744575f19602084900360031b1b1692915050565b5f82615b1d57634e487b7160e01b5f52601260045260245ffd5b500690565b5f8183825b6005811015615b46578151835260209283019290910190600101615b27565b50505060a08201905092915050565b5f8183825b6009811015615b79578151835260209283019290910190600101615b5a565b5050506101208201905092915050565b5f8183825b602a811015615bad578151835260209283019290910190600101615b8e565b5050506105408201905092915050565b81515f90829060208501835b82811015615be7578151845260209384019390910190600101615bc9565b509195945050505050565b5f8183825b6003811015615c16578151835260209283019290910190600101615bf7565b50505060608201905092915050565b5f81615c3357615c33615a2e565b505f190190565b5f8183825b6008811015615c5e578151835260209283019290910190600101615c3f565b5050506101008201905092915050565b5f82518060208501845e5f920191825250919050565b5f60208284031215615c94575f5ffd5b81518015158114610333575f5ffd5b5f8183825b6007811015615cc7578151835260209283019290910190600101615ca8565b50505060e08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220eeb5ba06059313776a210a02ab545b3d9b62c7056e7bc1a59aa7af942a17f91364736f6c634300081e0033";
3
+ */ export const HonkVerifierBytecode = "0x610100604052348015610010575f5ffd5b506301000000608052601860a0527f03283433ea4127dbfc7e979496d557867240e6a1ca611eb1684aaadb63b9a7fd60c05260a760e05260805160a05160c05160e051615cdf6100de5f395f818161018101526107ae01525f61016001525f8181605b01528181609401528181610101015281816101a2015281816108c7015281816109d401528181610a0001528181610a7b015281816112d401528181611374015281816115c30152818161160f0152818161165d015281816116b40152612cdf01525f5050615cdf5ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b3660046158e5565b610054565b604051901515815260200160405180910390f35b5f5f61007f7f000000000000000000000000000000000000000000000000000000000000000061028c565b905061008c8160206159c1565b85146100ee577f0000000000000000000000000000000000000000000000000000000000000000856100bf8360206159c1565b6040516359895a5360e01b81526004810193909352602483019190915260448201526064015b60405180910390fd5b5f6100f761033a565b90505f61012588887f000000000000000000000000000000000000000000000000000000000000000061034f565b90506008826040015161013891906159d8565b85146101575760405163fa06659360e01b815260040160405180910390fd5b5f6101c68288887f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006106a6565b90506102168787808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152505085518551602081015160409091015191935091506001610758565b8151606001525f61022783836108bf565b905080610247576040516313f8744360e31b815260040160405180910390fd5b5f6102538486856109c0565b905080610273576040516352ec174560e11b815260040160405180910390fd5b81801561027d5750805b9b9a5050505050505050505050565b5f8061029a600260086159c1565b905060016102a96008856159c1565b6102b391906159c1565b6102bd90826159eb565b90506102cb600160296159c1565b6102d590826159eb565b905060026102e46001856159d8565b6102ee91906159c1565b6102f890826159eb565b90506103056001846159c1565b61030f90826159eb565b905061031c6002806159c1565b61032690826159eb565b90506103336008826159eb565b9392505050565b61034261517e565b61034a611786565b905090565b61035761551c565b5f805b60088110156103b9576103868683876103746020836159eb565b92610381939291906159fe565b6120c1565b8351826008811061039957610399615a25565b6020020181815250506020826103af91906159eb565b915060010161035a565b506103dd8582866103cb6040836159eb565b926103d8939291906159fe565b6120d4565b60208301526103ed6040826159eb565b90506104008582866103cb6040836159eb565b60408084019190915261041390826159eb565b90506104268582866103cb6040836159eb565b60608301526104366040826159eb565b90506104498582866103cb6040836159eb565b60c08301526104596040826159eb565b905061046c8582866103cb6040836159eb565b60e083015261047c6040826159eb565b905061048f8582866103cb6040836159eb565b608083015261049f6040826159eb565b90506104b28582866103cb6040836159eb565b6101008301526104c36040826159eb565b90506104d68582866103cb6040836159eb565b60a08301526104e66040826159eb565b90505f5b83811015610564575f5b600881101561055b5761050e8784886103746020836159eb565b84610120015183601c811061052557610525615a25565b6020020151826008811061053b5761053b615a25565b60200201818152505060208361055191906159eb565b92506001016104f4565b506001016104ea565b505f5b60298110156105b8576105818683876103746020836159eb565b836101400151826029811061059857610598615a25565b6020020181815250506020826105ae91906159eb565b9150600101610567565b505f5b6105c66001856159d8565b81101561060f576105de8683876103cb6040836159eb565b83610160015182601b81106105f5576105f5615a25565b60200201526106056040836159eb565b91506001016105bb565b505f5b838110156106625761062b8683876103746020836159eb565b83610180015182601c811061064257610642615a25565b60200201818152505060208261065891906159eb565b9150600101610612565b506106748582866103cb6040836159eb565b6101a08301526106856040826159eb565b90506106988582866103cb6040836159eb565b6101c0830152509392505050565b6106ae615664565b5f6106bd888888888886612161565b90835290506106cc81896121c4565b602084019190915290506106e081846122b3565b604084019190915290506106f5888285612342565b606084019190915290506107098882612416565b6080840191909152905061071e8882856124a1565b60a08401919091529050610733888285612616565b60c0840191909152905061074788826126db565b5060e0830152509695505050505050565b5f60018082610785866107808961077b6107768a63100000006159eb565b612718565b612730565b61274b565b90505f6107a38761079e8a61077b6107768b60016159eb565b612764565b90505f5b6107d260087f00000000000000000000000000000000000000000000000000000000000000006159d8565b81101561083f575f6107fc8c83815181106107ef576107ef615a25565b602002602001015161278c565b905061080c8661077b868461274b565b955061081c8561077b858461274b565b9450610828848b61274b565b9350610834838b612764565b9250506001016107a7565b505f5b60088110156108a6575f8a826008811061085e5761085e615a25565b602002015190506108738661077b868461274b565b95506108838561077b858461274b565b945061088f848b61274b565b935061089b838b612764565b925050600101610842565b506108b184846127a1565b9a9950505050505050505050565b5f806001815b7f0000000000000000000000000000000000000000000000000000000000000000811015610996575f86610120015182601c811061090557610905615a25565b602002015190505f61091782866127af565b905080610937576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c811061094e5761094e615a25565b6020020151905061095f83826127cf565b9550610986886040015185601c811061097a5761097a615a25565b6020020151868361297e565b94505050508060010190506108c5565b505f6109b0866101400151865f01518760200151856129a9565b90508281145b9695505050505050565b5f6109c96156dc565b5f6109f88460a001517f0000000000000000000000000000000000000000000000000000000000000000612a22565b90505f610a267f000000000000000000000000000000000000000000000000000000000000000060246159eb565b610a319060026159eb565b67ffffffffffffffff811115610a4957610a49615a39565b604051908082528060200260200182016040528015610a72578160200160208202803683370190505b5090505f610aa17f000000000000000000000000000000000000000000000000000000000000000060246159eb565b610aac9060026159eb565b67ffffffffffffffff811115610ac457610ac4615a39565b604051908082528060200260200182016040528015610b0857816020015b604080518082019091525f8082526020820152815260200190600190039081610ae25790505b509050610b3a610b358760e00151855f81518110610b2857610b28615a25565b6020026020010151612764565b612aec565b84610120018181525050610b6e610b358760e00151855f81518110610b6157610b61615a25565b602002602001015161274b565b610140850181905261012085015160c0880151610b8f926107809190612730565b845260a0860151610bbf90610ba390612aec565b61077b86610120015161079e8a60c00151896101400151612730565b6020850152815160019083905f90610bd957610bd9615a25565b602002602001018181525050876101a00151815f81518110610bfd57610bfd615a25565b6020908102919091010152600160a08501525f60c085015283515f516020615c8a5f395f51905f5203604085015260208401515f516020615c8a5f395f51905f5203606085015260015b60248111610cea57610c6185604001518660a00151612730565b838281518110610c7357610c73615a25565b602002602001018181525050610cbc8560c001516107808b6101400151600185610c9d91906159d8565b60298110610cad57610cad615a25565b60200201518860a00151612730565b60c086015260a08501516080880151610cd59190612730565b60a0860152610ce381615a4d565b9050610c47565b505f5b6005811015610db8575f610d02601d836159eb565b90505f610d106024846159eb565b9050610d41858381518110610d2757610d27615a25565b602002602001015161078089606001518a60a00151612730565b858381518110610d5357610d53615a25565b602002602001018181525050610d908760c001516107808d61014001518460298110610d8157610d81615a25565b60200201518a60a00151612730565b60c088015260a087015160808a0151610da99190612730565b60a08801525050600101610ced565b50866060015181600181518110610dd157610dd1615a25565b6020026020010181905250866080015181600281518110610df457610df4615a25565b60200260200101819052508660a0015181600381518110610e1757610e17615a25565b60200260200101819052508660c0015181600481518110610e3a57610e3a615a25565b60200260200101819052508660e0015181600581518110610e5d57610e5d615a25565b602002602001018190525086610100015181600681518110610e8157610e81615a25565b602002602001018190525086610120015181600781518110610ea557610ea5615a25565b602002602001018190525086610140015181600881518110610ec957610ec9615a25565b602002602001018190525086610160015181600981518110610eed57610eed615a25565b6020026020010181905250866101c0015181600a81518110610f1157610f11615a25565b602002602001018190525086610180015181600b81518110610f3557610f35615a25565b6020026020010181905250866101a0015181600c81518110610f5957610f59615a25565b6020026020010181905250866101e0015181600d81518110610f7d57610f7d615a25565b602002602001018190525086610200015181600e81518110610fa157610fa1615a25565b602002602001018190525086610220015181600f81518110610fc557610fc5615a25565b602002602001018190525086610240015181601081518110610fe957610fe9615a25565b60200260200101819052508661026001518160118151811061100d5761100d615a25565b60200260200101819052508661028001518160128151811061103157611031615a25565b6020026020010181905250866102a001518160138151811061105557611055615a25565b6020026020010181905250866102c001518160148151811061107957611079615a25565b6020026020010181905250866102e001518160158151811061109d5761109d615a25565b6020026020010181905250866103000151816016815181106110c1576110c1615a25565b6020026020010181905250866103200151816017815181106110e5576110e5615a25565b60200260200101819052508661034001518160188151811061110957611109615a25565b60200260200101819052508661036001518160198151811061112d5761112d615a25565b602002602001018190525086610380015181601a8151811061115157611151615a25565b6020026020010181905250866103a0015181601b8151811061117557611175615a25565b6020026020010181905250866103c0015181601c8151811061119957611199615a25565b6020026020010181905250876020015181601d815181106111bc576111bc615a25565b6020026020010181905250876040015181601e815181106111df576111df615a25565b6020026020010181905250876060015181601f8151811061120257611202615a25565b602002602001018190525087608001518160208151811061122557611225615a25565b60200260200101819052508760a001518160218151811061124857611248615a25565b60200260200101819052508761010001518160228151811061126c5761126c615a25565b60200260200101819052508760c001518160238151811061128f5761128f615a25565b60200260200101819052508760e00151816024815181106112b2576112b2615a25565b60200260200101819052505f6112f887606001518660c001518b6101800151877f0000000000000000000000000000000000000000000000000000000000000000612b5c565b9050611322815f8151811061130f5761130f615a25565b6020026020010151866101200151612730565b608086018190526101808a01515160c08901516113539291610780916113489190612730565b886101400151612730565b608086015260c087015161136690612cbb565b60a08601525f5b61139860017f00000000000000000000000000000000000000000000000000000000000000006159d8565b8110156115a7576113c8610b358960e00151878460016113b891906159eb565b81518110610b2857610b28615a25565b61012087015260e08801516113f790610b3590876113e78560016159eb565b81518110610b6157610b61615a25565b61014087015260a08601516101208701516114129190612730565b61016087015260a086015160c089015161143a9161142f91612730565b876101400151612730565b610180870181905261146f905f516020615c8a5f395f51905f52036101608801515f516020615c8a5f395f51905f520361274b565b848261147d602460016159eb565b61148791906159eb565b8151811061149757611497615a25565b6020026020010181815250505f6114da8761018001518c61018001518460016114c091906159eb565b601c81106114d0576114d0615a25565b6020020151612730565b905061151481610780896101600151868660016114f791906159eb565b8151811061150757611507615a25565b6020026020010151612730565b905061152487608001518261274b565b608088015260a087015160c08a015161154a9161154091612730565b8a60c00151612730565b60a08801526101608b015182601b811061156657611566615a25565b60200201518483611579602460016159eb565b61158391906159eb565b8151811061159357611593615a25565b60209081029190910101525060010161136d565b50604080518082019091526001815260026020820152826115e97f000000000000000000000000000000000000000000000000000000000000000060246159eb565b815181106115f9576115f9615a25565b60209081029190910101526080850151836116357f000000000000000000000000000000000000000000000000000000000000000060246159eb565b8151811061164557611645615a25565b60209081029190910101526101c089015180836116837f000000000000000000000000000000000000000000000000000000000000000060246159eb565b61168e9060016159eb565b8151811061169e5761169e615a25565b602090810291909101015260e0880151846116da7f000000000000000000000000000000000000000000000000000000000000000060246159eb565b6116e59060016159eb565b815181106116f5576116f5615a25565b6020026020010181815250505f61170c8486612cc6565b90505f61171883612de1565b90505f6117298d5f01518484612e32565b90505f5f6117398f5f0151612ea8565b9150915061174682612f11565b61174f81612f11565b61175a858385612fb4565b9450611767848285612fb4565b93506117738585612ff0565b9f9e505050505050505050505050505050565b61178e61517e565b50604080516103e08101825263010000008152601860208083019190915260a782840152825180840184527f29f13b36c63603df2c6cdd0b843a5ccf83c98ea1a0fb68c4a0db553cab1311da81527f1c715aa948a89a92d1cf42c53c6e9b75bc7ef5b6a26551089ea4592af7bc23c6818301526060830152825180840184527f28ef3f7c626ce65a6902c8f5df1099fa1a7134bb48e6d3d08ee16db205e889b381527f2a959acd6e8b7f1d2637e82e3ee258a7d836c1af9fcbf966717010080df1eaa2818301526080830152825180840184527f06a12e97212b59b98c6c2fe4eb2a5c72a30cc0e1e91f0e4ed172b799a9fab7d581527f1fb4b0f8e12e5cd975184c58041a8a7bbe34d5f4c761ae2f2230149a51e9e6548183015260a0830152825180840184527f0c067799b7cabe77e4eb7e35ee24e367b0f6cc07232ef176d11978b6548e676781527f0b7570919561a62913a84189015f45f1778bc4fab1418fe058f679314a5abd9c8183015260c0830152825180840184527f2c51ac1e1c0f608352eb0056b45a45f2ad450d772cfcd9cc5c81b9f76474e37281527f1baa38146c622af2bb4f30efa399a689783bc8f588af0352f9501970ba20a87b8183015260e0830152825180840184527f030e47bfb15824bb1a220786bbcfede7bd47a6a1c514ae8e941217d19eca1a0681527f13d415b5a45fd6dc6993e94f773608278d071c1c040782915a0c6a64656deb8a81830152610100830152825180840184527f0d5cd90aceba65851b2ed0af6db9a5d741f62886d05381d516916a3e1b72cbf681527f08207020e5d8f9360f392c108796ee1b6b58c6cd8a259a85ac8c76ac30fcac4581830152610120830152825180840184527f1eb813f3af6a65dbd7199c4f80225777d30877959a5efd16b9460252ee9455a381527f23db0e832dacb3d57e84df60498392ceb8c9ebded1f3486433ca9d51eb9f5e1881830152610140830152825180840184527f1075a1f463c1fcf4a98ef8157e0b313a1845f58e2fcfd9024d936f2cb7a4a33a81527f28f5f4038a3cf23fdd1e1b2edfe561b0457053ffd7c4eb48ddfee86d380b4ff481830152610160830152825180840184527f108ba73a24e693b4280b41380e417e1a66581a60e698d7ad91ba6796af94cfc781527f22dd20de874310e033e20f35adf11eb07b5be49df338dc524dcf7127413426b881830152610180830152825180840184527f2ea423222f367697033b489ae4007f685f80dad5e179257bb95cb8f3b615bb9081527f30066d85237e0918961a583a9cfaf0cfa21213fa902f4feabbf4a0bf835cd1d9818301526101a0830152825180840184527f10cedadab7e912bbe987fc86334eed65f97df6fd5f55eef455d5c50fa34a745d81527f1945f210a1324a76edca3a9dafea7f5ee9327c42200a8590c5e5228ae339fa4b818301526101c0830152825180840184527f01279e522f1aa5ee5f175649ac506acd35eea3f5aa52cd96e35aaf2ace0acf0b81527f17309146bcd19bf48eb704e50be86506b8f6641c27827844c382e179c3efad1a818301526101e0830152825180840184527f2532ed35f6d84a7987415f529052293b0299c119ac3ea159ed09d489b9ff3b8581527f0291068f76ff6a133110ba332df3acbd2c429ef6fc7dc4e5890a30bd9925745981830152610200830152825180840184527f09000a699e3ad80b08fbffe0f39319201c3c7df4e18b0dcf360e3ba7bba497ca81527f024c9d2daf06a9effedaa31c8d3b10a2e61ed7de526d32ad7854dee103cda93881830152610220830152825180840184527f12e3ff67a11b346fd08116eafe67cecdde0ce46a78fd23693e943b79178dca1681527f1e25a991ccb6c56209cb6b4d2d00eb050886b10164dc4c72a8afce6b859f50dd81830152610240830152825180840184527f0dcadef02eb38d2acb010e6034aae7ef2455bb9f0502ef7d8294724d0f48d3c181527f21aabf13f5bb0d86af4f22d133a143cd8a8b84f5f5fcd411cca79ab0324a7cae81830152610260830152825180840184527f07dd9d2903434c1b090f16695e1933982b73338172cfbf30bd300c5c30dc3e4881527f0683d4bbb0a94563fe197f1c94783375e1d39967506a6a1ed84dfb3dab76e0b981830152610280830152825180840184527f28f0fe6358b508e50d0c0974e90ca964107acf7c6410c12fc3fb548626c31ff681527f096568eeeaa264778d6197602ec70948ebee44cee79334edcf01cd4128077762818301526102a0830152825180840184527f1925b8a1fc15bda192821e9617de6226fc18da486488b66c9b02370a0f02ee5581527f2f217ad241880b147481da14527aa1732c9e68a95e011f579a394cb2f254c059818301526102c0830152825180840184527f1c3e3dd8ed2267546aec250cd822afcb940ee0df0f2ac62ccc64ef10a32fa39b81527f04d84ffe345778db75e2003b3a2947fb5d612646f169b4749bd0f6d2a00b21d5818301526102e0830152825180840184527eb5bffe09de82571170c06d65833eb42cfe96327efdb70e31ffab79d854ef1281527f2ebca7701bb11eab3da3ca5e88bee81374034d18f452407a4016d69b64427cbe81830152610300830152825180840184527f2194d92617bbb3ba3d9e53f4f13c5c7c6fc5ae0c56f06e0a35747f24625e576381527f11ca88979a66ada092bb26e2b64b8602eb63f6e2fc21862f6fefead2978de7e081830152610320830152825180840184527f1d346dd159688f85b77717f8197777c6ced8daf349335d74908736241f5f332881527f10e952d77959f4aa6fe9cb7222d9901d06ddfeea51240c79980d4daac814444381830152610340830152825180840184527f20b8784b739f9968d269d3db4e7e7e7e666acd5804af5ff4a54f8dfbea8d257281527f21ad5edf078583d5e29052c50b4e8d46067ddaae2aa2345c15a755074d932f9581830152610360830152825180840184527f062b31b3719d79c253d59707efcc41556e43d9f4f122ba79d3484e023fb4da7d81527f283eb52c07506637e09fb73d7875ada840d8e4c75295a90dc312b4d2571c52c38183015261038083015282518084018452600181526002818301526103a083015282518084019093527f177e3cdf761b7ac2ca1a76ed4d7808b7df0dc7b82589529a692642fa1d94c67683527f016f7afe942b343181bdb40aaf4b5aece1c9d2aed1cd4ff3a7c3dadf36bbd494908301526103c081019190915290565b5f6103336120cf8385615a65565b61278c565b604080518082019091525f808252602082015260408051808201909152805f516020615c6a5f395f51905f5261210d60205f87896159fe565b61211691615a65565b6121209190615a82565b81526020908101905f516020615c6a5f395f51905f52906121459060409087896159fe565b61214e91615a65565b6121589190615a82565b90529392505050565b61218860405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f61219688888888886131e4565b90835292506121a583896134b3565b6040850191909152602084019190915291989197509095505050505050565b6121cc61574c565b5f6121d561576b565b8481526101008401805151602080840191909152905181015160408084019190915260a086018051516060850152518201516080840152516122389161221d91849101615aa1565b6040516020818303038152906040528051906020012061278c565b91505f6122448361353a565b50808552905060015b6122596001601c6159d8565b8110156122a95761228a8561226f6001846159d8565b601b811061227f5761227f615a25565b602002015183612730565b8582601b811061229c5761229c615a25565b602002015260010161224d565b5050509250929050565b6122bb615789565b5f6122d28460405160200161221d91815260200190565b93506122dd8461353a565b50825260015b8381101561233a5761231b836122fa6001846159d8565b601c811061230a5761230a615a25565b6020020151846114c06001856159d8565b8382601c811061232d5761232d615a25565b60200201526001016122e3565b509093915050565b61234a615789565b5f805b8381101561240c5761235d6157a8565b8581525f5b60088110156123c65787610120015183601c811061238257612382615a25565b6020020151816008811061239857612398615a25565b6020020151826123a98360016159eb565b600981106123b9576123b9615a25565b6020020152600101612362565b506123db8160405160200161221d9190615ad4565b95505f6123e78761353a565b8685601c81106123f9576123f9615a25565b602002019190915250505060010161234d565b5090949293505050565b5f5f6124206157c7565b8381525f5b602981101561247357856101400151816029811061244557612445615a25565b6020020151826124568360016159eb565b602a811061246657612466615a25565b6020020152600101612425565b506124888160405160200161221d9190615b08565b91505f6124948361353a565b5096929550919350505050565b5f80806124af6001856159d8565b6124ba9060026159c1565b6124c59060016159eb565b67ffffffffffffffff8111156124dd576124dd615a39565b604051908082528060200260200182016040528015612506578160200160208202803683370190505b50905084815f8151811061251c5761251c615a25565b60209081029190910101525f5b6125346001866159d8565b8110156125e75786610160015181601b811061255257612552615a25565b602002015151826125648360026159c1565b61256f9060016159eb565b8151811061257f5761257f615a25565b60200260200101818152505086610160015181601b81106125a2576125a2615a25565b602002015160200151828260026125b991906159c1565b6125c49060026159eb565b815181106125d4576125d4615a25565b6020908102919091010152600101612529565b506125fc8160405160200161221d9190615b3c565b91505f6126088361353a565b509792965091945050505050565b5f80806126248460016159eb565b67ffffffffffffffff81111561263c5761263c615a39565b604051908082528060200260200182016040528015612665578160200160208202803683370190505b50905084815f8151811061267b5761267b615a25565b60209081029190910101525f5b848110156125e75786610180015181601c81106126a7576126a7615a25565b6020020151826126b88360016159eb565b815181106126c8576126c8615a25565b6020908102919091010152600101612688565b5f5f6126e56157e6565b8381526101a085018051516020808401919091529051810151604080840191909152516124889161221d91849101615b71565b5f5f516020615c8a5f395f51905f52825b0692915050565b5f5f516020615c8a5f395f51905f5282840990505b92915050565b5f5f516020615c8a5f395f51905f528284089392505050565b5f5f516020615c8a5f395f51905f52825f516020615c8a5f395f51905f520384089392505050565b5f5f516020615c8a5f395f51905f5282612729565b5f6103338361077b84612aec565b815160208301515f9182916127c4919061274b565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b60088110156128b6576128ac8261077b8784612764565b9150600101612895565b506128bf615804565b5f5b6008811015612920575f8482600881106128dd576128dd615a25565b602002015190506128f28161077b8985612764565b90506128fd81612aec565b90508083836008811061291257612912615a25565b6020020152506001016128c1565b505f5b6008811015612973575f87826008811061293f5761293f615a25565b6020020151905061295c818484600881106114d0576114d0615a25565b9050612968868261274b565b955050600101612923565b506109b68483612730565b5f5f61299460016107808561077b896001612764565b90506129a08482612730565b95945050505050565b5f6129b2615789565b6129bd868285613573565b6129c98686838661371f565b6129d586868386613907565b6129e0868285613b56565b6129eb868285613d4a565b6129f78686838661408d565b612a0286828561453f565b612a0d868285614951565b612a18868285614d12565b6109b68185615012565b60605f8267ffffffffffffffff811115612a3e57612a3e615a39565b604051908082528060200260200182016040528015612a67578160200160208202803683370190505b50905083815f81518110612a7d57612a7d615a25565b602090810291909101015260015b83811015612ae457612abf82612aa26001846159d8565b81518110612ab257612ab2615a25565b6020026020010151612cbb565b828281518110612ad157612ad1615a25565b6020908102919091010152600101612a8b565b509392505050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f516020615c8a5f395f51905f520360808201525f516020615c8a5f395f51905f5260a082015260205f60c08360055afa80612b48575f5ffd5b505f51608091909101604052949350505050565b60605f8267ffffffffffffffff811115612b7857612b78615a39565b604051908082528060200260200182016040528015612ba1578160200160208202803683370190505b509050825b8015612cb0575f85612bb96001846159d8565b81518110612bc957612bc9615a25565b602002602001015190505f89600184612be291906159d8565b601c8110612bf257612bf2615a25565b602002015190505f612c4d612c11612c0a858d612730565b6002612730565b61079e8b612c206001896159d8565b601c8110612c3057612c30615a25565b602002015161077b612c478861077b60018a612764565b87612764565b9050612c6e8161077b610b35612c688761077b600189612764565b8661274b565b99508990508085612c806001876159d8565b81518110612c9057612c90615a25565b60200260200101818152505050505080612ca990615ba4565b9050612ba6565b509695505050505050565b5f6127458283612730565b604080518082019091525f80825260208201525f612d057f000000000000000000000000000000000000000000000000000000000000000060246159eb565b612d109060026159eb565b90505f5b81811015612d4657612d3e858281518110612d3157612d31615a25565b6020026020010151612f11565b600101612d14565b50604051600190815b60018401811015612dab5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612d4f565b5080518452602081015160208501525080612dd9576040516352ec174560e11b815260040160405180910390fd5b505092915050565b604080518082019091525f80825260208201525f516020615c6a5f395f51905f5282602001515f516020615c6a5f395f51905f52612e1f91906159d8565b612e299190615a82565b60208301525090565b5f5f5f612e3e86612ea8565b91509150612e4a615804565b82518152602080840151818301528251604080840191909152838201516060840152875160808401528782015160a0840152865160c08401528682015160e084015251612e9d9161221d91849101615bb9565b979650505050505050565b6040805180820182525f808252602080830182815284518086018652838152808301938452865192870151608890811b9093178552948601516060870151831b179052608085015160a0860151821b17845260c085015160e090950151901b9093179092529091565b805160208201515f5f516020615c6a5f395f51905f528380095f516020615c6a5f395f51905f5260035f516020615c6a5f395f51905f52838709085f516020615c6a5f395f51905f528485091491505080612fae5760405162461bcd60e51b815260206004820152601960248201527f706f696e74206973206e6f74206f6e207468652063757276650000000000000060448201526064016100e5565b50505050565b604080518082019091525f8082526020820152604080518082019091525f8082526020820152612fe4838661506b565b90506129a081856150d7565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516131869190615bed565b5f60405180830381855afa9150503d805f81146131be576040519150601f19603f3d011682016040523d82523d5f602084013e6131c3565b606091505b50915091508180156109b65750808060200190518101906109b69190615c03565b5f80806131f28460016159eb565b6131fd9060066159eb565b67ffffffffffffffff81111561321557613215615a39565b60405190808252806020026020018201604052801561323e578160200160208202803683370190505b509050845f1b815f8151811061325657613256615a25565b60209081029190910101525f5b61326e6008866159d8565b8110156132bf5787878281811061328757613287615a25565b905060200201358282600161329c91906159eb565b815181106132ac576132ac615a25565b6020908102919091010152600101613263565b505f5b60088110156133305788516132ea9082600881106132e2576132e2615a25565b602002015190565b828260086132f98960016159eb565b61330391906159d8565b61330d91906159eb565b8151811061331d5761331d615a25565b60209081029190910101526001016132c2565b50602088015151816133438660016159eb565b8151811061335357613353615a25565b602090810291909101810191909152888101510151816133748660016159eb565b61337f9060016159eb565b8151811061338f5761338f615a25565b6020908102919091010152604088015151816133ac8660016159eb565b6133b79060026159eb565b815181106133c7576133c7615a25565b60209081029190910181019190915260408901510151816133e98660016159eb565b6133f49060036159eb565b8151811061340457613404615a25565b6020908102919091010152606088015151816134218660016159eb565b61342c9060046159eb565b8151811061343c5761343c615a25565b602090810291909101810191909152606089015101518161345e8660016159eb565b6134699060056159eb565b8151811061347957613479615a25565b6020026020010181815250506134998160405160200161221d9190615b3c565b91506134a48261353a565b50989197509095505050505050565b5f5f5f6134be615823565b85815260c0858101805151602080850191909152905181015160408085019190915260e08801805151606086015251820151608080860191909152880180515160a0860152518201519284019290925290516135209161221d91849101615c22565b915061352b8261353a565b90979096509194509092505050565b5f80826f7fffffffffffffffffffffffffffffff8116607f82901c61355e8261278c565b94506135698161278c565b9350505050915091565b5f61357f84600761514e565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f6135e06135da6135b4856003612764565b61077b6135cf6135c48b5f61514e565b61077b8c601d61514e565b61077b8b601c61514e565b83612730565b905061366161365661363d61362461360b856107806136008d600261514e565b61077b8e601c61514e565b6107806136198c600361514e565b61077b8d601d61514e565b6107806136328b600461514e565b61077b8c601e61514e565b61078061364b8a600561514e565b61077b8b601f61514e565b61078088600161514e565b905061368081610780613675866001612764565b61077b8a602761514e565b905061368c8184612730565b90506136988185612730565b8552505f90506136d26136c86136bd6136b288601c61514e565b61078089601f61514e565b61079e88602461514e565b610780875f61514e565b90506136e38161077b846002612764565b90506136f48161077b846001612764565b90506137008183612730565b905061370c8184612730565b9050808460015b60200201525050505050565b5f5f5f61375561374b61373389601c61514e565b6107806137418b601261514e565b8a60200151612730565b876040015161274b565b905061378e8161077b61378461376c8b601d61514e565b61078061377a8d601361514e565b8c60200151612730565b896040015161274b565b90506137b38161077b6137846137a58b601e61514e565b61078061377a8d601461514e565b90506137d88161077b6137846137ca8b601f61514e565b61078061377a8d601561514e565b92505f90506137fc61374b6137ee89601c61514e565b6107806137418b600e61514e565b90506138218161077b6137846138138b601d61514e565b61078061377a8d600f61514e565b90506138468161077b6137846138388b601e61514e565b61078061377a8d601061514e565b905061386b8161077b61378461385d8b601f61514e565b61078061377a8d601161514e565b91505f905061389261388c61388189602061514e565b6107808a601a61514e565b84612730565b90506138c78161079e6138c16138a98b602861514e565b6107806138b78d601b61514e565b8c60600151612730565b85612730565b90506138d38185612730565b6040860152505f6138f66138c16138eb89601b61514e565b61077b8a602861514e565b606090950194909452505050505050565b5f5f5f61391c86602001518760200151612730565b905061398061396561395761393f6139358b601661514e565b8a6040015161274b565b61078061394d8c601761514e565b8b60200151612730565b6107806138c18b601861514e565b6107806139766138c18b601961514e565b8960200151612730565b9250505f61399686602001518760200151612730565b90505f6139c36139aa6137848a601c61514e565b6107806139b88b600361514e565b61077b8c602461514e565b90505f6139ec6139d48a601d61514e565b6107806139e18c5f61514e565b61077b8d602561514e565b90505f613a166139fd8b601e61514e565b610780613a0b8d600161514e565b61077b8e602661514e565b9050613a51613a3a613a3085610780868e60200151612730565b6107808488612730565b61078061377a613a4b8e600461514e565b88612730565b9450505050505f613a6661388c88602161514e565b90505f613a7761388c89602161514e565b90505f613aaf613a96613a8b8b602361514e565b6107808c600661514e565b61079e613aa48c602361514e565b61077b8d600661514e565b90505f613ad3613acd613ac28789612730565b61077b8d602161514e565b83612764565b9050613adf8188612730565b90505f613b07613af9613af38d600661514e565b87612730565b61079e613af38e602261514e565b90505f613b158c602361514e565b90505f613b25613acd8384612730565b60808c0185905260a08c018490529050613b3f818b612730565b8b6006602002015250505050505050505050505050565b5f613b625f6001612764565b90505f613b705f6002612764565b90505f613b7e5f6003612764565b90505f613b9a613b8f88601d61514e565b61079e89601c61514e565b90505f613bb6613bab89601e61514e565b61079e8a601d61514e565b90505f613bd2613bc78a601f61514e565b61079e8b601e61514e565b90505f613bee613be38b602461514e565b61079e8c601f61514e565b905083613bff8161077b818b61274b565b9050613c0f8161077b878a61274b565b9050613c1f8161077b878961274b565b9050613c308161077b8d600861514e565b9050613c3c818a612730565b60e08b01525082613c518161077b818b61274b565b9050613c618161077b868a61274b565b9050613c718161077b868961274b565b9050613c828161077b8d600861514e565b9050613c8e818a612730565b6101008b01525081613ca48161077b818b61274b565b9050613cb48161077b858a61274b565b9050613cc48161077b858961274b565b9050613cd58161077b8d600861514e565b9050613ce1818a612730565b6101208b01525080613cf78161077b818b61274b565b9050613d078161077b848a61274b565b9050613d178161077b848961274b565b9050613d288161077b8d600861514e565b9050613d34818a612730565b610140909a019990995250505050505050505050565b613d836040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613d8e84601d61514e565b8152613d9b84601e61514e565b6020820152613dab84602461514e565b6040820152613dbb84602761514e565b6060820152613dcb84602661514e565b6080820152613ddb84602561514e565b60a08201525f613dec85600261514e565b90505f613df9865f61514e565b90505f613e0d8460400151855f0151612764565b90505f613e2285602001518660200151612730565b606086015190915086905f90613e389080612730565b90505f613e50613a4b89602001518a60600151612730565b90505f613e6f613e688a60a001518b6040015161274b565b8a5161274b565b9050613e7e613af38288612730565b9050613ea5613e9f613e99613e938487612764565b88612764565b8461274b565b8361274b565b9050613ecd613ec2613eb78387612730565b61077b8f600961514e565b61077b60018a612764565b6101608c015250505050602085015160808601515f91613eec9161274b565b90505f613f0a613f00886060015188612730565b8860200151612764565b90505f613f2e613f1a8487612730565b6107806138c18b60a001518c5f0151612764565b9050613f56613f4b613f40838c612730565b61077b8e600961514e565b61077b600189612764565b6101808b0152505f9150613f779050613f7083601161274b565b8751612730565b90505f613f84838461274b565b9050613f90818261274b565b90505f613f9e836009612730565b9050613fc7613fc161388c613fba8b60a001518c5f015161274b565b8b5161274b565b82612764565b60c089018190525f90613fe290613a4b90613eb7908d612730565b9050613ff58b600b60200201518261274b565b6101608c0152505086515f925061401c9150613f7090614015908061274b565b885161274b565b90505f61405c6140378361077b8a5f01518b60a00151612764565b602089015161079e9061404a908061274b565b61077b8b602001518c6080015161274b565b905061407989600c6020020151610780613a4b613eb7858d612730565b89600c602002015250505050505050505050565b6140f7604051806101e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b83515f906141059080612730565b90505f61411582875f0151612730565b905061412b61412588601e61514e565b82612730565b808452614140906107806138c18a601d61514e565b80845261415c906107806141558a601c61514e565b8951612730565b80845261416e9061078089600161514e565b808452602084018190526141879061079e89601f61514e565b8352614197613b8f88602461514e565b60808401526141b56141aa88602761514e565b61079e89601f61514e565b606084015260808301516141ce9061077b816001612764565b6101c0840152608083015161420e90614204906141fd9061077b60015f516020615c8a5f395f51905f526159d8565b600161274b565b8460600151612730565b60a08401819052614244906142369061077b61422b8b600261514e565b61077b8c600361514e565b61077b613af38a600a61514e565b85600e60200201526101c0830151614268906142369061077b61422b8b600261514e565b6101e0860152825161428d9061077b6142828a600261514e565b61077b8b600361514e565b6101208401525f6142ac6142a289601f61514e565b8560200151612764565b90506142bd8161077b836001612764565b60e08501526142d06135da89602661514e565b604085018190526142ef906107806142e98b602561514e565b86612730565b6040850181905261430f906107806143088b602461514e565b8a51612730565b604085015261432c61432289602761514e565b8560400151612764565b60408501525f614340613bc78a602661514e565b905061439261436d6135da6141fd886080015160015f516020615c8a5f395f51905f5261077b91906159d8565b61077b6141fd886040015160015f516020615c8a5f395f51905f5261077b91906159d8565b60c086015260408501516143b4906143aa9080612730565b8660400151612764565b61010086015260c08501516143e6906143d29061077b8c600461514e565b61077b6143e08c600a61514e565b89612730565b6102008801526101c0850151614405906143d29061077b8c600461514e565b610220880152610100850151614424906143d29061077b8c600461514e565b61024088015260e085015161443e9061077b8b600461514e565b61014086015261445d6144528a602561514e565b61079e8b601d61514e565b610160860152608085015161449b90613bc790614490906141fd9061077b60015f516020615c8a5f395f51905f526159d8565b876101600151612730565b61018086018190526101208601516101a087018190526144d2916107809061077b6144c78e600561514e565b61077b8f600261514e565b6101a0860181905285516144f291906107809061077b6144c78e5f61514e565b6101a0860181905261014086015161450a919061274b565b6101a086018190526145249061077b6143e08c600a61514e565b6101a0860181905287600d6020020152505050505050505050565b6145786040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6145ad61459461458986601c61514e565b61077b87602561514e565b6107806145a287602461514e565b61077b88601d61514e565b81526145f26145e76145ce6145c387601c61514e565b61077b88601f61514e565b6107806145dc88601d61514e565b61077b89601e61514e565b61079e86602661514e565b6040820181905261460790600160441b612730565b6040820181905261461d9061079e86602761514e565b604082018190528151614630919061274b565b604082018190526146469061077b86600561514e565b6040820152805161465b90600160441b612730565b80825261467b9061078061467087602461514e565b61077b88602561514e565b808252602082018190526146a29061079e61469787601e61514e565b61078088601f61514e565b602082018190526146b89061077b86600461514e565b60208201528051606082018190526146d59061078086601f61514e565b606082018190526146f99061079e6146ee87602661514e565b61078088602761514e565b6060820181905261470e9061077b865f61514e565b8160600181815250505f61473761472d8360200151846040015161274b565b836060015161274b565b90506147488161077b87600361514e565b905061476061475886602561514e565b614000612730565b608083018190526147769061078087602461514e565b6080830181905261478990614000612730565b6080830181905261479f9061078087601e61514e565b608083018190526147b290614000612730565b608083018190526147c89061078087601d61514e565b608083018190526147db90614000612730565b608083018190526147f19061078087601c61514e565b608083018190526148079061079e87601f61514e565b6080830181905261481d9061077b87600561514e565b608083015261483061475886602661514e565b60a083018190526148469061078087602561514e565b60a0830181905261485990614000612730565b60a0830181905261486f9061078087602461514e565b60a0830181905261488290614000612730565b60a083018190526148989061078087601f61514e565b60a083018190526148ab90614000612730565b60a083018190526148c19061078087601e61514e565b60a083018190526148d79061079e87602761514e565b60a083018190526148ec9061077b875f61514e565b60a0830181905260808301515f91614904919061274b565b90506149158161077b88600461514e565b9050614921828261274b565b60c0840181905261493a9061077b613af389600b61514e565b60c084018190528560136020020152505050505050565b6149c76040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6149e06149d585601c61514e565b61078086600261514e565b81526149fb6149f085601d61514e565b61078086600361514e565b6020820152614a19614a0e85601e61514e565b61078086600461514e565b6040820152614a37614a2c85601f61514e565b61078086600561514e565b60608201528051614a6990614a6290614a5b90614a549080612730565b8451612730565b8351612730565b8251612730565b60808201526020810151614aa790614a9d90614a9390614a899080612730565b8460200151612730565b8360200151612730565b8260200151612730565b60a08201526040810151614ae590614adb90614ad190614ac79080612730565b8460400151612730565b8360400151612730565b8260400151612730565b60c08201526060810151614b1990614b0f90614b05906142049080612730565b8360600151612730565b8260600151612730565b60e0820152608081015160a0820151614b32919061274b565b61010082015260c081015160e0820151614b4c919061274b565b61012082015260a0810151614b7090614b65908061274b565b82610120015161274b565b61014082015260e0810151614b9490614b89908061274b565b82610100015161274b565b610160820152610120810151614baa908061274b565b6101e08201819052614bcb90614bc0908061274b565b82610160015161274b565b6101e0820152610100810151614be1908061274b565b6101a08201819052614c0290614bf7908061274b565b82610140015161274b565b6101a08201819052610160820151614c199161274b565b6101808201526101408101516101e0820151614c35919061274b565b6101c0820152614c496135da85600c61514e565b6102008201819052610280840151610180830151614c74926107809161077b9061079e8a602461514e565b8360146020020152614ca4836015602002015161078083610200015161077b856101a0015161079e8a602561514e565b8360156020020152614cd4836016602002015161078083610200015161077b856101c0015161079e8a602661514e565b8360166020020152614d04836017602002015161078083610200015161077b856101e0015161079e8a602761514e565b836017602002015250505050565b614d646040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f6040518060800160405280614d997f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7612718565b8152602001614dc77f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b612718565b8152602001614df47e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15612718565b8152602001614e227f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b612718565b90529050614e3f614e3486601c61514e565b61078087600261514e565b6101208301819052614e7e90614e7390614e6890614e5d9080612730565b856101200151612730565b846101200151612730565b836101200151612730565b8252614e8b85601d61514e565b6020830152614e9b85601e61514e565b6040830152614eab85601f61514e565b606083015281516020830151614ed39161472d91614ec9919061274b565b846040015161274b565b6080830152614ee661388c86600d61514e565b6101408301528151614f0790614efd90835f6114d0565b836080015161274b565b60a0830152614f33846018602002015161078084610140015161077b8660a0015161079e8b602461514e565b6103008501526020820151614f4e90614efd908360016114d0565b60c0830152614f7a846019602002015161078084610140015161077b8660c0015161079e8b602561514e565b6103208501526040820151614f9590614efd908360026114d0565b60e0830152614fc184601a602002015161078084610140015161077b8660e0015161079e8b602661514e565b6103408501526060820151614fdc90614efd908360036114d0565b61010083015261500a84601b602002015161078084610140015161077b86610100015161079e8b602761514e565b84601b613713565b815160015b601c8110156150645761505a826107808684601c811061503957615039615a25565b60200201518661504a6001876159d8565b601b81106114d0576114d0615a25565b9150600101615017565b5092915050565b604080518082019091525f8082526020820152604080518082019091525f8082526020820152604051835181526020840151602082015284604082015260408160608360075afa806150bb575f5ffd5b5080518252602080820151908301526060016040529392505050565b604080518082019091525f8082526020820152604080518082019091525f80825260208201526040518451815260208501516020820152835160408201526020840151606082015260408160808360065afa80615132575f5ffd5b5080518252602080820151908301526080016040529392505050565b5f8282602881111561516257615162615c55565b6029811061517257615172615a25565b60200201519392505050565b604051806103e001604052805f81526020015f81526020015f81526020016151b760405180604001604052805f81526020015f81525090565b81526020016151d760405180604001604052805f81526020015f81525090565b81526020016151f760405180604001604052805f81526020015f81525090565b815260200161521760405180604001604052805f81526020015f81525090565b815260200161523760405180604001604052805f81526020015f81525090565b815260200161525760405180604001604052805f81526020015f81525090565b815260200161527760405180604001604052805f81526020015f81525090565b815260200161529760405180604001604052805f81526020015f81525090565b81526020016152b760405180604001604052805f81526020015f81525090565b81526020016152d760405180604001604052805f81526020015f81525090565b81526020016152f760405180604001604052805f81526020015f81525090565b815260200161531760405180604001604052805f81526020015f81525090565b815260200161533760405180604001604052805f81526020015f81525090565b815260200161535760405180604001604052805f81526020015f81525090565b815260200161537760405180604001604052805f81526020015f81525090565b815260200161539760405180604001604052805f81526020015f81525090565b81526020016153b760405180604001604052805f81526020015f81525090565b81526020016153d760405180604001604052805f81526020015f81525090565b81526020016153f760405180604001604052805f81526020015f81525090565b815260200161541760405180604001604052805f81526020015f81525090565b815260200161543760405180604001604052805f81526020015f81525090565b815260200161545760405180604001604052805f81526020015f81525090565b815260200161547760405180604001604052805f81526020015f81525090565b815260200161549760405180604001604052805f81526020015f81525090565b81526020016154b760405180604001604052805f81526020015f81525090565b81526020016154d760405180604001604052805f81526020015f81525090565b81526020016154f760405180604001604052805f81526020015f81525090565b815260200161551760405180604001604052805f81526020015f81525090565b905290565b604051806101e00160405280615530615804565b815260200161555060405180604001604052805f81526020015f81525090565b815260200161557060405180604001604052805f81526020015f81525090565b815260200161559060405180604001604052805f81526020015f81525090565b81526020016155b060405180604001604052805f81526020015f81525090565b81526020016155d060405180604001604052805f81526020015f81525090565b81526020016155f060405180604001604052805f81526020015f81525090565b815260200161561060405180604001604052805f81526020015f81525090565b815260200161563060405180604001604052805f81526020015f81525090565b815260200161563d615841565b815260200161564a61586f565b815260200161565761588e565b81526020016154d7615789565b60405180610100016040528061569760405180608001604052805f81526020015f81526020015f81526020015f81525090565b81526020016156a461574c565b81526020016156b1615789565b81526020016156be615789565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f815260200161571a6158c7565b81526020016157276158c7565b81526020015f81526020015f81526020015f81526020015f8152602001606081525090565b604051806103600160405280601b906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806105400160405280602a906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b604051806103800160405280601c905b615859615804565b8152602001906001900390816158515790505090565b6040518061052001604052806029906020820280368337509192915050565b604051806103600160405280601b905b604080518082019091525f808252602082015281526020019060019003908161589e5790505090565b60405180608001604052806004906020820280368337509192915050565b5f5f5f5f604085870312156158f8575f5ffd5b843567ffffffffffffffff81111561590e575f5ffd5b8501601f8101871361591e575f5ffd5b803567ffffffffffffffff811115615934575f5ffd5b876020828401011115615945575f5ffd5b60209182019550935085013567ffffffffffffffff811115615965575f5ffd5b8501601f81018713615975575f5ffd5b803567ffffffffffffffff81111561598b575f5ffd5b8760208260051b840101111561599f575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417612745576127456159ad565b81810381811115612745576127456159ad565b80820180821115612745576127456159ad565b5f5f85851115615a0c575f5ffd5b83861115615a18575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b5f60018201615a5e57615a5e6159ad565b5060010190565b80356020831015612745575f19602084900360031b1b1692915050565b5f82615a9c57634e487b7160e01b5f52601260045260245ffd5b500690565b5f8183825b6005811015615ac5578151835260209283019290910190600101615aa6565b50505060a08201905092915050565b5f8183825b6009811015615af8578151835260209283019290910190600101615ad9565b5050506101208201905092915050565b5f8183825b602a811015615b2c578151835260209283019290910190600101615b0d565b5050506105408201905092915050565b81515f90829060208501835b82811015615b66578151845260209384019390910190600101615b48565b509195945050505050565b5f8183825b6003811015615b95578151835260209283019290910190600101615b76565b50505060608201905092915050565b5f81615bb257615bb26159ad565b505f190190565b5f8183825b6008811015615bdd578151835260209283019290910190600101615bbe565b5050506101008201905092915050565b5f82518060208501845e5f920191825250919050565b5f60208284031215615c13575f5ffd5b81518015158114610333575f5ffd5b5f8183825b6007811015615c46578151835260209283019290910190600101615c27565b50505060e08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220bb551b63faf3bcc45955d63161945b29a2216ffcd1742eac2a726a6312f1312464736f6c634300081e0033";
4
4
  /**
5
5
  * HonkVerifier link references.
6
6
  */ export const HonkVerifierLinkReferences = {};