From: Subject: =?iso-2022-jp?B?GyRCJTclaSVQJTk7Mj5IGyhC?= Date: Mon, 14 Apr 2008 15:19:15 +0900 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_0016_01C89E42.E6A2ACB0" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198 This is a multi-part message in MIME format. ------=_NextPart_000_0016_01C89E42.E6A2ACB0 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 Content-Location: https://tgulc.u-gakugei.ac.jp/syllabus2/referenceDirect.do?nologin=on&subjectID=032600002390&formatCD=1 77u/PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9u YWwvL0VOIj4NCjxIVE1MIGxhbmc9amE+PEhFQUQ+PFRJVExFPuOCt+ODqeODkOOCueWPgueFpzwv VElUTEU+DQo8TUVUQSBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZSBjb250ZW50PSJ0ZXh0L2h0bWw7 IGNoYXJzZXQ9dXRmLTgiPjxMSU5LIA0KaHJlZj0iaHR0cHM6Ly90Z3VsYy51LWdha3VnZWkuYWMu anAvVUkvY3NzL2NvbW1vbi90ZXh0LmNzcyIgdHlwZT10ZXh0L2NzcyANCnJlbD1zdHlsZXNoZWV0 PjxMSU5LIA0KaHJlZj0iaHR0cHM6Ly90Z3VsYy51LWdha3VnZWkuYWMuanAvVUkvY3NzL2NvbW1v bi9zeWxsYWJ1cy5jc3MiIHR5cGU9dGV4dC9jc3MgDQpyZWw9c3R5bGVzaGVldD4NCjxNRVRBIGh0 dHAtZXF1aXY9UHJhZ21hIGNvbnRlbnQ9bm8tY2FjaGU+DQo8TUVUQSBjb250ZW50PSJNU0hUTUwg Ni4wMC4yOTAwLjMzMTQiIG5hbWU9R0VORVJBVE9SPjwvSEVBRD4NCjxCT0RZIHRleHQ9IzAwMDAw MCBiZ0NvbG9yPSNmZmZmZmYgbGVmdE1hcmdpbj0wIHRvcE1hcmdpbj0wIA0Kb251bmxvYWQ9c3Vi V2luQ2xvc2UoKSBtYXJnaW5oZWlnaHQ9IjAiIG1hcmdpbndpZHRoPSIwIj4NCjxTQ1JJUFQgbGFu Z3VhZ2U9amF2YXNjcmlwdD4KPCEtLQogIGZ1bmN0aW9uIHN5bGxhYnVzQ2hpbGRPcGVuKHNlc3Np b25JRCwgdGVhY2hlckNEKSB7CiAgICB2YXIgdXJsID0gIi9zeWxsYWJ1czIvc3lsbGFidXNUZWFj aGVyRGV0YWlsLmRvO0xjU2Vzc2lvbklEPSIgKyBzZXNzaW9uSUQgKyAiP3RlYWNoZXJDRD0iICsg dGVhY2hlckNEOwogICAgc3ViV2luZG93ID0gd2luZG93Lm9wZW4odXJsLCAnc3ViV2luZG93Jywg IndpZHRoPTY4MCwgaGVpZ2h0PTQwMCwgc2Nyb2xsYmFycz15ZXMsIHJlc2l6YWJsZT15ZXMsIHN0 YXR1cz15ZXMiKTsKICAgIHN1YldpbmRvdy5mb2N1cygpOwogIH0KLy8tLT4KPC9TQ1JJUFQ+DQoN CjxTQ1JJUFQgbGFuZ3VhZ2U9amF2YXNjcmlwdD4KPCEtLQovKioKICog44K/44Kk44OI44Or566h 55CG77yN44OX44Os44OT44Ol44O844Oc44K/44Oz44KS44Kv44Oq44OD44Kv44GX44Gf44Go44GN 44Gr5ZG844Gw44KM44KLCiAqLwpmdW5jdGlvbiBwcmV2aWV3T3BlbihzZXNzaW9uSUQsIGZvcm1h dENEKXsKCXZhciB1cmwgPSAiL3N5bGxhYnVzMi9zeWxsYWJ1c0Zvcm1hdFByZXZpZXdJbml0LmRv O0xjU2Vzc2lvbklEPSIgKyBzZXNzaW9uSUQgKyAiP3ByZUZvcm1hdENEPSIgKyBmb3JtYXRDRDsK CWRiQ2hpbGRPcGVuKHVybCwgJzgwMCcsICc2MDAnKTsKfQoKLyoqCiAqIOOCv+OCpOODiOODq+eu oeeQhu+8jeWJiumZpOODnOOCv+ODs+OCkuOCr+ODquODg+OCr+OBl+OBn+OBqOOBjeOBq+WRvOOB sOOCjOOCiwogKi8KZnVuY3Rpb24gZGVsZXRlVGl0bGVDb25maXJtKCkgewoJaWYgKCFpc0NoZWNr ZWQoKSkgewoJCS8vIO+8keOBpOOCguODgeOCp+ODg+OCr+OBleOCjOOBpuOBhOOBquOBi+OBo+OB n+OCiWZhbHNl44KS6L+U44GZCgkJYWxlcnQoZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5tZXNzYWdl XzAwMS52YWx1ZSk7CgkJcmV0dXJuIGZhbHNlOwoJfSBlbHNlIHsKCQkvLyDnorroqo3jg4DjgqTj gqLjg63jgrDjgpLooajnpLrjgZnjgosKCQlpZiAoIWNvbmZpcm0oZG9jdW1lbnQuU3lsbGFidXMy Rm9ybS5tZXNzYWdlXzAwMi52YWx1ZQoJCSAgICAgICAgICAgICAgKyAiXG4iICsgZG9jdW1lbnQu U3lsbGFidXMyRm9ybS5tZXNzYWdlXzAwMy52YWx1ZSkpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0g ZWxzZSB7CgkJCWRvY3VtZW50LlN5bGxhYnVzMkZvcm0uYWN0aW9uLnZhbHVlPSJkZWxldGUiOwoJ CQlyZXR1cm4gdHJ1ZTsKCQl9Cgl9Cn0KCi8qKgogKiDjgr/jgqTjg4jjg6vnrqHnkIbvvI3ov73l iqDjg5zjgr/jg7PjgpLjgq/jg6rjg4Pjgq/jgZfjgZ/jgajjgY3jgavlkbzjgbDjgozjgosKICov CmZ1bmN0aW9uIGNyZWF0ZVRpdGxlQ29uZmlybSgpIHsKCWRvY3VtZW50LlN5bGxhYnVzMkZvcm0u YWN0aW9uLnZhbHVlPSJjcmVhdGUiOwp9CgovKioKICog6aCF55uu566h55CG77yN5YmK6Zmk44Oc 44K/44Oz44KS44Kv44Oq44OD44Kv44GX44Gf44Go44GN44Gr5ZG844Gw44KM44KLCiAqLwpmdW5j dGlvbiBkZWxldGVJdGVtQ29uZmlybSgpIHsKCWlmICghaXNDaGVja2VkKCkpIHsKCQkvLyDvvJHj gaTjgoLjg4Hjgqfjg4Pjgq/jgZXjgozjgabjgYTjgarjgYvjgaPjgZ/jgolmYWxzZeOCkui/lOOB mQoJCWFsZXJ0KGRvY3VtZW50LlN5bGxhYnVzMkZvcm0ubWVzc2FnZV8wMDEudmFsdWUpOwoJCXJl dHVybiBmYWxzZTsKCX0gZWxzZSB7CgkJLy8g56K66KqN44OA44Kk44Ki44Ot44Kw44KS6KGo56S6 44GZ44KLCgkJaWYgKCFjb25maXJtKGRvY3VtZW50LlN5bGxhYnVzMkZvcm0ubWVzc2FnZV8wMDIu dmFsdWUpKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9IGVsc2UgewoJCQlkb2N1bWVudC5TeWxsYWJ1 czJGb3JtLmFjdGlvbi52YWx1ZT0iZGVsZXRlIjsKCQkJcmV0dXJuIHRydWU7CgkJfQoJfQp9Cgov KioKICog6aCF55uu566h55CG77yN6L+95Yqg44Oc44K/44Oz44KS44Kv44Oq44OD44Kv44GX44Gf 44Go44GN44Gr5ZG844Gw44KM44KLCiAqLwpmdW5jdGlvbiBjcmVhdGVJdGVtQ29uZmlybSgpIHsK CWRvY3VtZW50LlN5bGxhYnVzMkZvcm0uYWN0aW9uLnZhbHVlPSJjcmVhdGUiOwp9CgovKioKICog 56eR55uu566h55CG77yN44Ko44Kv44K744Or5Ye65Yqb44Oc44K/44Oz44KS44Kv44Oq44OD44Kv 44GX44Gf44Go44GN44Gr5ZG844Gw44KM44KLCiAqLwpmdW5jdGlvbiBkb3dubG9hZENvbmZpcm0o KSB7Cglkb2N1bWVudC5TeWxsYWJ1czJGb3JtLmJ1dHRvbl9raW5kLnZhbHVlPSJkb3dubG9hZCI7 CglyZXR1cm4gZGJDc3ZDbGljaygpOwp9CgovKioKICog56eR55uu566h55CG77yN44Ko44Kv44K7 44Or5Y+W6L6844G/44Oc44K/44Oz44KS44Kv44Oq44OD44Kv44GX44Gf44Go44GN44Gr5ZG844Gw 44KM44KLCiAqLwpmdW5jdGlvbiB1cGxvYWRDb25maXJtKHNlc3Npb25JRCkgewoJZG9jdW1lbnQu U3lsbGFidXMyRm9ybS5idXR0b25fa2luZC52YWx1ZT0idXBsb2FkIjsKCXZhciB1cmwgPSAiL1VJ L2pzcC9zdGFmZi9zeWxsYWJ1czIvU3lsbGFidXNTdWJqZWN0VXBsb2FkLmpzcDtMY1Nlc3Npb25J RD0iICsgc2Vzc2lvbklEOwoJZGJDaGlsZE9wZW4odXJsLCAnNzAwJywgJzUwMCcpOwp9CgovKioK ICog56eR55uu566h55CG77yN44Od44OD44OX44Ki44OD44OX55S76Z2i44Gu44Ko44Kv44K744Or 5Y+W6L6844G/44Oc44K/44Oz44KS44Kv44Oq44OD44Kv44GX44Gf44Go44GN44Gr5ZG844Gw44KM 44KLCiAqLwpmdW5jdGlvbiBwb3B1cFVwbG9hZENvbmZpcm0oc2Vzc2lvbklEKSB7CglvcGVuZXIu bG9jYXRpb24gPSAiL3N5bGxhYnVzMi9zeWxsYWJ1c1N1YmplY3RMaXN0LmRvO0xjU2Vzc2lvbklE PSIgKyBzZXNzaW9uSUQ7CglyZXR1cm4gZGJDbGljaygpOwp9CgovKioKICog56eR55uu566h55CG 77yN5YmK6Zmk44Oc44K/44Oz44KS44Kv44Oq44OD44Kv44GX44Gf44Go44GN44Gr5ZG844Gw44KM 44KLCiAqLwpmdW5jdGlvbiBkZWxldGVTdWJqZWN0Q29uZmlybSgpIHsKCWlmICghaXNDaGVja2Vk KCkpIHsKCQkvLyDvvJHjgaTjgoLjg4Hjgqfjg4Pjgq/jgZXjgozjgabjgYTjgarjgYvjgaPjgZ/j golmYWxzZeOCkui/lOOBmQoJCWFsZXJ0KGRvY3VtZW50LlN5bGxhYnVzMkZvcm0ubWVzc2FnZV8w MDEudmFsdWUpOwoJCXJldHVybiBmYWxzZTsKCX0gZWxzZSB7CgkJLy8g56K66KqN44OA44Kk44Ki 44Ot44Kw44KS6KGo56S644GZ44KLCgkJaWYgKCFjb25maXJtKGRvY3VtZW50LlN5bGxhYnVzMkZv cm0ubWVzc2FnZV8wMDIudmFsdWUpKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9IGVsc2UgewoJCQlk b2N1bWVudC5TeWxsYWJ1czJGb3JtLmJ1dHRvbl9raW5kLnZhbHVlPSJkZWxldGUiOwoJCQlyZXR1 cm4gdHJ1ZTsKCQl9Cgl9Cn0KCi8qKgogKiDjgrPjg5Tjg7zvvI/np7vli5Xjg5zjgr/jg7PjgpLj gq/jg6rjg4Pjgq/jgZfjgZ/jgajjgY3jgavlkbzjgbDjgozjgosKICogQHBhcmFtIHNlc3Npb25J RCDjgrvjg4Pjgrfjg6fjg7NJRAogKiBAcGFyYW0gYWN0aW9uIOOCs+ODlOODvO+8j+enu+WLlQog KiBAcGFyYW0gd2luZG93SGVpZ2h0IOOCteODluOCpuOCpOODs+ODieOCpuOBrumrmOOBlQogKi8K ZnVuY3Rpb24gbW92ZWNvcHlDb25maXJtKHNlc3Npb25JRCwgYWN0aW9uLCB3aW5kb3dIZWlnaHQp IHsKCWlmICghaXNDaGVja2VkKCkpIHsKCQkvLyDvvJHjgaTjgoLjg4Hjgqfjg4Pjgq/jgZXjgozj gabjgYTjgarjgYvjgaPjgZ/jgolmYWxzZeOCkui/lOOBmQoJCWFsZXJ0KGRvY3VtZW50LlN5bGxh YnVzMkZvcm0ubWVzc2FnZV8wMDEudmFsdWUpOwoJfSBlbHNlIHsKCQlkb2N1bWVudC5TeWxsYWJ1 czJGb3JtLmJ1dHRvbl9raW5kLnZhbHVlPWFjdGlvbjsKCQl2YXIgdXJsID0gIi9zeWxsYWJ1czIv c3lsbGFidXNUcmVlQ29weU1vdmVJbml0LmRvO0xjU2Vzc2lvbklEPSIgKyBzZXNzaW9uSUQgKyAi P2FjdGlvbj0iICsgYWN0aW9uOwoJCWRiQ2hpbGRPcGVuKHVybCwgJzcwMCcsIHdpbmRvd0hlaWdo dCk7CgkJZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5zdWJtaXQoKTsKCX0KfQoKLyoqCiAqIOeiuuWu mueKtuazgeabtOaWsOODnOOCv+ODs+OCkuOCr+ODquODg+OCr+OBl+OBn+OBqOOBjeOBq+WRvOOB sOOCjOOCiwogKi8KZnVuY3Rpb24gZmluYWxpemVDb25maXJtKCkgewoJLy8g56K66KqN44OA44Kk 44Ki44Ot44Kw44KS6KGo56S644GZ44KLCglpZiAoIWNvbmZpcm0oZG9jdW1lbnQuU3lsbGFidXMy Rm9ybS5tZXNzYWdlXzAwMy52YWx1ZSkpIHsKCQlyZXR1cm4gZmFsc2U7Cgl9IGVsc2UgewoJCWRv Y3VtZW50LlN5bGxhYnVzMkZvcm0uYnV0dG9uX2tpbmQudmFsdWU9ImZpbmFsaXplIjsKCQlyZXR1 cm4gdHJ1ZTsKCX0KfQoKLyoqCiAqIOODleOCqeODq+ODgOS4gOimp++8jeWJiumZpOODnOOCv+OD s+OCkuOCr+ODquODg+OCr+OBl+OBn+OBqOOBjeOBq+WRvOOBsOOCjOOCiwogKi8KZnVuY3Rpb24g ZGVsZXRlSW5kZXhDb25maXJtKCkgewoJaWYgKCFpc0NoZWNrZWQoKSkgewoJCS8vIO+8keOBpOOC guODgeOCp+ODg+OCr+OBleOCjOOBpuOBhOOBquOBi+OBo+OBn+OCiWZhbHNl44KS6L+U44GZCgkJ YWxlcnQoZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5tZXNzYWdlXzAwMS52YWx1ZSk7CgkJcmV0dXJu IGZhbHNlOwoJfSBlbHNlIHsKCQkvLyDnorroqo3jg4DjgqTjgqLjg63jgrDjgpLooajnpLrjgZnj gosKCQlpZiAoIWNvbmZpcm0oZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5tZXNzYWdlXzAwMi52YWx1 ZQoJCSAgICAgICAgICAgICAgKyAiXG4iICsgZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5tZXNzYWdl XzAwMy52YWx1ZSkpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0gZWxzZSB7CgkJCWRvY3VtZW50LlN5 bGxhYnVzMkZvcm0uYnV0dG9uX2tpbmQudmFsdWU9ImRlbGV0ZSI7CgkJCXJldHVybiB0cnVlOwoJ CX0KCX0KfQoKLyoqCiAqIOODleOCqeODq+ODgOS4gOimp++8jei/veWKoOODnOOCv+ODs+OCkuOC r+ODquODg+OCr+OBl+OBn+OBqOOBjeOBq+WRvOOBsOOCjOOCiwogKi8KZnVuY3Rpb24gY3JlYXRl SW5kZXhDb25maXJtKCkgewoJZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5idXR0b25fa2luZC52YWx1 ZT0iY3JlYXRlIjsKCWRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3VibWl0KCk7Cn0KCi8qKgogKiDj g5Xjgqnjg6vjg4DkuIDopqfvvI3jg5Xjgqnjg6vjg4Dnt6jpm4bmmYLjgavlkbzjgbDjgozjgosK ICovCmZ1bmN0aW9uIGVkaXRJbmRleENvbmZpcm0oYXJnLCBpbmRleElELCBpbmRleE5hbWUpIHsK CWRvY3VtZW50LlN5bGxhYnVzMkZvcm0uYnV0dG9uX2tpbmQudmFsdWU9InVwZGF0ZSI7CglyZXR1 cm4gdHJ1ZTsKfQoKLyoqCiAqIOenkeebruOCs+ODlOODvOenu+WLleeUu+mdouOBruaxuuWumuOD nOOCv+ODs+OCkuOCr+ODquODg+OCr+OBl+OBn+OBqOOBjeOBq+WRvOOBsOOCjOOCiwogKi8KZnVu Y3Rpb24gcG9wdXBTdWJqZWN0Q29weU1vdmVDb25maXJtKGFyZywgbWVzc2FnZSkgewoJLy8g56K6 6KqN44OA44Kk44Ki44Ot44Kw44KS6KGo56S644GZ44KLCglpZiAoY29uZmlybShtZXNzYWdlKSkg ewoJCW9wZW5lci5sb2NhdGlvbiA9IGFyZzsKCQl3aW5kb3cuY2xvc2UoKTsKCX0KfQoKLyoqCiAq IOODleOCqeODq+ODgOS9nOaIkO+8j+e3qOmbhueUu+mdouOBruaxuuWumuODnOOCv+ODs+OCkuOC r+ODquODg+OCr+OBl+OBn+OBqOOBjeOBq+WRvOOBsOOCjOOCiwogKi8KZnVuY3Rpb24gaW5kZXhF ZGl0Q29uZmlybShhY3Rpb24sIG1lc3NhZ2UpIHsKCS8vIOeiuuiqjeODgOOCpOOCouODreOCsOOC kuihqOekuuOBmeOCiwoJaWYgKGNvbmZpcm0obWVzc2FnZSkpIHsKCQlkb2N1bWVudC5TeWxsYWJ1 czJGb3JtLmJ1dHRvbl9raW5kLnZhbHVlPWFjdGlvbjsKCQlkb2N1bWVudC5TeWxsYWJ1czJGb3Jt LnN1Ym1pdCgpOwoJfQp9CgovKioKICog44OB44Kn44OD44Kv44Oc44OD44Kv44K544GMMeOBpOS7 peS4iuODgeOCp+ODg+OCr+OBleOCjOOBpuOBhOOCi+OBi+iqv+OBueOCiwogKi8KZnVuY3Rpb24g aXNDaGVja2VkKCkgewoKCXZhciBpc0NoZWNrZWQgPSBmYWxzZTsKCglpZihkb2N1bWVudC5TeWxs YWJ1czJGb3JtLnN5bGxhYnVzQ2hlY2sudHlwZSA9PSBudWxsKSB7CgkJLy8g56eR55uu44GM6KSH 5pWw44Gu5aC05ZCICgkJZm9yICh2YXIgaSA9IDA7IGkgPCBkb2N1bWVudC5TeWxsYWJ1czJGb3Jt LnN5bGxhYnVzQ2hlY2subGVuZ3RoOyBpKyspIHsKCQkJaWYgKGRvY3VtZW50LlN5bGxhYnVzMkZv cm0uc3lsbGFidXNDaGVja1tpXS5jaGVja2VkKSB7CgkJCQlpc0NoZWNrZWQgPSB0cnVlOwoJCQkJ YnJlYWs7CgkJCX0KCQl9Cgl9IGVsc2UgewoJCS8vIOenkeebruOBjO+8keOBpOOBruWgtOWQiAoJ CWlmIChkb2N1bWVudC5TeWxsYWJ1czJGb3JtLnN5bGxhYnVzQ2hlY2suY2hlY2tlZCkgewoJCQlp c0NoZWNrZWQgPSB0cnVlOwoJCX0KCX0KCXJldHVybiBpc0NoZWNrZWQ7Cn0KCmZ1bmN0aW9uIGNo ZWNrQWxsKCkgewoJLy8g44GZ44G544Gm44Gu44OB44Kn44OD44Kv44Oc44OD44Kv44K544KST0ZG 44Gr44GZ44KLCglpZiAoZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5zeWxsYWJ1c0NoZWNrQWxsLmNo ZWNrZWQgPT0gZmFsc2UpIHsKCQkvLyDpgIHkv6Hlr77osaHogIXjgYzopIfmlbDjga7loLTlkIgK CQlpZiAoZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5zeWxsYWJ1c0NoZWNrLnR5cGUgPT0gbnVsbCkg ewoJCQlmb3IgKHZhciBpID0gMDsgaSA8IGRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3lsbGFidXND aGVjay5sZW5ndGg7IGkrKykgewoJCQkJZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5zeWxsYWJ1c0No ZWNrW2ldLmNoZWNrZWQgPSBmYWxzZTsKCQkJfQoJCS8vIOmAgeS/oeWvvuixoeiAheOBjOS4gOS6 uuOBruWgtOWQiAoJCX0gZWxzZSB7CgkJCWRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3lsbGFidXND aGVjay5jaGVja2VkID0gZmFsc2U7CgkJfQoJIAoJLy8g44GZ44G544Gm44Gu44OB44Kn44OD44Kv 44Oc44OD44Kv44K544KST07jgavjgZnjgosKCX0gZWxzZSB7CgkJLy8g6YCB5L+h5a++6LGh6ICF 44GM6KSH5pWw44Gu5aC05ZCICgkJaWYgKGRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3lsbGFidXND aGVjay50eXBlID09IG51bGwpIHsKCQkJZm9yICh2YXIgaSA9IDA7IGkgPCBkb2N1bWVudC5TeWxs YWJ1czJGb3JtLnN5bGxhYnVzQ2hlY2subGVuZ3RoOyBpKyspIHsKCQkJCWlmIChkb2N1bWVudC5T eWxsYWJ1czJGb3JtLnN5bGxhYnVzQ2hlY2tbaV0uZGlzYWJsZWQgPT0gZmFsc2UpIHsKCQkJCQlk b2N1bWVudC5TeWxsYWJ1czJGb3JtLnN5bGxhYnVzQ2hlY2tbaV0uY2hlY2tlZCA9IHRydWU7CgkJ CQl9CgkJCX0KCQkJLy8g6YCB5L+h5a++6LGh6ICF44GM5LiA5Lq644Gu5aC05ZCICgkJfSBlbHNl IHsKCQkJaWYgKGRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3lsbGFidXNDaGVjay5kaXNhYmxlZCA9 PSBmYWxzZSkgewoJCQkJZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5zeWxsYWJ1c0NoZWNrLmNoZWNr ZWQgPSB0cnVlOwoJCQl9CgkJfQoJfQp9CgpmdW5jdGlvbiBjaGVja0FsbDIoKSB7CgkvLyDpgIHk v6Hlr77osaHjgYzopIfmlbDjga7loLTlkIgKCWlmIChkb2N1bWVudC5TeWxsYWJ1czJGb3JtLnN5 bGxhYnVzQ2hlY2sudHlwZSA9PSBudWxsKSB7CgkJZmxhZyA9IHRydWU7CgkJZm9yICh2YXIgaSA9 IDA7IGkgPCBkb2N1bWVudC5TeWxsYWJ1czJGb3JtLnN5bGxhYnVzQ2hlY2subGVuZ3RoOyBpKysp IHsKCQkJaWYgKGRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3lsbGFidXNDaGVja1tpXS5kaXNhYmxl ZCA9PSBmYWxzZQoJCQkJJiYgZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5zeWxsYWJ1c0NoZWNrW2ld LmNoZWNrZWQgPT0gZmFsc2UpIHsKCQkJCWRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3lsbGFidXND aGVja0FsbC5jaGVja2VkID0gZmFsc2U7CgkJCQlmbGFnID0gZmFsc2U7CgkJCQlicmVhazsKCQkJ fQoJCX0KCQlpZiAoZmxhZyA9PSB0cnVlKSB7CgkJCWRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3ls bGFidXNDaGVja0FsbC5jaGVja2VkID0gdHJ1ZTsKCQl9CgkvLyDpgIHkv6Hlr77osaHjgYzkuIDk urrjga7loLTlkIgKCX0gZWxzZSB7CgkJLy8gT0ZG44Gr44GV44KM44Gf44KJT0ZG44Gr44GZ44KL CgkJaWYgKGRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3lsbGFidXNDaGVjay5jaGVja2VkID09IGZh bHNlKSB7CgkJCWRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3lsbGFidXNDaGVja0FsbC5jaGVja2Vk ID0gZmFsc2U7CgkJLy8gT07jgavjgZXjgozjgZ/jgolPTuOBq+OBmeOCiwoJCX0gZWxzZSB7CgkJ CWRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3lsbGFidXNDaGVja0FsbC5jaGVja2VkID0gdHJ1ZTsK CQl9Cgl9Cn0KCnZhciBjaGlsZFdpbmRvdzsKLyoqCiAqIOWtkOeUu+mdouOCkumWieOBmOOCiwog Ki8KZnVuY3Rpb24gc3ViV2luQ2xvc2UoKSB7CiAgICBpZiAoY2hpbGRXaW5kb3cgIT0gbnVsbCkg ewogICAgICAgIGNoaWxkV2luZG93LmNsb3NlKCk7CiAgICB9Cn0KLyoqCiAqIOWIpeeUu+mdouOB p+WPgueFp1VSTOeUu+mdouOCkuihqOekuuOBmeOCiwogKi8KZnVuY3Rpb24gb3BlblVybFJlZmVy ZW5jZVdpbmRvdyhzZXNzaW9uSUQsIHN1YmplY3RJRCwgZm9ybWF0Q29kZSkgewoKICAgIHZhciB1 cmwgPSAiL3N5bGxhYnVzMi9zeWxsYWJ1c1JlZmVyZW5jZURpc3BhdGNoLmRvO0xjU2Vzc2lvbklE PSIgKyBzZXNzaW9uSUQgKyAiP2J1dHRvbl9raW5kPXVybCZzdWJqZWN0SUQ9IiArIHN1YmplY3RJ RCArICImZm9ybWF0Q29kZT0iICsgZm9ybWF0Q29kZTsKICAgIGNoaWxkID0gZGJDaGlsZE9wZW4o dXJsLCAnNjUwJywgJzI1MCcpOwoJcmV0dXJuIGZhbHNlOwp9CgovLy0tPgo8L1NDUklQVD4NCg0K PFRBQkxFIGNlbGxTcGFjaW5nPTEwIGNlbGxQYWRkaW5nPTAgd2lkdGg9IjEwMCUiIGJvcmRlcj0w Pg0KICA8VEJPRFk+DQogIDxUUj4NCiAgICA8VEQgY2xhc3M9dHh0MTIgY29sU3Bhbj0yPjxJTUcg DQogICAgICBzcmM9Imh0dHBzOi8vdGd1bGMudS1nYWt1Z2VpLmFjLmpwL1VJL2ltYWdlL3N0dWRl bnQvc3lsbGFidXMyL3RfZWRpdF9zeWxsYWJ1c3JlZmVyZW5jZTIuZ2lmO0xjU2Vzc2lvbklEPWRw djFMQzNISjZtQ0dTN0pxempwaGhUN2ZMa1FOMiExNDY3MzU1NDQwIj4gDQogICAgPC9URD48L1RS Pg0KICA8VFI+DQogICAgPFREIGNsYXNzPXR4dDEyIHZBbGlnbj10b3A+DQogICAgICA8VEFCTEUg Y2VsbFNwYWNpbmc9MCBjZWxsUGFkZGluZz0wIHdpZHRoPSIxMDAlIiBiZ0NvbG9yPSM5OTk5OTkg DQogICAgICAgIGJvcmRlcj0xPjxUQk9EWT4NCiAgICAgICAgPFRSIGJnQ29sb3I9I2ZmZmZmZj4N CiAgICAgICAgICA8VEQ+DQogICAgICAgICAgICA8VEFCTEUgY2VsbFNwYWNpbmc9MTAgY2VsbFBh ZGRpbmc9MCBib3JkZXI9MD4NCiAgICAgICAgICAgICAgPFRCT0RZPg0KICAgICAgICAgICAgICA8 VFI+DQogICAgICAgICAgICAgICAgPFREIGNsYXNzPXR4dDEyIG5vV3JhcD7jgr/jgqTjg4jjg6vj gIw8Rk9OVCANCiAgICAgICAgICAgICAgICAgIGNvbG9yPSNmZjAwMDA+PEI+77yS77yQ77yQ77yY 5bm05bqm44CA5pWZ6IKy5a2m6YOo44K344Op44OQ44K5PC9CPjwvRk9OVD7jgI3jgIHjg5Xjgqnj g6vjg4DjgIw8Rk9OVCANCiAgICAgICAgICAgICAgICAgIGNvbG9yPSNmZjAwMDA+PEI+77yS77yQ 77yQ77yY5bm05bqm44K344Op44OQ44K5Jm5ic3A777yNJm5ic3A75oOF5aCx5pWZ6IKyPC9CPjwv Rk9OVD7jgI08QlI+44K344Op44OQ44K544Gu6Kmz57Sw44Gv5Lul5LiL44Go44Gq44KK44G+44GZ 44CCIA0KICAgICAgICAgICAgICAgIDwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+PC9URD48L1RS PjwvVEJPRFk+PC9UQUJMRT48L1REPjwvVFI+PC9UQk9EWT48L1RBQkxFPjxTUEFOIA0KaWQ9dGlt ZXJEaXNwbGF5IHN0eWxlPSJGT05ULVNJWkU6IDBweDsgZm9udC1jb2xvcjogd2hpdGUiPjwvU1BB Tj4NCjxTQ1JJUFQgbGFuZ3VhZ2U9amF2YXNjcmlwdD4KPCEtLQovKgogKiDjg5XjgqHjgqTjg6vl kI0gICBsaW5rQ29udHJvbC5qcwogKiDplovnmbrjgrfjgrnjg4bjg6AgTGl2ZUNhbXB1cyBXZWIK ICog6JGX5L2c5qipICAgICAgIENvcHlyaWdodChjKTIwMDMgTlRUREFUQSBLWVVTSFUKICog5Lya 56S+5ZCNICAgICAgICjmoKopTlRU44OH44O844K/5Lmd5beeCiAqICRJZDoganNfbGlua0NvbnRy b2wuanNwLHYgMS4yIDIwMDQvMDkvMjQgMTA6NTQ6NDIgdGVyYWRva24gRXhwICQKICog5bGl5q20 CiAqIDIwMDMvMDQvMDUgdGFuYWtha3og5Yid54mICiAqLwoKLyoqCiAqIOeUu+mdoumBt+enuwog KgogKiBAcGFyYW0gcyDpgbfnp7vlhYhVUkwKICovCiAgZnVuY3Rpb24gbG9jYXRlUGFnZVRvKHMp IHsKICAgIHBhcmVudC5sb2NhdGlvbi5ocmVmID0gczsKICB9CgovKioKICog44Od44OD44OX44Ki 44OD44OX55S76Z2i44Gu6KGo56S6CiAqCiAqIEBwYXJhbSBzIOmBt+enu+WFiFVSTAogKiBAcGFy YW0gbiDjg53jg4Pjg5fjgqLjg4Pjg5fnlLvpnaLorZjliKXlkI3np7AKICogQHBhcmFtIHcg44Od 44OD44OX44Ki44OD44OX55S76Z2i5qiq5bmFCiAqIEBwYXJhbSBoIOODneODg+ODl+OCouODg+OD l+eUu+mdoumrmOOBlQogKi8KICBmdW5jdGlvbiBwb3B1cFBhZ2VUbyhzLCBuLCB3LCBoKSB7CiAg ICBwb3B1cFdpbmRvdyA9IHdpbmRvdy5vcGVuKHMsIG4sICd3aWR0aD0nICsgdyArICcsaGVpZ2h0 PScgKyBoICsgJyxzY3JvbGxiYXJzPXllcycpOwogICAgcG9wdXBXaW5kb3cuZm9jdXMoKTsKICB9 CgovKioKICog6IOM5pmv6Imy44Gu5aSJ5pu0CiAqCiAqIEBwYXJhbSB0IOWkieabtOWvvuixoeOC qOODrOODoeODs+ODiAogKiBAcGFyYW0gYyDlpInmm7Tlvozjga7og4zmma/oibIKICovCiAgZnVu Y3Rpb24gc2V0QmdDb2xvcih0LCBjKSB7CiAgICB0LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGM7 CiAgfQovLy0tPgo8L1NDUklQVD4NCg0KPFNDUklQVCBsYW5ndWFnZT1qYXZhc2NyaXB0Pgo8IS0t Ci8qKgogKiDjgq3jg7zjg5zjg7zjg4njgIHjg57jgqbjgrnjgavjgojjgovlhaXlipvjgafjga7n lLvpnaLpgbfnp7vjgpLliLblvqHjgZnjgovjgZ/jgoHjga5qYXZhc2NyaXB0CiAqLwogCi8qKiDj gq3jg7zjgrPjg7zjg4njgpLliKTmlq3jgZnjgovjgZ/jgoHjga7jg5Xjg6njgrAgKi8KZG9jdW1l bnQub25rZXlkb3duID0ga2V5aGFuZGxlcjsKLyoqIOODnuOCpuOCueOCr+ODquODg+OCr+OCkuak nOWHuuOBl+WPs+OCr+ODquODg+OCr+OCkuemgeatouOBmeOCiyAqLwpkb2N1bWVudC5vbmNvbnRl eHRtZW51ID0gb25Db250ZXh0OwovKiog44Oe44Km44K544Ob44Kk44O844Or44GM5L2/55So44GV 44KM44Gf44GL44Gp44GG44GL44KS5Yik5a6a44GZ44KLICovCmRvY3VtZW50Lm9ubW91c2V3aGVl bCA9IHdoZWVsOwoKdmFyIHN1Ym1pdEZsYWcgPSBmYWxzZTsKCi8qKgogKiDjg57jgqbjgrnjg5vj gqTjg7zjg6vjgavjgojjgovlhaXlipvmmYLjga7jgqTjg5njg7Pjg4jlh6bnkIbjgpLooYzjgYYK ICovCmZ1bmN0aW9uIHdoZWVsKCkgewoKCS8vIOODluODqeOCpuOCtuOBrueoruWIpeOCkuWPluW+ lwoJdmFyIGJyb3dzZXIgPSBuYXZpZ2F0b3IuYXBwTmFtZTsKCgkvLyDjg5bjg6njgqbjgrbjgYxJ bnRlcm5ldCBFeHBsb3JlciDjga7loLTlkIgKCWlmIChicm93c2VyLmluZGV4T2YoIk1pY3Jvc29m dCIpID49IDApIHsKCQkvLyDjgrfjg5Xjg4jjgq3jg7zjgajlkIzmmYLmirzjgZfjga7mmYLjga/l iLblvqHjgpLooYzjgYYKCQlpZiAod2luZG93LmV2ZW50LnNoaWZ0S2V5KSB7CgkJCXdpbmRvdy5l dmVudC5jYW5jZWxCdWJibGUgPSB0cnVlOwoJICAgIHdpbmRvdy5ldmVudC5yZXR1cm5WYWx1ZSA9 IGZhbHNlOwoJCX0KCX0KCgkvLyDjg43jg4Pjg4jjgrnjgrHjg7zjg5fjga7loLTlkIjjga8gc2hp ZnQr44Ob44Kk44O844Or44Oe44Km44K5IOOBp+mBt+enu+OBl+OBquOBhOOBn+OCgeWvvuW/nOOB quOBlwoKfQoKLyoqCiAqIOOCreODvOODnOODvOODieOCiOOCi+WFpeWKm+aZguOBruOCpOODmeOD s+ODiOWHpueQhuOCkuihjOOBhgogKi8KZnVuY3Rpb24ga2V5aGFuZGxlcihlKSB7CgkJCgkJLy8g 44OW44Op44Km44K244Gu56iu5Yil44KS5Y+W5b6XCgkJdmFyIGJyb3dzZXIgPSBuYXZpZ2F0b3Iu YXBwTmFtZTsKCQkKCQkvLyDjg5bjg6njgqbjgrbjgYxJbnRlcm5ldCBFeHBsb3JlciDjga7loLTl kIgKCQkvLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBJbnRlcm5ldEV4cGxvcmVyICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgkJaWYgKGJyb3dzZXIuaW5kZXhPZigiTWljcm9zb2Z0 IikgPj0gMCkgewoJCQkvLyDmirzjgZXjgozjgZ/jgq3jg7zjgYxlbnRlcigxMynjga7mmYIKCQkJ aWYgKHdpbmRvdy5ldmVudC5rZXlDb2RlID09IDEzKXsKCQkJCQkvLyDnmbrnlJ/jgZfjgZ/jgqTj g5njg7Pjg4jjgpLnhKHlirnjgajjgZnjgovvvIjjgrXjg5bjg5/jg4Pjg4jjga7liLblvqHvvIkK CQkJCQlpZihldmVudC5zcmNFbGVtZW50LnR5cGUgPT0gInRleHQiIHx8IGV2ZW50LnNyY0VsZW1l bnQudHlwZSA9PSAiZmlsZSIgfHwgZXZlbnQuc3JjRWxlbWVudC50eXBlID09IG51bGwgfHwgZXZl bnQuc3JjRWxlbWVudC50eXBlID09ICJjaGVja2JveCIpewoJICAgICAgICAJd2luZG93LmV2ZW50 LnJldHVyblZhbHVlID0gZmFsc2U7CgkJCQkJfQoJICAgIH0KCgkgICAgLy8g5oq844GV44KM44Gf 44Kt44O844GMRjUoMTE2KeOBruaZggoJCQlpZiAod2luZG93LmV2ZW50LmtleUNvZGUgPT0gMTE2 KXsKCQkJCQkvLyDjgq3jg7zjgrPjg7zjg4njgpI444Gr5pu444GN5o+b44GI5YWl5Yqb44KS54Sh 5Yq544Go44GZ44KLCgkJCQkJd2luZG93LmV2ZW50LmtleUNvZGUgPSA4OwoJCQkJCXdpbmRvdy5l dmVudC5jYW5jZWxCdWJibGUgPSB0cnVlOwoJICAgICAgICB3aW5kb3cuZXZlbnQucmV0dXJuVmFs dWUgPSBmYWxzZTsKCSAgICAgICAgcmV0dXJuIGZhbHNlOwoJICAgIH0KCQkJCgkJCS8vIOaKvOOB leOCjOOBn+OCreODvOOBjOW3pigzNynjgIHlj7MoMzkp44Gu5pmCCgkJCWlmICh3aW5kb3cuZXZl bnQua2V5Q29kZSA9PSAzNyB8fCB3aW5kb3cuZXZlbnQua2V5Q29kZSA9PSAzOSl7CgkgICAgICAg IC8vIEFsdOOCreODvOOBjOaKvOOBleOCjOOBpuOBhOOCi+OBi+ODgeOCp+ODg+OCr+OCkuihjOOB hgoJICAgICAgICBpZiAod2luZG93LmV2ZW50LmFsdEtleSl7CgkJCQkJCWlmICh3aW5kb3cuZXZl bnQua2V5Q29kZSA9PSAzNykgewoJCQkJCQkJYWxlcnQoJ+OCreODvOODnOODvOODieOBq+OCiOOC i+aIu+OCi+WHpueQhuOBr+WHuuadpeOBvuOBm+OCk+OAgicpOwoJCQkJCQl9IGVsc2UgewoJCQkJ CQkJYWxlcnQoJ+OCreODvOODnOODvOODieOBq+OCiOOCi+mAsuOCgOWHpueQhuOBr+WHuuadpeOB vuOBm+OCk+OAgicpOwoJCQkJCQl9CgkJCQkJCS8vIOaKvOOBleOCjOOBpuOBhOOCjOOBsOWFpeWK m+OCkueEoeWKueOBq+OBmeOCiwoJCQkJCQl3aW5kb3cuZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1 ZTsKCSAgICAgICAgCXdpbmRvdy5ldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlOwoJICAgICAgICAJ cmV0dXJuIGZhbHNlOwoJICAgICAgICB9CgkgICAgfQoKCQkJLy8g5oq844GV44KM44Gf44Kt44O8 44GMQmFja3NwYWNlKDgp44Gu5pmCCgkgICAgaWYgKHdpbmRvdy5ldmVudC5rZXlDb2RlID09IDgp IHsKCSAgICAgICAgaWYoZXZlbnQuc3JjRWxlbWVudC50eXBlICE9ICJ0ZXh0IiAmJiBldmVudC5z cmNFbGVtZW50LnR5cGUgIT0gInRleHRhcmVhIiAmJiBldmVudC5zcmNFbGVtZW50LnR5cGUgIT0g InBhc3N3b3JkIiAmJiBldmVudC5zcmNFbGVtZW50LnR5cGUgIT0gImZpbGUiKXsKCSAgICAgICAg CS8vIOOCpOODmeODs+ODiOOBrueZuueUn+WFg+OBjOODhuOCreOCueODiOODleOCo+ODvOODq+OD ieOBp+OBquOBhOOBqOOBjeOBr+ODkOODg+OCr+OCueODmuODvOOCuQoJICAgICAgICAJLy8g5LiN 5Y+v44Gr44GZ44KLCgkgICAgICAgIAl3aW5kb3cuZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZTsK CSAgICAgICAgCXdpbmRvdy5ldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlOwoJICAgICAgICAJcmV0 dXJuIGZhbHNlOwoJICAgIAkJfQoJCQl9CgkJLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgTmV0 U2NhcGUgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCQl9IGVsc2UgewoJCQkvLyDm irzjgZXjgozjgZ/jgq3jg7zjgYxlbnRlcigxMynjga7mmYIKCQkJaWYgKGUud2hpY2ggPT0gMTMp IHsKCQkJCS8vIOeZuueUn+OBl+OBn+OCpOODmeODs+ODiOOCkueEoeWKueOBqOOBmeOCi++8iOOC teODluODn+ODg+ODiOOBruWItuW+oe+8iQoJCQkJaWYgKGUudGFyZ2V0LnR5cGUgPT0gInRleHQi IHx8IGUudGFyZ2V0LnR5cGUgPT0gImZpbGUiIHx8IGUudGFyZ2V0LnR5cGUgPT0gbnVsbCB8fCBl LnRhcmdldC50eXBlID09ICJjaGVja2JveCIpIHsKCQkJCQkvLyDjgZPjgZPjgafjgqTjg5njg7Pj g4jjgpLjgq3jg6Pjg7Pjgrvjg6vjgZnjgozjgbDjgojjgYTjgYzjg43jg4Pjg4jjgrnjgrHjg7zj g5fjgafjga/mnKrlrp/oo4UKCQkJCQlzdWJtaXRGbGFnID0gZmFsc2U7CgkJCQkJcmV0dXJuIGZh bHNlOwoJCQkJfQogICAgCX0KCgkJCS8vIOaKvOOBleOCjOOBn+OCreODvOOBjEY1KDExNinjga7m mYIKCQkJaWYgKGUud2hpY2ggPT0gMTE2KXsKCQkJCQkvLyDjgq3jg7zjgrPjg7zjg4njgpI444Gr 5pu444GN5o+b44GI5YWl5Yqb44KS54Sh5Yq544Go44GZ44KLCgkJCQkJZS53aGljaCA9IDg7Cgkg ICAgICAgIC8vIOOBk+OBk+OBp+OCpOODmeODs+ODiOOCkuOCreODo+ODs+OCu+ODq+OBmeOCjOOB sOOCiOOBhOOBjOODjeODg+ODiOOCueOCseODvOODl+OBp+OBr+acquWun+ijhQoJCQkJCXJldHVy biBmYWxzZTsKCSAgICB9CgkJCQoJCQkvLyDmirzjgZXjgozjgZ/jgq3jg7zjgYzlt6YoMzcp44CB 5Y+zKDM5KeOBruaZggoJCQlpZiAoZS53aGljaCA9PSAzNyB8fCBlLndoaWNoID09IDM5KXsKCSAg ICAgICAgLy8g44GT44GT44Gn44Kk44OZ44Oz44OI44KS44Kt44Oj44Oz44K744Or44GZ44KM44Gw 44KI44GE44GM44ON44OD44OI44K544Kx44O844OX44Gn44Gv5pyq5a6f6KOFCgkJCQkJcmV0dXJu IGZhbHNlOwoJICAgICAgICAKCSAgICB9CgoJCQkvLyDmirzjgZXjgozjgZ/jgq3jg7zjgYxCYWNr c3BhY2UoOCnjga7mmYIKCSAgICBpZiAoZS53aGljaCA9PSA4KSB7CgkgICAgICAgIGlmKGUudGFy Z2V0LnR5cGUgIT0gInRleHQiICYmIGUudGFyZ2V0LnR5cGUgIT0gInRleHRhcmVhIiAmJiBlLnRh cmdldC50eXBlICE9ICJwYXNzd29yZCIgJiYgZS50YXJnZXQudHlwZSAhPSAiZmlsZSIpewoJICAg ICAgICAJLy8g44Kk44OZ44Oz44OI44Gu55m655Sf5YWD44GM44OG44Kt44K544OI44OV44Kj44O8 44Or44OJ44Gn44Gq44GE44Go44GN44Gv44OQ44OD44Kv44K544Oa44O844K5CgkgICAgICAgIAkv LyDkuI3lj6/jgavjgZnjgosKCSAgICAgICAgCS8vIOOBk+OBk+OBp+OCpOODmeODs+ODiOOCkuOC reODo+ODs+OCu+ODq+OBmeOCjOOBsOOCiOOBhOOBjOODjeODg+ODiOOCueOCseODvOODl+OBp+OB r+acquWun+ijhQoJCQkJCQlyZXR1cm4gZmFsc2U7CgkgICAgCQl9CgkJCX0KCgkJfQp9CgovKioK ICog5Y+z44Kv44Oq44OD44Kv5pmC44Gu44Oh44OL44Ol44O844KS6KGo56S644GX44Gq44GE44KI 44GG44Gr44GZ44KLCiAqLwpmdW5jdGlvbiBvbkNvbnRleHQoZSl7CgkJLy8g44OW44Op44Km44K2 44Gu56iu5Yil44KS5Y+W5b6XCgkJdmFyIGJyb3dzZXIgPSBuYXZpZ2F0b3IuYXBwTmFtZTsKCQkv LyDjg5bjg6njgqbjgrbjgYxJbnRlcm5ldCBFeHBsb3JlciDjga7loLTlkIgKCQkvLyAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyBJbnRlcm5ldEV4cGxvcmVyICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCgkJaWYgKGJyb3dzZXIuaW5kZXhPZigiTWljcm9zb2Z0IikgPj0gMCkgewoJCQkv LyBzNDAyMDHjgahnNDAyMDHjga7jg4Djgqbjg7Pjg63jg7zjg4njg6rjg7Pjgq/jga7mmYLjga7j gb/lj7Pjgq/jg6rjg4Pjgq/jgpLlj6/og73jgajjgZnjgosKCQkJLy8g5ZG844Gw44KM44Gm44GE 44KLamF2YXNjcmlwdOWQjeOBp+WIpOaWrQoJCQl2YXIgZWxlbWVudCA9IGV2ZW50LnNyY0VsZW1l bnQubmFtZTsKCQkJaWYgKGVsZW1lbnQgIT0gbnVsbCkgewoJCQkJaWYgKGVsZW1lbnQuaW5kZXhP ZigiZG93bkxvYWRGaWxlIikpIHsKCQkJCQlyZXR1cm4gdHJ1ZTsKCQkJCX0KCQkJfQoKCQkJLy8g 5Y+z44Kv44Oq44OD44Kv44GM5oq85LiL44GV44KM44Gf44Go44GN44Gu44Kq44OW44K444Kn44Kv 44OI44Gu56iu5Yil44Gr44KI44KK5Yik5pat44KS6KGM44GGCgkgICAgLy8gdGV4dCx0ZXh0YXJl YSxwYXNzd29yZCxmaWxlIOWGheOBruOBqOOBjeOBr+WPs+OCr+ODquODg+OCr+OCkuioseWPr+OB meOCiwoJICAgIGlmKGV2ZW50LnNyY0VsZW1lbnQudHlwZSAhPSAidGV4dCIgJiYgZXZlbnQuc3Jj RWxlbWVudC50eXBlICE9ICJ0ZXh0YXJlYSIgJiYgZXZlbnQuc3JjRWxlbWVudC50eXBlICE9ICJw YXNzd29yZCIgJiYgZXZlbnQuc3JjRWxlbWVudC50eXBlICE9ICJmaWxlIil7CgkgICAgICAgIHJl dHVybiBmYWxzZTsKCSAgICB9IGVsc2V7CgkgICAgICAgIHJldHVybiB0cnVlOwoJICAgIH0KCQkv LyDjg5bjg6njgqbjgrbjgYxOZXRTY2FwZeOBp+OBguOCi+OBqOOBjQoJCS8vICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIE5ldFNjYXBlICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgkJ fSBlbHNlIHsKCQkJLy8g5Y+z44Kv44Oq44OD44Kv44GM5oq85LiL44GV44KM44Gf44Go44GN44Gu 44Kq44OW44K444Kn44Kv44OI44Gu56iu5Yil44Gr44KI44KK5Yik5pat44KS6KGM44GGCgkgICAg Ly8gdGV4dCx0ZXh0YXJlYSxwYXNzd29yZCxmaWxlIOWGheOBruOBqOOBjeOBr+WPs+OCr+ODquOD g+OCr+OCkuioseWPr+OBmeOCiwoJCQlpZiAoZS50YXJnZXQudHlwZSAhPSAidGV4dCIgJiYgZS50 YXJnZXQudHlwZSAhPSAidGV4dGFyZWEiICYmIGUudGFyZ2V0LnR5cGUgIT0gInBhc3N3b3JkIiAm JiBlLnRhcmdldC50eXBlICE9ICJmaWxlIikgewoJICAgICAgICByZXR1cm4gZmFsc2U7CgkgICAg fSBlbHNlewoJICAgICAgICByZXR1cm4gdHJ1ZTsKCSAgICB9IAoJCX0KfQovLy0tPgo8L1NDUklQ VD4NCg0KPFNDUklQVCBsYW5ndWFnZT1qYXZhc2NyaXB0Pgo8IS0tCi8qCiAqIOWNsOWIt+OBruOD gOOCpOOCouODreOCsOOCkuihqOekuuOBmeOCi+WJjeOBq+eiuuiqjeODgOOCpOOCouODreOCsOOC kuihqOekuuOBmeOCiwogKi8KZnVuY3Rpb24gcHJpbnRNZXNzYWdlKCkgewoJaWYgKGNvbmZpcm0o IuW9k+WNsOWIt+apn+iDveOBr+ODluODqeOCpuOCtuOBruWNsOWIt+apn+iDveOBp+OBmeOAguOC iOOCjeOBl+OBkeOCjOOBsOOAjO+8r++8q+OAjeOCkuOCr+ODquODg+OCr+OBl+OBpuOBj+OBoOOB leOBhOOAglxu4oC7TWFj56uv5pyr44Gn44Gv44OA44Kk44Ki44Ot44Kw44GM6KGo56S644GV44KM 44Gq44GE5aC05ZCI44GM44GC44KL44Gu44Gn44CB44OE44O844Or44OQ44O844KI44KK5Y2w5Yi3 44KS6KGM44Gj44Gm44GP44Gg44GV44GE44CCIikpIHsKCQlqYXZhc2NyaXB0OndpbmRvdy5wcmlu dCgpOwoJfQp9Ci8vLS0+CjwvU0NSSVBUPg0KDQo8U0NSSVBUIGxhbmd1YWdlPWphdmFzY3JpcHQ+ CjwhLS0KLyoqCiAqIOWkmumHjemAgeS/oeWItuW+oeOCkuihjOOBhuOAggogKi8KaXNTdWJtaXQg PSBmYWxzZTsKaXNDaGlsZE9wZW4gPSBmYWxzZTsKaXNQZGZTdWJtaXQgPSBmYWxzZTsKaXNDc3ZT dWJtaXQgPSBmYWxzZTsKaXNMb2FkID0gZmFsc2U7CnZhciBwZGZOYW1lID0gJyc7CgpmdW5jdGlv biBjaGVja1N1Ym1pdCgpIHsKCWlmIChzdWJtaXRGbGFnID09IGZhbHNlKSB7CgkJcmV0dXJuIGZh bHNlOwoJfQp9CgpmdW5jdGlvbiBkYkNsaWNrKCkgewoJcmV0dXJuIGRiUHJpbnRDbGljaygnc3Vi bWl0Jyk7Cn0KCmZ1bmN0aW9uIGRiQ2hpbGRPcGVuKHVybCwgd2lkdGgsIGhlaWdodCkgewoJc3Vi bWl0RmxhZyA9IHRydWU7CglpZiAoIWlzQ2hpbGRPcGVuKSB7CgkJaXNDaGlsZE9wZW4gPSB0cnVl OwoJCWNoaWxkV2luZG93ID0gd2luZG93Lm9wZW4odXJsLCAnc3ViV2luZG93JywgJ3dpZHRoPScg KyB3aWR0aCArICcsaGVpZ2h0PScgKyBoZWlnaHQgKyAnLCBzY3JvbGxiYXJzPXllcywgcmVzaXph YmxlPXllcywgc3RhdHVzPXllcycpOwoJCWNoaWxkV2luZG93LmZvY3VzKCk7Cgl9IGVsc2UgewoJ CS8vIFNhZmFyaTEuMOWvvuW/nAoJCWlmKG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignU2Fm YXJpLzg1JykgIT0gLTEpewoJCQkvLyBTYWZhcmkxLjDjgafjga93aW5kb3cuY2xvc2Vk44KS6KqN 6K2Y44GZ44KL44Gu44Gr5pmC6ZaT44GM44GL44GL44KL44Gf44KB44CB5a2Q44Km44Kj44Oz44OJ 44Km44GM6ZaL44GE44Gm44GE44Gm44KC5LiK5pu444GN44GZ44KLCgkJCWNoaWxkV2luZG93ID0g d2luZG93Lm9wZW4odXJsLCAnc3ViV2luZG93JywgJ3dpZHRoPScgKyB3aWR0aCArICcsaGVpZ2h0 PScgKyBoZWlnaHQgKyAnLCBzY3JvbGxiYXJzPXllcywgcmVzaXphYmxlPXllcycpOwoJCQljaGls ZFdpbmRvdy5mb2N1cygpOwoJCS8vIFNhZmFyaTEuMOS7peWklgoJCX0gZWxzZSB7CgkJCWlmIChj aGlsZFdpbmRvdy5jbG9zZWQpIHsKCQkJCWNoaWxkV2luZG93ID0gd2luZG93Lm9wZW4odXJsLCAn c3ViV2luZG93JywgJ3dpZHRoPScgKyB3aWR0aCArICcsaGVpZ2h0PScgKyBoZWlnaHQgKyAnLCBz Y3JvbGxiYXJzPXllcywgcmVzaXphYmxlPXllcycpOwoJCQkJY2hpbGRXaW5kb3cuZm9jdXMoKTsK CQkJfSBlbHNlIHsKCQkJCWFsZXJ0KCLlrZDjgqbjgqPjg7Pjg4njgqbjgYzml6LjgavplovjgYTj gabjgYTjgb7jgZnjgIIiKTsKCQkJfQoJCX0KCX0KfQoKZnVuY3Rpb24gZGJMaW5rQ2xpY2soYXJn KSB7CgoJc3VibWl0RmxhZyA9IHRydWU7CgkvLyDnlLvpnaLjgYzlrozlhajjgavjg63jg7zjg4nj gZfliIfjgozjgabjgYTjgarjgYTloLTlkIjjgIFzdWJtaXTlh6bnkIbjgpLooYzjgo/jgZvjgarj gYQKCWlmKGlzTG9hZCkgewoJCS8vIOaXouOBq+ODnOOCv+ODs+aTjeS9nOOBjOihjOOCj+OCjOOB puOBhOOCi+WgtOWQiOOAgXN1Ym1pdOWHpueQhuOCkuihjOOCj+OBm+OBquOBhAoJCWlmICghaXNT dWJtaXQpIHsKCQkJaXNTdWJtaXQgPSB0cnVlOwogICAgCQlkb2N1bWVudC5sb2NhdGlvbi5ocmVm ID0gYXJnOwoJCX0KCX0KfQoKZnVuY3Rpb24gZGJDc3ZDbGljaygpIHsKCXN1Ym1pdEZsYWcgPSB0 cnVlOwoJLy8g44OV44Kh44Kk44Or5Ye65Yqb44Oc44K/44Oz44GM5oq844GV44KM44Gf5aC05ZCI CglpZiAoaXNDc3ZTdWJtaXQpIHsKCQlpZiAoY29uZmlybSgi5YaN5bqm44CB44OV44Kh44Kk44Or 5Ye65Yqb5Yem55CG44KS6KGM44GE44G+44GZ44GL77yfIikpIHsKCQkJcmV0dXJuIHRydWU7CgkJ fSBlbHNlIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCX0gZWxzZSB7CgkJaXNDc3ZTdWJtaXQgPSB0 cnVlOwoJCXJldHVybiB0cnVlOwoJfQp9CgoKZnVuY3Rpb24gZGJQcmludENsaWNrX1NlcnZlckRM KGFyZykgewoKCXN1Ym1pdEZsYWcgPSB0cnVlOwoJLy8g5Y2w5Yi344Oc44K/44Oz44Gu77yS5bqm 5oq844GX44Gr44Gv44Ki44Op44O844OI44Oh44OD44K744O844K444KS6KGo56S644GZ44KLCglp ZiAoaXNQZGZTdWJtaXQpIHsKCQlhbGVydCgi54++5Zyo5Y2w5Yi35Yem55CG5Lit44Gn44GZ44CC 44GX44Gw44KJ44GP44GK5b6F44Gh44GP44Gg44GV44GE44CCIik7CgkJcmV0dXJuIGZhbHNlOwoJ fQoKCS8vIOWNsOWIt+ODnOOCv+ODs+OBjOaKvOOBleOCjOOBn+WgtOWQiOOAgeWNsOWIt+Wun+ih jOS4reODleODqeOCsOOCkuOAjHRydWXjgI3jgavoqK3lrprjgZnjgosKCWlmIChhcmcgPT0gJ3By aW50JykgewoJCWlzUGRmU3VibWl0ID0gdHJ1ZTsKCX0KCgkvLyDnlLvpnaLjgYzlrozlhajjgavj g63jg7zjg4njgZfliIfjgozjgabjgYTjgarjgYTloLTlkIjjgIFzdWJtaXTlh6bnkIbjgpLooYzj go/jgZvjgarjgYQKCWlmKCFpc0xvYWQpIHsKCQlyZXR1cm4gZmFsc2U7Cgl9CgoJLy8g5pei44Gr 44Oc44K/44Oz5pON5L2c44GM6KGM44KP44KM44Gm44GE44KL5aC05ZCI44CBc3VibWl05Yem55CG 44KS6KGM44KP44Gb44Gq44GECglpZiAoaXNTdWJtaXQpIHsKCQlyZXR1cm4gZmFsc2U7Cgl9Cglp c1N1Ym1pdCA9IHRydWU7CglyZXR1cm4gdHJ1ZTsKfQoKCmZ1bmN0aW9uIGRiUHJpbnRDbGljayhh cmcsIGVsbSwgYnV0dG9uTmFtZSwgYnV0dG9uVmFsdWUpIHsKCXN1Ym1pdEZsYWcgPSB0cnVlOwoJ Ly8g5Y2w5Yi344Oc44K/44Oz44Gu77yS5bqm5oq844GX44Gr44Gv44Ki44Op44O844OI44Oh44OD 44K744O844K444KS6KGo56S644GZ44KLCglpZiAoaXNQZGZTdWJtaXQpIHsKCQlhbGVydCgi54++ 5Zyo5Y2w5Yi35Yem55CG5Lit44Gn44GZ44CC44GX44Gw44KJ44GP44GK5b6F44Gh44GP44Gg44GV 44GE44CCIik7CgkJcmV0dXJuIGZhbHNlOwoJfQoKCS8vIOWNsOWIt+ODnOOCv+ODs+OBjOaKvOOB leOCjOOBn+WgtOWQiOOAgeWNsOWIt+Wun+ihjOS4reODleODqeOCsOOCkuOAjHRydWXjgI3jgavo qK3lrprjgZnjgosKCWlmIChhcmcgPT0gJ3ByaW50JykgewoJCQoJCWlmIChhcmd1bWVudHMubGVu Z3RoID09ICcxJykgewoJCQlyZXR1cm4gZGJQcmludENsaWNrX1NlcnZlckRMKGFyZyk7CgkJfSBl bHNlIHsKCQkKCQkJCgkJCS8vIOW4s+elqOOCpOODoeODvOOCuOOBjGpzcOWun+ihjOe1kOaenOOB ruS7o+OCj+OCiuOBq+i/lOWNtOOBleOCjOOCi+OCiOOBhuOBq+OBquOCi+OBn+OCge+8jAoJCQkv LyBQREbooajnpLrnlKjjgqbjgqTjg7Pjg4njgqbjgpLplovjgY3vvIzjgZPjga7jgqbjgqTjg7Pj g4njgqbjgpLjgr/jg7zjgrLjg4Pjg4jjgavjgZfjgabjg5Xjgqnjg7zjg6DjgpLpgIHkv6HjgZnj gosKCQkJaWYgKGVsbSAhPSBudWxsKSB7CgkJCQlpZiAoIWlzTG9hZCB8fCBpc1N1Ym1pdCkgewoJ CQkJCXJldHVybiBmYWxzZTsKCQkJCX0KCgkJCQl2YXIgZm9ybSA9IGVsbS5mb3JtOwoJCQkJcmV0 dXJuIG9wZW5TdWJXaW5kb3dBbmRTdWJtaXRGb3JtKGZvcm0sIGJ1dHRvbk5hbWUsIGJ1dHRvblZh bHVlKTsKCQkJfQoJCQkKCQkKCQl9CgkJCgoJCWlzUGRmU3VibWl0ID0gdHJ1ZTsKCX0KCgkvLyDn lLvpnaLjgYzlrozlhajjgavjg63jg7zjg4njgZfliIfjgozjgabjgYTjgarjgYTloLTlkIjjgIFz dWJtaXTlh6bnkIbjgpLooYzjgo/jgZvjgarjgYQKCWlmKCFpc0xvYWQpIHsKCQlyZXR1cm4gZmFs c2U7Cgl9CgoJLy8g5pei44Gr44Oc44K/44Oz5pON5L2c44GM6KGM44KP44KM44Gm44GE44KL5aC0 5ZCI44CBc3VibWl05Yem55CG44KS6KGM44KP44Gb44Gq44GECglpZiAoaXNTdWJtaXQpIHsKCQly ZXR1cm4gZmFsc2U7Cgl9Cglpc1N1Ym1pdCA9IHRydWU7CgoJcmV0dXJuIHRydWU7Cn0KCi8qKgog KiDljbDliLflh6bnkIbjgpLlrp/ooYzjgZnjgosKICovCmZ1bmN0aW9uIGRiTGlua1ByaW50Q2xp Y2soZm9ybSwgYnV0dG9uTmFtZSwgYnV0dG9uVmFsdWUpIHsKCWlmICghaXNMb2FkIHx8IGlzU3Vi bWl0KSB7CgkJcmV0dXJuIGZhbHNlOwoJfQoJcmV0dXJuIG9wZW5TdWJXaW5kb3dBbmRTdWJtaXRG b3JtKGZvcm0sIGJ1dHRvbk5hbWUsIGJ1dHRvblZhbHVlKTsKfQoKLyoqCiAqIOWtkOOCpuOCpOOD s+ODieOCpuOCkumWi+OBhOOBn+W+jOOAgeOBneOBruOCpuOCpOODs+ODieOCpuOCkuOCv+ODvOOC suODg+ODiOOBqOOBl+OBpuODleOCqeODvOODoOOCkumAgeS/oeOBmeOCiwogKi8KZnVuY3Rpb24g b3BlblN1YldpbmRvd0FuZFN1Ym1pdEZvcm0oZm9ybSwgYnV0dG9uTmFtZSwgYnV0dG9uVmFsdWUp IHsKCXZhciBhY3Rpb25CYWNrdXAgPSBudWxsOwoJdmFyIG5ld0VsID0gbnVsbDsKCglpZiAoaXNT dWJtaXQpIHsKCQlyZXR1cm4gZmFsc2U7Cgl9Cglpc1N1Ym1pdCA9IHRydWU7CgoJLy8g6LW35YuV 5a++6LGh44Gu44Ki44Kv44K344On44Oz44GMTGNEaXNwYXRjaEFjdGlvbuOBruWgtOWQiO+8jOaM h+WumuOBleOCjOOBn+WQjeensOOBrgoJLy8g44Oc44K/44Oz44GM5oq844GV44KM44Gf44GT44Go 44Gr44GZ44KLCglpZiAoYnV0dG9uTmFtZSAhPSBudWxsKSB7CgkJaWYgKGJ1dHRvblZhbHVlID09 IG51bGwpIGJ1dHRvblZhbHVlID0gInRydWUiOwoKCQlpZiAobmF2aWdhdG9yLnVzZXJBZ2VudC5p bmRleE9mKCJNU0lFIDUiKSAhPSAtMSAmJgoJCQluYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2Yo Ik1hYyIpICE9IC0xKSB7CgkJCW5ld0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiPGlucHV0 IHR5cGU9aGlkZGVuPiIpOwoJCQluZXdFbC5uYW1lID0gYnV0dG9uTmFtZTsKCQkJbmV3RWwudmFs dWUgPSBidXR0b25WYWx1ZTsKCQkJZm9ybS5hZGQobmV3RWwpOwoJCX0gZWxzZSB7CgkJCWFjdGlv bkJhY2t1cCA9IGZvcm0uYWN0aW9uOwoJCQlmb3JtLmFjdGlvbiA9IGZvcm0uYWN0aW9uICsgIj8i ICsgYnV0dG9uTmFtZSArICI9IiArIGJ1dHRvblZhbHVlOwoJCX0KCX0KCgkvLyDmlrDopo/jgqbj gqTjg7Pjg4njgqbjgpLplovjgY8KCXZhciBwZGZXaW4gPSB3aW5kb3c7CglpZiAobmF2aWdhdG9y LnVzZXJBZ2VudC5pbmRleE9mKCJTYWZhcmkvODUiKSA9PSAtMSkgewoJCXBkZldpbiA9IHdpbmRv dy5vcGVuKCJhYm91dDpibGFuayIsICJQREYiLCAicmVzaXphYmxlPXllcyxzY3JvbGxiYXJzPXll cyIpOwoJCWZvcm0udGFyZ2V0ID0gIlBERiI7CgkJZm9ybS5zdWJtaXQoKTsKCQlmb3JtLnRhcmdl dCA9ICIiOwoJfSBlbHNlIHsKCQlmb3JtLnN1Ym1pdCgpOwoJfQoKCS8vIOODleOCqeODvOODoOOB rmFjdGlvbuOCkuWkieabtOOBl+OBpuOBhOOCi+WgtOWQiOOBr+WFg+OBq+aIu+OBmQoJaWYgKGFj dGlvbkJhY2t1cCAhPSBudWxsKSB7CgkJZm9ybS5hY3Rpb24gPSBhY3Rpb25CYWNrdXA7CgkJYWN0 aW9uQmFja3VwID0gbnVsbDsKCX0KCglpZiAobmV3RWwgIT0gbnVsbCkgewoJCWZvcm0ucmVtb3Zl KG5ld0VsKTsKCX0KCgkvLyBQREbooajnpLrjgqbjgqTjg7Pjg4njgqbjgpLmnIDliY3pnaLjgavo oajnpLoKCXBkZldpbi5mb2N1cygpOwoKCWlzU3VibWl0ID0gZmFsc2U7CgoJcmV0dXJuIGZhbHNl Owp9CgovKgogKiDjg4fjg7zjgr/jga7mm7TmlrDjgYzooYzjgo/jgozjgovnlLvpnaLjgavjgYrj gYTjgabjgIHjg6Hjg4vjg6Xjg7zjgavmiLvjgovliY3jgavnorroqo3jg6Hjg4Pjgrvjg7zjgrjj gpLooajnpLrjgZnjgosKICovCmZ1bmN0aW9uIGNvbmZpcm1NZXNzYWdlKHNlc3Npb25JZCwgbWVz c2FnZSkgewoJaWYgKGNvbmZpcm0obWVzc2FnZSkpIHsKCQlpZiAoIWlzU3VibWl0KSB7CgkJCXdp bmRvdy5sb2NhdGlvbj0iL21haW5NZW51LmRvO0xjU2Vzc2lvbklEPSIgKyBzZXNzaW9uSWQ7CgkJ fQoJfQp9CgovKgogKiDjg4fjg7zjgr/jga7mm7TmlrDjgYzooYzjgo/jgozjgovnlLvpnaLjgavj gYrjgYTjgabjgIHmiLvjgovjg5zjgr/jg7PjgYzmirzjgZXjgozjgZ/loLTlkIjjgavnorroqo3j g6Hjg4Pjgrvjg7zjgrjjgpLooajnpLrjgZnjgosKICovCmZ1bmN0aW9uIGJhY2tDb25maXJtTWVz c2FnZShzZXNzaW9uSWQsIGFjdGlvbiwgbWVzc2FnZSkgewoJaWYgKGNvbmZpcm0obWVzc2FnZSkp IHsKCQlpZiAoIWlzU3VibWl0KSB7CgkJCXdpbmRvdy5sb2NhdGlvbj1hY3Rpb24gKyAiO0xjU2Vz c2lvbklEPSIgKyBzZXNzaW9uSWQgKyAiP3JlPSI7CgkJfQoJfQp9CgovKioKICogUERG44OV44Kh 44Kk44Or5ZCN56ew44GM6Kit5a6a44GV44KM44Gm44GE44Gf5aC05ZCI44CB5Yil44Km44Kj44Oz 44OJ44Km44GnUERG44OV44Kh44Kk44Or44KS6KGo56S644GZ44KL44CCCiAqLwpmdW5jdGlvbiBm aW5pc2hMb2FkKCkgewoKCWxvZ2luRXJyb3JDb3VudCA9IDM7CgllcnJvckNvdW50ID0gMDsKCS8v IOODreOCsOOCpOODs+OCqOODqeODvOWbnuaVsOOBjOimj+WumuOBruWbnuaVsOOCkuS4iuWbnuOC i+OBqOOCpuOCo+ODs+ODieOCpuOCkumWieOBmOOCiwoJaWYgKGxvZ2luRXJyb3JDb3VudCA8IGVy cm9yQ291bnQpIHsKCQl3aW5kb3cuY2xvc2UoKTsKCX0KCglpc0xvYWQgPSB0cnVlOwoKCQoJaWYg KHBkZk5hbWUgIT0gIiIpIHsKCQl2YXIgcGRmV2luID0gd2luZG93Lm9wZW4ocGRmTmFtZSwgJ1BE RicsICJyZXNpemFibGU9eWVzLCBzY3JvbGxiYXJzPXllcyIpOwoJCWlzUGRmU3VibWl0ID0gZmFs c2U7CgkJaXNTdWJtaXQgPSBmYWxzZTsKCQlwZGZXaW4uZm9jdXMoKTsKCQlwZGZOYW1lID0gIiI7 Cgl9CgkKCglsYXN0U2VjID0gMTgwMDsKCgl0SUQgPSBzZXRJbnRlcnZhbCgnZ3JhcGhpY2FsVGlt ZXIoKScsMTAwMCk7CgoJLy8gTmV0U2NhcGXjgIFNQUPjga5TYWZhcmkKCWlmIChuYXZpZ2F0b3Iu YXBwTmFtZSA9PSAiTmV0c2NhcGUiKSB7CgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRpbWVy RGlzcGxheSIpLmlubmVySFRNTCA9IGxhc3RTZWM7CgkvLyBXaW5kb3dz44GoTUFD44GuSUUKCX0g ZWxzZSBpZiAobmF2aWdhdG9yLmFwcE5hbWUgPT0gIk1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3Jl ciIpIHsKCQl0aW1lckRpc3BsYXkuaW5uZXJUZXh0ID0gbGFzdFNlYzsKCS8vIOOBneOBruS7lgoJ fSBlbHNlIHsKCQkvLyDlr77osaHlpJYKCX0KfQoKLyoqCiAqIOOCv+OCpOODoOOCouOCpuODiOOB vuOBp+OBruaZgumWk+OCkuihqOekuuOBmeOCi+OAggogKi8KLy8g54++5Zyo44Gu44OR44K544KS 5Y+W5b6X44GZ44KLCm5vd0xvY2F0aW9uID0gbmV3IFN0cmluZyhwYXJlbnQubG9jYXRpb24pOwoK ZnVuY3Rpb24gZ3JhcGhpY2FsVGltZXIoKXsKCWxhc3RTZWMtLTsKCgkvLyBOZXRTY2FwZeOAgU1B Q+OBrlNhZmFyaQoJaWYgKG5hdmlnYXRvci5hcHBOYW1lID09ICJOZXRzY2FwZSIpIHsKCQlkb2N1 bWVudC5nZXRFbGVtZW50QnlJZCgidGltZXJEaXNwbGF5IikuaW5uZXJIVE1MID0gbGFzdFNlYzsK CS8vIFdpbmRvd3PjgahNQUPjga5JRQoJfSBlbHNlIGlmIChuYXZpZ2F0b3IuYXBwTmFtZSA9PSAi TWljcm9zb2Z0IEludGVybmV0IEV4cGxvcmVyIikgewoJCXRpbWVyRGlzcGxheS5pbm5lclRleHQg PSBsYXN0U2VjOwoJfSBlbHNlIHsKCQkvLyDlr77osaHlpJYKCX0KCWlmIChub3dMb2NhdGlvbi5p bmRleE9mKCIvVUkvanNwL2xvZ2luIikgPCAwKSB7CgkJaWYobGFzdFNlYyA+IDE4MDApewoJCQlj bGVhckludGVydmFsKHRJRCk7CgoJCQkvLyDnorroqo3jg6Hjg4Pjgrvjg7zjgrjjgafjgIxPS+OA jeOCkumBuOaKnuOBl+OBn+WgtOWQiOOAgeWQhOODpuODvOOCtuOBruODreOCsOOCpOODs+eUu+md ouOBuOmBt+enu+OBmeOCiwoJCQlpZiAoY29uZmlybSgn44K/44Kk44Og44Ki44Km44OI44GM55m6 55Sf44GX44G+44GX44Gf44Gu44Gn44CB44Ot44Kw44Kk44Oz55S76Z2i44Gr5oi744KK44G+44GZ 44CCJykpIHsKCQkJCS8vIOaVmeWLmeiBt+WToeOBruWgtOWQiAoJCQkJaWYgKCIiID09ICIxIikg ewoJCQkJCXdpbmRvdy5sb2NhdGlvbj0iL1VJL2pzcC9sb2dpbi9sb2dpblN0YWZmLmpzcCI7CgkJ CQkvLyDlrabnlJ/jga7loLTlkIgKCQkJCX0gZWxzZSBpZiAoIiIgPT0gIjIiKSB7CgkJCQkJd2lu ZG93LmxvY2F0aW9uPSIvVUkvanNwL2xvZ2luL2xvZ2luU3R1ZGVudC5qc3AiOwoJCQkJLy8g5pWZ 5ZOh44Gu5aC05ZCICgkJCQl9IGVsc2UgaWYgKCIiID09ICIzIikgewoJCQkJCXdpbmRvdy5sb2Nh dGlvbj0iL1VJL2pzcC9sb2dpbi9sb2dpblRlYWNoZXIuanNwIjsKCQkJCX0KCQkJfQoJCX0KCX0K fQp3aW5kb3cub25sb2FkID0gZmluaXNoTG9hZDsKCgovKioKICog44OY44Or44OX44Km44Kj44Oz 44OJ44Km44KS6ZaL44GPCiAqIDIwMDUuMTEuMSBtYXRzdWthbmUgeERUUy0zNDDlr77lv5zjg5jj g6vjg5fjgpLplovjgY/pmpvjga5TYWZhcmnjg5bjg6njgqbjgrbliKTlrpogCiAqLwpmdW5jdGlv biBzaG93SGVscFdpbmRvdyh0YXJnZXQsIG1hcElkKSB7CgogIHZhciB1cmwgPSAiIjsKCiAgaWYg KHRhcmdldCA9PSAic3R1ZGVudCIpIHsKCXVybCA9ICcvVUkvaHRtbC9oZWxwL3N0dWRlbnQvTGl2 ZUNhbXB1c1dlYkhlbHBTdHVkZW50Lmh0bScKICB9IGVsc2UgaWYgKHRhcmdldCA9PSAidGVhY2hl ciIpIHsKCXVybCA9ICcvVUkvaHRtbC9oZWxwL3RlYWNoZXIvTGl2ZUNhbXB1c1dlYkhlbHBUZWFj aGVyLmh0bScKICB9IGVsc2UgaWYgKHRhcmdldCA9PSAic3RhZmYiKSB7Cgl1cmwgPSAnL1VJL2h0 bWwvaGVscC9zdGFmZi9MaXZlQ2FtcHVzV2ViSGVscFN0YWZmLmh0bScKICB9CgogIGlmIChuYXZp Z2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCJTYWZhcmkiKSAhPSAtMSApIHsKCXdpbmRvdy5vcGVu KHVybCwgJ0xpdmVDYW1wdXNXZWJIZWxwJywgJ3Rvb2xiYXI9bm8sbG9jYXRpb249bm8sZGlyZWN0 b3J5PW5vLHN0YXR1cz15ZXMsc2Nyb2xsYmFycz15ZXMscmVzaXphYmxlPXllcyx3aWR0aD05MDAs aGVpZ2h0PTcwMCcpCiAgfSBlbHNlIHsKCVJIX1Nob3dIZWxwKDAsIHVybCArICc+TGNIZWxwV2lu ZG93JywgSEhfSEVMUF9DT05URVhULCBtYXBJZCk7CiAgfQoJCn0KCi8vLS0+CjwvU0NSSVBUPg0K DQo8VEFCTEUgY2VsbFNwYWNpbmc9MTAgY2VsbFBhZGRpbmc9MCBib3JkZXI9MD4NCiAgPFRCT0RZ Pg0KICA8VFI+DQogICAgPFREPg0KICAgICAgPFRBQkxFIGNsYXNzPXR4dDEyIGNlbGxTcGFjaW5n PTAgY2VsbFBhZGRpbmc9MyBhbGlnbj1sZWZ0IGJnQ29sb3I9Izk5OTk5OSANCiAgICAgIGJvcmRl cj0xPg0KICAgICAgICA8VEJPRFk+DQogICAgICAgIDxUUiBiZ0NvbG9yPSNmZmZmZmY+DQogICAg ICAgICAgPFREIGNsYXNzPXR4dDEyIG5vV3JhcCB3aWR0aD0xNzAgYmdDb2xvcj0jNjY5OWZmPjxG T05UIA0KICAgICAgICAgICAgY29sb3I9I2ZmZmZmZj7np5Hnm67lkI0gJm5ic3A7IDwvRk9OVD48 L1REPg0KICAgICAgICAgIDxURCBjbGFzcz10eHQxMiB3aWR0aD03NzAgY29sU3Bhbj0zPuaDheWg seOBqOaVsOeQhiAmbmJzcDsgPC9URD48L1RSPg0KICAgICAgICA8VFIgYmdDb2xvcj0jZmZmZmZm Pg0KICAgICAgICAgIDxURCBjbGFzcz10eHQxMiBub1dyYXAgd2lkdGg9MTcwIGJnQ29sb3I9IzY2 OTlmZj48Rk9OVCANCiAgICAgICAgICAgIGNvbG9yPSNmZmZmZmY+5ouF5b2T5pWZ5ZOhICZuYnNw OyA8L0ZPTlQ+PC9URD4NCiAgICAgICAgICA8VEQgY2xhc3M9dHh0MTIgd2lkdGg9NzcwIGNvbFNw YW49Mz7pq5jmnKjjgIDmgp8gJm5ic3A7IDwvVEQ+PC9UUj4NCiAgICAgICAgPFRSIGJnQ29sb3I9 I2ZmZmZmZj4NCiAgICAgICAgICA8VEQgY2xhc3M9dHh0MTIgbm9XcmFwIHdpZHRoPTE3MCBiZ0Nv bG9yPSM2Njk5ZmY+PEZPTlQgDQogICAgICAgICAgICBjb2xvcj0jZmZmZmZmPuWvvuixoeWtpuW5 tCAmbmJzcDsgPC9GT05UPjwvVEQ+DQogICAgICAgICAgPFREIGNsYXNzPXR4dDEyIHdpZHRoPTMw MD4x5bm0ICZuYnNwOyA8L1REPg0KICAgICAgICAgIDxURCBjbGFzcz10eHQxMiBub1dyYXAgd2lk dGg9MTcwIGJnQ29sb3I9IzY2OTlmZj48Rk9OVCANCiAgICAgICAgICAgIGNvbG9yPSNmZmZmZmY+ 44Kv44Op44K5ICZuYnNwOyA8L0ZPTlQ+PC9URD4NCiAgICAgICAgICA8VEQgY2xhc3M9dHh0MTIg d2lkdGg9MzAwPu+8kO+8kiAmbmJzcDsgPC9URD48L1RSPg0KICAgICAgICA8VFIgYmdDb2xvcj0j ZmZmZmZmPg0KICAgICAgICAgIDxURCBjbGFzcz10eHQxMiBub1dyYXAgd2lkdGg9MTcwIGJnQ29s b3I9IzY2OTlmZj48Rk9OVCANCiAgICAgICAgICAgIGNvbG9yPSNmZmZmZmY+6Kyb576p5a6kICZu YnNwOyA8L0ZPTlQ+PC9URD4NCiAgICAgICAgICA8VEQgY2xhc3M9dHh0MTIgd2lkdGg9MzAwPu+8 ru+8k++8kO+8k+OAgCAmbmJzcDsgPC9URD4NCiAgICAgICAgICA8VEQgY2xhc3M9dHh0MTIgbm9X cmFwIHdpZHRoPTE3MCBiZ0NvbG9yPSM2Njk5ZmY+PEZPTlQgDQogICAgICAgICAgICBjb2xvcj0j ZmZmZmZmPumWi+ism+WtpuacnyAmbmJzcDsgPC9GT05UPjwvVEQ+DQogICAgICAgICAgPFREIGNs YXNzPXR4dDEyIHdpZHRoPTMwMD7lvozmnJ8gJm5ic3A7IDwvVEQ+PC9UUj4NCiAgICAgICAgPFRS IGJnQ29sb3I9I2ZmZmZmZj4NCiAgICAgICAgICA8VEQgY2xhc3M9dHh0MTIgbm9XcmFwIHdpZHRo PTE3MCBiZ0NvbG9yPSM2Njk5ZmY+PEZPTlQgDQogICAgICAgICAgICBjb2xvcj0jZmZmZmZmPuab nOaXpeODu+aZgumZkCAmbmJzcDsgPC9GT05UPjwvVEQ+DQogICAgICAgICAgPFREIGNsYXNzPXR4 dDEyIHdpZHRoPTMwMD7mnKjvvJEgJm5ic3A7IDwvVEQ+DQogICAgICAgICAgPFREIGNsYXNzPXR4 dDEyIG5vV3JhcCB3aWR0aD0xNzAgYmdDb2xvcj0jNjY5OWZmPjxGT05UIA0KICAgICAgICAgICAg Y29sb3I9I2ZmZmZmZj7ljZjkvY3ljLrliIYgJm5ic3A7IDwvRk9OVD48L1REPg0KICAgICAgICAg IDxURCBjbGFzcz10eHQxMiB3aWR0aD0zMDA+6YG45b+FICZuYnNwOyA8L1REPjwvVFI+DQogICAg ICAgIDxUUiBiZ0NvbG9yPSNmZmZmZmY+DQogICAgICAgICAgPFREIGNsYXNzPXR4dDEyIG5vV3Jh cCB3aWR0aD0xNzAgYmdDb2xvcj0jNjY5OWZmPjxGT05UIA0KICAgICAgICAgICAgY29sb3I9I2Zm ZmZmZj7mjojmpa3lvaLmhYsgJm5ic3A7IDwvRk9OVD48L1REPg0KICAgICAgICAgIDxURCBjbGFz cz10eHQxMiB3aWR0aD0zMDA+5LiA6Iis6Kyb576pICZuYnNwOyA8L1REPg0KICAgICAgICAgIDxU RCBjbGFzcz10eHQxMiBub1dyYXAgd2lkdGg9MTcwIGJnQ29sb3I9IzY2OTlmZj48Rk9OVCANCiAg ICAgICAgICAgIGNvbG9yPSNmZmZmZmY+5Y2Y5L2N5pWwICZuYnNwOyA8L0ZPTlQ+PC9URD4NCiAg ICAgICAgICA8VEQgY2xhc3M9dHh0MTIgd2lkdGg9MzAwPjImbmJzcDsgPC9URD48L1RSPg0KICAg ICAgICA8VFIgYmdDb2xvcj0jZmZmZmZmPg0KICAgICAgICAgIDxURCBjbGFzcz10eHQxMiBub1dy YXAgd2lkdGg9MTcwIGJnQ29sb3I9IzY2OTlmZj48Rk9OVCANCiAgICAgICAgICAgIGNvbG9yPSNm ZmZmZmY+5Y+X6Kyb5a++6LGhJm5ic3A7PC9GT05UPiA8L1REPg0KICAgICAgICAgIDxURCBjbGFz cz10eHQxMiB3aWR0aD03NzAgY29sU3Bhbj0zPiZuYnNwOyA8L1REPjwvVFI+DQogICAgICAgIDxU UiBiZ0NvbG9yPSNmZmZmZmY+DQogICAgICAgICAgPFREIGNsYXNzPXR4dDEyIG5vV3JhcCB3aWR0 aD0xNzAgYmdDb2xvcj0jNjY5OWZmPjxGT05UIA0KICAgICAgICAgICAgY29sb3I9I2ZmZmZmZj7l gpnogIMmbmJzcDs8L0ZPTlQ+IDwvVEQ+DQogICAgICAgICAgPFREIGNsYXNzPXR4dDEyIHdpZHRo PTc3MCBjb2xTcGFuPTM+Jm5ic3A7IDwvVEQ+PC9UUj4NCiAgICAgICAgPFRSIGJnQ29sb3I9I2Zm ZmZmZj4NCiAgICAgICAgICA8VEQgbm9XcmFwIHdpZHRoPTE3MCBiZ0NvbG9yPSM5OWZmY2M+PEZP TlQgDQogICAgICAgICAgICBjb2xvcj0jMDAwMGZmPuOBreOCieOBhOOBqOebruaomTwvRk9OVD4g PC9URD4NCiAgICAgICAgICA8VEQgd2lkdGg9NzcwIA0KICAgICAgICAgICAgY29sU3Bhbj0zPue0 oOaVsOOCkuWun+ekvuS8muOBq+W/nOeUqOOBl+OBn1JTQeaal+WPt+eQhuirluOCkueQhuino+OB meOCi+OBk+OBqOOBjOacgOe1guebruaomeOBp+OBguOCi++8jlJTQeaal+WPt+OCkueQhuino+OB meOCi+OBq+OBr++8jOacgOWkp+WFrOe0hOaVsOODu+e0oOaVsOODu+WQiOWQjOW8j+OBquOBqean mOOAheOBquaVsOWtpuOBruefpeitmOOCkuW/heimgeOBqOOBmeOCi+OBjO+8jOaWh+ezu+WtpueU n+OBq+OCguWIhuOBi+OCi+OCiOOBhuino+iqrOOBmeOCi++8juOBvuOBn++8jOWumueQhuOBruio vOaYjuOBq+OCguinpuOCjO+8jOiovOaYjuS4reOBq+eUqOOBhOOCieOCjOOCi+aVsOWtpueahOOB quirlueQhuWxlemWi+iDveWKm+OBrue/kuW+l+OCguebruaomeOBqOOBmeOCi++8jiZuYnNwOyAN CiAgICAgICAgICA8L1REPjwvVFI+DQogICAgICAgIDxUUiBiZ0NvbG9yPSNmZmZmZmY+DQogICAg ICAgICAgPFREIG5vV3JhcCB3aWR0aD0xNzAgYmdDb2xvcj0jOTlmZmNjPjxGT05UIGNvbG9yPSMw MDAwZmY+5YaF5a65PC9GT05UPiANCiAgICAgICAgICA8L1REPg0KICAgICAgICAgIDxURCB3aWR0 aD03NzAgDQogICAgICAgICAgICBjb2xTcGFuPTM+6ZuG5ZCI6KuW44Go5pW05pWw6KuW77yI5pWw 44Gu55CG6KuW77yJ44Gu5Yid5q2p44KS6Kyb576p44GX77yM44Gd44KM44KJ44KS6aeG5L2/44GX 44GfUlNB5pqX5Y+355CG6KuW44Gu5LuV57WE44G/44KS5YiG44GL44KK44KE44GZ44GP6Kej6Kqs 44GZ44KL77yOJm5ic3A7IA0KICAgICAgICAgIDwvVEQ+PC9UUj4NCiAgICAgICAgPFRSIGJnQ29s b3I9I2ZmZmZmZj4NCiAgICAgICAgICA8VEQgbm9XcmFwIHdpZHRoPTE3MCBiZ0NvbG9yPSM5OWZm Y2M+PEZPTlQgY29sb3I9IzAwMDBmZj7jg4bjgq3jgrnjg4g8L0ZPTlQ+IA0KICAgICAgICAgIDwv VEQ+DQogICAgICAgICAgPFREIHdpZHRoPTc3MCANCiAgICAgICAgICAgIGNvbFNwYW49Mz7mjojm pa3jg5vjg7zjg6Djg5rjg7zjgrjjgavjgYLjgovorJvnvqnjg47jg7zjg4jjg5fjg6rjg7Pjg4jj gpLlkIToh6rjg5fjg6rjg7Pjg4jjgqLjgqbjg4jjgZfvvIzmjIHlj4LjgZnjgovjgZPjgajvvI7k uIvoqJjjgIzjgZ3jga7ku5bjgI3jga7poIXnm67jgpLlj4Lnhafjga7jgZPjgajvvI4mbmJzcDsg DQogICAgICAgICAgPC9URD48L1RSPg0KICAgICAgICA8VFIgYmdDb2xvcj0jZmZmZmZmPg0KICAg ICAgICAgIDxURCBub1dyYXAgd2lkdGg9MTcwIGJnQ29sb3I9Izk5ZmZjYz48Rk9OVCBjb2xvcj0j MDAwMGZmPuWPguiAg+aWh+eMrjwvRk9OVD4gDQogICAgICAgICAgPC9URD4NCiAgICAgICAgICA8 VEQgd2lkdGg9NzcwIGNvbFNwYW49Mz7jgI7jga/jgZjjgoHjgabjga7mlbDoq5bjgI/jgIDjgrjj g6fjgrvjg5Xjg7tI44O744K344Or44O044Kh44O844Oe44OzIA0KICAgICAgICAgICAg6JGX44CA 44OU44Ki44K944Oz44O744Ko44OH44Ol44Kx44O844K344On44OzJm5ic3A7IDwvVEQ+PC9UUj4N CiAgICAgICAgPFRSIGJnQ29sb3I9I2ZmZmZmZj4NCiAgICAgICAgICA8VEQgbm9XcmFwIHdpZHRo PTE3MCBiZ0NvbG9yPSM5OWZmY2M+PEZPTlQgDQogICAgICAgICAgICBjb2xvcj0jMDAwMGZmPuaI kOe4vuipleS+oeaWueazlTwvRk9OVD4gPC9URD4NCiAgICAgICAgICA8VEQgd2lkdGg9NzcwIA0K ICAgICAgICAgICAgY29sU3Bhbj0zPuaXpemgg+OBruWVj+mhjOa8lOe/kuOBuOOBruWPluOCiue1 hOOBv+OCkumHjeimluOBmeOCi+OBn+OCge+8jOaOiOalreS4reOBruiqsumhjOODu+Wuv+mhjOOD u+WHuuW4reeKtuazgeOCkjYw54K55rqA54K577yM5pyA5b6M44Gu5o6I5qWt5pmC44Gr6KGM44Gq 44GG6Kmm6aiT44KSNDDngrnmuoDngrnjgafoqZXkvqHjgZfvvIzlkIjoqIgxMDDngrnmuoDngrnj ga7jgYbjgaE2MOeCueS7peS4iuOBruWtpueUn+OBq+WNmOS9jeOCkuS4juOBiOOCi++8jiZuYnNw OyANCiAgICAgICAgICA8L1REPjwvVFI+DQogICAgICAgIDxUUiBiZ0NvbG9yPSNmZmZmZmY+DQog ICAgICAgICAgPFREIG5vV3JhcCB3aWR0aD0xNzAgYmdDb2xvcj0jOTlmZmNjPjxGT05UIA0KICAg ICAgICAgICAgY29sb3I9IzAwMDBmZj7mjojmpa3jgrnjgrHjgrjjg6Xjg7zjg6vvvIjlsZXplovo qIjnlLvvvIk8L0ZPTlQ+IDwvVEQ+DQogICAgICAgICAgPFREIHdpZHRoPTc3MCBjb2xTcGFuPTM+ DQogICAgICAgICAgICA8VEFCTEUgY2xhc3M9dHh0MTIgY2VsbFNwYWNpbmc9MCBjZWxsUGFkZGlu Zz0zIHdpZHRoPSIxMDAlIiANCmJvcmRlcj0xPg0KICAgICAgICAgICAgICA8VEJPRFk+DQogICAg ICAgICAgICAgIDxUUj4NCiAgICAgICAgICAgICAgICA8VEQgY2xhc3M9ZW5hYmxlY29sb3IgYWxp Z249bWlkZGxlIHdpZHRoPSI1JSI+PEZPTlQgDQogICAgICAgICAgICAgICAgICBjb2xvcj0jMDAw MGZmPuWbnjwvRk9OVD48L1REPg0KICAgICAgICAgICAgICAgIDxURCBjbGFzcz1lbmFibGVjb2xv ciBhbGlnbj1taWRkbGUgd2lkdGg9Ijk1JSI+PEZPTlQgDQogICAgICAgICAgICAgICAgICBjb2xv cj0jMDAwMGZmPuWGheWuuTwvRk9OVD48L1REPjwvVFI+DQogICAgICAgICAgICAgIDxUUj4NCiAg ICAgICAgICAgICAgICA8VEQgY2xhc3M9ZW5hYmxlY29sb3IgYWxpZ249bWlkZGxlPjxGT05UIA0K ICAgICAgICAgICAgICAgIGNvbG9yPSMwMDAwZmY+MTwvRk9OVD48L1REPg0KICAgICAgICAgICAg ICAgIDxURD7jgqzjgqTjg4Djg7Pjgrnjg7vln7rnpI7nn6XorZjjga7lvqnnv5I8L1REPjwvVFI+ DQogICAgICAgICAgICAgIDxUUj4NCiAgICAgICAgICAgICAgICA8VEQgY2xhc3M9ZW5hYmxlY29s b3IgYWxpZ249bWlkZGxlPjxGT05UIA0KICAgICAgICAgICAgICAgIGNvbG9yPSMwMDAwZmY+Mjwv Rk9OVD48L1REPg0KICAgICAgICAgICAgICAgIDxURD7lkb3poYw8L1REPjwvVFI+DQogICAgICAg ICAgICAgIDxUUj4NCiAgICAgICAgICAgICAgICA8VEQgY2xhc3M9ZW5hYmxlY29sb3IgYWxpZ249 bWlkZGxlPjxGT05UIA0KICAgICAgICAgICAgICAgIGNvbG9yPSMwMDAwZmY+MzwvRk9OVD48L1RE Pg0KICAgICAgICAgICAgICAgIDxURD7pm4blkIg8L1REPjwvVFI+DQogICAgICAgICAgICAgIDxU Uj4NCiAgICAgICAgICAgICAgICA8VEQgY2xhc3M9ZW5hYmxlY29sb3IgYWxpZ249bWlkZGxlPjxG T05UIA0KICAgICAgICAgICAgICAgIGNvbG9yPSMwMDAwZmY+NDwvRk9OVD48L1REPg0KICAgICAg ICAgICAgICAgIDxURD7ntITmlbDjgajmnIDlpKflhazntITmlbA8L1REPjwvVFI+DQogICAgICAg ICAgICAgIDxUUj4NCiAgICAgICAgICAgICAgICA8VEQgY2xhc3M9ZW5hYmxlY29sb3IgYWxpZ249 bWlkZGxlPjxGT05UIA0KICAgICAgICAgICAgICAgIGNvbG9yPSMwMDAwZmY+NTwvRk9OVD48L1RE Pg0KICAgICAgICAgICAgICAgIDxURD7ntKDmlbDjgajntKDlm6DmlbDliIbop6M8L1REPjwvVFI+ DQogICAgICAgICAgICAgIDxUUj4NCiAgICAgICAgICAgICAgICA8VEQgY2xhc3M9ZW5hYmxlY29s b3IgYWxpZ249bWlkZGxlPjxGT05UIA0KICAgICAgICAgICAgICAgIGNvbG9yPSMwMDAwZmY+Njwv Rk9OVD48L1REPg0KICAgICAgICAgICAgICAgIDxURD7lkIjlkIzlvI88L1REPjwvVFI+DQogICAg ICAgICAgICAgIDxUUj4NCiAgICAgICAgICAgICAgICA8VEQgY2xhc3M9ZW5hYmxlY29sb3IgYWxp Z249bWlkZGxlPjxGT05UIA0KICAgICAgICAgICAgICAgIGNvbG9yPSMwMDAwZmY+NzwvRk9OVD48 L1REPg0KICAgICAgICAgICAgICAgIDxURD7lkIjlkIzmlrnnqIvlvI88L1REPjwvVFI+DQogICAg ICAgICAgICAgIDxUUj4NCiAgICAgICAgICAgICAgICA8VEQgY2xhc3M9ZW5hYmxlY29sb3IgYWxp Z249bWlkZGxlPjxGT05UIA0KICAgICAgICAgICAgICAgIGNvbG9yPSMwMDAwZmY+ODwvRk9OVD48 L1REPg0KICAgICAgICAgICAgICAgIDxURD7jgqrjgqTjg6njg7zplqLmlbA8L1REPjwvVFI+DQog ICAgICAgICAgICAgIDxUUj4NCiAgICAgICAgICAgICAgICA8VEQgY2xhc3M9ZW5hYmxlY29sb3Ig YWxpZ249bWlkZGxlPjxGT05UIA0KICAgICAgICAgICAgICAgIGNvbG9yPSMwMDAwZmY+OTwvRk9O VD48L1REPg0KICAgICAgICAgICAgICAgIDxURD7jg5Xjgqfjg6vjg57jg7zjga7lsI/lrprnkIY8 L1REPjwvVFI+DQogICAgICAgICAgICAgIDxUUj4NCiAgICAgICAgICAgICAgICA8VEQgY2xhc3M9 ZW5hYmxlY29sb3IgYWxpZ249bWlkZGxlPjxGT05UIA0KICAgICAgICAgICAgICAgICAgY29sb3I9 IzAwMDBmZj4xMDwvRk9OVD48L1REPg0KICAgICAgICAgICAgICAgIDxURD7vvLLvvLPvvKHmmpfl j7fvvJE8L1REPjwvVFI+DQogICAgICAgICAgICAgIDxUUj4NCiAgICAgICAgICAgICAgICA8VEQg Y2xhc3M9ZW5hYmxlY29sb3IgYWxpZ249bWlkZGxlPjxGT05UIA0KICAgICAgICAgICAgICAgICAg Y29sb3I9IzAwMDBmZj4xMTwvRk9OVD48L1REPg0KICAgICAgICAgICAgICAgIDxURD7vvLLvvLPv vKHmmpflj7fvvJI8L1REPjwvVFI+DQogICAgICAgICAgICAgIDxUUj4NCiAgICAgICAgICAgICAg ICA8VEQgY2xhc3M9ZW5hYmxlY29sb3IgYWxpZ249bWlkZGxlPjxGT05UIA0KICAgICAgICAgICAg ICAgICAgY29sb3I9IzAwMDBmZj4xMjwvRk9OVD48L1REPg0KICAgICAgICAgICAgICAgIDxURD7v vLLvvLPvvKHmmpflj7fvvJM8L1REPjwvVFI+DQogICAgICAgICAgICAgIDxUUj4NCiAgICAgICAg ICAgICAgICA8VEQgY2xhc3M9ZW5hYmxlY29sb3IgYWxpZ249bWlkZGxlPjxGT05UIA0KICAgICAg ICAgICAgICAgICAgY29sb3I9IzAwMDBmZj4xMzwvRk9OVD48L1REPg0KICAgICAgICAgICAgICAg IDxURD7vvLLvvLPvvKHmmpflj7fvvJQ8L1REPjwvVFI+DQogICAgICAgICAgICAgIDxUUj4NCiAg ICAgICAgICAgICAgICA8VEQgY2xhc3M9ZW5hYmxlY29sb3IgYWxpZ249bWlkZGxlPjxGT05UIA0K ICAgICAgICAgICAgICAgICAgY29sb3I9IzAwMDBmZj4xNDwvRk9OVD48L1REPg0KICAgICAgICAg ICAgICAgIDxURD7vvLLvvLPvvKHmmpflj7fvvJU8L1REPjwvVFI+DQogICAgICAgICAgICAgIDxU Uj4NCiAgICAgICAgICAgICAgICA8VEQgY2xhc3M9ZW5hYmxlY29sb3IgYWxpZ249bWlkZGxlPjxG T05UIA0KICAgICAgICAgICAgICAgICAgY29sb3I9IzAwMDBmZj4xNTwvRk9OVD48L1REPg0KICAg ICAgICAgICAgICAgIDxURD7oqabpqJM8L1REPjwvVFI+PC9UQk9EWT48L1RBQkxFPjwvVEQ+PC9U Uj4NCiAgICAgICAgPFRSIGJnQ29sb3I9I2ZmZmZmZj4NCiAgICAgICAgICA8VEQgbm9XcmFwIHdp ZHRoPTE3MCBiZ0NvbG9yPSM5OWZmY2M+PEZPTlQgDQogICAgICAgICAgICBjb2xvcj0jMDAwMGZm PuaOiOalreOBruOCreODvOODr+ODvOODiTwvRk9OVD4gPC9URD4NCiAgICAgICAgICA8VEQgd2lk dGg9NzcwIGNvbFNwYW49Mz5JVCZuYnNwOyA8L1REPjwvVFI+DQogICAgICAgIDxUUiBiZ0NvbG9y PSNmZmZmZmY+DQogICAgICAgICAgPFREIG5vV3JhcCB3aWR0aD0xNzAgYmdDb2xvcj0jOTlmZmNj PjxGT05UIA0KICAgICAgICAgICAgY29sb3I9IzAwMDBmZj7lraboirjjga7lrabjgbPjgq3jg7zj g6/jg7zjg4k8L0ZPTlQ+IDwvVEQ+DQogICAgICAgICAgPFREIHdpZHRoPTc3MCBjb2xTcGFuPTM+ Jm5ic3A7IDwvVEQ+PC9UUj4NCiAgICAgICAgPFRSIGJnQ29sb3I9I2ZmZmZmZj4NCiAgICAgICAg ICA8VEQgbm9XcmFwIHdpZHRoPTE3MCBiZ0NvbG9yPSM5OWZmY2M+PEZPTlQgDQogICAgICAgICAg ICBjb2xvcj0jMDAwMGZmPuWPl+ism+ijnOi2s++8iOWxpeS/ruWItumZkOetie+8iTwvRk9OVD4g PC9URD4NCiAgICAgICAgICA8VEQgd2lkdGg9NzcwIA0KICAgICAgICAgICAgY29sU3Bhbj0zPjIw MDflubTluqbjga/vvIznkIbns7vlrabnlJ/jgaDjgZHjgafjgarjgY/vvIzmlbDlrabjgoTmmpfl j7fnkIboq5bjgavoiIjlkbPjgpLmjIHjgaPjgZ/mlofns7vlrabnlJ/jga7lj5forJvjgoLnm67n q4vjgaHjgb7jgZfjgZ/vvI7lj5forJvliLbpmZDjga/nibnjgavjgZfjgarjgYTjga7jgafvvIzo iIjlkbPjga7jgYLjgovmlrnjga/jganjgarjgZ/jgafjgoLjganjgYbjgZ7vvI4mbmJzcDsgDQog ICAgICAgICAgPC9URD48L1RSPg0KICAgICAgICA8VFIgYmdDb2xvcj0jZmZmZmZmPg0KICAgICAg ICAgIDxURCBub1dyYXAgd2lkdGg9MTcwIGJnQ29sb3I9Izk5ZmZjYz48Rk9OVCBjb2xvcj0jMDAw MGZmPuOBneOBruS7ljwvRk9OVD4gDQogICAgICAgICAgPC9URD4NCiAgICAgICAgICA8VEQgd2lk dGg9NzcwIGNvbFNwYW49Mz4oMSkgDQogICAgICAgICAgICDmnIDliJ3jga7mjojmpa3mmYLjgavm iJDnuL7oqZXkvqHmlrnms5XnrYnjgavjgaTjgYTjgaboqbPjgZfjgY/ov7Djgbnjgovjga7jgafl v4XjgZrlh7rluK3jgZnjgovjgZPjgajvvI48QlI+KDIpIA0KICAgICAgICAgICAg5LiL6KiY44Ob 44O844Og44Oa44O844K444Gu44CMTGVjdHVyZXPjgI3jg5rjg7zjgrjjgavvvIzorJvnvqnjgavp lqLjgZnjgovmg4XloLHjgpLmj5DkvpvjgZnjgovkuojlrprjgafjgYLjgovvvI48QlI+44CA44CA 44CA44CAaHR0cDovL3d3dy5lZHUud2FzZWRhLmFjLmpwL35zYXRvcnUvPEJSPuOAgOOAgOaOiOal reOBp+S9v+OBhuism+e+qeODjuODvOODiOODl+ODquODs+ODiOOCguOBk+OBk+OBi+OCiemWsuim p++8jOWNsOWIt+OBp+OBjeOCi+OCiOOBhuOBq+OBmeOCi++8jiZuYnNwOyANCiAgICAgICAgICA8 L1REPjwvVFI+PC9UQk9EWT48L1RBQkxFPjwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+DQo8VEFC TEUgY2VsbFNwYWNpbmc9MCBjZWxsUGFkZGluZz0wIHdpZHRoPTYzMCBhbGlnbj1jZW50ZXIgYm9y ZGVyPTA+DQogIDxUQk9EWT4NCiAgPFRSPg0KICAgIDxURCBhbGlnbj1taWRkbGUgaGVpZ2h0PTIw PjxJTUcgDQogICAgICBzcmM9Imh0dHBzOi8vdGd1bGMudS1nYWt1Z2VpLmFjLmpwL1VJL2ltYWdl L2NvbW1vbi9iYXIuZ2lmO0xjU2Vzc2lvbklEPWRwdjFMQzNISjZtQ0dTN0pxempwaGhUN2ZMa1FO MiExNDY3MzU1NDQwIj48L1REPjwvVFI+DQogIDxUUj4NCiAgICA8VEQgY2xhc3M9dHh0MTAgbm9X cmFwIGFsaWduPW1pZGRsZT48Rk9OVCBjb2xvcj0jNjY2NjY2PkNvcHlyaWdodChDKSANCiAgICAg IDIwMDQtMjAwNSBOVFQgREFUQSBLWVVTSFUgQ28uLEx0ZCBBbGwgcmlnaHRzIA0KcmVzZXJ2ZWQu PC9GT05UPjwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+PEJSPjwvQk9EWT48L0hUTUw+DQo= ------=_NextPart_000_0016_01C89E42.E6A2ACB0 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: https://tgulc.u-gakugei.ac.jp/UI/image/student/syllabus2/t_edit_syllabusreference2.gif;LcSessionID=dpv1LC3HJ6mCGS7JqzjphhT7fLkQN2!1467355440 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 iIdo1YZ9GIjtc4WCWIh0OIQ6SDeBAAA7 ------=_NextPart_000_0016_01C89E42.E6A2ACB0 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: https://tgulc.u-gakugei.ac.jp/UI/image/common/bar.gif;LcSessionID=dpv1LC3HJ6mCGS7JqzjphhT7fLkQN2!1467355440 R0lGODlhQQIBAJEAAMzMzP////4BAgAAACH5BAQUAP8ALAAAAABBAgEAAAI6hBFxqJf7XDORTgZv xTL7DlqZRn5iyJ1qym5uib7w+prtfNt1jCf9rwPygsShkSZEFpXHXHPHjDpXBQA7 ------=_NextPart_000_0016_01C89E42.E6A2ACB0 Content-Type: text/css; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable Content-Location: https://tgulc.u-gakugei.ac.jp/UI/css/common/text.css .txt16 { FONT-WEIGHT: bold; FONT-SIZE: 16px } .txt12 { FONT-SIZE: 12px; LINE-HEIGHT: 16px } .txt10 { FONT-SIZE: 10px } .table1 { BORDER-RIGHT: #339966 1px; BORDER-TOP: #339966 1px; FONT-SIZE: 12px; = BORDER-LEFT: #339966 1px; WIDTH: 1px; BORDER-BOTTOM: #339966 1px; = HEIGHT: 1px } .textfield12 { FONT-SIZE: 12px; LINE-HEIGHT: 16px } .selectbox12 { FONT-SIZE: 12px; LINE-HEIGHT: 12px } .nendo_gakki { FONT-WEIGHT: bold; FONT-SIZE: 16px; COLOR: #dc143c } .textfield12right { FONT-SIZE: 12px; LINE-HEIGHT: 16px; TEXT-ALIGN: right } .hissuItem { FONT-SIZE: 12px; COLOR: #ff0000; LINE-HEIGHT: 16px } .text12info { FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #0000ff; LINE-HEIGHT: 16px } .button12 { CURSOR: pointer } .style1 { COLOR: #0000ff } .style2 { COLOR: #ffffff } ------=_NextPart_000_0016_01C89E42.E6A2ACB0 Content-Type: text/css; charset="iso-2022-jp" Content-Transfer-Encoding: 7bit Content-Location: https://tgulc.u-gakugei.ac.jp/UI/css/common/syllabus.css .important { FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #ff0000 } .disablecolor { COLOR: #ffffff; BACKGROUND-COLOR: #6699ff } .enablecolor { COLOR: #0000ff; BACKGROUND-COLOR: #99ffcc } ------=_NextPart_000_0016_01C89E42.E6A2ACB0--