Address Details
contract

0x80D2a1Efe9A9C0CB25b3e5ae51c693FE0A69228E

Contract Name
NFTKToken
Creator
0x0ca82c–81b919 at 0x37c8cc–5476a5
Balance
0 CELO ( )
Locked CELO Balance
0.00 CELO
Voting CELO Balance
0.00 CELO
Pending Unlocked Gold
0.00 CELO
Tokens
Fetching tokens...
Transactions
4 Transactions
Transfers
0 Transfers
Gas Used
168,845
Last Balance Update
15157646
This contract has been verified via Sourcify. View contract in Sourcify repository
Contract name:
NFTKToken




Optimization enabled
false
Compiler version
v0.8.2+commit.661d1103




EVM Version
istanbul




Verified at
2022-12-24T14:06:20.776866Z

BIP20.sol

pragma solidity 0.8.2;

interface BIP20 {
  function totalSupply() external view returns (uint24);
  function decimals() external view returns (uint8);
  function symbol() external view returns (string memory);
  function name() external view returns (string memory);
  function getOwner() external view returns (address);
  function balanceOf(address account) external view returns (uint24);
  function transfer(address recipient, uint24 amount) external returns (bool);
  function allowance(address _owner, address spender) external view returns (uint24);
  function approve(address spender, uint24 amount) external returns (bool);
  function transferFrom(address sender, address recipient, uint24 amount) external returns (bool);
  event Transfer(address indexed from, address indexed to, uint24 value);
  event Approval(address indexed owner, address indexed spender, uint24 value);
} 

contract Context {
  constructor ()  { }

  function _msgSender() internal view returns (address ) {
    return msg.sender;
  }

  function _msgData() internal view returns (bytes memory) {
    this; 
    return msg.data;
  }
}

library SafeMath {
  function add(uint24 a, uint24 b) internal pure returns (uint24) {
    uint24 c = a + b;
    require(c >= a, "SafeMath: addition overflow");
    return c;
  }
  function sub(uint24 a, uint24 b) internal pure returns (uint24) {
    return sub(a, b, "SafeMath: subtraction overflow");
  }

  function sub(uint24 a, uint24 b, string memory errorMessage) internal pure returns (uint24) {
    require(b <= a, errorMessage);
    uint24 c = a - b;

    return c;
  }
  function mul(uint24 a, uint24 b) internal pure returns (uint24) {
    // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
    if (a == 0) {
      return 0;
    }

    uint24 c = a * b;
    require(c / a == b, "SafeMath: multiplication overflow");

    return c;
  }

  function div(uint24 a, uint24 b) internal pure returns (uint24) {
    return div(a, b, "SafeMath: division by zero");
  }

  function div(uint24 a, uint24 b, string memory errorMessage) internal pure returns (uint24) {
    // Solidity only automatically asserts when dividing by 0
    require(b > 0, errorMessage);
    uint24 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold

    return c;
  }

  function mod(uint24 a, uint24 b) internal pure returns (uint24) {
    return mod(a, b, "SafeMath: modulo by zero");
  }

  function mod(uint24 a, uint24 b, string memory errorMessage) internal pure returns (uint24) {
    require(b != 0, errorMessage);
    return a % b;
  }
}

contract Ownable is Context {
  address private _owner;

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

  constructor ()  {
    address msgSender = _msgSender();
    _owner = msgSender;
    emit OwnershipTransferred(address(0), msgSender);
  }

  function owner() public view returns (address) {
    return _owner;
  }

  modifier onlyOwner() {
    require(_owner == _msgSender(), "Ownable: caller is not the owner");
    _;
  }

  function renounceOwnership() public onlyOwner {
    emit OwnershipTransferred(_owner, address(0));
    _owner = address(0);
  }

  function transferOwnership(address newOwner) public onlyOwner {
    _transferOwnership(newOwner);
  }

  function _transferOwnership(address newOwner) internal {
    require(newOwner != address(0), "Ownable: new owner is the zero address");
    emit OwnershipTransferred(_owner, newOwner);
    _owner = newOwner;
  }
}

contract NFTKToken is Context, BIP20, Ownable {
  using SafeMath for uint24;

  mapping (address => uint24) private _balances;

  mapping (address => mapping (address => uint24)) private _allowances;

  uint24 private _totalSupply;
  uint8 private _decimals;
  string private _symbol;
  string private _name;
  string private _ico;
  string private _baseURI;
 
  constructor() public {
    _name = "NFTicket Pay Token";
    _symbol = "NFTK";
    _decimals = 0;
    _ico = "QmPNAJEacA9FRnkirZxqm1xav4QizRhrNPNuSiX9yS3Vp2";
    _totalSupply = 400000;
    _balances[msg.sender] = _totalSupply;
    _baseURI="https://ipfs.io/ipfs/";
    emit Transfer(address(0), msg.sender, _totalSupply);
  }

  function setBaseURI(string calldata _uri) external  returns (bool) {
    _baseURI = _uri;
    return true;
  }

  function getOwner() override external view returns (address) {
    return owner();
  }

  function getIconCID() external view returns (string memory) {
    return _ico;
  }
  function getBaseURI() external view returns (string memory) {
    return _baseURI;
  }

  function decimals() override external view returns (uint8) {
    return _decimals;
  }
  function symbol() override external view returns (string memory) {
    return _symbol;
  }
  function ico() external view returns (string memory) {
    return string(abi.encodePacked(_baseURI, _ico));
  }
  function icon() external view returns (string memory) {
    return string(abi.encodePacked(_baseURI, _ico));
  }

  /**
  * @dev Returns the token name.
  */
  function name() override external view returns (string memory) {
    return _name;
  }

  function totalSupply() override external view returns (uint24) {
    return _totalSupply;
  }

  function balanceOf(address account) override external view returns (uint24) {
    return _balances[account];
  }

  function transfer(address recipient, uint24 amount) override external returns (bool) {
    _transfer(_msgSender(), recipient, amount);
    return true;
  }

  function allowance(address owner, address spender) override external view returns (uint24) {
    return _allowances[owner][spender];
  }
  function approve(address spender, uint24 amount) override external returns (bool) {
    _approve(_msgSender(), spender, amount);
    return true;
  }

  function transferFrom(address sender, address recipient, uint24 amount) override external returns (bool) {
    _transfer(sender, recipient, amount);
    _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "NFTicket: transfer amount exceeds allowance"));
    return true;
  }

  function increaseAllowance(address spender, uint24 addedValue) public returns (bool) {
    _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
    return true;
  }

  function decreaseAllowance(address spender, uint24 subtractedValue) public returns (bool) {
    _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "NFTicket: decreased allowance below zero"));
    return true;
  }

  function mint(uint24 amount) public onlyOwner returns (bool) {
    _mint(_msgSender(), amount);
    return true;
  }

  function _transfer(address sender, address recipient, uint24 amount) internal {
    require(sender != address(0), "NFTicket: transfer from the zero address");
    require(recipient != address(0), "NFTicket: transfer to the zero address");

    _balances[sender] = _balances[sender].sub(amount, "NFTicket: transfer amount exceeds balance");
    _balances[recipient] = _balances[recipient].add(amount);
    emit Transfer(sender, recipient, amount);
  }

  function _mint(address account, uint24 amount) internal {
    require(account != address(0), "NFTicket: mint to the zero address");

    _totalSupply = _totalSupply.add(amount);
    _balances[account] = _balances[account].add(amount);
    emit Transfer(address(0), account, amount);
  }

  function _burn(address account, uint24 amount) internal {
    require(account != address(0), "NFTicket: burn from the zero address");

    _balances[account] = _balances[account].sub(amount, "NFTicket: burn amount exceeds balance");
    _totalSupply = _totalSupply.sub(amount);
    emit Transfer(account, address(0), amount);
  }

  function _approve(address owner, address spender, uint24 amount) internal {
    require(owner != address(0), "NFTicket: approve from the zero address");
    require(spender != address(0), "NFTicket: approve to the zero address");

    _allowances[owner][spender] = amount;
    emit Approval(owner, spender, amount);
  }

  function _burnFrom(address account, uint24 amount) internal {
    _burn(account, amount);
    _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amount, "NFTicket: burn amount exceeds allowance"));
  }
}
        

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint24","name":"value","internalType":"uint24","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"previousOwner","internalType":"address","indexed":true},{"type":"address","name":"newOwner","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint24","name":"value","internalType":"uint24","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint24","name":"","internalType":"uint24"}],"name":"allowance","inputs":[{"type":"address","name":"owner","internalType":"address"},{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint24","name":"amount","internalType":"uint24"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint24","name":"","internalType":"uint24"}],"name":"balanceOf","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"decreaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint24","name":"subtractedValue","internalType":"uint24"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"getBaseURI","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"getIconCID","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"getOwner","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"ico","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"icon","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"increaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint24","name":"addedValue","internalType":"uint24"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"mint","inputs":[{"type":"uint24","name":"amount","internalType":"uint24"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceOwnership","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"setBaseURI","inputs":[{"type":"string","name":"_uri","internalType":"string"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint24","name":"","internalType":"uint24"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"recipient","internalType":"address"},{"type":"uint24","name":"amount","internalType":"uint24"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"sender","internalType":"address"},{"type":"address","name":"recipient","internalType":"address"},{"type":"uint24","name":"amount","internalType":"uint24"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner","internalType":"address"}]}]
              

Contract Creation Code

0x60806040523480156200001157600080fd5b506000620000246200030760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280601281526020017f4e465469636b65742050617920546f6b656e0000000000000000000000000000815250600590805190602001906200010f9291906200030f565b506040518060400160405280600481526020017f4e46544b00000000000000000000000000000000000000000000000000000000815250600490805190602001906200015d9291906200030f565b5060006003806101000a81548160ff021916908360ff1602179055506040518060600160405280602e815260200162002601602e913960069080519060200190620001aa9291906200030f565b5062061a80600360006101000a81548162ffffff021916908362ffffff160217905550600360009054906101000a900462ffffff16600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548162ffffff021916908362ffffff1602179055506040518060400160405280601581526020017f68747470733a2f2f697066732e696f2f697066732f000000000000000000000081525060079080519060200190620002879291906200030f565b503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f4c3f23e06500a14887485511327c0d579fbccac302d5839c043bcc62bf867793600360009054906101000a900462ffffff16604051620002f99190620003d0565b60405180910390a362000461565b600033905090565b8280546200031d90620003fc565b90600052602060002090601f0160209004810192826200034157600085556200038d565b82601f106200035c57805160ff19168380011785556200038d565b828001600101855582156200038d579182015b828111156200038c5782518255916020019190600101906200036f565b5b5090506200039c9190620003a0565b5090565b5b80821115620003bb576000816000905550600101620003a1565b5090565b620003ca81620003ed565b82525050565b6000602082019050620003e76000830184620003bf565b92915050565b600062ffffff82169050919050565b600060028204905060018216806200041557607f821691505b602082108114156200042c576200042b62000432565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61219080620004716000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b857806395d89b411161007c57806395d89b4114610356578063c557b98514610374578063dd62ed3e14610392578063eaef4d8f146103c2578063f2fde38b146103f2578063f4de1e971461040e57610137565b806370a08231146102c2578063714c5398146102f2578063715018a614610310578063893d20e81461031a5780638da5cb5b1461033857610137565b80634f61fd2a116100ff5780634f61fd2a146101e457806355f804b3146102145780635b195c86146102445780635d45220114610274578063601b79211461029257610137565b806306fdde031461013c578063176cd7101461015a57806318160ddd1461018a578063188743a8146101a8578063313ce567146101c6575b600080fd5b61014461043e565b6040516101519190611b55565b60405180910390f35b610174600480360381019061016f91906117f6565b6104d0565b6040516101819190611b3a565b60405180910390f35b6101926105bd565b60405161019f9190611c77565b60405180910390f35b6101b06105d6565b6040516101bd9190611b55565b60405180910390f35b6101ce610668565b6040516101db9190611c92565b60405180910390f35b6101fe60048036038101906101f99190611845565b61067d565b60405161020b9190611b3a565b60405180910390f35b61022e60048036038101906102299190611881565b61075e565b60405161023b9190611b3a565b60405180910390f35b61025e60048036038101906102599190611845565b61077c565b60405161026b9190611b3a565b60405180910390f35b61027c61079a565b6040516102899190611b55565b60405180910390f35b6102ac60048036038101906102a79190611845565b6107c5565b6040516102b99190611b3a565b60405180910390f35b6102dc60048036038101906102d79190611791565b6107e3565b6040516102e99190611c77565b60405180910390f35b6102fa61083b565b6040516103079190611b55565b60405180910390f35b6103186108cd565b005b610322610a20565b60405161032f9190611b1f565b60405180910390f35b610340610a2f565b60405161034d9190611b1f565b60405180910390f35b61035e610a58565b60405161036b9190611b55565b60405180910390f35b61037c610aea565b6040516103899190611b55565b60405180910390f35b6103ac60048036038101906103a791906117ba565b610b15565b6040516103b99190611c77565b60405180910390f35b6103dc60048036038101906103d791906118c6565b610bab565b6040516103e99190611b3a565b60405180910390f35b61040c60048036038101906104079190611791565b610c5c565b005b61042860048036038101906104239190611845565b610cfd565b6040516104359190611b3a565b60405180910390f35b60606005805461044d90611de3565b80601f016020809104026020016040519081016040528092919081815260200182805461047990611de3565b80156104c65780601f1061049b576101008083540402835291602001916104c6565b820191906000526020600020905b8154815290600101906020018083116104a957829003601f168201915b5050505050905090565b60006104dd848484610dc4565b6105b2846104e96110aa565b6105ad856040518060600160405280602b8152602001612107602b9139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061054f6110aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900462ffffff1662ffffff166110b29092919063ffffffff16565b611120565b600190509392505050565b6000600360009054906101000a900462ffffff16905090565b6060600680546105e590611de3565b80601f016020809104026020016040519081016040528092919081815260200182805461061190611de3565b801561065e5780601f106106335761010080835404028352916020019161065e565b820191906000526020600020905b81548152906001019060200180831161064157829003601f168201915b5050505050905090565b600060038054906101000a900460ff16905090565b600061075461068a6110aa565b8461074f856040518060600160405280602881526020016120df60289139600260006106b46110aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900462ffffff1662ffffff166110b29092919063ffffffff16565b611120565b6001905092915050565b600082826007919061077192919061167a565b506001905092915050565b60006107906107896110aa565b8484610dc4565b6001905092915050565b6060600760066040516020016107b1929190611afb565b604051602081830303815290604052905090565b60006107d96107d26110aa565b8484611120565b6001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900462ffffff169050919050565b60606007805461084a90611de3565b80601f016020809104026020016040519081016040528092919081815260200182805461087690611de3565b80156108c35780601f10610898576101008083540402835291602001916108c3565b820191906000526020600020905b8154815290600101906020018083116108a657829003601f168201915b5050505050905090565b6108d56110aa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095990611c37565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610a2a610a2f565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a6790611de3565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9390611de3565b8015610ae05780601f10610ab557610100808354040283529160200191610ae0565b820191906000526020600020905b815481529060010190602001808311610ac357829003601f168201915b5050505050905090565b606060076006604051602001610b01929190611afb565b604051602081830303815290604052905090565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900462ffffff16905092915050565b6000610bb56110aa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3990611c37565b60405180910390fd5b610c53610c4d6110aa565b83611303565b60019050919050565b610c646110aa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce890611c37565b60405180910390fd5b610cfa816114e5565b50565b6000610dba610d0a6110aa565b84610db58560026000610d1b6110aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900462ffffff1662ffffff1661161290919063ffffffff16565b611120565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2b90611bf7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9b90611c57565b60405180910390fd5b610f248160405180606001604052806029815260200161213260299139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900462ffffff1662ffffff166110b29092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548162ffffff021916908362ffffff160217905550610fe581600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900462ffffff1662ffffff1661161290919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548162ffffff021916908362ffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f4c3f23e06500a14887485511327c0d579fbccac302d5839c043bcc62bf8677938360405161109d9190611c77565b60405180910390a3505050565b600033905090565b60008362ffffff168362ffffff1611158290611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb9190611b55565b60405180910390fd5b50600083856111139190611d22565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611190576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118790611bb7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f790611bd7565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548162ffffff021916908362ffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fb3ba96ffca58a5c0843f7fa57ac208298b3b86e7feed3d33a9f706270c2626e9836040516112f69190611c77565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136a90611c17565b60405180910390fd5b61139c81600360009054906101000a900462ffffff1662ffffff1661161290919063ffffffff16565b600360006101000a81548162ffffff021916908362ffffff16021790555061142081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900462ffffff1662ffffff1661161290919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548162ffffff021916908362ffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f4c3f23e06500a14887485511327c0d579fbccac302d5839c043bcc62bf867793836040516114d99190611c77565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c90611b77565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008082846116219190611ce9565b90508362ffffff168162ffffff161015611670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166790611b97565b60405180910390fd5b8091505092915050565b82805461168690611de3565b90600052602060002090601f0160209004810192826116a857600085556116ef565b82601f106116c157803560ff19168380011785556116ef565b828001600101855582156116ef579182015b828111156116ee5782358255916020019190600101906116d3565b5b5090506116fc9190611700565b5090565b5b80821115611719576000816000905550600101611701565b5090565b60008135905061172c816120b0565b92915050565b60008083601f84011261174457600080fd5b8235905067ffffffffffffffff81111561175d57600080fd5b60208301915083600182028301111561177557600080fd5b9250929050565b60008135905061178b816120c7565b92915050565b6000602082840312156117a357600080fd5b60006117b18482850161171d565b91505092915050565b600080604083850312156117cd57600080fd5b60006117db8582860161171d565b92505060206117ec8582860161171d565b9150509250929050565b60008060006060848603121561180b57600080fd5b60006118198682870161171d565b935050602061182a8682870161171d565b925050604061183b8682870161177c565b9150509250925092565b6000806040838503121561185857600080fd5b60006118668582860161171d565b92505060206118778582860161177c565b9150509250929050565b6000806020838503121561189457600080fd5b600083013567ffffffffffffffff8111156118ae57600080fd5b6118ba85828601611732565b92509250509250929050565b6000602082840312156118d857600080fd5b60006118e68482850161177c565b91505092915050565b6118f881611d56565b82525050565b61190781611d68565b82525050565b600061191882611cc2565b6119228185611ccd565b9350611932818560208601611db0565b61193b81611e73565b840191505092915050565b6000815461195381611de3565b61195d8186611cde565b945060018216600081146119785760018114611989576119bc565b60ff198316865281860193506119bc565b61199285611cad565b60005b838110156119b457815481890152600182019150602081019050611995565b838801955050505b50505092915050565b60006119d2602683611ccd565b91506119dd82611e84565b604082019050919050565b60006119f5601b83611ccd565b9150611a0082611ed3565b602082019050919050565b6000611a18602783611ccd565b9150611a2382611efc565b604082019050919050565b6000611a3b602583611ccd565b9150611a4682611f4b565b604082019050919050565b6000611a5e602883611ccd565b9150611a6982611f9a565b604082019050919050565b6000611a81602283611ccd565b9150611a8c82611fe9565b604082019050919050565b6000611aa4602083611ccd565b9150611aaf82612038565b602082019050919050565b6000611ac7602683611ccd565b9150611ad282612061565b604082019050919050565b611ae681611d94565b82525050565b611af581611da3565b82525050565b6000611b078285611946565b9150611b138284611946565b91508190509392505050565b6000602082019050611b3460008301846118ef565b92915050565b6000602082019050611b4f60008301846118fe565b92915050565b60006020820190508181036000830152611b6f818461190d565b905092915050565b60006020820190508181036000830152611b90816119c5565b9050919050565b60006020820190508181036000830152611bb0816119e8565b9050919050565b60006020820190508181036000830152611bd081611a0b565b9050919050565b60006020820190508181036000830152611bf081611a2e565b9050919050565b60006020820190508181036000830152611c1081611a51565b9050919050565b60006020820190508181036000830152611c3081611a74565b9050919050565b60006020820190508181036000830152611c5081611a97565b9050919050565b60006020820190508181036000830152611c7081611aba565b9050919050565b6000602082019050611c8c6000830184611add565b92915050565b6000602082019050611ca76000830184611aec565b92915050565b60008190508160005260206000209050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000611cf482611d94565b9150611cff83611d94565b92508262ffffff03821115611d1757611d16611e15565b5b828201905092915050565b6000611d2d82611d94565b9150611d3883611d94565b925082821015611d4b57611d4a611e15565b5b828203905092915050565b6000611d6182611d74565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b600060ff82169050919050565b60005b83811015611dce578082015181840152602081019050611db3565b83811115611ddd576000848401525b50505050565b60006002820490506001821680611dfb57607f821691505b60208210811415611e0f57611e0e611e44565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4e465469636b65743a20617070726f76652066726f6d20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b7f4e465469636b65743a20617070726f766520746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4e465469636b65743a207472616e736665722066726f6d20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b7f4e465469636b65743a206d696e7420746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4e465469636b65743a207472616e7366657220746f20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6120b981611d56565b81146120c457600080fd5b50565b6120d081611d94565b81146120db57600080fd5b5056fe4e465469636b65743a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4e465469636b65743a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654e465469636b65743a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a26469706673582212204a37c4361e97ade24846a6a1bf3e7f0e7bb64fce94c9d6b1aabf6fc31a6378db64736f6c63430008020033516d504e414a456163413946526e6b69725a78716d317861763451697a5268724e504e7553695839795333567032

Deployed ByteCode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b857806395d89b411161007c57806395d89b4114610356578063c557b98514610374578063dd62ed3e14610392578063eaef4d8f146103c2578063f2fde38b146103f2578063f4de1e971461040e57610137565b806370a08231146102c2578063714c5398146102f2578063715018a614610310578063893d20e81461031a5780638da5cb5b1461033857610137565b80634f61fd2a116100ff5780634f61fd2a146101e457806355f804b3146102145780635b195c86146102445780635d45220114610274578063601b79211461029257610137565b806306fdde031461013c578063176cd7101461015a57806318160ddd1461018a578063188743a8146101a8578063313ce567146101c6575b600080fd5b61014461043e565b6040516101519190611b55565b60405180910390f35b610174600480360381019061016f91906117f6565b6104d0565b6040516101819190611b3a565b60405180910390f35b6101926105bd565b60405161019f9190611c77565b60405180910390f35b6101b06105d6565b6040516101bd9190611b55565b60405180910390f35b6101ce610668565b6040516101db9190611c92565b60405180910390f35b6101fe60048036038101906101f99190611845565b61067d565b60405161020b9190611b3a565b60405180910390f35b61022e60048036038101906102299190611881565b61075e565b60405161023b9190611b3a565b60405180910390f35b61025e60048036038101906102599190611845565b61077c565b60405161026b9190611b3a565b60405180910390f35b61027c61079a565b6040516102899190611b55565b60405180910390f35b6102ac60048036038101906102a79190611845565b6107c5565b6040516102b99190611b3a565b60405180910390f35b6102dc60048036038101906102d79190611791565b6107e3565b6040516102e99190611c77565b60405180910390f35b6102fa61083b565b6040516103079190611b55565b60405180910390f35b6103186108cd565b005b610322610a20565b60405161032f9190611b1f565b60405180910390f35b610340610a2f565b60405161034d9190611b1f565b60405180910390f35b61035e610a58565b60405161036b9190611b55565b60405180910390f35b61037c610aea565b6040516103899190611b55565b60405180910390f35b6103ac60048036038101906103a791906117ba565b610b15565b6040516103b99190611c77565b60405180910390f35b6103dc60048036038101906103d791906118c6565b610bab565b6040516103e99190611b3a565b60405180910390f35b61040c60048036038101906104079190611791565b610c5c565b005b61042860048036038101906104239190611845565b610cfd565b6040516104359190611b3a565b60405180910390f35b60606005805461044d90611de3565b80601f016020809104026020016040519081016040528092919081815260200182805461047990611de3565b80156104c65780601f1061049b576101008083540402835291602001916104c6565b820191906000526020600020905b8154815290600101906020018083116104a957829003601f168201915b5050505050905090565b60006104dd848484610dc4565b6105b2846104e96110aa565b6105ad856040518060600160405280602b8152602001612107602b9139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061054f6110aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900462ffffff1662ffffff166110b29092919063ffffffff16565b611120565b600190509392505050565b6000600360009054906101000a900462ffffff16905090565b6060600680546105e590611de3565b80601f016020809104026020016040519081016040528092919081815260200182805461061190611de3565b801561065e5780601f106106335761010080835404028352916020019161065e565b820191906000526020600020905b81548152906001019060200180831161064157829003601f168201915b5050505050905090565b600060038054906101000a900460ff16905090565b600061075461068a6110aa565b8461074f856040518060600160405280602881526020016120df60289139600260006106b46110aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900462ffffff1662ffffff166110b29092919063ffffffff16565b611120565b6001905092915050565b600082826007919061077192919061167a565b506001905092915050565b60006107906107896110aa565b8484610dc4565b6001905092915050565b6060600760066040516020016107b1929190611afb565b604051602081830303815290604052905090565b60006107d96107d26110aa565b8484611120565b6001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900462ffffff169050919050565b60606007805461084a90611de3565b80601f016020809104026020016040519081016040528092919081815260200182805461087690611de3565b80156108c35780601f10610898576101008083540402835291602001916108c3565b820191906000526020600020905b8154815290600101906020018083116108a657829003601f168201915b5050505050905090565b6108d56110aa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095990611c37565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610a2a610a2f565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a6790611de3565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9390611de3565b8015610ae05780601f10610ab557610100808354040283529160200191610ae0565b820191906000526020600020905b815481529060010190602001808311610ac357829003601f168201915b5050505050905090565b606060076006604051602001610b01929190611afb565b604051602081830303815290604052905090565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900462ffffff16905092915050565b6000610bb56110aa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3990611c37565b60405180910390fd5b610c53610c4d6110aa565b83611303565b60019050919050565b610c646110aa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce890611c37565b60405180910390fd5b610cfa816114e5565b50565b6000610dba610d0a6110aa565b84610db58560026000610d1b6110aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900462ffffff1662ffffff1661161290919063ffffffff16565b611120565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2b90611bf7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9b90611c57565b60405180910390fd5b610f248160405180606001604052806029815260200161213260299139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900462ffffff1662ffffff166110b29092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548162ffffff021916908362ffffff160217905550610fe581600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900462ffffff1662ffffff1661161290919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548162ffffff021916908362ffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f4c3f23e06500a14887485511327c0d579fbccac302d5839c043bcc62bf8677938360405161109d9190611c77565b60405180910390a3505050565b600033905090565b60008362ffffff168362ffffff1611158290611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb9190611b55565b60405180910390fd5b50600083856111139190611d22565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611190576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118790611bb7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f790611bd7565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548162ffffff021916908362ffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fb3ba96ffca58a5c0843f7fa57ac208298b3b86e7feed3d33a9f706270c2626e9836040516112f69190611c77565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136a90611c17565b60405180910390fd5b61139c81600360009054906101000a900462ffffff1662ffffff1661161290919063ffffffff16565b600360006101000a81548162ffffff021916908362ffffff16021790555061142081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900462ffffff1662ffffff1661161290919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548162ffffff021916908362ffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f4c3f23e06500a14887485511327c0d579fbccac302d5839c043bcc62bf867793836040516114d99190611c77565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c90611b77565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008082846116219190611ce9565b90508362ffffff168162ffffff161015611670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166790611b97565b60405180910390fd5b8091505092915050565b82805461168690611de3565b90600052602060002090601f0160209004810192826116a857600085556116ef565b82601f106116c157803560ff19168380011785556116ef565b828001600101855582156116ef579182015b828111156116ee5782358255916020019190600101906116d3565b5b5090506116fc9190611700565b5090565b5b80821115611719576000816000905550600101611701565b5090565b60008135905061172c816120b0565b92915050565b60008083601f84011261174457600080fd5b8235905067ffffffffffffffff81111561175d57600080fd5b60208301915083600182028301111561177557600080fd5b9250929050565b60008135905061178b816120c7565b92915050565b6000602082840312156117a357600080fd5b60006117b18482850161171d565b91505092915050565b600080604083850312156117cd57600080fd5b60006117db8582860161171d565b92505060206117ec8582860161171d565b9150509250929050565b60008060006060848603121561180b57600080fd5b60006118198682870161171d565b935050602061182a8682870161171d565b925050604061183b8682870161177c565b9150509250925092565b6000806040838503121561185857600080fd5b60006118668582860161171d565b92505060206118778582860161177c565b9150509250929050565b6000806020838503121561189457600080fd5b600083013567ffffffffffffffff8111156118ae57600080fd5b6118ba85828601611732565b92509250509250929050565b6000602082840312156118d857600080fd5b60006118e68482850161177c565b91505092915050565b6118f881611d56565b82525050565b61190781611d68565b82525050565b600061191882611cc2565b6119228185611ccd565b9350611932818560208601611db0565b61193b81611e73565b840191505092915050565b6000815461195381611de3565b61195d8186611cde565b945060018216600081146119785760018114611989576119bc565b60ff198316865281860193506119bc565b61199285611cad565b60005b838110156119b457815481890152600182019150602081019050611995565b838801955050505b50505092915050565b60006119d2602683611ccd565b91506119dd82611e84565b604082019050919050565b60006119f5601b83611ccd565b9150611a0082611ed3565b602082019050919050565b6000611a18602783611ccd565b9150611a2382611efc565b604082019050919050565b6000611a3b602583611ccd565b9150611a4682611f4b565b604082019050919050565b6000611a5e602883611ccd565b9150611a6982611f9a565b604082019050919050565b6000611a81602283611ccd565b9150611a8c82611fe9565b604082019050919050565b6000611aa4602083611ccd565b9150611aaf82612038565b602082019050919050565b6000611ac7602683611ccd565b9150611ad282612061565b604082019050919050565b611ae681611d94565b82525050565b611af581611da3565b82525050565b6000611b078285611946565b9150611b138284611946565b91508190509392505050565b6000602082019050611b3460008301846118ef565b92915050565b6000602082019050611b4f60008301846118fe565b92915050565b60006020820190508181036000830152611b6f818461190d565b905092915050565b60006020820190508181036000830152611b90816119c5565b9050919050565b60006020820190508181036000830152611bb0816119e8565b9050919050565b60006020820190508181036000830152611bd081611a0b565b9050919050565b60006020820190508181036000830152611bf081611a2e565b9050919050565b60006020820190508181036000830152611c1081611a51565b9050919050565b60006020820190508181036000830152611c3081611a74565b9050919050565b60006020820190508181036000830152611c5081611a97565b9050919050565b60006020820190508181036000830152611c7081611aba565b9050919050565b6000602082019050611c8c6000830184611add565b92915050565b6000602082019050611ca76000830184611aec565b92915050565b60008190508160005260206000209050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000611cf482611d94565b9150611cff83611d94565b92508262ffffff03821115611d1757611d16611e15565b5b828201905092915050565b6000611d2d82611d94565b9150611d3883611d94565b925082821015611d4b57611d4a611e15565b5b828203905092915050565b6000611d6182611d74565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b600060ff82169050919050565b60005b83811015611dce578082015181840152602081019050611db3565b83811115611ddd576000848401525b50505050565b60006002820490506001821680611dfb57607f821691505b60208210811415611e0f57611e0e611e44565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4e465469636b65743a20617070726f76652066726f6d20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b7f4e465469636b65743a20617070726f766520746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4e465469636b65743a207472616e736665722066726f6d20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b7f4e465469636b65743a206d696e7420746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4e465469636b65743a207472616e7366657220746f20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6120b981611d56565b81146120c457600080fd5b50565b6120d081611d94565b81146120db57600080fd5b5056fe4e465469636b65743a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4e465469636b65743a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654e465469636b65743a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a26469706673582212204a37c4361e97ade24846a6a1bf3e7f0e7bb64fce94c9d6b1aabf6fc31a6378db64736f6c63430008020033