-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathExample.json
473 lines (473 loc) · 56.1 KB
/
Example.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
{
"_format": "hh-sol-artifact-1",
"contractName": "Example",
"sourceName": "contracts/Example.sol",
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "baseURI_",
"type": "string"
},
{
"internalType": "uint256",
"name": "price_",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "approved",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"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": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [],
"name": "MAX_PUNKS",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "multipleOutput",
"outputs": [
{
"internalType": "uint256",
"name": "firstOutput",
"type": "uint256"
},
{
"internalType": "string",
"name": "secondOutput",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "mint",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "price",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "tokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "total",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405260006007553480156200001657600080fd5b50604051620031293803806200312983398181016040528101906200003c91906200032b565b6040518060400160405280600a81526020017f43797068657270756e6b000000000000000000000000000000000000000000008152506040518060400160405280600a81526020017f43595048455250554e4b000000000000000000000000000000000000000000008152508160009080519060200190620000c0929190620001f2565b508060019080519060200190620000d9929190620001f2565b505050620000fc620000f06200012460201b60201c565b6200012c60201b60201c565b816008908051906020019062000114929190620001f2565b5080600981905550505062000519565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620002009062000424565b90600052602060002090601f01602090048101928262000224576000855562000270565b82601f106200023f57805160ff191683800117855562000270565b8280016001018555821562000270579182015b828111156200026f57825182559160200191906001019062000252565b5b5090506200027f919062000283565b5090565b5b808211156200029e57600081600090555060010162000284565b5090565b6000620002b9620002b384620003ae565b62000385565b905082815260208101848484011115620002d257600080fd5b620002df848285620003ee565b509392505050565b600082601f830112620002f957600080fd5b81516200030b848260208601620002a2565b91505092915050565b6000815190506200032581620004ff565b92915050565b600080604083850312156200033f57600080fd5b600083015167ffffffffffffffff8111156200035a57600080fd5b6200036885828601620002e7565b92505060206200037b8582860162000314565b9150509250929050565b600062000391620003a4565b90506200039f82826200045a565b919050565b6000604051905090565b600067ffffffffffffffff821115620003cc57620003cb620004bf565b5b620003d782620004ee565b9050602081019050919050565b6000819050919050565b60005b838110156200040e578082015181840152602081019050620003f1565b838111156200041e576000848401525b50505050565b600060028204905060018216806200043d57607f821691505b6020821081141562000454576200045362000490565b5b50919050565b6200046582620004ee565b810181811067ffffffffffffffff82111715620004875762000486620004bf565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b6200050a81620003e4565b81146200051657600080fd5b50565b612c0080620005296000396000f3fe60806040526004361061011f5760003560e01c8063715018a6116100a0578063b88d4fde11610064578063b88d4fde146103b4578063c87b56dd146103dd578063deb59b3b1461041a578063e985e9c514610445578063f2fde38b146104825761011f565b8063715018a6146102f35780638da5cb5b1461030a57806395d89b4114610335578063a035b1fe14610360578063a22cb4651461038b5761011f565b806323b872dd116100e757806323b872dd146101fc5780632ddbd13a1461022557806342842e0e146102505780636352211e1461027957806370a08231146102b65761011f565b806301ffc9a71461012457806306fdde0314610161578063081812fc1461018c578063095ea7b3146101c95780631249c58b146101f2575b600080fd5b34801561013057600080fd5b5061014b60048036038101906101469190611e08565b6104ab565b60405161015891906121eb565b60405180910390f35b34801561016d57600080fd5b5061017661058d565b6040516101839190612206565b60405180910390f35b34801561019857600080fd5b506101b360048036038101906101ae9190611e5a565b61061f565b6040516101c09190612184565b60405180910390f35b3480156101d557600080fd5b506101f060048036038101906101eb9190611dcc565b610665565b005b6101fa61077d565b005b34801561020857600080fd5b50610223600480360381019061021e9190611cc6565b610803565b005b34801561023157600080fd5b5061023a610863565b6040516102479190612408565b60405180910390f35b34801561025c57600080fd5b5061027760048036038101906102729190611cc6565b610869565b005b34801561028557600080fd5b506102a0600480360381019061029b9190611e5a565b610889565b6040516102ad9190612184565b60405180910390f35b3480156102c257600080fd5b506102dd60048036038101906102d89190611c61565b61093b565b6040516102ea9190612408565b60405180910390f35b3480156102ff57600080fd5b506103086109f3565b005b34801561031657600080fd5b5061031f610a07565b60405161032c9190612184565b60405180910390f35b34801561034157600080fd5b5061034a610a31565b6040516103579190612206565b60405180910390f35b34801561036c57600080fd5b50610375610ac3565b6040516103829190612408565b60405180910390f35b34801561039757600080fd5b506103b260048036038101906103ad9190611d90565b610ac9565b005b3480156103c057600080fd5b506103db60048036038101906103d69190611d15565b610adf565b005b3480156103e957600080fd5b5061040460048036038101906103ff9190611e5a565b610b41565b6040516104119190612206565b60405180910390f35b34801561042657600080fd5b5061042f610ba9565b60405161043c9190612408565b60405180910390f35b34801561045157600080fd5b5061046c60048036038101906104679190611c8a565b610baf565b60405161047991906121eb565b60405180910390f35b34801561048e57600080fd5b506104a960048036038101906104a49190611c61565b610c43565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061057657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610586575061058582610cc7565b5b9050919050565b60606000805461059c9061262d565b80601f01602080910402602001604051908101604052809291908181526020018280546105c89061262d565b80156106155780601f106105ea57610100808354040283529160200191610615565b820191906000526020600020905b8154815290600101906020018083116105f857829003601f168201915b5050505050905090565b600061062a82610d31565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061067082610889565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156106e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d8906123c8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610700610d7c565b73ffffffffffffffffffffffffffffffffffffffff16148061072f575061072e81610729610d7c565b610baf565b5b61076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076590612328565b60405180910390fd5b6107788383610d84565b505050565b612710600754106107c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ba90612248565b60405180910390fd5b6107df3360075460405180602001604052806000815250610e3d565b6001600760008282546107f291906124bc565b92505081905550610801610e98565b565b61081461080e610d7c565b82610f3e565b610853576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084a906123e8565b60405180910390fd5b61085e838383610fd3565b505050565b60075481565b61088483838360405180602001604052806000815250610adf565b505050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610932576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610929906123a8565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a390612308565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109fb61123a565b610a0560006112b8565b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610a409061262d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6c9061262d565b8015610ab95780601f10610a8e57610100808354040283529160200191610ab9565b820191906000526020600020905b815481529060010190602001808311610a9c57829003601f168201915b5050505050905090565b60095481565b610adb610ad4610d7c565b838361137e565b5050565b610af0610aea610d7c565b83610f3e565b610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b26906123e8565b60405180910390fd5b610b3b848484846114eb565b50505050565b6060610b4c82610d31565b6000610b56611547565b90506000815111610b765760405180602001604052806000815250610ba1565b80610b80846115d9565b604051602001610b91929190612160565b6040516020818303038152906040525b915050919050565b61271081565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610c4b61123a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb290612268565b60405180910390fd5b610cc4816112b8565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610d3a81611786565b610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d70906123a8565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610df783610889565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b610e4783836117f2565b610e5460008484846119cc565b610e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8a90612228565b60405180910390fd5b505050565b600954341015610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490612368565b60405180910390fd5b600954341115610f3c573373ffffffffffffffffffffffffffffffffffffffff166108fc60095434610f0f9190612543565b9081150290604051600060405180830381858888f19350505050158015610f3a573d6000803e3d6000fd5b505b565b600080610f4a83610889565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610f8c5750610f8b8185610baf565b5b80610fca57508373ffffffffffffffffffffffffffffffffffffffff16610fb28461061f565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610ff382610889565b73ffffffffffffffffffffffffffffffffffffffff1614611049576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104090612288565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b0906122c8565b60405180910390fd5b6110c4838383611b63565b6110cf600082610d84565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461111f9190612543565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461117691906124bc565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611235838383611b68565b505050565b611242610d7c565b73ffffffffffffffffffffffffffffffffffffffff16611260610a07565b73ffffffffffffffffffffffffffffffffffffffff16146112b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ad90612388565b60405180910390fd5b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e4906122e8565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516114de91906121eb565b60405180910390a3505050565b6114f6848484610fd3565b611502848484846119cc565b611541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153890612228565b60405180910390fd5b50505050565b6060600880546115569061262d565b80601f01602080910402602001604051908101604052809291908181526020018280546115829061262d565b80156115cf5780601f106115a4576101008083540402835291602001916115cf565b820191906000526020600020905b8154815290600101906020018083116115b257829003601f168201915b5050505050905090565b60606000821415611621576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611781565b600082905060005b6000821461165357808061163c90612690565b915050600a8261164c9190612512565b9150611629565b60008167ffffffffffffffff811115611695577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156116c75781602001600182028036833780820191505090505b5090505b6000851461177a576001826116e09190612543565b9150600a856116ef91906126d9565b60306116fb91906124bc565b60f81b818381518110611737577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856117739190612512565b94506116cb565b8093505050505b919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611862576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185990612348565b60405180910390fd5b61186b81611786565b156118ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a2906122a8565b60405180910390fd5b6118b760008383611b63565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461190791906124bc565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46119c860008383611b68565b5050565b60006119ed8473ffffffffffffffffffffffffffffffffffffffff16611b6d565b15611b56578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611a16610d7c565b8786866040518563ffffffff1660e01b8152600401611a38949392919061219f565b602060405180830381600087803b158015611a5257600080fd5b505af1925050508015611a8357506040513d601f19601f82011682018060405250810190611a809190611e31565b60015b611b06573d8060008114611ab3576040519150601f19603f3d011682016040523d82523d6000602084013e611ab8565b606091505b50600081511415611afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af590612228565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611b5b565b600190505b949350505050565b505050565b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000611ba3611b9e84612448565b612423565b905082815260208101848484011115611bbb57600080fd5b611bc68482856125eb565b509392505050565b600081359050611bdd81612b6e565b92915050565b600081359050611bf281612b85565b92915050565b600081359050611c0781612b9c565b92915050565b600081519050611c1c81612b9c565b92915050565b600082601f830112611c3357600080fd5b8135611c43848260208601611b90565b91505092915050565b600081359050611c5b81612bb3565b92915050565b600060208284031215611c7357600080fd5b6000611c8184828501611bce565b91505092915050565b60008060408385031215611c9d57600080fd5b6000611cab85828601611bce565b9250506020611cbc85828601611bce565b9150509250929050565b600080600060608486031215611cdb57600080fd5b6000611ce986828701611bce565b9350506020611cfa86828701611bce565b9250506040611d0b86828701611c4c565b9150509250925092565b60008060008060808587031215611d2b57600080fd5b6000611d3987828801611bce565b9450506020611d4a87828801611bce565b9350506040611d5b87828801611c4c565b925050606085013567ffffffffffffffff811115611d7857600080fd5b611d8487828801611c22565b91505092959194509250565b60008060408385031215611da357600080fd5b6000611db185828601611bce565b9250506020611dc285828601611be3565b9150509250929050565b60008060408385031215611ddf57600080fd5b6000611ded85828601611bce565b9250506020611dfe85828601611c4c565b9150509250929050565b600060208284031215611e1a57600080fd5b6000611e2884828501611bf8565b91505092915050565b600060208284031215611e4357600080fd5b6000611e5184828501611c0d565b91505092915050565b600060208284031215611e6c57600080fd5b6000611e7a84828501611c4c565b91505092915050565b611e8c81612577565b82525050565b611e9b81612589565b82525050565b6000611eac82612479565b611eb6818561248f565b9350611ec68185602086016125fa565b611ecf816127c6565b840191505092915050565b6000611ee582612484565b611eef81856124a0565b9350611eff8185602086016125fa565b611f08816127c6565b840191505092915050565b6000611f1e82612484565b611f2881856124b1565b9350611f388185602086016125fa565b80840191505092915050565b6000611f516032836124a0565b9150611f5c826127d7565b604082019050919050565b6000611f746008836124a0565b9150611f7f82612826565b602082019050919050565b6000611f976026836124a0565b9150611fa28261284f565b604082019050919050565b6000611fba6025836124a0565b9150611fc58261289e565b604082019050919050565b6000611fdd601c836124a0565b9150611fe8826128ed565b602082019050919050565b60006120006024836124a0565b915061200b82612916565b604082019050919050565b60006120236019836124a0565b915061202e82612965565b602082019050919050565b60006120466029836124a0565b91506120518261298e565b604082019050919050565b6000612069603e836124a0565b9150612074826129dd565b604082019050919050565b600061208c6020836124a0565b915061209782612a2c565b602082019050919050565b60006120af600e836124a0565b91506120ba82612a55565b602082019050919050565b60006120d26020836124a0565b91506120dd82612a7e565b602082019050919050565b60006120f56018836124a0565b915061210082612aa7565b602082019050919050565b60006121186021836124a0565b915061212382612ad0565b604082019050919050565b600061213b602e836124a0565b915061214682612b1f565b604082019050919050565b61215a816125e1565b82525050565b600061216c8285611f13565b91506121788284611f13565b91508190509392505050565b60006020820190506121996000830184611e83565b92915050565b60006080820190506121b46000830187611e83565b6121c16020830186611e83565b6121ce6040830185612151565b81810360608301526121e08184611ea1565b905095945050505050565b60006020820190506122006000830184611e92565b92915050565b600060208201905081810360008301526122208184611eda565b905092915050565b6000602082019050818103600083015261224181611f44565b9050919050565b6000602082019050818103600083015261226181611f67565b9050919050565b6000602082019050818103600083015261228181611f8a565b9050919050565b600060208201905081810360008301526122a181611fad565b9050919050565b600060208201905081810360008301526122c181611fd0565b9050919050565b600060208201905081810360008301526122e181611ff3565b9050919050565b6000602082019050818103600083015261230181612016565b9050919050565b6000602082019050818103600083015261232181612039565b9050919050565b600060208201905081810360008301526123418161205c565b9050919050565b600060208201905081810360008301526123618161207f565b9050919050565b60006020820190508181036000830152612381816120a2565b9050919050565b600060208201905081810360008301526123a1816120c5565b9050919050565b600060208201905081810360008301526123c1816120e8565b9050919050565b600060208201905081810360008301526123e18161210b565b9050919050565b600060208201905081810360008301526124018161212e565b9050919050565b600060208201905061241d6000830184612151565b92915050565b600061242d61243e565b9050612439828261265f565b919050565b6000604051905090565b600067ffffffffffffffff82111561246357612462612797565b5b61246c826127c6565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006124c7826125e1565b91506124d2836125e1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125075761250661270a565b5b828201905092915050565b600061251d826125e1565b9150612528836125e1565b92508261253857612537612739565b5b828204905092915050565b600061254e826125e1565b9150612559836125e1565b92508282101561256c5761256b61270a565b5b828203905092915050565b6000612582826125c1565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156126185780820151818401526020810190506125fd565b83811115612627576000848401525b50505050565b6000600282049050600182168061264557607f821691505b6020821081141561265957612658612768565b5b50919050565b612668826127c6565b810181811067ffffffffffffffff8211171561268757612686612797565b5b80604052505050565b600061269b826125e1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156126ce576126cd61270a565b5b600182019050919050565b60006126e4826125e1565b91506126ef836125e1565b9250826126ff576126fe612739565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f536f6c64204f7574000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4e6f7420656e6f75676820455448000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b612b7781612577565b8114612b8257600080fd5b50565b612b8e81612589565b8114612b9957600080fd5b50565b612ba581612595565b8114612bb057600080fd5b50565b612bbc816125e1565b8114612bc757600080fd5b5056fea2646970667358221220d186f66eb37521be865437bf7068309ee7799e16d6c4f8e4dd0221a33977396064736f6c63430008040033",
"deployedBytecode": "0x60806040526004361061011f5760003560e01c8063715018a6116100a0578063b88d4fde11610064578063b88d4fde146103b4578063c87b56dd146103dd578063deb59b3b1461041a578063e985e9c514610445578063f2fde38b146104825761011f565b8063715018a6146102f35780638da5cb5b1461030a57806395d89b4114610335578063a035b1fe14610360578063a22cb4651461038b5761011f565b806323b872dd116100e757806323b872dd146101fc5780632ddbd13a1461022557806342842e0e146102505780636352211e1461027957806370a08231146102b65761011f565b806301ffc9a71461012457806306fdde0314610161578063081812fc1461018c578063095ea7b3146101c95780631249c58b146101f2575b600080fd5b34801561013057600080fd5b5061014b60048036038101906101469190611e08565b6104ab565b60405161015891906121eb565b60405180910390f35b34801561016d57600080fd5b5061017661058d565b6040516101839190612206565b60405180910390f35b34801561019857600080fd5b506101b360048036038101906101ae9190611e5a565b61061f565b6040516101c09190612184565b60405180910390f35b3480156101d557600080fd5b506101f060048036038101906101eb9190611dcc565b610665565b005b6101fa61077d565b005b34801561020857600080fd5b50610223600480360381019061021e9190611cc6565b610803565b005b34801561023157600080fd5b5061023a610863565b6040516102479190612408565b60405180910390f35b34801561025c57600080fd5b5061027760048036038101906102729190611cc6565b610869565b005b34801561028557600080fd5b506102a0600480360381019061029b9190611e5a565b610889565b6040516102ad9190612184565b60405180910390f35b3480156102c257600080fd5b506102dd60048036038101906102d89190611c61565b61093b565b6040516102ea9190612408565b60405180910390f35b3480156102ff57600080fd5b506103086109f3565b005b34801561031657600080fd5b5061031f610a07565b60405161032c9190612184565b60405180910390f35b34801561034157600080fd5b5061034a610a31565b6040516103579190612206565b60405180910390f35b34801561036c57600080fd5b50610375610ac3565b6040516103829190612408565b60405180910390f35b34801561039757600080fd5b506103b260048036038101906103ad9190611d90565b610ac9565b005b3480156103c057600080fd5b506103db60048036038101906103d69190611d15565b610adf565b005b3480156103e957600080fd5b5061040460048036038101906103ff9190611e5a565b610b41565b6040516104119190612206565b60405180910390f35b34801561042657600080fd5b5061042f610ba9565b60405161043c9190612408565b60405180910390f35b34801561045157600080fd5b5061046c60048036038101906104679190611c8a565b610baf565b60405161047991906121eb565b60405180910390f35b34801561048e57600080fd5b506104a960048036038101906104a49190611c61565b610c43565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061057657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610586575061058582610cc7565b5b9050919050565b60606000805461059c9061262d565b80601f01602080910402602001604051908101604052809291908181526020018280546105c89061262d565b80156106155780601f106105ea57610100808354040283529160200191610615565b820191906000526020600020905b8154815290600101906020018083116105f857829003601f168201915b5050505050905090565b600061062a82610d31565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061067082610889565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156106e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d8906123c8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610700610d7c565b73ffffffffffffffffffffffffffffffffffffffff16148061072f575061072e81610729610d7c565b610baf565b5b61076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076590612328565b60405180910390fd5b6107788383610d84565b505050565b612710600754106107c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ba90612248565b60405180910390fd5b6107df3360075460405180602001604052806000815250610e3d565b6001600760008282546107f291906124bc565b92505081905550610801610e98565b565b61081461080e610d7c565b82610f3e565b610853576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084a906123e8565b60405180910390fd5b61085e838383610fd3565b505050565b60075481565b61088483838360405180602001604052806000815250610adf565b505050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610932576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610929906123a8565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a390612308565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109fb61123a565b610a0560006112b8565b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610a409061262d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6c9061262d565b8015610ab95780601f10610a8e57610100808354040283529160200191610ab9565b820191906000526020600020905b815481529060010190602001808311610a9c57829003601f168201915b5050505050905090565b60095481565b610adb610ad4610d7c565b838361137e565b5050565b610af0610aea610d7c565b83610f3e565b610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b26906123e8565b60405180910390fd5b610b3b848484846114eb565b50505050565b6060610b4c82610d31565b6000610b56611547565b90506000815111610b765760405180602001604052806000815250610ba1565b80610b80846115d9565b604051602001610b91929190612160565b6040516020818303038152906040525b915050919050565b61271081565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610c4b61123a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb290612268565b60405180910390fd5b610cc4816112b8565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610d3a81611786565b610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d70906123a8565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610df783610889565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b610e4783836117f2565b610e5460008484846119cc565b610e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8a90612228565b60405180910390fd5b505050565b600954341015610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490612368565b60405180910390fd5b600954341115610f3c573373ffffffffffffffffffffffffffffffffffffffff166108fc60095434610f0f9190612543565b9081150290604051600060405180830381858888f19350505050158015610f3a573d6000803e3d6000fd5b505b565b600080610f4a83610889565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610f8c5750610f8b8185610baf565b5b80610fca57508373ffffffffffffffffffffffffffffffffffffffff16610fb28461061f565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610ff382610889565b73ffffffffffffffffffffffffffffffffffffffff1614611049576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104090612288565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b0906122c8565b60405180910390fd5b6110c4838383611b63565b6110cf600082610d84565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461111f9190612543565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461117691906124bc565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611235838383611b68565b505050565b611242610d7c565b73ffffffffffffffffffffffffffffffffffffffff16611260610a07565b73ffffffffffffffffffffffffffffffffffffffff16146112b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ad90612388565b60405180910390fd5b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e4906122e8565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516114de91906121eb565b60405180910390a3505050565b6114f6848484610fd3565b611502848484846119cc565b611541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153890612228565b60405180910390fd5b50505050565b6060600880546115569061262d565b80601f01602080910402602001604051908101604052809291908181526020018280546115829061262d565b80156115cf5780601f106115a4576101008083540402835291602001916115cf565b820191906000526020600020905b8154815290600101906020018083116115b257829003601f168201915b5050505050905090565b60606000821415611621576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611781565b600082905060005b6000821461165357808061163c90612690565b915050600a8261164c9190612512565b9150611629565b60008167ffffffffffffffff811115611695577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156116c75781602001600182028036833780820191505090505b5090505b6000851461177a576001826116e09190612543565b9150600a856116ef91906126d9565b60306116fb91906124bc565b60f81b818381518110611737577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856117739190612512565b94506116cb565b8093505050505b919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611862576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185990612348565b60405180910390fd5b61186b81611786565b156118ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a2906122a8565b60405180910390fd5b6118b760008383611b63565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461190791906124bc565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46119c860008383611b68565b5050565b60006119ed8473ffffffffffffffffffffffffffffffffffffffff16611b6d565b15611b56578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611a16610d7c565b8786866040518563ffffffff1660e01b8152600401611a38949392919061219f565b602060405180830381600087803b158015611a5257600080fd5b505af1925050508015611a8357506040513d601f19601f82011682018060405250810190611a809190611e31565b60015b611b06573d8060008114611ab3576040519150601f19603f3d011682016040523d82523d6000602084013e611ab8565b606091505b50600081511415611afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af590612228565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611b5b565b600190505b949350505050565b505050565b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000611ba3611b9e84612448565b612423565b905082815260208101848484011115611bbb57600080fd5b611bc68482856125eb565b509392505050565b600081359050611bdd81612b6e565b92915050565b600081359050611bf281612b85565b92915050565b600081359050611c0781612b9c565b92915050565b600081519050611c1c81612b9c565b92915050565b600082601f830112611c3357600080fd5b8135611c43848260208601611b90565b91505092915050565b600081359050611c5b81612bb3565b92915050565b600060208284031215611c7357600080fd5b6000611c8184828501611bce565b91505092915050565b60008060408385031215611c9d57600080fd5b6000611cab85828601611bce565b9250506020611cbc85828601611bce565b9150509250929050565b600080600060608486031215611cdb57600080fd5b6000611ce986828701611bce565b9350506020611cfa86828701611bce565b9250506040611d0b86828701611c4c565b9150509250925092565b60008060008060808587031215611d2b57600080fd5b6000611d3987828801611bce565b9450506020611d4a87828801611bce565b9350506040611d5b87828801611c4c565b925050606085013567ffffffffffffffff811115611d7857600080fd5b611d8487828801611c22565b91505092959194509250565b60008060408385031215611da357600080fd5b6000611db185828601611bce565b9250506020611dc285828601611be3565b9150509250929050565b60008060408385031215611ddf57600080fd5b6000611ded85828601611bce565b9250506020611dfe85828601611c4c565b9150509250929050565b600060208284031215611e1a57600080fd5b6000611e2884828501611bf8565b91505092915050565b600060208284031215611e4357600080fd5b6000611e5184828501611c0d565b91505092915050565b600060208284031215611e6c57600080fd5b6000611e7a84828501611c4c565b91505092915050565b611e8c81612577565b82525050565b611e9b81612589565b82525050565b6000611eac82612479565b611eb6818561248f565b9350611ec68185602086016125fa565b611ecf816127c6565b840191505092915050565b6000611ee582612484565b611eef81856124a0565b9350611eff8185602086016125fa565b611f08816127c6565b840191505092915050565b6000611f1e82612484565b611f2881856124b1565b9350611f388185602086016125fa565b80840191505092915050565b6000611f516032836124a0565b9150611f5c826127d7565b604082019050919050565b6000611f746008836124a0565b9150611f7f82612826565b602082019050919050565b6000611f976026836124a0565b9150611fa28261284f565b604082019050919050565b6000611fba6025836124a0565b9150611fc58261289e565b604082019050919050565b6000611fdd601c836124a0565b9150611fe8826128ed565b602082019050919050565b60006120006024836124a0565b915061200b82612916565b604082019050919050565b60006120236019836124a0565b915061202e82612965565b602082019050919050565b60006120466029836124a0565b91506120518261298e565b604082019050919050565b6000612069603e836124a0565b9150612074826129dd565b604082019050919050565b600061208c6020836124a0565b915061209782612a2c565b602082019050919050565b60006120af600e836124a0565b91506120ba82612a55565b602082019050919050565b60006120d26020836124a0565b91506120dd82612a7e565b602082019050919050565b60006120f56018836124a0565b915061210082612aa7565b602082019050919050565b60006121186021836124a0565b915061212382612ad0565b604082019050919050565b600061213b602e836124a0565b915061214682612b1f565b604082019050919050565b61215a816125e1565b82525050565b600061216c8285611f13565b91506121788284611f13565b91508190509392505050565b60006020820190506121996000830184611e83565b92915050565b60006080820190506121b46000830187611e83565b6121c16020830186611e83565b6121ce6040830185612151565b81810360608301526121e08184611ea1565b905095945050505050565b60006020820190506122006000830184611e92565b92915050565b600060208201905081810360008301526122208184611eda565b905092915050565b6000602082019050818103600083015261224181611f44565b9050919050565b6000602082019050818103600083015261226181611f67565b9050919050565b6000602082019050818103600083015261228181611f8a565b9050919050565b600060208201905081810360008301526122a181611fad565b9050919050565b600060208201905081810360008301526122c181611fd0565b9050919050565b600060208201905081810360008301526122e181611ff3565b9050919050565b6000602082019050818103600083015261230181612016565b9050919050565b6000602082019050818103600083015261232181612039565b9050919050565b600060208201905081810360008301526123418161205c565b9050919050565b600060208201905081810360008301526123618161207f565b9050919050565b60006020820190508181036000830152612381816120a2565b9050919050565b600060208201905081810360008301526123a1816120c5565b9050919050565b600060208201905081810360008301526123c1816120e8565b9050919050565b600060208201905081810360008301526123e18161210b565b9050919050565b600060208201905081810360008301526124018161212e565b9050919050565b600060208201905061241d6000830184612151565b92915050565b600061242d61243e565b9050612439828261265f565b919050565b6000604051905090565b600067ffffffffffffffff82111561246357612462612797565b5b61246c826127c6565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006124c7826125e1565b91506124d2836125e1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125075761250661270a565b5b828201905092915050565b600061251d826125e1565b9150612528836125e1565b92508261253857612537612739565b5b828204905092915050565b600061254e826125e1565b9150612559836125e1565b92508282101561256c5761256b61270a565b5b828203905092915050565b6000612582826125c1565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156126185780820151818401526020810190506125fd565b83811115612627576000848401525b50505050565b6000600282049050600182168061264557607f821691505b6020821081141561265957612658612768565b5b50919050565b612668826127c6565b810181811067ffffffffffffffff8211171561268757612686612797565b5b80604052505050565b600061269b826125e1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156126ce576126cd61270a565b5b600182019050919050565b60006126e4826125e1565b91506126ef836125e1565b9250826126ff576126fe612739565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f536f6c64204f7574000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4e6f7420656e6f75676820455448000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b612b7781612577565b8114612b8257600080fd5b50565b612b8e81612589565b8114612b9957600080fd5b50565b612ba581612595565b8114612bb057600080fd5b50565b612bbc816125e1565b8114612bc757600080fd5b5056fea2646970667358221220d186f66eb37521be865437bf7068309ee7799e16d6c4f8e4dd0221a33977396064736f6c63430008040033",
"linkReferences": {},
"deployedLinkReferences": {}
}