# Name: smd_style v0.2 # Type: Client side plugin # Stylesheet switcher # Author: Stef Dawson # URL: http://stefdawson.com/ # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YTo5OntzOjQ6Im5hbWUiO3M6OToic21kX3N0eWxlIjtzOjY6ImF1dGhvciI7czoxMToiU3Rl ZiBEYXdzb24iO3M6MTA6ImF1dGhvcl91cmkiO3M6MjI6Imh0dHA6Ly9zdGVmZGF3c29uLmNv bS8iO3M6NzoidmVyc2lvbiI7czozOiIwLjIiO3M6MTE6ImRlc2NyaXB0aW9uIjtzOjE5OiJT dHlsZXNoZWV0IHN3aXRjaGVyIjtzOjQ6ImNvZGUiO3M6NzI1NDoiLy8gc21kX3N0eWxlIGJ5 IFN0ZWYgRGF3c29uDQoNCi8vIFNoYW1lbGVzc2x5IHN0b2xlbiBmcm9tIGFrb19jc3NQYXJz ZSAodGhhbmtzISkNCmlmIChAdHhwaW50ZXJmYWNlPT09ImNzcyIgJiYgZ3BzKCdzbWRfc3R5 bGVwYXJzZScpID09IDEpIHsNCglnbG9iYWwgJHByZWZzOw0KCSRzaGVldCA9IChncHMoJ24n KSk7DQoJaWYgKCRzaGVldCkgew0KCQkkY3NzID0gc2FmZV9maWVsZCgnY3NzJywndHhwX2Nz cycsIm5hbWU9JyIuZG9TbGFzaCgkc2hlZXQpLiInIik7DQoJCWlmICgkY3NzKSB7DQoJCQkk Y3NzID0gYmFzZTY0X2RlY29kZSgkY3NzKTsNCgkJCSRjc3MgPSBwYXJzZSgkY3NzKTsNCgkJ CSRjc3MgPSAoJHByZWZzWydhbGxvd19wYWdlX3BocF9zY3JpcHRpbmcnXSkgPyBldmFsU3Ry aW5nKCRjc3MpIDogJGNzczsNCgkJCWhlYWRlcignQ29udGVudC10eXBlOiB0ZXh0L2Nzcycp Ow0KCQkJZWNobygkY3NzKTsNCgkJCWV4aXQoKTsNCgkJfQ0KCX0NCn0NCg0KLy8gLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQpmdW5jdGlvbiBzbWRfc3R5bGUoJGF0dHMsICR0aGluZykg ew0KCWdsb2JhbCAkcHJldGV4dCwgJHRoaXNhcnRpY2xlLCAkcHJlZnMsICR2YXJpYWJsZTsN Cg0KCS8vIFBsdWdpbiBvcHRpb25zDQoJZXh0cmFjdChsQXR0cyhhcnJheSgNCgkJJ3NoZWV0 cycgPT4gJycsDQoJCSdmb3JtJyA9PiAnJywNCgkJJ3VzZV9kZWZhdWx0JyA9PiAnMCcsIC8v IDA9bm87IDE9eWVzIGFzIHByaW1hcnkgc2hlZXQNCgkJJ3Byb21vdGVfcmVjZW50JyA9PiAn MScsIC8vIDA9cmV0YWluIG9yZGVyOyAxPXByb21vdGUgdXNlZCBzaGVldHMgYnV0IGhvbm91 ciBjb3JlIHNoZWV0czsgMj1wcm9tb3RlIGF0IGFsbCBjb3N0cw0KCQknc2tpcCcgPT4gJ2F1 dG8nLA0KCQknc2tpcF90aXRsZScgPT4gJ2F1dG8nLA0KCQknc2hvd19lbXB0eScgPT4gJzAn LA0KCQkncmVhbF9zaGVldHMnID0+ICcwJywgLy8gMD1ubzsgMT15ZXMNCgkJJ3NoZWV0c19k aXInID0+IEAkcHJlZnNbJ3J2bV9jc3NfZGlyJ10sDQoJCSdwYXJzZV90YWdzJyA9PiAnMCcs DQoJCSdkZWxpbScgPT4gJywnLA0KCQkncGFyYW1kZWxpbScgPT4gJzonLA0KCQknZGVidWcn ID0+ICcwJywNCgkpLCAkYXR0cykpOw0KDQoJJG91dCA9IGFycmF5KCk7DQoJJHN0eWxlcyA9 IGRvX2xpc3QoJHNoZWV0cywgJGRlbGltKTsNCgkkZXhwc3R5bGVzID0gYXJyYXkoKTsNCglm b3JlYWNoICgkc3R5bGVzIGFzICRpZHggPT4gJG9wdCkgew0KCQlpZiAoc3RycG9zKCRvcHQs ICI/IikgPT09IDApIHsNCgkJCSRvcHQgPSBzdWJzdHIoc3RydG9sb3dlcigkb3B0KSwgMSk7 DQoJCQkkdG1wYSA9IGFycmF5KCk7DQoJCQlpZiAoaXNzZXQoJHByZXRleHRbJG9wdF0pICYm ICRwcmV0ZXh0WyRvcHRdICE9ICIiKSB7DQoJCQkJJHRtcGEgPSBkb19saXN0KCRwcmV0ZXh0 WyRvcHRdLCAkZGVsaW0pOw0KCQkJCSRleHBzdHlsZXMgPSBhcnJheV9tZXJnZSgkZXhwc3R5 bGVzLCAkdG1wYSk7DQoJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzYXJ0aWNsZVskb3B0XSkg JiYgJHRoaXNhcnRpY2xlWyRvcHRdICE9ICIiKSB7DQoJCQkJJHRtcGEgPSBkb19saXN0KCR0 aGlzYXJ0aWNsZVskb3B0XSwgJGRlbGltKTsNCgkJCQkkZXhwc3R5bGVzID0gYXJyYXlfbWVy Z2UoJGV4cHN0eWxlcywgJHRtcGEpOw0KCQkJfSBlbHNlIGlmIChpc3NldCgkdmFyaWFibGVb JG9wdF0pICYmICR2YXJpYWJsZVskb3B0XSAhPSAiIikgew0KCQkJCSR0bXBhID0gZG9fbGlz dCgkdmFyaWFibGVbJG9wdF0sICRkZWxpbSk7DQoJCQkJJGV4cHN0eWxlcyA9IGFycmF5X21l cmdlKCRleHBzdHlsZXMsICR0bXBhKTsNCgkJCX0gZWxzZSBpZiAoaXNzZXQoJF9HRVRbJG9w dF0pICYmICRfR0VUWyRvcHRdICE9ICIiKSB7DQoJCQkJJHRtcGEgPSBkb19saXN0KGdwcygk b3B0KSwgJGRlbGltKTsNCgkJCQkkZXhwc3R5bGVzID0gYXJyYXlfbWVyZ2UoJGV4cHN0eWxl cywgJHRtcGEpOw0KCQkJfSBlbHNlIGlmICgkc2hvd19lbXB0eSkgew0KCQkJCSRleHBzdHls ZXNbXSA9ICRvcHQ7DQoJCQl9DQoJCX0gZWxzZSB7DQoJCQkkZXhwc3R5bGVzW10gPSAkb3B0 Ow0KCQl9DQoJfQ0KCSRzdHlsZXMgPSAkZXhwc3R5bGVzOw0KDQoJJHNraXAgPSAoJHNraXA9 PSJhdXRvIikgPyAkdXNlX2RlZmF1bHQgOiAkc2tpcDsNCgkkc2tpcF90aXRsZSA9ICgkc2tp cF90aXRsZT09ImF1dG8iKSA/ICR1c2VfZGVmYXVsdCA6ICRza2lwX3RpdGxlOw0KCSRza2lw X3RpdGxlID0gKCRza2lwPT0wKSA/IDAgOiAkc2tpcF90aXRsZTsNCglpZiAoJHVzZV9kZWZh dWx0ID4gMCkgew0KCQkkZGVmYXVsdCA9IHNhZmVfcm93KCdjc3MnLCAndHhwX3NlY3Rpb24n LCAibmFtZSA9ICciLmRvU2xhc2goJHByZXRleHRbJ3MnXSkuIiciLCAkZGVidWcpOw0KCQlh cnJheV91bnNoaWZ0KCRzdHlsZXMsICRkZWZhdWx0Wydjc3MnXSk7DQoJfQ0KDQoJLy8gSWYg YSBwcmV2aW91cyBzdHlsZSBoYXMgYmVlbiBjaG9zZW4sIG1vdmUgaXQgdG8gdGhlIGZyb250 IG9mIHRoZSBsaXN0IChpZiByZXF1ZXN0ZWQpLg0KCS8vIFRoaXMgZm9yY2VzIGdvb2QgYnJv d3NlcnMgdG8gJ2ZsYXNoJyBsZXNzIHdoZW4gY2hhbmdpbmcgcGFnZXMNCgkkY29va2llc3R5 bGUgPSBjcygic21kX3N0eWxlIik7DQoJaWYgKCRwcm9tb3RlX3JlY2VudCAmJiAkY29va2ll c3R5bGUpIHsNCgkJJHJlamlnID0gYXJyYXkoKTsNCgkJZm9yZWFjaCAoJHN0eWxlcyBhcyAk aWR4ID0+ICRzdHlsZSkgew0KCQkJaWYgKCgkaWR4IDwgJHNraXApICYmICRwcm9tb3RlX3Jl Y2VudCA9PSAxKSB7DQoJCQkJJHJlamlnW10gPSAkc3R5bGU7DQoJCQkJY29udGludWU7DQoJ CQl9DQoJCQlpZiAoc3RycG9zKCRzdHlsZSwgJGNvb2tpZXN0eWxlKSAhPT0gZmFsc2UpIHsN CgkJCQkkcmVqaWdbXSA9ICRzdHlsZTsNCgkJCQlicmVhazsNCgkJCX0NCgkJfQ0KCQkkc3R5 bGVzID0gYXJyYXlfbWVyZ2UoJHJlamlnLCAkc3R5bGVzKTsNCgkJJHN0eWxlcyA9IGFycmF5 X3VuaXF1ZSgkc3R5bGVzKTsNCgl9DQoNCglpZiAoJGRlYnVnKSB7DQoJCWVjaG8gIisrIFNU WUxFUyArKyI7DQoJCWRtcCgkc3R5bGVzKTsNCgl9DQoJJHN0eWxlY250ID0gMTsNCgkkbnVt X3N0eWxlcyA9IGNvdW50KCRzdHlsZXMpOw0KCWZvcmVhY2ggKCRzdHlsZXMgYXMgJHN0eWxl KSB7DQoJCSRzdHlsZW9wdHMgPSBkb19saXN0KCRzdHlsZSwgJHBhcmFtZGVsaW0pOw0KCQkk bmFtZSA9IChjb3VudCgkc3R5bGVvcHRzKSA+PSAxKSA/ICRzdHlsZW9wdHNbMF0gOiAnJzsN CgkJJHRpdGxlID0gKCRzdHlsZWNudCA+ICRza2lwIHx8ICRzdHlsZWNudCA+ICRza2lwX3Rp dGxlKSA/ICgoY291bnQoJHN0eWxlb3B0cykgPj0gMikgPyAkc3R5bGVvcHRzWzFdIDogJG5h bWUpIDogJyc7DQoJCSRtZWRpYSA9IChjb3VudCgkc3R5bGVvcHRzKSA+PSAzKSA/ICRzdHls ZW9wdHNbMl0gOiAnc2NyZWVuJzsNCgkJJHJlbCA9ICgoJHN0eWxlY250ID4gJHNraXApID8g ImFsdGVybmF0ZSAiIDogJycpIC4gInN0eWxlc2hlZXQiOw0KCQkkdXJsID0gaHUuICgoJHJl YWxfc2hlZXRzICYmICRzaGVldHNfZGlyKSA/ICRzaGVldHNfZGlyIC4gJy8nIC5zdHJ0b2xv d2VyKHNhbml0aXplRm9yVXJsKCRuYW1lKSkuICcuY3NzJyA6ICd0ZXh0cGF0dGVybi9jc3Mu cGhwP249Jy4kbmFtZSAuICgoJHBhcnNlX3RhZ3MpID8gYS4nc21kX3N0eWxlcGFyc2U9MScg OiAnJykpOw0KLyoNCgkJaWYgKCRwYXJzZV90YWdzKSB7DQoJCQkkdXJsIC49ICgoc3RycG9z KCR1cmwsICc/JykgPT09IGZhbHNlKSA/ICc/JyA6IGEpIC4gJ3NtZF9zdHlsZXBhcnNlPTEn Ow0KCQl9DQoqLw0KCQkvLyBNYWtlIHVwIHRoZSByZXBsYWNlbWVudCBhcnJheQ0KCQkkcmVw bGFjZW1lbnRzID0gYXJyYXkoDQoJCQkJJ3tzbWRfc3R5bGVfbmFtZX0nID0+ICRuYW1lLA0K CQkJCSd7c21kX3N0eWxlX3VybH0nID0+ICR1cmwsDQoJCQkJJ3tzbWRfc3R5bGVfbWVkaWF9 JyA9PiAkbWVkaWEsDQoJCQkJJ3tzbWRfc3R5bGVfcmVsfScgPT4gJHJlbCwNCgkJCQkne3Nt ZF9zdHlsZV90aXRsZX0nID0+ICR0aXRsZSwNCgkJCQkne3NtZF9zdHlsZV9jb3VudGVyfScg PT4gJHN0eWxlY250LA0KCQkJCSd7c21kX3N0eWxlX3RvdGFsfScgPT4gJG51bV9zdHlsZXMs DQoJCSk7DQoNCgkJaWYgKCRkZWJ1Zykgew0KCQkJZWNobyAiKysgUkVQTEFDRU1FTlRTICsr IjsNCgkJCWRtcCgkcmVwbGFjZW1lbnRzKTsNCgkJfQ0KDQoJCSRvdXRbXSA9ICgkdGhpbmcp ID8gcGFyc2Uoc3RydHIoJHRoaW5nLCAkcmVwbGFjZW1lbnRzKSkgOiAoDQoJCQkJCSgkZm9y bSkgPyBzdHJ0cihwYXJzZV9mb3JtKCRmb3JtKSwgJHJlcGxhY2VtZW50cykgOiAoDQoJCQkJ CSgkcmVhbF9zaGVldHMgfHwgJHBhcnNlX3RhZ3MpID8gJzxsaW5rIHJlbD0iJy4kcmVsLici Jy4gKCgkdGl0bGUpID8gJyB0aXRsZT0iJy4kdGl0bGUuJyInIDogJycpIC4nIGhyZWY9Iicu JHVybC4nIiBtZWRpYT0iJy4kbWVkaWEuJyIgdHlwZT0idGV4dC9jc3MiIC8+JyA6DQoJCQkJ CWNzcyhhcnJheSgNCgkJCQkJCSJmb3JtYXQiID0+ICJsaW5rIiwNCgkJCQkJCSJtZWRpYSIg PT4gJG1lZGlhLA0KCQkJCQkJIm4iID0+ICRuYW1lLA0KCQkJCQkJInJlbCIgPT4gJHJlbCwN CgkJCQkJCSJ0aXRsZSIgPT4gJHRpdGxlLA0KCQkJCQkJKSkNCgkJCQkJKSk7DQoNCgkJJHN0 eWxlY250Kys7DQoJfQ0KDQoJcmV0dXJuIGpvaW4oIlxuIiwgJG91dCk7DQp9DQoNCi8vIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gSmF2YXNjcmlwdCBzdHlsZSBzd2l0Y2hlcg0K ZnVuY3Rpb24gc21kX3N0eWxlc3dpdGNoKCRhdHRzLCAkdGhpbmcpIHsNCg0KCS8vIFBsdWdp biBvcHRpb25zDQoJZXh0cmFjdChsQXR0cyhhcnJheSgNCgkJJ3dyYXB0YWcnID0+ICd1bCcs DQoJCSdjbGFzcycgPT4gJ3NtZF9zd2l0Y2hlcicsDQoJCSdicmVhaycgPT4gJ2xpJywNCgkJ J2JyZWFrX2lzX3RhZycgPT4gJzEnLA0KCQknbGlua2NsYXNzJyA9PiAnc21kX3N0eWxlc3dp dGNoJywNCgkJJ2FjdGl2ZWNsYXNzJyA9PiAnc21kX2N1cnJzdHlsZScsDQoJCSdhbHRfb25s eScgPT4gJzAnLCAvLyAwPU5vOyAxPVllcywgb25seSBzaG93IGFsdGVybmF0ZSBzdHlsZXNo ZWV0cw0KCQknc29ydCcgPT4gJzEnLCAvLyAwPU5vOyAxPVllcw0KCQknY2FzZV9zZW5zaXRp dmUnID0+ICcwJywNCgkJJ2V4cGlyeScgPT4gJzcnLCAvLyBJbiBkYXlzDQoJCSdkZWJ1Zycg PT4gJzAnLA0KCSksICRhdHRzKSk7DQoNCgkvLyBNYWtlIHN1cmUgdGhlcmUgYXJlIGFsd2F5 cyBqUXVlcnkgZWxlbWVudHMgdG8gc3dpbmcgb2ZmLCB0aHVzIGF2b2lkaW5nIGpzIGVycm9y cw0KCSRjbGFzcyA9ICh0cmltKCRjbGFzcyk9PSIiKSA/ICJzbWRfc3dpdGNoZXIiIDogJGNs YXNzOw0KCSRsaW5rY2xhc3MgPSAodHJpbSgkbGlua2NsYXNzKT09IiIpID8gJ3NtZF9zdHls ZXN3aXRjaCcgOiAkbGlua2NsYXNzOw0KCSRzdHlsZW1hdGNoID0gKCgkYWx0X29ubHkpID8g J2FsdGVybmF0ZSAnIDogJycpLidzdHlsZSc7DQoNCgkkb3V0ID0gYXJyYXkoKTsNCglpZiAo JHdyYXB0YWcpIHsNCgkJJG91dFtdID0gJzwnLiR3cmFwdGFnLicgY2xhc3M9IicuJGNsYXNz LiciPjwvJy4kd3JhcHRhZy4nPic7DQoJfQ0KCSRvdXRbXSA9IDw8PEVPSlMNCjxzY3JpcHQg dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii90ZXh0cGF0dGVybi90ZXh0cGF0dGVybi5q cyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQpqUXVlcnko ZnVuY3Rpb24oKSB7DQoJdmFyIHNtZF9zdHlsZXMgPSBbXTsNCgl2YXIgYWN0X2NsYXNzID0g Jyc7DQoJalF1ZXJ5KCdsaW5rW0ByZWwqPXskc3R5bGVtYXRjaH1dW0B0aXRsZV0nKS5lYWNo KGZ1bmN0aW9uKGlkKSB7DQoJCWlmICh0aGlzLmRpc2FibGVkID09IHRydWUpIHsNCgkJCWFj dF9jbGFzcyA9ICcnOw0KCQl9IGVsc2Ugew0KCQkJYWN0X2NsYXNzID0gIiB7JGFjdGl2ZWNs YXNzfSI7DQoJCX0NCgkJc21kX3N0eWxlcy5wdXNoKCc8YSByZWw9IicrdGhpcy5nZXRBdHRy aWJ1dGUoJ3RpdGxlJykrJyIgaHJlZj0iJyt0aGlzLmdldEF0dHJpYnV0ZSgnaHJlZicpKyci IGNsYXNzPSJ7JGxpbmtjbGFzc30nK2FjdF9jbGFzcysnIj4nK3RoaXMuZ2V0QXR0cmlidXRl KCd0aXRsZScpKyc8L2E+Jyk7DQoJfSk7DQoNCglpZiAoeyRzb3J0fT09MSkgew0KCQlzbWRf c3R5bGVzID0gKHskY2FzZV9zZW5zaXRpdmV9PT0wKQ0KCQkJPyBzbWRfc3R5bGVzLnNvcnQo ZnVuY3Rpb24oYSxiKSB7DQoJCQkJdmFyIHggPSBhLnRvTG93ZXJDYXNlKCk7DQoJCQkJdmFy IHkgPSBiLnRvTG93ZXJDYXNlKCk7DQoJCQkJcmV0dXJuICgoeCA8IHkpID8gLTEgOiAoKHgg PiB5KSA/IDEgOiAwKSk7DQoJCQkJfSkNCgkJCTogc21kX3N0eWxlcy5zb3J0KCk7DQoJfQ0K CWpRdWVyeSgnLnskY2xhc3N9JykuYXBwZW5kKA0KCQkoKHskYnJlYWtfaXNfdGFnfT09MCkN CgkJCT8gc21kX3N0eWxlcy5qb2luKCJ7JGJyZWFrfSIpDQoJCQk6ICI8eyRicmVha30+Iitz bWRfc3R5bGVzLmpvaW4oIjwveyRicmVha30+PHskYnJlYWt9PiIpKyI8L3skYnJlYWt9PiIN CgkJKQ0KCSk7DQoNCglqUXVlcnkoJy57JGxpbmtjbGFzc30nKS5jbGljayhmdW5jdGlvbigp IHsNCgkJalF1ZXJ5KCcueyRsaW5rY2xhc3N9JykuZWFjaChmdW5jdGlvbigpIHsNCgkJCWpR dWVyeSh0aGlzKS5yZW1vdmVDbGFzcygieyRhY3RpdmVjbGFzc30iKTsNCgkJfSk7DQoJCXN3 aXRjaFN0eWxlc2hlZXQodGhpcy5nZXRBdHRyaWJ1dGUoInJlbCIpKTsNCgkJalF1ZXJ5KHRo aXMpLmFkZENsYXNzKCJ7JGFjdGl2ZWNsYXNzfSIpOw0KCQlyZXR1cm4gZmFsc2U7DQoJfSk7 DQoJdmFyIGN1cnJTdHlsZSA9IGdldENvb2tpZSgnc21kX3N0eWxlJyk7DQoJaWYgKGN1cnJT dHlsZSkgew0KCQlzd2l0Y2hTdHlsZXNoZWV0KGN1cnJTdHlsZSk7DQoJfQ0KfSk7DQovLyBT d2l0Y2ggdG8gdGhlIGdpdmVuIHN0eWxlc2hlZXQNCmZ1bmN0aW9uIHN3aXRjaFN0eWxlc2hl ZXQoc3R5bGVyZWYpIHsNCglqUXVlcnkoJ2xpbmtbQHJlbCo9c3R5bGVdW0B0aXRsZV0nKS5l YWNoKGZ1bmN0aW9uKGlkKSB7DQoJCXRoaXMuZGlzYWJsZWQgPSB0cnVlOw0KCQlpZiAodGhp cy5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykgPT0gc3R5bGVyZWYpIHRoaXMuZGlzYWJsZWQgPSBm YWxzZTsNCgl9KTsNCglzZXRDb29raWUoJ3NtZF9zdHlsZScsIHN0eWxlcmVmLCB7JGV4cGly eX0pOw0KfQ0KPC9zY3JpcHQ+DQpFT0pTOw0KDQoJcmV0dXJuIGpvaW4oIlxuIiwgJG91dCk7 DQp9IjtzOjQ6InR5cGUiO3M6MToiMCI7czo0OiJoZWxwIjtzOjIzNDE5OiIJPHA+PGRpdiBp ZD0ic21kX2hlbHAiPjwvcD4KCgk8aDE+c21kX3N0eWxlPC9oMT4KCgk8cD5NYW5hZ2UgeW91 ciBhbHRlcm5hdGUgc3R5bGVzaGVldHMgYW5kIChvcHRpb25hbGx5KSBzd2l0Y2ggYmV0d2Vl biB0aGVtIHZpYSBKYXZhc2NyaXB0LjwvcD4KCgk8cD5GZWF0dXJlczo8L3A+CgoJPHVsPgoJ CTxsaT5Qcm92aWRlIGEgbGlzdCBvZiBzdHlsZSBzaGVldCBuYW1lcyBkZXJpdmVkIGZyb206 Cgk8dWw+CgkJPGxpPmEgZ2l2ZW4gbGlzdDwvbGk+CgkJPGxpPmFueSBhcnRpY2xlIGZpZWxk PC9saT4KCQk8bGk+YSA8Y29kZT4mbHQ7dHhwOnZhcmlhYmxlIC8mZ3Q7PC9jb2RlPjwvbGk+ CgkJPGxpPmEgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFyaWFibGU8L2xpPgoJ CTxsaT5zb21lIGNvbWJpbmF0aW9uIG9mIHRoZSBhYm92ZTwvbGk+Cgk8L3VsPjwvbGk+CgkJ PGxpPlVzZSBlaXRoZXIgdGhlIGJ1aWx0LWluIHN0eWxlc2hlZXQgc3dpdGNoaW5nIGFiaWxp dHkgb2YgbW9kZXJuIGJyb3dzZXJzIG9yIHRoZSBwbHVnaW4mIzgyMTc7cyBqYXZhc2NyaXB0 IHN3aXRjaGVyPC9saT4KCQk8bGk+U3RvcmVzIGN1cnJlbnQgc3R5bGUgaW4gYSBjb29raWUg YW5kIGNhbiBiZSBpbnN0cnVjdGVkIHRvIGxvYWQgdGhhdCBzdHlsZSBmaXJzdCBvbiBzdWJz ZXF1ZW50IHBhZ2VzPC9saT4KCQk8bGk+Q29tcGF0aWJsZSB3aXRoIDxzcGFuIGNsYXNzPSJj YXBzIj5UWFA8L3NwYW4+IHN0eWxlc2hlZXRzLCAmIzgyMTY7cmVhbCYjODIxNzsgc3R5bGVz aGVldHMgYW5kIHRoZSBydm1fY3NzIHBsdWdpbjwvbGk+CgkJPGxpPk9wdGlvbmFsbHkgYnVp bGQgeW91ciBvd24gc3R5bGVzaGVldCBzeW50YXggdmlhIGEgZm9ybS9jb250YWluZXI8L2xp PgoJCTxsaT5QdXQgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gdGFncyBpbnNpZGUg eW91ciBzdHlsZXNoZWV0cyBpZiB5b3Ugd2lzaCAocmVxdWlyZXMgPHNwYW4gY2xhc3M9ImNh cHMiPlRYUDwvc3Bhbj4tc3R5bGUgc2hlZXQgcHJvY2Vzc2luZywgaS5lIHJlYWxfc2hlZXRz IG11c3QgYmUgb2ZmKTwvbGk+Cgk8L3VsPgoKCTxoMiBjbGFzcz0iYXV0aG9yIj5BdXRob3I8 L2gyPgoKCTxwPjxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9jb21tZW50Rm9ybSI+ U3RlZiBEYXdzb248L2E+PC9wPgoKCTxoMiBjbGFzcz0iaW5zdGFsbCI+SW5zdGFsbGF0aW9u IC8gVW5pbnN0YWxsYXRpb248L2gyPgoKCTxwPkRvd25sb2FkIHRoZSBwbHVnaW4gZnJvbSBl aXRoZXIgPGEgaHJlZj0iaHR0cDovL3RleHRwYXR0ZXJuLm9yZy9wbHVnaW5zLzEwMjQvc21k X3N0eWxlIj50ZXh0cGF0dGVybi5vcmc8L2E+LCBvciB0aGUgPGEgaHJlZj0iaHR0cDovL3N0 ZWZkYXdzb24uY29tL3N3Ij5zb2Z0d2FyZSBwYWdlPC9hPiwgcGFzdGUgdGhlIGNvZGUgaW50 byB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gQWRtaW4gLSZndDsgUGx1Z2lu cyBwYW5lLCBpbnN0YWxsIGFuZCBlbmFibGUgdGhlIHBsdWdpbi4gVmlzaXQgdGhlIDxhIGhy ZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9pZD0yODU5 MiI+Zm9ydW0gdGhyZWFkPC9hPiBmb3IgbW9yZSBpbmZvIGFuZCB0byByZXBvcnQgdGhlIHN1 Y2Nlc3MgKG9yIG90aGVyd2lzZSkgb2YgdGhpcyBwbHVnaW4uPC9wPgoKCTxwPlRvIHVuaW5z dGFsbCwgc2ltcGx5IGRlbGV0ZSBmcm9tIHRoZSBBZG1pbiAtJmd0OyBQbHVnaW5zIHBhZ2Uu PC9wPgoKCTxoMiBjbGFzcz0idXNhZ2UiPlVzYWdlPC9oMj4KCgk8cD5UaGVyZSBhcmUgdHdv IHRhZ3MgYXZhaWxhYmxlOiBvbmUgZm9yIHVzZSBpbiB0aGUgPGNvZGU+Jmx0O2hlYWQmZ3Q7 PC9jb2RlPiBvZiB5b3VyIHBhZ2UgdG8gc2V0IHVwIHRoZSBhbHRlcm5hdGUgc3R5bGVzLCBh bmQgdGhlIG90aGVyIGNhbiBvcHRpb25hbGx5IGFkZCBhIGphdmFzY3JpcHQgc3R5bGVzaGVl dCBzd2l0Y2hlciB0byB0aGUgcGFnZSwgd2hlcmV2ZXIgeW91IHdhbnQgaXQgdG8gYXBwZWFy LjwvcD4KCgk8aDMgaWQ9InNtZF9zdHlsZSI+c21kX3N0eWxlPC9oMz4KCgk8cCBjbGFzcz0i dGFnLXN1bW1hcnkiPlNvbWV3aGVyZSBpbiB5b3VyIDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1M PC9zcGFuPiA8Y29kZT4mbHQ7aGVhZCZndDs8L2NvZGU+IHRhZywgYWRkIGEgY2FsbCB0byA8 Y29kZT5zbWRfc3R5bGU8L2NvZGU+IHRvIGluY2x1ZGUgYSBsaXN0IG9mIGFsdGVybmF0ZSBz dHlsZXNoZWV0cy4gVXNlIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyB0byBjdXN0b21pc2Ug dGhlIG91dHB1dDo8L3A+CgoJPGg0IGNsYXNzPSJhdHRzICIgaWQ9ImF0dHJpYnV0ZXMiPkF0 dHJpYnV0ZXM8L2g0PgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnNoZWV0czwv c3Bhbj4gOiBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHN0eWxlc2hlZXRzIHRvIGluY2x1 ZGUuIFRoZXNlIGFyZSB0aGVpciA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBuYW1l cyBhcyBnaXZlbiBvbiB0aGUgUHJlc2VudGF0aW9uLSZndDtTdHlsZXMgdGFiLiBTZWUgPGEg aHJlZj0iI3NoZWV0bmFtZXMiPnNoZWV0IG5hbWVzPC9hPiBmb3IgbW9yZTwvbGk+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdG5tIj5mb3JtPC9zcGFuPiA6IHRoZSA8c3BhbiBjbGFzcz0iY2Fw cyI+VFhQPC9zcGFuPiBmb3JtIGluIHdoaWNoIHRvIGJ1aWxkIHlvdXIgb3duIDxjb2RlPiZs dDtsaW5rJmd0OzwvY29kZT4gdGFncy4gU2VlIDxhIGhyZWY9IiNyZXBsYWNlbWVudHMiPnJl cGxhY2VtZW50IHRhZ3M8L2E+LiBJZiBub3Qgc3BlY2lmaWVkIChhbmQgbm8gY29udGFpbmVy IGlzIHVzZWQpIGEgc3RhbmRhcmQgPHNwYW4gY2xhc3M9ImNhcHMiPlhIVE1MPC9zcGFuPiBs aW5rIHdpbGwgYmUgb3V0cHV0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnVzZV9k ZWZhdWx0PC9zcGFuPiA6IHRoZSBsaXN0IG9mIHN0eWxlc2hlZXRzIGdpdmVuIGluIHRoZSA8 Y29kZT5zaGVldHM8L2NvZGU+IHBhcmFtZXRlciBkb2VzIG5vdCB1c3VhbGx5IGNvbnRhaW4g dGhlICYjODIxNjtkZWZhdWx0JiM4MjE3OyBzdHlsZXNoZWV0IGFzc29jaWF0ZWQgd2l0aCB0 aGUgc2VjdGlvbi4gVGhpcyBhbGxvd3MgeW91IHRvIGFsd2F5cyBpbmNsdWRlIGEgJiM4MjE2 O2dsb2JhbCYjODIxNzsgc2hlZXQgd2l0aCBjb3JlIHJ1bGVzIGluIGl0IGFuZCBoYXZlIHRo ZSBhbHRlcm5hdGVzIG92ZXJyaWRlL2ZpbGwgaW4gdGhlIGdhcHMuIElmLCBob3dldmVyLCB5 b3Ugd2lzaCBzbWRfc3R5bGUgdG8gb3V0cHV0IHRoZSBkZWZhdWx0IHN0eWxlc2hlZXQgc28g eW91IGRvbiYjODIxNzt0IGhhdmUgdG8gZG8gaXQgZWxzZXdoZXJlLCBzcGVjaWZ5IDxjb2Rl PnVzZV9kZWZhdWx0PSZxdW90OzEmcXVvdDs8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xh c3M9ImF0bm0iPnByb21vdGVfcmVjZW50PC9zcGFuPiA6IERldGVybWluZSB3aGF0IHRvIGRv IHdoZW4gdGhlIHBhZ2UgbG9hZHMgYW5kIHRoZSB2aXNpdG9yIGhhcyBhbHJlYWR5IHN3aXRj aGVkIHRvIGFuIGFsdGVybmF0ZSBzdHlsZXNoZWV0LiBUaGlzIGNhbiBiZSB1c2VmdWwgdG8g dHJ5IGFuZCBoZWxwIHByZXZlbnQgJiM4MjE2O2ZsYXNoZXMgb2YgdW5zdHlsZWQgY29udGVu dCYjODIxNzsgaW4gZ29vZCBicm93c2Vycy4gQ2FuIHRha2Ugb25lIG9mIHRocmVlIHZhbHVl czoKCTx1bD4KCQk8bGk+PGNvZGU+MDwvY29kZT4gOiBkbyBub3RoaW5nLCBpLmUuIHNoZWV0 cyBhcmUgYWx3YXlzIGxvYWRlZCBpbiB0aGUgZ2l2ZW4gb3JkZXI8L2xpPgoJCTxsaT48Y29k ZT4xPC9jb2RlPiAodGhlIGRlZmF1bHQpIDogYW55IHN0eWxlIHNoZWV0IHRoYXQgaGFzIGJl ZW4gY2hvc2VuIGJ5IHRoZSB2aXNpdG9yIHdpbGwgYmUgbG9hZGVkIGFzIHNvb24gYXMgcG9z c2libGUgPHN0cm9uZz5hZnRlcjwvc3Ryb25nPiBhbnkgY29yZSBzaGVldHMgKGkuZS4gc2hl ZXRzIHRoYXQgeW91IHdhbnQgdG8gYmUgbm9uLWFsdGVybmF0ZSkuIFRodXMgaWYgeW91IGhh dmUgMiAmIzgyMTY7Y29yZSYjODIxNzsgc2hlZXRzIGFuZCB0aGUgdmlzaXRvciBjaG9vc2Vz IHRoZSBhbHRlcm5hdGUgc2hlZXQgdGhhdCB1c2VkIHRvIGJlICM0IGluIHRoZSBsaXN0LCBp dCB3aWxsIG5vdyBiZSBsb2FkZWQgM3JkPC9saT4KCQk8bGk+PGNvZGU+MjwvY29kZT4gOiBh bnkgc3R5bGUgc2hlZXQgdGhhdCBoYXMgYmVlbiBjaG9zZW4gYnkgdGhlIHZpc2l0b3Igd2ls bCBiZSBsb2FkZWQgZmlyc3QsIGkuZS4gdGhlIGNob3NlbiBzaGVldCB3aWxsIDxlbT5hbHdh eXM8L2VtPiBiZSBwcm9tb3RlZCB0byB0aGUgIzEgc2xvdDwvbGk+Cgk8L3VsPjwvbGk+CgkJ PGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5za2lwPC9zcGFuPiA6IGluIHRoZSBsaXN0IG9mIHNo ZWV0cywgc2tpcCB0aGlzIG51bWJlciBvZiBzaGVldHMgYmVmb3JlIHN0YXJ0aW5nIHRvIGxh YmVsIHRoZW0gYXMgJiM4MjE2O2FsdGVybmF0ZSYjODIxNzsuIFRoZSBzcGVjaWFsIGRlZmF1 bHQgc2V0dGluZyBvZiA8Y29kZT5hdXRvPC9jb2RlPiBiZWhhdmVzIHRodXM6Cgk8dWw+CgkJ PGxpPmlmIDxjb2RlPnVzZV9kZWZhdWx0PSZxdW90OzEmcXVvdDs8L2NvZGU+LCB0aGUgZmly c3Qgc2hlZXQgaW4gdGhlIGxpc3Qgd2lsbCBiZSBza2lwcGVkIChpLmUuIHdpbGwgYWx3YXlz IGJlIGEgdHJ1ZSBzdHlsZXNoZWV0KS4gRXF1aXZhbGVudCB0byA8Y29kZT5za2lwPSZxdW90 OzEmcXVvdDs8L2NvZGU+PC9saT4KCQk8bGk+aWYgPGNvZGU+dXNlX2RlZmF1bHQ9JnF1b3Q7 MCZxdW90OzwvY29kZT4gdGhlIGZpcnN0IHNoZWV0IGluIHRoZSBsaXN0IHdpbGwgYmUgYW4g YWx0ZXJuYXRlIHN0eWxlc2hlZXQgKGkuZS4gZXF1aXZhbGVudCB0byA8Y29kZT5za2lwPSZx dW90OzAmcXVvdDs8L2NvZGU+KTwvbGk+Cgk8L3VsPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNz PSJhdG5tIj5za2lwX3RpdGxlczwvc3Bhbj4gOiBpbiB0aGUgbGlzdCBvZiBzaGVldHMsIHNr aXAgdGhpcyBudW1iZXIgb2Ygc2hlZXRzIGJlZm9yZSBzdGFydGluZyB0byBhZGQgPGNvZGU+ dGl0bGU8L2NvZGU+IGF0dHJpYnV0ZXMuIFRoZSBzcGVjaWFsIGRlZmF1bHQgc2V0dGluZyBv ZiA8Y29kZT5hdXRvPC9jb2RlPiB3b3JrcyB0aGUgc2FtZSBhcyBmb3IgdGhlIDxjb2RlPnNr aXA8L2NvZGU+IGF0dHJpYnV0ZS4gTm90ZSB0aGF0IHNvbWUgY29tYmluYXRpb25zIG9mIHNr aXAvc2tpcF90aXRsZSBhcmUgbm90IHBlcm1pdHRlZCBieSB0aGUgPHNwYW4gY2xhc3M9ImNh cHMiPkhUTUw8L3NwYW4+IHNwZWNpZmljYXRpb24gc28gYXJlIGRpc2FsbG93ZWQuIFNlZSA8 YSBocmVmPSIjc2tpcHBpbmciPnNraXBwaW5nPC9hPiBmb3IgbW9yZSBkZXRhaWxzPC9saT4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnNob3dfZW1wdHk8L3NwYW4+IDogYnkgZGVmYXVs dCwgaWYgYW55IGZpZWxkIChlLmcuIGEgY3VzdG9tIGZpZWxkKSBoYXMgbm8gdmFsdWUgYXNz aWduZWQgdG8gaXQgYW5kIHlvdSB0cnkgdG8gcmVhZCBhIHNoZWV0IG5hbWUsIHRoZSBmaWVs ZCB3aWxsIGJlIGlnbm9yZWQuIFNldHRpbmcgdGhpcyB0byA8Y29kZT4xPC9jb2RlPiB3aWxs IGluY2x1ZGUgYSBzdHlsZXNoZWV0IHdpdGggdGhlIG5hbWUgb2YgdGhlIGZpZWxkIGl0c2Vs Zi4gU2VlIDxhIGhyZWY9IiNlZzUiPkV4YW1wbGUgNTwvYT4gZm9yIGEgcHJhY3RpY2FsIGFw cGxpY2F0aW9uIG9mIHRoaXM8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+cmVhbF9z aGVldHM8L3NwYW4+IDogbm9ybWFsbHksIHN0YW5kYXJkIDxjb2RlPmNzcy5waHA/bj1zaGVl dF9uYW1lPC9jb2RlPiByZWZlcmVuY2VzIGFyZSBvdXRwdXQuIElmIHlvdSBwcmVmZXIgJiM4 MjE2O3JlYWwmIzgyMTc7IHN0eWxlc2hlZXQgZmlsZW5hbWUgcmVmZXJlbmNlcywgc2V0IHRo aXMgYXR0cmlidXRlIHRvIDxjb2RlPjE8L2NvZGU+LiBOb3RlIHlvdSB3aWxsIGhhdmUgdG8g ZW5zdXJlIHRoYXQgdGhlIHN0eWxlc2hlZXQgZmlsZXMgcmVhbGx5IGV4aXN0IG9uIHlvdXIg c2VydmVyIGluIHRoZSBnaXZlbiBkaXJlY3RvcnkgKHNlZSA8Y29kZT5zaGVldHNfZGlyPC9j b2RlPik8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+c2hlZXRzX2Rpcjwvc3Bhbj4g OiBsb2NhdGlvbiAocmVsYXRpdmUgdG8gdGhlIHJvb3Qgb2YgeW91ciB0ZXh0cGF0dGVybiBp bnN0YWxsYXRpb24pIHdoZXJlIHlvdXIgc3R5bGVzaGVldHMgYXJlIHRvIGJlIGZvdW5kIGlm IHVzaW5nIDxjb2RlPnJlYWxfc2hlZXRzPSZxdW90OzEmcXVvdDs8L2NvZGU+LiBJZiB5b3Ug aGF2ZSB0aGUgcnZtX2NzcyBwbHVnaW4gaW5zdGFsbGVkIGl0IHdpbGwgZGVmYXVsdCB0byB0 aGUgZGlyZWN0b3J5IHNwZWNpZmllZCBpbiBBZG1pbiAtJmd0OyBQcmVmZXJlbmNlcyAtJmd0 OyBBZHZhbmNlZCAtJmd0OyBTdHlsZSBkaXJlY3Rvcnk8L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXRubSI+cGFyc2VfdGFnczwvc3Bhbj4gOiBpZiB5b3Ugd2lzaCB0byBiZSBhYmxlIHRv IHB1dCA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiB0YWdzIGluc2lkZSB5b3VyIHN0 eWxlIHNoZWV0cyBhbmQgaGF2ZSB0aGVtIHBhcnNlZCwgeW91IG5vdyBjYW4uIFNldCB0aGlz IGF0dHJpYnV0ZSB0byA8Y29kZT4xPC9jb2RlPiB0byBlbmFibGUgdGFnIHBhcnNpbmcuIE5v dGUgdGhhdCB0aGlzIG9ubHkgd29ya3MgaWYgPGNvZGU+cmVhbF9zdHlsZXM9JnF1b3Q7MCZx dW90OzwvY29kZT4gIGJlY2F1c2UgdGhlcmUmIzgyMTc7cyBubyB3YXkgZm9yIFRleHRwYXR0 ZXJuIHRvIGludGVyY2VwdCBhIGRpcmVjdCBjYWxsIHRvIGEgc3R5bGVzaGVldDwvbGk+CgkJ PGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5kZWxpbTwvc3Bhbj4gOiB0aGUgZGVsaW1pdGVyIHRv IHVzZSBiZXR3ZWVuIDxjb2RlPnNoZWV0czwvY29kZT4uIERlZmF1bHQgaXMgdGhlIGNvbW1h ICg8Y29kZT4sPC9jb2RlPik8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+cGFyYW1f ZGVsaW08L3NwYW4+IDogdGhlIGRlbGltaXRlciB0byB1c2UgYmV0d2VlbiBhZGRpdGlvbmFs IHNoZWV0IGluZm9ybWF0aW9uLiBEZWZhdWx0IGlzIHRoZSBjb2xvbiAoPGNvZGU+OjwvY29k ZT4pPC9saT4KCTwvdWw+CgoJPGgzIGlkPSJzaGVldG5hbWVzIj5TaGVldCBuYW1lczwvaDM+ CgoJPHA+V2hlbiB1c2luZyB0aGUgPGNvZGU+c2hlZXRzPC9jb2RlPiBhdHRyaWJ1dGUsIGlm IHlvdSBwcmVjZWRlIGFueSBzaGVldCBuYW1lIHdpdGggYSA8Y29kZT4/PC9jb2RlPiB0aGUg PHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gZW52aXJvbm1lbnQgd2lsbCBiZSBzZWFy Y2hlZCBmb3IgYSBtYXRjaGluZyBsb2NhdGlvbi4gRm9yIGV4YW1wbGUsIDxjb2RlPnNoZWV0 cz0mcXVvdDtjb3JlLCA/Y3VzdG9tMyZxdW90OzwvY29kZT4gd291bGQgbG9hZCBjb3JlLmNz cyBhbmQgdGhlbiBsb29rIGluIHRoZSBjdXN0b20zIGZpZWxkIGZvciBhIGZ1cnRoZXIgbGlz dCBvZiBzdHlsZXNoZWV0cyB0byBsb2FkLiBUaGUgb3JkZXIgaW4gd2hpY2ggdGhlIGxvY2F0 aW9ucyBhcmUgc2VhcmNoZWQgaXM6IDEpIEFydGljbGUgZmllbGRzOyAyKSA8Y29kZT4mbHQ7 dHhwOnZhcmlhYmxlIC8mZ3Q7PC9jb2RlPjsgMykgVGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5V Ukw8L3NwYW4+LiBJZiBhIDxjb2RlPj88L2NvZGU+IHZhbHVlIGlzIHN1cHBsaWVkIGFuZCBh IHN1aXRhYmxlIGxvY2F0aW9uIGNhbm5vdCBiZSBmb3VuZCwgdGhlIHZhbHVlIHlvdSBnYXZl IHdpbGwgYmUgdXNlZCB2ZXJiYXRpbS48L3A+CgoJPHA+WW91IG1heSBhbHNvIHNwZWNpZnkg dXAgdG8gdHdvIGFkZGl0aW9uYWwgcGllY2VzIG9mIGluZm9ybWF0aW9uIGluIGVhY2ggc2hl ZXQgZGVmaW5pdGlvbjogMSkgdGhlIHNoZWV0JiM4MjE3O3MgJiM4MjIwO3ByZXR0eSBuYW1l JiM4MjIxOyB0aGF0IHBlb3BsZSB3aWxsIHNlZSwgYW5kIDIpIGl0cyBtZWRpYSB0eXBlICh1 c3VhbGx5IDxjb2RlPnNjcmVlbjwvY29kZT4pLiBUbyBkbyB0aGlzLCBzZXBhcmF0ZSB0aGUg dmFsdWVzIHdpdGggY29sb25zICh1bmxlc3MgY2hhbmdlZCB2aWEgdGhlIDxjb2RlPnBhcmFt X2RlbGltPC9jb2RlPiBhdHRyaWJ1dGUpIGxpa2UgdGhpczo8L3A+Cgo8cHJlIGNsYXNzPSJi bG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9zdHlsZSB1c2VfZGVmYXVs dD0mcXVvdDsxJnF1b3Q7CiAgICAgc2hlZXRzPSZxdW90O2NvcmUsIGNhdHM6Q2F0cyBvZiB0 aGUgd29ybGQsIHByaW50ZXI6UHJpbnQgbGF5b3V0OnByaW50JnF1b3Q7IC8mZ3Q7CjwvY29k ZT48L3ByZT4KCgk8cD5UaGF0IHdvdWxkIG91dHB1dCBzb21ldGhpbmcgc2ltaWxhciB0byB0 aGUgZm9sbG93aW5nOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxv Y2siPiZsdDtsaW5rIHJlbD0mcXVvdDtzdHlsZXNoZWV0JnF1b3Q7IHR5cGU9JnF1b3Q7dGV4 dC9jc3MmcXVvdDsgbWVkaWE9JnF1b3Q7c2NyZWVuJnF1b3Q7CiAgICAgdGl0bGU9JnF1b3Q7 ZGVmYXVsdCZxdW90OyBocmVmPSZxdW90O2h0dHA6Ly9zaXRlLmNvbS90ZXh0cGF0dGVybi9j c3MucGhwP249ZGVmYXVsdCZxdW90OyAvJmd0OwombHQ7bGluayByZWw9JnF1b3Q7YWx0ZXJu YXRlIHN0eWxlc2hlZXQmcXVvdDsgdHlwZT0mcXVvdDt0ZXh0L2NzcyZxdW90OyBtZWRpYT0m cXVvdDtzY3JlZW4mcXVvdDsKICAgICB0aXRsZT0mcXVvdDtmbG93ZXJzJnF1b3Q7IGhyZWY9 JnF1b3Q7aHR0cDovL3NpdGUuY29tL3RleHRwYXR0ZXJuL2Nzcy5waHA/bj1mbG93ZXJzJnF1 b3Q7IC8mZ3Q7CiZsdDtsaW5rIHJlbD0mcXVvdDthbHRlcm5hdGUgc3R5bGVzaGVldCZxdW90 OyB0eXBlPSZxdW90O3RleHQvY3NzJnF1b3Q7IG1lZGlhPSZxdW90O3NjcmVlbiZxdW90Owog ICAgIHRpdGxlPSZxdW90O0NhdHMgb2YgdGhlIHdvcmxkJnF1b3Q7IGhyZWY9JnF1b3Q7aHR0 cDovL3NpdGUuY29tL3RleHRwYXR0ZXJuL2Nzcy5waHA/bj1jYXRzJnF1b3Q7IC8mZ3Q7CiZs dDtsaW5rIHJlbD0mcXVvdDthbHRlcm5hdGUgc3R5bGVzaGVldCZxdW90OyB0eXBlPSZxdW90 O3RleHQvY3NzJnF1b3Q7IG1lZGlhPSZxdW90O3ByaW50JnF1b3Q7CiAgICAgdGl0bGU9JnF1 b3Q7UHJpbnQgbGF5b3V0JnF1b3Q7IGhyZWY9JnF1b3Q7aHR0cDovL3NpdGUuY29tL3RleHRw YXR0ZXJuL2Nzcy5waHA/bj1wcmludGVyJnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8 aDMgaWQ9InJlcGxhY2VtZW50cyI+UmVwbGFjZW1lbnQgdGFnczwvaDM+CgoJPHA+SWYgeW91 IGRvbiYjODIxNzt0IGxpa2UgdGhlIHN0YW5kYXJkIG91dHB1dCBvciB3aXNoIHRvIGZhc2hp b24geW91ciBvd24gPGNvZGU+Jmx0O2xpbmsmZ3Q7PC9jb2RlPiB0YWdzIHRoZW4geW91IGNh biBzcGVjaWZ5IGNvbnRhaW5lciBjb250ZW50IG9yIGEgPGNvZGU+Zm9ybTwvY29kZT4gd2l0 aCB3aGljaCB0byBwcm9jZXNzIHRoZSByZXN1bHRzLiBUaGVyZSBhcmUgcmVwbGFjZW1lbnQg dmFyaWFibGVzIHlvdSBjYW4gZW1wbG95IHdpdGhpbiB5b3VyIGxheW91dCB0byBpbnNlcnQg dGhlIHJlbGV2YW50IGNvbnRlbnQgZm9yIGVhY2ggc3R5bGVzaGVldDo8L3A+CgoJPHVsPgoJ CTxsaT48Y29kZT57c21kX3N0eWxlX25hbWV9PC9jb2RlPiA6IHRoZSBzdHlsZXNoZWV0IG5h bWUgYXMgZ2l2ZW4gaW4gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IFN0eWxl cyB0YWI8L2xpPgoJCTxsaT48Y29kZT57c21kX3N0eWxlX3VybH08L2NvZGU+IDogdGhlIGNv bXBsZXRlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+ICg8c3BhbiBjbGFzcz0iY2Fw cyI+VFhQPC9zcGFuPi1zdHlsZSBvciAmIzgyMTY7cmVhbCYjODIxNzsgZGVwZW5kaW5nIG9u IHRoZSA8Y29kZT5yZWFsX3NoZWV0czwvY29kZT4gYXR0cmlidXRlKTwvbGk+CgkJPGxpPjxj b2RlPntzbWRfc3R5bGVfbWVkaWF9PC9jb2RlPiA6IHRoZSB0eXBlIG9mIHN0eWxlc2hlZXQg KGUuZy4gc2NyZWVuLCBwcmludCYjODIzMDspPC9saT4KCQk8bGk+PGNvZGU+e3NtZF9zdHls ZV9yZWx9PC9jb2RlPiA6IHRoZSBzdHlsZXNoZWV0IHJlbGF0aW9uc2hpcCAoZWl0aGVyICYj ODIxNjtzdHlsZXNoZWV0JiM4MjE3OyBvciAmIzgyMTY7YWx0ZXJuYXRlIHN0eWxlc2hlZXQm IzgyMTc7KTwvbGk+CgkJPGxpPjxjb2RlPntzbWRfc3R5bGVfdGl0bGV9PC9jb2RlPiA6IHRo ZSBodW1hbi1mcmllbmRseSB0aXRsZSB5b3UgaGF2ZSBhc3NpZ25lZCB0byB0aGUgc3R5ZWxz aGVldC4gSWYgbm90IHNwZWNpZmllZCwgaXQgZGVmYXVsdHMgdG8gdGhlIHN0eWxlc2hlZXQg bmFtZTwvbGk+CgkJPGxpPjxjb2RlPntzbWRfc3R5bGVfY291bnRlcn08L2NvZGU+IDogdGhl IGN1cnJlbnQgc3R5bGVzaGVldCBudW1iZXIgYmVpbmcgcHJvY2Vzc2VkPC9saT4KCQk8bGk+ PGNvZGU+e3NtZF9zdHlsZV90b3RhbH08L2NvZGU+IDogdGhlIHRvdGFsIG51bWJlciBvZiBz dHlsZXNoZWV0cyBpbiB0aGUgbGlzdDwvbGk+Cgk8L3VsPgoKCTxoMyBpZD0ic2tpcHBpbmci PlNraXBwaW5nPC9oMz4KCgk8cD5UaGUgPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+ IHNwZWNpZmljYXRpb24gYWxsb3dzIGZvciB0aHJlZSB0eXBlcyBvZiBzdHlsZXNoZWV0Ojwv cD4KCgk8dWw+CgkJPGxpPlBlcnNpc3RlbnQgOiBvbmVzIHRoYXQgYXJlIGZvcmNlZCBvbiB0 aGUgdXNlciB1bmxlc3MgdGhleSBjaG9vc2UgPGVtPk5vIFN0eWxlczwvZW0+IGZyb20gdGhl aXIgYnJvd3NlciBtZW51PC9saT4KCQk8bGk+UHJlZmVycmVkIDogb25lcyB0aGF0IGFyZSBh bHdheXMgbG9hZGVkIGJ1dCBjYW4gYmUgc3dhcHBlZCBvdXQgZm9yIG90aGVyczwvbGk+CgkJ PGxpPkFsdGVybmF0ZSA6IG9uZXMgdGhhdCBhcmUgbm90IGxvYWRlZCBieSBkZWZhdWx0IGJ1 dCBjYW4gYmUgc3dpdGNoZWQgaW4gYW5kIG91dCBmcmVlbHkgYnkgdGhlIHVzZXI8L2xpPgoJ PC91bD4KCgk8cD5XaXRoIGEgY29tYmluYXRpb24gb2YgPGNvZGU+dXNlX2RlZmF1bHQ8L2Nv ZGU+LCA8Y29kZT5za2lwPC9jb2RlPiBhbmQgPGNvZGU+c2tpcF90aXRsZTwvY29kZT4geW91 IGNhbiBvZmZlciBhbnkgb2YgdGhlc2UgdHlwZXMuIFNvbWUgY29tYmluYXRpb25zIG9mIDxj b2RlPnNraXA8L2NvZGU+IGFuZCA8Y29kZT5za2lwX3RpdGxlPC9jb2RlPiBhcmUgbm90IHBl cm1pdHRlZCBiZWNhdXNlIHRoZXkgd291bGQgcmVuZGVyIGlsbGVnYWwgPHNwYW4gY2xhc3M9 ImNhcHMiPkhUTUw8L3NwYW4+IChlLmcuIHRoZSBjYXNlIHdoZW4geW91IGhhdmUgYW4gYWx0 ZXJuYXRlIHN0eWxlc2hlZXQgd2l0aG91dCBhIHRpdGxlKS48L3A+CgoJPHA+VG8gdHJ5IGFu ZCBtYWtlIGl0IGEgbGl0dGxlIGVhc2llciB0byB2aXN1YWxpc2UsIGhlcmUgaXMgYSB0YWJs ZSB0aGF0IHNob3dzIHdoaWNoIG9mIHRoZSBzdHlsZXNoZWV0IGZsYXZvdXJzIGFyZSBzZXJ2 ZWQgd2l0aCB2YXJ5aW5nIHZhbHVlcyBvZiB0aGVzZSBhdHRyaWJ1dGVzLiBBc3N1bWluZyB5 b3UgaGF2ZSB0d28gc3R5bGVzaGVldHMgbGFiZWxsZWQgQSBhbmQgQiwgc2hlZXQgQSB3aWxs IGJlIHNldCB0byBvbmUgb2YgdGhlIGZvbGxvd2luZyBmbGF2b3Vyczo8L3A+CgoJPHRhYmxl PgoJCTx0cj4KCQkJPHRkPiZuYnNwOyA8L3RkPgoJCQk8dGQ+PHN0cm9uZz5za2lwPTA8L3N0 cm9uZz4gPC90ZD4KCQkJPHRkPjxzdHJvbmc+c2tpcD0xPC9zdHJvbmc+IDwvdGQ+CgkJPC90 cj4KCQk8dHI+CgkJCTx0ZD4gPHN0cm9uZz5za2lwX3RpdGxlPTA8L3N0cm9uZz4gPC90ZD4K CQkJPHRkPiBBbHRlcm5hdGUgPC90ZD4KCQkJPHRkPiBQcmVmZXJyZWQgPC90ZD4KCQk8L3Ry PgoJCTx0cj4KCQkJPHRkPiA8c3Ryb25nPnNraXBfdGl0bGU9MTwvc3Ryb25nPiA8L3RkPgoJ CQk8dGQ+IChkaXNhbGxvd2VkKSBBbHRlcm5hdGUgPC90ZD4KCQkJPHRkPiBQZXJzaXN0ZW50 IDwvdGQ+CgkJPC90cj4KCTwvdGFibGU+CgoJPHA+VGhlIHNhbWUgbG9naWMgYXBwbGllcyBp ZiB1c2luZyB0aGUgPGNvZGU+YXV0bzwvY29kZT4gcGFyYW1ldGVyIGFuZC9vciB0aGUgPGNv ZGU+dXNlX2RlZmF1bHQ8L2NvZGU+IGF0dHJpYnV0ZS4gVGhlIGZpcnN0IHNoZWV0IGluIHRo ZSBsaXN0IHdpbGwgYmVjb21lIG9uZSBvZiB0aG9zZSBmbGF2b3VycyBvZiBTdHlsZXNoZWV0 IHdoZXJlIHRoZSB2YWx1ZXMgb2YgPGNvZGU+c2tpcDwvY29kZT4gYW5kIDxjb2RlPnNraXBf dGl0bGU8L2NvZGU+IGludGVyc2VjdC4gSWYgdXNpbmcgdmFsdWVzIG9mICYjODIxNjtOJiM4 MjE3OyBvciBtb3JlLCB0aGUgZmlyc3QgJiM4MjE2O04mIzgyMTc7IHNoZWV0cyBiZWNvbWUg dGhvc2UgcGFydGljdWxhciBmbGF2b3Vycy48L3A+CgoJPGgzIGlkPSJzbWRfc3R5bGVzd2l0 Y2giPnNtZF9zdHlsZXN3aXRjaDwvaDM+CgoJPHAgY2xhc3M9InJlcXVpcmVzIj5SZXF1aXJl cyBqUXVlcnkgdG8gYmUgbG9hZGVkIG9uIHlvdXIgcGFnZSwgYmVmb3JlIHRoZSBjYWxsIHRv IHNtZF9zdHlsZXN3aXRjaC4gVGVzdGVkIHdpdGggdGhlIGxhdGVzdCB2ZXJzaW9uICgxLjIu NiBhcyBvZiB0aGlzIHdyaXRpbmcpLjwvcD4KCgk8cD5PbiBpdHMgb3duIHRoZSA8YSBocmVm PSIjc21kX3N0eWxlIj5zbWRfc3R5bGU8L2E+IHRhZyBnaXZlcyB0aGUgdmlzaXRvciB0aGUg YWJpbGl0eSB0byBzd2l0Y2ggc3R5bGVzIHZpYSB0aGUgJiM4MjE2O1ZpZXcgYWx0ZXJuYXRl IHN0eWxlc2hlZXQmIzgyMTc7IGZhY2lsaXR5IG9mIG1vZGVybiBicm93c2Vycy4gSWYgeW91 IHdpc2ggdG8gb2ZmZXIgdGhlbSBhIHdheSBvZiBpbnN0YW50YW5lb3VzbHkgc3dpdGNoaW5n IChhbmQgcmVtZW1iZXJpbmcpIHRoZSBjaG9zZW4gdGhlbWUgZnJvbSB3aXRoaW4geW91ciBj b250ZW50LCB1c2UgPGNvZGU+c21kX3N0eWxlc3dpdGNoPC9jb2RlPiBzb21ld2hlcmUgaW4g dGhlIGZsb3cgb2YgeW91ciBwYWdlIHRvIGluc2VydCBhIHN0eWxlc2hlZXQgc3dpdGNoZXIu IEl0IGNhbiBiZSBjdXN0b21pc2VkIGFzIGZvbGxvd3M6PC9wPgoKCTxoNCBjbGFzcz0iYXR0 cyAiIGlkPSJhdHRyaWJ1dGVzIj5BdHRyaWJ1dGVzPC9oND4KCgk8dWw+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdG5tIj53cmFwdGFnPC9zcGFuPiA6IHN0YW5kYXJkIChYKUhUTUwgdGFnIHRv IHdyYXAgdGhlIGVudGlyZSBzd2l0Y2hlciB3aXRoLiBEZWZhdWx0IGlzIDxjb2RlPnVsPC9j b2RlPi4gSWYgeW91IGRvIG5vdCBzcGVjaWZ5IHRoaXMgYXR0cmlidXRlIHlvdV9tdXN0XyBj cmVhdGUgeW91ciBvd24gY29udGFpbmVyIHNvbWV3aGVyZSBlbHNlIGluIHRoZSBwYWdlPC9s aT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNsYXNzPC9zcGFuPiA6IDxzcGFuIGNsYXNz PSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIHRvIGFwcGx5IHRvIHRoZSB3cmFwdGFnLiBEZWZh dWx0IGlzIDxjb2RlPnNtZF9zd2l0Y2hlcjwvY29kZT4uIElmIHlvdSBoYXZlIG5vdCBzcGVj aWZpZWQgYSA8Y29kZT53cmFwdGFnPC9jb2RlPiwgeW91ciBvd24gY29udGFpbmVyIG11c3Qg YmUgZ2l2ZW4gdGhpcyBjbGFzcyBuYW1lIHNvIHRoZSBzd2l0Y2hlciBjYW4gYmUgaW5zZXJ0 ZWQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+YnJlYWs8L3NwYW4+IDogc3RhbmRh cmQgKFgpSFRNTCB0YWcgdG8gd3JhcCBlYWNoIHN0eWxlc2hlZXQgbmFtZSBhbmQgbGluayB3 aXRoLiBEZWZhdWx0IGlzIDxjb2RlPmxpPC9jb2RlPi4gTm90ZSB0aGF0IHRoaXMgZG9lcyBu b3QgaGF2ZSB0byBvcGVyYXRlIGFzIGEgY29udGFpbmVyIHRhZyAoc2VlIHRoZSA8Y29kZT5i cmVha19pc190YWc8L2NvZGU+IGF0dHJpYnV0ZSk8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXRubSI+YnJlYWtfaXNfdGFnPC9zcGFuPiA6IGlmIHRoZSA8Y29kZT5icmVhazwvY29kZT4g YXR0cmlidXRlIGlzIGEgdGFnLCB0aGlzIHNob3VsZCBiZSBzZXQgdG8gPGNvZGU+MTwvY29k ZT4gKHdoaWNoIGl0IGlzIGJ5IGRlZmF1bHQpLiBJZiB5b3Ugd2lzaCB0byB1c2Ugc29tZXRo aW5nIGVsc2UgYmV0d2VlbiBlYWNoIHN0eWxlc2hlZXQgbmFtZSAoZS5nLiA8Y29kZT5icmVh az0mcXVvdDsgfCAmcXVvdDs8L2NvZGU+KSBzZXQgdGhpcyB0byA8Y29kZT4wPC9jb2RlPjwv bGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5saW5rY2xhc3M8L3NwYW4+IDogPHNwYW4g Y2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gY2xhc3MgdG8gYXBwbHkgdG8gZWFjaCBzdHlsZXNo ZWV0IGxpbmsuIERlZmF1bHQgaXMgPGNvZGU+c21kX3N0eWxlc3dpdGNoPC9jb2RlPjwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5hY3RpdmVjbGFzczwvc3Bhbj4gOiA8c3BhbiBj bGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyB0byBpbmRpY2F0ZSB0aGUgY3VycmVudGx5 IHNlbGVjdGVkIHN0eWxlc2hlZXQgbGluay4gRGVmYXVsdCBpcyA8Y29kZT5zbWRfY3VycnN0 eWxlPC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5hbHRfb25seTwvc3Bh bj4gOiBpZiBzZXQgdG8gPGNvZGU+MTwvY29kZT4gd2lsbCBvbmx5IG9mZmVyIHN0eWxlc2hl ZXRzIHdpdGggYSByZWwgdGhhdCBpbmNsdWRlcyAmIzgyMTY7YWx0ZXJuYXRlJiM4MjE3OyBp biB0aGUgbGlzdC4gVGhlIGRlZmF1bHQgYmVoYXZpb3VyICg8Y29kZT4wPC9jb2RlPikgaXMg dG8gbGlzdCBhbGwgc3R5bGVzaGVldHMgb24gdGhlIHBhZ2UgdGhhdCBjb250YWluIGEgJiM4 MjE2O3RpdGxlJiM4MjE3OyBhdHRyaWJ1dGU8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRu bSI+c29ydDwvc3Bhbj4gOiBzZXQgdG8gPGNvZGU+MTwvY29kZT4gKHRoZSBkZWZhdWx0KSB0 byBzb3J0IHRoZSBzdHlsZXNoZWV0cyBpbiBhbHBoYWJldGljYWwgb3JkZXIuIElmIHNldCB0 byAwLCB0aGUgbW9zdCByZWNlbnRseSB1c2VkIHN0eWxlc2hlZXQgd2lsbCBiZSBzaG93biBh dCB0aGUgaGVhZCBvZiB0aGUgbGlzdDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5j YXNlX3NlbnNpdGl2ZTwvc3Bhbj4gOiB3aGV0aGVyIHRoZSA8Y29kZT5zb3J0PC9jb2RlPiBp cyBjYXNlIHNlbnNpdGl2ZSAoPGNvZGU+MTwvY29kZT4pIG9yIG5vdCAoPGNvZGU+MDwvY29k ZT4pLiBEZWZhdWx0IGlzIDA8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ZXhwaXJ5 PC9zcGFuPiA6IG51bWJlciBvZiBkYXlzIGFmdGVyIHdoaWNoIHRoZSBjb29raWUgdGhhdCBo b2xkcyB0aGUgY3VycmVudCBzdHlsZXNoZWV0IHJlbWFpbnMgdmFsaWQuIERlZmF1bHQgaXMg PGNvZGU+NzwvY29kZT4gZGF5czwvbGk+Cgk8L3VsPgoKCTxwPlRoZSBzdHlsZXNoZWV0IHN3 aXRjaGVyIHRoYXQgaXMgaW5zZXJ0ZWQgYXQgdGhlIGdpdmVuIGxvY2F0aW9uIGNvbnNpc3Rz IG9mIGFuIGFuY2hvciB0YWcgd2l0aCBhIGxpbmsgdG8gdGhlIG5ldyBzdHlsZXNoZWV0LiBU aGUgdGV4dCB3aXRoaW4gdGhlIGFuY2hvciBpcyB0aGUgc3R5bGVzaGVldCB0aXRsZSAoaWYg c3VwcGxpZWQpIG9yIGl0cyBuYW1lIGlmIG5vdC4gTm90ZSB0aGF0IHRoZSBzd2l0Y2hlciB3 aWxsIHBpY2sgdXAgPGVtPmFsbCBzdHlsZXNoZWV0cyB0aGF0IGhhdmUgYSB0aXRsZSBhdHRy aWJ1dGU8L2VtPiBzbyBpZiBhbnkgb2YgeW91ciBvdGhlciBzdHlsZXNoZWV0cyBub3QgY29u dHJvbGxlZCBieSB0aGUgcGx1Z2luIGhhdmUgdGl0bGVzLCB0aGV5IHdpbGwgYmUgaW5jbHVk ZWQgYXMgd2VsbC4gVGhpcyBjb3VsZCBiZSBjb25zaWRlcmVkIGEgZmVhdHVyZSghKTwvcD4K Cgk8cD5JZiB5b3UgYXJlIGEgbmVhdG5lc3MgYnVmZiBhbmQgcHJlZmVyIHRoYXQgYWxsIGph dmFzY3JpcHQgZ29lcyBpbiB0aGUgPGNvZGU+Jmx0O2hlYWQmZ3Q7PC9jb2RlPiwgdXNpbmcg PGNvZGU+d3JhcHRhZz0mcXVvdDsmcXVvdDs8L2NvZGU+IHdpbGwgYWxsb3cgeW91IHRvIGlu c2VydCB0aGUgPGNvZGU+Jmx0O3R4cDpzbWRfc3R5bGVzd2l0Y2ggLyZndDs8L2NvZGU+IHRh ZyBpbiB0aGUgaGVhZCBvZiB5b3VyIGRvY3VtZW50IHdoaWxlIGxvY2F0aW5nIHlvdXIgc3dp dGNoaW5nIGNvbnRhaW5lciBlbHNld2hlcmUuPC9wPgoKCTxoMj5FeGFtcGxlczwvaDI+CgoJ PGgzIGlkPSJlZzEiPkV4YW1wbGUgMTwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUg Y2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9zdHlsZQogICAgIHNoZWV0cz0mcXVvdDt5ZWxs b3csIGdyZWVuLCBicm93biwgYmx1ZSwgcGluaywgYmxhY2smcXVvdDsgLyZndDsKJmx0O3R4 cDpzbWRfc3R5bGVzd2l0Y2ggd3JhcHRhZz0mcXVvdDsmcXVvdDsgLyZndDsKPC9jb2RlPjwv cHJlPgoKCTxwPlNvbWV3aGVyZSBmdXJ0aGVyIGRvd24gdGhlIHBhZ2UgeW91IHdvdWxkIGhh dmUgdG8gYWRkOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2si PiZsdDt1bCBjbGFzcz0mcXVvdDtzbWRfc3dpdGNoZXImcXVvdDsmZ3Q7Jmx0Oy91bCZndDsK PC9jb2RlPjwvcHJlPgoKCTxwPlRoYXQgd2lsbCBhZGQgc2l4IGFsdGVybmF0ZSBzdHlsZXNo ZWV0cyB0byB0aGUgcGFnZSBhbmQgYWRkIGEgc3dpdGNoZXIgd2hlcmV2ZXIgeW91ciA8Y29k ZT4mbHQ7dWwmZ3Q7PC9jb2RlPiBhcHBlYXJzIG9uIHRoZSBwYWdlLiBBIGZldyBtb2RpZmlj YXRpb25zIGFyZSBwb3NzaWJsZTo8L3A+CgoJPHVsPgoJCTxsaT53aXRoIHJ2bV9jc3MgaW5z dGFsbGVkLCBhZGRpbmcgPGNvZGU+cmVhbF9zaGVldHM9JnF1b3Q7MSZxdW90OzwvY29kZT4g dG8gdGhlIDxjb2RlPnNtZF9zdHlsZTwvY29kZT4gdGFnIHdvdWxkIGNoYW5nZSB0aGUgPHNw YW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj5zIHRvICYjODIxNjtyZWFsJiM4MjE3OyA8c3Bh biBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBmaWxlIHBhdGhzPC9saT4KCQk8bGk+YWRkaW5n IDxjb2RlPnVzZV9kZWZhdWx0PSZxdW90OzEmcXVvdDs8L2NvZGU+IHdpbGwgYWRkIHRoZSBj dXJyZW50IHNlY3Rpb24mIzgyMTc7cyBzdHlsZXNoZWV0IHRvIHRoZSBsaXN0IGFzIHdlbGwu IElmIGl0IGhhcHBlbnMgdG8gYmUgdGhlIHNhbWUgYXMgb25lIG9mIHRoZSBvbmVzIGluIHRo ZSBsaXN0IGFscmVhZHksIGl0IHdpbGwgb25seSBiZSB1c2VkIG9uY2U8L2xpPgoJCTxsaT5h ZGRpbmcgPGNvZGU+c2tpcD0mcXVvdDsyJnF1b3Q7PC9jb2RlPiB3aWxsIGNhdXNlIHRoZSAm IzgyMTY7eWVsbG93JiM4MjE3OyBhbmQgJiM4MjE2O2dyZWVuJiM4MjE3OyBzaGVldHMgdG8g YmUgc3RhdGljIChub24tYWx0ZXJuYXRlKTwvbGk+CgkJPGxpPnVzaW5nIDxjb2RlPnByb21v dGVfcmVjZW50PC9jb2RlPiB3aWxsIGNoYW5nZSB0aGUgbG9hZCBvcmRlciBhcyBmb2xsb3dz OgoJPHVsPgoJCTxsaT48Y29kZT4wPC9jb2RlPiA6IGxvYWQgb3JkZXIgd2lsbCBhbHdheXMg YmUgeWVsbG93LCBncmVlbiwgYnJvd24sIGJsdWUsIHBpbmssIGJsYWNrPC9saT4KCQk8bGk+ PGNvZGU+MTwvY29kZT4gOiBwcm9tb3RlIHRoZSBjaG9zZW4gc2hlZXQgdXAgdGhlIGxpc3Qu IFdpdGggPGNvZGU+dXNlX2RlZmF1bHQ9JnF1b3Q7MSZxdW90OyBza2lwPSZxdW90OzImcXVv dDs8L2NvZGU+LCBpZiB0aGUgdmlzaXRvciBjaG9zZSAmIzgyMTY7cGluayYjODIxNzsgYXMg dGhlaXIgdGhlbWUgYW5kIHJlZnJlc2hlZCB0aGUgcGFnZSwgdGhlIGxvYWQgb3JkZXIgd291 bGQgYmU6IHllbGxvdywgcGluaywgZ3JlZW4sIGJyb3duLCBibHVlLCBibGFjayAoeWVsbG93 IGFuZCBwaW5rIHdvdWxkIGJlIGxpc3RlZCBhcyAmIzgyMjA7c3RhdGljJiM4MjIxOyBzdHls ZXNoZWV0cyk8L2xpPgoJCTxsaT48Y29kZT4yPC9jb2RlPiA6IGZvcmNlIHdoaWNoZXZlciBz aGVldCB3YXMgbW9zdCByZWNlbnRseSBjaG9zZW4gdG8gYmUgdGhlIGZpcnN0IGxvYWRlZC4g QWdhaW4sIGlmIHRoZSB2aXNpdG9yIGNob3NlICYjODIxNjtwaW5rJiM4MjE3OyBhcyB0aGVp ciBwcmVmZXJyZWQgc2hlZXQgYW5kIHJlZnJlc2hlZCB0aGUgcGFnZSwgdGhlIGxvYWQgb3Jk ZXIgd291bGQgYmUgcGluaywgeWVsbG93LCBncmVlbiwgYnJvd24sIGJsdWUsIGJsYWNrIChw aW5rIGFuZCB5ZWxsb3cgd291bGQgYmUgc3RhdGljIHNoZWV0cyk8L2xpPgoJPC91bD48L2xp PgoJPC91bD4KCgk8aDMgaWQ9ImVnMiI+RXhhbXBsZSAyPC9oMz4KCgk8cD5UbyBzZXQgdXAg dGhlIG5hbWVzIG9mIHRoZSBzdHlsZXNoZWV0cyB5b3Ugd2FudCB0byBpbmNsdWRlIGluIGEg PGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSAvJmd0OzwvY29kZT4gdHJ5IHRoaXM6PC9wPgoKPHBy ZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDp2YXJpYWJsZSBu YW1lPSZxdW90O2FsdF9zdHlsZXMmcXVvdDsKICAgICB2YWx1ZT0mcXVvdDtnaXJsczpHaXJs eSB0aGVtZSwgYm95czpMYWRzIG9ubHkmcXVvdDsgLyZndDsKJmx0O3R4cDpzbWRfc3R5bGUg c2hlZXRzPSZxdW90Oz9hbHRfc3R5bGVzJnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8 aDMgaWQ9ImVnMyI+RXhhbXBsZSAzPC9oMz4KCgk8cD5HcmFiIHRoZSBkZWZhdWx0IHNoZWV0 LCB0aGUgJiM4MjIwO2ZpeGVkJiM4MjIxOyBzaGVldCAoYW5kIG1ha2UgdGhlbSBib3RoICYj ODIxNjtzdGF0aWMmIzgyMTc7KSB0aGVuIGxvb2sgaW4gdGhlIGN1c3RvbSBmaWVsZCBsYWJl bGxlZCA8Y29kZT5hbHRfc3R5bGVzPC9jb2RlPiBhbmQgdGhlIDxzcGFuIGNsYXNzPSJjYXBz Ij5VUkw8L3NwYW4+IHZhcmlhYmxlIDxjb2RlPm15dGhlbWU8L2NvZGU+IGZvciBtb3JlIHNo ZWV0IGRlZmluaXRpb25zLjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0i YmxvY2siPiZsdDt0eHA6c21kX3N0eWxlIHNoZWV0cz0mcXVvdDtmaXhlZCwgP2FsdF9zdHls ZXMsID9teXRoZW1lJnF1b3Q7CiAgICAgdXNlX2RlZmF1bHQ9JnF1b3Q7MSZxdW90OyBza2lw PSZxdW90OzImcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPk5vdGUgdGhhdCBubyBk aXN0aW5jdGlvbiBpcyBtYWRlIHdoZXJlIHRvIGZpbmQgdGhlIHZhcmlhYmxlcywgdGhleSBh cmUganVzdCBjaGVja2VkIGluIG9yZGVyIGFuZCB0aGUgZmlyc3Qgb25lIGl0IGZpbmRzIHRo YXQgbWF0Y2hlcyAoaWYgYXQgYWxsKSB3aWxsIGJlIHVzZWQuIFRodXMgaWYgeW91IGhhZCBh IGN1c3RvbSBmaWVsZCBsYWJlbGxlZCA8Y29kZT5hbHRfc3R5bGVzPC9jb2RlPiBhbmQgc29t ZW9uZSBwdXQgPGNvZGU+c2l0ZS5jb20vbXlfcGFnZT9hbHRfc3R5bGVzPXR3byx0aHJlZSxm b3VyPC9jb2RlPiBvbiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4sIHlvdSB3 b3VsZCBzdGlsbCBoYXZlIHRoZW0gcmVhZCBmcm9tIHRoZSBjdXN0b20gZmllbGQgYmVjYXVz ZSBpdCBpcyAmIzgyMTY7aGlnaGVyJiM4MjE3OyBpbiB0aGUgaGllcmFyY2h5LiBPbmUgY2F2 ZWF0IGlzIHRoYXQgaWYgdGhlIGN1c3RvbSBmaWVsZCBpcyBlbXB0eSwgdGhlIG5leHQgcGxh Y2UgaW4gdGhlIGxpc3QgaXMgY2hlY2tlZCB1bnRpbCBhbGwgbG9jYXRpb25zIGFyZSBleGhh dXN0ZWQsIHRob3VnaCB5b3UgY2FuIGlnbm9yZSBlbXB0eSBmaWVsZHMgd2l0aCA8Y29kZT5z aG93X2VtcHR5PSZxdW90OzAmcXVvdDs8L2NvZGU+LjwvcD4KCgk8aDMgaWQ9ImVnNCI+RXhh bXBsZSA0PC9oMz4KCgk8cD5Gb3IgYSBub24tPHNwYW4gY2xhc3M9ImNhcHMiPlhIVE1MPC9z cGFuPiA8c3BhbiBjbGFzcz0iY2FwcyI+RFREPC9zcGFuPiB5b3UgbWF5IG5lZWQgdG8gZHJv cCB0aGUgdHJhaWxpbmcgPGNvZGU+LzwvY29kZT4gb24gdGhlIDxjb2RlPiZsdDtsaW5rJmd0 OzwvY29kZT4gZWxlbWVudHMsIHNvIHlvdSBjb3VsZCBkbyB0aGlzOjwvcD4KCjxwcmUgY2xh c3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3N0eWxlIHNoZWV0 cz0mcXVvdDtibHVlLCByZWQsIGdyZWVuJnF1b3Q7Jmd0OwogJmx0O2xpbmsgcmVsPSZxdW90 O3tzbWRfc3R5bGVfcmVsfSZxdW90OyB0eXBlPSZxdW90O3RleHQvY3NzJnF1b3Q7CiAgICAg bWVkaWE9JnF1b3Q7e3NtZF9zdHlsZV9tZWRpYX0mcXVvdDsgaHJlZj0mcXVvdDt7c21kX3N0 eWxlX3VybH0mcXVvdDsKICAgICB0aXRsZT0mcXVvdDt7c21kX3N0eWxlX3RpdGxlfSZxdW90 OyZndDsKJmx0Oy90eHA6c21kX3N0eWxlJmd0Owo8L2NvZGU+PC9wcmU+CgoJPGgzIGlkPSJl ZzUiPkV4YW1wbGUgNTwvaDM+CgoJPHA+VGhlIDxjb2RlPnNob3dfZW1wdHk8L2NvZGU+IGF0 dHJpYnV0ZSBzZWVtcyBmYWlybHkgcG9pbnRsZXNzIG9uIHRoZSBzdXJmYWNlLCBidXQgaW1h Z2luZSB0aGlzIHNjZW5hcmlvOiB5b3Ugc2V0IHVwIGEgY3VzdG9tIGZpZWxkIGNhbGxlZCA8 Y29kZT5kZWZhdWx0X3N0eWxlPC9jb2RlPi4gV2hlbiBhdXRob3JpbmcgYXJ0aWNsZXMsIHBl b3BsZSBjYW4gaW5zZXJ0IHRoZSBuYW1lIG9mIGEgc3R5bGVzaGVldCBpbiB0aGVyZSB0byBz dHlsZSB0aGUgcGFnZSB3aXRoLiBCdXQgaWYgdGhleSBsZWF2ZSBpdCBibGFuayB5b3UgY291 bGQgZW5zdXJlIHRoZSBwYWdlIHJlbmRlcnMgd2l0aCBhdCBsZWFzdCA8ZW0+c29tZTwvZW0+ IGRlZmF1bHQgY29udGVudCBieSBjcmVhdGluZyBhIHN0eWxlc2hlZXQgY2FsbGVkICYjODIy MDtkZWZhdWx0X3N0eWxlJiM4MjIxOyAoaS5lLiB0aGUgc2FtZSBuYW1lIGFzIHRoZSBjdXN0 b20gZmllbGQpIGFuZCB1c2luZyBhIHRhZyBsaWtlIHRoaXM6PC9wPgoKPHByZSBjbGFzcz0i YmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfc3R5bGUgc2hlZXRzPSZx dW90Oz9kZWZhdWx0X3N0eWxlJnF1b3Q7CiAgICAgc2hvd19lbXB0eT0mcXVvdDsxJnF1b3Q7 IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5JZiB0aGUgY3VzdG9tIGZpZWxkIGlzIGVtcHR5 LCB0aGUgcGx1Z2luIGNvbnZlcnRzIHRoZSByZXF1ZXN0IHRvIDxjb2RlPiZsdDt0eHA6c21k X3N0eWxlIHNoZWV0cz0mcXVvdDtkZWZhdWx0X3N0eWxlJnF1b3Q7IC8mZ3Q7PC9jb2RlPi48 L3A+CgoJPGgzIGlkPSJlZzYiPkV4YW1wbGUgNjwvaDM+CgoJPHA+VGFnIHBhcnNpbmcuPC9w PgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRf c3R5bGUgc2hlZXRzPSZxdW90O2ZpcnN0LCBzZWNvbmQsIHRoaXJkJnF1b3Q7CiAgICAgcGFy c2VfdGFncz0mcXVvdDsxJnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5JZiBvbmUg b2YgeW91ciBzdHlsZXNoZWV0cyBjb250YWluZWQgdGhlIGZvbGxvd2luZzo8L3A+Cgo8cHJl IGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4uZmlsbGVyIHsKICAgYmFja2dy b3VuZDp1cmwoJmx0O3R4cDpzaXRlX3VybCAvJmd0O2ltYWdlcy9iZy5qcGcpOwogICBjb2xv cjpyZWQ7Cn0KPC9jb2RlPjwvcHJlPgoKCTxwPlRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQ PC9zcGFuPiB0YWcgd291bGQgYmUgcmVwbGFjZWQgd2l0aCB0aGUgY29udGVudHMgYmVmb3Jl IGJlaW5nIHNlcnZlZC4gVGhpcyBkb2VzIGhhdmUgYSBwZXJmb3JtYW5jZSBwZW5hbHR5IGFz IHRoZSBzdHlsZXNoZWV0IGlzIGZldGNoZWQgYW5kIHBhcnNlZCwgYnV0IGNhbiBiZSB2ZXJ5 IHVzZWZ1bC4gWW91IG1heSB1c2UgPGNvZGU+Jmx0O3R4cDpwaHAmZ3Q7Jmx0Oy90eHA6cGhw Jmd0OzwvY29kZT4gdGFncyBpbiB0aGUgc3R5bGVzaGVldCBhcyBsb25nIGFzIHRoZSBhZG1p biBwcmVmZXJlbmNlIHRvIGFsbG93IHBhZ2UgbGV2ZWwgPHNwYW4gY2xhc3M9ImNhcHMiPlBI UDwvc3Bhbj4gaXMgZW5hYmxlZC4gTWFueSB0aGFua3MgdG8gYWtva3NraXMgZm9yIHNvbWUg b2YgdGhlIGNvZGUgZnJvbSBha29fY3NzUGFyc2UgdGhhdCBlbmFibGVzIHRoaXMgZmVhdHVy ZS48L3A+CgoJPGgyIGNsYXNzPSJjaGFuZ2Vsb2ciPkNoYW5nZWxvZzwvaDI+CgoJPHVsPgoJ CTxsaT4xMiBPY3QgMDggfCAwLjEgfCBJbml0aWFsIHJlbGVhc2U8L2xpPgoJCTxsaT4xOCBP Y3QgMDggfCAwLjIgfCBBZGRlZCA8Y29kZT5wYXJzZV90YWdzPC9jb2RlPiAodGhhbmtzIGFr b2tza2lzIC8gam9obnN0ZXBoZW5zKSA7IGFkZGVkIDxjb2RlPnNraXBfdGl0bGU8L2NvZGU+ IDsgZml4ZWQgaW52YWxpZCBsaW5rIHRhZ3MgOyA8Y29kZT5yZWFsX3NoZWV0czwvY29kZT4g bm93IHdvcmsgd2l0aG91dCBhIGZvcm0vY29udGFpbmVyPC9saT4KCTwvdWw+CgoJPHA+PC9k aXY+PC9wPgo8IS0tIC0tLSBCRUdJTiBQTFVHSU4gQ1NTIC0tLSAtLT4KPHN0eWxlIHR5cGU9 InRleHQvY3NzIj4KI3NtZF9oZWxwIHsgbGluZS1oZWlnaHQ6MS4zIDt9CiNzbWRfaGVscCBj b2RlIHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udDogMTA1JS8xMzAlICJDb3VyaWVyIE5ldyIs IGNvdXJpZXIsIG1vbm9zcGFjZTsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZDQzt9CiNzbWRf aGVscCBjb2RlLmJsb2NrIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBib3JkZXI6MXB4IGRvdHRl ZCAjOTk5OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBlNjhjOyBkaXNwbGF5OmJsb2NrOyBtYXJn aW46MTBweCAxMHB4IDIwcHg7IHBhZGRpbmc6MTBweDsgfQojc21kX2hlbHAgYTpsaW5rLCAj c21kX2hlbHAgYTp2aXNpdGVkIHsgY29sb3I6IGJsdWU7IHRleHQtZGVjb3JhdGlvbjogbm9u ZTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsdWU7IHBhZGRpbmctYm90dG9tOjFweDt9 CiNzbWRfaGVscCBhOmhvdmVyLCAjc21kX2hlbHAgYTphY3RpdmUgeyBjb2xvcjogYmx1ZTsg dGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3JkZXItYm90dG9tOiAycHggc29saWQgYmx1ZTsg cGFkZGluZy1ib3R0b206MXB4O30KI3NtZF9oZWxwIGgxIHsgY29sb3I6ICMzNjk7IGZvbnQ6 IDIwcHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgbWFyZ2luOiAwOyB0ZXh0LWFsaWduOiBjZW50 ZXI7IH0KI3NtZF9oZWxwIGgyIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOyBw YWRkaW5nOjEwcHggMCAwOyBjb2xvcjogIzM2OTsgZm9udDogMTdweCBHZW9yZ2lhLCBzYW5z LXNlcmlmOyB9CiNzbWRfaGVscCBoMyB7IGNvbG9yOiAjNjkzOyBmb250OiBib2xkIDEycHgg QXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBweCAw IDA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTt9CiNzbWRfaGVscCBoNCB7IGZvbnQ6IGJv bGQgMTFweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2lu OiAxMHB4IDAgMCA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfQojc21kX2hlbHAgLmF0 bm0geyBmb250LXdlaWdodDpib2xkOyB9CiNzbWRfaGVscCAubWFuZCB7IGJhY2tncm91bmQ6 I2VlZTsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgfQojc21kX2hlbHAgLnJlcXVpcmVzIHtj b2xvcjpyZWQ7fQojc21kX2hlbHAgdGFibGUge3dpZHRoOjEwMCU7IHRleHQtYWxpZ246Y2Vu dGVyOyBwYWRkaW5nLWJvdHRvbToxZW07fQojc21kX2hlbHAgdGQsICNzbWRfaGVscCB0aCB7 Ym9yZGVyOjFweCBzb2xpZCAjOTk5OyBwYWRkaW5nOi41ZW0gMDt9Cjwvc3R5bGU+CjwhLS0g LS0tIEVORCBQTFVHSU4gQ1NTIC0tLSAtLT4KIjtzOjM6Im1kNSI7czozMjoiZDYyYWYzODc3 MmRkMDNlZmRlMDE2ZGIyYmY1YjFhNjIiO30=