60806040525f600655734200000000000000000000000000000000000006600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507323e4e76d01b2002be436ce8d6044b0aa2f68b68a600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738ce191193d15ea94e11d327b4c7ad8bbe520f6af600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a068db8bac710cb40000000600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a0944a81999493c80000000600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a0ea77fe22d050b0000000060105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a14b96be9c2da2c0000000060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073da75cef1c93078e8b736fca5d5a30adb97c8957d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801562000290575f80fd5b5060405162003c3138038062003c318339818101604052810190620002b6919062000547565b84848160039081620002c9919062000837565b508060049081620002db919062000837565b505050826007819055508160058190555073b50201558b00496a145fe76f7424749556e326d860095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a8190555050505050506200091b565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620003b3826200036b565b810181811067ffffffffffffffff82111715620003d557620003d46200037b565b5b80604052505050565b5f620003e962000352565b9050620003f78282620003a8565b919050565b5f67ffffffffffffffff8211156200041957620004186200037b565b5b62000424826200036b565b9050602081019050919050565b5f5b838110156200045057808201518184015260208101905062000433565b5f8484015250505050565b5f620004716200046b84620003fc565b620003de565b90508281526020810184848401111562000490576200048f62000367565b5b6200049d84828562000431565b509392505050565b5f82601f830112620004bc57620004bb62000363565b5b8151620004ce8482602086016200045b565b91505092915050565b5f819050919050565b620004eb81620004d7565b8114620004f6575f80fd5b50565b5f815190506200050981620004e0565b92915050565b5f819050919050565b62000523816200050f565b81146200052e575f80fd5b50565b5f81519050620005418162000518565b92915050565b5f805f805f60a086880312156200056357620005626200035b565b5b5f86015167ffffffffffffffff8111156200058357620005826200035f565b5b6200059188828901620004a5565b955050602086015167ffffffffffffffff811115620005b557620005b46200035f565b5b620005c388828901620004a5565b9450506040620005d688828901620004f9565b9350506060620005e988828901620004f9565b9250506080620005fc8882890162000531565b9150509295509295909350565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200065857607f821691505b6020821081036200066e576200066d62000613565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620006d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000695565b620006de868362000695565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200071f620007196200071384620004d7565b620006f6565b620004d7565b9050919050565b5f819050919050565b6200073a83620006ff565b62000752620007498262000726565b848454620006a1565b825550505050565b5f90565b620007686200075a565b620007758184846200072f565b505050565b5b818110156200079c57620007905f826200075e565b6001810190506200077b565b5050565b601f821115620007eb57620007b58162000674565b620007c08462000686565b81016020851015620007d0578190505b620007e8620007df8562000686565b8301826200077a565b50505b505050565b5f82821c905092915050565b5f6200080d5f1984600802620007f0565b1980831691505092915050565b5f620008278383620007fc565b9150826002028217905092915050565b620008428262000609565b67ffffffffffffffff8111156200085e576200085d6200037b565b5b6200086a825462000640565b62000877828285620007a0565b5f60209050601f831160018114620008ad575f841562000898578287015190505b620008a485826200081a565b86555062000913565b601f198416620008bd8662000674565b5f5b82811015620008e657848901518255600182019150602085019450602081019050620008bf565b8683101562000906578489015162000902601f891682620007fc565b8355505b6001600288020188555050505b505050505050565b61330880620009295f395ff3fe6080604052600436106101ba575f3560e01c806392fdb023116100eb578063ad044f4911610089578063bfe6085611610063578063bfe6085614610638578063dd62ed3e14610662578063ec3c481a1461069e578063ec4480c7146106c6576101c1565b8063ad044f49146105c8578063b44a2722146105f2578063b4edfb161461061c576101c1565b80639c6e0268116100c55780639c6e02681461050e578063a59a997314610538578063a9059cbb14610562578063aa98e0c61461059e576101c1565b806392fdb0231461049057806394efb506146104ba57806395d89b41146104e4576101c1565b8063313ce56711610158578063686f2c9011610132578063686f2c90146103b15780636e98a2ed146103dc57806370a082311461041857806370b0424114610454576101c1565b8063313ce56714610321578063412482601461034b578063539ad31a14610375576101c1565b806318160ddd1161019457806318160ddd1461026757806323b872dd1461029157806324c62c44146102cd57806327223af9146102f7576101c1565b806306fdde03146101c5578063095ea7b3146101ef578063150b7a021461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d96106f0565b6040516101e69190612189565b60405180910390f35b3480156101fa575f80fd5b506102156004803603810190610210919061223e565b610780565b6040516102229190612296565b60405180910390f35b348015610236575f80fd5b50610251600480360381019061024c9190612310565b6107a2565b60405161025e91906123ce565b60405180910390f35b348015610272575f80fd5b5061027b6107b6565b60405161028891906123f6565b60405180910390f35b34801561029c575f80fd5b506102b760048036038101906102b2919061240f565b6107bf565b6040516102c49190612296565b60405180910390f35b3480156102d8575f80fd5b506102e16107ed565b6040516102ee91906123f6565b60405180910390f35b348015610302575f80fd5b5061030b6107f3565b604051610318919061246e565b60405180910390f35b34801561032c575f80fd5b50610335610818565b60405161034291906124a2565b60405180910390f35b348015610356575f80fd5b5061035f610820565b60405161036c919061246e565b60405180910390f35b348015610380575f80fd5b5061039b600480360381019061039691906124bb565b610845565b6040516103a891906123f6565b60405180910390f35b3480156103bc575f80fd5b506103c5610908565b6040516103d39291906124e6565b60405180910390f35b3480156103e7575f80fd5b5061040260048036038101906103fd91906124bb565b610a23565b60405161040f91906123f6565b60405180910390f35b348015610423575f80fd5b5061043e6004803603810190610439919061250d565b610b11565b60405161044b91906123f6565b60405180910390f35b34801561045f575f80fd5b5061047a600480360381019061047591906124bb565b610b56565b60405161048791906123f6565b60405180910390f35b34801561049b575f80fd5b506104a4610c0a565b6040516104b191906123f6565b60405180910390f35b3480156104c5575f80fd5b506104ce610c10565b6040516104db919061246e565b60405180910390f35b3480156104ef575f80fd5b506104f8610c35565b6040516105059190612189565b60405180910390f35b348015610519575f80fd5b50610522610cc5565b60405161052f91906123f6565b60405180910390f35b348015610543575f80fd5b5061054c610ccb565b6040516105599190612593565b60405180910390f35b34801561056d575f80fd5b506105886004803603810190610583919061223e565b610cf0565b6040516105959190612296565b60405180910390f35b3480156105a9575f80fd5b506105b2610d12565b6040516105bf91906125c4565b60405180910390f35b3480156105d3575f80fd5b506105dc610d18565b6040516105e991906123f6565b60405180910390f35b3480156105fd575f80fd5b50610606610d1e565b60405161061391906125fd565b60405180910390f35b6106366004803603810190610631919061266b565b610d43565b005b348015610643575f80fd5b5061064c6110b0565b60405161065991906123f6565b60405180910390f35b34801561066d575f80fd5b50610688600480360381019061068391906126c8565b6110c0565b60405161069591906123f6565b60405180910390f35b3480156106a9575f80fd5b506106c460048036038101906106bf91906124bb565b611142565b005b3480156106d1575f80fd5b506106da611272565b6040516106e7919061246e565b60405180910390f35b6060600380546106ff90612733565b80601f016020809104026020016040519081016040528092919081815260200182805461072b90612733565b80156107765780601f1061074d57610100808354040283529160200191610776565b820191905f5260205f20905b81548152906001019060200180831161075957829003601f168201915b5050505050905090565b5f8061078a611297565b905061079781858561129e565b600191505092915050565b5f63150b7a0260e01b905095945050505050565b5f600254905090565b5f806107c9611297565b90506107d68582856112b0565b6107e1858585611342565b60019150509392505050565b60055481565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012905090565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f808211610888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087f906127d3565b60405180910390fd5b6b019d971e4fe8401e740000008211156108d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ce90612861565b60405180910390fd5b5f6b019d971e4fe8401e74000000600554846108f391906128ac565b6108fd919061291a565b905080915050919050565b5f805f604051806080016040528060085481526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016fffffffffffffffffffffffffffffffff801681526020016fffffffffffffffffffffffffffffffff8016815250905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fc6f7865826040518263ffffffff1660e01b81526004016109c491906129e5565b60408051808303815f875af11580156109df573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a039190612a12565b8093508194505050610a153084611432565b610a1e826114b1565b509091565b5f80600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a7f9190612a5f565b602060405180830381865afa158015610a9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610abe9190612a78565b90505f81610aca6107b6565b85610ad5919061291a565b610adf91906128ac565b9050600754421015610b07576064605a82610afa91906128ac565b610b04919061291a565b90505b8092505050919050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f808211610b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9090612b13565b60405180910390fd5b600554821115610bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd590612ba1565b60405180910390fd5b6b019d971e4fe8401e7400000060055483610bf9919061291a565b610c0391906128ac565b9050919050565b60085481565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054610c4490612733565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7090612733565b8015610cbb5780601f10610c9257610100808354040283529160200191610cbb565b820191905f5260205f20905b815481529060010190602001808311610c9e57829003601f168201915b5050505050905090565b60075481565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f80610cfa611297565b9050610d07818585611342565b600191505092915050565b600a5481565b60065481565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007544210610d87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7e90612c09565b60405180910390fd5b5f8311610dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc090612c71565b60405180910390fd5b60055483600654610dda9190612c8f565b1115610e1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1290612d32565b60405180910390fd5b5f801b600a5414610ee0575f3384604051602001610e3a929190612db5565b604051602081830303815290604052805190602001209050610e9f8383808060200260200160405190810160405280939291908181526020018383602002808284375f81840152601f19601f82011690508083019250505050505050600a5483611620565b610ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed590612e2a565b60405180910390fd5b505b823414610f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1990612e92565b60405180910390fd5b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004015f604051808303818588803b158015610f89575f80fd5b505af1158015610f9b573d5f803e3d5ffd5b5050505050610fa9836114b1565b5f610fb384610b56565b90508360065f828254610fc69190612c8f565b92505081905550610fd73382611636565b60055484600654610fe89190612c8f565b106110aa57610ff56116b5565b5f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110509190612a5f565b602060405180830381865afa15801561106b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061108f9190612a78565b905061109a816118f7565b6110a460016119ba565b50505050505b50505050565b6b019d971e4fe8401e7400000081565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f8111611184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117b90612f20565b60405180910390fd5b5f61118e82610a23565b905061119a3383611432565b6111a3816118f7565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b81526004016111fd91906123f6565b5f604051808303815f87803b158015611214575f80fd5b505af1158015611226573d5f803e3d5ffd5b505050503373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561126d573d5f803e3d5ffd5b505050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b6112ab8383836001611c85565b505050565b5f6112bb84846110c0565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461133c578181101561132d578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161132493929190612f3e565b60405180910390fd5b61133b84848484035f611c85565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113b2575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016113a99190612a5f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611422575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114199190612a5f565b60405180910390fd5b61142d838383611e54565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114a2575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114999190612a5f565b60405180910390fd5b6114ad825f83611e54565b5050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161152e929190612f73565b6020604051808303815f875af115801561154a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061156e9190612fc4565b5060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663617ba037600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683305f6040518563ffffffff1660e01b81526004016115f09493929190613035565b5f604051808303815f87803b158015611607575f80fd5b505af1158015611619573d5f803e3d5ffd5b5050505050565b5f8261162c858461206d565b1490509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116a6575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161169d9190612a5f565b60405180910390fd5b6116b15f8383611e54565b5050565b5f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a1671295600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630610bb86040518463ffffffff1660e01b8152600401611737939291906130bf565b6020604051808303815f875af1158015611753573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117779190613108565b90505f678ac7230489e80000600554036117b457600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061188d565b6801158e460913d00000600554036117ef57600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061188c565b6802b5e3af16b18800006005540361182a5760105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061188b565b68056bc75e2d63100000600554036118655760115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061188a565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b5b5b5b8173ffffffffffffffffffffffffffffffffffffffff1663f637731d826040518263ffffffff1660e01b81526004016118c6919061246e565b5f604051808303815f87803b1580156118dd575f80fd5b505af11580156118ef573d5f803e3d5ffd5b505050505050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166369328dec600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683306040518463ffffffff1660e01b815260040161197693929190613133565b6020604051808303815f875af1158015611992573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119b69190612a78565b5050565b5f805f80600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518363ffffffff1660e01b8152600401611a3b929190612f73565b6020604051808303815f875af1158015611a57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a7b9190612fc4565b50611a92306b019d971e4fe8401e74000000611636565b3073ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b019d971e4fe8401e740000006040518363ffffffff1660e01b8152600401611afa929190612f73565b6020604051808303815f875af1158015611b16573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b3a9190612fc4565b505f6040518061016001604052803073ffffffffffffffffffffffffffffffffffffffff168152602001600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001610bb862ffffff168152602001603c807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27618611bdc9190613174565b611be691906131dc565b60020b8152602001603c807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27618611c1b90613218565b611c259190613174565b611c2f91906131dc565b60020b81526020016b019d971e4fe8401e7400000081526020018781526020015f81526020015f81526020013073ffffffffffffffffffffffffffffffffffffffff168152602001428152509050509193509193565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611cf5575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611cec9190612a5f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d65575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611d5c9190612a5f565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611e4e578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611e4591906123f6565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ea4578060025f828254611e989190612c8f565b92505081905550611f72565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611f2d578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611f2493929190612f3e565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fb9578060025f8282540392505081905550612003565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161206091906123f6565b60405180910390a3505050565b5f808290505f5b84518110156120b6576120a1828683815181106120945761209361325e565b5b60200260200101516120c1565b915080806120ae9061328b565b915050612074565b508091505092915050565b5f8183106120d8576120d382846120eb565b6120e3565b6120e283836120eb565b5b905092915050565b5f825f528160205260405f20905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561213657808201518184015260208101905061211b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61215b826120ff565b6121658185612109565b9350612175818560208601612119565b61217e81612141565b840191505092915050565b5f6020820190508181035f8301526121a18184612151565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121da826121b1565b9050919050565b6121ea816121d0565b81146121f4575f80fd5b50565b5f81359050612205816121e1565b92915050565b5f819050919050565b61221d8161220b565b8114612227575f80fd5b50565b5f8135905061223881612214565b92915050565b5f8060408385031215612254576122536121a9565b5b5f612261858286016121f7565b92505060206122728582860161222a565b9150509250929050565b5f8115159050919050565b6122908161227c565b82525050565b5f6020820190506122a95f830184612287565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126122d0576122cf6122af565b5b8235905067ffffffffffffffff8111156122ed576122ec6122b3565b5b602083019150836001820283011115612309576123086122b7565b5b9250929050565b5f805f805f60808688031215612329576123286121a9565b5b5f612336888289016121f7565b9550506020612347888289016121f7565b94505060406123588882890161222a565b935050606086013567ffffffffffffffff811115612379576123786121ad565b5b612385888289016122bb565b92509250509295509295909350565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6123c881612394565b82525050565b5f6020820190506123e15f8301846123bf565b92915050565b6123f08161220b565b82525050565b5f6020820190506124095f8301846123e7565b92915050565b5f805f60608486031215612426576124256121a9565b5b5f612433868287016121f7565b9350506020612444868287016121f7565b92505060406124558682870161222a565b9150509250925092565b612468816121b1565b82525050565b5f6020820190506124815f83018461245f565b92915050565b5f60ff82169050919050565b61249c81612487565b82525050565b5f6020820190506124b55f830184612493565b92915050565b5f602082840312156124d0576124cf6121a9565b5b5f6124dd8482850161222a565b91505092915050565b5f6040820190506124f95f8301856123e7565b61250660208301846123e7565b9392505050565b5f60208284031215612522576125216121a9565b5b5f61252f848285016121f7565b91505092915050565b5f819050919050565b5f61255b612556612551846121b1565b612538565b6121b1565b9050919050565b5f61256c82612541565b9050919050565b5f61257d82612562565b9050919050565b61258d81612573565b82525050565b5f6020820190506125a65f830184612584565b92915050565b5f819050919050565b6125be816125ac565b82525050565b5f6020820190506125d75f8301846125b5565b92915050565b5f6125e782612562565b9050919050565b6125f7816125dd565b82525050565b5f6020820190506126105f8301846125ee565b92915050565b5f8083601f84011261262b5761262a6122af565b5b8235905067ffffffffffffffff811115612648576126476122b3565b5b602083019150836020820283011115612664576126636122b7565b5b9250929050565b5f805f60408486031215612682576126816121a9565b5b5f61268f8682870161222a565b935050602084013567ffffffffffffffff8111156126b0576126af6121ad565b5b6126bc86828701612616565b92509250509250925092565b5f80604083850312156126de576126dd6121a9565b5b5f6126eb858286016121f7565b92505060206126fc858286016121f7565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061274a57607f821691505b60208210810361275d5761275c612706565b5b50919050565b7f4d656d6520746f6b656e20616d6f756e74206d757374206265206772656174655f8201527f72207468616e207a65726f000000000000000000000000000000000000000000602082015250565b5f6127bd602b83612109565b91506127c882612763565b604082019050919050565b5f6020820190508181035f8301526127ea816127b1565b9050919050565b7f4d656d6520746f6b656e20616d6f756e742065786365656473206d61782073755f8201527f70706c7900000000000000000000000000000000000000000000000000000000602082015250565b5f61284b602483612109565b9150612856826127f1565b604082019050919050565b5f6020820190508181035f8301526128788161283f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6128b68261220b565b91506128c18361220b565b92508282026128cf8161220b565b915082820484148315176128e6576128e561287f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6129248261220b565b915061292f8361220b565b92508261293f5761293e6128ed565b5b828204905092915050565b6129538161220b565b82525050565b612962816121d0565b82525050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b61298c81612968565b82525050565b608082015f8201516129a65f85018261294a565b5060208201516129b96020850182612959565b5060408201516129cc6040850182612983565b5060608201516129df6060850182612983565b50505050565b5f6080820190506129f85f830184612992565b92915050565b5f81519050612a0c81612214565b92915050565b5f8060408385031215612a2857612a276121a9565b5b5f612a35858286016129fe565b9250506020612a46858286016129fe565b9150509250929050565b612a59816121d0565b82525050565b5f602082019050612a725f830184612a50565b92915050565b5f60208284031215612a8d57612a8c6121a9565b5b5f612a9a848285016129fe565b91505092915050565b7f46756e6420616d6f756e74206d7573742062652067726561746572207468616e5f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612afd602583612109565b9150612b0882612aa3565b604082019050919050565b5f6020820190508181035f830152612b2a81612af1565b9050919050565b7f46756e6420616d6f756e7420657863656564732066756e64207468726573686f5f8201527f6c64000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b8b602283612109565b9150612b9682612b31565b604082019050919050565b5f6020820190508181035f830152612bb881612b7f565b9050919050565b7f46756e6472616973696e672068617320656e64656400000000000000000000005f82015250565b5f612bf3601583612109565b9150612bfe82612bbf565b602082019050919050565b5f6020820190508181035f830152612c2081612be7565b9050919050565b7f416d6f756e742073686f756c642062652067726561746572207468616e2030005f82015250565b5f612c5b601f83612109565b9150612c6682612c27565b602082019050919050565b5f6020820190508181035f830152612c8881612c4f565b9050919050565b5f612c998261220b565b9150612ca48361220b565b9250828201905080821115612cbc57612cbb61287f565b5b92915050565b7f46756e64656420616d6f756e74206578636565647320746172676574207468725f8201527f6573686f6c640000000000000000000000000000000000000000000000000000602082015250565b5f612d1c602683612109565b9150612d2782612cc2565b604082019050919050565b5f6020820190508181035f830152612d4981612d10565b9050919050565b5f8160601b9050919050565b5f612d6682612d50565b9050919050565b5f612d7782612d5c565b9050919050565b612d8f612d8a826121d0565b612d6d565b82525050565b5f819050919050565b612daf612daa8261220b565b612d95565b82525050565b5f612dc08285612d7e565b601482019150612dd08284612d9e565b6020820191508190509392505050565b7f4e6f742077686974656c697374656400000000000000000000000000000000005f82015250565b5f612e14600f83612109565b9150612e1f82612de0565b602082019050919050565b5f6020820190508181035f830152612e4181612e08565b9050919050565b7f496e636f7272656374204554482076616c75652073656e7400000000000000005f82015250565b5f612e7c601883612109565b9150612e8782612e48565b602082019050919050565b5f6020820190508181035f830152612ea981612e70565b9050919050565b7f416d6f756e74206f66206d656d6520746f6b656e7320746f2072657475726e205f8201527f6d7573742062652067726561746572207468616e203000000000000000000000602082015250565b5f612f0a603683612109565b9150612f1582612eb0565b604082019050919050565b5f6020820190508181035f830152612f3781612efe565b9050919050565b5f606082019050612f515f830186612a50565b612f5e60208301856123e7565b612f6b60408301846123e7565b949350505050565b5f604082019050612f865f830185612a50565b612f9360208301846123e7565b9392505050565b612fa38161227c565b8114612fad575f80fd5b50565b5f81519050612fbe81612f9a565b92915050565b5f60208284031215612fd957612fd86121a9565b5b5f612fe684828501612fb0565b91505092915050565b5f819050919050565b5f61ffff82169050919050565b5f61301f61301a61301584612fef565b612538565b612ff8565b9050919050565b61302f81613005565b82525050565b5f6080820190506130485f830187612a50565b61305560208301866123e7565b6130626040830185612a50565b61306f6060830184613026565b95945050505050565b5f819050919050565b5f62ffffff82169050919050565b5f6130a96130a461309f84613078565b612538565b613081565b9050919050565b6130b98161308f565b82525050565b5f6060820190506130d25f830186612a50565b6130df6020830185612a50565b6130ec60408301846130b0565b949350505050565b5f81519050613102816121e1565b92915050565b5f6020828403121561311d5761311c6121a9565b5b5f61312a848285016130f4565b91505092915050565b5f6060820190506131465f830186612a50565b61315360208301856123e7565b6131606040830184612a50565b949350505050565b5f8160020b9050919050565b5f61317e82613168565b915061318983613168565b925082613199576131986128ed565b5b60015f0383147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000831416156131d1576131d061287f565b5b828205905092915050565b5f6131e682613168565b91506131f183613168565b92508282026131ff81613168565b91508082146132115761321061287f565b5b5092915050565b5f61322282613168565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000082036132545761325361287f565b5b815f039050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6132958261220b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132c7576132c661287f565b5b60018201905091905056fea264697066735822122053ac3ccf516b263b2b675b545722d88279b7aec8b970c487d391e3a0ae59e88b64736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000052265d8721dcff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086461736461736461000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b6173646173646173646173000000000000000000000000000000000000000000