zerc20-client-sdk 0.1.0

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 (190) hide show
  1. package/dist/assets/abi/ERC1967Proxy.json +76 -0
  2. package/dist/assets/abi/Hub.json +1443 -0
  3. package/dist/assets/abi/Minter.json +666 -0
  4. package/dist/assets/abi/Verifier.json +1935 -0
  5. package/dist/assets/abi/zERC20.json +919 -0
  6. package/dist/assets/wasm/node/README.md +6 -0
  7. package/dist/assets/wasm/node/package.json +11 -0
  8. package/dist/assets/wasm/node/zkerc20_wasm.d.ts +48 -0
  9. package/dist/assets/wasm/node/zkerc20_wasm.js +1209 -0
  10. package/dist/assets/wasm/node/zkerc20_wasm_bg.wasm +0 -0
  11. package/dist/assets/wasm/node/zkerc20_wasm_bg.wasm.d.ts +36 -0
  12. package/dist/assets/wasm/web/README.md +6 -0
  13. package/dist/assets/wasm/web/package.json +15 -0
  14. package/dist/assets/wasm/web/zkerc20_wasm.d.ts +108 -0
  15. package/dist/assets/wasm/web/zkerc20_wasm.js +1209 -0
  16. package/dist/assets/wasm/web/zkerc20_wasm_bg.wasm +0 -0
  17. package/dist/assets/wasm/web/zkerc20_wasm_bg.wasm.d.ts +36 -0
  18. package/dist/constants.d.ts +9 -0
  19. package/dist/constants.d.ts.map +1 -0
  20. package/dist/constants.js +9 -0
  21. package/dist/constants.js.map +1 -0
  22. package/dist/decider/prover.d.ts +17 -0
  23. package/dist/decider/prover.d.ts.map +1 -0
  24. package/dist/decider/prover.js +108 -0
  25. package/dist/decider/prover.js.map +1 -0
  26. package/dist/ic/__tests__/authorization.test.d.ts +2 -0
  27. package/dist/ic/__tests__/authorization.test.d.ts.map +1 -0
  28. package/dist/ic/__tests__/authorization.test.js +31 -0
  29. package/dist/ic/__tests__/authorization.test.js.map +1 -0
  30. package/dist/ic/__tests__/encryption.test.d.ts +2 -0
  31. package/dist/ic/__tests__/encryption.test.d.ts.map +1 -0
  32. package/dist/ic/__tests__/encryption.test.js +28 -0
  33. package/dist/ic/__tests__/encryption.test.js.map +1 -0
  34. package/dist/ic/__tests__/storage_localnet.test.d.ts +2 -0
  35. package/dist/ic/__tests__/storage_localnet.test.d.ts.map +1 -0
  36. package/dist/ic/__tests__/storage_localnet.test.js +131 -0
  37. package/dist/ic/__tests__/storage_localnet.test.js.map +1 -0
  38. package/dist/ic/authorization.d.ts +10 -0
  39. package/dist/ic/authorization.d.ts.map +1 -0
  40. package/dist/ic/authorization.js +54 -0
  41. package/dist/ic/authorization.js.map +1 -0
  42. package/dist/ic/client.d.ts +66 -0
  43. package/dist/ic/client.d.ts.map +1 -0
  44. package/dist/ic/client.js +192 -0
  45. package/dist/ic/client.js.map +1 -0
  46. package/dist/ic/config.d.ts +6 -0
  47. package/dist/ic/config.d.ts.map +1 -0
  48. package/dist/ic/config.js +15 -0
  49. package/dist/ic/config.js.map +1 -0
  50. package/dist/ic/connections.d.ts +28 -0
  51. package/dist/ic/connections.d.ts.map +1 -0
  52. package/dist/ic/connections.js +74 -0
  53. package/dist/ic/connections.js.map +1 -0
  54. package/dist/ic/encryption.d.ts +15 -0
  55. package/dist/ic/encryption.d.ts.map +1 -0
  56. package/dist/ic/encryption.js +115 -0
  57. package/dist/ic/encryption.js.map +1 -0
  58. package/dist/ic/errors.d.ts +7 -0
  59. package/dist/ic/errors.d.ts.map +1 -0
  60. package/dist/ic/errors.js +13 -0
  61. package/dist/ic/errors.js.map +1 -0
  62. package/dist/ic/index.d.ts +9 -0
  63. package/dist/ic/index.d.ts.map +1 -0
  64. package/dist/ic/index.js +9 -0
  65. package/dist/ic/index.js.map +1 -0
  66. package/dist/ic/invoice.d.ts +4 -0
  67. package/dist/ic/invoice.d.ts.map +1 -0
  68. package/dist/ic/invoice.js +25 -0
  69. package/dist/ic/invoice.js.map +1 -0
  70. package/dist/ic/recipient.d.ts +8 -0
  71. package/dist/ic/recipient.d.ts.map +1 -0
  72. package/dist/ic/recipient.js +21 -0
  73. package/dist/ic/recipient.js.map +1 -0
  74. package/dist/ic/types.d.ts +64 -0
  75. package/dist/ic/types.d.ts.map +1 -0
  76. package/dist/ic/types.js +2 -0
  77. package/dist/ic/types.js.map +1 -0
  78. package/dist/index.d.ts +20 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +20 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/onchain/contracts.d.ts +14512 -0
  83. package/dist/onchain/contracts.d.ts.map +1 -0
  84. package/dist/onchain/contracts.js +39 -0
  85. package/dist/onchain/contracts.js.map +1 -0
  86. package/dist/operations/invoice.d.ts +17 -0
  87. package/dist/operations/invoice.d.ts.map +1 -0
  88. package/dist/operations/invoice.js +115 -0
  89. package/dist/operations/invoice.js.map +1 -0
  90. package/dist/operations/minter.d.ts +18 -0
  91. package/dist/operations/minter.d.ts.map +1 -0
  92. package/dist/operations/minter.js +77 -0
  93. package/dist/operations/minter.js.map +1 -0
  94. package/dist/operations/privateSend.d.ts +17 -0
  95. package/dist/operations/privateSend.d.ts.map +1 -0
  96. package/dist/operations/privateSend.js +48 -0
  97. package/dist/operations/privateSend.js.map +1 -0
  98. package/dist/operations/receive.d.ts +45 -0
  99. package/dist/operations/receive.d.ts.map +1 -0
  100. package/dist/operations/receive.js +107 -0
  101. package/dist/operations/receive.js.map +1 -0
  102. package/dist/operations/scanner.d.ts +21 -0
  103. package/dist/operations/scanner.d.ts.map +1 -0
  104. package/dist/operations/scanner.js +68 -0
  105. package/dist/operations/scanner.js.map +1 -0
  106. package/dist/operations/teleport.d.ts +3 -0
  107. package/dist/operations/teleport.d.ts.map +1 -0
  108. package/dist/operations/teleport.js +11 -0
  109. package/dist/operations/teleport.js.map +1 -0
  110. package/dist/operations/teleportProof.d.ts +30 -0
  111. package/dist/operations/teleportProof.d.ts.map +1 -0
  112. package/dist/operations/teleportProof.js +44 -0
  113. package/dist/operations/teleportProof.js.map +1 -0
  114. package/dist/registry/tokens.d.ts +39 -0
  115. package/dist/registry/tokens.d.ts.map +1 -0
  116. package/dist/registry/tokens.js +207 -0
  117. package/dist/registry/tokens.js.map +1 -0
  118. package/dist/sdk.d.ts +45 -0
  119. package/dist/sdk.d.ts.map +1 -0
  120. package/dist/sdk.js +99 -0
  121. package/dist/sdk.js.map +1 -0
  122. package/dist/sdk.test.d.ts +2 -0
  123. package/dist/sdk.test.d.ts.map +1 -0
  124. package/dist/sdk.test.js +43 -0
  125. package/dist/sdk.test.js.map +1 -0
  126. package/dist/types.d.ts +164 -0
  127. package/dist/types.d.ts.map +1 -0
  128. package/dist/types.js +2 -0
  129. package/dist/types.js.map +1 -0
  130. package/dist/utils/__tests__/merkle.test.d.ts +2 -0
  131. package/dist/utils/__tests__/merkle.test.d.ts.map +1 -0
  132. package/dist/utils/__tests__/merkle.test.js +65 -0
  133. package/dist/utils/__tests__/merkle.test.js.map +1 -0
  134. package/dist/utils/hex.d.ts +13 -0
  135. package/dist/utils/hex.d.ts.map +1 -0
  136. package/dist/utils/hex.js +94 -0
  137. package/dist/utils/hex.js.map +1 -0
  138. package/dist/utils/http.d.ts +2 -0
  139. package/dist/utils/http.d.ts.map +1 -0
  140. package/dist/utils/http.js +7 -0
  141. package/dist/utils/http.js.map +1 -0
  142. package/dist/utils/merkle.d.ts +15 -0
  143. package/dist/utils/merkle.d.ts.map +1 -0
  144. package/dist/utils/merkle.js +90 -0
  145. package/dist/utils/merkle.js.map +1 -0
  146. package/dist/wasm/__tests__/validation.test.d.ts +2 -0
  147. package/dist/wasm/__tests__/validation.test.d.ts.map +1 -0
  148. package/dist/wasm/__tests__/validation.test.js +37 -0
  149. package/dist/wasm/__tests__/validation.test.js.map +1 -0
  150. package/dist/wasm/artifacts.d.ts +31 -0
  151. package/dist/wasm/artifacts.d.ts.map +1 -0
  152. package/dist/wasm/artifacts.js +70 -0
  153. package/dist/wasm/artifacts.js.map +1 -0
  154. package/dist/wasm/index.d.ts +69 -0
  155. package/dist/wasm/index.d.ts.map +1 -0
  156. package/dist/wasm/index.js +504 -0
  157. package/dist/wasm/index.js.map +1 -0
  158. package/dist/zkp/__tests__/proofUtils.test.d.ts +2 -0
  159. package/dist/zkp/__tests__/proofUtils.test.d.ts.map +1 -0
  160. package/dist/zkp/__tests__/proofUtils.test.js +19 -0
  161. package/dist/zkp/__tests__/proofUtils.test.js.map +1 -0
  162. package/dist/zkp/__tests__/runNovaProver.test.d.ts +2 -0
  163. package/dist/zkp/__tests__/runNovaProver.test.d.ts.map +1 -0
  164. package/dist/zkp/__tests__/runNovaProver.test.js +112 -0
  165. package/dist/zkp/__tests__/runNovaProver.test.js.map +1 -0
  166. package/dist/zkp/index.d.ts +3 -0
  167. package/dist/zkp/index.d.ts.map +1 -0
  168. package/dist/zkp/index.js +3 -0
  169. package/dist/zkp/index.js.map +1 -0
  170. package/dist/zkp/proofService.d.ts +12 -0
  171. package/dist/zkp/proofService.d.ts.map +1 -0
  172. package/dist/zkp/proofService.js +140 -0
  173. package/dist/zkp/proofService.js.map +1 -0
  174. package/dist/zkp/proofUtils.d.ts +7 -0
  175. package/dist/zkp/proofUtils.d.ts.map +1 -0
  176. package/dist/zkp/proofUtils.js +61 -0
  177. package/dist/zkp/proofUtils.js.map +1 -0
  178. package/dist/zkp/worker.d.ts +2 -0
  179. package/dist/zkp/worker.d.ts.map +1 -0
  180. package/dist/zkp/worker.js +49 -0
  181. package/dist/zkp/worker.js.map +1 -0
  182. package/dist/zkp/workerClient.d.ts +5 -0
  183. package/dist/zkp/workerClient.d.ts.map +1 -0
  184. package/dist/zkp/workerClient.js +80 -0
  185. package/dist/zkp/workerClient.js.map +1 -0
  186. package/dist/zkp/workerTypes.d.ts +37 -0
  187. package/dist/zkp/workerTypes.d.ts.map +1 -0
  188. package/dist/zkp/workerTypes.js +2 -0
  189. package/dist/zkp/workerTypes.js.map +1 -0
  190. package/package.json +62 -0
@@ -0,0 +1,666 @@
1
+ {
2
+ "abi": [
3
+ { "type": "constructor", "inputs": [], "stateMutability": "nonpayable" },
4
+ {
5
+ "type": "function",
6
+ "name": "depositNative",
7
+ "inputs": [],
8
+ "outputs": [],
9
+ "stateMutability": "payable"
10
+ },
11
+ {
12
+ "type": "function",
13
+ "name": "depositToken",
14
+ "inputs": [{ "name": "amount", "type": "uint256", "internalType": "uint256" }],
15
+ "outputs": [],
16
+ "stateMutability": "nonpayable"
17
+ },
18
+ {
19
+ "type": "function",
20
+ "name": "initialize",
21
+ "inputs": [
22
+ { "name": "zerc20Token_", "type": "address", "internalType": "address" },
23
+ { "name": "tokenAddress_", "type": "address", "internalType": "address" },
24
+ { "name": "initialOwner", "type": "address", "internalType": "address" }
25
+ ],
26
+ "outputs": [],
27
+ "stateMutability": "nonpayable"
28
+ },
29
+ {
30
+ "type": "function",
31
+ "name": "owner",
32
+ "inputs": [],
33
+ "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
34
+ "stateMutability": "view"
35
+ },
36
+ {
37
+ "type": "function",
38
+ "name": "proxiableUUID",
39
+ "inputs": [],
40
+ "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }],
41
+ "stateMutability": "view"
42
+ },
43
+ {
44
+ "type": "function",
45
+ "name": "renounceOwnership",
46
+ "inputs": [],
47
+ "outputs": [],
48
+ "stateMutability": "nonpayable"
49
+ },
50
+ {
51
+ "type": "function",
52
+ "name": "tokenAddress",
53
+ "inputs": [],
54
+ "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
55
+ "stateMutability": "view"
56
+ },
57
+ {
58
+ "type": "function",
59
+ "name": "transferOwnership",
60
+ "inputs": [{ "name": "newOwner", "type": "address", "internalType": "address" }],
61
+ "outputs": [],
62
+ "stateMutability": "nonpayable"
63
+ },
64
+ {
65
+ "type": "function",
66
+ "name": "upgradeTo",
67
+ "inputs": [{ "name": "newImplementation", "type": "address", "internalType": "address" }],
68
+ "outputs": [],
69
+ "stateMutability": "nonpayable"
70
+ },
71
+ {
72
+ "type": "function",
73
+ "name": "upgradeToAndCall",
74
+ "inputs": [
75
+ { "name": "newImplementation", "type": "address", "internalType": "address" },
76
+ { "name": "data", "type": "bytes", "internalType": "bytes" }
77
+ ],
78
+ "outputs": [],
79
+ "stateMutability": "payable"
80
+ },
81
+ {
82
+ "type": "function",
83
+ "name": "withdrawNative",
84
+ "inputs": [{ "name": "amount", "type": "uint256", "internalType": "uint256" }],
85
+ "outputs": [],
86
+ "stateMutability": "nonpayable"
87
+ },
88
+ {
89
+ "type": "function",
90
+ "name": "withdrawToken",
91
+ "inputs": [{ "name": "amount", "type": "uint256", "internalType": "uint256" }],
92
+ "outputs": [],
93
+ "stateMutability": "nonpayable"
94
+ },
95
+ {
96
+ "type": "function",
97
+ "name": "zerc20Token",
98
+ "inputs": [],
99
+ "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
100
+ "stateMutability": "view"
101
+ },
102
+ {
103
+ "type": "event",
104
+ "name": "AdminChanged",
105
+ "inputs": [
106
+ { "name": "previousAdmin", "type": "address", "indexed": false, "internalType": "address" },
107
+ { "name": "newAdmin", "type": "address", "indexed": false, "internalType": "address" }
108
+ ],
109
+ "anonymous": false
110
+ },
111
+ {
112
+ "type": "event",
113
+ "name": "BeaconUpgraded",
114
+ "inputs": [
115
+ { "name": "beacon", "type": "address", "indexed": true, "internalType": "address" }
116
+ ],
117
+ "anonymous": false
118
+ },
119
+ {
120
+ "type": "event",
121
+ "name": "Initialized",
122
+ "inputs": [{ "name": "version", "type": "uint8", "indexed": false, "internalType": "uint8" }],
123
+ "anonymous": false
124
+ },
125
+ {
126
+ "type": "event",
127
+ "name": "NativeDeposited",
128
+ "inputs": [
129
+ { "name": "account", "type": "address", "indexed": true, "internalType": "address" },
130
+ { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }
131
+ ],
132
+ "anonymous": false
133
+ },
134
+ {
135
+ "type": "event",
136
+ "name": "NativeWithdrawn",
137
+ "inputs": [
138
+ { "name": "account", "type": "address", "indexed": true, "internalType": "address" },
139
+ { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }
140
+ ],
141
+ "anonymous": false
142
+ },
143
+ {
144
+ "type": "event",
145
+ "name": "OwnershipTransferred",
146
+ "inputs": [
147
+ { "name": "previousOwner", "type": "address", "indexed": true, "internalType": "address" },
148
+ { "name": "newOwner", "type": "address", "indexed": true, "internalType": "address" }
149
+ ],
150
+ "anonymous": false
151
+ },
152
+ {
153
+ "type": "event",
154
+ "name": "TokenDeposited",
155
+ "inputs": [
156
+ { "name": "account", "type": "address", "indexed": true, "internalType": "address" },
157
+ { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }
158
+ ],
159
+ "anonymous": false
160
+ },
161
+ {
162
+ "type": "event",
163
+ "name": "TokenWithdrawn",
164
+ "inputs": [
165
+ { "name": "account", "type": "address", "indexed": true, "internalType": "address" },
166
+ { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }
167
+ ],
168
+ "anonymous": false
169
+ },
170
+ {
171
+ "type": "event",
172
+ "name": "Upgraded",
173
+ "inputs": [
174
+ { "name": "implementation", "type": "address", "indexed": true, "internalType": "address" }
175
+ ],
176
+ "anonymous": false
177
+ },
178
+ {
179
+ "type": "error",
180
+ "name": "InsufficientNativeLiquidity",
181
+ "inputs": [
182
+ { "name": "available", "type": "uint256", "internalType": "uint256" },
183
+ { "name": "requested", "type": "uint256", "internalType": "uint256" }
184
+ ]
185
+ },
186
+ {
187
+ "type": "error",
188
+ "name": "InsufficientTokenLiquidity",
189
+ "inputs": [
190
+ { "name": "available", "type": "uint256", "internalType": "uint256" },
191
+ { "name": "requested", "type": "uint256", "internalType": "uint256" }
192
+ ]
193
+ },
194
+ { "type": "error", "name": "NativeDisabled", "inputs": [] },
195
+ { "type": "error", "name": "NativeTransferFailed", "inputs": [] },
196
+ { "type": "error", "name": "TokenDisabled", "inputs": [] },
197
+ { "type": "error", "name": "ZeroAmount", "inputs": [] },
198
+ { "type": "error", "name": "ZeroOwner", "inputs": [] },
199
+ { "type": "error", "name": "ZeroZerc20Token", "inputs": [] }
200
+ ],
201
+ "bytecode": {
202
+ "object": "0x60a060405230608052348015610013575f5ffd5b5061001c610021565b6100dd565b5f54610100900460ff161561008c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146100db575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516117286101115f395f818161024e01528181610297015281816103340152818161037401526105a401526117285ff3fe6080604052600436106100bf575f3560e01c806384276d811161007c578063c0c53b8b11610057578063c0c53b8b146101df578063c9c97cd4146101fe578063db6b52461461021d578063f2fde38b14610225575f5ffd5b806384276d81146101705780638da5cb5b1461018f5780639d76ea58146101c0575f5ffd5b80633659cfe6146100c35780634f1ef286146100e457806350baa622146100f757806352d1902d146101165780636215be771461013d578063715018a61461015c575b5f5ffd5b3480156100ce575f5ffd5b506100e26100dd3660046113ff565b610244565b005b6100e26100f236600461142c565b61032a565b348015610102575f5ffd5b506100e26101113660046114f0565b6103f9565b348015610121575f5ffd5b5061012a610598565b6040519081526020015b60405180910390f35b348015610148575f5ffd5b506100e26101573660046114f0565b610649565b348015610167575f5ffd5b506100e2610750565b34801561017b575f5ffd5b506100e261018a3660046114f0565b610763565b34801561019a575f5ffd5b506033546001600160a01b03165b6040516001600160a01b039091168152602001610134565b3480156101cb575f5ffd5b5060fc546101a8906001600160a01b031681565b3480156101ea575f5ffd5b506100e26101f9366004611507565b6108e7565b348015610209575f5ffd5b5060fb546101a8906001600160a01b031681565b6100e2610a8c565b348015610230575f5ffd5b506100e261023f3660046113ff565b610b7f565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036102955760405162461bcd60e51b815260040161028c90611547565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166102dd5f5160206116ac5f395f51905f52546001600160a01b031690565b6001600160a01b0316146103035760405162461bcd60e51b815260040161028c90611593565b61030c81610bf5565b604080515f8082526020820190925261032791839190610bfd565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103725760405162461bcd60e51b815260040161028c90611547565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166103ba5f5160206116ac5f395f51905f52546001600160a01b031690565b6001600160a01b0316146103e05760405162461bcd60e51b815260040161028c90611593565b6103e982610bf5565b6103f582826001610bfd565b5050565b610401610d6c565b60fc546001600160a01b031661042a57604051631931ea8560e01b815260040160405180910390fd5b805f0361044a57604051631f2a200560e01b815260040160405180910390fd5b60fc546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610490573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b491906115df565b9050818110156104e157604051639a4305c760e01b8152600481018290526024810183905260440161028c565b60fb54604051632770a7eb60e21b8152336004820152602481018490526001600160a01b0390911690639dc29fac906044015f604051808303815f87803b15801561052a575f5ffd5b505af115801561053c573d5f5f3e3d5ffd5b505060fc5461055892506001600160a01b031690503384610dc5565b60405182815233907fa2bd9fcfcdba69f52bcd9a520846ad4bd685b187483f53efc42d035b2ddebff09060200160405180910390a250610327600160c955565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106375760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161028c565b505f5160206116ac5f395f51905f5290565b610651610d6c565b60fc546001600160a01b031661067a57604051631931ea8560e01b815260040160405180910390fd5b805f0361069a57604051631f2a200560e01b815260040160405180910390fd5b60fc546106b2906001600160a01b0316333084610e2f565b60fb546040516340c10f1960e01b8152336004820152602481018390526001600160a01b03909116906340c10f19906044015f604051808303815f87803b1580156106fb575f5ffd5b505af115801561070d573d5f5f3e3d5ffd5b50506040518381523392507fbc7c8a4d8049a3f99a02f2a20640c206a2e4d3f2fa54fd20da9f01fda3620cda915060200160405180910390a2610327600160c955565b610758610e67565b6107615f610ec1565b565b61076b610d6c565b60fc546001600160a01b0316156107955760405163523693b760e11b815260040160405180910390fd5b805f036107b557604051631f2a200560e01b815260040160405180910390fd5b47818110156107e1576040516332843e9560e11b8152600481018290526024810183905260440161028c565b60fb54604051632770a7eb60e21b8152336004820152602481018490526001600160a01b0390911690639dc29fac906044015f604051808303815f87803b15801561082a575f5ffd5b505af115801561083c573d5f5f3e3d5ffd5b50506040515f925033915084908381818185875af1925050503d805f811461087f576040519150601f19603f3d011682016040523d82523d5f602084013e610884565b606091505b50509050806108a657604051633d2cec6f60e21b815260040160405180910390fd5b60405183815233907fc303ca808382409472acbbf899c316cf439f409f6584aae22df86dfa3c9ed5049060200160405180910390a25050610327600160c955565b5f54610100900460ff161580801561090557505f54600160ff909116105b8061091e5750303b15801561091e57505f5460ff166001145b6109815760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161028c565b5f805460ff1916600117905580156109a2575f805461ff0019166101001790555b6001600160a01b0384166109c9576040516359ff06f960e01b815260040160405180910390fd5b6001600160a01b0382166109f057604051639905827b60e01b815260040160405180910390fd5b6109f8610f12565b610a00610f40565b610a08610f66565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc805492861692909116919091179055610a4182610ec1565b8015610a86575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610a94610d6c565b60fc546001600160a01b031615610abe5760405163523693b760e11b815260040160405180910390fd5b345f819003610ae057604051631f2a200560e01b815260040160405180910390fd5b60fb546040516340c10f1960e01b8152336004820152602481018390526001600160a01b03909116906340c10f19906044015f604051808303815f87803b158015610b29575f5ffd5b505af1158015610b3b573d5f5f3e3d5ffd5b50506040518381523392507fb5d7700fb0cf415158b8db7cc7c39f0eab16a825c92e221404b4c8bb099b4bbb915060200160405180910390a250610761600160c955565b610b87610e67565b6001600160a01b038116610bec5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161028c565b61032781610ec1565b610327610e67565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610c3557610c3083610f94565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610c8f575060408051601f3d908101601f19168201909252610c8c918101906115df565b60015b610cf25760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161028c565b5f5160206116ac5f395f51905f528114610d605760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161028c565b50610c3083838361102f565b600260c95403610dbe5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161028c565b600260c955565b6040516001600160a01b038316602482015260448101829052610c3090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611053565b600160c955565b6040516001600160a01b0380851660248301528316604482015260648101829052610a869085906323b872dd60e01b90608401610df1565b6033546001600160a01b031633146107615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161028c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16610f385760405162461bcd60e51b815260040161028c906115f6565b610761611126565b5f54610100900460ff166107615760405162461bcd60e51b815260040161028c906115f6565b5f54610100900460ff16610f8c5760405162461bcd60e51b815260040161028c906115f6565b610761611155565b6001600160a01b0381163b6110015760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161028c565b5f5160206116ac5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b6110388361117b565b5f825111806110445750805b15610c3057610a8683836111ba565b5f6110a7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166111e69092919063ffffffff16565b905080515f14806110c75750808060200190518101906110c79190611641565b610c305760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161028c565b5f54610100900460ff1661114c5760405162461bcd60e51b815260040161028c906115f6565b61076133610ec1565b5f54610100900460ff16610e285760405162461bcd60e51b815260040161028c906115f6565b61118481610f94565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606111df83836040518060600160405280602781526020016116cc602791396111fc565b9392505050565b60606111f484845f85611270565b949350505050565b60605f5f856001600160a01b0316856040516112189190611660565b5f60405180830381855af49150503d805f8114611250576040519150601f19603f3d011682016040523d82523d5f602084013e611255565b606091505b509150915061126686838387611347565b9695505050505050565b6060824710156112d15760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161028c565b5f5f866001600160a01b031685876040516112ec9190611660565b5f6040518083038185875af1925050503d805f8114611326576040519150601f19603f3d011682016040523d82523d5f602084013e61132b565b606091505b509150915061133c87838387611347565b979650505050505050565b606083156113b55782515f036113ae576001600160a01b0385163b6113ae5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161028c565b50816111f4565b6111f483838151156113ca5781518083602001fd5b8060405162461bcd60e51b815260040161028c9190611676565b80356001600160a01b03811681146113fa575f5ffd5b919050565b5f6020828403121561140f575f5ffd5b6111df826113e4565b634e487b7160e01b5f52604160045260245ffd5b5f5f6040838503121561143d575f5ffd5b611446836113e4565b9150602083013567ffffffffffffffff811115611461575f5ffd5b8301601f81018513611471575f5ffd5b803567ffffffffffffffff81111561148b5761148b611418565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156114ba576114ba611418565b6040528181528282016020018710156114d1575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f60208284031215611500575f5ffd5b5035919050565b5f5f5f60608486031215611519575f5ffd5b611522846113e4565b9250611530602085016113e4565b915061153e604085016113e4565b90509250925092565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f602082840312156115ef575f5ffd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f60208284031215611651575f5ffd5b815180151581146111df575f5ffd5b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f8301168401019150509291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c729c17bbd41341ad834f5d5eb21f5dbb75ad3c414c329c3fb1188d16e3d69eb64736f6c634300081e0033",
203
+ "sourceMap": "998:5731:39:-:0;;;1198:4:21;1155:48;;2607:53:39;;;;;;;;;-1:-1:-1;2631:22:39;:20;:22::i;:::-;998:5731;;5939:280:20;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:20;;216:2:41;5998:66:20;;;198:21:41;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:41;;;338:37;392:19;;5998:66:20;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:20;6140:15;6125:30;;;;;;6174:28;;564:36:41;;;6174:28:20;;552:2:41;537:18;6174:28:20;;;;;;;6074:139;5939:280::o;422:184:41:-;998:5731:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
204
+ "linkReferences": {}
205
+ },
206
+ "deployedBytecode": {
207
+ "object": "0x6080604052600436106100bf575f3560e01c806384276d811161007c578063c0c53b8b11610057578063c0c53b8b146101df578063c9c97cd4146101fe578063db6b52461461021d578063f2fde38b14610225575f5ffd5b806384276d81146101705780638da5cb5b1461018f5780639d76ea58146101c0575f5ffd5b80633659cfe6146100c35780634f1ef286146100e457806350baa622146100f757806352d1902d146101165780636215be771461013d578063715018a61461015c575b5f5ffd5b3480156100ce575f5ffd5b506100e26100dd3660046113ff565b610244565b005b6100e26100f236600461142c565b61032a565b348015610102575f5ffd5b506100e26101113660046114f0565b6103f9565b348015610121575f5ffd5b5061012a610598565b6040519081526020015b60405180910390f35b348015610148575f5ffd5b506100e26101573660046114f0565b610649565b348015610167575f5ffd5b506100e2610750565b34801561017b575f5ffd5b506100e261018a3660046114f0565b610763565b34801561019a575f5ffd5b506033546001600160a01b03165b6040516001600160a01b039091168152602001610134565b3480156101cb575f5ffd5b5060fc546101a8906001600160a01b031681565b3480156101ea575f5ffd5b506100e26101f9366004611507565b6108e7565b348015610209575f5ffd5b5060fb546101a8906001600160a01b031681565b6100e2610a8c565b348015610230575f5ffd5b506100e261023f3660046113ff565b610b7f565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036102955760405162461bcd60e51b815260040161028c90611547565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166102dd5f5160206116ac5f395f51905f52546001600160a01b031690565b6001600160a01b0316146103035760405162461bcd60e51b815260040161028c90611593565b61030c81610bf5565b604080515f8082526020820190925261032791839190610bfd565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103725760405162461bcd60e51b815260040161028c90611547565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166103ba5f5160206116ac5f395f51905f52546001600160a01b031690565b6001600160a01b0316146103e05760405162461bcd60e51b815260040161028c90611593565b6103e982610bf5565b6103f582826001610bfd565b5050565b610401610d6c565b60fc546001600160a01b031661042a57604051631931ea8560e01b815260040160405180910390fd5b805f0361044a57604051631f2a200560e01b815260040160405180910390fd5b60fc546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610490573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b491906115df565b9050818110156104e157604051639a4305c760e01b8152600481018290526024810183905260440161028c565b60fb54604051632770a7eb60e21b8152336004820152602481018490526001600160a01b0390911690639dc29fac906044015f604051808303815f87803b15801561052a575f5ffd5b505af115801561053c573d5f5f3e3d5ffd5b505060fc5461055892506001600160a01b031690503384610dc5565b60405182815233907fa2bd9fcfcdba69f52bcd9a520846ad4bd685b187483f53efc42d035b2ddebff09060200160405180910390a250610327600160c955565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106375760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161028c565b505f5160206116ac5f395f51905f5290565b610651610d6c565b60fc546001600160a01b031661067a57604051631931ea8560e01b815260040160405180910390fd5b805f0361069a57604051631f2a200560e01b815260040160405180910390fd5b60fc546106b2906001600160a01b0316333084610e2f565b60fb546040516340c10f1960e01b8152336004820152602481018390526001600160a01b03909116906340c10f19906044015f604051808303815f87803b1580156106fb575f5ffd5b505af115801561070d573d5f5f3e3d5ffd5b50506040518381523392507fbc7c8a4d8049a3f99a02f2a20640c206a2e4d3f2fa54fd20da9f01fda3620cda915060200160405180910390a2610327600160c955565b610758610e67565b6107615f610ec1565b565b61076b610d6c565b60fc546001600160a01b0316156107955760405163523693b760e11b815260040160405180910390fd5b805f036107b557604051631f2a200560e01b815260040160405180910390fd5b47818110156107e1576040516332843e9560e11b8152600481018290526024810183905260440161028c565b60fb54604051632770a7eb60e21b8152336004820152602481018490526001600160a01b0390911690639dc29fac906044015f604051808303815f87803b15801561082a575f5ffd5b505af115801561083c573d5f5f3e3d5ffd5b50506040515f925033915084908381818185875af1925050503d805f811461087f576040519150601f19603f3d011682016040523d82523d5f602084013e610884565b606091505b50509050806108a657604051633d2cec6f60e21b815260040160405180910390fd5b60405183815233907fc303ca808382409472acbbf899c316cf439f409f6584aae22df86dfa3c9ed5049060200160405180910390a25050610327600160c955565b5f54610100900460ff161580801561090557505f54600160ff909116105b8061091e5750303b15801561091e57505f5460ff166001145b6109815760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161028c565b5f805460ff1916600117905580156109a2575f805461ff0019166101001790555b6001600160a01b0384166109c9576040516359ff06f960e01b815260040160405180910390fd5b6001600160a01b0382166109f057604051639905827b60e01b815260040160405180910390fd5b6109f8610f12565b610a00610f40565b610a08610f66565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc805492861692909116919091179055610a4182610ec1565b8015610a86575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610a94610d6c565b60fc546001600160a01b031615610abe5760405163523693b760e11b815260040160405180910390fd5b345f819003610ae057604051631f2a200560e01b815260040160405180910390fd5b60fb546040516340c10f1960e01b8152336004820152602481018390526001600160a01b03909116906340c10f19906044015f604051808303815f87803b158015610b29575f5ffd5b505af1158015610b3b573d5f5f3e3d5ffd5b50506040518381523392507fb5d7700fb0cf415158b8db7cc7c39f0eab16a825c92e221404b4c8bb099b4bbb915060200160405180910390a250610761600160c955565b610b87610e67565b6001600160a01b038116610bec5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161028c565b61032781610ec1565b610327610e67565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610c3557610c3083610f94565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610c8f575060408051601f3d908101601f19168201909252610c8c918101906115df565b60015b610cf25760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161028c565b5f5160206116ac5f395f51905f528114610d605760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161028c565b50610c3083838361102f565b600260c95403610dbe5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161028c565b600260c955565b6040516001600160a01b038316602482015260448101829052610c3090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611053565b600160c955565b6040516001600160a01b0380851660248301528316604482015260648101829052610a869085906323b872dd60e01b90608401610df1565b6033546001600160a01b031633146107615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161028c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16610f385760405162461bcd60e51b815260040161028c906115f6565b610761611126565b5f54610100900460ff166107615760405162461bcd60e51b815260040161028c906115f6565b5f54610100900460ff16610f8c5760405162461bcd60e51b815260040161028c906115f6565b610761611155565b6001600160a01b0381163b6110015760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161028c565b5f5160206116ac5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b6110388361117b565b5f825111806110445750805b15610c3057610a8683836111ba565b5f6110a7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166111e69092919063ffffffff16565b905080515f14806110c75750808060200190518101906110c79190611641565b610c305760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161028c565b5f54610100900460ff1661114c5760405162461bcd60e51b815260040161028c906115f6565b61076133610ec1565b5f54610100900460ff16610e285760405162461bcd60e51b815260040161028c906115f6565b61118481610f94565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606111df83836040518060600160405280602781526020016116cc602791396111fc565b9392505050565b60606111f484845f85611270565b949350505050565b60605f5f856001600160a01b0316856040516112189190611660565b5f60405180830381855af49150503d805f8114611250576040519150601f19603f3d011682016040523d82523d5f602084013e611255565b606091505b509150915061126686838387611347565b9695505050505050565b6060824710156112d15760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161028c565b5f5f866001600160a01b031685876040516112ec9190611660565b5f6040518083038185875af1925050503d805f8114611326576040519150601f19603f3d011682016040523d82523d5f602084013e61132b565b606091505b509150915061133c87838387611347565b979650505050505050565b606083156113b55782515f036113ae576001600160a01b0385163b6113ae5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161028c565b50816111f4565b6111f483838151156113ca5781518083602001fd5b8060405162461bcd60e51b815260040161028c9190611676565b80356001600160a01b03811681146113fa575f5ffd5b919050565b5f6020828403121561140f575f5ffd5b6111df826113e4565b634e487b7160e01b5f52604160045260245ffd5b5f5f6040838503121561143d575f5ffd5b611446836113e4565b9150602083013567ffffffffffffffff811115611461575f5ffd5b8301601f81018513611471575f5ffd5b803567ffffffffffffffff81111561148b5761148b611418565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156114ba576114ba611418565b6040528181528282016020018710156114d1575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f60208284031215611500575f5ffd5b5035919050565b5f5f5f60608486031215611519575f5ffd5b611522846113e4565b9250611530602085016113e4565b915061153e604085016113e4565b90509250925092565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f602082840312156115ef575f5ffd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f60208284031215611651575f5ffd5b815180151581146111df575f5ffd5b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f8301168401019150509291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c729c17bbd41341ad834f5d5eb21f5dbb75ad3c414c329c3fb1188d16e3d69eb64736f6c634300081e0033",
208
+ "sourceMap": "998:5731:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3408:195:21;;;;;;;;;;-1:-1:-1;3408:195:21;;;;;:::i;:::-;;:::i;:::-;;3922:220;;;;;;:::i;:::-;;:::i;5903:546:39:-;;;;;;;;;;-1:-1:-1;5903:546:39;;;;;:::i;:::-;;:::i;3027:131:21:-;;;;;;;;;;;;;:::i;:::-;;;1869:25:41;;;1857:2;1842:18;3027:131:21;;;;;;;;4351:391:39;;;;;;;;;;-1:-1:-1;4351:391:39;;;;;:::i;:::-;;:::i;2085:101:15:-;;;;;;;;;;;;;:::i;5133:557:39:-;;;;;;;;;;-1:-1:-1;5133:557:39;;;;;:::i;:::-;;:::i;1462:85:15:-;;;;;;;;;;-1:-1:-1;1534:6:15;;-1:-1:-1;;;;;1534:6:15;1462:85;;;-1:-1:-1;;;;;2069:32:41;;;2051:51;;2039:2;2024:18;1462:85:15;1905:203:41;2573:27:39;;;;;;;;;;-1:-1:-1;2573:27:39;;;;-1:-1:-1;;;;;2573:27:39;;;3048:474;;;;;;;;;;-1:-1:-1;3048:474:39;;;;;:::i;:::-;;:::i;2439:26::-;;;;;;;;;;-1:-1:-1;2439:26:39;;;;-1:-1:-1;;;;;2439:26:39;;;3826:330;;;:::i;2335:198:15:-;;;;;;;;;;-1:-1:-1;2335:198:15;;;;;:::i;:::-;;:::i;3408:195:21:-;-1:-1:-1;;;;;1764:6:21;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:21;;;;;;;:::i;:::-;;;;;;;;;1861:6;-1:-1:-1;;;;;1837:30:21;:20;-1:-1:-1;;;;;;;;;;;1557:65:18;-1:-1:-1;;;;;1557:65:18;;1478:151;1837:20:21;-1:-1:-1;;;;;1837:30:21;;1829:87;;;;-1:-1:-1;;;1829:87:21;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;3922:220::-;-1:-1:-1;;;;;1764:6:21;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:21;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:21;:20;-1:-1:-1;;;;;;;;;;;1557:65:18;-1:-1:-1;;;;;1557:65:18;;1478:151;1837:20:21;-1:-1:-1;;;;;1837:30:21;;1829:87;;;;-1:-1:-1;;;1829:87:21;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;:::-;3922:220:::0;;:::o;5903:546:39:-;2526:21:22;:19;:21::i;:::-;5978:12:39::1;::::0;-1:-1:-1;;;;;5978:12:39::1;5974:54;;6013:15;;-1:-1:-1::0;;;6013:15:39::1;;;;;;;;;;;5974:54;6042:6;6052:1;6042:11:::0;6038:36:::1;;6062:12;;-1:-1:-1::0;;;6062:12:39::1;;;;;;;;;;;6038:36;6123:12;::::0;6105:56:::1;::::0;-1:-1:-1;;;6105:56:39;;6155:4:::1;6105:56;::::0;::::1;2051:51:41::0;6085:17:39::1;::::0;-1:-1:-1;;;;;6123:12:39::1;::::0;6105:41:::1;::::0;2024:18:41;;6105:56:39::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6085:76;;6187:6;6175:9;:18;6171:76;;;6202:45;::::0;-1:-1:-1;;;6202:45:39;;::::1;::::0;::::1;3641:25:41::0;;;3682:18;;;3675:34;;;3614:18;;6202:45:39::1;3467:248:41::0;6171:76:39::1;6281:11;::::0;6258:60:::1;::::0;-1:-1:-1;;;6258:60:39;;6299:10:::1;6258:60;::::0;::::1;3894:51:41::0;3961:18;;;3954:34;;;-1:-1:-1;;;;;6281:11:39;;::::1;::::0;6258:40:::1;::::0;3867:18:41;;6258:60:39::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;6346:12:39::1;::::0;6328:64:::1;::::0;-1:-1:-1;;;;;;6346:12:39::1;::::0;-1:-1:-1;6373:10:39::1;6385:6:::0;6328:44:::1;:64::i;:::-;6408:34;::::0;1869:25:41;;;6423:10:39::1;::::0;6408:34:::1;::::0;1857:2:41;1842:18;6408:34:39::1;;;;;;;5964:485;2568:20:22::0;1808:1;3074:7;:22;2894:209;3027:131:21;3105:7;2190:4;-1:-1:-1;;;;;2199:6:21;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:21;;4383:2:41;2174:92:21;;;4365:21:41;4422:2;4402:18;;;4395:30;4461:34;4441:18;;;4434:62;4532:26;4512:18;;;4505:54;4576:19;;2174:92:21;4181:420:41;2174:92:21;-1:-1:-1;;;;;;;;;;;;3027:131:21;:::o;4351:391:39:-;2526:21:22;:19;:21::i;:::-;4425:12:39::1;::::0;-1:-1:-1;;;;;4425:12:39::1;4421:54;;4460:15;;-1:-1:-1::0;;;4460:15:39::1;;;;;;;;;;;4421:54;4489:6;4499:1;4489:11:::0;4485:36:::1;;4509:12;;-1:-1:-1::0;;;4509:12:39::1;;;;;;;;;;;4485:36;4550:12;::::0;4532:83:::1;::::0;-1:-1:-1;;;;;4550:12:39::1;4581:10;4601:4;4608:6:::0;4532:48:::1;:83::i;:::-;4648:11;::::0;4625:60:::1;::::0;-1:-1:-1;;;4625:60:39;;4666:10:::1;4625:60;::::0;::::1;3894:51:41::0;3961:18;;;3954:34;;;-1:-1:-1;;;;;4648:11:39;;::::1;::::0;4625:40:::1;::::0;3867:18:41;;4625:60:39::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;4701:34:39::1;::::0;1869:25:41;;;4716:10:39::1;::::0;-1:-1:-1;4701:34:39::1;::::0;-1:-1:-1;1857:2:41;1842:18;4701:34:39::1;;;;;;;2568:20:22::0;1808:1;3074:7;:22;2894:209;2085:101:15;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;5133:557:39:-;2526:21:22;:19;:21::i;:::-;5209:12:39::1;::::0;-1:-1:-1;;;;;5209:12:39::1;:26:::0;5205:55:::1;;5244:16;;-1:-1:-1::0;;;5244:16:39::1;;;;;;;;;;;5205:55;5274:6;5284:1;5274:11:::0;5270:36:::1;;5294:12;;-1:-1:-1::0;;;5294:12:39::1;;;;;;;;;;;5270:36;5337:21;5372:18:::0;;::::1;5368:77;;;5399:46;::::0;-1:-1:-1;;;5399:46:39;;::::1;::::0;::::1;3641:25:41::0;;;3682:18;;;3675:34;;;3614:18;;5399:46:39::1;3467:248:41::0;5368:77:39::1;5479:11;::::0;5456:60:::1;::::0;-1:-1:-1;;;5456:60:39;;5497:10:::1;5456:60;::::0;::::1;3894:51:41::0;3961:18;;;3954:34;;;-1:-1:-1;;;;;5479:11:39;;::::1;::::0;5456:40:::1;::::0;3867:18:41;;5456:60:39::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;5545:34:39::1;::::0;5528:12:::1;::::0;-1:-1:-1;5545:10:39::1;::::0;-1:-1:-1;5568:6:39;;5528:12;5545:34;5528:12;5545:34;5568:6;5545:10;:34:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5527:52;;;5594:7;5589:43;;5610:22;;-1:-1:-1::0;;;5610:22:39::1;;;;;;;;;;;5589:43;5648:35;::::0;1869:25:41;;;5664:10:39::1;::::0;5648:35:::1;::::0;1857:2:41;1842:18;5648:35:39::1;;;;;;;5195:495;;2568:20:22::0;1808:1;3074:7;:22;2894:209;3048:474:39;3279:19:20;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:20;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:20;1713:19:26;:23;;;3387:66:20;;-1:-1:-1;3436:12:20;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:20;;5018:2:41;3325:201:20;;;5000:21:41;5057:2;5037:18;;;5030:30;5096:34;5076:18;;;5069:62;-1:-1:-1;;;5147:18:41;;;5140:44;5201:19;;3325:201:20;4816:410:41;3325:201:20;3536:12;:16;;-1:-1:-1;;3536:16:20;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:20;;;;;3562:65;-1:-1:-1;;;;;3190:26:39;::::1;3186:56;;3225:17;;-1:-1:-1::0;;;3225:17:39::1;;;;;;;;;;;3186:56;-1:-1:-1::0;;;;;3256:26:39;::::1;3252:50;;3291:11;;-1:-1:-1::0;;;3291:11:39::1;;;;;;;;;;;3252:50;3313:16;:14;:16::i;:::-;3339:24;:22;:24::i;:::-;3373;:22;:24::i;:::-;3408:11;:26:::0;;-1:-1:-1;;;;;3408:26:39;;::::1;-1:-1:-1::0;;;;;;3408:26:39;;::::1;;::::0;;;3444:12:::1;:28:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;3483:32:::1;3502:12:::0;3483:18:::1;:32::i;:::-;3651:14:20::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:20;;;3721:14;;-1:-1:-1;5383:36:41;;3721:14:20;;5371:2:41;5356:18;3721:14:20;;;;;;;3647:99;3269:483;3048:474:39;;;:::o;3826:330::-;2526:21:22;:19;:21::i;:::-;3895:12:39::1;::::0;-1:-1:-1;;;;;3895:12:39::1;:26:::0;3891:55:::1;;3930:16;;-1:-1:-1::0;;;3930:16:39::1;;;;;;;;;;;3891:55;3973:9;3956:14;3996:11:::0;;;3992:36:::1;;4016:12;;-1:-1:-1::0;;;4016:12:39::1;;;;;;;;;;;3992:36;4062:11;::::0;4039:60:::1;::::0;-1:-1:-1;;;4039:60:39;;4080:10:::1;4039:60;::::0;::::1;3894:51:41::0;3961:18;;;3954:34;;;-1:-1:-1;;;;;4062:11:39;;::::1;::::0;4039:40:::1;::::0;3867:18:41;;4039:60:39::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;4114:35:39::1;::::0;1869:25:41;;;4130:10:39::1;::::0;-1:-1:-1;4114:35:39::1;::::0;-1:-1:-1;1857:2:41;1842:18;4114:35:39::1;;;;;;;3881:275;2568:20:22::0;1808:1;3074:7;:22;2894:209;2335:198:15;1355:13;:11;:13::i;:::-;-1:-1:-1;;;;;2423:22:15;::::1;2415:73;;;::::0;-1:-1:-1;;;2415:73:15;;5632:2:41;2415:73:15::1;::::0;::::1;5614:21:41::0;5671:2;5651:18;;;5644:30;5710:34;5690:18;;;5683:62;-1:-1:-1;;;5761:18:41;;;5754:36;5807:19;;2415:73:15::1;5430:402:41::0;2415:73:15::1;2498:28;2517:8;2498:18;:28::i;6629:66:39:-:0;1355:13:15;:11;:13::i;2841:944:18:-;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;:::-;2841:944;;;:::o;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:18;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:18;;;;;;;;-1:-1:-1;;3404:63:18;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:18;;6228:2:41;3631:56:18;;;6210:21:41;6267:2;6247:18;;;6240:30;6306:34;6286:18;;;6279:62;-1:-1:-1;;;6357:18:41;;;6350:44;6411:19;;3631:56:18;6026:410:41;3400:302:18;-1:-1:-1;;;;;;;;;;;3517:28:18;;3509:82;;;;-1:-1:-1;;;3509:82:18;;6643:2:41;3509:82:18;;;6625:21:41;6682:2;6662:18;;;6655:30;6721:34;6701:18;;;6694:62;-1:-1:-1;;;6772:18:41;;;6765:39;6821:19;;3509:82:18;6441:405:41;3509:82:18;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;2601:287:22:-;1851:1;2733:7;;:19;2725:63;;;;-1:-1:-1;;;2725:63:22;;7053:2:41;2725:63:22;;;7035:21:41;7092:2;7072:18;;;7065:30;7131:33;7111:18;;;7104:61;7182:18;;2725:63:22;6851:355:41;2725:63:22;1851:1;2863:7;:18;2601:287::o;996:186:25:-;1116:58;;-1:-1:-1;;;;;3912:32:41;;1116:58:25;;;3894:51:41;3961:18;;;3954:34;;;1089:86:25;;1109:5;;-1:-1:-1;;;1139:23:25;3867:18:41;;1116:58:25;;;;-1:-1:-1;;1116:58:25;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:58:25;-1:-1:-1;;;;;;1116:58:25;;;;;;;;;;1089:19;:86::i;2894:209:22:-;1808:1;3074:7;:22;2894:209::o;1421:214:25:-;1559:68;;-1:-1:-1;;;;;7431:32:41;;;1559:68:25;;;7413:51:41;7500:32;;7480:18;;;7473:60;7549:18;;;7542:34;;;1532:96:25;;1552:5;;-1:-1:-1;;;1582:27:25;7386:18:41;;1559:68:25;7211:371:41;1620:130:15;1534:6;;-1:-1:-1;;;;;1534:6:15;965:10:27;1683:23:15;1675:68;;;;-1:-1:-1;;;1675:68:15;;7789:2:41;1675:68:15;;;7771:21:41;;;7808:18;;;7801:30;7867:34;7847:18;;;7840:62;7919:18;;1675:68:15;7587:356:41;2687:187:15;2779:6;;;-1:-1:-1;;;;;2795:17:15;;;-1:-1:-1;;;;;;2795:17:15;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;1024:95::-;5374:13:20;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:20;;;;;;;:::i;:::-;1086:26:15::1;:24;:26::i;2290:67:21:-:0;5374:13:20;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:20;;;;;;;:::i;1889:111:22:-;5374:13:20;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:20;;;;;;;:::i;:::-;1959:34:22::1;:32;:34::i;1720:281:18:-:0;-1:-1:-1;;;;;1713:19:26;;;1793:106:18;;;;-1:-1:-1;;;1793:106:18;;8562:2:41;1793:106:18;;;8544:21:41;8601:2;8581:18;;;8574:30;8640:34;8620:18;;;8613:62;-1:-1:-1;;;8691:18:41;;;8684:43;8744:19;;1793:106:18;8360:409:41;1793:106:18;-1:-1:-1;;;;;;;;;;;1909:85:18;;-1:-1:-1;;;;;;1909:85:18;-1:-1:-1;;;;;1909:85:18;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;5328:653:25:-;5758:23;5784:69;5812:4;5784:69;;;;;;;;;;;;;;;;;5792:5;-1:-1:-1;;;;;5784:27:25;;;:69;;;;;:::i;:::-;5758:95;;5871:10;:17;5892:1;5871:22;:56;;;;5908:10;5897:30;;;;;;;;;;;;:::i;:::-;5863:111;;;;-1:-1:-1;;;5863:111:25;;9258:2:41;5863:111:25;;;9240:21:41;9297:2;9277:18;;;9270:30;9336:34;9316:18;;;9309:62;-1:-1:-1;;;9387:18:41;;;9380:40;9437:19;;5863:111:25;9056:406:41;1125:111:15;5374:13:20;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:20;;;;;;;:::i;:::-;1197:32:15::1;965:10:27::0;1197:18:15::1;:32::i;2006:109:22:-:0;5374:13:20;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:20;;;;;;;:::i;2107:152:18:-;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:18;;;;;;;;2107:152;:::o;6685:198:26:-;6768:12;6799:77;6820:6;6828:4;6799:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6792:84;6685:198;-1:-1:-1;;;6685:198:26:o;4119:223::-;4252:12;4283:52;4305:6;4313:4;4319:1;4322:12;4283:21;:52::i;:::-;4276:59;4119:223;-1:-1:-1;;;;4119:223:26:o;7069:325::-;7210:12;7235;7249:23;7276:6;-1:-1:-1;;;;;7276:19:26;7296:4;7276:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:67;;;;7318:69;7345:6;7353:7;7362:10;7374:12;7318:26;:69::i;:::-;7311:76;7069:325;-1:-1:-1;;;;;;7069:325:26:o;5176:446::-;5341:12;5398:5;5373:21;:30;;5365:81;;;;-1:-1:-1;;;5365:81:26;;9975:2:41;5365:81:26;;;9957:21:41;10014:2;9994:18;;;9987:30;10053:34;10033:18;;;10026:62;-1:-1:-1;;;10104:18:41;;;10097:36;10150:19;;5365:81:26;9773:402:41;5365:81:26;5457:12;5471:23;5498:6;-1:-1:-1;;;;;5498:11:26;5517:5;5524:4;5498:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5456:73;;;;5546:69;5573:6;5581:7;5590:10;5602:12;5546:26;:69::i;:::-;5539:76;5176:446;-1:-1:-1;;;;;;;5176:446:26:o;7682:628::-;7862:12;7890:7;7886:418;;;7917:10;:17;7938:1;7917:22;7913:286;;-1:-1:-1;;;;;1713:19:26;;;8124:60;;;;-1:-1:-1;;;8124:60:26;;10382:2:41;8124:60:26;;;10364:21:41;10421:2;10401:18;;;10394:30;10460:31;10440:18;;;10433:59;10509:18;;8124:60:26;10180:353:41;8124:60:26;-1:-1:-1;8219:10:26;8212:17;;7886:418;8260:33;8268:10;8280:12;8991:17;;:21;8987:379;;9219:10;9213:17;9275:15;9262:10;9258:2;9254:19;9247:44;8987:379;9342:12;9335:20;;-1:-1:-1;;;9335:20:26;;;;;;;;:::i;14:173:41:-;82:20;;-1:-1:-1;;;;;131:31:41;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;383:127::-;444:10;439:3;435:20;432:1;425:31;475:4;472:1;465:15;499:4;496:1;489:15;515:1018;592:6;600;653:2;641:9;632:7;628:23;624:32;621:52;;;669:1;666;659:12;621:52;692:29;711:9;692:29;:::i;:::-;682:39;;772:2;761:9;757:18;744:32;799:18;791:6;788:30;785:50;;;831:1;828;821:12;785:50;854:22;;907:4;899:13;;895:27;-1:-1:-1;885:55:41;;936:1;933;926:12;885:55;976:2;963:16;1002:18;994:6;991:30;988:56;;;1024:18;;:::i;:::-;1073:2;1067:9;1165:2;1127:17;;-1:-1:-1;;1123:31:41;;;1156:2;1119:40;1115:54;1103:67;;1200:18;1185:34;;1221:22;;;1182:62;1179:88;;;1247:18;;:::i;:::-;1283:2;1276:22;1307;;;1348:15;;;1365:2;1344:24;1341:37;-1:-1:-1;1338:57:41;;;1391:1;1388;1381:12;1338:57;1447:6;1442:2;1438;1434:11;1429:2;1421:6;1417:15;1404:50;1500:1;1495:2;1486:6;1478;1474:19;1470:28;1463:39;1521:6;1511:16;;;;;515:1018;;;;;:::o;1538:180::-;1597:6;1650:2;1638:9;1629:7;1625:23;1621:32;1618:52;;;1666:1;1663;1656:12;1618:52;-1:-1:-1;1689:23:41;;1538:180;-1:-1:-1;1538:180:41:o;2113:334::-;2190:6;2198;2206;2259:2;2247:9;2238:7;2234:23;2230:32;2227:52;;;2275:1;2272;2265:12;2227:52;2298:29;2317:9;2298:29;:::i;:::-;2288:39;;2346:38;2380:2;2369:9;2365:18;2346:38;:::i;:::-;2336:48;;2403:38;2437:2;2426:9;2422:18;2403:38;:::i;:::-;2393:48;;2113:334;;;;;:::o;2452:408::-;2654:2;2636:21;;;2693:2;2673:18;;;2666:30;2732:34;2727:2;2712:18;;2705:62;-1:-1:-1;;;2798:2:41;2783:18;;2776:42;2850:3;2835:19;;2452:408::o;2865:::-;3067:2;3049:21;;;3106:2;3086:18;;;3079:30;3145:34;3140:2;3125:18;;3118:62;-1:-1:-1;;;3211:2:41;3196:18;;3189:42;3263:3;3248:19;;2865:408::o;3278:184::-;3348:6;3401:2;3389:9;3380:7;3376:23;3372:32;3369:52;;;3417:1;3414;3407:12;3369:52;-1:-1:-1;3440:16:41;;3278:184;-1:-1:-1;3278:184:41:o;7948:407::-;8150:2;8132:21;;;8189:2;8169:18;;;8162:30;8228:34;8223:2;8208:18;;8201:62;-1:-1:-1;;;8294:2:41;8279:18;;8272:41;8345:3;8330:19;;7948:407::o;8774:277::-;8841:6;8894:2;8882:9;8873:7;8869:23;8865:32;8862:52;;;8910:1;8907;8900:12;8862:52;8942:9;8936:16;8995:5;8988:13;8981:21;8974:5;8971:32;8961:60;;9017:1;9014;9007:12;9467:301;9596:3;9634:6;9628:13;9680:6;9673:4;9665:6;9661:17;9656:3;9650:37;9742:1;9706:16;;9731:13;;;-1:-1:-1;9706:16:41;9467:301;-1:-1:-1;9467:301:41:o;10538:418::-;10687:2;10676:9;10669:21;10650:4;10719:6;10713:13;10762:6;10757:2;10746:9;10742:18;10735:34;10821:6;10816:2;10808:6;10804:15;10799:2;10788:9;10784:18;10778:50;10877:1;10872:2;10863:6;10852:9;10848:22;10844:31;10837:42;10947:2;10940;10936:7;10931:2;10923:6;10919:15;10915:29;10904:9;10900:45;10896:54;10888:62;;;10538:418;;;;:::o",
209
+ "linkReferences": {},
210
+ "immutableReferences": {
211
+ "36220": [
212
+ { "start": 590, "length": 32 },
213
+ { "start": 663, "length": 32 },
214
+ { "start": 820, "length": 32 },
215
+ { "start": 884, "length": 32 },
216
+ { "start": 1444, "length": 32 }
217
+ ]
218
+ }
219
+ },
220
+ "methodIdentifiers": {
221
+ "depositNative()": "db6b5246",
222
+ "depositToken(uint256)": "6215be77",
223
+ "initialize(address,address,address)": "c0c53b8b",
224
+ "owner()": "8da5cb5b",
225
+ "proxiableUUID()": "52d1902d",
226
+ "renounceOwnership()": "715018a6",
227
+ "tokenAddress()": "9d76ea58",
228
+ "transferOwnership(address)": "f2fde38b",
229
+ "upgradeTo(address)": "3659cfe6",
230
+ "upgradeToAndCall(address,bytes)": "4f1ef286",
231
+ "withdrawNative(uint256)": "84276d81",
232
+ "withdrawToken(uint256)": "50baa622",
233
+ "zerc20Token()": "c9c97cd4"
234
+ },
235
+ "rawMetadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"}],\"name\":\"InsufficientNativeLiquidity\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"}],\"name\":\"InsufficientTokenLiquidity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NativeDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NativeTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroZerc20Token\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NativeDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NativeWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"depositNative\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"zerc20Token_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawNative\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zerc20Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"The contract is UUPS-upgradeable and supports either native token deposits or ERC20 deposits based on the configured `tokenAddress` (zero for native, non-zero for ERC20).\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"depositNative()\":{\"details\":\"Only callable when `tokenAddress` is zero.\"},\"depositToken(uint256)\":{\"details\":\"Only callable when `tokenAddress` is non-zero.\",\"params\":{\"amount\":\"Quantity of underlying tokens to deposit.\"}},\"initialize(address,address,address)\":{\"params\":{\"initialOwner\":\"Address that will assume ownership for upgrades and administration.\",\"tokenAddress_\":\"Address of the underlying ERC20 token (zero when wrapping native token).\",\"zerc20Token_\":\"Address of the mintable/burnable zerc20 token (must be non-zero).\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"withdrawNative(uint256)\":{\"details\":\"Only callable when `tokenAddress` is zero.\",\"params\":{\"amount\":\"Quantity of wrapped tokens to burn / native currency to redeem.\"}},\"withdrawToken(uint256)\":{\"details\":\"Only callable when `tokenAddress` is non-zero.\",\"params\":{\"amount\":\"Quantity of wrapped tokens to burn / ERC20 to redeem.\"}}},\"title\":\"Minter\",\"version\":1},\"userdoc\":{\"errors\":{\"ZeroZerc20Token()\":[{\"notice\":\"--------------------------------------------------------------------- Errors ---------------------------------------------------------------------\"}]},\"events\":{\"NativeDeposited(address,uint256)\":{\"notice\":\"Emitted when native assets are deposited and wrapped.\"},\"NativeWithdrawn(address,uint256)\":{\"notice\":\"Emitted when native assets are unwrapped and withdrawn.\"},\"TokenDeposited(address,uint256)\":{\"notice\":\"Emitted when ERC20 assets are deposited and wrapped.\"},\"TokenWithdrawn(address,uint256)\":{\"notice\":\"Emitted when ERC20 assets are unwrapped and withdrawn.\"}},\"kind\":\"user\",\"methods\":{\"depositNative()\":{\"notice\":\"Deposit native currency and receive wrapped tokens.\"},\"depositToken(uint256)\":{\"notice\":\"Deposit ERC20 tokens and receive wrapped tokens.\"},\"initialize(address,address,address)\":{\"notice\":\"Initializes the contract with the wrapper and underlying token addresses.\"},\"tokenAddress()\":{\"notice\":\"Address of the underlying token being wrapped (zero address represents native token).\"},\"withdrawNative(uint256)\":{\"notice\":\"Burn wrapped tokens and withdraw native currency.\"},\"withdrawToken(uint256)\":{\"notice\":\"Burn wrapped tokens and withdraw the underlying ERC20.\"},\"zerc20Token()\":{\"notice\":\"Address of the zerc20 token that exposes mint / burn functions.\"}},\"notice\":\"Handles wrapping and unwrapping of native or ERC20 tokens through a mintable zerc20 token.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Minter.sol\":\"Minter\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/lz-evm-messagelib-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/\",\":@layerzerolabs/lz-evm-oapp-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/oapp/\",\":@layerzerolabs/lz-evm-protocol-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":LayerZero-v2/=lib/LayerZero-v2/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":poseidon-solidity/=lib/poseidon-solidity/\",\":solidity-bytes-utils/=lib/solidity-bytes-utils/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c\",\"dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f\",\"dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f\",\"dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20PermitUpgradeable.sol\":{\"keccak256\":\"0x07e881de3b9f6d2c07909f193f24b96c7fe4ea60013260f3f25aecd8bab3c2f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fed09b97ccb0ff9ba9b6a94224f1d489026bf6b4b7279bfe64fb6e8749dee4d\",\"dweb:/ipfs/QmcRAzaSP1UnGr4vrGkfJmB2L9aiTYoXfV1Lg9gqrVRWn8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol\":{\"keccak256\":\"0x23b997be73d3dd46885262704f0f8cfc7273fdadfe303d37969a9561373972b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d03ebe5406134f0c4a017dee625ff615031194493bd1e88504e5c8fae55bc166\",\"dweb:/ipfs/QmUZV5bMbgk2PAkV3coouSeSainHN2jhqaQDJaA7hQRyu2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"src/Minter.sol\":{\"keccak256\":\"0x36e13aacd00d404b281123f8939af17d64935ad4dad0324aa43aa38dce0cf609\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a851202051e1123b79ef348977aeb8a6d52363bd4c07fd97fcca99f28c8a6987\",\"dweb:/ipfs/QmeFqviniFK8wCfKXMx1hmCJM2QvZWRBe8jAweSULXjCX8\"]},\"src/interfaces/IMintableBurnableERC20.sol\":{\"keccak256\":\"0xed782df7f66fb6afe07746250a526a0fc6c9d656da831d679c74b1da716ab179\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e71f7274f8c5dd93bd1932ec26137b9a6c8fa62cbf07d01ec8866dd0a7eac9\",\"dweb:/ipfs/QmXLwxPTyiXfnG65JwiqCSptz3mVMKU6D15uaXPTu8qpa2\"]}},\"version\":1}",
236
+ "metadata": {
237
+ "compiler": { "version": "0.8.30+commit.73712a01" },
238
+ "language": "Solidity",
239
+ "output": {
240
+ "abi": [
241
+ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" },
242
+ {
243
+ "inputs": [
244
+ { "internalType": "uint256", "name": "available", "type": "uint256" },
245
+ { "internalType": "uint256", "name": "requested", "type": "uint256" }
246
+ ],
247
+ "type": "error",
248
+ "name": "InsufficientNativeLiquidity"
249
+ },
250
+ {
251
+ "inputs": [
252
+ { "internalType": "uint256", "name": "available", "type": "uint256" },
253
+ { "internalType": "uint256", "name": "requested", "type": "uint256" }
254
+ ],
255
+ "type": "error",
256
+ "name": "InsufficientTokenLiquidity"
257
+ },
258
+ { "inputs": [], "type": "error", "name": "NativeDisabled" },
259
+ { "inputs": [], "type": "error", "name": "NativeTransferFailed" },
260
+ { "inputs": [], "type": "error", "name": "TokenDisabled" },
261
+ { "inputs": [], "type": "error", "name": "ZeroAmount" },
262
+ { "inputs": [], "type": "error", "name": "ZeroOwner" },
263
+ { "inputs": [], "type": "error", "name": "ZeroZerc20Token" },
264
+ {
265
+ "inputs": [
266
+ {
267
+ "internalType": "address",
268
+ "name": "previousAdmin",
269
+ "type": "address",
270
+ "indexed": false
271
+ },
272
+ { "internalType": "address", "name": "newAdmin", "type": "address", "indexed": false }
273
+ ],
274
+ "type": "event",
275
+ "name": "AdminChanged",
276
+ "anonymous": false
277
+ },
278
+ {
279
+ "inputs": [
280
+ { "internalType": "address", "name": "beacon", "type": "address", "indexed": true }
281
+ ],
282
+ "type": "event",
283
+ "name": "BeaconUpgraded",
284
+ "anonymous": false
285
+ },
286
+ {
287
+ "inputs": [
288
+ { "internalType": "uint8", "name": "version", "type": "uint8", "indexed": false }
289
+ ],
290
+ "type": "event",
291
+ "name": "Initialized",
292
+ "anonymous": false
293
+ },
294
+ {
295
+ "inputs": [
296
+ { "internalType": "address", "name": "account", "type": "address", "indexed": true },
297
+ { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }
298
+ ],
299
+ "type": "event",
300
+ "name": "NativeDeposited",
301
+ "anonymous": false
302
+ },
303
+ {
304
+ "inputs": [
305
+ { "internalType": "address", "name": "account", "type": "address", "indexed": true },
306
+ { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }
307
+ ],
308
+ "type": "event",
309
+ "name": "NativeWithdrawn",
310
+ "anonymous": false
311
+ },
312
+ {
313
+ "inputs": [
314
+ {
315
+ "internalType": "address",
316
+ "name": "previousOwner",
317
+ "type": "address",
318
+ "indexed": true
319
+ },
320
+ { "internalType": "address", "name": "newOwner", "type": "address", "indexed": true }
321
+ ],
322
+ "type": "event",
323
+ "name": "OwnershipTransferred",
324
+ "anonymous": false
325
+ },
326
+ {
327
+ "inputs": [
328
+ { "internalType": "address", "name": "account", "type": "address", "indexed": true },
329
+ { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }
330
+ ],
331
+ "type": "event",
332
+ "name": "TokenDeposited",
333
+ "anonymous": false
334
+ },
335
+ {
336
+ "inputs": [
337
+ { "internalType": "address", "name": "account", "type": "address", "indexed": true },
338
+ { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }
339
+ ],
340
+ "type": "event",
341
+ "name": "TokenWithdrawn",
342
+ "anonymous": false
343
+ },
344
+ {
345
+ "inputs": [
346
+ {
347
+ "internalType": "address",
348
+ "name": "implementation",
349
+ "type": "address",
350
+ "indexed": true
351
+ }
352
+ ],
353
+ "type": "event",
354
+ "name": "Upgraded",
355
+ "anonymous": false
356
+ },
357
+ { "inputs": [], "stateMutability": "payable", "type": "function", "name": "depositNative" },
358
+ {
359
+ "inputs": [{ "internalType": "uint256", "name": "amount", "type": "uint256" }],
360
+ "stateMutability": "nonpayable",
361
+ "type": "function",
362
+ "name": "depositToken"
363
+ },
364
+ {
365
+ "inputs": [
366
+ { "internalType": "address", "name": "zerc20Token_", "type": "address" },
367
+ { "internalType": "address", "name": "tokenAddress_", "type": "address" },
368
+ { "internalType": "address", "name": "initialOwner", "type": "address" }
369
+ ],
370
+ "stateMutability": "nonpayable",
371
+ "type": "function",
372
+ "name": "initialize"
373
+ },
374
+ {
375
+ "inputs": [],
376
+ "stateMutability": "view",
377
+ "type": "function",
378
+ "name": "owner",
379
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }]
380
+ },
381
+ {
382
+ "inputs": [],
383
+ "stateMutability": "view",
384
+ "type": "function",
385
+ "name": "proxiableUUID",
386
+ "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }]
387
+ },
388
+ {
389
+ "inputs": [],
390
+ "stateMutability": "nonpayable",
391
+ "type": "function",
392
+ "name": "renounceOwnership"
393
+ },
394
+ {
395
+ "inputs": [],
396
+ "stateMutability": "view",
397
+ "type": "function",
398
+ "name": "tokenAddress",
399
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }]
400
+ },
401
+ {
402
+ "inputs": [{ "internalType": "address", "name": "newOwner", "type": "address" }],
403
+ "stateMutability": "nonpayable",
404
+ "type": "function",
405
+ "name": "transferOwnership"
406
+ },
407
+ {
408
+ "inputs": [{ "internalType": "address", "name": "newImplementation", "type": "address" }],
409
+ "stateMutability": "nonpayable",
410
+ "type": "function",
411
+ "name": "upgradeTo"
412
+ },
413
+ {
414
+ "inputs": [
415
+ { "internalType": "address", "name": "newImplementation", "type": "address" },
416
+ { "internalType": "bytes", "name": "data", "type": "bytes" }
417
+ ],
418
+ "stateMutability": "payable",
419
+ "type": "function",
420
+ "name": "upgradeToAndCall"
421
+ },
422
+ {
423
+ "inputs": [{ "internalType": "uint256", "name": "amount", "type": "uint256" }],
424
+ "stateMutability": "nonpayable",
425
+ "type": "function",
426
+ "name": "withdrawNative"
427
+ },
428
+ {
429
+ "inputs": [{ "internalType": "uint256", "name": "amount", "type": "uint256" }],
430
+ "stateMutability": "nonpayable",
431
+ "type": "function",
432
+ "name": "withdrawToken"
433
+ },
434
+ {
435
+ "inputs": [],
436
+ "stateMutability": "view",
437
+ "type": "function",
438
+ "name": "zerc20Token",
439
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }]
440
+ }
441
+ ],
442
+ "devdoc": {
443
+ "kind": "dev",
444
+ "methods": {
445
+ "depositNative()": { "details": "Only callable when `tokenAddress` is zero." },
446
+ "depositToken(uint256)": {
447
+ "details": "Only callable when `tokenAddress` is non-zero.",
448
+ "params": { "amount": "Quantity of underlying tokens to deposit." }
449
+ },
450
+ "initialize(address,address,address)": {
451
+ "params": {
452
+ "initialOwner": "Address that will assume ownership for upgrades and administration.",
453
+ "tokenAddress_": "Address of the underlying ERC20 token (zero when wrapping native token).",
454
+ "zerc20Token_": "Address of the mintable/burnable zerc20 token (must be non-zero)."
455
+ }
456
+ },
457
+ "owner()": { "details": "Returns the address of the current owner." },
458
+ "proxiableUUID()": {
459
+ "details": "Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."
460
+ },
461
+ "renounceOwnership()": {
462
+ "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
463
+ },
464
+ "transferOwnership(address)": {
465
+ "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
466
+ },
467
+ "upgradeTo(address)": {
468
+ "custom:oz-upgrades-unsafe-allow-reachable": "delegatecall",
469
+ "details": "Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."
470
+ },
471
+ "upgradeToAndCall(address,bytes)": {
472
+ "custom:oz-upgrades-unsafe-allow-reachable": "delegatecall",
473
+ "details": "Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."
474
+ },
475
+ "withdrawNative(uint256)": {
476
+ "details": "Only callable when `tokenAddress` is zero.",
477
+ "params": {
478
+ "amount": "Quantity of wrapped tokens to burn / native currency to redeem."
479
+ }
480
+ },
481
+ "withdrawToken(uint256)": {
482
+ "details": "Only callable when `tokenAddress` is non-zero.",
483
+ "params": { "amount": "Quantity of wrapped tokens to burn / ERC20 to redeem." }
484
+ }
485
+ },
486
+ "version": 1
487
+ },
488
+ "userdoc": {
489
+ "kind": "user",
490
+ "methods": {
491
+ "depositNative()": { "notice": "Deposit native currency and receive wrapped tokens." },
492
+ "depositToken(uint256)": { "notice": "Deposit ERC20 tokens and receive wrapped tokens." },
493
+ "initialize(address,address,address)": {
494
+ "notice": "Initializes the contract with the wrapper and underlying token addresses."
495
+ },
496
+ "tokenAddress()": {
497
+ "notice": "Address of the underlying token being wrapped (zero address represents native token)."
498
+ },
499
+ "withdrawNative(uint256)": {
500
+ "notice": "Burn wrapped tokens and withdraw native currency."
501
+ },
502
+ "withdrawToken(uint256)": {
503
+ "notice": "Burn wrapped tokens and withdraw the underlying ERC20."
504
+ },
505
+ "zerc20Token()": {
506
+ "notice": "Address of the zerc20 token that exposes mint / burn functions."
507
+ }
508
+ },
509
+ "version": 1
510
+ }
511
+ },
512
+ "settings": {
513
+ "remappings": [
514
+ "@layerzerolabs/lz-evm-messagelib-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/",
515
+ "@layerzerolabs/lz-evm-oapp-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/oapp/",
516
+ "@layerzerolabs/lz-evm-protocol-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/",
517
+ "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
518
+ "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
519
+ "LayerZero-v2/=lib/LayerZero-v2/",
520
+ "forge-std/=lib/forge-std/src/",
521
+ "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
522
+ "openzeppelin-contracts/=lib/openzeppelin-contracts/",
523
+ "openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/",
524
+ "poseidon-solidity/=lib/poseidon-solidity/",
525
+ "solidity-bytes-utils/=lib/solidity-bytes-utils/"
526
+ ],
527
+ "optimizer": { "enabled": true, "runs": 200 },
528
+ "metadata": { "bytecodeHash": "ipfs" },
529
+ "compilationTarget": { "src/Minter.sol": "Minter" },
530
+ "evmVersion": "prague",
531
+ "libraries": {}
532
+ },
533
+ "sources": {
534
+ "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol": {
535
+ "keccak256": "0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e",
536
+ "urls": [
537
+ "bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c",
538
+ "dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16"
539
+ ],
540
+ "license": "MIT"
541
+ },
542
+ "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol": {
543
+ "keccak256": "0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b",
544
+ "urls": [
545
+ "bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0",
546
+ "dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9"
547
+ ],
548
+ "license": "MIT"
549
+ },
550
+ "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol": {
551
+ "keccak256": "0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f",
552
+ "urls": [
553
+ "bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053",
554
+ "dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79"
555
+ ],
556
+ "license": "MIT"
557
+ },
558
+ "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol": {
559
+ "keccak256": "0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8",
560
+ "urls": [
561
+ "bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0",
562
+ "dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9"
563
+ ],
564
+ "license": "MIT"
565
+ },
566
+ "lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol": {
567
+ "keccak256": "0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908",
568
+ "urls": [
569
+ "bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1",
570
+ "dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ"
571
+ ],
572
+ "license": "MIT"
573
+ },
574
+ "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol": {
575
+ "keccak256": "0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794",
576
+ "urls": [
577
+ "bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e",
578
+ "dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"
579
+ ],
580
+ "license": "MIT"
581
+ },
582
+ "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol": {
583
+ "keccak256": "0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33",
584
+ "urls": [
585
+ "bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f",
586
+ "dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99"
587
+ ],
588
+ "license": "MIT"
589
+ },
590
+ "lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol": {
591
+ "keccak256": "0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b",
592
+ "urls": [
593
+ "bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f",
594
+ "dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC"
595
+ ],
596
+ "license": "MIT"
597
+ },
598
+ "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol": {
599
+ "keccak256": "0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f",
600
+ "urls": [
601
+ "bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f",
602
+ "dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco"
603
+ ],
604
+ "license": "MIT"
605
+ },
606
+ "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20PermitUpgradeable.sol": {
607
+ "keccak256": "0x07e881de3b9f6d2c07909f193f24b96c7fe4ea60013260f3f25aecd8bab3c2f8",
608
+ "urls": [
609
+ "bzz-raw://1fed09b97ccb0ff9ba9b6a94224f1d489026bf6b4b7279bfe64fb6e8749dee4d",
610
+ "dweb:/ipfs/QmcRAzaSP1UnGr4vrGkfJmB2L9aiTYoXfV1Lg9gqrVRWn8"
611
+ ],
612
+ "license": "MIT"
613
+ },
614
+ "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol": {
615
+ "keccak256": "0x23b997be73d3dd46885262704f0f8cfc7273fdadfe303d37969a9561373972b5",
616
+ "urls": [
617
+ "bzz-raw://d03ebe5406134f0c4a017dee625ff615031194493bd1e88504e5c8fae55bc166",
618
+ "dweb:/ipfs/QmUZV5bMbgk2PAkV3coouSeSainHN2jhqaQDJaA7hQRyu2"
619
+ ],
620
+ "license": "MIT"
621
+ },
622
+ "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol": {
623
+ "keccak256": "0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422",
624
+ "urls": [
625
+ "bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b",
626
+ "dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"
627
+ ],
628
+ "license": "MIT"
629
+ },
630
+ "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol": {
631
+ "keccak256": "0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef",
632
+ "urls": [
633
+ "bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95",
634
+ "dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"
635
+ ],
636
+ "license": "MIT"
637
+ },
638
+ "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol": {
639
+ "keccak256": "0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908",
640
+ "urls": [
641
+ "bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685",
642
+ "dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy"
643
+ ],
644
+ "license": "MIT"
645
+ },
646
+ "src/Minter.sol": {
647
+ "keccak256": "0x36e13aacd00d404b281123f8939af17d64935ad4dad0324aa43aa38dce0cf609",
648
+ "urls": [
649
+ "bzz-raw://a851202051e1123b79ef348977aeb8a6d52363bd4c07fd97fcca99f28c8a6987",
650
+ "dweb:/ipfs/QmeFqviniFK8wCfKXMx1hmCJM2QvZWRBe8jAweSULXjCX8"
651
+ ],
652
+ "license": "MIT"
653
+ },
654
+ "src/interfaces/IMintableBurnableERC20.sol": {
655
+ "keccak256": "0xed782df7f66fb6afe07746250a526a0fc6c9d656da831d679c74b1da716ab179",
656
+ "urls": [
657
+ "bzz-raw://81e71f7274f8c5dd93bd1932ec26137b9a6c8fa62cbf07d01ec8866dd0a7eac9",
658
+ "dweb:/ipfs/QmXLwxPTyiXfnG65JwiqCSptz3mVMKU6D15uaXPTu8qpa2"
659
+ ],
660
+ "license": "MIT"
661
+ }
662
+ },
663
+ "version": 1
664
+ },
665
+ "id": 39
666
+ }