# Name: smd_query v0.22 # Type: Client side plugin # Generic database access via SQL # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjk6InNtZF9xdWVyeSI7czo2OiJhdXRob3IiO3M6MTE6IlN0 ZWYgRGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3RlZmRhd3Nvbi5j b20vIjtzOjc6InZlcnNpb24iO3M6NDoiMC4yMiI7czoxMToiZGVzY3JpcHRpb24iO3M6MzE6 IkdlbmVyaWMgZGF0YWJhc2UgYWNjZXNzIHZpYSBTUUwiO3M6NDoiY29kZSI7czo1OTM1OiJm dW5jdGlvbiBzbWRfcXVlcnkoJGF0dHMsICR0aGluZz0nJykgew0KCWV4dHJhY3QobEF0dHMo YXJyYXkoDQoJCSdjb2x1bW4nID0+ICcnLA0KCQkndGFibGUnID0+ICcnLA0KCQknd2hlcmUn ID0+ICcnLA0KCQkncXVlcnknID0+ICcnLA0KCQknZm9ybScgPT4gJycsDQoJCSdjb2xzZm9y bScgPT4gJycsDQoJCSdlc2NhcGUnID0+ICcnLA0KCQkncHJlcGFyc2UnID0+ICcwJywNCgkJ J3VybGZpbHRlcicgPT4gJycsDQoJCSd1cmxyZXBsYWNlJyA9PiAnJywNCgkJJ2RlZmF1bHRz JyA9PiAnJywNCgkJJ2RlbGltJyA9PiAnLCcsDQoJCSdwYXJhbWRlbGltJyA9PiAnOicsDQoJ CSdzaWxlbnQnID0+ICcwJywNCgkJJ2NvdW50JyA9PiAndXAnLA0KCQknYnJlYWsnID0+ICcn LA0KCQknd3JhcHRhZycgPT4gJycsDQoJCSdsYWJlbCcgPT4gJycsDQoJCSdsYWJlbHRhZycg PT4gJycsDQoJCSdjbGFzcycgPT4gJycsDQoJCSdkZWJ1ZycgPT4gJzAnLA0KCSksJGF0dHMp KTsNCg0KCS8vIEdyYWIgdGhlIGZvcm0gb3IgZW1iZWRkZWQgJHRoaW5nDQoJJHRoaW5nID0g KCR0aGluZykgPyAkdGhpbmcgOiBmZXRjaF9mb3JtKCRmb3JtKTsNCgkkY29sc2Zvcm0gPSAo ZW1wdHkoJGNvbHNmb3JtKSkgPyAnJyA6IGZldGNoX2Zvcm0oJGNvbHNmb3JtKTsNCg0KCSR1 cmxmaWx0ZXIgPSAoIWVtcHR5KCR1cmxmaWx0ZXIpKSA/IGRvX2xpc3QoJHVybGZpbHRlciwg JGRlbGltKSA6ICcnOw0KCSR1cmxyZXBsYWNlID0gKCFlbXB0eSgkdXJscmVwbGFjZSkpID8g ZG9fbGlzdCgkdXJscmVwbGFjZSwgJGRlbGltKSA6ICcnOw0KCWlmICgkZGVidWcgPiAwKSB7 DQoJCWVjaG8gIisrIFVSTCBGSUxURVJTICsrIjsNCgkJZG1wKCR1cmxmaWx0ZXIpOw0KCQlk bXAoJHVybHJlcGxhY2UpOw0KCX0NCg0KCS8vIFByb2Nlc3MgYW55IGRlZmF1bHRzDQoJJGRl ZmF1bHRzID0gZG9fbGlzdCgkZGVmYXVsdHMsICRkZWxpbSk7DQoJJGRmbHRzID0gYXJyYXko KTsNCglmb3JlYWNoICgkZGVmYXVsdHMgYXMgJGl0ZW0pIHsNCgkJJGl0ZW0gPSBkb19saXN0 KCRpdGVtLCAkcGFyYW1kZWxpbSk7DQoJCWlmICgkaXRlbVswXSA9PSAnJykgY29udGludWU7 DQoJCWlmIChjb3VudCgkaXRlbSkgPT0gMikgew0KCQkJJGRmbHRzWyRpdGVtWzBdXSA9IHNt ZF9xdWVyeV9wYXJzZSgkaXRlbVsxXSk7DQoJCX0NCgl9DQoNCglpZiAoJGRlYnVnID4gMCkg ew0KCQllY2hvICIrKyBERUZBVUxUUyArKyI7DQoJCWRtcCgkZGZsdHMpOw0KCX0NCg0KCS8v IEdldCBhIGxpc3Qgb2YgZmllbGRzIHRvIGVzY2FwZQ0KCSRlc2NhcGVzID0gZG9fbGlzdCgk ZXNjYXBlLCAkZGVsaW0pOw0KCWZvcmVhY2ggKCRlc2NhcGVzIGFzICRpZHggPT4gJHZhbCkg ew0KCQlpZiAoJHZhbCA9PSAnJykgew0KCQkJdW5zZXQoJGVzY2FwZXNbJGlkeF0pOw0KCQl9 DQoJfQ0KDQoJJHJzID0gYXJyYXkoKTsNCgkkb3V0ID0gYXJyYXkoKTsNCgkkY29sb3V0ID0g YXJyYXkoKTsNCg0KCS8vIHF1ZXJ5IG92ZXJyaWRlcyBjb2x1bW4vdGFibGUvd2hlcmUNCglp ZiAoJHF1ZXJ5KSB7DQoJCSRxdWVyeSA9IHNtZF9xdWVyeV9wYXJzZSgkcXVlcnksICRkZmx0 cywgJHVybGZpbHRlciwgJHVybHJlcGxhY2UpOw0KCQkkcnMgPSAoJHNpbGVudCkgPyBAZ2V0 Um93cygkcXVlcnksICRkZWJ1ZykgOiBnZXRSb3dzKCRxdWVyeSwgJGRlYnVnKTsNCgl9IGVs c2Ugew0KCQlpZiAoJGNvbHVtbiAmJiAkdGFibGUpIHsNCgkJCS8vIFRPRE86IFBlcmhhcHMg ZG9TbGFzaCgpIHRoZXNlPw0KCQkJJGNvbHVtbiA9IHNtZF9xdWVyeV9wYXJzZSgkY29sdW1u LCAkZGZsdHMsICR1cmxmaWx0ZXIsICR1cmxyZXBsYWNlKTsNCgkJCSR0YWJsZSA9IHNtZF9x dWVyeV9wYXJzZSgkdGFibGUsICRkZmx0cywgJHVybGZpbHRlciwgJHVybHJlcGxhY2UpOw0K CQkJJHdoZXJlID0gc21kX3F1ZXJ5X3BhcnNlKCR3aGVyZSwgJGRmbHRzLCAkdXJsZmlsdGVy LCAkdXJscmVwbGFjZSk7DQoJCQkkd2hlcmUgPSAoJHdoZXJlKSA/ICR3aGVyZSA6ICIxPTEi Ow0KCQkJJHJzID0gKCRzaWxlbnQpID8gQHNhZmVfcm93cygkY29sdW1uLCAkdGFibGUsICR3 aGVyZSwgJGRlYnVnKSA6IHNhZmVfcm93cygkY29sdW1uLCAkdGFibGUsICR3aGVyZSwgJGRl YnVnKTsNCgkJfSBlbHNlIHsNCgkJCXRyaWdnZXJfZXJyb3IoIllvdSBtdXN0IHNwZWNpZnkg YXQgbGVhc3QgMSAnY29sdW1uJyBhbmQgYSAndGFibGUnLiIpOw0KCQl9DQoJfQ0KDQoJJG51 bXJvd3MgPSBjb3VudCgkcnMpOw0KCSR0cnVlUGFydCA9IEV2YWxFbHNlKCR0aGluZywgMSk7 DQoNCglpZiAoJHJzKSB7DQoJCWlmICgkZGVidWcgPiAxKSB7DQoJCQllY2hvICIrKyBRVUVS WSBSRVNVTFQgU0VUICsrIjsNCgkJCWRtcChjb3VudCgkcnMpLiAiIFJPV1MiKTsNCgkJCWRt cCgkcnMpOw0KCQl9DQoJCSRyZXBsYWNlbWVudHMgPSBhcnJheSgpOw0KCQkkY29scmVwbGFj ZW1lbnRzID0gYXJyYXkoKTsNCgkJJHFyeV9yb3djbnQgPSAoJGNvdW50PT0idXAiKSA/IDAg OiAkbnVtcm93cy0xOw0KCQlmb3JlYWNoICgkcnMgYXMgJHJvdykgew0KCQkJZm9yZWFjaCAo JHJvdyBhcyAkY29saWQgPT4gJHZhbCkgew0KCQkJCWlmICgkcXJ5X3Jvd2NudCA9PSAwICYm ICRjb2xzZm9ybSkgew0KCQkJCQkkY29scmVwbGFjZW1lbnRzWyd7Jy4kY29saWQuJ30nXSA9 ICRjb2xpZDsNCgkJCQl9DQoJCQkJLy8gQ29uc3RydWN0IHRoZSByZXBsYWNlbWVudCBhcnJh eQ0KCQkJCSRyZXBsYWNlbWVudHNbJ3snLiRjb2xpZC4nfSddID0gKGluX2FycmF5KCRjb2xp ZCwgJGVzY2FwZXMpID8gaHRtbHNwZWNpYWxjaGFycygkdmFsLCBFTlRfUVVPVEVTKSA6ICR2 YWwpOw0KCQkJfQ0KCQkJJHJlcGxhY2VtZW50c1sne3NtZF9yb3dzfSddID0gJG51bXJvd3M7 DQoJCQkkcmVwbGFjZW1lbnRzWyd7c21kX3RoaXNpbmRleH0nXSA9ICRxcnlfcm93Y250Ow0K CQkJJHJlcGxhY2VtZW50c1sne3NtZF90aGlzcm93fSddID0gJHFyeV9yb3djbnQgKyAxOw0K CQkJaWYgKCRkZWJ1ZyA+IDApIHsNCgkJCQllY2hvICIrKyBSRVBMQUNFTUVOVFMgKysiOw0K CQkJCWRtcCgkcmVwbGFjZW1lbnRzKTsNCgkJCX0NCgkJCSRvdXRbXSA9ICgkcHJlcGFyc2Up ID8gc3RydHIocGFyc2UoJHRydWVQYXJ0KSwgJHJlcGxhY2VtZW50cykgOiBwYXJzZShzdHJ0 cigkdHJ1ZVBhcnQsICRyZXBsYWNlbWVudHMpKTsNCgkJCSRxcnlfcm93Y250ID0gKCRjb3Vu dD09InVwIikgPyAkcXJ5X3Jvd2NudCsxIDogJHFyeV9yb3djbnQtMTsNCgkJfQ0KDQoJCWlm ICgkb3V0KSB7DQoJCQlpZiAoJGNvbHJlcGxhY2VtZW50cykgew0KCQkJCSRjb2xvdXRbXSA9 ICgkcHJlcGFyc2UpID8gc3RydHIocGFyc2UoJGNvbHNmb3JtKSwgJGNvbHJlcGxhY2VtZW50 cykgOiBwYXJzZShzdHJ0cigkY29sc2Zvcm0sICRjb2xyZXBsYWNlbWVudHMpKTsNCgkJCX0N CgkJCXJldHVybiBkb0xhYmVsKCRsYWJlbCwgJGxhYmVsdGFnKS5kb1dyYXAoYXJyYXlfbWVy Z2UoJGNvbG91dCwkb3V0KSwgJHdyYXB0YWcsICRicmVhaywgJGNsYXNzKTsNCgkJfQ0KCX0g ZWxzZSB7DQoJCXJldHVybiBwYXJzZShFdmFsRWxzZSgkdGhpbmcsIDApKTsNCgl9DQoJcmV0 dXJuICcnOw0KfQ0KDQovLyBSZXR1cm5zIGEgc3RyaW5nIHdpdGggYW55ID8gdmFyaWFibGVz IHJlcGxhY2VkIHdpdGggdGhlaXIgZ2xvYmFscw0KLy8gVVJMIFZhcmlhYmxlcyBhcmUgb3B0 aW9uYWxseSBydW4gdGhyb3VnaCBwcmVnX3JlcGxhY2UoKSB0byBzYW5pdGl6ZSB0aGVtLg0K Ly8gICRwYXQgaXMgYW4gYXJyYXkgb2YgcmVnZXggc2VhcmNoIHBhdHRlcm5zDQovLyAgJHJl cCBpcyBhbiBhcnJheSBvZiByZWdleCBzZWFyY2ggcmVwYWxjZW1lbnRzIChkZWZhdWx0ID0g JycsIGkuZS4gcmVtb3ZlIHdoYXRldmVyIG1hdGNoZXMpDQpmdW5jdGlvbiBzbWRfcXVlcnlf cGFyc2UoJGl0ZW0sICRkZmx0cz1hcnJheSgnJyksICRwYXQ9YXJyYXkoJycpLCAkcmVwPWFy cmF5KCcnKSkgew0KCWdsb2JhbCAkcHJldGV4dCwgJHRoaXNhcnRpY2xlLCAkdGhpc2ltYWdl LCAkdGhpc2ZpbGUsICR0aGlzbGluaywgJHZhcmlhYmxlOw0KDQoJJGl0ZW0gPSBodG1sX2Vu dGl0eV9kZWNvZGUoJGl0ZW0pOw0KCSRtb2RSRSA9ICcvKFw/KShbQS1aYS16MC05X1wtIF0r KS8nOw0KCSRudW1Nb2RzID0gcHJlZ19tYXRjaF9hbGwoJG1vZFJFLCAkaXRlbSwgJG1vZHMp Ow0KDQoJZm9yICgkbW9kQ3RyID0gMDsgJG1vZEN0ciA8ICRudW1Nb2RzOyAkbW9kQ3RyKysp IHsNCgkJJG1vZENoYXIgPSAkbW9kc1sxXVskbW9kQ3RyXTsNCgkJJG1vZEl0ZW0gPSB0cmlt KCRtb2RzWzJdWyRtb2RDdHJdKTsNCgkJJGxvd2l0ZW0gPSBzdHJ0b2xvd2VyKCRtb2RJdGVt KTsNCgkJJHVybHZhciA9ICRzdnJ2YXIgPSAnJzsNCg0KCQlpZiAoZ3BzKCRsb3dpdGVtKSAh PSAnJykgew0KCQkJJHVybHZhciA9IGRvU2xhc2goZ3BzKCRsb3dpdGVtKSk7DQoJCQlpZiAo JHVybHZhciAmJiAkcGF0KSB7DQoJCQkJJHVybHZhciA9IHByZWdfcmVwbGFjZSgkcGF0LCAk cmVwLCAkdXJsdmFyKTsNCgkJCX0NCgkJfQ0KCQlpZiAoc2VydmVyU2V0KCRtb2RJdGVtKSAh PSAnJykgew0KCQkJJHN2cnZhciA9IGRvU2xhc2goc2VydmVyU2V0KCRtb2RJdGVtKSk7DQoJ CQlpZiAoJHN2cnZhciAmJiAkcGF0KSB7DQoJCQkJJHN2cnZhciA9IHByZWdfcmVwbGFjZSgk cGF0LCAkcmVwLCAkc3ZydmFyKTsNCgkJCX0NCgkJfQ0KDQoJCWlmIChpc3NldCgkdmFyaWFi bGVbJGxvd2l0ZW1dKSkgew0KCQkJJGl0ZW0gPSBzdHJfcmVwbGFjZSgkbW9kQ2hhci4kbW9k SXRlbSwgJHZhcmlhYmxlWyRsb3dpdGVtXSwgJGl0ZW0pOw0KCQl9IGVsc2UgaWYgKCRzdnJ2 YXIgIT0gJycpIHsNCgkJCSRpdGVtID0gc3RyX3JlcGxhY2UoJG1vZENoYXIuJG1vZEl0ZW0s ICRzdnJ2YXIsICRpdGVtKTsNCgkJfSBlbHNlIGlmIChpc3NldCgkdGhpc2ltYWdlWyRsb3dp dGVtXSkgJiYgIWVtcHR5KCR0aGlzaW1hZ2VbJGxvd2l0ZW1dKSkgew0KCQkJJGl0ZW0gPSBz dHJfcmVwbGFjZSgkbW9kQ2hhci4kbW9kSXRlbSwgJHRoaXNpbWFnZVskbG93aXRlbV0sICRp dGVtKTsNCgkJfSBlbHNlIGlmIChpc3NldCgkdGhpc2ZpbGVbJGxvd2l0ZW1dKSAmJiAhZW1w dHkoJHRoaXNmaWxlWyRsb3dpdGVtXSkpIHsNCgkJCSRpdGVtID0gc3RyX3JlcGxhY2UoJG1v ZENoYXIuJG1vZEl0ZW0sICR0aGlzZmlsZVskbG93aXRlbV0sICRpdGVtKTsNCgkJfSBlbHNl IGlmIChpc3NldCgkdGhpc2xpbmtbJGxvd2l0ZW1dKSAmJiAhZW1wdHkoJHRoaXNsaW5rWyRs b3dpdGVtXSkpIHsNCgkJCSRpdGVtID0gc3RyX3JlcGxhY2UoJG1vZENoYXIuJG1vZEl0ZW0s ICR0aGlzbGlua1skbG93aXRlbV0sICRpdGVtKTsNCgkJfSBlbHNlIGlmIChhcnJheV9rZXlf ZXhpc3RzKCRsb3dpdGVtLCAkcHJldGV4dCkgJiYgIWVtcHR5KCRwcmV0ZXh0WyRsb3dpdGVt XSkpIHsNCgkJCSRpdGVtID0gc3RyX3JlcGxhY2UoJG1vZENoYXIuJG1vZEl0ZW0sICRwcmV0 ZXh0WyRsb3dpdGVtXSwgJGl0ZW0pOw0KCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzYXJ0aWNs ZVskbG93aXRlbV0pICYmICFlbXB0eSgkdGhpc2FydGljbGVbJGxvd2l0ZW1dKSkgew0KCQkJ JGl0ZW0gPSBzdHJfcmVwbGFjZSgkbW9kQ2hhci4kbW9kSXRlbSwgJHRoaXNhcnRpY2xlWyRs b3dpdGVtXSwgJGl0ZW0pOw0KCQl9IGVsc2UgaWYgKCR1cmx2YXIgIT0gJycpIHsNCgkJCSRp dGVtID0gc3RyX3JlcGxhY2UoJG1vZENoYXIuJG1vZEl0ZW0sICR1cmx2YXIsICRpdGVtKTsN CgkJfSBlbHNlIGlmIChpc3NldCgkZGZsdHNbJGxvd2l0ZW1dKSkgew0KCQkJJGl0ZW0gPSBz dHJfcmVwbGFjZSgkbW9kQ2hhci4kbW9kSXRlbSwgJGRmbHRzWyRsb3dpdGVtXSwgJGl0ZW0p Ow0KCQl9IGVsc2Ugew0KCQkJJGl0ZW0gPSBzdHJfcmVwbGFjZSgkbW9kQ2hhci4kbW9kSXRl bSwgJG1vZEl0ZW0sICRpdGVtKTsNCgkJfQ0KCX0NCglyZXR1cm4gJGl0ZW07DQp9IjtzOjQ6 InR5cGUiO3M6MToiMCI7czo1OiJvcmRlciI7czoxOiI1IjtzOjU6ImZsYWdzIjtzOjE6IjAi O3M6NDoiaGVscCI7czoyNzY4NzoiPGRpdiBpZD0ic21kX2hlbHAiPgoKCTxoMT5zbWRfcXVl cnk8L2gxPgoKCTxwPlRoZSBsYXppZXN0IHRhZyBldmVyISBBbGxvd3MgeW91IHRvIG1ha2Ug YWQtaG9jIHF1ZXJpZXMgdG8gdGhlIGRhdGFiYXNlIGFuZCBwcm9jZXNzIHRoZSByZXN1bHRz LCByb3cgYnkgcm93LCBpbiBhIGZvcm0gb3IgY29udGFpbmVyLjwvcD4KCgk8aDI+RmVhdHVy ZXM8L2gyPgoKCTx1bD4KCQk8bGk+U3VwcG9ydHMgc2ltcGxlIHF1ZXJpZXMgd2l0aCBhIHJl ZHVjZWQgc3ludGF4ICg8c3BhbiBjbGFzcz0iY2FwcyI+U0VMRUNUPC9zcGFuPiBjb2xzIDxz cGFuIGNsYXNzPSJjYXBzIj5GUk9NPC9zcGFuPiB0YWJsZSA8c3BhbiBjbGFzcz0iY2FwcyI+ V0hFUkU8L3NwYW4+IGNsYXVzZSkgb3IgeW91ciBvd24gY3VzdG9tIHF1ZXJpZXM8L2xpPgoJ CTxsaT5SZWFkIGluZm9ybWF0aW9uIGZyb20gYW55IHBhcnQgb2YgdGhlIGN1cnJlbnQgYXJ0 aWNsZSwgaW1hZ2UgKHBsYW5uZWQpLCBmaWxlLCBsaW5rLCA8Y29kZT4mbHQ7dHhwOnZhcmlh YmxlIC8mZ3Q7PC9jb2RlPiBvciA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBsaW5l LiBJZiBhbnkgZmllbGRzIGFyZSBtaXNzaW5nIHlvdSBjYW4gc3BlY2lmeSBhIGRlZmF1bHQg dmFsdWU8L2xpPgoJCTxsaT5PcHRpb25hbGx5IGZpbHRlciB0aGUgPHNwYW4gY2xhc3M9ImNh cHMiPlVSTDwvc3Bhbj4gaW5wdXQgdXNpbmcgcmVndWxhciBleHByZXNzaW9ucywgZm9yIHNh ZmV0eTwvbGk+CgkJPGxpPkVhY2ggcm93IGNhbiBiZSBwYXNzZWQgdG8gYSBmb3JtIChvciB0 aGUgcGx1Z2luIGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIHRhZyB3aXRoIG9yIHdpdGhv dXQgPGNvZGU+Jmx0O3R4cDplbHNlIC8mZ3Q7PC9jb2RlPikgdG8gZGlzcGxheSB0aGUgcmVz dWx0czwvbGk+CgkJPGxpPkNvbHVtbiBoZWFkaW5ncyBtYXkgYmUgb3V0cHV0IHVzaW5nIGEg c2Vjb25kIGZvcm08L2xpPgoJCTxsaT5NYXkgZGVzdHJveSB5b3VyIGRhdGFiYXNlIGlmIHVz ZWQgd3JvbmdseS4gQmFja3VwLCBiYWNrdXAgYmFja3VwJiM4MjMwOzwvbGk+Cgk8L3VsPgoK CTxoMj5BdXRob3I8L2gyPgoKCTxwPjxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9j b21tZW50Rm9ybSI+U3RlZiBEYXdzb248L2E+PC9wPgoKCTxoMj5JbnN0YWxsYXRpb24gLyBV bmluc3RhbGxhdGlvbjwvaDI+CgoJPHA+RG93bmxvYWQgdGhlIHBsdWdpbiBmcm9tIGVpdGhl ciA8YSBocmVmPSJodHRwOi8vdGV4dHBhdHRlcm4ub3JnL3BsdWdpbnMvOTc2L3NtZF9xdWVy eSI+dGV4dHBhdHRlcm4ub3JnPC9hPiwgb3IgdGhlIDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3 c29uLmNvbS9zdyI+c29mdHdhcmUgcGFnZTwvYT4sIHBhc3RlIHRoZSBjb2RlIGludG8gdGhl IDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IEFkbWluIC0mZ3Q7IFBsdWdpbnMgcGFu ZSwgaW5zdGFsbCBhbmQgZW5hYmxlIHRoZSBwbHVnaW4uIFZpc2l0IHRoZSA8YSBocmVmPSJo dHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/aWQ9MjcyNzkiPmZv cnVtIHRocmVhZDwvYT4gZm9yIG1vcmUgaW5mbyBvciB0byByZXBvcnQgb24gdGhlIHN1Y2Nl c3Mgb3Igb3RoZXJ3aXNlIG9mIHRoZSBwbHVnaW4uPC9wPgoKCTxwPlVuaW5zdGFsbCBieSBz aW1wbHkgZGVsZXRpbmcgdGhlIHBsdWdpbiBmcm9tIHRoZSBBZG1pbi0mZ3Q7UGx1Z2lucyBw YW5lLjwvcD4KCgk8aDI+VXNhZ2U8L2gyPgoKCTxwPlVzZSB0aGUgdGFnIGluIGFueSBwYWdl LCBmb3JtLCBhcnRpY2xlLCBmaWxlLCBsaW5rLCBldGMgY29udGV4dCB0byBncmFiIHN0dWZm IGZyb20gdGhlIGRhdGFiYXNlLjwvcD4KCgk8aDMgY2xhc3M9InRhZyI+c21kX3F1ZXJ5PC9o Mz4KCgk8cCBjbGFzcz0idGFnLXN1bW1hcnkiPk9wZXJhdGVzIGluIHR3byBtb2Rlczogc2lt cGxlIG1vZGUganVzdCBhbGxvd3MgPGNvZGU+U0VMRUNUIHN0dWZmIEZST00gdGFibGUgV0hF UkUgY2xhdXNlPC9jb2RlPi4gQnkgdXNpbmcgdGhlIDxjb2RlPnF1ZXJ5PC9jb2RlPiBhdHRy aWJ1dGUgeW91IHN3aXRjaCB0aGUgcGx1Z2luIHRvIGNvbXBsZXggbW9kZSBhbmQgeW91IGNh biBkZXNpZ24geW91ciBvd24gcXVlcnkuIEl0IGNhbiBpbmNsdWRlIDxzcGFuIGNsYXNzPSJj YXBzIj5DT1VOVDwvc3Bhbj4gKCopLCBqb2lucywgYW55dGhpbmc7IHBlcmhhcHMgZXZlbiA8 c3BhbiBjbGFzcz0iY2FwcyI+SU5TRVJUPC9zcGFuPiBhbmQgPHNwYW4gY2xhc3M9ImNhcHMi PlVQREFURTwvc3Bhbj4gKD8pIGFsdGhvdWdoIGl0JiM4MjE3O3MgdW50ZXN0ZWQgYW5kIGxp YWJsZSB0byBmbG9vZGluZy48L3A+CgoJPGg0IGNsYXNzPSJhdHRzICIgaWQ9ImF0dHJpYnV0 ZXMiPkF0dHJpYnV0ZXM8L2g0PgoKCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdG4iPmNvbHVtbjwvc3Bhbj4gOiAoc2ltcGxlIG1vZGUpIGNvbW1hLXNlcGFyYXRl ZCBsaXN0IG9mIGNvbHVtbnMgdG8gcmV0cmlldmUgZnJvbSB0aGUgZGF0YWJhc2U8L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXRuIj50YWJsZTwvc3Bhbj4gOiAoc2ltcGxlIG1vZGUpIG5h bWUgb2YgdGhlIHRhYmxlIHRvIHJldHJpZXZlIHRoZSBjb2x1bW5zIGZyb20gKHllcywgbm9u LTxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IHRhYmxlcyBhcmUgYWxzbyBzdXBwb3J0 ZWQgaWYgdGhleSBhcmUgaW4gdGhlIHNhbWUgZGF0YWJhc2UgOi0pPC9saT4KCQk8bGk+PHNw YW4gY2xhc3M9ImF0biI+d2hlcmU8L3NwYW4+IDogKHNpbXBsZSBtb2RlKSBhbnkgZXh0cmEg Y2xhdXNlIHlvdSB3aXNoIHRvIHNwZWNpZnkuIERlZmF1bHRzIHRvICYjODIyMDt0aGUgd2hv bGUgZGFybiB0YWJsZSYjODIyMTs8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRuIj5xdWVy eTwvc3Bhbj4gOiAoY29tcGxleCBtb2RlKSBhbnkgcXVlcnkgeW91IGxpa2UgY2FuIGJlIHVz ZWQgaGVyZS4gT3ZlcnJpZGVzIDxjb2RlPmNvbHVtbjwvY29kZT4sIDxjb2RlPnRhYmxlPC9j b2RlPiBhbmQgPGNvZGU+d2hlcmU8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 biI+Zm9ybTwvc3Bhbj4gOiB0aGUgZm9ybSB0byB1c2UgdG8gcGFyc2UgZWFjaCByZXR1cm5l ZCByb3cuIFNlZSA8YSBocmVmPSIjcmVwbGFjZW1lbnRzIj5yZXBsYWNlbWVudHM8L2E+LiBJ ZiBub3Qgc3BlY2lmaWVkLCB0aGUgcGx1Z2luIHdpbGwgdXNlIGFueXRoaW5nIGNvbnRhaW5l ZCBiZXR3ZWVuIGl0cyBvcGVuaW5nIGFuZCBjbG9zaW5nIHRhZzwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdG4iPmNvbHNmb3JtPC9zcGFuPiA6IHNlY29uZCBmb3JtIHRvIHBhcnNlIGFu eSBoZWFkZXIgcm93IGNvbnRhaW5pbmcgY29sdW1uIG5hbWVzIChvZiBsaW1pdGVkIHVzZSk8 L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRuIj5lc2NhcGU8L3NwYW4+IDogbGlzdCBvZiBj b2x1bW4gbmFtZXMgd2l0aCB3aGljaCB0byBlc2NhcGUgPHNwYW4gY2xhc3M9ImNhcHMiPkhU TUw8L3NwYW4+IGVudGl0aWVzLiBVc2VmdWwgaWYgeW91IGhhdmUgcmV0dXJuZWQgYm9keSBv ciBleGNlcnB0IGJsb2NrcyB0aGF0IG1heSBjb250YWluIGFwb3N0cm9waGVzIHRoYXQgY291 bGQga2lsbCB0YWdzIGluc2lkZSB0aGUgc21kX3F1ZXJ5IGNvbnRhaW5lci4gRGVmYXVsdD0m IzgyMTc7JiM4MjE2OzwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG4iPnByZXBhcnNlPC9z cGFuPiA6IG5vcm1hbGx5LCBhbnkgY29udGFpbmVyIG9yIGZvcm0gd2lsbCBoYXZlIGl0cyBy ZXBsYWNlbWVudCB2YXJpYWJsZXMgc3dhcHBlZCBmb3IgY29udGVudCBhbmQgPGVtPnRoZW48 L2VtPiBpdCB3aWxsIGJlIHBhcnNlZCB0byBwcm9jZXNzIGFueSA8c3BhbiBjbGFzcz0iY2Fw cyI+VFhQPC9zcGFuPiB0YWdzLiBJZiB5b3Ugd2lzaCB0byByZXZlcnNlIHRoaXMgb3JkZXIg c28gdGhhdCB0aGUgY29udGFpbmVyIGlzIHBhcnNlZCBmaXJzdCBiZWZvcmUgdGhlIHJlcGxh Y2VtZW50cyBhcmUgbWFkZSwgc3BlY2lmeSA8Y29kZT5wcmVwYXJzZT0mcXVvdDsxJnF1b3Q7 PC9jb2RlPi4gVmVyeSB1c2VmdWwgd2hlbiB1c2luZyB0aGUgPGNvZGU+Jmx0O3R4cDp5aWVs ZCAvJmd0OzwvY29kZT4gdGFnIChzZWUgPGEgaHJlZj0iI2VnOSI+ZXhhbXBsZSA5PC9hPiku IERlZmF1bHQ6IDA8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRuIj51cmxmaWx0ZXI8L3Nw YW4+IDogZmlsdGVyIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGlucHV0IHdpdGgg dGhpcyBsaXN0IG9mIHJlZ3VsYXIgZXhwcmVzc2lvbnMgKGVhY2ggc2VwYXJhdGVkIGJ5IDxj b2RlPmRlbGltPC9jb2RlPik8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRuIj51cmxyZXBs YWNlPC9zcGFuPiA6IHJlcGxhY2UgZWFjaCBmaWx0ZXJlZCA8c3BhbiBjbGFzcz0iY2FwcyI+ VVJMPC9zcGFuPiBlbGVtZW50IGxpc3RlZCBpbiA8Y29kZT51cmxmaWx0ZXI8L2NvZGU+IHdp dGggdGhpcyBsaXN0IG9mIHJlZ3VsYXIgZXhwcmVzc2lvbnMgKGVhY2ggc2VwYXJhdGVkIGJ5 IDxjb2RlPmRlbGltPC9jb2RlPikuIElmIG5vdCB1c2VkLCBhbnl0aGluZyBtYXRjaGluZyA8 Y29kZT51cmxmaWx0ZXI8L2NvZGU+IHdpbGwgYmUgcmVtb3ZlZCBmcm9tIGFueSA8c3BhbiBj bGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB2YXJpYWJsZXMuIFNlZSA8YSBocmVmPSIjZmlsdGVy aW5nIj5GaWx0ZXJpbmcgYW5kIGluamVjdGlvbjwvYT48L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXRuIj5kZWZhdWx0czwvc3Bhbj4gOiBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB2YWx1 ZXMgdG8gdXNlIGluIHRoZSBldmVudCBzb21lIGZpZWxkIHlvdSBzcGVjaWZpZWQgZG9lc24m IzgyMTc7dCBleGlzdC4gRWFjaCBkZWZhdWx0IHNob3VsZCBiZSBnaXZlbiBhcyA8Y29kZT5u YW1lOiB2YWx1ZTwvY29kZT4gKHRoZSA8Y29kZT46PC9jb2RlPiBpcyBjb25maWd1cmFibGUg dmlhIHRoZSA8Y29kZT5wYXJhbWRlbGltPC9jb2RlPiBhdHRyaWJ1dGUpLiBGb3IgZXhhbXBs ZSA8Y29kZT5kZWZhdWx0cz0mcXVvdDtpZDogMSwgbXlfY2F0OiBtYW1tYWxzLCB1c2VyX3Nl YzogP2RlZnNlYyZxdW90OzwvY29kZT4gd291bGQgbWVhbiB0aGF0IGlmIHRoZSA8Y29kZT5p ZDwvY29kZT4gZmllbGQgd2FzIGJsYW5rLCB0aGUgbnVtYmVyIDEgd291bGQgYmUgdXNlZDsg aWYgdGhlIHZhcmlhYmxlIDxjb2RlPm15X2NhdDwvY29kZT4gd2FzIGVtcHR5LCB0aGUgd29y ZCA8Y29kZT5tYW1tYWxzPC9jb2RlPiB3b3VsZCBiZSB1c2VkOyBhbmQgaWYgdGhlIDxjb2Rl PnVzZXJfc2VjPC9jb2RlPiB2YXJpYWJsZSB3YXMgZW1wdHksIHVzZSB0aGUgZGVmYXVsdCB2 YWx1ZSBhcyBmb3VuZCBpbiB0aGUgdmFyaWFibGUgPGNvZGU+ZGVmc2VjPC9jb2RlPiAod2hp Y2ggY291bGQgaGF2ZSBiZWVuIHNldCB2aWEgYSA8Y29kZT4mbHQ7dHhwOnZhcmlhYmxlIC8m Z3Q7PC9jb2RlPiBlYXJsaWVyIGluIHRoZSBwYWdlKTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNz PSJhdG4iPmRlbGltPC9zcGFuPiA6IHRoZSBkZWxpbWl0ZXIgdG8gdXNlIGJldHdlZW4gcGF0 dGVybnMgaW4gPGNvZGU+dXJsZmlsdGVyPC9jb2RlPiBhbmQgPGNvZGU+dXJscmVwbGFjZTwv Y29kZT4uIERlZmF1bHQ6IGNvbW1hICg8Y29kZT4sPC9jb2RlPik8L2xpPgoJCTxsaT48c3Bh biBjbGFzcz0iYXRuIj5wYXJhbWRlbGltPC9zcGFuPiA6IHRoZSBkZWxpbWl0ZXIgdG8gdXNl IGJldHdlZW4gbmFtZS12YWx1ZSBwYWlycyBpbiA8Y29kZT5kZWZhdWx0czwvY29kZT4uIERl ZmF1bHQ6IGNvbG9uICg8Y29kZT46PC9jb2RlPik8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXRuIj5zaWxlbnQ8L3NwYW4+IDogaWYgeW91ciBxdWVyeSBjb250YWlucyBhbiBlcnJvciAo d3JvbmcgY29sdW1uIG5hbWUgb3Igc29tZSBtYWxmb3JtZWQgaW5wdXQpLCB0aGUgcGx1Z2lu IHdpbGwgaXNzdWUgYSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBlcnJvciBtZXNz YWdlLiBVc2luZyA8Y29kZT5zaWxlbnQ9JnF1b3Q7MSZxdW90OzwvY29kZT4gd2lsbCBhdHRl bXB0IHRvIGhpZGUgdGhpcyBlcnJvciBtZXNzYWdlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0biI+Y291bnQ8L3NwYW4+IDogQ2FuIGJlIGVpdGhlciAmIzgyMjA7dXAmIzgyMjE7ICh0 aGUgZGVmYXVsdCkgb3IgJiM4MjIwO2Rvd24mIzgyMjE7LiBTZWUgPGEgaHJlZj0iI3JlcGxh Y2VtZW50cyI+e3NtZF90aGlzcm93fTwvYT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRu Ij5sYWJlbDwvc3Bhbj4gOiBsYWJlbCB0byBkaXNwbGF5IGFib3ZlIHRoZSBlbnRpcmUgb3V0 cHV0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0biI+bGFiZWx0YWc8L3NwYW4+IDogdGhl IChYKUhUTUwgdGFnIHRvIHN1cnJvdW5kIHRoZSBsYWJlbCB3aXRoLiBTcGVjaWZ5IGl0IHdp dGhvdXQgYW5nbGUgYnJhY2tldHMgKGUuZy4gPGNvZGU+bGFiZWx0YWc9JnF1b3Q7aDMmcXVv dDs8L2NvZGU+KTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG4iPndyYXB0YWc8L3NwYW4+ IDogdGhlIChYKUhUTUwgdGFnIHRvIHN1cnJvdW5kIHRoZSBlbnRpcmUgb3V0cHV0IChlLmcu IDxjb2RlPndyYXB0YWc9JnF1b3Q7dGFibGUmcXVvdDs8L2NvZGU+KTwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdG4iPmJyZWFrPC9zcGFuPiA6IGVhY2ggcm93IHdpbGwgYmUgd3JhcHBl ZCB3aXRoIHRoaXMgdGFnIChlLmcuIDxjb2RlPmJyZWFrPSZxdW90O3RyJnF1b3Q7PC9jb2Rl Pik8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRuIj5jbGFzczwvc3Bhbj4gOiA8c3BhbiBj bGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyBuYW1lIHRvIGFwcGx5IHRvIGVhY2ggcm93 PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0biI+ZGVidWc8L3NwYW4+IDogc2V0IHRvIDEg dG8gc2hvdyBzb21lIGRlYnVnIG91dHB1dDsgdXNlIDIgdG8gc2hvdyBhIGJpdCBtb3JlIGRl dGFpbDwvbGk+Cgk8L3VsPgoKCTxwPlRoZSBhdHRyaWJ1dGVzIDxjb2RlPnF1ZXJ5PC9jb2Rl PiwgPGNvZGU+Y29sdW1uPC9jb2RlPiwgPGNvZGU+dGFibGU8L2NvZGU+IGFuZCA8Y29kZT53 aGVyZTwvY29kZT4gY2FuIGNvbnRhaW4gcmVwbGFjZW1lbnRzIHRoZW1zZWx2ZXMgdG8gcmVh ZCB2YWx1ZXMgZnJvbSB0aGUgY3VycmVudCBhcnRpY2xlLiBTcGVjaWZ5IHRoZSBmaWVsZCBu YW1lIHdpdGggYSA8Y29kZT4/PC9jb2RlPiBpbiBmcm9udCBvZiBpdCAoZS5nLiA8Y29kZT5x dWVyeT0mcXVvdDtTRUxFQ1QgKiBGUk9NIHR4cF9pbWFnZSBXSEVSRSBjYXRlZ29yeT0mIzM5 Oz9jYXRlZ29yeTEmIzM5OyBPUiBjYXRlZ29yeT0mIzM5Oz9jYXRlZ29yeTImIzM5OzwvY29k ZT4pIHdvdWxkIHNob3cgaW1hZ2VzIHRoYXQgaGFkIHRoZWlyIGNhdGVnb3J5IHNldCB0byBv bmUgb2YgdGhlIGFydGljbGUmIzgyMTc7cyBjYXRlZ29yaWVzLjwvcD4KCgk8cD5UaGUgJiM4 MjE2Oz8mIzgyMTc7IGZpZWxkcyBjYW4gYmUgYW55IGl0ZW0gZnJvbSB0aGUgPHNwYW4gY2xh c3M9ImNhcHMiPlRYUDwvc3Bhbj4gdW5pdmVyc2UsIGluY2x1ZGluZyBhbnl0aGluZyBzZXQg aW4gYSA8Y29kZT4mbHQ7dHhwOnZhcmlhYmxlIC8mZ3Q7PC9jb2RlPiBvciBzb21lIHVzZXIt aW5wdXQgb24gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGFkZHJlc3MgYmFy LiBGaWVsZHMgYXJlIHByb2Nlc3NlZCBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOyBhcyBzb29u IGFzIGEgbWF0Y2hpbmcgZW50cnkgaXMgZm91bmQsIHRoZSByZXN0IGFyZSBub3QgY2hlY2tl ZDo8L3A+CgoJPHA+PGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSAvJmd0OzwvY29kZT4gLSZndDsg PGNvZGU+JF9TRVJWRVI8L2NvZGU+IHZhciAtJmd0OyBpbWFnZSAtJmd0OyBmaWxlIC0mZ3Q7 IGxpbmsgLSZndDsgZ2xvYmFsIGFydGljbGUgLSZndDsgY3VycmVudCBhcnRpY2xlIC0mZ3Q7 IDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZhciAtJmd0OyBkZWZhdWx0IHZhbHVl IC0mZ3Q7IHZlcmJhdGltICh3aXRob3V0ICYjODIxNjs/JiM4MjE3Oyk8L3A+CgoJPHA+VGhp cyBoaWVyYXJjaHkgYWxsb3dzIHNvbWUgZGVncmVlIG9mIHNhZmV0eTogc2luY2UgPHNwYW4g Y2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gdmFyaWFibGVzIGFyZSB1bHRpbWF0ZWx5IHNldCBi eSB5b3UsIHRoZXkgYXJlIGNoZWNrZWQgZmlyc3QsIHRoZW4gZ3JhZHVhbGx5IGxlc3Mgc3Bl Y2lmaWMgc3R1ZmYgaXMgY2hlY2tlZCB1bnRpbCA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9z cGFuPiB2YXJpYWJsZXMgYXJlIGNvbnNpZGVyZWQgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZm9v ZCBjaGFpbi48L3A+CgoJPGgyIGNsYXNzPSJhdHRzICIgaWQ9InJlcGxhY2VtZW50cyI+UmVw bGFjZW1lbnQgdGFnczwvaDI+CgoJPHA+SW4geW91ciBvdXRwdXQgZm9ybSB5b3UgbWF5IHNw ZWNpZnkgYW55IGNvbHVtbiBuYW1lIHN1cnJvdW5kZWQgd2l0aCA8Y29kZT57fTwvY29kZT4g Y2hhcmFjdGVycyB0byBkaXNwbGF5IHRoYXQgZmllbGQuIFNvIGlmIHlvdXIgcXVlcnkgd2Fz IDxjb2RlPlNFTEVDVCBpZCwgbmFtZSwgY2F0ZWdvcnkgRlJPTSB0eHBfaW1hZ2UgV0hFUkUg ZXh0PSZxdW90Oy5qcGcmcXVvdDs8L2NvZGU+IHlvdSB3b3VsZCBoYXZlIHRoZSBmb2xsb3dp bmcgcmVwbGFjZW1lbnRzIGF2YWlsYWJsZTo8L3A+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFz cz0iYXRuIj57aWR9PC9zcGFuPiA6IHRoZSBpbWFnZSBJRDwvbGk+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdG4iPntuYW1lfTwvc3Bhbj4gOiB0aGUgaW1hZ2UgZmlsZW5hbWU8L2xpPgoJCTxs aT48c3BhbiBjbGFzcz0iYXRuIj57Y2F0ZWdvcnl9PC9zcGFuPiA6IHRoZSBpbWFnZSBjYXRl Z29yeTwvbGk+Cgk8L3VsPgoKCTxwPkp1c3QgcHV0IHRob3NlIG5hbWVzIGludG8geW91ciA8 Y29kZT5mb3JtPC9jb2RlPiBhbW9uZyBvdGhlciBub3JtYWwgPHNwYW4gY2xhc3M9ImNhcHMi PkhUTUw8L3NwYW4+IG9yIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IHRhZ3MsIGFu ZCB0aGUgcmVsZXZhbnQgdmFsdWUgZnJvbSB0aGF0IHJvdyB3aWxsIGJlIGRpc3BsYXllZC4g VGhlIHJlcGxhY2VtZW50cyBob25vdXIgYW55IDxjb2RlPkFTPC9jb2RlPiBzdGF0ZW1lbnQg eW91IG1heSBlbXBsb3kgdG8gcmVuYW1lIHRoZW0uPC9wPgoKCTxwPkluIGFkZGl0aW9uLCB0 aGVyZSBhcmUgdGhyZWUgcmVwbGFjZW1lbnRzIGFkZGVkIHRvIGVhY2ggcm93OjwvcD4KCgk8 dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG4iPntzbWRfcm93c308L3NwYW4+IDogdGhlIHRv dGFsIG51bWJlciBvZiByb3dzIGluIHRoZSByZXN1bHQgc2V0PC9saT4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0biI+e3NtZF90aGlzcm93fTwvc3Bhbj4gOiB0aGUgY3VycmVudCByb3cgbnVt YmVyPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0biI+e3NtZF90aGlzaW5kZXh9PC9zcGFu PiA6IHRoZSBjdXJyZW50IHJvdyBudW1iZXIgKHplcm8tYmFzZWQpPC9saT4KCTwvdWw+CgoJ PHA+VGhlc2UgYXJlIHVzZWZ1bCBmb3IgdGFibGVzIHRvIHNob3cgcm93IG51bWJlcnMsIGJ1 dCBjYW4gYWxzbyBiZSB1c2VkIGZvciBwYWdpbmF0aW9uIG9yIGNhbiBiZSB0ZXN0ZWQgd2l0 aCBzbWRfaWYgdG8gdGFrZSBhY3Rpb24gZnJvbSB3aXRoaW4geW91ciBmb3JtLiA8Y29kZT57 c21kX3RoaXNyb3d9PC9jb2RlPiBhbmQgPGNvZGU+e3NtZF90aGlzaW5kZXh9PC9jb2RlPiBj b3VudCB1cCBvciBkb3duIGRlcGVuZGluZyBvbiB0aGUgPGNvZGU+Y291bnQ8L2NvZGU+IGF0 dHJpYnV0ZS48L3A+CgoJPGgyIGlkPSJmaWx0ZXJpbmciPkZpbHRlcmluZyBhbmQgaW5qZWN0 aW9uPC9oMj4KCgk8cD5BZnRlciBncmVhdCBkZWxpYmVyYXRpb24sIGFjY2VzcyB0byB0aGUg PHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gbGluZSBoYXMgYmVlbiBncmFudGVkIHNv IHlvdSBtYXkgZW1wbG95IHVzZXItZW50ZXJlZCBkYXRhIGluIHlvdXIgcXVlcmllcywgYWxs b3dpbmcgY29tcGxldGUgZmxleGliaWxpdHkgZm9yIHlvdXIgdXNlciBiYXNlLiBIb3dldmVy LCBhcyBQZXRlciBQYXJrZXImIzgyMTc7cyBjb25zY2llbmNlIG1pZ2h0IHNheTo8L3A+CgoJ PGJsb2NrcXVvdGU+CgkJPHA+V2l0aCBncmVhdCBwb3dlciBjb21lcyBncmVhdCByZXNwb25z aWJpbGl0eTwvcD4KCTwvYmxvY2txdW90ZT4KCgk8cD5Ob3QgZXZlcnlib2R5IG91dCB0aGVy ZSBpcyB0cnVzdHdvcnRoeSBzbyBoZWVkIHRoaXMgd2FybmluZzogPHN0cm9uZz5Bc3N1bWUg PHNwYW4gY2xhc3M9ImNhcHMiPkFMTDwvc3Bhbj4gdXNlciBpbnB1dCBpcyB0YWludGVkIGJ5 IGRlZmF1bHQ8L3N0cm9uZz4uIENoZWNrIGV2ZXJ5dGhpbmcuIElmIHlvdSB3YW50IHRvIGtu b3cgbW9yZSBhYm91dCB3aGF0IHBlb3BsZSBjYW4gZG8gd2l0aCBhY2Nlc3MgdG8gb25lIHNp bXBsZSBwb3J0aW9uIG9mIHlvdXIgPHNwYW4gY2xhc3M9ImNhcHMiPlNRTDwvc3Bhbj4gcXVl cnksIEdvb2dsZSBmb3IgJiM4MjE2OzxzcGFuIGNsYXNzPSJjYXBzIj5TUUw8L3NwYW4+IGlu amVjdGlvbiYjODIxNzsuPC9wPgoKCTxwPkZvciB0aG9zZSBzdGlsbCByZWFkaW5nLCB0aGUg Z29vZCBuZXdzIGlzIHRoYXQgdGhlIHBsdWdpbiBkb2VzIGV2ZXJ5dGhpbmcgaXQgY2FuIHRv IHByZS1maWx0ZXIgc3R1ZmYgb24gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+ IGxpbmUgYmVmb3JlIGl0IGdldHMgdG8gdGhlIHF1ZXJ5LiBUaGlzIHNob3VsZCBtYWtlIHlv dXIgdXNlciBpbnB1dCBzYWZlIGVub3VnaCwgYnV0IGZvciB0aGUgcGFyYW5vaWQgKG9yIHNl bnNpYmxlKSB0aGVyZSBhcmUgdHdvIGF0dHJpYnV0ZXMgeW91IGNhbiB1c2UgdG8gY2xhbXAg ZG93biBhbGxvd2FibGUgdXNlciBpbnB1dC4gSWYgeW91IGtub3cgYW55dGhpbmcgYWJvdXQg PGEgaHJlZj0iaHR0cDovL3d3dy5yZWd1bGFyLWV4cHJlc3Npb25zLmluZm8vcXVpY2tzdGFy dC5odG1sIj5yZWd1bGFyIGV4cHJlc3Npb25zPC9hPiBvciBhcmUgZmFtaWxpYXIgd2l0aCB0 aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlBIUDwvc3Bhbj4gZnVuY3Rpb24gPGEgaHJlZj0iaHR0 cDovL3VrMi5waHAubmV0L3ByZWdfcmVwbGFjZSI+cHJlZ19yZXBsYWNlKCk8L2E+IHRoZW4g eW91JiM4MjE3O2xsIGJlIHJpZ2h0IGF0IGhvbWUgYmVjYXVzZSwgcHV0IHNpbXBseSwgeW91 IGNhbiBvcHRpb25hbGx5IHBhc3MgZXZlcnkgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bh bj4gdmFyaWFibGUgdGhyb3VnaCBpdCB0byByZW1vdmUgc3R1ZmYgeW91IGRvbiYjODIxNzt0 IHdhbnQuPC9wPgoKCTxoMyBpZD0idXJsZmlsdGVyIj51cmxmaWx0ZXI8L2gzPgoKCTxwPlRo aXMgdGFrZXMgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCAoYXQgbGVhc3QgYnkgZGVmYXVsdDsg b3ZlcnJpZGUgdGhlIGNvbW1hIHdpdGggdGhlIDxjb2RlPmRlbGltPC9jb2RlPiBhdHRyaWJ1 dGUgaWYgeW91IG5lZWQgdG8gdXNlIGNvbW1hcyBpbiB5b3VyIGZpbHRlciBzdHJpbmdzKSBv ZiBjb21wbGV0ZSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybnMgdGhhdCB5b3Ugd2lzaCB0 byBzZWFyY2ggZm9yLCBpbiBldmVyeSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB2 YXJpYWJsZS4gRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50ZWQgdG8gZW5zdXJlIHRoYXQgeW91 ciB1c2VycyBvbmx5IGVudGVyZWQgZGlnaXRzIHlvdSBjb3VsZCBzcGVjaWZ5IHRoaXM6PC9w PgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+dXJsZmlsdGVyPSZx dW90Oy9bXlxkXSsvJnF1b3Q7CjwvY29kZT48L3ByZT4KCgk8cD5CcmllZmx5LCB0aGUgc3Rh cnRpbmcgYW5kIHRyYWlsaW5nIDxjb2RlPi88L2NvZGU+IG1hcmtzIGRlbGltaXQgYSByZWd1 bGFyIGV4cHJlc3Npb24gJiM4MjEyOyB0aGV5IG11c3QgYWx3YXlzIGJlIHByZXNlbnQuIFRo ZSBzcXVhcmUgYnJhY2tldHMgZGVub3RlIGEgZ3JvdXAgb2YgY2hhcmFjdGVycywgdGhlIGNp cmN1bWZsZXggbmVnYXRlcyB0aGUgZ3JvdXAsIHRoZSA8Y29kZT5cZDwvY29kZT4gbWVhbnMg JiM4MjIwO2FueSBkaWdpdCYjODIyMTsgYW5kIHRoZSA8Y29kZT4rPC9jb2RlPiBzcGVjaWZp ZXMgdGhhdCB5b3Ugd2FudCBpdCB0byBjaGVjayBmb3Igb25lIG9yIG1vcmUgb2YgdGhlIHBy ZWNlZGluZyB0aGluZ3MuIEluIG90aGVyIHdvcmRzLCBsb29rIGZvciBhbnl0aGluZyBpbiB0 aGUgaW5wdXQgdGhhdCBpcyA8c3Ryb25nPm5vdDwvc3Ryb25nPiBvbmUgb3IgbW9yZSBkaWdp dHMuIFRoYXQgd291bGQgbWF0Y2ggYW55IGxldHRlcnMsIHF1b3Rlcywgc3BlY2lhbCBjaGFy YWN0ZXJzLCBhbnl0aGluZyBhdCBhbGwgdGhhdCB3YXNuJiM4MjE3O3QgYSB6ZXJvIHRvIG5p bmUuPC9wPgoKCTxwPllvdSBjYW4gc3BlY2lmeSBtb3JlIHRoYW4gb25lIGZpbHRlciBsaWtl IHRoaXM6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+dXJs ZmlsdGVyPSZxdW90Oy9cZC8sIC9ccy8mcXVvdDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRoYXQg d291bGQgbG9vayBmb3IgYW55IHNpbmdsZSBkaWdpdCBhbmQgYW55IHNpbmdsZSBzcGFjZSBj aGFyYWN0ZXIuIFRoYXQmIzgyMTc7cyBhIHNpbXBsZSBleGFtcGxlIGFuZCB5b3UgY291bGQg ZG8gaXQgYWxsIGluIG9uZSByZWdleCwgYnV0IHNwbGl0dGluZyB0aGVtIHVwIGNhbiBoZWxw IHlvdSBmaWx0ZXIgc3R1ZmYgYmV0dGVyIChzZWUgPGEgaHJlZj0iI3VybHJlcGxhY2UiPnVy bHJlcGxhY2U8L2E+IGZvciBhbiBleGFtcGxlKS48L3A+CgoJPHA+QnkgZGVmYXVsdCwgaWYg eW91IGp1c3Qgc3BlY2lmeSA8Y29kZT51cmxmaWx0ZXI8L2NvZGU+IHdpdGhvdXQgPGNvZGU+ dXJscmVwbGFjZTwvY29kZT4sIGFueXRoaW5nIHRoYXQgbWF0Y2hlcyB5b3VyIGZpbHRlciBw YXR0ZXJucyB3aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgdXNlciBpbnB1dC48L3A+CgoJPGgz IGlkPSJ1cmxyZXBsYWNlIj51cmxyZXBsYWNlPC9oMz4KCgk8cD5UaGUgb3RoZXIgaGFsZiBv ZiB0aGUgZmlsdGVyaW5nIGppZ3NhdyBhbGxvd3MgeW91IHRvIG5vdCBqdXN0IHJlbW92ZSBh bnl0aGluZyB0aGF0IG1hdGNoZXMsIGJ1dCBhY3R1YWxseSByZXBsYWNlIGl0IHdpdGggc29t ZXRoaW5nIGVsc2UuIFNwZWNpZnkgYSBmaXhlZCBzdHJpbmcsIGEgbGlzdCBvZiBmaXhlZCBz dHJpbmdzIG9yIG1vcmUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gcGF0dGVybnMg dG8gcmVwbGFjZSB3aGF0ZXZlciBtYXRjaGVzIHlvdXIgPGNvZGU+dXJsZmlsdGVyPC9jb2Rl Pi4gVXNpbmcgdGhlIGZpcnN0IGZpbHRlciBleGFtcGxlIGZyb20gYWJvdmUsIHlvdSBjb3Vs ZCByZXBsYWNlIGFueXRoaW5nIHRoYXQgaXMgbm90IGEgZGlnaXQgd2l0aCBhIGh5cGhlbiBi eSBzcGVjaWZ5aW5nOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxv Y2siPnVybHJlcGxhY2U9JnF1b3Q7LSZxdW90Owo8L2NvZGU+PC9wcmU+CgoJPHA+U28gaWYg eW91IGFsbG93ZWQgYSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB2YXJpYWJsZSBj YWxsZWQgPGNvZGU+ZGlnaXRzPC9jb2RlPiBhbmQgYSBzaXRlIHZpc2l0b3IgZW50ZXJlZCA8 Y29kZT4/ZGlnaXRzPVphcGhvZCA0IFRyaWxsaWFuPC9jb2RlPiwgeW91ciA8c3BhbiBjbGFz cz0iY2FwcyI+VVJMPC9zcGFuPiB2YXJpYWJsZSB3b3VsZCBiZWNvbWU6IDxjb2RlPi0tLS0t LS00LS0tLS0tLS08L2NvZGU+LiBOb3QgbXVjaCB1c2UsIGJ1dCBoZXksIGl0JiM4MjE3O3Mg YW4gZXhhbXBsZSE8L3A+CgoJPHA+QXMgd2l0aCA8Y29kZT51cmxmaWx0ZXI8L2NvZGU+IHlv dSBjYW4gc3BlY2lmeSBtb3JlIHRoYW4gb25lIHJlcGxhY2VtZW50IGFuZCB0aGV5IHdpbGwg cGFpciB1cCB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgZmlsdGVyLiBJbiBvdGhlciB3b3Jk cywgaWYgeW91IHRha2UgdGhlIHNlY29uZCBmaWx0ZXIgYWJvdmUgKDxjb2RlPnVybGZpbHRl cj0mcXVvdDsvXGQvLCAvXHMvJnF1b3Q7PC9jb2RlPikgYW5kIHVzZWQgdGhpczo8L3A+Cgo8 cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj51cmxyZXBsYWNlPSZxdW90 OywgLSZxdW90Owo8L2NvZGU+PC9wcmU+CgoJPHA+VGhlbiBhbnkgZGlnaXQgaW4geW91ciB1 c2VyIGlucHV0IHdvdWxkIGJlIHJlbW92ZWQgKHRoZXJlIGlzIG5vdGhpbmcgYmVmb3JlIHRo ZSBjb21tYSkgYW5kIGFueSBzcGFjZSBjaGFyYWN0ZXIgd291bGQgYmUgcmVwbGFjZWQgd2l0 aCBhIGh5cGhlbi48L3A+CgoJPHA+SWYgYXQgYW55IHRpbWUgYSBmaWVsZCBnaXZlcyBhbiBl bXB0eSByZXN1bHQgKGkuZS4gaXQgdG90YWxseSBmYWlscyBhbnkgPGNvZGU+dXJsZmlsdGVy PC9jb2RlPiB0ZXN0cyBvciBzaW1wbHkgcmV0dXJucyBub3RoaW5nIGJlY2F1c2UgaXQgaGFz IG5vdCBiZWVuIHNldCksIGFueSA8Y29kZT5kZWZhdWx0czwvY29kZT4gYXNzaWduZWQgdG8g dGhhdCB2YXJpYWJsZSB3aWxsIGJlIHVzZWQgaW5zdGVhZC4gSWYgdGhlcmUgYXJlIG5vIGRl ZmF1bHRzLCB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGUgaXRzZWxmIChtaW51cyBpdHMgPGNv ZGU+PzwvY29kZT4pIHdpbGwgYmUgdXNlZC48L3A+CgoJPHA+V2l0aCB0aGVzZSB0d28gZmls dGVycyBhdCB5b3VyIGRpc3Bvc2FsIGFuZCB0aGUgYWJpbGl0eSB0byBzcGVjaWZ5IGRlZmF1 bHQgdmFsdWVzIGZvciB1c2VyIHZhcmlhYmxlcywgeW91IGNhbiBtYWtlIHlvdXIgcXVlcmll cyBtdWNoIHNhZmVyIHRvIHRoZSBvdXRzaWRlIHdvcmxkIGFuZCBzdGFydCB1c2luZyA8c3Bh biBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gZm9ybXMgdG8gZ2F0aGVyIGlucHV0IGZyb20g dXNlcnMgdGhhdCBjYW4gdGhlbiBiZSBwbHVnZ2VkIGludG8gcXVlcmllcywgZmFpcmx5IHNh ZmUgaW4gdGhlIGtub3dsZWRnZSB0aGF0IHlvdXIgZGF0YWJhc2UgaXMgbm90IGdvaW5nIHRv IGltcGxvZGUuPC9wPgoKCTxwPkJ1dCBwbGVhc2UgcmVtZW1iZXI6PC9wPgoKCTxibG9ja3F1 b3RlPgoJCTxwPjxzdHJvbmc+QWxsPC9zdHJvbmc+IHVzZXIgaW5wdXQgaXMgdGFpbnRlZCBi eSBkZWZhdWx0OiBjaGVjayBldmVyeXRoaW5nLjwvcD4KCTwvYmxvY2txdW90ZT4KCgk8aDIg aWQ9ImV4YW1wbGVzIj5FeGFtcGxlczwvaDI+CgoJPGgzIGlkPSJlZzEiPkV4YW1wbGUgMTog U2ltcGxlIGltYWdlIHNlbGVjdCBxdWVyeTwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNv ZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9xdWVyeSBjb2x1bW49JnF1b3Q7KiZxdW90 OwogICAgIHRhYmxlPSZxdW90O3R4cF9pbWFnZSZxdW90OwogICAgIHdoZXJlPSZxdW90O2Nh dGVnb3J5PSYjMzk7bWFtbWFsJiMzOTsgT1IgY2F0ZWdvcnk9JiMzOTtiaXJkJiMzOTsmcXVv dDsKICAgICBmb3JtPSZxdW90O2Rib3V0JnF1b3Q7IHdyYXB0YWc9JnF1b3Q7dWwmcXVvdDsg YnJlYWs9JnF1b3Q7bGkmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPldpdGggZm9y bSA8Y29kZT5kYm91dDwvY29kZT4gY29udGFpbmluZzo8L3A+Cgo8cHJlIGNsYXNzPSJibG9j ayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7YSBocmVmPSZxdW90Oy9pbWFnZXMve2lkfXtl eHR9JnF1b3Q7IC8mZ3Q7Jmx0O3R4cDp0aHVtYm5haWwgbmFtZT0mcXVvdDt7bmFtZX0mcXVv dDsgLyZndDsmbHQ7L2EmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5XaWxsIHJlbmRlciBhbiB1 bm9yZGVyZWQgbGlzdCBvZiB0aHVtYm5haWxzIHdpdGggbGlua3MgdG8gdGhlIGZ1bGxzaXpl IGltYWdlIGlmIHRoZSBjYXRlZ29yeSBpcyBlaXRoZXIgPGNvZGU+bWFtbWFsPC9jb2RlPiBv ciA8Y29kZT5iaXJkPC9jb2RlPi48L3A+CgoJPGgzIGlkPSJlZzIiPkV4YW1wbGUgMjogbGlu ayBjYXRlZ29yeSBsaXN0IHRvIHBhcmVudDwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNv ZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9xdWVyeSBxdWVyeT0mcXVvdDtTRUxFQ1Qg RElTVElOQ1QKICAgICB0eGMubmFtZSBGUk9NIHR4cF9jYXRlZ29yeSBBUyB0eGMsIHRleHRw YXR0ZXJuIEFTIHR4cAogICAgIFdIRVJFIHR5cGU9JiMzOTthcnRpY2xlJiMzOTsgQU5EIHBh cmVudD0mIzM5O2FuaW1hbHMmIzM5OwogICAgIEFORCAodHhjLm5hbWUgPSB0eHAuY2F0ZWdv cnkxIE9SIHR4Yy5uYW1lID0gdHhwLmNhdGVnb3J5MikKICAgICBmb3JtPSZxdW90O2Rib3V0 JnF1b3Q7IHdyYXB0YWc9JnF1b3Q7dWwmcXVvdDsgYnJlYWs9JnF1b3Q7bGkmcXVvdDsgLyZn dDsKPC9jb2RlPjwvcHJlPgoKCTxwPldpdGggZm9ybSA8Y29kZT5kYm91dDwvY29kZT4gY29u dGFpbmluZzo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4m bHQ7dHhwOmNhdGVnb3J5IG5hbWU9JnF1b3Q7e25hbWV9JnF1b3Q7IGxpbms9JnF1b3Q7MSZx dW90OyB0aXRsZT0mcXVvdDsxJnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5XaWxs IHJlbmRlciBhIGxpc3Qgb2YgbGlua2FibGUgY2F0ZWdvcnkgbmFtZXMgdGhhdCBjb250YWlu IGFydGljbGVzIHdpdGggY2F0ZWdvcmllcyB0aGF0IGhhdmUgdGhlIGdpdmVuIHBhcmVudC4g SWYgYSBjYXRlZ29yeSBpcyB1bnVzZWQgaXQgd2lsbCBub3QgYmUgbGlzdGVkLjwvcD4KCgk8 aDMgaWQ9ImVnMyI+RXhhbXBsZSAzOiBjaGlsZCBjYXRlZ29yeSBjb3VudHM8L2gzPgoKPHBy ZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcXVlcnkg cXVlcnk9JnF1b3Q7U0VMRUNUIERJU1RJTkNUCiAgICAgdHhjLm5hbWUsIENPVU5UKCopIEFT IGNvdW50IEZST00gdHhwX2NhdGVnb3J5IEFTIHR4YywKICAgICB0ZXh0cGF0dGVybiBBUyB0 eHAKICAgICBXSEVSRSB0eXBlPSYjMzk7YXJ0aWNsZSYjMzk7IEFORCBwYXJlbnQ9JiMzOTs/ Y3VzdG9tMyYjMzk7CiAgICAgQU5EICh0eGMubmFtZSA9IHR4cC5jYXRlZ29yeTEgT1IgdHhj Lm5hbWUgPSB0eHAuY2F0ZWdvcnkyKQogICAgIEdST1VQIEJZIHR4Yy5uYW1lJnF1b3Q7CiAg ICAgZm9ybT0mcXVvdDtkYm91dCZxdW90OyB3cmFwdGFnPSZxdW90O3VsJnF1b3Q7IGJyZWFr PSZxdW90O2xpJnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5XaXRoIGZvcm0gPGNv ZGU+ZGJvdXQ8L2NvZGU+IGNvbnRhaW5pbmc6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxj b2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpjYXRlZ29yeSBuYW1lPSZxdW90O3tuYW1lfSZx dW90OyBsaW5rPSZxdW90OzEmcXVvdDsgdGl0bGU9JnF1b3Q7MSZxdW90OyAvJmd0OyAoe2Nv dW50fSkKPC9jb2RlPjwvcHJlPgoKCTxwPldpbGwgcmVhZCB0aGUgcGFyZW50IGl0ZW0gZnJv bSB0aGUgPGNvZGU+Y3VzdG9tMzwvY29kZT4gZmllbGQgYW5kIHJlbmRlciBhIHNpbWlsYXIg bGlzdCB0byBFeGFtcGxlIDIgYnV0IHdpdGggdGhlIGFydGljbGUgY291bnRzIGFkZGVkIGlu IHBhcmVudGhlc2VzIGFmdGVyd2FyZHMuPC9wPgoKCTxoMyBpZD0iZWc0Ij5FeGFtcGxlIDQ6 IFRvcCAxMCBkb3dubG9hZHM8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNz PSJibG9jayI+Jmx0O3R4cDpzbWRfcXVlcnkgY29sdW1uPSZxdW90OyomcXVvdDsgdGFibGU9 JnF1b3Q7dHhwX2ZpbGUmcXVvdDsKICAgICB3aGVyZT0mcXVvdDsoY2F0ZWdvcnk9JiMzOTs/ Y2F0ZWdvcnkxJiMzOTsgT1IgY2F0ZWdvcnk9JiMzOTs/Y2F0ZWdvcnkyJiMzOTspCiAgICAg QU5EIHN0YXR1cz00IE9SREVSIEJZIGRvd25sb2FkcyBkZXNjIExJTUlUIDEwJnF1b3Q7CiAg ICAgd3JhcHRhZz0mcXVvdDt0YWJsZSZxdW90OyBicmVhaz0mcXVvdDt0ciZxdW90OwogICAg IGxhYmVsPSZxdW90O01vc3QgcG9wdWxhciBkb3dubG9hZHMmcXVvdDsgbGFiZWx0YWc9JnF1 b3Q7aDMmcXVvdDsmZ3Q7CiAgJmx0O3RkJmd0OyZsdDt0eHA6ZmlsZV9kb3dubG9hZF9saW5r IGlkPSZxdW90O3tpZH0mcXVvdDsmZ3Q7e2ZpbGVuYW1lfSZsdDsvdHhwOmZpbGVfZG93bmxv YWRfbGluayZndDsmbHQ7L3RkJmd0OwogICZsdDt0ZCZndDt7ZGVzY3JpcHRpb259Jmx0Oy90 ZCZndDsKICAmbHQ7dGQmZ3Q7ZG93bmxvYWRzOiB7ZG93bmxvYWRzfSZsdDsvdGQmZ3Q7CiZs dDt0eHA6ZWxzZSAvJmd0OwogICZsdDtwJmd0O05vIHJlY2VudCBkb3dubG9hZHMsIHNvcnJ5 Jmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfcXVlcnkmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5U aGlzIG9uZSB1c2VzIHRoZSBwbHVnaW4gYXMgYSBjb250YWluZXIgdGFnIGluc3RlYWQgb2Yg YSBmb3JtIGFuZCB0YWJ1bGF0ZXMgdGhlIHRvcCAxMCBkb3dubG9hZHMgKHN0YXR1cz1saXZl KSB0aGF0IGhhdmUgYSBjYXRlZ29yeSBtYXRjaGluZyBlaXRoZXIgb2YgdGhlIGN1cnJlbnQg YXJ0aWNsZSYjODIxNztzIGNhdGVnb3JpZXMsIHdpdGggbW9zdCBwb3B1bGFyIGxpc3RlZCBm aXJzdC4gSWYgdGhlcmUgYXJlIG5vIGRvd25sb2FkcywgdGhlIDxjb2RlPiZsdDt0eHA6ZWxz ZSAvJmd0OzwvY29kZT4gcG9ydGlvbiBkaXNwbGF5cyBhIG1lc3NhZ2UuPC9wPgoKCTxoMyBp ZD0iZWc1Ij5FeGFtcGxlIDU6IEFydGljbGUga2V5d29yZHMgcmVsYXRlZCB0byBsaW5rPC9o Mz4KCgk8cD5WZXJ5IGludGVyZXN0aW5nIHVzZSBjYXNlIGhlcmUuIFB1dCB0aGlzIGluIHRo ZSBwbGFpbmxpbmtzIGZvcm06PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNz PSJibG9jayI+Jmx0O3R4cDpsaW5rZGVzY3RpdGxlIC8mZ3Q7CiZsdDt0eHA6c21kX3F1ZXJ5 IHF1ZXJ5PSZxdW90O1NFTEVDVCBESVNUSU5DVAogICAgIHR4cC5pZCwgdHhwLnRpdGxlIEZS T00gdGV4dHBhdHRlcm4gQVMgdHhwCiAgICAgV0hFUkUgKHR4cC5rZXl3b3JkcyBMSUtFICYj Mzk7JSw/Y2F0ZWdvcnklLCYjMzk7CiAgICAgT1IgdHhwLmtleXdvcmRzIExJS0UgJiMzOTsl P2NhdGVnb3J5JSwmIzM5OwogICAgIE9SIHR4cC5rZXl3b3JkcyBMSUtFICYjMzk7JSw/Y2F0 ZWdvcnklJiMzOTspCiAgICAgR1JPVVAgQlkgdHhwLnRpdGxlJnF1b3Q7CiAgICAgd3JhcHRh Zz0mcXVvdDt1bCZxdW90OyBicmVhaz0mcXVvdDtsaSZxdW90OyZndDsKICAmbHQ7dHhwOnBl cm1saW5rIGlkPSZxdW90O3tpZH0mcXVvdDsmZ3Q7e3RpdGxlfSZsdDsvdHhwOnBlcm1saW5r Jmd0OwombHQ7L3R4cDpzbWRfcXVlcnkmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5XaGVuIHlv dSBleGVjdXRlIDxjb2RlPiZsdDt0eHA6bGlua2xpc3QgLyZndDs8L2NvZGU+IGZyb20gYSBw YWdlIHlvdSB3aWxsIGdldCBhIGxpc3Qgb2YgbGlua3MgYXMgdXN1YWwsIGJ1dCB1bmRlciBl YWNoIG9uZSB5b3Ugd2lsbCBzZWUgYSBoeXBlcmxpbmtlZCBsaXN0IG9mIGFydGljbGVzIHRo YXQgYXJlIHJlbGF0ZWQgKGJ5IGtleXdvcmQpIHRvIHRoZSBjYXRlZ29yeSBvZiB0aGUgbGlu ay48L3A+CgoJPHA+VGhlIHJlYXNvbiBpdCBpcyBjb21wYXJlZCB0aHJlZSB0aW1lcyBpcyBi ZWNhdXNlIGFydGljbGUga2V5d29yZHMgYXJlIHN0b3JlZCBsaWtlIHRoaXMgaW4gdGhlIGRh dGFiYXNlOjwvcD4KCgk8cD48Y29kZT5nb3Zlcm5tZW50LGNvbnNwaXJhY3ksaWQsY2FyZCxk YXRhLGJpb21ldHJpYyxiYWQsaWRlYTwvY29kZT48L3A+CgoJPHA+SWYgZWFjaCBjYXRlZ29y eSB3b3JkIHdhcyBjb21wYXJlZCBvbmx5IG9uY2Ugd2l0aG91dCBjb21tYXMgKGkuZS4gPGNv ZGU+dHhwLmtleXdvcmRzIExJS0UgJiMzOTslP2NhdGVnb3J5JSYjMzk7PC9jb2RlPikgdGhl biBhIGxpbmsgd2l0aCBjYXRlZ29yeSA8Y29kZT5waXJhY3k8L2NvZGU+IHdvdWxkIGNhdXNl IGFueSBhcnRpY2xlIGNvbnRhaW5pbmcga2V5d29yZCA8Y29kZT5jb25zcGlyYWN5PC9jb2Rl PiB0byBiZSBpbmNsdWRlZC4gRXNzZW50aWFsbHksIGJ5IGNvbXBhcmluZyB0aGUgY2F0ZWdv cnkgZWl0aGVyIHN1cnJvdW5kZWQgYnkgY29tbWFzLCB3aXRoIGEgY29tbWEgYWZ0ZXIgaXQs IG9yIHdpdGggYSBjb21tYSBiZWZvcmUgaXQsIHRoZSBzZWFyY2ggaXMgcmVzdHJpY3RlZCB0 byBvbmx5IG1hdGNoIHdob2xlIHdvcmRzLjwvcD4KCgk8aDMgaWQ9ImVnNiI+RXhhbXBsZSA2 OiBDb21wYXJpc29uIGluIHF1ZXJpZXM8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2Rl IGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcXVlcnkgcXVlcnk9JnF1b3Q7U0VMRUNUICoK ICAgICBGUk9NIHR4cF9maWxlIFdIRVJFIGRvd25sb2FkcyAmYW1wO2d0Oz0gNDImcXVvdDsm Z3Q7CiAgJmx0O3R4cDpmaWxlX2Rvd25sb2FkX2xpbmsgaWQ9JnF1b3Q7e2lkfSZxdW90OyZn dDsKICAgICB7ZmlsZW5hbWV9CiAgJmx0Oy90eHA6ZmlsZV9kb3dubG9hZF9saW5rJmd0Owom bHQ7L3R4cDpzbWRfcXVlcnkmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5TaG93cyBsaW5rcyB0 byBhbGwgZG93bmxvYWRzIHdoZXJlIHRoZSBkb3dubG9hZCBjb3VudCBpcyBncmVhdGVyIHRo YW4gb3IgZXF1YWwgdG8gNDIuIE5vdGUgdGhhdCB1bmRlciA8c3BhbiBjbGFzcz0iY2FwcyI+ VFhQPC9zcGFuPiA0LjAuNiBhbmQgYmVsb3cgeW91IG11c3QgdXNlIHRoZSA8c3BhbiBjbGFz cz0iY2FwcyI+SFRNTDwvc3Bhbj4gZW50aXR5IG5hbWVzIGZvciA8Y29kZT4mYW1wO2d0Ozwv Y29kZT4gYW5kIDxjb2RlPiZhbXA7bHQ7PC9jb2RlPiBvciB0aGUgcGFyc2VyIGdldHMgY29u ZnVzZWQuPC9wPgoKCTxoMyBpZD0iZWc3Ij5FeGFtcGxlIDc6IHVuZmlsdGVyZWQgPHNwYW4g Y2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gcGFyYW1zIChiYWQpPC9oMz4KCgk8cD4oYSBiYWQg cXVlcnkpPC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0 O3R4cDp2YXJpYWJsZSBuYW1lPSZxdW90O2N1dG9mZiZxdW90OwogICAgIHZhbHVlPSZxdW90 OzQyJnF1b3Q7IC8mZ3Q7CiZsdDt0eHA6c21kX3F1ZXJ5IHF1ZXJ5PSZxdW90O1NFTEVDVCBU aXRsZQogICAgIEZST00gdGV4dHBhdHRlcm4KICAgICBXSEVSRSBpZCAmbHQ7ICYjMzk7P3Vz ZXJjdXQmIzM5OyZxdW90OwogICAgIGRlZmF1bHRzPSZxdW90O3VzZXJjdXQ6ID9jdXRvZmYm cXVvdDsmZ3Q7CiAgICZsdDt0eHA6cGVybWxpbmsmZ3Q7e1RpdGxlfSZsdDsvdHhwOnBlcm1s aW5rJmd0OwombHQ7L3R4cDpzbWRfcXVlcnkmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5TaG93 cyBoeXBlcmxpbmtzIHRvIG9ubHkgdGhvc2UgYXJ0aWNsZXMgd2l0aCBhbiBJRCBiZWxvdyB0 aGUgbnVtYmVyIGdpdmVuIGJ5IHRoZSB1c2VyIG9uIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+ VVJMPC9zcGFuPiBsaW5lLiBJZiB0aGUgdmFsdWUgaXMgbm90IHN1cHBsaWVkLCB0aGUgZGVm YXVsdCB2YWx1ZSBmcm9tIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiB2YXJp YWJsZSBpcyB1c2VkIGluc3RlYWQgKDQyIGluIHRoaXMgY2FzZSkuPC9wPgoKCTxwPjxzdHJv bmc+PHNwYW4gY2xhc3M9ImNhcHMiPk5PVEU8L3NwYW4+PC9zdHJvbmc+OiB2YWxpZGF0aW9u IGlzIG5vdCBwZXJmb3JtZWQgYW5kIHlvdSBjYW5ub3QgZ3VhcmFudGVlIHRoYXQgdGhlIDxj b2RlPnVzZXJjdXQ8L2NvZGU+IHZhcmlhYmxlIGlzIGdvaW5nIHRvIGJlIG51bWVyaWMuIFlv dSBzaG91bGQgbm90IHVzZSB0aGlzIHF1ZXJ5IG9uIGEgcHJvZHVjdGlvbiBzaXRlIHVubGVz cyB5b3UgYWRkIGEgPGNvZGU+dXJsZmlsdGVyPC9jb2RlPiB0byByZW1vdmUgYW55IG5vbi1u dW1lcmljIGNoYXJhY3RlcnMgKHNlZSBuZXh0IGV4YW1wbGUgZm9yIGEgYmV0dGVyIHF1ZXJ5 KS48L3A+CgoJPGgzIGlkPSJlZzgiPkV4YW1wbGUgODogZmlsdGVyZWQgPHNwYW4gY2xhc3M9 ImNhcHMiPlVSTDwvc3Bhbj4gcGFyYW1zIChiZXR0ZXIhKTwvaDM+Cgo8cHJlIGNsYXNzPSJi bG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9xdWVyeSBxdWVyeT0mcXVv dDtTRUxFQ1QgVGl0bGUKICAgICBGUk9NIHRleHRwYXR0ZXJuCiAgICAgV0hFUkUgc3RhdHVz ID0gJiMzOTs/dXNlcl9zdGF0dXMmIzM5OyZxdW90OwogICAgIHVybGZpbHRlcj0mcXVvdDsv W14xLTVdLyZxdW90OwogICAgIGRlZmF1bHRzPSZxdW90O3VzZXJfc3RhdHVzOiA0JnF1b3Q7 Jmd0OwogICAmbHQ7dHhwOnBlcm1saW5rJmd0O3tUaXRsZX0mbHQ7L3R4cDpwZXJtbGluayZn dDsKJmx0Oy90eHA6c21kX3F1ZXJ5Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+UHVsbHMgYWxs IGFydGljbGVzIG91dCBvZiB0aGUgZGF0YWJhc2UgdGhhdCBtYXRjaCB0aGUgZ2l2ZW4gc3Rh dHVzLiBUaGlzIGlzIGEgbW9yZSByb2J1c3QgcXVlcnkgdGhhbiBFeGFtcGxlIDcgYmVjYXVz ZSBpdCBjaGVja3MgaWYgdGhlIDxjb2RlPnVzZXJfc3RhdHVzPC9jb2RlPiBmaWVsZCBpcyAx LCAyLCAzLCA0LCBvciA1ICh0aGUgcmVnZXggc3BlY2lmaWVzIHRvIHJlbW92ZSBldmVyeXRo aW5nIGZyb20gdGhlIHVzZXJfc3RhdHVzIHZhcmlhYmxlIHRoYXQgaXMgbm90IGluIHRoZSBy YW5nZSAxLTUpLiBJZiB0aGlzIGNvbmRpdGlvbiBpcyBub3QgbWV0ICYjODIxMjsgZS5nLiB0 aGUgdXNlciBzcGVjaWZpZXMgPGNvZGU+dXNlcl9zdGF0dXM9NjwvY29kZT4gb3IgPGNvZGU+ dXNlcl9zdGF0dXM9JnF1b3Q7YWJjJnF1b3Q7PC9jb2RlPiAmIzgyMTI7IHRoZW4gdXNlcl9z dGF0dXMgd2lsbCBiZSBzZXQgdG8gPGNvZGU+NDwvY29kZT4uIE5vdGUgdGhhdCB1c2luZyA8 Y29kZT51c2VyX3N0YXR1cz0mcXVvdDtaYXBob2QgNCBUcmlsbGlhbiZxdW90OzwvY29kZT4g b24gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGFkZHJlc3MgYmFyIHdpbGwg YWN0dWFsbHkgcGFzcyB0aGUgdGVzdCBiZWNhdXNlIGFsbCBjaGFyYWN0ZXJzIG90aGVyIHRo YW4gdGhlIG51bWJlciAmIzgyMTY7NCYjODIxNzsgd2lsbCBiZSByZW1vdmVkLjwvcD4KCgk8 cD5Zb3UgY291bGQgdXNlIGEgPGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSAvJmd0OzwvY29kZT4g aWYgeW91IHdpc2ggYW5kIHNldCBhbGwgeW91ciBkZWZhdWx0cyBpbiBhIHNwZWNpYWwgZm9y bSwgcmVhZHkgdG8gdXNlIHRocm91Z2hvdXQgeW91ciBwYWdlLiBJbiB0aGF0IGNhc2UgJiM4 MjEyOyBpZiB5b3UgaGFkIGNyZWF0ZWQgYSB2YXJpYWJsZSBjYWxsZWQgPGNvZGU+ZGZsdF9z dGF0PC9jb2RlPiAmIzgyMTI7IHlvdSBtaWdodCBwcmVmZXIgdG8gdXNlIDxjb2RlPmRlZmF1 bHRzPSZxdW90O3VzZXJfc3RhdHVzOiA/ZGZsdF9zdGF0JnF1b3Q7PC9jb2RlPi48L3A+CgoJ PHA+UXVlcnktdGFzdGljIDotKTwvcD4KCgk8aDMgaWQ9ImVnOSI+RXhhbXBsZSA5OiBVc2lu ZyBwcmVwYXJzZSB3aXRoIDxjb2RlPiZsdDt0eHA6eWllbGQgLyZndDs8L2NvZGU+PC9oMz4K Cgk8cD5Tb21ldGltZXMgeW91IG1heSB3YW50IHRvIHJlLXVzZSBhIHF1ZXJ5IGluIGEgZmV3 IHBsYWNlcyB0aHJvdWdob3V0IHlvdXIgc2l0ZSBhbmQgc2hvdyBkaWZmZXJlbnQgY29udGVu dC4gRm9yIGV4YW1wbGUsIHRoZSBzYW1lIHF1ZXJ5IGNvdWxkIGJlIHVzZWQgZm9yIGxvZ2dl ZC1pbiBhbmQgbm90LWxvZ2dlZC1pbiB1c2VycyBidXQgeW91JiM4MjE3O2Qgc2VlIG1vcmUg ZGV0YWlsIGlmIHlvdSB3ZXJlIGxvZ2dlZCBpbi4gTm9ybWFsbHkgeW91IHdvdWxkIG5lZWQg dG8gd3JpdGUgdGhlIHF1ZXJ5IG1vcmUgdGhhbiBvbmNlLCB3aGljaCBpcyBmYXIgZnJvbSBp ZGVhbC4gVGhpcyB0ZWNobmlxdWUgYWxsb3dzIHlvdSB0byB3cml0ZSB0aGUgcXVlcnkganVz dCBvbmNlIGFuZCByZXVzZSB0aGUgZm9ybS4gUHV0IHRoaXMgaW4gYSBmb3JtIGNhbGxlZCA8 Y29kZT51c2VyX3RhYmxlPC9jb2RlPjo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUg Y2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9xdWVyeSBxdWVyeT0mcXVvdDtTRUxFQ1QgKiBG Uk9NIHR4cF91c2VycyZxdW90OwogICAgIHdyYXB0YWc9JnF1b3Q7dGFibGUmcXVvdDsgYnJl YWs9JnF1b3Q7dHImcXVvdDsgcHJlcGFyc2U9JnF1b3Q7MSZxdW90OyZndDsKICAgJmx0O3R4 cDp5aWVsZCAvJmd0OwombHQ7L3R4cDpzbWRfcXVlcnkmZ3Q7CjwvY29kZT48L3ByZT4KCgk8 cD5Vc2luZyA8Y29kZT4mbHQ7dHhwOm91dHB1dF9mb3JtJmd0OzwvY29kZT4gYXMgYSBjb250 YWluZXIgKGluIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IDQuMi4wIG9yIGhpZ2hl cikgeW91IGNhbiB0aGVuIGNhbGwgdGhlIHF1ZXJ5IGxpa2UgdGhpcyB0byBzaG93IGJhc2lj IGluZm86PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0 O3R4cDpvdXRwdXRfZm9ybSBmb3JtPSZxdW90O3VzZXJfdGFibGUmcXVvdDsmZ3Q7CiZsdDt0 ZCZndDt7bmFtZX0mbHQ7L3RkJmd0OwombHQ7dGQmZ3Q7e1JlYWxOYW1lfSZsdDsvdGQmZ3Q7 CiZsdDsvdHhwOm91dHB1dF9mb3JtJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+YW5kIGxpa2Ug dGhpcyBmb3IgbW9yZSBkZXRhaWxlZCBvdXRwdXQ6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2si Pjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpvdXRwdXRfZm9ybSBmb3JtPSZxdW90O3Vz ZXJfdGFibGUmcXVvdDsmZ3Q7CiZsdDt0ZCZndDt7bmFtZX0mbHQ7L3RkJmd0OwombHQ7dGQm Z3Q7e1JlYWxOYW1lfSZsdDsvdGQmZ3Q7CiZsdDt0ZCZndDt7ZW1haWx9Jmx0Oy90ZCZndDsK Jmx0O3RkJmd0O3tsYXN0X2FjY2Vzc30mbHQ7L3RkJmd0OwombHQ7L3R4cDpvdXRwdXRfZm9y bSZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPk5vdGUgdGhhdCB3aGVuIHVzaW5nIHNtZF9xdWVy eSBpbiB0aGlzIG1hbm5lciB5b3UgbXVzdCByZW1lbWJlciB0byB1c2UgPGNvZGU+cHJlcGFy c2U9JnF1b3Q7MSZxdW90OzwvY29kZT4gYmVjYXVzZSB5b3UgbmVlZCB0byBmZXRjaCB0aGUg Y29udGVudHMgb2YgdGhlIHNtZF9xdWVyeSBjb250YWluZXIgKHRoZSA8Y29kZT4mbHQ7dHhw OnlpZWxkIC8mZ3Q7PC9jb2RlPiB0YWcgaW4gdGhpcyBjYXNlKSwgcGFyc2UgaXQgc28gaXQg Z2V0cyB0aGUgY29udGVudHMgb2YgPGNvZGU+Jmx0O3R4cDpvdXRwdXRfZm9ybSZndDs8L2Nv ZGU+JiM4MjE3O3MgY29udGFpbmVyIGFuZCA8ZW0+dGhlbjwvZW0+IGFwcGxpZXMgdGhlIHJl cGxhY2VtZW50cy4gV2l0aG91dCB0aGUgPGNvZGU+cHJlcGFyc2U8L2NvZGU+LCB0aGUgcGx1 Z2luIHRyaWVzIHRvIGFwcGx5IHRoZSByZXBsYWNlbWVudHMgZGlyZWN0bHkgdG8gdGhlIHNt ZF9xdWVyeSBjb250YWluZXIsIHdoaWNoIGRvZXMgbm90IGFjdHVhbGx5IGNvbnRhaW4gYW55 IDxjb2RlPnsuLi59PC9jb2RlPiB0YWdzLjwvcD4KCgk8aDIgY2xhc3M9ImNoYW5nZWxvZyI+ Q2hhbmdlbG9nPC9oMj4KCgk8dWw+CgkJPGxpPjIyIE1heSAwOCB8IDAuMSB8IEluaXRpYWwg cmVsZWFzZTwvbGk+CgkJPGxpPjIzIE1heSAwOCB8IDAuMTEgfCBBbGxvd2VkIG1hdGhzIGlu IHF1ZXJpZXMgKHVzZSBodG1sIGVudGl0aWVzIGluIFRYUDQuMC42KSBhbmQgZml4ZWQgPHNw YW4gY2xhc3M9ImNhcHMiPldIRVJFPC9zcGFuPiBjbGF1c2UgdG8gZGVmYXVsdCB0byAxPTEg aWYgbm9uZSBzdXBwbGllZCAoYm90aCB0aGFua3Mgam0pIDsgYWRkZWQgbW9yZSBkZXRhaWxl ZCBmaWxlIGFuZCBsaW5rIHN1cHBvcnQ8L2xpPgoJCTxsaT4xNCBKdWwgMDggfCAwLjEyIHwg QWRkZWQgPGNvZGU+dHhwOmVsc2U8L2NvZGU+IHN1cHBvcnQgaW4gY29udGFpbmVyICh0aGFu a3MgamFrb2IpIDsgYWRkZWQgPGNvZGU+c2lsZW50PC9jb2RlPiBhbmQgPGNvZGU+Y291bnQ8 L2NvZGU+IGF0dHJpYnV0ZXMsIGFuZCB0aGUgcmVwbGFjZW1lbnQgdGFncyA8Y29kZT57c21k X3Jvd3N9IHtzbWRfdGhpc3Jvd30ge3NtZF90aGlzaW5kZXh9PC9jb2RlPjwvbGk+CgkJPGxp PjIzIE5vdiAwOCB8IDAuMiB8IEFkZGVkIDxjb2RlPiZsdDt0eHA6dmFyaWFibGUgLyZndDs8 L2NvZGU+IHN1cHBvcnQgOyBlbmFibGVkIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+ IHZhcmlhYmxlIHN1cHBvcnQgOyBhZGRlZCA8Y29kZT51cmxmaWx0ZXI8L2NvZGU+LCA8Y29k ZT51cmxyZXBsYWNlPC9jb2RlPiwgPGNvZGU+ZGVsaW08L2NvZGU+LCA8Y29kZT5wYXJhbWRl bGltPC9jb2RlPiBhbmQgPGNvZGU+ZGVmYXVsdHM8L2NvZGU+IGF0dHJpYnV0ZXM8L2xpPgoJ CTxsaT4xNyBNYXIgMDkgfCAwLjIxIHwgQWRkZWQgPGNvZGU+JF9TRVJWRVI8L2NvZGU+IHZh ciBzdXBwb3J0PC9saT4KCQk8bGk+MTYgT2N0IDA5IHwgMC4yMiB8IEFkZGVkIDxjb2RlPmVz Y2FwZTwvY29kZT4gYXR0cmlidXRlICh0aGFua3MgamFrb2IpIDsgYWRkZWQgPGNvZGU+cHJl cGFyc2U8L2NvZGU+IGF0dHJpYnV0ZTwvbGk+Cgk8L3VsPgoKPC9kaXY+CjwhLS0gKioqIEJF R0lOIFBMVUdJTiBDU1MgKioqIC0tPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgojc21kX2hl bHAgeyBsaW5lLWhlaWdodDoxLjQ1IDt9CiNzbWRfaGVscCBjb2RlIHsgZm9udC13ZWlnaHQ6 Ym9sZDsgZm9udDogMTA1JS8xMzAlICJDb3VyaWVyIE5ldyIsIGNvdXJpZXIsIG1vbm9zcGFj ZTsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZDQzt9CiNzbWRfaGVscCBjb2RlLmJsb2NrIHsg Zm9udC13ZWlnaHQ6bm9ybWFsOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyBiYWNrZ3JvdW5k LWNvbG9yOiAjZjBlNjhjOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MTBweCAxMHB4IDIwcHg7 IHBhZGRpbmc6MTBweDsgfQojc21kX2hlbHAgYTpsaW5rLCAjc21kX2hlbHAgYTp2aXNpdGVk IHsgY29sb3I6IGJsdWU7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRvbTog MXB4IHNvbGlkIGJsdWU7IHBhZGRpbmctYm90dG9tOjFweDt9CiNzbWRfaGVscCBhOmhvdmVy LCAjc21kX2hlbHAgYTphY3RpdmUgeyBjb2xvcjogYmx1ZTsgdGV4dC1kZWNvcmF0aW9uOiBu b25lOyBib3JkZXItYm90dG9tOiAycHggc29saWQgYmx1ZTsgcGFkZGluZy1ib3R0b206MXB4 O30KI3NtZF9oZWxwIGgxIHsgY29sb3I6ICMzNjk7IGZvbnQ6IDIwcHggR2VvcmdpYSwgc2Fu cy1zZXJpZjsgbWFyZ2luOiAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KI3NtZF9oZWxwIGgy IHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOjEwcHggMCAwOyBj b2xvcjogIzM2OTsgZm9udDogMTdweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyB9CiNzbWRfaGVs cCBoMyB7IGNvbG9yOiAjNjkzOyBmb250OiBib2xkIDEycHggQXJpYWwsIHNhbnMtc2VyaWY7 IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBweCAwIDA7dGV4dC10cmFuc2Zvcm06 IHVwcGVyY2FzZTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9CiNzbWRfaGVscCBoNCB7 IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFw eDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfQojc21k X2hlbHAgLmF0biB7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0KI3NtZF9oZWxwIC5tYW5kIHsgYmFj a2dyb3VuZDojZWVlOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyB9CiNzbWRfaGVscCB0YWJs ZSB7d2lkdGg6OTAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZy1ib3R0b206MWVtO30K I3NtZF9oZWxwIHRkLCAjc21kX2hlbHAgdGgge2JvcmRlcjoxcHggc29saWQgIzk5OTsgcGFk ZGluZzouNWVtIDA7fQojc21kX2hlbHAgdWwgeyBsaXN0LXN0eWxlLXR5cGU6c3F1YXJlOyB9 CiNzbWRfaGVscCBsaSB7IG1hcmdpbi1sZWZ0OjM1cHg7IH0KI3NtZF9oZWxwIC5icmVhayB7 IG1hcmdpbi10b3A6NXB4OyB9Cjwvc3R5bGU+CjwhLS0gKioqIEVORCBQTFVHSU4gQ1NTICoq KiAtLT4KIjtzOjM6Im1kNSI7czozMjoiYzg4OTg2MGE0MDU4ZDE4MzdkNDQ5NWQ5ZDMzMjkz OWEiO30=