6101a06040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610120527f94019368dc6b2ee4ac32010c9d0081ec29874325b541829d001d22c296b5246c610180523480156200005c57600080fd5b5060405162003cbf38038062003cbf8339810160408190526200007f916200041f565b838383836040518060400160405280601c81526020017f506f6f6c546f67657468657220436f6e74726f6c6c6564546f6b656e0000000081525080604051806040016040528060018152602001603160f81b81525086868160039080519060200190620000ee929190620002e8565b50805162000104906004906020840190620002e8565b5050825160209384012082519284019290922060c083815260e08290524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818a018190528183019890985260608101959095526080808601939093523085830152805180860390920182529390920190925280519401939093209092526101005250506001600160a01b038116620002015760405162461bcd60e51b815260206004820152602b60248201527f436f6e74726f6c6c6564546f6b656e2f636f6e74726f6c6c65722d6e6f742d7a60448201526a65726f2d6164647265737360a81b60648201526084015b60405180910390fd5b6001600160601b0319606082901b166101405260ff8216620002665760405162461bcd60e51b815260206004820181905260248201527f436f6e74726f6c6c6564546f6b656e2f646563696d616c732d67742d7a65726f6044820152606401620001f8565b7fff0000000000000000000000000000000000000000000000000000000000000060f883901b16610160526040516001600160a01b038216907fde72fc29218361f33503847e6f32be813f9ec92fc7c772bb59e46675c890fd0e90620002d290879087908790620004f1565b60405180910390a25050505050505050620005b4565b828054620002f69062000561565b90600052602060002090601f0160209004810192826200031a576000855562000365565b82601f106200033557805160ff191683800117855562000365565b8280016001018555821562000365579182015b828111156200036557825182559160200191906001019062000348565b506200037392915062000377565b5090565b5b8082111562000373576000815560010162000378565b600082601f830112620003a057600080fd5b81516001600160401b0380821115620003bd57620003bd6200059e565b604051601f8301601f19908116603f01168101908282118183101715620003e857620003e86200059e565b816040528381528660208588010111156200040257600080fd5b620004158460208301602089016200052e565b9695505050505050565b600080600080608085870312156200043657600080fd5b84516001600160401b03808211156200044e57600080fd5b6200045c888389016200038e565b955060208701519150808211156200047357600080fd5b5062000482878288016200038e565b935050604085015160ff811681146200049a57600080fd5b60608601519092506001600160a01b0381168114620004b857600080fd5b939692955090935050565b60008151808452620004dd8160208601602086016200052e565b601f01601f19169290920160200192915050565b606081526000620005066060830186620004c3565b82810360208401526200051a8186620004c3565b91505060ff83166040830152949350505050565b60005b838110156200054b57818101518382015260200162000531565b838111156200055b576000848401525b50505050565b600181811c908216806200057657607f821691505b602082108114156200059857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60805160a05160c05160e05161010051610120516101405160601c6101605160f81c61018051613678620006476000396000610d600152600061031b0152600081816105920152818161077a015281816108d001528181610a6e0152610c950152600061108501526000611669015260006116b801526000611693015260006116170152600061164001526136786000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806368c7fd571161010f57806395d89b41116100a2578063a9059cbb11610071578063a9059cbb1461052e578063d505accf14610541578063dd62ed3e14610554578063f77c47911461058d57600080fd5b806395d89b41146104ed57806398b16f36146104f55780639ecb037014610508578063a457c2d71461051b57600080fd5b80638d22ea2a116100de5780638d22ea2a1461046d5780638e6d536a146104b457806390596dd1146104c7578063919974dc146104da57600080fd5b806368c7fd571461040b57806370a082311461041e5780637ecebe001461044757806385beb5f11461045a57600080fd5b806333e39b61116101875780635c19a95c116101565780635c19a95c146103b25780635d7b0758146103c5578063613ed6bd146103d8578063631b5dfb146103f857600080fd5b806333e39b61146103455780633644e5151461035a57806336bb2a3814610362578063395093511461039f57600080fd5b806323b872dd116101c357806323b872dd1461023d5780632aceb534146102505780632d0dd68614610301578063313ce5671461031457600080fd5b806306fdde03146101ea578063095ea7b31461020857806318160ddd1461022b575b600080fd5b6101f26105b4565b6040516101ff9190613369565b60405180910390f35b61021b6102163660046131c5565b610646565b60405190151581526020016101ff565b6002545b6040519081526020016101ff565b61021b61024b366004612fae565b61065d565b6102c961025e366004612f60565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03949094168452600682529282902082519384018352546001600160d01b038116845262ffffff600160d01b8204811692850192909252600160e81b9004169082015290565b6040805182516001600160d01b0316815260208084015162ffffff9081169183019190915292820151909216908201526060016101ff565b61022f61030f36600461330a565b610723565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016101ff565b610358610353366004612f7b565b61076f565b005b61022f6107f5565b610375610370366004613187565b610804565b6040805182516001600160e01b0316815260209283015163ffffffff1692810192909252016101ff565b61021b6103ad3660046131c5565b61087c565b6103586103c0366004612f60565b6108b8565b6103586103d33660046131c5565b6108c5565b6103eb6103e63660046130b3565b610947565b6040516101ff9190613325565b610358610406366004612fae565b610a63565b6103eb610419366004613106565b610b3c565b61022f61042c366004612f60565b6001600160a01b031660009081526020819052604090205490565b61022f610455366004612f60565b610b6e565b6103eb61046836600461325c565b610b8c565b61049c61047b366004612f60565b6001600160a01b039081166000908152630100000760205260409020541690565b6040516001600160a01b0390911681526020016101ff565b6103eb6104c236600461329e565b610c6f565b6103586104d53660046131c5565b610c8a565b6103586104e8366004613054565b610d0c565b6101f2610e8c565b61022f610503366004613219565b610e9b565b61022f6105163660046131ef565b610f0c565b61021b6105293660046131c5565b610f73565b61021b61053c3660046131c5565b611024565b61035861054f366004612fea565b611031565b61022f610562366004612f7b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61049c7f000000000000000000000000000000000000000000000000000000000000000081565b6060600380546105c390613526565b80601f01602080910402602001604051908101604052809291908181526020018280546105ef90613526565b801561063c5780601f106106115761010080835404028352916020019161063c565b820191906000526020600020905b81548152906001019060200180831161061f57829003601f168201915b5050505050905090565b6000610653338484611195565b5060015b92915050565b600061066a8484846112ed565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156107095760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6107168533858403611195565b60019150505b9392505050565b604080516060810182526007546001600160d01b038116825262ffffff600160d01b820481166020840152600160e81b9091041691810191909152600090610657906008908442611511565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107e75760405162461bcd60e51b815260206004820152601f60248201527f436f6e74726f6c6c6564546f6b656e2f6f6e6c792d636f6e74726f6c6c6572006044820152606401610700565b6107f1828261153d565b5050565b60006107ff611613565b905090565b60408051808201909152600080825260208201526001600160a01b038316600090815260066020526040902060010161ffff831662ffffff811061084a5761084a6135ea565b604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1660208201529392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916106539185906108b3908690613429565b611195565b6108c2338261153d565b50565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461093d5760405162461bcd60e51b815260206004820152601f60248201527f436f6e74726f6c6c6564546f6b656e2f6f6e6c792d636f6e74726f6c6c6572006044820152606401610700565b6107f18282611706565b60608160008167ffffffffffffffff81111561096557610965613600565b60405190808252806020026020018201604052801561098e578160200160208202803683370190505b506001600160a01b0387166000908152600660209081526040808320815160608101835281546001600160d01b038116825262ffffff600160d01b8204811695830195909552600160e81b900490931691830191909152929350905b84811015610a5657610a2783600101838a8a85818110610a0c57610a0c6135ea565b9050602002016020810190610a21919061330a565b42611511565b848281518110610a3957610a396135ea565b602090810291909101015280610a4e8161355b565b9150506109ea565b5091979650505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610adb5760405162461bcd60e51b815260206004820152601f60248201527f436f6e74726f6c6c6564546f6b656e2f6f6e6c792d636f6e74726f6c6c6572006044820152606401610700565b816001600160a01b0316836001600160a01b031614610b2d576001600160a01b03828116600090815260016020908152604080832093871683529290522054610b2d90839085906108b39085906134f2565b610b3782826117f1565b505050565b6001600160a01b0385166000908152600660205260409020606090610b649086868686611982565b9695505050505050565b6001600160a01b038116600090815260056020526040812054610657565b60608160008167ffffffffffffffff811115610baa57610baa613600565b604051908082528060200260200182016040528015610bd3578160200160208202803683370190505b50604080516060810182526007546001600160d01b038116825262ffffff600160d01b820481166020840152600160e81b909104169181019190915290915060005b83811015610c6457610c35600883898985818110610a0c57610a0c6135ea565b838281518110610c4757610c476135ea565b602090810291909101015280610c5c8161355b565b915050610c15565b509095945050505050565b6060610c7f600786868686611982565b90505b949350505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d025760405162461bcd60e51b815260206004820152601f60248201527f436f6e74726f6c6c6564546f6b656e2f6f6e6c792d636f6e74726f6c6c6572006044820152606401610700565b6107f182826117f1565b83421115610d5c5760405162461bcd60e51b815260206004820181905260248201527f5469636b65742f64656c65676174652d657870697265642d646561646c696e656044820152606401610700565b60007f00000000000000000000000000000000000000000000000000000000000000008787610d8a8a611b21565b6040805160208101959095526001600160a01b039384169085015291166060830152608082015260a0810186905260c0016040516020818303038152906040528051906020012090506000610dde82611b49565b90506000610dee82878787611bb2565b9050886001600160a01b0316816001600160a01b031614610e775760405162461bcd60e51b815260206004820152602160248201527f5469636b65742f64656c65676174652d696e76616c69642d7369676e6174757260448201527f65000000000000000000000000000000000000000000000000000000000000006064820152608401610700565b610e81898961153d565b505050505050505050565b6060600480546105c390613526565b6001600160a01b0383166000908152600660209081526040808320815160608101835281546001600160d01b038116825262ffffff600160d01b8204811695830195909552600160e81b90049093169183019190915290610f03906001830190868642611bda565b95945050505050565b6001600160a01b0382166000908152600660209081526040808320815160608101835281546001600160d01b038116825262ffffff600160d01b8204811695830195909552600160e81b90049093169183019190915290610c829060018301908542611511565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561100d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610700565b61101a3385858403611195565b5060019392505050565b60006106533384846112ed565b834211156110815760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610700565b60007f00000000000000000000000000000000000000000000000000000000000000008888886110b08c611b21565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061110b82611b49565b9050600061111b82878787611bb2565b9050896001600160a01b0316816001600160a01b03161461117e5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610700565b6111898a8a8a611195565b50505050505050505050565b6001600160a01b0383166112105760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610700565b6001600160a01b03821661128c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610700565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113695760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610700565b6001600160a01b0382166113e55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610700565b6113f0838383611c12565b6001600160a01b0383166000908152602081905260409020548181101561147f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610700565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906114b6908490613429565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161150291815260200190565b60405180910390a35b50505050565b6000808263ffffffff168463ffffffff161161152d578361152f565b825b9050610b6486868386611ca5565b6001600160a01b038281166000908152602081815260408083205463010000079092529091205490919081169083168114156115795750505050565b6001600160a01b03848116600090815263010000076020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169185169190911790556115cd818484611dbe565b826001600160a01b0316846001600160a01b03167f4bc154dd35d6a5cb9206482ecb473cdbf2473006d6bce728b9cc0741bcc59ea260405160405180910390a350505050565b60007f000000000000000000000000000000000000000000000000000000000000000046141561166257507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6001600160a01b03821661175c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610700565b61176860008383611c12565b806002600082825461177a9190613429565b90915550506001600160a01b038216600090815260208190526040812080548392906117a7908490613429565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b03821661186d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610700565b61187982600083611c12565b6001600160a01b038216600090815260208190526040902054818110156119085760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610700565b6001600160a01b03831660009081526020819052604081208383039055600280548492906119379084906134f2565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b6060838281146119fa5760405162461bcd60e51b815260206004820152602360248201527f5469636b65742f73746172742d656e642d74696d65732d6c656e6774682d6d6160448201527f74636800000000000000000000000000000000000000000000000000000000006064820152608401610700565b6040805160608101825288546001600160d01b038116825262ffffff600160d01b820481166020840152600160e81b909104169181019190915260008267ffffffffffffffff811115611a4f57611a4f613600565b604051908082528060200260200182016040528015611a78578160200160208202803683370190505b5090504260005b84811015611b1257611ae38b600101858c8c85818110611aa157611aa16135ea565b9050602002016020810190611ab6919061330a565b8b8b86818110611ac857611ac86135ea565b9050602002016020810190611add919061330a565b86611bda565b838281518110611af557611af56135ea565b602090810291909101015280611b0a8161355b565b915050611a7f565b50909998505050505050505050565b6001600160a01b03811660009081526005602052604090208054600181018255905b50919050565b6000610657611b56611613565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000611bc387878787611e1e565b91509150611bd081611f0b565b5095945050505050565b6000808263ffffffff168463ffffffff1611611bf65783611bf8565b825b9050611c0787878784876120fc565b979650505050505050565b816001600160a01b0316836001600160a01b03161415611c3157505050565b60006001600160a01b03841615611c6257506001600160a01b03808416600090815263010000076020526040902054165b60006001600160a01b03841615611c9357506001600160a01b03808416600090815263010000076020526040902054165b611c9e828285611dbe565b5050505050565b604080518082019091526000808252602082018190529081906040805180820190915260008082526020820152611cdc8888612198565b60208101519194509150611cfd9063ffffffff908116908890889061221816565b15611d1857505084516001600160d01b03169150610c829050565b6000611d2489896122e9565b6020810151909350909150611d459063ffffffff808a169190899061236616565b15611d57576000945050505050610c82565b611d698985838a8c604001518b612435565b8094508193505050611d848360200151836020015188612602565b63ffffffff1682600001518460000151611d9e91906134ca565b611da89190613461565b6001600160e01b03169998505050505050505050565b6001600160a01b03831615611dee57611dd783826126cc565b6001600160a01b038216611dee57611dee81612821565b6001600160a01b03821615610b3757611e07828261293a565b6001600160a01b038316610b3757610b3781612971565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611e555750600090506003611f02565b8460ff16601b14158015611e6d57508460ff16601c14155b15611e7e5750600090506004611f02565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611ed2573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611efb57600060019250925050611f02565b9150600090505b94509492505050565b6000816004811115611f1f57611f1f6135d4565b1415611f285750565b6001816004811115611f3c57611f3c6135d4565b1415611f8a5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610700565b6002816004811115611f9e57611f9e6135d4565b1415611fec5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610700565b6003816004811115612000576120006135d4565b14156120745760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610700565b6004816004811115612088576120886135d4565b14156108c25760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610700565b600080600061210b88886122e9565b9150915060008061211c8a8a612198565b9150915060006121328b8b8487878a8f8e61298c565b905060006121468c8c8588888b8f8f61298c565b905061215b816020015183602001518a612602565b63ffffffff168260000151826000015161217591906134ca565b61217f9190613461565b6001600160e01b03169c9b505050505050505050505050565b60408051808201909152600080825260208201819052906121c7836020015162ffffff1662ffffff8016612ad6565b9150838262ffffff1662ffffff81106121e2576121e26135ea565b604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff166020820152919491935090915050565b60008163ffffffff168463ffffffff161115801561224257508163ffffffff168363ffffffff1611155b1561225e578263ffffffff168463ffffffff161115905061071c565b60008263ffffffff168563ffffffff161161228d5761228863ffffffff8616640100000000613441565b612295565b8463ffffffff165b64ffffffffff16905060008363ffffffff168563ffffffff16116122cd576122c863ffffffff8616640100000000613441565b6122d5565b8463ffffffff165b64ffffffffff169091111595945050505050565b604080518082019091526000808252602082018190529082602001519150838262ffffff1662ffffff8110612320576123206135ea565b604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff166020820181905290915061235f576000915083826121e2565b9250929050565b60008163ffffffff168463ffffffff161115801561239057508163ffffffff168363ffffffff1611155b156123ab578263ffffffff168463ffffffff1610905061071c565b60008263ffffffff168563ffffffff16116123da576123d563ffffffff8616640100000000613441565b6123e2565b8463ffffffff165b64ffffffffff16905060008363ffffffff168563ffffffff161161241a5761241563ffffffff8616640100000000613441565b612422565b8463ffffffff165b64ffffffffff1690911095945050505050565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260008662ffffff1690506000818962ffffff1610612480578862ffffff1661249b565b600161249162ffffff881684613429565b61249b91906134f2565b905060005b60026124ac8385613429565b6124b69190613487565b90508a6124c8828962ffffff16612b00565b62ffffff1662ffffff81106124df576124df6135ea565b604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1660208201819052909550806125275761251f826001613429565b9350506124a0565b8b612537838a62ffffff16612b0c565b62ffffff1662ffffff811061254e5761254e6135ea565b604080518082019091529101546001600160e01b038116825263ffffffff600160e01b9091048116602083015290955060009061259390838116908c908b9061221816565b90508080156125bc57506125bc8660200151898c63ffffffff166122189092919063ffffffff16565b156125c85750506125f4565b806125df576125d86001846134f2565b93506125ed565b6125ea836001613429565b94505b50506124a0565b505050965096945050505050565b60008163ffffffff168463ffffffff161115801561262c57508163ffffffff168363ffffffff1611155b156126425761263b8385613509565b905061071c565b60008263ffffffff168563ffffffff16116126715761266c63ffffffff8616640100000000613441565b612679565b8463ffffffff165b64ffffffffff16905060008363ffffffff168563ffffffff16116126b1576126ac63ffffffff8616640100000000613441565b6126b9565b8463ffffffff165b64ffffffffff169050610b6481836134f2565b806126d5575050565b6001600160a01b0382166000908152600660205260408120908080612739846126fd87612b1c565b6040518060400160405280601b81526020017f5469636b65742f747761622d6275726e2d6c742d62616c616e6365000000000081525042612b9f565b82518754602085015160408601516001600160d01b039093167fffffff000000000000000000000000000000000000000000000000000000000090921691909117600160d01b62ffffff92831602177cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e81b9190921602178755919450925090508015612819576040805183516001600160e01b0316815260208085015163ffffffff16908201526001600160a01b038816917fdd3e7cd3a260a292b0b3306b2ca62f30a7349619a9d09c58109318774c6b627d910160405180910390a25b505050505050565b806128295750565b600080600061285b600761283c86612b1c565b6040518060600160405280602c8152602001613617602c913942612b9f565b825160078054602086015160408701516001600160d01b039094167fffffff000000000000000000000000000000000000000000000000000000000090921691909117600160d01b62ffffff92831602177cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e81b919093160291909117905591945092509050801561150b576040805183516001600160e01b0316815260208085015163ffffffff16908201527f3375b905d617084fa6b7531688cc8046feb1f1a0b8ba2273de03c59d8d84416c910160405180910390a150505050565b80612943575050565b6001600160a01b03821660009081526006602052604081209080806127398461296b87612b1c565b42612c63565b806129795750565b600080600061285b600761296b86612b1c565b60408051808201909152600080825260208201526129bf8383896020015163ffffffff166123669092919063ffffffff16565b156129e3576129dc8789600001516001600160d01b031685612d0c565b9050612aca565b8263ffffffff16876020015163ffffffff161415612a02575085612aca565b8263ffffffff16866020015163ffffffff161415612a21575084612aca565b612a408660200151838563ffffffff166123669092919063ffffffff16565b15612a655750604080518082019091526000815263ffffffff83166020820152612aca565b600080612a7a8b8888888e6040015189612435565b915091506000612a938260200151846020015187612602565b63ffffffff1683600001518360000151612aad91906134ca565b612ab79190613461565b9050612ac4838288612d0c565b93505050505b98975050505050505050565b600081612ae557506000610657565b61071c6001612af48486613429565b612afe91906134f2565b835b600061071c8284613594565b600061071c612afe846001613429565b60006001600160d01b03821115612b9b5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f30382062697473000000000000000000000000000000000000000000000000006064820152608401610700565b5090565b604080516060810182526000808252602082018190529181019190915260408051808201909152600080825260208201526040805160608101825287546001600160d01b0380821680845262ffffff600160d01b840481166020860152600160e81b9093049092169383019390935260009287919089161115612c355760405162461bcd60e51b81526004016107009190613369565b50612c44886001018287612d87565b8251999099036001600160d01b03168252909990985095505050505050565b604080516060810182526000808252602082018190529181019190915260408051808201909152600080825260208201526040805160608101825286546001600160d01b038116825262ffffff600160d01b820481166020840152600160e81b9091041691810191909152600090612cdf600188018287612d87565b83519296509094509250612cf49087906133be565b6001600160d01b031684525091959094509092509050565b60408051808201909152600080825260208201526040518060400160405280612d4a8660200151858663ffffffff166126029092919063ffffffff16565b612d5a9063ffffffff168661349b565b8651612d6691906133e9565b6001600160e01b031681526020018363ffffffff1681525090509392505050565b60408051606081018252600080825260208201819052918101919091526040805180820190915260008082526020820152600080612dc58787612198565b9150508463ffffffff16816020015163ffffffff161415612dee57859350915060009050612e65565b6000612e088288600001516001600160d01b031688612d0c565b90508088886020015162ffffff1662ffffff8110612e2857612e286135ea565b825160209093015163ffffffff16600160e01b026001600160e01b03909316929092179101556000612e5988612e6e565b95509093506001925050505b93509350939050565b60408051606081018252600080825260208083018290529282015290820151612e9e9062ffffff90811690612b0c565b62ffffff9081166020840152604083015181161015612b9b57600182604001818151612eca919061340b565b62ffffff169052505090565b80356001600160a01b0381168114612eed57600080fd5b919050565b60008083601f840112612f0457600080fd5b50813567ffffffffffffffff811115612f1c57600080fd5b6020830191508360208260051b850101111561235f57600080fd5b803567ffffffffffffffff81168114612eed57600080fd5b803560ff81168114612eed57600080fd5b600060208284031215612f7257600080fd5b61071c82612ed6565b60008060408385031215612f8e57600080fd5b612f9783612ed6565b9150612fa560208401612ed6565b90509250929050565b600080600060608486031215612fc357600080fd5b612fcc84612ed6565b9250612fda60208501612ed6565b9150604084013590509250925092565b600080600080600080600060e0888a03121561300557600080fd5b61300e88612ed6565b965061301c60208901612ed6565b9550604088013594506060880135935061303860808901612f4f565b925060a0880135915060c0880135905092959891949750929550565b60008060008060008060c0878903121561306d57600080fd5b61307687612ed6565b955061308460208801612ed6565b94506040870135935061309960608801612f4f565b92506080870135915060a087013590509295509295509295565b6000806000604084860312156130c857600080fd5b6130d184612ed6565b9250602084013567ffffffffffffffff8111156130ed57600080fd5b6130f986828701612ef2565b9497909650939450505050565b60008060008060006060868803121561311e57600080fd5b61312786612ed6565b9450602086013567ffffffffffffffff8082111561314457600080fd5b61315089838a01612ef2565b9096509450604088013591508082111561316957600080fd5b5061317688828901612ef2565b969995985093965092949392505050565b6000806040838503121561319a57600080fd5b6131a383612ed6565b9150602083013561ffff811681146131ba57600080fd5b809150509250929050565b600080604083850312156131d857600080fd5b6131e183612ed6565b946020939093013593505050565b6000806040838503121561320257600080fd5b61320b83612ed6565b9150612fa560208401612f37565b60008060006060848603121561322e57600080fd5b61323784612ed6565b925061324560208501612f37565b915061325360408501612f37565b90509250925092565b6000806020838503121561326f57600080fd5b823567ffffffffffffffff81111561328657600080fd5b61329285828601612ef2565b90969095509350505050565b600080600080604085870312156132b457600080fd5b843567ffffffffffffffff808211156132cc57600080fd5b6132d888838901612ef2565b909650945060208701359150808211156132f157600080fd5b506132fe87828801612ef2565b95989497509550505050565b60006020828403121561331c57600080fd5b61071c82612f37565b6020808252825182820181905260009190848201906040850190845b8181101561335d57835183529284019291840191600101613341565b50909695505050505050565b600060208083528351808285015260005b818110156133965785810183015185820160400152820161337a565b818111156133a8576000604083870101525b50601f01601f1916929092016040019392505050565b60006001600160d01b038083168185168083038211156133e0576133e06135a8565b01949350505050565b60006001600160e01b038083168185168083038211156133e0576133e06135a8565b600062ffffff8083168185168083038211156133e0576133e06135a8565b6000821982111561343c5761343c6135a8565b500190565b600064ffffffffff8083168185168083038211156133e0576133e06135a8565b60006001600160e01b038084168061347b5761347b6135be565b92169190910492915050565b600082613496576134966135be565b500490565b60006001600160e01b03808316818516818304811182151516156134c1576134c16135a8565b02949350505050565b60006001600160e01b03838116908316818110156134ea576134ea6135a8565b039392505050565b600082821015613504576135046135a8565b500390565b600063ffffffff838116908316818110156134ea576134ea6135a8565b600181811c9082168061353a57607f821691505b60208210811415611b4357634e487b7160e01b600052602260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561358d5761358d6135a8565b5060010190565b6000826135a3576135a36135be565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfe5469636b65742f6275726e2d616d6f756e742d657863656564732d746f74616c2d737570706c792d74776162a26469706673582212208908f506c9447cb78aae5fabc0bb4c494e0c0896ce52c524dd2c02cdd4708ae464736f6c63430008060033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000006000000000000000000000000d89a09084555a7d0abe7b111b1f78dfeddd638be0000000000000000000000000000000000000000000000000000000000000019506f6f6c546f676574686572206155534443205469636b65740000000000000000000000000000000000000000000000000000000000000000000000000000075054615553444300000000000000000000000000000000000000000000000000