com doc/ja: Improve mysqli_fetch_* functions docs: reference/mysqli/mysqli_result/fetch-array.xml reference/ mysqli/mysqli_result/fetch-assoc.xml reference/mysqli/mys qli_result/fetch-object.xml reference/mysqli/mysqli_res ult/fetch-row.xml
[email protected] (Yoshinari Takaoka) Tue, 23 Feb 2021 13:40:32 +0000
| Newsgroups | php.doc.ja |
|---|---|
| Message-ID | <[email protected]> |
--2e3b526a35bf04f88d2ebc920ba73c960e3cc7b4 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Commit: 8a0924ba9ef1ea9c2f1ac9cf72ea0e24acb03eda=0AAuthor: Yoshinari = Takaoka <[email protected]> Tue, 23 Feb 2021 22:40:32 +0900=0AParen= ts: 263d0d6afcbc75d5c83dad4ae56b3de7c888b322=0ABranches: master=0A=0ALin= k: http://git.php.net/?p=3Ddoc/ja.git;a=3Dcommitdiff;h=3D8a0924ba9ef1= ea9c2f1ac9cf72ea0e24acb03eda=0A=0ALog:=0AImprove mysqli_fetch_* functions d= ocs=0A=0A* Aligned examples. OO and procedural examples where using differe= nt=0A variable names. An example of iterator was using different style and= =0A data=0A* Improved descriptions. Some words were confusing and even wro= ng.=0A* Aligned notes. All notes are in the same place and follow similar g= rammar=0A* Removed manual error checking from examples=0A* Removed unnecess= ary LIMIT 50,5=0A* Added .similar to the example results=0A=0ACo-authored-b= y: Anna Filina <[email protected]>=0A=0ACloses GH-207=0A=0AChanged paths:= =0A M reference/mysqli/mysqli_result/fetch-array.xml=0A M reference/mys= qli/mysqli_result/fetch-assoc.xml=0A M reference/mysqli/mysqli_result/fet= ch-object.xml=0A M reference/mysqli/mysqli_result/fetch-row.xml=0A=0A --2e3b526a35bf04f88d2ebc920ba73c960e3cc7b4 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="diff_8a0924ba9ef1ea9c2f1ac9cf72ea0e24acb03eda.txt" ZGlmZiAtLWdpdCBhL3JlZmVyZW5jZS9teXNxbGkvbXlzcWxpX3Jlc3VsdC9mZXRjaC1hcnJheS54 bWwgYi9yZWZlcmVuY2UvbXlzcWxpL215c3FsaV9yZXN1bHQvZmV0Y2gtYXJyYXkueG1sCmluZGV4 IDc0MDQxYTBjNWMuLmI3YWYwZjk4NjQgMTAwNjQ0Ci0tLSBhL3JlZmVyZW5jZS9teXNxbGkvbXlz cWxpX3Jlc3VsdC9mZXRjaC1hcnJheS54bWwKKysrIGIvcmVmZXJlbmNlL215c3FsaS9teXNxbGlf cmVzdWx0L2ZldGNoLWFycmF5LnhtbApAQCAtMSw2ICsxLDYgQEAKIDw/eG1sIHZlcnNpb249IjEu MCIgZW5jb2Rpbmc9InV0Zi04Ij8+CiA8IS0tICRSZXZpc2lvbiQgLS0+Ci08IS0tIEVOLVJldmlz aW9uOiBjMTQzNGM5NWZjNjY2YzIwY2RiZDFlMWQ5YTQxODNlMGQxMWZiODhjIE1haW50YWluZXI6 IHRha2FnaSBTdGF0dXM6IHJlYWR5IC0tPgorPCEtLSBFTi1SZXZpc2lvbjogY2E1YzQ3NzQzN2Zj YjIxNjgwNDA4YmY3ZTBjYzA0MjQ4NTNlNzkwNyBNYWludGFpbmVyOiB0YWthZ2kgU3RhdHVzOiBy ZWFkeSAtLT4KIDwhLS0gQ1JFRElUUzogc2hpbW9va2EsbXVtdW11IC0tPgogPHJlZmVudHJ5IHht bDppZD0ibXlzcWxpLXJlc3VsdC5mZXRjaC1hcnJheSIgeG1sbnM9Imh0dHA6Ly9kb2Nib29rLm9y Zy9ucy9kb2Nib29rIj4KICA8cmVmbmFtZWRpdj4KQEAgLTIzLDE0ICsyMywxMyBAQAogICAgPG1l dGhvZHBhcmFtIGNob2ljZT0ib3B0Ij48dHlwZT5pbnQ8L3R5cGU+PHBhcmFtZXRlcj5yZXN1bHR0 eXBlPC9wYXJhbWV0ZXI+PGluaXRpYWxpemVyPk1ZU1FMSV9CT1RIPC9pbml0aWFsaXplcj48L21l dGhvZHBhcmFtPgogICA8L21ldGhvZHN5bm9wc2lzPgogICA8cGFyYT4KLSAgIOWPluW+l+OBl+OB n+ihjOOBq+WvvuW/nOOBmeOCi+mFjeWIl+OCkui/lOOBl+OBvuOBmeOAgiA8cGFyYW1ldGVyPnJl c3VsdDwvcGFyYW1ldGVyPgotICAg44OR44Op44Oh44O844K/44GM44GC44KJ44KP44GZ57WQ5p6c 44K744OD44OI44Gr5a++44GX44Gm6KGM44GM44Gq44GR44KM44Gw44CBJm51bGw7IOOCkui/lOOB l+OBvuOBmeOAggorICAg5Y+W5b6X44GX44Gf6KGM44Gr5a++5b+c44GZ44KL6YWN5YiX44KS6L+U 44GX44G+44GZ44CCCisgICDntZDmnpzjgrvjg4Pjg4jjgavlr77jgZfjgabooYzjgYzjgarjgZHj gozjgbDjgIEmbnVsbDsg44KS6L+U44GX44G+44GZ44CCCiAgIDwvcGFyYT4KICAgPHBhcmE+Ci0g ICA8ZnVuY3Rpb24+bXlzcWxpX2ZldGNoX2FycmF5PC9mdW5jdGlvbj4g44GvCi0gICA8ZnVuY3Rp b24+bXlzcWxpX2ZldGNoX3JvdzwvZnVuY3Rpb24+IOmWouaVsOOBruaLoeW8teeJiOOBp+OBmeOA guODh+ODvOOCv+OCkuaVsOWApOa3u+Wtl+OBrgotICAg6YWN5YiX44Gr5qC857SN44GZ44KL44GT 44Go44Gr5Yqg44GI44Gm44CBPGZ1bmN0aW9uPm15c3FsaV9mZXRjaF9hcnJheTwvZnVuY3Rpb24+ Ci0gICDplqLmlbDjga/jgIHjg5XjgqPjg7zjg6vjg4nlkI3jgpLjgq3jg7zjgajjgZnjgovpgKPm g7PphY3liJfjgavjgoLjg4fjg7zjgr/jgpLmoLzntI3jgZfjgb7jgZnjgIIKKyAgIOODh+ODvOOC v+OCkuaVsOWApOa3u+Wtl+OBrgorICAg6YWN5YiX44Gr5qC857SN44GZ44KL44GT44Go44Gr5Yqg 44GI44Gm44CB44GT44Gu6Zai5pWw44GvCisgICDntZDmnpzjgrvjg4Pjg4jjga7jg5XjgqPjg7zj g6vjg4nlkI3jgpLjgq3jg7zjgajjgZnjgovpgKPmg7PphY3liJfjgavjgoLjg4fjg7zjgr/jgpLm oLzntI3jgafjgY3jgb7jgZnjgIIKICAgPC9wYXJhPgogICAmZGF0YWJhc2UuZmllbGQtY2FzZTsK ICAgJmRhdGFiYXNlLmZldGNoLW51bGw7CkBAIC03Miw3ICs3MSw3IEBACiAgPHJlZnNlY3QxIHJv bGU9InJldHVybnZhbHVlcyI+CiAgICZyZWZ0aXRsZS5yZXR1cm52YWx1ZXM7CiAgIDxwYXJhPgot ICAg5Y+W5b6X44GX44Gf6KGM44Gr5a++5b+c44GZ44KL5paH5a2X5YiX44Gu6YWN5YiX44KS6L+U 44GX44G+44GZ44CC57WQ5p6c44K744OD44OI44Gr44KC44GG6KGM44GM44Gq44GE5aC05ZCI44Gr 44GvCisgICDlj5blvpfjgZfjgZ/ooYzjgavlr77lv5zjgZnjgovlgKTjga7phY3liJfjgpLov5Tj gZfjgb7jgZnjgILntZDmnpzjgrvjg4Pjg4jjgavjgoLjgYbooYzjgYzjgarjgYTloLTlkIjjgavj ga8KICAgICZudWxsOyDjgpLov5TjgZfjgb7jgZnjgIIKICAgPC9wYXJhPgogIDwvcmVmc2VjdDE+ CkBAIC04MCw3OSArNzksNTYgQEAKICA8cmVmc2VjdDEgcm9sZT0iZXhhbXBsZXMiPgogICAmcmVm dGl0bGUuZXhhbXBsZXM7CiAgIDxleGFtcGxlPgotICAgPHRpdGxlPiZzdHlsZS5vb3A7PC90aXRs ZT4KKyAgIDx0aXRsZT48bWV0aG9kbmFtZT5teXNxbGlfcmVzdWx0OjpmZXRjaF9hcnJheTwvbWV0 aG9kbmFtZT4g44Gu5L6LPC90aXRsZT4KKyAgIDxwYXJhPiZzdHlsZS5vb3A7PC9wYXJhPgogICAg PHByb2dyYW1saXN0aW5nIHJvbGU9InBocCI+CiA8IVtDREFUQVsKIDw/cGhwCi0kbXlzcWxpID0g bmV3IG15c3FsaSgibG9jYWxob3N0IiwgIm15X3VzZXIiLCAibXlfcGFzc3dvcmQiLCAid29ybGQi KTsKIAotLyog5o6l57aa54q25rOB44KS44OB44Kn44OD44Kv44GX44G+44GZICovCi1pZiAoJG15 c3FsaS0+Y29ubmVjdF9lcnJubykgewotICAgIHByaW50ZigiQ29ubmVjdCBmYWlsZWQ6ICVzXG4i LCAkbXlzcWxpLT5jb25uZWN0X2Vycm9yKTsKLSAgICBleGl0KCk7Ci19CitteXNxbGlfcmVwb3J0 KE1ZU1FMSV9SRVBPUlRfRVJST1IgfCBNWVNRTElfUkVQT1JUX1NUUklDVCk7CiskbXlzcWxpID0g bmV3IG15c3FsaSgibG9jYWxob3N0IiwgIm15X3VzZXIiLCAibXlfcGFzc3dvcmQiLCAid29ybGQi KTsKIAotJHF1ZXJ5ID0gIlNFTEVDVCBOYW1lLCBDb3VudHJ5Q29kZSBGUk9NIENpdHkgT1JERVIg YnkgSUQgTElNSVQgMyI7CiskcXVlcnkgPSAiU0VMRUNUIE5hbWUsIENvdW50cnlDb2RlIEZST00g Q2l0eSBPUkRFUiBCWSBJRCBMSU1JVCAzIjsKICRyZXN1bHQgPSAkbXlzcWxpLT5xdWVyeSgkcXVl cnkpOwogCiAvKiDmlbDlgKTmt7vlrZfphY3liJcgKi8KICRyb3cgPSAkcmVzdWx0LT5mZXRjaF9h cnJheShNWVNRTElfTlVNKTsKLXByaW50ZiAoIiVzICglcylcbiIsICRyb3dbMF0sICRyb3dbMV0p OworcHJpbnRmKCIlcyAoJXMpXG4iLCAkcm93WzBdLCAkcm93WzFdKTsKIAogLyog6YCj5oOz6YWN 5YiXICovCiAkcm93ID0gJHJlc3VsdC0+ZmV0Y2hfYXJyYXkoTVlTUUxJX0FTU09DKTsKLXByaW50 ZiAoIiVzICglcylcbiIsICRyb3dbIk5hbWUiXSwgJHJvd1siQ291bnRyeUNvZGUiXSk7Citwcmlu dGYoIiVzICglcylcbiIsICRyb3dbIk5hbWUiXSwgJHJvd1siQ291bnRyeUNvZGUiXSk7CiAKIC8q IOmAo+aDs+mFjeWIl+OBiuOCiOOBs+aVsOWApOa3u+Wtl+mFjeWIlyAqLwogJHJvdyA9ICRyZXN1 bHQtPmZldGNoX2FycmF5KE1ZU1FMSV9CT1RIKTsKLXByaW50ZiAoIiVzICglcylcbiIsICRyb3db MF0sICRyb3dbIkNvdW50cnlDb2RlIl0pOwotCi0vKiDntZDmnpzjgrvjg4Pjg4jjgpLplovmlL7j gZfjgb7jgZkgKi8KLSRyZXN1bHQtPmZyZWUoKTsKLQotLyog5o6l57aa44KS6ZaJ44GY44G+44GZ ICovCi0kbXlzcWxpLT5jbG9zZSgpOwotPz4KK3ByaW50ZigiJXMgKCVzKVxuIiwgJHJvd1swXSwg JHJvd1siQ291bnRyeUNvZGUiXSk7CiBdXT4KICAgIDwvcHJvZ3JhbWxpc3Rpbmc+Ci0gIDwvZXhh bXBsZT4KLSAgPGV4YW1wbGU+Ci0gICA8dGl0bGU+JnN0eWxlLnByb2NlZHVyYWw7PC90aXRsZT4K KyAgIDxwYXJhPiZzdHlsZS5wcm9jZWR1cmFsOzwvcGFyYT4KICAgIDxwcm9ncmFtbGlzdGluZyBy b2xlPSJwaHAiPgogPCFbQ0RBVEFbCiA8P3BocAotJGxpbmsgPSBteXNxbGlfY29ubmVjdCgibG9j YWxob3N0IiwgIm15X3VzZXIiLCAibXlfcGFzc3dvcmQiLCAid29ybGQiKTsKIAotLyog5o6l57aa 54q25rOB44KS44OB44Kn44OD44Kv44GX44G+44GZICovCi1pZiAobXlzcWxpX2Nvbm5lY3RfZXJy bm8oKSkgewotICAgIHByaW50ZigiQ29ubmVjdCBmYWlsZWQ6ICVzXG4iLCBteXNxbGlfY29ubmVj dF9lcnJvcigpKTsKLSAgICBleGl0KCk7Ci19CitteXNxbGlfcmVwb3J0KE1ZU1FMSV9SRVBPUlRf RVJST1IgfCBNWVNRTElfUkVQT1JUX1NUUklDVCk7CiskbXlzcWxpID0gbXlzcWxpX2Nvbm5lY3Qo ImxvY2FsaG9zdCIsICJteV91c2VyIiwgIm15X3Bhc3N3b3JkIiwgIndvcmxkIik7CiAKICRxdWVy eSA9ICJTRUxFQ1QgTmFtZSwgQ291bnRyeUNvZGUgRlJPTSBDaXR5IE9SREVSIGJ5IElEIExJTUlU IDMiOwotJHJlc3VsdCA9IG15c3FsaV9xdWVyeSgkbGluaywgJHF1ZXJ5KTsKKyRyZXN1bHQgPSBt eXNxbGlfcXVlcnkoJG15c3FsaSwgJHF1ZXJ5KTsKIAogLyog5pWw5YCk5re75a2X6YWN5YiXICov CiAkcm93ID0gbXlzcWxpX2ZldGNoX2FycmF5KCRyZXN1bHQsIE1ZU1FMSV9OVU0pOwotcHJpbnRm ICgiJXMgKCVzKVxuIiwgJHJvd1swXSwgJHJvd1sxXSk7CitwcmludGYoIiVzICglcylcbiIsICRy b3dbMF0sICRyb3dbMV0pOwogCiAvKiDpgKPmg7PphY3liJcgKi8KICRyb3cgPSBteXNxbGlfZmV0 Y2hfYXJyYXkoJHJlc3VsdCwgTVlTUUxJX0FTU09DKTsKLXByaW50ZiAoIiVzICglcylcbiIsICRy b3dbIk5hbWUiXSwgJHJvd1siQ291bnRyeUNvZGUiXSk7CitwcmludGYoIiVzICglcylcbiIsICRy b3dbIk5hbWUiXSwgJHJvd1siQ291bnRyeUNvZGUiXSk7CiAKIC8qIOmAo+aDs+mFjeWIl+OBiuOC iOOBs+aVsOWApOa3u+Wtl+mFjeWIlyAqLwogJHJvdyA9IG15c3FsaV9mZXRjaF9hcnJheSgkcmVz dWx0LCBNWVNRTElfQk9USCk7Ci1wcmludGYgKCIlcyAoJXMpXG4iLCAkcm93WzBdLCAkcm93WyJD b3VudHJ5Q29kZSJdKTsKLQotLyog57WQ5p6c44K744OD44OI44KS6ZaL5pS+44GX44G+44GZICov Ci1teXNxbGlfZnJlZV9yZXN1bHQoJHJlc3VsdCk7Ci0KLS8qIOaOpee2muOCkumWieOBmOOBvuOB mSAqLwotbXlzcWxpX2Nsb3NlKCRsaW5rKTsKLT8+CitwcmludGYoIiVzICglcylcbiIsICRyb3db MF0sICRyb3dbIkNvdW50cnlDb2RlIl0pOwogXV0+CiAgICA8L3Byb2dyYW1saXN0aW5nPgotICAg JmV4YW1wbGVzLm91dHB1dHM7CisgICAmZXhhbXBsZXMub3V0cHV0cy5zaW1pbGFyOwogICAgPHNj cmVlbj4KIDwhW0NEQVRBWwogS2FidWwgKEFGRykKZGlmZiAtLWdpdCBhL3JlZmVyZW5jZS9teXNx bGkvbXlzcWxpX3Jlc3VsdC9mZXRjaC1hc3NvYy54bWwgYi9yZWZlcmVuY2UvbXlzcWxpL215c3Fs aV9yZXN1bHQvZmV0Y2gtYXNzb2MueG1sCmluZGV4IGI0NTA5N2I4ZDguLjdiMmEyMDI0OTAgMTAw NjQ0Ci0tLSBhL3JlZmVyZW5jZS9teXNxbGkvbXlzcWxpX3Jlc3VsdC9mZXRjaC1hc3NvYy54bWwK KysrIGIvcmVmZXJlbmNlL215c3FsaS9teXNxbGlfcmVzdWx0L2ZldGNoLWFzc29jLnhtbApAQCAt MSw2ICsxLDYgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+CiA8IS0t ICRSZXZpc2lvbiQgLS0+Ci08IS0tIEVOLVJldmlzaW9uOiBjMTQzNGM5NWZjNjY2YzIwY2RiZDFl MWQ5YTQxODNlMGQxMWZiODhjIE1haW50YWluZXI6IHRha2FnaSBTdGF0dXM6IHJlYWR5IC0tPgor PCEtLSBFTi1SZXZpc2lvbjogY2E1YzQ3NzQzN2ZjYjIxNjgwNDA4YmY3ZTBjYzA0MjQ4NTNlNzkw NyBNYWludGFpbmVyOiB0YWthZ2kgU3RhdHVzOiByZWFkeSAtLT4KIDwhLS0gQ1JFRElUUzogc2hp bW9va2EsbXVtdW11IC0tPgogPHJlZmVudHJ5IHhtbDppZD0ibXlzcWxpLXJlc3VsdC5mZXRjaC1h c3NvYyIgeG1sbnM9Imh0dHA6Ly9kb2Nib29rLm9yZy9ucy9kb2Nib29rIj4KICA8cmVmbmFtZWRp dj4KQEAgLTIyLDcgKzIyLDcgQEAKICAgIDxtZXRob2RwYXJhbT48dHlwZT5teXNxbGlfcmVzdWx0 PC90eXBlPjxwYXJhbWV0ZXI+cmVzdWx0PC9wYXJhbWV0ZXI+PC9tZXRob2RwYXJhbT4KICAgPC9t ZXRob2RzeW5vcHNpcz4KICAgPHBhcmE+Ci0gICDlj5blvpfjgZfjgZ/ooYzjgavlr77lv5zjgZnj govpgKPmg7PphY3liJfjgpLov5TjgZfjgb7jgZnjgILjgoLjgZfjgoLjgYbooYzjgYzjgarjgYTl oLTlkIjjgavjga8KKyAgIOWPluW+l+OBl+OBn+ihjOOBq+WvvuW/nOOBmeOCi+mAo+aDs+mFjeWI l+OCkui/lOOBl+OBvuOBmeOAguOCguOBhuihjOOBjOOBquOBhOWgtOWQiOOBq+OBrwogICAgJm51 bGw7IOOCkui/lOOBl+OBvuOBmeOAggogICA8L3BhcmE+CiAgICZkYXRhYmFzZS5maWVsZC1jYXNl OwpAQCAtNDEsNyArNDEsNyBAQAogIDxyZWZzZWN0MSByb2xlPSJyZXR1cm52YWx1ZXMiPgogICAm cmVmdGl0bGUucmV0dXJudmFsdWVzOwogICA8cGFyYT4KLSAgIOWPluW+l+OBl+OBn+ihjOOBq+Wv vuW/nOOBmeOCi+aWh+Wtl+WIl+OBrumAo+aDs+mFjeWIl+OCkui/lOOBl+OBvuOBmeOAggorICAg 5Y+W5b6X44GX44Gf6KGM44Gr5a++5b+c44GZ44KL5YCk44Gu6YCj5oOz6YWN5YiX44KS6L+U44GX 44G+44GZ44CCCiAgICDpgKPmg7PphY3liJfjga7lkITjgq3jg7zjgYzjgIHntZDmnpzjgrvjg4Pj g4jjga7jgqvjg6njg6DjgpLooajjgZfjgb7jgZnjgIIKICAgIOe1kOaenOOCu+ODg+ODiOOBq+OC guOBhuihjOOBjOOBquOBhOWgtOWQiOOBq+OBryAmbnVsbDsg44KS6L+U44GX44G+44GZ44CCCiAg IDwvcGFyYT4KQEAgLTU3LDY5ICs1Nyw0NCBAQAogIDxyZWZzZWN0MSByb2xlPSJleGFtcGxlcyI+ CiAgICZyZWZ0aXRsZS5leGFtcGxlczsKICAgPGV4YW1wbGU+Ci0gICA8dGl0bGU+JnN0eWxlLm9v cDs8L3RpdGxlPgorICAgPHRpdGxlPjxtZXRob2RuYW1lPm15c3FsaV9yZXN1bHQ6OmZldGNoX2Fz c29jPC9tZXRob2RuYW1lPiDjga7kvos8L3RpdGxlPgorICAgPHBhcmE+JnN0eWxlLm9vcDs8L3Bh cmE+CiAgICA8cHJvZ3JhbWxpc3Rpbmcgcm9sZT0icGhwIj4KIDwhW0NEQVRBWwogPD9waHAKLSRt eXNxbGkgPSBuZXcgbXlzcWxpKCJsb2NhbGhvc3QiLCAibXlfdXNlciIsICJteV9wYXNzd29yZCIs ICJ3b3JsZCIpOwotCi0vKiDmjqXntprnirbms4HjgpLjg4Hjgqfjg4Pjgq/jgZfjgb7jgZkgKi8K LWlmICgkbXlzcWxpLT5jb25uZWN0X2Vycm5vKSB7Ci0gICAgcHJpbnRmKCJDb25uZWN0IGZhaWxl ZDogJXNcbiIsICRteXNxbGktPmNvbm5lY3RfZXJyb3IpOwotICAgIGV4aXQoKTsKLX0KIAotJHF1 ZXJ5ID0gIlNFTEVDVCBOYW1lLCBDb3VudHJ5Q29kZSBGUk9NIENpdHkgT1JERVIgYnkgSUQgREVT QyBMSU1JVCA1MCw1IjsKK215c3FsaV9yZXBvcnQoTVlTUUxJX1JFUE9SVF9FUlJPUiB8IE1ZU1FM SV9SRVBPUlRfU1RSSUNUKTsKKyRteXNxbGkgPSBuZXcgbXlzcWxpKCJsb2NhbGhvc3QiLCAibXlf dXNlciIsICJteV9wYXNzd29yZCIsICJ3b3JsZCIpOwogCi1pZiAoJHJlc3VsdCA9ICRteXNxbGkt PnF1ZXJ5KCRxdWVyeSkpIHsKKyRxdWVyeSA9ICJTRUxFQ1QgTmFtZSwgQ291bnRyeUNvZGUgRlJP TSBDaXR5IE9SREVSIEJZIElEIERFU0MiOwogCi0gICAgLyog6YCj5oOz6YWN5YiX44KS5Y+W5b6X 44GX44G+44GZICovCi0gICAgd2hpbGUgKCRyb3cgPSAkcmVzdWx0LT5mZXRjaF9hc3NvYygpKSB7 Ci0gICAgICAgIHByaW50ZiAoIiVzICglcylcbiIsICRyb3dbIk5hbWUiXSwgJHJvd1siQ291bnRy eUNvZGUiXSk7Ci0gICAgfQorJHJlc3VsdCA9ICRteXNxbGktPnF1ZXJ5KCRxdWVyeSk7CiAKLSAg ICAvKiDntZDmnpzjgrvjg4Pjg4jjgpLplovmlL7jgZfjgb7jgZkgKi8KLSAgICAkcmVzdWx0LT5m cmVlKCk7CisvKiDpgKPmg7PphY3liJfjgpLlj5blvpfjgZfjgb7jgZkgKi8KK3doaWxlICgkcm93 ID0gJHJlc3VsdC0+ZmV0Y2hfYXNzb2MoKSkgeworICAgIHByaW50ZigiJXMgKCVzKVxuIiwgJHJv d1siTmFtZSJdLCAkcm93WyJDb3VudHJ5Q29kZSJdKTsKIH0KLQotLyog5o6l57aa44KS6ZaJ44GY 44G+44GZICovCi0kbXlzcWxpLT5jbG9zZSgpOwotPz4KIF1dPgogICAgPC9wcm9ncmFtbGlzdGlu Zz4KLSAgPC9leGFtcGxlPgotICA8ZXhhbXBsZT4KLSAgIDx0aXRsZT4mc3R5bGUucHJvY2VkdXJh bDs8L3RpdGxlPgorICAgPHBhcmE+JnN0eWxlLnByb2NlZHVyYWw7PC9wYXJhPgogICAgPHByb2dy YW1saXN0aW5nIHJvbGU9InBocCI+CiA8IVtDREFUQVsKIDw/cGhwCi0kbGluayA9IG15c3FsaV9j b25uZWN0KCJsb2NhbGhvc3QiLCAibXlfdXNlciIsICJteV9wYXNzd29yZCIsICJ3b3JsZCIpOwot Ci0vKiDmjqXntprnirbms4HjgpLjg4Hjgqfjg4Pjgq/jgZfjgb7jgZkgKi8KLWlmIChteXNxbGlf Y29ubmVjdF9lcnJubygpKSB7Ci0gICAgcHJpbnRmKCJDb25uZWN0IGZhaWxlZDogJXNcbiIsIG15 c3FsaV9jb25uZWN0X2Vycm9yKCkpOwotICAgIGV4aXQoKTsKLX0KIAotJHF1ZXJ5ID0gIlNFTEVD VCBOYW1lLCBDb3VudHJ5Q29kZSBGUk9NIENpdHkgT1JERVIgYnkgSUQgREVTQyBMSU1JVCA1MCw1 IjsKK215c3FsaV9yZXBvcnQoTVlTUUxJX1JFUE9SVF9FUlJPUiB8IE1ZU1FMSV9SRVBPUlRfU1RS SUNUKTsKKyRteXNxbGkgPSBteXNxbGlfY29ubmVjdCgibG9jYWxob3N0IiwgIm15X3VzZXIiLCAi bXlfcGFzc3dvcmQiLCAid29ybGQiKTsKIAotaWYgKCRyZXN1bHQgPSBteXNxbGlfcXVlcnkoJGxp bmssICRxdWVyeSkpIHsKKyRxdWVyeSA9ICJTRUxFQ1QgTmFtZSwgQ291bnRyeUNvZGUgRlJPTSBD aXR5IE9SREVSIEJZIElEIERFU0MiOwogCi0gICAgLyog6YCj5oOz6YWN5YiX44KS5Y+W5b6X44GX 44G+44GZICovCi0gICAgd2hpbGUgKCRyb3cgPSBteXNxbGlfZmV0Y2hfYXNzb2MoJHJlc3VsdCkp IHsKLSAgICAgICAgcHJpbnRmICgiJXMgKCVzKVxuIiwgJHJvd1siTmFtZSJdLCAkcm93WyJDb3Vu dHJ5Q29kZSJdKTsKLSAgICB9CiskcmVzdWx0ID0gbXlzcWxpX3F1ZXJ5KCRteXNxbGksICRxdWVy eSk7CiAKLSAgICAvKiDntZDmnpzjgrvjg4Pjg4jjgpLplovmlL7jgZfjgb7jgZkgKi8KLSAgICBt eXNxbGlfZnJlZV9yZXN1bHQoJHJlc3VsdCk7CisvKiDpgKPmg7PphY3liJfjgpLlj5blvpfjgZfj gb7jgZkgKi8KK3doaWxlICgkcm93ID0gbXlzcWxpX2ZldGNoX2Fzc29jKCRyZXN1bHQpKSB7Cisg ICAgcHJpbnRmKCIlcyAoJXMpXG4iLCAkcm93WyJOYW1lIl0sICRyb3dbIkNvdW50cnlDb2RlIl0p OwogfQotCi0vKiDmjqXntprjgpLplonjgZjjgb7jgZkgKi8KLW15c3FsaV9jbG9zZSgkbGluayk7 Ci0/PgogXV0+CiAgICA8L3Byb2dyYW1saXN0aW5nPgotICAgJmV4YW1wbGVzLm91dHB1dHM7Cisg ICAmZXhhbXBsZXMub3V0cHV0cy5zaW1pbGFyOwogICAgPHNjcmVlbj4KIDwhW0NEQVRBWwogUHVl YmxvIChVU0EpCkBAIC0xMzEsNDIgKzEwNiw1MSBAQCBTYW50YSBDbGFyYSAoVVNBKQogICAgPC9z Y3JlZW4+CiAgIDwvZXhhbXBsZT4KICAgPGV4YW1wbGUgeG1sOmlkPSJteXNxbGktcmVzdWx0LmV4 YW1wbGUuaXRlcmF0b3IiPgotICAgPHRpdGxlPjxjbGFzc25hbWU+bXlzcWxpX3Jlc3VsdDwvY2xh c3NuYW1lPiDjgafjga4gPGNsYXNzbmFtZT5pdGVyYXRvcjwvY2xhc3NuYW1lPiDjga7kvb/nlKjm s5U8L3RpdGxlPgorICAgPHRpdGxlPjxjbGFzc25hbWU+bXlzcWxpX3Jlc3VsdDwvY2xhc3NuYW1l PiwgPGNsYXNzbmFtZT5pdGVyYXRvcjwvY2xhc3NuYW1lPiwgPG1ldGhvZG5hbWU+bXlzcWxpX3Jl c3VsdDo6ZmV0Y2hfYXNzb2M8L21ldGhvZG5hbWU+IOOBruS9v+OBhOaWueOBruavlOi8gzwvdGl0 bGU+CisgICA8cGFyYT4KKyAgICA8Y2xhc3NuYW1lPm15c3FsaV9yZXN1bHQ8L2NsYXNzbmFtZT4g 44Gv44CBJmZvcmVhY2g7IOOCkuS9v+OBo+OBpue5sOOCiui/lOOBl+WHpueQhuOCkuOBmeOCi+OB k+OBqOOBjOOBp+OBjeOBvuOBmeOAggorICAgIOe1kOaenOOCu+ODg+ODiOOBr+OAgeePvuWcqOOB ruS9jee9ruOBq+mWouOCj+OCieOBmuOAgeacgOWIneOBruihjOOBi+OCieWHpueQhuOBleOCjOOB vuOBmeOAggorICAgPC9wYXJhPgogICAgPHByb2dyYW1saXN0aW5nIHJvbGU9InBocCI+CiA8IVtD REFUQVsKIDw/cGhwCi0kYyA9IG15c3FsaV9jb25uZWN0KCcxMjcuMC4wLjEnLCd1c2VyJywgJ3Bh c3MnKTsKIAotLy8g44Kk44OG44Os44O844K/44GM44GC44KL44Go44GNIChQSFAgNS40IOOBp+OC teODneODvOODiOOBleOCjOOCi+OCiOOBhuOBq+OBquOCiuOBvuOBl+OBnykKLWZvcmVhY2ggKCAk Yy0+cXVlcnkoJ1NFTEVDVCB1c2VyLGhvc3QgRlJPTSBteXNxbC51c2VyJykgYXMgJHJvdyApIHsK LSAgICBwcmludGYoIiclcydAJyVzJ1xuIiwgJHJvd1sndXNlciddLCAkcm93Wydob3N0J10pOwor bXlzcWxpX3JlcG9ydChNWVNRTElfUkVQT1JUX0VSUk9SIHwgTVlTUUxJX1JFUE9SVF9TVFJJQ1Qp OworJG15c3FsaSA9IG5ldyBteXNxbGkoImxvY2FsaG9zdCIsICJteV91c2VyIiwgIm15X3Bhc3N3 b3JkIiwgIndvcmxkIik7CisKKyRxdWVyeSA9ICdTRUxFQ1QgTmFtZSwgQ291bnRyeUNvZGUgRlJP TSBDaXR5IE9SREVSIEJZIElEIERFU0MnOworCisvLyDjgqTjg4bjg6zjg7zjgr/jgpLkvb/jgYbl oLTlkIgKKyRyZXN1bHQgPSAkbXlzcWxpLT5xdWVyeSgkcXVlcnkpOworZm9yZWFjaCAoJHJlc3Vs dCBhcyAkcm93KSB7CisgICAgcHJpbnRmKCIlcyAoJXMpXG4iLCAkcm93WyJOYW1lIl0sICRyb3db IkNvdW50cnlDb2RlIl0pOwogfQogCiBlY2hvICJcbj09PT09PT09PT09PT09PT09PVxuIjsKIAot Ly8g44Kk44OG44Os44O844K/44Gu44Gq44GE44Go44GNCi0kcmVzdWx0ID0gJGMtPnF1ZXJ5KCdT RUxFQ1QgdXNlcixob3N0IEZST00gbXlzcWwudXNlcicpOworLy8g44Kk44OG44Os44O844K/44KS 5L2/44KP44Gq44GE5aC05ZCICiskcmVzdWx0ID0gJG15c3FsaS0+cXVlcnkoJHF1ZXJ5KTsKIHdo aWxlICgkcm93ID0gJHJlc3VsdC0+ZmV0Y2hfYXNzb2MoKSkgewotICAgIHByaW50ZigiJyVzJ0An JXMnXG4iLCAkcm93Wyd1c2VyJ10sICRyb3dbJ2hvc3QnXSk7CisgICAgcHJpbnRmKCIlcyAoJXMp XG4iLCAkcm93WyJOYW1lIl0sICRyb3dbIkNvdW50cnlDb2RlIl0pOwogfQotCi0/PgogXV0+CiAg ICA8L3Byb2dyYW1saXN0aW5nPgogICAgJmV4YW1wbGUub3V0cHV0cy5zaW1pbGFyOwogICAgPHNj cmVlbj4KIDwhW0NEQVRBWwotJ3Jvb3QnQCcxOTIuMTY4LjEuMScKLSdyb290J0AnMTI3LjAuMC4x JwotJ2R1ZGUnQCdsb2NhbGhvc3QnCi0nbGVib3dza2knQCdsb2NhbGhvc3QnCitQdWVibG8gKFVT QSkKK0FydmFkYSAoVVNBKQorQ2FwZSBDb3JhbCAoVVNBKQorR3JlZW4gQmF5IChVU0EpCitTYW50 YSBDbGFyYSAoVVNBKQogCiA9PT09PT09PT09PT09PT09PT0KK1B1ZWJsbyAoVVNBKQorQXJ2YWRh IChVU0EpCitDYXBlIENvcmFsIChVU0EpCitHcmVlbiBCYXkgKFVTQSkKK1NhbnRhIENsYXJhIChV U0EpCiAKLSdyb290J0AnMTkyLjE2OC4xLjEnCi0ncm9vdCdAJzEyNy4wLjAuMScKLSdkdWRlJ0An bG9jYWxob3N0JwotJ2xlYm93c2tpJ0AnbG9jYWxob3N0JwogXV0+CiAgICA8L3NjcmVlbj4KICAg PC9leGFtcGxlPgpkaWZmIC0tZ2l0IGEvcmVmZXJlbmNlL215c3FsaS9teXNxbGlfcmVzdWx0L2Zl dGNoLW9iamVjdC54bWwgYi9yZWZlcmVuY2UvbXlzcWxpL215c3FsaV9yZXN1bHQvZmV0Y2gtb2Jq ZWN0LnhtbAppbmRleCA1ZmVlNDljMGI4Li4yNjljY2RmZTkwIDEwMDY0NAotLS0gYS9yZWZlcmVu Y2UvbXlzcWxpL215c3FsaV9yZXN1bHQvZmV0Y2gtb2JqZWN0LnhtbAorKysgYi9yZWZlcmVuY2Uv bXlzcWxpL215c3FsaV9yZXN1bHQvZmV0Y2gtb2JqZWN0LnhtbApAQCAtMSw2ICsxLDYgQEAKIDw/ eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+CiA8IS0tICRSZXZpc2lvbiQgLS0+ Ci08IS0tIEVOLVJldmlzaW9uOiBjMTQzNGM5NWZjNjY2YzIwY2RiZDFlMWQ5YTQxODNlMGQxMWZi ODhjIE1haW50YWluZXI6IHRha2FnaSBTdGF0dXM6IHJlYWR5IC0tPgorPCEtLSBFTi1SZXZpc2lv bjogY2E1YzQ3NzQzN2ZjYjIxNjgwNDA4YmY3ZTBjYzA0MjQ4NTNlNzkwNyBNYWludGFpbmVyOiB0 YWthZ2kgU3RhdHVzOiByZWFkeSAtLT4KIDwhLS0gQ1JFRElUUzogc2hpbW9va2EsbXVtdW11IC0t PgogPHJlZmVudHJ5IHhtbDppZD0ibXlzcWxpLXJlc3VsdC5mZXRjaC1vYmplY3QiIHhtbG5zPSJo dHRwOi8vZG9jYm9vay5vcmcvbnMvZG9jYm9vayI+CiAgPHJlZm5hbWVkaXY+CkBAIC0yNSwxNCAr MjUsMTcgQEAKICAgIDxtZXRob2RwYXJhbSBjaG9pY2U9Im9wdCI+PHR5cGU+YXJyYXk8L3R5cGU+ PHBhcmFtZXRlcj5wYXJhbXM8L3BhcmFtZXRlcj48L21ldGhvZHBhcmFtPgogICA8L21ldGhvZHN5 bm9wc2lzPgogICA8cGFyYT4KLSAgIDxmdW5jdGlvbj5teXNxbGlfZmV0Y2hfb2JqZWN0PC9mdW5j dGlvbj4g44Gv44CB57WQ5p6c44K744OD44OI44Gu54++5Zyo44Gu6KGM44KSCi0gICDjgqrjg5bj grjjgqfjgq/jg4jjgafov5TjgZfjgb7jgZnjgILjgZPjga7jgqrjg5bjgrjjgqfjgq/jg4jjga/j gIHntZDmnpzjgrvjg4Pjg4jjga7jg5XjgqPjg7zjg6vjg4nlkI3jgpIKLSAgIOWxnuaAp+OBqOOB l+OBpuaMgeOBoeOBvuOBmeOAggotICA8L3BhcmE+Ci0gIDxwYXJhPgotICAgIDxmdW5jdGlvbj5t eXNxbGlfZmV0Y2hfb2JqZWN0PC9mdW5jdGlvbj4g44GM44Kq44OW44K444Kn44Kv44OI44Gu44OX 44Ot44OR44OG44Kj44KS6Kit5a6a44GZ44KL44Gu44Gv44CBCi0gICAg44Kq44OW44K444Kn44Kv 44OI44Gu44Kz44Oz44K544OI44Op44Kv44K/44KS44Kz44O844Or44GZ44KL5YmN44Gn44GC44KL 44GT44Go44Gr5rOo5oSP44GX44G+44GX44KH44GG44CCCisgICDntZDmnpzjgrvjg4Pjg4jjga7n j77lnKjjga7ooYzjgpLjgqrjg5bjgrjjgqfjgq/jg4jjgafov5TjgZfjgb7jgZnjgIIKKyAgIOOB k+OBruOCquODluOCuOOCp+OCr+ODiOOBr+OAgee1kOaenOOCu+ODg+ODiOOBruODleOCo+ODvOOD q+ODieWQjeOCkuWxnuaAp+OBqOOBl+OBpuaMgeOBoeOBvuOBmeOAggogICA8L3BhcmE+CisgIDxu b3RlIHhtbG5zPSJodHRwOi8vZG9jYm9vay5vcmcvbnMvZG9jYm9vayI+CisgICA8c2ltcGFyYT4K KyAgICAg44GT44Gu6Zai5pWw44GM44Kq44OW44K444Kn44Kv44OI44Gu44OX44Ot44OR44OG44Kj 44KS6Kit5a6a44GZ44KL44Gu44Gv44CBCisgICAgIOOCquODluOCuOOCp+OCr+ODiOOBruOCs+OD s+OCueODiOODqeOCr+OCv+OCkuOCs+ODvOODq+OBmeOCi+WJjeOBp+OBguOCi+OBk+OBqOOBq+az qOaEj+OBl+OBvuOBl+OCh+OBhuOAggorICAgPC9zaW1wYXJhPgorICA8L25vdGU+CisgICZkYXRh YmFzZS5maWVsZC1jYXNlOworICAmZGF0YWJhc2UuZmV0Y2gtbnVsbDsKICA8L3JlZnNlY3QxPgog CiAgPHJlZnNlY3QxIHJvbGU9InBhcmFtZXRlcnMiPgpAQCAtNjUsNzkgKzY4LDUyIEBACiAgPHJl ZnNlY3QxIHJvbGU9InJldHVybnZhbHVlcyI+CiAgICZyZWZ0aXRsZS5yZXR1cm52YWx1ZXM7CiAg IDxwYXJhPgotICAg5Y+W5b6X44GX44Gf6KGM44Gr5a++5b+c44GZ44KL5paH5a2X5YiX44OX44Ot 44OR44OG44Kj44KS5pyJ44GZ44KL44Kq44OW44K444Kn44Kv44OI44KS6L+U44GX44G+44GZ44CC Ci0gICDjgoLjgZfntZDmnpzjgrvjg4Pjg4jjgavjgoLjgYbooYzjgYzjgarjgYTloLTlkIjjgavj ga8gJm51bGw7IOOCkui/lOOBl+OBvuOBmeOAggorICAg5Y+W5b6X44GX44Gf6KGM44Gr5a++5b+c 44GZ44KL44Kq44OW44K444Kn44Kv44OI44KS6L+U44GX44G+44GZ44CCCisgICDntZDmnpzjgrvj g4Pjg4jjgavjgoLjgYbooYzjgYzjgarjgYTloLTlkIjjgavjga8gJm51bGw7IOOCkui/lOOBl+OB vuOBmeOAggogICA8L3BhcmE+Ci0gICZkYXRhYmFzZS5maWVsZC1jYXNlOwotICAmZGF0YWJhc2Uu ZmV0Y2gtbnVsbDsKICA8L3JlZnNlY3QxPgogCiAgPHJlZnNlY3QxIHJvbGU9ImV4YW1wbGVzIj4K ICAgJnJlZnRpdGxlLmV4YW1wbGVzOwogICA8ZXhhbXBsZT4KLSAgIDx0aXRsZT4mc3R5bGUub29w OzwvdGl0bGU+CisgICA8dGl0bGU+PG1ldGhvZG5hbWU+bXlzcWxpX3Jlc3VsdDo6ZmV0Y2hfb2Jq ZWN0PC9tZXRob2RuYW1lPiDjga7kvos8L3RpdGxlPgorICAgPHBhcmE+JnN0eWxlLm9vcDs8L3Bh cmE+CiAgICA8cHJvZ3JhbWxpc3Rpbmcgcm9sZT0icGhwIj4KIDwhW0NEQVRBWwogPD9waHAKLSRt eXNxbGkgPSBuZXcgbXlzcWxpKCJsb2NhbGhvc3QiLCAibXlfdXNlciIsICJteV9wYXNzd29yZCIs ICJ3b3JsZCIpOwotCi0vKiDmjqXntprnirbms4HjgpLjg4Hjgqfjg4Pjgq/jgZfjgb7jgZkgKi8K LWlmIChteXNxbGlfY29ubmVjdF9lcnJubygpKSB7Ci0gICAgcHJpbnRmKCJDb25uZWN0IGZhaWxl ZDogJXNcbiIsIG15c3FsaV9jb25uZWN0X2Vycm9yKCkpOwotICAgIGV4aXQoKTsKLX0KLQotJHF1 ZXJ5ID0gIlNFTEVDVCBOYW1lLCBDb3VudHJ5Q29kZSBGUk9NIENpdHkgT1JERVIgYnkgSUQgREVT QyBMSU1JVCA1MCw1IjsKIAotaWYgKCRyZXN1bHQgPSAkbXlzcWxpLT5xdWVyeSgkcXVlcnkpKSB7 CitteXNxbGlfcmVwb3J0KE1ZU1FMSV9SRVBPUlRfRVJST1IgfCBNWVNRTElfUkVQT1JUX1NUUklD VCk7CiskbXlzcWxpID0gbmV3IG15c3FsaSgibG9jYWxob3N0IiwgIm15X3VzZXIiLCAibXlfcGFz c3dvcmQiLCAid29ybGQiKTsKKyAKKyRxdWVyeSA9ICJTRUxFQ1QgTmFtZSwgQ291bnRyeUNvZGUg RlJPTSBDaXR5IE9SREVSIEJZIElEIERFU0MiOwogCi0gICAgLyog44Kq44OW44K444Kn44Kv44OI 44Gu6YWN5YiX44KS5Y+W5b6X44GX44G+44GZICovCi0gICAgd2hpbGUgKCRvYmogPSAkcmVzdWx0 LT5mZXRjaF9vYmplY3QoKSkgewotICAgICAgICBwcmludGYgKCIlcyAoJXMpXG4iLCAkb2JqLT5O YW1lLCAkb2JqLT5Db3VudHJ5Q29kZSk7Ci0gICAgfQorJHJlc3VsdCA9ICRteXNxbGktPnF1ZXJ5 KCRxdWVyeSk7CiAKLSAgICAvKiDntZDmnpzjgrvjg4Pjg4jjgpLplovmlL7jgZfjgb7jgZkgKi8K LSAgICAkcmVzdWx0LT5jbG9zZSgpOworLyog44Kq44OW44K444Kn44Kv44OI44Gu6YWN5YiX44KS 5Y+W5b6X44GX44G+44GZICovCit3aGlsZSAoJG9iaiA9ICRyZXN1bHQtPmZldGNoX29iamVjdCgp KSB7CisgICAgcHJpbnRmKCIlcyAoJXMpXG4iLCAkb2JqLT5OYW1lLCAkb2JqLT5Db3VudHJ5Q29k ZSk7CiB9Ci0KLS8qIOaOpee2muOCkumWieOBmOOBvuOBmSAqLwotJG15c3FsaS0+Y2xvc2UoKTsK LT8+CiBdXT4KICAgIDwvcHJvZ3JhbWxpc3Rpbmc+Ci0gIDwvZXhhbXBsZT4KLSAgPGV4YW1wbGU+ Ci0gICA8dGl0bGU+JnN0eWxlLnByb2NlZHVyYWw7PC90aXRsZT4KKyAgIDxwYXJhPiZzdHlsZS5w cm9jZWR1cmFsOzwvcGFyYT4KICAgIDxwcm9ncmFtbGlzdGluZyByb2xlPSJwaHAiPgogPCFbQ0RB VEFbCiA8P3BocAotJGxpbmsgPSBteXNxbGlfY29ubmVjdCgibG9jYWxob3N0IiwgIm15X3VzZXIi LCAibXlfcGFzc3dvcmQiLCAid29ybGQiKTsKIAotLyog5o6l57aa54q25rOB44KS44OB44Kn44OD 44Kv44GX44G+44GZICovCi1pZiAobXlzcWxpX2Nvbm5lY3RfZXJybm8oKSkgewotICAgIHByaW50 ZigiQ29ubmVjdCBmYWlsZWQ6ICVzXG4iLCBteXNxbGlfY29ubmVjdF9lcnJvcigpKTsKLSAgICBl eGl0KCk7Ci19Ci0KLSRxdWVyeSA9ICJTRUxFQ1QgTmFtZSwgQ291bnRyeUNvZGUgRlJPTSBDaXR5 IE9SREVSIGJ5IElEIERFU0MgTElNSVQgNTAsNSI7CitteXNxbGlfcmVwb3J0KE1ZU1FMSV9SRVBP UlRfRVJST1IgfCBNWVNRTElfUkVQT1JUX1NUUklDVCk7CiskbGluayA9IG15c3FsaV9jb25uZWN0 KCJsb2NhbGhvc3QiLCAibXlfdXNlciIsICJteV9wYXNzd29yZCIsICJ3b3JsZCIpOwogCi1pZiAo JHJlc3VsdCA9IG15c3FsaV9xdWVyeSgkbGluaywgJHF1ZXJ5KSkgeworJHF1ZXJ5ID0gIlNFTEVD VCBOYW1lLCBDb3VudHJ5Q29kZSBGUk9NIENpdHkgT1JERVIgQlkgSUQgREVTQyI7CiAKLSAgICAv KiDjgqrjg5bjgrjjgqfjgq/jg4jjga7phY3liJfjgpLlj5blvpfjgZfjgb7jgZkgKi8KLSAgICB3 aGlsZSAoJG9iaiA9IG15c3FsaV9mZXRjaF9vYmplY3QoJHJlc3VsdCkpIHsKLSAgICAgICAgcHJp bnRmICgiJXMgKCVzKVxuIiwgJG9iai0+TmFtZSwgJG9iai0+Q291bnRyeUNvZGUpOwotICAgIH0K KyRyZXN1bHQgPSBteXNxbGlfcXVlcnkoJGxpbmssICRxdWVyeSk7CiAKLSAgICAvKiDntZDmnpzj grvjg4Pjg4jjgpLplovmlL7jgZfjgb7jgZkgKi8KLSAgICBteXNxbGlfZnJlZV9yZXN1bHQoJHJl c3VsdCk7CisvKiDpgKPmg7PphY3liJfjgpLlj5blvpfjgZfjgb7jgZkgKi8KK3doaWxlICgkb2Jq ID0gbXlzcWxpX2ZldGNoX29iamVjdCgkcmVzdWx0KSkgeworICAgIHByaW50ZigiJXMgKCVzKVxu IiwgJG9iai0+TmFtZSwgJG9iai0+Q291bnRyeUNvZGUpOwogfQotCi0vKiDmjqXntprjgpLplonj gZjjgb7jgZkgKi8KLW15c3FsaV9jbG9zZSgkbGluayk7Ci0/PgogXV0+CiAgICA8L3Byb2dyYW1s aXN0aW5nPgotICAgJmV4YW1wbGVzLm91dHB1dHM7CisgICAmZXhhbXBsZXMub3V0cHV0cy5zaW1p bGFyOwogICAgPHNjcmVlbj4KIDwhW0NEQVRBWwogUHVlYmxvIChVU0EpCmRpZmYgLS1naXQgYS9y ZWZlcmVuY2UvbXlzcWxpL215c3FsaV9yZXN1bHQvZmV0Y2gtcm93LnhtbCBiL3JlZmVyZW5jZS9t eXNxbGkvbXlzcWxpX3Jlc3VsdC9mZXRjaC1yb3cueG1sCmluZGV4IDcwNzY3MTE1NzYuLjEyOGYw MGVkNDggMTAwNjQ0Ci0tLSBhL3JlZmVyZW5jZS9teXNxbGkvbXlzcWxpX3Jlc3VsdC9mZXRjaC1y b3cueG1sCisrKyBiL3JlZmVyZW5jZS9teXNxbGkvbXlzcWxpX3Jlc3VsdC9mZXRjaC1yb3cueG1s CkBAIC0xLDYgKzEsNiBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4K IDwhLS0gJFJldmlzaW9uJCAtLT4KLTwhLS0gRU4tUmV2aXNpb246IGMxNDM0Yzk1ZmM2NjZjMjBj ZGJkMWUxZDlhNDE4M2UwZDExZmI4OGMgTWFpbnRhaW5lcjogdGFrYWdpIFN0YXR1czogcmVhZHkg LS0+Cis8IS0tIEVOLVJldmlzaW9uOiBjYTVjNDc3NDM3ZmNiMjE2ODA0MDhiZjdlMGNjMDQyNDg1 M2U3OTA3IE1haW50YWluZXI6IHRha2FnaSBTdGF0dXM6IHJlYWR5IC0tPgogPCEtLSBDUkVESVRT OiBzaGltb29rYSxtdW11bXUgLS0+CiA8cmVmZW50cnkgeG1sOmlkPSJteXNxbGktcmVzdWx0LmZl dGNoLXJvdyIgeG1sbnM9Imh0dHA6Ly9kb2Nib29rLm9yZy9ucy9kb2Nib29rIj4KICA8cmVmbmFt ZWRpdj4KQEAgLTI1LDkgKzI1LDEwIEBACiAgICDntZDmnpzjgrvjg4Pjg4jjgYvjgonjg4fjg7zj gr/jgpIgMSDooYzlj5blvpfjgZfjgIHjgZ3jgozjgpLmlbDlgKTmt7vlrZfjga7phY3liJfjgacK ICAgIOi/lOOBl+OBvuOBmeOAguWQhOOCq+ODqeODoOOBryAw77yI44K844Ot77yJ44GL44KJ5aeL 44G+44KL5re75a2X44Gr5qC857SN44GV44KM44G+44GZ44CCCiAgICA8ZnVuY3Rpb24+bXlzcWxp X2ZldGNoX3JvdzwvZnVuY3Rpb24+IOmWouaVsOOCkue2muOBkeOBpuOCs+ODvOODq+OBmeOCi+OB qOOAgQotICAg57WQ5p6c44K744OD44OI44Gu5qyh44Gu6KGM44KS6L+U44GX44G+44GZ44CC44KC 44GX44KC44GG6KGM44GM44Gq44GE5aC05ZCI44Gr44GvCisgICDntZDmnpzjgrvjg4Pjg4jjga7m rKHjga7ooYzjgpLov5TjgZfjgb7jgZnjgILjgoLjgYbooYzjgYzjgarjgYTloLTlkIjjgavjga8K ICAgICZudWxsOyDjgpLov5TjgZfjgb7jgZnjgIIKICAgPC9wYXJhPgorICAmZGF0YWJhc2UuZmV0 Y2gtbnVsbDsKICA8L3JlZnNlY3QxPgogCiAgPHJlZnNlY3QxIHJvbGU9InBhcmFtZXRlcnMiPgpA QCAtNDIsNzggKzQzLDUyIEBACiAgPHJlZnNlY3QxIHJvbGU9InJldHVybnZhbHVlcyI+CiAgICZy ZWZ0aXRsZS5yZXR1cm52YWx1ZXM7CiAgIDxwYXJhPgotICAgPGZ1bmN0aW9uPm15c3FsaV9mZXRj aF9yb3c8L2Z1bmN0aW9uPiDjga/lj5blvpfjgZfjgZ/ooYzjgavlr77lv5zjgZnjgovmloflrZfl iJfjga7phY3liJfjgpIKLSAgIOi/lOOBl+OBvuOBmeOAguOCguOBl+OCguOBhuihjOOBjOOBquOB hOWgtOWQiOOBq+OBryAmbnVsbDsg44KS6L+U44GX44G+44GZ44CCCisgICA8ZnVuY3Rpb24+bXlz cWxpX2ZldGNoX3JvdzwvZnVuY3Rpb24+IOOBr+WPluW+l+OBl+OBn+ihjOOBq+WvvuW/nOOBmeOC i+WApOOBrumFjeWIl+OCkgorICAg6L+U44GX44G+44GZ44CC44KC44GG6KGM44GM44Gq44GE5aC0 5ZCI44Gr44GvICZudWxsOyDjgpLov5TjgZfjgb7jgZnjgIIKICAgPC9wYXJhPgotICAmZGF0YWJh c2UuZmV0Y2gtbnVsbDsKICA8L3JlZnNlY3QxPgogCiAgPHJlZnNlY3QxIHJvbGU9ImV4YW1wbGVz Ij4KICAgJnJlZnRpdGxlLmV4YW1wbGVzOwogICA8ZXhhbXBsZT4KLSAgIDx0aXRsZT4mc3R5bGUu b29wOzwvdGl0bGU+CisgICA8dGl0bGU+PG1ldGhvZG5hbWU+bXlzcWxpX3Jlc3VsdDo6ZmV0Y2hf cm93PC9tZXRob2RuYW1lPiDjga7kvos8L3RpdGxlPgorICAgPHBhcmE+JnN0eWxlLm9vcDs8L3Bh cmE+CiAgICA8cHJvZ3JhbWxpc3Rpbmcgcm9sZT0icGhwIj4KIDwhW0NEQVRBWwogPD9waHAKLSRt eXNxbGkgPSBuZXcgbXlzcWxpKCJsb2NhbGhvc3QiLCAibXlfdXNlciIsICJteV9wYXNzd29yZCIs ICJ3b3JsZCIpOwogCi0vKiDmjqXntprnirbms4HjgpLjg4Hjgqfjg4Pjgq/jgZfjgb7jgZkgKi8K LWlmIChteXNxbGlfY29ubmVjdF9lcnJubygpKSB7Ci0gICAgcHJpbnRmKCJDb25uZWN0IGZhaWxl ZDogJXNcbiIsIG15c3FsaV9jb25uZWN0X2Vycm9yKCkpOwotICAgIGV4aXQoKTsKLX0KLQotJHF1 ZXJ5ID0gIlNFTEVDVCBOYW1lLCBDb3VudHJ5Q29kZSBGUk9NIENpdHkgT1JERVIgYnkgSUQgREVT QyBMSU1JVCA1MCw1IjsKK215c3FsaV9yZXBvcnQoTVlTUUxJX1JFUE9SVF9FUlJPUiB8IE1ZU1FM SV9SRVBPUlRfU1RSSUNUKTsKKyRteXNxbGkgPSBuZXcgbXlzcWxpKCJsb2NhbGhvc3QiLCAibXlf dXNlciIsICJteV9wYXNzd29yZCIsICJ3b3JsZCIpOwogCi1pZiAoJHJlc3VsdCA9ICRteXNxbGkt PnF1ZXJ5KCRxdWVyeSkpIHsKKyRxdWVyeSA9ICJTRUxFQ1QgTmFtZSwgQ291bnRyeUNvZGUgRlJP TSBDaXR5IE9SREVSIEJZIElEIERFU0MiOwogCi0gICAgLyog6YWN5YiX44KS5Y+W5b6X44GX44G+ 44GZICovCi0gICAgd2hpbGUgKCRyb3cgPSAkcmVzdWx0LT5mZXRjaF9yb3coKSkgewotICAgICAg ICBwcmludGYgKCIlcyAoJXMpXG4iLCAkcm93WzBdLCAkcm93WzFdKTsKLSAgICB9CiskcmVzdWx0 ID0gJG15c3FsaS0+cXVlcnkoJHF1ZXJ5KTsKIAotICAgIC8qIOe1kOaenOOCu+ODg+ODiOOCkumW i+aUvuOBl+OBvuOBmSAqLwotICAgICRyZXN1bHQtPmNsb3NlKCk7CisvKiDjgqrjg5bjgrjjgqfj gq/jg4jjga7phY3liJfjgpLlj5blvpfjgZfjgb7jgZkgKi8KK3doaWxlICgkcm93ID0gJHJlc3Vs dC0+ZmV0Y2hfcm93KCkpIHsKKyAgICBwcmludGYoIiVzICglcylcbiIsICRyb3dbMF0sICRyb3db MV0pOwogfQotCi0vKiDmjqXntprjgpLplonjgZjjgb7jgZkgKi8KLSRteXNxbGktPmNsb3NlKCk7 Ci0/PgogXV0+CiAgICA8L3Byb2dyYW1saXN0aW5nPgotICA8L2V4YW1wbGU+Ci0gIDxleGFtcGxl PgotICAgPHRpdGxlPiZzdHlsZS5wcm9jZWR1cmFsOzwvdGl0bGU+CisgICA8cGFyYT4mc3R5bGUu cHJvY2VkdXJhbDs8L3BhcmE+CiAgICA8cHJvZ3JhbWxpc3Rpbmcgcm9sZT0icGhwIj4KIDwhW0NE QVRBWwogPD9waHAKLSRsaW5rID0gbXlzcWxpX2Nvbm5lY3QoImxvY2FsaG9zdCIsICJteV91c2Vy IiwgIm15X3Bhc3N3b3JkIiwgIndvcmxkIik7CiAKLS8qIOaOpee2mueKtuazgeOCkuODgeOCp+OD g+OCr+OBl+OBvuOBmSAqLwotaWYgKG15c3FsaV9jb25uZWN0X2Vycm5vKCkpIHsKLSAgICBwcmlu dGYoIkNvbm5lY3QgZmFpbGVkOiAlc1xuIiwgbXlzcWxpX2Nvbm5lY3RfZXJyb3IoKSk7Ci0gICAg ZXhpdCgpOwotfQotCi0kcXVlcnkgPSAiU0VMRUNUIE5hbWUsIENvdW50cnlDb2RlIEZST00gQ2l0 eSBPUkRFUiBieSBJRCBERVNDIExJTUlUIDUwLDUiOworbXlzcWxpX3JlcG9ydChNWVNRTElfUkVQ T1JUX0VSUk9SIHwgTVlTUUxJX1JFUE9SVF9TVFJJQ1QpOworJG15c3FsaSA9IG15c3FsaV9jb25u ZWN0KCJsb2NhbGhvc3QiLCAibXlfdXNlciIsICJteV9wYXNzd29yZCIsICJ3b3JsZCIpOwogCi1p ZiAoJHJlc3VsdCA9IG15c3FsaV9xdWVyeSgkbGluaywgJHF1ZXJ5KSkgeworJHF1ZXJ5ID0gIlNF TEVDVCBOYW1lLCBDb3VudHJ5Q29kZSBGUk9NIENpdHkgT1JERVIgQlkgSUQgREVTQyI7CiAKLSAg ICAvKiDphY3liJfjgpLlj5blvpfjgZfjgb7jgZkgKi8KLSAgICB3aGlsZSAoJHJvdyA9IG15c3Fs aV9mZXRjaF9yb3coJHJlc3VsdCkpIHsKLSAgICAgICAgcHJpbnRmICgiJXMgKCVzKVxuIiwgJHJv d1swXSwgJHJvd1sxXSk7Ci0gICAgfQorJHJlc3VsdCA9IG15c3FsaV9xdWVyeSgkbXlzcWxpLCAk cXVlcnkpOwogCi0gICAgLyog57WQ5p6c44K744OD44OI44KS6ZaL5pS+44GX44G+44GZICovCi0g ICAgbXlzcWxpX2ZyZWVfcmVzdWx0KCRyZXN1bHQpOworLyog6YCj5oOz6YWN5YiX44KS5Y+W5b6X 44GX44G+44GZICovCit3aGlsZSAoJHJvdyA9IG15c3FsaV9mZXRjaF9yb3coJHJlc3VsdCkpIHsK KyAgICBwcmludGYoIiVzICglcylcbiIsICRyb3dbMF0sICRyb3dbMV0pOwogfQotCi0vKiDmjqXn tprjgpLplonjgZjjgb7jgZkgKi8KLW15c3FsaV9jbG9zZSgkbGluayk7Ci0/PgogXV0+CiAgICA8 L3Byb2dyYW1saXN0aW5nPgotICAgJmV4YW1wbGVzLm91dHB1dHM7CisgICAmZXhhbXBsZXMub3V0 cHV0cy5zaW1pbGFyOwogICAgPHNjcmVlbj4KIDwhW0NEQVRBWwogUHVlYmxvIChVU0Ep --2e3b526a35bf04f88d2ebc920ba73c960e3cc7b4--