f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAAAgQQAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIHBhcnNlOwpwa2dwYXRoIHRleHQvdGVtcGxhdGUvcGFyc2U7CnByaW9yaXR5IDc7CmltcG9ydCBieXRlcyBieXRlcyAiYnl0ZXMiOwppbXBvcnQgZm10IGZtdCAiZm10IjsKaW1wb3J0IHJ1bnRpbWUgcnVudGltZSAicnVudGltZSI7CmltcG9ydCBzdHJjb252IHN0cmNvbnYgInN0cmNvbnYiOwppbXBvcnQgc3RyaW5ncyBzdHJpbmdzICJzdHJpbmdzIjsKaW1wb3J0IHVuaWNvZGUgdW5pY29kZSAidW5pY29kZSI7CmltcG9ydCB1dGY4IHVuaWNvZGUvdXRmOCAidW5pY29kZS91dGY4IjsKaW5pdCBwYXJzZSB0ZXh0X3RlbXBsYXRlX3BhcnNlLi5pbXBvcnQgNyBtYXRoIG1hdGguLmltcG9ydCAxIHJ1bnRpbWUgcnVudGltZS4uaW1wb3J0IDEgdW5pY29kZSB1bmljb2RlLi5pbXBvcnQgMSBzdHJjb252IHN0cmNvbnYuLmltcG9ydCAyIHN5bmMgc3luYy4uaW1wb3J0IDIgaW8gaW8uLmltcG9ydCAzIHJlZmxlY3QgcmVmbGVjdC4uaW1wb3J0IDMgc3lzY2FsbCBzeXNjYWxsLi5pbXBvcnQgMyBieXRlcyBieXRlcy4uaW1wb3J0IDQgdGltZSB0aW1lLi5pbXBvcnQgNCBvcyBvcy4uaW1wb3J0IDUgZm10IGZtdC4uaW1wb3J0IDY7CnR5cGUgPHR5cGUgMSAiQWN0aW9uTm9kZSIgPHR5cGUgMiBzdHJ1Y3QgeyA/IDx0eXBlIDMgIk5vZGVUeXBlIiA8dHlwZSAtMTE+CiBmdW5jICh0IDx0eXBlIDM+KSBUeXBlICgpIDx0eXBlIDM+Owo+OyA/IDx0eXBlIDQgIlBvcyIgPHR5cGUgLTExPgogZnVuYyAocCA8dHlwZSA0PikgUG9zaXRpb24gKCkgPHR5cGUgND47Cj47IC50ZXh0L3RlbXBsYXRlL3BhcnNlLnRyIDx0eXBlIDUgKjx0eXBlIDYgIlRyZWUiIDx0eXBlIDcgc3RydWN0IHsgTmFtZSA8dHlwZSAtMTY+OyBQYXJzZU5hbWUgPHR5cGUgLTE2PjsgUm9vdCA8dHlwZSA4ICo8dHlwZSA5ICJMaXN0Tm9kZSIgPHR5cGUgMTAgc3RydWN0IHsgPyA8dHlwZSAzPjsgPyA8dHlwZSA0PjsgLnRleHQvdGVtcGxhdGUvcGFyc2UudHIgPHR5cGUgMTEgKjx0eXBlIDY+PjsgTm9kZXMgPHR5cGUgMTIgW10gPHR5cGUgMTMgIk5vZGUiIDx0eXBlIDE0IGludGVyZmFjZSB7IFR5cGUgKCkgPHR5cGUgMz47IFN0cmluZyAoKSA8dHlwZSAtMTY+OyBDb3B5ICgpIDx0eXBlIDEzPjsgUG9zaXRpb24gKCkgPHR5cGUgND47IC50ZXh0L3RlbXBsYXRlL3BhcnNlLnRyZWUgKCkgPHR5cGUgMTUgKjx0eXBlIDY+PjsgfT4+PjsgfT4KIGZ1bmMgKGwgPHR5cGUgMTYgKjx0eXBlIDk+PikgLnRleHQvdGVtcGxhdGUvcGFyc2UuYXBwZW5kIChuIDx0eXBlIDEzPik7CiBmdW5jIChsIDx0eXBlIDE2PikgLnRleHQvdGVtcGxhdGUvcGFyc2UudHJlZSAoKSA8dHlwZSAxNyAqPHR5cGUgNj4+OwogZnVuYyAobCA8dHlwZSAxNj4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAobCA8dHlwZSAxNj4pIENvcHlMaXN0ICgpIDx0eXBlIDE2PjsKIGZ1bmMgKGwgPHR5cGUgMTY+KSBDb3B5ICgpIDx0eXBlIDEzPjsKPj47IC50ZXh0L3RlbXBsYXRlL3BhcnNlLnRleHQgPHR5cGUgLTE2PjsgLnRleHQvdGVtcGxhdGUvcGFyc2UuZnVuY3MgPHR5cGUgMTggW10gPHR5cGUgMTkgbWFwIFs8dHlwZSAtMTY+XSA8dHlwZSAyMCBpbnRlcmZhY2UgeyB9Pj4+OyAudGV4dC90ZW1wbGF0ZS9wYXJzZS5sZXggPHR5cGUgMjEgKjx0eXBlIDIyICIudGV4dC90ZW1wbGF0ZS9wYXJzZS5sZXhlciIgPHR5cGUgMjMgc3RydWN0IHsgLnRleHQvdGVtcGxhdGUvcGFyc2UubmFtZSA8dHlwZSAtMTY+OyAudGV4dC90ZW1wbGF0ZS9wYXJzZS5pbnB1dCA8dHlwZSAtMTY+OyAudGV4dC90ZW1wbGF0ZS9wYXJzZS5sZWZ0RGVsaW0gPHR5cGUgLTE2PjsgLnRleHQvdGVtcGxhdGUvcGFyc2UucmlnaHREZWxpbSA8dHlwZSAtMTY+OyAudGV4dC90ZW1wbGF0ZS9wYXJzZS5zdGF0ZSA8dHlwZSAyNCAiLnRleHQvdGVtcGxhdGUvcGFyc2Uuc3RhdGVGbiIgPHR5cGUgMjUgKD8gPHR5cGUgMjYgKjx0eXBlIDIyPj4pIDx0eXBlIDI0Pj4+OyAudGV4dC90ZW1wbGF0ZS9wYXJzZS5wb3MgPHR5cGUgND47IC50ZXh0L3RlbXBsYXRlL3BhcnNlLnN0YXJ0IDx0eXBlIDQ+OyAudGV4dC90ZW1wbGF0ZS9wYXJzZS53aWR0aCA8dHlwZSA0PjsgLnRleHQvdGVtcGxhdGUvcGFyc2UubGFzdFBvcyA8dHlwZSA0PjsgLnRleHQvdGVtcGxhdGUvcGFyc2UuaXRlbXMgPHR5cGUgMjcgY2hhbiA8dHlwZSAyOCAiLnRleHQvdGVtcGxhdGUvcGFyc2UuaXRlbSIgPHR5cGUgMjkgc3RydWN0IHsgLnRleHQvdGVtcGxhdGUvcGFyc2UudHlwIDx0eXBlIDMwICIudGV4dC90ZW1wbGF0ZS9wYXJzZS5pdGVtVHlwZSIgPHR5cGUgLTExPj47IC50ZXh0L3RlbXBsYXRlL3BhcnNlLnBvcyA8dHlwZSA0PjsgLnRleHQvdGVtcGxhdGUvcGFyc2UudmFsIDx0eXBlIC0xNj47IH0+CiBmdW5jIChpIDx0eXBlIDI4PikgU3RyaW5nICgpIDx0eXBlIC0xNj47Cj4+OyAudGV4dC90ZW1wbGF0ZS9wYXJzZS5wYXJlbkRlcHRoIDx0eXBlIC0xMT47IH0+CiBmdW5jIChsIDx0eXBlIDMxICo8dHlwZSAyMj4+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS5uZXh0ICgpIDx0eXBlIC0yMT47CiBmdW5jIChsIDx0eXBlIDMxPikgLnRleHQvdGVtcGxhdGUvcGFyc2UucGVlayAoKSA8dHlwZSAtMjE+OwogZnVuYyAobCA8dHlwZSAzMT4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLmJhY2t1cCAoKTsKIGZ1bmMgKGwgPHR5cGUgMzE+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS5lbWl0ICh0IDx0eXBlIDMwPik7CiBmdW5jIChsIDx0eXBlIDMxPikgLnRleHQvdGVtcGxhdGUvcGFyc2UuaWdub3JlICgpOwogZnVuYyAobCA8dHlwZSAzMT4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLmFjY2VwdCAodmFsaWQgPHR5cGUgLTE2PikgPHR5cGUgLTE1PjsKIGZ1bmMgKGwgPHR5cGUgMzE+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS5hY2NlcHRSdW4gKHZhbGlkIDx0eXBlIC0xNj4pOwogZnVuYyAobCA8dHlwZSAzMT4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLmxpbmVOdW1iZXIgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKGwgPHR5cGUgMzE+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS5lcnJvcmYgKGZvcm1hdCA8dHlwZSAtMTY+LCBhcmdzIC4uLjx0eXBlIDMyIGludGVyZmFjZSB7IH0+KSA8dHlwZSAyND47CiBmdW5jIChsIDx0eXBlIDMxPikgLnRleHQvdGVtcGxhdGUvcGFyc2UubmV4dEl0ZW0gKCkgPHR5cGUgMjg+OwogZnVuYyAobCA8dHlwZSAzMT4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLnJ1biAoKTsKIGZ1bmMgKGwgPHR5cGUgMzE+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS5hdFRlcm1pbmF0b3IgKCkgPHR5cGUgLTE1PjsKIGZ1bmMgKGwgPHR5cGUgMzE+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS5zY2FuTnVtYmVyICgpIDx0eXBlIC0xNT47Cj4+OyAudGV4dC90ZW1wbGF0ZS9wYXJzZS50b2tlbiA8dHlwZSAzMyBbMyBdIDx0eXBlIDI4Pj47IC50ZXh0L3RlbXBsYXRlL3BhcnNlLnBlZWtDb3VudCA8dHlwZSAtMTE+OyAudGV4dC90ZW1wbGF0ZS9wYXJzZS52YXJzIDx0eXBlIDM0IFtdIDx0eXBlIC0xNj4+OyB9PgogZnVuYyAodCA8dHlwZSAzNSAqPHR5cGUgNj4+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS5uZXdMaXN0IChwb3MgPHR5cGUgND4pIDx0eXBlIDg+OwogZnVuYyAodCA8dHlwZSAzNiAqPHR5cGUgNj4+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS5uZXdUZXh0IChwb3MgPHR5cGUgND4sIHRleHQgPHR5cGUgLTE2PikgPHR5cGUgMzcgKjx0eXBlIDM4ICJUZXh0Tm9kZSIgPHR5cGUgMzkgc3RydWN0IHsgPyA8dHlwZSAzPjsgPyA8dHlwZSA0PjsgLnRleHQvdGVtcGxhdGUvcGFyc2UudHIgPHR5cGUgNDAgKjx0eXBlIDY+PjsgVGV4dCA8dHlwZSA0MSBbXSA8dHlwZSAtMjA+PjsgfT4KIGZ1bmMgKHQgPHR5cGUgNDIgKjx0eXBlIDM4Pj4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAodCA8dHlwZSA0Mj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLnRyZWUgKCkgPHR5cGUgNDMgKjx0eXBlIDY+PjsKIGZ1bmMgKHQgPHR5cGUgNDI+KSBDb3B5ICgpIDx0eXBlIDEzPjsKPj47CiBmdW5jICh0IDx0eXBlIDQ0ICo8dHlwZSA2Pj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLm5ld1BpcGVsaW5lIChwb3MgPHR5cGUgND4sIGxpbmUgPHR5cGUgLTExPiwgZGVjbCA8dHlwZSA0NSBbXSA8dHlwZSA0NiAqPHR5cGUgNDcgIlZhcmlhYmxlTm9kZSIgPHR5cGUgNDggc3RydWN0IHsgPyA8dHlwZSAzPjsgPyA8dHlwZSA0PjsgLnRleHQvdGVtcGxhdGUvcGFyc2UudHIgPHR5cGUgNDkgKjx0eXBlIDY+PjsgSWRlbnQgPHR5cGUgNTAgW10gPHR5cGUgLTE2Pj47IH0+CiBmdW5jICh2IDx0eXBlIDUxICo8dHlwZSA0Nz4+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHYgPHR5cGUgNTE+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS50cmVlICgpIDx0eXBlIDUyICo8dHlwZSA2Pj47CiBmdW5jICh2IDx0eXBlIDUxPikgQ29weSAoKSA8dHlwZSAxMz47Cj4+PikgPHR5cGUgNTMgKjx0eXBlIDU0ICJQaXBlTm9kZSIgPHR5cGUgNTUgc3RydWN0IHsgPyA8dHlwZSAzPjsgPyA8dHlwZSA0PjsgLnRleHQvdGVtcGxhdGUvcGFyc2UudHIgPHR5cGUgNTYgKjx0eXBlIDY+PjsgTGluZSA8dHlwZSAtMTE+OyBEZWNsIDx0eXBlIDU3IFtdIDx0eXBlIDU4ICo8dHlwZSA0Nz4+PjsgQ21kcyA8dHlwZSA1OSBbXSA8dHlwZSA2MCAqPHR5cGUgNjEgIkNvbW1hbmROb2RlIiA8dHlwZSA2MiBzdHJ1Y3QgeyA/IDx0eXBlIDM+OyA/IDx0eXBlIDQ+OyAudGV4dC90ZW1wbGF0ZS9wYXJzZS50ciA8dHlwZSA2MyAqPHR5cGUgNj4+OyBBcmdzIDx0eXBlIDY0IFtdIDx0eXBlIDEzPj47IH0+CiBmdW5jIChjIDx0eXBlIDY1ICo8dHlwZSA2MT4+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS5hcHBlbmQgKGFyZyA8dHlwZSAxMz4pOwogZnVuYyAoYyA8dHlwZSA2NT4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAoYyA8dHlwZSA2NT4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLnRyZWUgKCkgPHR5cGUgNjYgKjx0eXBlIDY+PjsKIGZ1bmMgKGMgPHR5cGUgNjU+KSBDb3B5ICgpIDx0eXBlIDEzPjsKPj4+OyB9PgogZnVuYyAocCA8dHlwZSA2NyAqPHR5cGUgNTQ+PikgLnRleHQvdGVtcGxhdGUvcGFyc2UuYXBwZW5kIChjb21tYW5kIDx0eXBlIDY4ICo8dHlwZSA2MT4+KTsKIGZ1bmMgKHAgPHR5cGUgNjc+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHAgPHR5cGUgNjc+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS50cmVlICgpIDx0eXBlIDY5ICo8dHlwZSA2Pj47CiBmdW5jIChwIDx0eXBlIDY3PikgQ29weVBpcGUgKCkgPHR5cGUgNjc+OwogZnVuYyAocCA8dHlwZSA2Nz4pIENvcHkgKCkgPHR5cGUgMTM+Owo+PjsKIGZ1bmMgKHQgPHR5cGUgNzAgKjx0eXBlIDY+PikgLnRleHQvdGVtcGxhdGUvcGFyc2UubmV3QWN0aW9uIChwb3MgPHR5cGUgND4sIGxpbmUgPHR5cGUgLTExPiwgcGlwZSA8dHlwZSA1Mz4pIDx0eXBlIDcxICo8dHlwZSAxPj47CiBmdW5jICh0IDx0eXBlIDcyICo8dHlwZSA2Pj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLm5ld0NvbW1hbmQgKHBvcyA8dHlwZSA0PikgPHR5cGUgNjU+OwogZnVuYyAodCA8dHlwZSA3MyAqPHR5cGUgNj4+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS5uZXdWYXJpYWJsZSAocG9zIDx0eXBlIDQ+LCBpZGVudCA8dHlwZSAtMTY+KSA8dHlwZSA1MT47CiBmdW5jICh0IDx0eXBlIDc0ICo8dHlwZSA2Pj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLm5ld0RvdCAocG9zIDx0eXBlIDQ+KSA8dHlwZSA3NSAqPHR5cGUgNzYgIkRvdE5vZGUiIDx0eXBlIDc3IHN0cnVjdCB7ID8gPHR5cGUgMz47ID8gPHR5cGUgND47IC50ZXh0L3RlbXBsYXRlL3BhcnNlLnRyIDx0eXBlIDc4ICo8dHlwZSA2Pj47IH0+CiBmdW5jIChkIDx0eXBlIDc5ICo8dHlwZSA3Nj4+KSBUeXBlICgpIDx0eXBlIDM+OwogZnVuYyAoZCA8dHlwZSA3OT4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAoZCA8dHlwZSA3OT4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLnRyZWUgKCkgPHR5cGUgODAgKjx0eXBlIDY+PjsKIGZ1bmMgKGQgPHR5cGUgNzk+KSBDb3B5ICgpIDx0eXBlIDEzPjsKPj47CiBmdW5jICh0IDx0eXBlIDgxICo8dHlwZSA2Pj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLm5ld05pbCAocG9zIDx0eXBlIDQ+KSA8dHlwZSA4MiAqPHR5cGUgODMgIk5pbE5vZGUiIDx0eXBlIDg0IHN0cnVjdCB7ID8gPHR5cGUgMz47ID8gPHR5cGUgND47IC50ZXh0L3RlbXBsYXRlL3BhcnNlLnRyIDx0eXBlIDg1ICo8dHlwZSA2Pj47IH0+CiBmdW5jIChuIDx0eXBlIDg2ICo8dHlwZSA4Mz4+KSBUeXBlICgpIDx0eXBlIDM+OwogZnVuYyAobiA8dHlwZSA4Nj4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAobiA8dHlwZSA4Nj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLnRyZWUgKCkgPHR5cGUgODcgKjx0eXBlIDY+PjsKIGZ1bmMgKG4gPHR5cGUgODY+KSBDb3B5ICgpIDx0eXBlIDEzPjsKPj47CiBmdW5jICh0IDx0eXBlIDg4ICo8dHlwZSA2Pj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLm5ld0ZpZWxkIChwb3MgPHR5cGUgND4sIGlkZW50IDx0eXBlIC0xNj4pIDx0eXBlIDg5ICo8dHlwZSA5MCAiRmllbGROb2RlIiA8dHlwZSA5MSBzdHJ1Y3QgeyA/IDx0eXBlIDM+OyA/IDx0eXBlIDQ+OyAudGV4dC90ZW1wbGF0ZS9wYXJzZS50ciA8dHlwZSA5MiAqPHR5cGUgNj4+OyBJZGVudCA8dHlwZSA5MyBbXSA8dHlwZSAtMTY+PjsgfT4KIGZ1bmMgKGYgPHR5cGUgOTQgKjx0eXBlIDkwPj4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAoZiA8dHlwZSA5ND4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLnRyZWUgKCkgPHR5cGUgOTUgKjx0eXBlIDY+PjsKIGZ1bmMgKGYgPHR5cGUgOTQ+KSBDb3B5ICgpIDx0eXBlIDEzPjsKPj47CiBmdW5jICh0IDx0eXBlIDk2ICo8dHlwZSA2Pj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLm5ld0NoYWluIChwb3MgPHR5cGUgND4sIG5vZGUgPHR5cGUgMTM+KSA8dHlwZSA5NyAqPHR5cGUgOTggIkNoYWluTm9kZSIgPHR5cGUgOTkgc3RydWN0IHsgPyA8dHlwZSAzPjsgPyA8dHlwZSA0PjsgLnRleHQvdGVtcGxhdGUvcGFyc2UudHIgPHR5cGUgMTAwICo8dHlwZSA2Pj47IE5vZGUgPHR5cGUgMTM+OyBGaWVsZCA8dHlwZSAxMDEgW10gPHR5cGUgLTE2Pj47IH0+CiBmdW5jIChjIDx0eXBlIDEwMiAqPHR5cGUgOTg+PikgQWRkIChmaWVsZCA8dHlwZSAtMTY+KTsKIGZ1bmMgKGMgPHR5cGUgMTAyPikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jIChjIDx0eXBlIDEwMj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLnRyZWUgKCkgPHR5cGUgMTAzICo8dHlwZSA2Pj47CiBmdW5jIChjIDx0eXBlIDEwMj4pIENvcHkgKCkgPHR5cGUgMTM+Owo+PjsKIGZ1bmMgKHQgPHR5cGUgMTA0ICo8dHlwZSA2Pj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLm5ld0Jvb2wgKHBvcyA8dHlwZSA0PiwgdHJ1ZSA8dHlwZSAtMTU+KSA8dHlwZSAxMDUgKjx0eXBlIDEwNiAiQm9vbE5vZGUiIDx0eXBlIDEwNyBzdHJ1Y3QgeyA/IDx0eXBlIDM+OyA/IDx0eXBlIDQ+OyAudGV4dC90ZW1wbGF0ZS9wYXJzZS50ciA8dHlwZSAxMDggKjx0eXBlIDY+PjsgVHJ1ZSA8dHlwZSAtMTU+OyB9PgogZnVuYyAoYiA8dHlwZSAxMDkgKjx0eXBlIDEwNj4+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKGIgPHR5cGUgMTA5PikgLnRleHQvdGVtcGxhdGUvcGFyc2UudHJlZSAoKSA8dHlwZSAxMTAgKjx0eXBlIDY+PjsKIGZ1bmMgKGIgPHR5cGUgMTA5PikgQ29weSAoKSA8dHlwZSAxMz47Cj4+OwogZnVuYyAodCA8dHlwZSAxMTEgKjx0eXBlIDY+PikgLnRleHQvdGVtcGxhdGUvcGFyc2UubmV3TnVtYmVyIChwb3MgPHR5cGUgND4sIHRleHQgPHR5cGUgLTE2PiwgdHlwIDx0eXBlIDMwPikgKD8gPHR5cGUgMTEyICo8dHlwZSAxMTMgIk51bWJlck5vZGUiIDx0eXBlIDExNCBzdHJ1Y3QgeyA/IDx0eXBlIDM+OyA/IDx0eXBlIDQ+OyAudGV4dC90ZW1wbGF0ZS9wYXJzZS50ciA8dHlwZSAxMTUgKjx0eXBlIDY+PjsgSXNJbnQgPHR5cGUgLTE1PjsgSXNVaW50IDx0eXBlIC0xNT47IElzRmxvYXQgPHR5cGUgLTE1PjsgSXNDb21wbGV4IDx0eXBlIC0xNT47IEludDY0IDx0eXBlIC00PjsgVWludDY0IDx0eXBlIC04PjsgRmxvYXQ2NCA8dHlwZSAtMTA+OyBDb21wbGV4MTI4IDx0eXBlIC0xOD47IFRleHQgPHR5cGUgLTE2PjsgfT4KIGZ1bmMgKG4gPHR5cGUgMTE2ICo8dHlwZSAxMTM+PikgLnRleHQvdGVtcGxhdGUvcGFyc2Uuc2ltcGxpZnlDb21wbGV4ICgpOwogZnVuYyAobiA8dHlwZSAxMTY+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKG4gPHR5cGUgMTE2PikgLnRleHQvdGVtcGxhdGUvcGFyc2UudHJlZSAoKSA8dHlwZSAxMTcgKjx0eXBlIDY+PjsKIGZ1bmMgKG4gPHR5cGUgMTE2PikgQ29weSAoKSA8dHlwZSAxMz47Cj4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSAxMTggKjx0eXBlIDY+PikgLnRleHQvdGVtcGxhdGUvcGFyc2UubmV3U3RyaW5nIChwb3MgPHR5cGUgND4sIG9yaWcgPHR5cGUgLTE2PiwgdGV4dCA8dHlwZSAtMTY+KSA8dHlwZSAxMTkgKjx0eXBlIDEyMCAiU3RyaW5nTm9kZSIgPHR5cGUgMTIxIHN0cnVjdCB7ID8gPHR5cGUgMz47ID8gPHR5cGUgND47IC50ZXh0L3RlbXBsYXRlL3BhcnNlLnRyIDx0eXBlIDEyMiAqPHR5cGUgNj4+OyBRdW90ZWQgPHR5cGUgLTE2PjsgVGV4dCA8dHlwZSAtMTY+OyB9PgogZnVuYyAocyA8dHlwZSAxMjMgKjx0eXBlIDEyMD4+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHMgPHR5cGUgMTIzPikgLnRleHQvdGVtcGxhdGUvcGFyc2UudHJlZSAoKSA8dHlwZSAxMjQgKjx0eXBlIDY+PjsKIGZ1bmMgKHMgPHR5cGUgMTIzPikgQ29weSAoKSA8dHlwZSAxMz47Cj4+OwogZnVuYyAodCA8dHlwZSAxMjUgKjx0eXBlIDY+PikgLnRleHQvdGVtcGxhdGUvcGFyc2UubmV3RW5kIChwb3MgPHR5cGUgND4pIDx0eXBlIDEyNiAqPHR5cGUgMTI3ICIudGV4dC90ZW1wbGF0ZS9wYXJzZS5lbmROb2RlIiA8dHlwZSAxMjggc3RydWN0IHsgPyA8dHlwZSAzPjsgPyA8dHlwZSA0PjsgLnRleHQvdGVtcGxhdGUvcGFyc2UudHIgPHR5cGUgMTI5ICo8dHlwZSA2Pj47IH0+CiBmdW5jIChlIDx0eXBlIDEzMCAqPHR5cGUgMTI3Pj4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAoZSA8dHlwZSAxMzA+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS50cmVlICgpIDx0eXBlIDEzMSAqPHR5cGUgNj4+OwogZnVuYyAoZSA8dHlwZSAxMzA+KSBDb3B5ICgpIDx0eXBlIDEzPjsKPj47CiBmdW5jICh0IDx0eXBlIDEzMiAqPHR5cGUgNj4+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS5uZXdFbHNlIChwb3MgPHR5cGUgND4sIGxpbmUgPHR5cGUgLTExPikgPHR5cGUgMTMzICo8dHlwZSAxMzQgIi50ZXh0L3RlbXBsYXRlL3BhcnNlLmVsc2VOb2RlIiA8dHlwZSAxMzUgc3RydWN0IHsgPyA8dHlwZSAzPjsgPyA8dHlwZSA0PjsgLnRleHQvdGVtcGxhdGUvcGFyc2UudHIgPHR5cGUgMTM2ICo8dHlwZSA2Pj47IExpbmUgPHR5cGUgLTExPjsgfT4KIGZ1bmMgKGUgPHR5cGUgMTM3ICo8dHlwZSAxMzQ+PikgVHlwZSAoKSA8dHlwZSAzPjsKIGZ1bmMgKGUgPHR5cGUgMTM3PikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jIChlIDx0eXBlIDEzNz4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLnRyZWUgKCkgPHR5cGUgMTM4ICo8dHlwZSA2Pj47CiBmdW5jIChlIDx0eXBlIDEzNz4pIENvcHkgKCkgPHR5cGUgMTM+Owo+PjsKIGZ1bmMgKHQgPHR5cGUgMTM5ICo8dHlwZSA2Pj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLm5ld0lmIChwb3MgPHR5cGUgND4sIGxpbmUgPHR5cGUgLTExPiwgcGlwZSA8dHlwZSA1Mz4sIGxpc3QgPHR5cGUgOD4sIGVsc2VMaXN0IDx0eXBlIDg+KSA8dHlwZSAxNDAgKjx0eXBlIDE0MSAiSWZOb2RlIiA8dHlwZSAxNDIgc3RydWN0IHsgPyA8dHlwZSAxNDMgIkJyYW5jaE5vZGUiIDx0eXBlIDE0NCBzdHJ1Y3QgeyA/IDx0eXBlIDM+OyA/IDx0eXBlIDQ+OyAudGV4dC90ZW1wbGF0ZS9wYXJzZS50ciA8dHlwZSAxNDUgKjx0eXBlIDY+PjsgTGluZSA8dHlwZSAtMTE+OyBQaXBlIDx0eXBlIDUzPjsgTGlzdCA8dHlwZSA4PjsgRWxzZUxpc3QgPHR5cGUgOD47IH0+CiBmdW5jIChiIDx0eXBlIDE0NiAqPHR5cGUgMTQzPj4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAoYiA8dHlwZSAxNDY+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS50cmVlICgpIDx0eXBlIDE0NyAqPHR5cGUgNj4+OwogZnVuYyAoYiA8dHlwZSAxNDY+KSBDb3B5ICgpIDx0eXBlIDEzPjsKPjsgfT4KIGZ1bmMgKGkgPHR5cGUgMTQ4ICo8dHlwZSAxNDE+PikgQ29weSAoKSA8dHlwZSAxMz47Cj4+OwogZnVuYyAodCA8dHlwZSAxNDkgKjx0eXBlIDY+PikgLnRleHQvdGVtcGxhdGUvcGFyc2UubmV3UmFuZ2UgKHBvcyA8dHlwZSA0PiwgbGluZSA8dHlwZSAtMTE+LCBwaXBlIDx0eXBlIDUzPiwgbGlzdCA8dHlwZSA4PiwgZWxzZUxpc3QgPHR5cGUgOD4pIDx0eXBlIDE1MCAqPHR5cGUgMTUxICJSYW5nZU5vZGUiIDx0eXBlIDE1MiBzdHJ1Y3QgeyA/IDx0eXBlIDE0Mz47IH0+CiBmdW5jIChyIDx0eXBlIDE1MyAqPHR5cGUgMTUxPj4pIENvcHkgKCkgPHR5cGUgMTM+Owo+PjsKIGZ1bmMgKHQgPHR5cGUgMTU0ICo8dHlwZSA2Pj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLm5ld1dpdGggKHBvcyA8dHlwZSA0PiwgbGluZSA8dHlwZSAtMTE+LCBwaXBlIDx0eXBlIDUzPiwgbGlzdCA8dHlwZSA4PiwgZWxzZUxpc3QgPHR5cGUgOD4pIDx0eXBlIDE1NSAqPHR5cGUgMTU2ICJXaXRoTm9kZSIgPHR5cGUgMTU3IHN0cnVjdCB7ID8gPHR5cGUgMTQzPjsgfT4KIGZ1bmMgKHcgPHR5cGUgMTU4ICo8dHlwZSAxNTY+PikgQ29weSAoKSA8dHlwZSAxMz47Cj4+OwogZnVuYyAodCA8dHlwZSAxNTkgKjx0eXBlIDY+PikgLnRleHQvdGVtcGxhdGUvcGFyc2UubmV3VGVtcGxhdGUgKHBvcyA8dHlwZSA0PiwgbGluZSA8dHlwZSAtMTE+LCBuYW1lIDx0eXBlIC0xNj4sIHBpcGUgPHR5cGUgNTM+KSA8dHlwZSAxNjAgKjx0eXBlIDE2MSAiVGVtcGxhdGVOb2RlIiA8dHlwZSAxNjIgc3RydWN0IHsgPyA8dHlwZSAzPjsgPyA8dHlwZSA0PjsgLnRleHQvdGVtcGxhdGUvcGFyc2UudHIgPHR5cGUgMTYzICo8dHlwZSA2Pj47IExpbmUgPHR5cGUgLTExPjsgTmFtZSA8dHlwZSAtMTY+OyBQaXBlIDx0eXBlIDUzPjsgfT4KIGZ1bmMgKHQgPHR5cGUgMTY0ICo8dHlwZSAxNjE+PikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jICh0IDx0eXBlIDE2ND4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLnRyZWUgKCkgPHR5cGUgMTY1ICo8dHlwZSA2Pj47CiBmdW5jICh0IDx0eXBlIDE2ND4pIENvcHkgKCkgPHR5cGUgMTM+Owo+PjsKIGZ1bmMgKHQgPHR5cGUgMTY2ICo8dHlwZSA2Pj4pIENvcHkgKCkgPHR5cGUgMTY2PjsKIGZ1bmMgKHQgPHR5cGUgMTY2PikgLnRleHQvdGVtcGxhdGUvcGFyc2UubmV4dCAoKSA8dHlwZSAyOD47CiBmdW5jICh0IDx0eXBlIDE2Nj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLmJhY2t1cCAoKTsKIGZ1bmMgKHQgPHR5cGUgMTY2PikgLnRleHQvdGVtcGxhdGUvcGFyc2UuYmFja3VwMiAodDEgPHR5cGUgMjg+KTsKIGZ1bmMgKHQgPHR5cGUgMTY2PikgLnRleHQvdGVtcGxhdGUvcGFyc2UuYmFja3VwMyAodDIgPHR5cGUgMjg+LCB0MSA8dHlwZSAyOD4pOwogZnVuYyAodCA8dHlwZSAxNjY+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS5wZWVrICgpIDx0eXBlIDI4PjsKIGZ1bmMgKHQgPHR5cGUgMTY2PikgLnRleHQvdGVtcGxhdGUvcGFyc2UubmV4dE5vblNwYWNlICgpICh0b2tlbiA8dHlwZSAyOD4pOwogZnVuYyAodCA8dHlwZSAxNjY+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS5wZWVrTm9uU3BhY2UgKCkgKHRva2VuIDx0eXBlIDI4Pik7CiBmdW5jICh0IDx0eXBlIDE2Nj4pIEVycm9yQ29udGV4dCAobiA8dHlwZSAxMz4pIChsb2NhdGlvbiA8dHlwZSAtMTY+LCBjb250ZXh0IDx0eXBlIC0xNj4pOwogZnVuYyAodCA8dHlwZSAxNjY+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS5lcnJvcmYgKGZvcm1hdCA8dHlwZSAtMTY+LCBhcmdzIC4uLjx0eXBlIDE2NyBpbnRlcmZhY2UgeyB9Pik7CiBmdW5jICh0IDx0eXBlIDE2Nj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLmVycm9yIChlcnIgPHR5cGUgLTE5Pik7CiBmdW5jICh0IDx0eXBlIDE2Nj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLmV4cGVjdCAoZXhwZWN0ZWQgPHR5cGUgMzA+LCBjb250ZXh0IDx0eXBlIC0xNj4pIDx0eXBlIDI4PjsKIGZ1bmMgKHQgPHR5cGUgMTY2PikgLnRleHQvdGVtcGxhdGUvcGFyc2UuZXhwZWN0T25lT2YgKGV4cGVjdGVkMSA8dHlwZSAzMD4sIGV4cGVjdGVkMiA8dHlwZSAzMD4sIGNvbnRleHQgPHR5cGUgLTE2PikgPHR5cGUgMjg+OwogZnVuYyAodCA8dHlwZSAxNjY+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS51bmV4cGVjdGVkICh0b2tlbiA8dHlwZSAyOD4sIGNvbnRleHQgPHR5cGUgLTE2Pik7CiBmdW5jICh0IDx0eXBlIDE2Nj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLnJlY292ZXIgKGVycnAgPHR5cGUgMTY4ICo8dHlwZSAtMTk+Pik7CiBmdW5jICh0IDx0eXBlIDE2Nj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLnN0YXJ0UGFyc2UgKGZ1bmNzIDx0eXBlIDE2OSBbXSA8dHlwZSAxNzAgbWFwIFs8dHlwZSAtMTY+XSA8dHlwZSAxNzEgaW50ZXJmYWNlIHsgfT4+PiwgbGV4IDx0eXBlIDIxPik7CiBmdW5jICh0IDx0eXBlIDE2Nj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLnN0b3BQYXJzZSAoKTsKIGZ1bmMgKHQgPHR5cGUgMTY2PikgUGFyc2UgKHRleHQgPHR5cGUgLTE2PiwgbGVmdERlbGltIDx0eXBlIC0xNj4sIHJpZ2h0RGVsaW0gPHR5cGUgLTE2PiwgdHJlZVNldCA8dHlwZSAxNzIgbWFwIFs8dHlwZSAtMTY+XSA8dHlwZSAxNjY+PiwgZnVuY3MgLi4uPHR5cGUgMTczIG1hcCBbPHR5cGUgLTE2Pl0gPHR5cGUgMTc0IGludGVyZmFjZSB7IH0+PikgKHRyZWUgPHR5cGUgMTY2PiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSAxNjY+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS5hZGQgKHRyZWVTZXQgPHR5cGUgMTc1IG1hcCBbPHR5cGUgLTE2Pl0gPHR5cGUgMTY2Pj4pOwogZnVuYyAodCA8dHlwZSAxNjY+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS5wYXJzZSAodHJlZVNldCA8dHlwZSAxNzYgbWFwIFs8dHlwZSAtMTY+XSA8dHlwZSAxNjY+PikgKG5leHQgPHR5cGUgMTM+KTsKIGZ1bmMgKHQgPHR5cGUgMTY2PikgLnRleHQvdGVtcGxhdGUvcGFyc2UucGFyc2VEZWZpbml0aW9uICh0cmVlU2V0IDx0eXBlIDE3NyBtYXAgWzx0eXBlIC0xNj5dIDx0eXBlIDE2Nj4+KTsKIGZ1bmMgKHQgPHR5cGUgMTY2PikgLnRleHQvdGVtcGxhdGUvcGFyc2UuaXRlbUxpc3QgKCkgKGxpc3QgPHR5cGUgOD4sIG5leHQgPHR5cGUgMTM+KTsKIGZ1bmMgKHQgPHR5cGUgMTY2PikgLnRleHQvdGVtcGxhdGUvcGFyc2UudGV4dE9yQWN0aW9uICgpIDx0eXBlIDEzPjsKIGZ1bmMgKHQgPHR5cGUgMTY2PikgLnRleHQvdGVtcGxhdGUvcGFyc2UuYWN0aW9uICgpIChuIDx0eXBlIDEzPik7CiBmdW5jICh0IDx0eXBlIDE2Nj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLnBpcGVsaW5lIChjb250ZXh0IDx0eXBlIC0xNj4pIChwaXBlIDx0eXBlIDUzPik7CiBmdW5jICh0IDx0eXBlIDE2Nj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLnBhcnNlQ29udHJvbCAoYWxsb3dFbHNlSWYgPHR5cGUgLTE1PiwgY29udGV4dCA8dHlwZSAtMTY+KSAocG9zIDx0eXBlIDQ+LCBsaW5lIDx0eXBlIC0xMT4sIHBpcGUgPHR5cGUgNTM+LCBsaXN0IDx0eXBlIDg+LCBlbHNlTGlzdCA8dHlwZSA4Pik7CiBmdW5jICh0IDx0eXBlIDE2Nj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLmlmQ29udHJvbCAoKSA8dHlwZSAxMz47CiBmdW5jICh0IDx0eXBlIDE2Nj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLnJhbmdlQ29udHJvbCAoKSA8dHlwZSAxMz47CiBmdW5jICh0IDx0eXBlIDE2Nj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLndpdGhDb250cm9sICgpIDx0eXBlIDEzPjsKIGZ1bmMgKHQgPHR5cGUgMTY2PikgLnRleHQvdGVtcGxhdGUvcGFyc2UuZW5kQ29udHJvbCAoKSA8dHlwZSAxMz47CiBmdW5jICh0IDx0eXBlIDE2Nj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLmVsc2VDb250cm9sICgpIDx0eXBlIDEzPjsKIGZ1bmMgKHQgPHR5cGUgMTY2PikgLnRleHQvdGVtcGxhdGUvcGFyc2UudGVtcGxhdGVDb250cm9sICgpIDx0eXBlIDEzPjsKIGZ1bmMgKHQgPHR5cGUgMTY2PikgLnRleHQvdGVtcGxhdGUvcGFyc2UuY29tbWFuZCAoKSA8dHlwZSA2NT47CiBmdW5jICh0IDx0eXBlIDE2Nj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLm9wZXJhbmQgKCkgPHR5cGUgMTM+OwogZnVuYyAodCA8dHlwZSAxNjY+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS50ZXJtICgpIDx0eXBlIDEzPjsKIGZ1bmMgKHQgPHR5cGUgMTY2PikgLnRleHQvdGVtcGxhdGUvcGFyc2UuaGFzRnVuY3Rpb24gKG5hbWUgPHR5cGUgLTE2PikgPHR5cGUgLTE1PjsKIGZ1bmMgKHQgPHR5cGUgMTY2PikgLnRleHQvdGVtcGxhdGUvcGFyc2UucG9wVmFycyAobiA8dHlwZSAtMTE+KTsKIGZ1bmMgKHQgPHR5cGUgMTY2PikgLnRleHQvdGVtcGxhdGUvcGFyc2UudXNlVmFyIChwb3MgPHR5cGUgND4sIG5hbWUgPHR5cGUgLTE2PikgPHR5cGUgMTM+Owo+PjsgTGluZSA8dHlwZSAtMTE+OyBQaXBlIDx0eXBlIDUzPjsgfT4KIGZ1bmMgKGEgPHR5cGUgNzE+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKGEgPHR5cGUgNzE+KSAudGV4dC90ZW1wbGF0ZS9wYXJzZS50cmVlICgpIDx0eXBlIDE3OCAqPHR5cGUgNj4+OwogZnVuYyAoYSA8dHlwZSA3MT4pIENvcHkgKCkgPHR5cGUgMTM+Owo+Owp0eXBlIDx0eXBlIDEwNj47CnR5cGUgPHR5cGUgMTQzPjsKdHlwZSA8dHlwZSA5OD47CnR5cGUgPHR5cGUgNjE+Owp0eXBlIDx0eXBlIDc2PjsKdHlwZSA8dHlwZSA5MD47CnR5cGUgPHR5cGUgMTc5ICJJZGVudGlmaWVyTm9kZSIgPHR5cGUgMTgwIHN0cnVjdCB7ID8gPHR5cGUgMz47ID8gPHR5cGUgND47IC50ZXh0L3RlbXBsYXRlL3BhcnNlLnRyIDx0eXBlIDE4MSAqPHR5cGUgNj4+OyBJZGVudCA8dHlwZSAtMTY+OyB9PgogZnVuYyAoaSA8dHlwZSAxODIgKjx0eXBlIDE3OT4+KSBTZXRQb3MgKHBvcyA8dHlwZSA0PikgPHR5cGUgMTgyPjsKIGZ1bmMgKGkgPHR5cGUgMTgyPikgU2V0VHJlZSAodCA8dHlwZSAxODMgKjx0eXBlIDY+PikgPHR5cGUgMTgyPjsKIGZ1bmMgKGkgPHR5cGUgMTgyPikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jIChpIDx0eXBlIDE4Mj4pIC50ZXh0L3RlbXBsYXRlL3BhcnNlLnRyZWUgKCkgPHR5cGUgMTg0ICo8dHlwZSA2Pj47CiBmdW5jIChpIDx0eXBlIDE4Mj4pIENvcHkgKCkgPHR5cGUgMTM+Owo+Owp0eXBlIDx0eXBlIDE0MT47CmZ1bmMgSXNFbXB0eVRyZWUgKG4gPHR5cGUgMTM+KSA8dHlwZSAtMTU+Owp0eXBlIDx0eXBlIDk+OwpmdW5jIE5ldyAobmFtZSA8dHlwZSAtMTY+LCBmdW5jcyAuLi48dHlwZSAxODUgbWFwIFs8dHlwZSAtMTY+XSA8dHlwZSAxODYgaW50ZXJmYWNlIHsgfT4+KSA8dHlwZSAxNjY+OwpmdW5jIE5ld0lkZW50aWZpZXIgKGlkZW50IDx0eXBlIC0xNj4pIDx0eXBlIDE4Mj47CnR5cGUgPHR5cGUgODM+Owp0eXBlIDx0eXBlIDEzPjsKY29uc3QgTm9kZUFjdGlvbiA8dHlwZSAzPiA9IDEgOwpjb25zdCBOb2RlQm9vbCA8dHlwZSAzPiA9IDIgOwpjb25zdCBOb2RlQ2hhaW4gPHR5cGUgMz4gPSAzIDsKY29uc3QgTm9kZUNvbW1hbmQgPHR5cGUgMz4gPSA0IDsKY29uc3QgTm9kZURvdCA8dHlwZSAzPiA9IDUgOwpjb25zdCBOb2RlRmllbGQgPHR5cGUgMz4gPSA4IDsKY29uc3QgTm9kZUlkZW50aWZpZXIgPHR5cGUgMz4gPSA5IDsKY29uc3QgTm9kZUlmIDx0eXBlIDM+ID0gMTAgOwpjb25zdCBOb2RlTGlzdCA8dHlwZSAzPiA9IDExIDsKY29uc3QgTm9kZU5pbCA8dHlwZSAzPiA9IDEyIDsKY29uc3QgTm9kZU51bWJlciA8dHlwZSAzPiA9IDEzIDsKY29uc3QgTm9kZVBpcGUgPHR5cGUgMz4gPSAxNCA7CmNvbnN0IE5vZGVSYW5nZSA8dHlwZSAzPiA9IDE1IDsKY29uc3QgTm9kZVN0cmluZyA8dHlwZSAzPiA9IDE2IDsKY29uc3QgTm9kZVRlbXBsYXRlIDx0eXBlIDM+ID0gMTcgOwpjb25zdCBOb2RlVGV4dCA8dHlwZSAzPiA9IDAgOwp0eXBlIDx0eXBlIDM+Owpjb25zdCBOb2RlVmFyaWFibGUgPHR5cGUgMz4gPSAxOCA7CmNvbnN0IE5vZGVXaXRoIDx0eXBlIDM+ID0gMTkgOwp0eXBlIDx0eXBlIDExMz47CmZ1bmMgUGFyc2UgKG5hbWUgPHR5cGUgLTE2PiwgdGV4dCA8dHlwZSAtMTY+LCBsZWZ0RGVsaW0gPHR5cGUgLTE2PiwgcmlnaHREZWxpbSA8dHlwZSAtMTY+LCBmdW5jcyAuLi48dHlwZSAxODcgbWFwIFs8dHlwZSAtMTY+XSA8dHlwZSAxODggaW50ZXJmYWNlIHsgfT4+KSAodHJlZVNldCA8dHlwZSAxODkgbWFwIFs8dHlwZSAtMTY+XSA8dHlwZSAxNjY+PiwgZXJyIDx0eXBlIC0xOT4pOwp0eXBlIDx0eXBlIDU0PjsKdHlwZSA8dHlwZSA0PjsKdHlwZSA8dHlwZSAxNTE+Owp0eXBlIDx0eXBlIDEyMD47CnR5cGUgPHR5cGUgMTYxPjsKdHlwZSA8dHlwZSAzOD47CnR5cGUgPHR5cGUgNj47CnR5cGUgPHR5cGUgNDc+Owp0eXBlIDx0eXBlIDE1Nj47CmNoZWNrc3VtIEI0NUY1NTYyNTZCQUE4RkQ4OEVBNzQyNzg3RUE5RTJCNDgxM0I2RTA7CgAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC5nb19leHBvcnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAAQAAAAAAAAAAAAAANAAAAKFAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAAMAAAAAAAAAAAAAANVAAAAmAAAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAAD8QAAAIAAAAAQAAAACAAAABAAAABAAAAAJAAAAAwAAAAAAAAAAAAAAHEEAAAEAAAAAAAAAAAAAAAEAAAAAAAAA