608060405260405180606001604052806026815260200162003b6160269139600f9080519060200190620000359291906200026f565b506000601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200008557600080fd5b506040518060400160405280601081526020017f546865204b657973206f6620476f6473000000000000000000000000000000008152506040518060400160405280600781526020017ff09f979defb88f00000000000000000000000000000000000000000000000000815250818181600290805190602001906200010c9291906200026f565b508060039080519060200190620001259291906200026f565b50620001366200019860201b60201c565b60008190555050506200015e62000152620001a160201b60201c565b620001a960201b60201c565b81600d9080519060200190620001769291906200026f565b5080600e90805190602001906200018f9291906200026f565b50505062000383565b60006001905090565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200027d906200034e565b90600052602060002090601f016020900481019282620002a15760008555620002ed565b82601f10620002bc57805160ff1916838001178555620002ed565b82800160010185558215620002ed579182015b82811115620002ec578251825591602001919060010190620002cf565b5b509050620002fc919062000300565b5090565b5b808211156200031b57600081600090555060010162000301565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200036757607f821691505b6020821081036200037d576200037c6200031f565b5b50919050565b6137ce80620003936000396000f3fe6080604052600436106101e35760003560e01c80637a08f90d11610102578063aa1b103f11610095578063c87b56dd11610064578063c87b56dd1461067b578063e985e9c5146106b8578063f2fde38b146106f5578063fb755d591461071e576101e3565b8063aa1b103f146105f6578063b84c82461461060d578063b88d4fde14610636578063c47f002714610652576101e3565b806395d89b41116100d157806395d89b411461054e578063a0712d6814610579578063a22cb465146105a2578063a2309ff8146105cb576101e3565b80637a08f90d146104a85780638a616bc0146104d15780638da5cb5b146104fa57806393ac363814610525576101e3565b806342842e0e1161017a5780635944c753116101495780635944c753146103ee5780636352211e1461041757806370a0823114610454578063715018a614610491576101e3565b806342842e0e1461035757806342966c6814610373578063449a52f81461039c57806355f804b3146103c5576101e3565b8063095ea7b3116101b6578063095ea7b3146102b657806318160ddd146102d257806323b872dd146102fd5780632a55205a14610319576101e3565b806301ffc9a7146101e857806304634d8d1461022557806306fdde031461024e578063081812fc14610279575b600080fd5b3480156101f457600080fd5b5061020f600480360381019061020a9190612a18565b610747565b60405161021c9190612a60565b60405180910390f35b34801561023157600080fd5b5061024c60048036038101906102479190612b1d565b610769565b005b34801561025a57600080fd5b5061026361077f565b6040516102709190612bf6565b60405180910390f35b34801561028557600080fd5b506102a0600480360381019061029b9190612c4e565b610811565b6040516102ad9190612c8a565b60405180910390f35b6102d060048036038101906102cb9190612ca5565b610890565b005b3480156102de57600080fd5b506102e76109d4565b6040516102f49190612cf4565b60405180910390f35b61031760048036038101906103129190612d0f565b6109eb565b005b34801561032557600080fd5b50610340600480360381019061033b9190612d62565b610d0d565b60405161034e929190612da2565b60405180910390f35b610371600480360381019061036c9190612d0f565b610ef7565b005b34801561037f57600080fd5b5061039a60048036038101906103959190612c4e565b610f17565b005b3480156103a857600080fd5b506103c360048036038101906103be9190612ca5565b610f25565b005b3480156103d157600080fd5b506103ec60048036038101906103e79190612f00565b61105f565b005b3480156103fa57600080fd5b5061041560048036038101906104109190612f49565b611081565b005b34801561042357600080fd5b5061043e60048036038101906104399190612c4e565b611099565b60405161044b9190612c8a565b60405180910390f35b34801561046057600080fd5b5061047b60048036038101906104769190612f9c565b6110ab565b6040516104889190612cf4565b60405180910390f35b34801561049d57600080fd5b506104a6611163565b005b3480156104b457600080fd5b506104cf60048036038101906104ca9190612ff5565b611177565b005b3480156104dd57600080fd5b506104f860048036038101906104f39190612c4e565b61118d565b005b34801561050657600080fd5b5061050f6111a1565b60405161051c9190612c8a565b60405180910390f35b34801561053157600080fd5b5061054c60048036038101906105479190612f9c565b6111cb565b005b34801561055a57600080fd5b50610563611217565b6040516105709190612bf6565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b9190612c4e565b6112a9565b005b3480156105ae57600080fd5b506105c960048036038101906105c49190612ff5565b6112c5565b005b3480156105d757600080fd5b506105e06113d0565b6040516105ed9190612cf4565b60405180910390f35b34801561060257600080fd5b5061060b6113df565b005b34801561061957600080fd5b50610634600480360381019061062f9190612f00565b6113f1565b005b610650600480360381019061064b91906130d6565b611413565b005b34801561065e57600080fd5b5061067960048036038101906106749190612f00565b611486565b005b34801561068757600080fd5b506106a2600480360381019061069d9190612c4e565b6114a8565b6040516106af9190612bf6565b60405180910390f35b3480156106c457600080fd5b506106df60048036038101906106da9190613159565b611546565b6040516106ec9190612a60565b60405180910390f35b34801561070157600080fd5b5061071c60048036038101906107179190612f9c565b611653565b005b34801561072a57600080fd5b5061074560048036038101906107409190613199565b6116d6565b005b6000610752826116ee565b80610762575061076182611780565b5b9050919050565b6107716117fa565b61077b8282611878565b5050565b6060600d805461078e9061321b565b80601f01602080910402602001604051908101604052809291908181526020018280546107ba9061321b565b80156108075780601f106107dc57610100808354040283529160200191610807565b820191906000526020600020905b8154815290600101906020018083116107ea57829003601f168201915b5050505050905090565b600061081c82611a0d565b610852576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061089b82611099565b90508073ffffffffffffffffffffffffffffffffffffffff166108bc611a6c565b73ffffffffffffffffffffffffffffffffffffffff161461091f576108e8816108e3611a6c565b611546565b61091e576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60006109de611a74565b6001546000540303905090565b60006109f682611a7d565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a5d576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610a6984611b49565b91509150610a7f8187610a7a611a6c565b611b70565b610acb57610a9486610a8f611a6c565b611546565b610aca576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610b31576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b3e8686866001611bb4565b8015610b4957600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610c1785610bf3888887611bba565b7c020000000000000000000000000000000000000000000000000000000017611be2565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610c9d5760006001850190506000600460008381526020019081526020016000205403610c9b576000548114610c9a578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610d058686866001611c0d565b505050505050565b6000806000600960008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1603610ea25760086040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b6000610eac611c13565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff1686610ed8919061327b565b610ee29190613304565b90508160000151819350935050509250929050565b610f1283838360405180602001604052806000815250611413565b505050565b610f22816001611c1d565b50565b816000610f30611e6f565b9050600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806110105750600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61104f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611046906133cd565b60405180910390fd5b6110598484611e77565b50505050565b6110676117fa565b80600f908051906020019061107d929190612909565b5050565b6110896117fa565b611094838383611e95565b505050565b60006110a482611a7d565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611112576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b61116b6117fa565b611175600061203c565b565b61117f6117fa565b6111898282612102565b5050565b6111956117fa565b61119e816121ab565b50565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6111d36117fa565b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060600e80546112269061321b565b80601f01602080910402602001604051908101604052809291908181526020018280546112529061321b565b801561129f5780601f106112745761010080835404028352916020019161129f565b820191906000526020600020905b81548152906001019060200180831161128257829003601f168201915b5050505050905090565b6112b16117fa565b6112c26112bc6111a1565b82611e77565b50565b80600760006112d2611a6c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661137f611a6c565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113c49190612a60565b60405180910390a35050565b60006113da61220a565b905090565b6113e76117fa565b6113ef61221d565b565b6113f96117fa565b80600e908051906020019061140f929190612909565b5050565b61141e8484846109eb565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611480576114498484848461226a565b61147f576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b61148e6117fa565b80600d90805190602001906114a4929190612909565b5050565b60606114b382611a0d565b6114e9576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006114f36123ba565b90506000815103611513576040518060200160405280600081525061153e565b8061151d8461244c565b60405160200161152e929190613429565b6040516020818303038152906040525b915050919050565b60006115506111a1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115d95750600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156116325750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611640576001905061164d565b61164a838361249c565b90505b92915050565b61165b6117fa565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c1906134bf565b60405180910390fd5b6116d38161203c565b50565b6116de6117fa565b6116e9838383612530565b505050565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061174957506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806117795750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806117f357506117f28261262e565b5b9050919050565b611802611e6f565b73ffffffffffffffffffffffffffffffffffffffff166118206111a1565b73ffffffffffffffffffffffffffffffffffffffff1614611876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186d9061352b565b60405180910390fd5b565b611880611c13565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff1611156118de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d5906135bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361194d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194490613629565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600860008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b600081611a18611a74565b11158015611a27575060005482105b8015611a65575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b60008082905080611a8c611a74565b11611b1257600054811015611b115760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611b0f575b60008103611b05576004600083600190039350838152602001908152602001600020549050611adb565b8092505050611b44565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611bd1868684612698565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000612710905090565b6000611c2883611a7d565b90506000819050600080611c3b86611b49565b915091508415611ca457611c578184611c52611a6c565b611b70565b611ca357611c6c83611c67611a6c565b611546565b611ca2576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b611cb2836000886001611bb4565b8015611cbd57600082555b600160806001901b03600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611d6583611d2285600088611bba565b7c02000000000000000000000000000000000000000000000000000000007c01000000000000000000000000000000000000000000000000000000001717611be2565b600460008881526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000851603611deb5760006001870190506000600460008381526020019081526020016000205403611de9576000548114611de8578460046000838152602001908152602001600020819055505b5b505b85600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611e55836000886001611c0d565b600160008154809291906001019190505550505050505050565b600033905090565b611e918282604051806020016040528060008152506126a1565b5050565b611e9d611c13565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff161115611efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef2906135bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6190613695565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff168152506009600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550905050505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167feded357c6d8773ebcbf74e8427fb3fd0f81b5990ae85d87b1ca1c1ed699399408260405161219f9190612a60565b60405180910390a25050565b60096000828152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff0219169055505050565b6000612214611a74565b60005403905090565b6008600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff02191690555050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612290611a6c565b8786866040518563ffffffff1660e01b81526004016122b2949392919061370a565b6020604051808303816000875af19250505080156122ee57506040513d601f19601f820116820180604052508101906122eb919061376b565b60015b612367573d806000811461231e576040519150601f19603f3d011682016040523d82523d6000602084013e612323565b606091505b50600081510361235f576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600f80546123c99061321b565b80601f01602080910402602001604051908101604052809291908181526020018280546123f59061321b565b80156124425780601f1061241757610100808354040283529160200191612442565b820191906000526020600020905b81548152906001019060200180831161242557829003601f168201915b5050505050905090565b606060a060405101806040526020810391506000825281835b60011561248757600184039350600a81066030018453600a8104905080612465575b50828103602084039350808452505050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b80600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f08f92746aa8f85335ccad64f1152a8a2b52c42d4adeaecf28b1b441aa2676ca7836040516126219190612a60565b60405180910390a3505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60009392505050565b6126ab838361273e565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461273957600080549050600083820390505b6126eb600086838060010194508661226a565b612721576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106126d857816000541461273657600080fd5b50505b505050565b6000805490506000820361277e576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61278b6000848385611bb4565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612802836127f36000866000611bba565b6127fc856128f9565b17611be2565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b8181146128a357808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050612868565b50600082036128de576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506128f46000848385611c0d565b505050565b60006001821460e11b9050919050565b8280546129159061321b565b90600052602060002090601f016020900481019282612937576000855561297e565b82601f1061295057805160ff191683800117855561297e565b8280016001018555821561297e579182015b8281111561297d578251825591602001919060010190612962565b5b50905061298b919061298f565b5090565b5b808211156129a8576000816000905550600101612990565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6129f5816129c0565b8114612a0057600080fd5b50565b600081359050612a12816129ec565b92915050565b600060208284031215612a2e57612a2d6129b6565b5b6000612a3c84828501612a03565b91505092915050565b60008115159050919050565b612a5a81612a45565b82525050565b6000602082019050612a756000830184612a51565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612aa682612a7b565b9050919050565b612ab681612a9b565b8114612ac157600080fd5b50565b600081359050612ad381612aad565b92915050565b60006bffffffffffffffffffffffff82169050919050565b612afa81612ad9565b8114612b0557600080fd5b50565b600081359050612b1781612af1565b92915050565b60008060408385031215612b3457612b336129b6565b5b6000612b4285828601612ac4565b9250506020612b5385828601612b08565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b97578082015181840152602081019050612b7c565b83811115612ba6576000848401525b50505050565b6000601f19601f8301169050919050565b6000612bc882612b5d565b612bd28185612b68565b9350612be2818560208601612b79565b612beb81612bac565b840191505092915050565b60006020820190508181036000830152612c108184612bbd565b905092915050565b6000819050919050565b612c2b81612c18565b8114612c3657600080fd5b50565b600081359050612c4881612c22565b92915050565b600060208284031215612c6457612c636129b6565b5b6000612c7284828501612c39565b91505092915050565b612c8481612a9b565b82525050565b6000602082019050612c9f6000830184612c7b565b92915050565b60008060408385031215612cbc57612cbb6129b6565b5b6000612cca85828601612ac4565b9250506020612cdb85828601612c39565b9150509250929050565b612cee81612c18565b82525050565b6000602082019050612d096000830184612ce5565b92915050565b600080600060608486031215612d2857612d276129b6565b5b6000612d3686828701612ac4565b9350506020612d4786828701612ac4565b9250506040612d5886828701612c39565b9150509250925092565b60008060408385031215612d7957612d786129b6565b5b6000612d8785828601612c39565b9250506020612d9885828601612c39565b9150509250929050565b6000604082019050612db76000830185612c7b565b612dc46020830184612ce5565b9392505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e0d82612bac565b810181811067ffffffffffffffff82111715612e2c57612e2b612dd5565b5b80604052505050565b6000612e3f6129ac565b9050612e4b8282612e04565b919050565b600067ffffffffffffffff821115612e6b57612e6a612dd5565b5b612e7482612bac565b9050602081019050919050565b82818337600083830152505050565b6000612ea3612e9e84612e50565b612e35565b905082815260208101848484011115612ebf57612ebe612dd0565b5b612eca848285612e81565b509392505050565b600082601f830112612ee757612ee6612dcb565b5b8135612ef7848260208601612e90565b91505092915050565b600060208284031215612f1657612f156129b6565b5b600082013567ffffffffffffffff811115612f3457612f336129bb565b5b612f4084828501612ed2565b91505092915050565b600080600060608486031215612f6257612f616129b6565b5b6000612f7086828701612c39565b9350506020612f8186828701612ac4565b9250506040612f9286828701612b08565b9150509250925092565b600060208284031215612fb257612fb16129b6565b5b6000612fc084828501612ac4565b91505092915050565b612fd281612a45565b8114612fdd57600080fd5b50565b600081359050612fef81612fc9565b92915050565b6000806040838503121561300c5761300b6129b6565b5b600061301a85828601612ac4565b925050602061302b85828601612fe0565b9150509250929050565b600067ffffffffffffffff8211156130505761304f612dd5565b5b61305982612bac565b9050602081019050919050565b600061307961307484613035565b612e35565b90508281526020810184848401111561309557613094612dd0565b5b6130a0848285612e81565b509392505050565b600082601f8301126130bd576130bc612dcb565b5b81356130cd848260208601613066565b91505092915050565b600080600080608085870312156130f0576130ef6129b6565b5b60006130fe87828801612ac4565b945050602061310f87828801612ac4565b935050604061312087828801612c39565b925050606085013567ffffffffffffffff811115613141576131406129bb565b5b61314d878288016130a8565b91505092959194509250565b600080604083850312156131705761316f6129b6565b5b600061317e85828601612ac4565b925050602061318f85828601612ac4565b9150509250929050565b6000806000606084860312156131b2576131b16129b6565b5b60006131c086828701612ac4565b93505060206131d186828701612ac4565b92505060406131e286828701612fe0565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061323357607f821691505b602082108103613246576132456131ec565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061328682612c18565b915061329183612c18565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132ca576132c961324c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061330f82612c18565b915061331a83612c18565b92508261332a576133296132d5565b5b828204905092915050565b7f4f6e6c794d696e7465723a2063616c6c6572206973206e6f7420746865206d6960008201527f6e746572206f72206973206e6f7420616c6c6f77656420746f206d696e74207460208201527f6f20737065636966696564206164647265737300000000000000000000000000604082015250565b60006133b7605383612b68565b91506133c282613335565b606082019050919050565b600060208201905081810360008301526133e6816133aa565b9050919050565b600081905092915050565b600061340382612b5d565b61340d81856133ed565b935061341d818560208601612b79565b80840191505092915050565b600061343582856133f8565b915061344182846133f8565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006134a9602683612b68565b91506134b48261344d565b604082019050919050565b600060208201905081810360008301526134d88161349c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613515602083612b68565b9150613520826134df565b602082019050919050565b6000602082019050818103600083015261354481613508565b9050919050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b60006135a7602a83612b68565b91506135b28261354b565b604082019050919050565b600060208201905081810360008301526135d68161359a565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b6000613613601983612b68565b915061361e826135dd565b602082019050919050565b6000602082019050818103600083015261364281613606565b9050919050565b7f455243323938313a20496e76616c696420706172616d65746572730000000000600082015250565b600061367f601b83612b68565b915061368a82613649565b602082019050919050565b600060208201905081810360008301526136ae81613672565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006136dc826136b5565b6136e681856136c0565b93506136f6818560208601612b79565b6136ff81612bac565b840191505092915050565b600060808201905061371f6000830187612c7b565b61372c6020830186612c7b565b6137396040830185612ce5565b818103606083015261374b81846136d1565b905095945050505050565b600081519050613765816129ec565b92915050565b600060208284031215613781576137806129b6565b5b600061378f84828501613756565b9150509291505056fea2646970667358221220e9f7e170858175c52be97baab54935de3b32162d711193423303949910415a5164736f6c634300080d003368747470733a2f2f6e66742e6675747572656c616e642e696f2f6b65792d6f662d676f64732f