ETH Price: $3,802.10 (+0.70%)
Gas: 4 Gwei

Token

 

Overview

Max Total Supply

453

Holders

250

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Filtered by Token Holder
apehammer.eth
0x557c60995797fa7b47be105227a2e46148d85750
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Origin

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 10 : Origin.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";

contract Origin is ERC1155, Ownable {
    uint public totalAvailable;
    bool public isRedemptionPaused;
    mapping(address => uint8) reserve;

    constructor() ERC1155("https://arweave.net/tFxcS71qir6yj1cUmY9_l5oA_xkLwzrqKfooOFEdekM") {
        totalAvailable = 500;
        
        reserve[address(0x60Fd35191FFa774e40934eFb8ed34b2Ec42da320)] = 100;
        reserve[address(0x5b20783f4bAaBd33BB53DD77C9B0459f5701E36A)] = 17;
        reserve[address(0x69Bd682c5fFFa4FfF2b6D64427aeD1AE234f69e2)] = 10;
        reserve[address(0xBC719AAC21aBF284A1f1A901EFc17C0cb1947782)] = 10;
        reserve[address(0x510437a6aa1400b97b32d0801872963D183F7A07)] = 10;
        reserve[address(0xEf3867Cb3D3baf773eC288CA93618bbC521df579)] = 10;
        reserve[address(0xE495C36e756Ba677D5Ae8fb868f8c8A41cc51611)] = 7;
        reserve[address(0x20335C504A4f0D8Db934e9f77a67b55E6AE8e1e1)] = 7;
        reserve[address(0xc54fcBC43f36124266ccc07965D4352Cf6da19E9)] = 6;
        reserve[address(0x8c8f1Be5DbDFA432BBFb33D6A13779E889D8Ccf9)] = 6;
        reserve[address(0xaa5146397cfFAc091eb64b21b7950F332eCcfD00)] = 6;
        reserve[address(0x79cF2507732dF36C6514dcdC1cfB20ae83cF5B5D)] = 5;
        reserve[address(0xE0AF6F8F3090687918212037508fFecBB924377F)] = 5;
        reserve[address(0xA7B9744287F8d48e56adaefA21eA680E5c13A4D4)] = 5;
        reserve[address(0xC8Ed3c2d1509FCf3A3C97c68De3DBa66381d337C)] = 5;
        reserve[address(0xFE274ff2846a414e690606c2ed2CCC4Ad6bB9C53)] = 5;
        reserve[address(0xa4f0670468DFb825E6c2B5571e2c97D0844190a3)] = 5;
        reserve[address(0xBe5D6B71915A2b86D007f51432F5A79116196236)] = 5;
        reserve[address(0x3d6a89C8751a45DD577a4C1F3b34E71C58236193)] = 4;
        reserve[address(0xc05C4f2bf8c629d6F9F674e6949B6fe54832764E)] = 4;
        reserve[address(0xD88d4F99ADC42A57e5949c94fDd984f43811f344)] = 4;
        reserve[address(0x8FF03F9A8Bed1Bf351310d72c0364c2da024f149)] = 3;
        reserve[address(0xD77D92f3C97B5ce6430560bd1Ab298E82ed4E058)] = 3;
        reserve[address(0x5E5BA665bfaacc1E0eEaD7057CE8251298a60439)] = 3;
        reserve[address(0x0C93929360FF8b46a46c2dE1C8eDeA9541B78eB3)] = 3;
        reserve[address(0x3dD85Df5A47b2b4b043a0F82555bc9A3DBF7EB5A)] = 2;
        reserve[address(0xDC0B3127A71367227311f02Fe4Dda2A6cCDbAe78)] = 2;
        reserve[address(0xef8e27BAD0F2eEE4e691e5B1eaAb3c019e369557)] = 2;
        reserve[address(0x5BfDF0CFC4Ade055f4aA63c31D3B2558E3a5fd80)] = 2;
        reserve[address(0x53722a32FDdda871f35ef628B252d349744d4b71)] = 2;
        reserve[address(0xC2e7C3a5675EE1308D56f5E4fD614007e0fcc63b)] = 2;
        reserve[address(0xB577AAe0C6D9D788d5678a594A0274c2B8942A48)] = 2;
        reserve[address(0xd0f716638fD372a5Ee3656B512EDA6691907c3c4)] = 2;
        reserve[address(0x193a43a5157382dC877b78195B9AbbDCcA254302)] = 2;
        reserve[address(0x557c60995797fa7b47Be105227A2e46148D85750)] = 2;
        reserve[address(0xE6c9d15dB8957Bee5ab618b64a33731f2E35Ea23)] = 2;
        reserve[address(0x9127c9221b22EA3789c90383284C72dCd7d9B9FB)] = 2;
        reserve[address(0xd05D440A07Cd28f0B9fBa8cb698F86fE4C8f11ee)] = 2;
        reserve[address(0x63C696931d3d3Fd7cd83472Febd193488266660d)] = 2;
        reserve[address(0xDDF14Fa3e1BF3881cD6Ec491F0ccF3D1389A78d4)] = 2;
        reserve[address(0xe6b4EafD769F2D29eC4BD2F197E393dDB7d75B84)] = 2;
        reserve[address(0x89BDe316a5Aa59D9995fc82B217308aBae60257c)] = 2;
        reserve[address(0x97594A1C1Def0D71Cb0D7BAE3aF27a1C3C971282)] = 2;
        reserve[address(0xB066a5b94C4D1C7C06610d1628375E5E4b265DE5)] = 1;
        reserve[address(0x3b05429741445D71a45acCb35137CD0Ae18686d0)] = 1;
        reserve[address(0xa4Fb10666494D1d99eA305065a623401B48aceB8)] = 1;
        reserve[address(0x37fd216B2e06E5808437C8D22Aac3aE82FD4b724)] = 1;
        reserve[address(0xbb0fA986710DbFADF64d8E3C16B93DB06b351136)] = 1;
        reserve[address(0x2422d8f3C3b84Ff83475a85B17D1d860D8bBA7f3)] = 1;
        reserve[address(0x2d36FcB71196BEFF330a07197A78D87Bd1447b58)] = 1;
        reserve[address(0xfF0f2dECD8b5Ef4a467510C353D1B56BfBFBf3c5)] = 1;
        reserve[address(0xe15090DAB6C013da9A24FD7c9028460016DD53d8)] = 1;
        reserve[address(0xaf469C4a0914938e6149CF621c54FB4b1EC0c202)] = 1;
        reserve[address(0x5A3fC01752C6f620Ec7bC47803EbE53A5abc3473)] = 1;
        reserve[address(0x929fAAFACB9f11cfdF6294b44E08099F118dfA6f)] = 1;
        reserve[address(0xe5d009bbcE5a5D7ab9c6c2B1b0A56F9B98297Cff)] = 1;
        reserve[address(0xDB86848C3e7FA88DD274AD28b826A8ba963Af24C)] = 1;
        reserve[address(0x2eea4706F85b9A2D5DD9e9ff007F27C07443EAB1)] = 1;
        reserve[address(0x514FC379b4aE674F74dAC2A266AFF608a9b6507F)] = 1;
        reserve[address(0x802dEbc52e025461a592069f05a3df386Ee67187)] = 1;
        reserve[address(0x376FFEff9820826a564A1BA05A464b9923862418)] = 1;
        reserve[address(0xA6E59b844891e619801B298F4f0af52054513a3C)] = 1;
        reserve[address(0x028134db627930C9a355261c83b86e2b40152304)] = 1;
        reserve[address(0x1b640c003d3F8Bba7aD69C9121cCbC94203Eb3c4)] = 1;
        reserve[address(0xFf1697Cd18f03242eA521a80334A9060f0C25c7A)] = 1;
        reserve[address(0xD48F8dF9E87C7E409072a53c6CC895350BE5567F)] = 1;
        reserve[address(0x80771c740F659760C9423F82110c03087c21Cbe8)] = 1;
        reserve[address(0x9B059f4D2199e73Aa86f8938167A1A6067474CF4)] = 1;
        reserve[address(0x5FD2C02689d138547B7b1b9E7d9A309d5A03edCd)] = 1;
        reserve[address(0x8719CC70152c03B0282216f4B97051467b2654Ec)] = 1;
        reserve[address(0x5e65605476b9Deabebd83A9566716318F75BF788)] = 1;
        reserve[address(0x4032aB8d5ccEd1444240c7b973F36d712981FB00)] = 1;
        reserve[address(0x141cA54Db6F8277917e0554b30F2B3270F65EB67)] = 1;
        reserve[address(0xa32173EBB0791338Fa7d302c7257B2BAF1cFf5EA)] = 1;
        reserve[address(0xd19956CfEa7c274d9E92d0e8ED54b962F03123E3)] = 1;
        reserve[address(0x5308685f6bbb6b56464E7c3b028ecc94ba6f830A)] = 1;
        reserve[address(0xc168A501DBbb91630a59FE30bDD40259DC2ef62a)] = 1;
        reserve[address(0x9De6405C0C7512ee94BCB79B860668a52aa7FAd2)] = 1;
        reserve[address(0x4bFBFaD0c46BF22e5b053963007605CB0618de55)] = 1;
        reserve[address(0x95fdD3157edae1f77E5E65Cd269018353938A585)] = 1;
        reserve[address(0x5E59E30C70B9c68e78FEBaA510b4411Bb67D64Ca)] = 1;
        reserve[address(0x842Ea67EF65D5Ee09f94F38860bef65949411B26)] = 1;
        reserve[address(0xF4568b53430B20b9C413d3f4eAbF0e67822ec37E)] = 1;
        reserve[address(0xdA28431f8c060E2a971209e29d0Ad1dFcC921746)] = 1;
        reserve[address(0x0C1b65A058ecF59CE5F63133712F4632a6E41e56)] = 1;
        reserve[address(0x362c73a2A17b6e1D94056bf050b8BB37bb0cb0e5)] = 1;
        reserve[address(0x5E231b0b9D489beEECF5B18D8d10377a9A01BE54)] = 1;
        reserve[address(0x7EA4066237fFD02759abD20e9Cf6f8768b2D835D)] = 1;
        reserve[address(0x762cd5cf73c0d8821E7b95De15D326ceC479dEcc)] = 1;
        reserve[address(0xa23b32C453e29079a826d3B8a3843a9eF9472A21)] = 1;
        reserve[address(0xd8fbD6a7F35b8af94910259D103dC261AF913B3C)] = 1;
        reserve[address(0x71915c85CFC6Fe52B00F63FD65c7b6d16a08b578)] = 1;
        reserve[address(0x023192b16a986dC4e5cB76c1ec2F4D2De4D08462)] = 1;
        reserve[address(0x9281f4d044a1C67E7647148ed5aCE6D63221315A)] = 1;
        reserve[address(0x44990d2bAEbc1917796Ac59097BC089A417582Ec)] = 1;
        reserve[address(0xA6C315021A2FB0C2f61dd7978714916304ff2007)] = 1;
        reserve[address(0xED2f402d5a4AC5b0A3fc14AC6d37F8c340410374)] = 1;
        reserve[address(0x8818D0C53d6F27CCFBEd2690C7A65fdB1D94f351)] = 1;
        reserve[address(0x27c5932eE1B0873e67279066bE914d46203fC738)] = 1;
        reserve[address(0x22115D784e9021Eadd07079d35ED0f5c87F78e02)] = 1;
        reserve[address(0x2A41282434f89f5bbF272B1091A7A0ceFD22Ccd8)] = 1;
        reserve[address(0x1c8181a1be395Ee958af164a4099d252494f3616)] = 1;
        reserve[address(0x95312CA698F23972A639c2c21e2885F390C0bb51)] = 1;
        reserve[address(0xdAd3fD6C9Fb0c2b56228e58AE191B62bFB1BEC83)] = 1;
        reserve[address(0xb85fcca7a189E0aEce9994dBEbfCd5be386e16b1)] = 1;
        reserve[address(0x75B772F2Bb4F47FBb31B14d6e034B81CB0a03730)] = 1;
        reserve[address(0x0c54abEF3D48C6c249006Bc01c88e20c4C4Cf35C)] = 1;
        reserve[address(0x09Bfa99BEcCBE7f815480219726Cd8e96b8a8F76)] = 1;
        reserve[address(0x728a8A6353Ee822481A83E9CC7B408cC8ac24f8e)] = 1;
        reserve[address(0x524fdea5EFe5db530E3a2b75cbF8D1C63A875BDD)] = 1;
        reserve[address(0xbFe8d5aBf248081FE03236E31EFdfdFE1562F9a2)] = 1;
        reserve[address(0x7C9285642F0ce18f7D44FD6eF89Fe94d0C298174)] = 1;
        reserve[address(0x9F1597681CC4C4dfD91ce5Fe9033aa39E7d7AD3e)] = 1;
        reserve[address(0x0e63d7E489363028E23a6da417D5767F9E399246)] = 1;
        reserve[address(0x8457513abdf710E69F0fb357d82Cacf048296f61)] = 1;
        reserve[address(0xA30eB1520cFA84F31f2021621d5Ae27857D5BBf6)] = 1;
        reserve[address(0xCba19876EE8225CC54A1b5B3DcC660b40d2dcd66)] = 1;
        reserve[address(0xbf4CC9EbfC3d71dA79Bf5245d408aDc27A9F7976)] = 1;
        reserve[address(0x884B906BE45340F967f7234AC63d854C6CC11f6f)] = 1;
        reserve[address(0xF668002aa08bD66cE407D9d45e82484f56823566)] = 1;
        reserve[address(0x17853cbED35F3153DC144D709e01575cb75d326b)] = 1;
        reserve[address(0xB9BEA0554B3CA76660712D6B525CBFbc101fEC1d)] = 1;
        reserve[address(0x96b160553Ee1f29CC982087e5d91CB94a519339A)] = 1;
        reserve[address(0xE760D893b1b9C007372EcDC931Aad10D08cf5aEb)] = 1;
        reserve[address(0x9765d4090dbf9bb5d61453795396840eCA909598)] = 1;
        reserve[address(0x0903b02Db2Adac11Df0247c1C38bF6C3ce782DB9)] = 1;
        reserve[address(0xb5556acb2EE4f6189032525F32cdaAf9ED7d3b84)] = 1;
        reserve[address(0xddEaEC88e4a183F5aCC7d7cFd6f69e300Bb6D455)] = 1;
        reserve[address(0x1B70A331CE1c01b86Ec986028191F7E41601abfd)] = 1;
        reserve[address(0xBEEA79Aa02534D1a7466cb49447B62308750C95e)] = 1;
        reserve[address(0x1CFda1C3e1864bAA7eAB936ad68BdFe1966c3c51)] = 1;
        reserve[address(0x39eBE8d2EEdA70f6a2701fF01E9EC07A29e4774a)] = 1;
        reserve[address(0xA3B5C163cbbB0C8364B62111d00A557C623470e4)] = 1;
        reserve[address(0xaea40F4a9897AEBC8775F964A6E3000BA258881C)] = 1;
        reserve[address(0xB5ED0864B96E661400980d4e72993815cEA8eCD5)] = 1;
        reserve[address(0x14dE2c6B28e0c4A06E140e7c91604FAeeEa350Af)] = 1;
        reserve[address(0x30ae0FfA2A822259D29D25327bb357D5aab9F1DA)] = 1;
        reserve[address(0xa958e6E90f570cA0293A01CdBbb6997De5848850)] = 1;
        reserve[address(0xFaEAE775e14493A8cc6c2582d588e20AFF1848e1)] = 1;
        reserve[address(0x9a116b9B8531d83c2e1Ac61BAbd4Fdf622b2dbb9)] = 1;
        reserve[address(0xd4Db6d8Ef756141DE0D838808Ddb8fFCd847D7ff)] = 1;
        reserve[address(0x4d4da657fDA69460f8083120089aE066F3655108)] = 1;
        reserve[address(0xE835e921e2b4fdfC9f18426B281ee7b9f173B31D)] = 1;
        reserve[address(0x203Bc267a4657ae5EE774Eb35cec32FAa2C0bC1f)] = 1;
        reserve[address(0xC2fA34a6FCb085F5E0295f233FAE7Fc90FBAfe85)] = 1;
        reserve[address(0x15F7320adb990020956D29Edb6ba17f3D468001e)] = 1;
        reserve[address(0xC0d5445b157bDcCCa8A3FfE6761925Cf9fc97Df7)] = 1;
        reserve[address(0x5eF89F92388E309F795081e0dd83C82011eD2546)] = 1;
        reserve[address(0x87773aACcABe6928fF0F764fe2887F41929FA855)] = 1;
        reserve[address(0xcBC49344c8802a532B8DbFDB5d9B9980D7e30702)] = 1;
        reserve[address(0xAe051E32Df2Facb1B1CaE583fD10481b6deaAc73)] = 1;
        reserve[address(0x0925D347f811d264879271D2905f54309EAcCB93)] = 1;
        reserve[address(0x2224924613e0901B9E2b2Ae5f22eBd8782AB2F1f)] = 1;
        reserve[address(0xe705F499F55f18197FbE15FaE4E315d6BA35Be5e)] = 1;
        reserve[address(0x54196238400305778bFf5Fa200Ee1896f6A9d5C2)] = 1;
        reserve[address(0xAe48F64abeaA92618b8180c0FD33CAEBfEd42f2b)] = 1;
        reserve[address(0x69661a09bAc77454Bf74C86F893817F67385f62c)] = 1;
        reserve[address(0x77a34e4Ed9DC35e1c96a5453328928be8E9E0D05)] = 1;
        reserve[address(0xdfbDB9b9174862eCB1010C39ca72409C1D63B18F)] = 1;
        reserve[address(0xa7485C99A2909a886F59b87B47DeB613860b8bFc)] = 1;
        reserve[address(0x05ce5d83371872CA8D6C4319170b452898fDA3f4)] = 1;
        reserve[address(0x11F9e23955397497d153C87878f603B422Ee61c2)] = 1;
        reserve[address(0x851F9351F86a8969d40863046345f4FcDfA7bf9b)] = 1;
        reserve[address(0xa2140e9c5eA863Da58521737e566D27087E198c9)] = 1;
        reserve[address(0x6AfB1d981F31f765412800642c196288215Bc7fD)] = 1;
        reserve[address(0x69C38C760634C23F3a3D9bE441ecCbD2e50e5F73)] = 1;
        reserve[address(0x8F1C7dF143C66420b21c7fbbD01186b9ec821531)] = 1;
        reserve[address(0x05c83a1e632F1Fe3E00B144AeDed275c2Ee47995)] = 1;
        reserve[address(0xB4188367021173e8e352E90152566cA3bd939fBa)] = 1;
        reserve[address(0x8a5d546D0D9269770FABA8cFc2D8A84fCD93C231)] = 1;
        reserve[address(0xE1CCd64C452096538B07fC68E89196fB6309e01C)] = 1;
        reserve[address(0xCeDabD24F084df49A1ABb56783D404c943e503dB)] = 1;
        reserve[address(0x5eB5a9b88772E15672c380443CCe3A1066dA8d9e)] = 1;
        reserve[address(0x1674BF0498D726e034e893eC6da8Fa3D0db503D6)] = 1;
        reserve[address(0xdEF769bcf57dF5a2400ab5f9DD3AaD5981079689)] = 1;
        reserve[address(0xBb071066a805e1CF8552225eb62bB69CA6a950a5)] = 1;
        reserve[address(0xA72BC016Be8F075Fdf24964FD62c422101574bb4)] = 1;
        reserve[address(0x2Db3d4DF23069A937ddd42F5fb5Cab24032CA007)] = 1;
        reserve[address(0xC6dC654B5aa7969A24c7e4442a52E61FB8b24827)] = 1;
        reserve[address(0xEc2f189C25FD6E8deDD8Da54856d148F2ad1a0eD)] = 1;
        reserve[address(0xF6c7439B601776E97c6dEed8394aFBF3B553Eb2a)] = 1;
        reserve[address(0x8a4fFBcbCb3eabDbA21be5f23DD00C42bfC10440)] = 1;
        reserve[address(0x9b6faDedcbE50876eaB12F5109E4C370cb97089E)] = 1;
        reserve[address(0x2Fb5933955f0292e20B5dB15eAeB67C35D246482)] = 1;
        reserve[address(0x4824DC193DCA8Fe6C0bAD6dabBC7385aCff10E53)] = 1;
        reserve[address(0x65565D22279F1F90eAd09A1DfBD4FB1E7D4e707A)] = 1;
        reserve[address(0x357931791284f40765b462aa7AD217ebF82920Cb)] = 1;
        reserve[address(0x021d5ABEA6EFbcD5dBa2C8Ae9237471448Ea0856)] = 1;
        reserve[address(0x946237Dd48b0751D59dF97487ce483A0B27cD2D6)] = 1;
        reserve[address(0xED721dC63328be92A08b6b7D677e11100C945eA9)] = 1;
        reserve[address(0xD7b07B4dcfd4f0A4E0EC73DEdfcF8F6E9Cdd4A84)] = 1;
        reserve[address(0x535fd58A1AE82CcF3935b97347665059C89de636)] = 1;
        reserve[address(0xA733D53C52D8a07Ea28627187A047E7015eF34b1)] = 1;
        reserve[address(0xad3372Cd209550e03AEebA8a756688d6255F94EB)] = 1;
        reserve[address(0x1E506e6af1DCF5633e105AD36FCFe0AC83DCE013)] = 1;
        reserve[address(0xD0611Ec607d26a954Fff1E325A0CD0849D56Fb23)] = 1;
        reserve[address(0x70B8aC6BA517e152299d06Eb7A3FB2ECbbb00C90)] = 1;
        reserve[address(0x38c48591a1865E7824f9cE270c46d9cbD329c9F5)] = 1;
        reserve[address(0x49bbeFaC419e8348B9227e38E8331920Ce06F0ca)] = 1;
        reserve[address(0xF2AAe3991152F43bdB92cb61658a5B53D170036e)] = 1;
        reserve[address(0xc8430556dB46fBB9Ef7875dc3d20bCf93A2B13E8)] = 1;
        reserve[address(0x087e282F6275538Ed99B1E7df165EddEB745f3a6)] = 1;
        reserve[address(0x87661b4740FD1a6ac45a927079E1DB09827dA4bA)] = 1;
        reserve[address(0xF8062Dc3CaB598086d58fA6329e864b6B35C94BC)] = 1;
        reserve[address(0x6f1f500Ee2b486D7755FbdEA0C048672b07dBc73)] = 1;
        reserve[address(0x1427Cc00080f17dD10AA59e629eA3e2de14608c0)] = 1;
        reserve[address(0x38bf30d3F1528BBD2BB8A242E9a0F4405affb8d0)] = 1;
        reserve[address(0xB3479AC22aB13a9d359c1AA0fdf6F7e3D39A207C)] = 1;
        reserve[address(0x256B4Fb1ad00A7E6f130bEFFa33e435eb1F65b74)] = 1;
        reserve[address(0x07Fd1A1a634c35fdbE6b1f44F002b31E7c4e10D9)] = 1;
        reserve[address(0x9D3ff4d7C229635a3B5708664C728DAd30ADABd0)] = 1;
        reserve[address(0xF1fCfFBA10de3Cd282baf4b6E49393Ba03DD3Be7)] = 1;
        reserve[address(0x5D7dcb9F59d4E1Cf96463A72e866966149df1552)] = 1;
        reserve[address(0x667e13efA1a4ecDAD657128241045c1c26fE4645)] = 1;
        reserve[address(0xeF7655142d0c0502F0Cfe3B4e2b01D924C440028)] = 1;
        reserve[address(0xAc8C96600E469113C791F45f05FE12Cfc7D7438e)] = 1;
        reserve[address(0x4b05d8d17182E7d66D429A7981FA4330C4707b5c)] = 1;
        reserve[address(0x8BE13FF71224ad525f0474553Aa7f8621B856bD4)] = 1;
        reserve[address(0x6Db5E720a947c7Cc2f3FcaD4Cf5058402FC456c6)] = 1;
        reserve[address(0xFacC9E25E2cB511a51E980e2d0BEC5Fe6c62868E)] = 1;
        reserve[address(0xf94C3fD88Bae02B97aA6ed60Fbb3E569625C357B)] = 1;
        reserve[address(0x550e970E31A45b06dF01a00b1C89A478D4d5e00A)] = 1;
        reserve[address(0x0764dc400C280FF2B6D1F0582969C0c668271340)] = 1;
        reserve[address(0x300736a2C7eACaC5524930afF74779EcB2C775ED)] = 1;
        reserve[address(0x303c36E5c473bF36Bf643DeBEb61C68f780641Aa)] = 1;
        reserve[address(0x8011F9Bb55e6BEeC05BcE1e64Ff669eAC33afDa4)] = 1;
        reserve[address(0x1e77dC8B1a6a9b34487133bbce189412697131dE)] = 1;
        reserve[address(0x6FFCaD0e1BA3A8be68F0b8449CA1430173a3c451)] = 1;
        reserve[address(0xF13CCD4013DA3dc7b2dfbB2397dc9F5db8C1A44D)] = 1;
        reserve[address(0x56876f3F31582d65A9B99F22a7c2c84f0CCca723)] = 1;
        reserve[address(0x700643004BA7Cb17B824C6808A4196a06eB25E4b)] = 1;
        reserve[address(0x8cf85548aE57a91f8132D0831634c0fceF06e505)] = 1;
        reserve[address(0xa3E40b15F30A4A3D73C1d8435EE25041b05D1daA)] = 1;
        reserve[address(0x4F234aE48179a51E02b0566E885fcc8a1487dB02)] = 1;
        reserve[address(0x389458f93E387fC568Ca4568c231a64FFD0456d2)] = 1;
        reserve[address(0xFd4Ae32D49c48C62b3b3CEaAf588b7C1315F25B1)] = 1;
        reserve[address(0xC864B0Ab18B0ED0BeAb72F915Bacb12971FDb73a)] = 1;
        reserve[address(0x3401eA5a8d91c5e3944962C0148b08AC4A77f153)] = 1;
        reserve[address(0x0cE1e7CAFE72B4d48de78a2593d9f251345aE740)] = 1;
        reserve[address(0x0D30d188Ffb8e75C94d63e99609839f71752A761)] = 1;
        reserve[address(0x95e50880CE49E0F23339886cDeC174840eFFb6e0)] = 1;
        reserve[address(0xa6c3522C42bc46c0e4f7A20091ccc2fdB26f7303)] = 1;
        reserve[address(0x899ab9Bb40eF24a944856840739Aa99619B986F2)] = 1;
        reserve[address(0x2eE0485f71764bcD2062A84d9455688c581B90f8)] = 1;
        reserve[address(0xf22d36502069B9381b51EeBC1c4820C4Bebc660c)] = 1;
        reserve[address(0x1eAcc1960Efe0eDDA5f530A78071d2CF461616f4)] = 1;
        reserve[address(0xE707E35B08B6201a51Ab3B83d1c9Faeb816f8750)] = 1;
        reserve[address(0x79b66C1289BF77BD178B14bF33FF45b8aA4b692e)] = 1;
        reserve[address(0x9440505f4D2A69f3b4D2e90C9Bcc51E526bD7574)] = 1;
        reserve[address(0x6f4EfAf5429703649BEAa30da7e934bB42993C47)] = 1;
        reserve[address(0xa1B094E52401a9636e06EdDAcB2A772cEF671781)] = 1;
        reserve[address(0x65a78aBa0A3544c19F6503A7D39d8E45f85c60d0)] = 1;
        reserve[address(0xe2B5942e014215EB42Ecd00d5779a039418cF51f)] = 1;
        reserve[address(0x94eF50aFAc9c04572813F36Fb8D676EB400de278)] = 1;
        reserve[address(0x93DfaA13b5ae1Bf192663FB79b035C495394DD2C)] = 1;
        reserve[address(0x288E55B2F3AF18e051b3D4840c04B24C40867E32)] = 1;
        reserve[address(0x18F197C5B2FceA38B347811f958A6E54F4be9c81)] = 1;
        reserve[address(0x81AeB18677c608C05e9c4848320cad9a2A7fa196)] = 1;
        reserve[address(0x7d1FB15fc3b1Eda42029169fd0F6Eb576298167C)] = 1;
    } 

    function redeem(address to) public {
        require(!isRedemptionPaused, "Redemption is paused.");
        uint _amountToSend = reserve[to];
        require(_amountToSend > 0, "No tokens to redeem");
        reserve[to] = 0;
        totalAvailable -= _amountToSend;
        _mint(to, 1, _amountToSend, "");
    }

    function available(address to) public view returns (uint) {
        return reserve[to];
    }

    function setRedemptionPaused(bool isRedemptionPaused_) public onlyOwner{
        isRedemptionPaused = isRedemptionPaused_;
    }
}

File 2 of 10 : Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "../utils/Context.sol";
/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

File 3 of 10 : ERC1155.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "./IERC1155.sol";
import "./IERC1155Receiver.sol";
import "./extensions/IERC1155MetadataURI.sol";
import "../../utils/Address.sol";
import "../../utils/Context.sol";
import "../../utils/introspection/ERC165.sol";

/**
 * @dev Implementation of the basic standard multi-token.
 * See https://eips.ethereum.org/EIPS/eip-1155
 * Originally based on code by Enjin: https://github.com/enjin/erc-1155
 *
 * _Available since v3.1._
 */
contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI {
    using Address for address;

    // Mapping from token ID to account balances
    mapping (uint256 => mapping(address => uint256)) private _balances;

    // Mapping from account to operator approvals
    mapping (address => mapping(address => bool)) private _operatorApprovals;

    // Used as the URI for all token types by relying on ID substitution, e.g. https://token-cdn-domain/{id}.json
    string private _uri;

    /**
     * @dev See {_setURI}.
     */
    constructor (string memory uri_) {
        _setURI(uri_);
    }

    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {
        return interfaceId == type(IERC1155).interfaceId
            || interfaceId == type(IERC1155MetadataURI).interfaceId
            || super.supportsInterface(interfaceId);
    }

    /**
     * @dev See {IERC1155MetadataURI-uri}.
     *
     * This implementation returns the same URI for *all* token types. It relies
     * on the token type ID substitution mechanism
     * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].
     *
     * Clients calling this function must replace the `\{id\}` substring with the
     * actual token type ID.
     */
    function uri(uint256) public view virtual override returns (string memory) {
        return _uri;
    }

    /**
     * @dev See {IERC1155-balanceOf}.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function balanceOf(address account, uint256 id) public view virtual override returns (uint256) {
        require(account != address(0), "ERC1155: balance query for the zero address");
        return _balances[id][account];
    }

    /**
     * @dev See {IERC1155-balanceOfBatch}.
     *
     * Requirements:
     *
     * - `accounts` and `ids` must have the same length.
     */
    function balanceOfBatch(
        address[] memory accounts,
        uint256[] memory ids
    )
        public
        view
        virtual
        override
        returns (uint256[] memory)
    {
        require(accounts.length == ids.length, "ERC1155: accounts and ids length mismatch");

        uint256[] memory batchBalances = new uint256[](accounts.length);

        for (uint256 i = 0; i < accounts.length; ++i) {
            batchBalances[i] = balanceOf(accounts[i], ids[i]);
        }

        return batchBalances;
    }

    /**
     * @dev See {IERC1155-setApprovalForAll}.
     */
    function setApprovalForAll(address operator, bool approved) public virtual override {
        require(_msgSender() != operator, "ERC1155: setting approval status for self");

        _operatorApprovals[_msgSender()][operator] = approved;
        emit ApprovalForAll(_msgSender(), operator, approved);
    }

    /**
     * @dev See {IERC1155-isApprovedForAll}.
     */
    function isApprovedForAll(address account, address operator) public view virtual override returns (bool) {
        return _operatorApprovals[account][operator];
    }

    /**
     * @dev See {IERC1155-safeTransferFrom}.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    )
        public
        virtual
        override
    {
        require(to != address(0), "ERC1155: transfer to the zero address");
        require(
            from == _msgSender() || isApprovedForAll(from, _msgSender()),
            "ERC1155: caller is not owner nor approved"
        );

        address operator = _msgSender();

        _beforeTokenTransfer(operator, from, to, _asSingletonArray(id), _asSingletonArray(amount), data);

        uint256 fromBalance = _balances[id][from];
        require(fromBalance >= amount, "ERC1155: insufficient balance for transfer");
        _balances[id][from] = fromBalance - amount;
        _balances[id][to] += amount;

        emit TransferSingle(operator, from, to, id, amount);

        _doSafeTransferAcceptanceCheck(operator, from, to, id, amount, data);
    }

    /**
     * @dev See {IERC1155-safeBatchTransferFrom}.
     */
    function safeBatchTransferFrom(
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    )
        public
        virtual
        override
    {
        require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");
        require(to != address(0), "ERC1155: transfer to the zero address");
        require(
            from == _msgSender() || isApprovedForAll(from, _msgSender()),
            "ERC1155: transfer caller is not owner nor approved"
        );

        address operator = _msgSender();

        _beforeTokenTransfer(operator, from, to, ids, amounts, data);

        for (uint256 i = 0; i < ids.length; ++i) {
            uint256 id = ids[i];
            uint256 amount = amounts[i];

            uint256 fromBalance = _balances[id][from];
            require(fromBalance >= amount, "ERC1155: insufficient balance for transfer");
            _balances[id][from] = fromBalance - amount;
            _balances[id][to] += amount;
        }

        emit TransferBatch(operator, from, to, ids, amounts);

        _doSafeBatchTransferAcceptanceCheck(operator, from, to, ids, amounts, data);
    }

    /**
     * @dev Sets a new URI for all token types, by relying on the token type ID
     * substitution mechanism
     * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].
     *
     * By this mechanism, any occurrence of the `\{id\}` substring in either the
     * URI or any of the amounts in the JSON file at said URI will be replaced by
     * clients with the token type ID.
     *
     * For example, the `https://token-cdn-domain/\{id\}.json` URI would be
     * interpreted by clients as
     * `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`
     * for token type ID 0x4cce0.
     *
     * See {uri}.
     *
     * Because these URIs cannot be meaningfully represented by the {URI} event,
     * this function emits no events.
     */
    function _setURI(string memory newuri) internal virtual {
        _uri = newuri;
    }

    /**
     * @dev Creates `amount` tokens of token type `id`, and assigns them to `account`.
     *
     * Emits a {TransferSingle} event.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - If `account` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
     * acceptance magic value.
     */
    function _mint(address account, uint256 id, uint256 amount, bytes memory data) internal virtual {
        require(account != address(0), "ERC1155: mint to the zero address");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, address(0), account, _asSingletonArray(id), _asSingletonArray(amount), data);

        _balances[id][account] += amount;
        emit TransferSingle(operator, address(0), account, id, amount);

        _doSafeTransferAcceptanceCheck(operator, address(0), account, id, amount, data);
    }

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.
     *
     * Requirements:
     *
     * - `ids` and `amounts` must have the same length.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
     * acceptance magic value.
     */
    function _mintBatch(address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data) internal virtual {
        require(to != address(0), "ERC1155: mint to the zero address");
        require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, address(0), to, ids, amounts, data);

        for (uint i = 0; i < ids.length; i++) {
            _balances[ids[i]][to] += amounts[i];
        }

        emit TransferBatch(operator, address(0), to, ids, amounts);

        _doSafeBatchTransferAcceptanceCheck(operator, address(0), to, ids, amounts, data);
    }

    /**
     * @dev Destroys `amount` tokens of token type `id` from `account`
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens of token type `id`.
     */
    function _burn(address account, uint256 id, uint256 amount) internal virtual {
        require(account != address(0), "ERC1155: burn from the zero address");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, account, address(0), _asSingletonArray(id), _asSingletonArray(amount), "");

        uint256 accountBalance = _balances[id][account];
        require(accountBalance >= amount, "ERC1155: burn amount exceeds balance");
        _balances[id][account] = accountBalance - amount;

        emit TransferSingle(operator, account, address(0), id, amount);
    }

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}.
     *
     * Requirements:
     *
     * - `ids` and `amounts` must have the same length.
     */
    function _burnBatch(address account, uint256[] memory ids, uint256[] memory amounts) internal virtual {
        require(account != address(0), "ERC1155: burn from the zero address");
        require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, account, address(0), ids, amounts, "");

        for (uint i = 0; i < ids.length; i++) {
            uint256 id = ids[i];
            uint256 amount = amounts[i];

            uint256 accountBalance = _balances[id][account];
            require(accountBalance >= amount, "ERC1155: burn amount exceeds balance");
            _balances[id][account] = accountBalance - amount;
        }

        emit TransferBatch(operator, account, address(0), ids, amounts);
    }

    /**
     * @dev Hook that is called before any token transfer. This includes minting
     * and burning, as well as batched variants.
     *
     * The same hook is called on both single and batched variants. For single
     * transfers, the length of the `id` and `amount` arrays will be 1.
     *
     * Calling conditions (for each `id` and `amount` pair):
     *
     * - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * of token type `id` will be  transferred to `to`.
     * - When `from` is zero, `amount` tokens of token type `id` will be minted
     * for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens of token type `id`
     * will be burned.
     * - `from` and `to` are never both zero.
     * - `ids` and `amounts` have the same, non-zero length.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address operator,
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    )
        internal
        virtual
    { }

    function _doSafeTransferAcceptanceCheck(
        address operator,
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    )
        private
    {
        if (to.isContract()) {
            try IERC1155Receiver(to).onERC1155Received(operator, from, id, amount, data) returns (bytes4 response) {
                if (response != IERC1155Receiver(to).onERC1155Received.selector) {
                    revert("ERC1155: ERC1155Receiver rejected tokens");
                }
            } catch Error(string memory reason) {
                revert(reason);
            } catch {
                revert("ERC1155: transfer to non ERC1155Receiver implementer");
            }
        }
    }

    function _doSafeBatchTransferAcceptanceCheck(
        address operator,
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    )
        private
    {
        if (to.isContract()) {
            try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, amounts, data) returns (bytes4 response) {
                if (response != IERC1155Receiver(to).onERC1155BatchReceived.selector) {
                    revert("ERC1155: ERC1155Receiver rejected tokens");
                }
            } catch Error(string memory reason) {
                revert(reason);
            } catch {
                revert("ERC1155: transfer to non ERC1155Receiver implementer");
            }
        }
    }

    function _asSingletonArray(uint256 element) private pure returns (uint256[] memory) {
        uint256[] memory array = new uint256[](1);
        array[0] = element;

        return array;
    }
}

File 4 of 10 : Context.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

File 5 of 10 : IERC1155.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "../../utils/introspection/IERC165.sol";

/**
 * @dev Required interface of an ERC1155 compliant contract, as defined in the
 * https://eips.ethereum.org/EIPS/eip-1155[EIP].
 *
 * _Available since v3.1._
 */
interface IERC1155 is IERC165 {
    /**
     * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`.
     */
    event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);

    /**
     * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all
     * transfers.
     */
    event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values);

    /**
     * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to
     * `approved`.
     */
    event ApprovalForAll(address indexed account, address indexed operator, bool approved);

    /**
     * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.
     *
     * If an {URI} event was emitted for `id`, the standard
     * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value
     * returned by {IERC1155MetadataURI-uri}.
     */
    event URI(string value, uint256 indexed id);

    /**
     * @dev Returns the amount of tokens of token type `id` owned by `account`.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function balanceOf(address account, uint256 id) external view returns (uint256);

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.
     *
     * Requirements:
     *
     * - `accounts` and `ids` must have the same length.
     */
    function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids) external view returns (uint256[] memory);

    /**
     * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,
     *
     * Emits an {ApprovalForAll} event.
     *
     * Requirements:
     *
     * - `operator` cannot be the caller.
     */
    function setApprovalForAll(address operator, bool approved) external;

    /**
     * @dev Returns true if `operator` is approved to transfer ``account``'s tokens.
     *
     * See {setApprovalForAll}.
     */
    function isApprovedForAll(address account, address operator) external view returns (bool);

    /**
     * @dev Transfers `amount` tokens of token type `id` from `from` to `to`.
     *
     * Emits a {TransferSingle} event.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}.
     * - `from` must have a balance of tokens of type `id` of at least `amount`.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
     * acceptance magic value.
     */
    function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes calldata data) external;

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.
     *
     * Emits a {TransferBatch} event.
     *
     * Requirements:
     *
     * - `ids` and `amounts` must have the same length.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
     * acceptance magic value.
     */
    function safeBatchTransferFrom(address from, address to, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data) external;
}

File 6 of 10 : IERC1155Receiver.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "../../utils/introspection/IERC165.sol";

/**
 * @dev _Available since v3.1._
 */
interface IERC1155Receiver is IERC165 {

    /**
        @dev Handles the receipt of a single ERC1155 token type. This function is
        called at the end of a `safeTransferFrom` after the balance has been updated.
        To accept the transfer, this must return
        `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))`
        (i.e. 0xf23a6e61, or its own function selector).
        @param operator The address which initiated the transfer (i.e. msg.sender)
        @param from The address which previously owned the token
        @param id The ID of the token being transferred
        @param value The amount of tokens being transferred
        @param data Additional data with no specified format
        @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed
    */
    function onERC1155Received(
        address operator,
        address from,
        uint256 id,
        uint256 value,
        bytes calldata data
    )
        external
        returns(bytes4);

    /**
        @dev Handles the receipt of a multiple ERC1155 token types. This function
        is called at the end of a `safeBatchTransferFrom` after the balances have
        been updated. To accept the transfer(s), this must return
        `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))`
        (i.e. 0xbc197c81, or its own function selector).
        @param operator The address which initiated the batch transfer (i.e. msg.sender)
        @param from The address which previously owned the token
        @param ids An array containing ids of each token being transferred (order and length must match values array)
        @param values An array containing amounts of each token being transferred (order and length must match ids array)
        @param data Additional data with no specified format
        @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed
    */
    function onERC1155BatchReceived(
        address operator,
        address from,
        uint256[] calldata ids,
        uint256[] calldata values,
        bytes calldata data
    )
        external
        returns(bytes4);
}

File 7 of 10 : IERC1155MetadataURI.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "../IERC1155.sol";

/**
 * @dev Interface of the optional ERC1155MetadataExtension interface, as defined
 * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].
 *
 * _Available since v3.1._
 */
interface IERC1155MetadataURI is IERC1155 {
    /**
     * @dev Returns the URI for token type `id`.
     *
     * If the `\{id\}` substring is present in the URI, it must be replaced by
     * clients with the actual token type ID.
     */
    function uri(uint256 id) external view returns (string memory);
}

File 8 of 10 : Address.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

File 9 of 10 : ERC165.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "./IERC165.sol";

/**
 * @dev Implementation of the {IERC165} interface.
 *
 * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
 * for the additional interface id that will be supported. For example:
 *
 * ```solidity
 * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
 *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
 * }
 * ```
 *
 * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.
 */
abstract contract ERC165 is IERC165 {
    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}

File 10 of 10 : IERC165.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
interface IERC165 {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRedemptionPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"redeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isRedemptionPaused_","type":"bool"}],"name":"setRedemptionPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAvailable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b506040518060600160405280603f81526020016200a24b603f91396200003d8162006f4260201b60201c565b5060006200005062006f5e60201b60201c565b905080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101f46004819055506064600660007360fd35191ffa774e40934efb8ed34b2ec42da32073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550601160066000735b20783f4baabd33bb53dd77c9b0459f5701e36a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600a600660007369bd682c5fffa4fff2b6d64427aed1ae234f69e273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600a6006600073bc719aac21abf284a1f1a901efc17c0cb194778273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600a6006600073510437a6aa1400b97b32d0801872963d183f7a0773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600a6006600073ef3867cb3d3baf773ec288ca93618bbc521df57973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060076006600073e495c36e756ba677d5ae8fb868f8c8a41cc5161173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506007600660007320335c504a4f0d8db934e9f77a67b55e6ae8e1e173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600680600073c54fcbc43f36124266ccc07965d4352cf6da19e973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506006806000738c8f1be5dbdfa432bbfb33d6a13779e889d8ccf973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600680600073aa5146397cffac091eb64b21b7950f332eccfd0073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506005600660007379cf2507732df36c6514dcdc1cfb20ae83cf5b5d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060056006600073e0af6f8f3090687918212037508ffecbb924377f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060056006600073a7b9744287f8d48e56adaefa21ea680e5c13a4d473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060056006600073c8ed3c2d1509fcf3a3c97c68de3dba66381d337c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060056006600073fe274ff2846a414e690606c2ed2ccc4ad6bb9c5373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060056006600073a4f0670468dfb825e6c2b5571e2c97d0844190a373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060056006600073be5d6b71915a2b86d007f51432f5a7911619623673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600460066000733d6a89c8751a45dd577a4c1f3b34e71c5823619373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060046006600073c05c4f2bf8c629d6f9f674e6949b6fe54832764e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060046006600073d88d4f99adc42a57e5949c94fdd984f43811f34473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600360066000738ff03f9a8bed1bf351310d72c0364c2da024f14973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060036006600073d77d92f3c97b5ce6430560bd1ab298e82ed4e05873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600360066000735e5ba665bfaacc1e0eead7057ce8251298a6043973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600360066000730c93929360ff8b46a46c2de1c8edea9541b78eb373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600260066000733dd85df5a47b2b4b043a0f82555bc9a3dbf7eb5a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060026006600073dc0b3127a71367227311f02fe4dda2a6ccdbae7873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060026006600073ef8e27bad0f2eee4e691e5b1eaab3c019e36955773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600260066000735bfdf0cfc4ade055f4aa63c31d3b2558e3a5fd8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506002600660007353722a32fddda871f35ef628b252d349744d4b7173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060026006600073c2e7c3a5675ee1308d56f5e4fd614007e0fcc63b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060026006600073b577aae0c6d9d788d5678a594a0274c2b8942a4873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060026006600073d0f716638fd372a5ee3656b512eda6691907c3c473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060026006600073193a43a5157382dc877b78195b9abbdcca25430273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060026006600073557c60995797fa7b47be105227a2e46148d8575073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060026006600073e6c9d15db8957bee5ab618b64a33731f2e35ea2373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600260066000739127c9221b22ea3789c90383284c72dcd7d9b9fb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060026006600073d05d440a07cd28f0b9fba8cb698f86fe4c8f11ee73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506002600660007363c696931d3d3fd7cd83472febd193488266660d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060026006600073ddf14fa3e1bf3881cd6ec491f0ccf3d1389a78d473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060026006600073e6b4eafd769f2d29ec4bd2f197e393ddb7d75b8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506002600660007389bde316a5aa59d9995fc82b217308abae60257c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506002600660007397594a1c1def0d71cb0d7bae3af27a1c3c97128273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073b066a5b94c4d1c7c06610d1628375e5e4b265de573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000733b05429741445d71a45accb35137cd0ae18686d073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073a4fb10666494d1d99ea305065a623401b48aceb873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007337fd216b2e06e5808437c8d22aac3ae82fd4b72473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073bb0fa986710dbfadf64d8e3c16b93db06b35113673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000732422d8f3c3b84ff83475a85b17d1d860d8bba7f373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000732d36fcb71196beff330a07197a78d87bd1447b5873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073ff0f2decd8b5ef4a467510c353d1b56bfbfbf3c573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073e15090dab6c013da9a24fd7c9028460016dd53d873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073af469c4a0914938e6149cf621c54fb4b1ec0c20273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000735a3fc01752c6f620ec7bc47803ebe53a5abc347373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073929faafacb9f11cfdf6294b44e08099f118dfa6f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073e5d009bbce5a5d7ab9c6c2b1b0a56f9b98297cff73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073db86848c3e7fa88dd274ad28b826a8ba963af24c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000732eea4706f85b9a2d5dd9e9ff007f27c07443eab173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073514fc379b4ae674f74dac2a266aff608a9b6507f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073802debc52e025461a592069f05a3df386ee6718773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073376ffeff9820826a564a1ba05a464b992386241873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073a6e59b844891e619801b298f4f0af52054513a3c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073028134db627930c9a355261c83b86e2b4015230473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000731b640c003d3f8bba7ad69c9121ccbc94203eb3c473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073ff1697cd18f03242ea521a80334a9060f0c25c7a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073d48f8df9e87c7e409072a53c6cc895350be5567f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007380771c740f659760c9423f82110c03087c21cbe873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000739b059f4d2199e73aa86f8938167a1a6067474cf473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000735fd2c02689d138547b7b1b9e7d9a309d5a03edcd73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000738719cc70152c03b0282216f4b97051467b2654ec73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000735e65605476b9deabebd83a9566716318f75bf78873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000734032ab8d5cced1444240c7b973f36d712981fb0073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073141ca54db6f8277917e0554b30f2b3270f65eb6773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073a32173ebb0791338fa7d302c7257b2baf1cff5ea73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073d19956cfea7c274d9e92d0e8ed54b962f03123e373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000735308685f6bbb6b56464e7c3b028ecc94ba6f830a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073c168a501dbbb91630a59fe30bdd40259dc2ef62a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000739de6405c0c7512ee94bcb79b860668a52aa7fad273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000734bfbfad0c46bf22e5b053963007605cb0618de5573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007395fdd3157edae1f77e5e65cd269018353938a58573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000735e59e30c70b9c68e78febaa510b4411bb67d64ca73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073842ea67ef65d5ee09f94f38860bef65949411b2673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073f4568b53430b20b9c413d3f4eabf0e67822ec37e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073da28431f8c060e2a971209e29d0ad1dfcc92174673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000730c1b65a058ecf59ce5f63133712f4632a6e41e5673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073362c73a2a17b6e1d94056bf050b8bb37bb0cb0e573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000735e231b0b9d489beeecf5b18d8d10377a9a01be5473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000737ea4066237ffd02759abd20e9cf6f8768b2d835d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073762cd5cf73c0d8821e7b95de15d326cec479decc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073a23b32c453e29079a826d3b8a3843a9ef9472a2173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073d8fbd6a7f35b8af94910259d103dc261af913b3c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007371915c85cfc6fe52b00f63fd65c7b6d16a08b57873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073023192b16a986dc4e5cb76c1ec2f4d2de4d0846273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000739281f4d044a1c67e7647148ed5ace6d63221315a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007344990d2baebc1917796ac59097bc089a417582ec73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073a6c315021a2fb0c2f61dd7978714916304ff200773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073ed2f402d5a4ac5b0a3fc14ac6d37f8c34041037473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000738818d0c53d6f27ccfbed2690c7a65fdb1d94f35173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007327c5932ee1b0873e67279066be914d46203fc73873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007322115d784e9021eadd07079d35ed0f5c87f78e0273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000732a41282434f89f5bbf272b1091a7a0cefd22ccd873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000731c8181a1be395ee958af164a4099d252494f361673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007395312ca698f23972a639c2c21e2885f390c0bb5173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073dad3fd6c9fb0c2b56228e58ae191b62bfb1bec8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073b85fcca7a189e0aece9994dbebfcd5be386e16b173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007375b772f2bb4f47fbb31b14d6e034b81cb0a0373073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000730c54abef3d48c6c249006bc01c88e20c4c4cf35c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007309bfa99beccbe7f815480219726cd8e96b8a8f7673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073728a8a6353ee822481a83e9cc7b408cc8ac24f8e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073524fdea5efe5db530e3a2b75cbf8d1c63a875bdd73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073bfe8d5abf248081fe03236e31efdfdfe1562f9a273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000737c9285642f0ce18f7d44fd6ef89fe94d0c29817473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000739f1597681cc4c4dfd91ce5fe9033aa39e7d7ad3e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000730e63d7e489363028e23a6da417d5767f9e39924673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000738457513abdf710e69f0fb357d82cacf048296f6173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073a30eb1520cfa84f31f2021621d5ae27857d5bbf673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073cba19876ee8225cc54a1b5b3dcc660b40d2dcd6673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073bf4cc9ebfc3d71da79bf5245d408adc27a9f797673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073884b906be45340f967f7234ac63d854c6cc11f6f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073f668002aa08bd66ce407d9d45e82484f5682356673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007317853cbed35f3153dc144d709e01575cb75d326b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073b9bea0554b3ca76660712d6b525cbfbc101fec1d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007396b160553ee1f29cc982087e5d91cb94a519339a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073e760d893b1b9c007372ecdc931aad10d08cf5aeb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000739765d4090dbf9bb5d61453795396840eca90959873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000730903b02db2adac11df0247c1c38bf6c3ce782db973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073b5556acb2ee4f6189032525f32cdaaf9ed7d3b8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073ddeaec88e4a183f5acc7d7cfd6f69e300bb6d45573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000731b70a331ce1c01b86ec986028191f7e41601abfd73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073beea79aa02534d1a7466cb49447b62308750c95e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000731cfda1c3e1864baa7eab936ad68bdfe1966c3c5173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007339ebe8d2eeda70f6a2701ff01e9ec07a29e4774a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073a3b5c163cbbb0c8364b62111d00a557c623470e473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073aea40f4a9897aebc8775f964a6e3000ba258881c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073b5ed0864b96e661400980d4e72993815cea8ecd573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007314de2c6b28e0c4a06e140e7c91604faeeea350af73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007330ae0ffa2a822259d29d25327bb357d5aab9f1da73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073a958e6e90f570ca0293a01cdbbb6997de584885073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073faeae775e14493a8cc6c2582d588e20aff1848e173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000739a116b9b8531d83c2e1ac61babd4fdf622b2dbb973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073d4db6d8ef756141de0d838808ddb8ffcd847d7ff73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000734d4da657fda69460f8083120089ae066f365510873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073e835e921e2b4fdfc9f18426b281ee7b9f173b31d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073203bc267a4657ae5ee774eb35cec32faa2c0bc1f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073c2fa34a6fcb085f5e0295f233fae7fc90fbafe8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007315f7320adb990020956d29edb6ba17f3d468001e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073c0d5445b157bdccca8a3ffe6761925cf9fc97df773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000735ef89f92388e309f795081e0dd83c82011ed254673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007387773aaccabe6928ff0f764fe2887f41929fa85573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073cbc49344c8802a532b8dbfdb5d9b9980d7e3070273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073ae051e32df2facb1b1cae583fd10481b6deaac7373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000730925d347f811d264879271d2905f54309eaccb9373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000732224924613e0901b9e2b2ae5f22ebd8782ab2f1f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073e705f499f55f18197fbe15fae4e315d6ba35be5e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007354196238400305778bff5fa200ee1896f6a9d5c273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073ae48f64abeaa92618b8180c0fd33caebfed42f2b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007369661a09bac77454bf74c86f893817f67385f62c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007377a34e4ed9dc35e1c96a5453328928be8e9e0d0573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073dfbdb9b9174862ecb1010c39ca72409c1d63b18f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073a7485c99a2909a886f59b87b47deb613860b8bfc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007305ce5d83371872ca8d6c4319170b452898fda3f473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007311f9e23955397497d153c87878f603b422ee61c273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073851f9351f86a8969d40863046345f4fcdfa7bf9b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073a2140e9c5ea863da58521737e566d27087e198c973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000736afb1d981f31f765412800642c196288215bc7fd73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007369c38c760634c23f3a3d9be441eccbd2e50e5f7373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000738f1c7df143c66420b21c7fbbd01186b9ec82153173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007305c83a1e632f1fe3e00b144aeded275c2ee4799573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073b4188367021173e8e352e90152566ca3bd939fba73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000738a5d546d0d9269770faba8cfc2d8a84fcd93c23173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073e1ccd64c452096538b07fc68e89196fb6309e01c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073cedabd24f084df49a1abb56783d404c943e503db73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000735eb5a9b88772e15672c380443cce3a1066da8d9e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000731674bf0498d726e034e893ec6da8fa3d0db503d673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073def769bcf57df5a2400ab5f9dd3aad598107968973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073bb071066a805e1cf8552225eb62bb69ca6a950a573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073a72bc016be8f075fdf24964fd62c422101574bb473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000732db3d4df23069a937ddd42f5fb5cab24032ca00773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073c6dc654b5aa7969a24c7e4442a52e61fb8b2482773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073ec2f189c25fd6e8dedd8da54856d148f2ad1a0ed73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073f6c7439b601776e97c6deed8394afbf3b553eb2a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000738a4ffbcbcb3eabdba21be5f23dd00c42bfc1044073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000739b6fadedcbe50876eab12f5109e4c370cb97089e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000732fb5933955f0292e20b5db15eaeb67c35d24648273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000734824dc193dca8fe6c0bad6dabbc7385acff10e5373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007365565d22279f1f90ead09a1dfbd4fb1e7d4e707a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073357931791284f40765b462aa7ad217ebf82920cb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073021d5abea6efbcd5dba2c8ae9237471448ea085673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073946237dd48b0751d59df97487ce483a0b27cd2d673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073ed721dc63328be92a08b6b7d677e11100c945ea973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073d7b07b4dcfd4f0a4e0ec73dedfcf8f6e9cdd4a8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073535fd58a1ae82ccf3935b97347665059c89de63673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073a733d53c52d8a07ea28627187a047e7015ef34b173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073ad3372cd209550e03aeeba8a756688d6255f94eb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000731e506e6af1dcf5633e105ad36fcfe0ac83dce01373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073d0611ec607d26a954fff1e325a0cd0849d56fb2373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007370b8ac6ba517e152299d06eb7a3fb2ecbbb00c9073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007338c48591a1865e7824f9ce270c46d9cbd329c9f573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007349bbefac419e8348b9227e38e8331920ce06f0ca73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073f2aae3991152f43bdb92cb61658a5b53d170036e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073c8430556db46fbb9ef7875dc3d20bcf93a2b13e873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073087e282f6275538ed99b1e7df165eddeb745f3a673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007387661b4740fd1a6ac45a927079e1db09827da4ba73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073f8062dc3cab598086d58fa6329e864b6b35c94bc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000736f1f500ee2b486d7755fbdea0c048672b07dbc7373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000731427cc00080f17dd10aa59e629ea3e2de14608c073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007338bf30d3f1528bbd2bb8a242e9a0f4405affb8d073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073b3479ac22ab13a9d359c1aa0fdf6f7e3d39a207c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073256b4fb1ad00a7e6f130beffa33e435eb1f65b7473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007307fd1a1a634c35fdbe6b1f44f002b31e7c4e10d973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000739d3ff4d7c229635a3b5708664c728dad30adabd073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073f1fcffba10de3cd282baf4b6e49393ba03dd3be773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000735d7dcb9f59d4e1cf96463a72e866966149df155273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073667e13efa1a4ecdad657128241045c1c26fe464573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073ef7655142d0c0502f0cfe3b4e2b01d924c44002873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073ac8c96600e469113c791f45f05fe12cfc7d7438e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000734b05d8d17182e7d66d429a7981fa4330c4707b5c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000738be13ff71224ad525f0474553aa7f8621b856bd473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000736db5e720a947c7cc2f3fcad4cf5058402fc456c673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073facc9e25e2cb511a51e980e2d0bec5fe6c62868e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073f94c3fd88bae02b97aa6ed60fbb3e569625c357b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073550e970e31a45b06df01a00b1c89a478d4d5e00a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000730764dc400c280ff2b6d1f0582969c0c66827134073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073300736a2c7eacac5524930aff74779ecb2c775ed73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073303c36e5c473bf36bf643debeb61c68f780641aa73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000738011f9bb55e6beec05bce1e64ff669eac33afda473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000731e77dc8b1a6a9b34487133bbce189412697131de73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000736ffcad0e1ba3a8be68f0b8449ca1430173a3c45173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073f13ccd4013da3dc7b2dfbb2397dc9f5db8c1a44d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007356876f3f31582d65a9b99f22a7c2c84f0ccca72373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073700643004ba7cb17b824c6808a4196a06eb25e4b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000738cf85548ae57a91f8132d0831634c0fcef06e50573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073a3e40b15f30a4a3d73c1d8435ee25041b05d1daa73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000734f234ae48179a51e02b0566e885fcc8a1487db0273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073389458f93e387fc568ca4568c231a64ffd0456d273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073fd4ae32d49c48c62b3b3ceaaf588b7c1315f25b173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073c864b0ab18b0ed0beab72f915bacb12971fdb73a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000733401ea5a8d91c5e3944962c0148b08ac4a77f15373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000730ce1e7cafe72b4d48de78a2593d9f251345ae74073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000730d30d188ffb8e75c94d63e99609839f71752a76173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007395e50880ce49e0f23339886cdec174840effb6e073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073a6c3522c42bc46c0e4f7a20091ccc2fdb26f730373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073899ab9bb40ef24a944856840739aa99619b986f273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000732ee0485f71764bcd2062a84d9455688c581b90f873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073f22d36502069b9381b51eebc1c4820c4bebc660c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000731eacc1960efe0edda5f530a78071d2cf461616f473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073e707e35b08b6201a51ab3b83d1c9faeb816f875073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007379b66c1289bf77bd178b14bf33ff45b8aa4b692e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000739440505f4d2a69f3b4d2e90c9bcc51e526bd757473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000736f4efaf5429703649beaa30da7e934bb42993c4773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073a1b094e52401a9636e06eddacb2a772cef67178173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007365a78aba0a3544c19f6503a7d39d8e45f85c60d073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073e2b5942e014215eb42ecd00d5779a039418cf51f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007394ef50afac9c04572813f36fb8d676eb400de27873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007393dfaa13b5ae1bf192663fb79b035c495394dd2c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060016006600073288e55b2f3af18e051b3d4840c04b24c40867e3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007318f197c5b2fcea38b347811f958a6e54f4be9c8173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600660007381aeb18677c608c05e9c4848320cad9a2a7fa19673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600160066000737d1fb15fc3b1eda42029169fd0f6eb576298167c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506200707b565b806002908051906020019062006f5a92919062006f66565b5050565b600033905090565b82805462006f749062007016565b90600052602060002090601f01602090048101928262006f98576000855562006fe4565b82601f1062006fb357805160ff191683800117855562006fe4565b8280016001018555821562006fe4579182015b8281111562006fe357825182559160200191906001019062006fc6565b5b50905062006ff3919062006ff7565b5090565b5b808211156200701257600081600090555060010162006ff8565b5090565b600060028204905060018216806200702f57607f821691505b602082108114156200704657620070456200704c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6131c0806200708b6000396000f3fe608060405234801561001057600080fd5b50600436106100ff5760003560e01c806395a2251f11610097578063e029e88e11610066578063e029e88e146102ac578063e985e9c5146102c8578063f242432a146102f8578063f2fde38b14610314576100ff565b806395a2251f14610238578063a22cb46514610254578063b0fa10c014610270578063d85d7f5b1461028e576100ff565b80632eb2c2d6116100d35780632eb2c2d6146101c45780634e1273f4146101e0578063715018a6146102105780638da5cb5b1461021a576100ff565b8062fdd58e1461010457806301ffc9a7146101345780630e89341c1461016457806310098ad514610194575b600080fd5b61011e6004803603810190610119919061207d565b610330565b60405161012b919061284d565b60405180910390f35b61014e6004803603810190610149919061214e565b6103f9565b60405161015b9190612630565b60405180910390f35b61017e600480360381019061017991906121a0565b6104db565b60405161018b919061264b565b60405180910390f35b6101ae60048036038101906101a99190611e8e565b61056f565b6040516101bb919061284d565b60405180910390f35b6101de60048036038101906101d99190611ef3565b6105c8565b005b6101fa60048036038101906101f591906120b9565b6109be565b60405161020791906125d7565b60405180910390f35b610218610b6f565b005b610222610cac565b60405161022f91906124fa565b60405180910390f35b610252600480360381019061024d9190611e8e565b610cd6565b005b61026e60048036038101906102699190612041565b610e4f565b005b610278610fd0565b6040516102859190612630565b60405180910390f35b610296610fe3565b6040516102a3919061284d565b60405180910390f35b6102c660048036038101906102c19190612125565b610fe9565b005b6102e260048036038101906102dd9190611eb7565b611082565b6040516102ef9190612630565b60405180910390f35b610312600480360381019061030d9190611fb2565b611116565b005b61032e60048036038101906103299190611e8e565b61142e565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156103a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610398906126cd565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104c457507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104d457506104d3826115da565b5b9050919050565b6060600280546104ea90612af0565b80601f016020809104026020016040519081016040528092919081815260200182805461051690612af0565b80156105635780601f1061053857610100808354040283529160200191610563565b820191906000526020600020905b81548152906001019060200180831161054657829003601f168201915b50505050509050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff169050919050565b815183511461060c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106039061280d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561067c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106739061272d565b60405180910390fd5b610684611644565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806106ca57506106c9856106c4611644565b611082565b5b610709576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107009061274d565b60405180910390fd5b6000610713611644565b905061072381878787878761164c565b60005b845181101561092957600085828151811061076a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151905060008583815181106107af577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610850576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108479061276d565b60405180910390fd5b818161085c9190612a06565b60008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461090e91906129b0565b925050819055505050508061092290612b53565b9050610726565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516109a09291906125f9565b60405180910390a46109b6818787878787611654565b505050505050565b60608151835114610a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fb906127ed565b60405180910390fd5b6000835167ffffffffffffffff811115610a47577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610a755781602001602082028036833780820191505090505b50905060005b8451811015610b6457610b0e858281518110610ac0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151858381518110610b01577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151610330565b828281518110610b47577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505080610b5d90612b53565b9050610a7b565b508091505092915050565b610b77611644565b73ffffffffffffffffffffffffffffffffffffffff16610b95610cac565b73ffffffffffffffffffffffffffffffffffffffff1614610beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be29061278d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600560009054906101000a900460ff1615610d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1d906126ad565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16905060008111610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db4906127ad565b60405180910390fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055508060046000828254610e289190612a06565b92505081905550610e4b826001836040518060200160405280600081525061183b565b5050565b8173ffffffffffffffffffffffffffffffffffffffff16610e6e611644565b73ffffffffffffffffffffffffffffffffffffffff161415610ec5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebc906127cd565b60405180910390fd5b8060016000610ed2611644565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610f7f611644565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610fc49190612630565b60405180910390a35050565b600560009054906101000a900460ff1681565b60045481565b610ff1611644565b73ffffffffffffffffffffffffffffffffffffffff1661100f610cac565b73ffffffffffffffffffffffffffffffffffffffff1614611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c9061278d565b60405180910390fd5b80600560006101000a81548160ff02191690831515021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d9061272d565b60405180910390fd5b61118e611644565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806111d457506111d3856111ce611644565b611082565b5b611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120a9061270d565b60405180910390fd5b600061121d611644565b905061123d81878761122e886119d1565b611237886119d1565b8761164c565b600080600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050838110156112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb9061276d565b60405180910390fd5b83816112e09190612a06565b60008087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360008087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461139291906129b0565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62888860405161140f929190612868565b60405180910390a4611425828888888888611a97565b50505050505050565b611436611644565b73ffffffffffffffffffffffffffffffffffffffff16611454610cac565b73ffffffffffffffffffffffffffffffffffffffff16146114aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a19061278d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561151a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611511906126ed565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b505050505050565b6116738473ffffffffffffffffffffffffffffffffffffffff16611c7e565b15611833578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016116b9959493929190612515565b602060405180830381600087803b1580156116d357600080fd5b505af192505050801561170457506040513d601f19601f820116820180604052508101906117019190612177565b60015b6117aa57611710612c29565b806308c379a0141561176d5750611725613098565b80611730575061176f565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611764919061264b565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a19061266d565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611831576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118289061268d565b60405180910390fd5b505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156118ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a29061282d565b60405180910390fd5b60006118b5611644565b90506118d6816000876118c7886119d1565b6118d0886119d1565b8761164c565b8260008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461193591906129b0565b925050819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516119b3929190612868565b60405180910390a46119ca81600087878787611a97565b5050505050565b60606000600167ffffffffffffffff811115611a16577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611a445781602001602082028036833780820191505090505b5090508281600081518110611a82577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505080915050919050565b611ab68473ffffffffffffffffffffffffffffffffffffffff16611c7e565b15611c76578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611afc95949392919061257d565b602060405180830381600087803b158015611b1657600080fd5b505af1925050508015611b4757506040513d601f19601f82011682018060405250810190611b449190612177565b60015b611bed57611b53612c29565b806308c379a01415611bb05750611b68613098565b80611b735750611bb2565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba7919061264b565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be49061266d565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6b9061268d565b60405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b6000611ca4611c9f846128b6565b612891565b90508083825260208201905082856020860282011115611cc357600080fd5b60005b85811015611cf35781611cd98882611da7565b845260208401935060208301925050600181019050611cc6565b5050509392505050565b6000611d10611d0b846128e2565b612891565b90508083825260208201905082856020860282011115611d2f57600080fd5b60005b85811015611d5f5781611d458882611e79565b845260208401935060208301925050600181019050611d32565b5050509392505050565b6000611d7c611d778461290e565b612891565b905082815260208101848484011115611d9457600080fd5b611d9f848285612aae565b509392505050565b600081359050611db68161312e565b92915050565b600082601f830112611dcd57600080fd5b8135611ddd848260208601611c91565b91505092915050565b600082601f830112611df757600080fd5b8135611e07848260208601611cfd565b91505092915050565b600081359050611e1f81613145565b92915050565b600081359050611e348161315c565b92915050565b600081519050611e498161315c565b92915050565b600082601f830112611e6057600080fd5b8135611e70848260208601611d69565b91505092915050565b600081359050611e8881613173565b92915050565b600060208284031215611ea057600080fd5b6000611eae84828501611da7565b91505092915050565b60008060408385031215611eca57600080fd5b6000611ed885828601611da7565b9250506020611ee985828601611da7565b9150509250929050565b600080600080600060a08688031215611f0b57600080fd5b6000611f1988828901611da7565b9550506020611f2a88828901611da7565b945050604086013567ffffffffffffffff811115611f4757600080fd5b611f5388828901611de6565b935050606086013567ffffffffffffffff811115611f7057600080fd5b611f7c88828901611de6565b925050608086013567ffffffffffffffff811115611f9957600080fd5b611fa588828901611e4f565b9150509295509295909350565b600080600080600060a08688031215611fca57600080fd5b6000611fd888828901611da7565b9550506020611fe988828901611da7565b9450506040611ffa88828901611e79565b935050606061200b88828901611e79565b925050608086013567ffffffffffffffff81111561202857600080fd5b61203488828901611e4f565b9150509295509295909350565b6000806040838503121561205457600080fd5b600061206285828601611da7565b925050602061207385828601611e10565b9150509250929050565b6000806040838503121561209057600080fd5b600061209e85828601611da7565b92505060206120af85828601611e79565b9150509250929050565b600080604083850312156120cc57600080fd5b600083013567ffffffffffffffff8111156120e657600080fd5b6120f285828601611dbc565b925050602083013567ffffffffffffffff81111561210f57600080fd5b61211b85828601611de6565b9150509250929050565b60006020828403121561213757600080fd5b600061214584828501611e10565b91505092915050565b60006020828403121561216057600080fd5b600061216e84828501611e25565b91505092915050565b60006020828403121561218957600080fd5b600061219784828501611e3a565b91505092915050565b6000602082840312156121b257600080fd5b60006121c084828501611e79565b91505092915050565b60006121d583836124dc565b60208301905092915050565b6121ea81612a3a565b82525050565b60006121fb8261294f565b612205818561297d565b93506122108361293f565b8060005b8381101561224157815161222888826121c9565b975061223383612970565b925050600181019050612214565b5085935050505092915050565b61225781612a4c565b82525050565b60006122688261295a565b612272818561298e565b9350612282818560208601612abd565b61228b81612c4b565b840191505092915050565b60006122a182612965565b6122ab818561299f565b93506122bb818560208601612abd565b6122c481612c4b565b840191505092915050565b60006122dc60348361299f565b91506122e782612c69565b604082019050919050565b60006122ff60288361299f565b915061230a82612cb8565b604082019050919050565b600061232260158361299f565b915061232d82612d07565b602082019050919050565b6000612345602b8361299f565b915061235082612d30565b604082019050919050565b600061236860268361299f565b915061237382612d7f565b604082019050919050565b600061238b60298361299f565b915061239682612dce565b604082019050919050565b60006123ae60258361299f565b91506123b982612e1d565b604082019050919050565b60006123d160328361299f565b91506123dc82612e6c565b604082019050919050565b60006123f4602a8361299f565b91506123ff82612ebb565b604082019050919050565b600061241760208361299f565b915061242282612f0a565b602082019050919050565b600061243a60138361299f565b915061244582612f33565b602082019050919050565b600061245d60298361299f565b915061246882612f5c565b604082019050919050565b600061248060298361299f565b915061248b82612fab565b604082019050919050565b60006124a360288361299f565b91506124ae82612ffa565b604082019050919050565b60006124c660218361299f565b91506124d182613049565b604082019050919050565b6124e581612aa4565b82525050565b6124f481612aa4565b82525050565b600060208201905061250f60008301846121e1565b92915050565b600060a08201905061252a60008301886121e1565b61253760208301876121e1565b818103604083015261254981866121f0565b9050818103606083015261255d81856121f0565b90508181036080830152612571818461225d565b90509695505050505050565b600060a08201905061259260008301886121e1565b61259f60208301876121e1565b6125ac60408301866124eb565b6125b960608301856124eb565b81810360808301526125cb818461225d565b90509695505050505050565b600060208201905081810360008301526125f181846121f0565b905092915050565b6000604082019050818103600083015261261381856121f0565b9050818103602083015261262781846121f0565b90509392505050565b6000602082019050612645600083018461224e565b92915050565b600060208201905081810360008301526126658184612296565b905092915050565b60006020820190508181036000830152612686816122cf565b9050919050565b600060208201905081810360008301526126a6816122f2565b9050919050565b600060208201905081810360008301526126c681612315565b9050919050565b600060208201905081810360008301526126e681612338565b9050919050565b600060208201905081810360008301526127068161235b565b9050919050565b600060208201905081810360008301526127268161237e565b9050919050565b60006020820190508181036000830152612746816123a1565b9050919050565b60006020820190508181036000830152612766816123c4565b9050919050565b60006020820190508181036000830152612786816123e7565b9050919050565b600060208201905081810360008301526127a68161240a565b9050919050565b600060208201905081810360008301526127c68161242d565b9050919050565b600060208201905081810360008301526127e681612450565b9050919050565b6000602082019050818103600083015261280681612473565b9050919050565b6000602082019050818103600083015261282681612496565b9050919050565b60006020820190508181036000830152612846816124b9565b9050919050565b600060208201905061286260008301846124eb565b92915050565b600060408201905061287d60008301856124eb565b61288a60208301846124eb565b9392505050565b600061289b6128ac565b90506128a78282612b22565b919050565b6000604051905090565b600067ffffffffffffffff8211156128d1576128d0612bfa565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156128fd576128fc612bfa565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561292957612928612bfa565b5b61293282612c4b565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b60006129bb82612aa4565b91506129c683612aa4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156129fb576129fa612b9c565b5b828201905092915050565b6000612a1182612aa4565b9150612a1c83612aa4565b925082821015612a2f57612a2e612b9c565b5b828203905092915050565b6000612a4582612a84565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612adb578082015181840152602081019050612ac0565b83811115612aea576000848401525b50505050565b60006002820490506001821680612b0857607f821691505b60208210811415612b1c57612b1b612bcb565b5b50919050565b612b2b82612c4b565b810181811067ffffffffffffffff82111715612b4a57612b49612bfa565b5b80604052505050565b6000612b5e82612aa4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b9157612b90612b9c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d1115612c485760046000803e612c45600051612c5c565b90505b90565b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b7f526564656d7074696f6e206973207061757365642e0000000000000000000000600082015250565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4e6f20746f6b656e7320746f2072656465656d00000000000000000000000000600082015250565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600060443d10156130a85761312b565b6130b06128ac565b60043d036004823e80513d602482011167ffffffffffffffff821117156130d857505061312b565b808201805167ffffffffffffffff8111156130f6575050505061312b565b80602083010160043d03850181111561311357505050505061312b565b61312282602001850186612b22565b82955050505050505b90565b61313781612a3a565b811461314257600080fd5b50565b61314e81612a4c565b811461315957600080fd5b50565b61316581612a58565b811461317057600080fd5b50565b61317c81612aa4565b811461318757600080fd5b5056fea2646970667358221220333f58cb24f36c3fd540c823dcbe44dea338227e167856b9c84e23247b48147c64736f6c6343000804003368747470733a2f2f617277656176652e6e65742f7446786353373171697236796a3163556d59395f6c356f415f786b4c777a72714b666f6f4f464564656b4d

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100ff5760003560e01c806395a2251f11610097578063e029e88e11610066578063e029e88e146102ac578063e985e9c5146102c8578063f242432a146102f8578063f2fde38b14610314576100ff565b806395a2251f14610238578063a22cb46514610254578063b0fa10c014610270578063d85d7f5b1461028e576100ff565b80632eb2c2d6116100d35780632eb2c2d6146101c45780634e1273f4146101e0578063715018a6146102105780638da5cb5b1461021a576100ff565b8062fdd58e1461010457806301ffc9a7146101345780630e89341c1461016457806310098ad514610194575b600080fd5b61011e6004803603810190610119919061207d565b610330565b60405161012b919061284d565b60405180910390f35b61014e6004803603810190610149919061214e565b6103f9565b60405161015b9190612630565b60405180910390f35b61017e600480360381019061017991906121a0565b6104db565b60405161018b919061264b565b60405180910390f35b6101ae60048036038101906101a99190611e8e565b61056f565b6040516101bb919061284d565b60405180910390f35b6101de60048036038101906101d99190611ef3565b6105c8565b005b6101fa60048036038101906101f591906120b9565b6109be565b60405161020791906125d7565b60405180910390f35b610218610b6f565b005b610222610cac565b60405161022f91906124fa565b60405180910390f35b610252600480360381019061024d9190611e8e565b610cd6565b005b61026e60048036038101906102699190612041565b610e4f565b005b610278610fd0565b6040516102859190612630565b60405180910390f35b610296610fe3565b6040516102a3919061284d565b60405180910390f35b6102c660048036038101906102c19190612125565b610fe9565b005b6102e260048036038101906102dd9190611eb7565b611082565b6040516102ef9190612630565b60405180910390f35b610312600480360381019061030d9190611fb2565b611116565b005b61032e60048036038101906103299190611e8e565b61142e565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156103a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610398906126cd565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104c457507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104d457506104d3826115da565b5b9050919050565b6060600280546104ea90612af0565b80601f016020809104026020016040519081016040528092919081815260200182805461051690612af0565b80156105635780601f1061053857610100808354040283529160200191610563565b820191906000526020600020905b81548152906001019060200180831161054657829003601f168201915b50505050509050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff169050919050565b815183511461060c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106039061280d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561067c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106739061272d565b60405180910390fd5b610684611644565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806106ca57506106c9856106c4611644565b611082565b5b610709576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107009061274d565b60405180910390fd5b6000610713611644565b905061072381878787878761164c565b60005b845181101561092957600085828151811061076a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151905060008583815181106107af577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610850576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108479061276d565b60405180910390fd5b818161085c9190612a06565b60008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461090e91906129b0565b925050819055505050508061092290612b53565b9050610726565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516109a09291906125f9565b60405180910390a46109b6818787878787611654565b505050505050565b60608151835114610a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fb906127ed565b60405180910390fd5b6000835167ffffffffffffffff811115610a47577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610a755781602001602082028036833780820191505090505b50905060005b8451811015610b6457610b0e858281518110610ac0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151858381518110610b01577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151610330565b828281518110610b47577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505080610b5d90612b53565b9050610a7b565b508091505092915050565b610b77611644565b73ffffffffffffffffffffffffffffffffffffffff16610b95610cac565b73ffffffffffffffffffffffffffffffffffffffff1614610beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be29061278d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600560009054906101000a900460ff1615610d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1d906126ad565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16905060008111610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db4906127ad565b60405180910390fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055508060046000828254610e289190612a06565b92505081905550610e4b826001836040518060200160405280600081525061183b565b5050565b8173ffffffffffffffffffffffffffffffffffffffff16610e6e611644565b73ffffffffffffffffffffffffffffffffffffffff161415610ec5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebc906127cd565b60405180910390fd5b8060016000610ed2611644565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610f7f611644565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610fc49190612630565b60405180910390a35050565b600560009054906101000a900460ff1681565b60045481565b610ff1611644565b73ffffffffffffffffffffffffffffffffffffffff1661100f610cac565b73ffffffffffffffffffffffffffffffffffffffff1614611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c9061278d565b60405180910390fd5b80600560006101000a81548160ff02191690831515021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d9061272d565b60405180910390fd5b61118e611644565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806111d457506111d3856111ce611644565b611082565b5b611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120a9061270d565b60405180910390fd5b600061121d611644565b905061123d81878761122e886119d1565b611237886119d1565b8761164c565b600080600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050838110156112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb9061276d565b60405180910390fd5b83816112e09190612a06565b60008087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360008087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461139291906129b0565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62888860405161140f929190612868565b60405180910390a4611425828888888888611a97565b50505050505050565b611436611644565b73ffffffffffffffffffffffffffffffffffffffff16611454610cac565b73ffffffffffffffffffffffffffffffffffffffff16146114aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a19061278d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561151a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611511906126ed565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b505050505050565b6116738473ffffffffffffffffffffffffffffffffffffffff16611c7e565b15611833578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016116b9959493929190612515565b602060405180830381600087803b1580156116d357600080fd5b505af192505050801561170457506040513d601f19601f820116820180604052508101906117019190612177565b60015b6117aa57611710612c29565b806308c379a0141561176d5750611725613098565b80611730575061176f565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611764919061264b565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a19061266d565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611831576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118289061268d565b60405180910390fd5b505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156118ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a29061282d565b60405180910390fd5b60006118b5611644565b90506118d6816000876118c7886119d1565b6118d0886119d1565b8761164c565b8260008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461193591906129b0565b925050819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516119b3929190612868565b60405180910390a46119ca81600087878787611a97565b5050505050565b60606000600167ffffffffffffffff811115611a16577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611a445781602001602082028036833780820191505090505b5090508281600081518110611a82577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505080915050919050565b611ab68473ffffffffffffffffffffffffffffffffffffffff16611c7e565b15611c76578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611afc95949392919061257d565b602060405180830381600087803b158015611b1657600080fd5b505af1925050508015611b4757506040513d601f19601f82011682018060405250810190611b449190612177565b60015b611bed57611b53612c29565b806308c379a01415611bb05750611b68613098565b80611b735750611bb2565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba7919061264b565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be49061266d565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6b9061268d565b60405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b6000611ca4611c9f846128b6565b612891565b90508083825260208201905082856020860282011115611cc357600080fd5b60005b85811015611cf35781611cd98882611da7565b845260208401935060208301925050600181019050611cc6565b5050509392505050565b6000611d10611d0b846128e2565b612891565b90508083825260208201905082856020860282011115611d2f57600080fd5b60005b85811015611d5f5781611d458882611e79565b845260208401935060208301925050600181019050611d32565b5050509392505050565b6000611d7c611d778461290e565b612891565b905082815260208101848484011115611d9457600080fd5b611d9f848285612aae565b509392505050565b600081359050611db68161312e565b92915050565b600082601f830112611dcd57600080fd5b8135611ddd848260208601611c91565b91505092915050565b600082601f830112611df757600080fd5b8135611e07848260208601611cfd565b91505092915050565b600081359050611e1f81613145565b92915050565b600081359050611e348161315c565b92915050565b600081519050611e498161315c565b92915050565b600082601f830112611e6057600080fd5b8135611e70848260208601611d69565b91505092915050565b600081359050611e8881613173565b92915050565b600060208284031215611ea057600080fd5b6000611eae84828501611da7565b91505092915050565b60008060408385031215611eca57600080fd5b6000611ed885828601611da7565b9250506020611ee985828601611da7565b9150509250929050565b600080600080600060a08688031215611f0b57600080fd5b6000611f1988828901611da7565b9550506020611f2a88828901611da7565b945050604086013567ffffffffffffffff811115611f4757600080fd5b611f5388828901611de6565b935050606086013567ffffffffffffffff811115611f7057600080fd5b611f7c88828901611de6565b925050608086013567ffffffffffffffff811115611f9957600080fd5b611fa588828901611e4f565b9150509295509295909350565b600080600080600060a08688031215611fca57600080fd5b6000611fd888828901611da7565b9550506020611fe988828901611da7565b9450506040611ffa88828901611e79565b935050606061200b88828901611e79565b925050608086013567ffffffffffffffff81111561202857600080fd5b61203488828901611e4f565b9150509295509295909350565b6000806040838503121561205457600080fd5b600061206285828601611da7565b925050602061207385828601611e10565b9150509250929050565b6000806040838503121561209057600080fd5b600061209e85828601611da7565b92505060206120af85828601611e79565b9150509250929050565b600080604083850312156120cc57600080fd5b600083013567ffffffffffffffff8111156120e657600080fd5b6120f285828601611dbc565b925050602083013567ffffffffffffffff81111561210f57600080fd5b61211b85828601611de6565b9150509250929050565b60006020828403121561213757600080fd5b600061214584828501611e10565b91505092915050565b60006020828403121561216057600080fd5b600061216e84828501611e25565b91505092915050565b60006020828403121561218957600080fd5b600061219784828501611e3a565b91505092915050565b6000602082840312156121b257600080fd5b60006121c084828501611e79565b91505092915050565b60006121d583836124dc565b60208301905092915050565b6121ea81612a3a565b82525050565b60006121fb8261294f565b612205818561297d565b93506122108361293f565b8060005b8381101561224157815161222888826121c9565b975061223383612970565b925050600181019050612214565b5085935050505092915050565b61225781612a4c565b82525050565b60006122688261295a565b612272818561298e565b9350612282818560208601612abd565b61228b81612c4b565b840191505092915050565b60006122a182612965565b6122ab818561299f565b93506122bb818560208601612abd565b6122c481612c4b565b840191505092915050565b60006122dc60348361299f565b91506122e782612c69565b604082019050919050565b60006122ff60288361299f565b915061230a82612cb8565b604082019050919050565b600061232260158361299f565b915061232d82612d07565b602082019050919050565b6000612345602b8361299f565b915061235082612d30565b604082019050919050565b600061236860268361299f565b915061237382612d7f565b604082019050919050565b600061238b60298361299f565b915061239682612dce565b604082019050919050565b60006123ae60258361299f565b91506123b982612e1d565b604082019050919050565b60006123d160328361299f565b91506123dc82612e6c565b604082019050919050565b60006123f4602a8361299f565b91506123ff82612ebb565b604082019050919050565b600061241760208361299f565b915061242282612f0a565b602082019050919050565b600061243a60138361299f565b915061244582612f33565b602082019050919050565b600061245d60298361299f565b915061246882612f5c565b604082019050919050565b600061248060298361299f565b915061248b82612fab565b604082019050919050565b60006124a360288361299f565b91506124ae82612ffa565b604082019050919050565b60006124c660218361299f565b91506124d182613049565b604082019050919050565b6124e581612aa4565b82525050565b6124f481612aa4565b82525050565b600060208201905061250f60008301846121e1565b92915050565b600060a08201905061252a60008301886121e1565b61253760208301876121e1565b818103604083015261254981866121f0565b9050818103606083015261255d81856121f0565b90508181036080830152612571818461225d565b90509695505050505050565b600060a08201905061259260008301886121e1565b61259f60208301876121e1565b6125ac60408301866124eb565b6125b960608301856124eb565b81810360808301526125cb818461225d565b90509695505050505050565b600060208201905081810360008301526125f181846121f0565b905092915050565b6000604082019050818103600083015261261381856121f0565b9050818103602083015261262781846121f0565b90509392505050565b6000602082019050612645600083018461224e565b92915050565b600060208201905081810360008301526126658184612296565b905092915050565b60006020820190508181036000830152612686816122cf565b9050919050565b600060208201905081810360008301526126a6816122f2565b9050919050565b600060208201905081810360008301526126c681612315565b9050919050565b600060208201905081810360008301526126e681612338565b9050919050565b600060208201905081810360008301526127068161235b565b9050919050565b600060208201905081810360008301526127268161237e565b9050919050565b60006020820190508181036000830152612746816123a1565b9050919050565b60006020820190508181036000830152612766816123c4565b9050919050565b60006020820190508181036000830152612786816123e7565b9050919050565b600060208201905081810360008301526127a68161240a565b9050919050565b600060208201905081810360008301526127c68161242d565b9050919050565b600060208201905081810360008301526127e681612450565b9050919050565b6000602082019050818103600083015261280681612473565b9050919050565b6000602082019050818103600083015261282681612496565b9050919050565b60006020820190508181036000830152612846816124b9565b9050919050565b600060208201905061286260008301846124eb565b92915050565b600060408201905061287d60008301856124eb565b61288a60208301846124eb565b9392505050565b600061289b6128ac565b90506128a78282612b22565b919050565b6000604051905090565b600067ffffffffffffffff8211156128d1576128d0612bfa565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156128fd576128fc612bfa565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561292957612928612bfa565b5b61293282612c4b565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b60006129bb82612aa4565b91506129c683612aa4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156129fb576129fa612b9c565b5b828201905092915050565b6000612a1182612aa4565b9150612a1c83612aa4565b925082821015612a2f57612a2e612b9c565b5b828203905092915050565b6000612a4582612a84565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612adb578082015181840152602081019050612ac0565b83811115612aea576000848401525b50505050565b60006002820490506001821680612b0857607f821691505b60208210811415612b1c57612b1b612bcb565b5b50919050565b612b2b82612c4b565b810181811067ffffffffffffffff82111715612b4a57612b49612bfa565b5b80604052505050565b6000612b5e82612aa4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b9157612b90612b9c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d1115612c485760046000803e612c45600051612c5c565b90505b90565b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b7f526564656d7074696f6e206973207061757365642e0000000000000000000000600082015250565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4e6f20746f6b656e7320746f2072656465656d00000000000000000000000000600082015250565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600060443d10156130a85761312b565b6130b06128ac565b60043d036004823e80513d602482011167ffffffffffffffff821117156130d857505061312b565b808201805167ffffffffffffffff8111156130f6575050505061312b565b80602083010160043d03850181111561311357505050505061312b565b61312282602001850186612b22565b82955050505050505b90565b61313781612a3a565b811461314257600080fd5b50565b61314e81612a4c565b811461315957600080fd5b50565b61316581612a58565b811461317057600080fd5b50565b61317c81612aa4565b811461318757600080fd5b5056fea2646970667358221220333f58cb24f36c3fd540c823dcbe44dea338227e167856b9c84e23247b48147c64736f6c63430008040033

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.