UNPKG

45.4 kBJSONView Raw
1{
2 "_format": "hh-sol-artifact-1",
3 "contractName": "ClubSellableMetadataMembershipContract",
4 "sourceName": "contracts/club-contracts/ClubSellableMetadataMembershipContract.sol",
5 "abi": [
6 {
7 "inputs": [],
8 "stateMutability": "nonpayable",
9 "type": "constructor"
10 },
11 {
12 "anonymous": false,
13 "inputs": [
14 {
15 "indexed": true,
16 "internalType": "address",
17 "name": "target",
18 "type": "address"
19 },
20 {
21 "indexed": true,
22 "internalType": "uint256",
23 "name": "membershipType",
24 "type": "uint256"
25 }
26 ],
27 "name": "MembershipAdded",
28 "type": "event"
29 },
30 {
31 "anonymous": false,
32 "inputs": [
33 {
34 "indexed": true,
35 "internalType": "address",
36 "name": "target",
37 "type": "address"
38 },
39 {
40 "indexed": true,
41 "internalType": "uint256",
42 "name": "membershipType",
43 "type": "uint256"
44 }
45 ],
46 "name": "MembershipRemoved",
47 "type": "event"
48 },
49 {
50 "inputs": [
51 {
52 "internalType": "address",
53 "name": "contractAddress",
54 "type": "address"
55 }
56 ],
57 "name": "addAvailableCurrencyTokenContract",
58 "outputs": [],
59 "stateMutability": "nonpayable",
60 "type": "function"
61 },
62 {
63 "inputs": [
64 {
65 "internalType": "address",
66 "name": "customerAddress",
67 "type": "address"
68 },
69 {
70 "internalType": "uint256",
71 "name": "membershipType",
72 "type": "uint256"
73 },
74 {
75 "internalType": "string",
76 "name": "metadata",
77 "type": "string"
78 }
79 ],
80 "name": "addMembership",
81 "outputs": [],
82 "stateMutability": "nonpayable",
83 "type": "function"
84 },
85 {
86 "inputs": [
87 {
88 "internalType": "address",
89 "name": "newOwner",
90 "type": "address"
91 }
92 ],
93 "name": "addOwner",
94 "outputs": [],
95 "stateMutability": "nonpayable",
96 "type": "function"
97 },
98 {
99 "inputs": [
100 {
101 "internalType": "uint256",
102 "name": "membershipType",
103 "type": "uint256"
104 },
105 {
106 "internalType": "uint256",
107 "name": "requestedAmount",
108 "type": "uint256"
109 },
110 {
111 "internalType": "address",
112 "name": "recipient",
113 "type": "address"
114 }
115 ],
116 "name": "buyWithEther",
117 "outputs": [],
118 "stateMutability": "payable",
119 "type": "function"
120 },
121 {
122 "inputs": [
123 {
124 "internalType": "uint256",
125 "name": "tokenId",
126 "type": "uint256"
127 },
128 {
129 "internalType": "uint256",
130 "name": "requestedAmount",
131 "type": "uint256"
132 },
133 {
134 "internalType": "address",
135 "name": "recipient",
136 "type": "address"
137 },
138 {
139 "internalType": "address",
140 "name": "currencyTokenContract",
141 "type": "address"
142 }
143 ],
144 "name": "buyWithToken",
145 "outputs": [],
146 "stateMutability": "nonpayable",
147 "type": "function"
148 },
149 {
150 "inputs": [
151 {
152 "internalType": "uint256",
153 "name": "membershipType",
154 "type": "uint256"
155 },
156 {
157 "internalType": "uint256",
158 "name": "requestedAmount",
159 "type": "uint256"
160 },
161 {
162 "internalType": "address",
163 "name": "recipient",
164 "type": "address"
165 }
166 ],
167 "name": "buyWithToken",
168 "outputs": [],
169 "stateMutability": "nonpayable",
170 "type": "function"
171 },
172 {
173 "inputs": [
174 {
175 "internalType": "address",
176 "name": "customerAddress",
177 "type": "address"
178 },
179 {
180 "internalType": "uint256",
181 "name": "membershipType",
182 "type": "uint256"
183 }
184 ],
185 "name": "confirmMembership",
186 "outputs": [
187 {
188 "internalType": "bool",
189 "name": "",
190 "type": "bool"
191 }
192 ],
193 "stateMutability": "view",
194 "type": "function"
195 },
196 {
197 "inputs": [],
198 "name": "getAvailableCurrencyTokenContractsList",
199 "outputs": [
200 {
201 "internalType": "address[]",
202 "name": "",
203 "type": "address[]"
204 }
205 ],
206 "stateMutability": "view",
207 "type": "function"
208 },
209 {
210 "inputs": [],
211 "name": "getBeneficiaryAddress",
212 "outputs": [
213 {
214 "internalType": "address",
215 "name": "",
216 "type": "address"
217 }
218 ],
219 "stateMutability": "view",
220 "type": "function"
221 },
222 {
223 "inputs": [
224 {
225 "internalType": "uint256",
226 "name": "clubId",
227 "type": "uint256"
228 }
229 ],
230 "name": "getClubAvailableMemberships",
231 "outputs": [
232 {
233 "internalType": "uint256[]",
234 "name": "",
235 "type": "uint256[]"
236 }
237 ],
238 "stateMutability": "view",
239 "type": "function"
240 },
241 {
242 "inputs": [],
243 "name": "getClubContractAddress",
244 "outputs": [
245 {
246 "internalType": "address",
247 "name": "",
248 "type": "address"
249 }
250 ],
251 "stateMutability": "view",
252 "type": "function"
253 },
254 {
255 "inputs": [
256 {
257 "internalType": "uint256",
258 "name": "membershipType",
259 "type": "uint256"
260 }
261 ],
262 "name": "getClubRequirement",
263 "outputs": [
264 {
265 "internalType": "uint256",
266 "name": "",
267 "type": "uint256"
268 }
269 ],
270 "stateMutability": "view",
271 "type": "function"
272 },
273 {
274 "inputs": [],
275 "name": "getDefaultCurrencyTokenContract",
276 "outputs": [
277 {
278 "internalType": "address",
279 "name": "",
280 "type": "address"
281 }
282 ],
283 "stateMutability": "view",
284 "type": "function"
285 },
286 {
287 "inputs": [],
288 "name": "getDescription",
289 "outputs": [
290 {
291 "internalType": "string",
292 "name": "",
293 "type": "string"
294 }
295 ],
296 "stateMutability": "view",
297 "type": "function"
298 },
299 {
300 "inputs": [
301 {
302 "internalType": "address",
303 "name": "customerAddress",
304 "type": "address"
305 },
306 {
307 "internalType": "uint256",
308 "name": "membershipType",
309 "type": "uint256"
310 }
311 ],
312 "name": "getMembershipMetadata",
313 "outputs": [
314 {
315 "internalType": "string",
316 "name": "",
317 "type": "string"
318 }
319 ],
320 "stateMutability": "view",
321 "type": "function"
322 },
323 {
324 "inputs": [],
325 "name": "getOwners",
326 "outputs": [
327 {
328 "internalType": "address[]",
329 "name": "",
330 "type": "address[]"
331 }
332 ],
333 "stateMutability": "view",
334 "type": "function"
335 },
336 {
337 "inputs": [
338 {
339 "internalType": "uint256",
340 "name": "id",
341 "type": "uint256"
342 }
343 ],
344 "name": "getPriceEther",
345 "outputs": [
346 {
347 "internalType": "uint256",
348 "name": "",
349 "type": "uint256"
350 }
351 ],
352 "stateMutability": "view",
353 "type": "function"
354 },
355 {
356 "inputs": [
357 {
358 "internalType": "uint256",
359 "name": "id",
360 "type": "uint256"
361 }
362 ],
363 "name": "getPriceFiat",
364 "outputs": [
365 {
366 "internalType": "uint256",
367 "name": "",
368 "type": "uint256"
369 }
370 ],
371 "stateMutability": "view",
372 "type": "function"
373 },
374 {
375 "inputs": [
376 {
377 "internalType": "uint256",
378 "name": "id",
379 "type": "uint256"
380 }
381 ],
382 "name": "getPriceToken",
383 "outputs": [
384 {
385 "internalType": "uint256",
386 "name": "",
387 "type": "uint256"
388 }
389 ],
390 "stateMutability": "view",
391 "type": "function"
392 },
393 {
394 "inputs": [
395 {
396 "internalType": "address",
397 "name": "customerAddress",
398 "type": "address"
399 }
400 ],
401 "name": "getUserMemberships",
402 "outputs": [
403 {
404 "internalType": "uint256[]",
405 "name": "",
406 "type": "uint256[]"
407 }
408 ],
409 "stateMutability": "view",
410 "type": "function"
411 },
412 {
413 "inputs": [],
414 "name": "getVersion",
415 "outputs": [
416 {
417 "internalType": "string",
418 "name": "",
419 "type": "string"
420 }
421 ],
422 "stateMutability": "pure",
423 "type": "function"
424 },
425 {
426 "inputs": [
427 {
428 "internalType": "address",
429 "name": "contractAddress",
430 "type": "address"
431 }
432 ],
433 "name": "isAvailableCurrencyTokenContract",
434 "outputs": [
435 {
436 "internalType": "bool",
437 "name": "",
438 "type": "bool"
439 }
440 ],
441 "stateMutability": "view",
442 "type": "function"
443 },
444 {
445 "inputs": [
446 {
447 "internalType": "address",
448 "name": "addr",
449 "type": "address"
450 }
451 ],
452 "name": "isOwner",
453 "outputs": [
454 {
455 "internalType": "bool",
456 "name": "",
457 "type": "bool"
458 }
459 ],
460 "stateMutability": "view",
461 "type": "function"
462 },
463 {
464 "inputs": [
465 {
466 "internalType": "address",
467 "name": "contractAddress",
468 "type": "address"
469 }
470 ],
471 "name": "removeAvailableCurrencyTokenContract",
472 "outputs": [],
473 "stateMutability": "nonpayable",
474 "type": "function"
475 },
476 {
477 "inputs": [
478 {
479 "internalType": "address",
480 "name": "customerAddress",
481 "type": "address"
482 },
483 {
484 "internalType": "uint256",
485 "name": "membershipType",
486 "type": "uint256"
487 }
488 ],
489 "name": "removeMembership",
490 "outputs": [],
491 "stateMutability": "nonpayable",
492 "type": "function"
493 },
494 {
495 "inputs": [
496 {
497 "internalType": "address",
498 "name": "owner",
499 "type": "address"
500 }
501 ],
502 "name": "removeOwner",
503 "outputs": [],
504 "stateMutability": "nonpayable",
505 "type": "function"
506 },
507 {
508 "inputs": [
509 {
510 "internalType": "address payable",
511 "name": "addr",
512 "type": "address"
513 }
514 ],
515 "name": "setBeneficiaryAddress",
516 "outputs": [],
517 "stateMutability": "nonpayable",
518 "type": "function"
519 },
520 {
521 "inputs": [
522 {
523 "internalType": "address",
524 "name": "contractAddress",
525 "type": "address"
526 }
527 ],
528 "name": "setClubContractAddress",
529 "outputs": [],
530 "stateMutability": "nonpayable",
531 "type": "function"
532 },
533 {
534 "inputs": [
535 {
536 "internalType": "uint256",
537 "name": "membershipType",
538 "type": "uint256"
539 },
540 {
541 "internalType": "uint256",
542 "name": "clubId",
543 "type": "uint256"
544 }
545 ],
546 "name": "setClubRequirement",
547 "outputs": [],
548 "stateMutability": "nonpayable",
549 "type": "function"
550 },
551 {
552 "inputs": [
553 {
554 "internalType": "address",
555 "name": "tokenContract",
556 "type": "address"
557 }
558 ],
559 "name": "setDefaultCurrencyTokenContractAddress",
560 "outputs": [],
561 "stateMutability": "nonpayable",
562 "type": "function"
563 },
564 {
565 "inputs": [
566 {
567 "internalType": "string",
568 "name": "description",
569 "type": "string"
570 }
571 ],
572 "name": "setDescription",
573 "outputs": [],
574 "stateMutability": "nonpayable",
575 "type": "function"
576 },
577 {
578 "inputs": [
579 {
580 "internalType": "address",
581 "name": "customerAddress",
582 "type": "address"
583 },
584 {
585 "internalType": "uint256",
586 "name": "membershipType",
587 "type": "uint256"
588 },
589 {
590 "internalType": "string",
591 "name": "metadata",
592 "type": "string"
593 }
594 ],
595 "name": "setMembershipMetadata",
596 "outputs": [],
597 "stateMutability": "nonpayable",
598 "type": "function"
599 },
600 {
601 "inputs": [
602 {
603 "internalType": "uint256",
604 "name": "id",
605 "type": "uint256"
606 },
607 {
608 "internalType": "uint256",
609 "name": "price",
610 "type": "uint256"
611 }
612 ],
613 "name": "setPriceEther",
614 "outputs": [],
615 "stateMutability": "nonpayable",
616 "type": "function"
617 },
618 {
619 "inputs": [
620 {
621 "internalType": "uint256",
622 "name": "id",
623 "type": "uint256"
624 },
625 {
626 "internalType": "uint256",
627 "name": "price",
628 "type": "uint256"
629 }
630 ],
631 "name": "setPriceFiat",
632 "outputs": [],
633 "stateMutability": "nonpayable",
634 "type": "function"
635 },
636 {
637 "inputs": [
638 {
639 "internalType": "uint256",
640 "name": "id",
641 "type": "uint256"
642 },
643 {
644 "internalType": "uint256",
645 "name": "price",
646 "type": "uint256"
647 }
648 ],
649 "name": "setPriceToken",
650 "outputs": [],
651 "stateMutability": "nonpayable",
652 "type": "function"
653 }
654 ],
655 "bytecode": "0x608060405234801561001057600080fd5b5061001a3361001f565b610123565b6001541580159061004057503360009081526020819052604090205460ff16155b1561009c5760405162461bcd60e51b815260206004820152602260248201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604482015261371760f11b606482015260840160405180910390fd5b6001600160a01b03811660009081526020819052604090205460ff16156100c05750565b6001600160a01b03166000818152602081905260408120805460ff191660019081179091558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319169091179055565b611df480620001336000396000f3fe6080604052600436106102045760003560e01c80637065cb4811610118578063adfadad3116100a0578063d1eff8951161006f578063d1eff89514610632578063d36223f114610650578063dfb0691514610670578063e1461f121461068e578063ec6be06e146106bb57600080fd5b8063adfadad31461058c578063b33a599f146105b9578063b68de974146105d9578063ca1a7fe11461061257600080fd5b806380dc439e116100e757806380dc439e1461050457806388d0f86a1461051757806390c3f38f14610537578063a0e67e2b14610557578063ac27ffa41461056c57600080fd5b80637065cb4814610482578063724e5c17146104a25780637e1d3d37146104c25780638003e27f146104e257600080fd5b80632f54bf6e1161019b57806345dc29981161016a57806345dc2998146103c8578063471882b7146103e8578063578680be146104155780636ae12aac146104355780636f38d3951461046257600080fd5b80632f54bf6e146103485780633a932dba146103685780633b8ddc0f146103885780633de4fdc8146103a857600080fd5b8063177ed0f3116101d7578063177ed0f3146102a85780631a092541146102e35780631abe7cb3146102f8578063217dc7891461031857600080fd5b80630d8e6e2c146102095780631649594d1461023457806316bef59614610256578063173825d914610288575b600080fd5b34801561021557600080fd5b5061021e6106db565b60405161022b9190611bd7565b60405180910390f35b34801561024057600080fd5b5061025461024f366004611ab0565b6106fb565b005b34801561026257600080fd5b506006546001600160a01b03165b6040516001600160a01b03909116815260200161022b565b34801561029457600080fd5b506102546102a3366004611998565b6107a5565b3480156102b457600080fd5b506102d56102c3366004611a98565b60009081526005602052604090205490565b60405190815260200161022b565b3480156102ef57600080fd5b5061021e61084d565b34801561030457600080fd5b50610254610313366004611ab0565b6108df565b34801561032457600080fd5b506103386103333660046119bb565b610916565b604051901515815260200161022b565b34801561035457600080fd5b50610338610363366004611998565b610944565b34801561037457600080fd5b50610254610383366004611998565b610962565b34801561039457600080fd5b506102546103a3366004611998565b6109ab565b3480156103b457600080fd5b506102546103c3366004611998565b6109f2565b3480156103d457600080fd5b506102546103e33660046119e6565b610a7d565b3480156103f457600080fd5b50610408610403366004611998565b610b73565b60405161022b9190611b9f565b34801561042157600080fd5b50610254610430366004611ab0565b610bdf565b34801561044157600080fd5b506102d5610450366004611a98565b6000908152600c602052604090205490565b34801561046e57600080fd5b5061040861047d366004611a98565b610c16565b34801561048e57600080fd5b5061025461049d366004611998565b610c76565b3480156104ae57600080fd5b506102546104bd366004611b09565b610d1e565b3480156104ce57600080fd5b506102546104dd3660046119bb565b610d5b565b3480156104ee57600080fd5b506104f7610e23565b60405161022b9190611b52565b610254610512366004611ad1565b610e84565b34801561052357600080fd5b50610254610532366004611ab0565b610ef2565b34801561054357600080fd5b50610254610552366004611a5d565b610f29565b34801561056357600080fd5b506104f7610f61565b34801561057857600080fd5b5061021e6105873660046119bb565b610fc1565b34801561059857600080fd5b506102d56105a7366004611a98565b60009081526004602052604090205490565b3480156105c557600080fd5b506102546105d4366004611998565b61110f565b3480156105e557600080fd5b506103386105f4366004611998565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561061e57600080fd5b5061025461062d3660046119e6565b6111c7565b34801561063e57600080fd5b506009546001600160a01b0316610270565b34801561065c57600080fd5b5061025461066b366004611ad1565b611223565b34801561067c57600080fd5b50600f546001600160a01b0316610270565b34801561069a57600080fd5b506102d56106a9366004611a98565b60009081526003602052604090205490565b3480156106c757600080fd5b506102546106d6366004611998565b61125f565b60606040518060600160405280602e8152602001611d91602e9139905090565b61070433610944565b6107295760405162461bcd60e51b815260040161072090611c2a565b60405180910390fd5b6000828152600c6020526040902054811415610743575050565b6000828152600c60209081526040808320548352600d909152902061076890836112a6565b6000828152600c6020526040902081905580156107a1576000818152600d60209081526040822080546001810182559083529120018290555b5050565b6107ae33610944565b6107ca5760405162461bcd60e51b815260040161072090611c2a565b6107d381610944565b61081f5760405162461bcd60e51b815260206004820152601e60248201527f5461726765742061646472657373206973206e6f7420616e206f776e657200006044820152606401610720565b6001600160a01b0381166000908152602081905260409020805460ff1916905561084a60018261139b565b50565b60606002805461085c90611cf9565b80601f016020809104026020016040519081016040528092919081815260200182805461088890611cf9565b80156108d55780601f106108aa576101008083540402835291602001916108d5565b820191906000526020600020905b8154815290600101906020018083116108b857829003601f168201915b5050505050905090565b6108e833610944565b6109045760405162461bcd60e51b815260040161072090611c2a565b60009182526003602052604090912055565b6001600160a01b0382166000908152600a6020908152604080832084845290915290205460ff165b92915050565b6001600160a01b031660009081526020819052604090205460ff1690565b61096b33610944565b6109875760405162461bcd60e51b815260040161072090611c2a565b600680546001600160a01b0319166001600160a01b03831617905561084a816109f2565b6109b433610944565b6109d05760405162461bcd60e51b815260040161072090611c2a565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6109fb33610944565b610a175760405162461bcd60e51b815260040161072090611c2a565b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b610a8633610944565b610aa25760405162461bcd60e51b815260040161072090611c2a565b610aac8383610916565b15610ac95760405162461bcd60e51b815260040161072090611c6c565b6001600160a01b0383166000818152600a602090815260408083208684528252808320805460ff19166001179055928252600b815282822085835281529190208251610b1792840190611878565b506001600160a01b0383166000818152600e602090815260408083208054600181018255908452918320909101859055518492917f87e0227ae7046839d144373b41d0ea5025c3557b7c0786ce6c3b4ab32ed9d7c291a3505050565b6001600160a01b0381166000908152600e6020908152604091829020805483518184028101840190945280845260609392830182828015610bd357602002820191906000526020600020905b815481526020019060010190808311610bbf575b50505050509050919050565b610be833610944565b610c045760405162461bcd60e51b815260040161072090611c2a565b60009182526005602052604090912055565b6000818152600d6020908152604091829020805483518184028101840190945280845260609392830182828015610bd35760200282019190600052602060002090815481526020019060010190808311610bbf5750505050509050919050565b60015415801590610c8d5750610c8b33610944565b155b15610caa5760405162461bcd60e51b815260040161072090611c2a565b610cb381610944565b15610cbb5750565b6001600160a01b03166000818152602081905260408120805460ff191660019081179091558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319169091179055565b60405162461bcd60e51b815260206004820152601260248201527113d4115490551253d397d11254d05093115160721b6044820152606401610720565b610d6433610944565b610d805760405162461bcd60e51b815260040161072090611c2a565b6001600160a01b0382166000908152600a6020908152604080832084845290915290205460ff16156107a1576001600160a01b0382166000818152600a602090815260408083208584528252808320805460ff19169055928252600e905220610de990826112a6565b60405181906001600160a01b038416907f50e4943f8397e82cfe4e1fe2172d45d322d64d6b0dd1261071f25e518f7a720c90600090a35050565b606060088054806020026020016040519081016040528092919081815260200182805480156108d557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e5d575050505050905090565b610e8e8184610916565b15610eab5760405162461bcd60e51b815260040161072090611c6c565b610eb583826114dd565b610ec08360016115eb565b6001600160a01b03166000908152600a6020908152604080832094835293905291909120805460ff1916600117905550565b610efb33610944565b610f175760405162461bcd60e51b815260040161072090611c2a565b60009182526004602052604090912055565b610f3233610944565b610f4e5760405162461bcd60e51b815260040161072090611c2a565b80516107a1906002906020840190611878565b606060018054806020026020016040519081016040528092919081815260200182805480156108d5576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610e5d575050505050905090565b60405163217dc78960e01b81526001600160a01b038316600482015260248101829052606090309063217dc7899060440160206040518083038186803b15801561100a57600080fd5b505afa15801561101e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110429190611a3d565b61105b575060408051602081019091526000815261093e565b6001600160a01b0383166000908152600b602090815260408083208584529091529020805461108990611cf9565b80601f01602080910402602001604051908101604052809291908181526020018280546110b590611cf9565b80156111025780601f106110d757610100808354040283529160200191611102565b820191906000526020600020905b8154815290600101906020018083116110e557829003601f168201915b5050505050905092915050565b61111833610944565b6111345760405162461bcd60e51b815260040161072090611c2a565b6001600160a01b03811660009081526007602052604090205460ff1661119c5760405162461bcd60e51b815260206004820181905260248201527f54617267657420636f6e7472616374206973206e6f7420617661696c61626c656044820152606401610720565b6001600160a01b0381166000908152600760205260409020805460ff1916905561084a60088261139b565b6111d033610944565b6111ec5760405162461bcd60e51b815260040161072090611c2a565b6001600160a01b0383166000908152600b602090815260408083208584528252909120825161121d92840190611878565b50505050565b61122d8184610916565b1561124a5760405162461bcd60e51b815260040161072090611c6c565b61125483826114dd565b610ec08360016116d9565b61126833610944565b6112845760405162461bcd60e51b815260040161072090611c2a565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b60005b825481101561139657818382815481106112d357634e487b7160e01b600052603260045260246000fd5b9060005260206000200154141561138457825483906112f490600190611ce2565b8154811061131257634e487b7160e01b600052603260045260246000fd5b906000526020600020015483828154811061133d57634e487b7160e01b600052603260045260246000fd5b90600052602060002001819055508280548061136957634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055505050565b8061138e81611d34565b9150506112a9565b505050565b60005b825481101561139657816001600160a01b03168382815481106113d157634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614156114cb57825483906113fc90600190611ce2565b8154811061141a57634e487b7160e01b600052603260045260246000fd5b9060005260206000200160009054906101000a90046001600160a01b031683828154811061145857634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550828054806114a457634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b806114d581611d34565b91505061139e565b6000828152600c60205260409020548015806115025750600f546001600160a01b0316155b1561150c57505050565b600f54604051632a3109d160e11b8152600481018390526001600160a01b03848116602483015290911690600090829063546213a29060440160206040518083038186803b15801561155d57600080fd5b505afa158015611571573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115959190611a3d565b9050806115e45760405162461bcd60e51b815260206004820152601860248201527f4e4f545f52455155495245445f434c55425f4d454d42455200000000000000006044820152606401610720565b5050505050565b600082815260046020526040812054116116175760405162461bcd60e51b815260040161072090611c9c565b6009546001600160a01b031661163f5760405162461bcd60e51b815260040161072090611c9c565b600082815260046020526040812054611659908390611cc3565b9050803410156116a05760405162461bcd60e51b8152602060048201526012602482015271494e53554646494349454e545f56414c554560701b6044820152606401610720565b6009546040516001600160a01b03909116903480156108fc02916000818181858888f1935050505015801561121d573d6000803e3d6000fd5b6006546001600160a01b03166000818152600760205260409020546107a191849184919060ff1661174c5760405162461bcd60e51b815260206004820152601f60248201527f43555252454e43595f434f4e54524143545f4e4f545f535550504f52544544006044820152606401610720565b600083815260056020526040812054116117785760405162461bcd60e51b815260040161072090611c9c565b6009546001600160a01b03166117a05760405162461bcd60e51b815260040161072090611c9c565b6001600160a01b0381166117c65760405162461bcd60e51b815260040161072090611c9c565b6000838152600560205260408120546117df9084611cc3565b6009546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018390529192508391908216906323b872dd90606401602060405180830381600087803b15801561183857600080fd5b505af115801561184c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118709190611a3d565b505050505050565b82805461188490611cf9565b90600052602060002090601f0160209004810192826118a657600085556118ec565b82601f106118bf57805160ff19168380011785556118ec565b828001600101855582156118ec579182015b828111156118ec5782518255916020019190600101906118d1565b506118f89291506118fc565b5090565b5b808211156118f857600081556001016118fd565b600082601f830112611921578081fd5b813567ffffffffffffffff8082111561193c5761193c611d65565b604051601f8301601f19908116603f0116810190828211818310171561196457611964611d65565b8160405283815286602085880101111561197c578485fd5b8360208701602083013792830160200193909352509392505050565b6000602082840312156119a9578081fd5b81356119b481611d7b565b9392505050565b600080604083850312156119cd578081fd5b82356119d881611d7b565b946020939093013593505050565b6000806000606084860312156119fa578081fd5b8335611a0581611d7b565b925060208401359150604084013567ffffffffffffffff811115611a27578182fd5b611a3386828701611911565b9150509250925092565b600060208284031215611a4e578081fd5b815180151581146119b4578182fd5b600060208284031215611a6e578081fd5b813567ffffffffffffffff811115611a84578182fd5b611a9084828501611911565b949350505050565b600060208284031215611aa9578081fd5b5035919050565b60008060408385031215611ac2578182fd5b50508035926020909101359150565b600080600060608486031215611ae5578283fd5b83359250602084013591506040840135611afe81611d7b565b809150509250925092565b60008060008060808587031215611b1e578081fd5b84359350602085013592506040850135611b3781611d7b565b91506060850135611b4781611d7b565b939692955090935050565b6020808252825182820181905260009190848201906040850190845b81811015611b935783516001600160a01b031683529284019291840191600101611b6e565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611b9357835183529284019291840191600101611bbb565b6000602080835283518082850152825b81811015611c0357858101830151858201604001528201611be7565b81811115611c145783604083870101525b50601f01601f1916929092016040019392505050565b60208082526022908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604082015261371760f11b606082015260800190565b6020808252601690820152750414c52454144595f4841535f4d454d424552534849560541b604082015260600190565b6020808252600d908201526c14d1531317d11254d050931151609a1b604082015260600190565b6000816000190483118215151615611cdd57611cdd611d4f565b500290565b600082821015611cf457611cf4611d4f565b500390565b600181811c90821680611d0d57607f821691505b60208210811415611d2e57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611d4857611d48611d4f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461084a57600080fdfe436c756253656c6c61626c654d657461646174614d656d62657273686970436f6e7472616374207620302e302e31a2646970667358221220a9378f05eeba239963992a17f24169b7f91224d262da7f724eb321f59b00dc6964736f6c63430008040033",
656 "deployedBytecode": "0x6080604052600436106102045760003560e01c80637065cb4811610118578063adfadad3116100a0578063d1eff8951161006f578063d1eff89514610632578063d36223f114610650578063dfb0691514610670578063e1461f121461068e578063ec6be06e146106bb57600080fd5b8063adfadad31461058c578063b33a599f146105b9578063b68de974146105d9578063ca1a7fe11461061257600080fd5b806380dc439e116100e757806380dc439e1461050457806388d0f86a1461051757806390c3f38f14610537578063a0e67e2b14610557578063ac27ffa41461056c57600080fd5b80637065cb4814610482578063724e5c17146104a25780637e1d3d37146104c25780638003e27f146104e257600080fd5b80632f54bf6e1161019b57806345dc29981161016a57806345dc2998146103c8578063471882b7146103e8578063578680be146104155780636ae12aac146104355780636f38d3951461046257600080fd5b80632f54bf6e146103485780633a932dba146103685780633b8ddc0f146103885780633de4fdc8146103a857600080fd5b8063177ed0f3116101d7578063177ed0f3146102a85780631a092541146102e35780631abe7cb3146102f8578063217dc7891461031857600080fd5b80630d8e6e2c146102095780631649594d1461023457806316bef59614610256578063173825d914610288575b600080fd5b34801561021557600080fd5b5061021e6106db565b60405161022b9190611bd7565b60405180910390f35b34801561024057600080fd5b5061025461024f366004611ab0565b6106fb565b005b34801561026257600080fd5b506006546001600160a01b03165b6040516001600160a01b03909116815260200161022b565b34801561029457600080fd5b506102546102a3366004611998565b6107a5565b3480156102b457600080fd5b506102d56102c3366004611a98565b60009081526005602052604090205490565b60405190815260200161022b565b3480156102ef57600080fd5b5061021e61084d565b34801561030457600080fd5b50610254610313366004611ab0565b6108df565b34801561032457600080fd5b506103386103333660046119bb565b610916565b604051901515815260200161022b565b34801561035457600080fd5b50610338610363366004611998565b610944565b34801561037457600080fd5b50610254610383366004611998565b610962565b34801561039457600080fd5b506102546103a3366004611998565b6109ab565b3480156103b457600080fd5b506102546103c3366004611998565b6109f2565b3480156103d457600080fd5b506102546103e33660046119e6565b610a7d565b3480156103f457600080fd5b50610408610403366004611998565b610b73565b60405161022b9190611b9f565b34801561042157600080fd5b50610254610430366004611ab0565b610bdf565b34801561044157600080fd5b506102d5610450366004611a98565b6000908152600c602052604090205490565b34801561046e57600080fd5b5061040861047d366004611a98565b610c16565b34801561048e57600080fd5b5061025461049d366004611998565b610c76565b3480156104ae57600080fd5b506102546104bd366004611b09565b610d1e565b3480156104ce57600080fd5b506102546104dd3660046119bb565b610d5b565b3480156104ee57600080fd5b506104f7610e23565b60405161022b9190611b52565b610254610512366004611ad1565b610e84565b34801561052357600080fd5b50610254610532366004611ab0565b610ef2565b34801561054357600080fd5b50610254610552366004611a5d565b610f29565b34801561056357600080fd5b506104f7610f61565b34801561057857600080fd5b5061021e6105873660046119bb565b610fc1565b34801561059857600080fd5b506102d56105a7366004611a98565b60009081526004602052604090205490565b3480156105c557600080fd5b506102546105d4366004611998565b61110f565b3480156105e557600080fd5b506103386105f4366004611998565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561061e57600080fd5b5061025461062d3660046119e6565b6111c7565b34801561063e57600080fd5b506009546001600160a01b0316610270565b34801561065c57600080fd5b5061025461066b366004611ad1565b611223565b34801561067c57600080fd5b50600f546001600160a01b0316610270565b34801561069a57600080fd5b506102d56106a9366004611a98565b60009081526003602052604090205490565b3480156106c757600080fd5b506102546106d6366004611998565b61125f565b60606040518060600160405280602e8152602001611d91602e9139905090565b61070433610944565b6107295760405162461bcd60e51b815260040161072090611c2a565b60405180910390fd5b6000828152600c6020526040902054811415610743575050565b6000828152600c60209081526040808320548352600d909152902061076890836112a6565b6000828152600c6020526040902081905580156107a1576000818152600d60209081526040822080546001810182559083529120018290555b5050565b6107ae33610944565b6107ca5760405162461bcd60e51b815260040161072090611c2a565b6107d381610944565b61081f5760405162461bcd60e51b815260206004820152601e60248201527f5461726765742061646472657373206973206e6f7420616e206f776e657200006044820152606401610720565b6001600160a01b0381166000908152602081905260409020805460ff1916905561084a60018261139b565b50565b60606002805461085c90611cf9565b80601f016020809104026020016040519081016040528092919081815260200182805461088890611cf9565b80156108d55780601f106108aa576101008083540402835291602001916108d5565b820191906000526020600020905b8154815290600101906020018083116108b857829003601f168201915b5050505050905090565b6108e833610944565b6109045760405162461bcd60e51b815260040161072090611c2a565b60009182526003602052604090912055565b6001600160a01b0382166000908152600a6020908152604080832084845290915290205460ff165b92915050565b6001600160a01b031660009081526020819052604090205460ff1690565b61096b33610944565b6109875760405162461bcd60e51b815260040161072090611c2a565b600680546001600160a01b0319166001600160a01b03831617905561084a816109f2565b6109b433610944565b6109d05760405162461bcd60e51b815260040161072090611c2a565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6109fb33610944565b610a175760405162461bcd60e51b815260040161072090611c2a565b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b610a8633610944565b610aa25760405162461bcd60e51b815260040161072090611c2a565b610aac8383610916565b15610ac95760405162461bcd60e51b815260040161072090611c6c565b6001600160a01b0383166000818152600a602090815260408083208684528252808320805460ff19166001179055928252600b815282822085835281529190208251610b1792840190611878565b506001600160a01b0383166000818152600e602090815260408083208054600181018255908452918320909101859055518492917f87e0227ae7046839d144373b41d0ea5025c3557b7c0786ce6c3b4ab32ed9d7c291a3505050565b6001600160a01b0381166000908152600e6020908152604091829020805483518184028101840190945280845260609392830182828015610bd357602002820191906000526020600020905b815481526020019060010190808311610bbf575b50505050509050919050565b610be833610944565b610c045760405162461bcd60e51b815260040161072090611c2a565b60009182526005602052604090912055565b6000818152600d6020908152604091829020805483518184028101840190945280845260609392830182828015610bd35760200282019190600052602060002090815481526020019060010190808311610bbf5750505050509050919050565b60015415801590610c8d5750610c8b33610944565b155b15610caa5760405162461bcd60e51b815260040161072090611c2a565b610cb381610944565b15610cbb5750565b6001600160a01b03166000818152602081905260408120805460ff191660019081179091558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319169091179055565b60405162461bcd60e51b815260206004820152601260248201527113d4115490551253d397d11254d05093115160721b6044820152606401610720565b610d6433610944565b610d805760405162461bcd60e51b815260040161072090611c2a565b6001600160a01b0382166000908152600a6020908152604080832084845290915290205460ff16156107a1576001600160a01b0382166000818152600a602090815260408083208584528252808320805460ff19169055928252600e905220610de990826112a6565b60405181906001600160a01b038416907f50e4943f8397e82cfe4e1fe2172d45d322d64d6b0dd1261071f25e518f7a720c90600090a35050565b606060088054806020026020016040519081016040528092919081815260200182805480156108d557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e5d575050505050905090565b610e8e8184610916565b15610eab5760405162461bcd60e51b815260040161072090611c6c565b610eb583826114dd565b610ec08360016115eb565b6001600160a01b03166000908152600a6020908152604080832094835293905291909120805460ff1916600117905550565b610efb33610944565b610f175760405162461bcd60e51b815260040161072090611c2a565b60009182526004602052604090912055565b610f3233610944565b610f4e5760405162461bcd60e51b815260040161072090611c2a565b80516107a1906002906020840190611878565b606060018054806020026020016040519081016040528092919081815260200182805480156108d5576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610e5d575050505050905090565b60405163217dc78960e01b81526001600160a01b038316600482015260248101829052606090309063217dc7899060440160206040518083038186803b15801561100a57600080fd5b505afa15801561101e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110429190611a3d565b61105b575060408051602081019091526000815261093e565b6001600160a01b0383166000908152600b602090815260408083208584529091529020805461108990611cf9565b80601f01602080910402602001604051908101604052809291908181526020018280546110b590611cf9565b80156111025780601f106110d757610100808354040283529160200191611102565b820191906000526020600020905b8154815290600101906020018083116110e557829003601f168201915b5050505050905092915050565b61111833610944565b6111345760405162461bcd60e51b815260040161072090611c2a565b6001600160a01b03811660009081526007602052604090205460ff1661119c5760405162461bcd60e51b815260206004820181905260248201527f54617267657420636f6e7472616374206973206e6f7420617661696c61626c656044820152606401610720565b6001600160a01b0381166000908152600760205260409020805460ff1916905561084a60088261139b565b6111d033610944565b6111ec5760405162461bcd60e51b815260040161072090611c2a565b6001600160a01b0383166000908152600b602090815260408083208584528252909120825161121d92840190611878565b50505050565b61122d8184610916565b1561124a5760405162461bcd60e51b815260040161072090611c6c565b61125483826114dd565b610ec08360016116d9565b61126833610944565b6112845760405162461bcd60e51b815260040161072090611c2a565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b60005b825481101561139657818382815481106112d357634e487b7160e01b600052603260045260246000fd5b9060005260206000200154141561138457825483906112f490600190611ce2565b8154811061131257634e487b7160e01b600052603260045260246000fd5b906000526020600020015483828154811061133d57634e487b7160e01b600052603260045260246000fd5b90600052602060002001819055508280548061136957634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055505050565b8061138e81611d34565b9150506112a9565b505050565b60005b825481101561139657816001600160a01b03168382815481106113d157634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614156114cb57825483906113fc90600190611ce2565b8154811061141a57634e487b7160e01b600052603260045260246000fd5b9060005260206000200160009054906101000a90046001600160a01b031683828154811061145857634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550828054806114a457634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b806114d581611d34565b91505061139e565b6000828152600c60205260409020548015806115025750600f546001600160a01b0316155b1561150c57505050565b600f54604051632a3109d160e11b8152600481018390526001600160a01b03848116602483015290911690600090829063546213a29060440160206040518083038186803b15801561155d57600080fd5b505afa158015611571573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115959190611a3d565b9050806115e45760405162461bcd60e51b815260206004820152601860248201527f4e4f545f52455155495245445f434c55425f4d454d42455200000000000000006044820152606401610720565b5050505050565b600082815260046020526040812054116116175760405162461bcd60e51b815260040161072090611c9c565b6009546001600160a01b031661163f5760405162461bcd60e51b815260040161072090611c9c565b600082815260046020526040812054611659908390611cc3565b9050803410156116a05760405162461bcd60e51b8152602060048201526012602482015271494e53554646494349454e545f56414c554560701b6044820152606401610720565b6009546040516001600160a01b03909116903480156108fc02916000818181858888f1935050505015801561121d573d6000803e3d6000fd5b6006546001600160a01b03166000818152600760205260409020546107a191849184919060ff1661174c5760405162461bcd60e51b815260206004820152601f60248201527f43555252454e43595f434f4e54524143545f4e4f545f535550504f52544544006044820152606401610720565b600083815260056020526040812054116117785760405162461bcd60e51b815260040161072090611c9c565b6009546001600160a01b03166117a05760405162461bcd60e51b815260040161072090611c9c565b6001600160a01b0381166117c65760405162461bcd60e51b815260040161072090611c9c565b6000838152600560205260408120546117df9084611cc3565b6009546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018390529192508391908216906323b872dd90606401602060405180830381600087803b15801561183857600080fd5b505af115801561184c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118709190611a3d565b505050505050565b82805461188490611cf9565b90600052602060002090601f0160209004810192826118a657600085556118ec565b82601f106118bf57805160ff19168380011785556118ec565b828001600101855582156118ec579182015b828111156118ec5782518255916020019190600101906118d1565b506118f89291506118fc565b5090565b5b808211156118f857600081556001016118fd565b600082601f830112611921578081fd5b813567ffffffffffffffff8082111561193c5761193c611d65565b604051601f8301601f19908116603f0116810190828211818310171561196457611964611d65565b8160405283815286602085880101111561197c578485fd5b8360208701602083013792830160200193909352509392505050565b6000602082840312156119a9578081fd5b81356119b481611d7b565b9392505050565b600080604083850312156119cd578081fd5b82356119d881611d7b565b946020939093013593505050565b6000806000606084860312156119fa578081fd5b8335611a0581611d7b565b925060208401359150604084013567ffffffffffffffff811115611a27578182fd5b611a3386828701611911565b9150509250925092565b600060208284031215611a4e578081fd5b815180151581146119b4578182fd5b600060208284031215611a6e578081fd5b813567ffffffffffffffff811115611a84578182fd5b611a9084828501611911565b949350505050565b600060208284031215611aa9578081fd5b5035919050565b60008060408385031215611ac2578182fd5b50508035926020909101359150565b600080600060608486031215611ae5578283fd5b83359250602084013591506040840135611afe81611d7b565b809150509250925092565b60008060008060808587031215611b1e578081fd5b84359350602085013592506040850135611b3781611d7b565b91506060850135611b4781611d7b565b939692955090935050565b6020808252825182820181905260009190848201906040850190845b81811015611b935783516001600160a01b031683529284019291840191600101611b6e565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611b9357835183529284019291840191600101611bbb565b6000602080835283518082850152825b81811015611c0357858101830151858201604001528201611be7565b81811115611c145783604083870101525b50601f01601f1916929092016040019392505050565b60208082526022908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604082015261371760f11b606082015260800190565b6020808252601690820152750414c52454144595f4841535f4d454d424552534849560541b604082015260600190565b6020808252600d908201526c14d1531317d11254d050931151609a1b604082015260600190565b6000816000190483118215151615611cdd57611cdd611d4f565b500290565b600082821015611cf457611cf4611d4f565b500390565b600181811c90821680611d0d57607f821691505b60208210811415611d2e57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611d4857611d48611d4f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461084a57600080fdfe436c756253656c6c61626c654d657461646174614d656d62657273686970436f6e7472616374207620302e302e31a2646970667358221220a9378f05eeba239963992a17f24169b7f91224d262da7f724eb321f59b00dc6964736f6c63430008040033",
657 "linkReferences": {},
658 "deployedLinkReferences": {}
659}