f0VMRgIBAQAAAAAAAAAAAAIAPgABAAAAwG5AAAAAAABAAAAAAAAAAEinCwAAAAAAAAAAAEAAOAANAEAAGwAaAAYAAAAEAAAAQAAAAAAAAABAAEAAAAAAAEAAQAAAAAAA2AIAAAAAAADYAgAAAAAAAAgAAAAAAAAAAwAAAAQAAAAYAwAAAAAAABgDQAAAAAAAGANAAAAAAAAcAAAAAAAAABwAAAAAAAAAAQAAAAAAAAABAAAABAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAPBNAAAAAAAA8E0AAAAAAAAAEAAAAAAAAAEAAAAFAAAAAFAAAAAAAAAAUEAAAAAAAABQQAAAAAAAjekCAAAAAACN6QIAAAAAAAAQAAAAAAAAAQAAAAQAAAAAQAMAAAAAAABAQwAAAAAAAEBDAAAAAAAwUAgAAAAAADBQCAAAAAAAABAAAAAAAAABAAAABgAAABCSCwAAAAAAEKJLAAAAAAAQoksAAAAAADAUAAAAAAAAqCkAAAAAAAAAEAAAAAAAAAIAAAAGAAAAgJULAAAAAACApUsAAAAAAIClSwAAAAAAMAIAAAAAAAAwAgAAAAAAAAgAAAAAAAAABAAAAAQAAAA4AwAAAAAAADgDQAAAAAAAOANAAAAAAAAwAAAAAAAAADAAAAAAAAAACAAAAAAAAAAEAAAABAAAAGgDAAAAAAAAaANAAAAAAABoA0AAAAAAAEQAAAAAAAAARAAAAAAAAAAEAAAAAAAAAFPldGQEAAAAOAMAAAAAAAA4A0AAAAAAADgDQAAAAAAAMAAAAAAAAAAwAAAAAAAAAAgAAAAAAAAAUOV0ZAQAAABINQsAAAAAAEg1SwAAAAAASDVLAAAAAAC8DwAAAAAAALwPAAAAAAAABAAAAAAAAABR5XRkBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAFLldGQEAAAAEJILAAAAAAAQoksAAAAAABCiSwAAAAAA8A0AAAAAAADwDQAAAAAAAAEAAAAAAAAAL2xpYjY0L2xkLWxpbnV4LXg4Ni02NC5zby4yAAAAAAAEAAAAIAAAAAUAAABHTlUAAQABwAQAAAAJAAAAAAAAAAIAAcAEAAAAAQAAAAAAAAAEAAAAFAAAAAMAAABHTlUAECT3TgaN6H8EDvH5WMPEcDl21VMEAAAAEAAAAAEAAABHTlUAAAAAAAMAAAACAAAAAAAAAAAAAAAjAAAAAwEAAAIAAAAHAAAApKEIABIBrpYjtDSUgEcQkQAAAAADAQAABAEAAAAAAAAAAAAAAAAAAAUBAAAGAQAAAAAAAAgBAAAAAAAACQEAAAoBAAALAQAADQEAAA8BAAAQAQAAEQEAABIBAAAAAAAAEwEAAAAAAAAAAAAAFAEAABUBAAAWAQAAAAAAAAAAAAAAAAAAFwEAAAAAAAAAAAAAAAAAAAAAAAAYAQAAOfKLHCkdjBxPjv1/Aj5/W8Gz9xJVwGYejR9j/5OYPK3o73BUb22f/4bwlnxNPqULs6L3EmdVYRAzxPcSRQX4oXXcDbXNQNvmf2qadY3H4GBpCYFIt/oB6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkEAAAEgAAAAAAAAAAAAAAAAAAAAAAAABtDwAAEgAAAAAAAAAAAAAAAAAAAAAAAABACQAAEgAAAAAAAAAAAAAAAAAAAAAAAACSBAAAEgAAAAAAAAAAAAAAAAAAAAAAAADaEAAAEgAAAAAAAAAAAAAAAAAAAAAAAABCAQAAEgAAAAAAAAAAAAAAAAAAAAAAAACCDQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAvCAAAEgAAAAAAAAAAAAAAAAAAAAAAAACeAwAAEgAAAAAAAAAAAAAAAAAAAAAAAACBBAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD7AAAAEgAAAAAAAAAAAAAAAAAAAAAAAADSBQAAEgAAAAAAAAAAAAAAAAAAAAAAAAB3DgAAEgAAAAAAAAAAAAAAAAAAAAAAAABbDwAAEgAAAAAAAAAAAAAAAAAAAAAAAAB/DgAAEgAAAAAAAAAAAAAAAAAAAAAAAADlDgAAEgAAAAAAAAAAAAAAAAAAAAAAAABvDgAAEgAAAAAAAAAAAAAAAAAAAAAAAABmDwAAEgAAAAAAAAAAAAAAAAAAAAAAAAB5CQAAEgAAAAAAAAAAAAAAAAAAAAAAAABNCwAAEgAAAAAAAAAAAAAAAAAAAAAAAACpBQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAxDgAAEgAAAAAAAAAAAAAAAAAAAAAAAADOBAAAEgAAAAAAAAAAAAAAAAAAAAAAAACLDgAAEgAAAAAAAAAAAAAAAAAAAAAAAAD/DQAAEgAAAAAAAAAAAAAAAAAAAAAAAABOBwAAEgAAAAAAAAAAAAAAAAAAAAAAAADyAgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA6DwAAEgAAAAAAAAAAAAAAAAAAAAAAAADMEAAAEgAAAAAAAAAAAAAAAAAAAAAAAADzBwAAEgAAAAAAAAAAAAAAAAAAAAAAAADtCQAAEgAAAAAAAAAAAAAAAAAAAAAAAACYCwAAEgAAAAAAAAAAAAAAAAAAAAAAAAD6CgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAtEAAAEgAAAAAAAAAAAAAAAAAAAAAAAACsDgAAEgAAAAAAAAAAAAAAAAAAAAAAAACzBgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAwAgAAEgAAAAAAAAAAAAAAAAAAAAAAAACWBwAAEgAAAAAAAAAAAAAAAAAAAAAAAAA0CwAAEgAAAAAAAAAAAAAAAAAAAAAAAAD9DwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAVDQAAEgAAAAAAAAAAAAAAAAAAAAAAAABsCgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA4BQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA7BAAAEgAAAAAAAAAAAAAAAAAAAAAAAABWEAAAEgAAAAAAAAAAAAAAAAAAAAAAAAALCgAAEgAAAAAAAAAAAAAAAAAAAAAAAABzDQAAEgAAAAAAAAAAAAAAAAAAAAAAAACFEAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAwDQAAEgAAAAAAAAAAAAAAAAAAAAAAAACFCwAAEgAAAAAAAAAAAAAAAAAAAAAAAACPCgAAEgAAAAAAAAAAAAAAAAAAAAAAAABgBQAAEgAAAAAAAAAAAAAAAAAAAAAAAAACDAAAEgAAAAAAAAAAAAAAAAAAAAAAAABMDwAAEgAAAAAAAAAAAAAAAAAAAAAAAABfDQAAEgAAAAAAAAAAAAAAAAAAAAAAAADcCAAAEgAAAAAAAAAAAAAAAAAAAAAAAACBEAAAEgAAAAAAAAAAAAAAAAAAAAAAAADTEAAAEgAAAAAAAAAAAAAAAAAAAAAAAABqDQAAEgAAAAAAAAAAAAAAAAAAAAAAAABfDgAAEgAAAAAAAAAAAAAAAAAAAAAAAAB7CwAAEgAAAAAAAAAAAAAAAAAAAAAAAACqAgAAEgAAAAAAAAAAAAAAAAAAAAAAAADDDgAAEgAAAAAAAAAAAAAAAAAAAAAAAADoAAAAEgAAAAAAAAAAAAAAAAAAAAAAAACLDAAAEgAAAAAAAAAAAAAAAAAAAAAAAACzDgAAEgAAAAAAAAAAAAAAAAAAAAAAAADHDwAAEgAAAAAAAAAAAAAAAAAAAAAAAABBBgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAPDwAAEgAAAAAAAAAAAAAAAAAAAAAAAADnAgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAXEAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAQCAAAEgAAAAAAAAAAAAAAAAAAAAAAAACVCAAAEgAAAAAAAAAAAAAAAAAAAAAAAACeDgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAoAQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAcBwAAEgAAAAAAAAAAAAAAAAAAAAAAAACgBQAAEgAAAAAAAAAAAAAAAAAAAAAAAABLDgAAEgAAAAAAAAAAAAAAAAAAAAAAAAB3DAAAEgAAAAAAAAAAAAAAAAAAAAAAAAA/DwAAEgAAAAAAAAAAAAAAAAAAAAAAAAA5DwAAEgAAAAAAAAAAAAAAAAAAAAAAAABEBAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAmDAAAEgAAAAAAAAAAAAAAAAAAAAAAAAATDgAAEgAAAAAAAAAAAAAAAAAAAAAAAABfAQAAEgAAAAAAAAAAAAAAAAAAAAAAAADKDgAAEgAAAAAAAAAAAAAAAAAAAAAAAACrCAAAEgAAAAAAAAAAAAAAAAAAAAAAAADtBAAAEgAAAAAAAAAAAAAAAAAAAAAAAABKCAAAEgAAAAAAAAAAAAAAAAAAAAAAAADuAwAAEgAAAAAAAAAAAAAAAAAAAAAAAADwDAAAEgAAAAAAAAAAAAAAAAAAAAAAAABFBQAAEgAAAAAAAAAAAAAAAAAAAAAAAADHCwAAEgAAAAAAAAAAAAAAAAAAAAAAAABTDgAAEgAAAAAAAAAAAAAAAAAAAAAAAABuAAAAEgAAAAAAAAAAAAAAAAAAAAAAAADDBwAAEgAAAAAAAAAAAAAAAAAAAAAAAAApDwAAEgAAAAAAAAAAAAAAAAAAAAAAAACsCgAAEgAAAAAAAAAAAAAAAAAAAAAAAADTAgAAEgAAAAAAAAAAAAAAAAAAAAAAAADdDgAAEgAAAAAAAAAAAAAAAAAAAAAAAAC9AAAAEgAAAAAAAAAAAAAAAAAAAAAAAAC5CAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD+DwAAEgAAAAAAAAAAAAAAAAAAAAAAAAC6EAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD8DgAAEgAAAAAAAAAAAAAAAAAAAAAAAAADEQAAIQAAAAAAAAAAAAAAAAAAAAAAAACJAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAC9DgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAYBAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD2DAAAEgAAAAAAAAAAAAAAAAAAAAAAAADjEAAAEgAAAAAAAAAAAAAAAAAAAAAAAADVAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAC/AQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAEBgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAJCQAAEgAAAAAAAAAAAAAAAAAAAAAAAABLBAAAEgAAAAAAAAAAAAAAAAAAAAAAAADsAQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAJBwAAEgAAAAAAAAAAAAAAAAAAAAAAAADFDAAAEgAAAAAAAAAAAAAAAAAAAAAAAAArBgAAEgAAAAAAAAAAAAAAAAAAAAAAAACrEAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAaBQAAEgAAAAAAAAAAAAAAAAAAAAAAAABqBwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAkCgAAEgAAAAAAAAAAAAAAAAAAAAAAAAASCQAAEgAAAAAAAAAAAAAAAAAAAAAAAACkEAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAqDwAAEgAAAAAAAAAAAAAAAAAAAAAAAACABQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAEAwAAEgAAAAAAAAAAAAAAAAAAAAAAAABYCQAAEgAAAAAAAAAAAAAAAAAAAAAAAABpDgAAEgAAAAAAAAAAAAAAAAAAAAAAAAC4DgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAA/BAAAEgAAAAAAAAAAAAAAAAAAAAAAAABSAgAAEgAAAAAAAAAAAAAAAAAAAAAAAAClDgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAEEQAAEQAAAAAAAAAAAAAAAAAAAAAAAABgAwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAjBAAAEgAAAAAAAAAAAAAAAAAAAAAAAABFDwAAEgAAAAAAAAAAAAAAAAAAAAAAAAATAwAAEgAAAAAAAAAAAAAAAAAAAAAAAADDAgAAEgAAAAAAAAAAAAAAAAAAAAAAAABhAgAAEgAAAAAAAAAAAAAAAAAAAAAAAACZDgAAEgAAAAAAAAAAAAAAAAAAAAAAAAB9AgAAEgAAAAAAAAAAAAAAAAAAAAAAAACQAgAAEgAAAAAAAAAAAAAAAAAAAAAAAADaDwAAEgAAAAAAAAAAAAAAAAAAAAAAAAB5DQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAXCAAAEgAAAAAAAAAAAAAAAAAAAAAAAADFBQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAdAQAAEgAAAAAAAAAAAAAAAAAAAAAAAADeDQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAIAQAAEgAAAAAAAAAAAAAAAAAAAAAAAADUAQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAUCwAAEgAAAAAAAAAAAAAAAAAAAAAAAAD4DQAAEgAAAAAAAAAAAAAAAAAAAAAAAACXCQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAhCQAAEgAAAAAAAAAAAAAAAAAAAAAAAABNBQAAEgAAAAAAAAAAAAAAAAAAAAAAAACVBgAAEgAAAAAAAAAAAAAAAAAAAAAAAADACQAAEgAAAAAAAAAAAAAAAAAAAAAAAABfCwAAEgAAAAAAAAAAAAAAAAAAAAAAAACRDgAAEgAAAAAAAAAAAAAAAAAAAAAAAABuCAAAEgAAAAAAAAAAAAAAAAAAAAAAAACtDAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD2DgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAjAwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAFBQAAEgAAAAAAAAAAAAAAAAAAAAAAAADWDQAAEgAAAAAAAAAAAAAAAAAAAAAAAAChBQAAEgAAAAAAAAAAAAAAAAAAAAAAAADHDQAAEQAAAAAAAAAAAAAAAAAAAAAAAAC2DQAAEgAAAAAAAAAAAAAAAAAAAAAAAADuBQAAEgAAAAAAAAAAAAAAAAAAAAAAAACXDwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAhDgAAEgAAAAAAAAAAAAAAAAAAAAAAAADwCgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAGDgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA2BwAAEgAAAAAAAAAAAAAAAAAAAAAAAABHAgAAEgAAAAAAAAAAAAAAAAAAAAAAAABECgAAEgAAAAAAAAAAAAAAAAAAAAAAAAALEAAAEgAAAAAAAAAAAAAAAAAAAAAAAACvDwAAEgAAAAAAAAAAAAAAAAAAAAAAAABqEAAAEgAAAAAAAAAAAAAAAAAAAAAAAADbBgAAEgAAAAAAAAAAAAAAAAAAAAAAAABfCgAAEgAAAAAAAAAAAAAAAAAAAAAAAAC7AwAAEgAAAAAAAAAAAAAAAAAAAAAAAAADEAAAEgAAAAAAAAAAAAAAAAAAAAAAAABXBgAAEgAAAAAAAAAAAAAAAAAAAAAAAACWDQAAEgAAAAAAAAAAAAAAAAAAAAAAAAC4DQAAEgAAAAAAAAAAAAAAAAAAAAAAAACQEAAAEgAAAAAAAAAAAAAAAAAAAAAAAAA/DQAAEgAAAAAAAAAAAAAAAAAAAAAAAABVDQAAEgAAAAAAAAAAAAAAAAAAAAAAAAC9DQAAEgAAAAAAAAAAAAAAAAAAAAAAAAArDgAAEgAAAAAAAAAAAAAAAAAAAAAAAACZCgAAEgAAAAAAAAAAAAAAAAAAAAAAAAD+BQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA5DgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAvDwAAEgAAAAAAAAAAAAAAAAAAAAAAAADsDAAAEgAAAAAAAAAAAAAAAAAAAAAAAABYDgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAcAgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAeEAAAEgAAAAAAAAAAAAAAAAAAAAAAAABvAQAAEgAAAAAAAAAAAAAAAAAAAAAAAACgAQAAEgAAAAAAAAAAAAAAAAAAAAAAAACrAQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAbCwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAfDQAAEgAAAAAAAAAAAAAAAAAAAAAAAABTDwAAEgAAAAAAAAAAAAAAAAAAAAAAAADTDwAAEgAAAAAAAAAAAAAAAAAAAAAAAAC6DAAAEgAAAAAAAAAAAAAAAAAAAAAAAABhBAAAEgAAAAAAAAAAAAAAAAAAAAAAAACFAQAAEgAAAAAAAAAAAAAAAAAAAAAAAADRCAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAhBQAAEgAAAAAAAAAAAAAAAAAAAAAAAAATAQAAEgAAAAAAAAAAAAAAAAAAAAAAAACuBAAAEgAAAAAAAAAAAAAAAAAAAAAAAABrBgAAEgAAAAAAAAAAAAAAAAAAAAAAAAADDwAAEgAAAAAAAAAAAAAAAAAAAAAAAACXEAAAEgAAAAAAAAAAAAAAAAAAAAAAAAACEQAAEQAAAAAAAAAAAAAAAAAAAAAAAAC0CQAAEgAAAAAAAAAAAAAAAAAAAAAAAADRDgAAEgAAAAAAAAAAAAAAAAAAAAAAAACMDgAAEgAAAAAAAAAAAAAAAAAAAAAAAAD2DwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAUDwAAEgAAAAAAAAAAAAAAAAAAAAAAAADXCwAAEgAAAAAAAAAAAAAAAAAAAAAAAAD/AQAAEgAAAAAAAAAAAAAAAAAAAAAAAACxDQAAEgAAAAAAAAAAAAAAAAAAAAAAAACKAwAAEgAAAAAAAAAAAAAAAAAAAAAAAADoCwAAEgAAAAAAAAAAAAAAAAAAAAAAAABYCAAAEgAAAAAAAAAAAAAAAAAAAAAAAACCBgAAEgAAAAAAAAAAAAAAAAAAAAAAAADFBgAAEgAAAAAAAAAAAAAAAAAAAAAAAABGBQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA6AwAAEgAAAAAAAAAAAAAAAAAAAAAAAADVCgAAEgAAAAAAAAAAAAAAAAAAAAAAAAB0AwAAEgAAAAAAAAAAAAAAAAAAAAAAAAC+DQAAEgAAAAAAAAAAAAAAAAAAAAAAAADlDQAAEgAAAAAAAAAAAAAAAAAAAAAAAADXDAAAEgAAAAAAAAAAAAAAAAAAAAAAAAA0DAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAzEAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAKDQAAEgAAAAAAAAAAAAAAAAAAAAAAAABaDAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAZBQAAEgAAAAAAAAAAAAAAAAAAAAAAAADzDQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAbDgAAEgAAAAAAAAAAAAAAAAAAAAAAAACrAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAMDAAAEgAAAAAAAAAAAAAAAAAAAAAAAADWDgAAEgAAAAAAAAAAAAAAAAAAAAAAAADrDQAAEgAAAAAAAAAAAAAAAAAAAAAAAABYAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAB8BwAAEgAAAAAAAAAAAAAAAAAAAAAAAABcEAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD2AQAAEgAAAAAAAAAAAAAAAAAAAAAAAADJAwAAEgAAAAAAAAAAAAAAAAAAAAAAAACQDwAAEQAZAGC7SwAAAAAACAAAAAAAAAAiDwAAEQAZAEC2SwAAAAAACAAAAAAAAAByEAAAEgAOAEAbQwAAAAAAEQAAAAAAAAB0DwAAEgAOALAcQwAAAAAANwAAAAAAAACdEAAAEQAZAFC7SwAAAAAABAAAAAAAAAATCwAAEgAAANBVQAAAAAAAAAAAAAAAAADwBgAAEQAZAFC2SwAAAAAABAAAAAAAAADhDwAAEgAOAJAdQwAAAAAAJgAAAAAAAAAHBAAAEgAAAJBTQAAAAAAAAAAAAAAAAAC2CwAAEQAZAIC2SwAAAAAAwAQAAAAAAABVDAAAEgAAAMBQQAAAAAAAAAAAAAAAAAD0EAAAEgAOAPAcQwAAAAAAkwAAAAAAAACJDwAAEQAZAHC2SwAAAAAACAAAAAAAAACFDgAAEQAZAGC2SwAAAAAACAAAAAAAAABEDgAAEQAZAGi2SwAAAAAABAAAAAAAAAAuBAAAEQAVAICiSwAAAAAAAAIAAAAAAAA4AAAAEgAAAJBfQAAAAAAAAAAAAAAAAACeAAAAEQAVAICkSwAAAAAAAAEAAAAAAACeDwAAEgAOAGAbQwAAAAAAFQAAAAAAAAC1DwAAEgAOAIAbQwAAAAAALwEAAAAAAADZCQAAEQAZAEC7SwAAAAAABAAAAAAAAAA5EAAAEQAYADC2SwAAAAAACAAAAAAAAAAAX19nbW9uX3N0YXJ0X18AYmZkX2VsZjMyX2FybV9wcm9jZXNzX2JlZm9yZV9hbGxvY2F0aW9uAF9iZmRfZWxmX21hdGNoX3NlY3Rpb25zX2J5X3R5cGUAYmZkX3BsdWdpbl9vcGVuX2lucHV0AGJmZF9lbGYzMl9hcm1fdXNlX2xvbmdfcGx0AGJmZF9lbGZfZGlzY2FyZF9pbmZvAF9zY2hfdG9sb3dlcgBiZmRfc2V0X2FyY2hfaW5mbwBiZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZQBiZmRfbGlua19hZGRfdW5kZWYAYmZkX2dldF9yZWxvY19zaXplAGJmZF9zY2FuX3ZtYQBiZmRfZ2V0YjE2AGh0YWJfZmluZABiZmRfcHV0bDMyAGJmZF9lbGZfZ2V0X2R5bl9saWJfY2xhc3MAZWxmMzJfYXJtX2ZpeF9leGlkeF9jb3ZlcmFnZQBiZmRfdGFyZ2V0X2xpc3QAZWxmMzJfYXJtX2J1aWxkX3N0dWJzAGJmZF9lbGZfc2V0X2R0X25lZWRlZF9uYW1lAGJmZF9nZXRiMzIAX2JmZF9lbGZfc3RydGFiX2xlbgBiZmRfbGlua19oYXNoX2xvb2t1cABiZmRfZWxmMzJfYXJtX2luaXRfbWFwcwBsYmFzZW5hbWUAYmZkX3NlZWsAYmZkX29wZW5yX25leHRfYXJjaGl2ZWRfZmlsZQBiZmRfcGx1Z2luX3RhcmdldF9wAGJmZF9zZXRfZGVmYXVsdF90YXJnZXQAYmZkX3B1dGw2NABiZmRfc2V0X2Zvcm1hdABiZmRfZWxmX2dldF9iZmRfbmVlZGVkX2xpc3QAYmZkX2Nsb3NlX2FsbF9kb25lAGJmZF9lbGZfc2V0X2R5bl9saWJfY2xhc3MAYmZkX2dldF9zZWN0aW9uX2NvbnRlbnRzAGJmZF9yZWNvcmRfcGhkcgBfYmZkX2VsZl9zdHJ0YWJfc3RyAGJmZF9nZXRiNjQAYmZkX21ha2VfcmVhZGFibGUAaHRhYl9maW5kX3Nsb3QAYmZkX2hhc2hfbG9va3VwAGJmZF9saW5rX2hhc2hfdHJhdmVyc2UAYmZkX3NlY3Rpb25fYWxyZWFkeV9saW5rZWRfdGFibGVfaW5pdABiZmRfb2N0ZXRzX3Blcl9ieXRlAGJmZF9saW5rX2NoZWNrX3JlbG9jcwBiZmRfaGFzaF90YWJsZV9pbml0AGNwbHVzX2RlbWFuZ2xlX25hbWVfdG9fc3R5bGUAYmZkX3NjYW5fYXJjaABiZmRfZWxmMzJfYXJtX3N0bTMybDR4eF9lcnJhdHVtX3NjYW4AeG1hbGxvY19zZXRfcHJvZ3JhbV9uYW1lAGJmZF9oYXNoX25ld2Z1bmMAYmZkX2NyZWF0ZQBiZmRfYndyaXRlAF9zY2hfaXN0YWJsZQBiZmRfc3RhdABjb25jYXQAYmZkX2hhc2hfdGFibGVfaW5pdF9uAGJmZF9lbGZfc2l6ZV9keW5zeW1faGFzaF9keW5zdHIAaHRhYl9oYXNoX3N0cmluZwBiZmRfZW11bF9nZXRfY29tbW9ucGFnZXNpemUAYmZkX2VsZjMyX2FybV9zZXRfYnl0ZXN3YXBfY29kZQBiZmRfZWxmX3JlY29yZF9saW5rX2Fzc2lnbm1lbnQAYmZkX2FyY2hfZ2V0X2NvbXBhdGlibGUAb2JqYWxsb2NfZnJlZV9ibG9jawB4Y2FsbG9jAGJmZF9jYW5vbmljYWxpemVfcmVsb2MAZmlsZW5hbWVfY21wAHhzdHJkdXAAdW5saW5rX2lmX29yZGluYXJ5AGJmZF9lbGYzMl9hcm1fc2V0X2NvcnRleF9hOF9maXgAYmZkX2VsZjMyX2FybV9zZXRfdGFyZ2V0X3BhcmFtcwB4cmVhbGxvYwBiZmRfZWxmMzJfYXJtX3NldF92ZnAxMV9maXgAYmZkX2dldF9hcmNoAHJlZ2lzdGVyX2xkX3BsdWdpbl9vYmplY3RfcABiZmRfc2V0X2dwX3NpemUAeGV4aXQAYmZkX2VsZjMyX2FybV9nZXRfYmZkX2Zvcl9pbnRlcndvcmtpbmcAYmZkX3NldF9lcnJvcl9oYW5kbGVyAGJmZF9yZWxvY190eXBlX2xvb2t1cABiZmRfY2FjaGVfY2xvc2VfYWxsAGJmZF9zZXRfYXNzZXJ0X2hhbmRsZXIAYmZkX25ld19saW5rX29yZGVyAGJmZF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zAGJmZF9oYXNoX3RyYXZlcnNlAGJmZF9zZXRfc3RhcnRfYWRkcmVzcwBtYWtlX3JlbGF0aXZlX3ByZWZpeABjdXJyZW50X2RlbWFuZ2xpbmdfc3R5bGUAYmZkX3ByaW50YWJsZV9uYW1lAGJmZF9lbGZfYWRkX2R0X25lZWRlZF90YWcAYmZkX21ha2Vfc2VjdGlvbl9hbnl3YXkAYmZkX21ha2Vfc2VjdGlvbl93aXRoX2ZsYWdzAGJmZF9oYXNoX2FsbG9jYXRlAGJmZF9oYXNoX3NldF9kZWZhdWx0X3NpemUAYmZkX2VsZjMyX2FybV9zdG0zMmw0eHhfZml4X3ZlbmVlcl9sb2NhdGlvbnMAYmZkX2VsZjMyX2FybV9rZWVwX3ByaXZhdGVfc3R1Yl9vdXRwdXRfc2VjdGlvbnMAYmZkX3dyYXBwZWRfbGlua19oYXNoX2xvb2t1cABnZXRwd2QAYmZkX2hpZGVfc3ltX2J5X3ZlcnNpb24AYmZkX2dldF9zZWN0aW9uX2J5X25hbWVfaWYAYmZkX3NldF9lcnJvcgBiZmRfbWFwX292ZXJfc2VjdGlvbnMAYmZkX2VsZjMyX2FybV9hZGRfZ2x1ZV9zZWN0aW9uc190b19iZmQAYmZkX2VsZl9nZXRfZHRfc29uYW1lAGJmZF9nZXRfZXJyb3IAYmZkX2VsZl9nZXRfbmVlZGVkX2xpc3QAYmZkX2Vycm1zZwBiZmRfZWxmMzJfYXJtX2FsbG9jYXRlX2ludGVyd29ya2luZ19zZWN0aW9ucwBiZmRfaW5pdABiZmRfc2V0X3N5bXRhYgBiZmRfZWxmX3BhcnNlX2VoX2ZyYW1lX2VudHJpZXMAYmZkX2dldF9yZWxvY19jb2RlX25hbWUAYmZkX2VsZjMyX2FybV92ZnAxMV9lcnJhdHVtX3NjYW4AZWxmMzJfYXJtX3NldHVwX3NlY3Rpb25fbGlzdHMAYmZkX2dldF9uZXh0X3NlY3Rpb25fYnlfbmFtZQBodGFiX2NyZWF0ZQBiZmRfaXRlcmF0ZV9vdmVyX3RhcmdldHMAYmZkX3VzZV9yZXNlcnZlZF9pZABiZmRfZ2VuZXJpY19saW5rX3JlYWRfc3ltYm9scwBjcGx1c19kZW1hbmdsZV9zZXRfc3R5bGUAYmZkX2VsZjMyX2FybV9zZXRfc3RtMzJsNHh4X2ZpeABiZmRfc2V0X2Vycm9yX3Byb2dyYW1fbmFtZQBiZmRfZGVtYW5nbGUAYmZkX21ha2Vfc2VjdGlvbl9hbnl3YXlfd2l0aF9mbGFncwBiZmRfb3BlbnIAdW53cmFwX2hhc2hfbG9va3VwAGJmZF9lbGYzMl9hcm1fdmZwMTFfZml4X3ZlbmVlcl9sb2NhdGlvbnMAX2JmZF9maXhfZXhjbHVkZWRfc2VjX3N5bXMAYmZkX29wZW53AGJmZF9lbGZfZ2V0X3J1bnBhdGhfbGlzdAB4bWFsbG9jAGJmZF9jaGVja19mb3JtYXRfbWF0Y2hlcwBiZmRfZW11bF9nZXRfbWF4cGFnZXNpemUAYmZkX21ha2Vfd3JpdGFibGUAYmZkX2dldF91bmlxdWVfc2VjdGlvbl9uYW1lAGJmZF9hbGxvYwBfYmZkX2VsZl90bHNfc2V0dXAAYmZkX2FyY2hfbWFjaF9vY3RldHNfcGVyX2J5dGUAX2JmZF9zdGRfc2VjdGlvbgBiZmRfZ2V0X2dwX3NpemUAYmZkX2NoZWNrX2Zvcm1hdABiZmRfZ2V0X3JlbG9jX3VwcGVyX2JvdW5kAGxyZWFscGF0aABiZmRfYXJjaF9iaXRzX3Blcl9hZGRyZXNzAGZpbGVuYW1lX25jbXAAYmZkX3NlY3Rpb25fYWxyZWFkeV9saW5rZWRfdGFibGVfZnJlZQBlbGYzMl9hcm1fbmV4dF9pbnB1dF9zZWN0aW9uAGJmZF9oYXNoX3RhYmxlX2ZyZWUAX2JmZF9lbGZfbWFwX3NlY3Rpb25zX3RvX3NlZ21lbnRzAGJmZF9nZXRfbWFjaABiZmRfcHV0bDE2AGJmZF9nZXRfYXJjaF9pbmZvAGVsZjMyX2FybV9zaXplX3N0dWJzAGJmZF9jbG9zZQBjdGZfZXJyd2FybmluZ19uZXh0AGN0Zl9jcmVhdGUAY3RmX2Vycm5vAGN0Zl9saW5rX2FkZF9jdGYAY3RmX2RpY3RfY2xvc2UAY3RmX2xpbmtfc2h1ZmZsZV9zeW1zAGN0Zl9jbG9zZQBjdGZfZXJybXNnAGN0Zl9saW5rX3dyaXRlAGN0Zl9saW5rAGN0Zl9saW5rX2FkZF9zdHJ0YWIAY3RmX2xpbmtfYWRkX2xpbmtlcl9zeW1ib2wAY3RmX2JmZG9wZW4AeHN0cmVycm9yAF94ZXhpdF9jbGVhbnVwAGRsY2xvc2UAZGxvcGVuAGRsc3ltAGRsZXJyb3IAZ2V0YwBmZmx1c2gAc3RyY3B5AF9fcHJpbnRmX2NoawBmbm1hdGNoAGV4ZWN2AHNldGxvY2FsZQBmb3BlbgBzdHJuY21wAGRjbmdldHRleHQAb3B0aW5kAHN0cnJjaHIAcGlwZQBwZXJyb3IAZGNnZXR0ZXh0AGZ0ZWxsAHN0cm5jcHkAcHV0Y2hhcgBhYm9ydABzdGRpbgBfZXhpdABzdHJwYnJrAGtpbGwAcmV3aW5kAHN0cnRvbABpc2F0dHkAbW1hcABmZW9mAGZnZXRzAHN0cmxlbgBtZW1zZXQAZ2xvYgBzdHJzdHIAc3RyY3NwbgBfX2Vycm5vX2xvY2F0aW9uAGZzZWVrAG1lbWNtcABnZXRwYWdlc2l6ZQBkdXAyAF9fZnByaW50Zl9jaGsAc3Rkb3V0AGZwdXRjAGdldHJ1c2FnZQBmcHV0cwBsc2VlawBtZW1jcHkAZmNsb3NlAHN0cnRvdWwAc3RyY2FzZWNtcAByZW1vdmUAZ2V0ZW52AF9vYnN0YWNrX2FsbG9jYXRlZF9wAG9wdGFyZwBzdGRlcnIAbXVubWFwAF9vYnN0YWNrX2JlZ2luXzEAd2FpdDQAX29ic3RhY2tfbmV3Y2h1bmsAZ2V0b3B0X2xvbmcAZXhlY3ZwAGZpbGVubwBfb2JzdGFja19tZW1vcnlfdXNlZABmd3JpdGUAZnJlYWQAd2FpdHBpZABfX2ZyZWFkX2NoawBzdHJjaHIAdmZvcmsAbWtzdGVtcHMAcXNvcnQAc2xlZXAAb2JzdGFja19hbGxvY19mYWlsZWRfaGFuZGxlcgBmY250bABfX3NwcmludGZfY2hrAG1lbW1vdmUAX29ic3RhY2tfYmVnaW4AYmluZHRleHRkb21haW4AYWNjZXNzAHBpcGUyAG9wdGVycgBzdHJjbXAAX19hc3ByaW50Zl9jaGsAX19saWJjX3N0YXJ0X21haW4AZmVycm9yAHN0cGNweQBnbG9iZnJlZQBnZXRvcHRfbG9uZ19vbmx5AF9vYnN0YWNrX2ZyZWUAX19lbnZpcm9uAGxpYmJmZC0yLjM2LjEuc28AbGliY3RmLnNvLjAAbGliZGwuc28uMgBsaWJjLnNvLjYAR0xJQkNfMi4yLjUATElCQ1RGXzEuMQBMSUJDVEZfMS4wAEdMSUJDXzIuMjcAR0xJQkNfMi45AEdMSUJDXzIuNwBHTElCQ18yLjMuNABHTElCQ18yLjE0AEdMSUJDXzIuMzMAR0xJQkNfMi44AEdMSUJDXzIuMTEAL3Vzci94ODZfNjQtcGMtbGludXgtZ251L2FybXY3YS1jcm9zLWxpbnV4LWdudWVhYmloZi9saWI6L3Vzci9saWI2NC9iaW51dGlscy9hcm12N2EtY3Jvcy1saW51eC1nbnVlYWJpaGYvMi4zNi4xAAAAAgADAAAAAAADAAAABAAAAAAAAAAAAAAAAwADAAMAAwADAAMAAAAAAAAAAwAAAAMAAwAAAAAAAwADAAAAAAAAAAAAAwADAAAAAAAAAAAAAwAEAAAAAAAAAAMAAAADAAMABQAAAAAAAAAAAAMABAAAAAMAAwAEAAMAAAAAAAMAAAAAAAMAAwAAAAMAAAADAAAAAAADAAAAAAAAAAMAAAADAAMAAAAAAAMAAAADAAAAAAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwADAAMAAwAAAAMAAAAEAAMAAAAAAAAAAAAAAAAAAAAAAAAABgADAAAAAAAAAAMAAwAAAAAAAAADAAMAAAAAAAcAAAADAAMAAAAAAAgAAAAAAAAAAwAAAAAAAwAEAAAAAAAAAAkAAAAAAAMAAwAAAAAAAAAAAAAAAAADAAAAAAADAAAAAAAJAAMAAAADAAAAAwADAAAACgAAAAAAAAALAAMAAwAAAAAAAAADAAAABQADAAMABAAEAAAAAwAAAAAAAwADAAAAAwAAAAMAAAAAAAAAAAAEAAMAAwAAAAAAAAAAAAAAAAAAAAAAAwAMAAMAAAANAAMAAwAKAAAAAAAEAAAAAAAAAAAAAAADAAAAAAAAAAMACQAAAAAAAwAEAAAAAAADAAMAAAAAAAMACQAAAAAACgAAAAAAAwADAAEAAQADAAAAAAABAAAAAAADAAEAAwADAAMAAAAAAAAAAQABAAAAAQABAAEAKREAABAAAAAgAAAAdRppCQAACQA+EQAAAAAAAAEAAgAdEQAAEAAAADAAAABxL48IAAAFAEoRAAAQAAAAcC+PCAAABABVEQAAAAAAAAEACQA0EQAAEAAAAAAAAACHkZYGAAANAGARAAAQAAAAGWlpDQAADABrEQAAEAAAABdpaQ0AAAsAdREAABAAAAB0GWkJAAAKAH8RAAAQAAAAlJGWBgAACACLEQAAEAAAALORlgYAAAcAlhEAABAAAAAYaWkNAAAGAKERAAAQAAAAdRppCQAAAwA+EQAAEAAAAJGRlgYAAAIAqxEAAAAAAADIr0sAAAAAAAYAAAASAQAAAAAAAAAAAADQr0sAAAAAAAYAAABoAAAAAAAAAAAAAADYr0sAAAAAAAYAAACGAAAAAAAAAAAAAADgr0sAAAAAAAYAAACKAAAAAAAAAAAAAADor0sAAAAAAAYAAACsAAAAAAAAAAAAAADwr0sAAAAAAAYAAAADAQAAAAAAAAAAAACAoksAAAAAAAUAAAASAQAAAAAAAAAAAACApEsAAAAAAAUAAAAUAQAAAAAAAAAAAABgu0sAAAAAAAUAAAADAQAAAAAAAAAAAABAtksAAAAAAAUAAAAEAQAAAAAAAAAAAABQtksAAAAAAAUAAAAJAQAAAAAAAAAAAABgtksAAAAAAAUAAAAQAQAAAAAAAAAAAABotksAAAAAAAUAAAARAQAAAAAAAAAAAABwtksAAAAAAAUAAAAPAQAAAAAAAAAAAACAtksAAAAAAAUAAAAMAQAAAAAAAAAAAABAu0sAAAAAAAUAAAAXAQAAAAAAAAAAAABQu0sAAAAAAAUAAAAHAQAAAAAAAAAAAADIp0sAAAAAAAcAAAABAAAAAAAAAAAAAADQp0sAAAAAAAcAAAACAAAAAAAAAAAAAADYp0sAAAAAAAcAAAADAAAAAAAAAAAAAADgp0sAAAAAAAcAAAAEAAAAAAAAAAAAAADop0sAAAAAAAcAAAAFAAAAAAAAAAAAAADwp0sAAAAAAAcAAAAGAAAAAAAAAAAAAAD4p0sAAAAAAAcAAAAHAAAAAAAAAAAAAAAAqEsAAAAAAAcAAAAIAAAAAAAAAAAAAAAIqEsAAAAAAAcAAAAJAAAAAAAAAAAAAAAQqEsAAAAAAAcAAAANAQAAAAAAAAAAAAAYqEsAAAAAAAcAAAAKAAAAAAAAAAAAAAAgqEsAAAAAAAcAAAALAAAAAAAAAAAAAAAoqEsAAAAAAAcAAAAMAAAAAAAAAAAAAAAwqEsAAAAAAAcAAAANAAAAAAAAAAAAAAA4qEsAAAAAAAcAAAAOAAAAAAAAAAAAAABAqEsAAAAAAAcAAAAPAAAAAAAAAAAAAABIqEsAAAAAAAcAAAAQAAAAAAAAAAAAAABQqEsAAAAAAAcAAAARAAAAAAAAAAAAAABYqEsAAAAAAAcAAAASAAAAAAAAAAAAAABgqEsAAAAAAAcAAAATAAAAAAAAAAAAAABoqEsAAAAAAAcAAAAUAAAAAAAAAAAAAABwqEsAAAAAAAcAAAAVAAAAAAAAAAAAAAB4qEsAAAAAAAcAAAAWAAAAAAAAAAAAAACAqEsAAAAAAAcAAAAXAAAAAAAAAAAAAACIqEsAAAAAAAcAAAAYAAAA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QP////8lOlcLAGgLAAAA6TD/////JTJXCwBoDAAAAOkg/////yUqVwsAaA0AAADpEP////8lIlcLAGgOAAAA6QD/////JRpXCwBoDwAAAOnw/v///yUSVwsAaBAAAADp4P7///8lClcLAGgRAAAA6dD+////JQJXCwBoEgAAAOnA/v///yX6VgsAaBMAAADpsP7///8l8lYLAGgUAAAA6aD+////JepWCwBoFQAAAOmQ/v///yXiVgsAaBYAAADpgP7///8l2lYLAGgXAAAA6XD+////JdJWCwBoGAAAAOlg/v///yXKVgsAaBkAAADpUP7///8lwlYLAGgaAAAA6UD+////JbpWCwBoGwAAAOkw/v///yWyVgsAaBwAAADpIP7///8lqlYLAGgdAAAA6RD+////JaJWCwBoHgAAAOkA/v///yWaVgsAaB8AAADp8P3///8lklYLAGggAAAA6eD9////JYpWCwBoIQAAAOnQ/f///yWCVgsAaCIAAADpwP3///8lelYLAGgjAAAA6bD9////JXJWCwBoJAAAAOmg/f///yVqVgsAaCUAAADpkP3///8lYlYLAGgmAAAA6YD9////JVpWCwBoJwAAAOlw/f///yVSVgsAaCgAAADpYP3///8lSlYLAGgpAAAA6VD9////JUJWCwBoKgAAAOlA/f///yU6VgsAaCsAAADpMP3///8lMlYLAGgsAAAA6SD9////JSpWCwBoLQAAAOkQ/f///yUiVgsAaC4AAADpAP3///8lGlYLAGgvAAAA6fD8////JRJWCwBoMAAAAOng/P///yUKVgsAaDEAAADp0Pz///8lAlYLAGgyAAAA6cD8////JfpVCwBoMwAAAOmw/P///yXyVQsAaDQAAADpoPz///8l6lULAGg1AAAA6ZD8////JeJVCwBoNgAAAOmA/P///yXaVQsAaDcAAADpcPz///8l0lULAGg4AAAA6WD8////JcpVCwBoOQAAAOlQ/P///yXCVQsAaDoAAADpQPz///8lulULAGg7AAAA6TD8////JbJVCwBoPAAAAOkg/P///yWqVQsAaD0AAADpEPz///8lolULAGg+AAAA6QD8////JZpVCwBoPwAAAOnw+////yWSVQsAaEAAAADp4Pv///8lilULAGhBAAAA6dD7////JYJVCwBoQgAAAOnA+////yV6VQsAaEMAAADpsPv///8lclULAGhEAAAA6aD7////JWpVCwBoRQAAAOmQ+////yViVQsAaEYAAADpgPv///8lWlULAGhHAAAA6XD7////JVJVCwBoSAAAAOlg+////yVKVQsAaEkAAADpUPv///8lQlULAGhKAAAA6UD7////JTpVCwBoSwAAAOkw+////yUyVQsAaEwAAADpIPv///8lKlULAGhNAAAA6RD7////JSJVCwBoTgAAAOkA+////yUaVQsAaE8AAADp8Pr///8lElULAGhQAAAA6eD6////JQpVCwBoUQAAAOnQ+v///yUCVQsAaFIAAADpwPr///8l+lQLAGhTAAAA6bD6////JfJUCwBoVAAAAOmg+v///yXqVAsAaFUAAADpkPr///8l4lQLAGhWAAAA6YD6////JdpUCwBoVwAAAOlw+v///yXSVAsAaFgAAADpYPr///8lylQLAGhZAAAA6VD6////JcJUCwBoWgAAAOlA+v///yW6VAsAaFsAAADpMPr///8lslQLAGhcAAAA6SD6////JapUCwBoXQAAAOkQ+v///yWiVAsAaF4AAADpAPr///8lmlQLAGhfAAAA6fD5////JZJUCwBoYAAAAOng+f///yWKVAsAaGEAAADp0Pn///8lglQLAGhiAAAA6cD5////JXpUCwBoYwAAAOmw+f///yVyVAsAaGQAAADpoPn///8lalQLAGhlAAAA6ZD5////JWJUCwBoZgAAAOmA+f///yVaVAsAaGcAAADpcPn///8lUlQLAGhoAAAA6WD5////JUpUCwBoaQAAAOlQ+f///yVCVAsAaGoAAADpQPn///8lOlQLAGhrAAAA6TD5////JTJUCwBobAAAAOkg+f///yUqVAsAaG0AAADpEPn///8lIlQLAGhuAAAA6QD5////JRpUCwBobwAAAOnw+P///yUSVAsAaHAAAADp4Pj///8lClQLAGhxAAAA6dD4////JQJUCwBocgAAAOnA+P///yX6UwsAaHMAAADpsPj///8l8lMLAGh0AAAA6aD4////JepTCwBodQAAAOmQ+P///yXiUwsAaHYAAADpgPj///8l2lMLAGh3AAAA6XD4////JdJTCwBoeAAAAOlg+P///yXKUwsAaHkAAADpUPj///8lwlMLAGh6AAAA6UD4////JbpTCwBoewAAAOkw+P///yWyUwsAaHwAAADpIPj///8lqlMLAGh9AAAA6RD4////JaJTCwBofgAAAOkA+P///yWaUwsAaH8AAADp8Pf///8lklMLAGiAAAAA6eD3////JYpTCwBogQAAAOnQ9////yWCUwsAaIIAAADpwPf///8lelMLAGiDAAAA6bD3////JXJTCwBohAAAAOmg9////yVqUwsAaIUAAADpkPf///8lYlMLAGiGAAAA6YD3////JVpTCwBohwAAAOlw9////yVSUwsAaIgAAADpYPf///8lSlMLAGiJAAAA6VD3////JUJTCwBoigAAAOlA9////yU6UwsAaIsAAADpMPf///8lMlMLAGiMAAAA6SD3////JSpTCwBojQAAAOkQ9////yUiUwsAaI4AAADpAPf///8lGlMLAGiPAAAA6fD2////JRJTCwBokAAAAOng9v///yUKUwsAaJEAAADp0Pb///8lAlMLAGiSAAAA6cD2////JfpSCwBokwAAAOmw9v///yXyUgsAaJQAAADpoPb///8l6lILAGiVAAAA6ZD2////JeJSCwBolgAAAOmA9v///yXaUgsAaJcAAADpcPb///8l0lILAGiYAAAA6WD2////JcpSCwBomQAAAOlQ9v///yXCUgsAaJoAAADpQPb///8lulILAGibAAAA6TD2////JbJSCwBonAAAAOkg9v///yWqUgsAaJ0AAADpEPb///8lolILAGieAAAA6QD2////JZpSCwBonwAAAOnw9f///yWSUgsAaKAAAADp4PX///8lilILAGihAAAA6dD1////JYJSCwBoogAAAOnA9f///yV6UgsAaKMAAADpsPX///8lclILAGikAAAA6aD1////JWpSCwBopQAAAOmQ9f///yViUgsAaKYAAADpgPX///8lWlILAGinAAAA6XD1////JVJSCwBoqAAAAOlg9f///yVKUgsAaKkAAADpUPX///8lQlILAGiqAAAA6UD1////JTpSCwBoqwAAAOkw9f///yUyUgsAaKwAAADpIPX///8lKlILAGitAAAA6RD1////JSJSCwBorgAAAOkA9f///yUaUgsAaK8AAADp8PT///8lElILAGiwAAAA6eD0////JQpSCwBosQAAAOnQ9P///yUCUgsAaLIAAADpwPT///8l+lELAGizAAAA6bD0////JfJRCwBotAAAAOmg9P///yXqUQsAaLUAAADpkPT///8l4lELAGi2AAAA6YD0////JdpRCwBotwAAAOlw9P///yXSUQsAaLgAAADpYPT///8lylELAGi5AAAA6VD0////JcJRCwBougAAAOlA9P///yW6UQsAaLsAAADpMPT///8lslELAGi8AAAA6SD0////JapRCwBovQAAAOkQ9P///yWiUQsAaL4AAADpAPT///8lmlELAGi/AAAA6fDz////JZJRCwBowAAAAOng8////yWKUQsAaMEAAADp0PP///8lglELAGjCAAAA6cDz////JXpRCwBowwAAAOmw8////yVyUQsAaMQAAADpoPP///8lalELAGjFAAAA6ZDz////JWJRCwBoxgAAAOmA8////yVaUQsAaMcAAADpcPP///8lUlELAGjIAAAA6WDz////JUpRCwBoyQAAAOlQ8////yVCUQsAaMoAAADpQPP///8lOlELAGjLAAAA6TDz////JTJRCwBozAAAAOkg8////yUqUQsAaM0AAADpEPP///8lIlELAGjOAAAA6QDz////JRpRCwBozwAAAOnw8v///yUSUQsAaNAAAADp4PL///8lClELAGjRAAAA6dDy////JQJRCwBo0gAAAOnA8v///yX6UAsAaNMAAADpsPL///8l8lALAGjUAAAA6aDy////JepQCwBo1QAAAOmQ8v///yXiUAsAaNYAAADpgPL///8l2lALAGjXAAAA6XDy////JdJQCwBo2AAAAOlg8v///yXKUAsAaNkAAADpUPL///8lwlALAGjaAAAA6UDy////JbpQCwBo2wAAAOkw8v///yWyUAsAaNwAAADpIPL///8lqlALAGjdAAAA6RDy////JaJQCwBo3gAAAOkA8v///yWaUAsAaN8AAADp8PH///8lklALAGjgAAAA6eDx////JYpQCwBo4QAAAOnQ8f///yWCUAsAaOIAAADpwPH///8lelALAGjjAAAA6bDx////JXJQCwBo5AAAAOmg8f///yVqUAsAaOUAAADpkPH///8lYlALAGjmAAAA6YDx////JVpQCwBo5wAAAOlw8f///yVSUAsAaOgAAADpYPH///8lSlALAGjpAAAA6VDx////JUJQCwBo6gAAAOlA8f///yU6UAsAaOsAAADp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iY345P//6dD+//8PH0QAAEiLPcFDCwC5u0BDALpzokQAMcC+AQAAAOhr5v//QbhIQEMAQbkCAAAATIsVmEMLALkSQEMAuh5AQwBMide+AQAAADHARImN4OT//0yJlfjk///oMeb//0yLlfjk//+/KQAAAEyJ1uhd3v//SIs1VkMLAL8KAAAA6Eze//9Ei43g5P//6Vv8//9Iiz05QwsAubtAQwAxwLpzokQAvgEAAABEiZ345P//6Nzl//9IY4X45P//uRJAQwBMixUJQwsAPZwAAABMiwTFAJ1DAEGJwbgYQEMASA9NyOlY////Dx8ASIuN8OT//0iLPdpCCwC6dkBDADHAvgEAAADoieX//+kF+v//Dx9AAEiLhfjk//9Iiz2yQgsAjUv/ulhMQwC+AQAAAEQPv4QAIKZDADHA6FXl//9Fhf8PjssAAABID76F4OT//0WNZwFMia3I5P//Qb8BAAAAiZ3Q5P//TIn7SPfYSY1ERQBJiccPH4AAAAAASIs9UUILAInZutJAQwAxwL4BAAAA6P7k//9JD78EX7kYQEMATIstLUILAL4BAAAASA+/lADgaEMAuBJAQwBMie+B+pwAAABMiwTVAJ1DALoeQEMASA9MyDHASIPDAei15P//TInuvykAAADo6Nz//0iLNeFBCwC/CgAAAOjX3P//STncD4V2////TIutyOT//4ud0OT//0iLhfjk//+D6whED7+kAOBlQwCB+24BAAAPhzoBAAD/JN2YWEMADx8ASIneTIn/6M31///pwPv//w8fhAAAAAAAug8AAAC+AQAAAL9TQEMASIsNakELAOgV5P//iwVDTQsA6Uz3//9mLg8fhAAAAAAAuhUAAAC+AQAAAL+lQEMASIsNOkELAOjl4///RTHJ6Uj6//8PH0QAAL9ZQUMA6M71//9Ii53o5P//xwX1TAsA/v///+lR+f//SIs9AUELALnJQEMAunOiRAAxwL4BAAAARImN4OT//+ik4///uhhAQwC5EkBDAEhjheDk//9Miz3MQAsAvgEAAAA9nAAAAEyLBMUAnUMASA9NykyJ/7oeQEMAMcDoZ+P//0yJ/r8pAAAA6Jrb//9IizWTQAsAvwoAAADoidv//4sFZ0wLAOnu+///TIu96OT//0yJ60Ux5Olw+v//Dx9AAESLBUVMCwBFhcAPhOD6//9Iiz1RQAsAuURBQwAxwLpzokQAvgEAAADo++L//0ljxEGB/JsAAAC5GEBDAEyLBMUAnUMAuBJAQwBMiz0YQAsASA9OyLoeQEMAvgEAAABMif8xwEyJ8+i94v//TIn+vykAAADo8Nr//0iLNek/CwC/CgAAAOjf2v//SA++heDk//9IicJIAcBJKcWLBaxLCwBIweIFSCnThcAPhF76//9Ii73o5P//TInu6Orz//+LBYhLCwDpRPr//+gqRQAAZi4PH4QAAAAAAIsFbksLAIXAD4QK+v//SIs9ez8LALlEQUMAunOiRAAxwL4BAAAA6CXi//9JY8S5GEBDAEyLPVY/CwBMiwTFAJ1DAOk1////6HREAADrsscFMEALAAQAAADrpkjHhQDl//8AAAAA65kPtgWiSwsAicKDyIDA6geIBZRLCwAPttJIiZUA5f//6XX///9Ix4UA5f//AAAAAOll////6IBEAADoG0QAAOlW////xwXUPwsAAAAAAOlH////6GJEAACDLes+CwAB6Tb////HhQDl//8AAAAA6Sf////oQkQAAOi9QgAA6Rj///9Ji4Yg////SImFAOX//+kF////SMeFAOX//wAAAADp9f7//8cFcz8LAAMAAADp5v7//+gBRAAA6HxHAQCDLYU+CwAB6dD+//9Jiz7oeKIBAOnD/v//SYs+6FuiAQDptv7//0mLPuhOogEA6an+//8x/+hCogEA6Z3+//9Ji37g6KQIAQDpj/7//0mLNkiLPQU/CwC6AQAAAOir5wAA6Xb+//9JizZIiz3sPgsAMdLolecAAOlg/v//SYt+wEmLNuikRgEA6U/+//9Ji37gSYs26JNGAQDpPv7//0mLfsBJizbogkYBAOkt/v//SYs+6LVKAQDpIP7//0mLfuBJizboBEsBAOkP/v//SYtGwEiJhQDl///p//3//+haQgAAix2kPQsAg/sTD46YGAAAg8MBiR2SPQsA6d39//9Ji0bgSImFAOX//+nN/f//SYtGEPNBD28GSImFEOX//0mLRsAPEYUA5f//SImFCOX//+mm/f//TYt+wL8TQUMAuQgAAABJi0YQ80EPbz5Mif5IiYUQ5f//86YPEb0A5f//D5fAHACEwA+F1BgAAEmDfuAAD4T9GAAAvxtBQwC5BgAAAEyJ/vOmD5fAHACEwA+FYxgAAEmLRuC/R0ZDALkGAAAATIn+86YPl8KA2gCE0g+FZxgAAEiJhRDl///pG/3//0jHhRDl//8AAAAAZg/vwA8RhQDl///pAP3//0mLBoN4EANIiYUA5f//D4Xs/P//gTgDAQAAD4Xg/P//SItYGEUx/0qLNP0gZEMASInf6AnZ//+FwA+EaRgAAEmDxwFJg/8Idd6+ukFDAEiJ3+jq2P//hcAPhJEYAAC+BkFDAEiJ3+jV2P//hcAPhUkYAAC/UeV0ZOgjkwEASImFAOX//+l3/P//Dx+AAAAAAEGLTsRBi1bASYt2oEmLvmD///9Ni07QTYtGyOhQEAEA6Uv8//9Jiz4x9ugh4AAA6Tz8//9Jiz4x9ugS4AAA6S38//9Ji0bgSImFAOX//+kd/P//SYt24EiLPTpICwDoPUABAOkI/P//SYs+MfbozgMBAOn5+///SYs+6PFHAQDp7Pv//0mLPujkRwEA6d/7///oej8AAEmLPugCygEA6c37//9Biz7oFUkBAOnA+///SYs+6EhEAQDps/v//0mLfsBBixYx9ujFRwEA6aD7///ou0AAAEmLduBJiz7ofxIBAOmK+///6CU/AABJiz7onREBAOl4+///vxgAAADobtX//0mLFkiJhQDl//9IiVAISYtWwMdAEAAAAABIiRDpTfv//0jHhQDl//8AAAAA6T37//9Ix4UA5f///EBDAOkt+///SYsGSImFAOX//+ke+///SMeFAOX//wEAAADpDvv//0jHhQDl//8AAAAA6f76///HhQDl//+AAQAA6e/6//9Bi0aATYuOQP///02LRqBJi45g////SYu2IP///0mLvuD+//9QQYtG4IsVSDsLAFDoavYAAEFZQVrpsfr//0mLRqBIiYUA5f//6aH6///ovD8AAEmLTsBJi1bgSYt2oEmLPuj4BAEA6YP6///oHj4AAEmLPuimyAEA6XH6///ojD8AAEmLNjHSv1IsSwDofZUBAEiJx+jlAwEA6VD6///oaz8AAEmLTqBJi76g/v//TYtOwE2LRuBJixZBi7aA/v//6MkSAQDpJPr//0mLdsBJi75g////6NQPAQDpD/r//0mLPuh3QgEA6QL6//9Ji37ASYs26OZGAQDp8fn//0mLfsBJizbo1UYBAOng+f//SMcFdUgLAO1AQwDp0Pn//02LPjH/ugUAAAC+gExDAOjs0f//SInHTIn+McDon7QBAOmq+f//SYt+wEmLNujORgEA6Zn5//9Ji37ASYs26J1GAQDpiPn//0mLfsBJizbojEYBAOl3+f//SYtG4EiJhQDl///pZ/n//0jHhQDl//8AAAAA6Vf5//9JiwZIiYUA5f//6Uj5//9Ji3bgv2cBAADoGpMBAEiJhQDl///pLvn//0mLduC/UAEAAOjgkwEASImFAOX//+kU+f//SYt24L9OAQAA6MaTAQBIiYUA5f//6fr4//9Ji3bgSYt+oOgdlQEASImFAOX//+nh+P//SYtW4EmLdqC/RgEAAOjvkAEASImFAOX//+nD+P//SYtW4EmLdqC/RQEAAOjRkAEASImFAOX//+ml+P//SYs2vwMBAADoWJMBAEiJhQDl///pjPj//0mLduC/FwEAAOhekgEASImFAOX//+ly+P//SYt2oL8DAQAA6CSTAQBJi3bgvzEBAABIicLoc5ABAEiJhQDl///pR/j//0mLduC/JgEAAOgZkgEASImFAOX//+kt+P//SYtWoEmLduC/JQEAAOg7kAEASImFAOX//+kP+P//SYtW4EmLdqC/JAEAAOgdkAEASImFAOX//+nx9///SYtW4EmLdqC/FwEAAOj/jwEASImFAOX//+nT9///SYt24L8XAQAA6KWRAQBIiYUA5f//6bn3//9Ji3bgv2ABAADoi5EBAEiJhQDl///pn/f//0mLduC/ggEAAOhRkgEASImFAOX//+mF9///SYt24L9EAQAA6DeSAQBIiYUA5f//6Wv3//9Ji3bgv0MBAADoHZIBAEiJhQDl///pUff//0mLduC/QQEAAOgDkgEASImFAOX//+k39///SYt24L9CAQAA6OmRAQBIiYUA5f//6R33//8x9r8rAQAA6NGRAQBIiYUA5f//6QX3//9Ji3YISYs+6PmNAQBIiYUA5f//6e32//9Ji3bgvzsBAADon5EBAEiJhQDl///p0/b//0mLdsBJixa/DQEAAOjijgEASImFAOX//+m29v//SYt2wEmLFr8OAQAA6MWOAQBIiYUA5f//6Zn2//9Ji1bASYt2gL8/AAAASYsO6ISPAQBIiYUA5f//6Xj2//9Ji3bASYsWv3wAAADoh44BAEiJhQDl///pW/b//0mLdsBJixa/XgAAAOhqjgEASImFAOX//+k+9v//SYt2wEmLFr8mAAAA6E2OAQBIiYUA5f//6SH2//9Ji3bASYsWvz4AAADoMI4BAEiJhQDl///pBPb//0mLdsBJixa/PAAAAOgTjgEASImFAOX//+nn9f//SYt2wEmLFr8SAQAA6PaNAQBIiYUA5f//6cr1//9Ji3bASYsWvxEBAADo2Y0BAEiJhQDl///prfX//0mLdsBJixa/EAEAAOi8jQEASImFAOX//+mQ9f//SYt2wEmLFr8PAQAA6J+NAQBIiYUA5f//6XP1//9Ji3bASYsWvxQBAADogo0BAEiJhQDl///pVvX//0mLdsBJixa/EwEAAOhljQEASImFAOX//+k59f//SYt2wEmLFr8tAAAA6EiNAQBIiYUA5f//6Rz1//9Ji3bASYsWvysAAADoK40BAEiJhQDl///p//T//0mLdsBJixa/JQAAAOgOjQEASImFAOX//+ni9P//SYt2wEmLFr8vAAAA6PGMAQBIiYUA5f//6cX0//9Ji3bASYsWvyoAAADo1IwBAEiJhQDl///pqPT//0mLNr9+AAAA6HuOAQBIiYUA5f//6Y/0//9JiwZIiYUA5f//6YD0//9Jiza/IQAAAOhTjgEASImFAOX//+ln9P//SYt24EGLfqDoOo4BAEiJhQDl///pTvT//0mLRuBIiYUA5f//6T70//9Jiza/LQAAAOgRjgEASImFAOX//+kl9P//6EA5AABJiwZIiYUA5f//6RH0//+/EAAAAOgHzv//SYtWwEiJhQDl//9IiVAISYsWSIkQ6e3z//+/EAAAAOjjzf//SYtW4EiJhQDl//9IiVAISYsWSIkQ6cnz//9Ix4UA5f//AAAAAOm58///Mf/oEv4AAOmt8///vwEAAADoA/4AAOme8///SYt+4EmLNuiyNgEASImFAOX//+mG8///SYs2Mf/onDYBAEiJhQDl///pcPP//0mLVuBJi3agSYu+YP///+gMEAEA6Vfz//9Ji3bASYt+gDHS6PgPAQDpQ/P//0mLdsAx0jH/6OYPAQDpMfP//+hcNwAA6Sfz///ogjcAAIsdzDILAIP7Ew+OnA0AAIPDAYkdujILAOkF8///SYsWSIsFezMLAEiJUDDp8vL//8cFYDMLAAAAAADp4/L//8cFUTMLAAEAAADp1PL//0mLRoBJi3bgSY1+oIsVOjMLAEmJRrjomfYAAOm08v//SYt24IsVIjMLAEmNfqDogfYAAOmc8v//SYtGoEmLduBIjb0g5f//SMeFIOX//wAAAADHhTDl//8AAAAAixXqMgsASMeFKOX//wAAAABIiYU45f//6Dv2AADpVvL//0mLduCLFcQyCwAx/+gl9gAA6UDy//9JiwaLFa8yCwAx9kiNvSDl//9Ix4Uo5f//AAAAAEiJhSDl//9Ji0bgx4Uw5f//AAAAAEiJhTjl///o4vUAAOn98f//SYsGixVsMgsAMfZIjb0g5f//SMeFKOX//wAAAABIiYUg5f//x4Uw5f//AAAAAEjHhTjl//8AAAAA6J/1AADpuvH//78oAAAA6LDL///zQQ9vPvNBD29GEEjHAAAAAABIiYUA5f//DxF4CA8RQBjpivH//78oAAAA6IDL//9Ji1bA80EPbz7zQQ9vRhBIiYUA5f//SIkQDxF4CA8RQBjpWvH//78QAAAA6FDL//9JixZIiYUA5f//SIkQSMdACAAAAADpNvH//78QAAAA6CzL//9JixZIiYUA5f//SIkQSYtW4EiJUAjpEvH//78YAAAA6AjL//9Ji1bgSImFAOX//0iJUAjHQBAAAAAASMcAAAAAAOnm8P//vyAAAADo3Mr//0mLFoA6IQ+ExQsAAMcAAAAAAEiJUAhJi1bAx0AQAAAAAEiJhQDl//9IiVAY6avw//+/IAAAAOihyv//SYsWgDohD4SdCwAAxwAAAAAASIlQCMdAEAAAAABIx0AYAAAAAEiJhQDl///pcPD///NBD29+4PNBD29G8A8RvQDl//8PEYUQ5f//x4UQ5f//BgAAAOlH8P//SIsVsDALADHJvjdBQwAx/+jCCgEASImFAOX//+km8P//SYt+wEiLFYswCwAxyb4wQUMA6J8KAQBIiYUA5f//6QPw//9IixVsMAsAMcm+MEFDADH/6H4KAQBIiYUA5f//6eLv//9Ji0bASImFAOX//0mLRqBIiQU8MAsA6cfv//9IiwUwMAsASImFAOX//0mLRuBIiQUeMAsA6anv//9Ji1bASInQSInBSIsASIXAdfVJi4YA////SIkBSYtGoEiJlQDl//9IiQXrLwsA6Xbv//9IiwXfLwsASImFAOX//0mLRuBIiQXNLwsA6Vjv//9Ji37ASYs2uQEAAABIixW1LwsA6NAJAQBIiYUA5f//6TTv//9Ji37ASIsVmS8LADHJSYs26K8JAQBIiYUA5f//6RPv//9IixV8LwsASYs2uQEAAAAx/+iNCQEASImFAOX//+nx7v//SIsVWi8LAEmLNjHJMf/obgkBAEiJhQDl///p0u7//0mLduBJi75g////6DILAQBIiYUA5f//6bbu//9Ji3bgMf/oGwsBAEiJhQDl///pn+7//0mLfuAx9ugECwEASImFAOX//+mI7v//SYt+4DH26O0KAQBIiYUA5f//6XHu//8x9jH/6NgKAQBIiYUA5f//6Vzu//9Ji37g6JMDAQDpTu7//+jpMQAASYs+6HG8AQDpPO7//0mLfuDog/YAAOku7v//6PkBAQDpJO7//+hvAQEA6Rru//+ADco6CwAI6Q7u///HBQQ8CwABAAAA6f/t///HBcU7CwABAAAA6fDt//9Ji37gMfbotbwBAOng7f//SYtW4EmLdqC5AQAAAEmLvmD////oZwABAOnC7f//SYt+4LkBAAAAMdIx9uhQAAEA6avt//9Ji37gvgEAAADoLekAAOmY7f//SYt+4DH26H2sAQDpiO3//0mLfuDoj/UAAOl67f//6GUyAADpcO3//0mLPjH26EbRAADpYe3//0iLFcotCwAxyb49QUMAMf/o3AcBAEiJhQDl///pQO3//0mLfsBIixWlLQsAMcm+N0FDAOi5BwEASImFAOX//+kd7f//6BgxAACLHcIsCwCD+xMPjtoHAACDwwGJHbAsCwDp++z//+gWMgAASYt+wEmLNuhqiAEASInH6HL2AADp3ez//+hoMQAA6dPs//9Ji37ASIsVOC0LADHJvj1BQwDoTAcBAEiJhQDl///psOz//0mLfsBJizYx0ujCOAEA6Z3s//9Jiz7oFTkBAOmQ7P//SYt+wEmLNui0OQEA6X/s//9Jiz7o5zQBAOly7P//SYs+6Eo4AQDpZez//0mLPug9OAEA6Vjs///HhQDl//9+AQAA6Uns///HhQDl//99AQAA6Trs///HhQDl//98AQAA6Svs//9Ji0bgSImFAOX//+kb7P//80EPb37A80EPb0bQDxG9AOX//w8RhRDl///HhRDl//8CAAAA6fLr///zQQ9vfsDzQQ9vRtAPEb0A5f//DxGFEOX//8eFEOX//wQAAADpyev///NBD29+wPNBD29G0A8RvQDl//8PEYUQ5f//x4UQ5f//AQAAAOmg6///80EPb37A80EPb0bQDxG9AOX//w8RhRDl///HhRDl//8DAAAA6Xfr///zQQ9vfuDzQQ9vRvAPEb0A5f//DxGFEOX//8eFEOX//wUAAADpTuv///NBD29+4PNBD29G8A8RvQDl//8PEYUQ5f//x4UQ5f//AgAAAOkl6///80EPb37g80EPb0bwDxG9AOX//w8RhRDl///HhRDl//8BAAAA6fzq///zQQ9vfuDzQQ9vRvAPEb0A5f//DxGFEOX//8eFEOX//wUAAADp0+r///NBD29+4PNBD29G8A8RvQDl//8PEYUQ5f//x4UQ5f//AQAAAOmq6v//x4UQ5f//AAAAAEmLBkjHhRjl//8AAAAASImFAOX//0mLRsBIiYUI5f//6Xvq///HhRDl//8AAAAASYsGSMeFCOX//wAAAABIiYUA5f//SMeFGOX//wAAAADpTOr//0jHhQDl///vQEMA6Tzq//9Ix4UA5f//pKNEAOks6v//SYsGSImFAOX//+kd6v//6DgvAABJi36gSYt24Og7hgEASInH6JPzAADp/un//0mLfuAx9ujD8QAA6e7p///HhQDl//8rAAAA6d/p//9Ix4UA5f//AAAAAOnP6f//SYsGSImFAOX//+nA6f//SYs+uvFAQwAx9uihigEASImFAOX//+ml6f//SWMGSImFAOX//+mW6f//SWMGSImFAOX//+mH6f//SWMGSImFAOX//+l46f//SWMGSImFAOX//+lp6f//SWMGSImFAOX//+la6f//6PUsAABJiz7ofbcBAOlI6f//6GMuAABJi36ASYt2wOhmhQEASInH6L7yAADpKen//0mLfuDokPEAAOkb6f//SYt24EGLfqDovvEAAOkJ6f//xwVvNQsAAQAAAL8OAAAA6MXyAADp8Oj//78OAAAA6LbyAADp4ej//78PAAAA6KfyAADp0uj//0mLRuBIiYUA5f//6cLo//8PtgXLNAsAQQ+2VsCD4H/B4gcJ0IgFuDQLAOmj6P//D7YFrDQLAEEPtlbAg+B/weIHCdCIBZk0CwDphOj//w+2BY00CwBBD7ZWwIPgf8HiBwnQiAV6NAsA6WXo//9Jiz4x0jH26OmaAADpVOj//0mLPjHSMfbo2JoAAOlD6P//SYs+MdIx9ujHmgAA6TLo//9Jiz4x0r4EAAAA6LOaAADpHuj//0mLPjHSvgQAAADon5oAAOkK6P//SYs+MdK+BAAAAOiLmgAA6fbn///owSsAAOns5///SYt+4OiTLQEA6d7n//9Ji3bgSYt+oOhxrQAA6czn//9Jiz6+AQAAAOiv+gAA6brn//9Jiz4x9uig+gAA6avn//9Ji37g6CL9AADpnef//0mLfsBJizYx0uivggEASInH6BfxAADpguf//8eFAOX//3wAAADpc+f//8eFAOX//yYAAADpZOf//8eFAOX//xQBAADpVef//8eFAOX//xMBAADpRuf//8eFAOX//y8AAADpN+f//8eFAOX//yoAAADpKOf//8eFAOX//y0AAADpGef//0mLfqBJi3bgugEAAADo14IBAEiJx+iP8AAA6frm//9Ji36gSYt24DHS6LuCAQBIicfoc/AAAOne5v//SYt+oEmLduC6AQAAAOjsgQEASInH6FTwAADpv+b//0mLdsBNiz6/AwEAAOhugQEAQYt+4EyJ+kiJxui/fgEASYt+wDHSSInG6LGBAQBIicfoGfAAAOmE5v//6B8qAABJiz7op7QBAOly5v//SYs+vgEAAADo1ZkAAEiJBd4mCwDpWeb//0mLFkiLBc8mCwBIiVAY6Ubm//9Iiz3PJQsAuclAQwC6c6JEADHAvgEAAADoecj//0hjw7kSQEMATIs1qiULAEgPv5QA4GhDALgYQEMAvgEAAABMifeB+pwAAABMiwTVAJ1DALoeQEMASA9NyDHA6DbI//9Mifa/KQAAAE2J5uhmwP//SIs1XyULAL8KAAAA6FXA//+Jnfjk//+LBS0xCwDHhdTk//8DAAAA6T3g//+/ekFDAEyJ60G8AgAAAOhn2v//TIu96OT//+kf3///SYnYQbwBAAAATInrTYnH6Qvf//+6BQAAAL4hQUMAMf/olr3//0mJwEhjw0yJBMWgu0sA6UDy//+6BQAAAL7tS0QAMf/ocr3//0mJwEhjw0yJBMWgu0sA6UTn//+6BQAAAL7cQEMAMf/oTr3//0mJwEhjw0yJBMWgu0sA6QL4//9Ig8IBxwABAAAASIlQCOky9P//SIPCAccAAQAAAEiJUAjpWvT//79HRkMAuQYAAABMif7zpg+XwBwAhMB1DUmLRuBIhcAPhZnn//8x/7oFAAAAvvBMQwDo37z//0yJ+jH2SInHMcDo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FwsASI0c0OiY9///SIkD6cf9//+LBX4XCwCNWP+JHXUXCwCF2w+FYBMAAMcFGyILAAAAAABFMeTrmIMFDyILAAHp3P3//8cF1CELAGkBAABBvGkBAADpd////8cFvyELAFkBAABBvFkBAADpYv///8cFqiELAFgBAABBvFgBAADpTf///8cFlSELAIABAABBvIABAADpOP///8cFgCELAFcBAABBvFcBAADpI////8cFayELACABAABBvCABAADpDv///8cFViELADIBAABBvDIBAADp+f7//8cFQSELAH8BAABBvH8BAADp5P7//8cFLCELAFABAABBvFABAADpz/7//8cFFyELAE4BAABBvE4BAADpuv7//8cFAiELAH4BAABBvH4BAADppf7//8cF7SALAH0BAABBvH0BAADpkP7//8cF2CALAHwBAABBvHwBAADpe/7//8cFwyALADkBAABBvDkBAADpZv7//8cFriALADgBAABBvDgBAADpUf7//8cFmSALADcBAABBvDcBAADpPP7//8cFhCALADYBAABBvDYBAADpJ/7//8cFbyALACkBAABBvCkBAADpEv7//8cFWiALACoBAABBvCoBAADp/f3//8cFRSALACgBAABBvCgBAADp6P3//8cFMCALACcBAABBvCcBAADp0/3//8cFGyALADoBAABBvDoBAADpvv3//8cFBiALAE0BAABBvE0BAADpqf3//8cF8R8LAEwBAABBvEwBAADplP3//8cF3B8LAEsBAABBvEsBAADpf/3//8cFxx8LAB4BAABBvB4BAADpav3//8cFsh8LAB0BAABBvB0BAADpVf3//8cFnR8LABwBAABBvBwBAADpQP3//8cFiB8LABsBAABBvBsBAADpK/3//8cFcx8LABoBAABBvBoBAADpFv3//8cFXh8LAEoBAABBvEoBAADpAf3//8cFSR8LAEkBAABBvEkBAADp7Pz//8cFNB8LAEgBAABBvEgBAADp1/z//8cFHx8LAC4BAABBvC4BAADpwvz//8cFCh8LACwBAABBvCwBAADprfz//8cF9R4LAEcBAABBvEcBAADpmPz//8cF4B4LAE8BAABBvE8BAADpg/z//8cFyx4LACMBAABBvCMBAADpbvz//8cFth4LACIBAABBvCIBAADpWfz//8cFoR4LACEBAABBvCEBAADpRPz//8cFjB4LAB8BAABBvB8BAADpL/z//8cFdx4LAC8BAABBvC8BAADpGvz//8cFYh4LADABAABBvDABAADpBfz//8cFTR4LAC0BAABBvC0BAADp8Pv//8cFOB4LAFUBAABBvFUBAADp2/v//8cFIx4LAFEBAABBvFEBAADpxvv//8cFDh4LADsBAABBvDsBAADpsfv//8cF+R0LAFwBAABBvFwBAADpnPv//8cF5B0LAFMBAABBvFMBAADph/v//8cFzx0LAFIBAABBvFIBAADpcvv//8cFuh0LAFQBAABBvFQBAADpXfv//8cFpR0LAD0BAABBvD0BAADpSPv//8cFkB0LADwBAABBvDwBAADpM/v//8cFex0LAEEBAABBvEEBAADpHvv//8cFZh0LAD4BAABBvD4BAADpCfv//8cFUR0LADEBAABBvDEBAADp9Pr//8cFPB0LACsBAABBvCsBAADp3/r//8cFJx0LAEABAABBvEABAADpyvr//8cFEh0LAHMBAABBvHMBAADptfr//8cF/RwLAD8BAABBvD8BAADpoPr//8cF6BwLAGYBAABBvGYBAADpi/r//8cF0xwLAGcBAABBvGcBAADpdvr//8cFvhwLAEYBAABBvEYBAADpYfr//8cFqRwLAEUBAABBvEUBAADpTPr//8cFlBwLAGQBAABBvGQBAADpN/r//0hjNbIcCwBIiw2LEQsAugEAAABIiz2PHAsA6Bqz///pY/j//0iLNX4cCwC/Bq1DAOjk7f//6U34//9IizVoHAsAv/usQwDozu3//+k3+P//gy2iEQsAAXkKxwXiEgsAEQAAAEiLBT8cCwBED74g6cT5//9IiwUvHAsAgwV4EQsAAUQPviDprfn//0iLBRgcCwBED74g6Z35//9IiwUIHAsAxwWaEgsAEwAAAMcFRBELAAAAAABED74g6Xn5//9IiwXkGwsAxwV2EgsAEQAAAEQPviDpX/n//0iLPcobCwBBvHUBAADoT6r//0iJBZgbCwDpQfn//0iLPawbCwBBvHYBAADoMar//0iJBXobCwDpI/n//8cFaxsLAHgBAABBvHgBAADpDvn//8cFVhsLAHcBAABBvHcBAADp+fj//0iLBWQbCwBED74g6en4//9IiwVUGwsAQbwDAQAASI14AejVqf//SInHSInDSIkFGBsLAOjjp///SGMNPBsLAEiJykiD6QKD6gJIOcFIY9JID0LCxgQDAOmd+P//SIs9CBsLAIA/Lw+FLwwAAIB/ASoPhSUMAAAPtgWiEQsAQYhFAEmNRgJMiTXfGgsAiR3pGgsASIkFehELAEEPtkYCQcZGAgCIBXYRCwDoXfX//+mW9v//D7YFZRELAEiLFXIRCwBNie9MKz2gGgsAQYhFAEiLBU0RCwBBg+8BSIsU0ItCOIXAD4SSCwAASGMFKxELAEgDQghIOQUYEQsAD4bgCgAA6PXw//+D+AEPhK4KAACD+AIPhG0KAACFwA+FKfb//01j70wDLUEaCwBMiS3iEAsA6JXq//9MizUuGgsAQYnBQQ+2TQDpG/b//w+2Bc4QCwBIYxWrEAsAQYhFAEyLLZgQCwDpxfb//0iLBfwZCwBBvAQBAABIjXgC6H2o//9IiQXGGQsA6W/3//9Iiz3aGQsAQbwDAQAA6F+o//9IiQWoGQsA6VH3//9Iiz28GQsAQbwDAQAA6EGo//9IiQWKGQsA6TP3//9IiwWeGQsAQbwEAQAASI14AugfqP//SIkFaBkLAOkR9///SIs9fBkLAEG8AwEAAOgBqP//SIkFShkLAOnz9v//SIs9XhkLAEG8AwEAAOjjp///SIkFLBkLAOnV9v//SIs9QBkLAEG8AwEAAOjFp///SIkFDhkLAOm39v//xwX/GAsAYAEAAEG8YAEAAOmi9v//xwXqGAsAXwEAAEG8XwEAAOmN9v//xwXVGAsAXgEAAEG8XgEAAOl49v//xwXAGAsAdAEAAEG8dAEAAOlj9v//xwWrGAsAcwEAAEG8cwEAAOlO9v//xwWWGAsAcgEAAEG8cgEAAOk59v//xwWBGAsAaAEAAEG8aAEAAOkk9v//xwVsGAsAZQEAAEG8ZQEAAOkP9v//xwVXGAsAZAEAAEG8ZAEAAOn69f//xwVCGAsAVgEAAEG8VgEAAOnl9f//xwUtGAsAYQEAAEG8YQEAAOnQ9f//xwUYGAsAbQEAAEG8bQEAAOm79f//xwUDGAsAbAEAAEG8bAEAAOmm9f//xwXuFwsAawEAAEG8awEAAOmR9f//xwXZFwsAXQEAAEG8XQEAAOl89f//xwXEFwsAFwEAAEG8FwEAAOln9f//xwWvFwsAVgEAAEG8VgEAAOlS9f//xwWaFwsAYwEAAEG8YwEAAOk99f//xwWFFwsAYAEAAEG8YAEAAOko9f//xwVwFwsAXwEAAEG8XwEAAOkT9f//xwVbFwsAXgEAAEG8XgEAAOn+9P//xwVGFwsAdAEAAEG8dAEAAOnp9P//xwUxFwsAcgEAAEG8cgEAAOnU9P//xwUcFwsAaAEAAEG8aAEAAOm/9P//xwUHFwsAZQEAAEG8ZQEAAOmq9P//xwXyFgsAWgEAAEG8WgEAAOmV9P//xwXdFgsAaQEAAEG8aQEAAOmA9P//xwXIFgsAYQEAAEG8YQEAAOlr9P//xwWzFgsAbQEAAEG8bQEAAOlW9P//xwWeFgsAbAEAAEG8bAEAAOlB9P//xwWJFgsAawEAAEG8awEAAOks9P//xwV0FgsAXQEAAEG8XQEAAOkX9P//xwVfFgsAFwEAAEG8FwEAAOkC9P//gwV5FgsAAUG8YgEAAMcFPRYLAGIBAADp5vP//8cFLhYLAIEBAABBvIEBAADp0fP//8cFGRYLAHsBAABBvHsBAADpvPP//8cFBBYLAFsBAABBvFsBAADpp/P//8cF7xULAIIBAABBvIIBAADpkvP//8cF2hULAGMBAABBvGMBAADpffP//8cFxRULAEIBAABBvEIBAADpaPP//8cFsBULAEQBAABBvEQBAADpU/P//8cFmxULAEMBAABBvEMBAADpPvP//8cFhhULACYBAABBvCYBAADpKfP//8cFcRULACUBAABBvCUBAADpFPP//8cFXBULACQBAABBvCQBAADp//L//8cFRxULABcBAABBvBcBAADp6vL//8cFMhULAFABAABBvFABAADp1fL//8cFHRULABkBAABBvBkBAADpwPL//8cFCBULABgBAABBvBgBAADpq/L//8cF8xQLAHkBAABBvHkBAADplvL//8cF3hQLAE4BAABBvE4BAADpgfL//8cFyRQLADUBAABBvDUBAADpbPL//8cFtBQLADQBAABBvDQBAADpV/L//8cFnxQLADMBAABBvDMBAADpQvL//8cFihQLADsAAABBvDsAAADpLfL//8cFdRQLADoAAABBvDoAAADpGPL//8cFYBQLACgAAABBvCgAAADpA/L//8cFSxQLACkAAABBvCkAAADp7vH//8cFNhQLAHsAAABBvHsAAADp2fH//8cFIRQLAH0AAABBvH0AAADpxPH//8cFDBQLAD0AAABBvD0AAADpr/H//8cF9xMLADwAAABBvDwAAADpmvH//8cF4hMLACUAAABBvCUAAADphfH//8cFzRMLAC8AAABBvC8AAADpcPH//8cFuBMLAC0AAABBvC0AAADpW/H//8cFoxMLACsAAABBvCsAAADpRvH//8cFjhMLACoAAABBvCoAAADpMfH//8cFeRMLAD8AAABBvD8AAADpHPH//8cFZBMLACEAAABBvCEAAADpB/H//8cFTxMLAH4AAABBvH4AAADp8vD//8cFOhMLAHwAAABBvHwAAADp3fD//8cFJRMLACYAAABBvCYAAADpyPD//8cFEBMLACwAAABBvCwAAADps/D//8cF+xILAD4AAABBvD4AAADpnvD//8cF5hILAA4BAABBvA4BAADpifD//8cF0RILAAwBAABBvAwBAADpdPD//8cFvBILAAsBAABBvAsBAADpX/D//8cFpxILAAgBAABBvAgBAADpSvD//8cFkhILAAcBAABBvAcBAADpNfD//8cFfRILAAYBAABBvAYBAADpIPD//8cFaBILAAUBAABBvAUBAADpC/D//8cFUxILABQBAABBvBQBAADp9u///8cFPhILABMBAABBvBMBAADp4e///8cFKRILABEBAABBvBEBAADpzO///8cFFBILABIBAABBvBIBAADpt+///8cF/xELABABAABBvBABAADpou///8cF6hELAA8BAABBvA8BAADpje///8cF1RELAA0BAABBvA0BAADpeO///8cFwBELAAoBAABBvAoBAADpY+///8cFqxELAAkBAABBvAkBAADpTu///8cFlhELAFsAAABBvFsAAADpOe///8cFgRELAD0AAABBvD0AAADpJO///0iLPY8RCwBBvAMBAADoFKD//0iJBV0RCwDpBu///8cFThELACsAAABBvCsAAADp8e7//8cFORELAC0AAABBvC0AAADp3O7//8cFJBELAF0AAABBvF0AAADpx+7//0iLPTIRCwAx0oA/JHUJSIPHAboQAAAAMfboe5r//0iLFRQRCwBIYw0dEQsASMcF6hALAAAAAABIiQXbEAsAD7ZMCv+D4d+A+U0PhO4AAACA+UsPhM8AAACAOjBBvAIBAAAPhWDu//8PtkIBg+DfPFgPhVHu//9IjXoC6Eqf//9IiQWbEAsA6Tzu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2IA4AA+FmgAAAEyLJRsKCwBJjV0BTYXkdRPrMA8fhAAAAAAATYskJE2F5HQfSYt8JAhIid7oepb//4XAdeZNiXQkEOs1Dx+AAAAAAL8gAAAA6D5mAABJicRIiVgITIlwEMdAGAAAAABIiwW9CQsASYkEJEyJJbIJCwBMiffoklABAEyJ4kyJ70iJxuhUwQAASIPEEFtBXEFdQV5dww8fgAAAAAAx/7oFAAAAvjARRADo75H//0yJ5kiJxzHA6KJ0AQDpQ////2ZmLg8fhAAAAAAAZpBVSInlQVdBVkFVQVRBify/NgIAAFNIifNIgewIAQAASMeFMP///wAAAADocZP//7+gFwAASImFGP///+hgk///v6AXAABIiYUg////6E+T//9FMcm5YQAAAEUxwEiJhSj///9Ii4UY////QbvAhUQARTHSvwEAAADGAC24wFZEAEiLtRj////rOg8fgAAAAABMi40g////Zg9vAEGDwgFBDxEECWYPb0gQQQ8RTAkQSIPBIEiDwEBJOcN0ew+2SCBMiwhIY9dIAfKEyXQliAqLcAiNTwFIY9FEjW7/QYP9AQ+G+gAAAEiLtRj///+Jz0gB8k1j6EljyknB5QVIweEFTYXJdK6DeDgDdYVmD28QTIuNKP///0iDwEBBg8ABQw8RFClmD29Y0EMPEVwpEEmDxSBJOcN1hcYCAEiLhSD///9EidJMjY0o////SI21GP///0jHBAgAAAAASIuFKP///0iNjSD///9KxwQoAAAAAOgLXQEAQYP8AQ+GmwAAAEiLSwhMjWsIvgEAAAAPH0AAD7YBg+gtdQ0PtkEBg+hHdQQPtkECjVYBhcB1IEE51HYTidBIiwzDD7YB9oQAgKJLAAR1F0jHBPNAPUQAQTnUD4bmAQAAidBIiwzDidbrsZBIi40Y////xgQROo1PAkhj0YP+Ag+F7P7//0iLjRj///+DxwPGBBE6SIu1GP///0hj10gB8unY/v//x4UM////AAAAAEG9/////8eF6P7//wAAAABIx4X4/v//AAAAAMeFAP///wAAAAAPH4AAAAAARDkt4fEKAMeFOP///wAAAAB0FkiJ3kSJ5+hSXAEAhcB13kSLLb/xCgBIi40g////SIuVGP///0iJ3kSJ50yNhTj////HBYL2CgAAAAAA6E2S//9BicZBg/4/dEREi504////RYXbdQZBg/4gf2JEiffo2lsBAIXAdYZBg/7/D4RYAQAAQYH+GgEAAA+HnwAAAEL/JPXgTUQADx+AAAAAAEiLjSj///9MjYU4////SIneRInnuu1AQwBEiS0o8QoA6CuP//9BicbrpGYPH0QAAEljxUyLPMNBD75HAUQ58HQrSIM9B/EKAAC6BQAAAHRgvoARRAAx/+iEjv//TIn6TIn+SInHMcDoNHEBAESJ9+g8WwEAhcAPheT+//9Bgf4aAQAAD4Zo////Dx+AAAAAADH/ugUAAAC+CBJEAOg/jv//SInHMcDo9XABAOmw/v//Mf++wBFEAOgkjv//TIn+SInHMcDo13ABAOuhQY1EJP5MjXTDEOsWZg8fhAAAAAAASYPFCE057g+EPf7//0mLfQCAPy116oB/AWx15IB/AgB03ugJjv//SI14FOigj///uUk9RAC+AQAAAEjHwv////9JicdJi0UATIn/TI1AAjHA6KqZ//9NiX0A66RIi70o////6FiK//9Ii70g////6EyK//9Ii70Y////6ECK//9MiyXpAwsATYXkD4SVAAAASMeFOP///wAAAABBgDwkALoFAAAAvrAkRAAPhI4XAABBgDwkLQ+EMBcAAL4lAAAATInn6OiN//9IhcAPhCsXAACAeAEAxgAAQbmSP0QAdARMjUgBTIsFNeoKAEiLDX4DCwAxwLqFP0QAvgEAAABIjb04////6LaQ//+FwA+I+R8AAEiLhTj///9IhcB0B0iJBUsDCwBIiwW8AgsASIXAdAmAOAAPhDwXAACLjQD///+LnQD///+FyXQrZg8fRAAAMf+6BQAAAL6wJUQA6J+M//9IiccxwOhVbwEA6DDIAACD6wF120iLhfj+//9JicRIhcB1HutOZi4PH4QAAAAAAMYAAEGAPCQAD4VVAQAATI1gAb46AAAATInn6AGN//9IhcB13EGAPCQAdA2+AQAAAEyJ5+j4cgEASIu9+P7//+jsiP//D7cFpwALAGapgAF1DmYlf/6AzAFmiQWTAAsAD7YFjQALAKgGdQyD4PmDyASIBX0ACwAPtgVzAAsATIuFMP///4nCg+IDgPoCD4TxAAAATYXAD4RBAQAASYs4qAIPhSkWAABIizU7AQsASIX2D4QBFwAASIn4Dx+AAAAAAEiJwUiLAEiFwHX1SIsGSIkBSIk+g70M////AXUHgA0NAAsAEIANCwALAAKA+gN0SkiDPXgBCwAAdBsx/7oFAAAAvvAlRADoZYv//0iJxzHA6BtuAQBIgz1bAQsAAHQbMf+6BQAAAL4gJkQA6ECL//9IiccxwOj2bQEAiwWw/woAicKB4gOAAQCB+gKAAQAPhNQUAABIjWXYW0FcQV1BXkFfXcO+AQAAAEyJ50iJhQD////ouXEBAEiLhQD////pi/7//4A9ngALAAAPiJAVAABNhcAPhCoWAABJizhIix9Ihdt1D+skZi4PH4QAAAAAAEiJw+h4h///SIsDSInfSIXAde1Mi4Uw////TInH6F6H//8PthUX/woAg+IDi4UM////g/gBD4Ty/v//g/gCD4Tw/v//gPoDD4Xz/v//i4Xo/v//g/gBD4S9FgAAg/gCD4Ul////SLgAEAAAAAACAEgJBcr+CgDpD////4ANvv4KABDpufr//0Q5LZrsCgAPhJIaAAAPtgWl/goAqAF0MoPgA0G+QT1EAL54IkQAugUAAAA8A7g7PUQATA9F8DH/6PyJ//9IicdMifYxwOivbAEAD7YFaP4KAIAlwf0KAN/HBQMACwAAAAAAxwXt/woAAAAAAIPg/McFEAALAAAAAACDyAKIBTf+CgDpMvr//0iLBRvsCgCAOAB1FUiLFYf/CgBIhdJ0CYA6AA+FbhoAAEiJBXL/CgDpBfr//0iLBe7rCgCAJf79CgD7SIkFUP8KAOnr+f//gA3p/QoAIA+2Bd39CgCoAXQyg+ADQb5BPUQAvngiRAC6BQAAADwDuDs9RABMD0XwMf/oNIn//0iJx0yJ9jHA6OdrAQAPtgWg/QoAgCX5/AoA38cFO/8KAAEAAADHBSX/CgAAAAAAg+D8xwVI/woAAAAAAIPIAogFb/0KAOlq+f//SIs96/4KAEiF/w+EahQAADHARTH/SIM/AEiJ+kG+CAAAAL4QAAAAdCKQSIPCCInBg8ABSIM6AHXxjXEDSGP2SMHmA0yNfvBMjXb46KqJ//9IixUD6woASIkFlP4KAEqJFDhKxwQwAAAAAOn7+P//SIs95OoKAL4BAAAA6Aq4AADp5fj//8cF+/4KAAAAAADp1vj//8cF7P4KAAEAAADpx/j//8cFDf4KAAEAAADpuPj//0yLNaHqCgC+Tj9EAEyJ9+g0hf//hcAPhCYTAAC+VD9EAEyJ9+gfhf//hcAPhZcVAADHBTn+CgACAAAA6Xj4//9Iiz1h6goA6PyTAADpZ/j//8cFqf0KAAEAAADpWPj//4ANVvwKAIDpTPj//0iLPa37CgBIhf8PhOMTAADzD28nDxElkfsKAOhshP//6Sf4//+6EAAAAL4QAAAAv+DHSwDoY1oCAEiJBXT7CgDpB/j//8cFVf0KAAEAAADp+Pf//8cFQv0KAAAAAADp6ff//8cFM/0KAAEAAADp2vf//0iLNcPpCgC/gMhLAOhpFwEA6cT3///HBQL9CgABAAAA6bX3//9IiwWe6QoASIkFP/0KAOmi9///SIs9i+kKAOgGowEAhcAPhI73//8x/7oFAAAAvrA+RADo/Yb//0iJxzHA6LNpAQDpbvf//0iLPVfpCgDowqEBAOld9///gA1a+woAgEiDPWb9CgAAD4VI9///SMcFVf0KAP0DAADpOPf//4ANN/sKAEDpLPf//w+2BSn7CgCD4OeDyAiIBR37CgDpFPf//4AlEPsKAPfpCPf//4ANBPsKAAjp/Pb//0yLNeXoCgC/bT5EALkLAAAATIn286YPl8AcAITAD4QtEQAAv3g+RAC5CwAAAEyJ9vOmD5fAHACEwA+FBhQAAA+3Bbj6CgBmJX/4gMwFZokFqvoKAOmj9v//iz1F/AoAhf8PhM0RAAAPtgWO+goAg+ADPAIPhK8ZAAAPtgV8+goAg+D8g8gBiAVw+goA6Wv2///HBZ37CgAAAAAA6Vz2///HBY77CgABAAAA6U32//+AJUf6CgD36UH2//+ADTv6CgAI6TX2///HBfv7CgABAAAAxwXB+woAAQAAAOkc9v//xwXu+woAAQAAAOkN9v//gA0N+goACOkB9v//SIs96ucKADHSvgUAAADozl8AAOnp9f//vwEAAADo/1cBAEiLPcjnCgDHBa75CgABAAAAxwUE/AoAAQAAAMcFmuEKAP7///9Ihf8PhLH1//8x0kiNtUD////oQ47//0mJxkiLhUD///+AOAAPhccXAAAxwEGD/gEPn8CJBan8CgDpfPX//4ANevkKAAHpcPX//0iLNVnnCgC/Pz9EAOgP8v//6Vr1//9IizVD5woAvy8/RADo+fH//+lE9f//SIs1LecKAL8hP0QA6OPx///pLvX//0iLNRfnCgC/MixLAOjN8f//6Rj1//9IizUB5woAvyYsSwDot/H//+kC9f//SIs16+YKAL8bLEsA6KHx///p7PT//8eF6P7//wIAAADp3fT//8cFp/oKAAEAAADpzvT//0yLNbfmCgC/u0FEALkFAAAATIn286YPl8AcAITAD4TwDgAAv5ajRAC5CgAAAEyJ9vOmD5fAHACEwA+FdRcAAMcFyfoKAAIAAADpgPT//0yLNWnmCgBNhfYPhAgQAAC/DD9EALkLAAAATIn286YPl8AcAITAD4TsDwAAvxc/RAC5CgAAAEyJ9vOmD5fAHACEwA+FtRQAAMcF+vkKAAEAAADpKfT//0SLBcr5CgBFhcAPhHEPAAAPtgUS+AoAg+ADPAIPhMgWAAAPtwUC+AoAgA359woAA2apgAF1DWYlf/4MgGaJBej3CgAPtgXi9woAqAYPhdfz//+D4PmDyAKIBc73CgDpxvP//8cFgPkKAAEAAADpt/P//8cFZfkKAAEAAADpqPP//8cFXvkKAAEAAADpmfP//8cFV/kKAAAAAADpivP//8cFSPkKAAEAAADpe/P//8cFIfkKAAEAAADpbPP//8cFFvkKAAEAAADpXfP//0iLPUblCgBMizVH8AoA6Mp4AQBIjYUw////TIk1NPAKAMcFOvYKAAQAAABIiQWj9goA6Naf///pIfP//0iLPQrlCgDopYT//zH/Mckx0kiJxujnxAAASI29MP///0iJxuh47gAA6fPy///HhQz///8BAAAA6eTy///ov+4AAIu1DP///7gCAAAAg/4BD0TGiYUM////6cPy///oLu8AAIu1DP///7gCAAAAg/4BD0TGiYUM////6aLy//9MizWT7woASIs9hOQKAOgPeAEATIk1gO8KAMcFhvUKAAQAAABIxwXr9QoAeMlLAOgen///i7UM////uAIAAACD/gEPRMaJhQz////pUvL//0iLBTvkCgBIiQXU9woA6T/y//9MizUw7woASIs9IeQKAOisdwEATIk1He8KAMcFI/UKAAMAAADoxp7//+kR8v//SIs9+uMKADHSMfbooYr//4kFq/YKAOn28f//D7YF8fUKAIPg+YPIAogF5fUKAOne8f//gA3c9QoABOnS8f//gA3L9QoAIOnG8f//gCXF9QoA/um68f//SIsFo+MKAEiJBYzuCgDpp/H//4ANpfUKAEDpm/H//w+2BZf1CgCD4PmDyASIBYv1CgDpg/H//w+2BX/1CgCD4PmDyAKIBXP1CgDpa/H//0iLPSTjCgDo71EBADH/6NiK//9Iiz1B4woASIX/D4ThCwAA6FPsAADpPvH//0iLDSfjCgC+PQAAAEiJz0iJjfD+///oU4H//0iLjfD+//9IhcBJicYPhM8QAACAOQBNjX4BdAdBgH4BAHUiugUAAAC+iCNEADH/6G+A//9IiccxwOglYwEASIsNzuIKAEyJ+kgpykhjykiJleD+//9Iic9IiY3w/v//6A+C//9Ii5Xg/v//SIs1oeIKAEiJx0mJxoPqAUhj0ugAhf//SIuN8P7//7oQAAAATIn/SI21QP///0HGRA7/AOjffP//SYnASIuFQP///4A4AA+FJQ0AAEyJx+hUPgEAMdJMifdIicboF68AAOlS8P//SIsFO+IKAEiJBdT0CgDpP/D//0iLBSjiCgBIiQW59AoA6Szw//8PtwUn9AoAZiV//oDMAWaJBRn0CgDpEvD//8YFQ/UKAADpBvD//8YFN/UKAAHp+u///0iLPePhCgAx0jH26IqI//9IhcAPhNEKAABIiQXy9QoA6dXv//+ADc7zCgCA6cnv//+AJcjzCgDf6b3v//+ADbzzCgAg6bHv//+AJarzCgC/6aXv//+ADZ7zCgBA6Znv///HBbf0CgABAAAA6Yrv//9Iiz1z4QoA6J4SAQDpee///4Al0vIKAH/pbe///4ANxvIKAIDpYe///4AluvIKAL/pVe///4ANrvIKAEDpSe///4ANo/IKAAHpPe///0iLPSbhCgBIhf8PhOQJAAAx0jH26IR7//9IiQUt9QoA6Rjv//9Iiz0B4QoASIX/D4SwCQAAMdIx9uifh///iQUB9QoA6fTu//9Iiz1l9AoATIs91uAKAEiF/w+EogoAAOiIfv//TIn/SYnG6H1+//9JjXwGAugTgP//SIPsCP81qeAKAEQPvg2Z9AoASInHSYnGTIsFHPQKADHAuc4+RABIx8L/////vgEAAADoDIr//0iLPf3zCgDowHr//0FZQVpMiTXt8woA6XDu//9Miz1Z4AoASIsF0vMKAEyJ/0iJheD+//9IhcAPhIIKAADo+n3//0yLheD+//9Eia0I////SYnGD74FGvQKAESJpdz+//9NicSIhfD+//9BicUPH4AAAAAATInyTInmTIn/6Bp7//+FwHUZQw+2BDSEwA+E4woAADqF8P7//w+E6goAAESJ7kyJ5+gSfv//SIXAD4QdCgAATI1gAeu7SIs9vN8KAOinEQEA6cLt//+LBbzxCgAl/3/+/4DMgIkFrvEKAOmp7f//SIs9kt8KAEiNtUD////opoH//0yLPX/fCgCFwA+IHv///4uFWP///yUA8AAAPQBAAAAPhAj///8x0r4BAAAATIn/6EJXAADpXe3//0iLPUbfCgAx0jH26O2F//9IhcAPlcDB4ASJwg+2BUHxCgCD4O8J0IgFNvEKAOkr7f//gCWE8AoA38cF6vIKAAAAAADHBbDyCgAAAAAA6Qvt//+ADQfxCgBA6f/s//9Iiz3o3goAMfbo0Z8AAOns7P//gCVF8AoA38cFq/IKAAEAAADHBXHyCgAAAAAA6czs//9Iiz213goAMdIx9uicVgAA6bfs///HBc3xCgABAAAA6ajs//9Iiz2R3goA6BxyAQDHBZrvCgACAAAA6D2Z///piOz//0iLPXHeCgDo3KsAAOl37P//TIs1YN4KAL/fR0QAuQgAAABMifbzpg+XwBwAhMAPhMMGAAC/Qj1EALkHAAAATIn286YPl8AcAITAdBy/2PxHALkIAAAATIn286YPl8AcAITAD4VaDAAAgA157woAIOkU7P//TIs1/d0KAEGAPlB1EkGAfgEsdQtJg8YCTIk15d0KAEiLvfj+///oKXj//0yJ9+hxff//SImF+P7//+nV6///D7YF0O8KAIPg+YPIBIgFxO8KAOm96///vwEAAADo000BAMcFie8KAAEAAADppOv//0iLBZXoCgBIiz2G3QoASIkFf+gKAOgacQEAxwWI7goAAQAAAOgrmP//SMcFYOgKAAAAAADpa+v//0jHBVDxCgDtQEMA6Vvr//9Iiz1E3QoAvgEAAADoimEBAOlF6///i7UA////hfYPhK8GAADoUrYAAIOtAP///wHpJuv//+jBtQAAg4UA////AekV6///xwUv8QoAAQAAAOkG6///SIsF79wKAEiJBfjwCgDp8+r//4AN8+4KAEDp5+r//4AN5+4KACDp2+r//0iLPcTcCgAx0kiNtUD////oZoP//4kFWNcKAEiLhUD///+AOAAPhLDq//9MizWZ3AoAMf+6BQAAAL6cPUQA6Bh6//9IicdMifYxwOjLXAEA6Ybq//9MizVv3AoAv2E/RAC5EwAAAEyJ9vOmD5fAHACEwA+E3gQAAL90P0QAuREAAABMifbzpg+XwBwAhMAPhVANAADHBWXwCgABAAAA6Tjq///HBVLwCgAAAAAA6Snq//9Iiz0S3AoA6M1vAQDpGOr//0ljzUG+SIVEALgBAAAASImd4P7//0iLNMtBv4hWRABMifNIibXw/v//SYn26xlmLg8fhAAAAAAASTnfD4SCDAAAiwNIg+tAg/gBdexIi3M4SIX2dOOLe3BMAffoSH3//4XAddRIi53g/v//ugUAAAC+Vj1EADH/6Bx5//9Ii7Xw/v//SInHMcDoy1sBAOm26v//SIsFb9sKAEiJBfjuCgDpc+n//8cFje4KAAEAAADpZOn//8cFtu4KAAIAAADpVen//8cFp+4KAAEAAADpRun//0iLPS/bCgDoynr//0iJBXPuCgDpLun//4ANLu0KAATpIun//0iLPQvbCgDHBfXsCgABAAAASIX/D4QI6f//6DN1//9BicaFwA+EWQsAAESJ9+iAd///6evo//+LBbXiCgBIiz3O2goAvpM9RACNUAFIiT2v4AoAiRWZ4goA6ITi///HBcLrCgAFAAAA6GWV//9IxwWK4AoAAAAAAOml6P//gA2f7AoAAccFwO0KAAEAAADpj+j//4AN6OsKACDpg+j//0yLNWzaCgC//UZEALkMAAAATIn286YPl8AcAITAD4Rg6P//v3A9RAC5DgAAAEyJ9vOmD5fAHACEwA+EROj//79+PUQAuQsAAABMifbzpg+XwBwAhMAPhCjo//+/iT1EALkKAAAATIn286YPl8AcAITAD4QM6P//Mf+6BQAAAL5oEkQA6Ht3//9MifZIiccxwOguWgEA6enn//9mDx+EAAAAAABIiz3J2QoA6LQGAQDpz+f//4ANyusKAAbpw+f//zH/6NxJAQDHBZLrCgABAAAA6a3n//9Iiz2W2QoAvgEAAADozIIAAOmX5///gwXg7QoAAemL5///gQ2B6woAAIABAOl85///xwVa5AoAAQAAAOlt5///xwWX7AoAAAAAAOle5///xwWE7AoAAAAAAOlP5///gCVL6woA3+lD5///xwUd6woAAAAAAOk05///SIsFHdkKAEiJBRbtCgDpIef//4AlGusKAO/pFef//8cFI+sKAAAAAADpBuf//0iLPe/YCgAxyTHSMfbo5LAAAOnv5v//gCVJ6goA/unj5v//gCU86goA3+nX5v//xwXl6goAAgAAAOnI5v//Jf9//v+JwsHoEIDOgIkVteoKAKgGD4UR6///g8gGiAWm6goASI1l2FtBXEFdQV5BX13DQYB8JAEAD4Qu6f//6b/o//9IjbVA////TInn6IV6//+FwA+IFxIAAIuFWP///yUA8AAAPQBAAAAPhKkSAAA9AIAAAA+E3uj//7oFAAAAvhglRAAx/+i7df//SInHMcDocVgBAEjHBRbsCgAAAAAA6bPo//+Lhej+//8LhQz///8PhLvq///pwOn//7oFAAAAvoAlRAAx/+h5df//SInHMcDoL1gBAEjHBUzrCgAAAAAA6Zno///Hhej+//8BAAAA6dDl///GBQHrCgAATYXAD4Vp6v//6Y4AAADHBfXrCgABAAAA6azl//8PtwWn6QoAZiV/+GYNgAJmiQWY6QoA6ZHl//+AJeroCgDf6YXl///HBaPrCgAAAAAA6Xbl///HBSjrCgAAAAAA6Wfl///HBTXrCgABAAAA6Vjl///HBVbrCgAAgAAA6Unl//9IxwVO6woAAQAAAOk55f//TIkFKuoKAOkR6f//i4UM////g/gBD4SyEAAAg/gCD4QJ6f//6RDp//8x/7oFAAAAvvgjRADof3T//0iJxzHA6DVXAQDp8OT//78QAAAA6DZ2//9IixXP1goASIkFYOoKAEiJEEjHQAgAAAAA6cjk//8x/7oFAAAAvvI+RADoN3T//0iJxzHA6O1WAQDpqOT//zH/ugUAAAC+1T5EAOgXdP//SInHMcDozVYBAOmI5P//Mf+6BQAAAL7AI0QA6Pdz//9IiccxwOitVgEA6TH5///HBSrqCgACAAAA6Vnk//+6BQAAAL4oJEQA6Mpz//9IiccxwOiAVgEA6Tvk//9Mif/ow3X//0iJBaTpCgDpJ+T//w+2FSDoCgBIiz0R6QoAg8oEiBUQ6AoASIX/dDZIix9Ihdt0F0iJ30iLG+g4cP//SIXbdfBIiz3k6AoA6Cdw//8PthXg5woASMcFzegKAAAAAACD4gPpyOf//+hYdf//SIkFMekKAOm84///SIu94P7//0SLrQj///9Ei6Xc/v//6FJz//9JjXwGAujodP//SIPsCP81ftUKAEQPvg1u6QoASInHSYnGTIsF6egKADHASMfC/////7nOPkQAvgEAAADo4X7//0iLPcroCgDolW///1haTIk1vOgKAOlH4///ugUAAAC+MBFEADH/TImF8P7//+ivcv//TIn+SInHMcDoYlUBAEyLhfD+///pqvL//0SLrQj///9Ei6Xc/v//6QPj//9Ei60I////RIul3P7//+nw4v//vgehRABMiffoc2///4XAD4QGAwAAvlk/RABMiffoXm///4XAD4XLDgAAxwV46AoAAQAAAOm34v//v4M+RAC5FwAAAEyJ9vOmD5fAHACEwA+EqwIAAL+aPkQAuRYAAABMifbzpg+XwBwAhMAPhVcOAAAPtwV65goAZiV/+IDMA2aJBWzmCgDpZeL//0iLPWbnCgCAPwAPhVAOAAAx/+guev//TIslf+gKALoFAAAAvrc9RAAx/+i2cf//vwEAAABIicZMieIxwOjEeP//ugUAAAC+1D1EADH/6JNx//+/AQAAAEiJxjHA6KR4//9Ix4X4/v//MFdEAEjHhej+//9AAAAASMeF8P7//1ARRADHhQz///8AAAAA60MPH4AAAAAAg4UM////AYuFDP///0iDhej+//9APbwAAAAPhAEFAABIi4X4/v//SIsYSIPAQEiJhfj+//9IiZ3w/v//SIO98P7//wB0ur7jokQAvwEAAAAxwEG8QAAAAOgTeP//SIuF+P7//zHSTIut6P7//0SLtQz///+7AgAAAEyNeJhNKezpwAAAALrNtkQAvr0/RAC/AQAAADHA6NV3//+4BAAAAE2LRyABw7oBAAAATYXAdHBBgz8CdBu/IAAAAEyJhQD///+DwwHohm3//0yLhQD///9Mica6BQAAADH/TImFAP///+hpcP//vo2iRAC/AQAAAEiJwjHA6HV3//9Mi4UA////ugUAAAAx/0yJxug/cP//SInH6Gdw//+6AQAAAAHDQYPGAUGB/rsAAAAPhz8BAABJg8dAS40EPEqDfCjoAA+FKwEAAEEPtkcYhMB00kGDfzAEdMsPvsiF0g+FJf///7ojz0QAvr0/RAC/AQAAADHA6Pp2//+4AgAAAOkg////vwIAAADoZkIBAOns/f//ugUAAAC+UCNEADH/6LBv//9IiccxwOhmUgEASIsND9IKAOkK7///SWPFMf+6BQAAAL5YIkQATIs0w+iCb///SInHTIn2McDoNVIBAOlE5f//D7cF6+MKAGYlf/hmDYAEZokF3OMKAOnV3///xwWH5QoAAwAAAOnG3///Mf+6BQAAAL5AEkQA6DVv//9MifZIiccxwOjoUQEA6aPf//8x/7oFAAAAvqgiRADoEm///0iJxzHA6MhRAQDpg9///zH/ugUAAAC+6CJEAOjybv//TIn2SInHMcDopVEBAOlg3///TIu1+P7//0SLvQz////ptwAAAA8fRAAAus22RAC+tT9EAL8BAAAAMcBMiYXg/v//6Mt1//9Mi4Xg/v//x4UA////AwAAAEyJx0nB5Abovm7//02LpCToVkQARAOtAP///wHDRAHrTYXkdD66BQAAAEyJ5jH/6GZu//++p7REAL8BAAAASInCMcDocnX//7oFAAAATInmMf/oQ27//0iJx+hrbv//jVwDAboBAAAAQYPHAUGB/7sAAAAPh4IAAABJg8ZASYN+wAB1d0WJ/EyJ4EjB4AZMi4DAVkQATYXAdM6LgPhWRACD+AR0w4PoAkUx7bntQEMAg/gBuCPPRABID0fIQQ+WxYXSD4UK////uiPPRAC+tT9EADHATImF4P7//78BAAAA6NV0//9Mi4Xg/v//x4UA////AQAAAOkF////g/sdf0NmLg8fhAAAAAAASIs1yc8KAL8gAAAAg8MB6Jxx//+D+x5150iLtfD+//8x/7oFAAAA6GRt//9IicfoTGv//+kH/P//vwoAAAAx2+hLav//67lMiz2yzwoAMf+6BQAAAL6cPUQA6DFt//9IicdMif4xwOjkTwEA6Q/o//9Miz2IzwoAMf+6BQAAAL6QEkQA6Adt//9IicdMif4xwOi6TwEA6X30//8x/7oFAAAAvkglRADo5Gz//0iJxzHA6JpPAQDp+t///0iLneD+//+6BQAAAL6XP0QA6Zzz//8x/7oFAAAAvngiRADormz//75BPUQASInHMcDoX08BAOkT6f//Mf+6BQAAAL4gI0QA6Ils//9MifZIiccxwOg8TwEA6ffc//8x/7oFAAAAvogkRADoZmz//0yJ9kiJxzHA6BlPAQDp1Nz//zH/ugUAAAC+eCJEAOhDbP//vjs9RABIiccxwOj0TgEA6Szm//+6BQAAAL7ePUQAMf+7FwAAAOgZbP//vwEAAABIicYxwOgqc///SIs1Q84KAL8gAAAA6Blw//+D6wF16roFAAAAvuY9RAAx/+jja///vwEAAABIicYxwOj0cv//TIslheIKALoFAAAAMf++/j1EAOi8a///TInivwEAAABIicYxwOjKcv//6DVt//9IixBJicRIicNIhdJ0Hb6ntEQAvwEAAAAxwEiDwwjoonL//0iLE0iF0nXjTInn6DJo//+/CgAAAOhoaP//TIslGeIKADH/ugUAAAC+FT5EAOhQa///TInivwEAAABIicYxwOhecv//SIs9d80KAOgCOwEAvwoAAADoKGj//0yLJdnhCgAx/7oFAAAAvrgSRADoEGv//0yJ4r8BAAAASInGMcDoHnL//7oFAAAAMf++MD5EAEyLJSvNCgDo5mr//78BAAAASInGMcDo93H//zH/ugUAAAC+4BJEAOjGav//vgEAAABMiedIicIxwOjUdP//Mf+6BQAAAL4YE0QA6KNq//++AQAAAEyJ50iJwjHA6LF0//8x/7oFAAAAvqATRADogGr//74BAAAATInnSInCMcDojnT//zH/ugUAAAC+0BNEAOhdav//vgEAAABMiedIicIxwOhrdP//Mf+6BQAAAL4QFEQA6Dpq//++AQAAAEyJ50iJwjHA6Eh0//8x/7oFAAAAvlAURADoF2r//74BAAAATInnSInCMcDoJXT//zH/ugUAAAC+oBREAOj0af//vgEAAABMiedIicIxwOgCdP//Mf+6BQAAAL7gFEQA6NFp//++AQAAAEyJ50iJwjHA6N9z//8x/7oFAAAAvjAVRADormn//74BAAAATInnSInCMcDovHP//zH/ugUAAAC+iBVEAOiLaf//vgEAAABMiedIicIxwOiZc///Mf+6BQAAAL7QFUQA6Ghp//++AQAAAEyJ50iJwjHA6HZz//8x/7oFAAAAviAWRADoRWn//74BAAAATInnSInCMcDoU3P//zH/ugUAAAC+cBZEAOgiaf//vgEAAABMiedIicIxwOgwc///Mf+6BQAAAL64FkQA6P9o//++AQAAAEyJ50iJwjHA6A1z//8x/7oFAAAAvgAXRADo3Gj//74BAAAATInnSInCMcDo6nL//zH/ugUAAAC+OBdEAOi5aP//vgEAAABMiedIicIxwOjHcv//Mf+6BQAAAL5wF0QA6JZo//++AQAAAEyJ50iJwjHA6KRy//8x/7oFAAAAvrAXRADoc2j//74BAAAATInnSInCMcDogXL//zH/ugUAAAC++BdEAOhQaP//vgEAAABMiedIicIxwOhecv//Mf+6BQAAAL44GEQA6C1o//++AQAAAEyJ50iJwjHA6Dty//9MieG6BAAAAL4BAAAAv0E+RADoFHL//zH/ugUAAAC+iBhEAOjzZ///vgEAAABMiedIicIxwOgBcv//Mf+6BQAAAL4AGUQA6NBn//++AQAAAEyJ50iJwjHA6N5x//8x/7oFAAAAvlAZRADorWf//74BAAAATInnSInCMcDou3H//zH/ugUAAAC+oBlEAOiKZ///vgEAAABMiedIicIxwOiYcf//Mf+6BQAAAL4gGkQA6Gdn//++AQAAAEyJ50iJwjHA6HVx//8x/7oFAAAAvnAaRADoRGf//74BAAAATInnSInCMcDoUnH//zH/ugUAAAC+wBpEAOghZ///vgEAAABMiedIicIxwOgvcf//Mf+6BQAAAL4wG0QA6P5m//++AQAAAEyJ50iJwjHA6Axx//8x/7oFAAAAvoAbRADo22b//74BAAAATInnSInCMcDo6XD//zH/ugUAAAC+0BtEAOi4Zv//vgEAAABMiedIicIxwOjGcP//Mf+6BQAAAL4YHEQA6JVm//++AQAAAEyJ50iJwjHA6KNw//8x/7oFAAAAvlAcRADocmb//74BAAAATInnSInCMcDogHD//zH/ugUAAAC+oBxEAOhPZv//vgEAAABMiedIicIxwOhdcP//Mf+6BQAAAL7oHEQA6Cxm//++AQAAAEyJ50iJwjHA6Dpw//8x/7oFAAAAvigdRADoCWb//74BAAAATInnSInCMcDoF3D//zH/ugUAAAC+aB1EAOjmZf//vgEAAABMiedIicIxwOj0b///Mf+6BQAAAL6wHUQA6MNl//++AQAAAEyJ50iJwjHA6NFv//8x/7oFAAAAvjAeRADooGX//74BAAAATInnSInCMcDorm///zH/ugUAAAC+eB5EAOh9Zf//vgEAAABMiedIicIxwOiLb///Mf+6BQAAAL7AHkQA6Fpl//++AQAAAEyJ50iJwjHA6Ghv//8x/7oFAAAAvggfRADoN2X//74BAAAATInnSInCMcDoRW///zH/ugUAAAC+YB9EAOgUZf//vgEAAABMiedIicIxwOgib///Mf+6BQAAAL6wH0QA6PFk//++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1f//SIsbSIXbdZPrzw8fgAAAAABIi3sY6F/U//9Bi4QklAAAAIP4Aw+ErgEAADH2g/gEQA+Vxo20dgABAABJi0QkOEiFwHSzSIsbCXAoSIXbD4VH////64MPHwBIi0MgSIXAdAuLQBiFwA+FZP///0iLexC6AQAAADH26EzR//9Ii1MYSIN4OABIiVBYD4VB////MfZIicfoj9T//+ky////Zi4PH4QAAAAAAEiLPVlWCgBMiebowf7//0iLG0iF2w+F1/7//+kQ////i4OMAAAAjZCE/v//g/oBD4YbAQAAhcAPiOv+//9Ii3sQSIne6If+//9IixtIhdsPhZ3+///p1v7//2YPH0QAAEiLexBMieboZP7//0iLG0iF2w+Fev7//+mz/v//Dx8ASItDUEiFwHQGg3gYAXRpTInivjBYQQBIid/oAfv//0iDPcFNCgAAD4V7/v//SItDIEiFwA+Ebv7//2YPH0QAAEiLcAhIhfZ0Gr9jpEQAuQcAAADzpg+XwoDaAITSD4TBAAAASIsASIXAddXpOP7//8MPH4AAAAAAi1MYhdJ1kL6wGUEATIniSInf6JH6//9Ii3NwSIX2dIdMieJIid/ovef//0jHQ3AAAAAA6W////9IiwXJVQoAvgADAABIi0AIg3gIBUEPRPXpRf7//w8fAICLmAAAAARIi3sQSIne6C38//8PtpOYAAAAi4OMAAAAwOoCg+IBPXwBAAAPlME4yg+Er/7//8eDjAAAAP/////pk/3//zH2TInn6OHS///pdf3//0yJJb1MCgDpeP3//0iF/w+EjwIAAFVIieVBV0GJ90FWQVVBVFNIiftIg+wYg3sIDncai0MI/yTFaIxEAEiLPXlUCgBEif7owf///5BIixtIhdt12PYFElQKAAgPhSMCAABIg8QYW0FcQV1BXkFfXcMPH0AAQfbHAnUfTItjEE2F5HQWvkOjRABMiefoTOb+/0iFwA+E8QIAAEiLezBEif7oZ////0iLG0iF2w+Fe////+uhZg8fhAAAAAAASItDEEiLG0iJBeJLCgBIhdsPhVn////pfP///w8fQABIi3sQRIn+6CT///9IixtIhdsPhTj////pW////w8fAA+2Q1moBA+EtAAAAEiLFZ1LCgBIiVNQicKD4gJFhf8PhZsBAABIjUXASMdFwAAAAABMiyVgUwoA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icYPhEv9//9IidHpTvv//2ZmLg8fhAAAAAAAkFVJifpIieVIgezQAAAASIm1WP///0iJlWD///9IiY1o////TImFcP///0yJjXj///+EwHQgDylFgA8pTZAPKVWgDyldsA8pZcAPKW3QDyl14A8pffBIjUUQSIs9wH8JADHJTInWSImFQP///0iNlTj///9IjYVQ////x4U4////CAAAAMeFPP///zAAAABIiYVI////6Lbx///Jww8fQABVSInlQVRJifxIgezYAAAASIm1SP///0iJlVD///9IiY1Y////TImFYP///0yJjWj///+EwHQjDymFcP///w8pTYAPKVWQDyldoA8pZbAPKW3ADyl10A8pfeBIiz0ffwkA6Loi/v9IjUUQTInmuQEAAABIiz0nhAkASImFMP///0iNlSj///9IjYVA////SImFOP///8eFKP///wgAAADHhSz///8wAAAA6ALx//9Iiz3rgwkA6GYi/v9Mi2X4ycNVugUAAABIieVBVUGJ9b4LxkQAQVRJifwx/+hhHP7/RInqTInmQVxIicdBXTHAXekM////ZmYuDx+EAAAAAACQVUiJ5UiB7NAAAABIibVY////SImVYP///0iJjWj///9MiYVw////TImNeP///4TAdCAPKUWADylNkA8pVaAPKV2wDyllwA8pbdAPKXXgDyl98EiDPV6SCQAAdFBIjUUQgD8lx4U4////CAAAAEiJhUD///9IjYVQ////x4U8////MAAAAEiJhUj///91BoB/ASF0HEiJ/kiLPRqSCQAxyUiNlTj////oBPD//8nDZpCAfwIAdd6/IAAAAOhQHf7/i404////SMcAAAAAAEiJwoP5L3drSIu9SP///4nOjUEIiYU4////SIs0N0iJcgiD+C8Ph48AAACJxo1BEImFOP///0iLNDdIiXIQg/gvd26DwRhIAfiJjTj///9IiwBIiUIYSIsFxo4JAEiJEEiJFbyOCQDJw2YuDx+EAAAAAABIi4VA////SInBSIPACEiJhUD///9IiwlIiUoISInBSIPACEiJhUD///9IiwlIiUoQSI1ICEiJjUD////rnkiLhUD////r6kiLhUD////rzFVIieVIgezQAAAASImVYP///0iJjWj///9MiYVw////TImNeP///4TAdCAPKUWADylNkA8pVaAP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AdtMif9Iid7o65z9/0mJx0kBxU2J7IneTInvTInyTSn8RCnm6K+e/f9IicdIhcB1r0057w+EoAEAAL4KAAAATIn/6FGc/f9IhcB0A8YAAL4jAAAATIn/6Dyc/f9IhcB0A8YAAEEPtgc8IA+HuAEAAEi5ADoAAAEAAABNifxID6PBD4OVAQAAkEEPtkQkAUmDxAE8IA+GbgEAAL/GKksAuQcAAABMiebzpg+XwBwAhMB1FkEPtkQkBzwgD4RwAQAAPAkPhGgBAABBD7YUJEyJ4ID6PXcTSLkBOgAAAQAAIEgPo9FyJQ8fAA+2UAFIg8ABgPo9d/NIuQE6AAABAAAgSA+j0XPjSTnEdUdIi5Vo////RTHtMcBIizpIhf91TkiNuAEBAABIiXoQ6Iqc/f9IicdIi4Vo////SIk4SMdACAAAAADrYw8fAEiD6AFJOcR0uYB4/y908UiLlWj///9MKeBJicVIizpIhf90skiLjWj///9Ii0EISItJEEiNUAFKjTQqSDnOD4OAAgAASIuNaP///0iJUQgPthWyEAkAiBQHSIt5CEgDOUyJ6kyJ5ugVn/3/SIuFaP///0wDaAhMiWgISIsAQsYEKABMiffohp79/4XAD4T+/f//TIn/6MaW/f9Miffonpn9/7gBAAAASIHEiAAAAFtBXEFdQV5BX13DDx+AAAAAAEi5ADoAAAEAAABID6PBD4Js/v//hMB0qul1/v//Dx8ATYn86Wr+//9NjVQkCA8fAEEPthKA+iAPhJYBAACA+gkPhI0BAACE0g+EdP///0yJ0A8fgAAAAABJicRED7ZoAUiDwAFBgP0gD4RyAQAAQYD9CQ+EaAEAAEWE7XXbSY1EJAJIiYV4////hNIPhDH///9Ix4Vw////AAAAAID6Lw+ErAAAAEiLvWD///++LwAAAEyJlVj////oQ5r9/0yLlVj///9IiYVw////TInXTImVUP///+g2mf3/SIuVcP///0grlWD///9IjXwCAkiJlXD///9JicTotJr9/0iLlXD///9Ii7Vg////SInHSImFcP///0iDwgFIiZVY////6Jyd/f9Ii5VY////TIuVUP///0iLhXD///9MidZIjTwQSY1UJAHodp39/0yLlXD///8x0jH2SI1NgEyJ1+hvov3/hcB1RUUx5EiDfYAAdDJIiZ1Y////TInjTIul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jbUw////SYnE6J7u//9MiedBicbo83/9/0WF9g+FCv7//4uFFP///4XAD4RJAgAASIM9DPkIAAAPhGQBAAC/kCtLAOhEf/3/SInHSIXAdCFEi4Uc////RInpRIn6SI21MP///+hD7v//hcAPhbv9//9Ei40Y////RYXJD4X4AQAASIt7EOjygv3/TIs1W/oIAE2F9g+EigAAAEiDwAJIiYUg////Dx+AAAAAAEGLThCFyXVoSYt+COi/gv3/SIuVIP///0iNPALoT4T9/0yLSxBNi0YISMfC/////0iJx0mJxL4BAAAAMcC5AytLAOhZjv3/RInqRIn+SI29QP///0yJpUj////ooOr//4XAD4UY/f//TInn6PB+/f9NizZNhfZ1iEGD/wF1SkyLewhMi3MQMf+6BQAAAL4QMEsA6AmC/f9MifpMifZIiccxwOi5ZP//6dT8//8PH0AAi5UU////hdIPhBf////pwf7//w8fRAAAQb8BAAAA6Sj+//8x/7oFAAAAvtguSwDovIH9/0yJ5kiJxzHA6G9k///pWv3//0iDPZL3CAAAD4WO/v//v6ArSwDo0n39/0iJx0iFwA+EeP7//0SLhRz///9EielEifpIjbUw////6M3s//+FwA+EV/7//+lA/P//D7YV3/UIAInQidHA6APA6QKD8AGD4QGD4AE4wQ+FNf3//8HiAkiLPRT2CAC+RitLAEiBxOgAAACD4hBbQVyDyghBXUFeQV9d6eN+/f8x/76AyEsA6AeH/f+FwA+F9vz//zH/ugUAAAC+6C9LAOjugP3/SIHE6AAAAFtIicdBXDHAQV1BXkFfXemTY///SIs9nPUIAL6AyEsA6AJ//f9JicZIhcAPhGgBAABEia0g////6x8PH0QAAOhjff3/TYs2TYX2D4Q5AQAARYTtD4QwAQAASYt+EEUx5EG9AQAAAOgc4///SInHSItDCEk5Rgh1x0SLhRz///+LjSD///9EifpIjbUw////SIm9+P7//0Ux5Oip6///SIu9+P7//4XAQQ+VxEEPlMXrjkWFwA+FSPn//0GD+QIPhWP5//8PtgWg9AgAQbkCAAAAg+D5g8gEiAWO9AgA6UX5//8PH0QAAEGD+AIPhIAAAABBuQEAAAD2BW30CAAGD4Qj+f//SYtEJAhBuQEAAABBvwEAAACDeAgFTQ9E9OkF+f//Mf+6BQAAAL5+K0sA6LR//f9MifJMif5IiccxwOjEYf//6UD6//9Fhf8PhCb5//8x/7oFAAAAvmgvSwDohX/9/0iJxzHA6Dti///pBvn//0mLRCQIQb8BAAAAg3gIBU0PRPTpO////0SLrSD///9FheQPhS76//9Ei4UQ////RYXAD4XDAAAARYXtD4Rq/P//izV/8AgATIslcPAIAIX2D4QAAQAASIt7EE2F5A+ETPz//0iLQwhEi4Uc////uQEAAABEifpIib1Y////SI21UP///0yJ50iJhVD////oQ+r//4XAD4QQ/P//6bb5//9mDx9EAABMiyWJ9AgAMf+6BQAAAL6wLksA6Lh+/f9IicdMieYxwOhrYf//6U72//9Bg/gBugUAAAC+GC9LAE0PReYx/+iNfv3/SInHTInmMcDoQGH//+nM9///iz3V7wgAhf8PhOkAAABIiz2+7wgASIX/D4Qf////SItDCESLhRz///8xyUSJ+kiNtVD///9IiYVQ////SItDEEiJhVj////oj+n//4XAD4Tp/v//6QL5//9mkEiLtQj///8xyTHAusUrSwBIiz2R8wgASMeFUP///wAAAABIx4Vg////AAAAAEjHhVj///8AAAAA6EN//f9Ijb1Q////SInGSYnE6HHh//+FwA+EtwAAAEyJ5+iBev3/SIu9UP///0yLJfvuCABIhf90G+hJ4P//SIu9UP///0iJBePuCABJicToU3r9/8cF2e4IAAEAAADpZP7//0iLPQXzCAAx0r6sK0sAMcDoz379/75bQ0QASInHSYnG6J+F/f9MifdJicToFHr9/02F5HQuTYnguYAAAAC6AQAAAL6AAAAASI29UP///+iRhP3/SD2AAAAAdEtMiefowXz9/8cFd+4IAAEAAADppf7//0yJ5+jKef3/SIs9i/IIADHSMcC+xStLAOhVfv3/SI29UP///0iJxkmJxOiD4P//6RX///+BvVD///9FaG50damDvVT///8BdaCLtWD///8x0kyJ5wO1WP///+gzg/3/g8ABdIWLhWT///+NeAHocH79/0yJ4b4BAAAASYnGi4Vk////TIn3jVAB6DR7/f9JicCLhWT///+DwAFJOcB0DUyJ9+gref3/6T3///9Miffo/t7//0iJBa/tCADr4g8fRAAAVUiJ5UFXQVZBVUFUSYn0U0iD7BhIiwdIiX3ASIn3SIlFyEiFwA+EvQAAAOhQfP3/RA++LYDyCABMi33ISInDRYnuZg8fRAAASInaTIn+TInn6Ip5/f+FwHUOQQ+2BB+EwHRwRDjwdGtEie5Mif/ojXz9/0iFwHQITI14AevKZpBIi33I6Pd7/f9IjXwDAuiNff3/SIPsCEyLdcBED74NFfIIAEFUSMfC/////0iJx0iJw02LBrnOPkQAvgEAAAAxwOiKh/3/SYs+6EJ4/f9JiR5YWkiNZdhbQVxBXUFeQV9dw2YPH0QAAOhzff3/SItNwEiJAUiNZdhbQVxBXUFeQV9dw2ZmLg8fhAAAAAAAZpBVSInlQVdBVkFVQVRTSIPsWEiLBdDvCABIiX2wSIl1uIN4QAFIiVWgD4T6AgAATIst+/AIAEjHRZAAAAAAMdtIx0WYAAAAAMZFrwBNhe0PhCMDAABMiz3F7wgATYX/dRjpkwAAAA8fAE2Lv/gAAABNhf8PhIAAAABJi0cIg3gIBXXmSYuHAAEAAEiLuCADAABIhf9004A/AHTO6LF8/f9ED741AfEIAEmJxOsWDx9AAMYAAEGAPCQAD4VCAgAATI1gAUSJ9kyJ5+gje/3/SIXAdd5BgDwkAHSPTInmSI19uOgL/v//TYu/+AAAAE2F/3WHDx+AAAAAAEiD7AhIjUXITItNuEyLRbBQSIsNMPAIAEyJ6miAyEsASIs1CfAIAP81I/AIAEiLPeTuCADoL4D9/0iDxCCFwA+EmwEAAEyLZchNheR0JkiLPdPvCABIhf8PhEoBAABJibwkuAAAAOgNev3/SIPAAUmJRCRATIslXeQIAE2F5HVr6eMAAAAPHwBIiwVZ7ggARTHJRTHAMdJDxgQ+AEyJ9kmLTCQov4DISwD/UChMiffoVHb9/0mLRXBIhcB0FEiLUEhJi01ASDnKcgdIKcpIiVBIQYFNKACAIABJx0VAAAAAAE2LZCRATYXkdH1B9kQkWBB17kmLfCQovuIrSwDo5nv9/0mJxUiFwHTXTIt4QEmNfwHoAXv9/0mLfCQoMclNifhIicJMie5JicboOXn9/4XAD4VR////TYtMJCgx/7oFAAAAvpAwSwBMiU2w6Pd4/f9Mi02wSInHMcBMic7oplv//+kh////kOjLR///SIs9pO0IAL6AyEsA6BqC/f+FwHQ+SIXbdBAPtkWvZg9vRZCIQxgPEUMoSI1l2FtBXEFdQV5BX13DZpBIg32gAA+Ewf7//0iLfaDpov7//w8fQAAx/7oFAAAAvmAwSwDod3j9/0iJxzHA6C1b///rpQ8fADH/ugUAAAC+YDBLAOhXeP3/SInHMcDoDVv//+lF/v//Dx+EAAAAAABMieZIjX24SIlFiOjg+///RA++NZDuCABIi0WI6Z39//8PH4AAAAAASIs94ewIAL6AyEsA6Fd3/f8PtgWA7AgAg+ADPAJ1SUjHRZAAAAAAMdtIx0WYAAAAAMZFrwC/AMhCAOipUf7/TIstwu0IAE2F7Q+F3fz//7+gK0sA6P9z/f9JicXpy/z//w8fgAAAAABIiz1R7AgAMckx0r7VK0sAQbgBAAAA6NV6/f9IicNIhcB0lA+2QBg8AnYEPAV1iEiLBUrsCAC6AQAAAEiJ3r+AyEsASItACEiLgHgDAAD/kMgBAAAPtkNpicKD4gOA+gF0CYPg/IPIAohDaQ+2QxjzD29LKEjHQyjguEsASMdDMAAAAACIRa8Pt0MYDylNkGYlAO9mDQMQZolDGOkt////VTHASInlQVdBVkFVQVRTSInTSIPsGA+2Ulj2wgGIVcwPhOMAAABMi2sQSYn+SIt+CEmJ9+gHd/3/TInvSYnE6Px2/f8PtlXMSQHEg+ICD4XMAAAATIn36OR2/f9JjXwECOh6eP3/SIPsCL4BAAAATYnpQVZNi0cISInHSYnESMfC/////zHAue8rSwDof4L9/1hIid5aTInn6GJi//+FwA+EvAAAAEyJYxBIi3sovgEAAADoiID9/0GJwLgBAAAARYXAdERIi1Mo9kJEQHQ6D7ZDWInCg+IFgPoFdBO+AQcAAL/3KksA6KRZ//8PtkNYqAIPhIgAAABIi3soTInu6Gx//f+4AQAAAEiNZdhbQVxBXUFeQV9dww8fhAAAAAAASY18JALotnf9/02LRwi+AQAAAE2J6UiJx0mJxDHAuQMrSwBIx8L/////6MGB/f9Iid5MiefopmH//4XAD4VE////TInniUXM6GNy/f+LRcxIjWXYW0FcQV1BXkFfXcOQSIt7EOgHef3/SYnF6Wf///9mZi4PH4QAAAAAAA8fQABVSInlQVdBVkFVQVRJifxTSIPsKIlVzEiLl/gAAABIiw0b6ggASIl1wEiLQgjHRcgAAAAAi1gISItBCESLaAiD+wV1DUiLh+gAAACLQASJRcgPtgWY6QgAg+ADPAIPhBwBAACD+wUPlMBBg/0FQA+UxvYFfekIAAIPhfIAAACEwA+E+QAAAECE9g+E8AAAAEGLdCQox0W4AAAAAED2xgEPhOEAAABIi4IAAQAA9oCVDAAABA+EzQAAAEmLvCToAAAA9kcLAQ+EuwAAAEyLPZ7oCABNhf90UmYPH4QAAAAAAEmLRzhIPeC4SwB0NEiFwHQvSIuQ6AAAAPZCCwF0IkSLWChBMfNEidipGwEAAHURi0csOUIsD4TFAwAADx9EAABNi38gTYX/dbdIx0XAFSxLAPfGAgEAAHQjSMdFwCAsSwBA9sYIdBWD5hC6ByxLALgsLEsASA9EwkiJRcBIi4EAAQAAgIiVDAAABOsaDx9AAEGLdCQoQPbGAQ+FkQMAAMdFuAAAAABEi0XMRYXAD4RtAgAAiz0X5QgAhf91WkG9gLRLAA8fRAAASYt9AEiF/3QvMdIx9uimYv7/SYlFEEiFwHQdi7CQAAAAhfZ1E0GLVQiJkJAAAABmDx+EAAAAAABJg8UwSYH9MLZLAHW7xwW55AgAAQAAAA+2BfLnCACoAnUuSYs0JL9GLEsAuQ0AAADzpg+XwoDaAITSdRRMiz3d0wgATYX/D4W0AgAADx9AAIPgA0WLbCQoPAIPhJAAAABJi7wk+AAAAEyJ5g8fRAAA6At5/f9IicZIhcB0c0iDfnAASIu++AAAAHXli0YoicIlAIAAAEQx6oPiAwnCddH2R0RAdctIi4cIAQAASIXAdAb2QFgQdblJi5Qk+AAAAEyJ4UiJdbDoVX79/0iLdbCFwHQRi0YoQYP1CIPwCEEJxUGD9QhIi774AAAA64MPHwBB98UBIAAAdU9BvgC2SwBNi1YQTYXSD4R0AgAASIPsCItVzEiLdcBFMclqAE2J8EyJ0UyJ5+gmpf7/SYnHWFpIjWXYTIn4W0FcQV1BXkFfXcMPH4AAAAAAQfbFAQ+EzgEAAESJ6oPiAnQsg/sFD4SHBAAASIt1wL9ULEsAuQUAAABBvqC1SwDzpg+XwBwAhMAPhHn///9BvkC1SwBB98UCBQAAD4Rm////Qb7QtUsAQffFAABAAA+FU////0G+4LRLAEH3xQAEAAAPhUD///9BvhC1SwBB9sUID4Qw////hdJ0LIP7BQ+EPQQAAEiLdcC/QSxLALkEAAAAQb5wtUsA86YPl8AcAITAD4QA////QfbFEEG+sLRLALiAtEsATA9F8Ono/v//Zg8fhAAAAAAASIt9wDHSMfboU2D+/0mJx0iFwA+Eev3//0Ux9ut4ZpCLRiiFwA+EtQAAAEEzRCQoqAN1TIP7BQ+FowAAAEGD/QUPhZkAAABJi5Qk6AAAAEiLhugAAACLSiw5SCx1Ig+2DYvlCACD4QOA+QJ1SkiDuMAAAAAAdDFmDx+EAAAAAABMif8x9ugGaP7/SYnHSIXAD4QaAQAASYt3OEiF9nWBTYn+69wPH0AASItACEgzQgipAADw/3XJSYuUJPgAAABIiz165QgATInh6DJ8/f+FwHUOSYN/OABND0T366MPHwBJjX8QTIn5MdJMieboz3D+/+kZ/v//Zi4PH4QAAAAAAEUx9kUx0unh/f//Dx9EAACD+wUPhOcBAABIi3XAv0EsSwC5BAAAAMdFuAAAAADzpg+XwBwAhMAPhUn8//9Ii3XAx0W4AQAAAIB+BGEPhA0CAABIx0XAOCxLAOkn/P//kE2LHk2F23R4MdIx9kyJ3+jsXv7/SYlGEEmJwk2F0g+FaP3//0mNVhC5kF9AAESJ7kyJ5+iIZ/7/SYnCSIXAD4VI/f//TIsVxeMIAOk8/f//x0XMfgEAAE2F9g+E0/v//0mNfhBMifEx0kyJ5ujvb/7/TYn36Tb9//8PH4AAAAAAg/sFD4RIAQAASItFwIB4BGEPlMAPtsCJwUiLBXDjCABIhcAPhOMBAABEiW3IRTHJRIttuDHbTIlluEUx/0Ux0kGJzOnCAAAADx+EAAAAAABIi1AwuQQAAAC/QSxLAEiJ1vOmD5fBgNkAhMkPhacAAACAegRhQQ+UwA+UwUUPtsBFhe0PhXYBAAAPtsm+WixLAEiNfAoEuQUAAADzpg+XwoDaAITSD4RUAQAARTnED5TBTYXbD4T2AAAAhMkPhe4AAABIi1A4TYXSD4TBAAAAhMkPhbkAAABmDx+EAAAAAABIhdJ0EotSKPbCAXQKg+IISYnHSA9F2EiLUCBJicFIhdIPhLEAAABIidCLiIwAAACFyQ+JOP///0iLUDjrwmaQi0XIg/gEdDmD+AkPlMAPtsCJRbi4OCxLAEgPRUXASIlFwEGD/QUPhHn5///pVfr//zHAg33IBA+UwInB6bj+///HRbgBAAAASMdFwP0rSwBBg/0FD4RL+f//6Sf6//9Ix0XA/StLAOka+v//Dx9AAEiF0g+EXv///4tSKPbCAQ+EUv///0mJwulA////Dx8ASYnD6Qr///9Ei23ITItluE2F0nQJTYlWEOnN/f//TYnaTYXbde9JidpIhdt1502F/02J+kwPRNDr24N9yAdBvqC1SwAPhYz7///pAPv//0SLbchMi2W4TInI67RJx0YQAAAAAOmL/f//i0XIg/gEdAmD+AkPhdX7//9BvnC1SwDpyvr//2ZmLg8fhAAAAAAASIs9KeIIAEiF/3Uc6Q0BAAAPH4AAAAAASIu/+AAAAEiF/w+E9gAAAEiLRwiDeAgFdeaLh6AAAACFwHTcSIuHCAEAAEiFwHQG9kBYEHXKSIu3kAAAAEiF9nS+Zg8fRAAASIuG6AAAAEiLkJAAAABIidBIhdJ1IemGAAAADx9EAACASCwCSIuA6AAAAEiLgJAAAABIhcB0YvZALAJ1XEg94LhLAHTbSIF4cOC4SwB10Q+3SCxmgeGAA2aB6QABZvfBgP50vEjHRnDguEsAD7ZCLIFOKACAAACoAnQmDx9EAACD4P2IQixIi4LoAAAASIuQkAAAAEiF0nQID7ZCLKgCdd9Ii3YYSIX2D4VS////SIu/+AAAAEiF/w+FCv///8OQVUiJ5UFVQVRJifxTSInzSIPsGEyLbghNhe11DkjHRggBAAAAQb0BAAAASIs76O50/f9MOeh2OUiLcwhIiztIjVXYSI1GAUiJQwjoYW79/0iLVdiJ0UGJFCRIOcq6AAAAAEgPRcJIg8QYW0FcQV1dw0jHQwgAAAAASIPEGDHAW0FcQV1dw2ZmLg8fhAAAAAAAVUiJ5UFUU7sKAAAA6zpmkEiLBVngCABIi5AAAQAASIuSoAwAAEw5YjgPhMsAAAB3CYP7Bg+OJgEAAL8BAAAAg+sBD4SQAAAA6BOV/v9Iiz0c4AgASItXCIN6CAUPhaIAAAAPtgW33wgASIsNIN8IAIPgAzwCD4ScAAAASIuHAAEAAEiLgKAMAABMi2A4SIXJdDa+gMhLAOhUa/3/hcAPhWz///8x/7oFAAAAvigxSwDo62r9/0iJxzHA6KFN///pTP///w8fQABIxwAAAAAA68EPH4AAAAAAugUAAAC+gTJLADH/6Ldq/f9IiccxwOhtTf//SIsFdt8IAEiLUAiDeggFdAxbQVxdww8fgAAAAABIiw153ggASIXJdehIi4J4AwAASIuAIAEAAEiFwHTVv4DISwD/0IXAdcox/7oFAAAAvlgxSwDoVWr9/1tBXEiJx10xwOkHTf//Dx+AAAAAAEyJYjjrlGYuDx+EAAAAAABIiwX53ggASItACIN4CAUPlcAPtsDDZi4PH4QAAAAAAFVIieVBVEiD7DhIiXXQSMdF2AAAAABIx0XgAAAAAEiF/3QRSIsFtt4IAEiLQAiDeAgFdAxMi2X4ycNmDx9EAABIjVXQvtDnQgBIiX3I6E5m/f9Ii33IhcB52uhxaP3/icfoWmn9/zH/ugUAAAC+kDFLAEmJxOiWaf3/TInmSInHMcDoSUz//+urDx+AAAAAAEiF/w+E1wAAAFVIieVBVEmJ/EiD7DhIhdJ0RUiLQhCJddRIjXXASMdFwAAAAABIiUXIi0Icx0XQAQAAAIlF2A+2QhiD4A+JRdxIiwKJReDoDHH9/4XAeEhMi2X4ycNmkOgrcf3/hcB570yJ5+jPZ/3/icfouGj9/74wMksAMf+6BQAAAEmJxOj0aP3/TInmTItl+MlIiccxwOmiS///ZpBMiefomGf9/4nH6IFo/f+6BQAAAL7gMUsAMf9JicTovWj9/0yJ5kiJxzHA6HBL//9Mi2X4ycNmLg8fhAAAAAAAw2YuDx+EAAAAAAAPH0QAAEi4ASNFZ4mrze9Ix0cQAAAAAEiJB0i4/ty6mHZUMhBIiUcIx0cYAAAAAMMPH0QAAEiLD0iLVwhIifBIiQ5IiVYIw2ZmLg8fhAAAAAAADx8AVUiJ8EmJ+kiD4PxIAcdIieVBV0FWQVVBVFNIidNIiVWQSIl9mIsCRItKBESLQgiJRaSLQgyJRbCJ8ANCEIlCEEiJ8kjB6iBIOfARUxRJOfoPg9IGAABFiccPH4AAAAAAQYsCi12kQYtyBEWLWgyNlBh4pGrXi12wiUXUiXXQQ428C+7OvcFFi2IYidiNjB5Wt8foRIldrEWLWixEMfhEIchEiV20MdhBi1ocAdBEicrBwAdEMfqJXcBEAcghwkGJwEQx+kUxyAHKQYtKCMHCDAHCQo20OdtwICSJTcxEicEh0UGJwEGJ1kQxyUEx0AHxRInGRYtCEMHJDwHRRIlFyCHOQTHOMcYB/kGNvACvD3z1RInwRYtyFMHOCkWLQjQBzkSJdcQh8EGJ9THQAfhBjbwWKsaHR4nKRYnmwcAHMfJEiXWoAfAhwjHKQTHFAfpBjbwME0YwqESJ6UGJxcHCDAHCIdFBMdVBidQx8QH5jbwzAZVG/USJ7kWLaiDByQ9Bi1ooAdFEiW28Ic5BMcwxxgH+QY28BdiYgGlEieBFi2Ikwc4KRYtqOAHORIlluCHwMdAB+EGNvBSv90SLicpFi2IwwcAHMfIB8CHCMcoB+o28C7Fb//+J8cHCDDHBAcIh0THxAflBjbwzvtdciYnGRYtaPMHJDzHWSYPCQAHRIc4xxgH+QY28BCIRkGuJ0MHOCjHIAc4h8DHQAfhBjbwQk3GY/YnKwcAHMfIB8CHCMcoB+kGNvA2OQ3mmifHBwgwxwQHCIdEx8QH5QY28MyEItEmJxsHJDzHWAdEhzjHGAf6LfdDBzgoBzo28B2IlHvaJyDHwIdAxyAH4QY28FkCzQMCJ8sHABQHwMcIhyjHyAfqLfbTBwgkBwo28D1FaXiaJwTHRIfExwQH5i33UwcEOAdGNvDeqx7bpidYxziHGMdYB/ot9xESLdbjBzgwBzo28B10QL9aJyDHwIdAxyAH4jbwTUxREAonywcAFAfAxwiHKMfIB+kGNvAuB5qHYicHBwgkBwjHRIfExwQH5i33IwcEOAdGNvDfI+9PnidYxziHGMdYB/kGNvAbmzeEhichEi3W8wc4MAc4x8CHQMcgB+EGNvBXWBzfDifLBwAUB8DHCIcox8gH6i32swcIJAcKNvA+HDdX0icEx0SHxQY20Nu0UWkVBidYxwQH5wcEOAdFBMc5EifchxzHXAfdBjbQABenjqYnIwc8MAc8x+EWNtDyKTCqNIdBEiXWgMcgB8It1zMHABQH4jbQW+KPv/In6McIhyjH6AfKLdcDBwgkBwo2MDtkCb2eJxjHWIf4xxgHOidHBxg4B1jHxQYnOQSHGRIn3RIt1xDHXA32gwc8MQY2EBkI5+v8B9zH5AcGLRbzBwQSNhBCB9nGHifIB+TH6McoBwotFtMHCC42EMCJhnW2J/gHKMc5Bjbw9DDjl/THWAcaJyMHGEDHQAdYx8EGJ9gH4i33QwcgJjbwPROq+pInRAfAx8UExxjHBAfmLfcjBwQQBwY2UF6nP3ktEifdEi3WsMc8B14tVwMHHC420MmBLu/aJwgHPMcqNhANwvL++MfoB8onOwcIQMf4B+jHWAcZBjYQIxn6bKIn5wc4JMdEB1jHxAcGLRdTBwQSNvDj6J6HqidAB8THwQY2UFoUw79QxyAH4iffBwAsxzwHIMccB14tVqMHHEI2UMgUdiASJzgHHMcYx/gHWi1W4wc4JjYwKOdDU2YnCAf4x+kGNhATlmdvmMfIByon5wcIEAfIx8THRAcFBjYQ7+HyiH4n3wcELMdcB0THPAceLRczBxxCNtDBlVqzEidABzzHIMfgB8It11MHICY20FkQiKfSJygH499IJwjH6AfKLdcDBwgaNtA6X/ypDifkBwvfRQY28PacjlKtEi23ECdExwQHxicbBwQr31gHRCc4x1gH+QY28BTmgk/xBidXBxg9B99UBzkSJ6EGJzQnwQffVMcgB+EGNvBTDWVtlRInqRItlvMHICwHwCcIx8gH6QY28DpLMDI+J8USLdajBwgb30QHCCdFBidUxwUH31QH5jbwzffTv/4nGwcEK99YB0QnOMdYB/ot90MHGDwHOjbwH0V2EhUSJ6AnwMcgB+EGNvBRPfqhvQYnMwcgLQffUAfBEieIJwjHyAfpBjbwL4OYs/onxwcIG99EBwgnRQYnTMcFB99MB+UGNvDYUQwGjicZEi3W4wcEK99YB0QnOMdYB/kGNvAChEQhORInYRItFyMHGDwHOCfAxyAH4QY28EIJ+U/eJykSLRbTByAv30gHwCcIx8gH6QY28CDXyOr2J8cHCBvfRAcIJ0THBAfmLfczBwQqNvDe70tcqicYB0ffWCc4x1gH+QY28BpHThuuJ0MHGD/fQAc4J8DHIAfjByAsB8AFVpEEB9wFNsEEBwUw5VZgPhzv5//9FifhIi0WQi12kiRiLXbBEiUgERIlACIlYDFtBXEFdQV5BX13DZg8fRAAAVUiJ5UFWSYn2QVVBVEmJ/FOLRxiJwgNXEIlXEHMEg0cUAYP4N3ZxvngAAACJ8ynDQYnFSInaSI01Uz8IAEuNfCwc6Ill/f9Bi1QkEEqNNCtJjXwkHI0E1QAAAADB6h1BiUQ0HEGLRCQUweADCdBMieJBiUQ0IEiDxgjoMfj//1tMifZMiedBXEFdQV5d6f73//9mDx9EAAC+OAAAAInzKcPrjWZmLg8fhAAAAAAAZpBVSInlQVdJiddBVkFVSYn1QVRTSIn7SIPsKItKGIXJdEBBic5BvIAAAACJTchNKfRKjXwyHEk59EwPR+ZIid5MieJNAebo1mT9/0UBZxhJg/5Ai03ID4dVAQAATAHjTSnlSYP9QA+GyQAAAPbDAw+EpAAAAEmNRb9NjWccSMHoBkyNcAFIiUXIScHmBkkB3pDzD28DTIn6vkAAAABMiedIg8NAQQ8RBCTzD29L0EEPEUwkEPMPb1PgQQ8RVCQg8w9vW/BBDxFcJDDoMvf//0w583W9SItFyEj32EjB4AZNjWwFwESJ6EGD/QhzZEH2xQQPhbsBAACFwA+FMgEAAEWJbxhIg8QoW0FcQV1BXkFfXcMPH4AAAAAATYnsSInfTIn6QYPlP0mD5MBMieZMAePozPb//02F7Q+FGwEAAEiDxChbQVxBXUFeQV9dww8fQABJiwZJjXQkCEiD5vhJiQQkRInoSYtUBvhJiVQE+Ekp9EONRCUATSnmg+D4g/gID4J6////g+D4QYnEMcCJwoPACEmLPBZIiTwWRDngcu5FiW8Y6Vv///9mDx+EAAAAAABJjUccTIn2TIn6iU28SIPmwEiJx0iJRchBg+Y/SIl1wOgr9v//SIt1wEGD/giLTbxIi0XISY1UNxxzfUH2xgQPhdIAAABFhfZ0Hg+2MkGIdxxB9sYCdBFBD7dUFv5mQolUMP4PH0QAAEKNBCGD4D9BiUcY6TP+//8PH4QAAAAAAEEPthZBiBQkqAIPhL7+//9BD7dUBv5mQYlUBP7prf7//w8fgAAAAABNjWccSYne6X/+//8PH0AASIsySYl3HEmLdBb4Sol0MPhJjXckSIPm+Egp8EEBxkgpwkGD5vhBg/4IcoRBg+b4McCJx4PACEyLBDpMiQQ+RDnwcu7pZ////0GLFkGJFCRBi1QG/EGJVAT86Tf+//+LMkGJdxxBi1QW/EKJVDD86Tz///8PH0AAVUiJ5UFXSYn3QVZJif5BVUmJ1UFUTI2lQP///0yJ50iB7KAAAADopfT//0yJ4kyJ/kyJ9+jn/P//TInuTInn6Cz8//9IgcSgAAAAQVxBXUFeQV9dw2ZmLg8fhAAAAAAAVUiJ5UFXQVZMjbXg7v//QVVJif1MifdBVEyNpYDv//9TuwAQAABIgewIEQAASIm12O7//+g39P//Dx+AAAAAAEUx/w8fRAAASInaS408PEyJ6b4BAAAATCn66FFb/f9JAcdJgf//DwAAd0VIhcB12EyJ7+iIWv3/QYnFhcB1S02F/3VOSIu12O7//0yJ9+h9+///SIHECBEAAESJ6FtBXEFdQV5BX13DDx+EAAAAAABIhcB0u0yJ8r4AEAAATInn6Pvz///pdv///0G9AQAAAOvBTInyTIn+TInn6OD7///romYuDx+EAAAAAAAPH0AASLgBI0VniavN70jHRxgAAAAASIkHSLj+3LqYdlQyEEiJRwi48OHSw0iJRxDDDx8AixdIifAPyokWi1cED8qJVgSLVwgPyolWCItXDA/KiVYMi1cQD8qJVhDDZg8fRAAAVUiJ8EiJ+UiD4PxIAfhIieVBV0FWQVVBVFNIidNIg+wwSIm9SP///0iJx0iJhUD///+LAkiJlTj///+JhWT///+LQgSJRYyLQgiJRYiLQgyJRYSLQhCJhWD///+J8ANCFIlCFEiJ8kjB6iBIOfBIjUWYEVMYSImFMP///0g5+Q+D4hIAAA8fAEiLjUj///9Ii7Uw////McAPH4QAAAAAAIsUAQ/KiRQGSIPABEiD+EB17ou9ZP///0SLXZiLhWD///+LXYiLVYSLdYxBjYwDmXmCWon4RIt1nESLVaDBwAVEi2WoSIOFSP///0AByInZRIttrDHRIfEx0UGNlBaZeYJaAcGJ8InewcgCQYnPMcZBicFBwccFIf7BzwIx3kEx+QHWQSHJQY2UGpl5glrByQJEAf5BMcGLXaRBifdBAdFBwccFjYQDmXmCWkUB+UGJ/0Exz0SJ+kWJzyHyQcHHBTH6wc4CQY28PJl5gloBwkGJ8EQB+kGJz0Ex90SJ+EGJ10QhyDHIQY2MDZl5gloB+EHByQJFMchBwccFQSHQRAH4wcoCRIt9uEEx8EEByInBwcEFQQHIRInJMdGJz4tNsCHHwcgCRDHPjYwxmXmCWgHPRInBwcEFAc+J0THBic6LTbREIcZBwcgCMdZCjYwJmXmCWkSLTbhBjZQXmXmCWgHOifnBwQUBzonBRDHBQYn3IflBwccFMcHBzwIB0UQB+UWJx0Ex/0SJ+kSLfbwh8sHOAkQxwkGNhAeZeYJaQYnPAcJBwccFRAH6QYn/QTH3RIn4RIt9wCHIwckCMfhHjYQHmXmCWkSLfcREAcBBidBBwcAFQY28P5l5glpEAcBBifBBMchBicdBIdBBwccFQTHwwcoCQQH4RQH4QYnPQTHXRIn/RIt9yCHHwcgCMc9BjbQ3mXmCWkWJxwH3QcHHBUQB/0GJ10Exx0SJ/kSLfcxEIcYx1kGNjA+ZeYJaRIt90AHOifnBwQVBwcgCRTHTQTHeAc6JwUGNlBeZeYJaRTHZRDHBQYn3RDNNzEHBxwUh+cHPAjHBQYn7QdHBAdFEAflFicdBMf9EifpEi33UIfLBzgJBMfNEMcJBjYQHmXmCWkGJzwHCRInYQcHHBUGJ8yHIRAH6R42EAZl5glrByQIx+EQBwEGJ0EHBwAVEAcBEi0W8RTHwRDNF0EGJxkHRwEExy0Ux4kHBxgVBIdNBjbw4mXmCWsHKAkEx80EB+4t9wEUB80Qx10GJyjN91EWJ3tHHQTHSQcHGBUEhwo20N5l5glrByAJBMcpBicdBAfKLdcRFAfJBid5FMe5EMfZBidZEMc5BMcbRxkUh3kHBywJBMdaNjA6ZeYJaQQHORInRwcEFQQHOi02wRDHhM03IRDHB0cFFMd9EM220RItlsEUx142UEaHr2W5BwcoCRDNluEQB+kWJ90HBxwVBAdeLVcxEMepFid0x+kUx1dHCRTH1QcHOAo2EAqHr2W5EifNEAehFif1BwcUFQQHFi0XQRDHgRYnUMfBFMfTRwEUx/EHBzwJGjZwYoevZbkQx+0UB40WJ7EHBxAVFAdxEi120RDNdvEQzXdRBMctB0cNEMetBwc0CRImdcP///0eNlBOh69luRYnjQcHDBUEB2kSJ20WJ+0QB00SLVbhEM1XARTHrRTHKRTHjQcHMAkEx0kHRwkSJlWz///9HjZQyoevZbkGJ3kHBxgVFAdpFifNEi3W8RDN1xEUB00WJ8kUxwkExwkWJ1kHRxkWJ8kWJ7kUx5kSJVZBHjZQ6oevZbkSLfcBBMd5EM33IwcsCRQHyRYneQcHGBUUB1kWJ+kEx+kQzlXD///9FiddB0cdFifpFiedBMd9EiZVo////R42UKqHr2W5Ei23ERTHfRQH6RYn3QcHHBUQzbcxBwcsCRQHXRYnqQTHyRDOVbP///0WJ1UHRxUWJ6kGJ3UUx3USJlVz///9HjZQioevZbkSLZchFMfVEM2XQQcHOAkUB6kWJ/UHBxQVFAdVFieJBMcpEM1WQRYnUQdHERYniRYncRTH0RIlVgEWNlBqh69lui13MRTH8M13UQcHPAkUB4kWJ7EHBxAVFAdRBidpBMdJEM5Vo////RInT0cNBidpEifNEMftEiVWUR42UGqHr2W5FieNEMetBwcMFQQHaRInbRItd0EQB00HBzQJFMctBMflFidpBMcJEM5Vc////RDONbP///0WJ00HRw0WJ2kWJ+0SJlXz///9FMetHjZQyoevZbkGJ3kUx40HBxgVFAdpFifNEi3XUQcHMAkUB00SLlXD///9FMcZBMfBFMfJEM1WARYnWQdHGRIm1eP///0WJ7kSLlXj///9FMeZBMd5HjZQ6oevZbsHLAkUB8kWJ3kHBxgVFAfJEi3WURTHxQdHBRYnPRYnhQTHZR42sL6Hr2W5Eib10////RTHZQcHLAkUB6UWJ1UHBxQVFAelEM0WQRDOFfP///zHPQdHAM71o////MdYxwUWJxUGJ2DO9eP///zNNgEUx2EeNpCWh69luM7Vc////RDHpRTHQQcHKAkQx/kUB4EWJzNHGQcHEBUUB4EGJ/ESJ30HRxEQx10Qxz0GNnByh69luQcHJAgHfRInDwcMFAd+J80SJ1kQxzkaNnBuh69luRDHGQcHIAkQB3kGJ+0HBwwVEAd7RwUGJy0SJyUGJ90QxwUeNlBOh69luQcHHBUSJnVj///8x+cHPAkSLnWz///9EAdFEi5V0////RAH5RIu9cP///0Qx2ESJpXD///8zhXz///9EMfox2EQzfZBEMfJEMeJFicRBMfxBidZB0cZEieJBicQx8keNjA6h69luwc4CRAHKQYnJQdHEQcHBBUeNhASh69luRAHKQYn5QTHxRInIMcjByQJEAcBBidBBwcAFRAHARIuFeP///0Ux+EQzhVj///9Ei71o////RYnBQYnwQdHBQTHIQTHQRTH7QY28OaHr2W7BygJEAcdFMdpBicBEM32ARTHyQcHABUSLnVz///9EiY1s////RAHHRYnQRItVkEGJwUHRwEEh0USJhVT///9FjYQw3Lwbj4n+RTHawcYFRTHqQQHwicbByAJFMeIJ1kHRwiHORIlVkEGNjArcvBuPRIuVcP///0QJzkGJ+UQBxkEJwUGJ+EUx+kEh0UEhwEQzlWz////BzwJFCchFiddBAciJ8cHBBUQBwUHRx0QzXZRBiclFjYQX3Lwbj0WJ2kHBwQVBMdpEM5VU////RQHIQYnxRYnTRItVgEEJ+UHRw0QzlXz///9EM5VY////RInKQYnxwc4CRDNVkEEh+SHCRImdaP///0WNnAPcvBuPRAnKQYnJRInQRItVlEQBwkEJ8UGJyNHAQSH5QSHwjbw43Lwbj8HJAkUJyEGJ0YlFgEHBwQVFAdhFictFAcNBidBFidlBIchBwcEFRAHPQYnRQQnJRInIRYnZIfBECcBEi4V4////AcfBygJFMcJBCdFFMehEM4Vs////RTHyRInIRYnZQcHLAkUx+iHIQSHRRDNFgEHRwkEJwUHRwEGNhDLcvBuPif5EiZVc////QQHBwcYFi4V8////M4V0////QQHxRDHgM4Vo////RImFUP///4nGRYnK0cZBwcIFjYwO3Lwbj0SJ0EGJ+om1fP///wHIiflFIdrBzwJECdkh0UQJ0UWJykEJ+gHBRInQRYnKQSH6RCHYRInWQYnKCcZBjYQQ3Lwbj0HBwgVBicgBxkHByQJBMd1EM22QRAHWRYnKRIuNdP///0QzjXD///9EM41U////RDONXP///0Uh0EHRwUQzrXz///9DjZQZ3Lwbj0SJjXj///9BifFB0cVBwcEFRIudWP///0SJyEGJycHJAkUJ0QHQRInKQYnxIfpBIclECcJBifBBCcgBwkSJyEUh0EGJ0UQJwEWNhD3cvBuPQcHBBYu9cP///0QBwEGJ8EQByEQx30HByAJEMf9BicEzvVD////Rx0HBwQVFMeNGjZQX3Lwbj0SJzkGJ0UQB1kGJ0kUhwcHKAkUJwkEhykUJykGJ2YnDQQHyi7Vo////RTHxIdNEMc5BicEztXj///9EM12AQQnR0cZFMeuJvXT///9B0cNFIcHByAJECctEjYwO3Lwbj0SJ0UQBy8HBBUeNhAPcvBuPRYnRActBIcGJ2cHBBUEByESJ0QnBIdFECclBidlEAcFBwcoCRDO1bP///0QztVz///9FCdFBMf6LvVT///9FichBidlB0cZBIcBFIdFBMfxEM6V8////RQnBRY2EFty8G49BMfTBywJFAcFBichB0cRBwcAFQY2UBNy8G49FAcFFichBwcAFRInAQYnIQQnYAdBEicJBicjByQJBIdhEIdJECcJEi4Vs////RDNFkEQzhVD///8BwkUx2EHRwESJhVj///9FichBCchEicBFicgh2EEhyEEJwIuFWP///0HByQJCjYQQ3Lwbj0GJ0kEBwEHBwgVFAdBBifpFMfpEM5V4////RInHRDN9gEUx8sHHBUQzvXT///9EM71Y////QdHCRImVVP///0WNlBrcvBuPidNBAfqJ10Qhy8HKAkQJz4n4RInHIcgJ1wnYRInDQcHIAkQB0ESLVZBEM5Vo////IdNFMepFMeJB0cJEiVWUQYn6RSHKRAnTRItVlEWNlArcvBuPicFEAdPBwQUBy0SJ+UGJx9HBRSHHiY1w////Ro2MCdy8G4+J2cHBBUEByYnBwcgCRAnBIdFECflEi71c////RAHJRIuNaP///0Ux+UEx8UQzjVT///9B0cFEic9BidlBCcGJvWz///9FicpBidnBywJFIcJBIcFFCdFEjZQX3Lwbj4tVgInPM5V8////RQHRwccFRDHaM1WUQQH5id/RwkGJ0onCMdpHjYQC1sFiykSJVZAxysHJAkQBwkWJyEHBwAVBAdCJykSJ+USLvVD///9EMflEMfEzjXD///8x10Ux79HBQYn6ideJTYCNhAHWwWLKRInBRTHKwcEFRAHQQcHJAkGJykQxz0EBwouFfP///zOFeP///0Qx4DOFbP///9HAicGJ+ESJ14mNfP///0QxwI2MGdbBYspBwcgCi51Y////AchEicFFifhEi32QwccFQTHYAfhFMfhB0cBEicdFichBMciNlBfWwWLKib1o////RTHQRAHCQYnAQcHABUEB0ESJ0kSLlXj///9EM5V0////RDOVVP///0QzVYDBygJB0cJBMfVEM22URDH2RInXRIlVmEGJykQzrXz///9BMdJB0cVGjYwP1sFiyom9eP///0ExwkSJbZzByAJFAdFFicJBwcIFRQHKRYnpQYnVQTHFQY2MCdbBYspEiY1c////QYnBRTHFQcHIAkQB6UWJ1UUxwUHBxQVFMdFBwcoCQQHNi410////RInXRYnCQTH6RDHZM41w////M41o////0cGNlBHWwWLKiU2gRAHKRYnpQcHBBUEB0YuVbP///zHyM5V4////0cJFMepFMeNBwc0CjYQC1sFiykEx3kSJ7olVpEQB0EWJykHBwgVBAcJEidhBiftFMetEMfgzhVz////RwEWJ30WJ00Uxz0HBwwVGjYQA1sFiyolFqEUB+EWJ30HByQJBidtFAcdEi0WAi51U////RTHwRYnuQTHcRYnNQTHIRTHO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90iJhRj////o7zr9/0iLlRj///+FwHRkDx9AAEyJ9+h4PP3/RImtPP///0GDxQFFOSwkfjNJixdJY91IizzaSI0E3QAAAABIiYUw////gD9AD4TF/v//RImtPP///0GDxQFFOSwkf81IgcToAAAAW0FcQV1BXkFfXcNmkEiLhSD////GBBAAD7YAhMAPhFoBAABIi5Ug////SIsNJJgIAOsaZi4PH4QAAAAAAA+2QgFIg8IBhMAPhDABAAD2BEFAdepIi70g////6I76//9JixdIiwhJicJIO5UQ////D4S1AQAASIXJD4RZAQAAMcAPH0QAAEiDwAFJgzzCAEyNHMUAAAAAde1IjTwDSI0M/QAAAABIiY0Y////icFIizzaiY30/v//TImd+P7//0yJlQj///9IiYUA////6Hw4/f9JYxQkSIuFAP///0mLP0iNdBABSMHmA+iwPP3/QYsUJEiLnTD///9Ii70Y////SYkHRCnqSI10GAhIY9JIAcdIweID6PRC/f9Mi534/v//TIuVCP///0kDH0yJ1kyJ2kiJ30yJlTD////oLkD9/0GLBCSLjfT+//9Mi5Uw////jUQB/0GJBCRMidfo7Tf9/0iLvSD////o4Tf9/0SLrTz////pNf7//w8fRAAAvwgAAADo1jz9/0mLF0jHAAAAAABJicJIOZUQ////dTpIi70Q////TImVCP///+g9+P//TIuVCP///zHJRTHbSYkHSInCSIuFMP///0iJhRj///8xwOnW/v//SIuFMP///zHJRTHbSImFGP///zHA6bz+//9IiwpIjRW6GQgASIsFe5YIAL4BAAAASIs4McDonET9/78BAAAA6NJC/f9JiwdIjRXAGQgASIsI69FIi70Q////SImNGP///0iJhQj////oqff//0iLjRj///9Mi5UI////SYkHSInC6Rj+//9FMcBIhf90GkiDPwB0FLgBAAAAQYnASIPAAUiDfMf4AHXxRInAw2YuDx+EAAAAAABVMf9IieVIgeyQAAAASI21cP///+hnQv3/SGlVgEBCDwBIaYVw////QEIPAEgDhXj///9IAdBIA0WIycMPH0AAVUiLBaiVCABIjQ0rJwAASI0VsakBAL4BAAAASIs4McBIieXouEP9/78BAAAA6I5D/f9mZi4PH4QAAAAAAA8fAFVIieVBVkFVQVRTSIn7SIXSdHVJidVMjXL/SffduOAPAABIhfZMiXMwSA9E8EiLQzhIiTP2Q1ABdGZIi3tI/9BJicRNheR0ZUiLA0uNVDQQTIljCEkh1UwB4EyJaxBMiWsYSYkEJEiJQyC4AQAAAEnHRCQIAAAAAIBjUPlbQVxBXUFeXcMPHwBJx8Xw////Qb4PAAAA64ZmDx+EAAAAAABIiff/0EmJxE2F5HWbSMfAMLZLAP8Q65APH4QAAAAAAIBnUP5IiU84TIlHQOkv////ZmYuDx+EAAAAAAAPH0AAgE9QAUiJTzhMiUdATIlPSOkL////ZmYuDx+EAAAAAABVMcBIieVBV0FWQVVBVFNIiftIg+wITItvGEwrbxBMAe5Mi3cID5LASAN3MA+SwkiFwA+F4ET9/w+20kiF0g+F1ET9/0yJ6EjB6ANIOTdMjWQGZEgPQzdIi0c4TDnmTA9D5vZHUAEPhYQAAABMief/0EmJx02F/w+Em0T9/0iLQzBLjTQnTIl7CEyJ6k2JdwhNjWQHEEiJcyBI99BJiTdJIcRIi3MQTInn6LI8/f8PtktQ9sECdRVIi0MwSY1UBhBI99BIIdBIOUMQdDxMiWMQTQHsTIljGIBjUP1Ig8QIW0FcQV1BXkFfXcNmDx9EAABIi39ITInm/9BJicfpc////w8fgAAAAABJi0YIg+EBSYlHCEiLQ0B0D0iLe0hMifb/0OuoDx9AAEyJ9//Q652QSItHCEiFwHQtDx+AAAAAAEg5xnYFSDkwcxZIi0AISIXAde0xwMNmLg8fhAAAAAAAuAEAAADDw2YPH4QAAAAAAFVIieVBVUmJ9UFUU0iJ+0iD7AhIi0cISIXAdRnrQGaQSIt7SEiJxv/SgEtQAk2F5HQsTIngTDnocwhIixBMOepzNkyLYAhIi1NA9kNQAXXQSInH/9KAS1ACTYXkddRNhe0PhVxD/f9Ig8QIW0FcQV1dw2YPH0QAAEyJaxhMiWsQSIlTIEiJQwhIg8QIW0FcQV1dw2ZmLg8fhAAAAAAAZpBIi0cIRTHASIXAdBYPH0AASIsQSCnCSItACEkB0EiFwHXuTInAw2YuDx+EAAAAAABVSInlQVdJidcx0kFWSYn2SInOQVVBif0x/0FUU0yJw0iD7BhMiU3I6PMHAABIg+wI/3UYTItNyEyJ+UyJ8kSJ7kmJ2EiJx0mJxOhhEgAAWllJicVIhcB0H0yJ5+hfFgAASI1l2EyJ6FtBXEFdQV5BX13DDx9EAABIi1UQvgEAAABMiefo9xQAAIXAdcxIi0UYTI0tKRUIAMcAAAAAAOu5w2ZmLg8fhAAAAAAADx9AAFUxwLoBAAAASInlQVRBifS+AgAAAESJ50iD7AjobzT9/4XAeBtEiedMi2X4SI01/iwBAMnpJzz9/w8fgAAAAABMi2X4McDJww8fhAAAAAAAifdIjTWSJAEA6QI8/f9mkEiJ9+lYN/3/Dx+EAAAAAACJ9+kZN/3/Zg8fhAAAAAAAVUiJ5UFUU0iD7HDHRbQAAAAAx0W0AQAAAItFtEiJfZiJdahIiVWgSIlNiEyJRZBEiU2shcAPhYUCAABIiwWukAgAx0W4AQAAAEG8/////0iLAEiJRcDHRbwAAAAAi0W8g/gDD47HAAAAQYP8/w+EfQAAAEiLVcBIiwVykAgAuQEAAABIx0XgAAAAAEiJEItVtDHAhdIPhe0CAACLVayF0nQIhMkPhR4EAACDfRABdAiEyQ+FqAMAAIN9GAIPlcIhyoTSdBSLfRjoQzb9/4XAD4gzAgAASItF4EiFwA+FlwQAAEiDxHBEieBbQVxdw2aQi0W0hcB0EIt9yOgRNv3/i33M6Ak2/f/oNDH9/0iLXTBIjQ2bEwgAiwCJA0iLRShIiQhIg8RwRIngW0FcXcNmkOibPP3/QYnEhcAPiKACAAAPhS3///+LVbRIx0XQAAAAALgBAAAAMcmF0g+FaAIAAIt1rIX2dAiEwA+FIQMAAIN9EAF0CITAD4WzAgAAg30YAg+VwiHChNIPhWIDAACLVSD30sHqHyHQhMAPhZADAABIhckPhIcBAACLRbSFwA+FNAEAAEiLRZhMi2AITInn6Hwz/f9Miea/AgAAAEiJwuhcMv3/uhgAAAC/AgAAAEiNNeASCABIicPoQzL9/0yLZaBICcNMiefoRDP9/0yJ5r8CAAAASInC6CQy/f+6AwAAAL8CAAAASI01wRIIAEgJw+gLMv3/TItl0EgJw0yJ5+gMM/3/TInmvwIAAABIicLo7DH9/7oCAAAAvwIAAABIjTWKEggASAnD6NMx/f+LfdhICcPo2Dr9/0iJx+jQMv3/i33YSYnE6MU6/f9MieK/AgAAAEiJxuilMf3/ugEAAAC/AgAAAEiNNZatAQBICcPojDH9/0gJww+IUwEAAL//////6Akw/f9mDx+EAAAAAABIjX3IvgAACADoEjz9/4XAD4Rl/f//x0W0AAAAAOlZ/f//Zg8fRAAAi33MSI110LoQAAAA6Dcx/f9Ig/gQD4Wx/v//66gPHwDoMy/9/4sQSI0FkREIAEiLTTBBvP////+JEUiLTShIiQHp9P3//2aQ9kWoCA+FTgIAAEiDfZAAdA5IiwWojQgASItNkEiJCOjsLv3/SIt1iEiLfaBIicP2RagCD4SnAAAA6NI6/f9IjQVDEQgASIlF0IsDiUXY6Sb+//8PH0QAAIt9zOiAM/3/i33ISI114LoQAAAA6C80/f9IhcB5CEjHReAAAAAAi33I6Foz/f9Ii0XgSIXAD5TB6db8//8PHwCLfcjoQDP9/0iLTdBIhckPlMDpgf3//5CLfbjoWDz9/4tFuAHAiUW4i0W8g8ABiUW86V/8//9mkL/+////6aj+//9mDx9EAADoezz9/0iNBaMQCABIiUXQiwOJRdjpf/3//2YPH0QAAIt9EL4BAAAA6GMx/f+FwA+JawEAAEiNBWEQCABIiUXQ6Ost/f+LAIlF2OlK/f//kIt9EOioMv3/hcAPiPgAAABIi0Xgg30YAg+VwkiFwA+UwSHK6Tn8//8PH4QAAAAAAIt9rDH2SI0dERAIAOj/MP3/hcAPiS8BAABIiV3Q6I4t/f9IidmLAIlF2DHA6c38//8PH4AAAAAAi32s6EAy/f+FwA+IkAAAAEiLReBIhcAPlMHpw/v//2YPH4QAAAAAAIt9GL4CAAAA6KMw/f+FwA+IQP///4t9GOgDMv3/hcB4N4tFIEiLTdD30MHoH0iFyYnCD5TAIdDpbPz//w8fQACLfSDo2DH9/4XAeAxIi03Q6Vv8//8PHwBIjQVYDwgASIlF0OjoLP3/iwCJRdjpR/z//2YPH0QAAOjTLP3/iwCJRehIjQUuDwgAi1Xo6ZX9//8PH4AAAAAAvgIAAAC/AQAAAOgJMP3/hcAPiKb+//9Ig33QAA+EkP3//+n6+///kIt9EOhYMf3/hcB4jEiLTdBIhckPlMCDfRgCD5XCIcLpsvv//w8fQACLfazoMDH9/4XAeA9Ii03QSIXJD5TA6Xz7//9IjR2tDggA6ar+//+QSIn3McAx9un0Nv3/Dx9AAIP5AUiJ97q2AQAAGfYxwIHmAP7//4HGQQQAAOnQNv3/VUiJ5UFWSYnWQVVNic1BVEGJ9FNIictIgeyQAAAARYXAdV1Ihdt0ajHSSI2NUP///0yJ9kSJ5+gUNv3/SIuVUP///0iJE0iLlVj///9IiVMISIuVYP///0iJUxBIi5Vo////SIlTGIXAeDYxwEiBxJAAAABbQVxBXUFeXcMPHwC+DwAAAESJ5+hzM/3/SIXbdZYx0kyJ9kSJ5+gBNv3/68boaiv9/4sQSItFEIkQSI0F/Q0IAEmJRQC4/////+utSMfBIKJLAOlEAwAADx9AAFVIieVBVEyLJTuQCABTTYXkdCsPH0QAAEGLXCQIg+sBeBNIY9sPHwBB/1TcEEiD6wGF23nzTYskJE2F5HXaW0FcXcNmZi4PH4QAAAAAAGaQVUiLBaCJCABIieVBVEmJ/FNIgzgAdFlIix3ajwgASGNDCI1QAYP4H38WiVMITIlkwxAxwFtBXF3DDx+AAAAAAL8QAQAA6EYz/f9IhcB0LUiJGLoBAAAASInDx0AIAAAAAEiJBZCPCAAxwOu+Dx9AAEiNDTn///9IiQjrm4PI/+uzZi4PH4QAAAAAAA8fRAAAVUiJ5UFWQVVJif1IiddBVEmJ9FNIidPo5C79/0mJxkw543YRTCnjSo08IDH2SIna6Jsu/f9bTIniTInuQVxMifdBXUFeXenFMf3/Dx9EAABVSInlQVdBvwEAAABBVkFVQVRTSIPsGIl1zEhjdzBIiU3AOXdQD4SpAAAASIn7SIt/QEjB5gJJidbosi39/0iJQ0D2AwEPhaUAAABEi2tQRDtrMA+NtwAAAEG/AQAAAE1j5USJ+EnB5AJFie9BicWQSItLSEiLczhNifFIid9Ii4OAAAAARItFzEiFyUqNFOFCizQmSA9FykiLU0BIg+wISItAIP91wEwB4v/QWlmFwLgAAAAARA9I6EGDxwFJg8QERDl7MH+pRInoRYn9QYnHRIlrUEiNZdhEifhbQVxBXUFeQV9dw2YuDx+EAAAAAABIY3MwSIt7SEjB5gXo7yz9/0iJQ0jpQf///2YPH0QAAEG/AQAAAOu4Dx+EAAAAAABVSInlQVRIg+wISIXSdDmJ8EiJ1qgEdCBIi38QSIX/D4SLAAAATItl+DHSMcDJ6e0s/f8PH0QAAEmJ1EyJ4EyLZfjJww8fQABMi2cQTYXkdH9Miefolyv9/4P4BX4eSJi5BwAAAEiNPSsLCABJjXQE+vOmD5fAHACEwHRETInnMdJIjTUPCwgAMcDokSz9/0mJxEyJ5zH26FQn/f+Jx4XAeD7oGS39/0yJ4EyLZfjJw0yLZfhIidfJ6QMQAAAPHwBMiefoCC39/0mJxOvFDx8ATItl+DH/yenkDwAADx9AAEyJ50Ux5OiVJ/3/6Uv///9VSInlQVZBif6/kAAAAEFVSYn1QVRJidRTSInL6H8s/f9IugAAAAD/////RIkwTIloCEyJYBDHQBgAAAAASMdAIAAAAABIiVAox0AwAAAAAEjHQDgAAAAASMdAQAAAAABIx0BIAAAAAMdAUAAAAABIx0BYAAAAAEjHQGAAAAAASMdAaAAAAADHQHAAAAAASMdAeAAAAABIiZiAAAAASMeAiAAAAAAAAABbQVxBXUFeXcNmZi4PH4QAAAAAAA8fQABVSInlQVdBVkFVSYn9QVRBifRTTInDSIPsSEiLf1hIiVWoSIlNoEyJTbhIhf90Fuh8Kf3/g/j/D4R7AgAAScdFWAAAAABJg30gAA+EuAAAAEiLTRgx9kiNVcBMie/ozvz//4XAD4Q1AgAASYuFgAAAAESJ4kmLdSBMie/B6gSD4gH/EEGJx4XAD4hKAwAAQYtVKIXSD4WmAgAARIngScdFIAAAAACD4AGJRbR1c0WLdQBBg+YCD4QNAgAARYnmSYuFgAAAAEiNdchMie9Bwe4FQYPmAUSJ8v9QKIXAD4hGBAAAi0XIRItdzEGJRRhFhdsPiYoAAABFieNBwesIQYPjAetUDx9EAABFi30YRYX/D4h7AgAARIngg+ABiUW0dI1Ig324AA+EBQIAAEWJ4ESJ4UHB6AXB6QhBg+ABg+EBRYnGQYnLQfbEBA+FqQIAAEHHRRj/////SYuFgAAAAESJ2USJ8kyJ70iLdbj/UAhBicOFwA+I3wIAAA8fgAAAAABIg30QAA+E1QEAAEH2xEAPhRsCAABBg30s/w+FzgEAAEmLhYAAAABEieFEieJMie/B6QnB6gdEiV20SIt1EIPhAYPiAf9QCESLXbSFwEGJxg+IwgMAAEmLhYAAAAC6/////0H2RQACdARBi1UYSIPsCEiNTcD/dRhJidhRRYn5RInmTInvUkiLTaBBVkiLVahBU0SJXbT/UBBEi120SIPEMIXAicMPiTUDAABEifP308HrH0GD/gIPlcAhw8dFtAAAAABFhf90GEmLhYAAAABEiV2oRIn+TInv/1AYRItdqEWF23gWQYP7AXQQSYuFgAAAAESJ3kyJ7/9QGITbdBBJi4WAAAAARIn2TInv/1AYi0W0hcB0CUiLfbjoMST9/0iLRcBIjWXYW0FcQV1BXkFfXcNmDx9EAABIjQUvBwgASIlFwOvaDx8ASItVuESJ5kyJ7+h5+///SInCSIXAD4Q9AwAAQYtFAIPgBEg5VbgPhNwCAACFwA+E7AEAAEG+AQAAAEWJdShFieNFieZBwe4FQcHrCEmJVSBIiVW4QYPmAUGD4wHpLv7//w8fgAAAAABBx0UY/////0GJw+lA/v//SYt9IOiHI/3/QcdFKAAAAADpRP3//2YuDx+EAAAAAABFi3UsQYP+/w+EKgEAAEiLRRgx20G+/////8cAAAAAAEiNBTkHCABIiUXA6az+//9Ii0UYxwAAAAAASI0FfQYIAEiJRcDp9f7//2YPH0QAAEiLRRgx20G+/////8cAAAAAAEiNBccGCABIiUXA6Wr+//9mDx9EAADoYyP9/0iLXRiLAIkDSI0FHgYIAEiJRcDpqv7//w8fAEmLfRBIi3W4MdIxwIlNnESJRbDoYCf9/0SLRbCLTZxMie9IiUW4SInGSYuFgAAAAEHHRRj/////RInC/1AIQYnDhcB4IkiLfbiJRbTohyL9/0SLXbTpLv3//2YPH0QAAMdFtAAAAABEiV2o6Ngi/f9Ii10YRYX/RItdqIsAiQNIjQW/BQgASIlFwA+EB/7//zHbQb7/////6bP9//8PHwBJi4WAAAAAQfbEQA+EFwEAAESJ4kSJXbRIjXXITInvweoHg+IB/1AoRItdtIXAD4iNAQAAi0XIRIt1zEGJRSxJi4WAAAAA6fr8//8PH0QAAEGLRXBJi314SIlVuIPAAUGJRXBImEiNNMUAAAAA6BYm/f9Ii1W4SYlFeEiJ0UljdXBIiUzw+Onf/f//Dx9EAADoEyL9/0iLXRiLAIkDSI0F/AQIAEiJRcBFhf8PhFb9//8x20G+/////0G7/////+ns/P//Dx9AAEGLRTBJi304g8ABQYlFMEiYSI00hQAAAADooiX9/0ljVTBJiUU4iVyQ/DHA6RL9//8PH4AAAAAARIldtOifIf3/SItdGESLXbSLAIkDSI0FpAQIADHbSIlFwOl9/P//kEG+AgAAAOkS/P//Dx9EAACFwA+FKv3//0GLRXBJi314SIlVuIPAAUGJRXBImEiNNMUAAAAA6CYl/f9Ii1W4SYlFeEiJ1+gWJv3/SItVuEiJwUmLRXjp+/7//2YPH0QAAEiLRRjHAAAAAABIjQU/BAgASIlFwEWF/w+EYfz//0jHRbgAAAAAMdtBvv////9Bu//////p7/v//+jiIP3/SItdGESLXbSLAIkDSI0FxwMIADHbSIlFwOnA+///Dx9AAFVIieX/dRBBUU2JwUUxwOhs+f//ycNmLg8fhAAAAAAAVUiJ5UFWQVVBVFNIg+wQi08whcl1aotHGEiJ+4XAf2BIg38gAHVZQYn0SYnV6H73//9JicZIhcB0ZkGD5CBIjTWDAwgASI0FxRoBAEyJ90gPRPDoWCv9/0iFwHRLMdJNOfVIiUNYD5XCTIlzIIlTKEiDxBBbQVxBXUFeXcMPHwDoGyD9/8cAFgAAADHASIPEEFtBXEFdQV5dw2YPH0QAADHA6+kPH0AATIn3SIlF2Oh8H/3/SItF2OvTZg8fRAAAVUiJ5UFWQVVBVFNIg+wQi1cwhdJ/akmJ/PYHAnRii0cYhcB/W0yLbyBNhe11UkUx9kiLh4AAAACF9kiNddhBD5XGRIny/1AohcB4QkmLhCSAAAAAi3XcRInyTInn/1A4SYnFSIXAdDiLRdhBiUQkGEiDxBBMiehbQVxBXUFeXcPoWx/9/0Ux7ccAFgAAAEiDxBBMiehbQVxBXUFeXcNmkOg7H/3/i3XYTInnixhJicZJi4QkgAAAAP9QGEmLhCSAAAAAi3XcTInn/1AYQYke671mZi4PH4QAAAAAAA8fQABVSInlQVRBifRTSIn7SIPsEEiLRyBIhcB0VjH2SI1N5EiNVejox/T//4XAdHNFheRIjQX0EAEASI017QEIAEiLeyBID0Tw6MUp/f+LUyhIiUNghdJ1WkjHQyAAAAAASIPEEFtBXF3DZg8fhAAAAAAAi3cYhfZ+50iLh4AAAABEieL/UDDHQxj/////SIlDYEiDxBBbQVxdww8fhAAAAAAA6Fse/f+LVeSJEDHA67BmkEiLeyDo1x39/8dDKAAAAABIi0Ng65BmLg8fhAAAAAAAifKLdyyF9n4nVUiJ5VNIiftIg+wISIuHgAAAAP9QMMdDLP////9IiUNoSItd+MnDMcDDZmYuDx+EAAAAAABmkFVIieVBVUmJ1UFUSYn8U4nzSIPsGEiDf0AAdFRJY0QkMDnYfCtJi3QkQEhj00yJ70jB4gLoZyX9/7gBAAAASIPEGFtBXEFdXcMPH4AAAAAAKcNJjXyFADH2SGPTSMHiAuj7If3/QYtcJDDruQ8fQAAx9kiNTdRIjVXY6GHz//+FwHWZ67lmZi4PH4QAAAAAAFVIieVBVUmJ1UFUSYn8U4nzSIPsGEiDf0AAdFxJi3QkSEiF9nRvSWN8JDA533whSGPTTInvSMHiBejSJP3/uAEAAABIg8QYW0FcQV1dw2aQKftIwecFMfZIY9NMAe9IweIF6Gkh/f9Bi1wkMEmLdCRI67wPH0QAADH2SI1N1EiNVdjoyfL//4XAdLhJi3QkSEiF9nWRSIPEGDHAW0FcQV1dw2ZmLg8fhAAAAAAADx8AVUiJ5UFUSYn8U0iD7BCLdxiF9n4KSIuHgAAAAP9QGEGLdCQshfZ+DkmLhCSAAAAATInn/1AYSYt8JGBIhf90BejbHv3/SYt8JGhIhf90BejMHv3/SYN8JEAAD4SwAAAAQYtUJCiF0g+FkwAAAEmLfCQ46Mkb/f9Ji3wkQOi/G/3/SYt8JEjotRv9/0GLRCRwhcB+PTHbZi4PH4QAAAAAAEmLRCR4SIs82OgiHP3/SYtEJHhIizzYSIPDAeiAG/3/QTlcJHB/2UmLfCR46G8b/f9Ji4QkgAAAAEiLQEBIhcB0BUyJ5//QSIPEEEyJ51tBXF3pSRv9/2YPH4QAAAAAAEmLfCQg6DYb/f/pXv///5BBgyQk/kiNTeRIjVXoTInnvgEAAADodvH//+kx////kEyLBXmRCABNhcB0BEyJwMNVSI09H/8HAEiJ5UFVQVRTSIPsCOhnGv3/SYnESIXAD4SzAQAASInHvgcAAADoDib9/0iNPfX+BwCFwHVT6D4a/f9IjT3p/gcA6DIa/f9MiefoGh79/414AkSNaAGJw+isH/3/TInmSInH6JEb/f/GBBgvSIkF9pAIAELGBCgASIPECFtBXEFdXcNmDx9EAADo6xn9/0mJxE2F5HQRvgcAAABMiefoliX9/4XAdJRIjT19/gcA6MYZ/f9JicRIhcB0Fb4HAAAASInH6HEl/f+FwA+Ed////74HAAAASI09P/4HAOhYJf3/hcB1JLsEAAAAQb0FAAAAvwYAAABMjSUf/gcA6Vf///8PH4QAAAAAAL4HAAAASI09TP4HAOgfJf3/hcB1I7sIAAAAQb0JAAAAvwoAAABMjSUs/gcA6R7///8PH4AAAAAAvgcAAABIjT0k/gcA6Ock/f+FwHUjuwgAAABBvQkAAAC/CgAAAEyNJQT+BwDp5v7//w8fgAAAAABIjT36/QcAvgcAAABMjSX/9AcA6Kgk/f+D+AFIGduD4wNIg8MBg/gBTRntQYPlA0mDxQKD+AFIGf+D5wNIg8cDhcBIjQW4/QcATA9E4OmN/v//Zg8fRAAASI09T/0HAOicGP3/SYnE6az+//8PH0AAVUiJ5UFXQVZJif5BVUmJ9UFUU0iD7Bjo5P3//0mJx02F9g+EwAAAAEyJ9+hQHP3/SJhIiUXITYXtD4TBAAAATInv6Dkc/f9BicBMY+BMif9EiUXE6Ccc/f9IY9hIi0XISo18IAdIAd/osx39/0yJ/kmJxEiJx+iVGf3/SY08HEyJ9uiJGf3/SANdyLpYWAAATInuSY0EHEmNfBwGZolQBMcAWFhYWMZABgDoYRn9/0SLRcRMiedEicbowhf9/4nHg/j/dE3ohh39/4XAD4U2KP3/SIPEGEyJ4FtBXEFdQV5BX13DDx9AAEjHRcgCAAAATI01UPwHAE2F7Q+FP////0UxwEUx5EyNLWaWAQDpO////+hpGP3/izjoIib9/0yJ+b4BAAAASI0VI/wHAEmJwEiLBQl3CABIizgxwOgvJf3/6CoY/f9mLg8fhAAAAAAASIn+Mf/ppv7//2YPH0QAAFVIieVBV0yNPfNoCABBVkmJ1kFVSYn1QVRBifxTSI0d5GgIAEwp+0iD7BjowBb9/0jB+wNIiV3IdB0x2w8fQABMifJMie5EiedB/xTfSIPDAUg5Xch16UiDxBhbQVxBXUFeQV9dw2YuDx+EAAAAAADDAAAASIPsCEiDxAjDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAgBTdGFjayBub3cAICVkAHRva2VuAG50ZXJtACVzICVzICgAJUYlUDolcFM6ICVzIGluICVzCgAlRiVQOiVwUzogJXMKACR1bmRlZmluZWQAU3RhcnRpbmcgcGFyc2UKAEVudGVyaW5nIHN0YXRlICVkCgBTdGFjayBzaXplIGluY3JlYXNlZCB0byAlbGQKAFJlYWRpbmcgYSB0b2tlbjogAE5vdyBhdCBlbmQgb2YgaW5wdXQuCgBOZXh0IHRva2VuIGlzAFNoaWZ0aW5nACAgICQlZCA9IABNUkkgc3R5bGUgc2NyaXB0AC0APwBmaWxsIHZhbHVlACpkZWZhdWx0KgBQVF9HTlVfU1RBQ0sARklMRUhEUgBQSERSUwBWRVJTSU9OIHNjcmlwdABnbG9iYWwAbG9jYWwAZXh0ZXJuAC0+ICQkID0Ac3ludGF4IGVycm9yAEVycm9yOiBkaXNjYXJkaW5nAEVycm9yOiBwb3BwaW5nAG1lbW9yeSBleGhhdXN0ZWQAQ2xlYW51cDogZGlzY2FyZGluZyBsb29rYWhlYWQAQ2xlYW51cDogcG9wcGluZwBQVF9HTlVfRUhfRlJBTUUAUFRfTlVMTABQVF9MT0FEAFBUX0RZTkFNSUMAUFRfSU5URVJQAFBUX05PVEUAUFRfU0hMSUIAUFRfUEhEUgBQVF9UTFMAJGVuZABJTlQATE5BTUUAUExVU0VRAE1JTlVTRVEATVVMVEVRAERJVkVRACc9JwBMU0hJRlRFUQBSU0hJRlRFUQBBTkRFUQBPUkVRACc/JwAnOicAT1JPUgBBTkRBTkQAJ3wnACdeJwAnJicAJzwnACc+JwBHRQBMU0hJRlQAUlNISUZUACcrJwAnLScAJyonACcvJwAnJScAVU5BUlkAJygnAEFMSUdOX0sAQkxPQ0sAQklORABTUVVBRABMT05HAFNIT1JUAEJZVEUAU0VDVElPTlMASU5TRVJUX0sAQUZURVIAQkVGT1JFAERBVEFfU0VHTUVOVF9BTElHTgBEQVRBX1NFR01FTlRfUkVMUk9fRU5EAERBVEFfU0VHTUVOVF9FTkQAU09SVF9CWV9OQU1FAFNPUlRfQllfQUxJR05NRU5UAFNPUlRfTk9ORQBTT1JUX0JZX0lOSVRfUFJJT1JJVFkAJ3snACd9JwBTSVpFT0ZfSEVBREVSUwBPVVRQVVRfRk9STUFUAEZPUkNFX0NPTU1PTl9BTExPQ0FUSU9OAE9VVFBVVF9BUkNIAElOSElCSVRfQ09NTU9OX0FMTE9DQVRJT04ARk9SQ0VfR1JPVVBfQUxMT0NBVElPTgBTRUdNRU5UX1NUQVJUAElOQ0xVREUATUVNT1JZAFJFR0lPTl9BTElBUwBMRF9GRUFUVVJFAE5PTE9BRABEU0VDVABDT1BZAElORk8AT1ZFUkxBWQBERUZJTkVEAFRBUkdFVF9LAFNFQVJDSF9ESVIATUFQAEVOVFJZAE5FWFQAU0laRU9GAEFMSUdOT0YATE9BREFERFIATUFYX0sATUlOX0sAU1RBUlRVUABITEwAU1lTTElCAE5PRkxPQVQATk9DUk9TU1JFRlMATk9DUk9TU1JFRlNfVE8AT1JJR0lOAEZJTEwATEVOR1RIAENSRUFURV9PQkpFQ1RfU1lNQk9MUwBHUk9VUABPVVRQVVQAQ09OU1RSVUNUT1JTAEFMSUdOTU9EAFNVQkFMSUdOAFBST1ZJREUAUFJPVklERV9ISURERU4AQVNfTkVFREVEAENISVAAQUJTT0xVVEUATkVXTElORQBFTkRXT1JEAE9SREVSAE5BTUVXT1JEAEFTU0VSVF9LAExPRzJDRUlMAFBVQkxJQwBERUZTWU1FTkQAQkFTRQBUUlVOQ0FURQBJTlBVVF9TQ1JJUFQASU5QVVRfTVJJX1NDUklQVABJTlBVVF9ERUZTWU0AQ0FTRQBFWFRFUk4AVkVSU19UQUcAVkVSU19JREVOVElGSUVSAEdMT0JBTABMT0NBTABWRVJTSU9OSwBJTlBVVF9WRVJTSU9OX1NDUklQVABLRUVQAE9OTFlfSUZfUk8AT05MWV9JRl9SVwBTUEVDSUFMAElOUFVUX1NFQ1RJT05fRkxBR1MAQUxJR05fV0lUSF9JTlBVVABFWENMVURFX0ZJTEUAQ09OU1RBTlQASU5QVVRfRFlOQU1JQ19MSVNUACcsJwAnOycAJyknACdbJwAnXScAJyEnACd+JwAkYWNjZXB0AGZpbGVuYW1lAGRlZnN5bV9leHByACRAMQBtcmlfc2NyaXB0X2ZpbGUAJEAyAG1yaV9zY3JpcHRfbGluZXMAbXJpX3NjcmlwdF9jb21tYW5kACRAMwBvcmRlcm5hbWVsaXN0AG1yaV9sb2FkX25hbWVfbGlzdABtcmlfYWJzX25hbWVfbGlzdABjYXNlc3ltbGlzdABleHRlcm5fbmFtZV9saXN0ACRANABleHRlcm5fbmFtZV9saXN0X2JvZHkAJEA1AGlmaWxlX2xpc3QAaWZpbGVfcDEAJEA2ACRANwBpbnB1dF9saXN0ACRAOABpbnB1dF9saXN0MQBAOQBAMTAAQDExAHNlY19vcl9ncm91cF9wMQBzdGF0ZW1lbnRfYW55d2hlcmUAJEAxMgB3aWxkY2FyZF9uYW1lAHdpbGRjYXJkX21heWJlX2V4Y2x1ZGUAZmlsZW5hbWVfc3BlYwBzZWN0aW9uX25hbWVfc3BlYwBzZWN0X2ZsYWdfbGlzdABzZWN0X2ZsYWdzAGV4Y2x1ZGVfbmFtZV9saXN0AHNlY3Rpb25fbmFtZV9saXN0AGlucHV0X3NlY3Rpb25fc3BlY19ub19rZWVwAGlucHV0X3NlY3Rpb25fc3BlYwAkQDEzAHN0YXRlbWVudAAkQDE0ACRAMTUAc3RhdGVtZW50X2xpc3QAc3RhdGVtZW50X2xpc3Rfb3B0AGxlbmd0aABmaWxsX2V4cABmaWxsX29wdABhc3NpZ25fb3AAYXNzaWdubWVudABvcHRfY29tbWEAbWVtb3J5X3NwZWNfbGlzdF9vcHQAbWVtb3J5X3NwZWNfbGlzdABtZW1vcnlfc3BlYwAkQDE2ACRAMTcAb3JpZ2luX3NwZWMAbGVuZ3RoX3NwZWMAYXR0cmlidXRlc19vcHQAYXR0cmlidXRlc19saXN0AGF0dHJpYnV0ZXNfc3RyaW5nAHN0YXJ0dXAAaGlnaF9sZXZlbF9saWJyYXJ5AGhpZ2hfbGV2ZWxfbGlicmFyeV9OQU1FX2xpc3QAbG93X2xldmVsX2xpYnJhcnkAbG93X2xldmVsX2xpYnJhcnlfTkFNRV9saXN0AGZsb2F0aW5nX3BvaW50X3N1cHBvcnQAbm9jcm9zc3JlZl9saXN0AG11c3RiZV9leHAAJEAxOABtZW1zcGVjX2F0X29wdABvcHRfYXQAb3B0X2FsaWduAG9wdF9hbGlnbl93aXRoX2lucHV0AG9wdF9zdWJhbGlnbgBzZWN0X2NvbnN0cmFpbnQAJEAxOQAkQDIwACRAMjEAJEAyMgAkQDIzACRAMjQAJEAyNQAkQDI2ACRAMjcAJEAyOAAkQDI5ACRAMzAAJEAzMQBhdHlwZQBvcHRfZXhwX3dpdGhfdHlwZQBvcHRfZXhwX3dpdGhvdXRfdHlwZQBvcHRfbm9jcm9zc3JlZnMAbWVtc3BlY19vcHQAcGhkcl9vcHQAb3ZlcmxheV9zZWN0aW9uACRAMzIAJEAzMwAkQDM0AHBoZHJzAHBoZHJfbGlzdABwaGRyACRAMzUAJEAzNgBwaGRyX3R5cGUAcGhkcl9xdWFsaWZpZXJzAHBoZHJfdmFsAGR5bmFtaWNfbGlzdF9maWxlACRAMzcAZHluYW1pY19saXN0X25vZGVzAGR5bmFtaWNfbGlzdF9ub2RlAGR5bmFtaWNfbGlzdF90YWcAdmVyc2lvbl9zY3JpcHRf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AAAAAAACAgICAgIBAAQAAgMAAgQBAQIBBAQDAgQDBAQEBAQCAgIEBAICAgIABQIAAwIAAQMBAwABAwACAQIDAAICAAEBAQEBAQEBAQEEBAQECAQBAQEEAAUEAAUEBAQDAwYEAAIBAwIBAwIABQAHAAYEAgIABAIABwEBAQEFAQQEAQQEBAcHBwcEAQMEAgEDAQECAwQEBQEABQIBAQEEAQQEAAgABQIBAAEBAQEBAQECAAEBAQEBAQEBAQEDAwYGBgEABAEAAwEABwAFAwMAAwECAQIEBAMDAQQDAAEBAAIDAAICAwQCAgIDAwMDAwMDAwMDAwMDAwMDBQMDBAEBBAQEBAQEBAYGBgQGBAEGBgYEBAQDAAQABAABAAQAAQEBAAAAAAAAFAAAAAAAEgAABwAFAQEBAQEDAAIDAgYKAgEAAQIAAAMAAAAACwQAAgAABgEAAwUAAwACAQIEAgACAAUBAgQFBgECAAIEBAgBAQMDAAkABwEDAQMBAwABAAAAAAAAAAAAnACdAJ0AnQCdAJ0AngCgAJ8AogChAKMAowCkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApQCkAKQApACmAKYApgCnAKcAqACoAKkAqQCpAKsAqgCsAKwArACuAK0ArwCvALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACxALAAsACyALAAsACwALAAsACwALAAsAC0ALMAtQC1ALUAtQC1ALUAtgC1ALcAtQC4ALUAuQC6ALoAugC7ALsAvAC7AL0AvQC9AL4AvgC/AL8AvwDAAMAAwADAAMAAwADAAMAAwADBAMEAwgDDAMMAxADEAMUAxQDFAMUAxQDFAMYAxwDGAMgAyADIAMgAyADIAMgAyADJAMgAygDIAMsAywDMAMwAzQDNAM0AzQDNAM4AzwDPANAA0ADQANAA0ADQANAA0ADRANEA0gDSANIA0gDSANMA0wDUANUA1QDWANYA2ADXANkA1wDaANsA3ADcAN0A3QDeAN4A3wDgAOAA4QDhAOIA4wDjAOQA5ADlAOUA5QDnAOYA6ADoAOgA6ADoAOgA6ADoAOgA6ADoAOgA6ADoAOgA6ADoAOgA6ADoAOgA6ADoAOgA6ADoAOgA6ADoAOgA6ADoAOgA6ADoAOgA6ADoAOgA6ADoAOgA6ADoAOgA6ADoAOgA6QDpAOoA6gDrAOsA7ADsAO0A7QDuAO4A7gDuAPAA8QDyAPMA9ADvAPUA9gD3APgA+QDvAPoA+wDvAPwA7wD9AP0A/QD9AP0A/gD+AP4A/wD/AP8A/wAAAQABAQEBAQIBAgEDAQMBBAEFAQYBBwEEAQgBCQEJAQsBDAEKAQ0BDgEOAQ4BDwEPAREBEAESARIBEwEUARYBFQEYARcBGQEZARoBGgEaARsBGwEcARwBHAEcARwBHQEdAR0BHQEeAR0BHwEdAR0BHQEdAR0BHQEdASABIAEAAAAAAAAAAAAAAAAAAAAAgACBAIIAiwCUAJ0ArQCuAKEAogCfAKAAFQEWARABEQEAAK8AowAEADoAhgAZARoBOgASARMBBAAuAC8AMAA9AD4APwBAAEEAQwBEAEUARgBNAE4ATwBQAFgAWQBaAFsAXABdAF4AYwBkAGUAagBrAGwAdwCEAJYAsAC5ALsA0gDUAN8A4ADiAOQACAEXARgBBAAmAEMAZwBuAG8AcABxAHIAdAB1AHYAeQB6AHwAfQB+AIMAhACFAKQACgAEAIQAhwCIAIkAHAEdAToAGgGIAIkAFAEdARMBBgAHAAgACQAKAAsADAANAA4A0AA6ADoAMQAyACUAJQAEAJ4AOgAlACUAJQAlACUAJQAlACUAJQAlACUAJQCxACUAJQAlACUAvAAlAJUAlgDRAIoABACeAAQAAwAEAB4AHwAlACYAJwAzADQANQA8AEIATABRAFIAUwBUAFUAVgBXAF8AYQBxAHcAeACTAJoAmwDoAAQABACoAAQApwCmAAQABAAEAOgABAADAAQAqQCqAKsABABzAOgABAAQABAAOwCWABwBOwCWAOYA5wDmALoACQEEAAQABAAEALIABABDANUA1gDXAAQABAAEAJ4AngAEAJ4AlwCeAOEA4wAEAOUA5QCzALQAJQCeAAQABAAEACUAqgA6AAoAlQClAAoAlQDoAOgA6AAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUA6ADoAA8AEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAlQAKAJUA6ACVAJUABACVAAoAlQDoAJUAlQAEAKwAOgAdAR0BlgAEAIQAhwCIAIkAOwCWAOgABAA7AEMASwBkALsA7wAEADsACgGVAJcAlwCvANgAngA7AJUA0wCVAJcAlwCXAJcAlwCXAJcA0wCXANMAlQDlAJcAlwCXAAQABQBtALUAswCXAAoACgAKAOgAlwAZAegA6ACjAOgA6ACXAOgA6ADoAOgA6AAEAAQA6AAEAAQABAAEAOgA6AAEAAQA6ADoAOgABADoAOgA6ADoAOgA6ADoAOgA6ADoAOgA6ADoAOgA6ADoAOgA6ADoAOgA6ADoAAQABAAEAOgA6AADAAQABAAEAJUAHwGWAJYABACGAJYAGwHwAJ4A9QD6AAsBBAAkACUA3ADZANcABACeAJ4A5QAlAAQABQBtAJUAlwDmAOYA5gCVADsAJACVAJcAlwCVAJUAlwCVAJcAlwCXAJcAlwCXAJUAlQCXAJcAlwCVAJcAlwAQAAQAHQGJADoAhgCWACUAKADoAP4A/wD8ABAA6AAAAf8A6AANAZUABACaAN0A3gAQANUAlwC2ACUABAAFAG0AlwCXAJcABADoAOgA6ADoAOgA6AAEAOgAlgAgARAAHgFHAEgASQBKAEsAlwD9ACUAJQD+ABAAaADqALoAEABdAAEB+wAEAGgADgEEAAQAlwDeAF8A2gAkALUAuAAlAJcAlwCXAJcAlwCXAJcAlwA7AB0BHQGXAOgAEAAlACYA6wAkAOoAOgAlAA8BJQAMAZcACgDTAJcAtQC3AJYAIAGXAOgAJQCRAOwAaQDtALoA6AAOAegAlgDmAGEA2wCXALUAOwAnAP4AlwDoAO0AJQD2ADsAlwCXAAoAlwAlABAAlwDxAOgAOgAOAeYA6ACNAI4AjwDuAJcA9wCXADoABAH+APIABAA7ABAABAAPACAAKQAqACsALAAtADYAOABDAGAAYgBmAHcAjACQAJIAlgCYAL0AvgC/AMIAxQDGAMgAywDMAM0A0gAFAfgAJQAlAJ4AJQDJACUAJQAlAAQANgA3ADgAOQC+AMAAxAAlAAQANgCYAL8AyAA7ACUA0QA6ABkAAgFmAL4AvgDKAM4A5gAlAMcABADBAL0AwwAlACUAJQAlAJkA0wDEACUAxAAlAPMA5gDMAAQAaADpAJcAlwCXAMwAlwDoAAQAxQAVAJcAlwC9ADYANwC+ADYANwC+AL4AvgDAAJcAmQDEAAIBlwA7ABkAAwEkAJUAlwAEAL0AJQAlAJcAJQAlAJcAlwCXAJcA6QAGAQQACgAQAM8ABAC+AL4AvgC+AAMBAwHOAAQA+QCXAJcAlwCXAJcAzwDPANMA0QCXAJcAlwCXAPQABwHTANMAAAAAAE0AcQDfABcABAASAHYASwAEAIoAVwAZAAQA6gDrAAQA7gFeAAQABAAEAAUAFQAEAAUApwIPAAQAAAIPAA8AJAAEAAUA8QEEAAQASQIEAAoABAAEAAUAIAAEAAUAIAAgADoABAAEAAUACgCFAjsAOgA7AJUAhgCXALEChgC6AoMAhAC9AoYAhwA2ADYAOAA4AAQAjQCWAG8CAACWADICnACdAAoABAAEAKQCBACVABAABAAEAJkAOwDRAg8ADwDbAg8AlQBDAJcADwAEAMMCtAC1AAQAtwDsAMkCUQIgACAADwAgAL8AwwIEACAAVALsAkcCyQKVADoAhgBtAJkAOwBtACAACgCGADYANwDTADYANwBtAGgANgA3ADgAOQAdA5UAlQBtAJcAJQBtACcAlwCXAN0AmgBtADoAlQCaAJAAkgCSAJcAgQI6AJUAmACYAJUA9gCXAAQA+QD6AJcA/AD9AJUAlQCXAAEBAgEDAQQBBQGVAJUACAGXAMsAzACVAA0BDgGVAAQAEQESARMBZgAxADIAFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAGSAJIAYwGSADoAMgEzAZIAlQCEAJcAJQCHAIgAiQAgACEAIgAlAJIAhACVAJYAhwCIAIkAjQCOAI8ABABuAW8BcAEDAAQARwE6AAMABAAPACUAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAlQBgAZcAYgEEAB4AHwBHAEgASQBKAEsAJQAmACcADwCEABgDGQOHAIgAiQANAw4DJQAlADMANAA1ACUAJQAlACAAJQAlADwAJQCKACUAJQCEAEIAUgGHAIgAiQBHAEgASQBKAEsATAAlACUAJQAvAlEAUgBTAFQAVQBWAFcAgACBAIIAJQAlAHMBJQBfAAQAYQAEAIsABAAEALUBBAC3AbgBuQEEAJQABAAEAAQAlwBxAAQAAwBzAAQABAB3AHgAHAAdAB4AHwAgACEAIgAEANABOwAQANMB1AEQANYBlgA7AJYAlQAEAJcA3QHeAQQABAAEAJMABAAEAOUBlwADAAQAmgCbAAQABACuAQoABgAHAAgACQAKAAsADAANAA4AOwAEACUABAAEAAQABAAlAEMAOgAeAB8AlQCVACUAJQBLACUAJgAnADoAUAAlAB4AHwAgACEAIgAlACUAlQAzADQANQAEACUAHAIkAJUAlQA8AGQAJQAlACUAJQBCAGoAawBsAE0CJQAlACUAJQAlAEwAJQAlACUAdwBRAFIAUwBUAFUAVgBXAEMAJQAlACUAlgAKAEICXwBLAGEAOwCWAEgCUABKApcAOwBwApcACgAKAAQAEwIUAgQAcQBWAgQABAADAAQAdwB4AGQABACXAAoAlwAEAGoAawBsAJcAlwCXAAQAlwBrAgQAlwAEAJcAdwAEAHICBAAeAB8ABACTAAQAlQCXACUAJgAnAJoAmwAGAAcACAAJAAoACwAMAA0ADgAzADQANQAcAwQABAA7AAQAlgA8AJcABAAlACUAQwBCAJYAKgMrA5MCBADBAksAOgAQAEwAJQBQAJUAlwBRAFIAUwBUAFUAVgBXAAMABAAEAAQAlwCXAJcAXwCXAGEAZACXAJcAlwCXAJUAagBrAGwAlwCXAJcAlwCWABAAcQAlAB4AHwB3AMwCdwB4ABAAJQAmACcAKABoAF0ABAAEAF8AJACXAJcAJQA7ADMANAA1AJcAJQA6ABAAlwAmADwAJQCTACUAlQAKAEIAlQAlAJoAmwCWAJEAaQCWAGEATAAKADsAJQAlAFEAUgBTAFQAVQBWAFcAAwAEABAAOgA6ACUAJQBfABAAYQAlACUAJQAQABgAGQAaABsAHAAdAB4AHwAgACEAIgBxACUAHgAfADsAJQB3AHgAJQAlACYAJwAlADoAGQAlAAQAJQAlACUAJQAlACUAMwA0ADUABAAlAGgAOwAZAJcAPACXAJMAlwAkAJcAQgAEACUAmgCbAJcAlwCXACUAlwBMAAQAJQAlAJcAUQBSAFMAVABVAFYAVwADAAQABACXAAQAlwCXAF8AlwBhABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAHEAlwAeAB8AlwCXAHcAeADbACUAJgAnAJcAlwD7APEAoAKXAJcAkgDNAqQC1wIzADQANQC+ARADVwH7AfoCJQI8AFgCkwAaAAQAuAFCAPgAZgCaAJsA3AI+Av////8PAEwA//////////9RAFIAUwBUAFUAVgBXAP//////////IAD/////XwD//2EA////////KQAqACsALAAtAP//////////////////cQA2AP//OAD/////dwB4AP////////////8PAEMAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIA//+TAP///////////////5oAmwBgAP//YgAEAP////9mAP///////2oAawBsAP///////////////////////w8AdwARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgD/////jAAuAC8AMACQAP//kgD///////+WAP//mAD///////89AD4APwBAAEEA//9DAEQARQBGAP///////////////00ATgBPAFAA//8EAP////////////9YAFkAWgBbAFwAXQBeAP//////////YwBkAGUA////////lQBqAGsAbAD/////////////JAD//////////3cA//////////8uAC8AMAD/////////////hAD/////////////igA9AD4APwBAAEEA//9DAEQARQBGAP//lgD//////////00ATgBPAFAAlwD///////////////9YAFkAWgBbAFwAXQBeAP//////////YwBkAGUA//////////9qAGsAbAD//////////////////////////3cA////////////////////////////////hAATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAA8AlgARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAPAP//EQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIADwD//xEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAA8A//8RABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAPAP//EQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIADwD//xEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgD//w8AlwARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAPAJcAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIADwCXABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAA8AlwARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAPAJcAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIADwCXABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIA/////w8AlwARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAPAJcAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIADwCXABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAA8AlwARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAPAJcAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIADwCXABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAP///////////////////////////////////////w8AlwARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAPAJcAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIADwCXABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAA8AlwARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAPAJcAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIADwCXABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAP///////////////////////wQA////////DwCVABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAP//lQD//wQA////////////////JgD//////////////////////////5UA//////////////////////////////////8kAP//JgD//0MADwCVABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAP//lQAlAP///////0MA/////////////////////2cA/////////////5UAbgBvAHAAcQByAHMAdAB1AHYA/////3kAegD//3wAfQB+AP///////2cAgwCEAIUA////////bgBvAHAAcQByAJUAdAB1AHYA//+cAnkAegD//3wAfQB+AP//////////gwCEAIUAqgKrAv////////////////////////////////////+6Av////+9Ag8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgDSAtMC1ALVAv//1wL//9kC///bAg8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAPAP//EQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIABAMFA///BwMIAxIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAAAAAAAAAAAAAAAAAAALYA0gBXAWcA+QE/ANQAmAD5Ae4AwABrADABYAFiAbICHgLJALsC6ALFAcYB6gLFAcYBwgKKAn0AMQKKAooCQP/FAcYBIgLcAEwBXQInAvkA7ADFAcYBiwJoAWkBiwKLAhUArAECAgMC/ACnAkD/FQDOAU8BsgFQAdAC6gHYAuQA5QDaAucA6QC8ArwCkgKSAoYC8gCzAXgCEQDrAVAC/gD/ABADsgKyAqcCsgJWAREDFACyAtYCTQHtAooCigL5AooCVgHdAF8BigKyAt4CFQEWAV8ALQFkAeUCZAKLAosCigKLAjQBpwJfAIsCZwIDA1sCpwJWARkAFgDHAfgChwLHAYsCXgAWAO4C7wJEAfEC8gLHASgCswK0ArUCtgIlA1YBVgHHAWEBHQJqAWYCLALrAlQB+gEEAmYAMQH6AZkCmgKaAuwChAJ3AMgBvQKcAsgBcQFPAj0BdAF1AegAdwF4AcgB+gBjAnoBewF8AX0BfgFjAcgBgQFxAjoBOwH9AIYBhwGtAT0BigGLAYwBxgJ5AHoAjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGaApoCwwGaAngApwGoAZoCVgFgAPcCewBhAGIAYwAnASgBKQF8AJoCYACTAJQAYQBoAGkAewJ8An0CfQDKAcsBzAGpAaoBtgF/AJoAmwAXAYAAGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBVgHBAQwDwgGyApwAnQAVAhYCFwIYAhkCngCfAKAAigI+ASIDIwM/AUABQQEYAxkDgQCCAKEAogCjAIMAhACFAIsChgCHAKQAiACWAIkAigA+AaUAPwA/AUAB6AEVAhYCFwIYAhkCpgCLAI0AjgBOAqcAqACpAKoAqwCsAK0AAQACAAMAjwCQAGcAkgCuAJcArwCZAAQAtwC4AO4BugDzAe4B9gG9AAUAvgC/AMEAGgKwAEUBwgDIAMMAxwCxALIAIwEkASUBJgEnASgBKQHKAAkCzQDLAAoCCwLMAAwCzgDQANEA0AHXANEBDQIOAtgA2QDaALMA4QDiABACGgKaAJsAtAC1AOMA5gDnASsBbQBuAG8AcABxAHIAcwB0AHUARgHsAPEA8wD0AEUB9QD2AEcB+ACcAJ0ALgEvAQEBAgFIAZ4AnwCgADkBLACL/yUBJgEnASgBKQEDAQQBNQGhAKIAowA3AQUBQAJFAjYBWAGkAEkBBgEHAQgBCQGlADcAOAA5AGACCgELAQwBDQEOAaYADwEQAREBOgCnAKgAqQCqAKsArACtAEcBEgETARQBPAFuAVUCrgBIAa8AQgFDAVwCLABeAlEBVQF5AlkBbwFwAX8BPQI+AoABsABpAoIBRQGaAJsAsQCyAEkBgwFaATIBWwGEATcAOAA5AFwBXQFeAYUBZQF2AogBZgGJAWcBOgCNAXoCpAGcAJ0ApQGzAKYBLAFtAZ4AnwCgALQAtQBtAG4AbwBwAHEAcgBzAHQAdQChAKIAowAkA6sBsQFtAroBrwGkAHIBwAG8AcQBRwGlALABLAMtA6wC5gHdAkgB6QH9AaYAAQIsANYByQGnAKgAqQCqAKsArACtAJoAmwAIAg8C1wHZAdoBrgDbAa8ASQHcAd8B4AHkAfgBNwA4ADkA/wEFAgYCBwIRAhMCsAAcApwAnQA6AOcCsQCyAB8C7AGfAKAA7QEgAiQCKgIrAi4CMAI0AjsCMwI8AqEAogCjAD8CQgJHAkECTAJDAqQASAKzAEoCMwFNAqUAVgFWArQAtQBSAlcCWQJfAmECpgBwAmUCawJyAqcAqACpAKoAqwCsAK0AmgCbAHMCdwKCAh0CqgKuAIgCrwCrAq0CrwLyAR8BIAEhASIBIwEkASUBJgEnASgBKQGwALACnACdAMACsQKxALIAugKeAJ8AoADBAsMCxALMAs4C0gLTAtQC1QKL/9kCoQCiAKMA3wLbAuAC/AL9AuICpADjArMA5AL/AuYCpQACAwQDtAC1APsCc/8BAwUDBgOmAA8DBwMIAwkDpwCoAKkAqgCrAKwArQCaAJsAEwMKAxsDCwMdA64AHgOvABsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpAbAAHwOcAJ0AIAMhA7EAsgBSAZ4AnwCgACYDJwN2AWwBvgIoAykD9wDpAr8C9gKhAKIAowD+ARoDvwEtAg0DRgKkAGoCswBsAIkC9QGlAHMBzwC0ALUA+gJTAgAAAACKAqYAAAAAAAAAAACnAKgAqQCqAKsArACtAAAAAAAAAAAAiwIAAAAArgAAAK8AAAAAAAAAjAKNAo4CjwKQAgAAAAAAAAAAAAAAAAAAsACRAgAAkgIAAAAAsQCyAAAAAAAAAAAAAAAXAZMCGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBAACzAAAAAAAAAAAAAAAAALQAtQCUAgAAlQIcAAAAAACWAgAAAAAAADcAOAA5AAAAAAAAAAAAAAAAAAAAAAAAABcBlwIYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEAAAAAmAIdAB4AHwCZAgAAmgIAAAAAAACbAgAAnAIAAAAAAAAgACEAIgAjACQAAAAlACYAJwAoAAAAAAAAAAAAAAAAACkAKgArACwAAAAcAAAAAAAAAAAAAAAtAC4ALwAwADEAMgAzAAAAAAAAAAAANAA1ADYAAAAAAAAAKgE3ADgAOQAAAAAAAAAAAAAAuwEAAAAAAAAAADoAAAAAAAAAAAAdAB4AHwAAAAAAAAAAAAAAOwAAAAAAAAAAAAAApf4gACEAIgAjACQAAAAlACYAJwAoAAAAPAAAAAAAAAAAACkAKgArACwAeQEAAAAAAAAAAAAAAAAtAC4ALwAwADEAMgAzAAAAAAAAAAAANAA1ADYAAAAAAAAAAAA3ADgAOQAAAAAAAAAAAAAAAAAAAAAAAAAAADoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOwAaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpARcBPAAYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEXAQAAGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBFwEAABgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpARcBAAAYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEXAQAAGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBFwEAABgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEAABcB0gEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEXAdUBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBFwHYARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpARcB4QEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEXAeMBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBFwE1AhgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBAAAAABcBNgIYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEXATcCGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBFwE4AhgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpARcBOQIYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEXAToCGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBFwFUAhgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcBaAIYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEXAW4CGAEZARoB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AgIHAg4CIAI1AkICSwJWAl8CagJzAnwCgAKJAo0ClQKXApYCnQKeAqICowKoAq0CrgKzArcCtwK7AroCwQLCAsUCxwLLAs0CzwLRAtMC2ALfAuEC5QLnAukC6wLtAu8C8QLzAvgC+AL9AgEDCQMNAxEDGQMZAx0DIAMgAyMDJAMpAygDLgMtAzQDOwNDA0QDSANJA00DTwNUA1kDWgNfA2EDZwNpA2sDbwNxA3cDegODA44DjgOUA5YDmAOaA5wDngOhA6MDpQOnA6kDqwOtA68DsQOzA7UDtwO5A7sDvQO/A8EDwwPFA8cDyQPLA84D0APSA9QD1gPYA9oD3APeA+AD4gPkA+0D7wPxA/MD9QP3A/kD+wMBBAIEBgQHBAsEDAQQBBEEFQQWBBoEGwQcBB0EIAQlBCgELgQwBCAENwQ5BDsEQARCBDYETAROBEwEVARTBFoEWwRcBF0EXgRiBGMEZARoBGkEbgRvBHQEdQR6BHsEgASCBIcEigSXBJsEoASiBJkEqgStBK8EswS0BLMEvQTqBO0E+gQDBQYFDQUNBRkFGgUeBSIFKwUrBTkFOQVDBUQFSAVMBVAFVwVbBWMFZgVqBW4FcgV5BX0FgQWFBYoFiQWXBZYFoAWkBagFrAWwBbQFugW8BQAAAAAAAAAAAAAAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICmgICAiIVAiWXIB6VHwIhAgICAgICAgICAhCWGAoZDwICAgICAgICAgICAgICAgICAgICAgICAgICApgCmRQCAgICAgICAgICAgICAgICAgICAgICAgICAgICOhM7mwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgECAwQFBgcICQsMDQ4REhYXGhscHSMkJicoKSorLC0uLzAxMjM0NTY3ODk8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlAAAAAAlRiVz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WbdAAAAAAABnt0AAAAAAAGe3QAAAAAAAZ7dAAAAAAABnt0AAAAAAAGe3QAAAAAAAZ7dAAAAAAAAwt0AAAAAAAGe3QAAAAAAAZ7dAAAAAAABnt0AAAAAAAGe3QAAAAAAAZ7dAAAAAAABnt0AAAAAAAGe3QAAAAAAAZ7dAAAAAAABZt0AAAAAAAG8BAABwAQAAegEAAIMBAABxAQAAeXlsZXgAAAAAAAAAAAADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAUABQAFAAUABQAFAGQABQAFAAUABQAFAAUABQAFAB4ABQAFAAUABQAFAAUABQAFAAUABQAFACYAKwArAB4ADwAPABAAEAAPAF4AEAA6ACYALQAtADoALwAhAy8ADwAvABAAegBkAF4ABQAvAAUABQAxAHoAMgAxAC8ALwAyADMA0gA2ADQAMAA2ADQASgAwADQAMwAwACIDMgDSAAUABQAFAAYABgAGAAYABgAGADAABgAGAAYABgAGAAYABgAGAGgABgAGAAYABgAGAAYABgAGAAYABgAGAA8AOwAQADkAOQA8AD0AeQBmADwAIwM7ADwAPAA5AGgAPQB5AEoAQABmAI8AQABAAI8ABgBmAAYABgBAAEAAQABrAGsAQABAAG0AbQB7AEAAkQB8AM4AlAAkA3wAlADOAHsAfACRAAYABgAGAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwCEAAsACwALAAsACwALAAsACwALAAsAKAAoACgAiADBAHAAigBwALYAfgDBAFsBcAB+AHEAcABxAFsBigAoAH4AKABwAHAAcQB+AAsAcQALAAsAjgBxAHEAkgCOALYAkgCOAJgAkgDgANYBmADeAN8AhACYAIgAJQMoAI4AKAALAAsACwALAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMACYDDAAMAAwADAAMAAwADAAMAAwADAByAHIAkAByAHIAcwCQAHMA4ADfAMUAcgAnA9YBdABzAHQA3gByAHIAkABAAXMAcwB0AMUADABzAAwADACZAHQAdACNAJsAjQC+AI0AlwCXAJkAKQMqA40AmwACAb4AAgFAAZcAjQCNAAwADAAMAAwADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQARABEAEQARABEAEQBfAREAEQARABEAEQARABEAEQBfAREAEQARABEAEQARABEAEQARABEAgQCaAIEAvAC8AJoAygCKAZoAmgCBAMAAvQC9ALwAigHKAIEAgQC9APwAwAAIAb0AwAC/ABEAEQARABEAngCBAPwAngCeAL8AygC/ABMBCAGeAJ4AngArAywDngCeAL8ALQPXAZ4AEwERABEAEQARABIAEgASABIAEgASAC8DEgASABIAEgASABIAEgASADADEgASABIAEgASABIAEgASABIAEgAnACcAJwDJAM0AywDoAA8B6ABRAQ8BUQEPAckAzQDLAH4B1wFMAScADwEnABcBDwGxAhcBEgASABIAEgBMARcBJwB+AckAywDoAFgB6AAgAVgBIAHLAMkAeAEgAXgBzQAxAycAWAEnABIAEgASABIAEwATABMAJwATABMAsQITABMAEwATADMDEwATADQDzAATABMAEwATABMAEwATABMAEwDMAIsAiwCLAIkBagFHAWoBRwFIAYkBSAGOAXIBsgKOAUcBiQE1A0gBiwCOAYsARwFHAXIBSAFIAZcB2AGXAbACzACLAJcBagETAGoBEwDMAJECoQITADYDOAM6A5ECoQI7AzwDiwCyAosAEwATABMAEwAUABQAFACLABQAFAA9AxQAFAAUABQA2AEUABQAPgOwAhQAFAAUABQAFAAUABQAFAAUAIwAjACMAD8DQANBA0IDSQFEA0kBRQPwAPAA8ABBAUEBQQFJASMCjAAjAowARgNHA0kBSQFIA04BSQNOAfAASgPwAEEBSwNBARQATgEUAEwDTQNOAxQATwNOAU4BQQFQAyMCjAAjAowAUQMUABQAFAAUABwAHAAcAPAAUgPwAEEBUwNBARwAHAAcABwAHAAcAFIBQQFSAVMBVANTAWgBUwFoAVUDUgFWA1oDUwFbA18DaAFSAVIBYANTAVMBYgNoAWgBHAAcABwAHAAcABwAXABcAFwAbAFsAWwBYwNkA2UDXABcAFwAXABcAFwAhQFmAyUChQElAoUBaAFsAWoDbAFrA28DJQKFAXADcgOFAXMDJQIlAiUCdQN2A3cDegNcAFwAXABcAFwAXABnAGcAZwB0A3sDfANsAX4DbAFnAGcAZwBnAGcAZwB5A2cAfwMuAmcALgJnAIADZwB+Ay4CgQN1Ay4ChAOFA3kDZwCHA4kDLgIuAooDdgOLA2cAZwBnAGcAZwBnAIwDZwCNA2cAjgNnAI8DZwCQA3QDkQOSA5MDZwBvAG8AbwCUA5UDlgOXA5gDmgNvAG8AbwBvAG8AbwCbA28AnAOdA54DbwCgA6EDbwCiA6QDpQNvAG8ApgOnA6gDbwCpA6EDqgOrA6wDrQOuA28AbwBvAG8AbwBvAK8DbwCwA7IDswO0A7YDbwC4A64DuQO6A7sDbwCHAIcAhwC8A70DvgO/A8ADwQOHAIcAhwCHAIcAhwDCA8MDxAPFA8YDxwPIA8kDygPNA84D0QPSA9MD1gPXA9kD2wPMA9AD3APdA94D3wPgA4cAhwCHAIcAhwCHAKYApgCmAMwD4QPQA+ID4wPkA6YApgCmAKYApgCmAOUD5gPnA+gD6QPqA+sD7QPuA+8D8APxA/MD9QP3A/gD+QP6A/sD/AP9A/4D9AMABAEEpgCmAKYApgCmAKYArgCuAK4A9AMCBAYECAQJBAsErgCuAK4ArgCuAK4ADAQNBBEEEwQUBBUEFgQXBBgEGQQbBB0EHgQfBCAEIQQiBCQEJgQnBCgEJAQqBCwELgSuAK4ArgCuAK4ArgC7ALsAuwAvBDEEMwQ0BDUENgS7ALsAuwC7ALsAuwA3BLsAOAQ5BDoEuwAVBBQEuwA7BDwEPQQ+BD8EQgRDBEQEuwBFBEYERwRIBEkESwRMBLsAuwC7ALsAuwC7AE0EuwBOBE8EUQRSBFQEuwBVBFYEWARaBFsEuwA5ATkBOQFcBF0EXgRfBGAEYQQ5ATkBOQE5ATkBOQFiBGMEZARnBDkBaAQ5AWkEagRrBGwEbgRwBHEEcgRuBHQEdgR3BHkEegR8BH4EfwSABDkBOQE5ATkBOQE5AYEEggSDBDkBhAQ5AacBpwGnAYUEhgSHBIgEiQSKBKcBpwGnAacBpwGnAY0EjgSPBJAEpwGRBKcBlQSWBJcEmwScBJ0EngSgBKEEogSjBKQEpQSnBKgEqQSrBKwEpwGnAacBpwGnAacBrQSuBK8EpwGxBKcBqwGrAasBsgS0BLUEtgS3BLIEqwGrAasBqwGrAasBuAS5BLoEuwSrAb4EqwHABMEEwgTDBMQExgTHBMgEyQTLBM0EzgTPBNAE0QTTBNQE1QSrAasBqwGrAasBqwHXBNgE2QSrAdoEqwGvAa8BrwHcBN0E3gTfBOAE4gSvAa8BrwGvAa8BrwHjBK8B5ATmBOcE6ATpBOoErwHrBO0E7gTwBPEE8gTzBO4ErwH0BPUE9gT3BPoE/AT9BK8BrwGvAa8BrwGvAf4ErwH/BAAFAQUCBQMFrwEFBQYFCAUJBQoFrwFcA1wDCwVcA1wDXAMMBVwDXANcA1wDXAMNBVwDDgUPBRAFEgUTBRQFFQVcA1wDXANcA1wDFgUXBRgFGgUbBRwFHQUgBSEFIgUkBSUFJwUcBSgFKQUsBS0FHAUuBS8FMAUzBTUFNwU4BTkFOgU7BVwDPAU9BT4FPwVCBUMFRAVFBUYFRwVIBUoFSwVNBVAFVwVZBVoFWwVcBV0FXgVcA1wDXANsA2wDXwVsA2wDbANMBWwDbANsA2wDbANgBWwDTAVhBWIFZAVjBUwFZQVsA2wDbANsA2wDYwVmBWcFaAVpBWoFawVsBW0FbwVyBXQFdQV2BXcFeAV5BXoFewV8BX0FfgV/BXgFgAWBBYIFgwWEBWwDhQWGBYcFiAWJBYoFiwWMBY0FjgWPBYgFkAWRBZIFlAWVBZYFlwWYBZkFmgVsA2wDbAMEBAQEmwUEBAQEBAScBQQEBAQEBAQEBASdBQQEnwWiBaMFpAWlBacFqAUEBAQEBAQEBAQEqQWqBasFrAWtBa4FrwWwBbEFtAW1BbYFtwW4BbkFugW7BbwFvQW+Bb8FwAXCBcUFxgXHBcgFygXLBQQEzAXNBc4FzwXQBdEF0gXTBdQF1QXWBdcF2AXZBdsF3AXdBd4F3wXgBeEF4gUEBAQEBAQPBA8E4wUPBA8EDwTkBQ8EDwQPBA8EDwTlBQ8E5gXnBegF6QXqBesF7AUPBA8EDwQPBA8E7QXuBe8F8AXxBfIF8wX0BfUF9gX4BfkF+gX7BfwF/QX+Bf8FAAYBBgMGBAYGBgcGCAYJBgoGCwYMBg8EDgYPBhAGEQYTBhQGFQYXBhgGGQYaBhsGHAYdBh8GIAYiBiMGJAYlBiYGJwYPBA8EDwQoBioGKwYsBi0GLwYwBjEGMgYzBjQGNQYyBjYGNwY5BjsGPAY9Bj4GPwZBBkAGQgZDBjIGQAZFBkYGRwZIBkkGSgZLBkwGSQZNBk4GUAZABlIGUwZUBlUGVgZXBlgGWQZJBloGWwZcBl0GXgZiBmMGZQZmBmcGaAZpBm4GbwZwBnEGcgZzBnQGdQZ2BnoGewZ9Bn4GfwaABoEGggaDBoQGhQaGBocGiAaJBooGiwaMBo0GjgaPBpAGkQaSBpMGlAaVBpYGlwaZBpoGnAadBp4GnwagBqEGogakBqYGpwapBqoGrAatBq4GrwawBrEGsgazBrQGtQa2BrcGuAa5BrsGvAa9Br4GvwbABsEGwgbDBsQGxQbHBsgGygbLBswGzQbOBs8G0QbSBtMG1QbWBtcG2AbZBtoG2wbcBt0G3gbfBuEG4gbkBuUG5gbnBugG6gbrBuwG7QbuBu8G8AbxBvIG8wb0BvUG9gb3BvkG+gb7BvwG/gYABwEHAgcDBwYHCAcLBw0HDwcRBxIHEwcXBxcHFwcXBxcHFwcXBxcHFwcXBxcHGAcYBxgHGAcYBxgHGAcYBxgHGAcYBxkHGQcZBxkHGQcZBxkHGQcZBxkHGQcaBxoHGgcaBxoHGgcaBxoHGgcaBxoHGwcbBxsHGwcbBxsHGwcbBxsHGwcbBxwHHAccBxwHHAccBxwHHAccBxwHHAcdBx0HHQcdBx0HHQcdBx0HHQceBx4HHgceBx4HHgceBx4HHgceBx4HHwcfBx8HHwcfBx8HHwcfByAHHwMdAxsDIAcgBxoDIAchByEHGQMhByEHIQchByEHIgcYAxYDFQMiByIHIgciByMHIwcjByMHIwcjByMHIwcjByMHIwckByQHFAMkByQHJAckByQHJQcTAyUHJQclByUHJQclByUHJQclByYHEgMmByYHJgcmByYHJgcmByYHJgcnBxEDJwcnBycHJwcnBycHJwcnBycHKAcQAygHKAcpBykHDwMOAykHKQcNAykHKQcqByoHKgcqByoHKgcqByoHKwcrBysHKwcrBysHKwcrBywHLAcMAywHLAcsBywHLActBy0HLgcLAy4HLgcuBy4HLgcuBy4HLgcuBy8HCgMvBy8HLwcvBy8HLwcvBy8HLwcwBwgDMAcwBzAHMAcwBzAHMAcwBzAHMQcHAzEHMQcyBzIHBgMEAzIHMgcCAzIHMgczBwEDMwczBzMHMwczBzMHMwczBzMHNAcAAzQHNAc0BzQHNAc0BzQHNAc0BzUH/wI1BzUHNQc1BzUHNQc1BzUHNQc2B/4CNgc2BzYHNgc2BzYHNgc2BzYH/QL8AvoC+QL3AvYC9QLzAvIC8QLwAu8C7gLtAuwC6wLqAukC6ALnAuYC5QLkAuMC4gLhAt8C3gLdAtwC2wLaAtkC2ALXAtUC0wLSAtECzwLOAs0CywLKAskCyALHAsUCxALDAsICwQLAAr8CvQK7ArkCuAK3ArYCtQKzAq8CrgKtAqwCqwKqAqkCqAKnAqYCpAKjAqICoAKfAp4CnQKcApsCmgKZApgClwKWApQCkwKSApACjQKKAokCiAKHAoYChQKEAoMCggKBAoACfwJ+An0CfAJ7AnoCeQJ4AncCdgJ1AnQCcwJyAnECbwJsAmsCagJpAmgCZwJmAmUCZAJjAmICYAJfAl4CXQJcAlsCWgJZAlgCVwJWAlUCVAJTAlICUQJQAk8CTgJNAkwCSwJKAkgCRwJGAkUCRAJDAkICQQJAAj8CPgI9AjwCOQI4AjcCNgI1AjQCMwIyAjECMAIvAi0CLAIrAioCKQIoAicCJgIkAiICHwIcAhkCGAIXAhYCFQIUAhMCEgIRAhACDwIOAg0CDAILAgoCCQIIAgcCBgIFAgQCAwICAgECAAL/Af0B/AH7AfoB+QH4AfcB9gH1AfQB8gHxAfAB7wHuAe0B7AHrAeoB6QHoAecB5gHlAeQB4wHiAeEB4AHfAd4B3QHcAdsB1QHUAdEB0AHPAc4BzQHMAcsBygHJAcgBxwHGAcUBxAHDAcIBwQHAAb8BvgG9AbwBuwG6AbkBuAG3AbYBtQG0AbMBsAGoAaUBpAGjAaIBoQGgAZ8BngGdAZwBmwGaAZkBmAGWAZUBlAGTAZIBkQGQAY8BjQGMAYsBiAGHAYYBhAGDAYIBgQGAAX8BfQF8AXsBegF5AXcBdgF1AXQBcQFwAW8BbgFpAWcBZgFlAWQBYwFiAWEBYAFeAV0BXAFaAVkBVwFWAVUBVAFQAU8BSwE/ATYBMQEuAS0BLAErASoBKQEoAScBJgElASQBIwEiASEBHwEeAR0BHAEbARoBGQEYARYBFQEUARIBEQEQAQ4BDQEMAQsBCgEJAQcBBgEFAQQBAwEBAQAB/wD+APsA+gD5APgA9wDzAOYA4wDdANcA1QDTANEA0ADPAMYAxADDAMIAuQC0ALIAsACvAK0ArACkAKMAogChAKAAnwCdAJwAlgCVAJMAggB9AHgAdwB2AHUAbABiAGEAWwBaAFkAVwBVAFQATwBNAEgARwBGAEUAQgBBAD8APgA4ADcANQAsACQAIgAhABsAGgAYABUAFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBwAAAAAAAAAAAAAAAAAAAAAAABcAGAAZABoAGwAXABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwAlADgAOQA6ADsAPAA9AD4APwBAAEEAJQBCACUAJQAlACUAQwAlAEQAJQAlAEUAJQAlACUAJQAlACUAJQAlACUARgAlACUARwAlACUASAAlACUAJQAlAEkASgBLAEwAFgBNAE4AFgBPABYAPAEWABYAUQBSABYAFgBTAFQA6QBVABYAFgAWABYAFgAWAFYAFgAWAFcA7gDzAPQA6gDVAE4A1QBOANYA6QDWABQB7wD2APcAFQH4ANED+QDXAPoA1wBcAT0B6gAWAPsAFgAWAAIBXQEEAQMB/AD9AAUBBwHPAQ0BCQH+AA4BCgEvAf8ACwEIAQAB0gMGAdABFgAWABYAFgBNAE4AFgBPABYAAQEWABYAUQBSABYAFgBTAFQAQwFVABYAFgAWABYAFgAWAFYAFgAWAFcA2AAWAdgAEQESARgBHAFaATQBGQHTAxcBGgEbARMBQwEdAVsBMAEgAT4BeAEhASIBeQEWAD8BFgAWACMBJAElAfMA9AAmAScB9gD3AF4BKAF9AWABygGDAdQDYQGEAcsBXwFiAX4BFgAWABYAWABZABkAWgBbAFgAXABdAF4AXwBgAGEAYgBjAGQAZQBmAGcAaABoAGkAagBrAGwAbQBuAG8AcABxAHIAcwB0AHUAdgB3AGUAeAB5AHoAewB8AH0AZQBlAH4AZQBlAGUAZQBlAGUAZQB/AGUAgABYAGUAgQB0AHQAdAB0AHQAZQBlAGUAZQBlAGUAZQBlAGUAZQCCAGUAZQBlAGUAgwCEAIUAhgBYAFkAGQBaAFsAWACHAF0AXgBfAGAAYQBiAGMAiACJAIoAiwCMAIwAaQBqAGsAbABtAG4AjQCOAI8AkACRAJIAkwCUAJUAiQCWAJcAmACZAJoAmwCcAJ0AngCfAIkAoACJAIkAiQCJAH8AiQCAAFgAiQChAIkAiQCJAIkAiQCJAIkAiQCJAKIAiQCJAKMAiQCJAKQAiQCJAIkAiQCDAIQAhQClAFgAWAAWAFgAWABYAKYAWABYAFgAWABYAKcAWACoAC8BWACLAIwAjABYAFgAWACqAFgAWADwAPAA8AA8AboBTgE0AU4BQwFkAbsBOAJPAWUBTgFQAU4BOQJrAfEAZgHxADgBOAE4AWcBWABRAVgAWAB0ATgBOAF/AXUBQwGAAXYBigGBAdUB1QGLAdUB1QEwAYwBMwHVA/EAdwHxAFgAWABYAFgAWABYABYAWABYAFgApgBYAFgAWABYAFgApwBYAKgA1gNYAIsAjACMAFgAWABYAKoAWABYAFIBTgF6AU4BUwFOAXsBTgHYAdcBvwE4AdcDsAJOATgBTgHWAVQBOAF8AUMBOAE4ATgBwAFYAFUBWABYAI0BOAE4AW4BkwFvAbEBcAGHAYgBjgHYA9kDcQGUAeUBqgHmAUMBiQFyAXMBWABYAFgAWAAXABgAqwCsABcArQCuAB0AHgAfACAArwCwALEAsgCzALQAtQC2ALYAtwC4ACsAuQAtALoAuwC8AL0AvgC/AMAAswCzALMAswCzAMEAswDCAMMAxACzALMAxQDGALMAswCzALMAswCzAMcAswDIABcAswDJAMoAywC+AMwAzQCzALMAswCzAM4AswDPANAA0QCzANIA0wCzALMAswBJAEoASwDUABcA1QBOABcAFwDWAD0CFwAXABcAFwAXABcA2gAXAD4C1wAXABcAFwDaANoAFwAXABcAFwBOAY8BTgG0AbEBkAGxAW0CkQGSATgBsQG1AbEBqgFuAqoBOAE4AbYB3wGqAewBqgG5AbEBFwAXABcAFwCXAWgB4AGYAZkBqgHEAbcB/AHtAZoBmwGcAdoD2wOdAZ4BuAHcA9UBnwH9AdsAFwDcABcAFwDVAE4AFwAXANYA3QMXABcAFwAXABcAFwDaABcA3gPXABcAFwAXANoA2gAXABcAFwAXAPAA8ADwALEBsQGxAfEA9AHxACsC9QEsAvYBqgGqAaoBWgKxAicC8QD3AfEAAQL4AdUBAgIXABcAFwAXACgCAwLyAFsCwgHFAfEAMwLxAAwCNAINAsYBwwFTAg4CVALJAd8D8QA1AvEA2wAXANwAFwAXANUATgDyABsA1gB1AxcAFwAXABcA4AMXANoA4QOxAdcAFwAXABcA2gDaABcAFwAXAKoBbAFsAWwBagJJAk4BSQJOAU4BawJOAXICTgLVAXMCOAFsAuIDOAFEAXQCRAE4ATgBHwIkAjgBfQLVAX4C1QHHAW0BfwJJAt4ASQLfAMgBVQNlA+AA4wPkA+UDVgNmA+YD5wNEAXYDRAHhABcA4gAXABcA1QBOAG0BGwDWAOgDFwAXABcAFwCyAhcA2gDpA3QD1wAXABcAFwDaANoAFwAXABcAbAFsAWwB6gPrA+wD7QNOAe4DJQLvA/AA8ADwAEEBQQFBATgBRAFEAUQBRAHwA/EDOAE4AfIDTgHzA04B8QD0A/EAFgf1AxYH3gA4Ad8A9gP3A/gD4AD5AzgBOAFDAfoDRAFEAUQBRAH7A+EAFwDiABcA6ADoAOgA8QD8A/EAFgf9AxYH6ADoAOgA6ADoAOgATgFDAU4BTgH+A04BTgEuAk4B/wM4AQAEAQQ4AQIEBQQ4ATgBLQIGBDgBOAEHBDgBOAHoAOgA6ADoAOgA6AA5ATkBOQFsAWwBbAEIBAkECgQ5ATkBOQE5ATkBOQFiAgsETgFjAk4BZAJHAkQBDAREAQ0EEAQ4AWUCEQQSBGYCEwT0AjgBOAHVAdUBFwQaBDkBOQE5ATkBOQE5AUABQAFAAdUBGwQcBEQBHQREAUEBQgFBAUIBQQFBARgEQwEfBE4BRAFOAUQBIARDAR4E/QIhBBUEOAEiBCMEGQRFASQEJQQ4ATgBJgQWBCcEQQFCAUEBQgFBAUEBKARDASkERAEqBEQBKwRDASwEFAQtBC4ELwRFAUcBRwFHATAEMQQyBDMENAQ1BEcBSAFHAUkBRwFHATYESgE3BDgEOQRLAToEOwRKAT0EPgQ/BEwBTQFABEEEQgRKAUMEPAREBEUERgRHBEgERwFOAUcBTgFHAUcBSgRKAUsETARNBE4ETwRKAVAESQRRBFIEUwRKAWoBagFqAVQEVQRWBFcEWARZBGoBagFqAWoBagFqAVoEWwRcBF0EXgRfBGAEYQRiBGUEZgRpBGoEawRsBG0EbgRvBGMEZwRwBHEEcgRzBHQEagFqAWoBagFqAWoBpwGnAacBZAR1BGgEdgR3BHgEpwGnAacBpwGnAacBeQR6BHsEfAR9BH4EfwSABIEEggSDBIQEhQSIBIkEigSLBIwEjQSOBI8EkASGBJEEkgSnAacBpwGnAacBpwGrAasBqwGHBJMElASVBJYElwSrAasBqwGrAasBqwGYBJkEmgSbBNUB1QHVAZ4EnwSgBKEEogSjBKQEpQSmBKcEqASqBKsErASpBK0ErgSvBKsBqwGrAasBqwGrAa8BrwGvAbAEsQSyBLMEtAS1BK8BsAGvAbEBrwGvAbYEsgG3BLgEuQSzAZ0EnASyAboEuwS8BL0EvgS/BMAEwQSyAcIEwwTEBMUExgTHBMgErwGxAa8BsQGvAa8ByQSyAcoEywTMBM0EzgSyAc8E0ATRBNIE0wSyATkBOQE5AdQE1QTWBNcE2ATZBDkBOQE5ATkBOQE5AdoE2wTcBN0EIALeBCAC3wTgBOEE4gTjBOUE5gTnBOQE6ATpBOoE6wTsBO0E7gTvBPAEOQE5ATkBOQE5ATkB8QTyBPMEIAL0BCACpwGnAacB9QT2BPcE+AT5BPoEpwGnAacBpwGnAacB+wT8BP0E/gSOAv8EjgIABQEFAgUDBdUB1QEEBQUFBgUHBQgFCQUKBQsFDAUNBQ4FDwWnAacBpwGnAacBpwEQBREFEgWOAhMFjgKrAasBqwEUBRYFFwUYBRkFFQWrAasBqwGrAasBqwEaBRsFHAUdBY8CHgWPAh8FIAUhBSIFIwUkBSUFJgUnBSgFKQUqBSsFLAUtBS4FLwUwBasBqwGrAasBqwGrATEFMgUzBY8CNAWPAq8BrwGvATUFNgU3BTgFOQU6Ba8BsQGvAbEBrwGvATsFsgE8BT0FPgU/BUAFQQWyAUIFQwVEBUYFRwVIBUkFRQWyAUoFSwVMBU0FTgVPBVAFrwGxAa8BsQGvAa8BUQWyAVIFUwVUBVUFVgWyAVcFWAVZBVoFWwWyAQMEAwRcBQMEAwQDBF0FAwQDBAMEAwQDBF4FAwRfBWAFYQViBWMFZAVlBQMEAwQDBAMEAwRmBWcFaAVpBWoFawVuBW8FcAVxBXIFcwV0BWwFdQV2BXcFeAVtBXkFegV7BXwFfQV+BX8FgAWBBYIFAwSDBYQFhQWGBYcFiAWJBYoFiwWMBY0FjgWPBZMFlAWVBZYFlwWYBZkFmgWbBQMEAwQDBA4EDgScBQ4EDgQOBJAFDgQOBA4EDgQOBJ0FDgSRBZ4FnwWiBaAFkgWjBQ4EDgQOBA4EDgShBaQFpQWmBacFqAWpBaoFqwWsBa0FrgWvBbAFsQWyBbQFtQW2BbcFuAW5BboFswW7BbwFvQW+Bb8FDgTABcEFwgXDBcUFxgXHBcgFyQXKBcsFxAXMBc0FzgXPBdAF0QXSBdMF1AXVBQ4EDgQOBAMEAwTWBQMEAwQDBNcFAwQDBAMEAwQDBNgFAwTZBdoF2wXcBd0F3gXfBQMEAwQDBAMEAwTgBeEF4gXjBeQF5QXmBecF6AXpBeoF6wXsBe0F7gXvBfAF8QXyBfMF9AX1BfYF9wX4BfkF+gX7BfwFAwT9Bf4F/wUABgEGAgYDBgQGBQYGBgcGCAYJBgoGCwYMBg0GDgYPBhAGEQYSBgMEAwQDBA4EDgQTBg4EDgQOBBQGDgQOBA4EDgQOBBUGDgQWBhcGGAYZBhoGGwYcBg4EDgQOBA4EDgQdBh4GHwYgBiEGIgYjBiQGJQYmBicGKAYpBioGKwYsBi0GLgYvBjAGMQYyBjMGNAY1BjYGNwY4BjkGDgQ6BjsGPAY9Bj4GPwZABkEGQgZDBkQGRQZGBkcGSAZJBkoGSwZMBk0GTgZPBg4EDgQOBFAGUQZSBlMGVAZVBlYGVwZYBlsGXAZdBlkGXgZfBmAGYQZiBmMGZAZlBmkGZgZqBmsGWgZnBmwGbQZuBm8GcAZzBnQGdQZxBnYGdwZ4BmgGeQZ6BnsGfAZ9Bn4GfwaABnIGgQaCBoMGhAaFBoYGhwaIBokGigaLBowGjQaOBo8GkAaRBpIGkwaUBpUGlgaXBpgGmQaaBpsGnAadBp4GnwagBqEGogajBqQGpQamBqcGqAapBqoGqwasBq0GrgavBrAGsQayBrMGtAa1BrYGtwa4BrkGuga7BrwGvQa+Br8GwAbBBsIGwwbEBsUGxgbHBsgGyQbKBssGzAbNBs4GzwbQBtEG0gbTBtQG1QbWBtcG2AbZBtoG2wbcBt0G3gbfBuAG4QbiBuMG5AblBuYG5wboBukG6gbrBuwG7QbuBu8G8AbxBvIG8wb0BvUG9gb3BvgG+Qb6BvsG/Ab9Bv4G/wYABwEHAgcDBwQHBQcGBwcHCAcJBwoHCwcMBw0HDgcPBxAHEQcSBxMHFAcVBxYAFgAWABYAFgAWABYAFgAWABYAFgBQAFAAUABQAFAAUABQAFAAUABQAFAAqQCpAKkAqQCpAKkAqQCpAKkAqQCpABcAFwAXABcAFwAXABcAFwAXABcAFwDZANkA2QDZANkA2QDZANkA2QDZANkA3QDdAN0A3QDdAN0A3QDdAN0A3QDdAOQA5ADkAOQA5ADkAOQA5ADkAOYA5gDmAOYA5gDmAOYA5gDmAOYA5gAyATIBMgEyATIBMgEyATIBNQHQA88DzgM1ATUBzQM1ATgBOAHMAzgBOAE4ATgBOAGmAcsDygPJA6YBpgGmAaYBqAGoAagBqAGoAagBqAGoAagBqAGoAaoBqgHIA6oBqgGqAaoBqgGsAccDrAGsAawBrAGsAawBrAGsAawBrgHGA64BrgGuAa4BrgGuAa4BrgGuAdIBxQPSAdIB0gHSAdIB0gHSAdIB0gHTAcQD0wHTAdQB1AHDA8ID1AHUAcED1AHUAR0CHQIdAh0CHQIdAh0CHQIeAh4CHgIeAh4CHgIeAh4CIQIhAsADIQIhAiECIQIhAiMCIwKsAb8DrAGsAawBrAGsAawBrAGsAawBrgG+A64BrgGuAa4BrgGuAa4BrgGuAdIBvQPSAdIB0gHSAdIB0gHSAdIB0gHTAbwD0wHTAdQB1AG7A7oD1AHUAbkD1AHUAQQEuAMEBAQEBAQEBAQEBAQEBAQEBAQPBLcDDwQPBA8EDwQPBA8EDwQPBA8EAwS2AwMEAwQDBAMEAwQDBAMEAwQDBA4EtQMOBA4EDgQOBA4EDgQOBA4EDgS0A7MDsgOxA7ADrwOuA60DrAOrA6oDqQOoA6cDpgOlA6QDowOiA6EDoAOfA54DnQOcA5sDmgOZA5gDlwOWA5UDlAOTA5IDkQOQA48DjgONA4wDiwOKA4kDiAOHA4YDhQOEA4MDggOBA4ADfwN+A30DfAN7A3oDeQN4A3cDcwNyA3EDcANvA24DbQNsA2sDagNpA2gDZwNkA2MDYgNhA2ADXwNeA10DXANbA1oDWQNYA1cDVANTA1IDUQNQA08DTgNNA0wDSwNKA0kDSANHA0YDRQNEA0MDQgNBA0ADPwM+Az0DPAM7AzoDOQM4AzcDNgM1AzQDMwMyAzEDMAMvAy4DLQMsAysDKgMpAygDJwMmAyUDJAMjAyIDIQMgAx8DHgMdAxwDGwMaAxkDGAMXAxYDFQMUAxMDEgMRAxADDwMOAw0DDAMLAwoDCQMIAwcDBgMFAwQDAwMCAwEDAAP/Av4C/AL7AvoC+QL4AvcC9gL1AvMC8gLxAvAC7wLuAu0C7ALrAuoC6QLoAucC5gLlAuQC4wLiAuEC4ALfAt4C3QLcAtsC2gLZAtgC1wLWAtUC1ALTAtIC0QLQAs8CzgLNAswCywLKAskCyALHAsYCxQLEAsMCwgLBAsACvwK+Ar0CvAK7AroCuQK4ArcCtgK1ArQCswLUAdUBrwKuAq0CrAKrAqoCqQKoAqcCpgKlAqQCowKiAqECoAKfAp4CnQKcApsCmgKZApgClwKWApUClAKTApICkQKQAqkBjQKMAosCigKJAogChwKGAoUChAKDAoICgQKAAnwCewJ6AnkCeAJ3AnYCdQJxAnACbwJpAmgCZwJhAmACXwJeAl0CXAJZAlgCVwJWAlUCUgJRAlACTwJNAkwCSwJKAkgCRgJFAkQCQwJCAkECQAI/AjwCOwI6AjcCNgIyAjECMAIvAioCKQImAiICHwIxARwCGwIaAhkCGAIXAhYCFQIUAhMCEgIRAhACDwILAgoCCQIIAgcCBgIFAgQCAAL/Af4B+wH6AfkB8wHyAfEB8AHvAe4B6wHqAekB6AHnAeQB4wHiAeEB3gHdAdwB2wHaAdkB5wDjANUBNAExAdEBzgHNAcwBwQG+Ab0BvAFGAT4BPAE7Aa0BqQE3AaUBpAGjAaIBoQGgAZYBlQGGAYUBggFpAWMBWQFYAVcBVgFGATsBOgHnADcB4wA2ATQBMwHnADEBLgEtASwBKwEqASkBHwEeARABDwEMAfUA7QDsAOsA5wDlAOMAFgcVABYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHAAAAAAAAAAAAAAAAAAAAAAAAFwcXBxYHAwAYBxgHFgcHABYHCQAZBxkHFgcNABoHGgcbBxsHHAccBxYHFgcWBxYHFgcdBx4HHQcWBxYHFgcWBx0HHQcdBx0HHQcdBx0HHQcdBxYHFgcdBxYHHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HFgcWBxYHHQcWBxYHHgcfBxYHFgcWBxYHHwcgBx8HFgcWBxYHHgchBxYHFgcWBxYHFgcWBxYHFgchBxYHFgdnABYHFgcWBxYHFgcWByEHbwBvAG8AbwBvACEHIQchByEHIQchByEHIQchByEHFgcWB28AIQcWBxYHFgcWBx8HFgcfBx8HFgcWBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HIgcWBxYHIgcWBxYHFgcjByQHJQcWBxYHFgckByQHZwBnABYHJgcWBxYHJAe7ALsAuwC7ALsAJAckByQHJAckByQHFgcWB7sAuwC7ALsAuwAkByQHJAckByQHJAckBxYHJwcWBxYHKAcWBxYHFgcpBykHKQcpBxYHFgcWBx0HHQceBxYHHAAWBxYHHQcdBx0HHQcdBx0HHQccABYHFgcdBxYHFgcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBxYHFgcWBx8HKgcWBysHHwcWByEHIQcWBxYHFgcsBxYHFgdnAGcAQQEWBxYHLQcWB28AbwBvACEHIQchByEHbwAhByEHIQdvAG8AIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchB28AIQeHAB8HFgctBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwciByIHIwcWByQHJAcuBy4HLwckB68BrwEkByQHrwGvASQHJAckByQHJAckByQHJAckByQHJAckB68BJAevAa8BJAckByQHJAckByQHJAckByQHJAckByQHMAcxBzIHFgcyBzIHMgcWBxYHHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HKgcrBx8HIQcsBxYHLQchB28AIQchByEHIQchByEHIQchB28AIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfByIHJAckByQHJAckByQHJAckByQHJAckByQHJAckByQHJAckByQHJAckByQHJAckByQHJAckByQHJAckByQHJAckByQHMgcyBzIHHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx8HFgchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfByQHJAckByQHJAckByQHJAczByQHJAckByQHJAckByQHJAckByQHJAckByQHJAckBzQHJAckByQHJAckByQHJAcyBzIHMgcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx8HFgchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwckByQHJAckByQHNQczByQHJAckByQHJAckByQHJAckBzYHNAckByQHJAckBzIHMgcyBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHwcWByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HJAckByQHJAckByQHJAckByQHJAckByQHMgcyBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx8HFgchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfByQHJAckByQHJAckBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcfBxYHIQchByEHIQchByEHIQchByEHIQchByEHIQchByEHIQchBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwckByQHJAckByQHJAcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx8HFgchByEHIQchByEHIQchByEHIQchByEHHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HIQchByEHIQchByEHIQchByEHIQchBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQchByEHIQchByEHIQchByEHIQcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQchByEHIQchByEHIQchByEHIQcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdByEHIQchByEHIQchByEHIQcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HHQchByEHIQchByEHIQchByEHIQcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HIQchByEHIQchBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcdBx0HHQcdBx0HHQcdBx0HHQcdBx0HIQchByEHIQchBx8HHwcfBx8HHwcfBx8HHwcfBx8HHwcdBx0HHQcdBx0HHQcdBx0HHQchByEHIQcfBx8HHwcfBx8HHwcfBx8HHwcdBx0HHQcdBx0HHQcdBx0HIQchByEHHwcfBx8HHwcfBx8HHwcfBx0HHQcdBx0HHQcdBx0HIQchBx8HHwcfBx8HHwcfBx8HHQcdBx0HHQcdBx0HIQcfBx8HHwcfBx8HHwcdBx0HHQcdBx0HHQchBx8HHwcfBx8HHwcfBx0HHQcdBx0HIQcfBx8HHwcfBx0HHQcfBx8HHQcfBx0HHwcAABYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcWBxYHFgcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgCjAPQAAABGAQAAmAHqATwCAABwAHIAjgLgAjIDhANUC1ULVQtRC1ULOgtMC8UDVQtZAFULVQs4CzcLAAA2CwAAYgDpAqEBAABVC1gANQtjAAAAYgB3AGIAcgBqAHIAIAtxACMLKwukAF4AoQCcAKMAGgspC7MALAsnCwAAAAAKCwYL+goAC1ULgQBVCwAAPwtVCzsLAABVC1ULVQv7CjILAAAQC1ULOgsjCzUL8wNVC24AVQtVCyELIAtVC0EAAAC7ACEEgQBVC1ULyAAfC8sAVQtdBJwBpQHqAe4B9wEKCxILDAsUC6cAaQDGAMAABgudAVULVQuNAu8KVQuQAVULVQuZBJ4BAACtATsDjAMKArIBqwDsAb8AsQEEC8cABwsPCw0CvgEEAoICBQL+Cg0LqAIQCwsL7grqCt4K5AoAAMcEVQtVCwAAVQtVCw0LIQv1BAsLCgtVCwkLAAAICwAAiQFVCwAABwtVCyMFkQKaAg0CpgKYApQBAwvxCu0K8AHvClULVQviApMC5AImA+MCpwDgCtAKzApVAM4KAAAUCwAACQtVCwAAVQtVC1UL/wrJAcoBxgFVC1ULEQsAAAAADQtVC9wCVQtVCwAAAAAAAAAAAACXAwAAAAD5ClULAABVC/gK4grwCt8K6QqQAgAA6wriCuAK2goKAugK2ArlCuUK1QqiAtwK2ArUCtYK4ArXCuUC3QrCCtIKtALPCtEKxQr0AtAK0grGCtQK1ArICtUKzgoHA8UKuQrACswKuwrOCswKugq6CrkKmgqdCqIKkwpVC1UL3goAAAAAVQsAAKYKVQsAAF8FVQtVC1ULAABVC7sK6AGaAwAAVQtVCwAAVQs2AzkDiQMAALoK4AIAAJ0DtAqyCtwCygPNA7sKvAqvCrkKAwO3Cq0KowGiCqsKoAp4AqsKrQqwCqUKrAqYCqwKrgrQA3sKLAMAAPYDAACbCqkKmAqiCiwDAACkCpsKmQqTCv8CoQqRCp4KngqOCu4ClQqRCo0KjwqZCpAK9wOWCnsKiwo1A4YCiwqJCn4KOwOJCosKfwqNCo0KgQqOCocKTQN+CnIKeQqFCnQKhwqFCnMKcwpyClMKVgpbCkwKAACTBZYKVQsAAMcFAAAAAAAA+wVrCgAAAAB0CmkKaApxCnUKZAplCmMKdApnCm8KcApuCm8KWgo+CkUKPAo7CkIKRgo3CjgKNgpFCjkKQApBCj8KQAotCgAAAABjCmIKxwHFAlQDVQtVC00KSQpVClIKUwpJCkcKUQpRCk4KPwo4Ck8KTgpFCkoKOgo/CkUKPQpHCkQKMQpBCgAAOAo0CjkKLAo7Ci8KOAo2CjgKNAoAACsKJQomCisKJwocCi0KIwogCh8KGgorCiUKGwoYCh4KGAokChQKJAolChMKIwoXChsKDgrzCQAAAAD7CQAAAAAQCgAAAAAKCosDDQr6AxQKFQoLChQKFAoDCvwJEwopBBAKBgr8CQwKAwr/CfgJ/AkECgYKDwoAAAAA9An1CfcJ7An9CfEJ7An0CfsJ/An9CdAJ2AkAAOwJ6An0CfEJ8gnnCfEJ8QnuCd8J2AnvCe4J5QnqCdoJ3wnlCd0J5wnkCdEJ4QkAANgJ1AnZCcwJ2wnPCdgJ1gnYCeEJ0wkAAAAAygkAAMQJxQnKCcYJuwnMCcIJvwm+CbkJygnECboJtwm9CbcJwwmzCcMJxAmyCcIJtgm6Ca0JkgkAAAAAmgkAAAAArglZA7cJtgmqCQAAtAmrCaMJsgmwCa8JpwmeCZ8JogmCCTsDigmJCX4JAACHCX8JeAmFCYMJggl7CXMJdAl2CVYD/gJFA5UJAACOCZEJjAmYCYoJAACQCQAAhgkAAIUJeQmJCYIJfAl/CYEJAAB+CYwJgAmKCXkJAACLCXgJeQkAAIUJdQmHCQAAdQkAAHcJdgmDCWQJeQlsCXQJbAl1CQAAbgl5CXIJdQllCWkJWAltCXEJYAlnCWkJbAlnCUUJQQloCWkJXwkAAFwJVwljCQAAXAlSCQAARglWCUYJOgk0CTQJIAkAAB4JAAAdCSsJHgkAAAcJCgnjCOQI3gjgCN8IygjFCLcIkgh9CJ0IAACWCJMIiwiICAAAjggAAIQIAABRAGUAoQC9ALABywHlAQAAAAIQAqoCtgKqAgAAywLCAv8CAAAfAxMDQwNaAwAATAMAAFADUwNiA1IDcANyA3wDdgOBAwAAfQOLA5EDlgOKA5EDhAOdA6cDmAOhA6YDrgOvA5cDlwPEA8IDyQMAAAAAAADGA9kDSAYAAAAAyQPWAwAAzgPuA8gDwwPPAwAAAAAAANMD5AOZBgAAAADWA+ADAADYA+kDIQQUBBUE/AMAABkE/gMYBBkEAAAfBCUEHAQuBAAAAAAyBCkEAAAbBAAALQQ6BDcEKAQ1BEoERQRLBDgEPwRSBFQEUARMBEcEWwQAAFkEVgReBFgEWgQAAGQEaQRsBAAAWQRmBHAEXwRlBEQEUwR0BHkEZgRtBG8EgAQAAIUEdASDBAAAhQQAAH0EiQRvBIcEkASQBIMEkwSPBIsEnwSdBJQEnQSjBJwEdASCBJMEAACjBJUEpQQAALIEpgSZBKgEAAAAAKoEoQQAAJEEAACjBLAErASXBKMEtwS7BMEEwQSuBLsEzgTMBMgExAS/BNMEAADRBMgEzwTJBMsEAADUBOIE2gQAAMcE1ATcBMsE0QSvBL0EzgQAANgE2ATdBAAA6gYAAO8EAADyBMIEAADKBNAEzAQAADsHAADcBAAA3wQFBQYFBwXvBP4E7gQAAAIFAAD5BPME6gQFBQcFBwUAAAoFAAAJBfsE/QQAAP4EAAAPBQAAAQUKBQAAGQUAAAEFCAUdBQQFCwUeBRkFDwUaBSUFKQUmBTAFAAAAACoFCAUbBTgFKwUqBTkFKQUAAD0FNAVEBUcFRwUAAEgFOwUAAEsFSAU/BQAATQUAADsFUAVGBTwFUAVWBS0FQAVSBWEFUQUAAAAAWwVWBU4FaQVrBWsFAABuBQAAbQVfBWEFAABiBQAAcwVvBQAAZgVmBQAAdQUAAF0FZAV5BWYFZwV5BXUFbwV2BYEFhQWCBYwFAAAAAIwFagV9BYkFkAUAAAAAAACNBXEFdgUAAAAAAABzBaoFqwWiBQAAnwWkBZYFqAWdBaYFAACPBaAFngUAAJIFrQWkBagFqQUAAJ4FwQUAAKQFwwXBBbMFrwXHBbEFwwUAAAAAxQUAALEFrwXSBdQF1AUAANEF1gXIBdYFAAC/BQAA2gXOBdUF0AXEBQAAxQXGBd4FAADfBcoFyAXsBQAA7QXjBfUF6gXzBQAA3AXzBfIFAADmBQEG8gX2Bf0F+QUAAO0FDAYAAO8FDgYMBv4F9QUNBvcFCQYAAAAACgYAAPUF8wUcBh8GHwYBBgMGAwYAABUGJgYAABcGKgYgBisGKAYsBjoGOwYtBgAAOwYvBjAGNAZBBj4GQgYAADkGSAZNBkoGAAAAACwGTQZbBgAAPwZQBgAASAZRBlUGAAAAAFQGSAZUBkoGWQYAAAAAOwYAAEwGAABNBmAGVgZeBlgGWAZlBmYGWAYAAAAAZgZaBlsGXwZnBmQGaAYAAF8GbgaFBm8GAAAAAFEGAAAAAAAAAAAAAAAAbgYAAGgGbgZ0BnEGbgZnBnMGeAaKBooGgwaOBoIGkgaTBosGigaeBpQGkwahBgAAgwYAAFULnAYAAKAGnQaTBqIGmgahBpcGqwaNBqYGoAamBq0GqganBqAGpwakBrQGtAasBrkGqwa1BrYGrgatBsEGuAa3BsUGAACnBqkGtwbFBr0GwAa+BsMGygbUBgAAzAYAAAAA2AbUBt4G4gYAAOMG4QbiBuMG4AbLBtAG4gblBukG4AYAAAAA8Ab0BvIG1AbZBucG9QbtBvAG7gbuBvIG9wYAAO4GAAAAAPoG9gYABwQHAAAFBwMHAAcBB/4G6QYEB/sGDAf8BgwHBAf0BgcHBgf3BgAAFgcUBwYHCAcWBxUHCQcZBwAHHwcaBysHIgcTBy8HIgcwBxIHMwcqBzsHKwc7BzMHIwc2BzUHJgcAAEUHQwc1BzcHRQdEBzgHSAcqB0EHAAA8BzIHAAAzB1IHRQdHB0IHQwdTBwAARgdJB04HPgcAAC8HUQdBBwAAUwdOB14HUAdTBzcHWQcAAFQHSgcAAEsHagddB18HWgdbB24HAABgB2MHaAdYBwAASQdpB1sHegd7B3EHcAdhB3IHAAB0BwAAcAd3B3UHVgd3B4gHaQd7B30HAAB7B18HgAdyB5EHkgeIB4cHeAeJBwAAiwcAAIgHjweNB24HigeNB5UHlAefB5kHmgeIB6IHAAAAAAAApAeYBwAAlgegB58HqQepBwAAAAAAAAAAmweeB6YHpQevB6kHqgeYB7IHAAAAAAAAtAeoBwAApwejB7QHugezB7QHsgfBB7cHtge8B7IHvgfEB70Hvge3B7MHxAfKB8MHxAfCB9EHxwfGB8wHAADJB9AHAADGB8oH1wfPB9sHyQfPBwAA2AcAAM4H4AcAANUH3AcAANIH1gfjB9sH5wfVB9sH6QfeB94H6wfuB+QH6gcAAOAH5QflB+4H9AfpB+kH9gf5B+8H9QcAAOsH7wcAAOAH/wftB/MH8Af7BwAA5gfzB/gHAADpBwgI9gf8B/kHBAgCCAoI/AcICA8IAAD/Bw8IAAAJCBEIAwgPCBYIAAAGCAgIDggUCA8IHggHCBMIDwgVCBsIFgglCA4IAAAkCBoIHAgXCAAAKAgAACkIHwghCBwIAAAAACMIAAApCAAAAAAlCAAAKwgAACYIAAAnCCkIKggAAAAAVQtSCF0IaAhzCH4IiQiSCJ0IpQitCLUIvQjICNAI2wjmCPEI9Qj+CAYJDgkWCRgJIwkuCTkJPQlGCVEJXAlnCXIJAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgMBAQQBAQEBAwUGBwgJCgoKBwEBBgEDCwsLCwsLCAgICAgICAgICAgICAgICAgICAgHBAcDCAsLCwsLCwgICAgICAgICAgICAgICAEBAQkAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAgMBAQIBAQEBAQEBAQEBAQEBAQEBAQECBAUGBwgJAQoLDA0ODxAREhMUExMTExMTExUWFxgZGgEbHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5ATo7PD0+P0BBQhBDREVGR0gQSUpLTBAQTRBOT1BRUgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAALUAtQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMoAyQDHALgAtwAgAMcAtQAmAB0ALAArACIAIwAcACQAtQAlAAgACAAtAC4AJwAoABsAIQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUACgAJALUAeQB3ALUAKgAeACkAHwDGAMQAyQCvACwAKwAcAMkArwDJAK8AyAC4ACAAyACyACYAHQAsACsAIgAjABwAJACyACUACAAIAC0ALgAnACgAGwAhALIAsgCyALIAsgCyALIAsgCyALIAsgCyALIAsgCyALIACgAJALIAsgAqAB4AKQAfAK8AJACvACUACAAIAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAHkAdwCvAB8ABAADAAIABAAFAIgAIACHAK4AIgAjABwAJACuACUACAAIAC0ALgAoACEArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ACgAJAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgAfAMYAxQDHAL8AvgC5AMAAwQC9AL0AvQC9AMIAwwC4ALUADwAAALYACAAaABgAFgAUABUAAQAXAAgACAC1ABIAEQAOABAAEwC1ALUAtQC1ALUAfgC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ABkADQDGAK8AAAABALAArwAPALIABgAWABQAFQAAABcAAAAIAAAABwAHAAgABwAOALIABwAHAAcAsgCyAH4ABwCyALIABwCyALIAsgAHALIAsgCyALIAsgCyALIAsgCyALIAsgCyALIAsgCyALIAsgCyAAcAsgAIABcACAAAAK8ArwCvAK8ArwB+AK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwAEAAQAhwCHAK4ABgCJABYAigCuAAcABwAHAK4ArgCuAAcArgAHAAcArgCuAK4ArgCuAK4ArgCuAAcArgCuAK4ABwCuAAcABwCuAK4ArgCuAK4ArgCuAK4AxQC+AL0AAAC9AL0AvQALAAwAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAXgC1ALUAtQC1ALUAtQC1ALUAtQC1AEgAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAegB4ALUAsQCwAK8ACAC0AAAACACyAAcAsgCyALIAsgCyALIAsgCyALIAsgCyALIAsgCyALIAsgCyALIAsgCyAD4APwCyALIAsgCyALIAsgCyALIAsgCyALIAsgCyAAgArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAF4ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAEgAPgCvAD8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAHoAeACvAAQACACuAK4ArgCuAK4AiwCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCcAK4ArgCuAK4ArgCuAK4ArgCuAK4AvQC9AL0AtQA7ALUAtQC1ALUAtQA1ALUAZQC1AHEAtQC1ALUAtQC1ALUAtQBaALUAtQC1ALUAtQByALUAtQC1AIQAtQC1ALUAYwC1AEQAtQC1ALUAtQC1ALUAtQC1ALUAYQC1ALUAtQC1ALUAtQBsALUAtQC1ALUAtQC1ALUAtQC1AK8AAACyADsAsgCyALIANQCyALIAcQCyALIAsgCyALIAsgCyAHIAsgCEALIAsgCyAEQAsgCyALIAsgCyALIAsgCyALIAsgCyALIArwA7AK8ArwCvAK8ANQCvAGUArwBxAK8ArwCvAK8ArwCvAK8AWgCvAK8ArwCvAK8AcgCvAK8ArwCEAK8ArwCvAK8AYwCvAEQArwCvAK8ArwCvAK8ArwCvAK8AYQCvAK8ArwCvAK8ArwBsAK8ArwCvAK8ArwCvAK8ArwCvAK4ArgCuAI8AlwCOAK4ArgCZAJIAlQCuAK4AmgCuAK4ArgCuAK4AoACoAJ8ArgCuAKsAowCmAK4ArgCsAK4ArgC9AL0AvQC1AFgANwC1ALUAtQA0ALUAtQC1ALUAcABCALUAtQBgALUATgC1ALUAtQBNALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1AH0AtQC1ALUAtQC1AGQAtQC1ALUAYgC1ALUAtQC1ALUAtQC1AK8AAACyADcAsgCyADQAsgCyALIAcACyAE4AsgCyALIAsgCyALIAsgCyALIAsgCyALIAsgCyALIAsgCyALIArwBYADcArwCvADQArwCvAK8ArwBwAEIArwCvAGAArwBOAK8ArwCvAE0ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwB9AK8ArwCvAK8ArwBkAK8ArwCvAGIArwCvAK8ArwCvAK8ArwCuAJAAjQCuAK4AmQCZAJQArgCYAK4ArgChAJ4ArgCuAKsAqwClAK4AqgCuAL0AvQC7ALUAtQC1AEEAtQBZALUAtQC1ALUAtQC1AEMAtQCBALUAtQC1AFcAtQA2ALUALwC1ALUAbwC1ADIATAC1ALUAtQC1ALUAtQBJALUAtQC1ALUAtQBfAEoAtQC1ALUArwAAALIAsgCyAEEAsgCyALIAsgCyAIEAsgCyADYAsgCyALIAbwCyADIAsgCyALIASQCyALIAsgCyAK8ArwCvAEEAWQCvAK8ArwCvAK8ArwBDAK8AgQCvAK8ArwBXAK8ANgCvAK8ALwCvAK8AbwCvADIATACvAK8ArwCvAK8ArwBJAK8ArwCvAK8ArwBfAEoArwCvAK8ArgCuAEMAlgCTAK4ArgCuAKkApwCkAK4AvAC6ALUAPQC1ALUAtQC1ALUAtQBQALUAtQC1AHwAtQC1ALUAtQC1AGYAtQC1AGkAggC1ALUAtQC1ALUAtQC1AHYAWwC1ADMAtQC1AK8AAACyAD0AsgCyALIAsgBQALIAfACyALIAsgCyALIAcwCCALIAsgB2ALIAsgCyAK8APQCvAK8ArwCvAK8AUACvAK8ArwB8AK8ArwCvAK8ArwCvAGYArwCvAGkAggCvAK8ArwCvAK8ArwCvAHYAWwCvADMArwCvAK4ArgCuAK4ArgCuAJsAtQC1AIYAtQC1ALUAtQC1ALUAtQC1ALUAPAC1ALUAtQC1ALUAtQC1AFYAtQC1ALUAtQCAAK0AtQCvAAAAmwCyALIAhgCyALIAsgA8AEAAsgCyALIAsgCyAIAArQCyAJsArwCGAK8ArwCvAK8ArwCvAK8ArwCvADwAQACvAK8ArwCvAK8ArwCvAFYArwCvAK8ArwCAAK0ArwCbAIwAkQCtAJ0AogC1AE8AtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAbgC1AE8AswCyAE8AsgCyALIAsgCyALIAsgCyALIArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwBuAK8AtQC1ALUAtQC1ALUAtQC1ALUAMQC1AHQAdQC1ALUAtQC1AEsAtQC1ALUAtQC1ALUAsgCyALIAsgCyAHQAdQCyALIAsgCyAK8ArwCvAK8ArwCvAK8ArwCvADEArwB0AHUArwCvAK8ArwBLAK8ArwCvAK8ArwCvALUAtQC1ALUAtQC1ALUAtQC1AGcAXQC1ALUAtQC1ALUAtQC1ALUAtQCyALIAsgCyAGcAsgCyALIAsgCvAK8ArwCvAK8ArwCvAK8ArwBnAF0ArwCvAK8ArwCvAK8ArwCvAK8AtQBSALUAtQCFALUAtQC1ALUAtQC1ALUAMAC1ALUAtQC1AGoAtQCyALIAhQCyALIAsgCyALIAsgCvAFIArwCvAIUArwCvAK8ArwCvAK8ArwAwAK8ArwCvAK8AagCvALUAtQC1ALUAtQC1ALUAtQBcALUARwC1ALUAtQC1ALIAsgCyALIAsgBHALIAsgCvAK8ArwCvAK8ArwCvAK8AXACvAEcArwCvAK8ArwC1ALUAtQC1ALUAtQC1ALUAtQBoAIMARgC1ALUARQCyALIAsgCyALIAaACDAEYARQCvAK8ArwCvAK8ArwCvAK8ArwBoAIMARgCvAK8ARQC1ALUAtQC1ALUAtQC1ALUAtQC1ALUAsgCyALIAsgCyAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwB/ALUAtQA6ALUAtQC1ALUAtQC1ALUAfwCyADoAsgCyAH8ArwCvADoArwCvAK8ArwCvAK8ArwC1ALUAtQC1ALUAtQC1AGsAtQCyALIAsgCvAK8ArwCvAK8ArwCvAGsArwC1ADgAtQC1ALUAtQC1ALUAOACyALIArwA4AK8ArwCvAK8ArwCvALUAtQC1ALUAtQB7ALUAsgB7AK8ArwCvAK8ArwB7AK8AtQC1ALUAtQC1ALUAsgCvAK8ArwCvAK8ArwBRALUAtQC1ALUAbQCyAFEArwCvAK8ArwBtADkAtQBUALUAOQA5AK8AVACvAFMAtQBTAK8AtQCvAFUAVQAAAAAAJUYlUDogaW52YWxpZCBoZXggbnVtYmVyIGAlcycKAABTaGFyZWQgbGlicmFyeSBjb250cm9sIGZvciBIUC9VWCBjb21wYXRpYmlsaXR5AAAlRiVQOiBFcnJvcjogdW5hYmxlIHRvIGRpc2FtYmlndWF0ZTogJXMgKGRpZCB5b3UgbWVhbiAtJXMgPykKAAAAJVA6IFdhcm5pbmc6IGdyb3VwZWQgc2hvcnQgY29tbWFuZCBsaW5lIG9wdGlvbnMgYXJlIGRlcHJlY2F0ZWQ6ICVzCgAAAAAAJUYlUDogdXNlIHRoZSAtLWhlbHAgb3B0aW9uIGZvciB1c2FnZSBpbmZvcm1hdGlvbgoAAAAAAAAlRiVQOiB1bnJlY29nbml6ZWQgLWEgb3B0aW9uIGAlcycKAAAAAAAAJUYlUDogdW5yZWNvZ25pemVkIC1hc3NlcnQgb3B0aW9uIGAlcycKACVGJVA6IHVua25vd24gZGVtYW5nbGluZyBzdHlsZSBgJXMnCgAAAAAlczogZW11bGF0aW9uIHNwZWNpZmljIG9wdGlvbnM6CgAAAAAAAAAAICAtLWJ1aWxkLWlkWz1TVFlMRV0gICAgICAgICAgR2VuZXJhdGUgYnVpbGQgSUQgbm90ZQoAAAAgIC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnM9W25vbmV8emxpYnx6bGliLWdudXx6bGliLWdhYmldCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbXByZXNzIERXQVJGIGRlYnVnIHNlY3Rpb25zIHVzaW5nIHpsaWIKAAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0OiBub25lCgAAICAteiBjb21tb24tcGFnZS1zaXplPVNJWkUgICAgU2V0IGNvbW1vbiBwYWdlIHNpemUgdG8gU0laRQoAAAAAACAgLXogbWF4LXBhZ2Utc2l6ZT1TSVpFICAgICAgIFNldCBtYXhpbXVtIHBhZ2Ugc2l6ZSB0byBTSVpFCgAAAAAgIC16IGRlZnMgICAgICAgICAgICAgICAgICAgICBSZXBvcnQgdW5yZXNvbHZlZCBzeW1ib2xzIGluIG9iamVjdCBmaWxlcwoAAAAAAAAAACAgLXogbXVsZGVmcyAgICAgICAgICAgICAgICAgIEFsbG93IG11bHRpcGxlIGRlZmluaXRpb25zCgAAAAAAAAAgIC16IGV4ZWNzdGFjayAgICAgICAgICAgICAgICBNYXJrIGV4ZWN1dGFibGUgYXMgcmVxdWlyaW5nIGV4ZWN1dGFibGUgc3RhY2sKAAAAACAgLXogbm9leGVjc3RhY2sgICAgICAgICAgICAgIE1hcmsgZXhlY3V0YWJsZSBhcyBub3QgcmVxdWlyaW5nIGV4ZWN1dGFibGUgc3RhY2sKAAAAAAAAAAAgIC16IHVuaXF1ZS1zeW1ib2wgICAgICAgICAgICBBdm9pZCBkdXBsaWNhdGVkIGxvY2FsIHN5bWJvbCBuYW1lcwoAAAAAAAAgIC16IG5vdW5pcXVlLXN5bWJvbCAgICAgICAgICBLZWVwIGR1cGxpY2F0ZWQgbG9jYWwgc3ltYm9sIG5hbWVzIChkZWZhdWx0KQoAAAAAACAgLXogZ2xvYmFsYXVkaXQgICAgICAgICAgICAgIE1hcmsgZXhlY3V0YWJsZSByZXF1aXJpbmcgZ2xvYmFsIGF1ZGl0aW5nCgAAAAAAAAAAICAtLWF1ZGl0PUFVRElUTElCICAgICAgICAgICAgU3BlY2lmeSBhIGxpYnJhcnkgdG8gdXNlIGZvciBhdWRpdGluZwoAAAAAICAtQmdyb3VwICAgICAgICAgICAgICAgICAgICAgU2VsZWN0cyBncm91cCBuYW1lIGxvb2t1cCBydWxlcyBmb3IgRFNPCgAAICAtLWRpc2FibGUtbmV3LWR0YWdzICAgICAgICAgRGlzYWJsZSBuZXcgZHluYW1pYyB0YWdzCgAgIC0tZW5hYmxlLW5ldy1kdGFncyAgICAgICAgICBFbmFibGUgbmV3IGR5bmFtaWMgdGFncwoAACAgLS1laC1mcmFtZS1oZHIgICAgICAgICAgICAgIENyZWF0ZSAuZWhfZnJhbWVfaGRyIHNlY3Rpb24KAAAAAAAgIC0tbm8tZWgtZnJhbWUtaGRyICAgICAgICAgICBEbyBub3QgY3JlYXRlIC5laF9mcmFtZV9oZHIgc2VjdGlvbgoAAAAAAAAgIC0tZXhjbHVkZS1saWJzPUxJQlMgICAgICAgICBNYWtlIGFsbCBzeW1ib2xzIGluIExJQlMgaGlkZGVuCgAAICAtLWhhc2gtc3R5bGU9U1RZTEUgICAgICAgICAgU2V0IGhhc2ggc3R5bGUgdG8gc3lzdi9nbnUvYm90aC4gIERlZmF1bHQ6IAAAAAAAAAAgIC1QIEFVRElUTElCLCAtLWRlcGF1ZGl0PUFVRElUTElCCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwZWNpZnkgYSBsaWJyYXJ5IHRvIHVzZSBmb3IgYXVkaXRpbmcgZGVwZW5kZW5jaWVzCgAAAAAgIC16IGNvbWJyZWxvYyAgICAgICAgICAgICAgICBNZXJnZSBkeW5hbWljIHJlbG9jcyBpbnRvIG9uZSBzZWN0aW9uIGFuZCBzb3J0CgAAACAgLXogbm9jb21icmVsb2MgICAgICAgICAgICAgIERvbid0IG1lcmdlIGR5bmFtaWMgcmVsb2NzIGludG8gb25lIHNlY3Rpb24KAAAAAAAAICAteiBnbG9iYWwgICAgICAgICAgICAgICAgICAgTWFrZSBzeW1ib2xzIGluIERTTyBhdmFpbGFibGUgZm9yIHN1YnNlcXVlbnRseQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZCBvYmplY3RzCgAAAAAgIC16IGluaXRmaXJzdCAgICAgICAgICAgICAgICBNYXJrIERTTyB0byBiZSBpbml0aWFsaXplZCBmaXJzdCBhdCBydW50aW1lCgAAAAAAACAgLXogaW50ZXJwb3NlICAgICAgICAgICAgICAgIE1hcmsgb2JqZWN0IHRvIGludGVycG9zZSBhbGwgRFNPcyBidXQgZXhlY3V0YWJsZQoAICAteiB1bmlxdWUgICAgICAgICAgICAgICAgICAgTWFyayBEU08gdG8gYmUgbG9hZGVkIGF0IG1vc3Qgb25jZSBieSBkZWZhdWx0LCBhbmQgb25seSBpbiB0aGUgbWFpbiBuYW1lc3BhY2UKAAAAACAgLXogbm91bmlxdWUgICAgICAgICAgICAgICAgIERvbid0IG1hcmsgRFNPIGFzIGEgbG9hZGFibGUgYXQgbW9zdCBvbmNlCgAAAAAAAAAAICAteiBsYXp5ICAgICAgICAgICAgICAgICAgICAgTWFyayBvYmplY3QgbGF6eSBydW50aW1lIGJpbmRpbmcgKGRlZmF1bHQpCgAAAAAAAAAgIC16IGxvYWRmbHRyICAgICAgICAgICAgICAgICBNYXJrIG9iamVjdCByZXF1aXJpbmcgaW1tZWRpYXRlIHByb2Nlc3MKAAAgIC16IG5vY29weXJlbG9jICAgICAgICAgICAgICBEb24ndCBjcmVhdGUgY29weSByZWxvY3MKACAgLXogbm9kZWZhdWx0bGliICAgICAgICAgICAgIE1hcmsgb2JqZWN0IG5vdCB0byB1c2UgZGVmYXVsdCBzZWFyY2ggcGF0aHMKAAAAAAAAICAteiBub2RlbGV0ZSAgICAgICAgICAgICAgICAgTWFyayBEU08gbm9uLWRlbGV0YWJsZSBhdCBydW50aW1lCgAAAAAAAAAAICAteiBub2Rsb3BlbiAgICAgICAgICAgICAgICAgTWFyayBEU08gbm90IGF2YWlsYWJsZSB0byBkbG9wZW4KACAgLXogbm9kdW1wICAgICAgICAgICAgICAgICAgIE1hcmsgRFNPIG5vdCBhdmFpbGFibGUgdG8gZGxkdW1wCgAgIC16IG5vdyAgICAgICAgICAgICAgICAgICAgICBNYXJrIG9iamVjdCBub24tbGF6eSBydW50aW1lIGJpbmRpbmcKAAAAAAAgIC16IG9yaWdpbiAgICAgICAgICAgICAgICAgICBNYXJrIG9iamVjdCByZXF1aXJpbmcgaW1tZWRpYXRlICRPUklHSU4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzaW5nIGF0IHJ1bnRpbWUKAAAAACAgLXogcmVscm8gICAgICAgICAgICAgICAgICAgIENyZWF0ZSBSRUxSTyBwcm9ncmFtIGhlYWRlciAoZGVmYXVsdCkKAAAAACAgLXogbm9yZWxybyAgICAgICAgICAgICAgICAgIERvbid0IGNyZWF0ZSBSRUxSTyBwcm9ncmFtIGhlYWRlcgoAAAAAAAAAACAgLXogc2VwYXJhdGUtY29kZSAgICAgICAgICAgIENyZWF0ZSBzZXBhcmF0ZSBjb2RlIHByb2dyYW0gaGVhZGVyCgAAAAAAACAgLXogbm9zZXBhcmF0ZS1jb2RlICAgICAgICAgIERvbid0IGNyZWF0ZSBzZXBhcmF0ZSBjb2RlIHByb2dyYW0gaGVhZGVyIChkZWZhdWx0KQoAAAAAAAAgIC16IGNvbW1vbiAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZSBjb21tb24gc3ltYm9scyB3aXRoIFNUVF9DT01NT04gdHlwZQoAAAAAACAgLXogbm9jb21tb24gICAgICAgICAgICAgICAgIEdlbmVyYXRlIGNvbW1vbiBzeW1ib2xzIHdpdGggU1RUX09CSkVDVCB0eXBlCgAAAAAAICAteiBzdGFjay1zaXplPVNJWkUgICAgICAgICAgU2V0IHNpemUgb2Ygc3RhY2sgc2VnbWVudAoAAAAAAAAAACAgLXogdGV4dCAgICAgICAgICAgICAgICAgICAgIFRyZWF0IERUX1RFWFRSRUwgaW4gb3V0cHV0IGFzIGVycm9yIChkZWZhdWx0KQoAAAAAICAteiB0ZXh0ICAgICAgICAgICAgICAgICAgICAgVHJlYXQgRFRfVEVYVFJFTCBpbiBvdXRwdXQgYXMgZXJyb3IKAAAAAAAAICAteiBub3RleHQgICAgICAgICAgICAgICAgICAgRG9uJ3QgdHJlYXQgRFRfVEVYVFJFTCBpbiBvdXRwdXQgYXMgZXJyb3IgKGRlZmF1bHQpCgAAAAAAACAgLXogdGV4dG9mZiAgICAgICAgICAgICAgICAgIERvbid0IHRyZWF0IERUX1RFWFRSRUwgaW4gb3V0cHV0IGFzIGVycm9yIChkZWZhdWx0KQoAAAAAAAAgIC16IG5vdGV4dCAgICAgICAgICAgICAgICAgICBEb24ndCB0cmVhdCBEVF9URVhUUkVMIGluIG91dHB1dCBhcyBlcnJvcgoAAAAAAAAAACAgLXogdGV4dG9mZiAgICAgICAgICAgICAgICAgIERvbid0IHRyZWF0IERUX1RFWFRSRUwgaW4gb3V0cHV0IGFzIGVycm9yCgAAAAAAAAAAJUYlUDogYmFkIC0tdW5yZXNvbHZlZC1zeW1ib2xzIG9wdGlvbjogJXMKAAAAAAAAJUYlUDogdW5yZWNvZ25pc2VkIG9wdGlvbjogJXMKAAAlRiVQOiAtciBhbmQgJXMgbWF5IG5vdCBiZSB1c2VkIHRvZ2V0aGVyCgAAAAAAAAAlUDogU09OQU1FIG11c3Qgbm90IGJlIGVtcHR5IHN0cmluZzsga2VlcGluZyBwcmV2aW91cyBvbmUKAAAAAAAAJUYlUDogaW52YWxpZCBjb21tb24gc2VjdGlvbiBzb3J0aW5nIG9wdGlvbjogJXMKAAAAAAAAAAAlRiVQOiBpbnZhbGlkIHNlY3Rpb24gc29ydGluZyBvcHRpb246ICVzCgAAAAAAAAAlRiVQOiBpbnZhbGlkIGFyZ3VtZW50IHRvIG9wdGlvbiAiLS1zZWN0aW9uLXN0YXJ0IgoAAAAAACVGJVA6IG1pc3NpbmcgYXJndW1lbnQocykgdG8gb3B0aW9uICItLXNlY3Rpb24tc3RhcnQiCgAAJUYlUDogZ3JvdXAgZW5kZWQgYmVmb3JlIGl0IGJlZ2FuICgtLWhlbHAgZm9yIHVzYWdlKQoAAAAlWCVQOiAtLWhhc2gtc2l6ZSBuZWVkcyBhIG51bWVyaWMgYXJndW1lbnQKAAAAAAAlRiVQOiBubyBzdGF0ZSBwdXNoZWQgYmVmb3JlIHBvcHBpbmcKAAAAJUYlUDogaW52YWxpZCBhcmd1bWVudCB0byBvcHRpb24gIi0tb3JwaGFuLWhhbmRsaW5nIgoAAAAlRiVQOiBiYWQgLS1jdGYtc2hhcmUtdHlwZXMgb3B0aW9uOiAlcwoAJVA6IG5vIGZpbGUvZGlyZWN0b3J5IG5hbWUgcHJvdmlkZWQgZm9yIG1hcCBvdXRwdXQ7IGlnbm9yZWQKAAAAACVQOiBjYW5ub3Qgc3RhdCBsaW5rZXIgbWFwIGZpbGU6ICVFCgAAAAAlUDogbGlua2VyIG1hcCBmaWxlIGlzIG5vdCBhIHJlZ3VsYXIgZmlsZQoAAAAAAAAlUCVGOiBjYW5ub3QgY3JlYXRlIG5hbWUgZm9yIGxpbmtlciBtYXAgZmlsZTogJUUKAAAAAAAAACVQOiBTT05BTUUgbXVzdCBub3QgYmUgZW1wdHkgc3RyaW5nOyBpZ25vcmVkCgAAACVQOiBtaXNzaW5nIC0tZW5kLWdyb3VwOyBhZGRlZCBhcyBsYXN0IGNvbW1hbmQgbGluZSBvcHRpb24KAAAAAAAlRiVQOiAtRiBtYXkgbm90IGJlIHVzZWQgd2l0aG91dCAtc2hhcmVkCgAAAAAAAAAlRiVQOiAtZiBtYXkgbm90IGJlIHVzZWQgd2l0aG91dCAtc2hhcmVkCgAAAAAAAABTcGVjaWZ5IHRhcmdldCBmb3IgZm9sbG93aW5nIGlucHV0IGZpbGVzAAAAAAAAAABGb3JjZSBjb21tb24gc3ltYm9scyB0byBiZSBkZWZpbmVkAAAAAAAARm9yY2UgZ3JvdXAgbWVtYmVycyBvdXQgb2YgZ3JvdXBzAAAAAAAAAFVuZG8gdGhlIGVmZmVjdCBvZiAtLWV4cG9ydC1keW5hbWljAAAAAABFbmFibGUgc3VwcG9ydCBvZiBub24tY29udGlndW91cyBtZW1vcnkgcmVnaW9ucwBlbmFibGUtbm9uLWNvbnRpZ3VvdXMtcmVnaW9ucy13YXJuaW5ncwAARW5hYmxlIHdhcm5pbmdzIHdoZW4gLS1lbmFibGUtbm9uLWNvbnRpZ3VvdXMtcmVnaW9ucyBtYXkgY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvdXIAAAAAAEF1eGlsaWFyeSBmaWx0ZXIgZm9yIHNoYXJlZCBvYmplY3Qgc3ltYm9sIHRhYmxlAEZpbHRlciBmb3Igc2hhcmVkIG9iamVjdCBzeW1ib2wgdGFibGUAAABTbWFsbCBkYXRhIHNpemUgKGlmIG5vIHNpemUsIHNhbWUgYXMgLS1zaGFyZWQpAABTZXQgaW50ZXJuYWwgbmFtZSBvZiBzaGFyZWQgbGlicmFyeQAAAAAAU2V0IFBST0dSQU0gYXMgdGhlIGR5bmFtaWMgbGlua2VyIHRvIHVzZQAAAAAAAAAAUHJvZHVjZSBhbiBleGVjdXRhYmxlIHdpdGggbm8gcHJvZ3JhbSBpbnRlcnByZXRlciBoZWFkZXIAAAAAAAAAAEFkZCBESVJFQ1RPUlkgdG8gbGlicmFyeSBzZWFyY2ggcGF0aAAAAABPdmVycmlkZSB0aGUgZGVmYXVsdCBzeXNyb290IGxvY2F0aW9uAAAAUHJpbnQgbWFwIGZpbGUgb24gc3RhbmRhcmQgb3V0cHV0AAAAAAAAAERvIG5vdCBwYWdlIGFsaWduIGRhdGEsIGRvIG5vdCBtYWtlIHRleHQgcmVhZG9ubHkAAAAAAAAAUGFnZSBhbGlnbiBkYXRhLCBtYWtlIHRleHQgcmVhZG9ubHkAAAAAAFNlbmQgYXJnIHRvIGxhc3QtbG9hZGVkIHBsdWdpbgAASWdub3JlZCBmb3IgR0NDIExUTyBvcHRpb24gY29tcGF0aWJpbGl0eQAAAAAAAAAASWdub3JlZCBmb3IgR0NDIGxpbmtlciBvcHRpb24gY29tcGF0aWJpbGl0eQAAAAAASWdub3JlZCBmb3IgZ29sZCBvcHRpb24gY29tcGF0aWJpbGl0eQAAAElnbm9yZWQgZm9yIFNWUjQgY29tcGF0aWJpbGl0eQAAR2VuZXJhdGUgcmVsb2NhdGlvbnMgaW4gZmluYWwgb3V0cHV0AAAAAEp1c3QgbGluayBzeW1ib2xzIChpZiBkaXJlY3RvcnksIHNhbWUgYXMgLS1ycGF0aCkAAAAAAAAAU3RyaXAgc3ltYm9scyBpbiBkaXNjYXJkZWQgc2VjdGlvbnMAAAAAAERvIG5vdCBzdHJpcCBzeW1ib2xzIGluIGRpc2NhcmRlZCBzZWN0aW9ucwAAAAAAAFN0YXJ0IHdpdGggdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBTWU1CT0wAAAAAAAAAAFJlcXVpcmUgU1lNQk9MIGJlIGRlZmluZWQgaW4gdGhlIGZpbmFsIG91dHB1dAAAAERvbid0IG1lcmdlIGlucHV0IFtTRUNUSU9OIHwgb3JwaGFuXSBzZWN0aW9ucwAAAEJ1aWxkIGdsb2JhbCBjb25zdHJ1Y3Rvci9kZXN0cnVjdG9yIHRhYmxlcwAAAAAAAFByaW50IHZlcnNpb24gYW5kIGVtdWxhdGlvbiBpbmZvcm1hdGlvbgBEaXNjYXJkIHRlbXBvcmFyeSBsb2NhbCBzeW1ib2xzIChkZWZhdWx0KQAAAAAAAABEb24ndCBkaXNjYXJkIGFueSBsb2NhbCBzeW1ib2xzAERlZmF1bHQgc2VhcmNoIHBhdGggZm9yIFNvbGFyaXMgY29tcGF0aWJpbGl0eQAAAEFjY2VwdCBpbnB1dCBmaWxlcyB3aG9zZSBhcmNoaXRlY3R1cmUgY2Fubm90IGJlIGRldGVybWluZWQAAAAAAABSZWplY3QgaW5wdXQgZmlsZXMgd2hvc2UgYXJjaGl0ZWN0dXJlIGlzIHVua25vd24AAAAAAAAAAE9ubHkgc2V0IERUX05FRURFRCBmb3IgZm9sbG93aW5nIGR5bmFtaWMgbGlicyBpZiB1c2VkAAAAQWx3YXlzIHNldCBEVF9ORUVERUQgZm9yIGR5bmFtaWMgbGlicmFyaWVzIG1lbnRpb25lZCBvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBjb21tYW5kIGxpbmUAAAAAAAAAAElnbm9yZWQgZm9yIFN1bk9TIGNvbXBhdGliaWxpdHkARG8gbm90IGxpbmsgYWdhaW5zdCBzaGFyZWQgbGlicmFyaWVzAAAAAEJpbmQgZ2xvYmFsIHJlZmVyZW5jZXMgbG9jYWxseQAAQmluZCBnbG9iYWwgZnVuY3Rpb24gcmVmZXJlbmNlcyBsb2NhbGx5AENoZWNrIHNlY3Rpb24gYWRkcmVzc2VzIGZvciBvdmVybGFwcyAoZGVmYXVsdCkAAERvIG5vdCBjaGVjayBzZWN0aW9uIGFkZHJlc3NlcyBmb3Igb3ZlcmxhcHMAAAAAAENvcHkgRFRfTkVFREVEIGxpbmtzIG1lbnRpb25lZCBpbnNpZGUgRFNPcyB0aGF0IGZvbGxvdwAARG8gbm90IGNvcHkgRFRfTkVFREVEIGxpbmtzIG1lbnRpb25lZCBpbnNpZGUgRFNPcyB0aGF0IGZvbGxvdwAAAERlbWFuZ2xlIHN5bWJvbCBuYW1lcyBbdXNpbmcgU1RZTEVdAAAAAABEbyBub3QgYWxsb3cgbXVsdGlwbGUgZGVmaW5pdGlvbnMgd2l0aCBzeW1ib2xzIGluY2x1ZGVkCiAgICAgICAgICAgaW4gZmlsZW5hbWUgaW52b2tlZCBieSAtUiBvciAtLWp1c3Qtc3ltYm9scwAARG8gbm90IHRyZWF0IHdhcm5pbmdzIGFzIGVycm9ycyAoZGVmYXVsdCkAAAAAAAAARm9yY2UgZ2VuZXJhdGlvbiBvZiBmaWxlIHdpdGggLmV4ZSBzdWZmaXgAAAAAAAAAUmVtb3ZlIHVudXNlZCBzZWN0aW9ucyAob24gc29tZSB0YXJnZXRzKQAAAAAAAAAARG9uJ3QgcmVtb3ZlIHVudXNlZCBzZWN0aW9ucyAoZGVmYXVsdCkAAExpc3QgcmVtb3ZlZCB1bnVzZWQgc2VjdGlvbnMgb24gc3RkZXJyAABEbyBub3QgbGlzdCByZW1vdmVkIHVudXNlZCBzZWN0aW9ucwAAAAAAS2VlcCBleHBvcnRlZCBzeW1ib2xzIHdoZW4gcmVtb3ZpbmcgdW51c2VkIHNlY3Rpb25zAAAAAABTZXQgZGVmYXVsdCBoYXNoIHRhYmxlIHNpemUgY2xvc2UgdG8gPE5VTUJFUj4AAABXcml0ZSBhIGxpbmtlciBtYXAgdG8gRklMRSBvciBESVIvPG91dHB1dG5hbWU+Lm1hcAAAAAAAAFVzZSBsZXNzIG1lbW9yeSBhbmQgbW9yZSBkaXNrIEkvTwAAAAAAAABEbyBub3QgYWxsb3cgdW5yZXNvbHZlZCByZWZlcmVuY2VzIGluIG9iamVjdCBmaWxlcwAAAAAAAEFsbG93IHVucmVzb2x2ZWQgcmVmZXJlbmNlcyBpbiBzaGFyZWQgbGlicmFyaWVzAERvIG5vdCBhbGxvdyB1bnJlc29sdmVkIHJlZmVyZW5jZXMgaW4gc2hhcmVkIGxpYnMAAAAAAAAAUHJvdmlkZSBhIHNjcmlwdCB0byBoZWxwIHdpdGggdW5kZWZpbmVkIHN5bWJvbCBlcnJvcnMAAABDcmVhdGUgZGVmYXVsdCBzeW1ib2wgdmVyc2lvbiBmb3IgaW1wb3J0ZWQgc3ltYm9scwAAAAAAAERvbid0IHdhcm4gYWJvdXQgbWlzbWF0Y2hlZCBpbnB1dCBmaWxlcwBEb24ndCB3YXJuIG9uIGZpbmRpbmcgYW4gaW5jb21wYXRpYmxlIGxpYnJhcnkAAABDcmVhdGUgYW4gb3V0cHV0IGZpbGUgZXZlbiBpZiBlcnJvcnMgb2NjdXIAAAAAAABPbmx5IHVzZSBsaWJyYXJ5IGRpcmVjdG9yaWVzIHNwZWNpZmllZCBvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBjb21tYW5kIGxpbmUAAAAAAABJZ25vcmVkIGZvciBMaW51eCBjb21wYXRpYmlsaXR5AFJlZHVjZSBtZW1vcnkgb3ZlcmhlYWRzLCBwb3NzaWJseSB0YWtpbmcgbXVjaCBsb25nZXIAAAAAUmVkdWNlIGNvZGUgc2l6ZSBieSB1c2luZyB0YXJnZXQgc3BlY2lmaWMgb3B0aW1pemF0aW9ucwBEbyBub3QgdXNlIHJlbGF4YXRpb24gdGVjaG5pcXVlcyB0byByZWR1Y2UgY29kZSBzaXplAAAAAEtlZXAgb25seSBzeW1ib2xzIGxpc3RlZCBpbiBGSUxFAAAAAAAAAABTZXQgcnVudGltZSBzaGFyZWQgbGlicmFyeSBzZWFyY2ggcGF0aAAAU2V0IGxpbmsgdGltZSBzaGFyZWQgbGlicmFyeSBzZWFyY2ggcGF0aAAAAAAAAAAAQ3JlYXRlIGEgcG9zaXRpb24gaW5kZXBlbmRlbnQgZXhlY3V0YWJsZQAAAAAAAAAAU29ydCBjb21tb24gc3ltYm9scyBieSBhbGlnbm1lbnQgW2luIHNwZWNpZmllZCBvcmRlcl0AAABTb3J0IHNlY3Rpb25zIGJ5IG5hbWUgb3IgbWF4aW11bSBhbGlnbm1lbnQAAAAAAABIb3cgbWFueSB0YWdzIHRvIHJlc2VydmUgaW4gLmR5bmFtaWMgc2VjdGlvbgAAAABTcGxpdCBvdXRwdXQgc2VjdGlvbnMgZXZlcnkgU0laRSBvY3RldHMAU3BsaXQgb3V0cHV0IHNlY3Rpb25zIGV2ZXJ5IENPVU5UIHJlbG9jcwAAAAAAAAAARGlzcGxheSB0YXJnZXQgc3BlY2lmaWMgb3B0aW9ucwBVc2Ugc2FtZSBmb3JtYXQgYXMgbmF0aXZlIGxpbmtlcgAAAAAAAAAASG93IHRvIGhhbmRsZSB1bnJlc29sdmVkIHN5bWJvbHMuICA8bWV0aG9kPiBpczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmUtYWxsLCByZXBvcnQtYWxsLCBpZ25vcmUtaW4tb2JqZWN0LWZpbGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZS1pbi1zaGFyZWQtbGlicwAAAE91dHB1dCBsb3RzIG9mIGluZm9ybWF0aW9uIGR1cmluZyBsaW5rAABSZWFkIHZlcnNpb24gaW5mb3JtYXRpb24gc2NyaXB0AFRha2UgZXhwb3J0IHN5bWJvbHMgbGlzdCBmcm9tIC5leHBvcnRzLCB1c2luZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNZTUJPTCBhcyB0aGUgdmVyc2lvbi4AAAAAQWRkIGRhdGEgc3ltYm9scyB0byBkeW5hbWljIGxpc3QAAAAAAAAAAFVzZSBDKysgb3BlcmF0b3IgbmV3L2RlbGV0ZSBkeW5hbWljIGxpc3QAAAAAAAAAAFJlYWQgZXhwb3J0IGR5bmFtaWMgc3ltYm9sIGxpc3QAV2FybiBhYm91dCBkdXBsaWNhdGUgY29tbW9uIHN5bWJvbHMAAAAAAFdhcm4gaWYgZ2xvYmFsIGNvbnN0cnVjdG9ycy9kZXN0cnVjdG9ycyBhcmUgc2VlbgAAAAAAAAAAV2FybiBpZiB0aGUgbXVsdGlwbGUgR1AgdmFsdWVzIGFyZSB1c2VkAFdhcm4gb25seSBvbmNlIHBlciB1bmRlZmluZWQgc3ltYm9sAAAAAABXYXJuIGlmIHN0YXJ0IG9mIHNlY3Rpb24gY2hhbmdlcyBkdWUgdG8gYWxpZ25tZW50AAAAAAAAAFdhcm4gaWYgYW4gb2JqZWN0IGhhcyBhbHRlcm5hdGUgRUxGIG1hY2hpbmUgY29kZQAAAAAAAAAAUmVwb3J0IHVucmVzb2x2ZWQgc3ltYm9scyBhcyB3YXJuaW5ncwAAAFJlcG9ydCB1bnJlc29sdmVkIHN5bWJvbHMgYXMgZXJyb3JzAAAAAABJbmNsdWRlIGFsbCBvYmplY3RzIGZyb20gZm9sbG93aW5nIGFyY2hpdmVzAAAAAABVc2Ugd3JhcHBlciBmdW5jdGlvbnMgZm9yIFNZTUJPTAAAAAAAAAAAVW5yZXNvbHZlZCBTWU1CT0wgd2lsbCBub3QgY2F1c2UgYW4gZXJyb3Igb3Igd2FybmluZwAAAAB3YXJuLXBvaXNvbi1zeXN0ZW0tZGlyZWN0b3JpZXMAAFdhcm4gZm9yIC1MIG9wdGlvbnMgdXNpbmcgc3lzdGVtIGRpcmVjdG9yaWVzAAAAAG5vLXdhcm4tcG9pc29uLXN5c3RlbS1kaXJlY3RvcmllcwAAAAAAAABEbyBub3Qgd2FybiBmb3IgLUwgb3B0aW9ucyB1c2luZyBzeXN0ZW0gZGlyZWN0b3JpZXMAAAAAAGVycm9yLXBvaXNvbi1zeXN0ZW0tZGlyZWN0b3JpZXMAR2l2ZSBhbiBlcnJvciBmb3IgLUwgb3B0aW9ucyB1c2luZyBzeXN0ZW0gZGlyZWN0b3JpZXMAAABQdXNoIHN0YXRlIG9mIGZsYWdzIGdvdmVybmluZyBpbnB1dCBmaWxlIGhhbmRsaW5nAAAAAAAAAFBvcCBzdGF0ZSBvZiBmbGFncyBnb3Zlcm5pbmcgaW5wdXQgZmlsZSBoYW5kbGluZwAAAAAAAAAAQ29udHJvbCBob3cgb3JwaGFuIHNlY3Rpb25zIGFyZSBoYW5kbGVkLgAAAAAAAAAAU2hvdyBkaXNjYXJkZWQgc2VjdGlvbnMgaW4gbWFwIGZpbGUgb3V0cHV0IChkZWZhdWx0KQAAAABEbyBub3Qgc2hvdyBkaXNjYXJkZWQgc2VjdGlvbnMgaW4gbWFwIGZpbGUgb3V0cHV0AAAAAAAAAEVtaXQgbmFtZXMgYW5kIHR5cGVzIG9mIHN0YXRpYyB2YXJpYWJsZXMgaW4gQ1RGAERvIG5vdCBlbWl0IG5hbWVzIGFuZCB0eXBlcyBvZiBzdGF0aWMgdmFyaWFibGVzIGluIENURgAASG93IHRvIHNoYXJlIENURiB0eXBlcyBiZXR3ZWVuIHRyYW5zbGF0aW9uIHVuaXRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZXRob2Q+IGlzOiBzaGFyZS11bmNvbmZsaWN0ZWQgKGRlZmF1bHQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZS1kdXBsaWNhdGVkAC1waWUALS1zaGFyZWQALS1saWJyYXJ5PSVzACVQOiAlczogbWlzc2luZyBhcmd1bWVudAoAbm9kZWZpbml0aW9ucwBub3N5bWJvbGljAHB1cmUtdGV4dAAtLWRlZnN5bQAlRiVQOiBpbnZhbGlkIG51bWJlciBgJXMnCgBVc2FnZTogJXMgW29wdGlvbnNdIGZpbGUuLi4KAE9wdGlvbnM6CgAgIEBGSUxFAFJlYWQgb3B0aW9ucyBmcm9tIEZJTEUKACVzOiBzdXBwb3J0ZWQgdGFyZ2V0czoAJXM6IHN1cHBvcnRlZCBlbXVsYXRpb25zOiAARUxGIGVtdWxhdGlvbnM6CgBnbnUKAFJlcG9ydCBidWdzIHRvICVzCgA8aHR0cHM6Ly9jcmJ1Zy5jb20+AGlnbm9yZS1hbGwAcmVwb3J0LWFsbABpZ25vcmUtaW4tb2JqZWN0LWZpbGVzAGlnbm9yZS1pbi1zaGFyZWQtbGlicwAlRiVQOiBiYWQgLXBsdWdpbi1vcHQgb3B0aW9uCgAlcyVjJXMAJUYlUDogLXNoYXJlZCBub3Qgc3VwcG9ydGVkCgAlRiVQOiAtcGllIG5vdCBzdXBwb3J0ZWQKAGRlc2NlbmRpbmcAYXNjZW5kaW5nAC50ZXh0LXNlZ21lbnQALnJvZGF0YS1zZWdtZW50AC5sZGF0YS1zZWdtZW50AHBsYWNlAHdhcm4AZGlzY2FyZABzaGFyZS11bmNvbmZsaWN0ZWQAc2hhcmUtZHVwbGljYXRlZAAlcyVzJXMAJXMlcyVzLm1hcAAlUDogdW5yZWNvZ25pemVkIG9wdGlvbiAnJXMnCgAlcy0lcyVzACVzLSVjAEtFWVdPUkQAU2V0IGFyY2hpdGVjdHVyZQBtcmktc2NyaXB0AFJlYWQgTVJJIGZvcm1hdCBsaW5rZXIgc2NyaXB0AGRjAGRwAGRlcGVuZGVuY3ktZmlsZQBXcml0ZSBkZXBlbmRlbmN5IGZpbGUAZm9yY2UtZ3JvdXAtYWxsb2NhdGlvbgBTZXQgc3RhcnQgYWRkcmVzcwBFeHBvcnQgYWxsIGR5bmFtaWMgc3ltYm9scwBuby1leHBvcnQtZHluYW1pYwBlbmFibGUtbm9uLWNvbnRpZ3VvdXMtcmVnaW9ucwBFQgBMaW5rIGJpZy1lbmRpYW4gb2JqZWN0cwBMaW5rIGxpdHRsZS1lbmRpYW4gb2JqZWN0cwBhdXhpbGlhcnkAZmlsdGVyAElnbm9yZWQAZ3BzaXplAHNvbmFtZQBGSUxFTkFNRQBQUk9HUkFNAG5vLWR5bmFtaWMtbGlua2VyAFNlYXJjaCBmb3IgbGlicmFyeSBMSUJOQU1FAGxpYnJhcnktcGF0aABESVJFQ1RPUlkAc3lzcm9vdD08RElSRUNUT1JZPgBTZXQgZW11bGF0aW9uAHByaW50LW1hcABubWFnaWMARG8gbm90IHBhZ2UgYWxpZ24gZGF0YQBuby1vbWFnaWMAU2V0IG91dHB1dCBmaWxlIG5hbWUAT3B0aW1pemUgb3V0cHV0IGZpbGUAb3V0LWltcGxpYgBHZW5lcmF0ZSBpbXBvcnQgbGlicmFyeQBQTFVHSU4ATG9hZCBuYW1lZCBwbHVnaW4AcGx1Z2luLW9wdABBUkcAZmx0bwBmbHRvLXBhcnRpdGlvbj0AZnVzZS1sZD0Abm8tbWFwLXdob2xlLWZpbGVzAFF5AGVtaXQtcmVsb2NzAHJlbG9jYXRhYmxlAEdlbmVyYXRlIHJlbG9jYXRhYmxlIG91dHB1dABqdXN0LXN5bWJvbHMAc3RyaXAtYWxsAFN0cmlwIGFsbCBzeW1ib2xzAHN0cmlwLWRlYnVnAFN0cmlwIGRlYnVnZ2luZyBzeW1ib2xzAG5vLXN0cmlwLWRpc2NhcmRlZAB0cmFjZQBUcmFjZSBmaWxlIG9wZW5zAFJlYWQgbGlua2VyIHNjcmlwdABkZWZhdWx0LXNjcmlwdABSZWFkIGRlZmF1bHQgbGlua2VyIHNjcmlwdABkVAByZXF1aXJlLWRlZmluZWQAWz1TRUNUSU9OXQBVcgBQcmludCB2ZXJzaW9uIGluZm9ybWF0aW9uAGRpc2NhcmQtYWxsAERpc2NhcmQgYWxsIGxvY2FsIHN5bWJvbHMAZGlzY2FyZC1sb2NhbHMAZGlzY2FyZC1ub25lAHRyYWNlLXN5bWJvbABUcmFjZSBtZW50aW9ucyBvZiBTWU1CT0wAc3RhcnQtZ3JvdXAAU3RhcnQgYSBncm91cABlbmQtZ3JvdXAARW5kIGEgZ3JvdXAAbm8tYWNjZXB0LXVua25vd24taW5wdXQtYXJjaABuby1hZGQtbmVlZGVkAG5vLWFzLW5lZWRlZABhc3NlcnQAQmR5bmFtaWMATGluayBhZ2FpbnN0IHNoYXJlZCBsaWJyYXJpZXMAY2FsbF9zaGFyZWQAQnN0YXRpYwBkbgBub25fc2hhcmVkAEJzeW1ib2xpYwBCc3ltYm9saWMtZnVuY3Rpb25zAG5vLWNoZWNrLXNlY3Rpb25zAG5vLWNvcHktZHQtbmVlZGVkLWVudHJpZXMAY3JlZgBPdXRwdXQgY3Jvc3MgcmVmZXJlbmNlIHRhYmxlAFNZTUJPTD1FWFBSRVNTSU9OAERlZmluZSBhIHN5bWJvbABbPVNUWUxFXQBkaXNhYmxlLW11bHRpcGxlLWFicy1kZWZzAGVtYmVkZGVkLXJlbG9jcwBHZW5lcmF0ZSBlbWJlZGRlZCByZWxvY3MAVHJlYXQgd2FybmluZ3MgYXMgZXJyb3JzAG5vLWZhdGFsLXdhcm5pbmdzAENhbGwgU1lNQk9MIGF0IHVubG9hZC10aW1lAGZvcmNlLWV4ZS1zdWZmaXgAbm8tZ2Mtc2VjdGlvbnMAbm8tcHJpbnQtZ2Mtc2VjdGlvbnMAZ2Mta2VlcC1leHBvcnRlZABoYXNoLXNpemU9PE5VTUJFUj4AUHJpbnQgb3B0aW9uIGhlbHAAQ2FsbCBTWU1CT0wgYXQgbG9hZC10aW1lAE1hcABGSUxFL0RJUgBuby1kZWZpbmUtY29tbW9uAERvIG5vdCBkZWZpbmUgQ29tbW9uIHN0b3JhZ2UAbm8tZGVtYW5nbGUARG8gbm90IGRlbWFuZ2xlIHN5bWJvbCBuYW1lcwBuby1rZWVwLW1lbW9yeQBuby11bmRlZmluZWQAbm8tYWxsb3ctc2hsaWItdW5kZWZpbmVkAGFsbG93LW11bHRpcGxlLWRlZmluaXRpb24AQWxsb3cgbXVsdGlwbGUgZGVmaW5pdGlvbnMAZXJyb3ItaGFuZGxpbmctc2NyaXB0AG5vLXVuZGVmaW5lZC12ZXJzaW9uAERpc2FsbG93IHVuZGVmaW5lZCB2ZXJzaW9uAGRlZmF1bHQtc3ltdmVyAENyZWF0ZSBkZWZhdWx0IHN5bWJvbCB2ZXJzaW9uAGRlZmF1bHQtaW1wb3J0ZWQtc3ltdmVyAG5vLXdhcm4tbWlzbWF0Y2gAbm8td2Fybi1zZWFyY2gtbWlzbWF0Y2gAbm8td2hvbGUtYXJjaGl2ZQBUdXJuIG9mZiAtLXdob2xlLWFyY2hpdmUAbm9pbmhpYml0LWV4ZWMAbm9pbmhpYml0X2V4ZWMAbm9zdGRsaWIAb2Zvcm1hdABTcGVjaWZ5IHRhcmdldCBvZiBvdXRwdXQgZmlsZQBwcmludC1vdXRwdXQtZm9ybWF0AFByaW50IGRlZmF1bHQgb3V0cHV0IGZvcm1hdABwcmludC1zeXNyb290AFByaW50IGN1cnJlbnQgc3lzcm9vdABxbWFnaWMAcmVkdWNlLW1lbW9yeS1vdmVyaGVhZHMAbm8tcmVsYXgAcmV0YWluLXN5bWJvbHMtZmlsZQBycGF0aABycGF0aC1saW5rAENyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5AEJzaGFyZWFibGUAcGljLWV4ZWN1dGFibGUAc29ydC1jb21tb24AWz1hc2NlbmRpbmd8ZGVzY2VuZGluZ10Ac29ydF9jb21tb24Ac29ydC1zZWN0aW9uAG5hbWV8YWxpZ25tZW50AHNwYXJlLWR5bmFtaWMtdGFncwBDT1VOVABzcGxpdC1ieS1maWxlAFs9U0laRV0Ac3BsaXQtYnktcmVsb2MAWz1DT1VOVF0Ac3RhdHMAUHJpbnQgbWVtb3J5IHVzYWdlIHN0YXRpc3RpY3MAdGFyZ2V0LWhlbHAAdGFzay1saW5rAERvIHRhc2sgbGV2ZWwgbGlua2luZwB0cmFkaXRpb25hbC1mb3JtYXQAc2VjdGlvbi1zdGFydABTRUNUSU9OPUFERFJFU1MAU2V0IGFkZHJlc3Mgb2YgbmFtZWQgc2VjdGlvbgBUYnNzAFNldCBhZGRyZXNzIG9mIC5ic3Mgc2VjdGlvbgBUZGF0YQBTZXQgYWRkcmVzcyBvZiAuZGF0YSBzZWN0aW9uAFR0ZXh0AFNldCBhZGRyZXNzIG9mIC50ZXh0IHNlY3Rpb24AVHRleHQtc2VnbWVudABTZXQgYWRkcmVzcyBvZiB0ZXh0IHNlZ21lbnQAVHJvZGF0YS1zZWdtZW50AFNldCBhZGRyZXNzIG9mIHJvZGF0YSBzZWdtZW50AFRsZGF0YS1zZWdtZW50AFNldCBhZGRyZXNzIG9mIGxkYXRhIHNlZ21lbnQAdW5yZXNvbHZlZC1zeW1ib2xzPTxtZXRob2Q+AFs9TlVNQkVSXQBkbGwtdmVyYm9zZQB2ZXJzaW9uLXNjcmlwdAB2ZXJzaW9uLWV4cG9ydHMtc2VjdGlvbgBkeW5hbWljLWxpc3QtZGF0YQBkeW5hbWljLWxpc3QtY3BwLW5ldwBkeW5hbWljLWxpc3QtY3BwLXR5cGVpbmZvAFVzZSBDKysgdHlwZWluZm8gZHluYW1pYyBsaXN0AGR5bmFtaWMtbGlzdABSZWFkIGR5bmFtaWMgbGlzdABleHBvcnQtZHluYW1pYy1zeW1ib2wARXhwb3J0IHRoZSBzcGVjaWZpZWQgc3ltYm9sAGV4cG9ydC1keW5hbWljLXN5bWJvbC1saXN0AHdhcm4tY29tbW9uAHdhcm4tY29uc3RydWN0b3Jz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AwAAAAAAAAChQUQAAAAAAAAAAAAAAAAAAAAAAAAAAAD3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4KUQAAAAAAAMAAAAAAAAAgUJEAAAAAAABAAAAAAAAAAAAAAAAAAAAbwAAAAAAAABvAAAAAAAAAOE9RAAAAAAAq0FEAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATwAAAAAAAAAAAAAAAAAAAMBBRAAAAAAAAQAAAAAAAADVQUQAAAAAAAEAAAAAAAAAAAAAAAAAAACeAAAAAAAAAAAAAAAAAAAA4T1EAAAAAADgQUQAAAAAAAIAAAAAAAAACkJEAAAAAAABAAAAAAAAAAAAAAAAAAAAAwEAAAAAAAAAAAAAAAAAAPhBRAAAAAAA/0FEAAAAAAABAAAAAAAAABFCRAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQBAAAAAAAAAAAAAAAAAAAcQkQAAAAAAKApRAAAAAAAAQAAAAAAAAAgQkQAAAAAAAIAAAAAAAAAAAAAAAAAAAClAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAKUQAAAAAAAEAAAAAAAAAJUJEAAAAAAABAAAAAAAAAAAAAAAAAAAApQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwClEAAAAAAABAAAAAAAAADVCRAAAAAAAAQAAAAAAAAAAAAAAAAAAAKUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPApRAAAAAAAAQAAAAAAAABBQkQAAAAAAAIAAAAAAAAAAAAAAAAAAAClAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgKkQAAAAAAAIAAAAAAAAAPkJEAAAAAAACAAAAAAAAAAAAAAAAAAAApQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICpEAAAAAAACAAAAAAAAAFFCRAAAAAAAAAAAAAAAAAAAAAAAAAAAAKUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgqRAAAAAAAAQAAAAAAAABUQkQAAAAAAAAAAAAAAAAAAAAAAAAAAABxAAAAAAAAAHEAAAAAAAAAAAAAAAAAAABoKkQAAAAAAAIAAAAAAAAAYEJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAAAByAAAAAAAAAAAAAAAAAAAAbEJEAAAAAAACAAAA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VS1BAAAAAABVLUEAAAAAAFUtQQAAAAAAVS1BAAAAAACILUEAAAAAAGgtQQAAAAAAVS1BAAAAAABQMkEAAAAAALA1QQAAAAAAUDVBAAAAAABYNkEAAAAAAEA1QQAAAAAAoDRBAAAAAABQMkEAAAAAAFAyQQAAAAAAcDNBAAAAAABQMkEAAAAAAEgzQQAAAAAA8DJBAAAAAABQMkEAAAAAAKgyQQAAAAAAgDJBAAAAAADQMkEAAAAAAMBFQQAAAAAAMEZBAAAAAADgRUEAAAAAAPBFQQAAAAAAyUVBAAAAAADJRUEAAAAAAMlFQQAAAAAA00VBAAAAAADgRUEAAAAAAOBlQQAAAAAASGVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAADQZUEAAAAAAEhlQQAAAAAASGVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAABIZUEAAAAAAEhlQQAAAAAAkGVBAAAAAABIZUEAAAAAAEhlQQAAAAAAkGVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAABIZUEAAAAAAEhlQQAAAAAAoGVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAABIZUEAAAAAAMBlQQAAAAAAsGVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAABIZUEAAAAAAEhlQQAAAAAA0GVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAABIZUEAAAAAAJBlQQAAAAAASGVBAAAAAABIZUEAAAAAAJBlQQAAAAAASGVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAABIZUEAAAAAAKBlQQAAAAAASGVBAAAAAABIZUEAAAAAAEhlQQAAAAAASGVBAAAAAADAZUEAAAAAALBlQQAAAAAAgHFBAAAAAADYcEEAAAAAADhxQQAAAAAAEHFBAAAAAAAwckEAAAAAAPhwQQAAAAAAEHFBAAAAAAD4cEEAAAAAAPBxQQAAAAAA+HBBAAAAAAAQcUEAAAAAABBxQQAAAAAA+HBBAAAAAABQckEAAAAAANBxQQAAAAAAEHFBAAAAAADAc0EAAAAAANB1QQAAAAAAwHNBAAAAAADAc0EAAAAAAGB1QQAAAAAAwHNBAAAAAABwdEEAAAAAAMBzQQAAAAAAUHRBAAAAAADAc0EAAAAAAMBzQQAAAAAAwHNBAAAAAAAwdEEAAAAAAOhzQQAAAAAAsHNBAAAAAAAIAAAACAAAAAQAAAACAAAAAQAAAAAAAAAAAAAAAAAAAMZCQwAAAAAAxUJDAAAAAADLQkMAAAAAANBCQwAAAAAA1kJDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAABAAAAAAAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAAAAABjb21wYXJlX3NlY3Rpb24AbGFuZ19kb19hc3NpZ25tZW50c18xAAAAAAAAAAAAAABsYW5nX3NpemVfc2VjdGlvbnNfMQAAAABsb2FkX3N5bWJvbHMAAAAAAAAAAAAAAABwcmludF9kYXRhX3N0YXRlbWVudAAAAABwb3Bfc3RhdF9wdHIAAAAAcHVzaF9zdGF0X3B0cgAAACVYJVA6IGFkZHJlc3MgMHgldiBvZiAlcEIgc2VjdGlvbiBgJXMnIGlzIG5vdCB3aXRoaW4gcmVnaW9uIGAlcycKAAAAAAAAACVYJVA6ICVwQiBzZWN0aW9uIGAlcycgd2lsbCBub3QgZml0IGluIHJlZ2lvbiBgJXMnCgAAAAAAQ1RGIGVycm9yOiBjYW5ub3QgZ2V0IENURiBlcnJvcnM6IGAlcycKACVGJVA6IGJmZF9saW5rX2hhc2hfbG9va3VwIGZhaWxlZDogJUUKAAAlUDogd2FybmluZzogQ1RGIHNlY3Rpb24gZW1pc3Npb24gZmFpbGVkOyBvdXRwdXQgd2lsbCBoYXZlIG5vIENURiBzZWN0aW9uOiAlcwoAACVGJVA6IGNvdWxkIG5vdCBkZWZpbmUgY29tbW9uIHN5bWJvbCBgJXBUJzogJUUKAENvbW1vbiBzeW1ib2wgICAgICAgc2l6ZSAgICAgICAgICAgICAgZmlsZQoKAAAAACVGJVA6IGludmFsaWQgcmVsb2Mgc3RhdGVtZW50CgAAU09SVF9CWV9OQU1FKFNPUlRfQllfQUxJR05NRU5UKABTT1JUX0JZX0FMSUdOTUVOVChTT1JUX0JZX05BTUUoACVQOiVwUzogd2FybmluZzogcmVkZWNsYXJhdGlvbiBvZiBtZW1vcnkgcmVnaW9uIGAlcycKAAAAJVA6JXBTOiB3YXJuaW5nOiBtZW1vcnkgcmVnaW9uIGAlcycgbm90IGRlY2xhcmVkCgAAAAAAAAAlWCVQOiVwUzogc2VjdGlvbiBoYXMgYm90aCBhIGxvYWQgYWRkcmVzcyBhbmQgYSBsb2FkIHJlZ2lvbgoAAAAAJUYlUDolcFM6IG5vbiBjb25zdGFudCBvciBmb3J3YXJkIHJlZmVyZW5jZSBhZGRyZXNzIGV4cHJlc3Npb24gZm9yIHNlY3Rpb24gJXMKAAAlWCVQOiBpbnRlcm5hbCBlcnJvciBvbiBDT0ZGIHNoYXJlZCBsaWJyYXJ5IHNlY3Rpb24gJXMKACVGJVA6IGVycm9yOiBubyBtZW1vcnkgcmVnaW9uIHNwZWNpZmllZCBmb3IgbG9hZGFibGUgc2VjdGlvbiBgJXMnCgAAAAAAACVQOiB3YXJuaW5nOiBubyBtZW1vcnkgcmVnaW9uIHNwZWNpZmllZCBmb3IgbG9hZGFibGUgc2VjdGlvbiBgJXMnCgAAAAAAACVQOiB3YXJuaW5nOiBzdGFydCBvZiBzZWN0aW9uICVzIGNoYW5nZWQgYnkgJWxkCgAAAAAAAAAAJVA6IHdhcm5pbmc6IGRvdCBtb3ZlZCBiYWNrd2FyZHMgYmVmb3JlIGAlcycKAAAAJUYlUDogY2FuJ3QgcmVsYXggc2VjdGlvbjogJUUKAAAlRiVQOiBPdXRwdXQgc2VjdGlvbiAnJXMnIG5vdCBsYXJnZSBlbm91Z2ggZm9yIHRoZSBsaW5rZXItY3JlYXRlZCBzdHVicyBzZWN0aW9uICclcycuCgAAJUYlUDogUmVsYXhhdGlvbiBub3Qgc3VwcG9ydGVkIHdpdGggLS1lbmFibGUtbm9uLWNvbnRpZ3VvdXMtcmVnaW9ucyAoc2VjdGlvbiAnJXMnIHdvdWxkIG92ZXJmbG93ICclcycgYWZ0ZXIgaXQgY2hhbmdlZCBzaXplKS4KAAAlRiVQOiVwUzogZXJyb3I6IGFsaWFzIGZvciBkZWZhdWx0IG1lbW9yeSByZWdpb24KAAAAAAAAACVGJVA6JXBTOiBlcnJvcjogcmVkZWZpbml0aW9uIG9mIG1lbW9yeSByZWdpb24gYWxpYXMgYCVzJwoAAAAAAAAlRiVQOiVwUzogZXJyb3I6IG1lbW9yeSByZWdpb24gYCVzJyBmb3IgYWxpYXMgYCVzJyBkb2VzIG5vdCBleGlzdAoAAAAAAAAlRiVQOiBmYWlsZWQgY3JlYXRpbmcgc2VjdGlvbiBgJXMnOiAlRQoAJUYlUDogY2FuIG5vdCBjcmVhdGUgaGFzaCB0YWJsZTogJUUKAAAAACVGJVA6IGlsbGVnYWwgdXNlIG9mIGAlcycgc2VjdGlvbgoAAAAAAAAlRiVQOiBvdXRwdXQgZm9ybWF0ICVzIGNhbm5vdCByZXByZXNlbnQgc2VjdGlvbiBjYWxsZWQgJXM6ICVFCgAAd2FybmluZzogSU5TRVJUIHN0YXRlbWVudCBpbiBsaW5rZXIgc2NyaXB0IGlzIGluY29tcGF0aWJsZSB3aXRoIC0tZW5hYmxlLW5vbi1jb250aWd1b3VzLXJlZ2lvbnMuCgAAAAAAAAAlRiVQOiAlcyBub3QgZm91bmQgZm9yIGluc2VydAoAAApMaW5rZXIgc2NyaXB0IGFuZCBtZW1vcnkgbWFwCgoAJVA6JXBTOiB3YXJuaW5nOiAtLWVuYWJsZS1ub24tY29udGlndW91cy1yZWdpb25zIG1ha2VzIHNlY3Rpb24gYCVwQScgZnJvbSAnJXBCJyBtYXRjaCAvRElTQ0FSRC8gY2xhdXNlLgoAAAAAAAAAACVQOiVwUzogd2FybmluZzogLS1lbmFibGUtbm9uLWNvbnRpZ3VvdXMtcmVnaW9ucyBtYXkgY2hhbmdlIGJlaGF2aW91ciBmb3Igc2VjdGlvbiBgJXBBJyBmcm9tICclcEInIChhc3NpZ25lZCB0byAlcEEsIGJ1dCBhZGRpdGlvbmFsIG1hdGNoOiAlcEEpCgAAAAAAAAAAJVA6IHdhcm5pbmc6IGNvdWxkIG5vdCBmaW5kIGFueSB0YXJnZXRzIHRoYXQgbWF0Y2ggZW5kaWFubmVzcyByZXF1aXJlbWVudAoAAAAAAAAlRiVQOiBjYW5ub3Qgb3BlbiBvdXRwdXQgZmlsZSAlczogJUUKAAAAJUYlUDogJXM6IGNhbiBub3QgbWFrZSBvYmplY3QgZmlsZTogJUUKACVGJVA6ICVzOiBjYW4gbm90IHNldCBhcmNoaXRlY3R1cmU6ICVFCgAlRiVQOiBpbnZhbGlkIGNoYXJhY3RlciAlYyAoJWQpIGluIGZsYWdzCgAAAAAAAAAlUDogJXBCOiBmaWxlIG5vdCByZWNvZ25pemVkOiAlRTsgbWF0Y2hpbmcgZm9ybWF0czoAAAAAACVGJVA6ICVwQjogZmlsZSBub3QgcmVjb2duaXplZDogJUUKAAAAAAAlRiVQOiAlcEI6IG1lbWJlciAlcEIgaW4gYXJjaGl2ZSBpcyBub3QgYW4gb2JqZWN0CgAAAAAAACVGJVA6ICVwQjogZXJyb3IgYWRkaW5nIHN5bWJvbHM6ICVFCgAAAAAlUDogd2FybmluZzogJXMgY29udGFpbnMgb3V0cHV0IHNlY3Rpb25zOyBkaWQgeW91IGZvcmdldCAtVD8KAAAAJUYlUDolcFM6IGVycm9yOiBhbGlnbiB3aXRoIGlucHV0IGFuZCBleHBsaWNpdCBhbGlnbiBzcGVjaWZpZWQKACVYJVA6JXBTOiBQSERSUyBhbmQgRklMRUhEUiBhcmUgbm90IHN1cHBvcnRlZCB3aGVuIHByaW9yIFBUX0xPQUQgaGVhZGVycyBsYWNrIHRoZW0KAAAAAAAlWCVQOiB1bmtub3duIGxhbmd1YWdlIGAlcycgaW4gdmVyc2lvbiBpbmZvcm1hdGlvbgoAAAAAACVYJVA6IGFub255bW91cyB2ZXJzaW9uIHRhZyBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB2ZXJzaW9uIHRhZ3MKACVYJVA6IGR1cGxpY2F0ZSB2ZXJzaW9uIHRhZyBgJXMnCgAAAAAAAAAlWCVQOiBkdXBsaWNhdGUgZXhwcmVzc2lvbiBgJXMnIGluIHZlcnNpb24gaW5mb3JtYXRpb24KACVQOiBpbnZhbGlkIG9yaWdpbiBmb3IgbWVtb3J5IHJlZ2lvbiAlcwoAAAAAAAAAACVQOiBpbnZhbGlkIGxlbmd0aCBmb3IgbWVtb3J5IHJlZ2lvbiAlcwoAAAAAAAAAACVGJVA6ICVzOiBwbHVnaW4gcmVwb3J0ZWQgZXJyb3IgYWZ0ZXIgYWxsIHN5bWJvbHMgcmVhZAoACkFzLW5lZWRlZCBsaWJyYXJ5IGluY2x1ZGVkIHRvIHNhdGlzZnkgcmVmZXJlbmNlIGJ5IGZpbGUgKHN5bWJvbCkKCgAAAAAAJVA6IHdhcm5pbmc6IENURiBzZWN0aW9uIGluICVwQiBub3QgbG9hZGVkOyBpdHMgdHlwZXMgd2lsbCBiZSBkaXNjYXJkZWQ6ICVzCgAAAAAlUDogd2FybmluZzogQ1RGIG91dHB1dCBub3QgY3JlYXRlZDogYCVzJwoAAAAAAAAlWCVQOiAlcyBhcmNoaXRlY3R1cmUgb2YgaW5wdXQgZmlsZSBgJXBCJyBpcyBpbmNvbXBhdGlibGUgd2l0aCAlcyBvdXRwdXQKAAAAAAAAACVYJVA6IGZhaWxlZCB0byBtZXJnZSB0YXJnZXQgc3BlY2lmaWMgZGF0YSBvZiBmaWxlICVwQgoAJVglUDogdW5hYmxlIHRvIHJlYWQgLmV4cG9ydHMgc2VjdGlvbiBjb250ZW50cwoAJVglUDogZXJyb3I6IHVucGxhY2VkIG9ycGhhbiBzZWN0aW9uIGAlcEEnIGZyb20gYCVwQicKAAAlUDogd2FybmluZzogb3JwaGFuIHNlY3Rpb24gYCVwQScgZnJvbSBgJXBCJyBiZWluZyBwbGFjZWQgaW4gc2VjdGlvbiBgJXMnCgAAAAAAACVQOiB3YXJuaW5nOiBDVEYgc2VjdGlvbiBpbiAlcEIgY2Fubm90IGJlIGxpbmtlZDogYCVzJwoAJVA6IHdhcm5pbmc6IENURiBsaW5raW5nIGZhaWxlZDsgb3V0cHV0IHdpbGwgaGF2ZSBubyBDVEYgc2VjdGlvbjogJXMKAAAAJUYlUDogYmZkX3JlY29yZF9waGRyIGZhaWxlZDogJUUKAAAAAAAAACVYJVA6IHNlY3Rpb24gYCVzJyBhc3NpZ25lZCB0byBub24tZXhpc3RlbnQgcGhkciBgJXMnCgAAJVglUDogc2VjdGlvbiAlcyBWTUEgd3JhcHMgYXJvdW5kIGFkZHJlc3Mgc3BhY2UKAAAAAAAAAAAlWCVQOiBzZWN0aW9uICVzIExNQSB3cmFwcyBhcm91bmQgYWRkcmVzcyBzcGFjZQoAAAAAAAAAACVYJVA6IHNlY3Rpb24gJXMgTE1BIFslViwlVl0gb3ZlcmxhcHMgc2VjdGlvbiAlcyBMTUEgWyVWLCVWXQoAAAAlWCVQOiBzZWN0aW9uICVzIFZNQSBbJVYsJVZdIG92ZXJsYXBzIHNlY3Rpb24gJXMgVk1BIFslViwlVl0KAAAAJVglUDogcmVnaW9uIGAlcycgb3ZlcmZsb3dlZCBieSAlbHUgYnl0ZXMKAAAAAAAAJVglUDogcmVnaW9uIGAlcycgb3ZlcmZsb3dlZCBieSAlbHUgYnl0ZQoAAAAAAAAAJVglUDogcmVxdWlyZWQgc3ltYm9sIGAlcycgbm90IGRlZmluZWQKACVGJVA6ICVzOiBjYW4ndCBzZXQgc3RhcnQgYWRkcmVzcwoAAAAAAAAlRiVQOiBjYW4ndCBzZXQgc3RhcnQgYWRkcmVzcwoAACVQOiB3YXJuaW5nOiBjYW5ub3QgZmluZCBlbnRyeSBzeW1ib2wgJXM7IGRlZmF1bHRpbmcgdG8gJVYKAAAAAAAlUDogd2FybmluZzogY2Fubm90IGZpbmQgZW50cnkgc3ltYm9sICVzOyBub3Qgc2V0dGluZyBzdGFydCBhZGRyZXNzCgAAAAAlRiVQOiByZWxvY2F0YWJsZSBsaW5raW5nIHdpdGggcmVsb2NhdGlvbnMgZnJvbSBmb3JtYXQgJXMgKCVwQikgdG8gZm9ybWF0ICVzICglcEIpIGlzIG5vdCBzdXBwb3J0ZWQKAAAAACVGJVA6IG5vIHNlY3Rpb25zIGFzc2lnbmVkIHRvIHBoZHJzCgAAAAAlRiVQOiAtLWdjLXNlY3Rpb25zIHJlcXVpcmVzIGEgZGVmaW5lZCBzeW1ib2wgcm9vdCBzcGVjaWZpZWQgYnkgLWUgb3IgLXUKAAAAAAAAACVYJVA6IHVuYWJsZSB0byBmaW5kIHZlcnNpb24gZGVwZW5kZW5jeSBgJXMnCgAAAE1lbW9yeSByZWdpb24gICAgICAgICBVc2VkIFNpemUgIFJlZ2lvbiBTaXplICAlJWFnZSBVc2VkCgBsZGxhbmcuYwAuaW5pdAAuZmluaQAweCVWICVXICVwQgoAJVcgKHNpemUgYmVmb3JlIHJlbGF4aW5nKQoAQ1RGIHdhcm5pbmcAQ1RGIGVycm9yACVzOiAlcwoAJTEwbHUgR0IAJTEwbHUgTUIAJTEwbHUgS0IAICUxMGx1IEIALmN0ZgAKQWxsb2NhdGluZyBjb21tb24gc3ltYm9scwoAJWx4ACUwMTZseAAlRiVQOiBpbnZhbGlkIGRhdGEgc3RhdGVtZW50CgBGYWlsIHdpdGggJWQKACBTT1JUIChDT05TVFJVQ1RPUlMpCgAgQ09OU1RSVUNUT1JTCgBFWENMVURFX0ZJTEUoJXMAKSAAU09SVF9CWV9OQU1FKABTT1JUX0JZX0FMSUdOTUVOVCgAU09SVF9OT05FKABTT1JUX0JZX0lOSVRfUFJJT1JJVFkoAEFkZHJlc3Mgb2Ygc2VjdGlvbiAlcyBzZXQgdG8gACBDUkVBVEVfT0JKRUNUX1NZTUJPTFMKACBGSUxMIG1hc2sgMHgAJTAyeAAweCVWICVXICVzIDB4JXYAMHglViAlVyBSRUxPQyAlcyAAJXMrACAqZmlsbCoAMHglViAlVyAACiVzADB4JVYgJVcAIGxvYWQgYWRkcmVzcyAweCVWAFsweCVWXQBbdW5yZXNvbHZlZF0AWyFwcm92aWRlXQAqdW5kZWYqICAgACAgICAgICAgICAgICAgICAAVEFSR0VUKCVzKQoAT1VUUFVUKCVzAExPQUQgJXMKAFNUQVJUIEdST1VQCgBFTkQgR1JPVVAKAElOU0VSVCAlcyAlcwoALmN0b3JzAC5kdG9ycwAvRElTQ0FSRC8APypbAGVsZjMyLWJpZwBlbGY2NC1iaWcAZWxmMzItbGl0dGxlAGVsZjY0LWxpdHRsZQAtbAAkU1lTUk9PVABsb2FkIGJhc2UAc3Vic2VjdGlvbiBhbGlnbm1lbnQAKkFCUyoACkRpc2NhcmRlZCBpbnB1dCBzZWN0aW9ucwoKAApNZW1vcnkgQ29uZmlndXJhdGlvbgoKAEF0dHJpYnV0ZXMATGVuZ3RoAE9yaWdpbgBOYW1lACUtMTZzICUtMThzICUtMThzICVzCgAlLTE2cyAAMHglcyAAICEALDoAJUYlUDogdGFyZ2V0ICVzIG5vdCBmb3VuZAoAMHglViAgIAAgICAgICAgICAgICAgJXBUCgAlcEkKACVGCgBBTEwAQ09NTU9OACVGACo/WwAlRiVQOiBtdWx0aXBsZSBTVEFSVFVQIGZpbGVzCgBwcm9ncmFtIGhlYWRlciB0eXBlAF9fbG9hZF9zdGFydF8lcwBfX2xvYWRfc3RvcF8lcwBDKysASmF2YQAlcEIgACglcFQpCgAuZXhwb3J0cwAuc3RhcnRvZi4lcwBwaGRyIGZsYWdzAHBoZHIgbG9hZCBhZGRyZXNzAF9fc3RhcnRfJXMAdHlwZWluZm8gbmFtZSBmb3IqAHR5cGVpbmZvIGZvcioAb3BlcmF0b3IgbmV3KgBvcGVyYXRvciBkZWxldGUqAFNBTkVfRVhQUgAlWCVQOiB1bmtub3duIGZlYXR1cmUgYCVzJwoAJTE2czogACAgICAlNi4yZiUlAAAAAAAAAAAAAFlAc3JlYwAlRiVQOiB1bmtub3duIGZvcm1hdCB0eXBlICVzCgBHTE9CQUxfAApTZXQgICAgICAgICAgICAgICAgIFN5bWJvbAoKACVHCgAAAAAlWCVQOiBkaWZmZXJlbnQgcmVsb2NzIHVzZWQgaW4gc2V0ICVzCgAAJVglUDogZGlmZmVyZW50IG9iamVjdCBmaWxlIGZvcm1hdHMgY29tcG9zaW5nIHNldCAlcwoAAAAlWCVQOiAlcyBkb2VzIG5vdCBzdXBwb3J0IHJlbG9jICVzIGZvciBzZXQgJXMKAAAlWCVQOiBzcGVjaWFsIHNlY3Rpb24gJXMgZG9lcyBub3Qgc3VwcG9ydCByZWxvYyAlcyBmb3Igc2V0ICVzCgAAJVglUDogdW5zdXBwb3J0ZWQgc2l6ZSAlZCBmb3Igc2V0ICVzCgAAACVYJUg6IHJlbG9jIHJlZmVycyB0byBzeW1ib2wgYCVwVCcgd2hpY2ggaXMgbm90IGJlaW5nIG91dHB1dAoAAAAlWCVIOiBkYW5nZXJvdXMgcmVsb2NhdGlvbjogJXMKACVYJVA6ICVDOiBtdWx0aXBsZSBkZWZpbml0aW9uIG9mIGAlcFQnAAAlUDogZGlzYWJsaW5nIHJlbGF4YXRpb247IGl0IHdpbGwgbm90IHdvcmsgd2l0aCBtdWx0aXBsZSBkZWZpbml0aW9ucwoAAAAlRiVQOiAlcEI6IGNvdWxkIG5vdCByZWFkIHN5bWJvbHM6ICVFCgAAJXBJOiBubyBuZXcgSVIgc3ltYm9scyB0byBjbGFpbQoAAAAAAAAAAEFyY2hpdmUgbWVtYmVyIGluY2x1ZGVkIHRvIHNhdGlzZnkgcmVmZXJlbmNlIGJ5IGZpbGUgKHN5bWJvbCkKCgAvdXNyL2FybXY3YS1jcm9zLWxpbnV4LWdudWVhYmloZgAAAAAAAAAAIGFkZGl0aW9uYWwgcmVsb2NhdGlvbiBvdmVyZmxvd3Mgb21pdHRlZCBmcm9tIHRoZSBvdXRwdXQKAAAAAAAAACByZWxvY2F0aW9uIHRydW5jYXRlZCB0byBmaXQ6ICVzIGFnYWluc3QgdW5kZWZpbmVkIHN5bWJvbCBgJXBUJwAgcmVsb2NhdGlvbiB0cnVuY2F0ZWQgdG8gZml0OiAlcyBhZ2FpbnN0IHN5bWJvbCBgJXBUJyBkZWZpbmVkIGluICVwQSBzZWN0aW9uIGluICVwQgAAAAAAIHJlbG9jYXRpb24gdHJ1bmNhdGVkIHRvIGZpdDogJXMgYWdhaW5zdCBgJXBUJwAAJUYlUDogJXBCOiBjb3VsZCBub3QgcmVhZCByZWxvY3M6ICVFCgAAACVQOiB3YXJuaW5nOiBnbG9iYWwgY29uc3RydWN0b3IgJXMgdXNlZAoAAAAAAAAAACVGJVA6IEJGRCBiYWNrZW5kIGVycm9yOiBCRkRfUkVMT0NfQ1RPUiB1bnN1cHBvcnRlZAoAAAAAJVA6ICVwQjogd2FybmluZzogZGVmaW5pdGlvbiBvZiBgJXBUJyBvdmVycmlkaW5nIGNvbW1vbiBmcm9tICVwQgoAAAAAAAAAJVA6ICVwQjogd2FybmluZzogZGVmaW5pdGlvbiBvZiBgJXBUJyBvdmVycmlkaW5nIGNvbW1vbgoAAAAAAAAAACVQOiAlcEI6IHdhcm5pbmc6IGNvbW1vbiBvZiBgJXBUJyBvdmVycmlkZGVuIGJ5IGRlZmluaXRpb24gZnJvbSAlcEIKAAAAACVQOiAlcEI6IHdhcm5pbmc6IGNvbW1vbiBvZiBgJXBUJyBvdmVycmlkZGVuIGJ5IGRlZmluaXRpb24KAAAAAAAlUDogJXBCOiB3YXJuaW5nOiBjb21tb24gb2YgYCVwVCcgb3ZlcnJpZGRlbiBieSBsYXJnZXIgY29tbW9uIGZyb20gJXBCCgAlUDogJXBCOiB3YXJuaW5nOiBjb21tb24gb2YgYCVwVCcgb3ZlcnJpZGRlbiBieSBsYXJnZXIgY29tbW9uCgAAJVA6ICVwQjogd2FybmluZzogY29tbW9uIG9mIGAlcFQnIG92ZXJyaWRpbmcgc21hbGxlciBjb21tb24gZnJvbSAlcEIKAAAAJVA6ICVwQjogd2FybmluZzogY29tbW9uIG9mIGAlcFQnIG92ZXJyaWRpbmcgc21hbGxlciBjb21tb24KAAAAACVQOiAlcEIgYW5kICVwQjogd2FybmluZzogbXVsdGlwbGUgY29tbW9uIG9mIGAlcFQnCgAAAAAAJVA6ICVwQjogd2FybmluZzogbXVsdGlwbGUgY29tbW9uIG9mIGAlcFQnCgAAAAAAL3Vzci9zaGFyZS9iaW51dGlscy1kYXRhL2FybXY3YS1jcm9zLWxpbnV4LWdudWVhYmloZi8yLjM2LjEvbG9jYWxlAAAAAAAAJUYlUDogZmF0YWwgZXJyb3I6IGxpYmJmZCBBQkkgbWlzbWF0Y2gKAC91c3IveDg2XzY0LXBjLWxpbnV4LWdudS9hcm12N2EtY3Jvcy1saW51eC1nbnVlYWJpaGYvYmludXRpbHMtYmluLzIuMzYuMQAAAAAAAAAAL3Vzci9hcm12N2EtY3Jvcy1saW51eC1nbnVlYWJpaGYvYmluAAAAACVYJVA6IGNhbid0IHNldCBCRkQgZGVmYXVsdCB0YXJnZXQgdG8gYCVzJzogJUUKAAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoAAAAAJUYlUDogLS1uby1kZWZpbmUtY29tbW9uIG1heSBub3QgYmUgdXNlZCB3aXRob3V0IC1zaGFyZWQKAAAAAAAAACVGJVA6IGNhbm5vdCBvcGVuIG1hcCBmaWxlICVzOiAlRQoAAAAAAAAlRiVQOiBjYW5ub3Qgb3BlbiBkZXBlbmRlbmN5IGZpbGUgJXM6ICVFCgAAAAAAAAAlUDogbGluayBlcnJvcnMgZm91bmQsIGRlbGV0aW5nIGV4ZWN1dGFibGUgYCVzJwoAAAAAAAAAACVGJVA6ICVwQjogZmluYWwgY2xvc2UgZmFpbGVkOiAlRQoAAAAAAAAlRiVQOiB1bmFibGUgdG8gb3BlbiBmb3Igc291cmNlIG9mIGNvcHkgYCVzJwoAAAAlRiVQOiB1bmFibGUgdG8gb3BlbiBmb3IgZGVzdGluYXRpb24gb2YgY29weSBgJXMnCgAAAAAAACVzOiB0b3RhbCB0aW1lIGluIGxpbms6ICVsZC4lMDZsZAoAAAAAAAAlRiVQOiBiZmRfaGFzaF90YWJsZV9pbml0IGZhaWxlZDogJUUKAAAAJUYlUDogYmZkX2hhc2hfbG9va3VwIGZhaWxlZDogJUUKAAAAAAAAACVQOiBBYm91dCB0byBydW4gZXJyb3IgaGFuZGxpbmcgc2NyaXB0ICclcycgd2l0aCBhcmd1bWVudHM6ICclcycgJyVzJwoAACVQOiBGYWlsZWQgdG8gcnVuIGVycm9yIGhhbmRsaW5nIHNjcmlwdCAnJXMnLCByZWFzb246IAAAJVglUDogJUM6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYCVwVCcKACVQOiAlQzogd2FybmluZzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgJXBUJwoAACVYJVA6ICVEOiBtb3JlIHVuZGVmaW5lZCByZWZlcmVuY2VzIHRvIGAlcFQnIGZvbGxvdwoAAAAAJVA6ICVEOiB3YXJuaW5nOiBtb3JlIHVuZGVmaW5lZCByZWZlcmVuY2VzIHRvIGAlcFQnIGZvbGxvdwoAAAAAACVYJVA6ICVwQjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgJXBUJwoAAAAAAAAAACVQOiAlcEI6IHdhcm5pbmc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYCVwVCcKACVYJVA6ICVwQjogbW9yZSB1bmRlZmluZWQgcmVmZXJlbmNlcyB0byBgJXBUJyBmb2xsb3cKAAAAJVA6ICVwQjogd2FybmluZzogbW9yZSB1bmRlZmluZWQgcmVmZXJlbmNlcyB0byBgJXBUJyBmb2xsb3cKAAAAACVYJVA6IGVycm9yOiBkdXBsaWNhdGUgcmV0YWluLXN5bWJvbHMtZmlsZQoAAAAAACVGJVA6IGJmZF9oYXNoX2xvb2t1cCBmb3IgaW5zZXJ0aW9uIGZhaWxlZDogJUUKACVQOiBgLXJldGFpbi1zeW1ib2xzLWZpbGUnIG92ZXJyaWRlcyBgLXMnIGFuZCBgLVMnCgAlUDogJXBCOiByZWZlcmVuY2UgdG8gJXMKACVQOiAlcEI6IGRlZmluaXRpb24gb2YgJXMKAC4vbGRtYWluLmMAOyAlRDogZmlyc3QgZGVmaW5lZCBoZXJlAHVzaW5nIG11bHRpcGxlIGdwIHZhbHVlcwAlUDogJUM6ICVzJXMKACVQOiAlcyVzCgAlUDogJXBCOiAlcyVzCgBfX2ltcF8AJXMoJXMpACVYJUg6ACsldgBhcm1lbGZfbGludXhfZWFiaQAtLXN5c3Jvb3Q9AGFybXY3YS1jcm9zLWxpbnV4LWdudWVhYmloZgBDT0xMRUNUX05PX0RFTUFOR0xFAF9pbml0AF9maW5pAExERU1VTEFUSU9OACVGJVA6IG1pc3NpbmcgYXJndW1lbnQgdG8gLW0KAC1taXBzMQAtbWlwczIALW1pcHMzAC1taXBzNAAtbWlwczUALW1pcHMzMgAtbWlwczMycjIALW1pcHMzMnIzAC1taXBzMzJyNQAtbWlwczMycjYALW1pcHM2NAAtbWlwczY0cjIALW1pcHM2NHIzAC1taXBzNjRyNQAtbWlwczY0cjYALW00ODYAYnVpbHQgaW4gbGlua2VyIHNjcmlwdAB1c2luZyBleHRlcm5hbCBsaW5rZXIgc2NyaXB0OgB1c2luZyBpbnRlcm5hbCBsaW5rZXIgc2NyaXB0OgAlRiVQOiBubyBpbnB1dCBmaWxlcwoAJVA6IG1vZGUgJXMKACVzOgAgXAogICVzAAolczoKAC5leGUALmRsbAAlUDogZXJyb3Igd3JpdGluZyBmaWxlIGAlcycKACVQOiBlcnJvciBjbG9zaW5nIGZpbGUgYCVzJwoAdW5kZWZpbmVkLXN5bWJvbABlcnJvciBoYW5kbGluZyBzY3JpcHQAJVgAJVglUDogJXM6ICVFCgBhLm91dAAAAAAAAAAAAAAAAAAAbXVsdGlwbGVfZGVmaW5pdGlvbgAAAAAAcmVsb2Nfb3ZlcmZsb3cAbGR3cml0ZS5jAC5zdGFiAHN0cgAkR0RCX1NUUklOR1MkACRHREJfU1lNQk9MUyQAJUYlUDogZmluYWwgbGluayBmYWlsZWQ6ICVFCgAAAAAAJUYlUDogYmZkX25ld19saW5rX29yZGVyIGZhaWxlZAoAAAAAAAAAACVGJVA6IGNhbm5vdCBjcmVhdGUgc3BsaXQgc2VjdGlvbiBuYW1lIGZvciAlcwoAACVGJVA6IGNsb25lIHNlY3Rpb24gZmFpbGVkOiAlRQoAYnVpbGRfbGlua19vcmRlcgA8Y29kZSAlZD4AJVglUDogJXMKAGxkZXhwLmMAJUYlUDolcFMgJSUgYnkgemVybwoAJUYlUDolcFMgLyBieSB6ZXJvCgBNQVhQQUdFU0laRQBDT01NT05QQUdFU0laRQBOVUxMIFRSRUUKACVwQjoAJXMrMHgldgBQUk9WSURFICglcyA9IAAgKCIAIiwgAEFTU0VSVCAoACwgJXMpACAoJXMpACs9AC09ACo9AC89ADw8PQA+Pj0AJj0AfD0AfHwAJiYAPT0AIT0APDwAPj4ATUFYAE1JTgBBU1NFUlQAJUYlUDogYmZkX2hhc2hfYWxsb2NhdGUgZmFpbGVkIGNyZWF0aW5nIHN5bWJvbCAlcwoAAAAAAAAlUDogd2FybmluZzogYWRkcmVzcyBvZiBgJXMnIGlzbid0IG11bHRpcGxlIG9mIG1heGltdW0gcGFnZSBzaXplCgAAAAAAAAAlRiVQOiVwUyBjYW4gbm90IFBST1ZJREUgYXNzaWdubWVudCB0byBsb2NhdGlvbiBjb3VudGVyCgAAAAAAAAAAJUYlUDolcFMgaW52YWxpZCBhc3NpZ25tZW50IHRvIGxvY2F0aW9uIGNvdW50ZXIKAAAAAAAAAAAlRiVQOiVwUyBhc3NpZ25tZW50IHRvIGxvY2F0aW9uIGNvdW50ZXIgaW52YWxpZCBvdXRzaWRlIG9mIFNFQ1RJT05TCgAAAAAlRiVQOiVwUyBjYW5ub3QgbW92ZSBsb2NhdGlvbiBjb3VudGVyIGJhY2t3YXJkcyAoZnJvbSAlViB0byAlVikKAAAAAAAAAAAlRiVQOiVzOiBoYXNoIGNyZWF0aW9uIGZhaWxlZAoAACVGJVA6IGJmZF9oYXNoX2xvb2t1cCBmYWlsZWQgY3JlYXRpbmcgc3ltYm9sICVzCgAAAAAAAAAAJVglUDolcFM6IHVucmVzb2x2YWJsZSBzeW1ib2wgYCVzJyByZWZlcmVuY2VkIGluIGV4cHJlc3Npb24KAAAAACVGJVA6JXBTOiB1bmRlZmluZWQgc3ltYm9sIGAlcycg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cycKAAAAAAAlUDogbm90ZSB0byBsaW5rIHdpdGggJXMgdXNlIC1sOiVzIG9yIHJlbmFtZSBpdCB0byBsaWIlcwoAAAAAAAAAJUYlUDogY2Fubm90IHJlcHJlc2VudCBtYWNoaW5lIGAlcycKAGxkY3JlZi5jACVYJVA6IGNyZWYgYWxsb2MgZmFpbGVkOiAlRQoACkNyb3NzIFJlZmVyZW5jZSBUYWJsZQoKAFN5bWJvbABGaWxlCgBObyBzeW1ib2xzCgAAAAAlUDogc3ltYm9sIGAlcFQnIG1pc3NpbmcgZnJvbSBtYWluIGhhc2ggdGFibGUKAAAlWCVQOiAlQzogcHJvaGliaXRlZCBjcm9zcyByZWZlcmVuY2UgZnJvbSAlcyB0byBgJXBUJyBpbiAlcwoAAAAAJVglUDogYmZkX2hhc2hfdGFibGVfaW5pdCBvZiBjcmVmIHRhYmxlIGZhaWxlZDogJUUKAAAAAAAlWCVQOiBjcmVmX2hhc2hfbG9va3VwIGZhaWxlZDogJUUKAAAAAAAAJUYlUDogcGx1Z2luX3N0cmR1cCBmYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5OiAlcwoAAAAAAAAlRiVQOiAlczogcGx1Z2luIHN5bWJvbCB0YWJsZSBjb3JydXB0IChzeW0gdHlwZSAlZCkKAAAAAHVua25vd24gTFRPIHZpc2liaWxpdHkgdmFsdWUgJXgAJVA6ICVwQjogc3ltYm9sIGAlcycgZGVmaW5pdGlvbjogJXMsIHZpc2liaWxpdHk6ICVzLCByZXNvbHV0aW9uOiAlcwoAAAAAJUYlUDogdW5zdXBwb3J0ZWQgaW5wdXQgZmlsZSBzaXplOiAlcyAoJWxkIGJ5dGVzKQoAAAAAAAAlRiVQOiAlczogbm9uLUVMRiBzeW1ib2wgaW4gRUxGIEJGRCEKAAAAJUYlUDogdW5rbm93biBFTEYgc3ltYm9sIHZpc2liaWxpdHk6ICVkIQoAAAAAAAAAJUYlUDogY291bGQgbm90IGNyZWF0ZSBkdW1teSBJUiBiZmQ6ICVFCgAAAAAAAAAAJUYlUDogcGx1Z2luIGZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIGlucHV0OiAlcwoAAAAlRiVQOiAlczogcGx1Z2luIHJlcG9ydGVkIGVycm9yIGNsYWltaW5nIGZpbGUKAAAlRiVQOiAlczogZXJyb3IgbG9hZGluZyBwbHVnaW46ICVzCgAAAAAAJVA6ICVzOiBlcnJvciBpbiBwbHVnaW4gY2xlYW51cDogJWQgKGlnbm9yZWQpCgBwbHVnaW4uYwBERUZBVUxUAFBST1RFQ1RFRABJTlRFUk5BTABXRUFLREVGAFdFQUtVTkRFRgB1bmtub3duIExUTyBraW5kIHZhbHVlICV4AEAALmdudS5saW5rb25jZS50LgAlUDogd2FybmluZzogACVQOiBlcnJvcjogACAoc3ltYm9sIGZyb20gcGx1Z2luKQA8bm8gcGx1Z2luPgAlUDogJXM6IGR1cGxpY2F0ZWQgcGx1Z2luCgBwYXNzLXRocm91Z2g9AF9vbmxvYWQAJUYlUDogJXM6IHBsdWdpbiBlcnJvcjogJWQKAFVOS05PV04AUFJFVkFJTElOR19ERUYAUFJFVkFJTElOR19ERUZfSVJPTkxZAFBSRUVNUFRFRF9SRUcAUFJFRU1QVEVEX0lSAFJFU09MVkVEX0lSAFJFU09MVkVEX0VYRUMAUkVTT0xWRURfRFlOAFBSRVZBSUxJTkdfREVGX0lST05MWV9FWFAAAAAAAABoQgAAAAAAqGdCAAAAAACYZ0IAAAAAAEBnQgAAAAAAKGhCAAAAAAAAcUIAAAAAAK5zQgAAAAAAAHFCAAAAAACCc0IAAAAAAABxQgAAAAAAdXNCAAAAAABoc0IAAAAAAFtzQgAAAAAATnNCAAAAAABBc0IAAAAAADRzQgAAAAAAJ3NCAAAAAAAac0IAAAAAAA1zQgAAAAAAAHNCAAAAAADwckIAAAAAAONyQgAAAAAA1nJCAAAAAADJckIAAAAAAABxQgAAAAAAAHFCAAAAAAAAcUIAAAAAAABxQgAAAAAAAHFCAAAAAAAAcUIAAAAAAChxQgAAAAAAAAMBAgAAAABT00QAAAAAAJfSRAAAAAAAW9NEAAAAAABq00QAAAAAAIDTRAAAAAAAjtNEAAAAAACb00QAAAAAAKfTRAAAAAAAtdNEAAAAAADC00QAAAAAAGdldF9zeW1ib2xzAAAAAAALAAAAAQAAABEAAAADAAAADwAAAAUAAAAGAAAABwAAAAgAAAAMAAAAEgAAAA0AAAAJAAAAGQAAAAoAAAAOAAAAEAAAAG1kNQBzaGExAHV1aWQAL2Rldi91cmFuZG9tAAAvKiBTY3JpcHQgZm9yIC16IHNlcGFyYXRlLWNvZGUgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hcm12N2EtY3Jvcy1saW51eC1nbnVlYWJpaGYvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4MDAwMTAwMDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4MDAwMTAwMDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuaW5pdCAgICAgICA6IHsgKigucmVsLmluaXQpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWwudGV4dCAgICAgICA6IHsgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEudGV4dCAgICAgIDogeyAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopIH0KICAucmVsLmZpbmkgICAgICAgOiB7ICooLnJlbC5maW5pKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsLnJvZGF0YSAgICAgOiB7ICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWxhLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8gLnJlbGEuZGF0YS5yZWwucm8uKiAucmVsYS5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWwuZGF0YSAgICAgICA6IHsgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsLnRkYXRhCSAgOiB7ICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWwudGJzcwkgIDogeyAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbGEudGJzcwkgIDogeyAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbC5jdG9ycyAgICAgIDogeyAqKC5yZWwuY3RvcnMpIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsLmR0b3JzICAgICAgOiB7ICooLnJlbC5kdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWwuZ290ICAgICAgICA6IHsgKigucmVsLmdvdCkgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsLmJzcyAgICAgICAgOiB7ICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsLmlwbHQgICAgICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWwuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbGEuaXBsdCAgICAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLiA9IEFMSUdOKENPTlNUQU5UIChNQVhQQUdFU0laRSkpOwogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAgIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgICAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooU09SVCgudGV4dC5zb3J0ZWQuKikpCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAuID0gQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSk7CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgcm9kYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBTRUdNRU5UX1NUQVJUKCJyb2RhdGEtc2VnbWVudCIsIEFMSUdOKENPTlNUQU5UIChNQVhQQUdFU0laRSkpICsgKC4gJiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSAtIDEpKSk7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLkFSTS5leHRhYiAgIDogeyAqKC5BUk0uZXh0YWIqIC5nbnUubGlua29uY2UuYXJtZXh0YWIuKikgfQogIC5BUk0uZXhpZHggICA6CiAgICB7CiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X3N0YXJ0ID0gLik7CiAgICAgICooLkFSTS5leGlkeCogLmdudS5saW5rb25jZS5hcm1leGlkeC4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9lbmQgPSAuKTsKICAgIH0KICAuZWhfZnJhbWVfaGRyICAgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6CiAgIHsKICAgICBQUk9WSURFX0hJRERFTiAoX190ZGF0YV9zdGFydCA9IC4pOwogICAgICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikKICAgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmluaXRfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICAuID0gLjsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvIG5vdAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuOyBfX2Jzc19lbmRfXyA9IC47CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICBfX2VuZF9fID0gLjsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMgOiB7ICooLmdudS5idWlsZC5hdHRyaWJ1dGVzIC5nbnUuYnVpbGQuYXR0cmlidXRlcy4qKSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxLiAgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIuICAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMi4gICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMuICAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiA1LiAgKi8KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5kZWJ1Z19saW5lX3N0ciAwIDogeyAqKC5kZWJ1Z19saW5lX3N0cikgfQogIC5kZWJ1Z19sb2NsaXN0cyAwIDogeyAqKC5kZWJ1Z19sb2NsaXN0cykgfQogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19uYW1lcyAgICAwIDogeyAqKC5kZWJ1Z19uYW1lcykgfQogIC5kZWJ1Z19ybmdsaXN0cyAwIDogeyAqKC5kZWJ1Z19ybmdsaXN0cykgfQogIC5kZWJ1Z19zdHJfb2Zmc2V0cyAwIDogeyAqKC5kZWJ1Z19zdHJfb2Zmc2V0cykgfQogIC5kZWJ1Z19zdXAgICAgICAwIDogeyAqKC5kZWJ1Z19zdXApIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAC8qIFNjcmlwdCBmb3IgLXNoYXJlZCAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItbGl0dGxlYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FybXY3YS1jcm9zLWxpbnV4LWdudWVhYmloZi9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLm5vdGUuZ251LmJ1aWxkLWlkICA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmluaXQgICAgICAgOiB7ICooLnJlbC5pbml0KSB9CiAgLnJlbGEuaW5pdCAgICAgIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsLnRleHQgICAgICAgOiB7ICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWxhLnRleHQgICAgICA6IHsgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbC5maW5pICAgICAgIDogeyAqKC5yZWwuZmluaSkgfQogIC5yZWxhLmZpbmkgICAgICA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbC5yb2RhdGEgICAgIDogeyAqKC5yZWwucm9kYXRhIC5yZWwucm9kYXRhLiogLnJlbC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbGEucm9kYXRhICAgIDogeyAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbC5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWwuZGF0YS5yZWwucm8gLnJlbC5kYXRhLnJlbC5yby4qIC5yZWwuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsYS5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvIC5yZWxhLmRhdGEucmVsLnJvLiogLnJlbGEuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsLmRhdGEgICAgICAgOiB7ICooLnJlbC5kYXRhIC5yZWwuZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWxhLmRhdGEgICAgICA6IHsgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbC50ZGF0YQkgIDogeyAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsYS50ZGF0YQkgIDogeyAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsLnRic3MJICA6IHsgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWxhLnRic3MJICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWwuY3RvcnMgICAgICA6IHsgKigucmVsLmN0b3JzKSB9CiAgLnJlbGEuY3RvcnMgICAgIDogeyAqKC5yZWxhLmN0b3JzKSB9CiAgLnJlbC5kdG9ycyAgICAgIDogeyAqKC5yZWwuZHRvcnMpIH0KICAucmVsYS5kdG9ycyAgICAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsLmdvdCAgICAgICAgOiB7ICooLnJlbC5nb3QpIH0KICAucmVsYS5nb3QgICAgICAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbC5ic3MgICAgICAgIDogeyAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbGEuYnNzICAgICAgIDogeyAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbC5pcGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmlwbHQpCiAgICB9CiAgLnJlbGEuaXBsdCAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pcGx0KQogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKihTT1JUKC50ZXh0LnNvcnRlZC4qKSkKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAuQVJNLmV4aWR4ICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9zdGFydCA9IC4pOwogICAgICAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfZW5kID0gLik7CiAgICB9CiAgLmVoX2ZyYW1lX2hkciAgIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOgogICB7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5pbml0X2FycmF5ICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogIH0KICAuZmluaV9hcnJheSAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBQUk9WSURFIChfZWRhdGEgPSAuKTsgUFJPVklERSAoZWRhdGEgPSAuKTsKICAuID0gLjsKICBQUk9WSURFIChfX2Jzc19zdGFydCA9IC4pOwogIFBST1ZJREUgKF9fYnNzX3N0YXJ0X18gPSAuKTsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG8gbm90CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgUFJPVklERSAoX2Jzc19lbmRfXyA9IC4pOyBQUk9WSURFIChfX2Jzc19lbmRfXyA9IC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgUFJPVklERSAoX19lbmRfXyA9IC4pOwogIFBST1ZJREUgKF9lbmQgPSAuKTsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMgOiB7ICooLmdudS5idWlsZC5hdHRyaWJ1dGVzIC5nbnUuYnVpbGQuYXR0cmlidXRlcy4qKSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxLiAgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIuICAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMi4gICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMuICAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiA1LiAgKi8KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5kZWJ1Z19saW5lX3N0ciAwIDogeyAqKC5kZWJ1Z19saW5lX3N0cikgfQogIC5kZWJ1Z19sb2NsaXN0cyAwIDogeyAqKC5kZWJ1Z19sb2NsaXN0cykgfQogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19uYW1lcyAgICAwIDogeyAqKC5kZWJ1Z19uYW1lcykgfQogIC5kZWJ1Z19ybmdsaXN0cyAwIDogeyAqKC5kZWJ1Z19ybmdsaXN0cykgfQogIC5kZWJ1Z19zdHJfb2Zmc2V0cyAwIDogeyAqKC5kZWJ1Z19zdHJfb2Zmc2V0cykgfQogIC5kZWJ1Z19zdXAgICAgICAwIDogeyAqKC5kZWJ1Z19zdXApIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAAAvKiBTY3JpcHQgZm9yIC1VciAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItbGl0dGxlYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQogLyogRm9yIHNvbWUgcmVhc29uLCB0aGUgU29sYXJpcyBsaW5rZXIgbWFrZXMgYmFkIGV4ZWN1dGFibGVzCiAgaWYgZ2xkIC1yIGlzIHVzZWQgYW5kIHRoZSBpbnRlcm1lZGlhdGUgZmlsZSBoYXMgc2VjdGlvbnMgc3RhcnRpbmcKICBhdCBub24temVybyBhZGRyZXNzZXMuICBDb3VsZCBiZSBhIFNvbGFyaXMgbGQgYnVnLCBjb3VsZCBiZSBhIEdOVSBsZAogIGJ1Zy4gIEJ1dCBmb3Igbm93IGFzc2lnbmluZyB0aGUgemVybyB2bWFzIHdvcmtzLiAgKi8KU0VDVElPTlMKewogIC5pbnRlcnAgICAgICAgMCA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgIDAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgIDAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAwIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgIDAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgMCA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAwOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAwOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmluaXQgICAgIDAgOiB7ICooLnJlbC5pbml0KSB9CiAgLnJlbGEuaW5pdCAgICAwIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsLnRleHQgICAgIDAgOiB7ICooLnJlbC50ZXh0KSB9CiAgLnJlbGEudGV4dCAgICAwIDogeyAqKC5yZWxhLnRleHQpIH0KICAucmVsLmZpbmkgICAgIDAgOiB7ICooLnJlbC5maW5pKSB9CiAgLnJlbGEuZmluaSAgICAwIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsLnJvZGF0YSAgIDAgOiB7ICooLnJlbC5yb2RhdGEpIH0KICAucmVsYS5yb2RhdGEgIDAgOiB7ICooLnJlbGEucm9kYXRhKSB9CiAgLnJlbC5kYXRhLnJlbC5ybyAwIDogeyAqKC5yZWwuZGF0YS5yZWwucm8pIH0KICAucmVsYS5kYXRhLnJlbC5ybyAwIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvKSB9CiAgLnJlbC5kYXRhICAgICAwIDogeyAqKC5yZWwuZGF0YSkgfQogIC5yZWxhLmRhdGEgICAgMCA6IHsgKigucmVsYS5kYXRhKSB9CiAgLnJlbC50ZGF0YQkwIDogeyAqKC5yZWwudGRhdGEpIH0KICAucmVsYS50ZGF0YQkwIDogeyAqKC5yZWxhLnRkYXRhKSB9CiAgLnJlbC50YnNzCTAgOiB7ICooLnJlbC50YnNzKSB9CiAgLnJlbGEudGJzcwkwIDogeyAqKC5yZWxhLnRic3MpIH0KICAucmVsLmN0b3JzICAgIDAgOiB7ICooLnJlbC5jdG9ycykgfQogIC5yZWxhLmN0b3JzICAgMCA6IHsgKigucmVsYS5jdG9ycykgfQogIC5yZWwuZHRvcnMgICAgMCA6IHsgKigucmVsLmR0b3JzKSB9CiAgLnJlbGEuZHRvcnMgICAwIDogeyAqKC5yZWxhLmR0b3JzKSB9CiAgLnJlbC5nb3QgICAgICAwIDogeyAqKC5yZWwuZ290KSB9CiAgLnJlbGEuZ290ICAgICAwIDogeyAqKC5yZWxhLmdvdCkgfQogIC5yZWwuYnNzICAgICAgMCA6IHsgKigucmVsLmJzcykgfQogIC5yZWxhLmJzcyAgICAgMCA6IHsgKigucmVsYS5ic3MpIH0KICAucmVsLmlwbHQgICAgIDAgOgogICAgewogICAgICAqKC5yZWwuaXBsdCkKICAgIH0KICAucmVsYS5pcGx0ICAgIDAgOgogICAgewogICAgICAqKC5yZWxhLmlwbHQpCiAgICB9CiAgLnJlbC5wbHQgICAgICAwIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgIDAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgIDAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgMCA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAwIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAwIDoKICB7CiAgICAqKC50ZXh0IC5zdHViKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgfQogIC5maW5pICAgICAgICAgMCA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9CiAgLnJvZGF0YSAgICAgICAwIDogeyAqKC5yb2RhdGEpIH0KICAucm9kYXRhMSAgICAgIDAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiIDAgOiB7ICooLkFSTS5leHRhYikgfQogIC5BUk0uZXhpZHggMCA6CiAgICB7CiAgICAgICooLkFSTS5leGlkeCkKICAgIH0KICAuZWhfZnJhbWVfaGRyIDAgOiB7ICooLmVoX2ZyYW1lX2hkcikgfQogIC5laF9mcmFtZSAgICAgMCA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAwIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUpIH0KICAuZ251X2V4dGFiIDAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAwIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMpIH0KICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAwIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgfQogIC5nbnVfZXh0YWIgICAgMCA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAwIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUpIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAwIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMpIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJMCA6CiAgIHsKICAgICAqKC50ZGF0YSkKICAgfQogIC50YnNzCQkwIDogeyAqKC50YnNzKSB9CiAgLmpjciAgICAgICAgICAwIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmR5bmFtaWMgICAgICAwIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAwIDogeyAqKC5nb3QpIH0KICAuZGF0YSAgICAgICAgIDAgOgogIHsKICAgICooLmRhdGEpCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAwIDogeyAqKC5kYXRhMSkgfQogIC5ic3MgICAgICAgICAgMCA6CiAgewogICAqKC5ic3MpCiAgfQogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMgOiB7ICooLmdudS5idWlsZC5hdHRyaWJ1dGVzKSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxLiAgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIuICAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMi4gICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8pIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUpIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMy4gICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIDUuICAqLwogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmRlYnVnX2xpbmVfc3RyIDAgOiB7ICooLmRlYnVnX2xpbmVfc3RyKSB9CiAgLmRlYnVnX2xvY2xpc3RzIDAgOiB7ICooLmRlYnVnX2xvY2xpc3RzKSB9CiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX25hbWVzICAgIDAgOiB7ICooLmRlYnVnX25hbWVzKSB9CiAgLmRlYnVnX3JuZ2xpc3RzIDAgOiB7ICooLmRlYnVnX3JuZ2xpc3RzKSB9CiAgLmRlYnVnX3N0cl9vZmZzZXRzIDAgOiB7ICooLmRlYnVnX3N0cl9vZmZzZXRzKSB9CiAgLmRlYnVnX3N1cCAgICAgIDAgOiB7ICooLmRlYnVnX3N1cCkgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KfQoKAAAAAAAAAAAvKiBTY3JpcHQgZm9yIC1yICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1saXR0bGVhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCiAvKiBGb3Igc29tZSByZWFzb24sIHRoZSBTb2xhcmlzIGxpbmtlciBtYWtlcyBiYWQgZXhlY3V0YWJsZXMKICBpZiBnbGQgLXIgaXMgdXNlZCBhbmQgdGhlIGludGVybWVkaWF0ZSBmaWxlIGhhcyBzZWN0aW9ucyBzdGFydGluZwogIGF0IG5vbi16ZXJvIGFkZHJlc3Nlcy4gIENvdWxkIGJlIGEgU29sYXJpcyBsZCBidWcsIGNvdWxkIGJlIGEgR05VIGxkCiAgYnVnLiAgQnV0IGZvciBub3cgYXNzaWduaW5nIHRoZSB6ZXJvIHZtYXMgd29ya3MuICAqLwpTRUNUSU9OUwp7CiAgLmludGVycCAgICAgICAwIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgMDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgMCA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgMCA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgIDAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgMCA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAwIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kIDA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yIDA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuaW5pdCAgICAgMCA6IHsgKigucmVsLmluaXQpIH0KICAucmVsYS5pbml0ICAgIDAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWwudGV4dCAgICAgMCA6IHsgKigucmVsLnRleHQpIH0KICAucmVsYS50ZXh0ICAgIDAgOiB7ICooLnJlbGEudGV4dCkgfQogIC5yZWwuZmluaSAgICAgMCA6IHsgKigucmVsLmZpbmkpIH0KICAucmVsYS5maW5pICAgIDAgOiB7ICooLnJlbGEuZmluaSkgfQogIC5yZWwucm9kYXRhICAgMCA6IHsgKigucmVsLnJvZGF0YSkgfQogIC5yZWxhLnJvZGF0YSAgMCA6IHsgKigucmVsYS5yb2RhdGEpIH0KICAucmVsLmRhdGEucmVsLnJvIDAgOiB7ICooLnJlbC5kYXRhLnJlbC5ybykgfQogIC5yZWxhLmRhdGEucmVsLnJvIDAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8pIH0KICAucmVsLmRhdGEgICAgIDAgOiB7ICooLnJlbC5kYXRhKSB9CiAgLnJlbGEuZGF0YSAgICAwIDogeyAqKC5yZWxhLmRhdGEpIH0KICAucmVsLnRkYXRhCTAgOiB7ICooLnJlbC50ZGF0YSkgfQogIC5yZWxhLnRkYXRhCTAgOiB7ICooLnJlbGEudGRhdGEpIH0KICAucmVsLnRic3MJMCA6IHsgKigucmVsLnRic3MpIH0KICAucmVsYS50YnNzCTAgOiB7ICooLnJlbGEudGJzcykgfQogIC5yZWwuY3RvcnMgICAgMCA6IHsgKigucmVsLmN0b3JzKSB9CiAgLnJlbGEuY3RvcnMgICAwIDogeyAqKC5yZWxhLmN0b3JzKSB9CiAgLnJlbC5kdG9ycyAgICAwIDogeyAqKC5yZWwuZHRvcnMpIH0KICAucmVsYS5kdG9ycyAgIDAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsLmdvdCAgICAgIDAgOiB7ICooLnJlbC5nb3QpIH0KICAucmVsYS5nb3QgICAgIDAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbC5ic3MgICAgICAwIDogeyAqKC5yZWwuYnNzKSB9CiAgLnJlbGEuYnNzICAgICAwIDogeyAqKC5yZWxhLmJzcykgfQogIC5yZWwuaXBsdCAgICAgMCA6CiAgICB7CiAgICAgICooLnJlbC5pcGx0KQogICAgfQogIC5yZWxhLmlwbHQgICAgMCA6CiAgICB7CiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAucmVsLnBsdCAgICAgIDAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgMCA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgMCA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAwIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgIDAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgIDAgOgogIHsKICAgICooLnRleHQgLnN0dWIpCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9CiAgLmZpbmkgICAgICAgICAwIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICAucm9kYXRhICAgICAgIDAgOiB7ICooLnJvZGF0YSkgfQogIC5yb2RhdGExICAgICAgMCA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgMCA6IHsgKiguQVJNLmV4dGFiKSB9CiAgLkFSTS5leGlkeCAwIDoKICAgIHsKICAgICAgKiguQVJNLmV4aWR4KQogICAgfQogIC5laF9mcmFtZV9oZHIgMCA6IHsgKiguZWhfZnJhbWVfaGRyKSB9CiAgLmVoX2ZyYW1lICAgICAwIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgfQogIC5nY2NfZXhjZXB0X3RhYmxlIDAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSkgfQogIC5nbnVfZXh0YWIgMCA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzIDAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcykgfQogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgIDAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSB9CiAgLmdudV9leHRhYiAgICAwIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlIDAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSkgfQogIC5leGNlcHRpb25fcmFuZ2VzIDAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcykgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkwIDoKICAgewogICAgICooLnRkYXRhKQogICB9CiAgLnRic3MJCTAgOiB7ICooLnRic3MpIH0KICAuamNyICAgICAgICAgIDAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZHluYW1pYyAgICAgIDAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgIDAgOiB7ICooLmdvdCkgfQogIC5kYXRhICAgICAgICAgMCA6CiAgewogICAgKiguZGF0YSkKICB9CiAgLmRhdGExICAgICAgICAwIDogeyAqKC5kYXRhMSkgfQogIC5ic3MgICAgICAgICAgMCA6CiAgewogICAqKC5ic3MpCiAgfQogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMgOiB7ICooLmdudS5idWlsZC5hdHRyaWJ1dGVzKSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxLiAgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIuICAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMi4gICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8pIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUpIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMy4gICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIDUuICAqLwogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmRlYnVnX2xpbmVfc3RyIDAgOiB7ICooLmRlYnVnX2xpbmVfc3RyKSB9CiAgLmRlYnVnX2xvY2xpc3RzIDAgOiB7ICooLmRlYnVnX2xvY2xpc3RzKSB9CiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX25hbWVzICAgIDAgOiB7ICooLmRlYnVnX25hbWVzKSB9CiAgLmRlYnVnX3JuZ2xpc3RzIDAgOiB7ICooLmRlYnVnX3JuZ2xpc3RzKSB9CiAgLmRlYnVnX3N0cl9vZmZzZXRzIDAgOiB7ICooLmRlYnVnX3N0cl9vZmZzZXRzKSB9CiAgLmRlYnVnX3N1cCAgICAgIDAgOiB7ICooLmRlYnVnX3N1cCkgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KfQoKAAAAAAAAAAAvKiBTY3JpcHQgZm9yIC1OICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1saXR0bGVhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYXJtdjdhLWNyb3MtbGludXgtZ251ZWFiaWhmL2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkICA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmluaXQgICAgICAgOiB7ICooLnJlbC5pbml0KSB9CiAgLnJlbGEuaW5pdCAgICAgIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsLnRleHQgICAgICAgOiB7ICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWxhLnRleHQgICAgICA6IHsgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbC5maW5pICAgICAgIDogeyAqKC5yZWwuZmluaSkgfQogIC5yZWxhLmZpbmkgICAgICA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbC5yb2RhdGEgICAgIDogeyAqKC5yZWwucm9kYXRhIC5yZWwucm9kYXRhLiogLnJlbC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbGEucm9kYXRhICAgIDogeyAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbC5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWwuZGF0YS5yZWwucm8gLnJlbC5kYXRhLnJlbC5yby4qIC5yZWwuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsYS5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvIC5yZWxhLmRhdGEucmVsLnJvLiogLnJlbGEuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsLmRhdGEgICAgICAgOiB7ICooLnJlbC5kYXRhIC5yZWwuZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWxhLmRhdGEgICAgICA6IHsgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbC50ZGF0YQkgIDogeyAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsYS50ZGF0YQkgIDogeyAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsLnRic3MJICA6IHsgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWxhLnRic3MJICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWwuY3RvcnMgICAgICA6IHsgKigucmVsLmN0b3JzKSB9CiAgLnJlbGEuY3RvcnMgICAgIDogeyAqKC5yZWxhLmN0b3JzKSB9CiAgLnJlbC5kdG9ycyAgICAgIDogeyAqKC5yZWwuZHRvcnMpIH0KICAucmVsYS5kdG9ycyAgICAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsLmdvdCAgICAgICAgOiB7ICooLnJlbC5nb3QpIH0KICAucmVsYS5nb3QgICAgICAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbC5ic3MgICAgICAgIDogeyAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbGEuYnNzICAgICAgIDogeyAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbC5pcGx0ICAgICAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbF9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWxhLmlwbHQgICAgICA6CiAgICB7CiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAgIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgICAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooU09SVCgudGV4dC5zb3J0ZWQuKikpCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSAuOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgIFBST1ZJREVfSElEREVOIChfX3RkYXRhX3N0YXJ0ID0gLik7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgLiA9IC47CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkbyBub3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLjsgX19ic3NfZW5kX18gPSAuOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC47CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMgOiB7ICooLmdudS5idWlsZC5hdHRyaWJ1dGVzIC5nbnUuYnVpbGQuYXR0cmlidXRlcy4qKSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxLiAgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIuICAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMi4gICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMuICAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiA1LiAgKi8KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5kZWJ1Z19saW5lX3N0ciAwIDogeyAqKC5kZWJ1Z19saW5lX3N0cikgfQogIC5kZWJ1Z19sb2NsaXN0cyAwIDogeyAqKC5kZWJ1Z19sb2NsaXN0cykgfQogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19uYW1lcyAgICAwIDogeyAqKC5kZWJ1Z19uYW1lcykgfQogIC5kZWJ1Z19ybmdsaXN0cyAwIDogeyAqKC5kZWJ1Z19ybmdsaXN0cykgfQogIC5kZWJ1Z19zdHJfb2Zmc2V0cyAwIDogeyAqKC5kZWJ1Z19zdHJfb2Zmc2V0cykgfQogIC5kZWJ1Z19zdXAgICAgICAwIDogeyAqKC5kZWJ1Z19zdXApIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAAAAAC8qIFNjcmlwdCBmb3IgLW4gKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hcm12N2EtY3Jvcy1saW51eC1nbnVlYWJpaGYvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4MDAwMTAwMDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4MDAwMTAwMDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuaW5pdCAgICAgICA6IHsgKigucmVsLmluaXQpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWwudGV4dCAgICAgICA6IHsgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEudGV4dCAgICAgIDogeyAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopIH0KICAucmVsLmZpbmkgICAgICAgOiB7ICooLnJlbC5maW5pKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsLnJvZGF0YSAgICAgOiB7ICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWxhLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8gLnJlbGEuZGF0YS5yZWwucm8uKiAucmVsYS5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWwuZGF0YSAgICAgICA6IHsgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsLnRkYXRhCSAgOiB7ICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWwudGJzcwkgIDogeyAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbGEudGJzcwkgIDogeyAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbC5jdG9ycyAgICAgIDogeyAqKC5yZWwuY3RvcnMpIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsLmR0b3JzICAgICAgOiB7ICooLnJlbC5kdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWwuZ290ICAgICAgICA6IHsgKigucmVsLmdvdCkgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsLmJzcyAgICAgICAgOiB7ICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsLmlwbHQgICAgICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWwuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbGEuaXBsdCAgICAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKihTT1JUKC50ZXh0LnNvcnRlZC4qKSkKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAuQVJNLmV4aWR4ICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9zdGFydCA9IC4pOwogICAgICAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfZW5kID0gLik7CiAgICB9CiAgLmVoX2ZyYW1lX2hkciAgIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOgogICB7CiAgICAgUFJPVklERV9ISURERU4gKF9fdGRhdGFfc3RhcnQgPSAuKTsKICAgICAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopCiAgIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgLiA9IC47CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkbyBub3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLjsgX19ic3NfZW5kX18gPSAuOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC47CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLmdudS5idWlsZC5hdHRyaWJ1dGVzIDogeyAqKC5nbnUuYnVpbGQuYXR0cmlidXRlcyAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMuKikgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMS4gICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyLiAgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIuICAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzLiAgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgNS4gICovCiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZGVidWdfbGluZV9zdHIgMCA6IHsgKiguZGVidWdfbGluZV9zdHIpIH0KICAuZGVidWdfbG9jbGlzdHMgMCA6IHsgKiguZGVidWdfbG9jbGlzdHMpIH0KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfbmFtZXMgICAgMCA6IHsgKiguZGVidWdfbmFtZXMpIH0KICAuZGVidWdfcm5nbGlzdHMgMCA6IHsgKiguZGVidWdfcm5nbGlzdHMpIH0KICAuZGVidWdfc3RyX29mZnNldHMgMCA6IHsgKiguZGVidWdfc3RyX29mZnNldHMpIH0KICAuZGVidWdfc3VwICAgICAgMCA6IHsgKiguZGVidWdfc3VwKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAAAC8qIFNjcmlwdCBmb3IgLXBpZSAteiBjb21icmVsb2MgLXogc2VwYXJhdGUtY29kZSAteiByZWxybyAteiBub3cgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hcm12N2EtY3Jvcy1saW51eC1nbnVlYWJpaGYvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuZHluICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5pbml0KQogICAgICAqKC5yZWwudGV4dCAucmVsLnRleHQuKiAucmVsLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbC5maW5pKQogICAgICAqKC5yZWwucm9kYXRhIC5yZWwucm9kYXRhLiogLnJlbC5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWwuZGF0YS5yZWwucm8gLnJlbC5kYXRhLnJlbC5yby4qIC5yZWwuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopCiAgICAgICooLnJlbC5kYXRhIC5yZWwuZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsLnRkYXRhIC5yZWwudGRhdGEuKiAucmVsLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWwuY3RvcnMpCiAgICAgICooLnJlbC5kdG9ycykKICAgICAgKigucmVsLmdvdCkKICAgICAgKigucmVsLmJzcyAucmVsLmJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsLmlwbHQpCiAgICB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWxhLmlwbHQpCiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuID0gQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSk7CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKihTT1JUKC50ZXh0LnNvcnRlZC4qKSkKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC4gPSBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKTsKICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSByb2RhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IFNFR01FTlRfU1RBUlQoInJvZGF0YS1zZWdtZW50IiwgQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSkgKyAoLiAmIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpIC0gMSkpKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgIFBST1ZJREVfSElEREVOIChfX3RkYXRhX3N0YXJ0ID0gLik7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIC4gPSAuOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG8gbm90CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC47IF9fYnNzX2VuZF9fID0gLjsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC5nbnUuYnVpbGQuYXR0cmlidXRlcyA6IHsgKiguZ251LmJ1aWxkLmF0dHJpYnV0ZXMgLmdudS5idWlsZC5hdHRyaWJ1dGVzLiopIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEuICAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMi4gICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyLiAgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQpIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMy4gICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIDUuICAqLwogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmRlYnVnX2xpbmVfc3RyIDAgOiB7ICooLmRlYnVnX2xpbmVfc3RyKSB9CiAgLmRlYnVnX2xvY2xpc3RzIDAgOiB7ICooLmRlYnVnX2xvY2xpc3RzKSB9CiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX25hbWVzICAgIDAgOiB7ICooLmRlYnVnX25hbWVzKSB9CiAgLmRlYnVnX3JuZ2xpc3RzIDAgOiB7ICooLmRlYnVnX3JuZ2xpc3RzKSB9CiAgLmRlYnVnX3N0cl9vZmZzZXRzIDAgOiB7ICooLmRlYnVnX3N0cl9vZmZzZXRzKSB9CiAgLmRlYnVnX3N1cCAgICAgIDAgOiB7ICooLmRlYnVnX3N1cCkgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAvKiBTY3JpcHQgZm9yIC1waWUgLXogY29tYnJlbG9jIC16IHNlcGFyYXRlLWNvZGUgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hcm12N2EtY3Jvcy1saW51eC1nbnVlYWJpaGYvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuZHluICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5pbml0KQogICAgICAqKC5yZWwudGV4dCAucmVsLnRleHQuKiAucmVsLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbC5maW5pKQogICAgICAqKC5yZWwucm9kYXRhIC5yZWwucm9kYXRhLiogLnJlbC5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWwuZGF0YS5yZWwucm8gLnJlbC5kYXRhLnJlbC5yby4qIC5yZWwuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopCiAgICAgICooLnJlbC5kYXRhIC5yZWwuZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsLnRkYXRhIC5yZWwudGRhdGEuKiAucmVsLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWwuY3RvcnMpCiAgICAgICooLnJlbC5kdG9ycykKICAgICAgKigucmVsLmdvdCkKICAgICAgKigucmVsLmJzcyAucmVsLmJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsLmlwbHQpCiAgICB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWxhLmlwbHQpCiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuID0gQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSk7CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKihTT1JUKC50ZXh0LnNvcnRlZC4qKSkKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC4gPSBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKTsKICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSByb2RhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IFNFR01FTlRfU1RBUlQoInJvZGF0YS1zZWdtZW50IiwgQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSkgKyAoLiAmIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpIC0gMSkpKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgIFBST1ZJREVfSElEREVOIChfX3RkYXRhX3N0YXJ0ID0gLik7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIC4gPSAuOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG8gbm90CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC47IF9fYnNzX2VuZF9fID0gLjsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC5nbnUuYnVpbGQuYXR0cmlidXRlcyA6IHsgKiguZ251LmJ1aWxkLmF0dHJpYnV0ZXMgLmdudS5idWlsZC5hdHRyaWJ1dGVzLiopIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEuICAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMi4gICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyLiAgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQpIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMy4gICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIDUuICAqLwogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmRlYnVnX2xpbmVfc3RyIDAgOiB7ICooLmRlYnVnX2xpbmVfc3RyKSB9CiAgLmRlYnVnX2xvY2xpc3RzIDAgOiB7ICooLmRlYnVnX2xvY2xpc3RzKSB9CiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX25hbWVzICAgIDAgOiB7ICooLmRlYnVnX25hbWVzKSB9CiAgLmRlYnVnX3JuZ2xpc3RzIDAgOiB7ICooLmRlYnVnX3JuZ2xpc3RzKSB9CiAgLmRlYnVnX3N0cl9vZmZzZXRzIDAgOiB7ICooLmRlYnVnX3N0cl9vZmZzZXRzKSB9CiAgLmRlYnVnX3N1cCAgICAgIDAgOiB7ICooLmRlYnVnX3N1cCkgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAvKiBTY3JpcHQgZm9yIC1waWUgLXogY29tYnJlbG9jIC16IHJlbHJvIC16IG5vdyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItbGl0dGxlYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FybXY3YS1jcm9zLWxpbnV4LWdudWVhYmloZi9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgUFJPVklERSAoX19leGVjdXRhYmxlX3N0YXJ0ID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkpOyAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCAgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5keW4gICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmluaXQpCiAgICAgICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsLmZpbmkpCiAgICAgICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikKICAgICAgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbC5jdG9ycykKICAgICAgKigucmVsLmR0b3JzKQogICAgICAqKC5yZWwuZ290KQogICAgICAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWwuaXBsdCkKICAgIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAgIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgICAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooU09SVCgudGV4dC5zb3J0ZWQuKikpCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgIFBST1ZJREVfSElEREVOIChfX3RkYXRhX3N0YXJ0ID0gLik7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIC4gPSAuOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG8gbm90CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC47IF9fYnNzX2VuZF9fID0gLjsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC5nbnUuYnVpbGQuYXR0cmlidXRlcyA6IHsgKiguZ251LmJ1aWxkLmF0dHJpYnV0ZXMgLmdudS5idWlsZC5hdHRyaWJ1dGVzLiopIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEuICAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMi4gICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyLiAgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQpIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMy4gICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIDUuICAqLwogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmRlYnVnX2xpbmVfc3RyIDAgOiB7ICooLmRlYnVnX2xpbmVfc3RyKSB9CiAgLmRlYnVnX2xvY2xpc3RzIDAgOiB7ICooLmRlYnVnX2xvY2xpc3RzKSB9CiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX25hbWVzICAgIDAgOiB7ICooLmRlYnVnX25hbWVzKSB9CiAgLmRlYnVnX3JuZ2xpc3RzIDAgOiB7ICooLmRlYnVnX3JuZ2xpc3RzKSB9CiAgLmRlYnVnX3N0cl9vZmZzZXRzIDAgOiB7ICooLmRlYnVnX3N0cl9vZmZzZXRzKSB9CiAgLmRlYnVnX3N1cCAgICAgIDAgOiB7ICooLmRlYnVnX3N1cCkgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAvKiBTY3JpcHQgZm9yIC1waWUgLXogY29tYnJlbG9jICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1saXR0bGVhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYXJtdjdhLWNyb3MtbGludXgtZ251ZWFiaWhmL2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkICA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmR5biAgICAgICAgOgogICAgewogICAgICAqKC5yZWwuaW5pdCkKICAgICAgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWwuZmluaSkKICAgICAgKigucmVsLnJvZGF0YSAucmVsLnJvZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsLmRhdGEucmVsLnJvIC5yZWwuZGF0YS5yZWwucm8uKiAucmVsLmdudS5saW5rb25jZS5kLnJlbC5yby4qKQogICAgICAqKC5yZWwuZGF0YSAucmVsLmRhdGEuKiAucmVsLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsLmN0b3JzKQogICAgICAqKC5yZWwuZHRvcnMpCiAgICAgICooLnJlbC5nb3QpCiAgICAgICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbC5pcGx0KQogICAgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsYS5pcGx0KQogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKihTT1JUKC50ZXh0LnNvcnRlZC4qKSkKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAuQVJNLmV4aWR4ICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9zdGFydCA9IC4pOwogICAgICAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfZW5kID0gLik7CiAgICB9CiAgLmVoX2ZyYW1lX2hkciAgIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOgogICB7CiAgICAgUFJPVklERV9ISURERU4gKF9fdGRhdGFfc3RhcnQgPSAuKTsKICAgICAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopCiAgIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgLiA9IC47CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkbyBub3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLjsgX19ic3NfZW5kX18gPSAuOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC47CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLmdudS5idWlsZC5hdHRyaWJ1dGVzIDogeyAqKC5nbnUuYnVpbGQuYXR0cmlidXRlcyAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMuKikgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMS4gICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyLiAgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIuICAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzLiAgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgNS4gICovCiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZGVidWdfbGluZV9zdHIgMCA6IHsgKiguZGVidWdfbGluZV9zdHIpIH0KICAuZGVidWdfbG9jbGlzdHMgMCA6IHsgKiguZGVidWdfbG9jbGlzdHMpIH0KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfbmFtZXMgICAgMCA6IHsgKiguZGVidWdfbmFtZXMpIH0KICAuZGVidWdfcm5nbGlzdHMgMCA6IHsgKiguZGVidWdfcm5nbGlzdHMpIH0KICAuZGVidWdfc3RyX29mZnNldHMgMCA6IHsgKiguZGVidWdfc3RyX29mZnNldHMpIH0KICAuZGVidWdfc3VwICAgICAgMCA6IHsgKiguZGVidWdfc3VwKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAC8qIFNjcmlwdCBmb3IgLXBpZSAteiBzZXBhcmF0ZS1jb2RlICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1saXR0bGVhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYXJtdjdhLWNyb3MtbGludXgtZ251ZWFiaWhmL2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkICA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmluaXQgICAgICAgOiB7ICooLnJlbC5pbml0KSB9CiAgLnJlbGEuaW5pdCAgICAgIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsLnRleHQgICAgICAgOiB7ICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWxhLnRleHQgICAgICA6IHsgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbC5maW5pICAgICAgIDogeyAqKC5yZWwuZmluaSkgfQogIC5yZWxhLmZpbmkgICAgICA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbC5yb2RhdGEgICAgIDogeyAqKC5yZWwucm9kYXRhIC5yZWwucm9kYXRhLiogLnJlbC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbGEucm9kYXRhICAgIDogeyAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbC5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWwuZGF0YS5yZWwucm8gLnJlbC5kYXRhLnJlbC5yby4qIC5yZWwuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsYS5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvIC5yZWxhLmRhdGEucmVsLnJvLiogLnJlbGEuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsLmRhdGEgICAgICAgOiB7ICooLnJlbC5kYXRhIC5yZWwuZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWxhLmRhdGEgICAgICA6IHsgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbC50ZGF0YQkgIDogeyAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsYS50ZGF0YQkgIDogeyAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsLnRic3MJICA6IHsgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWxhLnRic3MJICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWwuY3RvcnMgICAgICA6IHsgKigucmVsLmN0b3JzKSB9CiAgLnJlbGEuY3RvcnMgICAgIDogeyAqKC5yZWxhLmN0b3JzKSB9CiAgLnJlbC5kdG9ycyAgICAgIDogeyAqKC5yZWwuZHRvcnMpIH0KICAucmVsYS5kdG9ycyAgICAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsLmdvdCAgICAgICAgOiB7ICooLnJlbC5nb3QpIH0KICAucmVsYS5nb3QgICAgICAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbC5ic3MgICAgICAgIDogeyAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbGEuYnNzICAgICAgIDogeyAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbC5pcGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmlwbHQpCiAgICB9CiAgLnJlbGEuaXBsdCAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pcGx0KQogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLiA9IEFMSUdOKENPTlNUQU5UIChNQVhQQUdFU0laRSkpOwogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAgIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgICAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooU09SVCgudGV4dC5zb3J0ZWQuKikpCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAuID0gQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSk7CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgcm9kYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBTRUdNRU5UX1NUQVJUKCJyb2RhdGEtc2VnbWVudCIsIEFMSUdOKENPTlNUQU5UIChNQVhQQUdFU0laRSkpICsgKC4gJiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSAtIDEpKSk7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLkFSTS5leHRhYiAgIDogeyAqKC5BUk0uZXh0YWIqIC5nbnUubGlua29uY2UuYXJtZXh0YWIuKikgfQogIC5BUk0uZXhpZHggICA6CiAgICB7CiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X3N0YXJ0ID0gLik7CiAgICAgICooLkFSTS5leGlkeCogLmdudS5saW5rb25jZS5hcm1leGlkeC4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9lbmQgPSAuKTsKICAgIH0KICAuZWhfZnJhbWVfaGRyICAgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6CiAgIHsKICAgICBQUk9WSURFX0hJRERFTiAoX190ZGF0YV9zdGFydCA9IC4pOwogICAgICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikKICAgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmluaXRfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICAuID0gLjsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvIG5vdAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuOyBfX2Jzc19lbmRfXyA9IC47CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICBfX2VuZF9fID0gLjsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMgOiB7ICooLmdudS5idWlsZC5hdHRyaWJ1dGVzIC5nbnUuYnVpbGQuYXR0cmlidXRlcy4qKSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxLiAgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIuICAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMi4gICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMuICAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiA1LiAgKi8KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5kZWJ1Z19saW5lX3N0ciAwIDogeyAqKC5kZWJ1Z19saW5lX3N0cikgfQogIC5kZWJ1Z19sb2NsaXN0cyAwIDogeyAqKC5kZWJ1Z19sb2NsaXN0cykgfQogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19uYW1lcyAgICAwIDogeyAqKC5kZWJ1Z19uYW1lcykgfQogIC5kZWJ1Z19ybmdsaXN0cyAwIDogeyAqKC5kZWJ1Z19ybmdsaXN0cykgfQogIC5kZWJ1Z19zdHJfb2Zmc2V0cyAwIDogeyAqKC5kZWJ1Z19zdHJfb2Zmc2V0cykgfQogIC5kZWJ1Z19zdXAgICAgICAwIDogeyAqKC5kZWJ1Z19zdXApIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAALyogU2NyaXB0IGZvciAtcGllICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1saXR0bGVhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYXJtdjdhLWNyb3MtbGludXgtZ251ZWFiaWhmL2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkICA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmluaXQgICAgICAgOiB7ICooLnJlbC5pbml0KSB9CiAgLnJlbGEuaW5pdCAgICAgIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsLnRleHQgICAgICAgOiB7ICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWxhLnRleHQgICAgICA6IHsgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbC5maW5pICAgICAgIDogeyAqKC5yZWwuZmluaSkgfQogIC5yZWxhLmZpbmkgICAgICA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbC5yb2RhdGEgICAgIDogeyAqKC5yZWwucm9kYXRhIC5yZWwucm9kYXRhLiogLnJlbC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbGEucm9kYXRhICAgIDogeyAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbC5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWwuZGF0YS5yZWwucm8gLnJlbC5kYXRhLnJlbC5yby4qIC5yZWwuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsYS5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvIC5yZWxhLmRhdGEucmVsLnJvLiogLnJlbGEuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsLmRhdGEgICAgICAgOiB7ICooLnJlbC5kYXRhIC5yZWwuZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWxhLmRhdGEgICAgICA6IHsgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbC50ZGF0YQkgIDogeyAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsYS50ZGF0YQkgIDogeyAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsLnRic3MJICA6IHsgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWxhLnRic3MJICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWwuY3RvcnMgICAgICA6IHsgKigucmVsLmN0b3JzKSB9CiAgLnJlbGEuY3RvcnMgICAgIDogeyAqKC5yZWxhLmN0b3JzKSB9CiAgLnJlbC5kdG9ycyAgICAgIDogeyAqKC5yZWwuZHRvcnMpIH0KICAucmVsYS5kdG9ycyAgICAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsLmdvdCAgICAgICAgOiB7ICooLnJlbC5nb3QpIH0KICAucmVsYS5nb3QgICAgICAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbC5ic3MgICAgICAgIDogeyAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbGEuYnNzICAgICAgIDogeyAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbC5pcGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmlwbHQpCiAgICB9CiAgLnJlbGEuaXBsdCAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pcGx0KQogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKihTT1JUKC50ZXh0LnNvcnRlZC4qKSkKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAuQVJNLmV4aWR4ICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9zdGFydCA9IC4pOwogICAgICAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfZW5kID0gLik7CiAgICB9CiAgLmVoX2ZyYW1lX2hkciAgIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOgogICB7CiAgICAgUFJPVklERV9ISURERU4gKF9fdGRhdGFfc3RhcnQgPSAuKTsKICAgICAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopCiAgIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgLiA9IC47CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkbyBub3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLjsgX19ic3NfZW5kX18gPSAuOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC47CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLmdudS5idWlsZC5hdHRyaWJ1dGVzIDogeyAqKC5nbnUuYnVpbGQuYXR0cmlidXRlcyAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMuKikgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMS4gICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyLiAgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIuICAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzLiAgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgNS4gICovCiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZGVidWdfbGluZV9zdHIgMCA6IHsgKiguZGVidWdfbGluZV9zdHIpIH0KICAuZGVidWdfbG9jbGlzdHMgMCA6IHsgKiguZGVidWdfbG9jbGlzdHMpIH0KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfbmFtZXMgICAgMCA6IHsgKiguZGVidWdfbmFtZXMpIH0KICAuZGVidWdfcm5nbGlzdHMgMCA6IHsgKiguZGVidWdfcm5nbGlzdHMpIH0KICAuZGVidWdfc3RyX29mZnNldHMgMCA6IHsgKiguZGVidWdfc3RyX29mZnNldHMpIH0KICAuZGVidWdfc3VwICAgICAgMCA6IHsgKiguZGVidWdfc3VwKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAC8qIFNjcmlwdCBmb3IgLXNoYXJlZCAteiBjb21icmVsb2MgLXogc2VwYXJhdGUtY29kZSAteiByZWxybyAteiBub3cgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hcm12N2EtY3Jvcy1saW51eC1nbnVlYWJpaGYvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5ub3RlLmdudS5idWlsZC1pZCAgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5keW4gICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmluaXQpCiAgICAgICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsLmZpbmkpCiAgICAgICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikKICAgICAgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbC5jdG9ycykKICAgICAgKigucmVsLmR0b3JzKQogICAgICAqKC5yZWwuZ290KQogICAgICAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWwuaXBsdCkKICAgIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC4gPSBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKTsKICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgICA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAgIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKFNPUlQoLnRleHQuc29ydGVkLiopKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgICAqKC5nbHVlXzd0KSAqKC5nbHVlXzcpICooLnZmcDExX3ZlbmVlcikgKigudjRfYngpCiAgfQogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9CiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLiA9IEFMSUdOKENPTlNUQU5UIChNQVhQQUdFU0laRSkpOwogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIHJvZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gU0VHTUVOVF9TVEFSVCgicm9kYXRhLXNlZ21lbnQiLCBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKSArICguICYgKENPTlNUQU5UIChNQVhQQUdFU0laRSkgLSAxKSkpOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAuQVJNLmV4aWR4ICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9zdGFydCA9IC4pOwogICAgICAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfZW5kID0gLik7CiAgICB9CiAgLmVoX2ZyYW1lX2hkciAgIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOgogICB7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5pbml0X2FycmF5ICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogIH0KICAuZmluaV9hcnJheSAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBQUk9WSURFIChfZWRhdGEgPSAuKTsgUFJPVklERSAoZWRhdGEgPSAuKTsKICAuID0gLjsKICBQUk9WSURFIChfX2Jzc19zdGFydCA9IC4pOwogIFBST1ZJREUgKF9fYnNzX3N0YXJ0X18gPSAuKTsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG8gbm90CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgUFJPVklERSAoX2Jzc19lbmRfXyA9IC4pOyBQUk9WSURFIChfX2Jzc19lbmRfXyA9IC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgUFJPVklERSAoX19lbmRfXyA9IC4pOwogIFBST1ZJREUgKF9lbmQgPSAuKTsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMgOiB7ICooLmdudS5idWlsZC5hdHRyaWJ1dGVzIC5nbnUuYnVpbGQuYXR0cmlidXRlcy4qKSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxLiAgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIuICAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMi4gICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMuICAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiA1LiAgKi8KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5kZWJ1Z19saW5lX3N0ciAwIDogeyAqKC5kZWJ1Z19saW5lX3N0cikgfQogIC5kZWJ1Z19sb2NsaXN0cyAwIDogeyAqKC5kZWJ1Z19sb2NsaXN0cykgfQogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19uYW1lcyAgICAwIDogeyAqKC5kZWJ1Z19uYW1lcykgfQogIC5kZWJ1Z19ybmdsaXN0cyAwIDogeyAqKC5kZWJ1Z19ybmdsaXN0cykgfQogIC5kZWJ1Z19zdHJfb2Zmc2V0cyAwIDogeyAqKC5kZWJ1Z19zdHJfb2Zmc2V0cykgfQogIC5kZWJ1Z19zdXAgICAgICAwIDogeyAqKC5kZWJ1Z19zdXApIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAAAAAAAvKiBTY3JpcHQgZm9yIC1zaGFyZWQgLXogY29tYnJlbG9jIC16IHNlcGFyYXRlLWNvZGUgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hcm12N2EtY3Jvcy1saW51eC1nbnVlYWJpaGYvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5ub3RlLmdudS5idWlsZC1pZCAgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5keW4gICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmluaXQpCiAgICAgICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsLmZpbmkpCiAgICAgICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikKICAgICAgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbC5jdG9ycykKICAgICAgKigucmVsLmR0b3JzKQogICAgICAqKC5yZWwuZ290KQogICAgICAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWwuaXBsdCkKICAgIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC4gPSBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKTsKICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgICA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAgIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKFNPUlQoLnRleHQuc29ydGVkLiopKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgICAqKC5nbHVlXzd0KSAqKC5nbHVlXzcpICooLnZmcDExX3ZlbmVlcikgKigudjRfYngpCiAgfQogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9CiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLiA9IEFMSUdOKENPTlNUQU5UIChNQVhQQUdFU0laRSkpOwogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIHJvZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gU0VHTUVOVF9TVEFSVCgicm9kYXRhLXNlZ21lbnQiLCBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKSArICguICYgKENPTlNUQU5UIChNQVhQQUdFU0laRSkgLSAxKSkpOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAuQVJNLmV4aWR4ICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9zdGFydCA9IC4pOwogICAgICAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfZW5kID0gLik7CiAgICB9CiAgLmVoX2ZyYW1lX2hkciAgIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOgogICB7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5pbml0X2FycmF5ICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogIH0KICAuZmluaV9hcnJheSAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBQUk9WSURFIChfZWRhdGEgPSAuKTsgUFJPVklERSAoZWRhdGEgPSAuKTsKICAuID0gLjsKICBQUk9WSURFIChfX2Jzc19zdGFydCA9IC4pOwogIFBST1ZJREUgKF9fYnNzX3N0YXJ0X18gPSAuKTsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG8gbm90CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgUFJPVklERSAoX2Jzc19lbmRfXyA9IC4pOyBQUk9WSURFIChfX2Jzc19lbmRfXyA9IC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgUFJPVklERSAoX19lbmRfXyA9IC4pOwogIFBST1ZJREUgKF9lbmQgPSAuKTsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMgOiB7ICooLmdudS5idWlsZC5hdHRyaWJ1dGVzIC5nbnUuYnVpbGQuYXR0cmlidXRlcy4qKSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxLiAgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIuICAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMi4gICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMuICAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiA1LiAgKi8KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5kZWJ1Z19saW5lX3N0ciAwIDogeyAqKC5kZWJ1Z19saW5lX3N0cikgfQogIC5kZWJ1Z19sb2NsaXN0cyAwIDogeyAqKC5kZWJ1Z19sb2NsaXN0cykgfQogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19uYW1lcyAgICAwIDogeyAqKC5kZWJ1Z19uYW1lcykgfQogIC5kZWJ1Z19ybmdsaXN0cyAwIDogeyAqKC5kZWJ1Z19ybmdsaXN0cykgfQogIC5kZWJ1Z19zdHJfb2Zmc2V0cyAwIDogeyAqKC5kZWJ1Z19zdHJfb2Zmc2V0cykgfQogIC5kZWJ1Z19zdXAgICAgICAwIDogeyAqKC5kZWJ1Z19zdXApIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAAAAAAAvKiBTY3JpcHQgZm9yIC1zaGFyZWQgLXogY29tYnJlbG9jIC16IHJlbHJvIC16IG5vdyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItbGl0dGxlYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FybXY3YS1jcm9zLWxpbnV4LWdudWVhYmloZi9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLm5vdGUuZ251LmJ1aWxkLWlkICA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmR5biAgICAgICAgOgogICAgewogICAgICAqKC5yZWwuaW5pdCkKICAgICAgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWwuZmluaSkKICAgICAgKigucmVsLnJvZGF0YSAucmVsLnJvZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsLmRhdGEucmVsLnJvIC5yZWwuZGF0YS5yZWwucm8uKiAucmVsLmdudS5saW5rb25jZS5kLnJlbC5yby4qKQogICAgICAqKC5yZWwuZGF0YSAucmVsLmRhdGEuKiAucmVsLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsLmN0b3JzKQogICAgICAqKC5yZWwuZHRvcnMpCiAgICAgICooLnJlbC5nb3QpCiAgICAgICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbC5pcGx0KQogICAgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsYS5pcGx0KQogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKihTT1JUKC50ZXh0LnNvcnRlZC4qKSkKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAuQVJNLmV4aWR4ICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9zdGFydCA9IC4pOwogICAgICAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfZW5kID0gLik7CiAgICB9CiAgLmVoX2ZyYW1lX2hkciAgIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOgogICB7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5pbml0X2FycmF5ICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogIH0KICAuZmluaV9hcnJheSAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBQUk9WSURFIChfZWRhdGEgPSAuKTsgUFJPVklERSAoZWRhdGEgPSAuKTsKICAuID0gLjsKICBQUk9WSURFIChfX2Jzc19zdGFydCA9IC4pOwogIFBST1ZJREUgKF9fYnNzX3N0YXJ0X18gPSAuKTsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG8gbm90CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgUFJPVklERSAoX2Jzc19lbmRfXyA9IC4pOyBQUk9WSURFIChfX2Jzc19lbmRfXyA9IC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgUFJPVklERSAoX19lbmRfXyA9IC4pOwogIFBST1ZJREUgKF9lbmQgPSAuKTsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMgOiB7ICooLmdudS5idWlsZC5hdHRyaWJ1dGVzIC5nbnUuYnVpbGQuYXR0cmlidXRlcy4qKSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxLiAgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIuICAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMi4gICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMuICAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiA1LiAgKi8KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5kZWJ1Z19saW5lX3N0ciAwIDogeyAqKC5kZWJ1Z19saW5lX3N0cikgfQogIC5kZWJ1Z19sb2NsaXN0cyAwIDogeyAqKC5kZWJ1Z19sb2NsaXN0cykgfQogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19uYW1lcyAgICAwIDogeyAqKC5kZWJ1Z19uYW1lcykgfQogIC5kZWJ1Z19ybmdsaXN0cyAwIDogeyAqKC5kZWJ1Z19ybmdsaXN0cykgfQogIC5kZWJ1Z19zdHJfb2Zmc2V0cyAwIDogeyAqKC5kZWJ1Z19zdHJfb2Zmc2V0cykgfQogIC5kZWJ1Z19zdXAgICAgICAwIDogeyAqKC5kZWJ1Z19zdXApIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAAAAAAAvKiBTY3JpcHQgZm9yIC1zaGFyZWQgLXogY29tYnJlbG9jICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1saXR0bGVhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYXJtdjdhLWNyb3MtbGludXgtZ251ZWFiaWhmL2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAubm90ZS5nbnUuYnVpbGQtaWQgIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuZHluICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5pbml0KQogICAgICAqKC5yZWwudGV4dCAucmVsLnRleHQuKiAucmVsLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbC5maW5pKQogICAgICAqKC5yZWwucm9kYXRhIC5yZWwucm9kYXRhLiogLnJlbC5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWwuZGF0YS5yZWwucm8gLnJlbC5kYXRhLnJlbC5yby4qIC5yZWwuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopCiAgICAgICooLnJlbC5kYXRhIC5yZWwuZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsLnRkYXRhIC5yZWwudGRhdGEuKiAucmVsLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWwuY3RvcnMpCiAgICAgICooLnJlbC5kdG9ycykKICAgICAgKigucmVsLmdvdCkKICAgICAgKigucmVsLmJzcyAucmVsLmJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsLmlwbHQpCiAgICB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWxhLmlwbHQpCiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgICA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAgIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKFNPUlQoLnRleHQuc29ydGVkLiopKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgICAqKC5nbHVlXzd0KSAqKC5nbHVlXzcpICooLnZmcDExX3ZlbmVlcikgKigudjRfYngpCiAgfQogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9CiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLkFSTS5leHRhYiAgIDogeyAqKC5BUk0uZXh0YWIqIC5nbnUubGlua29uY2UuYXJtZXh0YWIuKikgfQogIC5BUk0uZXhpZHggICA6CiAgICB7CiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X3N0YXJ0ID0gLik7CiAgICAgICooLkFSTS5leGlkeCogLmdudS5saW5rb25jZS5hcm1leGlkeC4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9lbmQgPSAuKTsKICAgIH0KICAuZWhfZnJhbWVfaGRyICAgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6CiAgIHsKICAgICAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopCiAgIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgIDoKICB7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICB9CiAgLmluaXRfYXJyYXkgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgfQogIC5maW5pX2FycmF5ICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIFBST1ZJREUgKF9lZGF0YSA9IC4pOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIC4gPSAuOwogIFBST1ZJREUgKF9fYnNzX3N0YXJ0ID0gLik7CiAgUFJPVklERSAoX19ic3Nfc3RhcnRfXyA9IC4pOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkbyBub3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBQUk9WSURFIChfYnNzX2VuZF9fID0gLik7IFBST1ZJREUgKF9fYnNzX2VuZF9fID0gLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICBQUk9WSURFIChfX2VuZF9fID0gLik7CiAgUFJPVklERSAoX2VuZCA9IC4pOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC5nbnUuYnVpbGQuYXR0cmlidXRlcyA6IHsgKiguZ251LmJ1aWxkLmF0dHJpYnV0ZXMgLmdudS5idWlsZC5hdHRyaWJ1dGVzLiopIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEuICAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMi4gICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyLiAgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQpIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMy4gICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIDUuICAqLwogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmRlYnVnX2xpbmVfc3RyIDAgOiB7ICooLmRlYnVnX2xpbmVfc3RyKSB9CiAgLmRlYnVnX2xvY2xpc3RzIDAgOiB7ICooLmRlYnVnX2xvY2xpc3RzKSB9CiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX25hbWVzICAgIDAgOiB7ICooLmRlYnVnX25hbWVzKSB9CiAgLmRlYnVnX3JuZ2xpc3RzIDAgOiB7ICooLmRlYnVnX3JuZ2xpc3RzKSB9CiAgLmRlYnVnX3N0cl9vZmZzZXRzIDAgOiB7ICooLmRlYnVnX3N0cl9vZmZzZXRzKSB9CiAgLmRlYnVnX3N1cCAgICAgIDAgOiB7ICooLmRlYnVnX3N1cCkgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAAAC8qIFNjcmlwdCBmb3IgLXNoYXJlZCAteiBzZXBhcmF0ZS1jb2RlICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1saXR0bGVhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYXJtdjdhLWNyb3MtbGludXgtZ251ZWFiaWhmL2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAubm90ZS5nbnUuYnVpbGQtaWQgIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuaW5pdCAgICAgICA6IHsgKigucmVsLmluaXQpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWwudGV4dCAgICAgICA6IHsgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEudGV4dCAgICAgIDogeyAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopIH0KICAucmVsLmZpbmkgICAgICAgOiB7ICooLnJlbC5maW5pKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsLnJvZGF0YSAgICAgOiB7ICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWxhLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8gLnJlbGEuZGF0YS5yZWwucm8uKiAucmVsYS5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWwuZGF0YSAgICAgICA6IHsgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsLnRkYXRhCSAgOiB7ICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWwudGJzcwkgIDogeyAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbGEudGJzcwkgIDogeyAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbC5jdG9ycyAgICAgIDogeyAqKC5yZWwuY3RvcnMpIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsLmR0b3JzICAgICAgOiB7ICooLnJlbC5kdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWwuZ290ICAgICAgICA6IHsgKigucmVsLmdvdCkgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsLmJzcyAgICAgICAgOiB7ICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsLmlwbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWwuaXBsdCkKICAgIH0KICAucmVsYS5pcGx0ICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmlwbHQpCiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuID0gQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSk7CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKihTT1JUKC50ZXh0LnNvcnRlZC4qKSkKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC4gPSBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKTsKICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSByb2RhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IFNFR01FTlRfU1RBUlQoInJvZGF0YS1zZWdtZW50IiwgQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSkgKyAoLiAmIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpIC0gMSkpKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikKICAgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgOgogIHsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICB9CiAgLmZpbmlfYXJyYXkgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgUFJPVklERSAoX2VkYXRhID0gLik7IFBST1ZJREUgKGVkYXRhID0gLik7CiAgLiA9IC47CiAgUFJPVklERSAoX19ic3Nfc3RhcnQgPSAuKTsKICBQUk9WSURFIChfX2Jzc19zdGFydF9fID0gLik7CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvIG5vdAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIFBST1ZJREUgKF9ic3NfZW5kX18gPSAuKTsgUFJPVklERSAoX19ic3NfZW5kX18gPSAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIFBST1ZJREUgKF9fZW5kX18gPSAuKTsKICBQUk9WSURFIChfZW5kID0gLik7IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLmdudS5idWlsZC5hdHRyaWJ1dGVzIDogeyAqKC5nbnUuYnVpbGQuYXR0cmlidXRlcyAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMuKikgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMS4gICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyLiAgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIuICAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzLiAgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgNS4gICovCiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZGVidWdfbGluZV9zdHIgMCA6IHsgKiguZGVidWdfbGluZV9zdHIpIH0KICAuZGVidWdfbG9jbGlzdHMgMCA6IHsgKiguZGVidWdfbG9jbGlzdHMpIH0KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfbmFtZXMgICAgMCA6IHsgKiguZGVidWdfbmFtZXMpIH0KICAuZGVidWdfcm5nbGlzdHMgMCA6IHsgKiguZGVidWdfcm5nbGlzdHMpIH0KICAuZGVidWdfc3RyX29mZnNldHMgMCA6IHsgKiguZGVidWdfc3RyX29mZnNldHMpIH0KICAuZGVidWdfc3VwICAgICAgMCA6IHsgKiguZGVidWdfc3VwKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAALyogU2NyaXB0IGZvciAteiBjb21icmVsb2MgLXogcmVscm8gLXogbm93ICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1saXR0bGVhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYXJtdjdhLWNyb3MtbGludXgtZ251ZWFiaWhmL2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkICA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmR5biAgICAgICAgOgogICAgewogICAgICAqKC5yZWwuaW5pdCkKICAgICAgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWwuZmluaSkKICAgICAgKigucmVsLnJvZGF0YSAucmVsLnJvZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsLmRhdGEucmVsLnJvIC5yZWwuZGF0YS5yZWwucm8uKiAucmVsLmdudS5saW5rb25jZS5kLnJlbC5yby4qKQogICAgICAqKC5yZWwuZGF0YSAucmVsLmRhdGEuKiAucmVsLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsLmN0b3JzKQogICAgICAqKC5yZWwuZHRvcnMpCiAgICAgICooLnJlbC5nb3QpCiAgICAgICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbF9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbC5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAgIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgICAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooU09SVCgudGV4dC5zb3J0ZWQuKikpCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgIFBST1ZJREVfSElEREVOIChfX3RkYXRhX3N0YXJ0ID0gLik7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIC4gPSAuOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG8gbm90CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC47IF9fYnNzX2VuZF9fID0gLjsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC5nbnUuYnVpbGQuYXR0cmlidXRlcyA6IHsgKiguZ251LmJ1aWxkLmF0dHJpYnV0ZXMgLmdudS5idWlsZC5hdHRyaWJ1dGVzLiopIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEuICAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMi4gICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyLiAgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQpIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMy4gICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIDUuICAqLwogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmRlYnVnX2xpbmVfc3RyIDAgOiB7ICooLmRlYnVnX2xpbmVfc3RyKSB9CiAgLmRlYnVnX2xvY2xpc3RzIDAgOiB7ICooLmRlYnVnX2xvY2xpc3RzKSB9CiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX25hbWVzICAgIDAgOiB7ICooLmRlYnVnX25hbWVzKSB9CiAgLmRlYnVnX3JuZ2xpc3RzIDAgOiB7ICooLmRlYnVnX3JuZ2xpc3RzKSB9CiAgLmRlYnVnX3N0cl9vZmZzZXRzIDAgOiB7ICooLmRlYnVnX3N0cl9vZmZzZXRzKSB9CiAgLmRlYnVnX3N1cCAgICAgIDAgOiB7ICooLmRlYnVnX3N1cCkgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAALyogRGVmYXVsdCBsaW5rZXIgc2NyaXB0LCBmb3Igbm9ybWFsIGV4ZWN1dGFibGVzICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1saXR0bGVhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYXJtdjdhLWNyb3MtbGludXgtZ251ZWFiaWhmL2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkICA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmluaXQgICAgICAgOiB7ICooLnJlbC5pbml0KSB9CiAgLnJlbGEuaW5pdCAgICAgIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsLnRleHQgICAgICAgOiB7ICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWxhLnRleHQgICAgICA6IHsgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbC5maW5pICAgICAgIDogeyAqKC5yZWwuZmluaSkgfQogIC5yZWxhLmZpbmkgICAgICA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbC5yb2RhdGEgICAgIDogeyAqKC5yZWwucm9kYXRhIC5yZWwucm9kYXRhLiogLnJlbC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbGEucm9kYXRhICAgIDogeyAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbC5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWwuZGF0YS5yZWwucm8gLnJlbC5kYXRhLnJlbC5yby4qIC5yZWwuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsYS5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvIC5yZWxhLmRhdGEucmVsLnJvLiogLnJlbGEuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsLmRhdGEgICAgICAgOiB7ICooLnJlbC5kYXRhIC5yZWwuZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWxhLmRhdGEgICAgICA6IHsgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbC50ZGF0YQkgIDogeyAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsYS50ZGF0YQkgIDogeyAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsLnRic3MJICA6IHsgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWxhLnRic3MJICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWwuY3RvcnMgICAgICA6IHsgKigucmVsLmN0b3JzKSB9CiAgLnJlbGEuY3RvcnMgICAgIDogeyAqKC5yZWxhLmN0b3JzKSB9CiAgLnJlbC5kdG9ycyAgICAgIDogeyAqKC5yZWwuZHRvcnMpIH0KICAucmVsYS5kdG9ycyAgICAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsLmdvdCAgICAgICAgOiB7ICooLnJlbC5nb3QpIH0KICAucmVsYS5nb3QgICAgICAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbC5ic3MgICAgICAgIDogeyAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbGEuYnNzICAgICAgIDogeyAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbC5pcGx0ICAgICAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbF9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWxhLmlwbHQgICAgICA6CiAgICB7CiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAgIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgICAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooU09SVCgudGV4dC5zb3J0ZWQuKikpCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgIFBST1ZJREVfSElEREVOIChfX3RkYXRhX3N0YXJ0ID0gLik7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIC4gPSAuOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG8gbm90CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC47IF9fYnNzX2VuZF9fID0gLjsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC5nbnUuYnVpbGQuYXR0cmlidXRlcyA6IHsgKiguZ251LmJ1aWxkLmF0dHJpYnV0ZXMgLmdudS5idWlsZC5hdHRyaWJ1dGVzLiopIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEuICAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMi4gICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyLiAgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQpIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMy4gICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIDUuICAqLwogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmRlYnVnX2xpbmVfc3RyIDAgOiB7ICooLmRlYnVnX2xpbmVfc3RyKSB9CiAgLmRlYnVnX2xvY2xpc3RzIDAgOiB7ICooLmRlYnVnX2xvY2xpc3RzKSB9CiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX25hbWVzICAgIDAgOiB7ICooLmRlYnVnX25hbWVzKSB9CiAgLmRlYnVnX3JuZ2xpc3RzIDAgOiB7ICooLmRlYnVnX3JuZ2xpc3RzKSB9CiAgLmRlYnVnX3N0cl9vZmZzZXRzIDAgOiB7ICooLmRlYnVnX3N0cl9vZmZzZXRzKSB9CiAgLmRlYnVnX3N1cCAgICAgIDAgOiB7ICooLmRlYnVnX3N1cCkgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAAAAAvKiBTY3JpcHQgZm9yIC16IGNvbWJyZWxvYyAteiBzZXBhcmF0ZS1jb2RlIC16IHJlbHJvIC16IG5vdyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItbGl0dGxlYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FybXY3YS1jcm9zLWxpbnV4LWdudWVhYmloZi9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgUFJPVklERSAoX19leGVjdXRhYmxlX3N0YXJ0ID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHgwMDAxMDAwMCkpOyAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHgwMDAxMDAwMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCAgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5keW4gICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmluaXQpCiAgICAgICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsLmZpbmkpCiAgICAgICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikKICAgICAgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbC5jdG9ycykKICAgICAgKigucmVsLmR0b3JzKQogICAgICAqKC5yZWwuZ290KQogICAgICAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWwuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuID0gQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSk7CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKihTT1JUKC50ZXh0LnNvcnRlZC4qKSkKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC4gPSBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKTsKICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSByb2RhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IFNFR01FTlRfU1RBUlQoInJvZGF0YS1zZWdtZW50IiwgQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSkgKyAoLiAmIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpIC0gMSkpKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgIFBST1ZJREVfSElEREVOIChfX3RkYXRhX3N0YXJ0ID0gLik7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIC4gPSAuOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG8gbm90CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC47IF9fYnNzX2VuZF9fID0gLjsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC5nbnUuYnVpbGQuYXR0cmlidXRlcyA6IHsgKiguZ251LmJ1aWxkLmF0dHJpYnV0ZXMgLmdudS5idWlsZC5hdHRyaWJ1dGVzLiopIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEuICAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMi4gICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyLiAgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQpIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMy4gICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIDUuICAqLwogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmRlYnVnX2xpbmVfc3RyIDAgOiB7ICooLmRlYnVnX2xpbmVfc3RyKSB9CiAgLmRlYnVnX2xvY2xpc3RzIDAgOiB7ICooLmRlYnVnX2xvY2xpc3RzKSB9CiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX25hbWVzICAgIDAgOiB7ICooLmRlYnVnX25hbWVzKSB9CiAgLmRlYnVnX3JuZ2xpc3RzIDAgOiB7ICooLmRlYnVnX3JuZ2xpc3RzKSB9CiAgLmRlYnVnX3N0cl9vZmZzZXRzIDAgOiB7ICooLmRlYnVnX3N0cl9vZmZzZXRzKSB9CiAgLmRlYnVnX3N1cCAgICAgIDAgOiB7ICooLmRlYnVnX3N1cCkgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAALyogU2NyaXB0IGZvciAteiBjb21icmVsb2MgLXogc2VwYXJhdGUtY29kZSAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItbGl0dGxlYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FybXY3YS1jcm9zLWxpbnV4LWdudWVhYmloZi9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgUFJPVklERSAoX19leGVjdXRhYmxlX3N0YXJ0ID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHgwMDAxMDAwMCkpOyAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHgwMDAxMDAwMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCAgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5keW4gICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmluaXQpCiAgICAgICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsLmZpbmkpCiAgICAgICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikKICAgICAgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbC5jdG9ycykKICAgICAgKigucmVsLmR0b3JzKQogICAgICAqKC5yZWwuZ290KQogICAgICAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWwuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuID0gQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSk7CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKihTT1JUKC50ZXh0LnNvcnRlZC4qKSkKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC4gPSBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKTsKICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSByb2RhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IFNFR01FTlRfU1RBUlQoInJvZGF0YS1zZWdtZW50IiwgQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSkgKyAoLiAmIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpIC0gMSkpKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgIFBST1ZJREVfSElEREVOIChfX3RkYXRhX3N0YXJ0ID0gLik7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIC4gPSAuOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG8gbm90CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC47IF9fYnNzX2VuZF9fID0gLjsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC5nbnUuYnVpbGQuYXR0cmlidXRlcyA6IHsgKiguZ251LmJ1aWxkLmF0dHJpYnV0ZXMgLmdudS5idWlsZC5hdHRyaWJ1dGVzLiopIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEuICAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMi4gICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyLiAgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQpIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMy4gICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIDUuICAqLwogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmRlYnVnX2xpbmVfc3RyIDAgOiB7ICooLmRlYnVnX2xpbmVfc3RyKSB9CiAgLmRlYnVnX2xvY2xpc3RzIDAgOiB7ICooLmRlYnVnX2xvY2xpc3RzKSB9CiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX25hbWVzICAgIDAgOiB7ICooLmRlYnVnX25hbWVzKSB9CiAgLmRlYnVnX3JuZ2xpc3RzIDAgOiB7ICooLmRlYnVnX3JuZ2xpc3RzKSB9CiAgLmRlYnVnX3N0cl9vZmZzZXRzIDAgOiB7ICooLmRlYnVnX3N0cl9vZmZzZXRzKSB9CiAgLmRlYnVnX3N1cCAgICAgIDAgOiB7ICooLmRlYnVnX3N1cCkgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAALyogU2NyaXB0IGZvciAteiBjb21icmVsb2MgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hcm12N2EtY3Jvcy1saW51eC1nbnVlYWJpaGYvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4MDAwMTAwMDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4MDAwMTAwMDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuZHluICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5pbml0KQogICAgICAqKC5yZWwudGV4dCAucmVsLnRleHQuKiAucmVsLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbC5maW5pKQogICAgICAqKC5yZWwucm9kYXRhIC5yZWwucm9kYXRhLiogLnJlbC5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWwuZGF0YS5yZWwucm8gLnJlbC5kYXRhLnJlbC5yby4qIC5yZWwuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopCiAgICAgICooLnJlbC5kYXRhIC5yZWwuZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsLnRkYXRhIC5yZWwudGRhdGEuKiAucmVsLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWwuY3RvcnMpCiAgICAgICooLnJlbC5kdG9ycykKICAgICAgKigucmVsLmdvdCkKICAgICAgKigucmVsLmJzcyAucmVsLmJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLmIuKikKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbF9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKihTT1JUKC50ZXh0LnNvcnRlZC4qKSkKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAuQVJNLmV4aWR4ICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9zdGFydCA9IC4pOwogICAgICAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfZW5kID0gLik7CiAgICB9CiAgLmVoX2ZyYW1lX2hkciAgIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOgogICB7CiAgICAgUFJPVklERV9ISURERU4gKF9fdGRhdGFfc3RhcnQgPSAuKTsKICAgICAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopCiAgIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgLiA9IC47CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkbyBub3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLjsgX19ic3NfZW5kX18gPSAuOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC47CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLmdudS5idWlsZC5hdHRyaWJ1dGVzIDogeyAqKC5nbnUuYnVpbGQuYXR0cmlidXRlcyAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMuKikgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMS4gICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyLiAgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIuICAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzLiAgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgNS4gICovCiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZGVidWdfbGluZV9zdHIgMCA6IHsgKiguZGVidWdfbGluZV9zdHIpIH0KICAuZGVidWdfbG9jbGlzdHMgMCA6IHsgKiguZGVidWdfbG9jbGlzdHMpIH0KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfbmFtZXMgICAgMCA6IHsgKiguZGVidWdfbmFtZXMpIH0KICAuZGVidWdfcm5nbGlzdHMgMCA6IHsgKiguZGVidWdfcm5nbGlzdHMpIH0KICAuZGVidWdfc3RyX29mZnNldHMgMCA6IHsgKiguZGVidWdfc3RyX29mZnNldHMpIH0KICAuZGVidWdfc3VwICAgICAgMCA6IHsgKiguZGVidWdfc3VwKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAgIC0tdGh1bWItZW50cnk9PHN5bT4gICAgICAgICBTZXQgdGhlIGVudHJ5IHBvaW50IHRvIGJlIFRodW1iIHN5bWJvbCA8c3ltPgoAAAAAACAgLS1iZTggICAgICAgICAgICAgICAgICAgICAgIE91dHB1dCBCRTggZm9ybWF0IGltYWdlCgAAICAtLXRhcmdldDEtcmVsICAgICAgICAgICAgICAgSW50ZXJwcmV0IFJfQVJNX1RBUkdFVDEgYXMgUl9BUk1fUkVMMzIKAAAAICAtLXRhcmdldDEtYWJzICAgICAgICAgICAgICAgSW50ZXJwcmV0IFJfQVJNX1RBUkdFVDEgYXMgUl9BUk1fQUJTMzIKAAAAICAtLXRhcmdldDI9PHR5cGU+ICAgICAgICAgICAgU3BlY2lmeSBkZWZpbml0aW9uIG9mIFJfQVJNX1RBUkdFVDIKAAAAAAAAICAtLWZpeC12NGJ4ICAgICAgICAgICAgICAgICAgUmV3cml0ZSBCWCBybiBhcyBNT1YgcGMsIHJuIGZvciBBUk12NAoAAAAAICAtLWZpeC12NGJ4LWludGVyd29ya2luZyAgICAgUmV3cml0ZSBCWCBybiBicmFuY2ggdG8gQVJNdjQgaW50ZXJ3b3JraW5nIHZlbmVlcgoAAAAAAAAAACAgLS11c2UtYmx4ICAgICAgICAgICAgICAgICAgIEVuYWJsZSB1c2Ugb2YgQkxYIGluc3RydWN0aW9ucwoAAAAgIC0tdmZwMTEtZGVub3JtLWZpeCAgICAgICAgICBTcGVjaWZ5IGhvdyB0byBmaXggVkZQMTEgZGVub3JtIGVycmF0dW0KAAAgIC0tZml4LXN0bTMybDR4eC02MjkzNjAgICAgICBTcGVjaWZ5IGhvdyB0byBmaXggU1RNMzJMNFhYIDYyOTM2MCBlcnJhdHVtCgAAAAAAACAgLS1uby1lbnVtLXNpemUtd2FybmluZyAgICAgIERvbid0IHdhcm4gYWJvdXQgb2JqZWN0cyB3aXRoIGluY29tcGF0aWJsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gc2l6ZXMKAAAAACAgLS1uby13Y2hhci1zaXplLXdhcm5pbmcgICAgIERvbid0IHdhcm4gYWJvdXQgb2JqZWN0cyB3aXRoIGluY29tcGF0aWJsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdjaGFyX3Qgc2l6ZXMKACAgLS1waWMtdmVuZWVyICAgICAgICAgICAgICAgIEFsd2F5cyBnZW5lcmF0ZSBQSUMgaW50ZXJ3b3JraW5nIHZlbmVlcnMKACAgLS1sb25nLXBsdCAgICAgICAgICAgICAgICAgIEdlbmVyYXRlIGxvbmcgLnBsdCBlbnRyaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIGhhbmRsZSBsYXJnZSAucGx0Ly5nb3QgZGlzcGxhY2VtZW50cwoAICAtLWNtc2UtaW1wbGliICAgICAgICAgICAgICAgTWFrZSBpbXBvcnQgbGlicmFyeSB0byBiZSBhIHNlY3VyZSBnYXRld2F5IGltcG9ydAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnJhcnkgYXMgcGVyIEFSTXY4LU0gU2VjdXJpdHkgRXh0ZW5zaW9ucwoAAAAAACAgLS1pbi1pbXBsaWIgICAgICAgICAgICAgICAgIEltcG9ydCBsaWJyYXJ5IHdob3NlIHN5bWJvbHMgYWRkcmVzcyBtdXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluIHN0YWJsZQoAACAgLS1zdHViLWdyb3VwLXNpemU9TiAgICAgICAgIE1heGltdW0gc2l6ZSBvZiBhIGdyb3VwIG9mIGlucHV0IHNlY3Rpb25zIHRoYXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW4gYmUgaGFuZGxlZCBieSBvbmUgc3R1YiBzZWN0aW9uLiAgQSBuZWdhdGl2ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxvY2F0ZXMgYWxsIHN0dWJzIGFmdGVyIHRoZWlyIGJyYW5jaGVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpdGggYSBncm91cCBzaXplIG9mIC1OKSwgd2hpbGUgYSBwb3NpdGl2ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGFsbG93cyB0d28gZ3JvdXBzIG9mIGlucHV0IHNlY3Rpb25zLCBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmUsIGFuZCBvbmUgYWZ0ZXIgZWFjaCBzdHViIHNlY3Rpb24uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzIG9mICsvLTEgaW5kaWNhdGUgdGhlIGxpbmtlciBzaG91bGQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaG9vc2Ugc3VpdGFibGUgZGVmYXVsdHMuCgAAAAAAACAgLS1bbm8tXWZpeC1jb3J0ZXgtYTggICAgICAgIERpc2FibGUvZW5hYmxlIENvcnRleC1BOCBUaHVtYi0yIGJyYW5jaCBlcnJhdHVtIGZpeAoAAAAAAAAgIC0tbm8tbWVyZ2UtZXhpZHgtZW50cmllcyAgICBEaXNhYmxlIG1lcmdpbmcgZXhpZHggZW50cmllcwoAAAAAICAtLVtuby1dZml4LWFybTExNzYgICAgICAgICAgRGlzYWJsZS9lbmFibGUgQVJNMTE3NiBCTFggaW1tZWRpYXRlIGVycmF0dW0gZml4CgAlRiVQOiBpbnZhbGlkIC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnMgb3B0aW9uOiBgJXMnCgAAACVGJVA6IGludmFsaWQgaGFzaCBzdHlsZSBgJXMnCgAAJUYlUDogaW52YWxpZCBtYXhpbXVtIHBhZ2Ugc2l6ZSBgJXMnCgAAACVGJVA6IGludmFsaWQgY29tbW9uIHBhZ2Ugc2l6ZSBgJXMnCgAAAAAlRiVQOiBpbnZhbGlkIHN0YWNrIHNpemUgYCVzJwoAAHN0YXJ0LXN0b3AtdmlzaWJpbGl0eT1pbnRlcm5hbAAAc3RhcnQtc3RvcC12aXNpYmlsaXR5PXByb3RlY3RlZAAlRiVQOiBpbnZhbGlkIHZpc2liaWxpdHkgaW4gYC16ICVzJzsgbXVzdCBiZSBkZWZhdWx0LCBpbnRlcm5hbCwgaGlkZGVuLCBvciBwcm90ZWN0ZWQAAAAAJVA6IHVucmVjb2duaXplZCBWRlAxMSBmaXggdHlwZSAnJXMnCgAAACVQOiB1bnJlY29nbml6ZWQgU1RNMzJMNFhYIGZpeCB0eXBlICclcycKAAAAAAAAACVGJVA6IGVycm9yOiBjYW5ub3QgY2hhbmdlIG91dHB1dCBmb3JtYXQgd2hpbHN0IGxpbmtpbmcgJXMgYmluYXJpZXMKAAAAACVGJVA6ICVzOiBub3QgYSByZWxvY2F0YWJsZSBmaWxlOiAlRQoAAAAlWCVQOiBjYW4gbm90IGJ1aWxkIHN0dWJzOiAlRQoAACVQOiB3YXJuaW5nOiAnLS10aHVtYi1lbnRyeSAlcycgaXMgb3ZlcnJpZGluZyAnLWUgJXMnCgAAJVA6IHdhcm5pbmc6IGNhbm5vdCBmaW5kIHRodW1iIHN0YXJ0IHN5bWJvbCAlcwoAJVA6IGVycm9ycyBlbmNvdW50ZXJlZCBwcm9jZXNzaW5nIGZpbGUgJXMKAAAAAAAAJVglUDogLmVoX2ZyYW1lLy5zdGFiIGVkaXQ6ICVFCgAlWCVQOiBjb3VsZCBub3QgY29tcHV0ZSBzZWN0aW9ucyBsaXN0cyBmb3Igc3R1YiBnZW5lcmF0aW9uOiAlRQoAJVglUDogY2FuIG5vdCBzaXplIHN0dWIgc2VjdGlvbjogJUUKAAAAACVYJVA6IGNhbiBub3QgbWFrZSBzdHViIHNlY3Rpb246ICVFCgB6bGliAHpsaWItZ251AHpsaWItZ2FiaQBzeXN2AGJvdGgAdW5kZWZzAG11bGRlZnMAbWF4LXBhZ2Utc2l6ZT0AY29tbW9uLXBhZ2Utc2l6ZT0Ac3RhY2stc2l6ZT0Abm9leGVjc3RhY2sAbm91bmlxdWUtc3ltYm9sAGdsb2JhbGF1ZGl0AHN0YXJ0LXN0b3AtdmlzaWJpbGl0eT0Ac3RhcnQtc3RvcC12aXNpYmlsaXR5PWRlZmF1bHQAc3RhcnQtc3RvcC12aXNpYmlsaXR5PWhpZGRlbgBpbml0Zmlyc3QAaW50ZXJwb3NlAGxvYWRmbHRyAG5vZGVmYXVsdGxpYgBub2RlbGV0ZQBub2Rsb3BlbgBub2R1bXAAbGF6eQBvcmlnaW4Abm91bmlxdWUAbm9jb21icmVsb2MAbm9jb3B5cmVsb2MAbm9yZWxybwBub3NlcGFyYXRlLWNvZGUAbm9jb21tb24Abm90ZXh0AHRleHRvZmYAJVA6IHdhcm5pbmc6IC16ICVzIGlnbm9yZWQKAHNjYWxhcgB2ZWN0b3IAQVJNACVGJVA6ICVzOiBjYW4ndCBvcGVuOiAlRQoAbGlua2VyIHN0dWJzACVGJVA6IGNhbiBub3QgY3JlYXRlIEJGRDogJUUKAGVhcm1lbGZf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IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYXJtdjdhLWNyb3MtbGludXgtZ251ZWFiaWhmL2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkICA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmluaXQgICAgICAgOiB7ICooLnJlbC5pbml0KSB9CiAgLnJlbGEuaW5pdCAgICAgIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsLnRleHQgICAgICAgOiB7ICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWxhLnRleHQgICAgICA6IHsgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbC5maW5pICAgICAgIDogeyAqKC5yZWwuZmluaSkgfQogIC5yZWxhLmZpbmkgICAgICA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbC5yb2RhdGEgICAgIDogeyAqKC5yZWwucm9kYXRhIC5yZWwucm9kYXRhLiogLnJlbC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbGEucm9kYXRhICAgIDogeyAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbC5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWwuZGF0YS5yZWwucm8gLnJlbC5kYXRhLnJlbC5yby4qIC5yZWwuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsYS5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvIC5yZWxhLmRhdGEucmVsLnJvLiogLnJlbGEuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsLmRhdGEgICAgICAgOiB7ICooLnJlbC5kYXRhIC5yZWwuZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWxhLmRhdGEgICAgICA6IHsgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbC50ZGF0YQkgIDogeyAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsYS50ZGF0YQkgIDogeyAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsLnRic3MJICA6IHsgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWxhLnRic3MJICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWwuY3RvcnMgICAgICA6IHsgKigucmVsLmN0b3JzKSB9CiAgLnJlbGEuY3RvcnMgICAgIDogeyAqKC5yZWxhLmN0b3JzKSB9CiAgLnJlbC5kdG9ycyAgICAgIDogeyAqKC5yZWwuZHRvcnMpIH0KICAucmVsYS5kdG9ycyAgICAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsLmdvdCAgICAgICAgOiB7ICooLnJlbC5nb3QpIH0KICAucmVsYS5nb3QgICAgICAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbC5ic3MgICAgICAgIDogeyAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbGEuYnNzICAgICAgIDogeyAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbC5pcGx0ICAgICAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbF9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWxhLmlwbHQgICAgICA6CiAgICB7CiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC4gPSBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKTsKICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgICA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAgIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKFNPUlQoLnRleHQuc29ydGVkLiopKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgICAqKC5nbHVlXzd0KSAqKC5nbHVlXzcpICooLnZmcDExX3ZlbmVlcikgKigudjRfYngpCiAgfQogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9CiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLiA9IEFMSUdOKENPTlNUQU5UIChNQVhQQUdFU0laRSkpOwogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIHJvZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gU0VHTUVOVF9TVEFSVCgicm9kYXRhLXNlZ21lbnQiLCBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKSArICguICYgKENPTlNUQU5UIChNQVhQQUdFU0laRSkgLSAxKSkpOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAuQVJNLmV4aWR4ICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9zdGFydCA9IC4pOwogICAgICAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfZW5kID0gLik7CiAgICB9CiAgLmVoX2ZyYW1lX2hkciAgIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOgogICB7CiAgICAgUFJPVklERV9ISURERU4gKF9fdGRhdGFfc3RhcnQgPSAuKTsKICAgICAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopCiAgIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgLiA9IC47CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkbyBub3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLjsgX19ic3NfZW5kX18gPSAuOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC47CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLmdudS5idWlsZC5hdHRyaWJ1dGVzIDogeyAqKC5nbnUuYnVpbGQuYXR0cmlidXRlcyAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMuKikgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMS4gICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyLiAgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIuICAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzLiAgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgNS4gICovCiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZGVidWdfbGluZV9zdHIgMCA6IHsgKiguZGVidWdfbGluZV9zdHIpIH0KICAuZGVidWdfbG9jbGlzdHMgMCA6IHsgKiguZGVidWdfbG9jbGlzdHMpIH0KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfbmFtZXMgICAgMCA6IHsgKiguZGVidWdfbmFtZXMpIH0KICAuZGVidWdfcm5nbGlzdHMgMCA6IHsgKiguZGVidWdfcm5nbGlzdHMpIH0KICAuZGVidWdfc3RyX29mZnNldHMgMCA6IHsgKiguZGVidWdfc3RyX29mZnNldHMpIH0KICAuZGVidWdfc3VwICAgICAgMCA6IHsgKiguZGVidWdfc3VwKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAvKiBTY3JpcHQgZm9yIC1zaGFyZWQgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWJpZ2FybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hcm12N2EtY3Jvcy1saW51eC1nbnVlYWJpaGYvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5ub3RlLmdudS5idWlsZC1pZCAgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5pbml0ICAgICAgIDogeyAqKC5yZWwuaW5pdCkgfQogIC5yZWxhLmluaXQgICAgICA6IHsgKigucmVsYS5pbml0KSB9CiAgLnJlbC50ZXh0ICAgICAgIDogeyAqKC5yZWwudGV4dCAucmVsLnRleHQuKiAucmVsLmdudS5saW5rb25jZS50LiopIH0KICAucmVsYS50ZXh0ICAgICAgOiB7ICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWwuZmluaSAgICAgICA6IHsgKigucmVsLmZpbmkpIH0KICAucmVsYS5maW5pICAgICAgOiB7ICooLnJlbGEuZmluaSkgfQogIC5yZWwucm9kYXRhICAgICA6IHsgKigucmVsLnJvZGF0YSAucmVsLnJvZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yZWxhLnJvZGF0YSAgICA6IHsgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yZWwuZGF0YS5yZWwucm8gICA6IHsgKigucmVsLmRhdGEucmVsLnJvIC5yZWwuZGF0YS5yZWwucm8uKiAucmVsLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLnJlbGEuZGF0YS5yZWwucm8gICA6IHsgKigucmVsYS5kYXRhLnJlbC5ybyAucmVsYS5kYXRhLnJlbC5yby4qIC5yZWxhLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLnJlbC5kYXRhICAgICAgIDogeyAqKC5yZWwuZGF0YSAucmVsLmRhdGEuKiAucmVsLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsYS5kYXRhICAgICAgOiB7ICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWwudGRhdGEJICA6IHsgKigucmVsLnRkYXRhIC5yZWwudGRhdGEuKiAucmVsLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnJlbGEudGRhdGEJICA6IHsgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnJlbC50YnNzCSAgOiB7ICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopIH0KICAucmVsYS50YnNzCSAgOiB7ICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopIH0KICAucmVsLmN0b3JzICAgICAgOiB7ICooLnJlbC5jdG9ycykgfQogIC5yZWxhLmN0b3JzICAgICA6IHsgKigucmVsYS5jdG9ycykgfQogIC5yZWwuZHRvcnMgICAgICA6IHsgKigucmVsLmR0b3JzKSB9CiAgLnJlbGEuZHRvcnMgICAgIDogeyAqKC5yZWxhLmR0b3JzKSB9CiAgLnJlbC5nb3QgICAgICAgIDogeyAqKC5yZWwuZ290KSB9CiAgLnJlbGEuZ290ICAgICAgIDogeyAqKC5yZWxhLmdvdCkgfQogIC5yZWwuYnNzICAgICAgICA6IHsgKigucmVsLmJzcyAucmVsLmJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLmIuKikgfQogIC5yZWxhLmJzcyAgICAgICA6IHsgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikgfQogIC5yZWwuaXBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5pcGx0KQogICAgfQogIC5yZWxhLmlwbHQgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAgIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgICAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooU09SVCgudGV4dC5zb3J0ZWQuKikpCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikKICAgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgOgogIHsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICB9CiAgLmZpbmlfYXJyYXkgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgUFJPVklERSAoX2VkYXRhID0gLik7IFBST1ZJREUgKGVkYXRhID0gLik7CiAgLiA9IC47CiAgUFJPVklERSAoX19ic3Nfc3RhcnQgPSAuKTsKICBQUk9WSURFIChfX2Jzc19zdGFydF9fID0gLik7CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvIG5vdAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIFBST1ZJREUgKF9ic3NfZW5kX18gPSAuKTsgUFJPVklERSAoX19ic3NfZW5kX18gPSAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIFBST1ZJREUgKF9fZW5kX18gPSAuKTsKICBQUk9WSURFIChfZW5kID0gLik7IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLmdudS5idWlsZC5hdHRyaWJ1dGVzIDogeyAqKC5nbnUuYnVpbGQuYXR0cmlidXRlcyAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMuKikgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMS4gICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyLiAgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIuICAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzLiAgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgNS4gICovCiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZGVidWdfbGluZV9zdHIgMCA6IHsgKiguZGVidWdfbGluZV9zdHIpIH0KICAuZGVidWdfbG9jbGlzdHMgMCA6IHsgKiguZGVidWdfbG9jbGlzdHMpIH0KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfbmFtZXMgICAgMCA6IHsgKiguZGVidWdfbmFtZXMpIH0KICAuZGVidWdfcm5nbGlzdHMgMCA6IHsgKiguZGVidWdfcm5nbGlzdHMpIH0KICAuZGVidWdfc3RyX29mZnNldHMgMCA6IHsgKiguZGVidWdfc3RyX29mZnNldHMpIH0KICAuZGVidWdfc3VwICAgICAgMCA6IHsgKiguZGVidWdfc3VwKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAALyogU2NyaXB0IGZvciAtVXIgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWJpZ2FybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKIC8qIEZvciBzb21lIHJlYXNvbiwgdGhlIFNvbGFyaXMgbGlua2VyIG1ha2VzIGJhZCBleGVjdXRhYmxlcwogIGlmIGdsZCAtciBpcyB1c2VkIGFuZCB0aGUgaW50ZXJtZWRpYXRlIGZpbGUgaGFzIHNlY3Rpb25zIHN0YXJ0aW5nCiAgYXQgbm9uLXplcm8gYWRkcmVzc2VzLiAgQ291bGQgYmUgYSBTb2xhcmlzIGxkIGJ1ZywgY291bGQgYmUgYSBHTlUgbGQKICBidWcuICBCdXQgZm9yIG5vdyBhc3NpZ25pbmcgdGhlIHplcm8gdm1hcyB3b3Jrcy4gICovClNFQ1RJT05TCnsKICAuaW50ZXJwICAgICAgIDAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCAwOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAwIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAwIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgMCA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAwIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gIDAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgMDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgMDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5pbml0ICAgICAwIDogeyAqKC5yZWwuaW5pdCkgfQogIC5yZWxhLmluaXQgICAgMCA6IHsgKigucmVsYS5pbml0KSB9CiAgLnJlbC50ZXh0ICAgICAwIDogeyAqKC5yZWwudGV4dCkgfQogIC5yZWxhLnRleHQgICAgMCA6IHsgKigucmVsYS50ZXh0KSB9CiAgLnJlbC5maW5pICAgICAwIDogeyAqKC5yZWwuZmluaSkgfQogIC5yZWxhLmZpbmkgICAgMCA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbC5yb2RhdGEgICAwIDogeyAqKC5yZWwucm9kYXRhKSB9CiAgLnJlbGEucm9kYXRhICAwIDogeyAqKC5yZWxhLnJvZGF0YSkgfQogIC5yZWwuZGF0YS5yZWwucm8gMCA6IHsgKigucmVsLmRhdGEucmVsLnJvKSB9CiAgLnJlbGEuZGF0YS5yZWwucm8gMCA6IHsgKigucmVsYS5kYXRhLnJlbC5ybykgfQogIC5yZWwuZGF0YSAgICAgMCA6IHsgKigucmVsLmRhdGEpIH0KICAucmVsYS5kYXRhICAgIDAgOiB7ICooLnJlbGEuZGF0YSkgfQogIC5yZWwudGRhdGEJMCA6IHsgKigucmVsLnRkYXRhKSB9CiAgLnJlbGEudGRhdGEJMCA6IHsgKigucmVsYS50ZGF0YSkgfQogIC5yZWwudGJzcwkwIDogeyAqKC5yZWwudGJzcykgfQogIC5yZWxhLnRic3MJMCA6IHsgKigucmVsYS50YnNzKSB9CiAgLnJlbC5jdG9ycyAgICAwIDogeyAqKC5yZWwuY3RvcnMpIH0KICAucmVsYS5jdG9ycyAgIDAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsLmR0b3JzICAgIDAgOiB7ICooLnJlbC5kdG9ycykgfQogIC5yZWxhLmR0b3JzICAgMCA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWwuZ290ICAgICAgMCA6IHsgKigucmVsLmdvdCkgfQogIC5yZWxhLmdvdCAgICAgMCA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsLmJzcyAgICAgIDAgOiB7ICooLnJlbC5ic3MpIH0KICAucmVsYS5ic3MgICAgIDAgOiB7ICooLnJlbGEuYnNzKSB9CiAgLnJlbC5pcGx0ICAgICAwIDoKICAgIHsKICAgICAgKigucmVsLmlwbHQpCiAgICB9CiAgLnJlbGEuaXBsdCAgICAwIDoKICAgIHsKICAgICAgKigucmVsYS5pcGx0KQogICAgfQogIC5yZWwucGx0ICAgICAgMCA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAwIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAwIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgIDAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgMCA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgMCA6CiAgewogICAgKigudGV4dCAuc3R1YikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0KICAuZmluaSAgICAgICAgIDAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIC5yb2RhdGEgICAgICAgMCA6IHsgKigucm9kYXRhKSB9CiAgLnJvZGF0YTEgICAgICAwIDogeyAqKC5yb2RhdGExKSB9CiAgLkFSTS5leHRhYiAwIDogeyAqKC5BUk0uZXh0YWIpIH0KICAuQVJNLmV4aWR4IDAgOgogICAgewogICAgICAqKC5BUk0uZXhpZHgpCiAgICB9CiAgLmVoX2ZyYW1lX2hkciAwIDogeyAqKC5laF9mcmFtZV9oZHIpIH0KICAuZWhfZnJhbWUgICAgIDAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSB9CiAgLmdjY19leGNlcHRfdGFibGUgMCA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlKSB9CiAgLmdudV9leHRhYiAwIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgMCA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzKSB9CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgMCA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpIH0KICAuZ251X2V4dGFiICAgIDAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgMCA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgMCA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCTAgOgogICB7CiAgICAgKigudGRhdGEpCiAgIH0KICAudGJzcwkJMCA6IHsgKigudGJzcykgfQogIC5qY3IgICAgICAgICAgMCA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5keW5hbWljICAgICAgMCA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgMCA6IHsgKiguZ290KSB9CiAgLmRhdGEgICAgICAgICAwIDoKICB7CiAgICAqKC5kYXRhKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgMCA6IHsgKiguZGF0YTEpIH0KICAuYnNzICAgICAgICAgIDAgOgogIHsKICAgKiguYnNzKQogIH0KICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLmdudS5idWlsZC5hdHRyaWJ1dGVzIDogeyAqKC5nbnUuYnVpbGQuYXR0cmlidXRlcykgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMS4gICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyLiAgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIuICAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMuICAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiA1LiAgKi8KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5kZWJ1Z19saW5lX3N0ciAwIDogeyAqKC5kZWJ1Z19saW5lX3N0cikgfQogIC5kZWJ1Z19sb2NsaXN0cyAwIDogeyAqKC5kZWJ1Z19sb2NsaXN0cykgfQogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19uYW1lcyAgICAwIDogeyAqKC5kZWJ1Z19uYW1lcykgfQogIC5kZWJ1Z19ybmdsaXN0cyAwIDogeyAqKC5kZWJ1Z19ybmdsaXN0cykgfQogIC5kZWJ1Z19zdHJfb2Zmc2V0cyAwIDogeyAqKC5kZWJ1Z19zdHJfb2Zmc2V0cykgfQogIC5kZWJ1Z19zdXAgICAgICAwIDogeyAqKC5kZWJ1Z19zdXApIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9Cn0KCgAAAC8qIFNjcmlwdCBmb3IgLXIgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWJpZ2FybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKIC8qIEZvciBzb21lIHJlYXNvbiwgdGhlIFNvbGFyaXMgbGlua2VyIG1ha2VzIGJhZCBleGVjdXRhYmxlcwogIGlmIGdsZCAtciBpcyB1c2VkIGFuZCB0aGUgaW50ZXJtZWRpYXRlIGZpbGUgaGFzIHNlY3Rpb25zIHN0YXJ0aW5nCiAgYXQgbm9uLXplcm8gYWRkcmVzc2VzLiAgQ291bGQgYmUgYSBTb2xhcmlzIGxkIGJ1ZywgY291bGQgYmUgYSBHTlUgbGQKICBidWcuICBCdXQgZm9yIG5vdyBhc3NpZ25pbmcgdGhlIHplcm8gdm1hcyB3b3Jrcy4gICovClNFQ1RJT05TCnsKICAuaW50ZXJwICAgICAgIDAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCAwOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAwIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAwIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgMCA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAwIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gIDAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgMDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgMDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5pbml0ICAgICAwIDogeyAqKC5yZWwuaW5pdCkgfQogIC5yZWxhLmluaXQgICAgMCA6IHsgKigucmVsYS5pbml0KSB9CiAgLnJlbC50ZXh0ICAgICAwIDogeyAqKC5yZWwudGV4dCkgfQogIC5yZWxhLnRleHQgICAgMCA6IHsgKigucmVsYS50ZXh0KSB9CiAgLnJlbC5maW5pICAgICAwIDogeyAqKC5yZWwuZmluaSkgfQogIC5yZWxhLmZpbmkgICAgMCA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbC5yb2RhdGEgICAwIDogeyAqKC5yZWwucm9kYXRhKSB9CiAgLnJlbGEucm9kYXRhICAwIDogeyAqKC5yZWxhLnJvZGF0YSkgfQogIC5yZWwuZGF0YS5yZWwucm8gMCA6IHsgKigucmVsLmRhdGEucmVsLnJvKSB9CiAgLnJlbGEuZGF0YS5yZWwucm8gMCA6IHsgKigucmVsYS5kYXRhLnJlbC5ybykgfQogIC5yZWwuZGF0YSAgICAgMCA6IHsgKigucmVsLmRhdGEpIH0KICAucmVsYS5kYXRhICAgIDAgOiB7ICooLnJlbGEuZGF0YSkgfQogIC5yZWwudGRhdGEJMCA6IHsgKigucmVsLnRkYXRhKSB9CiAgLnJlbGEudGRhdGEJMCA6IHsgKigucmVsYS50ZGF0YSkgfQogIC5yZWwudGJzcwkwIDogeyAqKC5yZWwudGJzcykgfQogIC5yZWxhLnRic3MJMCA6IHsgKigucmVsYS50YnNzKSB9CiAgLnJlbC5jdG9ycyAgICAwIDogeyAqKC5yZWwuY3RvcnMpIH0KICAucmVsYS5jdG9ycyAgIDAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsLmR0b3JzICAgIDAgOiB7ICooLnJlbC5kdG9ycykgfQogIC5yZWxhLmR0b3JzICAgMCA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWwuZ290ICAgICAgMCA6IHsgKigucmVsLmdvdCkgfQogIC5yZWxhLmdvdCAgICAgMCA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsLmJzcyAgICAgIDAgOiB7ICooLnJlbC5ic3MpIH0KICAucmVsYS5ic3MgICAgIDAgOiB7ICooLnJlbGEuYnNzKSB9CiAgLnJlbC5pcGx0ICAgICAwIDoKICAgIHsKICAgICAgKigucmVsLmlwbHQpCiAgICB9CiAgLnJlbGEuaXBsdCAgICAwIDoKICAgIHsKICAgICAgKigucmVsYS5pcGx0KQogICAgfQogIC5yZWwucGx0ICAgICAgMCA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAwIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAwIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgIDAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgMCA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgMCA6CiAgewogICAgKigudGV4dCAuc3R1YikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0KICAuZmluaSAgICAgICAgIDAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIC5yb2RhdGEgICAgICAgMCA6IHsgKigucm9kYXRhKSB9CiAgLnJvZGF0YTEgICAgICAwIDogeyAqKC5yb2RhdGExKSB9CiAgLkFSTS5leHRhYiAwIDogeyAqKC5BUk0uZXh0YWIpIH0KICAuQVJNLmV4aWR4IDAgOgogICAgewogICAgICAqKC5BUk0uZXhpZHgpCiAgICB9CiAgLmVoX2ZyYW1lX2hkciAwIDogeyAqKC5laF9mcmFtZV9oZHIpIH0KICAuZWhfZnJhbWUgICAgIDAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSB9CiAgLmdjY19leGNlcHRfdGFibGUgMCA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlKSB9CiAgLmdudV9leHRhYiAwIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgMCA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzKSB9CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgMCA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpIH0KICAuZ251X2V4dGFiICAgIDAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgMCA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgMCA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCTAgOgogICB7CiAgICAgKigudGRhdGEpCiAgIH0KICAudGJzcwkJMCA6IHsgKigudGJzcykgfQogIC5qY3IgICAgICAgICAgMCA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5keW5hbWljICAgICAgMCA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgMCA6IHsgKiguZ290KSB9CiAgLmRhdGEgICAgICAgICAwIDoKICB7CiAgICAqKC5kYXRhKQogIH0KICAuZGF0YTEgICAgICAgIDAgOiB7ICooLmRhdGExKSB9CiAgLmJzcyAgICAgICAgICAwIDoKICB7CiAgICooLmJzcykKICB9CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC5nbnUuYnVpbGQuYXR0cmlidXRlcyA6IHsgKiguZ251LmJ1aWxkLmF0dHJpYnV0ZXMpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEuICAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMi4gICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyLiAgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbykgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzLiAgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgNS4gICovCiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZGVidWdfbGluZV9zdHIgMCA6IHsgKiguZGVidWdfbGluZV9zdHIpIH0KICAuZGVidWdfbG9jbGlzdHMgMCA6IHsgKiguZGVidWdfbG9jbGlzdHMpIH0KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfbmFtZXMgICAgMCA6IHsgKiguZGVidWdfbmFtZXMpIH0KICAuZGVidWdfcm5nbGlzdHMgMCA6IHsgKiguZGVidWdfcm5nbGlzdHMpIH0KICAuZGVidWdfc3RyX29mZnNldHMgMCA6IHsgKiguZGVidWdfc3RyX29mZnNldHMpIH0KICAuZGVidWdfc3VwICAgICAgMCA6IHsgKiguZGVidWdfc3VwKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQp9CgoAAAAvKiBTY3JpcHQgZm9yIC1OICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYXJtdjdhLWNyb3MtbGludXgtZ251ZWFiaWhmL2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkICA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmluaXQgICAgICAgOiB7ICooLnJlbC5pbml0KSB9CiAgLnJlbGEuaW5pdCAgICAgIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsLnRleHQgICAgICAgOiB7ICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWxhLnRleHQgICAgICA6IHsgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbC5maW5pICAgICAgIDogeyAqKC5yZWwuZmluaSkgfQogIC5yZWxhLmZpbmkgICAgICA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbC5yb2RhdGEgICAgIDogeyAqKC5yZWwucm9kYXRhIC5yZWwucm9kYXRhLiogLnJlbC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbGEucm9kYXRhICAgIDogeyAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbC5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWwuZGF0YS5yZWwucm8gLnJlbC5kYXRhLnJlbC5yby4qIC5yZWwuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsYS5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvIC5yZWxhLmRhdGEucmVsLnJvLiogLnJlbGEuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsLmRhdGEgICAgICAgOiB7ICooLnJlbC5kYXRhIC5yZWwuZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWxhLmRhdGEgICAgICA6IHsgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbC50ZGF0YQkgIDogeyAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsYS50ZGF0YQkgIDogeyAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsLnRic3MJICA6IHsgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWxhLnRic3MJICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWwuY3RvcnMgICAgICA6IHsgKigucmVsLmN0b3JzKSB9CiAgLnJlbGEuY3RvcnMgICAgIDogeyAqKC5yZWxhLmN0b3JzKSB9CiAgLnJlbC5kdG9ycyAgICAgIDogeyAqKC5yZWwuZHRvcnMpIH0KICAucmVsYS5kdG9ycyAgICAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsLmdvdCAgICAgICAgOiB7ICooLnJlbC5nb3QpIH0KICAucmVsYS5nb3QgICAgICAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbC5ic3MgICAgICAgIDogeyAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbGEuYnNzICAgICAgIDogeyAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbC5pcGx0ICAgICAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbF9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWxhLmlwbHQgICAgICA6CiAgICB7CiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAgIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgICAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooU09SVCgudGV4dC5zb3J0ZWQuKikpCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSAuOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgIFBST1ZJREVfSElEREVOIChfX3RkYXRhX3N0YXJ0ID0gLik7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgLiA9IC47CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkbyBub3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLjsgX19ic3NfZW5kX18gPSAuOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC47CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMgOiB7ICooLmdudS5idWlsZC5hdHRyaWJ1dGVzIC5nbnUuYnVpbGQuYXR0cmlidXRlcy4qKSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxLiAgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIuICAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMi4gICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMuICAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiA1LiAgKi8KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5kZWJ1Z19saW5lX3N0ciAwIDogeyAqKC5kZWJ1Z19saW5lX3N0cikgfQogIC5kZWJ1Z19sb2NsaXN0cyAwIDogeyAqKC5kZWJ1Z19sb2NsaXN0cykgfQogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19uYW1lcyAgICAwIDogeyAqKC5kZWJ1Z19uYW1lcykgfQogIC5kZWJ1Z19ybmdsaXN0cyAwIDogeyAqKC5kZWJ1Z19ybmdsaXN0cykgfQogIC5kZWJ1Z19zdHJfb2Zmc2V0cyAwIDogeyAqKC5kZWJ1Z19zdHJfb2Zmc2V0cykgfQogIC5kZWJ1Z19zdXAgICAgICAwIDogeyAqKC5kZWJ1Z19zdXApIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAvKiBTY3JpcHQgZm9yIC1uICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYXJtdjdhLWNyb3MtbGludXgtZ251ZWFiaWhmL2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkICA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmluaXQgICAgICAgOiB7ICooLnJlbC5pbml0KSB9CiAgLnJlbGEuaW5pdCAgICAgIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsLnRleHQgICAgICAgOiB7ICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWxhLnRleHQgICAgICA6IHsgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbC5maW5pICAgICAgIDogeyAqKC5yZWwuZmluaSkgfQogIC5yZWxhLmZpbmkgICAgICA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbC5yb2RhdGEgICAgIDogeyAqKC5yZWwucm9kYXRhIC5yZWwucm9kYXRhLiogLnJlbC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbGEucm9kYXRhICAgIDogeyAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbC5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWwuZGF0YS5yZWwucm8gLnJlbC5kYXRhLnJlbC5yby4qIC5yZWwuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsYS5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvIC5yZWxhLmRhdGEucmVsLnJvLiogLnJlbGEuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsLmRhdGEgICAgICAgOiB7ICooLnJlbC5kYXRhIC5yZWwuZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWxhLmRhdGEgICAgICA6IHsgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbC50ZGF0YQkgIDogeyAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsYS50ZGF0YQkgIDogeyAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsLnRic3MJICA6IHsgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWxhLnRic3MJICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWwuY3RvcnMgICAgICA6IHsgKigucmVsLmN0b3JzKSB9CiAgLnJlbGEuY3RvcnMgICAgIDogeyAqKC5yZWxhLmN0b3JzKSB9CiAgLnJlbC5kdG9ycyAgICAgIDogeyAqKC5yZWwuZHRvcnMpIH0KICAucmVsYS5kdG9ycyAgICAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsLmdvdCAgICAgICAgOiB7ICooLnJlbC5nb3QpIH0KICAucmVsYS5nb3QgICAgICAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbC5ic3MgICAgICAgIDogeyAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbGEuYnNzICAgICAgIDogeyAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbC5pcGx0ICAgICAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbF9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWxhLmlwbHQgICAgICA6CiAgICB7CiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAgIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgICAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooU09SVCgudGV4dC5zb3J0ZWQuKikpCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgIFBST1ZJREVfSElEREVOIChfX3RkYXRhX3N0YXJ0ID0gLik7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIC4gPSAuOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG8gbm90CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC47IF9fYnNzX2VuZF9fID0gLjsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC5nbnUuYnVpbGQuYXR0cmlidXRlcyA6IHsgKiguZ251LmJ1aWxkLmF0dHJpYnV0ZXMgLmdudS5idWlsZC5hdHRyaWJ1dGVzLiopIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEuICAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMi4gICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyLiAgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQpIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMy4gICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIDUuICAqLwogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmRlYnVnX2xpbmVfc3RyIDAgOiB7ICooLmRlYnVnX2xpbmVfc3RyKSB9CiAgLmRlYnVnX2xvY2xpc3RzIDAgOiB7ICooLmRlYnVnX2xvY2xpc3RzKSB9CiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX25hbWVzICAgIDAgOiB7ICooLmRlYnVnX25hbWVzKSB9CiAgLmRlYnVnX3JuZ2xpc3RzIDAgOiB7ICooLmRlYnVnX3JuZ2xpc3RzKSB9CiAgLmRlYnVnX3N0cl9vZmZzZXRzIDAgOiB7ICooLmRlYnVnX3N0cl9vZmZzZXRzKSB9CiAgLmRlYnVnX3N1cCAgICAgIDAgOiB7ICooLmRlYnVnX3N1cCkgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAALyogU2NyaXB0IGZvciAtcGllIC16IGNvbWJyZWxvYyAteiBzZXBhcmF0ZS1jb2RlIC16IHJlbHJvIC16IG5vdyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItYmlnYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FybXY3YS1jcm9zLWxpbnV4LWdudWVhYmloZi9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgUFJPVklERSAoX19leGVjdXRhYmxlX3N0YXJ0ID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkpOyAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCAgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5keW4gICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmluaXQpCiAgICAgICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsLmZpbmkpCiAgICAgICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikKICAgICAgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbC5jdG9ycykKICAgICAgKigucmVsLmR0b3JzKQogICAgICAqKC5yZWwuZ290KQogICAgICAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWwuaXBsdCkKICAgIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC4gPSBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKTsKICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgICA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAgIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKFNPUlQoLnRleHQuc29ydGVkLiopKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgICAqKC5nbHVlXzd0KSAqKC5nbHVlXzcpICooLnZmcDExX3ZlbmVlcikgKigudjRfYngpCiAgfQogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9CiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLiA9IEFMSUdOKENPTlNUQU5UIChNQVhQQUdFU0laRSkpOwogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIHJvZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gU0VHTUVOVF9TVEFSVCgicm9kYXRhLXNlZ21lbnQiLCBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKSArICguICYgKENPTlNUQU5UIChNQVhQQUdFU0laRSkgLSAxKSkpOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAuQVJNLmV4aWR4ICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9zdGFydCA9IC4pOwogICAgICAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfZW5kID0gLik7CiAgICB9CiAgLmVoX2ZyYW1lX2hkciAgIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOgogICB7CiAgICAgUFJPVklERV9ISURERU4gKF9fdGRhdGFfc3RhcnQgPSAuKTsKICAgICAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopCiAgIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgLiA9IC47CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkbyBub3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLjsgX19ic3NfZW5kX18gPSAuOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC47CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLmdudS5idWlsZC5hdHRyaWJ1dGVzIDogeyAqKC5nbnUuYnVpbGQuYXR0cmlidXRlcyAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMuKikgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMS4gICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyLiAgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIuICAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzLiAgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgNS4gICovCiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZGVidWdfbGluZV9zdHIgMCA6IHsgKiguZGVidWdfbGluZV9zdHIpIH0KICAuZGVidWdfbG9jbGlzdHMgMCA6IHsgKiguZGVidWdfbG9jbGlzdHMpIH0KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfbmFtZXMgICAgMCA6IHsgKiguZGVidWdfbmFtZXMpIH0KICAuZGVidWdfcm5nbGlzdHMgMCA6IHsgKiguZGVidWdfcm5nbGlzdHMpIH0KICAuZGVidWdfc3RyX29mZnNldHMgMCA6IHsgKiguZGVidWdfc3RyX29mZnNldHMpIH0KICAuZGVidWdfc3VwICAgICAgMCA6IHsgKiguZGVidWdfc3VwKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAAAC8qIFNjcmlwdCBmb3IgLXBpZSAteiBjb21icmVsb2MgLXogc2VwYXJhdGUtY29kZSAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItYmlnYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FybXY3YS1jcm9zLWxpbnV4LWdudWVhYmloZi9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgUFJPVklERSAoX19leGVjdXRhYmxlX3N0YXJ0ID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkpOyAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCAgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5keW4gICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmluaXQpCiAgICAgICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsLmZpbmkpCiAgICAgICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikKICAgICAgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbC5jdG9ycykKICAgICAgKigucmVsLmR0b3JzKQogICAgICAqKC5yZWwuZ290KQogICAgICAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWwuaXBsdCkKICAgIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC4gPSBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKTsKICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgICA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAgIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKFNPUlQoLnRleHQuc29ydGVkLiopKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgICAqKC5nbHVlXzd0KSAqKC5nbHVlXzcpICooLnZmcDExX3ZlbmVlcikgKigudjRfYngpCiAgfQogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9CiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLiA9IEFMSUdOKENPTlNUQU5UIChNQVhQQUdFU0laRSkpOwogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIHJvZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gU0VHTUVOVF9TVEFSVCgicm9kYXRhLXNlZ21lbnQiLCBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKSArICguICYgKENPTlNUQU5UIChNQVhQQUdFU0laRSkgLSAxKSkpOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAuQVJNLmV4aWR4ICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9zdGFydCA9IC4pOwogICAgICAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfZW5kID0gLik7CiAgICB9CiAgLmVoX2ZyYW1lX2hkciAgIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOgogICB7CiAgICAgUFJPVklERV9ISURERU4gKF9fdGRhdGFfc3RhcnQgPSAuKTsKICAgICAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopCiAgIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgLiA9IC47CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkbyBub3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLjsgX19ic3NfZW5kX18gPSAuOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC47CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLmdudS5idWlsZC5hdHRyaWJ1dGVzIDogeyAqKC5nbnUuYnVpbGQuYXR0cmlidXRlcyAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMuKikgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMS4gICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyLiAgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIuICAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzLiAgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgNS4gICovCiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZGVidWdfbGluZV9zdHIgMCA6IHsgKiguZGVidWdfbGluZV9zdHIpIH0KICAuZGVidWdfbG9jbGlzdHMgMCA6IHsgKiguZGVidWdfbG9jbGlzdHMpIH0KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfbmFtZXMgICAgMCA6IHsgKiguZGVidWdfbmFtZXMpIH0KICAuZGVidWdfcm5nbGlzdHMgMCA6IHsgKiguZGVidWdfcm5nbGlzdHMpIH0KICAuZGVidWdfc3RyX29mZnNldHMgMCA6IHsgKiguZGVidWdfc3RyX29mZnNldHMpIH0KICAuZGVidWdfc3VwICAgICAgMCA6IHsgKiguZGVidWdfc3VwKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAAAC8qIFNjcmlwdCBmb3IgLXBpZSAteiBjb21icmVsb2MgLXogcmVscm8gLXogbm93ICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYXJtdjdhLWNyb3MtbGludXgtZ251ZWFiaWhmL2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkICA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmR5biAgICAgICAgOgogICAgewogICAgICAqKC5yZWwuaW5pdCkKICAgICAgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWwuZmluaSkKICAgICAgKigucmVsLnJvZGF0YSAucmVsLnJvZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsLmRhdGEucmVsLnJvIC5yZWwuZGF0YS5yZWwucm8uKiAucmVsLmdudS5saW5rb25jZS5kLnJlbC5yby4qKQogICAgICAqKC5yZWwuZGF0YSAucmVsLmRhdGEuKiAucmVsLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsLmN0b3JzKQogICAgICAqKC5yZWwuZHRvcnMpCiAgICAgICooLnJlbC5nb3QpCiAgICAgICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbC5pcGx0KQogICAgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsYS5pcGx0KQogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKihTT1JUKC50ZXh0LnNvcnRlZC4qKSkKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAuQVJNLmV4aWR4ICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9zdGFydCA9IC4pOwogICAgICAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfZW5kID0gLik7CiAgICB9CiAgLmVoX2ZyYW1lX2hkciAgIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOgogICB7CiAgICAgUFJPVklERV9ISURERU4gKF9fdGRhdGFfc3RhcnQgPSAuKTsKICAgICAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopCiAgIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgLiA9IC47CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkbyBub3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLjsgX19ic3NfZW5kX18gPSAuOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC47CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLmdudS5idWlsZC5hdHRyaWJ1dGVzIDogeyAqKC5nbnUuYnVpbGQuYXR0cmlidXRlcyAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMuKikgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMS4gICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyLiAgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIuICAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzLiAgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgNS4gICovCiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZGVidWdfbGluZV9zdHIgMCA6IHsgKiguZGVidWdfbGluZV9zdHIpIH0KICAuZGVidWdfbG9jbGlzdHMgMCA6IHsgKiguZGVidWdfbG9jbGlzdHMpIH0KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfbmFtZXMgICAgMCA6IHsgKiguZGVidWdfbmFtZXMpIH0KICAuZGVidWdfcm5nbGlzdHMgMCA6IHsgKiguZGVidWdfcm5nbGlzdHMpIH0KICAuZGVidWdfc3RyX29mZnNldHMgMCA6IHsgKiguZGVidWdfc3RyX29mZnNldHMpIH0KICAuZGVidWdfc3VwICAgICAgMCA6IHsgKiguZGVidWdfc3VwKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAAAC8qIFNjcmlwdCBmb3IgLXBpZSAteiBjb21icmVsb2MgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWJpZ2FybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hcm12N2EtY3Jvcy1saW51eC1nbnVlYWJpaGYvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuZHluICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5pbml0KQogICAgICAqKC5yZWwudGV4dCAucmVsLnRleHQuKiAucmVsLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbC5maW5pKQogICAgICAqKC5yZWwucm9kYXRhIC5yZWwucm9kYXRhLiogLnJlbC5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWwuZGF0YS5yZWwucm8gLnJlbC5kYXRhLnJlbC5yby4qIC5yZWwuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopCiAgICAgICooLnJlbC5kYXRhIC5yZWwuZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsLnRkYXRhIC5yZWwudGRhdGEuKiAucmVsLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWwuY3RvcnMpCiAgICAgICooLnJlbC5kdG9ycykKICAgICAgKigucmVsLmdvdCkKICAgICAgKigucmVsLmJzcyAucmVsLmJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsLmlwbHQpCiAgICB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWxhLmlwbHQpCiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgICA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAgIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKFNPUlQoLnRleHQuc29ydGVkLiopKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgICAqKC5nbHVlXzd0KSAqKC5nbHVlXzcpICooLnZmcDExX3ZlbmVlcikgKigudjRfYngpCiAgfQogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9CiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLkFSTS5leHRhYiAgIDogeyAqKC5BUk0uZXh0YWIqIC5nbnUubGlua29uY2UuYXJtZXh0YWIuKikgfQogIC5BUk0uZXhpZHggICA6CiAgICB7CiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X3N0YXJ0ID0gLik7CiAgICAgICooLkFSTS5leGlkeCogLmdudS5saW5rb25jZS5hcm1leGlkeC4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9lbmQgPSAuKTsKICAgIH0KICAuZWhfZnJhbWVfaGRyICAgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6CiAgIHsKICAgICBQUk9WSURFX0hJRERFTiAoX190ZGF0YV9zdGFydCA9IC4pOwogICAgICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikKICAgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmluaXRfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICAuID0gLjsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvIG5vdAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuOyBfX2Jzc19lbmRfXyA9IC47CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICBfX2VuZF9fID0gLjsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMgOiB7ICooLmdudS5idWlsZC5hdHRyaWJ1dGVzIC5nbnUuYnVpbGQuYXR0cmlidXRlcy4qKSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxLiAgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIuICAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMi4gICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMuICAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiA1LiAgKi8KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5kZWJ1Z19saW5lX3N0ciAwIDogeyAqKC5kZWJ1Z19saW5lX3N0cikgfQogIC5kZWJ1Z19sb2NsaXN0cyAwIDogeyAqKC5kZWJ1Z19sb2NsaXN0cykgfQogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19uYW1lcyAgICAwIDogeyAqKC5kZWJ1Z19uYW1lcykgfQogIC5kZWJ1Z19ybmdsaXN0cyAwIDogeyAqKC5kZWJ1Z19ybmdsaXN0cykgfQogIC5kZWJ1Z19zdHJfb2Zmc2V0cyAwIDogeyAqKC5kZWJ1Z19zdHJfb2Zmc2V0cykgfQogIC5kZWJ1Z19zdXAgICAgICAwIDogeyAqKC5kZWJ1Z19zdXApIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAAAAAAAALyogU2NyaXB0IGZvciAtcGllIC16IHNlcGFyYXRlLWNvZGUgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWJpZ2FybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hcm12N2EtY3Jvcy1saW51eC1nbnVlYWJpaGYvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuaW5pdCAgICAgICA6IHsgKigucmVsLmluaXQpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWwudGV4dCAgICAgICA6IHsgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEudGV4dCAgICAgIDogeyAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopIH0KICAucmVsLmZpbmkgICAgICAgOiB7ICooLnJlbC5maW5pKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsLnJvZGF0YSAgICAgOiB7ICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWxhLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8gLnJlbGEuZGF0YS5yZWwucm8uKiAucmVsYS5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWwuZGF0YSAgICAgICA6IHsgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsLnRkYXRhCSAgOiB7ICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWwudGJzcwkgIDogeyAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbGEudGJzcwkgIDogeyAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbC5jdG9ycyAgICAgIDogeyAqKC5yZWwuY3RvcnMpIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsLmR0b3JzICAgICAgOiB7ICooLnJlbC5kdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWwuZ290ICAgICAgICA6IHsgKigucmVsLmdvdCkgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsLmJzcyAgICAgICAgOiB7ICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsLmlwbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWwuaXBsdCkKICAgIH0KICAucmVsYS5pcGx0ICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmlwbHQpCiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuID0gQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSk7CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKihTT1JUKC50ZXh0LnNvcnRlZC4qKSkKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC4gPSBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKTsKICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSByb2RhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IFNFR01FTlRfU1RBUlQoInJvZGF0YS1zZWdtZW50IiwgQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSkgKyAoLiAmIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpIC0gMSkpKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgIFBST1ZJREVfSElEREVOIChfX3RkYXRhX3N0YXJ0ID0gLik7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIC4gPSAuOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG8gbm90CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC47IF9fYnNzX2VuZF9fID0gLjsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC5nbnUuYnVpbGQuYXR0cmlidXRlcyA6IHsgKiguZ251LmJ1aWxkLmF0dHJpYnV0ZXMgLmdudS5idWlsZC5hdHRyaWJ1dGVzLiopIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEuICAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMi4gICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyLiAgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQpIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMy4gICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIDUuICAqLwogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmRlYnVnX2xpbmVfc3RyIDAgOiB7ICooLmRlYnVnX2xpbmVfc3RyKSB9CiAgLmRlYnVnX2xvY2xpc3RzIDAgOiB7ICooLmRlYnVnX2xvY2xpc3RzKSB9CiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX25hbWVzICAgIDAgOiB7ICooLmRlYnVnX25hbWVzKSB9CiAgLmRlYnVnX3JuZ2xpc3RzIDAgOiB7ICooLmRlYnVnX3JuZ2xpc3RzKSB9CiAgLmRlYnVnX3N0cl9vZmZzZXRzIDAgOiB7ICooLmRlYnVnX3N0cl9vZmZzZXRzKSB9CiAgLmRlYnVnX3N1cCAgICAgIDAgOiB7ICooLmRlYnVnX3N1cCkgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAvKiBTY3JpcHQgZm9yIC1waWUgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWJpZ2FybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hcm12N2EtY3Jvcy1saW51eC1nbnVlYWJpaGYvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuaW5pdCAgICAgICA6IHsgKigucmVsLmluaXQpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWwudGV4dCAgICAgICA6IHsgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEudGV4dCAgICAgIDogeyAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopIH0KICAucmVsLmZpbmkgICAgICAgOiB7ICooLnJlbC5maW5pKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsLnJvZGF0YSAgICAgOiB7ICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWxhLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8gLnJlbGEuZGF0YS5yZWwucm8uKiAucmVsYS5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWwuZGF0YSAgICAgICA6IHsgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsLnRkYXRhCSAgOiB7ICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWwudGJzcwkgIDogeyAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbGEudGJzcwkgIDogeyAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbC5jdG9ycyAgICAgIDogeyAqKC5yZWwuY3RvcnMpIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsLmR0b3JzICAgICAgOiB7ICooLnJlbC5kdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWwuZ290ICAgICAgICA6IHsgKigucmVsLmdvdCkgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsLmJzcyAgICAgICAgOiB7ICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsLmlwbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWwuaXBsdCkKICAgIH0KICAucmVsYS5pcGx0ICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmlwbHQpCiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgICA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAgIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKFNPUlQoLnRleHQuc29ydGVkLiopKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgICAqKC5nbHVlXzd0KSAqKC5nbHVlXzcpICooLnZmcDExX3ZlbmVlcikgKigudjRfYngpCiAgfQogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9CiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLkFSTS5leHRhYiAgIDogeyAqKC5BUk0uZXh0YWIqIC5nbnUubGlua29uY2UuYXJtZXh0YWIuKikgfQogIC5BUk0uZXhpZHggICA6CiAgICB7CiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X3N0YXJ0ID0gLik7CiAgICAgICooLkFSTS5leGlkeCogLmdudS5saW5rb25jZS5hcm1leGlkeC4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9lbmQgPSAuKTsKICAgIH0KICAuZWhfZnJhbWVfaGRyICAgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6CiAgIHsKICAgICBQUk9WSURFX0hJRERFTiAoX190ZGF0YV9zdGFydCA9IC4pOwogICAgICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikKICAgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmluaXRfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICAuID0gLjsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvIG5vdAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuOyBfX2Jzc19lbmRfXyA9IC47CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICBfX2VuZF9fID0gLjsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMgOiB7ICooLmdudS5idWlsZC5hdHRyaWJ1dGVzIC5nbnUuYnVpbGQuYXR0cmlidXRlcy4qKSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxLiAgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIuICAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMi4gICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMuICAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiA1LiAgKi8KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5kZWJ1Z19saW5lX3N0ciAwIDogeyAqKC5kZWJ1Z19saW5lX3N0cikgfQogIC5kZWJ1Z19sb2NsaXN0cyAwIDogeyAqKC5kZWJ1Z19sb2NsaXN0cykgfQogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19uYW1lcyAgICAwIDogeyAqKC5kZWJ1Z19uYW1lcykgfQogIC5kZWJ1Z19ybmdsaXN0cyAwIDogeyAqKC5kZWJ1Z19ybmdsaXN0cykgfQogIC5kZWJ1Z19zdHJfb2Zmc2V0cyAwIDogeyAqKC5kZWJ1Z19zdHJfb2Zmc2V0cykgfQogIC5kZWJ1Z19zdXAgICAgICAwIDogeyAqKC5kZWJ1Z19zdXApIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAAAALyogU2NyaXB0IGZvciAtc2hhcmVkIC16IGNvbWJyZWxvYyAteiBzZXBhcmF0ZS1jb2RlIC16IHJlbHJvIC16IG5vdyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItYmlnYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FybXY3YS1jcm9zLWxpbnV4LWdudWVhYmloZi9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLm5vdGUuZ251LmJ1aWxkLWlkICA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmR5biAgICAgICAgOgogICAgewogICAgICAqKC5yZWwuaW5pdCkKICAgICAgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWwuZmluaSkKICAgICAgKigucmVsLnJvZGF0YSAucmVsLnJvZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsLmRhdGEucmVsLnJvIC5yZWwuZGF0YS5yZWwucm8uKiAucmVsLmdudS5saW5rb25jZS5kLnJlbC5yby4qKQogICAgICAqKC5yZWwuZGF0YSAucmVsLmRhdGEuKiAucmVsLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsLmN0b3JzKQogICAgICAqKC5yZWwuZHRvcnMpCiAgICAgICooLnJlbC5nb3QpCiAgICAgICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbC5pcGx0KQogICAgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsYS5pcGx0KQogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLiA9IEFMSUdOKENPTlNUQU5UIChNQVhQQUdFU0laRSkpOwogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAgIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgICAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooU09SVCgudGV4dC5zb3J0ZWQuKikpCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAuID0gQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSk7CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgcm9kYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBTRUdNRU5UX1NUQVJUKCJyb2RhdGEtc2VnbWVudCIsIEFMSUdOKENPTlNUQU5UIChNQVhQQUdFU0laRSkpICsgKC4gJiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSAtIDEpKSk7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLkFSTS5leHRhYiAgIDogeyAqKC5BUk0uZXh0YWIqIC5nbnUubGlua29uY2UuYXJtZXh0YWIuKikgfQogIC5BUk0uZXhpZHggICA6CiAgICB7CiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X3N0YXJ0ID0gLik7CiAgICAgICooLkFSTS5leGlkeCogLmdudS5saW5rb25jZS5hcm1leGlkeC4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9lbmQgPSAuKTsKICAgIH0KICAuZWhfZnJhbWVfaGRyICAgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6CiAgIHsKICAgICAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopCiAgIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgIDoKICB7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICB9CiAgLmluaXRfYXJyYXkgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgfQogIC5maW5pX2FycmF5ICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIFBST1ZJREUgKF9lZGF0YSA9IC4pOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIC4gPSAuOwogIFBST1ZJREUgKF9fYnNzX3N0YXJ0ID0gLik7CiAgUFJPVklERSAoX19ic3Nfc3RhcnRfXyA9IC4pOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkbyBub3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBQUk9WSURFIChfYnNzX2VuZF9fID0gLik7IFBST1ZJREUgKF9fYnNzX2VuZF9fID0gLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICBQUk9WSURFIChfX2VuZF9fID0gLik7CiAgUFJPVklERSAoX2VuZCA9IC4pOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC5nbnUuYnVpbGQuYXR0cmlidXRlcyA6IHsgKiguZ251LmJ1aWxkLmF0dHJpYnV0ZXMgLmdudS5idWlsZC5hdHRyaWJ1dGVzLiopIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEuICAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMi4gICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyLiAgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQpIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMy4gICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIDUuICAqLwogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmRlYnVnX2xpbmVfc3RyIDAgOiB7ICooLmRlYnVnX2xpbmVfc3RyKSB9CiAgLmRlYnVnX2xvY2xpc3RzIDAgOiB7ICooLmRlYnVnX2xvY2xpc3RzKSB9CiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX25hbWVzICAgIDAgOiB7ICooLmRlYnVnX25hbWVzKSB9CiAgLmRlYnVnX3JuZ2xpc3RzIDAgOiB7ICooLmRlYnVnX3JuZ2xpc3RzKSB9CiAgLmRlYnVnX3N0cl9vZmZzZXRzIDAgOiB7ICooLmRlYnVnX3N0cl9vZmZzZXRzKSB9CiAgLmRlYnVnX3N1cCAgICAgIDAgOiB7ICooLmRlYnVnX3N1cCkgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAvKiBTY3JpcHQgZm9yIC1zaGFyZWQgLXogY29tYnJlbG9jIC16IHNlcGFyYXRlLWNvZGUgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWJpZ2FybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hcm12N2EtY3Jvcy1saW51eC1nbnVlYWJpaGYvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5ub3RlLmdudS5idWlsZC1pZCAgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5keW4gICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmluaXQpCiAgICAgICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsLmZpbmkpCiAgICAgICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikKICAgICAgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbC5jdG9ycykKICAgICAgKigucmVsLmR0b3JzKQogICAgICAqKC5yZWwuZ290KQogICAgICAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWwuaXBsdCkKICAgIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC4gPSBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKTsKICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgICA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAgIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKFNPUlQoLnRleHQuc29ydGVkLiopKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgICAqKC5nbHVlXzd0KSAqKC5nbHVlXzcpICooLnZmcDExX3ZlbmVlcikgKigudjRfYngpCiAgfQogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9CiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLiA9IEFMSUdOKENPTlNUQU5UIChNQVhQQUdFU0laRSkpOwogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIHJvZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gU0VHTUVOVF9TVEFSVCgicm9kYXRhLXNlZ21lbnQiLCBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKSArICguICYgKENPTlNUQU5UIChNQVhQQUdFU0laRSkgLSAxKSkpOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAuQVJNLmV4aWR4ICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9zdGFydCA9IC4pOwogICAgICAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfZW5kID0gLik7CiAgICB9CiAgLmVoX2ZyYW1lX2hkciAgIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOgogICB7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5pbml0X2FycmF5ICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogIH0KICAuZmluaV9hcnJheSAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBQUk9WSURFIChfZWRhdGEgPSAuKTsgUFJPVklERSAoZWRhdGEgPSAuKTsKICAuID0gLjsKICBQUk9WSURFIChfX2Jzc19zdGFydCA9IC4pOwogIFBST1ZJREUgKF9fYnNzX3N0YXJ0X18gPSAuKTsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG8gbm90CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgUFJPVklERSAoX2Jzc19lbmRfXyA9IC4pOyBQUk9WSURFIChfX2Jzc19lbmRfXyA9IC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgUFJPVklERSAoX19lbmRfXyA9IC4pOwogIFBST1ZJREUgKF9lbmQgPSAuKTsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMgOiB7ICooLmdudS5idWlsZC5hdHRyaWJ1dGVzIC5nbnUuYnVpbGQuYXR0cmlidXRlcy4qKSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxLiAgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIuICAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMi4gICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMuICAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiA1LiAgKi8KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5kZWJ1Z19saW5lX3N0ciAwIDogeyAqKC5kZWJ1Z19saW5lX3N0cikgfQogIC5kZWJ1Z19sb2NsaXN0cyAwIDogeyAqKC5kZWJ1Z19sb2NsaXN0cykgfQogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19uYW1lcyAgICAwIDogeyAqKC5kZWJ1Z19uYW1lcykgfQogIC5kZWJ1Z19ybmdsaXN0cyAwIDogeyAqKC5kZWJ1Z19ybmdsaXN0cykgfQogIC5kZWJ1Z19zdHJfb2Zmc2V0cyAwIDogeyAqKC5kZWJ1Z19zdHJfb2Zmc2V0cykgfQogIC5kZWJ1Z19zdXAgICAgICAwIDogeyAqKC5kZWJ1Z19zdXApIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAALyogU2NyaXB0IGZvciAtc2hhcmVkIC16IGNvbWJyZWxvYyAteiByZWxybyAteiBub3cgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWJpZ2FybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hcm12N2EtY3Jvcy1saW51eC1nbnVlYWJpaGYvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5ub3RlLmdudS5idWlsZC1pZCAgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5keW4gICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmluaXQpCiAgICAgICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsLmZpbmkpCiAgICAgICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikKICAgICAgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbC5jdG9ycykKICAgICAgKigucmVsLmR0b3JzKQogICAgICAqKC5yZWwuZ290KQogICAgICAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWwuaXBsdCkKICAgIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAgIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgICAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooU09SVCgudGV4dC5zb3J0ZWQuKikpCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikKICAgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgOgogIHsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICB9CiAgLmZpbmlfYXJyYXkgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgUFJPVklERSAoX2VkYXRhID0gLik7IFBST1ZJREUgKGVkYXRhID0gLik7CiAgLiA9IC47CiAgUFJPVklERSAoX19ic3Nfc3RhcnQgPSAuKTsKICBQUk9WSURFIChfX2Jzc19zdGFydF9fID0gLik7CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvIG5vdAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIFBST1ZJREUgKF9ic3NfZW5kX18gPSAuKTsgUFJPVklERSAoX19ic3NfZW5kX18gPSAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIFBST1ZJREUgKF9fZW5kX18gPSAuKTsKICBQUk9WSURFIChfZW5kID0gLik7IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLmdudS5idWlsZC5hdHRyaWJ1dGVzIDogeyAqKC5nbnUuYnVpbGQuYXR0cmlidXRlcyAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMuKikgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMS4gICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyLiAgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIuICAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzLiAgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgNS4gICovCiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZGVidWdfbGluZV9zdHIgMCA6IHsgKiguZGVidWdfbGluZV9zdHIpIH0KICAuZGVidWdfbG9jbGlzdHMgMCA6IHsgKiguZGVidWdfbG9jbGlzdHMpIH0KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfbmFtZXMgICAgMCA6IHsgKiguZGVidWdfbmFtZXMpIH0KICAuZGVidWdfcm5nbGlzdHMgMCA6IHsgKiguZGVidWdfcm5nbGlzdHMpIH0KICAuZGVidWdfc3RyX29mZnNldHMgMCA6IHsgKiguZGVidWdfc3RyX29mZnNldHMpIH0KICAuZGVidWdfc3VwICAgICAgMCA6IHsgKiguZGVidWdfc3VwKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAC8qIFNjcmlwdCBmb3IgLXNoYXJlZCAteiBjb21icmVsb2MgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWJpZ2FybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hcm12N2EtY3Jvcy1saW51eC1nbnVlYWJpaGYvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5ub3RlLmdudS5idWlsZC1pZCAgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5keW4gICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmluaXQpCiAgICAgICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsLmZpbmkpCiAgICAgICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikKICAgICAgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbC5jdG9ycykKICAgICAgKigucmVsLmR0b3JzKQogICAgICAqKC5yZWwuZ290KQogICAgICAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWwuaXBsdCkKICAgIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAgIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgICAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooU09SVCgudGV4dC5zb3J0ZWQuKikpCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikKICAgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgOgogIHsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICB9CiAgLmZpbmlfYXJyYXkgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgUFJPVklERSAoX2VkYXRhID0gLik7IFBST1ZJREUgKGVkYXRhID0gLik7CiAgLiA9IC47CiAgUFJPVklERSAoX19ic3Nfc3RhcnQgPSAuKTsKICBQUk9WSURFIChfX2Jzc19zdGFydF9fID0gLik7CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvIG5vdAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIFBST1ZJREUgKF9ic3NfZW5kX18gPSAuKTsgUFJPVklERSAoX19ic3NfZW5kX18gPSAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIFBST1ZJREUgKF9fZW5kX18gPSAuKTsKICBQUk9WSURFIChfZW5kID0gLik7IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLmdudS5idWlsZC5hdHRyaWJ1dGVzIDogeyAqKC5nbnUuYnVpbGQuYXR0cmlidXRlcyAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMuKikgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMS4gICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyLiAgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIuICAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzLiAgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgNS4gICovCiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZGVidWdfbGluZV9zdHIgMCA6IHsgKiguZGVidWdfbGluZV9zdHIpIH0KICAuZGVidWdfbG9jbGlzdHMgMCA6IHsgKiguZGVidWdfbG9jbGlzdHMpIH0KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfbmFtZXMgICAgMCA6IHsgKiguZGVidWdfbmFtZXMpIH0KICAuZGVidWdfcm5nbGlzdHMgMCA6IHsgKiguZGVidWdfcm5nbGlzdHMpIH0KICAuZGVidWdfc3RyX29mZnNldHMgMCA6IHsgKiguZGVidWdfc3RyX29mZnNldHMpIH0KICAuZGVidWdfc3VwICAgICAgMCA6IHsgKiguZGVidWdfc3VwKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAC8qIFNjcmlwdCBmb3IgLXNoYXJlZCAteiBzZXBhcmF0ZS1jb2RlICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYXJtdjdhLWNyb3MtbGludXgtZ251ZWFiaWhmL2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAubm90ZS5nbnUuYnVpbGQtaWQgIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuaW5pdCAgICAgICA6IHsgKigucmVsLmluaXQpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWwudGV4dCAgICAgICA6IHsgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEudGV4dCAgICAgIDogeyAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopIH0KICAucmVsLmZpbmkgICAgICAgOiB7ICooLnJlbC5maW5pKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsLnJvZGF0YSAgICAgOiB7ICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWxhLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8gLnJlbGEuZGF0YS5yZWwucm8uKiAucmVsYS5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWwuZGF0YSAgICAgICA6IHsgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsLnRkYXRhCSAgOiB7ICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWwudGJzcwkgIDogeyAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbGEudGJzcwkgIDogeyAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbC5jdG9ycyAgICAgIDogeyAqKC5yZWwuY3RvcnMpIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsLmR0b3JzICAgICAgOiB7ICooLnJlbC5kdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWwuZ290ICAgICAgICA6IHsgKigucmVsLmdvdCkgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsLmJzcyAgICAgICAgOiB7ICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsLmlwbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWwuaXBsdCkKICAgIH0KICAucmVsYS5pcGx0ICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmlwbHQpCiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuID0gQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSk7CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKihTT1JUKC50ZXh0LnNvcnRlZC4qKSkKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC4gPSBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKTsKICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSByb2RhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IFNFR01FTlRfU1RBUlQoInJvZGF0YS1zZWdtZW50IiwgQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSkgKyAoLiAmIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpIC0gMSkpKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikKICAgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgOgogIHsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICB9CiAgLmZpbmlfYXJyYXkgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgUFJPVklERSAoX2VkYXRhID0gLik7IFBST1ZJREUgKGVkYXRhID0gLik7CiAgLiA9IC47CiAgUFJPVklERSAoX19ic3Nfc3RhcnQgPSAuKTsKICBQUk9WSURFIChfX2Jzc19zdGFydF9fID0gLik7CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvIG5vdAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIFBST1ZJREUgKF9ic3NfZW5kX18gPSAuKTsgUFJPVklERSAoX19ic3NfZW5kX18gPSAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIFBST1ZJREUgKF9fZW5kX18gPSAuKTsKICBQUk9WSURFIChfZW5kID0gLik7IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLmdudS5idWlsZC5hdHRyaWJ1dGVzIDogeyAqKC5nbnUuYnVpbGQuYXR0cmlidXRlcyAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMuKikgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMS4gICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyLiAgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIuICAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzLiAgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgNS4gICovCiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZGVidWdfbGluZV9zdHIgMCA6IHsgKiguZGVidWdfbGluZV9zdHIpIH0KICAuZGVidWdfbG9jbGlzdHMgMCA6IHsgKiguZGVidWdfbG9jbGlzdHMpIH0KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfbmFtZXMgICAgMCA6IHsgKiguZGVidWdfbmFtZXMpIH0KICAuZGVidWdfcm5nbGlzdHMgMCA6IHsgKiguZGVidWdfcm5nbGlzdHMpIH0KICAuZGVidWdfc3RyX29mZnNldHMgMCA6IHsgKiguZGVidWdfc3RyX29mZnNldHMpIH0KICAuZGVidWdfc3VwICAgICAgMCA6IHsgKiguZGVidWdfc3VwKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAALyogU2NyaXB0IGZvciAteiBjb21icmVsb2MgLXogcmVscm8gLXogbm93ICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYXJtdjdhLWNyb3MtbGludXgtZ251ZWFiaWhmL2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkICA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmR5biAgICAgICAgOgogICAgewogICAgICAqKC5yZWwuaW5pdCkKICAgICAgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWwuZmluaSkKICAgICAgKigucmVsLnJvZGF0YSAucmVsLnJvZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsLmRhdGEucmVsLnJvIC5yZWwuZGF0YS5yZWwucm8uKiAucmVsLmdudS5saW5rb25jZS5kLnJlbC5yby4qKQogICAgICAqKC5yZWwuZGF0YSAucmVsLmRhdGEuKiAucmVsLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsLmN0b3JzKQogICAgICAqKC5yZWwuZHRvcnMpCiAgICAgICooLnJlbC5nb3QpCiAgICAgICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbF9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbC5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAgIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgICAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooU09SVCgudGV4dC5zb3J0ZWQuKikpCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgIFBST1ZJREVfSElEREVOIChfX3RkYXRhX3N0YXJ0ID0gLik7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIC4gPSAuOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG8gbm90CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC47IF9fYnNzX2VuZF9fID0gLjsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC5nbnUuYnVpbGQuYXR0cmlidXRlcyA6IHsgKiguZ251LmJ1aWxkLmF0dHJpYnV0ZXMgLmdudS5idWlsZC5hdHRyaWJ1dGVzLiopIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEuICAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMi4gICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyLiAgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQpIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMy4gICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIDUuICAqLwogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmRlYnVnX2xpbmVfc3RyIDAgOiB7ICooLmRlYnVnX2xpbmVfc3RyKSB9CiAgLmRlYnVnX2xvY2xpc3RzIDAgOiB7ICooLmRlYnVnX2xvY2xpc3RzKSB9CiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX25hbWVzICAgIDAgOiB7ICooLmRlYnVnX25hbWVzKSB9CiAgLmRlYnVnX3JuZ2xpc3RzIDAgOiB7ICooLmRlYnVnX3JuZ2xpc3RzKSB9CiAgLmRlYnVnX3N0cl9vZmZzZXRzIDAgOiB7ICooLmRlYnVnX3N0cl9vZmZzZXRzKSB9CiAgLmRlYnVnX3N1cCAgICAgIDAgOiB7ICooLmRlYnVnX3N1cCkgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAC8qIERlZmF1bHQgbGlua2VyIHNjcmlwdCwgZm9yIG5vcm1hbCBleGVjdXRhYmxlcyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItYmlnYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FybXY3YS1jcm9zLWxpbnV4LWdudWVhYmloZi9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgUFJPVklERSAoX19leGVjdXRhYmxlX3N0YXJ0ID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHgwMDAxMDAwMCkpOyAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHgwMDAxMDAwMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCAgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5pbml0ICAgICAgIDogeyAqKC5yZWwuaW5pdCkgfQogIC5yZWxhLmluaXQgICAgICA6IHsgKigucmVsYS5pbml0KSB9CiAgLnJlbC50ZXh0ICAgICAgIDogeyAqKC5yZWwudGV4dCAucmVsLnRleHQuKiAucmVsLmdudS5saW5rb25jZS50LiopIH0KICAucmVsYS50ZXh0ICAgICAgOiB7ICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWwuZmluaSAgICAgICA6IHsgKigucmVsLmZpbmkpIH0KICAucmVsYS5maW5pICAgICAgOiB7ICooLnJlbGEuZmluaSkgfQogIC5yZWwucm9kYXRhICAgICA6IHsgKigucmVsLnJvZGF0YSAucmVsLnJvZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yZWxhLnJvZGF0YSAgICA6IHsgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yZWwuZGF0YS5yZWwucm8gICA6IHsgKigucmVsLmRhdGEucmVsLnJvIC5yZWwuZGF0YS5yZWwucm8uKiAucmVsLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLnJlbGEuZGF0YS5yZWwucm8gICA6IHsgKigucmVsYS5kYXRhLnJlbC5ybyAucmVsYS5kYXRhLnJlbC5yby4qIC5yZWxhLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLnJlbC5kYXRhICAgICAgIDogeyAqKC5yZWwuZGF0YSAucmVsLmRhdGEuKiAucmVsLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsYS5kYXRhICAgICAgOiB7ICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWwudGRhdGEJICA6IHsgKigucmVsLnRkYXRhIC5yZWwudGRhdGEuKiAucmVsLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnJlbGEudGRhdGEJICA6IHsgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnJlbC50YnNzCSAgOiB7ICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopIH0KICAucmVsYS50YnNzCSAgOiB7ICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopIH0KICAucmVsLmN0b3JzICAgICAgOiB7ICooLnJlbC5jdG9ycykgfQogIC5yZWxhLmN0b3JzICAgICA6IHsgKigucmVsYS5jdG9ycykgfQogIC5yZWwuZHRvcnMgICAgICA6IHsgKigucmVsLmR0b3JzKSB9CiAgLnJlbGEuZHRvcnMgICAgIDogeyAqKC5yZWxhLmR0b3JzKSB9CiAgLnJlbC5nb3QgICAgICAgIDogeyAqKC5yZWwuZ290KSB9CiAgLnJlbGEuZ290ICAgICAgIDogeyAqKC5yZWxhLmdvdCkgfQogIC5yZWwuYnNzICAgICAgICA6IHsgKigucmVsLmJzcyAucmVsLmJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLmIuKikgfQogIC5yZWxhLmJzcyAgICAgICA6IHsgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikgfQogIC5yZWwuaXBsdCAgICAgICA6CiAgICB7CiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbF9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbC5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsYS5pcGx0ICAgICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgICA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAgIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKFNPUlQoLnRleHQuc29ydGVkLiopKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgICAqKC5nbHVlXzd0KSAqKC5nbHVlXzcpICooLnZmcDExX3ZlbmVlcikgKigudjRfYngpCiAgfQogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9CiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLkFSTS5leHRhYiAgIDogeyAqKC5BUk0uZXh0YWIqIC5nbnUubGlua29uY2UuYXJtZXh0YWIuKikgfQogIC5BUk0uZXhpZHggICA6CiAgICB7CiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X3N0YXJ0ID0gLik7CiAgICAgICooLkFSTS5leGlkeCogLmdudS5saW5rb25jZS5hcm1leGlkeC4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9lbmQgPSAuKTsKICAgIH0KICAuZWhfZnJhbWVfaGRyICAgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6CiAgIHsKICAgICBQUk9WSURFX0hJRERFTiAoX190ZGF0YV9zdGFydCA9IC4pOwogICAgICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikKICAgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmluaXRfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICAuID0gLjsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvIG5vdAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuOyBfX2Jzc19lbmRfXyA9IC47CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICBfX2VuZF9fID0gLjsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMgOiB7ICooLmdudS5idWlsZC5hdHRyaWJ1dGVzIC5nbnUuYnVpbGQuYXR0cmlidXRlcy4qKSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxLiAgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIuICAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMi4gICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMuICAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiA1LiAgKi8KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5kZWJ1Z19saW5lX3N0ciAwIDogeyAqKC5kZWJ1Z19saW5lX3N0cikgfQogIC5kZWJ1Z19sb2NsaXN0cyAwIDogeyAqKC5kZWJ1Z19sb2NsaXN0cykgfQogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19uYW1lcyAgICAwIDogeyAqKC5kZWJ1Z19uYW1lcykgfQogIC5kZWJ1Z19ybmdsaXN0cyAwIDogeyAqKC5kZWJ1Z19ybmdsaXN0cykgfQogIC5kZWJ1Z19zdHJfb2Zmc2V0cyAwIDogeyAqKC5kZWJ1Z19zdHJfb2Zmc2V0cykgfQogIC5kZWJ1Z19zdXAgICAgICAwIDogeyAqKC5kZWJ1Z19zdXApIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAC8qIFNjcmlwdCBmb3IgLXogY29tYnJlbG9jIC16IHNlcGFyYXRlLWNvZGUgLXogcmVscm8gLXogbm93ICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYXJtdjdhLWNyb3MtbGludXgtZ251ZWFiaWhmL2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkICA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmR5biAgICAgICAgOgogICAgewogICAgICAqKC5yZWwuaW5pdCkKICAgICAgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWwuZmluaSkKICAgICAgKigucmVsLnJvZGF0YSAucmVsLnJvZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsLmRhdGEucmVsLnJvIC5yZWwuZGF0YS5yZWwucm8uKiAucmVsLmdudS5saW5rb25jZS5kLnJlbC5yby4qKQogICAgICAqKC5yZWwuZGF0YSAucmVsLmRhdGEuKiAucmVsLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsLmN0b3JzKQogICAgICAqKC5yZWwuZHRvcnMpCiAgICAgICooLnJlbC5nb3QpCiAgICAgICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbF9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbC5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC4gPSBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKTsKICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgICA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAgIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKFNPUlQoLnRleHQuc29ydGVkLiopKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgICAqKC5nbHVlXzd0KSAqKC5nbHVlXzcpICooLnZmcDExX3ZlbmVlcikgKigudjRfYngpCiAgfQogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9CiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLiA9IEFMSUdOKENPTlNUQU5UIChNQVhQQUdFU0laRSkpOwogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIHJvZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gU0VHTUVOVF9TVEFSVCgicm9kYXRhLXNlZ21lbnQiLCBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKSArICguICYgKENPTlNUQU5UIChNQVhQQUdFU0laRSkgLSAxKSkpOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAuQVJNLmV4aWR4ICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9zdGFydCA9IC4pOwogICAgICAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfZW5kID0gLik7CiAgICB9CiAgLmVoX2ZyYW1lX2hkciAgIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOgogICB7CiAgICAgUFJPVklERV9ISURERU4gKF9fdGRhdGFfc3RhcnQgPSAuKTsKICAgICAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopCiAgIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgLiA9IC47CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkbyBub3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLjsgX19ic3NfZW5kX18gPSAuOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC47CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLmdudS5idWlsZC5hdHRyaWJ1dGVzIDogeyAqKC5nbnUuYnVpbGQuYXR0cmlidXRlcyAuZ251LmJ1aWxkLmF0dHJpYnV0ZXMuKikgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMS4gICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyLiAgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIuICAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMuICAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzLiAgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgNS4gICovCiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZGVidWdfbGluZV9zdHIgMCA6IHsgKiguZGVidWdfbGluZV9zdHIpIH0KICAuZGVidWdfbG9jbGlzdHMgMCA6IHsgKiguZGVidWdfbG9jbGlzdHMpIH0KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfbmFtZXMgICAgMCA6IHsgKiguZGVidWdfbmFtZXMpIH0KICAuZGVidWdfcm5nbGlzdHMgMCA6IHsgKiguZGVidWdfcm5nbGlzdHMpIH0KICAuZGVidWdfc3RyX29mZnNldHMgMCA6IHsgKiguZGVidWdfc3RyX29mZnNldHMpIH0KICAuZGVidWdfc3VwICAgICAgMCA6IHsgKiguZGVidWdfc3VwKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoALyogU2NyaXB0IGZvciAteiBjb21icmVsb2MgLXogc2VwYXJhdGUtY29kZSAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItYmlnYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FybXY3YS1jcm9zLWxpbnV4LWdudWVhYmloZi9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgUFJPVklERSAoX19leGVjdXRhYmxlX3N0YXJ0ID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHgwMDAxMDAwMCkpOyAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHgwMDAxMDAwMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCAgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5keW4gICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmluaXQpCiAgICAgICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsLmZpbmkpCiAgICAgICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikKICAgICAgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbC5jdG9ycykKICAgICAgKigucmVsLmR0b3JzKQogICAgICAqKC5yZWwuZ290KQogICAgICAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWwuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuID0gQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSk7CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKihTT1JUKC50ZXh0LnNvcnRlZC4qKSkKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC4gPSBBTElHTihDT05TVEFOVCAoTUFYUEFHRVNJWkUpKTsKICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSByb2RhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IFNFR01FTlRfU1RBUlQoInJvZGF0YS1zZWdtZW50IiwgQUxJR04oQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSkgKyAoLiAmIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpIC0gMSkpKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgIFBST1ZJREVfSElEREVOIChfX3RkYXRhX3N0YXJ0ID0gLik7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIC4gPSAuOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG8gbm90CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC47IF9fYnNzX2VuZF9fID0gLjsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC5nbnUuYnVpbGQuYXR0cmlidXRlcyA6IHsgKiguZ251LmJ1aWxkLmF0dHJpYnV0ZXMgLmdudS5idWlsZC5hdHRyaWJ1dGVzLiopIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEuICAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMi4gICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyLiAgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQpIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMy4gICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIDUuICAqLwogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmRlYnVnX2xpbmVfc3RyIDAgOiB7ICooLmRlYnVnX2xpbmVfc3RyKSB9CiAgLmRlYnVnX2xvY2xpc3RzIDAgOiB7ICooLmRlYnVnX2xvY2xpc3RzKSB9CiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX25hbWVzICAgIDAgOiB7ICooLmRlYnVnX25hbWVzKSB9CiAgLmRlYnVnX3JuZ2xpc3RzIDAgOiB7ICooLmRlYnVnX3JuZ2xpc3RzKSB9CiAgLmRlYnVnX3N0cl9vZmZzZXRzIDAgOiB7ICooLmRlYnVnX3N0cl9vZmZzZXRzKSB9CiAgLmRlYnVnX3N1cCAgICAgIDAgOiB7ICooLmRlYnVnX3N1cCkgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAC8qIFNjcmlwdCBmb3IgLXogY29tYnJlbG9jICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYXJtdjdhLWNyb3MtbGludXgtZ251ZWFiaWhmL2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkICA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmR5biAgICAgICAgOgogICAgewogICAgICAqKC5yZWwuaW5pdCkKICAgICAgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWwuZmluaSkKICAgICAgKigucmVsLnJvZGF0YSAucmVsLnJvZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsLmRhdGEucmVsLnJvIC5yZWwuZGF0YS5yZWwucm8uKiAucmVsLmdudS5saW5rb25jZS5kLnJlbC5yby4qKQogICAgICAqKC5yZWwuZGF0YSAucmVsLmRhdGEuKiAucmVsLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsLmN0b3JzKQogICAgICAqKC5yZWwuZHRvcnMpCiAgICAgICooLnJlbC5nb3QpCiAgICAgICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbF9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbC5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAgIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgICAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooU09SVCgudGV4dC5zb3J0ZWQuKikpCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgLkFSTS5leGlkeCAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAgICAgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogICAgfQogIC5laF9mcmFtZV9oZHIgICA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDoKICAgewogICAgIFBST1ZJREVfSElEREVOIChfX3RkYXRhX3N0YXJ0ID0gLik7CiAgICAgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKQogICB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIC4gPSAuOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG8gbm90CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC47IF9fYnNzX2VuZF9fID0gLjsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC5nbnUuYnVpbGQuYXR0cmlidXRlcyA6IHsgKiguZ251LmJ1aWxkLmF0dHJpYnV0ZXMgLmdudS5idWlsZC5hdHRyaWJ1dGVzLiopIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEuICAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucy4gICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMi4gICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyLiAgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQpIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zLiAgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMy4gICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICoo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AAAAAD4BAAAAAAAArf9HAAAAAAAAAAAAAAAAAAAAAAAAAAAAPwEAAAAAAAC2/0cAAAAAAAAAAAAAAAAAAAAAAAAAAABBAQAAAAAAAML/RwAAAAAAAQAAAAAAAAAAAAAAAAAAAEIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwejpQOgBpbmNsdWRlAGxpYmMuc28AZm91bmQgJXMgYXQgJXMKAGxpYjY0AFJJR0lOfQBJQn0AbGRlbGYuYwAlLipzJXMvJXMAJS4qcyVzACVQOiAlcEI6IGJmZF9zdGF0IGZhaWxlZDogJUUKAC5zby4ALm5vdGUuZ251LmJ1aWxkLWlkAC5ub3RlLkdOVS1zdGFjawAuZWhfZnJhbWVfZW50cnkALmVoX2ZyYW1lAC5laF9mcmFtZV9oZHIAJXMgbmVlZGVkIGJ5ICVwQgoATERfTElCUkFSWV9QQVRIAExEX1JVTl9QQVRIAC92YXIvcnVuL2xkLWVsZi5zby5oaW50cwAvZXRjL2xkLnNvLmNvbmYAX19laGRyX3N0YXJ0AC5nbnUud2FybmluZwAlcy9saWIlcyVzLnNvAC5yZWxhLmR5bgAubWJpbmQucm9kYXRhAC5tYmluZC5ic3MALm1iaW5kLmRhdGEALm1iaW5kLnRleHQALnJlbC5keW4ALnJlbAAuZ251Lndhcm5pbmcuAC5ub3RlAC5wbHQALnRkYXRhAC5pbnRlcnAALnNkYXRhAC5jb21tZW50AAAAJUYlUDogJXBCOiBiZmRfZWxmX2dldF9iZmRfbmVlZGVkX2xpc3QgZmFpbGVkOiAlRQoAAAAAAAAlRiVQOiAlcEI6IGJmZF9zdGF0IGZhaWxlZDogJUUKAHVucmVjb2duaXNlZCBvciB1bnN1cHBvcnRlZCB0b2tlbiAnJXMnIGluIHNlYXJjaCBwYXRoCgAAJVA6IHdhcm5pbmc6ICVzLCBuZWVkZWQgYnkgJXBCLCBtYXkgY29uZmxpY3Qgd2l0aCAlcwoAAAAlUDogd2FybmluZzogLm5vdGUuZ251LmJ1aWxkLWlkIHNlY3Rpb24gZGlzY2FyZGVkLCAtLWJ1aWxkLWlkIGlnbm9yZWQKAAAlRiVQOiBmYWlsZWQgdG8gcmVjb3JkIGFzc2lnbm1lbnQgdG8gJXM6ICVFCgAAAAAlUDogd2FybmluZzogLXogZHluYW1pYy11bmRlZmluZWQtd2VhayBpZ25vcmVkCgAlRiVQOiAlcEI6IC0tanVzdC1zeW1ib2xzIG1heSBub3QgYmUgdXNlZCBvbiBEU08KAAAAAAAAACVQOiB3YXJuaW5nOiB1bnJlY29nbml6ZWQgLS1idWlsZC1pZCBzdHlsZSBpZ25vcmVkCgAAAAAAJVA6IHdhcm5pbmc6IGNhbm5vdCBjcmVhdGUgLm5vdGUuZ251LmJ1aWxkLWlkIHNlY3Rpb24sIC0tYnVpbGQtaWQgaWdub3JlZAoAAAAAAAAlRiVQOiAlczogY2FuJ3Qgb3BlbiBmb3Igd3JpdGluZzogJUUKAAAAJUYlUDogY2Fubm90IHVzZSBleGVjdXRhYmxlIGZpbGUgJyVwQicgYXMgaW5wdXQgdG8gYSBsaW5rCgAAAAAAACVGJVA6IGNvbXBhY3QgZnJhbWUgZGVzY3JpcHRpb25zIGluY29tcGF0aWJsZSB3aXRoIERXQVJGMiAuZWhfZnJhbWUgZnJvbSAlcEIKAAAAJVA6IHdhcm5pbmc6IGNhbm5vdCBjcmVhdGUgLmVoX2ZyYW1lX2hkciBzZWN0aW9uLCAtLWVoLWZyYW1lLWhkciBpZ25vcmVkCgAAAAAAAAAlRiVQOiBmYWlsZWQgdG8gYWRkIERUX05FRURFRCBkeW5hbWljIHRhZwoAAAAAAAAlRiVQOiBmYWlsZWQgdG8gcGFyc2UgRUggZnJhbWUgZW50cmllcwoAJVA6IHdhcm5pbmc6ICVzLCBuZWVkZWQgYnkgJXBCLCBub3QgZm91bmQgKHRyeSB1c2luZyAtcnBhdGggb3IgLXJwYXRoLWxpbmspCgAAAAAlRiVQOiBmYWlsZWQgdG8gc2V0IGR5bmFtaWMgc2VjdGlvbiBzaXplczogJUUKAAAlRiVQOiAlcEI6IGNhbid0IHJlYWQgY29udGVudHMgb2Ygc2VjdGlvbiAuZ251Lndhcm5pbmc6ICVFCgAAAAAAwMdCAAAAAACgx0IAAAAAAJDHQgAAAAAAmsdCAAAAAADYx0IAAAAAAEDHQgAAAAAAQMdCAAAAAAAAAAAAAAAAAGxkZWxmX3NlYXJjaF9uZWVkZWQAAAAAACVGJVA6IG1hcCBzZWN0aW9ucyB0byBzZWdtZW50cyBmYWlsZWQ6ICVFCgAAAAAAACVGJVA6IGZhaWxlZCB0byBzdHJpcCB6ZXJvLXNpemVkIGR5bmFtaWMgc2VjdGlvbnMAAAAAAAAAJUYlUDogd2FybmluZzogQ1RGIHN0cnRhYiBhc3NvY2lhdGlvbiBmYWlsZWQ7IHN0cmluZ3Mgd2lsbCBub3QgYmUgc2hhcmVkOiAlcwoAAAAlRiVQOiB3YXJuaW5nOiBDVEYgc3ltYm9sIGFkZGl0aW9uIGZhaWxlZDsgQ1RGIHdpbGwgbm90IGJlIHRpZWQgdG8gc3ltYm9sczogJXMKACVGJVA6IHdhcm5pbmc6IENURiBzeW1ib2wgc2h1ZmZsaW5nIGZhaWxlZDsgQ1RGIHdpbGwgbm90IGJlIHRpZWQgdG8gc3ltYm9sczogJXMKACVGJVA6IGxvb3BpbmcgaW4gbWFwX3NlZ21lbnRzAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiAAAAAAAAJXM6IGVycm9yOiB0b28gbWFueSBALWZpbGVzIGVuY291bnRlcmVkCgAAAAAAAAAAJXM6IGVycm9yOiBALWZpbGUgcmVmZXJzIHRvIGEgZGlyZWN0b3J5CgBwZXhfZ2V0X3N0YXR1cyBmYWlsZWQAY2xvc2UAZHVwMgB2Zm9yawBleGVjdnAAZXhlY3YAOiBlcnJvciB0cnlpbmcgdG8gZXhlYyAnACc6IAB3YWl0AFhYWFhYWABjbG9zaW5nIHBpcGVsaW5lIGlucHV0IGZpbGUAb3BlbiB0ZW1wb3JhcnkgZmlsZQBwaXBlbGluZSBhbHJlYWR5IGNvbXBsZXRlAHBpcGUAb3BlbiB0ZW1wb3Jhcnkgb3V0cHV0IGZpbGUAb3BlbiBlcnJvciBmaWxlAHdiAHJiAAAAY291bGQgbm90IGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZQBib3RoIEVSUk5BTUUgYW5kIFBFWF9TVERFUlJfVE9fUElQRSBzcGVjaWZpZWQuAABQRVhfU1RERVJSX1RPX1BJUEUgdXNlZCBpbiB0aGUgbWlkZGxlIG9mIHBpcGVsaW5lAC90bXAAVE1QRElSAFRNUABURU1QAGNjAAAAAAAAAENhbm5vdCBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUgaW4gJXM6ICVzCgAvdmFyL3RtcAAAAAAAAAAAL3Vzci90bXAAL3RtcAAAAAEbAzu8DwAA9gEAANga9f8IEAAA6Cr1/7wSAADyKvX/8BYAAPoq9f+sNgAALSv1/yhGAAA3K/X/XEgAADwr9f/ISQAARiv1/0RMAABQK/X/rFUAAGsr9f8EVgAAcCv1/3haAAB4K/X/lDQAAHg59f/YDwAAWDr1/zAQAADIOvX/VBAAAFg79f98EAAA6Dv1/6gQAACYYvX/2BAAAKhj9f8EEQAAeGT1/zARAACoZPX/TBEAAGhl9f+AEQAAGGb1/6QRAACYZvX/0BEAABhn9f/kEQAAmGf1/wwSAAAIaPX/OBIAAMho9f9kEgAACGz1/9ASAADYbPX/+BIAAFht9f8gEwAA6IP1/1ATAACohPX/dBMAADiF9f+cEwAA2IX1/8wTAABYhvX/+BMAAIiG9f8YFAAAmIb1/ywUAACohvX/QBQAALiG9f9UFAAAyIb1/2gUAADYhvX/fBQAAOiG9f+QFAAA+Ib1/6QUAAAIh/X/uBQAABiH9f/MFAAAKIf1/+AUAADYh/X/BBUAAOiH9f8YFQAA+If1/ywVAAAIiPX/QBUAAPiI9f9sFQAAKIr1/5gVAABYivX/rBUAAIiK9f/AFQAAuIr1/9QVAADoivX/6BUAABiL9f/8FQAASIv1/xAWAAB4i/X/JBYAAKiL9f84FgAAyIv1/0wWAADoi/X/YBYAAOiM9f+MFgAA6Lv1/8gWAAAIvPX/3BYAAMi89f8EFwAA6Lz1/xgXAAAovfX/LBcAAGi99f9AFwAAeL31/1QXAACYvfX/aBcAAAi+9f+MFwAA6L71/8QXAADYv/X/7BcAAPi/9f8MGAAAGMD1/ywYAABIwfX/eBgAANjB9f+gGAAAaML1/8gYAACIxfX/ABkAAJjG9f8wGQAAWMf1/2QZAADIyPX/mBkAANjI9f+sGQAAaMn1/9AZAACYzPX/ABoAAPjM9f8UGgAAeM31/ygaAADIzfX/PBoAAEjO9f9QGgAAWM/1/3gaAACo0fX/tBoAAMjR9f/QGgAA6NH1/+waAAAo1vX/GBsAAGjh9f+IGwAAqOH1/5wbAAB44vX/yBsAADjj9f/4GwAAGOT1/ygcAABo5PX/UBwAAGjl9f+IHAAAGOf1/7QcAAA46PX/5BwAADjp9f8UHQAAOOr1/0wdAAAI6/X/gB0AAAjs9f+sHQAA6Oz1/9gdAAAo7vX/DB4AAPju9f9IHgAAmPD1/3weAACo8vX/tB4AAGjz9f/YHgAAiPX1/wgfAAD49vX/MB8AAMj39f9gHwAAiPj1/5AfAACY+PX/pB8AAKj49f+4HwAA6Pj1/9QfAAAY+fX/8B8AAOj59f8gIAAA+Pn1/zQgAABo+/X/aCAAACj89f+cIAAAKAz2/8ggAACYDfb/+CAAAKgN9v8MIQAAOA/2/zwhAABYEPb/YCEAAAgR9v+MIQAASBL2/7ghAADYFfb/8CEAAGgW9v8gIgAA2Bv2/1AiAAAIH/b/fCIAAOgi9v/EIgAAaCX2/wQjAADIJfb/LCMAAHgm9v9cIwAAKCf2/4AjAAAIKvb/sCMAABgq9v/EIwAAOCr2/9gjAABoKvb/ACQAAMgq9v8sJAAASCv2/1AkAACoK/b/ZCQAADgs9v+QJAAA2Cz2/7gkAADYLfb/8CQAABgu9v8EJQAAaC72/yQlAAC4L/b/OCUAAMgw9v9oJQAACDH2/4wlAABIMfb/sCUAAAgy9v/UJQAA6Db2/wQmAAA4N/b/NCYAACg49v9oJgAAmDn2/6QmAAAYOvb/0CYAAMg69v8IJwAAWDv2/zgnAAA4Pvb/eCcAABhC9v/kJwAAOEL2//gnAABoQ/b/KCgAALhD9v9IKAAAOET2/1woAACoRfb/gCgAAPhH9v+4KAAAeEj2/+QoAAAYSvb/FCkAAGhK9v84KQAA+E32/2gpAABYTvb/lCkAAIhO9v+oKQAAmE72/7wpAADYTvb/4CkAAPhO9v/0KQAAOE/2/xgqAACIT/b/QCoAABhQ9v9wKgAAWFD2/5QqAACYUPb/uCoAAOhQ9v/cKgAA+FD2//AqAAB4Ufb/GCsAAChZ9v9IKwAAeFn2/1wrAADYWfb/hCsAAFha9v+oKwAAiFr2/8QrAADIW/b/9CsAAAhc9v8ULAAASFz2/zQsAACoXPb/XCwAAHhd9v+ILAAAKF/2/7QsAAAYYfb/5CwAAPhi9v8ULQAAOGP2/zgtAAB4Z/b/cC0AAKiJ9v+wLQAASIr2/+AtAAC4ivb/DC4AABiL9v84LgAAqIv2/2AuAAA4jPb/iC4AABiN9v+0LgAAKI72/9guAADYjvb/CC8AAPiO9v8cLwAAGI/2/zAvAAAoj/b/RC8AAGiS9v+MLwAAiJL2/6AvAACokvb/tC8AAAiT9v/YLwAAGJP2/+wvAAB4k/b/FDAAAJiT9v80MAAAuJP2/0gwAADYk/b/XDAAAOiT9v9wMAAAaJT2/5AwAADYlPb/uDAAAFiW9v/wMAAAmJv2/0gxAACom/b/XDEAAMib9v9wMQAAGJz2/5wxAABonPb/yDEAADid9v/4MQAAOJ/2/0wyAAC4n/b/eDIAACih9v+8MgAASKX2//QyAACIpfb/GDMAAPil9v88MwAAqKf2/3QzAAAYqfb/qDMAAOiq9v/gMwAAmKv2/xg0AACorfb/aDQAABiu9v+4NAAA2K72/+Q0AACIr/b/FDUAAFiy9v9cNQAAGLP2/4g1AAC4tfb/wDUAAGi79v8ANgAAGMH2/zg2AAAYwvb/bDYAAFjC9v/ANgAA2ML2/+w2AABow/b/EDcAACjd9v9sNwAAiN32/5A3AADo3fb/uDcAAEje9v/gNwAAeN72//Q3AACo3vb/CDgAAIjf9v80OAAAaOD2/2Q4AABI4fb/jDgAAKjh9v+0OAAACOL2/9w4AABY4vb/ADkAALji9v8oOQAA+OL2/0w5AABo5vb/pDkAACjn9v/UOQAAeOf2//Q5AADI6Pb/JDoAAKjp9v9UOgAA+On2/3g6AAAY6vb/jDoAACjq9v+gOgAAOOr2/7Q6AABI6vb/yDoAAFjq9v/cOgAAaOr2//A6AAB46vb/BDsAAIjq9v8YOwAAmOr2/yw7AACo6vb/QDsAALjq9v9UOwAAyOr2/2g7AADY6vb/fDsAAPjq9v+QOwAAGOv2/6Q7AAAo6/b/uDsAAEjr9v/MOwAAaOv2/+A7AACI6/b/9DsAAKjr9v8IPAAAyOv2/xw8AADo6/b/MDwAAAjs9v9EPAAAGOz2/1g8AABI7Pb/fDwAAPjs9v+kPAAAeO32/7g8AACI7fb/zDwAAJjt9v/gPAAAqO32//Q8AADI7fb/CD0AAPjt9v8cPQAAKO72/zA9AABY7vb/UD0AAIju9v9wPQAA6O72/5g9AADI7/b/zD0AAHjw9v/8PQAAmPD2/xA+AAC48Pb/JD4AANjw9v84PgAA+PD2/0w+AAAY8fb/YD4AADjx9v90PgAAWPH2/4g+AABY8vb/sD4AAHjy9v/EPgAAmPL2/9g+AAAo8/b//D4AANgA9/8sPwAAeAH3/0w/AAA4Avf/cD8AAHgC9/+UPwAACAT3/8A/AACYBPf/4D8AAHgF9/8QQAAA6Ab3/0RAAACoCvf/fEAAAMgP9/+sQAAAWBH3/+RAAAC4FPf/IEEAAMgU9/80QQAA2BT3/0hBAADoFPf/XEEAAFgV9/+AQQAA2BX3/7hBAAA4Fvf/3EEAAKgW9/8EQgAAOBf3/zRCAAB4GPf/YEIAAKgZ9/+MQgAACBz3/8RCAAA4HPf/2EIAAJgd9/8UQwAAKCH3/2BDAAAIJff/lEMAADgl9/+4QwAASCX3/8xDAADIJff/+EMAADgo9/8wRAAAiCj3/1REAADoKPf/fEQAADgp9/+kRAAAiCn3/8xEAADYKff/9EQAACgq9/8YRQAAmCr3/0BFAAAIK/f/aEUAAJgv9/+YRQAAqC/3/6xFAAC4L/f/wEUAADgx9//wRQAACDT3/zxGAADINff/cEYAADg59/+wRgAAaDn3/8RGAACYOff/2EYAAKg69/8MRwAASDv3/zBHAAAIP/f/bEcAAIg/9/+URwAA+D/3/7hHAACYQPf/4EcAAChB9//0RwAA+EH3/whIAAB4RPf/cEgAAJhE9/+ESAAA6ET3/5hIAAAoR/f/rEgAAPhJ9//QSAAAaFf3/wRJAAAIWPf/MEkAABha9/9sSQAAKFz3/9xJAABIXff/BEoAALhf9/9ASgAA2F/3/2BKAAC4YPf/iEoAAMhh9//ESgAA6GH3/9hKAAAoYvf/+EoAAHhi9/8QSwAAmGL3/yRLAADoYvf/OEsAAChl9/9MSwAA+Gf3/3BLAABodff/pEsAAAh29//QSwAAGHj3/wxMAAAoevf/WEwAAEh79/+ATAAAuH33/7xMAADYfff/3EwAALh+9/8ETQAAyH/3/0BNAADof/f/VE0AACiA9/90TQAAeID3/4hNAABYgff/sE0AAFiC9//cTQAAGIf3/wxOAAAYivf/PE4AAKiO9/98TgAAOJD3/6hOAADYkff/3E4AALiS9/8ETwAA2JL3/xhPAADIk/f/VE8AAFiU9/90TwAAGJX3/6RPAADYlff/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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQb0AAAAAAAGBvQAAAAAAA8CRDAAAAAAAAJUMAAAAAAPAeQwAAAAAA4B5DAAAAAAAgJUMAAAAAANAeQwAAAAAAwB5DAAAAAABwHkMAAAAAAGAeQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAMEQAAAAAAAAEAAAAAAAAAHREAAAAAAAABAAAAAAAAACkRAAAAAAAAAQAAAAAAAAA0EQAAAAAAAB0AAAAAAAAAthEAAAAAAAAMAAAAAAAAAABQQAAAAAAADQAAAAAAAACEOUMAAAAAABkAAAAAAAAAEKJLAAAAAAAbAAAAAAAAAAgAAAAAAAAAGgAAAAAAAAAYoksAAAAAABwAAAAAAAAACAAAAAAAAAD1/v9vAAAAALADQAAAAAAABQAAAAAAAAAQH0AAAAAAAAYAAAAAAAAAuARAAAAAAAAKAAAAAAAAACYSAAAAAAAACwAAAAAAAAAYAAAAAAAAABUAAAAAAAAAAAAAAAAAAAADAAAAAAAAALCnSwAAAAAAAgAAAAAAAAAAGAAAAAAAABQAAAAAAAAABwAAAAAAAAAXAAAAAAAAAPA1QAAAAAAABwAAAAAAAABYNEAAAAAAAAgAAAAAAAAAmAEAAAAAAAAJAAAAAAAAABgAAAAAAAAAHgAAAAAAAAAIAAAAAAAAAPv//28AAAAAAQAAAAAAAAD+//9vAAAAAGgzQAAAAAAA////bwAAAAADAAAAAAAAAPD//28AAAAANjFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACApUsAAAAAAAAAAAAAAAAAAAAAAAAAAAA2UEAAAAAAAEZQQAAAAAAAVlBAAAAAAABmUEAAAAAAAHZQQAAAAAAAhlBAAAAAAACWUEAAAAAAAKZQQAAAAAAAtlBAAAAAAADGUEAAAAAAANZQQAAAAAAA5lBAAAAAAAD2UEAAAAAAAAZRQAAAAAAAFlFAAAAAAAAmUUAAAAAAADZRQAAAAAAARlFAAAAAAABWUUAAAAAAAGZRQAAAAAAAdlFAAAAAAACGUUAAAAAAAJZRQAAAAAAAplFAAAAAAAC2UUAAAAAAAMZRQAAAAAAA1lFAAAAAAADmUUAAAAAAAPZRQAAAAAAABlJAAAAAAAAWUkAAAAAAACZSQAAAAAAANlJAAAAAAABGUkAAAAAAAFZSQAAAAAAAZlJAAAAAAAB2UkAAAAAAAIZSQAAAAAAAllJAAAAAAACmUkAAAAAAALZSQAAAAAAAxlJAAAAAAADWUkAAAAAAAOZSQAAAAAAA9lJAAAAAAAAGU0AAAAAAABZTQAAAAAAAJlNAAAAAAAA2U0AAAAAAAEZTQAAAAAAAVlNAAAAAAABmU0AAAAAAAHZTQAAAAAAAhlNAAAAAAACWU0AAAAAAAKZTQAAAAAAAtlNAAAAAAADGU0AAAAAAANZTQAAAAAAA5lNAAAAAAAD2U0AAAAAAAAZUQAAAAAAAFlRAAAAAAAAmVEAAAAAAADZUQAAAAAAARlRAAAAAAABWVEAAAAAAAGZUQAAAAAAAdlRAAAAAAACGVEAAAAAAAJZUQAAAAAAAplRAAAAAAAC2VEAAAAAAAMZUQAAAAAAA1lRAAAAAAADmVEAAAAAAAPZUQAAAAAAABlVAAAAAAAAWVUAAAAAAACZVQAAAAAAANlVAAAAAAABGVUAAAAAAAFZVQAAAAAAAZlVAAAAAAAB2VUAAAAAAAIZVQAAAAAAAllVAAAAAAACmVUAAAAAAALZVQAAAAAAAxlVAAAAAAADWVUAAAAAAAOZVQAAAAAAA9lVAAAAAAAAGVkAAAAAAABZWQAAAAAAAJlZAAAAAAAA2VkAAAAAAAEZWQAAAAAAAVlZAAAAAAABmVkAAAAAAAHZWQAAAAAAAhlZAAAAAAACWVkAAAAAAAKZWQAAAAAAAtlZAAAAAAADGVkAAAAAAANZWQAAAAAAA5lZAAAAAAAD2VkAAAAAAAAZXQAAAAAAAFldAAAAAAAAmV0AAAAAAADZXQAAAAAAARldAAAAAAABWV0AAAAAAAGZXQAAAAAAAdldAAAAAAACGV0AAAAAAAJZXQAAAAAAApldAAAAAAAC2V0AAAAAAAMZXQAAAAAAA1ldAAAAAAADmV0AAAAAAAPZXQAAAAAAABlhAAAAAAAAWWEAAAAAAACZYQAAAAAAANlhAAAAAAABGWEAAAAAAAFZYQAAAAAAAZlhAAAAAAAB2WEAAAAAAAIZYQAAAAAAAllhAAAAAAACmWEAAAAAAALZYQAAAAAAAxlhAAAAAAADWWEAAAAAAAOZYQAAAAAAA9lhAAAAAAAAGWUAAAAAAABZZQAAAAAAAJllAAAAAAAA2WUAAAAAAAEZZQAAAAAAAVllAAAAAAABmWUAAAAAAAHZZQAAAAAAAhllAAAAAAACWWUAAAAAAAKZZQAAAAAAAtllAAAAAAADGWUAAAAAAANZZQAAAAAAA5llAAAAAAAD2WUAAAAAAAAZaQAAAAAAAFlpAAAAAAAAmWkAAAAAAADZaQAAAAAAARlpAAAAAAABWWkAAAAAAAGZaQAAAAAAAdlpAAAAAAACGWkAAAAAAAJZaQAAAAAAAplpAAAAAAAC2WkAAAAAAAMZaQAAAAAAA1lpAAAAAAADmWkAAAAAAAPZaQAAAAAAABltAAAAAAAAWW0AAAAAAACZbQAAAAAAANltAAAAAAABGW0AAAAAAAFZbQAAAAAAAZltAAAAAAAB2W0AAAAAAAIZbQAAAAAAAlltAAAAAAACmW0AAAAAAALZbQAAAAAAAxltAAAAAAADWW0AAAAAAAOZbQAAAAAAA9ltAAAAAAAAGXEAAAAAAABZcQAAAAAAAJlxAAAAAAAA2XEAAAAAAAEZcQAAAAAAAVlxAAAAAAABmXEAAAAAAAHZcQAAAAAAAhlxAAAAAAACWXEAAAAAAAKZcQAAAAAAAtlxAAAAAAADGXEAAAAAAANZcQAAAAAAA5lxAAAAAAAD2XEAAAAAAAAZdQAAAAAAAFl1AAAAAAAAmXUAAAAAAADZdQAAAAAAARl1AAAAAAABWXUAAAAAAAGZdQAAAAAAAdl1AAAAAAACGXUAAAAAAAJZdQAAAAAAApl1AAAAAAAC2XUAAAAAAAMZdQAAAAAAA1l1AAAAAAADmXUAAAAAAAPZdQAAAAAAABl5AAAAAAAAWXkAAAAAAACZeQAAAAAAANl5AAAAAAABGXkAAAAAAAFZeQAAAAAAAZl5AAAAAAAB2XkAAAAAAAIZeQAAAAAAAll5AAAAAAACmXkAAAAAAALZeQAAAAAAAxl5AAAAAAADWXkAAAAAAAOZeQAAAAAAA9l5AAAAAAAAGX0AAAAAAABZfQAAAAAAAJl9AAAAAAAA2X0AAAAAAAEZfQAAAAAAAVl9AAAAAAABmX0AAAAAAAHZfQAAAAAAAhl9AAAAAAACWX0AAAAAAAKZfQAAAAAAAtl9AAAAAAADGX0AAAAAAANZfQAAAAAAA5l9AAAAAAAD2X0AAAAAAAAZgQAAAAAAAFmBAAAAAAAAmYEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIC8SwAAAAAAAQAAAAAAAABIv0sAAAAAADIsSwAAAAAAEMBLAAAAAADAv0sAAAAAAAVKRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABw1kEAAAAAAIDSQQAAAAAA4OBBAAAAAAAw4EEAAAAAAGDeQQAAAAAAANVBAAAAAADQ5EEAAAAAAEDbQQAAAAAAYNFBAAAAAAAQ0UEAAAAAALDRQQAAAAAAwDZCAAAAAAAgNkIAAAAAAMA3QgAAAAAAIGJBAAAAAABQX0EAAAAAAAAAAAAAAAAAYF9BAAAAAACAX0EAAAAAAAgAAAAAAAAALbVEAAAAAAAAAAAAAAAAAICxSwAAAAAAALNLAAAAAAAAAAAAAAAAACDCSwAAAAAAoMtLAAAAAAAjz0QAAAAAAGjESwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMJdCAAAAAABwI0IAAAAAAKAjQgAAAAAAEMlCAAAAAAAQl0IAAAAAAMAiQgAAAAAAsOZCAAAAAACQkkIAAAAAAEAjQgAAAAAAYCFCAAAAAABwkUIAAAAAADB6QgAAAAAAHbNEAAAAAADM/0cAAAAAAGCPQgAAAAAAUI1CAAAAAADw3EIAAAAAAJDeQgAAAAAAwHlCAAAAAAAAAAAAAAAAALCMQgAAAAAAQH9CAAAAAAAAAAAAAAAAAHB8QgAAAAAAoMlCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ6UIAAAAAAPDpQgAAAAAAgOpCAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANz/RwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMLVCAAAAAABwI0IAAAAAAKAjQgAAAAAAEMlCAAAAAAAQtUIAAAAAAMAiQgAAAAAAsOZCAAAAAACQsEIAAAAAAEAjQgAAAAAAYCFCAAAAAABwr0IAAAAAADCYQgAAAAAAJiJLAAAAAAA5IksAAAAAAGCtQgAAAAAAUKtCAAAAAADw3EIAAAAAAJDeQgAAAAAAwJdCAAAAAAAAAAAAAAAAALCqQgAAAAAAQJ1CAAAAAAAAAAAAAAAAAHCaQgAAAAAAoMlCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ6UIAAAAAAPDpQgAAAAAAgOpCAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANz/RwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMixLAAAAAAAbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADSxLAAAAAAArAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXyxLAAAAAAAjBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJixLAAAAAAAjAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGyxLAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZixLAAAAAAArAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbixLAAAAAAAjAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdSxLAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBpDAAAAAAAgxksAAAAAAAAubm90ZS5nbnUucHJvcGVydHkALmluaXRfYXJyYXkALmZpbmlfYXJyYXkALnRleHQALmdvdAAucmVsYS5wbHQALmluaXQALmJzcwAuZHluc3RyAC5laF9mcmFtZV9oZHIALmdudS52ZXJzaW9uX3IALmludGVycAAuZGF0YS5yZWwucm8ALnJlbGEuZHluAC5nbnUudmVyc2lvbgAuZHluc3ltAC5maW5pAC5nbnUuaGFzaAAubm90ZS5BQkktdGFnAC5laF9mcmFtZQAubm90ZS5nbnUuYnVpbGQtaWQALmR5bmFtaWMALnNoc3RydGFiAC5yb2RhdGEALmRhdGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxAAAAAQAAAAIAAAAAAAAAGANAAAAAAAAYAwAAAAAAABwAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAcAAAACAAAAAAAAADgDQAAAAAAAOAMAAAAAAAAwAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAM0AAAAHAAAAAgAAAAAAAABoA0AAAAAAAGgDAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAC1AAAABwAAAAIAAAAAAAAAjANAAAAAAACMAwAAAAAAACAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAqwAAAPb//28CAAAAAAAAALADQAAAAAAAsAMAAAAAAAAEAQAAAAAAAAYAAAAAAAAACAAAAAAAAAAAAAAAAAAAAJ0AAAALAAAAAgAAAAAAAAC4BEAAAAAAALgEAAAAAAAAWBoAAAAAAAAHAAAAAQAAAAgAAAAAAAAAGAAAAAAAAABMAAAAAwAAAAIAAAAAAAAAEB9AAAAAAAAQHwAAAAAAACYSAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkAAAAP///28CAAAAAAAAADYxQAAAAAAANjEAAAAAAAAyAgAAAAAAAAYAAAAAAAAAAgAAAAAAAAACAAAAAAAAAGIAAAD+//9vAgAAAAAAAABoM0AAAAAAAGgzAAAAAAAA8AAAAAAAAAAHAAAAAwAAAAgAAAAAAAAAAAAAAAAAAACGAAAABAAAAAIAAAAAAAAAWDRAAAAAAABYNAAAAAAAAJgBAAAAAAAABgAAAAAAAAAIAAAAAAAAABgAAAAAAAAANwAAAAQAAABCAAAAAAAAAPA1QAAAAAAA8DUAAAAAAAAAGAAAAAAAAAYAAAAXAAAACAAAAAAAAAAYAAAAAAAAAEEAAAABAAAABgAAAAAAAAAAUEAAAAAAAABQAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAQAAAAYAAAAAAAAAIFBAAAAAAAAgUAAAAAAAABAQAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAALAAAAAEAAAAGAAAAAAAAADBgQAAAAAAAMGAAAAAAAABR2QIAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAKUAAAABAAAABgAAAAAAAACEOUMAAAAAAIQ5AwAAAAAACQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAADzAAAAAQAAAAIAAAAAAAAAAEBDAAAAAAAAQAMAAAAAAEb1BwAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAVAAAAAEAAAACAAAAAAAAAEg1SwAAAAAASDULAAAAAAC8DwAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAMMAAAABAAAAAgAAAAAAAAAIRUsAAAAAAAhFCwAAAAAAKEsAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAUAAAADgAAAAMAAAAAAAAAEKJLAAAAAAAQkgsAAAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAIAAAAA8AAAADAAAAAAAAABiiSwAAAAAAGJILAAAAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAHkAAAABAAAAAwAAAAAAAAAgoksAAAAAACCSCwAAAAAAYAMAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAADgAAAABgAAAAMAAAAAAAAAgKVLAAAAAACAlQsAAAAAADACAAAAAAAABwAAAAAAAAAIAAAAAAAAABAAAAAAAAAAMgAAAAEAAAADAAAAAAAAALCnSwAAAAAAsJcLAAAAAABICAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAPsAAAABAAAAAwAAAAAAAAAAsEsAAAAAAACgCwAAAAAAQAYAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAABHAAAACAAAAAMAAAAAAAAAQLZLAAAAAABApgsAAAAAAHgVAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAA6QAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAQKYLAAAAAAABAQAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA==