60c06040526000600760006101000a81548160ff0219169083151502179055506000600760016101000a81548160ff02191690831515021790555034801561004657600080fd5b506040516151ef3803806151ef83398181016040528101906100689190610501565b6040518060400160405280600a81526020017f5472656e64546f6b656e000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f54524e440000000000000000000000000000000000000000000000000000000081525081600390816100e3919061077e565b5080600490816100f3919061077e565b50505061011261010761026460201b60201c565b61026c60201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ad906108d3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050610205336a115eec47f6cf7e3500000061033260201b60201c565b3373ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968856a115eec47f6cf7e350000006040516102569190610902565b60405180910390a2506109ec565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036103a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039890610969565b60405180910390fd5b6103b36000838361049460201b60201c565b80600260008282546103c591906109b8565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104769190610902565b60405180910390a36104906000838361049960201b60201c565b5050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006104ce826104a3565b9050919050565b6104de816104c3565b81146104e957600080fd5b50565b6000815190506104fb816104d5565b92915050565b6000602082840312156105175761051661049e565b5b6000610525848285016104ec565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806105af57607f821691505b6020821081036105c2576105c1610568565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261062a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826105ed565b61063486836105ed565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061067b6106766106718461064c565b610656565b61064c565b9050919050565b6000819050919050565b61069583610660565b6106a96106a182610682565b8484546105fa565b825550505050565b600090565b6106be6106b1565b6106c981848461068c565b505050565b5b818110156106ed576106e26000826106b6565b6001810190506106cf565b5050565b601f82111561073257610703816105c8565b61070c846105dd565b8101602085101561071b578190505b61072f610727856105dd565b8301826106ce565b50505b505050565b600082821c905092915050565b600061075560001984600802610737565b1980831691505092915050565b600061076e8383610744565b9150826002028217905092915050565b6107878261052e565b67ffffffffffffffff8111156107a05761079f610539565b5b6107aa8254610597565b6107b58282856106f1565b600060209050601f8311600181146107e857600084156107d6578287015190505b6107e08582610762565b865550610848565b601f1984166107f6866105c8565b60005b8281101561081e578489015182556001820191506020850194506020810190506107f9565b8683101561083b5784890151610837601f891682610744565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f496e76616c696420616464726573733a2063616e6e6f74206265207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b60006108bd602783610850565b91506108c882610861565b604082019050919050565b600060208201905081810360008301526108ec816108b0565b9050919050565b6108fc8161064c565b82525050565b600060208201905061091760008301846108f3565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000610953601f83610850565b915061095e8261091d565b602082019050919050565b6000602082019050818103600083015261098281610946565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006109c38261064c565b91506109ce8361064c565b92508282019050808211156109e6576109e5610989565b5b92915050565b60805160a0516147d0610a1f6000396000818161145f01526127c6015260008181610dc7015261189001526147d06000f3fe6080604052600436106102295760003560e01c80637a1ac61e11610123578063bde5a90b116100ab578063e60e4e611161006f578063e60e4e6114610880578063e8700c98146108ab578063ec924d9c146108d6578063ed63786e14610901578063f2fde38b1461092a57610267565b8063bde5a90b1461078a578063c05f1bcd146107b3578063d9ba32fc146107dc578063dd62ed3e1461081a578063e0f00c161461085757610267565b80639358928b116100f25780639358928b1461069157806395d89b41146106bc578063a457c2d7146106e7578063a9059cbb14610724578063b6cba7eb1461076157610267565b80637a1ac61e146105d557806381cbf440146105fe5780638662f0a3146106295780638da5cb5b1461066657610267565b80633a4badf1116101b1578063708d625511610175578063708d62551461050457806370a082311461052f578063715018a61461056c578063753b83d614610583578063783a48ea146105ac57610267565b80633a4badf11461041f5780633d13c5041461045e57806347fd4ab3146104875780634811c8d5146104b0578063637111c2146104db57610267565b806323b872dd116101f857806323b872dd14610328578063313ce56714610365578063391a29cd14610390578063392a325d146103b957806339509351146103e257610267565b806306fdde031461026c578063095ea7b3146102975780630c1780cc146102d457806318160ddd146102fd57610267565b36610267577f03fec92a9736601da2056060bfa5fff12d9866ddd69ad2e3303414dea13c3d823460405161025d9190612f00565b60405180910390a1005b600080fd5b34801561027857600080fd5b50610281610953565b60405161028e9190612fab565b60405180910390f35b3480156102a357600080fd5b506102be60048036038101906102b9919061305c565b6109e5565b6040516102cb91906130b7565b60405180910390f35b3480156102e057600080fd5b506102fb60048036038101906102f691906130fe565b610a08565b005b34801561030957600080fd5b50610312610b71565b60405161031f9190612f00565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a919061313e565b610b7b565b60405161035c91906130b7565b60405180910390f35b34801561037157600080fd5b5061037a610baa565b60405161038791906131ad565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b291906131c8565b610bb3565b005b3480156103c557600080fd5b506103e060048036038101906103db91906131f5565b610bdb565b005b3480156103ee57600080fd5b506104096004803603810190610404919061305c565b610c96565b60405161041691906130b7565b60405180910390f35b34801561042b57600080fd5b50610446600480360381019061044191906131f5565b610ccd565b60405161045593929190613222565b60405180910390f35b34801561046a57600080fd5b5061048560048036038101906104809190613259565b610d6b565b005b34801561049357600080fd5b506104ae60048036038101906104a991906131c8565b610f33565b005b3480156104bc57600080fd5b506104c5610f58565b6040516104d2919061336a565b60405180910390f35b3480156104e757600080fd5b5061050260048036038101906104fd919061338c565b610fb0565b005b34801561051057600080fd5b5061051961106a565b60405161052691906133db565b60405180910390f35b34801561053b57600080fd5b50610556600480360381019061055191906131f5565b611094565b6040516105639190612f00565b60405180910390f35b34801561057857600080fd5b506105816110dc565b005b34801561058f57600080fd5b506105aa60048036038101906105a591906131f5565b6110f0565b005b3480156105b857600080fd5b506105d360048036038101906105ce91906133f6565b6111ee565b005b3480156105e157600080fd5b506105fc60048036038101906105f79190613436565b611353565b005b34801561060a57600080fd5b506106136113ae565b60405161062091906133db565b60405180910390f35b34801561063557600080fd5b50610650600480360381019061064b91906131f5565b6113d8565b60405161065d91906130b7565b60405180910390f35b34801561067257600080fd5b5061067b61142e565b60405161068891906133db565b60405180910390f35b34801561069d57600080fd5b506106a6611458565b6040516106b39190612f00565b60405180910390f35b3480156106c857600080fd5b506106d161149a565b6040516106de9190612fab565b60405180910390f35b3480156106f357600080fd5b5061070e6004803603810190610709919061305c565b61152c565b60405161071b91906130b7565b60405180910390f35b34801561073057600080fd5b5061074b6004803603810190610746919061305c565b6115a3565b60405161075891906130b7565b60405180910390f35b34801561076d57600080fd5b506107886004803603810190610783919061305c565b6115c6565b005b34801561079657600080fd5b506107b160048036038101906107ac9190613489565b611815565b005b3480156107bf57600080fd5b506107da60048036038101906107d59190613504565b611a43565b005b3480156107e857600080fd5b5061080360048036038101906107fe91906131f5565b611b16565b604051610811929190613531565b60405180910390f35b34801561082657600080fd5b50610841600480360381019061083c919061355a565b611b85565b60405161084e9190612f00565b60405180910390f35b34801561086357600080fd5b5061087e6004803603810190610879919061359a565b611c0c565b005b34801561088c57600080fd5b50610895611c67565b6040516108a291906133db565b60405180910390f35b3480156108b757600080fd5b506108c0611c91565b6040516108cd91906130b7565b60405180910390f35b3480156108e257600080fd5b506108eb611ca8565b6040516108f89190612f00565b60405180910390f35b34801561090d57600080fd5b50610928600480360381019061092391906131c8565b611cbb565b005b34801561093657600080fd5b50610951600480360381019061094c91906131f5565b611d3f565b005b606060038054610962906136bd565b80601f016020809104026020016040519081016040528092919081815260200182805461098e906136bd565b80156109db5780601f106109b0576101008083540402835291602001916109db565b820191906000526020600020905b8154815290600101906020018083116109be57829003601f168201915b5050505050905090565b6000806109f0611dc2565b90506109fd818585611dca565b600191505092915050565b610a10611f93565b6064811115610a54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4b90613760565b60405180910390fd5b60405180606001604052808315158152602001600a6000600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154815260200182815250600a6000600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160010155604082015181600201559050505050565b6000600254905090565b600080610b86611dc2565b9050610b93858285612011565b610b9e85858561209d565b60019150509392505050565b60006012905090565b610bbb611f93565b80600c60010160006101000a81548160ff02191690831515021790555050565b610be3611f93565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c49906137cc565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610ca1611dc2565b9050610cc2818585610cb38589611b85565b610cbd919061381b565b611dca565b600191505092915050565b600080600080600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff16151515158152602001600182015481526020016002820154815250509050806000015181602001518260400151935093509350509193909250565b610d73611f93565b600760019054906101000a900460ff1615610dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dba9061389b565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e6a4390584846040518363ffffffff1660e01b8152600401610e209291906138bb565b602060405180830381865afa158015610e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6191906138f9565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ed1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec890613972565b60405180910390fd5b83600760026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760016101000a81548160ff02191690831515021790555050505050565b610f3b611f93565b80600760006101000a81548160ff02191690831515021790555050565b60606006805480602002602001604051908101604052809291908181526020018280548015610fa657602002820191906000526020600020905b815481526020019060010190808311610f92575b5050505050905090565b610fb8611f93565b6005821115610ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff3906139de565b60405180910390fd5b6005811115611040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103790613a4a565b60405180910390fd5b6040518060400160405280838152602001828152506006906002611065929190612e7d565b505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110e4611f93565b6110ee6000612814565b565b6110f8611f93565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115e90613ab6565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f8c36466141e7ed147d92f2bc429c4b1cd85f90f0548d26bf8d6c28134d05c5ed60405160405180910390a250565b6111f6611f93565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125c90613b22565b60405180910390fd5b600c60000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec90613b8e565b60405180910390fd5b80600c60000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61135b611f93565b611364836110f0565b61136e8282610fb0565b7fba5a3528750f3da750d7b6aa2c8465f3bbe60ba130fedbccefdaabf43cac30108383836040516113a193929190613bae565b60405180910390a1505050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006114837f0000000000000000000000000000000000000000000000000000000000000000611094565b61148b610b71565b6114959190613be5565b905090565b6060600480546114a9906136bd565b80601f01602080910402602001604051908101604052809291908181526020018280546114d5906136bd565b80156115225780601f106114f757610100808354040283529160200191611522565b820191906000526020600020905b81548152906001019060200180831161150557829003601f168201915b5050505050905090565b600080611537611dc2565b905060006115458286611b85565b90508381101561158a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158190613c8b565b60405180910390fd5b6115978286868403611dca565b60019250505092915050565b6000806115ae611dc2565b90506115bb81858561209d565b600191505092915050565b6115ce611f93565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361163d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163490613cf7565b60405180910390fd5b808273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161167791906133db565b602060405180830381865afa158015611694573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b89190613d2c565b10156116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f090613da5565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61171f61142e565b846040518363ffffffff1660e01b815260040161173d929190613dc5565b6020604051808303816000875af115801561175c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117809190613e03565b9050806117c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b990613e7c565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff167f9bed46b2cb307665d026847ec1a28cf91cf49d89967721c57b6ceea17c05649d836040516118089190612f00565b60405180910390a2505050565b61181d611f93565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361188c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611883906137cc565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e6a4390586866040518363ffffffff1660e01b81526004016118e99291906138bb565b602060405180830381865afa158015611906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192a91906138f9565b90508573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461199a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199190613972565b60405180910390fd5b82600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690831515021790555081600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550505050505050565b611a4b611f93565b80471015611a8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8590613da5565b60405180910390fd5b611a9661142e565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611adb573d6000803e3d6000fd5b507fce64aed135f723d3dbd075fae4ac8cd76d7966bca192604ce775808d484a359981604051611b0b9190612f00565b60405180910390a150565b600080600c60000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169150600c60010160009054906101000a900460ff169050915091565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c14611f93565b611c1f888888610d6b565b611c2c8888888888611815565b611c358b610f33565b611c3e8a611cbb565b611c488383610fb0565b611c5189610bdb565b611c5a816110f0565b5050505050505050505050565b6000600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600760009054906101000a900460ff16905090565b60006a115eec47f6cf7e35000000905090565b611cc3611f93565b80600b6000600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611d47611f93565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dad90613f0e565b60405180910390fd5b611dbf81612814565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3090613fa0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9f90614032565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f869190612f00565b60405180910390a3505050565b611f9b611dc2565b73ffffffffffffffffffffffffffffffffffffffff16611fb961142e565b73ffffffffffffffffffffffffffffffffffffffff161461200f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120069061409e565b60405180910390fd5b565b600061201d8484611b85565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146120975781811015612089576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120809061410a565b60405180910390fd5b6120968484848403611dca565b5b50505050565b600081116120e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d79061419c565b60405180910390fd5b6000806000600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561218b5750600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b90506000600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122355750600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b9050811561233c57600760009054906101000a900460ff16806122bf5750600c60010160009054906101000a900460ff1680156122be5750600c60000160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b5b6122fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f59061422e565b60405180910390fd5b606460066000815481106123155761231461424e565b5b90600052602060002001548661232b919061427d565b61233591906142ee565b9350612401565b801561240057606460066001815481106123595761235861424e565b5b90600052602060002001548661236f919061427d565b61237991906142ee565b93506000600a6000600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050606481876123f2919061427d565b6123fc91906142ee565b9350505b5b6000848661240f9190613be5565b9050600085111561253657600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a290614391565b60405180910390fd5b6124d888600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876128da565b7f92dc85d2d47ea25a67475ac9ea666a738db8c0fa2b6a263321c6210b8e6fa26788600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168760405161252d939291906143b1565b60405180910390a15b6000841180156125b45750600a6000600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff165b156127ff5760006125e6600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611094565b90508481101561262b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262290614434565b60405180910390fd5b612657600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686612b50565b612683600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686612d1d565b84600a6000600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546126f7919061381b565b92505081905550600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561276857600080fd5b505af115801561277c573d6000803e3d6000fd5b505050507f2449c47111857ec100b829bc457ab4c586fad075bfc15ea038018a816ffc9687600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff167f0000000000000000000000000000000000000000000000000000000000000000876040516127f5939291906143b1565b60405180910390a1505b61280a8888836128da565b5050505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612949576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612940906144c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129af90614558565b60405180910390fd5b6129c3838383612e73565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612a49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a40906145ea565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b379190612f00565b60405180910390a3612b4a848484612e78565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb69061467c565b60405180910390fd5b612bcb82600083612e73565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c489061470e565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d049190612f00565b60405180910390a3612d1883600084612e78565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612d8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d839061477a565b60405180910390fd5b612d9860008383612e73565b8060026000828254612daa919061381b565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e5b9190612f00565b60405180910390a3612e6f60008383612e78565b5050565b505050565b505050565b828054828255906000526020600020908101928215612eb9579160200282015b82811115612eb8578251825591602001919060010190612e9d565b5b509050612ec69190612eca565b5090565b5b80821115612ee3576000816000905550600101612ecb565b5090565b6000819050919050565b612efa81612ee7565b82525050565b6000602082019050612f156000830184612ef1565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f55578082015181840152602081019050612f3a565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f7d82612f1b565b612f878185612f26565b9350612f97818560208601612f37565b612fa081612f61565b840191505092915050565b60006020820190508181036000830152612fc58184612f72565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ffd82612fd2565b9050919050565b61300d81612ff2565b811461301857600080fd5b50565b60008135905061302a81613004565b92915050565b61303981612ee7565b811461304457600080fd5b50565b60008135905061305681613030565b92915050565b6000806040838503121561307357613072612fcd565b5b60006130818582860161301b565b925050602061309285828601613047565b9150509250929050565b60008115159050919050565b6130b18161309c565b82525050565b60006020820190506130cc60008301846130a8565b92915050565b6130db8161309c565b81146130e657600080fd5b50565b6000813590506130f8816130d2565b92915050565b6000806040838503121561311557613114612fcd565b5b6000613123858286016130e9565b925050602061313485828601613047565b9150509250929050565b60008060006060848603121561315757613156612fcd565b5b60006131658682870161301b565b93505060206131768682870161301b565b925050604061318786828701613047565b9150509250925092565b600060ff82169050919050565b6131a781613191565b82525050565b60006020820190506131c2600083018461319e565b92915050565b6000602082840312156131de576131dd612fcd565b5b60006131ec848285016130e9565b91505092915050565b60006020828403121561320b5761320a612fcd565b5b60006132198482850161301b565b91505092915050565b600060608201905061323760008301866130a8565b6132446020830185612ef1565b6132516040830184612ef1565b949350505050565b60008060006060848603121561327257613271612fcd565b5b60006132808682870161301b565b93505060206132918682870161301b565b92505060406132a28682870161301b565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132e181612ee7565b82525050565b60006132f383836132d8565b60208301905092915050565b6000602082019050919050565b6000613317826132ac565b61332181856132b7565b935061332c836132c8565b8060005b8381101561335d57815161334488826132e7565b975061334f836132ff565b925050600181019050613330565b5085935050505092915050565b60006020820190508181036000830152613384818461330c565b905092915050565b600080604083850312156133a3576133a2612fcd565b5b60006133b185828601613047565b92505060206133c285828601613047565b9150509250929050565b6133d581612ff2565b82525050565b60006020820190506133f060008301846133cc565b92915050565b6000806040838503121561340d5761340c612fcd565b5b600061341b8582860161301b565b925050602061342c858286016130e9565b9150509250929050565b60008060006060848603121561344f5761344e612fcd565b5b600061345d8682870161301b565b935050602061346e86828701613047565b925050604061347f86828701613047565b9150509250925092565b600080600080600060a086880312156134a5576134a4612fcd565b5b60006134b38882890161301b565b95505060206134c48882890161301b565b94505060406134d58882890161301b565b93505060606134e6888289016130e9565b92505060806134f788828901613047565b9150509295509295909350565b60006020828403121561351a57613519612fcd565b5b600061352884828501613047565b91505092915050565b600060408201905061354660008301856130a8565b61355360208301846130a8565b9392505050565b6000806040838503121561357157613570612fcd565b5b600061357f8582860161301b565b92505060206135908582860161301b565b9150509250929050565b60008060008060008060008060008060006101608c8e0312156135c0576135bf612fcd565b5b60006135ce8e828f016130e9565b9b505060206135df8e828f016130e9565b9a505060406135f08e828f0161301b565b99505060606136018e828f0161301b565b98505060806136128e828f0161301b565b97505060a06136238e828f0161301b565b96505060c06136348e828f016130e9565b95505060e06136458e828f01613047565b9450506101006136578e828f01613047565b9350506101206136698e828f01613047565b92505061014061367b8e828f0161301b565b9150509295989b509295989b9093969950565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806136d557607f821691505b6020821081036136e8576136e761368e565b5b50919050565b7f4275726e61626c65205461782070657263656e746167652063616e6e6f74206560008201527f7863656564203130300000000000000000000000000000000000000000000000602082015250565b600061374a602983612f26565b9150613755826136ee565b604082019050919050565b600060208201905081810360008301526137798161373d565b9050919050565b7f496e76616c696420616464726573730000000000000000000000000000000000600082015250565b60006137b6600f83612f26565b91506137c182613780565b602082019050919050565b600060208201905081810360008301526137e5816137a9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061382682612ee7565b915061383183612ee7565b9250828201905080821115613849576138486137ec565b5b92915050565b7f706169724164647265737320616c7265616479206465636c6172656400000000600082015250565b6000613885601c83612f26565b91506138908261384f565b602082019050919050565b600060208201905081810360008301526138b481613878565b9050919050565b60006040820190506138d060008301856133cc565b6138dd60208301846133cc565b9392505050565b6000815190506138f381613004565b92915050565b60006020828403121561390f5761390e612fcd565b5b600061391d848285016138e4565b91505092915050565b7f496e76616c696420706169722061646472657373000000000000000000000000600082015250565b600061395c601483612f26565b915061396782613926565b602082019050919050565b6000602082019050818103600083015261398b8161394f565b9050919050565b7f427579207461782063616e6e6f74206578636565642035000000000000000000600082015250565b60006139c8601783612f26565b91506139d382613992565b602082019050919050565b600060208201905081810360008301526139f7816139bb565b9050919050565b7f53656c6c207461782063616e6e6f742065786365656420350000000000000000600082015250565b6000613a34601883612f26565b9150613a3f826139fe565b602082019050919050565b60006020820190508181036000830152613a6381613a27565b9050919050565b7f496e76616c6964205661756c7420616464726573730000000000000000000000600082015250565b6000613aa0601583612f26565b9150613aab82613a6a565b602082019050919050565b60006020820190508181036000830152613acf81613a93565b9050919050565b7f496e76616c696420557365720000000000000000000000000000000000000000600082015250565b6000613b0c600c83612f26565b9150613b1782613ad6565b602082019050919050565b60006020820190508181036000830152613b3b81613aff565b9050919050565b7f5573657220616c72656164792077686974656c69737465640000000000000000600082015250565b6000613b78601883612f26565b9150613b8382613b42565b602082019050919050565b60006020820190508181036000830152613ba781613b6b565b9050919050565b6000606082019050613bc360008301866133cc565b613bd06020830185612ef1565b613bdd6040830184612ef1565b949350505050565b6000613bf082612ee7565b9150613bfb83612ee7565b9250828203905081811115613c1357613c126137ec565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613c75602583612f26565b9150613c8082613c19565b604082019050919050565b60006020820190508181036000830152613ca481613c68565b9050919050565b7f496e76616c696420746f6b656e20616464726573730000000000000000000000600082015250565b6000613ce1601583612f26565b9150613cec82613cab565b602082019050919050565b60006020820190508181036000830152613d1081613cd4565b9050919050565b600081519050613d2681613030565b92915050565b600060208284031215613d4257613d41612fcd565b5b6000613d5084828501613d17565b91505092915050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b6000613d8f601483612f26565b9150613d9a82613d59565b602082019050919050565b60006020820190508181036000830152613dbe81613d82565b9050919050565b6000604082019050613dda60008301856133cc565b613de76020830184612ef1565b9392505050565b600081519050613dfd816130d2565b92915050565b600060208284031215613e1957613e18612fcd565b5b6000613e2784828501613dee565b91505092915050565b7f455243323020746f6b656e207472616e73666572206661696c65640000000000600082015250565b6000613e66601b83612f26565b9150613e7182613e30565b602082019050919050565b60006020820190508181036000830152613e9581613e59565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ef8602683612f26565b9150613f0382613e9c565b604082019050919050565b60006020820190508181036000830152613f2781613eeb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f8a602483612f26565b9150613f9582613f2e565b604082019050919050565b60006020820190508181036000830152613fb981613f7d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061401c602283612f26565b915061402782613fc0565b604082019050919050565b6000602082019050818103600083015261404b8161400f565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614088602083612f26565b915061409382614052565b602082019050919050565b600060208201905081810360008301526140b78161407b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006140f4601d83612f26565b91506140ff826140be565b602082019050919050565b60006020820190508181036000830152614123816140e7565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614186602983612f26565b91506141918261412a565b604082019050919050565b600060208201905081810360008301526141b581614179565b9050919050565b7f427579206973206e6f7420656e61626c6564206f722061646472657373206e6f60008201527f742077686974656c697374656400000000000000000000000000000000000000602082015250565b6000614218602d83612f26565b9150614223826141bc565b604082019050919050565b600060208201905081810360008301526142478161420b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061428882612ee7565b915061429383612ee7565b92508282026142a181612ee7565b915082820484148315176142b8576142b76137ec565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006142f982612ee7565b915061430483612ee7565b925082614314576143136142bf565b5b828204905092915050565b7f54617820616c6c6f636174696f6e2061646472657373206973206e6f7420736560008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b600061437b602183612f26565b91506143868261431f565b604082019050919050565b600060208201905081810360008301526143aa8161436e565b9050919050565b60006060820190506143c660008301866133cc565b6143d360208301856133cc565b6143e06040830184612ef1565b949350505050565b7f496e73756666696369656e74206c697175696469747900000000000000000000600082015250565b600061441e601683612f26565b9150614429826143e8565b602082019050919050565b6000602082019050818103600083015261444d81614411565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006144b0602583612f26565b91506144bb82614454565b604082019050919050565b600060208201905081810360008301526144df816144a3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614542602383612f26565b915061454d826144e6565b604082019050919050565b6000602082019050818103600083015261457181614535565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006145d4602683612f26565b91506145df82614578565b604082019050919050565b60006020820190508181036000830152614603816145c7565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000614666602183612f26565b91506146718261460a565b604082019050919050565b6000602082019050818103600083015261469581614659565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006146f8602283612f26565b91506147038261469c565b604082019050919050565b60006020820190508181036000830152614727816146eb565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000614764601f83612f26565b915061476f8261472e565b602082019050919050565b6000602082019050818103600083015261479381614757565b905091905056fea264697066735822122003f88c8f83617c7af7c914ca7270aef9f6b57a2d1ef17836c1d4c2505aec52a164736f6c634300081b0033000000000000000000000000f62c03e08ada871a0beb309762e260a7a6a880e6