# Name: smd_random_text v0.13 # Type: Public side plugin # Random text from file, database, string or TXP field/variable # 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: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjE1OiJzbWRfcmFuZG9tX3RleHQiO3M6NjoiYXV0aG9yIjtz OjExOiJTdGVmIERhd3NvbiI7czoxMDoiYXV0aG9yX3VyaSI7czoyMjoiaHR0cDovL3N0ZWZk YXdzb24uY29tLyI7czo3OiJ2ZXJzaW9uIjtzOjQ6IjAuMTMiO3M6MTE6ImRlc2NyaXB0aW9u IjtzOjYxOiJSYW5kb20gdGV4dCBmcm9tIGZpbGUsIGRhdGFiYXNlLCBzdHJpbmcgb3IgVFhQ IGZpZWxkL3ZhcmlhYmxlIjtzOjQ6ImNvZGUiO3M6NDkzODoiZnVuY3Rpb24gc21kX3JhbmRv bV90ZXh0KCRhdHRzLCAkdGhpbmc9TlVMTCkgew0KCWdsb2JhbCAkdHhwY2ZnLCAkdmFyaWFi bGUsICRwcmV0ZXh0LCAkdGhpc2FydGljbGUsICR0aGlzZmlsZSwgJHRoaXNsaW5rLCAkdGhp c2ltYWdlOw0KDQoJZXh0cmFjdChsQXR0cyhhcnJheSgNCgkJJ3R5cGUnID0+ICdzdHJpbmcn LA0KCQknc291cmNlJyA9PiAnaGVsbG8gd29ybGQnLA0KCQknZGVsaW0nID0+ICd8JywNCgkJ J2ZpbGVfZGVsaW0nID0+ICdcbicsDQoJCSdvdXRfZGVsaW0nID0+ICcsJywNCgkJJ2l0ZW1f bnVtJyA9PiAnJywNCgkJJ3NodWZmbGUnID0+ICcwJywNCgkJJ3RyaW0nID0+ICcxJywNCgkJ J2VzY2FwZScgPT4gJ2h0bWwnLA0KCQknZm9ybScgPT4gJycsDQoJCSdsaW1pdCcgPT4gJzEn LA0KCQknY291bnQnID0+ICd1cCcsDQoJCSd3cmFwdGFnJyA9PiAnJywNCgkJJ2JyZWFrJyA9 PiAnJywNCgkJJ3Zhcl9wcmVmaXgnID0+ICdzbWRfcm5kX3R4dCcsDQoJCSdjbGFzcycgPT4g JycsDQoJCSdkZWJ1ZycgPT4gJzAnLA0KCSksICRhdHRzKSk7DQoNCgkkc3JjcHQgPSBleHBs b2RlKCRkZWxpbSwgJHNvdXJjZSk7DQoJJGxpbWl0ID0gKCRsaW1pdCA8IDEpID8gMSA6ICRs aW1pdDsNCgkkZnJvbSA9IGFycmF5KCk7DQoJJGl0ZW1zID0gYXJyYXkoKTsNCgkkbXVsdGly b3cgPSAxOw0KDQoJc3dpdGNoICgkdHlwZSkgew0KCQljYXNlICJmaWVsZCI6DQoJCQlpZiAo aXNzZXQoJHRoaXNmaWxlWyRzcmNwdFswXV0pICYmICR0aGlzZmlsZVskc3JjcHRbMF1dICE9 ICIiKSB7DQoJCQkJJGZyb20gPSAkdGhpc2ZpbGVbJHNyY3B0WzBdXTsNCgkJCX0gZWxzZSBp ZiAoaXNzZXQoJHRoaXNsaW5rWyRzcmNwdFswXV0pICYmICR0aGlzbGlua1skc3JjcHRbMF1d ICE9ICIiKSB7DQoJCQkJJGZyb20gPSAkdGhpc2xpbmtbJHNyY3B0WzBdXTsNCgkJCX0gZWxz ZSBpZiAoaXNzZXQoJHRoaXNpbWFnZVskc3JjcHRbMF1dKSAmJiAkdGhpc2ltYWdlWyRzcmNw dFswXV0gIT0gIiIpIHsNCgkJCQkkZnJvbSA9ICR0aGlzaW1hZ2VbJHNyY3B0WzBdXTsNCgkJ CX0gZWxzZSBpZiAoaXNzZXQoJHByZXRleHRbJHNyY3B0WzBdXSkgJiYgJHByZXRleHRbJHNy Y3B0WzBdXSAhPSAiIikgew0KCQkJCSRmcm9tID0gJHByZXRleHRbJHNyY3B0WzBdXTsNCgkJ CX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNhcnRpY2xlWyRzcmNwdFswXV0pICYmICR0aGlzYXJ0 aWNsZVskc3JjcHRbMF1dICE9ICIiKSB7DQoJCQkJJGZyb20gPSAkdGhpc2FydGljbGVbJHNy Y3B0WzBdXTsNCgkJCX0NCgkJCWlmICgkZnJvbSkgew0KCQkJCSRmcm9tID0gZXhwbG9kZSgk ZGVsaW0sICRmcm9tKTsNCgkJCQkkbGltaXQgPSAoY291bnQoJGZyb20pIDwgJGxpbWl0KSA/ IGNvdW50KCRmcm9tKSA6ICRsaW1pdDsNCgkJCQkkaXRlbXMgPSAoJGl0ZW1fbnVtICE9ICcn KSA/ICgoY291bnQoJGZyb20pID49ICRpdGVtX251bSkgPyAkaXRlbV9udW0gOiAwKSA6IGFy cmF5X3JhbmQoJGZyb20sICRsaW1pdCk7DQoJCQl9DQoJCQlicmVhazsNCgkJY2FzZSAidHhw dmFyIjoNCgkJCSRmcm9tID0gZXhwbG9kZSgkZGVsaW0sICR2YXJpYWJsZVskc3JjcHRbMF1d KTsNCgkJCSRsaW1pdCA9IChjb3VudCgkZnJvbSkgPCAkbGltaXQpID8gY291bnQoJGZyb20p IDogJGxpbWl0Ow0KCQkJJGl0ZW1zID0gKCRpdGVtX251bSAhPSAnJykgPyAoKGNvdW50KCRm cm9tKSA+PSAkaXRlbV9udW0pID8gJGl0ZW1fbnVtIDogMCkgOiBhcnJheV9yYW5kKCRmcm9t LCAkbGltaXQpOw0KCQkJYnJlYWs7DQoJCWNhc2UgInVybHZhciI6DQoJCQkkZnJvbSA9IGV4 cGxvZGUoJGRlbGltLCBncHMoJHNyY3B0WzBdKSk7DQoJCQkkbGltaXQgPSAoY291bnQoJGZy b20pIDwgJGxpbWl0KSA/IGNvdW50KCRmcm9tKSA6ICRsaW1pdDsNCgkJCSRpdGVtcyA9ICgk aXRlbV9udW0gIT0gJycpID8gKChjb3VudCgkZnJvbSkgPj0gJGl0ZW1fbnVtKSA/ICRpdGVt X251bSA6IDApIDogYXJyYXlfcmFuZCgkZnJvbSwgJGxpbWl0KTsNCgkJCWJyZWFrOw0KCQlj YXNlICJkYXRhYmFzZSI6DQoJCQkkd2hlcmUgPSAiMT0xIE9SREVSIEJZIFJBTkQoKSBMSU1J VCAiLiRsaW1pdDsNCgkJCSRmcm9tID0gc2FmZV9yb3dzKCRzcmNwdFsxXSwgJHNyY3B0WzBd LCAkd2hlcmUsICRkZWJ1Zyk7DQoJCQkkbXVsdGlyb3cgPSBjb3VudChleHBsb2RlKCcsJywg JHNyY3B0WzFdKSk7DQoJCQkkbGltaXQgPSBjb3VudCgkZnJvbSk7DQoJCQkkaXRlbXMgPSAo JGl0ZW1fbnVtICE9ICcnKSA/ICgoY291bnQoJGZyb20pID49ICRpdGVtX251bSkgPyAkaXRl bV9udW0gOiAwKSA6IGFycmF5X2tleXMoJGZyb20pOw0KCQkJYnJlYWs7DQoJCWNhc2UgImZp bGUiOg0KCQkJJHBhdGggPSAkdHhwY2ZnWydkb2Nfcm9vdCddLigoc3Vic3RyKCRzcmNwdFsw XSwgMCwgMSk9PScvJykgPyAnJyA6ICcvJykuJHNyY3B0WzBdOw0KCQkJaWYgKCRkZWJ1Zykg ew0KCQkJCWVjaG8gIisrIEZJTEUgUEFUSCArKyI7DQoJCQkJZG1wKCRwYXRoKTsNCgkJCX0N CgkJCWlmIChmaWxlX2V4aXN0cygkcGF0aCkpIHsNCgkJCQkkZnJvbSA9IGRvQXJyYXkoZmls ZSgkcGF0aCksICdydHJpbScpOw0KCQkJCWlmICgkZmlsZV9kZWxpbSAhPSAnXG4nKSB7DQoJ CQkJCSRmcm9tID0gZXhwbG9kZSgkZmlsZV9kZWxpbSwgJGZyb21bMF0pOw0KCQkJCX0NCgkJ CQkkbGltaXQgPSAoY291bnQoJGZyb20pIDwgJGxpbWl0KSA/IGNvdW50KCRmcm9tKSA6ICRs aW1pdDsNCgkJCQkkaXRlbXMgPSAoJGl0ZW1fbnVtICE9ICcnKSA/ICgoY291bnQoJGZyb20p ID49ICRpdGVtX251bSkgPyAkaXRlbV9udW0gOiAwKSA6IGFycmF5X3JhbmQoJGZyb20sICRs aW1pdCk7DQoJCQl9DQoJCQlicmVhazsNCgkJY2FzZSAic3RyaW5nIjoNCgkJZGVmYXVsdDoN CgkJCSRmcm9tID0gJHNyY3B0Ow0KCQkJJGxpbWl0ID0gKGNvdW50KCRmcm9tKSA8ICRsaW1p dCkgPyBjb3VudCgkZnJvbSkgOiAkbGltaXQ7DQoJCQkkaXRlbXMgPSAoJGl0ZW1fbnVtICE9 ICcnKSA/ICgoY291bnQoJGZyb20pID49ICRpdGVtX251bSkgPyAkaXRlbV9udW0gOiAwKSA6 IGFycmF5X3JhbmQoJGZyb20sICRsaW1pdCk7DQoJCQlicmVhazsNCgl9DQoNCgkvLyBGb3Jj ZSBhcnJheSBpZiBpdCBpc24ndCBhbHJlYWR5IChzb21lIFBIUCBmdW5jdGlvbnMgcmV0dXJu IHNpbmdsZSB2YWx1ZXMpDQoJaWYgKCFpc19hcnJheSgkaXRlbXMpKSB7DQoJCSRpdGVtcyA9 IGFycmF5KCRpdGVtcyk7DQoJfQ0KDQoJaWYgKCRzaHVmZmxlKSB7DQoJCXNodWZmbGUoJGl0 ZW1zKTsNCgl9DQoNCglpZiAoJG11bHRpcm93ID09IDEpIHsNCgkJJGZyb20gPSAoJHRyaW0p ID8gZG9BcnJheSgkZnJvbSwgJ3RyaW0nKSA6ICRmcm9tOw0KCX0NCg0KCWlmICgkZGVidWcp IHsNCgkJZWNobyAiKysgSVRFTSBQT09MICsrIjsNCgkJZG1wKCRmcm9tKTsNCgkJZWNobyAi KysgQ0hPU0VOIElURU1TICsrIjsNCgkJZG1wKCRpdGVtcyk7DQoJfQ0KCWlmICgkZGVidWcg PiAyKSB7DQoJCWVjaG8gIisrIFBSRVRFWFQgKysiOw0KCQlkbXAoJHByZXRleHQpOw0KCQll Y2hvICIrKyBUSElTIEZJTEUgKysiOw0KCQlkbXAoJHRoaXNmaWxlKTsNCgkJZWNobyAiKysg VEhJUyBMSU5LICsrIjsNCgkJZG1wKCR0aGlzbGluayk7DQoJCWVjaG8gIisrIFRISVMgSU1B R0UgKysiOw0KCQlkbXAoJHRoaXNpbWFnZSk7DQoJCWVjaG8gIisrIFRISVMgQVJUSUNMRSAr KyI7DQoJCWRtcCgkdGhpc2FydGljbGUpOw0KCX0NCg0KCS8vIEZpbmQgb3V0IGhvdyB0byBw bG9uayB0aGUgb3V0cHV0DQoJJHdoYXQgPSAoJGZvcm0pID8gZmV0Y2hfZm9ybSgkZm9ybSkg OiAoKCR0aGluZykgPyAkdGhpbmcgOiAneycuJHZhcl9wcmVmaXguJ30nKTsNCg0KCS8vIFBp Y2sgdGhlIGdpdmVuICRpdGVtcyBrZXlzIG91dCBvZiB0aGUgJGZyb20gYXJyYXkgYW5kIGRp c3BsYXkgdGhlbQ0KCSRvdXQgPSBhcnJheSgpOw0KCSRjdHIgPSAoJGNvdW50PT0idXAiKSA/ IDAgOiAkbGltaXQtMTsNCglmb3JlYWNoICgkaXRlbXMgYXMgJGl0ZW0pIHsNCgkJJHJlcGxh Y2VtZW50ID0gYXJyYXkoKTsNCgkJaWYgKGlzX2FycmF5KCRmcm9tWyRpdGVtXSkpIHsNCgkJ CWZvcmVhY2ggKCRmcm9tWyRpdGVtXSBhcyAkamR4ID0+ICR2YWwpIHsNCgkJCQkkdmFsID0g KCR0cmltKSA/IHRyaW0oJHZhbCkgOiAkdmFsOw0KCQkJCSRyZXBsYWNlbWVudFsneycuJHZh cl9wcmVmaXguJ18nLiRqZHguJ30nXSA9ICgkZXNjYXBlID09ICdodG1sJykgPyBodG1sc3Bl Y2lhbGNoYXJzKCR2YWwpIDogJHZhbDsNCgkJCX0NCgkJCSRmcm9tWyRpdGVtXSA9IGpvaW4o JG91dF9kZWxpbSwgJGZyb21bJGl0ZW1dKTsNCgkJCSRmcm9tWyRpdGVtXSA9ICgkdHJpbSkg PyB0cmltKCRmcm9tWyRpdGVtXSkgOiAkZnJvbVskaXRlbV07DQoJCX0NCgkJJHJlcGxhY2Vt ZW50Wyd7Jy4kdmFyX3ByZWZpeC4nfSddID0gKCRlc2NhcGUgPT0gJ2h0bWwnKSA/IGh0bWxz cGVjaWFsY2hhcnMoJGZyb21bJGl0ZW1dKSA6ICRmcm9tWyRpdGVtXTsNCgkJJHJlcGxhY2Vt ZW50Wyd7Jy4kdmFyX3ByZWZpeC4nX3Jvd3N9J10gPSAkbGltaXQ7DQoJCSRyZXBsYWNlbWVu dFsneycuJHZhcl9wcmVmaXguJ190aGlzaW5kZXh9J10gPSAkY3RyOw0KCQkkcmVwbGFjZW1l bnRbJ3snLiR2YXJfcHJlZml4LidfdGhpc3Jvd30nXSA9ICRjdHIgKyAxOw0KCQkkcmVwbGFj ZW1lbnRbJ3snLiR2YXJfcHJlZml4LidfY2hvc2VuX2l0ZW19J10gPSAkaXRlbTsNCgkJaWYg KCRkZWJ1ZyA+IDEpIHsNCgkJCWVjaG8gIisrIFJFUExBQ0VNRU5UUyArKyI7DQoJCQlkbXAo JHJlcGxhY2VtZW50KTsNCgkJfQ0KCQkkb3V0W10gPSBwYXJzZShzdHJ0cigkd2hhdCwgJHJl cGxhY2VtZW50KSk7DQoJCSRjdHIgPSAoJGNvdW50PT0idXAiKSA/ICRjdHIrMSA6ICRjdHIt MTsNCgl9DQoNCglyZXR1cm4gZG9XcmFwKCRvdXQsICR3cmFwdGFnLCAkYnJlYWssICRjbGFz cyk7DQp9IjtzOjQ6InR5cGUiO3M6MToiMCI7czo1OiJvcmRlciI7czoxOiI1IjtzOjU6ImZs YWdzIjtzOjE6IjAiO3M6NDoiaGVscCI7czoxNDYyMjoiPGRpdiBpZD0ic21kX2hlbHAiPgoK CTxoMT5zbWRfcmFuZG9tX3RleHQ8L2gxPgoKCTxwPkNob29zZSByYW5kb20gdGV4dCBzdHJp bmdzIGZyb20gYSB2YXJpZXR5IG9mIHNvdXJjZXMuIENvdWxkIGJlIHVzZWQgYXMgYSBxdW90 ZS1vZi10aGUtZGF5IHN5c3RlbSwgcmFuZG9tIHRhZyBsaW5lcywgb3Igc29tZXRoaW5nIG1v cmUgZWxhYm9yYXRlLjwvcD4KCgk8aDI+RmVhdHVyZXM8L2gyPgoKCTx1bD4KCQk8bGk+UHVs bCB0aGUgaXRlbSBsaXN0IGZyb20gZWl0aGVyOgoJPHVsPgoJCTxsaT5hIGdpdmVuIGRlbGlt aXRlZCBzdHJpbmc8L2xpPgoJCTxsaT5hIGZpbGU8L2xpPgoJCTxsaT5hIGRhdGFiYXNlIHRh YmxlPC9saT4KCQk8bGk+YSA8Y29kZT4mbHQ7dHhwOnZhcmlhYmxlIC8mZ3Q7PC9jb2RlPjwv bGk+CgkJPGxpPnVzZXItc3VibWl0dGVkIGZvcm0gZGF0YTwvbGk+CgkJPGxpPmEgVGV4dHBh dHRlcm4gZmllbGQ8L2xpPgoJPC91bD48L2xpPgoJCTxsaT5HcmFiIGFzIG1hbnkgcmFuZG9t IGl0ZW1zIGFzIHlvdSBsaWtlIGZyb20geW91ciBjaG9zZW4gbGlzdDwvbGk+CgkJPGxpPlBh c3MgZWFjaCB0byBhIGZvcm0vdGhlIGNvbnRhaW5lciBpZiB5b3Ugd2lzaCB0byBmb3JtYXQg dGhlbTwvbGk+Cgk8L3VsPgoKCTxoMj5BdXRob3I8L2gyPgoKCTxwPjxhIGhyZWY9Imh0dHA6 Ly9zdGVmZGF3c29uLmNvbS9jb250YWN0Ij5TdGVmIERhd3NvbjwvYT4uIENvbWJpbmVzIGlk ZWFzIGZyb20gZHJ1X3JhbmRvbV90ZXh0IGJ5IERyZXcgTWNMZWxsYW4gYW5kIHNpbXBsZV9y YW5kb21fdGV4dCBieSBNYW51ZWwgRWJlcnQsIHBsdXMgc29tZSBzcHJpbmtsaW5ncyBvZiBt eSBvd24uIE1hbnkgdGhhbmtzIHRvIHRoZSBhdXRob3JzIG9mIHRob3NlIHdvcmtzLjwvcD4K Cgk8aDI+SW5zdGFsbGF0aW9uIC8gVW5pbnN0YWxsYXRpb248L2gyPgoKCTxwPkRvd25sb2Fk IHRoZSBwbHVnaW4gZnJvbSBlaXRoZXIgPGEgaHJlZj0iaHR0cDovL3RleHRwYXR0ZXJuLm9y Zy9wbHVnaW5zLzEwMjIvc21kX3JhbmRvbV90ZXh0Ij50ZXh0cGF0dGVybi5vcmc8L2E+LCBv ciB0aGUgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL3N3Ij5zb2Z0d2FyZSBwYWdl PC9hPiwgcGFzdGUgdGhlIGNvZGUgaW50byB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwv c3Bhbj4gQWRtaW4gLSZndDsgUGx1Z2lucyBwYW5lLCBpbnN0YWxsIGFuZCBlbmFibGUgdGhl IHBsdWdpbi4gVmlzaXQgdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5j b20vdmlld3RvcGljLnBocD9waWQ9MTkwNjc1Ij5mb3J1bSB0aHJlYWQ8L2E+IGZvciBtb3Jl IGluZm8gb3IgdG8gcmVwb3J0IG9uIHRoZSBzdWNjZXNzIG9yIG90aGVyd2lzZSBvZiB0aGUg cGx1Z2luLjwvcD4KCgk8cD5UbyB1bmluc3RhbGwsIHNpbXBseSBkZWxldGUgZnJvbSB0aGUg PGVtPkFkbWluIC0mZ3Q7IFBsdWdpbnM8L2VtPiBwYWdlLjwvcD4KCgk8aDI+VXNhZ2U8L2gy PgoKCTxwPlVzZSB0aGUgdGFnIGluIGFueSBwYWdlLCBmb3JtIG9yIGFydGljbGUvZmlsZS9p bWFnZS9saW5rIGNvbnRleHQuPC9wPgoKCTxoMyBjbGFzcz0idGFnIj5zbWRfcmFuZG9tX3Rl eHQ8L2gzPgoKCTxwIGNsYXNzPSJ0YWctc3VtbWFyeSI+VGhlcmUgYXJlIHR3byBtYW5kYXRv cnkgYXR0cmlidXRlczogPGNvZGU+dHlwZTwvY29kZT4gYW5kIDxjb2RlPnNvdXJjZTwvY29k ZT4uIFRoZSBvdGhlcnMgYXJlIHVzZWQgdG8gY29udHJvbCBob3cgdGhlIGluZm9ybWF0aW9u IGlzIGV4dHJhY3RlZCBhbmQvb3IgcHJlc2VudGVkLjwvcD4KCgk8aDQgY2xhc3M9ImF0dHMi Pk1hbmRhdG9yeSBhdHRyaWJ1dGVzPC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dG5tIG1hbmQiPnR5cGU8L3NwYW4+IDogd2hlcmUgdG8gbG9vayBmb3IgdGhlIHBvb2wgb2Yg dGV4dCBzdHJpbmdzLiBDYW4gYmUgb25lIG9mIDxjb2RlPnN0cmluZzwvY29kZT4gKHRoZSBk ZWZhdWx0KSwgPGNvZGU+ZmllbGQ8L2NvZGU+LCA8Y29kZT50eHB2YXI8L2NvZGU+LCA8Y29k ZT51cmx2YXI8L2NvZGU+LCA8Y29kZT5kYXRhYmFzZTwvY29kZT4sIG9yIDxjb2RlPmZpbGU8 L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0gbWFuZCI+c291cmNlPC9zcGFu PiA6IGZ1cnRoZXIgcmVmaW5lbWVudCBvZiB3aGVyZSB0byBmaW5kIHRoZSBzdHJpbmdzIHVz aW5nIHRoZSBmb2xsb3dpbmcgcnVsZXM6Cgk8dWw+CgkJPGxpPjxzcGFuPnN0cmluZzwvc3Bh bj4gOiBhIGRlbGltaXRlZCBsaXN0IG9mIHRleHQgKGUuZy4gPGNvZGU+c291cmNlPSZxdW90 O215fGNyYWNraW5nfHdvcmRzfG9mfHRoZXxkYXl8aW4gYSBuYXR0eSBsaXR0bGV8bGlzdCZx dW90OzwvY29kZT4pPC9saT4KCQk8bGk+PHNwYW4+ZmllbGQ8L3NwYW4+IDogdGhlIG5hbWUg b2YgdGhlIFRleHRwYXR0ZXJuIGZpZWxkIHRvIGxvb2sgaW4gKGUuZy4gPGNvZGU+c291cmNl PSZxdW90O2FydGljbGVfaW1hZ2UmcXVvdDs8L2NvZGU+IG9yIDxjb2RlPnNvdXJjZT0mcXVv dDtteV9jdXN0b21fZmllbGRfbmFtZSZxdW90OzwvY29kZT4pPC9saT4KCQk8bGk+PHNwYW4+ dHhwdmFyPC9zcGFuPiA6IHRoZSBuYW1lIG9mIGEgPGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSAv Jmd0OzwvY29kZT4gdGhhdCBoYXMgYmVlbiBkZWZpbmVkIChlLmcuIDxjb2RlPnNvdXJjZT0m cXVvdDtteV9saXN0JnF1b3Q7PC9jb2RlPik8L2xpPgoJCTxsaT48c3Bhbj51cmx2YXI8L3Nw YW4+IDogdGhlIG5hbWUgb2YgYSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB2YXJp YWJsZSAodmlhIDxzcGFuIGNsYXNzPSJjYXBzIj5HRVQ8L3NwYW4+IG9yIDxzcGFuIGNsYXNz PSJjYXBzIj5QT1NUPC9zcGFuPikgdGhhdCB3aWxsIGJlIHBhc3NlZCB0byB0aGUgcGFnZSAo ZS5nLiA8Y29kZT5zb3VyY2U9JnF1b3Q7cHJvcGVydHlfbGlzdCZxdW90OzwvY29kZT4pPC9s aT4KCQk8bGk+PHNwYW4+ZGF0YWJhc2U8L3NwYW4+IDogdGhlIHRhYmxlIGFuZCBjb2x1bW4g bmFtZSwgc2VwYXJhdGVkIGJ5IDxjb2RlPmRlbGltPC9jb2RlPiAoZS5nLiA8Y29kZT5zb3Vy Y2U9JnF1b3Q7dHhwX2NhdGVnb3J5fHRpdGxlJnF1b3Q7PC9jb2RlPikuIFlvdSBtYXkgc3Bl Y2lmeSBtb3JlIHRoYW4gb25lIGNvbHVtbiBmcm9tIHRoZSBzYW1lIHRhYmxlIGJ5IGxpc3Rp bmcgdGhlbSBzZXBhcmF0ZWQgYnkgY29tbWEuIEZvciBleGFtcGxlIDxjb2RlPnNvdXJjZT0m cXVvdDt0eHBfZGlzY3Vzc3xtZXNzYWdlLG5hbWUsZGlzY3Vzc2lkJnF1b3Q7PC9jb2RlPjwv bGk+CgkJPGxpPjxzcGFuPmZpbGU8L3NwYW4+IDogYSBmaWxlIG5hbWUgcmVsYXRpdmUgdG8g dGhlIHJvb3Qgb2YgeW91ciBzaXRlLCB3aXRoIG9yIHdpdGhvdXQgbGVhZGluZyBzbGFzaCAo ZS5nLiA8Y29kZT5zb3VyY2U9JnF1b3Q7ZmlsZXMvbXlfc3RyaW5ncy50eHQmcXVvdDs8L2Nv ZGU+KTwvbGk+Cgk8L3VsPjwvbGk+Cgk8L3VsPgoKCTxoNCBjbGFzcz0iYXR0cyI+Rm9ybWF0 dGluZzwvaDQ+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+bGltaXQ8L3NwYW4+ IDogdGhlIG51bWJlciBvZiBpdGVtcyB0byBwdWxsIGZyb20gdGhlIGxpc3QuIERlZmF1bHRz IHRvIDEuIElmIHlvdSBzcGVjaWZ5IG1vcmUgdGhhbiB0aGUgYXZhaWxhYmxlIG51bWJlciBv ZiBpdGVtcyBpbiB0aGUgcG9vbCwgdGhlIGVudGlyZSBwb29sIHdpbGwgYmUgdXNlZCBhbmQg cHJlc2VudGVkIGluIGEgcmFuZG9tIG9yZGVyPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 bm0iPmZvcm08L3NwYW4+IDogdGhlIGZvcm0gdG8gdXNlIHRvIGZvcm1hdCB0aGUgdGV4dC4g SWYgbm90IHN1cHBsaWVkLCB3aWxsIHRyeSB0aGUgY29udGFpbmVyLiBJZiB0aGF0JiM4MjE3 O3Mgbm90IHVzZWQgZWl0aGVyLCB0aGUgcGx1Z2luIHdpbGwgc2ltcGx5IG91dHB1dCB0aGUg Y2hvc2VuIHRleHQgb24gaXRzIG93bjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5j b3VudDwvc3Bhbj4gOiB3aGV0aGVyIHRvIGNvdW50IDxjb2RlPnVwPC9jb2RlPiAodGhlIGRl ZmF1bHQpIG9yIDxjb2RlPmRvd248L2NvZGU+IGZvciBlYWNoIHJhbmRvbSBwaWVjZSBvZiB0 ZXh0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnRyaW08L3NwYW4+IDogd2hldGhl ciB0byByZW1vdmUgd2hpdGVzcGFjZSBmcm9tIGFyb3VuZCBlYWNoIGxpc3QgaXRlbSAoMSkg b3Igbm90ICgwKS4gRGVmYXVsdDogMTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5l c2NhcGU8L3NwYW4+IDogZXNjYXBlIDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiBl bnRpdGllcyBzdWNoIGFzIDxjb2RlPiZsdDs8L2NvZGU+LCA8Y29kZT4mZ3Q7PC9jb2RlPiBh bmQgPGNvZGU+JmFtcDs8L2NvZGU+IGluIGFueSB0ZXh0IGl0ZW1zLiBVc2UgPGNvZGU+ZXNj YXBlPSZxdW90OyZxdW90OzwvY29kZT4gdG8gdHVybiBpdCBvZmYuIERlZmF1bHQ6IDxjb2Rl Pmh0bWw8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPndyYXB0YWc8L3Nw YW4+IDogdGhlIChYKUhUTUwgdGFnIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgY2hvc2VuIHN0 cmluZ3MsIGUuZy4gPGNvZGU+d3JhcHRhZz0mcXVvdDt1bCZxdW90OzwvY29kZT4uIERlZmF1 bHQ6IHVuc2V0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmJyZWFrPC9zcGFuPiA6 IHRoZSAoWClIVE1MIHRhZyB0byBwdXQgYmV0d2VlbiBzdWNjZXNzaXZlIGl0ZW1zIG9mIHRl eHQsIGUuZy4gPGNvZGU+YnJlYWs9JnF1b3Q7bGkmcXVvdDs8L2NvZGU+LiBEZWZhdWx0OiB1 bnNldDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5jbGFzczwvc3Bhbj4gOiB0aGUg PHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gY2xhc3MgdG8gYXBwbHkgdG8gdGhlIGl0 ZW0gd3JhcHRhZywgZS5nLiA8Y29kZT5jbGFzcz0mcXVvdDtyYW5kb21fc3RyaW5ncyZxdW90 OzwvY29kZT4uIERlZmF1bHQ6IHVuc2V0PC9saT4KCTwvdWw+CgoJPGg0IGNsYXNzPSJhdHRz Ij5QbHVnaW4gY29uZmlndXJhdGlvbjwvaDQ+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0i YXRubSI+ZGVsaW08L3NwYW4+IDogdGhlIGRlbGltaXRlciB0byB1c2UgYmV0d2VlbiB3b3Jk cy9hdHRyaWJ1dGUgb3B0aW9ucy4gRGVmYXVsdDogcGlwZSA8Y29kZT58PC9jb2RlPjwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5maWxlX2RlbGltPC9zcGFuPiA6IHRoZSBkZWxp bWl0ZXIgdG8gdXNlIHdoZW4gcGFyc2luZyBmaWxlcy4gSWYgZWFjaCB3b3JkIG9yIHBocmFz ZSBpcyBvbiBpdHMgb3duIGxpbmUgdGhlbiB0aGUgZGVmYXVsdCBuZXdsaW5lICg8Y29kZT5c bjwvY29kZT4pIGlzIHN1ZmZpY2llbnQuIElmIHlvdSB3aXNoIHRvIGhhdmUgYWxsIHlvdXIg dGV4dCBzdHJpbmdzIG9uIG9uZSBsaW5lIG9mIHRoZSBmaWxlIGRlbGltaXRlZCBieSBzb21l IG90aGVyIGNoYXJhY3Rlciwgc2V0IHlvdXIgb3duIGRlbGltaXRlciBoZXJlPC9saT4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0bm0iPml0ZW1fbnVtPC9zcGFuPiA6IHNob3cgdGhpcyBwYXJ0 aWN1bGFyIGl0ZW0gZnJvbSB0aGUgcG9vbC4gSWYgaXQgZG9lc24mIzgyMTc7dCBleGlzdCwg eW91IGdldCB0aGUgZmlyc3QgaXRlbS4gQnV0IHdhaXQ/ISBUaGlzIGlzIGEgcmFuZG9tX3Rl eHQgcGx1Z2luLCB3aHkgd291bGQgYW55Ym9keSB3YW50IHRvIHNwZWNpZnkgd2hpY2ggaXRl bSB0byB1c2U/IFR3byB1c2VzIHNwcmluZyB0byBtaW5kOiBGaXJzdGx5LCBpZiB5b3UgaGF2 ZSBhbHJlYWR5IHJhbmRvbWl6ZWQgeW91ciBpdGVtcyBleHRlcm5hbGx5IHlvdSBtaWdodCB3 aXNoIHRvIGFsd2F5cyBwaWNrLCBzYXksIHRoZSBmaXJzdCBpdGVtLiBTZWNvbmRseSAmIzgy MTI7IGFuZCBmYXIgbW9yZSBzdWJ0bHkgJiM4MjEyOyBpZiB5b3Ugd2lzaCB0byBwdWxsIG1v cmUgdGhhbiBvbmUgaXRlbSBmcm9tIGFueSByYW5kb21seSBjaG9zZW4gcGxhY2UsIHlvdSBj YW4gbmVzdCBzbWRfcmFuZG9tX3RleHQgdGFncyBhbmQgbWFrZSB0aGUgaW5uZXIgdGFncyBh bHdheXMgdXNlIHRoZSBzYW1lIHJvdy9wb3NpdGlvbiBudW1iZXIgYXMgdGhlIHJhbmRvbWx5 IGNob3NlbiBvdXRlciB0YWcuIFNlZSA8YSBocmVmPSIjZWc3Ij5leGFtcGxlIDc8L2E+PC9s aT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnZhcl9wcmVmaXg8L3NwYW4+IDogaWYgeW91 IHdpc2ggdG8gbmVzdCBzbWRfcmFuZG9tX3RleHQgdGFncyB0aGVuIHlvdSBtYXkgZmluZCB0 aGF0IHRoZSByZXBsYWNlbWVudCB2YXJpYWJsZSBuYW1lcyBjbGFzaC4gSWYgdGhhdCBpcyB0 aGUgY2FzZSB5b3UgY2FuIGFsdGVyIHRoZSBwcmVmaXggdG8gYXZvaWQgdGhpcy4gRGVmYXVs dDogPGNvZGU+c21kX3JuZF90eHQ8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 bm0iPnNodWZmbGU8L3NwYW4+IDogcGVyaGFwcyBhIGxpdHRsZSBwb2ludGxlc3MsIHRoaXMg YWRkcyBhbiBleHRyYSBsYXllciBvZiByYW5kb21uZXNzIHRvIHByb2NlZWRpbmdzIGJ5IHNo dWZmbGluZyB0aGUgY2hvc2VuIGl0ZW1zIGFnYWluLiBTbyBpZiB5b3UgaGFkIGFza2VkIGZv ciA2IGl0ZW1zIGluIHlvdXIgbGlzdCBvZiAyMCBhbmQgdGhlIHBsdWdpbiBoYWQgcmFuZG9t bHkgY2hvc2VuIHRoZW0gaW4gdGhpcyBvcmRlcjogPGNvZGU+NCwgMTcsIDIsIDUsIDEzLCAx MTwvY29kZT4sIHVzaW5nIDxjb2RlPnNodWZmbGU9JnF1b3Q7MSZxdW90OzwvY29kZT4gbWln aHQgcmVvcmRlciB0aGVtIHRvIDxjb2RlPjE3LCA1LCAyLCAxMSwgNCwgMTM8L2NvZGU+PC9s aT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmRlYnVnPC9zcGFuPiA6IHNldCB0byAxIHRv IHNob3cgdGhlIHBvb2wsIHRoZSBmaWxlIG5hbWUgKGlmIGFwcGxpY2FibGUpIGFuZCB0aGUg Y2hvc2VuIGl0ZW1zLiBVc2UgMiB0byBzZWUgd2hhdCA8Y29kZT5maWVsZDwvY29kZT5zIGFu ZCByZXBsYWNlbWVudHMgYXJlIGF2YWlsYWJsZSBmb3IgeW91ciB1c2U8L2xpPgoJPC91bD4K Cgk8aDM+UmVwbGFjZW1lbnQgdGFnczwvaDM+CgoJPHA+V2hlbiB1c2luZyBhIGZvcm0gb3Ig Y29udGFpbmVyLCB1c2UgdGhlIGZvbGxvd2luZyByZXBsYWNlbWVudCB0YWdzIHRvIGluc2Vy dCB0aGUgcmVsZXZhbnQgcGllY2Ugb2YgaW5mb3JtYXRpb24gd2hlcmV2ZXIgeW91IHdhbnQg aXQ6PC9wPgoKCTxwPjxjb2RlPntzbWRfcm5kX3R4dH08L2NvZGU+IDogdGhlIHRleHQgc3Ry aW5nIGl0c2VsZiAoaWYgeW91IGhhdmUgYWx0ZXJlZCA8Y29kZT52YXJfcHJlZml4PC9jb2Rl PiB0aGVuIHRoaXMgcmVwbGFjZW1lbnQgbmFtZSBpcyB3aGF0ZXZlciB5b3UgaGF2ZSBjaG9z ZW4gYXMgeW91ciBwcmVmaXgpPGJyIC8+Cjxjb2RlPntzbWRfcm5kX3R4dF9yb3dzfTwvY29k ZT4gOiB0aGUgbnVtYmVyIG9mIGl0ZW1zIGluIHRvdGFsPGJyIC8+Cjxjb2RlPntzbWRfcm5k X3R4dF90aGlzcm93fTwvY29kZT4gOiB0aGUgY3VycmVudCByb3cgbnVtYmVyPGJyIC8+Cjxj b2RlPntzbWRfcm5kX3R4dF90aGlzaW5kZXh9PC9jb2RlPiA6IHRoZSBjdXJyZW50IHJvdyBp bmRleCAoemVyby1iYXNlZCk8YnIgLz4KPGNvZGU+e3NtZF9ybmRfdHh0X2Nob3Nlbl9pdGVt fTwvY29kZT4gOiB0aGUgemVyby1iYXNlZCBpbmRleCBudW1iZXIgb2YgdGhlIGFjdHVhbCBp dGVtIHNlbGVjdGVkIGJ5IHRoZSBwbHVnaW48L3A+CgoJPHA+SW4gYWRkaXRpb24sIGlmIHlv dSBoYXZlIGNob3NlbiB0byBleHRyYWN0IG11bHRpcGxlIGNvbHVtbnMgZnJvbSBhIGRhdGFi YXNlIHRhYmxlLCB5b3Ugd2lsbCBoYXZlIGRpc2NyZWV0IHJlcGxhY2VtZW50cyBhdmFpbGFi bGUgZm9yIGVhY2ggaXRlbSBzdWZmaXhlZCBieSB0aGUgY29sdW1uIG5hbWUuIFNvIGlmIHlv dSBoYWQgdXNlZCA8Y29kZT5zb3VyY2U9JnF1b3Q7dHhwX2NhdGVnb3J5fG5hbWUsdGl0bGUm cXVvdDs8L2NvZGU+IHlvdSB3b3VsZCBoYXZlIHR3byBleHRyYSByZXBsYWNlbWVudHMgY2Fs bGVkIDxjb2RlPntzbWRfcm5kX3R4dF9uYW1lfTwvY29kZT4gYW5kIDxjb2RlPntzbWRfcm5k X3R4dF90aXRsZX08L2NvZGU+LjwvcD4KCgk8aDI+RXhhbXBsZXM8L2gyPgoKCTxoMyBpZD0i ZWcxIj5FeGFtcGxlIDE6IFF1b3RlIG9mIHRoZSBkYXk8L2gzPgoKCTxwPlJlYWQgcXVvdGVz IGZyb20gYSBkYXRhYmFzZS4gVGhlIHRhYmxlIGlzIGNhbGxlZCAmIzgyMjA7cXVvdGVzJiM4 MjIxOyBhbmQgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCB0byB0aGUgPHNwYW4gY2xhc3M9ImNh cHMiPlRYUDwvc3Bhbj4gZGF0YWJhc2UgKHRoZSBjb25uZWN0aW9uIG11c3QgYWxyZWFkeSBi ZSBvcGVuKS4gVGhlIGNvbHVtbiBjb250YWluaW5nIHRoZSBxdW90ZXMgaXMgY2FsbGVkICYj ODIyMDt0ZXh0JiM4MjIxOzo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9 ImJsb2NrIj4mbHQ7dHhwOnNtZF9yYW5kb21fdGV4dCB0eXBlPSZxdW90O2RhdGFiYXNlJnF1 b3Q7CiAgICAgc291cmNlPSZxdW90O3F1b3Rlc3x0ZXh0JnF1b3Q7Jmd0OwogICZsdDtkaXYg Y2xhc3M9JnF1b3Q7cW90ZCZxdW90OyZndDtRdW90ZSBvZiB0aGUgZGF5OiAmbHQ7YnIgLyZn dDt7c21kX3JuZF90eHR9Jmx0Oy9kaXYmZ3Q7CiZsdDsvdHhwOnNtZF9yYW5kb21fdGV4dCZn dDsKPC9jb2RlPjwvcHJlPgoKCTxoMyBpZD0iZWcyIj5FeGFtcGxlIDI6IEZpdmUgcmFuZG9t IGNvbW1lbnRzPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2si PiZsdDt0eHA6c21kX3JhbmRvbV90ZXh0IHR5cGU9JnF1b3Q7ZGF0YWJhc2UmcXVvdDsKICAg ICBzb3VyY2U9JnF1b3Q7dHhwX2Rpc2N1c3N8bWVzc2FnZSxuYW1lJnF1b3Q7IGxpbWl0PSZx dW90OzUmcXVvdDsKICAgICB3cmFwdGFnPSZxdW90O3VsJnF1b3Q7IGJyZWFrPSZxdW90O2xp JnF1b3Q7Jmd0OwogICAmbHQ7cCZndDsmbHQ7Y2l0ZSZndDt7c21kX3JuZF90eHRfbmFtZX0m bHQ7L2NpdGUmZ3Q7IHdyb3RlOiZsdDsvcCZndDsKICAgJmx0O2Jsb2NrcXVvdGUmZ3Q7CiAg IHtzbWRfcm5kX3R4dF9tZXNzYWdlfQogICAmbHQ7L2Jsb2NrcXVvdGUmZ3Q7CiZsdDsvdHhw OnNtZF9yYW5kb21fdGV4dCZndDsKPC9jb2RlPjwvcHJlPgoKCTxoMyBpZD0iZWczIj5FeGFt cGxlIDM6IFRvcCAxMCB3b3JkczwvaDM+CgoJPHA+VG9wIHRlbiByYW5kb20gc2lsbHkgd29y ZHMgZnJvbSBhIGxpc3QgaW4gYSBmaWxlIGluIHRoZSB0ZXh0cGF0dGVybiByb290IGZvbGRl ciwgY291bnRpbmcgZG93biBmcm9tIDEwIHRvIDEuIEVhY2ggd29yZCBtdXN0IGJlIG9uIGEg c2VwYXJhdGUgcm93IG9mIHRoZSBmaWxlIHVubGVzcyB5b3UgYWx0ZXIgdGhlIDxjb2RlPmZp bGVfZGVsaW08L2NvZGU+IGF0dHJpYnV0ZTsgaW4gd2hpY2ggY2FzZSB0aGUgd29yZHMgbXVz dCBhbGwgYXBwZWFyIG9uIHRoZSBmaXJzdCByb3cgb2YgdGhlIGZpbGUuIElmIHRoZXJlIGFy ZW4mIzgyMTc7dCAxMCBpdGVtcyBpbiB0aGUgZmlsZSwgdGhlIGNvdW50IGJlZ2lucyBmcm9t IGhvd2V2ZXIgaGlnaCBpdCBjYW4gZ28uPC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2Rl IGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcmFuZG9tX3RleHQgdHlwZT0mcXVvdDtmaWxl JnF1b3Q7CiAgICAgc291cmNlPSZxdW90O3dvcmRzLnR4dCZxdW90OyBsaW1pdD0mcXVvdDsx MCZxdW90OwogICAgIGZvcm09JnF1b3Q7d29yZG91dCZxdW90OyBjb3VudD0mcXVvdDtkb3du JnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5hbmQgaW4gZm9ybSA8Y29kZT53b3Jk b3V0PC9jb2RlPjo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2Nr Ij4je3NtZF9ybmRfdHh0X3RoaXNyb3d9IDoge3NtZF9ybmRfdHh0fSAmbHQ7YnIgLyZndDsK PC9jb2RlPjwvcHJlPgoKCTxoMyBpZD0iZWc0Ij5FeGFtcGxlIDQ6IFJhbmRvbSBlLW1haWwg YWRkcmVzczwvaDM+CgoJPHA+VXNlIGEgPGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSAvJmd0Ozwv Y29kZT4gdG8gaG9sZCBhIGxpc3Qgb2YgcmFuZG9tIGUtbWFpbCBhZGRyZXNzZXMgZnJvbSB3 aGljaCBvbmUgd2lsbCBiZSBzZWxlY3RlZCB0byBiZSBzZW50IHZpYSBhIHplbV9jb250YWN0 X3JlYm9ybiBmb3JtOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxv Y2siPiZsdDt0eHA6dmFyaWFibGUgbmFtZT0mcXVvdDtlbWFpbHMmcXVvdDsKICAgICB2YWx1 ZT0mcXVvdDtBbGRvdXMuSHV4bGV5fFdpbGxpYW0uU2hha2VzcGVhcmV8Sm9obi5CZXRqZW1h biZxdW90OyAvJmd0OwombHQ7dHhwOnplbV9jb250YWN0CiAgICAgdG89JiMzOTsmbHQ7dHhw OnNtZF9yYW5kb21fdGV4dCB0eXBlPSZxdW90O3R4cHZhciZxdW90OwogICAgIHNvdXJjZT0m cXVvdDtlbWFpbHMmcXVvdDsgLyZndDtAd3JpdGVycy5jb20mIzM5OyZndDsKICAvLyBPdGhl ciB6ZW1fY29udGFjdCBvcHRpb25zCiZsdDsvdHhwOnplbV9jb250YWN0Jmd0Owo8L2NvZGU+ PC9wcmU+CgoJPGgzIGlkPSJlZzUiPkV4YW1wbGUgNTogUmFuZG9tIGltYWdlIHNlbGVjdGlv bjwvaDM+CgoJPHA+SW5kaXJlY3RseSwgbm90IGp1c3QgZm9yIHRleHQhIENob29zZSB0d28g cmFuZG9tIGltYWdlIElEcyBmcm9tIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QgZ2l2ZW4gaW4g dGhlIGN1c3RvbSBmaWVsZCBsYWJlbGxlZCAmIzgyMjA7bXlfaW1hZ2VzJiM4MjIxOyBhbmQg ZGlzcGxheSB0aGVtIHZpYSB0aGUgYnVpbHQtaW4gPGNvZGU+Jmx0O3R4cDppbWFnZSAvJmd0 OzwvY29kZT4gdGFnLjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxv Y2siPiZsdDt0eHA6c21kX3JhbmRvbV90ZXh0IHR5cGU9JnF1b3Q7ZmllbGQmcXVvdDsKICAg ICBzb3VyY2U9JnF1b3Q7bXlfaW1hZ2VzJnF1b3Q7IGxpbWl0PSZxdW90OzImcXVvdDsgZGVs aW09JnF1b3Q7LCZxdW90OyZndDsKICAmbHQ7dHhwOmltYWdlIGlkPSZxdW90O3tzbWRfcm5k X3R4dH0mcXVvdDsgLyZndDsKJmx0Oy90eHA6c21kX3JhbmRvbV90ZXh0Jmd0Owo8L2NvZGU+ PC9wcmU+CgoJPGgzIGlkPSJlZzYiPkV4YW1wbGUgNjogSXRlbSBmcm9tIGEgZmFjdCBmaWxl PC9oMz4KCgk8cD5BZGQgdGhpcyB0byB5b3VyIDxjb2RlPmZpbGVzPC9jb2RlPiBmb3JtIHRv IGRpc3BsYXkgYSByYW5kb20gZmFjdCBhYm91dCBlYWNoIGZpbGUgZnJvbSBhIHBpcGUtZGVs bWlpdGVkIGxpc3QgZGVmaW5lZCBpbiB0aGUgZmlsZSYjODIxNztzIDxjb2RlPmRlc2NyaXB0 aW9uPC9jb2RlPiBmaWVsZDo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9 ImJsb2NrIj4mbHQ7dHhwOnNtZF9yYW5kb21fdGV4dCB0eXBlPSZxdW90O2ZpZWxkJnF1b3Q7 CiAgICAgc291cmNlPSZxdW90O2Rlc2NyaXB0aW9uJnF1b3Q7Jmd0OwombHQ7YnIgLyZndDtG QUNUOiB7c21kX3JuZF90eHR9CiZsdDsvdHhwOnNtZF9yYW5kb21fdGV4dCZndDsKPC9jb2Rl PjwvcHJlPgoKCTxoMyBpZD0iZWc3Ij5FeGFtcGxlIDc6IEtlZXBpbmcgaXRlbXMgaW4gc3lu YzwvaDM+CgoJPHA+U2F5IHlvdSBoYXZlIGEgc2V0IG9mIHR4cDp2YXJpYWJsZXMgdGhhdCBj b250YWluIGxpc3RzIG9mIHJlbGF0ZWQgdGhpbmdzOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2Nr Ij48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6dmFyaWFibGUgbmFtZT0mcXVvdDtocF9m b3JlbmFtZSZxdW90OyZndDsKICBIYXJyeSB8IEhlcm1pb25lIHwgUm9uIHwgU2V2ZXJ1cwom bHQ7L3R4cDp2YXJpYWJsZSZndDsKJmx0O3R4cDp2YXJpYWJsZSBuYW1lPSZxdW90O2hwX3N1 cm5hbWUmcXVvdDsmZ3Q7CiAgUG90dGVyIHwgR3JhbmdlciB8IFdlYXNsZXkgfCBTbmFwZQom bHQ7L3R4cDp2YXJpYWJsZSZndDsKJmx0O3R4cDp2YXJpYWJsZSBuYW1lPSZxdW90O2hwX2Fn ZSZxdW90OyZndDsKICAxNCB8IDE2IHwgMTUgfCAxMzAKJmx0Oy90eHA6dmFyaWFibGUmZ3Q7 CjwvY29kZT48L3ByZT4KCgk8cD5Ib3cgd291bGQgeW91IGVuc3VyZSB5b3UgcmV0cmlldmVk IHRoZSAmIzgyMTY7Y29sdW1uJiM4MjE3OyB0aGF0IGNvcnJlc3BvbmRzIHdpdGggdGhlIGNv cnJlY3QgdmFsdWUgZm9yIGVhY2ggY2hhcmFjdGVyPyBMaWtlIHRoaXM6PC9wPgoKPHByZSBj bGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcmFuZG9tX3Rl eHQgdHlwZT0mcXVvdDt0eHB2YXImcXVvdDsKICAgICBzb3VyY2U9JnF1b3Q7aHBfZm9yZW5h bWUmcXVvdDsgbGltaXQ9JnF1b3Q7MiZxdW90OyB3cmFwdGFnPSZxdW90O3VsJnF1b3Q7CiAg ICAgYnJlYWs9JnF1b3Q7bGkmcXVvdDsmZ3Q7CiAgIENoYXJhY3Rlcjoge3NtZF9ybmRfdHh0 fQogICAmbHQ7dHhwOnNtZF9yYW5kb21fdGV4dCB0eXBlPSZxdW90O3R4cHZhciZxdW90Owog ICAgIHNvdXJjZT0mcXVvdDtocF9zdXJuYW1lJnF1b3Q7CiAgICAgaXRlbV9udW09JnF1b3Q7 e3NtZF9ybmRfdHh0X2Nob3Nlbl9pdGVtfSZxdW90OyAvJmd0OwogICBpcyAmbHQ7dHhwOnNt ZF9yYW5kb21fdGV4dCB0eXBlPSZxdW90O3R4cHZhciZxdW90OwogICAgIHNvdXJjZT0mcXVv dDtocF9hZ2UmcXVvdDsKICAgICBpdGVtX251bT0mcXVvdDt7c21kX3JuZF90eHRfY2hvc2Vu X2l0ZW19JnF1b3Q7IC8mZ3Q7CiAgIHllYXJzIG9sZAombHQ7L3R4cDpzbWRfcmFuZG9tX3Rl eHQmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5BcyB5b3UgY2FuIHNlZSwgdGhlIGZpcnN0IHNt ZF9yYW5kb21fdGV4dCBjaG9vc2VzIHR3byByYW5kb20gY2hhcmFjdGVyIGZvcmVuYW1lcyBm cm9tIHRoZSBmaXJzdCB0eHA6dmFyaWFibGUuIFRoZW4sIGZvciBlYWNoIG9mIHRoZSBjaG9z ZW4gZm9yZW5hbWVzLCB0aGUgc2Vjb25kIGFuZCB0aGlyZCAoaW5uZXIpIHNtZF9yYW5kb21f dGV4dCB0YWdzIGdvIGFuZCBmZXRjaCA8ZW0+dGhlIHNhbWUgY29sdW1uPC9lbT4gYXMgdGhl IG9uZSBqdXN0IGNob3Nlbi4gSXQgdXNlcyA8Y29kZT57c21kX3JuZF90eHRfY2hvc2VuX2l0 ZW19PC9jb2RlPiB0byBmb3JjZSB0aGUgcGx1Z2luIHRvIHJlYWQgdGhlIGNvcnJlY3QgY29s dW1uLjwvcD4KCgk8aDI+Q2hhbmdlbG9nPC9oMj4KCgk8dWw+CgkJPGxpPjEwIE9jdCAwOCB8 IDAuMSB8IEluaXRpYWwgcmVsZWFzZTwvbGk+CgkJPGxpPjE3IE1hciAwOSB8IDAuMTEgfCBB ZGRlZCA8Y29kZT50cmltPC9jb2RlPiBhbmQgPGNvZGU+ZXNjYXBlPC9jb2RlPjwvbGk+CgkJ PGxpPjI2IEp1bCAwOSB8IDAuMTIgfCBBZGRlZCA8Y29kZT5pdGVtX251bTwvY29kZT4sIDxj b2RlPnNodWZmbGU8L2NvZGU+IGFuZCB0aGUgcmVwbGFjZW1lbnQgdGFnIDxjb2RlPntzbWRf cm5kX3R4dF9jaG9zZW5faXRlbX08L2NvZGU+PC9saT4KCQk8bGk+MjggRmViIDExIHwgMC4x MyB8IFBlcm1pdHRlZCBtdWx0aXBsZSBkYXRhYmFzZSBjb2x1bW5zIHRvIGJlIHNlbGVjdGVk IGluIG9uZSBwbHVnaW4gY2FsbCAodGhhbmtzIGdpYW1wYWJsbykgOyBhZGRlZCA8Y29kZT52 YXJfcHJlZml4PC9jb2RlPjwvbGk+Cgk8L3VsPgoKPC9kaXY+CjwhLS0gKioqIEJFR0lOIFBM VUdJTiBDU1MgKioqIC0tPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgojc21kX2hlbHAgeyBs aW5lLWhlaWdodDoxLjUgO30KI3NtZF9oZWxwIGNvZGUgeyBmb250LXdlaWdodDpib2xkOyBm b250OiAxMDUlLzEzMCUgIkNvdXJpZXIgTmV3IiwgY291cmllciwgbW9ub3NwYWNlOyBiYWNr Z3JvdW5kLWNvbG9yOiAjZjBlNjhjOyBjb2xvcjojMzMzOyB9CiNzbWRfaGVscCBjb2RlLmJs b2NrIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyBkaXNw bGF5OmJsb2NrOyBtYXJnaW46MTBweCAxMHB4IDIwcHg7IHBhZGRpbmc6MTBweDsgfQojc21k X2hlbHAgaDEgeyBmb250OiAyMHB4IEdlb3JnaWEsIHNhbnMtc2VyaWY7IG1hcmdpbjogMDsg dGV4dC1hbGlnbjogY2VudGVyOyB9CiNzbWRfaGVscCBoMiB7IGJvcmRlci1ib3R0b206IDFw eCBzb2xpZCBibGFjazsgcGFkZGluZzoxMHB4IDAgMDsgZm9udDogMTdweCBHZW9yZ2lhLCBz YW5zLXNlcmlmOyB9CiNzbWRfaGVscCBoMyB7IGZvbnQ6IGJvbGQgMTJweCBBcmlhbCwgc2Fu cy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAyMHB4IDAgMDsgdGV4dC1k ZWNvcmF0aW9uOnVuZGVybGluZTsgfQojc21kX2hlbHAgaDQgeyBmb250OiBib2xkIDExcHgg QXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBweCAw IDA7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH0KI3NtZF9oZWxwIC5hdG5tIHsgZm9u dC13ZWlnaHQ6Ym9sZDsgfQojc21kX2hlbHAgLm1hbmQgeyBib3JkZXI6MXB4IGRvdHRlZCAj OTk5OyB9CiNzbWRfaGVscCB0YWJsZSB7IHdpZHRoOjkwJTsgdGV4dC1hbGlnbjpjZW50ZXI7 IHBhZGRpbmctYm90dG9tOjFlbTsgfQojc21kX2hlbHAgdGQsICNzbWRfaGVscCB0aCB7IGJv cmRlcjoxcHggc29saWQgIzk5OTsgcGFkZGluZzouNWVtIDA7IH0KI3NtZF9oZWxwIHVsIHsg bGlzdC1zdHlsZS10eXBlOnNxdWFyZTsgfQojc21kX2hlbHAgLmltcG9ydGFudCB7IGNvbG9y OnJlZDsgfQojc21kX2hlbHAgbGkgeyBtYXJnaW46NXB4IDIwcHggNXB4IDMwcHg7IH0KI3Nt ZF9oZWxwIC5icmVhayB7IG1hcmdpbi10b3A6NXB4OyB9Cjwvc3R5bGU+CjwhLS0gKioqIEVO RCBQTFVHSU4gQ1NTICoqKiAtLT4KIjtzOjM6Im1kNSI7czozMjoiZDczNDMwZmMxODkzMzdk NjgzNTZhOTJlYjkxMDY4ZjkiO30=