{
  "_format": "hh-sol-artifact-1",
  "contractName": "InflationaryToken",
  "sourceName": "src/contracts/mixins/InflationaryToken.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "initialTokenHolder",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_cowDao",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "totalSupply",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "erc20Name",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "erc20Symbol",
          "type": "string"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "AlreadyInflated",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ExceedingMintCap",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "OnlyCowDao",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DOMAIN_SEPARATOR",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MAX_YEARLY_INFLATION",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "TIME_BETWEEN_MINTINGS",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "cowDao",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "mint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "nonces",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "v",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "r",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "permit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "timestampLastMinting",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x6101806040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c96101405260006006553480156200003c57600080fd5b5060405162001c9e38038062001c9e8339810160408190526200005f91620003de565b8180604051806040016040528060018152602001603160f81b81525084848160039080519060200190620000959291906200024e565b508051620000ab9060049060208401906200024e565b5050825160209384012082519284019290922060e08390526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818901819052818301979097526060810194909452608080850193909352308483018190528151808603909301835260c09485019091528151919096012090529290925261012052506200014b9050858462000166565b5050506001600160a01b0316610160525042600655620004dc565b6001600160a01b038216620001c15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620001d5919062000478565b90915550506001600160a01b038216600090815260208190526040812080548392906200020490849062000478565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b8280546200025c906200049f565b90600052602060002090601f016020900481019282620002805760008555620002cb565b82601f106200029b57805160ff1916838001178555620002cb565b82800160010185558215620002cb579182015b82811115620002cb578251825591602001919060010190620002ae565b50620002d9929150620002dd565b5090565b5b80821115620002d95760008155600101620002de565b80516001600160a01b03811681146200030c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200033957600080fd5b81516001600160401b038082111562000356576200035662000311565b604051601f8301601f19908116603f0116810190828211818310171562000381576200038162000311565b816040528381526020925086838588010111156200039e57600080fd5b600091505b83821015620003c25785820183015181830184015290820190620003a3565b83821115620003d45760008385830101525b9695505050505050565b600080600080600060a08688031215620003f757600080fd5b6200040286620002f4565b94506200041260208701620002f4565b6040870151606088015191955093506001600160401b03808211156200043757600080fd5b6200044589838a0162000327565b935060808801519150808211156200045c57600080fd5b506200046b8882890162000327565b9150509295509295909350565b600082198211156200049a57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680620004b457607f821691505b60208210811415620004d657634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e0516101005161012051610140516101605161175562000549600039600081816102e30152610536015260006107d301526000610e2201526000610e7101526000610e4c01526000610da501526000610dcf01526000610df901526117556000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806370a08231116100cd578063cd42dcbe11610081578063dd62ed3e11610066578063dd62ed3e14610298578063e2d51489146102de578063fde9e07a1461032a57600080fd5b8063cd42dcbe1461027a578063d505accf1461028557600080fd5b806395d89b41116100b257806395d89b411461024c578063a457c2d714610254578063a9059cbb1461026757600080fd5b806370a08231146102035780637ecebe001461023957600080fd5b8063313ce56711610124578063395093511161010957806339509351146101d357806340c10f19146101e65780635862bf3d146101fb57600080fd5b8063313ce567146101bc5780633644e515146101cb57600080fd5b806306fdde0314610156578063095ea7b31461017457806318160ddd1461019757806323b872dd146101a9575b600080fd5b61015e610333565b60405161016b9190611419565b60405180910390f35b6101876101823660046114b5565b6103c5565b604051901515815260200161016b565b6002545b60405190815260200161016b565b6101876101b73660046114df565b6103db565b6040516012815260200161016b565b61019b6104c6565b6101876101e13660046114b5565b6104d5565b6101f96101f43660046114b5565b61051e565b005b61019b600381565b61019b61021136600461151b565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61019b61024736600461151b565b610644565b61015e610671565b6101876102623660046114b5565b610680565b6101876102753660046114b5565b610758565b61019b6301e1338081565b6101f961029336600461153d565b610765565b61019b6102a63660046115b0565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6103057f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161016b565b61019b60065481565b606060038054610342906115e3565b80601f016020809104026020016040519081016040528092919081815260200182805461036e906115e3565b80156103bb5780601f10610390576101008083540402835291602001916103bb565b820191906000526020600020905b81548152906001019060200180831161039e57829003601f168201915b5050505050905090565b60006103d2338484610924565b50600192915050565b60006103e8848484610ad7565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600160209081526040808320338452909152902054828110156104ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104bb8533858403610924565b506001949350505050565b60006104d0610d8b565b905090565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916103d2918590610519908690611660565b610924565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461058d576040517ffe72c36e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6064600361059a60025490565b6105a49190611678565b6105ae91906116b5565b8111156105e7576040517f2c6af20800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b426301e133806006546105fa9190611660565b1115610632576040517f7b06471500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b426006556106408282610ebf565b5050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600560205260408120545b92915050565b606060048054610342906115e3565b33600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915281205482811015610741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016104a5565b61074e3385858403610924565b5060019392505050565b60006103d2338484610ad7565b834211156107cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016104a5565b60007f00000000000000000000000000000000000000000000000000000000000000008888886107fe8c610fdf565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061086682611014565b905060006108768287878761107d565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461090d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016104a5565b6109188a8a8a610924565b50505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff83166109c6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104a5565b73ffffffffffffffffffffffffffffffffffffffff8216610a69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104a5565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610b7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104a5565b73ffffffffffffffffffffffffffffffffffffffff8216610c1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104a5565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610cd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016104a5565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610d17908490611660565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d7d91815260200190565b60405180910390a350505050565b60003073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015610df157507f000000000000000000000000000000000000000000000000000000000000000046145b15610e1b57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b73ffffffffffffffffffffffffffffffffffffffff8216610f3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104a5565b8060026000828254610f4e9190611660565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610f88908490611660565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005602052604090208054600181018255905b50919050565b600061066b611021610d8b565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061108e878787876110a5565b9150915061109b816111bd565b5095945050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156110dc57506000905060036111b4565b8460ff16601b141580156110f457508460ff16601c14155b1561110557506000905060046111b4565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611159573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166111ad576000600192509250506111b4565b9150600090505b94509492505050565b60008160048111156111d1576111d16116f0565b14156111da5750565b60018160048111156111ee576111ee6116f0565b1415611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016104a5565b600281600481111561126a5761126a6116f0565b14156112d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016104a5565b60038160048111156112e6576112e66116f0565b1415611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016104a5565b6004816004811115611388576113886116f0565b1415611416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016104a5565b50565b600060208083528351808285015260005b818110156114465785810183015185820160400152820161142a565b81811115611458576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146114b057600080fd5b919050565b600080604083850312156114c857600080fd5b6114d18361148c565b946020939093013593505050565b6000806000606084860312156114f457600080fd5b6114fd8461148c565b925061150b6020850161148c565b9150604084013590509250925092565b60006020828403121561152d57600080fd5b6115368261148c565b9392505050565b600080600080600080600060e0888a03121561155857600080fd5b6115618861148c565b965061156f6020890161148c565b95506040880135945060608801359350608088013560ff8116811461159357600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156115c357600080fd5b6115cc8361148c565b91506115da6020840161148c565b90509250929050565b600181811c908216806115f757607f821691505b6020821081141561100e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561167357611673611631565b500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156116b0576116b0611631565b500290565b6000826116eb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea26469706673582212203adb41b6b3b0168db5fa3bbff9ca2456b27919c2c6bb5fcab501c264f194eb0e64736f6c634300080a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101515760003560e01c806370a08231116100cd578063cd42dcbe11610081578063dd62ed3e11610066578063dd62ed3e14610298578063e2d51489146102de578063fde9e07a1461032a57600080fd5b8063cd42dcbe1461027a578063d505accf1461028557600080fd5b806395d89b41116100b257806395d89b411461024c578063a457c2d714610254578063a9059cbb1461026757600080fd5b806370a08231146102035780637ecebe001461023957600080fd5b8063313ce56711610124578063395093511161010957806339509351146101d357806340c10f19146101e65780635862bf3d146101fb57600080fd5b8063313ce567146101bc5780633644e515146101cb57600080fd5b806306fdde0314610156578063095ea7b31461017457806318160ddd1461019757806323b872dd146101a9575b600080fd5b61015e610333565b60405161016b9190611419565b60405180910390f35b6101876101823660046114b5565b6103c5565b604051901515815260200161016b565b6002545b60405190815260200161016b565b6101876101b73660046114df565b6103db565b6040516012815260200161016b565b61019b6104c6565b6101876101e13660046114b5565b6104d5565b6101f96101f43660046114b5565b61051e565b005b61019b600381565b61019b61021136600461151b565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61019b61024736600461151b565b610644565b61015e610671565b6101876102623660046114b5565b610680565b6101876102753660046114b5565b610758565b61019b6301e1338081565b6101f961029336600461153d565b610765565b61019b6102a63660046115b0565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6103057f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161016b565b61019b60065481565b606060038054610342906115e3565b80601f016020809104026020016040519081016040528092919081815260200182805461036e906115e3565b80156103bb5780601f10610390576101008083540402835291602001916103bb565b820191906000526020600020905b81548152906001019060200180831161039e57829003601f168201915b5050505050905090565b60006103d2338484610924565b50600192915050565b60006103e8848484610ad7565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600160209081526040808320338452909152902054828110156104ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104bb8533858403610924565b506001949350505050565b60006104d0610d8b565b905090565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916103d2918590610519908690611660565b610924565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461058d576040517ffe72c36e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6064600361059a60025490565b6105a49190611678565b6105ae91906116b5565b8111156105e7576040517f2c6af20800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b426301e133806006546105fa9190611660565b1115610632576040517f7b06471500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b426006556106408282610ebf565b5050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600560205260408120545b92915050565b606060048054610342906115e3565b33600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915281205482811015610741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016104a5565b61074e3385858403610924565b5060019392505050565b60006103d2338484610ad7565b834211156107cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016104a5565b60007f00000000000000000000000000000000000000000000000000000000000000008888886107fe8c610fdf565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061086682611014565b905060006108768287878761107d565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461090d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016104a5565b6109188a8a8a610924565b50505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff83166109c6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104a5565b73ffffffffffffffffffffffffffffffffffffffff8216610a69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104a5565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610b7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104a5565b73ffffffffffffffffffffffffffffffffffffffff8216610c1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104a5565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610cd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016104a5565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610d17908490611660565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d7d91815260200190565b60405180910390a350505050565b60003073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015610df157507f000000000000000000000000000000000000000000000000000000000000000046145b15610e1b57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b73ffffffffffffffffffffffffffffffffffffffff8216610f3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104a5565b8060026000828254610f4e9190611660565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610f88908490611660565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005602052604090208054600181018255905b50919050565b600061066b611021610d8b565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061108e878787876110a5565b9150915061109b816111bd565b5095945050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156110dc57506000905060036111b4565b8460ff16601b141580156110f457508460ff16601c14155b1561110557506000905060046111b4565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611159573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166111ad576000600192509250506111b4565b9150600090505b94509492505050565b60008160048111156111d1576111d16116f0565b14156111da5750565b60018160048111156111ee576111ee6116f0565b1415611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016104a5565b600281600481111561126a5761126a6116f0565b14156112d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016104a5565b60038160048111156112e6576112e66116f0565b1415611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016104a5565b6004816004811115611388576113886116f0565b1415611416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016104a5565b50565b600060208083528351808285015260005b818110156114465785810183015185820160400152820161142a565b81811115611458576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146114b057600080fd5b919050565b600080604083850312156114c857600080fd5b6114d18361148c565b946020939093013593505050565b6000806000606084860312156114f457600080fd5b6114fd8461148c565b925061150b6020850161148c565b9150604084013590509250925092565b60006020828403121561152d57600080fd5b6115368261148c565b9392505050565b600080600080600080600060e0888a03121561155857600080fd5b6115618861148c565b965061156f6020890161148c565b95506040880135945060608801359350608088013560ff8116811461159357600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156115c357600080fd5b6115cc8361148c565b91506115da6020840161148c565b90509250929050565b600181811c908216806115f757607f821691505b6020821081141561100e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561167357611673611631565b500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156116b0576116b0611631565b500290565b6000826116eb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea26469706673582212203adb41b6b3b0168db5fa3bbff9ca2456b27919c2c6bb5fcab501c264f194eb0e64736f6c634300080a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
