{
  "_format": "hh-sol-artifact-1",
  "contractName": "EdgeSwarm",
  "sourceName": "contracts/EdgeSwarm.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "allowance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "needed",
          "type": "uint256"
        }
      ],
      "name": "ERC20InsufficientAllowance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "needed",
          "type": "uint256"
        }
      ],
      "name": "ERC20InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "approver",
          "type": "address"
        }
      ],
      "name": "ERC20InvalidApprover",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        }
      ],
      "name": "ERC20InvalidReceiver",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "ERC20InvalidSender",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "ERC20InvalidSpender",
      "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"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "worker",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "taskId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "int256",
          "name": "score",
          "type": "int256"
        }
      ],
      "name": "WorkVerified",
      "type": "event"
    },
    {
      "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": "value",
          "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": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "ledger",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "taskId",
          "type": "uint256"
        },
        {
          "internalType": "int256",
          "name": "predictionScore",
          "type": "int256"
        },
        {
          "internalType": "address",
          "name": "worker",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_taskId",
          "type": "uint256"
        },
        {
          "internalType": "int256",
          "name": "_score",
          "type": "int256"
        }
      ],
      "name": "submitWork",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "ubiEarned",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600b81526020017f537761726d20546f6b656e0000000000000000000000000000000000000000008152506040518060400160405280600381526020017f53574d000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000365565b508060049081620000a1919062000365565b50505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200044c565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016d57607f821691505b60208210810362000183576200018262000125565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ed7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001ae565b620001f98683620001ae565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000246620002406200023a8462000211565b6200021b565b62000211565b9050919050565b6000819050919050565b620002628362000225565b6200027a62000271826200024d565b848454620001bb565b825550505050565b600090565b6200029162000282565b6200029e81848462000257565b505050565b5b81811015620002c657620002ba60008262000287565b600181019050620002a4565b5050565b601f8211156200031557620002df8162000189565b620002ea846200019e565b81016020851015620002fa578190505b6200031262000309856200019e565b830182620002a3565b50505b505050565b600082821c905092915050565b60006200033a600019846008026200031a565b1980831691505092915050565b600062000355838362000327565b9150826002028217905092915050565b6200037082620000eb565b67ffffffffffffffff8111156200038c576200038b620000f6565b5b62000398825462000154565b620003a5828285620002ca565b600060209050601f831160018114620003dd5760008415620003c8578287015190505b620003d4858262000347565b86555062000444565b601f198416620003ed8662000189565b60005b828110156200041757848901518255600182019150602085019450602081019050620003f0565b8683101562000437578489015162000433601f89168262000327565b8355505b6001600288020188555050505b505050505050565b6113df806200045c6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633e514bac1161008c57806395d89b411161006657806395d89b411461022b578063a9059cbb14610249578063bd4bbeb914610279578063dd62ed3e146102a9576100cf565b80633e514bac146101c157806370a08231146101dd5780638da5cb5b1461020d576100cf565b806306fdde03146100d4578063095ea7b3146100f257806310a7fd7b1461012257806318160ddd1461015557806323b872dd14610173578063313ce567146101a3575b600080fd5b6100dc6102d9565b6040516100e99190610ea7565b60405180910390f35b61010c60048036038101906101079190610f62565b61036b565b6040516101199190610fbd565b60405180910390f35b61013c60048036038101906101379190610fd8565b61038e565b60405161014c949392919061103c565b60405180910390f35b61015d6103de565b60405161016a9190611081565b60405180910390f35b61018d6004803603810190610188919061109c565b6103e8565b60405161019a9190610fbd565b60405180910390f35b6101ab610417565b6040516101b8919061110b565b60405180910390f35b6101db60048036038101906101d69190611152565b610420565b005b6101f760048036038101906101f29190611192565b610634565b6040516102049190611081565b60405180910390f35b61021561067c565b60405161022291906111bf565b60405180910390f35b6102336106a2565b6040516102409190610ea7565b60405180910390f35b610263600480360381019061025e9190610f62565b610734565b6040516102709190610fbd565b60405180910390f35b610293600480360381019061028e9190611192565b610757565b6040516102a09190611081565b60405180910390f35b6102c360048036038101906102be91906111da565b61076f565b6040516102d09190611081565b60405180910390f35b6060600380546102e890611249565b80601f016020809104026020016040519081016040528092919081815260200182805461031490611249565b80156103615780601f1061033657610100808354040283529160200191610361565b820191906000526020600020905b81548152906001019060200180831161034457829003601f168201915b5050505050905090565b6000806103766107f6565b90506103838185856107fe565b600191505092915050565b60076020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154905084565b6000600254905090565b6000806103f36107f6565b9050610400858285610810565b61040b8585856108a5565b60019150509392505050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff166007600084815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104bc906112c6565b60405180910390fd5b60405180608001604052808381526020018281526020013373ffffffffffffffffffffffffffffffffffffffff1681526020014281525060076000848152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301559050506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105c79190611315565b925050819055506105e033670de0b6b3a7640000610999565b3373ffffffffffffffffffffffffffffffffffffffff167fe46984a7cb6a34125cc7ad2328662abe47b36cf2cefd04f2bdb4d3a74dfd484e8383604051610628929190611349565b60405180910390a25050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546106b190611249565b80601f01602080910402602001604051908101604052809291908181526020018280546106dd90611249565b801561072a5780601f106106ff5761010080835404028352916020019161072a565b820191906000526020600020905b81548152906001019060200180831161070d57829003601f168201915b5050505050905090565b60008061073f6107f6565b905061074c8185856108a5565b600191505092915050565b60066020528060005260406000206000915090505481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b61080b8383836001610a1b565b505050565b600061081c848461076f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561089f578181101561088f578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161088693929190611372565b60405180910390fd5b61089e84848484036000610a1b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109175760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161090e91906111bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109895760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161098091906111bf565b60405180910390fd5b610994838383610bf2565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a0b5760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610a0291906111bf565b60405180910390fd5b610a1760008383610bf2565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610a8d5760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610a8491906111bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610aff5760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610af691906111bf565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610bec578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610be39190611081565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c44578060026000828254610c389190611315565b92505081905550610d17565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610cd0578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610cc793929190611372565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d605780600260008282540392505081905550610dad565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e0a9190611081565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610e51578082015181840152602081019050610e36565b60008484015250505050565b6000601f19601f8301169050919050565b6000610e7982610e17565b610e838185610e22565b9350610e93818560208601610e33565b610e9c81610e5d565b840191505092915050565b60006020820190508181036000830152610ec18184610e6e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef982610ece565b9050919050565b610f0981610eee565b8114610f1457600080fd5b50565b600081359050610f2681610f00565b92915050565b6000819050919050565b610f3f81610f2c565b8114610f4a57600080fd5b50565b600081359050610f5c81610f36565b92915050565b60008060408385031215610f7957610f78610ec9565b5b6000610f8785828601610f17565b9250506020610f9885828601610f4d565b9150509250929050565b60008115159050919050565b610fb781610fa2565b82525050565b6000602082019050610fd26000830184610fae565b92915050565b600060208284031215610fee57610fed610ec9565b5b6000610ffc84828501610f4d565b91505092915050565b61100e81610f2c565b82525050565b6000819050919050565b61102781611014565b82525050565b61103681610eee565b82525050565b60006080820190506110516000830187611005565b61105e602083018661101e565b61106b604083018561102d565b6110786060830184611005565b95945050505050565b60006020820190506110966000830184611005565b92915050565b6000806000606084860312156110b5576110b4610ec9565b5b60006110c386828701610f17565b93505060206110d486828701610f17565b92505060406110e586828701610f4d565b9150509250925092565b600060ff82169050919050565b611105816110ef565b82525050565b600060208201905061112060008301846110fc565b92915050565b61112f81611014565b811461113a57600080fd5b50565b60008135905061114c81611126565b92915050565b6000806040838503121561116957611168610ec9565b5b600061117785828601610f4d565b92505060206111888582860161113d565b9150509250929050565b6000602082840312156111a8576111a7610ec9565b5b60006111b684828501610f17565b91505092915050565b60006020820190506111d4600083018461102d565b92915050565b600080604083850312156111f1576111f0610ec9565b5b60006111ff85828601610f17565b925050602061121085828601610f17565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061126157607f821691505b6020821081036112745761127361121a565b5b50919050565b7f5461736b20616c726561647920636f6d706c6574656400000000000000000000600082015250565b60006112b0601683610e22565b91506112bb8261127a565b602082019050919050565b600060208201905081810360008301526112df816112a3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061132082610f2c565b915061132b83610f2c565b9250828201905080821115611343576113426112e6565b5b92915050565b600060408201905061135e6000830185611005565b61136b602083018461101e565b9392505050565b6000606082019050611387600083018661102d565b6113946020830185611005565b6113a16040830184611005565b94935050505056fea2646970667358221220c1f0bde385e3675248a393a73b37ef12c8a3117f5ca73eae6d90f04daffe9b0464736f6c63430008180033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633e514bac1161008c57806395d89b411161006657806395d89b411461022b578063a9059cbb14610249578063bd4bbeb914610279578063dd62ed3e146102a9576100cf565b80633e514bac146101c157806370a08231146101dd5780638da5cb5b1461020d576100cf565b806306fdde03146100d4578063095ea7b3146100f257806310a7fd7b1461012257806318160ddd1461015557806323b872dd14610173578063313ce567146101a3575b600080fd5b6100dc6102d9565b6040516100e99190610ea7565b60405180910390f35b61010c60048036038101906101079190610f62565b61036b565b6040516101199190610fbd565b60405180910390f35b61013c60048036038101906101379190610fd8565b61038e565b60405161014c949392919061103c565b60405180910390f35b61015d6103de565b60405161016a9190611081565b60405180910390f35b61018d6004803603810190610188919061109c565b6103e8565b60405161019a9190610fbd565b60405180910390f35b6101ab610417565b6040516101b8919061110b565b60405180910390f35b6101db60048036038101906101d69190611152565b610420565b005b6101f760048036038101906101f29190611192565b610634565b6040516102049190611081565b60405180910390f35b61021561067c565b60405161022291906111bf565b60405180910390f35b6102336106a2565b6040516102409190610ea7565b60405180910390f35b610263600480360381019061025e9190610f62565b610734565b6040516102709190610fbd565b60405180910390f35b610293600480360381019061028e9190611192565b610757565b6040516102a09190611081565b60405180910390f35b6102c360048036038101906102be91906111da565b61076f565b6040516102d09190611081565b60405180910390f35b6060600380546102e890611249565b80601f016020809104026020016040519081016040528092919081815260200182805461031490611249565b80156103615780601f1061033657610100808354040283529160200191610361565b820191906000526020600020905b81548152906001019060200180831161034457829003601f168201915b5050505050905090565b6000806103766107f6565b90506103838185856107fe565b600191505092915050565b60076020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154905084565b6000600254905090565b6000806103f36107f6565b9050610400858285610810565b61040b8585856108a5565b60019150509392505050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff166007600084815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104bc906112c6565b60405180910390fd5b60405180608001604052808381526020018281526020013373ffffffffffffffffffffffffffffffffffffffff1681526020014281525060076000848152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301559050506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105c79190611315565b925050819055506105e033670de0b6b3a7640000610999565b3373ffffffffffffffffffffffffffffffffffffffff167fe46984a7cb6a34125cc7ad2328662abe47b36cf2cefd04f2bdb4d3a74dfd484e8383604051610628929190611349565b60405180910390a25050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546106b190611249565b80601f01602080910402602001604051908101604052809291908181526020018280546106dd90611249565b801561072a5780601f106106ff5761010080835404028352916020019161072a565b820191906000526020600020905b81548152906001019060200180831161070d57829003601f168201915b5050505050905090565b60008061073f6107f6565b905061074c8185856108a5565b600191505092915050565b60066020528060005260406000206000915090505481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b61080b8383836001610a1b565b505050565b600061081c848461076f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561089f578181101561088f578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161088693929190611372565b60405180910390fd5b61089e84848484036000610a1b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109175760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161090e91906111bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109895760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161098091906111bf565b60405180910390fd5b610994838383610bf2565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a0b5760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610a0291906111bf565b60405180910390fd5b610a1760008383610bf2565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610a8d5760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610a8491906111bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610aff5760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610af691906111bf565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610bec578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610be39190611081565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c44578060026000828254610c389190611315565b92505081905550610d17565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610cd0578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610cc793929190611372565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d605780600260008282540392505081905550610dad565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e0a9190611081565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610e51578082015181840152602081019050610e36565b60008484015250505050565b6000601f19601f8301169050919050565b6000610e7982610e17565b610e838185610e22565b9350610e93818560208601610e33565b610e9c81610e5d565b840191505092915050565b60006020820190508181036000830152610ec18184610e6e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef982610ece565b9050919050565b610f0981610eee565b8114610f1457600080fd5b50565b600081359050610f2681610f00565b92915050565b6000819050919050565b610f3f81610f2c565b8114610f4a57600080fd5b50565b600081359050610f5c81610f36565b92915050565b60008060408385031215610f7957610f78610ec9565b5b6000610f8785828601610f17565b9250506020610f9885828601610f4d565b9150509250929050565b60008115159050919050565b610fb781610fa2565b82525050565b6000602082019050610fd26000830184610fae565b92915050565b600060208284031215610fee57610fed610ec9565b5b6000610ffc84828501610f4d565b91505092915050565b61100e81610f2c565b82525050565b6000819050919050565b61102781611014565b82525050565b61103681610eee565b82525050565b60006080820190506110516000830187611005565b61105e602083018661101e565b61106b604083018561102d565b6110786060830184611005565b95945050505050565b60006020820190506110966000830184611005565b92915050565b6000806000606084860312156110b5576110b4610ec9565b5b60006110c386828701610f17565b93505060206110d486828701610f17565b92505060406110e586828701610f4d565b9150509250925092565b600060ff82169050919050565b611105816110ef565b82525050565b600060208201905061112060008301846110fc565b92915050565b61112f81611014565b811461113a57600080fd5b50565b60008135905061114c81611126565b92915050565b6000806040838503121561116957611168610ec9565b5b600061117785828601610f4d565b92505060206111888582860161113d565b9150509250929050565b6000602082840312156111a8576111a7610ec9565b5b60006111b684828501610f17565b91505092915050565b60006020820190506111d4600083018461102d565b92915050565b600080604083850312156111f1576111f0610ec9565b5b60006111ff85828601610f17565b925050602061121085828601610f17565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061126157607f821691505b6020821081036112745761127361121a565b5b50919050565b7f5461736b20616c726561647920636f6d706c6574656400000000000000000000600082015250565b60006112b0601683610e22565b91506112bb8261127a565b602082019050919050565b600060208201905081810360008301526112df816112a3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061132082610f2c565b915061132b83610f2c565b9250828201905080821115611343576113426112e6565b5b92915050565b600060408201905061135e6000830185611005565b61136b602083018461101e565b9392505050565b6000606082019050611387600083018661102d565b6113946020830185611005565b6113a16040830184611005565b94935050505056fea2646970667358221220c1f0bde385e3675248a393a73b37ef12c8a3117f5ca73eae6d90f04daffe9b0464736f6c63430008180033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}