60806040523480156200001157600080fd5b506040518060400160405280601381526020017f466c6970706564204379626572204b6f6e677a000000000000000000000000008152506040518060400160405280600581526020017f4b4f4e475a000000000000000000000000000000000000000000000000000000815250816000908051906020019062000096929190620001bd565b508060019080519060200190620000af929190620001bd565b505050620000d2620000c6620000ef60201b60201c565b620000f760201b60201c565b66b1a2bc2ec50000600881905550612710600981905550620002d2565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001cb906200026d565b90600052602060002090601f016020900481019282620001ef57600085556200023b565b82601f106200020a57805160ff19168380011785556200023b565b828001600101855582156200023b579182015b828111156200023a5782518255916020019190600101906200021d565b5b5090506200024a91906200024e565b5090565b5b80821115620002695760008160009055506001016200024f565b5090565b600060028204905060018216806200028657607f821691505b602082108114156200029d576200029c620002a3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b613fb380620002e26000396000f3fe6080604052600436106101b75760003560e01c80635b1f161f116100ec57806395d89b411161008a578063c87b56dd11610064578063c87b56dd1461055e578063c8f5ae0f1461059b578063e985e9c5146105b7578063f2fde38b146105f4576101b7565b806395d89b41146104e1578063a22cb4651461050c578063b88d4fde14610535576101b7565b806370a08231116100c657806370a0823114610446578063715018a61461048357806378b4b8eb1461049a5780638da5cb5b146104b6576101b7565b80635b1f161f146103c45780636352211e146103e05780636f8b44b01461041d576101b7565b80632870955a1161015957806342842e0e1161013357806342842e0e1461033a57806343409e9b1461036357806344a0d68a1461037f57806356a88c5e146103a8576101b7565b80632870955a146102eb5780633c168eab146103075780633ccfd60b14610323576101b7565b8063081812fc11610195578063081812fc14610240578063095ea7b31461027d57806323b872dd146102a657806323f21efb146102cf576101b7565b806301ffc9a7146101bc57806306fdde03146101f95780630703324a14610224575b600080fd5b3480156101c857600080fd5b506101e360048036038101906101de9190613027565b61061d565b6040516101f0919061386b565b60405180910390f35b34801561020557600080fd5b5061020e6106ff565b60405161021b9190613886565b60405180910390f35b61023e60048036038101906102399190612fbb565b610791565b005b34801561024c57600080fd5b5061026760048036038101906102629190613079565b610861565b6040516102749190613804565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f9190612f27565b6108e6565b005b3480156102b257600080fd5b506102cd60048036038101906102c89190612e21565b6109fe565b005b6102e960048036038101906102e49190612f63565b610a5e565b005b61030560048036038101906103009190612f27565b610b07565b005b610321600480360381019061031c9190612f27565b610be4565b005b34801561032f57600080fd5b5061033861113c565b005b34801561034657600080fd5b50610361600480360381019061035c9190612e21565b611208565b005b61037d60048036038101906103789190612f63565b611228565b005b34801561038b57600080fd5b506103a660048036038101906103a19190613079565b6112d8565b005b6103c260048036038101906103bd9190612f63565b61135e565b005b6103de60048036038101906103d99190612fbb565b61142c565b005b3480156103ec57600080fd5b5061040760048036038101906104029190613079565b6114fc565b6040516104149190613804565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f9190613079565b6115ae565b005b34801561045257600080fd5b5061046d60048036038101906104689190612dbc565b611634565b60405161047a9190613ae8565b60405180910390f35b34801561048f57600080fd5b506104986116ec565b005b6104b460048036038101906104af9190612f63565b611774565b005b3480156104c257600080fd5b506104cb611842565b6040516104d89190613804565b60405180910390f35b3480156104ed57600080fd5b506104f661186c565b6040516105039190613886565b60405180910390f35b34801561051857600080fd5b50610533600480360381019061052e9190612eeb565b6118fe565b005b34801561054157600080fd5b5061055c60048036038101906105579190612e70565b611ad2565b005b34801561056a57600080fd5b5061058560048036038101906105809190613079565b611b34565b6040516105929190613886565b60405180910390f35b6105b560048036038101906105b09190612f63565b611b93565b005b3480156105c357600080fd5b506105de60048036038101906105d99190612de5565b611c2f565b6040516105eb919061386b565b60405180910390f35b34801561060057600080fd5b5061061b60048036038101906106169190612dbc565b611d5e565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106e857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106f857506106f782611e56565b5b9050919050565b60606000805461070e90613d72565b80601f016020809104026020016040519081016040528092919081815260200182805461073a90613d72565b80156107875780601f1061075c57610100808354040283529160200191610787565b820191906000526020600020905b81548152906001019060200180831161076a57829003601f168201915b5050505050905090565b60005b8484905081101561085a5760005b8381101561084657610fa06107b76007611ec0565b14156107c8576107c76007611ece565b5b6107d26007611edb565b61083386868481811061080e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906108239190612dbc565b61082d6007611ec0565b85611ef1565b808061083e90613da4565b9150506107a2565b50808061085290613da4565b915050610794565b5050505050565b600061086c82611fa3565b6108ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a290613a48565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006108f1826114fc565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095990613aa8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661098161200f565b73ffffffffffffffffffffffffffffffffffffffff1614806109b057506109af816109aa61200f565b611c2f565b5b6109ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e690613988565b60405180910390fd5b6109f98383612017565b505050565b610a0f610a0961200f565b826120d0565b610a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4590613ac8565b60405180910390fd5b610a598383836121ae565b505050565b60005b83839050811015610b015760005b82811015610aed57610ada858584818110610ab3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190610ac89190612dbc565b836001610ad59190613ba7565b61240a565b8080610ae590613da4565b915050610a6f565b508080610af990613da4565b915050610a61565b50505050565b600081118015610b1957506103e88111155b610b58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4f906138a8565b60405180910390fd5b600954610b77610b686007611ec0565b8361246a90919063ffffffff16565b10610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae906139e8565b60405180910390fd5b60005b81811015610bdf57610bcb83612480565b508080610bd790613da4565b915050610bba565b505050565b600060405180610180016040528073c5f59709974262c4afacc5386287820bdbc7eb3a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173ae4d837caa0c53579f8a156633355df5058b02f373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d6a984153acb6c9e2d788f08c2465a1358bb89a773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001730b8f4c4e7626a91460dac057eb43e0de59d5b44f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d387a6e4e84a6c86bd90c158c6028a58cc8ac45973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173ce90a7949bb78892f159f428d0dc23a8e3584d7573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173ab6ca2017548a170699890214bfd66583a0c175473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173f476cd75be8fdd197ae0b466a2ec2ae44da4189773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017372d0455d25db9c36af5869bbf426312ba923c64373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173ff0bd4aa3496739d5667adc10e2b843dfab5712b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001735ea9681c3ab9b5739810f8b91ae65ec47de6211973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001732ce780d7c743a57791b835a9d6f998b15bbba5a473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152509050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110065760005b600c8110156110005760005b83811015610fec57610fd98383600c8110610fc2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020020151836001610fd49190613ba7565b61240a565b8080610fe490613da4565b915050610f7e565b508080610ff890613da4565b915050610f72565b50611137565b60008211801561101857506103e88211155b611057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104e906138a8565b60405180910390fd5b61106c826008546124ad90919063ffffffff16565b3410156110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a590613a08565b60405180910390fd5b6009546110cd6110be6007611ec0565b8461246a90919063ffffffff16565b1061110d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611104906139e8565b60405180910390fd5b60005b828110156111355761112184612480565b50808061112d90613da4565b915050611110565b505b505050565b61114461200f565b73ffffffffffffffffffffffffffffffffffffffff16611162611842565b73ffffffffffffffffffffffffffffffffffffffff16146111b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111af90613a68565b60405180910390fd5b6111c0611842565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611205573d6000803e3d6000fd5b50565b61122383838360405180602001604052806000815250611ad2565b505050565b60005b838390508110156112d25760005b828110156112be5761124b6007611edb565b6112ab858584818110611287577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061129c9190612dbc565b6112a66007611ec0565b61240a565b80806112b690613da4565b915050611239565b5080806112ca90613da4565b91505061122b565b50505050565b6112e061200f565b73ffffffffffffffffffffffffffffffffffffffff166112fe611842565b73ffffffffffffffffffffffffffffffffffffffff1614611354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134b90613a68565b60405180910390fd5b8060088190555050565b60005b838390508110156114265760005b8281101561141257610fa06113846007611ec0565b1415611395576113946007611ece565b5b61139f6007611edb565b6113ff8585848181106113db577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906113f09190612dbc565b6113fa6007611ec0565b6124c3565b808061140a90613da4565b91505061136f565b50808061141e90613da4565b915050611361565b50505050565b60005b848490508110156114f55760005b838110156114e157610fa06114526007611ec0565b1415611463576114626007611ece565b5b61146d6007611edb565b6114ce8686848181106114a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906114be9190612dbc565b6114c86007611ec0565b85612575565b80806114d990613da4565b91505061143d565b5080806114ed90613da4565b91505061142f565b5050505050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c906139c8565b60405180910390fd5b80915050919050565b6115b661200f565b73ffffffffffffffffffffffffffffffffffffffff166115d4611842565b73ffffffffffffffffffffffffffffffffffffffff161461162a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162190613a68565b60405180910390fd5b8060098190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169c906139a8565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6116f461200f565b73ffffffffffffffffffffffffffffffffffffffff16611712611842565b73ffffffffffffffffffffffffffffffffffffffff1614611768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175f90613a68565b60405180910390fd5b61177260006125d5565b565b60005b8383905081101561183c5760005b8281101561182857610fa061179a6007611ec0565b14156117ab576117aa6007611ece565b5b6117b56007611edb565b6118158585848181106117f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906118069190612dbc565b6118106007611ec0565b61240a565b808061182090613da4565b915050611785565b50808061183490613da4565b915050611777565b50505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461187b90613d72565b80601f01602080910402602001604051908101604052809291908181526020018280546118a790613d72565b80156118f45780601f106118c9576101008083540402835291602001916118f4565b820191906000526020600020905b8154815290600101906020018083116118d757829003601f168201915b5050505050905090565b61190661200f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b90613948565b60405180910390fd5b735f8a2d91cf56044d2c1f729cd8bcc7322610ca4b73ffffffffffffffffffffffffffffffffffffffff166119a761200f565b73ffffffffffffffffffffffffffffffffffffffff16146119c757600080fd5b80600560006119d461200f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611a8161200f565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ac6919061386b565b60405180910390a35050565b611ae3611add61200f565b836120d0565b611b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1990613ac8565b60405180910390fd5b611b2e8484848461269b565b50505050565b60606000611b406126f7565b90506000815111611b605760405180602001604052806000815250611b8b565b80611b6a84612717565b604051602001611b7b9291906137e0565b6040516020818303038152906040525b915050919050565b60005b83839050811015611c295760005b82811015611c1557611c02858584818110611be8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190611bfd9190612dbc565b6128c4565b8080611c0d90613da4565b915050611ba4565b508080611c2190613da4565b915050611b96565b50505050565b6000735f8a2d91cf56044d2c1f729cd8bcc7322610ca4b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ccb577358807bad0b376efc12f5ad86aac70e78ed67deae73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cca5760019050611d58565b5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690505b92915050565b611d6661200f565b73ffffffffffffffffffffffffffffffffffffffff16611d84611842565b73ffffffffffffffffffffffffffffffffffffffff1614611dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd190613a68565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e41906138e8565b60405180910390fd5b611e53816125d5565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600081600001549050919050565b6000816000018190555050565b6001816000016000828254019250508190555050565b826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661208a836114fc565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006120db82611fa3565b61211a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211190613968565b60405180910390fd5b6000612125836114fc565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061219457508373ffffffffffffffffffffffffffffffffffffffff1661217c84610861565b73ffffffffffffffffffffffffffffffffffffffff16145b806121a557506121a48185611c2f565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166121ce826114fc565b73ffffffffffffffffffffffffffffffffffffffff1614612224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221b90613a88565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228b90613928565b60405180910390fd5b61229f838383612924565b6122aa600082612017565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122fa9190613c88565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123519190613ba7565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600081836124789190613ba7565b905092915050565b600061248c6007611edb565b60006124986007611ec0565b90506124a48382612929565b80915050919050565b600081836124bb9190613c2e565b905092915050565b816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6126a68484846121ae565b6126b284848484612af7565b6126f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e8906138c8565b60405180910390fd5b50505050565b6060604051806060016040528060368152602001613f4860369139905090565b6060600082141561275f576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506128bf565b600082905060005b6000821461279157808061277a90613da4565b915050600a8261278a9190613bfd565b9150612767565b60008167ffffffffffffffff8111156127d3577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156128055781602001600182028036833780820191505090505b5090505b600085146128b85760018261281e9190613c88565b9150600a8561282d9190613ded565b60306128399190613ba7565b60f81b818381518110612875577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856128b19190613bfd565b9450612809565b8093505050505b919050565b60008173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299090613a28565b60405180910390fd5b6129a281611fa3565b156129e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d990613908565b60405180910390fd5b6129ee60008383612924565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a3e9190613ba7565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6000612b188473ffffffffffffffffffffffffffffffffffffffff16612c8e565b15612c81578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612b4161200f565b8786866040518563ffffffff1660e01b8152600401612b63949392919061381f565b602060405180830381600087803b158015612b7d57600080fd5b505af1925050508015612bae57506040513d601f19601f82011682018060405250810190612bab9190613050565b60015b612c31573d8060008114612bde576040519150601f19603f3d011682016040523d82523d6000602084013e612be3565b606091505b50600081511415612c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c20906138c8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612c86565b600190505b949350505050565b600080823b905060008111915050919050565b6000612cb4612caf84613b34565b613b03565b905082815260208101848484011115612ccc57600080fd5b612cd7848285613d30565b509392505050565b600081359050612cee81613eeb565b92915050565b60008083601f840112612d0657600080fd5b8235905067ffffffffffffffff811115612d1f57600080fd5b602083019150836020820283011115612d3757600080fd5b9250929050565b600081359050612d4d81613f02565b92915050565b600081359050612d6281613f19565b92915050565b600081519050612d7781613f19565b92915050565b600082601f830112612d8e57600080fd5b8135612d9e848260208601612ca1565b91505092915050565b600081359050612db681613f30565b92915050565b600060208284031215612dce57600080fd5b6000612ddc84828501612cdf565b91505092915050565b60008060408385031215612df857600080fd5b6000612e0685828601612cdf565b9250506020612e1785828601612cdf565b9150509250929050565b600080600060608486031215612e3657600080fd5b6000612e4486828701612cdf565b9350506020612e5586828701612cdf565b9250506040612e6686828701612da7565b9150509250925092565b60008060008060808587031215612e8657600080fd5b6000612e9487828801612cdf565b9450506020612ea587828801612cdf565b9350506040612eb687828801612da7565b925050606085013567ffffffffffffffff811115612ed357600080fd5b612edf87828801612d7d565b91505092959194509250565b60008060408385031215612efe57600080fd5b6000612f0c85828601612cdf565b9250506020612f1d85828601612d3e565b9150509250929050565b60008060408385031215612f3a57600080fd5b6000612f4885828601612cdf565b9250506020612f5985828601612da7565b9150509250929050565b600080600060408486031215612f7857600080fd5b600084013567ffffffffffffffff811115612f9257600080fd5b612f9e86828701612cf4565b93509350506020612fb186828701612da7565b9150509250925092565b60008060008060608587031215612fd157600080fd5b600085013567ffffffffffffffff811115612feb57600080fd5b612ff787828801612cf4565b9450945050602061300a87828801612da7565b925050604061301b87828801612cdf565b91505092959194509250565b60006020828403121561303957600080fd5b600061304784828501612d53565b91505092915050565b60006020828403121561306257600080fd5b600061307084828501612d68565b91505092915050565b60006020828403121561308b57600080fd5b600061309984828501612da7565b91505092915050565b6130ab81613cbc565b82525050565b6130ba81613cce565b82525050565b60006130cb82613b64565b6130d58185613b7a565b93506130e5818560208601613d3f565b6130ee81613eda565b840191505092915050565b600061310482613b6f565b61310e8185613b8b565b935061311e818560208601613d3f565b61312781613eda565b840191505092915050565b600061313d82613b6f565b6131478185613b9c565b9350613157818560208601613d3f565b80840191505092915050565b6000613170602983613b8b565b91507f596f752063616e2064726f70206d696e696d756d20312c206d6178696d756d2060008301527f31303030204e46547300000000000000000000000000000000000000000000006020830152604082019050919050565b60006131d6603283613b8b565b91507f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008301527f63656976657220696d706c656d656e74657200000000000000000000000000006020830152604082019050919050565b600061323c602683613b8b565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006132a2601c83613b8b565b91507f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006000830152602082019050919050565b60006132e2602483613b8b565b91507f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613348601983613b8b565b91507f4552433732313a20617070726f766520746f2063616c6c6572000000000000006000830152602082019050919050565b6000613388602c83613b8b565b91507f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008301527f697374656e7420746f6b656e00000000000000000000000000000000000000006020830152604082019050919050565b60006133ee603883613b8b565b91507f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008301527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006020830152604082019050919050565b6000613454602a83613b8b565b91507f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008301527f726f2061646472657373000000000000000000000000000000000000000000006020830152604082019050919050565b60006134ba602983613b8b565b91507f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008301527f656e7420746f6b656e00000000000000000000000000000000000000000000006020830152604082019050919050565b6000613520601283613b8b565b91507f45786365656473206d617820737570706c7900000000000000000000000000006000830152602082019050919050565b6000613560602383613b8b565b91507f45746865722076616c75652073656e742069732062656c6f772074686520707260008301527f69636500000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006135c6602083613b8b565b91507f4552433732313a206d696e7420746f20746865207a65726f20616464726573736000830152602082019050919050565b6000613606602c83613b8b565b91507f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008301527f697374656e7420746f6b656e00000000000000000000000000000000000000006020830152604082019050919050565b600061366c602083613b8b565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006136ac602983613b8b565b91507f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008301527f73206e6f74206f776e00000000000000000000000000000000000000000000006020830152604082019050919050565b6000613712602183613b8b565b91507f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008301527f72000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613778603183613b8b565b91507f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008301527f776e6572206e6f7220617070726f7665640000000000000000000000000000006020830152604082019050919050565b6137da81613d26565b82525050565b60006137ec8285613132565b91506137f88284613132565b91508190509392505050565b600060208201905061381960008301846130a2565b92915050565b600060808201905061383460008301876130a2565b61384160208301866130a2565b61384e60408301856137d1565b818103606083015261386081846130c0565b905095945050505050565b600060208201905061388060008301846130b1565b92915050565b600060208201905081810360008301526138a081846130f9565b905092915050565b600060208201905081810360008301526138c181613163565b9050919050565b600060208201905081810360008301526138e1816131c9565b9050919050565b600060208201905081810360008301526139018161322f565b9050919050565b6000602082019050818103600083015261392181613295565b9050919050565b60006020820190508181036000830152613941816132d5565b9050919050565b600060208201905081810360008301526139618161333b565b9050919050565b600060208201905081810360008301526139818161337b565b9050919050565b600060208201905081810360008301526139a1816133e1565b9050919050565b600060208201905081810360008301526139c181613447565b9050919050565b600060208201905081810360008301526139e1816134ad565b9050919050565b60006020820190508181036000830152613a0181613513565b9050919050565b60006020820190508181036000830152613a2181613553565b9050919050565b60006020820190508181036000830152613a41816135b9565b9050919050565b60006020820190508181036000830152613a61816135f9565b9050919050565b60006020820190508181036000830152613a818161365f565b9050919050565b60006020820190508181036000830152613aa18161369f565b9050919050565b60006020820190508181036000830152613ac181613705565b9050919050565b60006020820190508181036000830152613ae18161376b565b9050919050565b6000602082019050613afd60008301846137d1565b92915050565b6000604051905081810181811067ffffffffffffffff82111715613b2a57613b29613eab565b5b8060405250919050565b600067ffffffffffffffff821115613b4f57613b4e613eab565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613bb282613d26565b9150613bbd83613d26565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613bf257613bf1613e1e565b5b828201905092915050565b6000613c0882613d26565b9150613c1383613d26565b925082613c2357613c22613e4d565b5b828204905092915050565b6000613c3982613d26565b9150613c4483613d26565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c7d57613c7c613e1e565b5b828202905092915050565b6000613c9382613d26565b9150613c9e83613d26565b925082821015613cb157613cb0613e1e565b5b828203905092915050565b6000613cc782613d06565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015613d5d578082015181840152602081019050613d42565b83811115613d6c576000848401525b50505050565b60006002820490506001821680613d8a57607f821691505b60208210811415613d9e57613d9d613e7c565b5b50919050565b6000613daf82613d26565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613de257613de1613e1e565b5b600182019050919050565b6000613df882613d26565b9150613e0383613d26565b925082613e1357613e12613e4d565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b613ef481613cbc565b8114613eff57600080fd5b50565b613f0b81613cce565b8114613f1657600080fd5b50565b613f2281613cda565b8114613f2d57600080fd5b50565b613f3981613d26565b8114613f4457600080fd5b5056fe68747470733a2f2f6e66746170696d657461646174612e6865726f6b756170702e636f6d2f6170692f666c69707065646b6f6e677a2fa264697066735822122063cde7030b1bf2bca2e105a5c29da0d335f81e3bbd2fe765c1b189de61bf672b64736f6c63430008000033
Loading