IyBSdXNzaWFuIHRyYW5zbGF0aW9ucyBmb3IgUgojIPLV09PLycog0MXSxdfPxCDEzNEgUgojCiMgQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBSIEZvdW5kYXRpb24KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgUiBwYWNrYWdlLgojIENvcHlyaWdodCAoQykgMjAxNSBBbGV4ZXkgU2hpcHVub3YgPGRhY3R5bG9yaGl6YSBhdCBnbWFpbD4KIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogUiAzLjMuMFxuIgoiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IGJ1Z3Muci1wcm9qZWN0Lm9yZ1xuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTUtMDMtMjQgMTE6NTJcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMTgtMDQtMDcgMDE6MTktMDUwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBBbGV4ZXkgU2hpcHVub3YgPGRhY3R5bG9yaGl6YUBnbWFpbC5jb20+XG4iCiJMYW5ndWFnZS1UZWFtOiBSdXNzaWFuXG4iCiJMYW5ndWFnZTogcnVcbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9S09JOC1SXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCiJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTM7IHBsdXJhbD0obiUxMD09MSAmJiBuJTEwMCE9MTEgPyAwIDogbiUxMD49MiAmJiBuJTEwPD00ICYmIChuJTEwMDwxMCB8fCBuJTEwMD49MjApID8gMSA6IDIpO1xuIgoiWC1HZW5lcmF0b3I6IFBvZWRpdCAxLjguNy4xXG4iCgojOiBpby5jOjMyNCBpby5jOjMyOCBpby5jOjMzOCBpby5jOjU2OSBpby5jOjc2OSBpby5jOjgyMiBpby5jOjgzNCBpby5jOjgzOAojOiBpby5jOjg0NCBpby5jOjg0NSBpby5jOjEwNjggaW8uYzoxMDY5IGlvLmM6MTA3MSBpby5jOjEwNzIgaW8uYzoxMDczCiM6IGlvLmM6MTA3NCBpby5jOjEwNzUgaW8uYzoxMDc2IHN0dWJzLmM6NDcgc3R1YnMuYzo2NyB3aW5kb3dzL2RpYWxvZ3MuYzoxNjkKIzogd2luZG93cy9kaWFsb2dzLmM6MTk0IHdpbmRvd3MvZGlhbG9ncy5jOjE5NyB3aW5kb3dzL2RpYWxvZ3MuYzoyNDEKIzogd2luZG93cy9kaWFsb2dzLmM6Mjc4IHdpbmRvd3MvZGlhbG9ncy5jOjI4OSB3aW5kb3dzL2RpYWxvZ3MuYzozMTMKIzogd2luZG93cy9kaWFsb2dzLmM6MzIxIHdpbmRvd3MvdXRpbC5jOjExMSB3aW5kb3dzL3dpZGdldHMuYzo3OAojOiB3aW5kb3dzL3dpZGdldHMuYzo4MSB3aW5kb3dzL3dpZGdldHMuYzo4NgojLCBjLWZvcm1hdAptc2dpZCAiaW52YWxpZCAnJXMnIGFyZ3VtZW50Igptc2dzdHIgIs7F0NLB18nM2M7ZyiDB0sfVzcXO1CAnJXMnIgoKIzogaW8uYzozNDcgaW8uYzo4MzEKbXNnaWQgImludmFsaWQgcXVvdGUgc3ltYm9sIHNldCIKbXNnc3RyICLOxdDSwdfJzNjOwdEg1dPUwc7P18vBINPJzdfPzMEgy8HX2d7FyyIKCiM6IGlvLmM6MzU5IGlvLmM6ODU0IGlvLmM6MTA1Ngptc2dpZCAiY2Fubm90IG9wZW4gdGhlIGNvbm5lY3Rpb24iCm1zZ3N0ciAizsUgzc/H1SDP1MvS2dTYINPPxcTJzsXOycUiCgojOiBpby5jOjM2MiBpby5jOjM2Ngptc2dpZCAiY2Fubm90IHJlYWQgZnJvbSB0aGlzIGNvbm5lY3Rpb24iCm1zZ3N0ciAizsUgzc/H1SDQ0s/eydTB1Nggydog08/FxMnOxc7J0SIKCiM6IGlvLmM6NDEzIGlvLmM6NDMxCiMsIGMtZm9ybWF0Cm1zZ2lkICJxdW90ZWQgc3RyaW5nIG9uIGxpbmUgJWQgdGVybWluYXRlZCBieSBFT0YiCm1zZ3N0ciAi2sHLwdfZ3sXOzsHRINDPxNPU0s/LwSDT1NLPy8kgJWQg2sHLwc7eydfBxdTT0SBFT0YiCgojOiBpby5jOjU2NQptc2dpZCAidGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb2YgbW9kZSBjaGFyYWN0ZXIiCm1zZ3N0ciAi0MXS19nKIMHSx9XNxc7UIMTPzNbFziDC2dTYINTFy9PUz9fZzSIKCiM6IGlvLmM6NTk1CiMsIGMtZm9ybWF0Cm1zZ2lkICJpbnZhbGlkICdudW1lcmFscycgc3RyaW5nOiBcIiVzXCIiCm1zZ3N0ciAizsXQ0sHXyczYzsHRINPU0s/LwSAnbnVtZXJhbHMnOiBcIiVzXCIiCgojOiBpby5jOjc3MQojLCBjLWZvcm1hdAptc2dpZCAiU2VsZWN0aW9uOiAiCm1zZ3N0ciAi99nCz9I6IgoKIzogaW8uYzo4NjMgaW8uYzo4NzcKbXNnaWQgImNhbm5vdCBhbGxvY2F0ZSBidWZmZXIgaW4gJ3JlYWRUYWJsZUhlYWQnIgptc2dzdHIgIs7FIM3Px9Ug0sHazcXT1MnU2CDC1cbF0iDXICdyZWFkVGFibGVIZWFkJyIKCiM6IGlvLmM6ODg4Cm1zZ2lkICJcXCBmb2xsb3dlZCBieSBFT0YiCm1zZ3N0ciAiXFwg2sHXxdLbwcXU09EgRU9GIgoKIzogaW8uYzo5MzcgaW8uYzo5NDAKIywgYy1mb3JtYXQKbXNnaWQgImluY29tcGxldGUgZmluYWwgbGluZSBmb3VuZCBieSByZWFkVGFibGVIZWFkZXIgb24gJyVzJyIKbXNnc3RyICJyZWFkVGFibGVIZWFkZXIgzsHbxcwgzsXQz8zO1cAg0M/TzMXEzsDAINPU0s/L1SDXICclcyciCgojOiBpby5jOjk5Nwptc2dpZCAiaW5kZXggb3V0IG9mIHJhbmdlIgptc2dzdHIgIsnOxMXL0yDXzsUg0NLFxMXMz9ciCgojOiBpby5jOjEwNDkKbXNnaWQgIidmaWxlJyBpcyBub3QgYSBjb25uZWN0aW9uIgptc2dzdHIgIidmaWxlJyAtLSDc1M8gzsUg08/FxMnOxc7JxSIKCiM6IGlvLmM6MTA1Mgptc2dpZCAiY2Fubm90IHdyaXRlIHRvIHRoaXMgY29ubmVjdGlvbiIKbXNnc3RyICLOxSDNz8fVINDJ08HU2CDXINzUzyDTz8XEyc7FzsnFIgoKIzogaW8uYzoxMDgyCm1zZ2lkICInZGVjJyBtdXN0IGJlIGEgc2luZ2xlIGNoYXJhY3RlciIKbXNnc3RyICInZGVjJyDEz8zWxc4gwtnU2CDPxM7JzSDTyc3Xz8zPzSIKCiM6IGlvLmM6MTEwOAojLCBjLWZvcm1hdAptc2dpZCAiY29ycnVwdCBkYXRhIGZyYW1lIC0tIGxlbmd0aCBvZiBjb2x1bW4gJWQgZG9lcyBub3Qgbm90IG1hdGNoIG5yb3dzIgptc2dzdHIgItDP19LF1sTFzs7B0SDUwcLMycPBIMTBzs7ZyCAtLSDEzMnOwSDLz8zPzsvJICVkIM7FINPPz9TXxdTT1NfVxdQg09TSz8vBzSIKCiM6IGlvLmM6MTEzOQojLCBjLWZvcm1hdAptc2dpZCAiY29sdW1uICVzIGNsYWltcyB0byBiZSBhIGZhY3RvciBidXQgZG9lcyBub3QgaGF2ZSBudW1lcmljIGNvZGVzIgptc2dzdHIgIsvPzM/Oy8EgJXMg097J1MHF1CDTxcLRIMbBy9TP0s/NLCDOzyDVIM7FxSDOxdQg3snTzM/X2cggy8/Ez9ciCgojOiBpby5jOjExNTcKbXNnaWQgImNvcnJ1cHQgbWF0cml4IC0tIGRpbXMgbm90IG5vdCBtYXRjaCBsZW5ndGgiCm1zZ3N0ciAi0M/X0sXWxMXOzsHRIM3B1NLJw8EgLS0gxMzJztkgydrNxdLFzsnKIM7FINPIz8TR1NPRIgoKIzogc3R1YnMuYzo1Ngptc2dpZCAiJ3NhdmVoaXN0b3J5JyBjYW4gb25seSBiZSB1c2VkIGluIFJndWkgYW5kIFJ0ZXJtIgptc2dzdHIgIidzYXZlaGlzdG9yeScgzc/Wzs8gydPQz8zY2s/XwdTYINTPzNjLzyDXIFJndWkgySBSdGVybSIKCiM6IHN0dWJzLmM6NzMKbXNnaWQgIidsb2FkaGlzdG9yeScgY2FuIG9ubHkgYmUgdXNlZCBpbiBSZ3VpIGFuZCBSdGVybSIKbXNnc3RyICInbG9hZGhpc3RvcnknIM3P1s7PIMnT0M/M2NrP18HU2CDUz8zYy88gUmd1aSDJIFJ0ZXJtIgoKIzogc3R1YnMuYzo4NQptc2dpZCAiaW52YWxpZCB0aW1lc3RhbXAiCm1zZ3N0ciAizsXQ0sHXyczYzsHRIMTB1MEgySDX0sXN0SIKCiM6IHN0dWJzLmM6MTUxIHN0dWJzLmM6MTU5Cm1zZ2lkICJYMTEgZGF0YWVudHJ5IGNhbm5vdCBiZSBsb2FkZWQiCm1zZ3N0ciAi1MHCzMnD1SBYMTEgzsXM2NrRINrBx9LV2snU2CIKCiM6IHN0dWJzLmM6MTU1IHN0dWJzLmM6MTg0IHN0dWJzLmM6MTkwCm1zZ2lkICJYMTEgaXMgbm90IGF2YWlsYWJsZSIKbXNnc3RyICJYMTEgzsXEz9PU1dDOwSIKCiM6IHN0dWJzLmM6MjQ4IHN0dWJzLmM6MjUxCiMsIGMtZm9ybWF0Cm1zZ2lkICJpbnZhbGlkICclcycgc3BlY2lmaWNhdGlvbiIKbXNnc3RyICLOxdDSwdfJzNjOz8Ugz9DSxcTFzMXOycUgJyVzJyIKCiM6IHV0aWxzLmM6ODMKbXNnaWQgIidob3N0bmFtZScgbXVzdCBiZSBhIGNoYXJhY3RlciB2ZWN0b3Igb2YgbGVuZ3RoIDEiCm1zZ3N0ciAiJ2hvc3RuYW1lJyDEz8zWzs8gwtnU2CDUxcvT1M/X2c0g18XL1M/Sz80gxMzJzs/KIDEiCgojOiB1dGlscy5jOjg5CiMsIGMtZm9ybWF0Cm1zZ2lkICJuc2woKSB3YXMgdW5hYmxlIHRvIHJlc29sdmUgaG9zdCAnJXMnIgptc2dzdHIgIm5zbCgpIM7FINPNz8cg0sHa0sXbydTYIMjP09QgJyVzJyIKCiM6IHV0aWxzLmM6OTYKbXNnaWQgInVua25vd24gZm9ybWF0IHJldHVybmVkIGJ5ICdnZXRob3N0YnluYW1lJyIKbXNnc3RyICInZ2V0aG9zdGJ5bmFtZScg18XSztXMwSDOxdDSwdfJzNjO2cogxs/SzcHUIgoKIzogdXRpbHMuYzoxMDUKbXNnaWQgIm5zbCgpIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybSIKbXNnc3RyICJuc2woKSDOxSDQz8TExdLWydfBxdTT0SDOwSDc1M/KINDMwdTGz9LNxSIKCiM6IHdpbmRvd3MvZGlhbG9ncy5jOjE4MQptc2dpZCAidW5rbm93biB0eXBlIgptc2dzdHIgIs7FydrXxdPUztnKINTJ0CIKCiM6IHdpbmRvd3MvZGlhbG9ncy5jOjIxMyB3aW5kb3dzL2RpYWxvZ3MuYzoyMzcgd2luZG93cy9kaWFsb2dzLmM6Mjc1CiM6IHdpbmRvd3MvZGlhbG9ncy5jOjMxMAptc2dpZCAibWVudSBmdW5jdGlvbnMgY2FuIG9ubHkgYmUgdXNlZCBpbiB0aGUgR1VJIgptc2dzdHIgIsbVzsvDyckgzcXOwCDNz9bOzyDJ09DPzNjaz9fB1Ngg1M/M2MvPINcgR1VJIgoKIzogd2luZG93cy9kaWFsb2dzLmM6MjQ1CiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bmFibGUgdG8gcmV0cmlldmUgaXRlbXMgZm9yICVzICglcykiCm1zZ3N0ciAizsUgzc/H1SDQz8zV3snU2CDczMXNxc7U2SDEzNEgJXMgKCVzKSIKCiM6IHdpbmRvd3MvZGlhbG9ncy5jOjI4MwojLCBjLWZvcm1hdAptc2dpZCAidW5hYmxlIHRvIGFkZCBtZW51ICglcykiCm1zZ3N0ciAizsUgzc/H1SDEz8LB18nU2CDNxc7AICglcykiCgojOiB3aW5kb3dzL2RpYWxvZ3MuYzoyOTUKIywgYy1mb3JtYXQKbXNnaWQgInVuYWJsZSB0byBhZGQgbWVudSBpdGVtICglcykiCm1zZ3N0ciAizsUgzc/H1SDEz8LB18nU2CDczMXNxc7UIM3FzsAgKCVzKSIKCiM6IHdpbmRvd3MvZGlhbG9ncy5jOjMxOAptc2dpZCAibWVudSBkb2VzIG5vdCBleGlzdCIKbXNnc3RyICLNxc7AIM7FINPV3cXT1NfVxdQiCgojOiB3aW5kb3dzL2RpYWxvZ3MuYzozMjUKIywgYy1mb3JtYXQKbXNnaWQgInVuYWJsZSB0byBkZWxldGUgbWVudSBpdGVtICglcykiCm1zZ3N0ciAizsUgzc/H1SDVxMHMydTYINzMxc3FztQgzcXOwCAoJXMpIgoKIzogd2luZG93cy9yZWdpc3RyeS5jOjczIHdpbmRvd3MvcmVnaXN0cnkuYzoyNDggd2luZG93cy9yZWdpc3RyeS5jOjI1MQojOiB3aW5kb3dzL3JlZ2lzdHJ5LmM6MjU0CiMsIGMtZm9ybWF0Cm1zZ2lkICJpbnZhbGlkICclcycgdmFsdWUiCm1zZ3N0ciAizsXQ0sHXyczYzs/FINrOwd7FzsnFICclcyciCgojOiB3aW5kb3dzL3JlZ2lzdHJ5LmM6MjY2CiMsIGMtZm9ybWF0Cm1zZ2lkICJSZWdpc3RyeSBrZXkgJyVscycgbm90IGZvdW5kIgptc2dzdHIgIuvMwN4g0sXF09TSwSAnJWxzJyDOxSDOwcrExc4iCgojOiB3aW5kb3dzL3V0aWwuYzo0MQptc2dpZCAidW5zdXBwb3J0ZWQgdmVyc2lvbiBvZiBXaW5kb3dzIgptc2dzdHIgIs7F0M/ExMXS1snXwcXNwdEg18XS08nRIFdpbmRvd3MiCgojOiB3aW5kb3dzL3V0aWwuYzoyNzUKbXNnaWQgImFyZ3VtZW50IG11c3QgYmUgYSBjaGFyYWN0ZXIgdmVjdG9yIG9yIGEgcmF3IHZlY3RvciIKbXNnc3RyICLB0sfVzcXO1CDEz8zWxc4gwtnU2CDUxcvT1M/X2c0g18XL1M/Sz80gyczJINDSz9PU2c0g18XL1M/Sz80iCgojOiB3aW5kb3dzL3V0aWwuYzozMTIKbXNnaWQgInVuYWJsZSB0byBvcGVuIHRoZSBjbGlwYm9hcmQiCm1zZ3N0ciAizsUgzc/H1SDP1MvS2dTYIMLVxsXSIM/CzcXOwSIKCiM6IHdpbmRvd3MvdXRpbC5jOjMxNwptc2dpZCAidW5hYmxlIHRvIHdyaXRlIHRvIHRoZSBjbGlwYm9hcmQiCm1zZ3N0ciAizsUgzc/H1SDQydPB1Ngg1yDC1cbF0iDPws3FzsEiCgojOiB3aW5kb3dzL3V0aWwuYzozOTYKbXNnaWQgIid0aXRsZScgbXVzdCBiZSBhIGNoYXJhY3RlciBzdHJpbmciCm1zZ3N0ciAiJ3RpdGxlJyDEz8zWxc4gwtnU2CDUxcvT1M/Xz8og09TSz8vPyiIKCiM6IHdpbmRvd3MvdXRpbC5jOjQwNQptc2dpZCAiJ3RleHQnIG11c3QgYmUgYSBjaGFyYWN0ZXIgc3RyaW5nIgptc2dzdHIgIid0ZXh0JyDEz8zWxc4gwtnU2CDUxcvT1M/Xz8og09TSz8vPyiIKCiM6IHdpbmRvd3MvdXRpbC5jOjQ0NAojLCBjLWZvcm1hdAptc2dpZCAiJyVzJyBtdXN0IGJlIGxlbmd0aCAxIgptc2dzdHIgIiclcycgxM/M1sXOIMLZ1NggxMzJzs/KIDEiCgojOiB3aW5kb3dzL3V0aWwuYzo1NTcKIywgYy1mb3JtYXQKbXNnaWQgIiclcycgbXVzdCBiZSBhIGxpc3QiCm1zZ3N0ciAiJyVzJyDEz8zWxc4gwtnU2CDT0MnTy8/NIgoKIzogd2luZG93cy91dGlsLmM6NTYxCiMsIGMtZm9ybWF0Cm1zZ2lkICInJXMnIGVsZW1lbnQgJWQgaXMgbm90IGEgd2luZG93IGhhbmRsZSIKbXNnc3RyICInJXMnINzMxc3FztQgydogJWQgLS0gzsUgxMXTy9LJ0NTP0iDPy87BIgoKIzogd2luZG93cy93aWRnZXRzLmM6MTA4Cm1zZ2lkICJTZWxlY3Qgb25lIG9yIG1vcmUiCm1zZ3N0ciAi99nCxdLJ1MUgz8TJziDJzMkgws/M2NvFIgoKIzogd2luZG93cy93aWRnZXRzLmM6MTA4Cm1zZ2lkICJTZWxlY3Qgb25lIgptc2dzdHIgIvfZwsXSydTFIM/Eyc4iCgojOiB3aW5kb3dzL3dpZGdldHMuYzoxODIgd2luZG93cy93aWRnZXRzLmM6MjQ3Cm1zZ2lkICInZGVmYXVsdCcgbXVzdCBiZSBhIGNoYXJhY3RlciBzdHJpbmciCm1zZ3N0ciAiJ2RlZmF1bHQnIMTPzNbFziDC2dTYINTFy9PUz9fPyiDT1NLPy8/KIgoKIzogd2luZG93cy93aWRnZXRzLmM6MTg0IHdpbmRvd3Mvd2lkZ2V0cy5jOjI0OQptc2dpZCAiJ2RlZmF1bHQnIGlzIG92ZXJsb25nIgptc2dzdHIgIidkZWZhdWx0JyDTzMnby8/NIMTMyc7O2coiCgojOiB3aW5kb3dzL3dpZGdldHMuYzoxODggd2luZG93cy93aWRnZXRzLmM6MjUzCm1zZ2lkICInY2FwdGlvbicgbXVzdCBiZSBhIGNoYXJhY3RlciBzdHJpbmciCm1zZ3N0ciAiJ2NhcHRpb24nIMTPzNbFziDC2dTYINTFy9PUz9fPyiDT1NLPy8/KIgoKIzogd2luZG93cy93aWRnZXRzLmM6MTkwCm1zZ2lkICInbXVsdGknIG11c3QgYmUgYSBsb2dpY2FsIHZhbHVlIgptc2dzdHIgIidtdWx0aScgxM/M1sXOIMLZ1NggzM/Hyd7F08vJzSIKCiM6IHdpbmRvd3Mvd2lkZ2V0cy5jOjE5Mgptc2dpZCAiJ2ZpbHRlcmluZGV4JyBtdXN0IGJlIGFuIGludGVnZXIgdmFsdWUiCm1zZ3N0ciAiJ2ZpbHRlcmluZGV4JyDEz8zWxc4gwtnU2CDDxczP3snTzMXOztnNIgo=