{ "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "string", "name": "dataKey", "type": "string" }, { "indexed": false, "internalType": "string", "name": "ipfsCid", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "BackupCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "appealer", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "success", "type": "bool" } ], "name": "EntryAppealed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "contributor", "type": "address" }, { "indexed": false, "internalType": "string", "name": "reason", "type": "string" } ], "name": "EntryBurned", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "phrase", "type": "string" }, { "indexed": true, "internalType": "address", "name": "proposer", "type": "address" } ], "name": "EntryProposed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "rejector", "type": "address" }, { "indexed": false, "internalType": "string", "name": "reason", "type": "string" } ], "name": "EntryRejected", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "verifier", "type": "address" } ], "name": "EntryVerified", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "researcher", "type": "address" }, { "indexed": false, "internalType": "string", "name": "dialect", "type": "string" }, { "indexed": false, "internalType": "string", "name": "newRole", "type": "string" } ], "name": "RankUpgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "researcher", "type": "address" }, { "indexed": false, "internalType": "string", "name": "dialect", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ReputationMinted", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "appealCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" }, { "internalType": "address", "name": "_appealer", "type": "address" } ], "name": "appealEntry", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "", "type": "string" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "backups", "outputs": [ { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "string", "name": "dataType", "type": "string" }, { "internalType": "string", "name": "ipfsCid", "type": "string" }, { "internalType": "string", "name": "description", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_users", "type": "address[]" }, { "internalType": "string[]", "name": "_dialects", "type": "string[]" }, { "internalType": "uint256[]", "name": "_xps", "type": "uint256[]" } ], "name": "batchMigrateXP", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "burnReasons", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_dataKey", "type": "string" }, { "internalType": "string", "name": "_dataType", "type": "string" }, { "internalType": "string", "name": "_ipfsCid", "type": "string" }, { "internalType": "string", "name": "_description", "type": "string" } ], "name": "createBackup", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "entries", "outputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "string", "name": "phrase", "type": "string" }, { "internalType": "string", "name": "dialect", "type": "string" }, { "internalType": "string", "name": "ipfsCid", "type": "string" }, { "internalType": "address", "name": "contributor", "type": "address" }, { "internalType": "string", "name": "licenseType", "type": "string" }, { "internalType": "uint256", "name": "verificationCount", "type": "uint256" }, { "internalType": "uint256", "name": "rejectionCount", "type": "uint256" }, { "internalType": "bool", "name": "isVerified", "type": "bool" }, { "internalType": "bool", "name": "isBurned", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "entryCounter", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" }, { "internalType": "string", "name": "_dialect", "type": "string" } ], "name": "getRole", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" }, { "internalType": "string", "name": "_dialect", "type": "string" } ], "name": "getXP", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "hasAppealed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "hasVoted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isAdmin", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isRegistered", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "labAdmin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_phrase", "type": "string" }, { "internalType": "string", "name": "_dialect", "type": "string" }, { "internalType": "string", "name": "_ipfsCid", "type": "string" }, { "internalType": "string", "name": "_license", "type": "string" }, { "internalType": "address", "name": "_contributor", "type": "address" } ], "name": "proposeEntry", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" }, { "internalType": "address", "name": "_rejector", "type": "address" }, { "internalType": "string", "name": "_reason", "type": "string" } ], "name": "rejectEntry", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "rejectorsList", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "string", "name": "", "type": "string" } ], "name": "userRole", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "string", "name": "", "type": "string" } ], "name": "userXP", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" }, { "internalType": "address", "name": "_verifier", "type": "address" } ], "name": "verifyEntry", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "608060405234801561001057600080fd5b5033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550614988806100b96000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80636fecc578116100c357806398c654441161007c57806398c65444146103ea578063adeb94221461041a578063b30906d41461044a578063b6602c3a14610483578063c3c5a5471461049f578063e8a3c5a7146104cf5761014d565b80636fecc5781461030257806386c8ce7f1461031e5780638b9230a31461033c5780638f28660f1461036c578063945c12b81461039c57806395d89b41146103cc5761014d565b80632dfd9451116101155780632dfd94511461021c57806334feec731461024c578063414b5ef214610268578063438596321461029857806362da8313146102c85780636e12e1fd146102e65761014d565b806306fdde031461015257806308a0e3131461017057806312950c97146101a057806324d7806c146101bc578063284499fd146101ec575b600080fd5b61015a610502565b6040516101679190614298565b60405180910390f35b61018a60048036038101906101859190613b93565b61051e565b6040516101979190614481565b60405180910390f35b6101ba60048036038101906101b59190613ce7565b6109d4565b005b6101d660048036038101906101d191906139bc565b610f35565b6040516101e3919061427d565b60405180910390f35b610206600480360381019061020191906139e5565b610f55565b6040516102139190614481565b60405180910390f35b610236600480360381019061023191906139e5565b610f90565b6040516102439190614298565b60405180910390f35b61026660048036038101906102619190613d23565b611053565b005b610282600480360381019061027d9190613cbe565b61167a565b60405161028f9190614481565b60405180910390f35b6102b260048036038101906102ad9190613ce7565b611692565b6040516102bf919061427d565b60405180910390f35b6102d06116c1565b6040516102dd9190614481565b60405180910390f35b61030060048036038101906102fb9190613a39565b6116c7565b005b61031c60048036038101906103179190613ce7565b611a99565b005b6103266123cf565b6040516103339190614262565b60405180910390f35b61035660048036038101906103519190613ce7565b6123f5565b604051610363919061427d565b60405180910390f35b610386600480360381019061038191906139e5565b612424565b6040516103939190614481565b60405180910390f35b6103b660048036038101906103b191906139e5565b61248a565b6040516103c39190614298565b60405180910390f35b6103d46126b5565b6040516103e19190614298565b60405180910390f35b61040460048036038101906103ff9190613d8a565b6126ee565b6040516104119190614262565b60405180910390f35b610434600480360381019061042f9190613cbe565b61273c565b6040516104419190614298565b60405180910390f35b610464600480360381019061045f9190613cbe565b6127dc565b60405161047a9a999897969594939291906144f6565b60405180910390f35b61049d60048036038101906104989190613ad0565b612a8a565b005b6104b960048036038101906104b491906139bc565b612c40565b6040516104c6919061427d565b60405180910390f35b6104e960048036038101906104e49190613c6a565b612c60565b6040516104f9949392919061449c565b60405180910390f35b60405180606001604052806028815260200161492b6028913981565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a790614401565b60405180910390fd5b600560008154809291906105c390614815565b919050555060405180610140016040528060055481526020018781526020018681526020018581526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018481526020016000815260200160008152602001600015158152602001600015158152506006600060055481526020019081526020016000206000820151816000015560208201518160010190805190602001906106699291906136d4565b5060408201518160020190805190602001906106869291906136d4565b5060608201518160030190805190602001906106a39291906136d4565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050190805190602001906107079291906136d4565b5060c0820151816006015560e082015181600701556101008201518160080160006101000a81548160ff0219169083151502179055506101208201518160080160016101000a81548160ff0219169083151502179055509050508173ffffffffffffffffffffffffffffffffffffffff166005547f41bbb82aa0096a4ef6e73d180bcf005a06dae558a2bd374fefd8e9d3d116d693886040516107aa9190614298565b60405180910390a36000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661085a5760016000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020866040516108a99190614234565b908152602001604051809103902080546108c2906147e3565b905014801561091b5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156109c6576040518060400160405280600881526020017f496e697469617465000000000000000000000000000000000000000000000000815250600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020866040516109a39190614234565b908152602001604051809103902090805190602001906109c49291906136d4565b505b600554905095945050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5b90614401565b60405180910390fd5b60006006600084815260200190815260200160002090508060080160009054906101000a900460ff16158015610aa957508060080160019054906101000a900460ff16155b610ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adf90614361565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7290614441565b60405180910390fd5b6007600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1090614321565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082600201604051610c6b919061424b565b90815260200160405180910390208054610c84906147e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb0906147e3565b8015610cfd5780601f10610cd257610100808354040283529160200191610cfd565b820191906000526020600020905b815481529060010190602001808311610ce057829003601f168201915b505050505090506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905060006040518060400160405280600681526020017f4f7261636c6500000000000000000000000000000000000000000000000000008152508051906020012083805190602001201490508180610da85750805b610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde906143a1565b60405180910390fd5b60016007600088815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ee885856002018054610e63906147e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8f906147e3565b8015610edc5780601f10610eb157610100808354040283529160200191610edc565b820191906000526020600020905b815481529060010190602001808311610ebf57829003601f168201915b5050505050600a612e5b565b8115610efc57610ef786612f2c565b610f2d565b836006016000815480929190610f1190614815565b91905055506002846006015410610f2c57610f2b86612f2c565b5b5b505050505050565b60036020528060005260406000206000915054906101000a900460ff1681565b600160205281600052604060002081805160208101820180518482526020830160208501208183528095505050505050600091509150505481565b600260205281600052604060002081805160208101820180518482526020830160208501208183528095505050505050600091509150508054610fd2906147e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610ffe906147e3565b801561104b5780601f106110205761010080835404028352916020019161104b565b820191906000526020600020905b81548152906001019060200180831161102e57829003601f168201915b505050505081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110da90614401565b60405180910390fd5b60006006600085815260200190815260200160002090508060080160009054906101000a900460ff1615801561112857508060080160019054906101000a900460ff16155b611167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115e90614361565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f190614381565b60405180910390fd5b6007600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90614321565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826002016040516112ea919061424b565b90815260200160405180910390208054611303906147e3565b80601f016020809104026020016040519081016040528092919081815260200182805461132f906147e3565b801561137c5780601f106113515761010080835404028352916020019161137c565b820191906000526020600020905b81548152906001019060200180831161135f57829003601f168201915b505050505090506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905060006040518060400160405280600681526020017f4f7261636c65000000000000000000000000000000000000000000000000000081525080519060200120838051906020012014905081806114275750805b611466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145d90614421565b60405180910390fd5b60016007600089815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060096000888152602001908152602001600020869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115db86856002018054611556906147e3565b80601f0160208091040260200160405190810160405280929190818152602001828054611582906147e3565b80156115cf5780601f106115a4576101008083540402835291602001916115cf565b820191906000526020600020905b8154815290600101906020018083116115b257829003601f168201915b5050505050600a612e5b565b8573ffffffffffffffffffffffffffffffffffffffff16877fb1afc6ed6ca71004336b58c0e9e739a284c4cb503388fa76dd427e3d01e9a000876040516116229190614298565b60405180910390a3811561163f5761163a8786613082565b611671565b83600701600081548092919061165490614815565b919050555060038460070154106116705761166f8786613082565b5b5b50505050505050565b600a6020528060005260406000206000915090505481565b60076020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60055481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174e90614401565b60405180910390fd5b81518351148015611769575080518351145b6117a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179f90614341565b60405180910390fd5b60005b8351811015611a93578181815181106117ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015160016000868481518110611832577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208483815181106118ad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516040516118c29190614234565b908152602001604051809103902060008282546118df91906146cf565b92505081905550611970848281518110611922577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151848381518110611963577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151613353565b8381815181106119a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f2341c40037e380756373b1c69fa038becf66d4f6412fc98cf777cd51e2907bca848381518110611a21577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151848481518110611a62577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151604051611a789291906142f1565b60405180910390a28080611a8b90614815565b9150506117ab565b50505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2090614401565b60405180910390fd5b60006006600084815260200190815260200160002090508060080160019054906101000a900460ff16611b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b88906143c1565b60405180910390fd5b600b600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611c2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2690614461565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082600201604051611c81919061424b565b90815260200160405180910390208054611c9a906147e3565b80601f0160208091040260200160405190810160405280929190818152602001828054611cc6906147e3565b8015611d135780601f10611ce857610100808354040283529160200191611d13565b820191906000526020600020905b815481529060010190602001808311611cf657829003601f168201915b505050505090506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905060006040518060400160405280600681526020017f4f7261636c6500000000000000000000000000000000000000000000000000008152508051906020012083805190602001201490508180611dbe5750805b611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df4906143e1565b60405180910390fd5b6001600b600088815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a60008781526020019081526020016000206000815480929190611e8a90614815565b9190505550611f2785856002018054611ea2906147e3565b80601f0160208091040260200160405190810160405280929190818152602001828054611ece906147e3565b8015611f1b5780601f10611ef057610100808354040283529160200191611f1b565b820191906000526020600020905b815481529060010190602001808311611efe57829003601f168201915b5050505050600a612e5b565b8180611f4757506002600a60008881526020019081526020016000205410155b156123765760008460080160016101000a81548160ff02191690831515021790555060018460080160006101000a81548160ff0219169083151502179055506120428460040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856002018054611fbd906147e3565b80601f0160208091040260200160405190810160405280929190818152602001828054611fe9906147e3565b80156120365780601f1061200b57610100808354040283529160200191612036565b820191906000526020600020905b81548152906001019060200180831161201957829003601f168201915b5050505050603c612e5b565b6000600960008881526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156120d757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161208d575b5050505050905060005b815181101561231f576000828281518110612125577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101519050600f600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002088600201604051612181919061424b565b9081526020016040518091039020541061221057600f600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020886002016040516121e7919061424b565b908152602001604051809103902060008282546122049190614725565b92505081905550612275565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002088600201604051612262919061424b565b9081526020016040518091039020819055505b61230b81886002018054612288906147e3565b80601f01602080910402602001604051908101604052809291908181526020018280546122b4906147e3565b80156123015780601f106122d657610100808354040283529160200191612301565b820191906000526020600020905b8154815290600101906020018083116122e457829003601f168201915b5050505050613353565b50808061231790614815565b9150506120e1565b508573ffffffffffffffffffffffffffffffffffffffff16877f37db5ddfcb03227d73359644183917f3089b436c398a084d556460db71e8be2e6001604051612368919061427d565b60405180910390a3506123c7565b8473ffffffffffffffffffffffffffffffffffffffff16867f37db5ddfcb03227d73359644183917f3089b436c398a084d556460db71e8be2e60006040516123be919061427d565b60405180910390a35b505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826040516124739190614234565b908152602001604051809103902054905092915050565b6060600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561251b576040518060400160405280600581526020017f41646d696e00000000000000000000000000000000000000000000000000000081525090506126af565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208360405161256a9190614234565b90815260200160405180910390208054612583906147e3565b905014156125c8576040518060400160405280600881526020017f496e69746961746500000000000000000000000000000000000000000000000081525090506126af565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826040516126159190614234565b9081526020016040518091039020805461262e906147e3565b80601f016020809104026020016040519081016040528092919081815260200182805461265a906147e3565b80156126a75780601f1061267c576101008083540402835291602001916126a7565b820191906000526020600020905b81548152906001019060200180831161268a57829003601f168201915b505050505090505b92915050565b6040518060400160405280601181526020017f505552452042492d564552534154494f4e00000000000000000000000000000081525081565b6009602052816000526040600020818154811061270a57600080fd5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6008602052806000526040600020600091509050805461275b906147e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612787906147e3565b80156127d45780601f106127a9576101008083540402835291602001916127d4565b820191906000526020600020905b8154815290600101906020018083116127b757829003601f168201915b505050505081565b6006602052806000526040600020600091509050806000015490806001018054612805906147e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612831906147e3565b801561287e5780601f106128535761010080835404028352916020019161287e565b820191906000526020600020905b81548152906001019060200180831161286157829003601f168201915b505050505090806002018054612893906147e3565b80601f01602080910402602001604051908101604052809291908181526020018280546128bf906147e3565b801561290c5780601f106128e15761010080835404028352916020019161290c565b820191906000526020600020905b8154815290600101906020018083116128ef57829003601f168201915b505050505090806003018054612921906147e3565b80601f016020809104026020016040519081016040528092919081815260200182805461294d906147e3565b801561299a5780601f1061296f5761010080835404028352916020019161299a565b820191906000526020600020905b81548152906001019060200180831161297d57829003601f168201915b5050505050908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050180546129d5906147e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612a01906147e3565b8015612a4e5780601f10612a2357610100808354040283529160200191612a4e565b820191906000526020600020905b815481529060010190602001808311612a3157829003601f168201915b5050505050908060060154908060070154908060080160009054906101000a900460ff16908060080160019054906101000a900460ff1690508a565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1190614401565b60405180910390fd5b60006040518060800160405280428152602001858152602001848152602001838152509050600c85604051612b4f9190614234565b9081526020016040518091039020819080600181540180825580915050600190039060005260206000209060040201600090919091909150600082015181600001556020820151816001019080519060200190612bad9291906136d4565b506040820151816002019080519060200190612bca9291906136d4565b506060820151816003019080519060200190612be79291906136d4565b50505084604051612bf89190614234565b60405180910390207f55e378dbc81cbf3764f2fdc9915435a0de49effbb859d048f04415a779e405518442604051612c319291906142f1565b60405180910390a25050505050565b60006020528060005260406000206000915054906101000a900460ff1681565b600c828051602081018201805184825260208301602085012081835280955050505050508181548110612c9257600080fd5b906000526020600020906004020160009150915050806000015490806001018054612cbc906147e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612ce8906147e3565b8015612d355780601f10612d0a57610100808354040283529160200191612d35565b820191906000526020600020905b815481529060010190602001808311612d1857829003601f168201915b505050505090806002018054612d4a906147e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612d76906147e3565b8015612dc35780601f10612d9857610100808354040283529160200191612dc3565b820191906000526020600020905b815481529060010190602001808311612da657829003601f168201915b505050505090806003018054612dd8906147e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612e04906147e3565b8015612e515780601f10612e2657610100808354040283529160200191612e51565b820191906000526020600020905b815481529060010190602001808311612e3457829003601f168201915b5050505050905084565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083604051612ea99190614234565b90815260200160405180910390206000828254612ec691906146cf565b925050819055508273ffffffffffffffffffffffffffffffffffffffff167f2341c40037e380756373b1c69fa038becf66d4f6412fc98cf777cd51e2907bca8383604051612f159291906142f1565b60405180910390a2612f278383613353565b505050565b60016006600083815260200190815260200160002060080160006101000a81548160ff02191690831515021790555061303b6006600083815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660008481526020019081526020016000206002018054612fb6906147e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612fe2906147e3565b801561302f5780601f106130045761010080835404028352916020019161302f565b820191906000526020600020905b81548152906001019060200180831161301257829003601f168201915b50505050506032612e5b565b3373ffffffffffffffffffffffffffffffffffffffff16817f82a82ea54aa0cfb8695810af1805d7f37f71a2683a57dc52567342b0a001f85260405160405180910390a350565b60016006600084815260200190815260200160002060080160016101000a81548160ff021916908315150217905550806008600084815260200190815260200160002090805190602001906130d89291906136d4565b5060006006600084815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660008581526020019081526020016000206002018054613137906147e3565b80601f0160208091040260200160405190810160405280929190818152602001828054613163906147e3565b80156131b05780601f10613185576101008083540402835291602001916131b0565b820191906000526020600020905b81548152906001019060200180831161319357829003601f168201915b50505050509050600a600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826040516132069190614234565b9081526020016040518091039020541061329257600a600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826040516132699190614234565b908152602001604051809103902060008282546132869190614725565b925050819055506132f4565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826040516132e19190614234565b9081526020016040518091039020819055505b6132fe8282613353565b8173ffffffffffffffffffffffffffffffffffffffff16847f61672afa064adc53f9fb0e3d07cb1dc604355a97359bb4532531f970ae6f8b77856040516133459190614298565b60405180910390a350505050565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156133aa576136d0565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826040516133f99190614234565b908152602001604051809103902054905060606105dc8210613452576040518060400160405280600681526020017f4f7261636c650000000000000000000000000000000000000000000000000000815250905061355f565b6103208210613498576040518060400160405280600981526020017f4172636869766973740000000000000000000000000000000000000000000000815250905061355e565b61012c82106134de576040518060400160405280600881526020017f4c696e6775697374000000000000000000000000000000000000000000000000815250905061355d565b60648210613523576040518060400160405280600581526020017f53636f7574000000000000000000000000000000000000000000000000000000815250905061355c565b6040518060400160405280600881526020017f496e69746961746500000000000000000000000000000000000000000000000081525090505b5b5b5b806040516020016135709190614234565b60405160208183030381529060405280519060200120600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020846040516135d39190614234565b90815260200160405180910390206040516020016135f1919061424b565b60405160208183030381529060405280519060200120146136cd5780600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208460405161365a9190614234565b9081526020016040518091039020908051906020019061367b9291906136d4565b508373ffffffffffffffffffffffffffffffffffffffff167fb556c81df903a7ca7d33d7f43033d4e947a1c524347a6f24ddd077ae1fdc7bb984836040516136c49291906142ba565b60405180910390a25b50505b5050565b8280546136e0906147e3565b90600052602060002090601f0160209004810192826137025760008555613749565b82601f1061371b57805160ff1916838001178555613749565b82800160010185558215613749579182015b8281111561374857825182559160200191906001019061372d565b5b509050613756919061375a565b5090565b5b8082111561377357600081600090555060010161375b565b5090565b600061378a613785846145df565b6145ae565b905080838252602082019050828560208602820111156137a957600080fd5b60005b858110156137d957816137bf88826138ea565b8452602084019350602083019250506001810190506137ac565b5050509392505050565b60006137f66137f18461460b565b6145ae565b9050808382526020820190508260005b85811015613836578135850161381c888261397d565b845260208401935060208301925050600181019050613806565b5050509392505050565b600061385361384e84614637565b6145ae565b9050808382526020820190508285602086028201111561387257600080fd5b60005b858110156138a2578161388888826139a7565b845260208401935060208301925050600181019050613875565b5050509392505050565b60006138bf6138ba84614663565b6145ae565b9050828152602081018484840111156138d757600080fd5b6138e28482856147a1565b509392505050565b6000813590506138f9816148fc565b92915050565b600082601f83011261391057600080fd5b8135613920848260208601613777565b91505092915050565b600082601f83011261393a57600080fd5b813561394a8482602086016137e3565b91505092915050565b600082601f83011261396457600080fd5b8135613974848260208601613840565b91505092915050565b600082601f83011261398e57600080fd5b813561399e8482602086016138ac565b91505092915050565b6000813590506139b681614913565b92915050565b6000602082840312156139ce57600080fd5b60006139dc848285016138ea565b91505092915050565b600080604083850312156139f857600080fd5b6000613a06858286016138ea565b925050602083013567ffffffffffffffff811115613a2357600080fd5b613a2f8582860161397d565b9150509250929050565b600080600060608486031215613a4e57600080fd5b600084013567ffffffffffffffff811115613a6857600080fd5b613a74868287016138ff565b935050602084013567ffffffffffffffff811115613a9157600080fd5b613a9d86828701613929565b925050604084013567ffffffffffffffff811115613aba57600080fd5b613ac686828701613953565b9150509250925092565b60008060008060808587031215613ae657600080fd5b600085013567ffffffffffffffff811115613b0057600080fd5b613b0c8782880161397d565b945050602085013567ffffffffffffffff811115613b2957600080fd5b613b358782880161397d565b935050604085013567ffffffffffffffff811115613b5257600080fd5b613b5e8782880161397d565b925050606085013567ffffffffffffffff811115613b7b57600080fd5b613b878782880161397d565b91505092959194509250565b600080600080600060a08688031215613bab57600080fd5b600086013567ffffffffffffffff811115613bc557600080fd5b613bd18882890161397d565b955050602086013567ffffffffffffffff811115613bee57600080fd5b613bfa8882890161397d565b945050604086013567ffffffffffffffff811115613c1757600080fd5b613c238882890161397d565b935050606086013567ffffffffffffffff811115613c4057600080fd5b613c4c8882890161397d565b9250506080613c5d888289016138ea565b9150509295509295909350565b60008060408385031215613c7d57600080fd5b600083013567ffffffffffffffff811115613c9757600080fd5b613ca38582860161397d565b9250506020613cb4858286016139a7565b9150509250929050565b600060208284031215613cd057600080fd5b6000613cde848285016139a7565b91505092915050565b60008060408385031215613cfa57600080fd5b6000613d08858286016139a7565b9250506020613d19858286016138ea565b9150509250929050565b600080600060608486031215613d3857600080fd5b6000613d46868287016139a7565b9350506020613d57868287016138ea565b925050604084013567ffffffffffffffff811115613d7457600080fd5b613d808682870161397d565b9150509250925092565b60008060408385031215613d9d57600080fd5b6000613dab858286016139a7565b9250506020613dbc858286016139a7565b9150509250929050565b613dcf81614759565b82525050565b613dde8161476b565b82525050565b6000613def826146a8565b613df981856146b3565b9350613e098185602086016147b0565b613e12816148eb565b840191505092915050565b6000613e28826146a8565b613e3281856146c4565b9350613e428185602086016147b0565b80840191505092915050565b60008154613e5b816147e3565b613e6581866146c4565b94506001821660008114613e805760018114613e9157613ec4565b60ff19831686528186019350613ec4565b613e9a85614693565b60005b83811015613ebc57815481890152600182019150602081019050613e9d565b838801955050505b50505092915050565b6000613eda6012836146b3565b91507f5573657220616c726561647920766f74656400000000000000000000000000006000830152602082019050919050565b6000613f1a6016836146b3565b91507f4172726179206c656e67746873206d69736d61746368000000000000000000006000830152602082019050919050565b6000613f5a6016836146b3565b91507f456e74727920616c7265616479207265736f6c766564000000000000000000006000830152602082019050919050565b6000613f9a6017836146b3565b91507f43616e6e6f742072656a656374206f776e20656e7472790000000000000000006000830152602082019050919050565b6000613fda6021836146b3565b91507f4f6e6c792041646d696e73206f72204f7261636c65732063616e20766572696660008301527f79000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006140406013836146b3565b91507f456e747279206973206e6f74206275726e6564000000000000000000000000006000830152602082019050919050565b60006140806021836146b3565b91507f4f6e6c792041646d696e73206f72204f7261636c65732063616e20617070656160008301527f6c000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006140e66030836146b3565b91507f4f6e6c792074686520507974686f6e2052656c617965722063616e206578656360008301527f757465207472616e73616374696f6e73000000000000000000000000000000006020830152604082019050919050565b600061414c6021836146b3565b91507f4f6e6c792041646d696e73206f72204f7261636c65732063616e2072656a656360008301527f74000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006141b26017836146b3565b91507f43616e6e6f7420766572696679206f776e20656e7472790000000000000000006000830152602082019050919050565b60006141f26015836146b3565b91507f5573657220616c72656164792061707065616c656400000000000000000000006000830152602082019050919050565b61422e81614797565b82525050565b60006142408284613e1d565b915081905092915050565b60006142578284613e4e565b915081905092915050565b60006020820190506142776000830184613dc6565b92915050565b60006020820190506142926000830184613dd5565b92915050565b600060208201905081810360008301526142b28184613de4565b905092915050565b600060408201905081810360008301526142d48185613de4565b905081810360208301526142e88184613de4565b90509392505050565b6000604082019050818103600083015261430b8185613de4565b905061431a6020830184614225565b9392505050565b6000602082019050818103600083015261433a81613ecd565b9050919050565b6000602082019050818103600083015261435a81613f0d565b9050919050565b6000602082019050818103600083015261437a81613f4d565b9050919050565b6000602082019050818103600083015261439a81613f8d565b9050919050565b600060208201905081810360008301526143ba81613fcd565b9050919050565b600060208201905081810360008301526143da81614033565b9050919050565b600060208201905081810360008301526143fa81614073565b9050919050565b6000602082019050818103600083015261441a816140d9565b9050919050565b6000602082019050818103600083015261443a8161413f565b9050919050565b6000602082019050818103600083015261445a816141a5565b9050919050565b6000602082019050818103600083015261447a816141e5565b9050919050565b60006020820190506144966000830184614225565b92915050565b60006080820190506144b16000830187614225565b81810360208301526144c38186613de4565b905081810360408301526144d78185613de4565b905081810360608301526144eb8184613de4565b905095945050505050565b60006101408201905061450c600083018d614225565b818103602083015261451e818c613de4565b90508181036040830152614532818b613de4565b90508181036060830152614546818a613de4565b90506145556080830189613dc6565b81810360a08301526145678188613de4565b905061457660c0830187614225565b61458360e0830186614225565b614591610100830185613dd5565b61459f610120830184613dd5565b9b9a5050505050505050505050565b6000604051905081810181811067ffffffffffffffff821117156145d5576145d46148bc565b5b8060405250919050565b600067ffffffffffffffff8211156145fa576145f96148bc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115614626576146256148bc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115614652576146516148bc565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561467e5761467d6148bc565b5b601f19601f8301169050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b60006146da82614797565b91506146e583614797565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561471a5761471961485e565b5b828201905092915050565b600061473082614797565b915061473b83614797565b92508282101561474e5761474d61485e565b5b828203905092915050565b600061476482614777565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156147ce5780820151818401526020810190506147b3565b838111156147dd576000848401525b50505050565b600060028204905060018216806147fb57607f821691505b6020821081141561480f5761480e61488d565b5b50919050565b600061482082614797565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156148535761485261485e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b61490581614759565b811461491057600080fd5b50565b61491c81614797565b811461492757600080fd5b5056fe5075726542696c696e6775616c566572736174696f6e205265736561726368205265676973747279a2646970667358221220debf9c1205b42326eb48d5e8f36e0ccd37bd9ac9edc1a1c22b07aad58b2f57b164736f6c63430008000033" }