More Info
Private Name Tags
ContractCreator:
Latest 25 from a total of 122 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Refund | 35534473 | 501 days ago | IN | 0 MATIC | 0.00210285 | ||||
Purchase | 35534035 | 501 days ago | IN | 77 MATIC | 0.00423947 | ||||
Purchase | 29096485 | 664 days ago | IN | 77 MATIC | 0.00362468 | ||||
Set Shipped | 27345896 | 708 days ago | IN | 0 MATIC | 0.02964 | ||||
Boost | 26004697 | 743 days ago | IN | 50 MATIC | 0.00154181 | ||||
Purchase | 25938161 | 745 days ago | IN | 77 MATIC | 0.00371184 | ||||
Set Shipped | 25425452 | 759 days ago | IN | 0 MATIC | 0.0438435 | ||||
Set Shipped | 25238151 | 765 days ago | IN | 0 MATIC | 0.1574715 | ||||
Boost | 25177639 | 766 days ago | IN | 10 MATIC | 0.00102697 | ||||
Purchase | 25034528 | 770 days ago | IN | 77 MATIC | 0.00381541 | ||||
Boost | 25034451 | 770 days ago | IN | 100 MATIC | 0.00173404 | ||||
Purchase | 25034305 | 770 days ago | IN | 77 MATIC | 0.00371856 | ||||
Set Shipped | 25033912 | 770 days ago | IN | 0 MATIC | 0.02964 | ||||
Purchase | 25012789 | 771 days ago | IN | 77 MATIC | 0.00559964 | ||||
Boost | 24989630 | 771 days ago | IN | 1 MATIC | 0.00107078 | ||||
Boost | 24982884 | 772 days ago | IN | 6 MATIC | 0.00106119 | ||||
Boost | 24978615 | 772 days ago | IN | 1 MATIC | 0.00283345 | ||||
Purchase | 24978580 | 772 days ago | IN | 77 MATIC | 0.01160323 | ||||
Set Shipped | 24917767 | 773 days ago | IN | 0 MATIC | 0.0722505 | ||||
Boost | 24905560 | 774 days ago | IN | 2 MATIC | 0.00129981 | ||||
Boost | 24902845 | 774 days ago | IN | 9 MATIC | 0.00109621 | ||||
Boost | 24887127 | 774 days ago | IN | 9 MATIC | 0.00102803 | ||||
Boost | 24872970 | 774 days ago | IN | 12 MATIC | 0.00110688 | ||||
Boost | 24867437 | 775 days ago | IN | 6 MATIC | 0.0011084 | ||||
Boost | 24867010 | 775 days ago | IN | 3 MATIC | 0.00013252 |
Latest 25 internal transactions (View All)
Parent Txn Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
35534473 | 501 days ago | 77 MATIC | ||||
24740854 | 778 days ago | 1,293 MATIC | ||||
24593280 | 782 days ago | 0.005 MATIC | ||||
24593207 | 782 days ago | 0.5 MATIC | ||||
24593040 | 782 days ago | 500 MATIC | ||||
24523093 | 783 days ago | 11 MATIC | ||||
24514669 | 784 days ago | 92.69 MATIC | ||||
24514590 | 784 days ago | 22.69 MATIC | ||||
24490698 | 784 days ago | 80 MATIC | ||||
24489503 | 784 days ago | 6 MATIC | ||||
24478733 | 784 days ago | 100 MATIC | ||||
24477998 | 784 days ago | 3 MATIC | ||||
24477910 | 784 days ago | 1.123 MATIC | ||||
24474568 | 785 days ago | 3 MATIC | ||||
24474361 | 785 days ago | 323 MATIC | ||||
24474262 | 785 days ago | 14 MATIC | ||||
24473890 | 785 days ago | 3 MATIC | ||||
24472141 | 785 days ago | 478 MATIC | ||||
24471972 | 785 days ago | 3 MATIC | ||||
24471803 | 785 days ago | 100 MATIC | ||||
24471253 | 785 days ago | 77 MATIC | ||||
24470854 | 785 days ago | 123 MATIC | ||||
24470839 | 785 days ago | 13 MATIC | ||||
24470796 | 785 days ago | 13 MATIC | ||||
24470590 | 785 days ago | 145 MATIC |
Loading...
Loading
Contract Name:
Vinyl
Compiler Version
v0.7.3+commit.9bfce1f6
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2022-02-02 */ // SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.2; //import "hardhat/console.sol"; abstract contract ERC20 { function balanceOf(address a) public view virtual returns (uint256); } contract Vinyl { address admin_address; uint256 public totalEarned; //amount due to store owner uint256 public numOrders; //max order num uint256 public startOrderNum; //max order num uint32 public numProducts; //max products bool public purchasesDisabled; uint256 public refund_percent; //percentage to refund when leaving the queue event ePurchased(uint256 oid); event eRefund(uint256 oid, uint256 amount); event eBoost(uint256 oid); event eShipped(uint256 oid); struct ProductStruct { uint256 price; uint256 supply; } struct AccessStruct { ERC20 econtract; uint256 minRequired; bool enabled; } ProductStruct[32] public products; AccessStruct[16] public accessProfiles; struct OrderStruct { uint32 state; //0 pending, 1 in progress, 2 filled, 3 refunded uint32 pid; //product id uint256 boostAmount; //premium staked for order queue uint256 paidAmount; //amount paid for order address owner; } mapping(uint256 => OrderStruct) orders; modifier requireAdmin() { require(admin_address == msg.sender,"Requires admin privileges"); _; } modifier requireOwner(uint256 oid) { if (oid >= numOrders) { revert("Order ID out of range"); } require(msg.sender == orders[oid].owner,"Not owner of order"); _; } modifier requireOwnerOrAdmin(uint256 oid) { if (oid >= numOrders) { revert("Order ID out of range"); } require(msg.sender == orders[oid].owner || admin_address == msg.sender,"Not owner or admin"); _; } constructor() { //startOrderNum = 0; //ethereum //startOrderNum = 10000; //arbitrum startOrderNum = 20000; //polygon numOrders = startOrderNum; admin_address = msg.sender; refund_percent = 100; } function numOrdersByAddress(address a) public view returns (uint32) { uint32 n = 0; for (uint256 i = startOrderNum; i<numOrders;i++) { if (orders[i].owner == a) { n++; } } return n; } function orderByAddress(address a,uint32 j) public view returns(uint256) { if (j >= numOrdersByAddress(a)) { revert("Order index out of range"); } uint32 n = 0; uint256 oid = 0; for (uint256 i = startOrderNum;i<numOrders;i++) { if (orders[i].owner == a) { if (j==n) { oid = i; break; } n++; } } return oid; } function orderDetails(uint256 oid) public view returns (uint32 state, uint32 pid, uint256 boostAmount, uint256 paidAmount, address owner) { require(oid < numOrders,"Order id not in range"); state = orders[oid].state; pid = orders[oid].pid; boostAmount = orders[oid].boostAmount; paidAmount = orders[oid].paidAmount; owner = orders[oid].owner; //TODO get place in queue } /* only allow access to addresses holding a minimum number of ERC20 or ERC721 token */ function check_elligible(address a) public view returns (bool) { bool flag = true; for (uint256 i = 0;i<16;i++) { if (!accessProfiles[i].enabled) continue; if (accessProfiles[i].econtract.balanceOf(a) >= accessProfiles[i].minRequired) { return true; } else { flag = false; } } return flag; } function purchase(uint32 pid) public payable returns(uint256) { require(pid < numProducts, "Invalid product id"); require(products[pid].supply > 0, "Sold Out"); require(!purchasesDisabled,"Purchases disabled"); require(msg.value>=products[pid].price, "Must send minimum value to purchase!"); if (!check_elligible(msg.sender)) { revert("Not elligible."); } //i //send change if too much was sent if (msg.value > 0) { uint256 diff = msg.value - products[pid].price; if (diff > 0) { payable(msg.sender).transfer(diff); } } //create an order for address together with 'pid' orders[numOrders].paidAmount = products[pid].price; orders[numOrders].pid = pid; orders[numOrders].owner = msg.sender; if (msg.value > 0) { uint256 diff = msg.value - products[pid].price; if (diff > 0) { orders[numOrders].boostAmount = diff; } } uint256 oid = numOrders; numOrders++; products[pid].supply--; emit ePurchased(oid); return oid; } function refund(uint32 oid) public payable requireOwnerOrAdmin(oid) { require(orders[oid].state==0, "Order not in refundable state"); //sets order state to refunded orders[oid].state = 3; // refund 95 percent of initial purchase price // as well as any premium payed for order queue uint256 amount_to_refund = orders[oid].paidAmount; if (msg.sender != admin_address) { // if admin is forcing refund, refund 100% rather than 95% if (refund_percent < 100) { amount_to_refund /= 100; amount_to_refund *= refund_percent; } } //keep refund_percent% cancellation fee totalEarned += (orders[oid].paidAmount - amount_to_refund); // console.log("Keeping %d",totalEarned); // console.log("Refunding %d",amount_to_refund); amount_to_refund += orders[oid].boostAmount; // console.log("Refunding total: %d",amount_to_refund); emit eRefund(oid,amount_to_refund); payable(orders[oid].owner).transfer(amount_to_refund); } function boost(uint32 oid) public payable requireOwner(oid) { require(orders[oid].state==0, "Order must be in pending state"); //store ether in contract for order 'oid', to determine //place in queue orders[oid].boostAmount += msg.value; emit eBoost(oid); } function unboost(uint32 oid, uint256 amount) public payable requireOwner(oid) { require(orders[oid].state==0, "Order must be in pending state"); require(amount <= orders[oid].boostAmount,"Limit exceeded"); require(amount > 0,"Amount must be more than 0"); orders[oid].boostAmount -= amount; payable(msg.sender).transfer(amount); //refund boosted amount emit eBoost(oid); } //check what address owns orderID function ownerOf(uint256 oid) public view returns(address) { return orders[oid].owner; } //returns all orders numbers for a particular owner; function ordersByOwner(address a) public view returns (uint256[] memory) { uint256 [] memory q; uint256 num; for (uint256 i = startOrderNum; i<numOrders;i++) { if (orders[i].owner != a) continue; num++; } q = new uint256[](num); uint256 k = 0; for (uint256 i = startOrderNum;i<numOrders;i++) { if (orders[i].owner != a) continue; q[k] = i; k++; } return q; } //return sorted by boost amount queue of pending orders function queue() public view returns (uint256[] memory) { uint256 [] memory q; uint256 numPending; for (uint256 i = startOrderNum;i<numOrders;i++) { if (orders[i].state != 0) continue; numPending++; } q = new uint256[](numPending); uint256 k = 0; for (uint256 i = startOrderNum;i<numOrders;i++) { if (orders[i].state != 0) continue; q[k] = i; k++; } //sort in place based on boost value if (numPending > 1) { bool flag; do { flag = false; for (uint256 i = 0;i<numPending-1;i++) { if (orders[q[i]].boostAmount < orders[q[i+1]].boostAmount) { uint256 tmp = q[i]; q[i] = q[i+1]; q[i+1] = tmp; flag = true; } } } while (flag==true); } return q; } //get order ids and staked amounts for top 2 active queue positions function topQueue() public view returns(uint256 oid1, uint256 oid2, uint256 amount1, uint256 amount2) { uint256 m1 = 0; //largest boost uint256 m2 = 0; uint256 mi1 = 0; // largest boost index uint256 mi2 = 0; //if only 1 order, premium paid is 0 if (numOrders >= 2) { for (uint256 i = startOrderNum;i<numOrders;i++) { if (orders[i].state != 0) continue; if (orders[i].boostAmount > m1) { m2 = m1; mi2 = mi1; m1 = orders[i].boostAmount; mi1 = i; } else if (orders[i].boostAmount > m2) { m2 = orders[i].boostAmount; mi2 = i; } } } oid1 = mi1; oid2 = mi2; amount1 = m1; amount2 = m2; } function setAccessProfileEnabled(uint32 oid, bool enabled) public requireAdmin { require(oid < 16,"Index out of range"); accessProfiles[oid].enabled = enabled; } function setStoreEnabled(bool enabled) public requireAdmin { purchasesDisabled = !enabled; } function setRefundPercent(uint256 rp) public requireAdmin { refund_percent = rp; } function setAccessProfile(uint32 oid, address a, uint256 minRequired, bool enabled) public requireAdmin { accessProfiles[oid].econtract = ERC20(a); accessProfiles[oid].minRequired = minRequired; accessProfiles[oid].enabled = enabled; } //change an order to in progress, taking payment function setShipped(uint32[] memory oids) public requireAdmin { for (uint i=0;i<oids.length;i++) { uint32 oid = oids[i]; if (oid >= numOrders) continue; if(orders[oid].state != 0) continue; //add amount paid plus differential boost amount to earned stack totalEarned += orders[oid].paidAmount; totalEarned += orders[oid].boostAmount; orders[oid].state = 2; //finalize order emit eShipped(oid); } } function setNumProducts(uint32 n) public requireAdmin { numProducts = n; } /* sets details of a product (currently only price is stored on-chain) */ function setProduct(uint32 pid,uint256 price,uint256 supply) public requireAdmin { require(pid<numProducts,"Product ID out of range"); products[pid].price = price; products[pid].supply = supply; } /* Shop owner can only withdraw from the stack 'totalEarned', which tracks the value of orders that have gone into the 'in progress' state */ function withdraw(uint256 amount) public payable requireAdmin { require(amount <= totalEarned,"Earned limit exceeded"); require(amount <= address(this).balance,"Insufficient funds to withdraw"); totalEarned -= amount; payable(msg.sender).transfer(amount); } //in case of screw up, allow totalEarned to be adjusted, // but only DOWNWARD function adjustTotalEarned(uint256 t) public requireAdmin { require (t < totalEarned,"Can only adjust down"); totalEarned = t; } /* All showopner to make deposits in case of screw up to allow those in queue to refund themselves */ function deposit() public payable requireAdmin { } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oid","type":"uint256"}],"name":"eBoost","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oid","type":"uint256"}],"name":"ePurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"eRefund","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oid","type":"uint256"}],"name":"eShipped","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"accessProfiles","outputs":[{"internalType":"contract ERC20","name":"econtract","type":"address"},{"internalType":"uint256","name":"minRequired","type":"uint256"},{"internalType":"bool","name":"enabled","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"t","type":"uint256"}],"name":"adjustTotalEarned","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"oid","type":"uint32"}],"name":"boost","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"check_elligible","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"numOrders","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"numOrdersByAddress","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numProducts","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"uint32","name":"j","type":"uint32"}],"name":"orderByAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"oid","type":"uint256"}],"name":"orderDetails","outputs":[{"internalType":"uint32","name":"state","type":"uint32"},{"internalType":"uint32","name":"pid","type":"uint32"},{"internalType":"uint256","name":"boostAmount","type":"uint256"},{"internalType":"uint256","name":"paidAmount","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"ordersByOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"oid","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"products","outputs":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"supply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"pid","type":"uint32"}],"name":"purchase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"purchasesDisabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"queue","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"oid","type":"uint32"}],"name":"refund","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"refund_percent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"oid","type":"uint32"},{"internalType":"address","name":"a","type":"address"},{"internalType":"uint256","name":"minRequired","type":"uint256"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setAccessProfile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"oid","type":"uint32"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setAccessProfileEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"n","type":"uint32"}],"name":"setNumProducts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"pid","type":"uint32"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"supply","type":"uint256"}],"name":"setProduct","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rp","type":"uint256"}],"name":"setRefundPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32[]","name":"oids","type":"uint32[]"}],"name":"setShipped","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setStoreEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startOrderNum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"topQueue","outputs":[{"internalType":"uint256","name":"oid1","type":"uint256"},{"internalType":"uint256","name":"oid2","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"uint256","name":"amount2","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEarned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"oid","type":"uint32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unboost","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"payable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50614e206003819055600255600080546001600160a01b031916331790556064600555611fba806100426000396000f3fe6080604052600436106101cd5760003560e01c80636dfa8d99116100f7578063c96f2c0311610095578063dacf2c0c11610064578063dacf2c0c14610745578063e10d29ee14610784578063fc8babf214610799578063ff22fb00146107bc576101cd565b8063c96f2c0314610624578063d0e30db0146106d2578063d6bb6ae7146106da578063d79eb77614610712576101cd565b8063ac964f21116100d1578063ac964f2114610563578063adb32fea14610578578063b71ce705146105c5578063c7f04e6514610601576101cd565b80636dfa8d99146104db5780637acc0b20146104f05780638112f16e14610533576101cd565b806343714aa51161016f578063516979c41161013e578063516979c4146103f65780635cdb1bd71461041f5780635f215920146104495780636352211e14610495576101cd565b806343714aa5146102f757806345d537881461037a578063472673311461038f5780634ec2518d146103bb576101cd565b8063257e4e93116101ab578063257e4e931461024a57806327d51148146102715780632e1a7d4d14610286578063425bbfa1146102a3576101cd565b806302b80690146101d25780631069a4ba146101fd5780631c48c07414610227575b600080fd5b6101fb600480360360408110156101e857600080fd5b5063ffffffff8135169060200135610823565b005b34801561020957600080fd5b506101fb6004803603602081101561022057600080fd5b5035610a80565b6101fb6004803603602081101561023d57600080fd5b503563ffffffff16610b1f565b34801561025657600080fd5b5061025f610d60565b60408051918252519081900360200190f35b34801561027d57600080fd5b5061025f610d66565b6101fb6004803603602081101561029c57600080fd5b5035610d6c565b3480156102af57600080fd5b506102cd600480360360208110156102c657600080fd5b5035610e97565b604080516001600160a01b0390941684526020840192909252151582820152519081900360600190f35b34801561030357600080fd5b5061032a6004803603602081101561031a57600080fd5b50356001600160a01b0316610ec8565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561036657818101518382015260200161034e565b505050509050019250505060405180910390f35b34801561038657600080fd5b5061025f610fc9565b34801561039b57600080fd5b506101fb600480360360208110156103b257600080fd5b50351515610fcf565b3480156103c757600080fd5b506103d0611038565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561040257600080fd5b5061040b6110fa565b604080519115158252519081900360200190f35b34801561042b57600080fd5b506101fb6004803603602081101561044257600080fd5b503561110a565b34801561045557600080fd5b5061047c6004803603602081101561046c57600080fd5b50356001600160a01b031661115c565b6040805163ffffffff9092168252519081900360200190f35b3480156104a157600080fd5b506104bf600480360360208110156104b857600080fd5b50356111aa565b604080516001600160a01b039092168252519081900360200190f35b3480156104e757600080fd5b5061025f6111c8565b3480156104fc57600080fd5b5061051a6004803603602081101561051357600080fd5b50356111ce565b6040805192835260208301919091528051918290030190f35b34801561053f57600080fd5b506101fb6004803603602081101561055657600080fd5b503563ffffffff166111ed565b34801561056f57600080fd5b5061047c611256565b34801561058457600080fd5b506101fb6004803603608081101561059b57600080fd5b5063ffffffff813516906001600160a01b0360208201351690604081013590606001351515611262565b3480156105d157600080fd5b506101fb600480360360608110156105e857600080fd5b5063ffffffff813516906020810135906040013561133c565b61025f6004803603602081101561061757600080fd5b503563ffffffff16611426565b34801561063057600080fd5b506101fb6004803603602081101561064757600080fd5b810190602081018135600160201b81111561066157600080fd5b82018360208201111561067357600080fd5b803590602001918460208302840111600160201b8311171561069457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611746945050505050565b6101fb611866565b3480156106e657600080fd5b506101fb600480360360408110156106fd57600080fd5b5063ffffffff813516906020013515156118b5565b34801561071e57600080fd5b5061040b6004803603602081101561073557600080fd5b50356001600160a01b0316611988565b34801561075157600080fd5b5061025f6004803603604081101561076857600080fd5b5080356001600160a01b0316906020013563ffffffff16611a72565b34801561079057600080fd5b5061032a611b48565b6101fb600480360360208110156107af57600080fd5b503563ffffffff16611d29565b3480156107c857600080fd5b506107e6600480360360208110156107df57600080fd5b5035611ea2565b6040805163ffffffff96871681529490951660208501528385019290925260608301526001600160a01b0316608082015290519081900360a00190f35b8163ffffffff166002548110610878576040805162461bcd60e51b81526020600482015260156024820152744f72646572204944206f7574206f662072616e676560581b604482015290519081900360640190fd5b6000818152607660205260409020600301546001600160a01b031633146108db576040805162461bcd60e51b81526020600482015260126024820152712737ba1037bbb732b91037b31037b93232b960711b604482015290519081900360640190fd5b63ffffffff8084166000908152607660205260409020541615610945576040805162461bcd60e51b815260206004820152601e60248201527f4f72646572206d75737420626520696e2070656e64696e672073746174650000604482015290519081900360640190fd5b63ffffffff83166000908152607660205260409020600101548211156109a3576040805162461bcd60e51b815260206004820152600e60248201526d131a5b5a5d08195e18d95959195960921b604482015290519081900360640190fd5b600082116109f8576040805162461bcd60e51b815260206004820152601a60248201527f416d6f756e74206d757374206265206d6f7265207468616e2030000000000000604482015290519081900360640190fd5b63ffffffff83166000908152607660205260408082206001018054859003905551339184156108fc02918591818181858888f19350505050158015610a41573d6000803e3d6000fd5b506040805163ffffffff8516815290517fa723b00228565af146e122eb0c5afe1789b66703593d98daab12f679e997eaf29181900360200190a1505050565b6000546001600160a01b03163314610acd576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b6001548110610b1a576040805162461bcd60e51b815260206004820152601460248201527321b0b71037b7363c9030b2353ab9ba103237bbb760611b604482015290519081900360640190fd5b600155565b8063ffffffff166002548110610b74576040805162461bcd60e51b81526020600482015260156024820152744f72646572204944206f7574206f662072616e676560581b604482015290519081900360640190fd5b6000818152607660205260409020600301546001600160a01b0316331480610ba657506000546001600160a01b031633145b610bec576040805162461bcd60e51b81526020600482015260126024820152712737ba1037bbb732b91037b91030b236b4b760711b604482015290519081900360640190fd5b63ffffffff8083166000908152607660205260409020541615610c56576040805162461bcd60e51b815260206004820152601d60248201527f4f72646572206e6f7420696e20726566756e6461626c65207374617465000000604482015290519081900360640190fd5b63ffffffff82166000908152607660205260408120805463ffffffff19166003178155600201549054336001600160a01b0390911614610ca55760646005541015610ca5576005546064909104025b63ffffffff83166000818152607660209081526040918290206002810154600180549187900390910181550154825193845290930192820183905280517fe65fe860c9575e9dcdc5ad1279422681a384c793dd0160f01380380f5ca006bf9281900390910190a163ffffffff83166000908152607660205260408082206003015490516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610d5a573d6000803e3d6000fd5b50505050565b60055481565b60035481565b6000546001600160a01b03163314610db9576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b600154811115610e08576040805162461bcd60e51b815260206004820152601560248201527411585c9b9959081b1a5b5a5d08195e18d959591959605a1b604482015290519081900360640190fd5b47811115610e5d576040805162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e742066756e647320746f2077697468647261770000604482015290519081900360640190fd5b600180548290039055604051339082156108fc029083906000818181858888f19350505050158015610e93573d6000803e3d6000fd5b5050565b60468160108110610ea457fe5b60030201805460018201546002909201546001600160a01b03909116925060ff1683565b60608060008060035490505b600254811015610f16576000818152607660205260409020600301546001600160a01b03868116911614610f0757610f0e565b6001909101905b600101610ed4565b508067ffffffffffffffff81118015610f2e57600080fd5b50604051908082528060200260200182016040528015610f58578160200160208202803683370190505b506003549092506000905b600254811015610fbd576000818152607660205260409020600301546001600160a01b03878116911614610f9657610fb5565b80848381518110610fa357fe5b60209081029190910101526001909101905b600101610f63565b5091925050505b919050565b60025481565b6000546001600160a01b0316331461101c576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b6004805464ff0000000019169115600160201b02919091179055565b60008060008060008060008060028054106110ec576003545b6002548110156110ea5760008181526076602052604090205463ffffffff161561107a576110e2565b6000818152607660205260409020600101548510156110b157600081815260766020526040902060010154949350919050816110e2565b6000818152607660205260409020600101548410156110e25760008181526076602052604090206001015493509050805b600101611051565b505b909790965091945092509050565b600454600160201b900460ff1681565b6000546001600160a01b03163314611157576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b600555565b60035460009081905b6002548110156111a3576000818152607660205260409020600301546001600160a01b038581169116141561119b576001909101905b600101611165565b5092915050565b6000908152607660205260409020600301546001600160a01b031690565b60015481565b600681602081106111db57fe5b60020201805460019091015490915082565b6000546001600160a01b0316331461123a576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b6004805463ffffffff191663ffffffff92909216919091179055565b60045463ffffffff1681565b6000546001600160a01b031633146112af576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b8260468563ffffffff16601081106112c357fe5b6003020180546001600160a01b0319166001600160a01b039290921691909117905581604663ffffffff8616601081106112f957fe5b60030201600101819055508060468563ffffffff166010811061131857fe5b6003020160020160006101000a81548160ff02191690831515021790555050505050565b6000546001600160a01b03163314611389576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b60045463ffffffff908116908416106113e9576040805162461bcd60e51b815260206004820152601760248201527f50726f64756374204944206f7574206f662072616e6765000000000000000000604482015290519081900360640190fd5b8160068463ffffffff16602081106113fd57fe5b600202015580600663ffffffff85166020811061141657fe5b6002020160010181905550505050565b60045460009063ffffffff9081169083161061147e576040805162461bcd60e51b8152602060048201526012602482015271125b9d985b1a59081c1c9bd91d58dd081a5960721b604482015290519081900360640190fd5b600060068363ffffffff166020811061149357fe5b6002020160010154116114d8576040805162461bcd60e51b815260206004820152600860248201526714dbdb190813dd5d60c21b604482015290519081900360640190fd5b600454600160201b900460ff161561152c576040805162461bcd60e51b8152602060048201526012602482015271141d5c98da185cd95cc8191a5cd8589b195960721b604482015290519081900360640190fd5b60068263ffffffff166020811061153f57fe5b60020201543410156115825760405162461bcd60e51b8152600401808060200182810382526024815260200180611f616024913960400191505060405180910390fd5b61158b33611988565b6115cd576040805162461bcd60e51b815260206004820152600e60248201526d2737ba1032b63634b3b4b136329760911b604482015290519081900360640190fd5b341561162857600060068363ffffffff16602081106115e857fe5b600202015434039050801561162657604051339082156108fc029083906000818181858888f19350505050158015611624573d6000803e3d6000fd5b505b505b60068263ffffffff166020811061163b57fe5b60029081029190910154815460009081526076602052604080822084019290925582548152818120805463ffffffff8716600160201b0267ffffffff000000001990911617905591548252902060030180546001600160a01b0319163317905534156116df57600060068363ffffffff16602081106116b657fe5b60020201543403905080156116dd5760025460009081526076602052604090206001018190555b505b6002805460018101909155600663ffffffff8416602081106116fd57fe5b6002020160010180546000190190556040805182815290517f0db318f3927dbf033fb60267d1729c1733780bca6edb898a57da664db89cd319916020908290030190a192915050565b6000546001600160a01b03163314611793576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b60005b8151811015610e935760008282815181106117ad57fe5b602002602001015190506002548163ffffffff16106117cc575061185e565b63ffffffff80821660009081526076602052604090205416156117ef575061185e565b63ffffffff81166000818152607660209081526040918290206002808201546001805490910180825581840154019055815463ffffffff1916179055815192835290517ff084fcd3b3fc9a1f44ff5d9f4933d5cff8d38400f5ec94e774caa199707e36569281900390910190a1505b600101611796565b6000546001600160a01b031633146118b3576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b565b6000546001600160a01b03163314611902576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b60108263ffffffff1610611952576040805162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b604482015290519081900360640190fd5b8060468363ffffffff166010811061196657fe5b6003020160020160006101000a81548160ff0219169083151502179055505050565b60006001815b60108110156111a357604681601081106119a457fe5b600302016002015460ff166119b857611a6a565b604681601081106119c557fe5b6003020160010154604682601081106119da57fe5b6003020154604080516370a0823160e01b81526001600160a01b038881166004830152915191909216916370a08231916024808301926020929190829003018186803b158015611a2957600080fd5b505afa158015611a3d573d6000803e3d6000fd5b505050506040513d6020811015611a5357600080fd5b505110611a6557600192505050610fc4565b600091505b60010161198e565b6000611a7d8361115c565b63ffffffff168263ffffffff1610611adc576040805162461bcd60e51b815260206004820152601860248201527f4f7264657220696e646578206f7574206f662072616e67650000000000000000604482015290519081900360640190fd5b60035460009081905b600254811015611b3f576000818152607660205260409020600301546001600160a01b0387811691161415611b37578263ffffffff168563ffffffff161415611b3057809150611b3f565b6001909201915b600101611ae5565b50949350505050565b60608060008060035490505b600254811015611b8c5760008181526076602052604090205463ffffffff1615611b7d57611b84565b6001909101905b600101611b54565b508067ffffffffffffffff81118015611ba457600080fd5b50604051908082528060200260200182016040528015611bce578160200160208202803683370190505b506003549092506000905b600254811015611c295760008181526076602052604090205463ffffffff1615611c0257611c21565b80848381518110611c0f57fe5b60209081029190910101526001909101905b600101611bd9565b506001821115611d215760005b506000805b60018403811015611d145760766000868360010181518110611c5957fe5b602002602001015181526020019081526020016000206001015460766000878481518110611c8357fe5b60200260200101518152602001908152602001600020600101541015611d0c576000858281518110611cb157fe5b60200260200101519050858260010181518110611cca57fe5b6020026020010151868381518110611cde57fe5b60200260200101818152505080868360010181518110611cfa57fe5b60200260200101818152505060019250505b600101611c3b565b50600181151514611c3657505b509091505090565b8063ffffffff166002548110611d7e576040805162461bcd60e51b81526020600482015260156024820152744f72646572204944206f7574206f662072616e676560581b604482015290519081900360640190fd5b6000818152607660205260409020600301546001600160a01b03163314611de1576040805162461bcd60e51b81526020600482015260126024820152712737ba1037bbb732b91037b31037b93232b960711b604482015290519081900360640190fd5b63ffffffff8083166000908152607660205260409020541615611e4b576040805162461bcd60e51b815260206004820152601e60248201527f4f72646572206d75737420626520696e2070656e64696e672073746174650000604482015290519081900360640190fd5b63ffffffff8216600081815260766020908152604091829020600101805434019055815192835290517fa723b00228565af146e122eb0c5afe1789b66703593d98daab12f679e997eaf29281900390910190a15050565b60008060008060006002548610611ef8576040805162461bcd60e51b81526020600482015260156024820152744f72646572206964206e6f7420696e2072616e676560581b604482015290519081900360640190fd5b5050506000928352505060766020526040902080546001820154600283015460039093015463ffffffff80841695600160201b909404169391926001600160a01b039091169056fe52657175697265732061646d696e2070726976696c65676573000000000000004d7573742073656e64206d696e696d756d2076616c756520746f20707572636861736521a264697066735822122012a1188abd86b9dca4426a0d49dbb27e733cdca6c2aef3ef105b57e68e0779c364736f6c63430007030033
Deployed Bytecode
0x6080604052600436106101cd5760003560e01c80636dfa8d99116100f7578063c96f2c0311610095578063dacf2c0c11610064578063dacf2c0c14610745578063e10d29ee14610784578063fc8babf214610799578063ff22fb00146107bc576101cd565b8063c96f2c0314610624578063d0e30db0146106d2578063d6bb6ae7146106da578063d79eb77614610712576101cd565b8063ac964f21116100d1578063ac964f2114610563578063adb32fea14610578578063b71ce705146105c5578063c7f04e6514610601576101cd565b80636dfa8d99146104db5780637acc0b20146104f05780638112f16e14610533576101cd565b806343714aa51161016f578063516979c41161013e578063516979c4146103f65780635cdb1bd71461041f5780635f215920146104495780636352211e14610495576101cd565b806343714aa5146102f757806345d537881461037a578063472673311461038f5780634ec2518d146103bb576101cd565b8063257e4e93116101ab578063257e4e931461024a57806327d51148146102715780632e1a7d4d14610286578063425bbfa1146102a3576101cd565b806302b80690146101d25780631069a4ba146101fd5780631c48c07414610227575b600080fd5b6101fb600480360360408110156101e857600080fd5b5063ffffffff8135169060200135610823565b005b34801561020957600080fd5b506101fb6004803603602081101561022057600080fd5b5035610a80565b6101fb6004803603602081101561023d57600080fd5b503563ffffffff16610b1f565b34801561025657600080fd5b5061025f610d60565b60408051918252519081900360200190f35b34801561027d57600080fd5b5061025f610d66565b6101fb6004803603602081101561029c57600080fd5b5035610d6c565b3480156102af57600080fd5b506102cd600480360360208110156102c657600080fd5b5035610e97565b604080516001600160a01b0390941684526020840192909252151582820152519081900360600190f35b34801561030357600080fd5b5061032a6004803603602081101561031a57600080fd5b50356001600160a01b0316610ec8565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561036657818101518382015260200161034e565b505050509050019250505060405180910390f35b34801561038657600080fd5b5061025f610fc9565b34801561039b57600080fd5b506101fb600480360360208110156103b257600080fd5b50351515610fcf565b3480156103c757600080fd5b506103d0611038565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561040257600080fd5b5061040b6110fa565b604080519115158252519081900360200190f35b34801561042b57600080fd5b506101fb6004803603602081101561044257600080fd5b503561110a565b34801561045557600080fd5b5061047c6004803603602081101561046c57600080fd5b50356001600160a01b031661115c565b6040805163ffffffff9092168252519081900360200190f35b3480156104a157600080fd5b506104bf600480360360208110156104b857600080fd5b50356111aa565b604080516001600160a01b039092168252519081900360200190f35b3480156104e757600080fd5b5061025f6111c8565b3480156104fc57600080fd5b5061051a6004803603602081101561051357600080fd5b50356111ce565b6040805192835260208301919091528051918290030190f35b34801561053f57600080fd5b506101fb6004803603602081101561055657600080fd5b503563ffffffff166111ed565b34801561056f57600080fd5b5061047c611256565b34801561058457600080fd5b506101fb6004803603608081101561059b57600080fd5b5063ffffffff813516906001600160a01b0360208201351690604081013590606001351515611262565b3480156105d157600080fd5b506101fb600480360360608110156105e857600080fd5b5063ffffffff813516906020810135906040013561133c565b61025f6004803603602081101561061757600080fd5b503563ffffffff16611426565b34801561063057600080fd5b506101fb6004803603602081101561064757600080fd5b810190602081018135600160201b81111561066157600080fd5b82018360208201111561067357600080fd5b803590602001918460208302840111600160201b8311171561069457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611746945050505050565b6101fb611866565b3480156106e657600080fd5b506101fb600480360360408110156106fd57600080fd5b5063ffffffff813516906020013515156118b5565b34801561071e57600080fd5b5061040b6004803603602081101561073557600080fd5b50356001600160a01b0316611988565b34801561075157600080fd5b5061025f6004803603604081101561076857600080fd5b5080356001600160a01b0316906020013563ffffffff16611a72565b34801561079057600080fd5b5061032a611b48565b6101fb600480360360208110156107af57600080fd5b503563ffffffff16611d29565b3480156107c857600080fd5b506107e6600480360360208110156107df57600080fd5b5035611ea2565b6040805163ffffffff96871681529490951660208501528385019290925260608301526001600160a01b0316608082015290519081900360a00190f35b8163ffffffff166002548110610878576040805162461bcd60e51b81526020600482015260156024820152744f72646572204944206f7574206f662072616e676560581b604482015290519081900360640190fd5b6000818152607660205260409020600301546001600160a01b031633146108db576040805162461bcd60e51b81526020600482015260126024820152712737ba1037bbb732b91037b31037b93232b960711b604482015290519081900360640190fd5b63ffffffff8084166000908152607660205260409020541615610945576040805162461bcd60e51b815260206004820152601e60248201527f4f72646572206d75737420626520696e2070656e64696e672073746174650000604482015290519081900360640190fd5b63ffffffff83166000908152607660205260409020600101548211156109a3576040805162461bcd60e51b815260206004820152600e60248201526d131a5b5a5d08195e18d95959195960921b604482015290519081900360640190fd5b600082116109f8576040805162461bcd60e51b815260206004820152601a60248201527f416d6f756e74206d757374206265206d6f7265207468616e2030000000000000604482015290519081900360640190fd5b63ffffffff83166000908152607660205260408082206001018054859003905551339184156108fc02918591818181858888f19350505050158015610a41573d6000803e3d6000fd5b506040805163ffffffff8516815290517fa723b00228565af146e122eb0c5afe1789b66703593d98daab12f679e997eaf29181900360200190a1505050565b6000546001600160a01b03163314610acd576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b6001548110610b1a576040805162461bcd60e51b815260206004820152601460248201527321b0b71037b7363c9030b2353ab9ba103237bbb760611b604482015290519081900360640190fd5b600155565b8063ffffffff166002548110610b74576040805162461bcd60e51b81526020600482015260156024820152744f72646572204944206f7574206f662072616e676560581b604482015290519081900360640190fd5b6000818152607660205260409020600301546001600160a01b0316331480610ba657506000546001600160a01b031633145b610bec576040805162461bcd60e51b81526020600482015260126024820152712737ba1037bbb732b91037b91030b236b4b760711b604482015290519081900360640190fd5b63ffffffff8083166000908152607660205260409020541615610c56576040805162461bcd60e51b815260206004820152601d60248201527f4f72646572206e6f7420696e20726566756e6461626c65207374617465000000604482015290519081900360640190fd5b63ffffffff82166000908152607660205260408120805463ffffffff19166003178155600201549054336001600160a01b0390911614610ca55760646005541015610ca5576005546064909104025b63ffffffff83166000818152607660209081526040918290206002810154600180549187900390910181550154825193845290930192820183905280517fe65fe860c9575e9dcdc5ad1279422681a384c793dd0160f01380380f5ca006bf9281900390910190a163ffffffff83166000908152607660205260408082206003015490516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610d5a573d6000803e3d6000fd5b50505050565b60055481565b60035481565b6000546001600160a01b03163314610db9576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b600154811115610e08576040805162461bcd60e51b815260206004820152601560248201527411585c9b9959081b1a5b5a5d08195e18d959591959605a1b604482015290519081900360640190fd5b47811115610e5d576040805162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e742066756e647320746f2077697468647261770000604482015290519081900360640190fd5b600180548290039055604051339082156108fc029083906000818181858888f19350505050158015610e93573d6000803e3d6000fd5b5050565b60468160108110610ea457fe5b60030201805460018201546002909201546001600160a01b03909116925060ff1683565b60608060008060035490505b600254811015610f16576000818152607660205260409020600301546001600160a01b03868116911614610f0757610f0e565b6001909101905b600101610ed4565b508067ffffffffffffffff81118015610f2e57600080fd5b50604051908082528060200260200182016040528015610f58578160200160208202803683370190505b506003549092506000905b600254811015610fbd576000818152607660205260409020600301546001600160a01b03878116911614610f9657610fb5565b80848381518110610fa357fe5b60209081029190910101526001909101905b600101610f63565b5091925050505b919050565b60025481565b6000546001600160a01b0316331461101c576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b6004805464ff0000000019169115600160201b02919091179055565b60008060008060008060008060028054106110ec576003545b6002548110156110ea5760008181526076602052604090205463ffffffff161561107a576110e2565b6000818152607660205260409020600101548510156110b157600081815260766020526040902060010154949350919050816110e2565b6000818152607660205260409020600101548410156110e25760008181526076602052604090206001015493509050805b600101611051565b505b909790965091945092509050565b600454600160201b900460ff1681565b6000546001600160a01b03163314611157576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b600555565b60035460009081905b6002548110156111a3576000818152607660205260409020600301546001600160a01b038581169116141561119b576001909101905b600101611165565b5092915050565b6000908152607660205260409020600301546001600160a01b031690565b60015481565b600681602081106111db57fe5b60020201805460019091015490915082565b6000546001600160a01b0316331461123a576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b6004805463ffffffff191663ffffffff92909216919091179055565b60045463ffffffff1681565b6000546001600160a01b031633146112af576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b8260468563ffffffff16601081106112c357fe5b6003020180546001600160a01b0319166001600160a01b039290921691909117905581604663ffffffff8616601081106112f957fe5b60030201600101819055508060468563ffffffff166010811061131857fe5b6003020160020160006101000a81548160ff02191690831515021790555050505050565b6000546001600160a01b03163314611389576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b60045463ffffffff908116908416106113e9576040805162461bcd60e51b815260206004820152601760248201527f50726f64756374204944206f7574206f662072616e6765000000000000000000604482015290519081900360640190fd5b8160068463ffffffff16602081106113fd57fe5b600202015580600663ffffffff85166020811061141657fe5b6002020160010181905550505050565b60045460009063ffffffff9081169083161061147e576040805162461bcd60e51b8152602060048201526012602482015271125b9d985b1a59081c1c9bd91d58dd081a5960721b604482015290519081900360640190fd5b600060068363ffffffff166020811061149357fe5b6002020160010154116114d8576040805162461bcd60e51b815260206004820152600860248201526714dbdb190813dd5d60c21b604482015290519081900360640190fd5b600454600160201b900460ff161561152c576040805162461bcd60e51b8152602060048201526012602482015271141d5c98da185cd95cc8191a5cd8589b195960721b604482015290519081900360640190fd5b60068263ffffffff166020811061153f57fe5b60020201543410156115825760405162461bcd60e51b8152600401808060200182810382526024815260200180611f616024913960400191505060405180910390fd5b61158b33611988565b6115cd576040805162461bcd60e51b815260206004820152600e60248201526d2737ba1032b63634b3b4b136329760911b604482015290519081900360640190fd5b341561162857600060068363ffffffff16602081106115e857fe5b600202015434039050801561162657604051339082156108fc029083906000818181858888f19350505050158015611624573d6000803e3d6000fd5b505b505b60068263ffffffff166020811061163b57fe5b60029081029190910154815460009081526076602052604080822084019290925582548152818120805463ffffffff8716600160201b0267ffffffff000000001990911617905591548252902060030180546001600160a01b0319163317905534156116df57600060068363ffffffff16602081106116b657fe5b60020201543403905080156116dd5760025460009081526076602052604090206001018190555b505b6002805460018101909155600663ffffffff8416602081106116fd57fe5b6002020160010180546000190190556040805182815290517f0db318f3927dbf033fb60267d1729c1733780bca6edb898a57da664db89cd319916020908290030190a192915050565b6000546001600160a01b03163314611793576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b60005b8151811015610e935760008282815181106117ad57fe5b602002602001015190506002548163ffffffff16106117cc575061185e565b63ffffffff80821660009081526076602052604090205416156117ef575061185e565b63ffffffff81166000818152607660209081526040918290206002808201546001805490910180825581840154019055815463ffffffff1916179055815192835290517ff084fcd3b3fc9a1f44ff5d9f4933d5cff8d38400f5ec94e774caa199707e36569281900390910190a1505b600101611796565b6000546001600160a01b031633146118b3576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b565b6000546001600160a01b03163314611902576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b60108263ffffffff1610611952576040805162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b604482015290519081900360640190fd5b8060468363ffffffff166010811061196657fe5b6003020160020160006101000a81548160ff0219169083151502179055505050565b60006001815b60108110156111a357604681601081106119a457fe5b600302016002015460ff166119b857611a6a565b604681601081106119c557fe5b6003020160010154604682601081106119da57fe5b6003020154604080516370a0823160e01b81526001600160a01b038881166004830152915191909216916370a08231916024808301926020929190829003018186803b158015611a2957600080fd5b505afa158015611a3d573d6000803e3d6000fd5b505050506040513d6020811015611a5357600080fd5b505110611a6557600192505050610fc4565b600091505b60010161198e565b6000611a7d8361115c565b63ffffffff168263ffffffff1610611adc576040805162461bcd60e51b815260206004820152601860248201527f4f7264657220696e646578206f7574206f662072616e67650000000000000000604482015290519081900360640190fd5b60035460009081905b600254811015611b3f576000818152607660205260409020600301546001600160a01b0387811691161415611b37578263ffffffff168563ffffffff161415611b3057809150611b3f565b6001909201915b600101611ae5565b50949350505050565b60608060008060035490505b600254811015611b8c5760008181526076602052604090205463ffffffff1615611b7d57611b84565b6001909101905b600101611b54565b508067ffffffffffffffff81118015611ba457600080fd5b50604051908082528060200260200182016040528015611bce578160200160208202803683370190505b506003549092506000905b600254811015611c295760008181526076602052604090205463ffffffff1615611c0257611c21565b80848381518110611c0f57fe5b60209081029190910101526001909101905b600101611bd9565b506001821115611d215760005b506000805b60018403811015611d145760766000868360010181518110611c5957fe5b602002602001015181526020019081526020016000206001015460766000878481518110611c8357fe5b60200260200101518152602001908152602001600020600101541015611d0c576000858281518110611cb157fe5b60200260200101519050858260010181518110611cca57fe5b6020026020010151868381518110611cde57fe5b60200260200101818152505080868360010181518110611cfa57fe5b60200260200101818152505060019250505b600101611c3b565b50600181151514611c3657505b509091505090565b8063ffffffff166002548110611d7e576040805162461bcd60e51b81526020600482015260156024820152744f72646572204944206f7574206f662072616e676560581b604482015290519081900360640190fd5b6000818152607660205260409020600301546001600160a01b03163314611de1576040805162461bcd60e51b81526020600482015260126024820152712737ba1037bbb732b91037b31037b93232b960711b604482015290519081900360640190fd5b63ffffffff8083166000908152607660205260409020541615611e4b576040805162461bcd60e51b815260206004820152601e60248201527f4f72646572206d75737420626520696e2070656e64696e672073746174650000604482015290519081900360640190fd5b63ffffffff8216600081815260766020908152604091829020600101805434019055815192835290517fa723b00228565af146e122eb0c5afe1789b66703593d98daab12f679e997eaf29281900390910190a15050565b60008060008060006002548610611ef8576040805162461bcd60e51b81526020600482015260156024820152744f72646572206964206e6f7420696e2072616e676560581b604482015290519081900360640190fd5b5050506000928352505060766020526040902080546001820154600283015460039093015463ffffffff80841695600160201b909404169391926001600160a01b039091169056fe52657175697265732061646d696e2070726976696c65676573000000000000004d7573742073656e64206d696e696d756d2076616c756520746f20707572636861736521a264697066735822122012a1188abd86b9dca4426a0d49dbb27e733cdca6c2aef3ef105b57e68e0779c364736f6c63430007030033
Deployed Bytecode Sourcemap
211:11046:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6079:417;;;;;;;;;;;;;;;;-1:-1:-1;6079:417:0;;;;;;;;;:::i;:::-;;10933:141;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10933:141:0;;:::i;4733:1043::-;;;;;;;;;;;;;;;;-1:-1:-1;4733:1043:0;;;;:::i;493:29::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;361:28;;;;;;;;;;;;;:::i;10562:280::-;;;;;;;;;;;;;;;;-1:-1:-1;10562:280:0;;:::i;941:38::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;941:38:0;;:::i;:::-;;;;-1:-1:-1;;;;;941:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;6699:457;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6699:457:0;-1:-1:-1;;;;;6699:457:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;316:24;;;;;;;;;;;;;:::i;9031:100::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9031:100:0;;;;:::i;8131:710::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;9137:90;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9137:90:0;;:::i;2122:222::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2122:222:0;-1:-1:-1;;;;;2122:222:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;6541:96;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6541:96:0;;:::i;:::-;;;;-1:-1:-1;;;;;6541:96:0;;;;;;;;;;;;;;257:26;;;;;;;;;;;;;:::i;903:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;903:33:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10022:82;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10022:82:0;;;;:::i;412:25::-;;;;;;;;;;;;;:::i;9233:253::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9233:253:0;;;;;-1:-1:-1;;;;;9233:253:0;;;;;;;;;;;;;;;;;:::i;10187:214::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10187:214:0;;;;;;;;;;;;;;:::i;3625:1102::-;;;;;;;;;;;;;;;;-1:-1:-1;3625:1102:0;;;;:::i;9544:470::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9544:470:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9544:470:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9544:470:0;;-1:-1:-1;9544:470:0;;-1:-1:-1;;;;;9544:470:0:i;11197:53::-;;;:::i;8851:174::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8851:174:0;;;;;;;;;;;:::i;3267:350::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3267:350:0;-1:-1:-1;;;;;3267:350:0;;:::i;2352:393::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2352:393:0;;-1:-1:-1;;;;;2352:393:0;;;;;;;;:::i;7223:829::-;;;;;;;;;;;;;:::i;5782:291::-;;;;;;;;;;;;;;;;-1:-1:-1;5782:291:0;;;;:::i;2755:410::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2755:410:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2755:410:0;;;;;;;;;;;;;;;6079:417;6152:3;1411:199;;1464:9;;1457:3;:16;1453:70;;1484:31;;;-1:-1:-1;;;1484:31:0;;;;;;;;;;;;-1:-1:-1;;;1484:31:0;;;;;;;;;;;;;;1453:70;1557:11;;;;:6;:11;;;;;:17;;;-1:-1:-1;;;;;1557:17:0;1543:10;:31;1535:61;;;;;-1:-1:-1;;;1535:61:0;;;;;;;;;;;;-1:-1:-1;;;1535:61:0;;;;;;;;;;;;;;;6172:11:::1;::::0;;::::1;;::::0;;;:6:::1;:11;::::0;;;;:17;::::1;:20:::0;6164:63:::1;;;::::0;;-1:-1:-1;;;6164:63:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;6252:11;::::0;::::1;;::::0;;;:6:::1;:11;::::0;;;;:23:::1;;::::0;6242:33;::::1;;6234:59;;;::::0;;-1:-1:-1;;;6234:59:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;6234:59:0;;;;;;;;;;;;;::::1;;6317:1;6308:6;:10;6300:48;;;::::0;;-1:-1:-1;;;6300:48:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;6361:11;::::0;::::1;;::::0;;;:6:::1;:11;::::0;;;;;:23:::1;;:33:::0;;;;::::1;::::0;;6401:36;6409:10:::1;::::0;6401:36;::::1;;;::::0;6388:6;;6401:36;6361:11;6401:36;6388:6;6409:10;6401:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;6475:11:0::1;::::0;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;::::1;6079:417:::0;;;:::o;10933:141::-;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;11011:11:::1;;11007:1;:15;10998:48;;;::::0;;-1:-1:-1;;;10998:48:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;10998:48:0;;;;;;;;;;;;;::::1;;11053:11;:15:::0;10933:141::o;4733:1043::-;4796:3;1616:243;;1676:9;;1669:3;:16;1665:70;;1696:31;;;-1:-1:-1;;;1696:31:0;;;;;;;;;;;;-1:-1:-1;;;1696:31:0;;;;;;;;;;;;;;1665:70;1769:11;;;;:6;:11;;;;;:17;;;-1:-1:-1;;;;;1769:17:0;1755:10;:31;;:68;;-1:-1:-1;1796:13:0;;-1:-1:-1;;;;;1796:13:0;1813:10;1796:27;1755:68;1747:98;;;;;-1:-1:-1;;;1747:98:0;;;;;;;;;;;;-1:-1:-1;;;1747:98:0;;;;;;;;;;;;;;;4816:11:::1;::::0;;::::1;;::::0;;;:6:::1;:11;::::0;;;;:17;::::1;:20:::0;4808:62:::1;;;::::0;;-1:-1:-1;;;4808:62:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;4919:11;::::0;::::1;;::::0;;;:6:::1;:11;::::0;;;;:21;;-1:-1:-1;;4919:21:0::1;4939:1;4919:21;::::0;;5088:22:::1;;::::0;5135:13;;5121:10:::1;-1:-1:-1::0;;;;;5135:13:0;;::::1;5121:27;5117:216;;5246:3;5229:14;;:20;5225:101;;;5302:14;::::0;5275:3:::1;5255:23:::0;;::::1;5282:34;5225:101;5406:11;::::0;::::1;;::::0;;;:6:::1;:11;::::0;;;;;;;;:22:::1;::::0;::::1;::::0;5390:11:::1;:58:::0;;5406:41;;;::::1;5390:58:::0;;::::1;::::0;;-1:-1:-1;5576:23:0;5675:29;;;;;5556:43;;::::1;5675:29:::0;;::::1;::::0;;;;;::::1;::::0;;;;;;;;::::1;5725:11;::::0;::::1;;::::0;;;:6:::1;:11;::::0;;;;;:17:::1;;::::0;5717:53;;-1:-1:-1;;;;;5725:17:0;;::::1;::::0;5717:53;::::1;;;::::0;5753:16;;5717:53;5725:11;5717:53;5753:16;5725:17;5717:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;1852:1;4733:1043:::0;;:::o;493:29::-;;;;:::o;361:28::-;;;;:::o;10562:280::-;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;10649:11:::1;;10639:6;:21;;10631:54;;;::::0;;-1:-1:-1;;;10631:54:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;10631:54:0;;;;;;;;;;;;;::::1;;10710:21;10700:6;:31;;10692:73;;;::::0;;-1:-1:-1;;;10692:73:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;10772:11;:21:::0;;;;::::1;::::0;;10800:36:::1;::::0;10808:10:::1;::::0;10800:36;::::1;;;::::0;10787:6;;10772:11:::1;10800:36:::0;10772:11;10800:36;10787:6;10808:10;10800:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10562:280:::0;:::o;941:38::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;941:38:0;;;;-1:-1:-1;941:38:0;;;:::o;6699:457::-;6754:16;6779:19;6807:11;6830:9;6842:13;;6830:25;;6825:114;6859:9;;6857:1;:11;6825:114;;;6887:9;;;;:6;:9;;;;;:15;;;-1:-1:-1;;;;;6887:20:0;;;:15;;:20;6883:34;;6909:8;;6883:34;6926:5;;;;;6825:114;6869:3;;6825:114;;;;6963:3;6949:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6949:18:0;-1:-1:-1;7017:13:0;;6945:22;;-1:-1:-1;6980:9:0;;7000:134;7033:9;;7031:1;:11;7000:134;;;7061:9;;;;:6;:9;;;;;:15;;;-1:-1:-1;;;;;7061:20:0;;;:15;;:20;7057:34;;7083:8;;7057:34;7113:1;7106;7108;7106:4;;;;;;;;;;;;;;;;;:8;7123:3;;;;;7000:134;7043:3;;7000:134;;;-1:-1:-1;7149:1:0;;-1:-1:-1;;;6699:457:0;;;;:::o;316:24::-;;;;:::o;9031:100::-;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;9097:17:::1;:28:::0;;-1:-1:-1;;9097:28:0::1;9117:8:::0;::::1;-1:-1:-1::0;;;9097:28:0::1;::::0;;;::::1;::::0;;9031:100::o;8131:710::-;8171:12;8185;8199:15;8216;8240:10;8277;8302:11;8347;8434:1;8421:9;;:14;8417:341;;8463:13;;8446:305;8479:9;;8477:1;:11;8446:305;;;8502:9;;;;:6;:9;;;;;:15;;;:20;8498:34;;8524:8;;8498:34;8548:9;;;;:6;:9;;;;;:21;;;:26;-1:-1:-1;8544:198:0;;;8615:9;;;;:6;:9;;;;;:21;;;;8587:2;-1:-1:-1;8622:1:0;8601:3;-1:-1:-1;8622:1:0;8544:198;;;8664:9;;;;:6;:9;;;;;:21;;;:26;-1:-1:-1;8660:82:0;;;8703:9;;;;:6;:9;;;;;:21;;;;-1:-1:-1;8710:1:0;-1:-1:-1;8710:1:0;8660:82;8489:3;;8446:305;;;;8417:341;8777:3;;8794;;-1:-1:-1;8814:2:0;;-1:-1:-1;8833:2:0;-1:-1:-1;8131:710:0;-1:-1:-1;8131:710:0:o;457:29::-;;;-1:-1:-1;;;457:29:0;;;;;:::o;9137:90::-;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;9202:14:::1;:19:::0;9137:90::o;2122:222::-;2233:13;;2182:6;;;;2216:108;2250:9;;2248:1;:11;2216:108;;;2278:9;;;;:6;:9;;;;;:15;;;-1:-1:-1;;;;;2278:20:0;;;:15;;:20;2274:43;;;2304:3;;;;;2274:43;2260:3;;2216:108;;;-1:-1:-1;2337:1:0;2122:222;-1:-1:-1;;2122:222:0:o;6541:96::-;6591:7;6614:11;;;:6;:11;;;;;:17;;;-1:-1:-1;;;;;6614:17:0;;6541:96::o;257:26::-;;;;:::o;903:33::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;903:33:0;:::o;10022:82::-;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;10083:11:::1;:15:::0;;-1:-1:-1;;10083:15:0::1;;::::0;;;::::1;::::0;;;::::1;::::0;;10022:82::o;412:25::-;;;;;;:::o;9233:253::-;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;9382:1:::1;9344:14;9359:3;9344:19;;;;;;;;;;;;:40:::0;;-1:-1:-1;;;;;;9344:40:0::1;-1:-1:-1::0;;;;;9344:40:0;;;::::1;::::0;;;::::1;::::0;;9425:11;9391:14:::1;:19;::::0;::::1;;::::0;::::1;;;;;;;;:31;;:45;;;;9473:7;9443:14;9458:3;9443:19;;;;;;;;;;;;:27;;;:37;;;;;;;;;;;;;;;;;;9233:253:::0;;;;:::o;10187:214::-;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;10287:11:::1;::::0;::::1;::::0;;::::1;10283:15:::0;;::::1;;10275:50;;;::::0;;-1:-1:-1;;;10275:50:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;10354:5;10332:8;10341:3;10332:13;;;;;;;;;;;;:27:::0;10389:6;10366:8:::1;:13;::::0;::::1;;::::0;::::1;;;;;;;;:20;;:29;;;;10187:214:::0;;;:::o;3625:1102::-;3708:11;;3678:7;;3708:11;;;;3702:17;;;;3694:48;;;;;-1:-1:-1;;;3694:48:0;;;;;;;;;;;;-1:-1:-1;;;3694:48:0;;;;;;;;;;;;;;;3780:1;3757:8;3766:3;3757:13;;;;;;;;;;;;:20;;;:24;3749:45;;;;;-1:-1:-1;;;3749:45:0;;;;;;;;;;;;-1:-1:-1;;;3749:45:0;;;;;;;;;;;;;;;3816:17;;-1:-1:-1;;;3816:17:0;;;;3815:18;3807:48;;;;;-1:-1:-1;;;3807:48:0;;;;;;;;;;;;-1:-1:-1;;;3807:48:0;;;;;;;;;;;;;;;3881:8;3890:3;3881:13;;;;;;;;;;;;:19;3870:9;:30;;3862:79;;;;-1:-1:-1;;;3862:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3953:27;3969:10;3953:15;:27::i;:::-;3948:75;;3991:24;;;-1:-1:-1;;;3991:24:0;;;;;;;;;;;;-1:-1:-1;;;3991:24:0;;;;;;;;;;;;;;3948:75;4084:9;:13;4080:152;;4108:12;4135:8;4144:3;4135:13;;;;;;;;;;;;:19;4123:9;:31;;-1:-1:-1;4167:8:0;;4163:62;;4181:34;;4189:10;;4181:34;;;;;4210:4;;4181:34;;;;4210:4;4189:10;4181:34;;;;;;;;;;;;;;;;;;;;;4163:62;4080:152;;4330:8;4339:3;4330:13;;;;;;;;;;;;;;;;;:19;4306:9;;4330:19;4299:17;;;:6;:17;;;;;;:28;;:50;;;;4363:9;;4356:17;;;;;:27;;;;;-1:-1:-1;;;4356:27:0;-1:-1:-1;;4356:27:0;;;;;;4397:9;;4390:17;;;;:23;;:36;;-1:-1:-1;;;;;;4390:36:0;4416:10;4390:36;;;4439:9;:13;4435:154;;4463:12;4490:8;4499:3;4490:13;;;;;;;;;;;;:19;4478:9;:31;;-1:-1:-1;4522:8:0;;4518:64;;4543:9;;4536:17;;;;:6;:17;;;;;:29;;:36;;;4518:64;4435:154;;4615:9;;;4631:11;;;;;;4649:8;:13;;;;;;;;;;;;;:20;;:22;;-1:-1:-1;;4649:22:0;;;4689:15;;;;;;;;;;;;;;;;;;4718:3;3625:1102;-1:-1:-1;;3625:1102:0:o;9544:470::-;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;9618:6:::1;9613:396;9629:4;:11;9627:1;:13;9613:396;;;9655:10;9668:4;9673:1;9668:7;;;;;;;;;;;;;;9655:20;;9695:9;;9688:3;:16;;;9684:30;;9706:8;;;9684:30;9726:11;::::0;;::::1;;::::0;;;:6:::1;:11;::::0;;;;:17;::::1;:22:::0;9723:35:::1;;9750:8;;;9723:35;9856:11;::::0;::::1;;::::0;;;:6:::1;:11;::::0;;;;;;;;:22:::1;::::0;;::::1;::::0;9841:11:::1;:37:::0;;;;::::1;::::0;;;-1:-1:-1;;;9902:23:0;9887:38:::1;::::0;;9936:21;;-1:-1:-1;;9936:21:0::1;;::::0;;9988:13;;;;;;;::::1;::::0;;;;;;;;::::1;9613:396;;9641:3;;9613:396;;11197:53:::0;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;11197:53::o;8851:174::-;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;8951:2:::1;8945:3;:8;;;8937:38;;;::::0;;-1:-1:-1;;;8937:38:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;8937:38:0;;;;;;;;;;;;;::::1;;9012:7;8982:14;8997:3;8982:19;;;;;;;;;;;;:27;;;:37;;;;;;;;;;;;;;;;;;8851:174:::0;;:::o;3267:350::-;3324:4;3349;3324;3360:234;3381:2;3379:1;:4;3360:234;;;3403:14;3418:1;3403:17;;;;;;;;;;:25;;;;;3398:40;;3430:8;;3398:40;3499:14;3514:1;3499:17;;;;;;;;;;:29;;;3451:14;3466:1;3451:17;;;;;;;;;;:27;:40;;;-1:-1:-1;;;3451:40:0;;-1:-1:-1;;;;;3451:40:0;;;;;;;;;:27;;;;;:37;;:40;;;;;;;;;;;;;;:27;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3451:40:0;:77;3447:140;;3541:4;3534:11;;;;;;3447:140;3572:5;3565:12;;3447:140;3384:3;;3360:234;;2352:393;2416:7;2441:21;2460:1;2441:18;:21::i;:::-;2436:26;;:1;:26;;;2432:83;;2473:34;;;-1:-1:-1;;;2473:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2432:83;2591:13;;2527:8;;;;2574:149;2607:9;;2605:1;:11;2574:149;;;2635:9;;;;:6;:9;;;;;:15;;;-1:-1:-1;;;;;2635:20:0;;;:15;;:20;2631:85;;;2668:1;2665:4;;:1;:4;;;2661:39;;;2683:1;2677:7;;2690:5;;2661:39;2703:3;;;;;2631:85;2617:3;;2574:149;;;-1:-1:-1;2736:3:0;2352:393;-1:-1:-1;;;;2352:393:0:o;7223:829::-;7261:16;7286:19;7318:18;7348:9;7360:13;;7348:25;;7343:120;7376:9;;7374:1;:11;7343:120;;;7404:9;;;;:6;:9;;;;;:15;;;:20;7400:34;;7426:8;;7400:34;7443:12;;;;;7343:120;7386:3;;7343:120;;;;7487:10;7473:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7473:25:0;-1:-1:-1;7548:13:0;;7469:29;;-1:-1:-1;7511:9:0;;7531:128;7564:9;;7562:1;:11;7531:128;;;7592:9;;;;:6;:9;;;;;:15;;;:20;7588:34;;7614:8;;7588:34;7638:1;7631;7633;7631:4;;;;;;;;;;;;;;;;;:8;7648:3;;;;;7531:128;7574:3;;7531:128;;;;7732:1;7719:10;:14;7715:311;;;7744:9;7766:253;-1:-1:-1;7780:5:0;;7789:201;7821:1;7810:10;:12;7808:1;:14;7789:201;;;7865:6;:14;7872:1;7874;7876;7874:3;7872:6;;;;;;;;;;;;;;7865:14;;;;;;;;;;;:26;;;7838:6;:12;7845:1;7847;7845:4;;;;;;;;;;;;;;7838:12;;;;;;;;;;;:24;;;:53;7834:152;;;7901:11;7915:1;7917;7915:4;;;;;;;;;;;;;;7901:18;;7934:1;7936;7938;7936:3;7934:6;;;;;;;;;;;;;;7927:1;7929;7927:4;;;;;;;;;;;;;:13;;;;;7957:3;7948:1;7950;7952;7950:3;7948:6;;;;;;;;;;;;;:12;;;;;7975:4;7968:11;;7834:152;;7823:3;;7789:201;;;-1:-1:-1;8013:4:0;8007:10;;;;7766:253;;7715:311;;-1:-1:-1;8045:1:0;;-1:-1:-1;;7223:829:0;:::o;5782:291::-;5837:3;1411:199;;1464:9;;1457:3;:16;1453:70;;1484:31;;;-1:-1:-1;;;1484:31:0;;;;;;;;;;;;-1:-1:-1;;;1484:31:0;;;;;;;;;;;;;;1453:70;1557:11;;;;:6;:11;;;;;:17;;;-1:-1:-1;;;;;1557:17:0;1543:10;:31;1535:61;;;;;-1:-1:-1;;;1535:61:0;;;;;;;;;;;;-1:-1:-1;;;1535:61:0;;;;;;;;;;;;;;;5857:11:::1;::::0;;::::1;;::::0;;;:6:::1;:11;::::0;;;;:17;::::1;:20:::0;5849:63:::1;;;::::0;;-1:-1:-1;;;5849:63:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;6006:11;::::0;::::1;;::::0;;;:6:::1;:11;::::0;;;;;;;;:23:::1;;:36:::0;;6033:9:::1;6006:36;::::0;;6056:11;;;;;;;::::1;::::0;;;;;;;;::::1;5782:291:::0;;:::o;2755:410::-;2811:12;2825:10;2837:19;2858:18;2878:13;2914:9;;2908:3;:15;2900:48;;;;;-1:-1:-1;;;2900:48:0;;;;;;;;;;;;-1:-1:-1;;;2900:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;2963:11:0;;;;-1:-1:-1;;2963:6:0;:11;;;;;:17;;;3029:23;;;3072:22;;;;3109:17;;;;;2963;;;;;-1:-1:-1;;;2993:15:0;;;;;3029:23;;-1:-1:-1;;;;;3109:17:0;;;;2755:410::o
Swarm Source
ipfs://12a1188abd86b9dca4426a0d49dbb27e733cdca6c2aef3ef105b57e68e0779c3
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.