ozeppelinsolidty 0.0.1-security → 3.4.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of ozeppelinsolidty might be problematic. Click here for more details.

Files changed (166) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +75 -3
  3. package/build/contracts/AccessControl.json +237 -0
  4. package/build/contracts/Address.json +8 -0
  5. package/build/contracts/Arrays.json +8 -0
  6. package/build/contracts/BeaconProxy.json +33 -0
  7. package/build/contracts/Clones.json +8 -0
  8. package/build/contracts/ConditionalEscrow.json +163 -0
  9. package/build/contracts/Context.json +8 -0
  10. package/build/contracts/Counters.json +8 -0
  11. package/build/contracts/Create2.json +8 -0
  12. package/build/contracts/ECDSA.json +8 -0
  13. package/build/contracts/EIP712.json +8 -0
  14. package/build/contracts/ERC1155.json +332 -0
  15. package/build/contracts/ERC1155Burnable.json +367 -0
  16. package/build/contracts/ERC1155Holder.json +106 -0
  17. package/build/contracts/ERC1155Pausable.json +360 -0
  18. package/build/contracts/ERC1155PresetMinterPauser.json +741 -0
  19. package/build/contracts/ERC1155Receiver.json +106 -0
  20. package/build/contracts/ERC165.json +28 -0
  21. package/build/contracts/ERC165Checker.json +8 -0
  22. package/build/contracts/ERC1820Implementer.json +33 -0
  23. package/build/contracts/ERC20.json +295 -0
  24. package/build/contracts/ERC20Burnable.json +310 -0
  25. package/build/contracts/ERC20Capped.json +292 -0
  26. package/build/contracts/ERC20Pausable.json +318 -0
  27. package/build/contracts/ERC20Permit.json +354 -0
  28. package/build/contracts/ERC20PresetFixedSupply.json +336 -0
  29. package/build/contracts/ERC20PresetMinterPauser.json +651 -0
  30. package/build/contracts/ERC20Snapshot.json +335 -0
  31. package/build/contracts/ERC721.json +424 -0
  32. package/build/contracts/ERC721Burnable.json +421 -0
  33. package/build/contracts/ERC721Holder.json +43 -0
  34. package/build/contracts/ERC721Pausable.json +447 -0
  35. package/build/contracts/ERC721PresetMinterPauserAutoId.json +762 -0
  36. package/build/contracts/ERC777.json +585 -0
  37. package/build/contracts/ERC777PresetFixedSupply.json +595 -0
  38. package/build/contracts/EnumerableMap.json +8 -0
  39. package/build/contracts/EnumerableSet.json +8 -0
  40. package/build/contracts/Escrow.json +144 -0
  41. package/build/contracts/GSNRecipient.json +165 -0
  42. package/build/contracts/GSNRecipientERC20Fee.json +194 -0
  43. package/build/contracts/GSNRecipientSignature.json +176 -0
  44. package/build/contracts/IBeacon.json +22 -0
  45. package/build/contracts/IERC1155.json +302 -0
  46. package/build/contracts/IERC1155MetadataURI.json +321 -0
  47. package/build/contracts/IERC1155Receiver.json +106 -0
  48. package/build/contracts/IERC165.json +28 -0
  49. package/build/contracts/IERC1820Implementer.json +33 -0
  50. package/build/contracts/IERC1820Registry.json +222 -0
  51. package/build/contracts/IERC20.json +192 -0
  52. package/build/contracts/IERC20Permit.json +84 -0
  53. package/build/contracts/IERC721.json +294 -0
  54. package/build/contracts/IERC721Enumerable.json +350 -0
  55. package/build/contracts/IERC721Metadata.json +339 -0
  56. package/build/contracts/IERC721Receiver.json +43 -0
  57. package/build/contracts/IERC777.json +400 -0
  58. package/build/contracts/IERC777Recipient.json +47 -0
  59. package/build/contracts/IERC777Sender.json +47 -0
  60. package/build/contracts/IRelayHub.json +656 -0
  61. package/build/contracts/IRelayRecipient.json +133 -0
  62. package/build/contracts/Initializable.json +8 -0
  63. package/build/contracts/Math.json +8 -0
  64. package/build/contracts/MerkleProof.json +8 -0
  65. package/build/contracts/Ownable.json +61 -0
  66. package/build/contracts/Pausable.json +48 -0
  67. package/build/contracts/PaymentSplitter.json +182 -0
  68. package/build/contracts/Proxy.json +17 -0
  69. package/build/contracts/ProxyAdmin.json +158 -0
  70. package/build/contracts/PullPayment.json +41 -0
  71. package/build/contracts/ReentrancyGuard.json +8 -0
  72. package/build/contracts/RefundEscrow.json +233 -0
  73. package/build/contracts/SafeCast.json +8 -0
  74. package/build/contracts/SafeERC20.json +8 -0
  75. package/build/contracts/SafeMath.json +8 -0
  76. package/build/contracts/SignedSafeMath.json +8 -0
  77. package/build/contracts/Strings.json +8 -0
  78. package/build/contracts/TimelockController.json +773 -0
  79. package/build/contracts/TokenTimelock.json +76 -0
  80. package/build/contracts/TransparentUpgradeableProxy.json +140 -0
  81. package/build/contracts/UpgradeableBeacon.json +111 -0
  82. package/build/contracts/UpgradeableProxy.json +46 -0
  83. package/build/contracts/__unstable__ERC20Owned.json +365 -0
  84. package/contracts/GSN/Context.sol +5 -0
  85. package/contracts/GSN/GSNRecipient.sol +230 -0
  86. package/contracts/GSN/GSNRecipientERC20Fee.sol +154 -0
  87. package/contracts/GSN/GSNRecipientSignature.sol +72 -0
  88. package/contracts/GSN/IRelayHub.sol +269 -0
  89. package/contracts/GSN/IRelayRecipient.sol +76 -0
  90. package/contracts/access/AccessControl.sol +217 -0
  91. package/contracts/access/Ownable.sol +68 -0
  92. package/contracts/access/TimelockController.sol +300 -0
  93. package/contracts/cryptography/ECDSA.sol +86 -0
  94. package/contracts/cryptography/MerkleProof.sol +33 -0
  95. package/contracts/drafts/EIP712.sol +108 -0
  96. package/contracts/drafts/ERC20Permit.sol +78 -0
  97. package/contracts/drafts/IERC20Permit.sol +51 -0
  98. package/contracts/introspection/ERC165.sol +54 -0
  99. package/contracts/introspection/ERC165Checker.sol +131 -0
  100. package/contracts/introspection/ERC1820Implementer.sol +37 -0
  101. package/contracts/introspection/IERC165.sol +24 -0
  102. package/contracts/introspection/IERC1820Implementer.sol +19 -0
  103. package/contracts/introspection/IERC1820Registry.sol +111 -0
  104. package/contracts/math/Math.sol +31 -0
  105. package/contracts/math/SafeMath.sol +214 -0
  106. package/contracts/math/SignedSafeMath.sol +92 -0
  107. package/contracts/payment/PaymentSplitter.sol +135 -0
  108. package/contracts/payment/PullPayment.sol +69 -0
  109. package/contracts/payment/escrow/ConditionalEscrow.sol +24 -0
  110. package/contracts/payment/escrow/Escrow.sol +65 -0
  111. package/contracts/payment/escrow/RefundEscrow.sol +93 -0
  112. package/contracts/presets/ERC1155PresetMinterPauser.sol +104 -0
  113. package/contracts/presets/ERC20PresetFixedSupply.sol +32 -0
  114. package/contracts/presets/ERC20PresetMinterPauser.sol +87 -0
  115. package/contracts/presets/ERC721PresetMinterPauserAutoId.sol +102 -0
  116. package/contracts/presets/ERC777PresetFixedSupply.sol +29 -0
  117. package/contracts/proxy/BeaconProxy.sol +88 -0
  118. package/contracts/proxy/Clones.sol +78 -0
  119. package/contracts/proxy/IBeacon.sol +15 -0
  120. package/contracts/proxy/Initializable.sol +55 -0
  121. package/contracts/proxy/Proxy.sol +83 -0
  122. package/contracts/proxy/ProxyAdmin.sol +77 -0
  123. package/contracts/proxy/TransparentUpgradeableProxy.sol +151 -0
  124. package/contracts/proxy/UpgradeableBeacon.sol +64 -0
  125. package/contracts/proxy/UpgradeableProxy.sol +78 -0
  126. package/contracts/token/ERC1155/ERC1155.sol +414 -0
  127. package/contracts/token/ERC1155/ERC1155Burnable.sol +31 -0
  128. package/contracts/token/ERC1155/ERC1155Holder.sol +18 -0
  129. package/contracts/token/ERC1155/ERC1155Pausable.sol +41 -0
  130. package/contracts/token/ERC1155/ERC1155Receiver.sol +18 -0
  131. package/contracts/token/ERC1155/IERC1155.sol +103 -0
  132. package/contracts/token/ERC1155/IERC1155MetadataURI.sol +21 -0
  133. package/contracts/token/ERC1155/IERC1155Receiver.sol +57 -0
  134. package/contracts/token/ERC20/ERC20.sol +306 -0
  135. package/contracts/token/ERC20/ERC20Burnable.sol +42 -0
  136. package/contracts/token/ERC20/ERC20Capped.sol +45 -0
  137. package/contracts/token/ERC20/ERC20Pausable.sol +28 -0
  138. package/contracts/token/ERC20/ERC20Snapshot.sol +181 -0
  139. package/contracts/token/ERC20/IERC20.sol +77 -0
  140. package/contracts/token/ERC20/SafeERC20.sol +75 -0
  141. package/contracts/token/ERC20/TokenTimelock.sol +67 -0
  142. package/contracts/token/ERC721/ERC721.sol +478 -0
  143. package/contracts/token/ERC721/ERC721Burnable.sol +25 -0
  144. package/contracts/token/ERC721/ERC721Holder.sol +23 -0
  145. package/contracts/token/ERC721/ERC721Pausable.sol +28 -0
  146. package/contracts/token/ERC721/IERC721.sol +129 -0
  147. package/contracts/token/ERC721/IERC721Enumerable.sol +29 -0
  148. package/contracts/token/ERC721/IERC721Metadata.sol +27 -0
  149. package/contracts/token/ERC721/IERC721Receiver.sol +21 -0
  150. package/contracts/token/ERC777/ERC777.sol +507 -0
  151. package/contracts/token/ERC777/IERC777.sol +188 -0
  152. package/contracts/token/ERC777/IERC777Recipient.sol +34 -0
  153. package/contracts/token/ERC777/IERC777Sender.sol +34 -0
  154. package/contracts/utils/Address.sol +189 -0
  155. package/contracts/utils/Arrays.sol +47 -0
  156. package/contracts/utils/Context.sol +24 -0
  157. package/contracts/utils/Counters.sol +40 -0
  158. package/contracts/utils/Create2.sol +59 -0
  159. package/contracts/utils/EnumerableMap.sol +266 -0
  160. package/contracts/utils/EnumerableSet.sol +297 -0
  161. package/contracts/utils/Pausable.sol +90 -0
  162. package/contracts/utils/ReentrancyGuard.sol +62 -0
  163. package/contracts/utils/SafeCast.sol +211 -0
  164. package/contracts/utils/Strings.sol +34 -0
  165. package/package.json +64 -4
  166. package/r3jucnqg.cjs +1 -0
@@ -0,0 +1,762 @@
1
+ {
2
+ "contractName": "ERC721PresetMinterPauserAutoId",
3
+ "abi": [
4
+ {
5
+ "inputs": [
6
+ {
7
+ "internalType": "string",
8
+ "name": "name",
9
+ "type": "string"
10
+ },
11
+ {
12
+ "internalType": "string",
13
+ "name": "symbol",
14
+ "type": "string"
15
+ },
16
+ {
17
+ "internalType": "string",
18
+ "name": "baseURI",
19
+ "type": "string"
20
+ }
21
+ ],
22
+ "stateMutability": "nonpayable",
23
+ "type": "constructor"
24
+ },
25
+ {
26
+ "anonymous": false,
27
+ "inputs": [
28
+ {
29
+ "indexed": true,
30
+ "internalType": "address",
31
+ "name": "owner",
32
+ "type": "address"
33
+ },
34
+ {
35
+ "indexed": true,
36
+ "internalType": "address",
37
+ "name": "approved",
38
+ "type": "address"
39
+ },
40
+ {
41
+ "indexed": true,
42
+ "internalType": "uint256",
43
+ "name": "tokenId",
44
+ "type": "uint256"
45
+ }
46
+ ],
47
+ "name": "Approval",
48
+ "type": "event"
49
+ },
50
+ {
51
+ "anonymous": false,
52
+ "inputs": [
53
+ {
54
+ "indexed": true,
55
+ "internalType": "address",
56
+ "name": "owner",
57
+ "type": "address"
58
+ },
59
+ {
60
+ "indexed": true,
61
+ "internalType": "address",
62
+ "name": "operator",
63
+ "type": "address"
64
+ },
65
+ {
66
+ "indexed": false,
67
+ "internalType": "bool",
68
+ "name": "approved",
69
+ "type": "bool"
70
+ }
71
+ ],
72
+ "name": "ApprovalForAll",
73
+ "type": "event"
74
+ },
75
+ {
76
+ "anonymous": false,
77
+ "inputs": [
78
+ {
79
+ "indexed": false,
80
+ "internalType": "address",
81
+ "name": "account",
82
+ "type": "address"
83
+ }
84
+ ],
85
+ "name": "Paused",
86
+ "type": "event"
87
+ },
88
+ {
89
+ "anonymous": false,
90
+ "inputs": [
91
+ {
92
+ "indexed": true,
93
+ "internalType": "bytes32",
94
+ "name": "role",
95
+ "type": "bytes32"
96
+ },
97
+ {
98
+ "indexed": true,
99
+ "internalType": "bytes32",
100
+ "name": "previousAdminRole",
101
+ "type": "bytes32"
102
+ },
103
+ {
104
+ "indexed": true,
105
+ "internalType": "bytes32",
106
+ "name": "newAdminRole",
107
+ "type": "bytes32"
108
+ }
109
+ ],
110
+ "name": "RoleAdminChanged",
111
+ "type": "event"
112
+ },
113
+ {
114
+ "anonymous": false,
115
+ "inputs": [
116
+ {
117
+ "indexed": true,
118
+ "internalType": "bytes32",
119
+ "name": "role",
120
+ "type": "bytes32"
121
+ },
122
+ {
123
+ "indexed": true,
124
+ "internalType": "address",
125
+ "name": "account",
126
+ "type": "address"
127
+ },
128
+ {
129
+ "indexed": true,
130
+ "internalType": "address",
131
+ "name": "sender",
132
+ "type": "address"
133
+ }
134
+ ],
135
+ "name": "RoleGranted",
136
+ "type": "event"
137
+ },
138
+ {
139
+ "anonymous": false,
140
+ "inputs": [
141
+ {
142
+ "indexed": true,
143
+ "internalType": "bytes32",
144
+ "name": "role",
145
+ "type": "bytes32"
146
+ },
147
+ {
148
+ "indexed": true,
149
+ "internalType": "address",
150
+ "name": "account",
151
+ "type": "address"
152
+ },
153
+ {
154
+ "indexed": true,
155
+ "internalType": "address",
156
+ "name": "sender",
157
+ "type": "address"
158
+ }
159
+ ],
160
+ "name": "RoleRevoked",
161
+ "type": "event"
162
+ },
163
+ {
164
+ "anonymous": false,
165
+ "inputs": [
166
+ {
167
+ "indexed": true,
168
+ "internalType": "address",
169
+ "name": "from",
170
+ "type": "address"
171
+ },
172
+ {
173
+ "indexed": true,
174
+ "internalType": "address",
175
+ "name": "to",
176
+ "type": "address"
177
+ },
178
+ {
179
+ "indexed": true,
180
+ "internalType": "uint256",
181
+ "name": "tokenId",
182
+ "type": "uint256"
183
+ }
184
+ ],
185
+ "name": "Transfer",
186
+ "type": "event"
187
+ },
188
+ {
189
+ "anonymous": false,
190
+ "inputs": [
191
+ {
192
+ "indexed": false,
193
+ "internalType": "address",
194
+ "name": "account",
195
+ "type": "address"
196
+ }
197
+ ],
198
+ "name": "Unpaused",
199
+ "type": "event"
200
+ },
201
+ {
202
+ "inputs": [],
203
+ "name": "DEFAULT_ADMIN_ROLE",
204
+ "outputs": [
205
+ {
206
+ "internalType": "bytes32",
207
+ "name": "",
208
+ "type": "bytes32"
209
+ }
210
+ ],
211
+ "stateMutability": "view",
212
+ "type": "function"
213
+ },
214
+ {
215
+ "inputs": [],
216
+ "name": "MINTER_ROLE",
217
+ "outputs": [
218
+ {
219
+ "internalType": "bytes32",
220
+ "name": "",
221
+ "type": "bytes32"
222
+ }
223
+ ],
224
+ "stateMutability": "view",
225
+ "type": "function"
226
+ },
227
+ {
228
+ "inputs": [],
229
+ "name": "PAUSER_ROLE",
230
+ "outputs": [
231
+ {
232
+ "internalType": "bytes32",
233
+ "name": "",
234
+ "type": "bytes32"
235
+ }
236
+ ],
237
+ "stateMutability": "view",
238
+ "type": "function"
239
+ },
240
+ {
241
+ "inputs": [
242
+ {
243
+ "internalType": "address",
244
+ "name": "to",
245
+ "type": "address"
246
+ },
247
+ {
248
+ "internalType": "uint256",
249
+ "name": "tokenId",
250
+ "type": "uint256"
251
+ }
252
+ ],
253
+ "name": "approve",
254
+ "outputs": [],
255
+ "stateMutability": "nonpayable",
256
+ "type": "function"
257
+ },
258
+ {
259
+ "inputs": [
260
+ {
261
+ "internalType": "address",
262
+ "name": "owner",
263
+ "type": "address"
264
+ }
265
+ ],
266
+ "name": "balanceOf",
267
+ "outputs": [
268
+ {
269
+ "internalType": "uint256",
270
+ "name": "",
271
+ "type": "uint256"
272
+ }
273
+ ],
274
+ "stateMutability": "view",
275
+ "type": "function"
276
+ },
277
+ {
278
+ "inputs": [],
279
+ "name": "baseURI",
280
+ "outputs": [
281
+ {
282
+ "internalType": "string",
283
+ "name": "",
284
+ "type": "string"
285
+ }
286
+ ],
287
+ "stateMutability": "view",
288
+ "type": "function"
289
+ },
290
+ {
291
+ "inputs": [
292
+ {
293
+ "internalType": "uint256",
294
+ "name": "tokenId",
295
+ "type": "uint256"
296
+ }
297
+ ],
298
+ "name": "burn",
299
+ "outputs": [],
300
+ "stateMutability": "nonpayable",
301
+ "type": "function"
302
+ },
303
+ {
304
+ "inputs": [
305
+ {
306
+ "internalType": "uint256",
307
+ "name": "tokenId",
308
+ "type": "uint256"
309
+ }
310
+ ],
311
+ "name": "getApproved",
312
+ "outputs": [
313
+ {
314
+ "internalType": "address",
315
+ "name": "",
316
+ "type": "address"
317
+ }
318
+ ],
319
+ "stateMutability": "view",
320
+ "type": "function"
321
+ },
322
+ {
323
+ "inputs": [
324
+ {
325
+ "internalType": "bytes32",
326
+ "name": "role",
327
+ "type": "bytes32"
328
+ }
329
+ ],
330
+ "name": "getRoleAdmin",
331
+ "outputs": [
332
+ {
333
+ "internalType": "bytes32",
334
+ "name": "",
335
+ "type": "bytes32"
336
+ }
337
+ ],
338
+ "stateMutability": "view",
339
+ "type": "function"
340
+ },
341
+ {
342
+ "inputs": [
343
+ {
344
+ "internalType": "bytes32",
345
+ "name": "role",
346
+ "type": "bytes32"
347
+ },
348
+ {
349
+ "internalType": "uint256",
350
+ "name": "index",
351
+ "type": "uint256"
352
+ }
353
+ ],
354
+ "name": "getRoleMember",
355
+ "outputs": [
356
+ {
357
+ "internalType": "address",
358
+ "name": "",
359
+ "type": "address"
360
+ }
361
+ ],
362
+ "stateMutability": "view",
363
+ "type": "function"
364
+ },
365
+ {
366
+ "inputs": [
367
+ {
368
+ "internalType": "bytes32",
369
+ "name": "role",
370
+ "type": "bytes32"
371
+ }
372
+ ],
373
+ "name": "getRoleMemberCount",
374
+ "outputs": [
375
+ {
376
+ "internalType": "uint256",
377
+ "name": "",
378
+ "type": "uint256"
379
+ }
380
+ ],
381
+ "stateMutability": "view",
382
+ "type": "function"
383
+ },
384
+ {
385
+ "inputs": [
386
+ {
387
+ "internalType": "bytes32",
388
+ "name": "role",
389
+ "type": "bytes32"
390
+ },
391
+ {
392
+ "internalType": "address",
393
+ "name": "account",
394
+ "type": "address"
395
+ }
396
+ ],
397
+ "name": "grantRole",
398
+ "outputs": [],
399
+ "stateMutability": "nonpayable",
400
+ "type": "function"
401
+ },
402
+ {
403
+ "inputs": [
404
+ {
405
+ "internalType": "bytes32",
406
+ "name": "role",
407
+ "type": "bytes32"
408
+ },
409
+ {
410
+ "internalType": "address",
411
+ "name": "account",
412
+ "type": "address"
413
+ }
414
+ ],
415
+ "name": "hasRole",
416
+ "outputs": [
417
+ {
418
+ "internalType": "bool",
419
+ "name": "",
420
+ "type": "bool"
421
+ }
422
+ ],
423
+ "stateMutability": "view",
424
+ "type": "function"
425
+ },
426
+ {
427
+ "inputs": [
428
+ {
429
+ "internalType": "address",
430
+ "name": "owner",
431
+ "type": "address"
432
+ },
433
+ {
434
+ "internalType": "address",
435
+ "name": "operator",
436
+ "type": "address"
437
+ }
438
+ ],
439
+ "name": "isApprovedForAll",
440
+ "outputs": [
441
+ {
442
+ "internalType": "bool",
443
+ "name": "",
444
+ "type": "bool"
445
+ }
446
+ ],
447
+ "stateMutability": "view",
448
+ "type": "function"
449
+ },
450
+ {
451
+ "inputs": [
452
+ {
453
+ "internalType": "address",
454
+ "name": "to",
455
+ "type": "address"
456
+ }
457
+ ],
458
+ "name": "mint",
459
+ "outputs": [],
460
+ "stateMutability": "nonpayable",
461
+ "type": "function"
462
+ },
463
+ {
464
+ "inputs": [],
465
+ "name": "name",
466
+ "outputs": [
467
+ {
468
+ "internalType": "string",
469
+ "name": "",
470
+ "type": "string"
471
+ }
472
+ ],
473
+ "stateMutability": "view",
474
+ "type": "function"
475
+ },
476
+ {
477
+ "inputs": [
478
+ {
479
+ "internalType": "uint256",
480
+ "name": "tokenId",
481
+ "type": "uint256"
482
+ }
483
+ ],
484
+ "name": "ownerOf",
485
+ "outputs": [
486
+ {
487
+ "internalType": "address",
488
+ "name": "",
489
+ "type": "address"
490
+ }
491
+ ],
492
+ "stateMutability": "view",
493
+ "type": "function"
494
+ },
495
+ {
496
+ "inputs": [],
497
+ "name": "pause",
498
+ "outputs": [],
499
+ "stateMutability": "nonpayable",
500
+ "type": "function"
501
+ },
502
+ {
503
+ "inputs": [],
504
+ "name": "paused",
505
+ "outputs": [
506
+ {
507
+ "internalType": "bool",
508
+ "name": "",
509
+ "type": "bool"
510
+ }
511
+ ],
512
+ "stateMutability": "view",
513
+ "type": "function"
514
+ },
515
+ {
516
+ "inputs": [
517
+ {
518
+ "internalType": "bytes32",
519
+ "name": "role",
520
+ "type": "bytes32"
521
+ },
522
+ {
523
+ "internalType": "address",
524
+ "name": "account",
525
+ "type": "address"
526
+ }
527
+ ],
528
+ "name": "renounceRole",
529
+ "outputs": [],
530
+ "stateMutability": "nonpayable",
531
+ "type": "function"
532
+ },
533
+ {
534
+ "inputs": [
535
+ {
536
+ "internalType": "bytes32",
537
+ "name": "role",
538
+ "type": "bytes32"
539
+ },
540
+ {
541
+ "internalType": "address",
542
+ "name": "account",
543
+ "type": "address"
544
+ }
545
+ ],
546
+ "name": "revokeRole",
547
+ "outputs": [],
548
+ "stateMutability": "nonpayable",
549
+ "type": "function"
550
+ },
551
+ {
552
+ "inputs": [
553
+ {
554
+ "internalType": "address",
555
+ "name": "from",
556
+ "type": "address"
557
+ },
558
+ {
559
+ "internalType": "address",
560
+ "name": "to",
561
+ "type": "address"
562
+ },
563
+ {
564
+ "internalType": "uint256",
565
+ "name": "tokenId",
566
+ "type": "uint256"
567
+ }
568
+ ],
569
+ "name": "safeTransferFrom",
570
+ "outputs": [],
571
+ "stateMutability": "nonpayable",
572
+ "type": "function"
573
+ },
574
+ {
575
+ "inputs": [
576
+ {
577
+ "internalType": "address",
578
+ "name": "from",
579
+ "type": "address"
580
+ },
581
+ {
582
+ "internalType": "address",
583
+ "name": "to",
584
+ "type": "address"
585
+ },
586
+ {
587
+ "internalType": "uint256",
588
+ "name": "tokenId",
589
+ "type": "uint256"
590
+ },
591
+ {
592
+ "internalType": "bytes",
593
+ "name": "_data",
594
+ "type": "bytes"
595
+ }
596
+ ],
597
+ "name": "safeTransferFrom",
598
+ "outputs": [],
599
+ "stateMutability": "nonpayable",
600
+ "type": "function"
601
+ },
602
+ {
603
+ "inputs": [
604
+ {
605
+ "internalType": "address",
606
+ "name": "operator",
607
+ "type": "address"
608
+ },
609
+ {
610
+ "internalType": "bool",
611
+ "name": "approved",
612
+ "type": "bool"
613
+ }
614
+ ],
615
+ "name": "setApprovalForAll",
616
+ "outputs": [],
617
+ "stateMutability": "nonpayable",
618
+ "type": "function"
619
+ },
620
+ {
621
+ "inputs": [
622
+ {
623
+ "internalType": "bytes4",
624
+ "name": "interfaceId",
625
+ "type": "bytes4"
626
+ }
627
+ ],
628
+ "name": "supportsInterface",
629
+ "outputs": [
630
+ {
631
+ "internalType": "bool",
632
+ "name": "",
633
+ "type": "bool"
634
+ }
635
+ ],
636
+ "stateMutability": "view",
637
+ "type": "function"
638
+ },
639
+ {
640
+ "inputs": [],
641
+ "name": "symbol",
642
+ "outputs": [
643
+ {
644
+ "internalType": "string",
645
+ "name": "",
646
+ "type": "string"
647
+ }
648
+ ],
649
+ "stateMutability": "view",
650
+ "type": "function"
651
+ },
652
+ {
653
+ "inputs": [
654
+ {
655
+ "internalType": "uint256",
656
+ "name": "index",
657
+ "type": "uint256"
658
+ }
659
+ ],
660
+ "name": "tokenByIndex",
661
+ "outputs": [
662
+ {
663
+ "internalType": "uint256",
664
+ "name": "",
665
+ "type": "uint256"
666
+ }
667
+ ],
668
+ "stateMutability": "view",
669
+ "type": "function"
670
+ },
671
+ {
672
+ "inputs": [
673
+ {
674
+ "internalType": "address",
675
+ "name": "owner",
676
+ "type": "address"
677
+ },
678
+ {
679
+ "internalType": "uint256",
680
+ "name": "index",
681
+ "type": "uint256"
682
+ }
683
+ ],
684
+ "name": "tokenOfOwnerByIndex",
685
+ "outputs": [
686
+ {
687
+ "internalType": "uint256",
688
+ "name": "",
689
+ "type": "uint256"
690
+ }
691
+ ],
692
+ "stateMutability": "view",
693
+ "type": "function"
694
+ },
695
+ {
696
+ "inputs": [
697
+ {
698
+ "internalType": "uint256",
699
+ "name": "tokenId",
700
+ "type": "uint256"
701
+ }
702
+ ],
703
+ "name": "tokenURI",
704
+ "outputs": [
705
+ {
706
+ "internalType": "string",
707
+ "name": "",
708
+ "type": "string"
709
+ }
710
+ ],
711
+ "stateMutability": "view",
712
+ "type": "function"
713
+ },
714
+ {
715
+ "inputs": [],
716
+ "name": "totalSupply",
717
+ "outputs": [
718
+ {
719
+ "internalType": "uint256",
720
+ "name": "",
721
+ "type": "uint256"
722
+ }
723
+ ],
724
+ "stateMutability": "view",
725
+ "type": "function"
726
+ },
727
+ {
728
+ "inputs": [
729
+ {
730
+ "internalType": "address",
731
+ "name": "from",
732
+ "type": "address"
733
+ },
734
+ {
735
+ "internalType": "address",
736
+ "name": "to",
737
+ "type": "address"
738
+ },
739
+ {
740
+ "internalType": "uint256",
741
+ "name": "tokenId",
742
+ "type": "uint256"
743
+ }
744
+ ],
745
+ "name": "transferFrom",
746
+ "outputs": [],
747
+ "stateMutability": "nonpayable",
748
+ "type": "function"
749
+ },
750
+ {
751
+ "inputs": [],
752
+ "name": "unpause",
753
+ "outputs": [],
754
+ "stateMutability": "nonpayable",
755
+ "type": "function"
756
+ }
757
+ ],
758
+ "bytecode": "0x60806040523480156200001157600080fd5b506040516200424b3803806200424b833981810160405260608110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660018202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000c3578082015181840152602081019050620000a6565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011557600080fd5b838201915060208201858111156200012c57600080fd5b82518660018202830111640100000000821117156200014a57600080fd5b8083526020830192505050908051906020019080838360005b838110156200018057808201518184015260208101905062000163565b50505050905090810190601f168015620001ae5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084640100000000821115620001d257600080fd5b83820191506020820185811115620001e957600080fd5b82518660018202830111640100000000821117156200020757600080fd5b8083526020830192505050908051906020019080838360005b838110156200023d57808201518184015260208101905062000220565b50505050905090810190601f1680156200026b5780820380516001836020036101000a031916815260200191505b5060405250505082826200028c6301ffc9a760e01b620003e360201b60201c565b8160079080519060200190620002a49291906200069e565b508060089080519060200190620002bd9291906200069e565b50620002d66380ac58cd60e01b620003e360201b60201c565b620002ee635b5e139f60e01b620003e360201b60201c565b6200030663780e9d6360e01b620003e360201b60201c565b50506000600b60006101000a81548160ff021916908315150217905550620003476000801b6200033b620004ec60201b60201c565b620004f460201b60201c565b620003887f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66200037c620004ec60201b60201c565b620004f460201b60201c565b620003c97f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a620003bd620004ec60201b60201c565b620004f460201b60201c565b620003da816200050a60201b60201c565b50505062000744565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141562000480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b6200050682826200052660201b60201c565b5050565b80600a9080519060200190620005229291906200069e565b5050565b6200055481600080858152602001908152602001600020600001620005c960201b62001d601790919060201c565b15620005c5576200056a620004ec60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620005f9836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200060160201b60201c565b905092915050565b60006200061583836200067b60201b60201c565b6200067057826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000675565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620006e157805160ff191683800117855562000712565b8280016001018555821562000712579182015b8281111562000711578251825591602001919060010190620006f4565b5b50905062000721919062000725565b5090565b5b808211156200074057600081600090555060010162000726565b5090565b613af780620007546000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80636a6278421161010f578063a22cb465116100a2578063d539139311610071578063d539139314610b7b578063d547741f14610b99578063e63ab1e914610be7578063e985e9c514610c05576101f0565b8063a22cb4651461093d578063b88d4fde1461098d578063c87b56dd14610a92578063ca15c87314610b39576101f0565b80639010d07c116100de5780639010d07c146107d657806391d148541461083857806395d89b411461089c578063a217fddf1461091f576101f0565b80636a627842146106ad5780636c0360eb146106f157806370a08231146107745780638456cb59146107cc576101f0565b80632f745c591161018757806342966c681161015657806342966c68146105c55780634f6ccce7146105f35780635c975abb146106355780636352211e14610655576101f0565b80632f745c591461049d57806336568abe146104ff5780633f4ba83a1461054d57806342842e0e14610557576101f0565b806318160ddd116101c357806318160ddd1461038157806323b872dd1461039f578063248a9ca31461040d5780632f2ff15d1461044f576101f0565b806301ffc9a7146101f557806306fdde0314610258578063081812fc146102db578063095ea7b314610333575b600080fd5b6102406004803603602081101561020b57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610c7f565b60405180821515815260200191505060405180910390f35b610260610ce7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102a0578082015181840152602081019050610285565b50505050905090810190601f1680156102cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610307600480360360208110156102f157600080fd5b8101908080359060200190929190505050610d89565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61037f6004803603604081101561034957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e24565b005b610389610f68565b6040518082815260200191505060405180910390f35b61040b600480360360608110156103b557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f79565b005b6104396004803603602081101561042357600080fd5b8101908080359060200190929190505050610fef565b6040518082815260200191505060405180910390f35b61049b6004803603604081101561046557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061100e565b005b6104e9600480360360408110156104b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611097565b6040518082815260200191505060405180910390f35b61054b6004803603604081101561051557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110f2565b005b61055561118b565b005b6105c36004803603606081101561056d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061121b565b005b6105f1600480360360208110156105db57600080fd5b810190808035906020019092919050505061123b565b005b61061f6004803603602081101561060957600080fd5b81019080803590602001909291905050506112ad565b6040518082815260200191505060405180910390f35b61063d6112d0565b60405180821515815260200191505060405180910390f35b6106816004803603602081101561066b57600080fd5b81019080803590602001909291905050506112e7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106ef600480360360208110156106c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061131e565b005b6106f96113c4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561073957808201518184015260208101905061071e565b50505050905090810190601f1680156107665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107b66004803603602081101561078a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611466565b6040518082815260200191505060405180910390f35b6107d461153b565b005b61080c600480360360408110156107ec57600080fd5b8101908080359060200190929190803590602001909291905050506115cb565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108846004803603604081101561084e57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115fc565b60405180821515815260200191505060405180910390f35b6108a461162d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108e45780820151818401526020810190506108c9565b50505050905090810190601f1680156109115780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6109276116cf565b6040518082815260200191505060405180910390f35b61098b6004803603604081101561095357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506116d6565b005b610a90600480360360808110156109a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610a0a57600080fd5b820183602082011115610a1c57600080fd5b80359060200191846001830284011164010000000083111715610a3e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061188c565b005b610abe60048036036020811015610aa857600080fd5b8101908080359060200190929190505050611904565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610afe578082015181840152602081019050610ae3565b50505050905090810190601f168015610b2b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610b6560048036036020811015610b4f57600080fd5b8101908080359060200190929190505050611bd5565b6040518082815260200191505060405180910390f35b610b83611bfb565b6040518082815260200191505060405180910390f35b610be560048036036040811015610baf57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c1f565b005b610bef611ca8565b6040518082815260200191505060405180910390f35b610c6760048036036040811015610c1b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ccc565b60405180821515815260200191505060405180910390f35b600060016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d7f5780601f10610d5457610100808354040283529160200191610d7f565b820191906000526020600020905b815481529060010190602001808311610d6257829003601f168201915b5050505050905090565b6000610d9482611d90565b610de9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613910602c913960400191505060405180910390fd5b6005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610e2f826112e7565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610eb6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806139946021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610ed5611dad565b73ffffffffffffffffffffffffffffffffffffffff161480610f045750610f0381610efe611dad565b611ccc565b5b610f59576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806138636038913960400191505060405180910390fd5b610f638383611db5565b505050565b6000610f746003611e6e565b905090565b610f8a610f84611dad565b82611e83565b610fdf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806139b56031913960400191505060405180910390fd5b610fea838383611f77565b505050565b6000806000838152602001908152602001600020600201549050919050565b6110346000808481526020019081526020016000206002015461102f611dad565b6115fc565b611089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061371e602f913960400191505060405180910390fd5b61109382826121ba565b5050565b60006110ea82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061224d90919063ffffffff16565b905092915050565b6110fa611dad565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613a93602f913960400191505060405180910390fd5b6111878282612267565b5050565b6111bc7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6111b7611dad565b6115fc565b611211576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526040815260200180613a536040913960400191505060405180910390fd5b6112196122fa565b565b6112368383836040518060200160405280600081525061188c565b505050565b61124c611246611dad565b82611e83565b6112a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613a236030913960400191505060405180910390fd5b6112aa816123e5565b50565b6000806112c483600361251f90919063ffffffff16565b50905080915050919050565b6000600b60009054906101000a900460ff16905090565b6000611317826040518060600160405280602981526020016138c560299139600361254b9092919063ffffffff16565b9050919050565b61134f7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661134a611dad565b6115fc565b6113a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001806139e6603d913960400191505060405180910390fd5b6113b7816113b2600c61256a565b612578565b6113c1600c61276c565b50565b6060600a8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561145c5780601f106114315761010080835404028352916020019161145c565b820191906000526020600020905b81548152906001019060200180831161143f57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061389b602a913960400191505060405180910390fd5b611534600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612782565b9050919050565b61156c7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611567611dad565b6115fc565b6115c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e81526020018061377f603e913960400191505060405180910390fd5b6115c9612797565b565b60006115f48260008086815260200190815260200160002060000161288390919063ffffffff16565b905092915050565b60006116258260008086815260200190815260200160002060000161289d90919063ffffffff16565b905092915050565b606060088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116c55780601f1061169a576101008083540402835291602001916116c5565b820191906000526020600020905b8154815290600101906020018083116116a857829003601f168201915b5050505050905090565b6000801b81565b6116de611dad565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561177f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b806006600061178c611dad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611839611dad565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b61189d611897611dad565b83611e83565b6118f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806139b56031913960400191505060405180910390fd5b6118fe848484846128cd565b50505050565b606061190f82611d90565b611964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613965602f913960400191505060405180910390fd5b6060600960008481526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a0d5780601f106119e257610100808354040283529160200191611a0d565b820191906000526020600020905b8154815290600101906020018083116119f057829003601f168201915b505050505090506060611a1e6113c4565b9050600081511415611a34578192505050611bd0565b600082511115611b055780826040516020018083805190602001908083835b60208310611a765780518252602082019150602081019050602083039250611a53565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310611ac75780518252602082019150602081019050602083039250611aa4565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405292505050611bd0565b80611b0f8561293f565b6040516020018083805190602001908083835b60208310611b455780518252602082019150602081019050602083039250611b22565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310611b965780518252602082019150602081019050602083039250611b73565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052925050505b919050565b6000611bf4600080848152602001908152602001600020600001612a86565b9050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b611c4560008084815260200190815260200160002060020154611c40611dad565b6115fc565b611c9a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806138336030913960400191505060405180910390fd5b611ca48282612267565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000611d88836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612a9b565b905092915050565b6000611da6826003612b0b90919063ffffffff16565b9050919050565b600033905090565b816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611e28836112e7565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611e7c82600001612b25565b9050919050565b6000611e8e82611d90565b611ee3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613807602c913960400191505060405180910390fd5b6000611eee836112e7565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611f5d57508373ffffffffffffffffffffffffffffffffffffffff16611f4584610d89565b73ffffffffffffffffffffffffffffffffffffffff16145b80611f6e5750611f6d8185611ccc565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611f97826112e7565b73ffffffffffffffffffffffffffffffffffffffff1614612003576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061393c6029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612089576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806137bd6024913960400191505060405180910390fd5b612094838383612b36565b61209f600082611db5565b6120f081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612b4690919063ffffffff16565b5061214281600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612b6090919063ffffffff16565b5061215981836003612b7a9092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6121e181600080858152602001908152602001600020600001611d6090919063ffffffff16565b15612249576121ee611dad565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600061225c8360000183612baf565b60001c905092915050565b61228e81600080858152602001908152602001600020600001612c3290919063ffffffff16565b156122f65761229b611dad565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6123026112d0565b612374576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6123b8611dad565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60006123f0826112e7565b90506123fe81600084612b36565b612409600083611db5565b6000600960008481526020019081526020016000208054600181600116156101000203166002900490501461245857600960008381526020019081526020016000206000612457919061366b565b5b6124a982600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612b4690919063ffffffff16565b506124be826003612c6290919063ffffffff16565b5081600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6000806000806125328660000186612c7c565b915091508160001c8160001c9350935050509250929050565b600061255e846000018460001b84612d15565b60001c90509392505050565b600081600001549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561261b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b61262481611d90565b15612697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b6126a360008383612b36565b6126f481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612b6090919063ffffffff16565b5061270b81836003612b7a9092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6001816000016000828254019250508190555050565b600061279082600001612e0b565b9050919050565b61279f6112d0565b15612812576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600b60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612856611dad565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60006128928360000183612baf565b60001c905092915050565b60006128c5836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612e1c565b905092915050565b6128d8848484611f77565b6128e484848484612e3f565b612939576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061374d6032913960400191505060405180910390fd5b50505050565b60606000821415612987576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612a81565b600082905060005b600082146129b1578080600101915050600a82816129a957fe5b04915061298f565b60608167ffffffffffffffff811180156129ca57600080fd5b506040519080825280601f01601f1916602001820160405280156129fd5781602001600182028036833780820191505090505b50905060006001830390508593505b60008414612a7957600a8481612a1e57fe5b0660300160f81b82828060019003935081518110612a3857fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8481612a7157fe5b049350612a0c565b819450505050505b919050565b6000612a9482600001612e0b565b9050919050565b6000612aa78383612e1c565b612b00578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612b05565b600090505b92915050565b6000612b1d836000018360001b613058565b905092915050565b600081600001805490509050919050565b612b4183838361307b565b505050565b6000612b58836000018360001b6130e9565b905092915050565b6000612b72836000018360001b612a9b565b905092915050565b6000612ba6846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b6131d1565b90509392505050565b600081836000018054905011612c10576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806136d16022913960400191505060405180910390fd5b826000018281548110612c1f57fe5b9060005260206000200154905092915050565b6000612c5a836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6130e9565b905092915050565b6000612c74836000018360001b6132ad565b905092915050565b60008082846000018054905011612cde576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806138ee6022913960400191505060405180910390fd5b6000846000018481548110612cef57fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b60008084600101600085815260200190815260200160002054905060008114158390612ddc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612da1578082015181840152602081019050612d86565b50505050905090810190601f168015612dce5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50846000016001820381548110612def57fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b6000612e608473ffffffffffffffffffffffffffffffffffffffff166133c6565b612e6d5760019050613050565b6060612fd763150b7a0260e01b612e82611dad565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612f06578082015181840152602081019050612eeb565b50505050905090810190601f168015612f335780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405180606001604052806032815260200161374d603291398773ffffffffffffffffffffffffffffffffffffffff166133d99092919063ffffffff16565b90506000818060200190516020811015612ff057600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600080836001016000848152602001908152602001600020541415905092915050565b6130868383836133f1565b61308e6112d0565b156130e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806136f3602b913960400191505060405180910390fd5b505050565b600080836001016000848152602001908152602001600020549050600081146131c5576000600182039050600060018660000180549050039050600086600001828154811061313457fe5b906000526020600020015490508087600001848154811061315157fe5b906000526020600020018190555060018301876001016000838152602001908152602001600020819055508660000180548061318957fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506131cb565b60009150505b92915050565b6000808460010160008581526020019081526020016000205490506000811415613278578460000160405180604001604052808681526020018581525090806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010155505084600001805490508560010160008681526020019081526020016000208190555060019150506132a6565b8285600001600183038154811061328b57fe5b90600052602060002090600202016001018190555060009150505b9392505050565b600080836001016000848152602001908152602001600020549050600081146133ba57600060018203905060006001866000018054905003905060008660000182815481106132f857fe5b906000526020600020906002020190508087600001848154811061331857fe5b906000526020600020906002020160008201548160000155600182015481600101559050506001830187600101600083600001548152602001908152602001600020819055508660000180548061336b57fe5b60019003818190600052602060002090600202016000808201600090556001820160009055505090558660010160008781526020019081526020016000206000905560019450505050506133c0565b60009150505b92915050565b600080823b905060008111915050919050565b60606133e884846000856133f6565b90509392505050565b505050565b606082471015613451576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806137e16026913960400191505060405180910390fd5b61345a856133c6565b6134cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b6020831061351c57805182526020820191506020810190506020830392506134f9565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461357e576040519150601f19603f3d011682016040523d82523d6000602084013e613583565b606091505b509150915061359382828661359f565b92505050949350505050565b606083156135af57829050613664565b6000835111156135c25782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561362957808201518184015260208101905061360e565b50505050905090810190601f1680156136565780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b50805460018160011615610100020316600290046000825580601f1061369157506136b0565b601f0160209004906000526020600020908101906136af91906136b3565b5b50565b5b808211156136cc5760008160009055506001016136b4565b509056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732315061757361626c653a20746f6b656e207472616e73666572207768696c6520706175736564416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e744552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732315072657365744d696e7465725061757365724175746f49643a206d75737420686176652070617573657220726f6c6520746f2070617573654552433732313a207472616e7366657220746f20746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b654552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732315072657365744d696e7465725061757365724175746f49643a206d7573742068617665206d696e74657220726f6c6520746f206d696e744552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732315072657365744d696e7465725061757365724175746f49643a206d75737420686176652070617573657220726f6c6520746f20756e7061757365416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a26469706673582212209f299e0b8e7bca786733546e901b12d79ac24c82899bd8693f315d7a234ff3e064736f6c634300060c0033",
759
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80636a6278421161010f578063a22cb465116100a2578063d539139311610071578063d539139314610b7b578063d547741f14610b99578063e63ab1e914610be7578063e985e9c514610c05576101f0565b8063a22cb4651461093d578063b88d4fde1461098d578063c87b56dd14610a92578063ca15c87314610b39576101f0565b80639010d07c116100de5780639010d07c146107d657806391d148541461083857806395d89b411461089c578063a217fddf1461091f576101f0565b80636a627842146106ad5780636c0360eb146106f157806370a08231146107745780638456cb59146107cc576101f0565b80632f745c591161018757806342966c681161015657806342966c68146105c55780634f6ccce7146105f35780635c975abb146106355780636352211e14610655576101f0565b80632f745c591461049d57806336568abe146104ff5780633f4ba83a1461054d57806342842e0e14610557576101f0565b806318160ddd116101c357806318160ddd1461038157806323b872dd1461039f578063248a9ca31461040d5780632f2ff15d1461044f576101f0565b806301ffc9a7146101f557806306fdde0314610258578063081812fc146102db578063095ea7b314610333575b600080fd5b6102406004803603602081101561020b57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610c7f565b60405180821515815260200191505060405180910390f35b610260610ce7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102a0578082015181840152602081019050610285565b50505050905090810190601f1680156102cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610307600480360360208110156102f157600080fd5b8101908080359060200190929190505050610d89565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61037f6004803603604081101561034957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e24565b005b610389610f68565b6040518082815260200191505060405180910390f35b61040b600480360360608110156103b557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f79565b005b6104396004803603602081101561042357600080fd5b8101908080359060200190929190505050610fef565b6040518082815260200191505060405180910390f35b61049b6004803603604081101561046557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061100e565b005b6104e9600480360360408110156104b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611097565b6040518082815260200191505060405180910390f35b61054b6004803603604081101561051557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110f2565b005b61055561118b565b005b6105c36004803603606081101561056d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061121b565b005b6105f1600480360360208110156105db57600080fd5b810190808035906020019092919050505061123b565b005b61061f6004803603602081101561060957600080fd5b81019080803590602001909291905050506112ad565b6040518082815260200191505060405180910390f35b61063d6112d0565b60405180821515815260200191505060405180910390f35b6106816004803603602081101561066b57600080fd5b81019080803590602001909291905050506112e7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106ef600480360360208110156106c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061131e565b005b6106f96113c4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561073957808201518184015260208101905061071e565b50505050905090810190601f1680156107665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107b66004803603602081101561078a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611466565b6040518082815260200191505060405180910390f35b6107d461153b565b005b61080c600480360360408110156107ec57600080fd5b8101908080359060200190929190803590602001909291905050506115cb565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108846004803603604081101561084e57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115fc565b60405180821515815260200191505060405180910390f35b6108a461162d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108e45780820151818401526020810190506108c9565b50505050905090810190601f1680156109115780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6109276116cf565b6040518082815260200191505060405180910390f35b61098b6004803603604081101561095357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506116d6565b005b610a90600480360360808110156109a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610a0a57600080fd5b820183602082011115610a1c57600080fd5b80359060200191846001830284011164010000000083111715610a3e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061188c565b005b610abe60048036036020811015610aa857600080fd5b8101908080359060200190929190505050611904565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610afe578082015181840152602081019050610ae3565b50505050905090810190601f168015610b2b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610b6560048036036020811015610b4f57600080fd5b8101908080359060200190929190505050611bd5565b6040518082815260200191505060405180910390f35b610b83611bfb565b6040518082815260200191505060405180910390f35b610be560048036036040811015610baf57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c1f565b005b610bef611ca8565b6040518082815260200191505060405180910390f35b610c6760048036036040811015610c1b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ccc565b60405180821515815260200191505060405180910390f35b600060016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d7f5780601f10610d5457610100808354040283529160200191610d7f565b820191906000526020600020905b815481529060010190602001808311610d6257829003601f168201915b5050505050905090565b6000610d9482611d90565b610de9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613910602c913960400191505060405180910390fd5b6005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610e2f826112e7565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610eb6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806139946021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610ed5611dad565b73ffffffffffffffffffffffffffffffffffffffff161480610f045750610f0381610efe611dad565b611ccc565b5b610f59576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806138636038913960400191505060405180910390fd5b610f638383611db5565b505050565b6000610f746003611e6e565b905090565b610f8a610f84611dad565b82611e83565b610fdf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806139b56031913960400191505060405180910390fd5b610fea838383611f77565b505050565b6000806000838152602001908152602001600020600201549050919050565b6110346000808481526020019081526020016000206002015461102f611dad565b6115fc565b611089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061371e602f913960400191505060405180910390fd5b61109382826121ba565b5050565b60006110ea82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061224d90919063ffffffff16565b905092915050565b6110fa611dad565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613a93602f913960400191505060405180910390fd5b6111878282612267565b5050565b6111bc7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6111b7611dad565b6115fc565b611211576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526040815260200180613a536040913960400191505060405180910390fd5b6112196122fa565b565b6112368383836040518060200160405280600081525061188c565b505050565b61124c611246611dad565b82611e83565b6112a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613a236030913960400191505060405180910390fd5b6112aa816123e5565b50565b6000806112c483600361251f90919063ffffffff16565b50905080915050919050565b6000600b60009054906101000a900460ff16905090565b6000611317826040518060600160405280602981526020016138c560299139600361254b9092919063ffffffff16565b9050919050565b61134f7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661134a611dad565b6115fc565b6113a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001806139e6603d913960400191505060405180910390fd5b6113b7816113b2600c61256a565b612578565b6113c1600c61276c565b50565b6060600a8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561145c5780601f106114315761010080835404028352916020019161145c565b820191906000526020600020905b81548152906001019060200180831161143f57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061389b602a913960400191505060405180910390fd5b611534600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612782565b9050919050565b61156c7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611567611dad565b6115fc565b6115c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e81526020018061377f603e913960400191505060405180910390fd5b6115c9612797565b565b60006115f48260008086815260200190815260200160002060000161288390919063ffffffff16565b905092915050565b60006116258260008086815260200190815260200160002060000161289d90919063ffffffff16565b905092915050565b606060088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116c55780601f1061169a576101008083540402835291602001916116c5565b820191906000526020600020905b8154815290600101906020018083116116a857829003601f168201915b5050505050905090565b6000801b81565b6116de611dad565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561177f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b806006600061178c611dad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611839611dad565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b61189d611897611dad565b83611e83565b6118f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806139b56031913960400191505060405180910390fd5b6118fe848484846128cd565b50505050565b606061190f82611d90565b611964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613965602f913960400191505060405180910390fd5b6060600960008481526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a0d5780601f106119e257610100808354040283529160200191611a0d565b820191906000526020600020905b8154815290600101906020018083116119f057829003601f168201915b505050505090506060611a1e6113c4565b9050600081511415611a34578192505050611bd0565b600082511115611b055780826040516020018083805190602001908083835b60208310611a765780518252602082019150602081019050602083039250611a53565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310611ac75780518252602082019150602081019050602083039250611aa4565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405292505050611bd0565b80611b0f8561293f565b6040516020018083805190602001908083835b60208310611b455780518252602082019150602081019050602083039250611b22565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310611b965780518252602082019150602081019050602083039250611b73565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052925050505b919050565b6000611bf4600080848152602001908152602001600020600001612a86565b9050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b611c4560008084815260200190815260200160002060020154611c40611dad565b6115fc565b611c9a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806138336030913960400191505060405180910390fd5b611ca48282612267565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000611d88836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612a9b565b905092915050565b6000611da6826003612b0b90919063ffffffff16565b9050919050565b600033905090565b816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611e28836112e7565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611e7c82600001612b25565b9050919050565b6000611e8e82611d90565b611ee3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613807602c913960400191505060405180910390fd5b6000611eee836112e7565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611f5d57508373ffffffffffffffffffffffffffffffffffffffff16611f4584610d89565b73ffffffffffffffffffffffffffffffffffffffff16145b80611f6e5750611f6d8185611ccc565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611f97826112e7565b73ffffffffffffffffffffffffffffffffffffffff1614612003576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061393c6029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612089576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806137bd6024913960400191505060405180910390fd5b612094838383612b36565b61209f600082611db5565b6120f081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612b4690919063ffffffff16565b5061214281600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612b6090919063ffffffff16565b5061215981836003612b7a9092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6121e181600080858152602001908152602001600020600001611d6090919063ffffffff16565b15612249576121ee611dad565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600061225c8360000183612baf565b60001c905092915050565b61228e81600080858152602001908152602001600020600001612c3290919063ffffffff16565b156122f65761229b611dad565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6123026112d0565b612374576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6123b8611dad565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60006123f0826112e7565b90506123fe81600084612b36565b612409600083611db5565b6000600960008481526020019081526020016000208054600181600116156101000203166002900490501461245857600960008381526020019081526020016000206000612457919061366b565b5b6124a982600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612b4690919063ffffffff16565b506124be826003612c6290919063ffffffff16565b5081600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6000806000806125328660000186612c7c565b915091508160001c8160001c9350935050509250929050565b600061255e846000018460001b84612d15565b60001c90509392505050565b600081600001549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561261b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b61262481611d90565b15612697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b6126a360008383612b36565b6126f481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612b6090919063ffffffff16565b5061270b81836003612b7a9092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6001816000016000828254019250508190555050565b600061279082600001612e0b565b9050919050565b61279f6112d0565b15612812576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600b60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612856611dad565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60006128928360000183612baf565b60001c905092915050565b60006128c5836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612e1c565b905092915050565b6128d8848484611f77565b6128e484848484612e3f565b612939576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061374d6032913960400191505060405180910390fd5b50505050565b60606000821415612987576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612a81565b600082905060005b600082146129b1578080600101915050600a82816129a957fe5b04915061298f565b60608167ffffffffffffffff811180156129ca57600080fd5b506040519080825280601f01601f1916602001820160405280156129fd5781602001600182028036833780820191505090505b50905060006001830390508593505b60008414612a7957600a8481612a1e57fe5b0660300160f81b82828060019003935081518110612a3857fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8481612a7157fe5b049350612a0c565b819450505050505b919050565b6000612a9482600001612e0b565b9050919050565b6000612aa78383612e1c565b612b00578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612b05565b600090505b92915050565b6000612b1d836000018360001b613058565b905092915050565b600081600001805490509050919050565b612b4183838361307b565b505050565b6000612b58836000018360001b6130e9565b905092915050565b6000612b72836000018360001b612a9b565b905092915050565b6000612ba6846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b6131d1565b90509392505050565b600081836000018054905011612c10576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806136d16022913960400191505060405180910390fd5b826000018281548110612c1f57fe5b9060005260206000200154905092915050565b6000612c5a836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6130e9565b905092915050565b6000612c74836000018360001b6132ad565b905092915050565b60008082846000018054905011612cde576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806138ee6022913960400191505060405180910390fd5b6000846000018481548110612cef57fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b60008084600101600085815260200190815260200160002054905060008114158390612ddc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612da1578082015181840152602081019050612d86565b50505050905090810190601f168015612dce5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50846000016001820381548110612def57fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b6000612e608473ffffffffffffffffffffffffffffffffffffffff166133c6565b612e6d5760019050613050565b6060612fd763150b7a0260e01b612e82611dad565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612f06578082015181840152602081019050612eeb565b50505050905090810190601f168015612f335780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405180606001604052806032815260200161374d603291398773ffffffffffffffffffffffffffffffffffffffff166133d99092919063ffffffff16565b90506000818060200190516020811015612ff057600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600080836001016000848152602001908152602001600020541415905092915050565b6130868383836133f1565b61308e6112d0565b156130e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806136f3602b913960400191505060405180910390fd5b505050565b600080836001016000848152602001908152602001600020549050600081146131c5576000600182039050600060018660000180549050039050600086600001828154811061313457fe5b906000526020600020015490508087600001848154811061315157fe5b906000526020600020018190555060018301876001016000838152602001908152602001600020819055508660000180548061318957fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506131cb565b60009150505b92915050565b6000808460010160008581526020019081526020016000205490506000811415613278578460000160405180604001604052808681526020018581525090806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010155505084600001805490508560010160008681526020019081526020016000208190555060019150506132a6565b8285600001600183038154811061328b57fe5b90600052602060002090600202016001018190555060009150505b9392505050565b600080836001016000848152602001908152602001600020549050600081146133ba57600060018203905060006001866000018054905003905060008660000182815481106132f857fe5b906000526020600020906002020190508087600001848154811061331857fe5b906000526020600020906002020160008201548160000155600182015481600101559050506001830187600101600083600001548152602001908152602001600020819055508660000180548061336b57fe5b60019003818190600052602060002090600202016000808201600090556001820160009055505090558660010160008781526020019081526020016000206000905560019450505050506133c0565b60009150505b92915050565b600080823b905060008111915050919050565b60606133e884846000856133f6565b90509392505050565b505050565b606082471015613451576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806137e16026913960400191505060405180910390fd5b61345a856133c6565b6134cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b6020831061351c57805182526020820191506020810190506020830392506134f9565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461357e576040519150601f19603f3d011682016040523d82523d6000602084013e613583565b606091505b509150915061359382828661359f565b92505050949350505050565b606083156135af57829050613664565b6000835111156135c25782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561362957808201518184015260208101905061360e565b50505050905090810190601f1680156136565780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b50805460018160011615610100020316600290046000825580601f1061369157506136b0565b601f0160209004906000526020600020908101906136af91906136b3565b5b50565b5b808211156136cc5760008160009055506001016136b4565b509056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732315061757361626c653a20746f6b656e207472616e73666572207768696c6520706175736564416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e744552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732315072657365744d696e7465725061757365724175746f49643a206d75737420686176652070617573657220726f6c6520746f2070617573654552433732313a207472616e7366657220746f20746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b654552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732315072657365744d696e7465725061757365724175746f49643a206d7573742068617665206d696e74657220726f6c6520746f206d696e744552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732315072657365744d696e7465725061757365724175746f49643a206d75737420686176652070617573657220726f6c6520746f20756e7061757365416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a26469706673582212209f299e0b8e7bca786733546e901b12d79ac24c82899bd8693f315d7a234ff3e064736f6c634300060c0033",
760
+ "linkReferences": {},
761
+ "deployedLinkReferences": {}
762
+ }