0x60806040526040518060400160405280600381526020017f676f6100000000000000000000000000000000000000000000000000000000008152505f908162000049919062000370565b506040518060400160405280600281526020017f676f0000000000000000000000000000000000000000000000000000000000008152506001908162000090919062000370565b5062030d406002555f6003555f60055f6101000a81548160ff021916908315150217905550348015620000c1575f80fd5b5060025460045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555062000454565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200018857607f821691505b6020821081036200019e576200019d62000143565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001c5565b6200020e8683620001c5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000258620002526200024c8462000226565b6200022f565b62000226565b9050919050565b5f819050919050565b620002738362000238565b6200028b62000282826200025f565b848454620001d1565b825550505050565b5f90565b620002a162000293565b620002ae81848462000268565b505050565b5b81811015620002d557620002c95f8262000297565b600181019050620002b4565b5050565b601f8211156200032457620002ee81620001a4565b620002f984620001b6565b8101602085101562000309578190505b620003216200031885620001b6565b830182620002b3565b50505b505050565b5f82821c905092915050565b5f620003465f198460080262000329565b1980831691505092915050565b5f62000360838362000335565b9150826002028217905092915050565b6200037b826200010c565b67ffffffffffffffff81111562000397576200039662000116565b5b620003a3825462000170565b620003b0828285620002d9565b5f60209050601f831160018114620003e6575f8415620003d1578287015190505b620003dd858262000353565b8655506200044c565b601f198416620003f686620001a4565b5f5b828110156200041f57848901518255600182019150602085019450602081019050620003f8565b868310156200043f57848901516200043b601f89168262000335565b8355505b6001600288020188555050505b505050505050565b610d5180620004625f395ff3fe608060405234801561000f575f80fd5b506004361061007b575f3560e01c80638d75fe05116100595780638d75fe05146100eb57806395d89b4114610109578063b2b93b7314610127578063d8b66ae1146101455761007b565b806306fdde031461007f57806318160ddd1461009d57806327e235e3146100bb575b5f80fd5b610087610161565b6040516100949190610637565b60405180910390f35b6100a56101ec565b6040516100b2919061066f565b60405180910390f35b6100d560048036038101906100d091906106f3565b6101f2565b6040516100e2919061066f565b60405180910390f35b6100f3610207565b604051610100919061066f565b60405180910390f35b61011161020d565b60405161011e9190610637565b60405180910390f35b61012f610299565b60405161013c9190610738565b60405180910390f35b61015f600480360381019061015a919061097b565b6102ab565b005b5f805461016d90610a1e565b80601f016020809104026020016040519081016040528092919081815260200182805461019990610a1e565b80156101e45780601f106101bb576101008083540402835291602001916101e4565b820191905f5260205f20905b8154815290600101906020018083116101c757829003601f168201915b505050505081565b60025481565b6004602052805f5260405f205f915090505481565b60035481565b6001805461021a90610a1e565b80601f016020809104026020016040519081016040528092919081815260200182805461024690610a1e565b80156102915780601f1061026857610100808354040283529160200191610291565b820191905f5260205f20905b81548152906001019060200180831161027457829003601f168201915b505050505081565b60055f9054906101000a900460ff1681565b80518251146102ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e690610a98565b60405180910390fd5b60055f9054906101000a900460ff161561033e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033590610b00565b60405180910390fd5b5f5b82518110156105a8575f83828151811061035d5761035c610b1e565b5b602002602001015190505f83838151811061037b5761037a610b1e565b5b6020026020010151905061012c8111156103ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c190610bbb565b60405180910390fd5b8060045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054101561044a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044190610c23565b60405180910390fd5b8060045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104969190610c6e565b925050819055508060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104e99190610ca1565b925050819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161054d919061066f565b60405180910390a38060035f8282546105669190610ca1565b925050819055506002546003541061059357600160055f6101000a81548160ff0219169083151502179055505b505080806105a090610cd4565b915050610340565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156105e45780820151818401526020810190506105c9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610609826105ad565b61061381856105b7565b93506106238185602086016105c7565b61062c816105ef565b840191505092915050565b5f6020820190508181035f83015261064f81846105ff565b905092915050565b5f819050919050565b61066981610657565b82525050565b5f6020820190506106825f830184610660565b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106c282610699565b9050919050565b6106d2816106b8565b81146106dc575f80fd5b50565b5f813590506106ed816106c9565b92915050565b5f6020828403121561070857610707610691565b5b5f610715848285016106df565b91505092915050565b5f8115159050919050565b6107328161071e565b82525050565b5f60208201905061074b5f830184610729565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61078b826105ef565b810181811067ffffffffffffffff821117156107aa576107a9610755565b5b80604052505050565b5f6107bc610688565b90506107c88282610782565b919050565b5f67ffffffffffffffff8211156107e7576107e6610755565b5b602082029050602081019050919050565b5f80fd5b5f61080e610809846107cd565b6107b3565b90508083825260208201905060208402830185811115610831576108306107f8565b5b835b8181101561085a578061084688826106df565b845260208401935050602081019050610833565b5050509392505050565b5f82601f83011261087857610877610751565b5b81356108888482602086016107fc565b91505092915050565b5f67ffffffffffffffff8211156108ab576108aa610755565b5b602082029050602081019050919050565b6108c581610657565b81146108cf575f80fd5b50565b5f813590506108e0816108bc565b92915050565b5f6108f86108f384610891565b6107b3565b9050808382526020820190506020840283018581111561091b5761091a6107f8565b5b835b81811015610944578061093088826108d2565b84526020840193505060208101905061091d565b5050509392505050565b5f82601f83011261096257610961610751565b5b81356109728482602086016108e6565b91505092915050565b5f806040838503121561099157610990610691565b5b5f83013567ffffffffffffffff8111156109ae576109ad610695565b5b6109ba85828601610864565b925050602083013567ffffffffffffffff8111156109db576109da610695565b5b6109e78582860161094e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610a3557607f821691505b602082108103610a4857610a476109f1565b5b50919050565b7f417272617973206c656e677468206d69736d61746368000000000000000000005f82015250565b5f610a826016836105b7565b9150610a8d82610a4e565b602082019050919050565b5f6020820190508181035f830152610aaf81610a76565b9050919050565b7f4d696e74696e6720697320636c6f7365640000000000000000000000000000005f82015250565b5f610aea6011836105b7565b9150610af582610ab6565b602082019050919050565b5f6020820190508181035f830152610b1781610ade565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4578636565646564206d6178696d756d20746f6b656e206c696d6974207065725f8201527f207472616e73616374696f6e0000000000000000000000000000000000000000602082015250565b5f610ba5602c836105b7565b9150610bb082610b4b565b604082019050919050565b5f6020820190508181035f830152610bd281610b99565b9050919050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f610c0d6014836105b7565b9150610c1882610bd9565b602082019050919050565b5f6020820190508181035f830152610c3a81610c01565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c7882610657565b9150610c8383610657565b9250828203905081811115610c9b57610c9a610c41565b5b92915050565b5f610cab82610657565b9150610cb683610657565b9250828201905080821115610cce57610ccd610c41565b5b92915050565b5f610cde82610657565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610d1057610d0f610c41565b5b60018201905091905056fea2646970667358221220146a5b26367421e6e588b9415dda5581bc4163a7b0da2335318354b6ff21cdc764736f6c63430008140033