<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>10774</bug_id>
          
          <creation_ts>2006-09-07 14:10:03 -0700</creation_ts>
          <short_desc>Auto-generate the Objective-C DOM Traversal bindings</short_desc>
          <delta_ts>2006-09-07 15:00:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>54997</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-09-07 14:10:03 -0700</bug_when>
    <thetext>I&apos;ve got a patch for this already.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55001</commentid>
    <comment_count>1</comment_count>
      <attachid>10443</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-09-07 14:31:17 -0700</bug_when>
    <thetext>Created attachment 10443
patch

- Auto-generates DOMNodeIterator and DOMTreeWalker.

- Splits out DOMNodeFilter into its own file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55003</commentid>
    <comment_count>2</comment_count>
      <attachid>10443</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-09-07 14:47:06 -0700</bug_when>
    <thetext>Comment on attachment 10443
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55005</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-09-07 15:00:08 -0700</bug_when>
    <thetext>Landed in r16267.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10443</attachid>
            <date>2006-09-07 14:31:17 -0700</date>
            <delta_ts>2006-09-07 14:47:06 -0700</delta_ts>
            <desc>patch</desc>
            <filename>autoTraversal.diff</filename>
            <type>text/plain</type>
            <size>37190</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNjI2NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMDYtMDktMDcgIFNhbSBXZWluaWcgIDxzYW0ud2VpbmlnQGdtYWls
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQ
YXRjaCBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDc3NAorICAgICAgICBBdXRvLWdlbmVyYXRlIHRoZSBPYmplY3RpdmUtQyBET00gVHJhdmVyc2Fs
IGJpbmRpbmdzCisKKyAgICAgICAgLSBBdXRvLWdlbmVyYXRlcyBET01Ob2RlSXRlcmF0b3IgYW5k
IERPTVRyZWVXYWxrZXIuCisKKyAgICAgICAgLSBTcGxpdHMgb3V0IERPTU5vZGVGaWx0ZXIgaW50
byBpdHMgb3duIGZpbGUuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTS5tbToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTU5vZGVGaWx0ZXIuaDog
QWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01UcmF2ZXJzYWwuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtOgorICAgICAgICAqIGRvbS9Ob2RlRmlsdGVy
LmlkbDoKKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmlkbDoKKyAgICAgICAgKiBkb20vUmFu
Z2UuaWRsOgorICAgICAgICAqIGRvbS9UcmVlV2Fsa2VyLmlkbDoKKwogMjAwNi0wOS0wNyAgTW9y
Z2FuTCAgPG1vcmxtb3JAeWFob28uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluLCBs
YW5kZWQgYnkgQWRhbS4KSW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDE2MjYzKQorKysg
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsNiArMTI3
LDcgQEAgYWxsIDogXAogICAgIERPTU1vdXNlRXZlbnQuaCBcCiAgICAgRE9NTXV0YXRpb25FdmVu
dC5oIFwKICAgICBET01OYW1lZE5vZGVNYXAuaCBcCisgICAgRE9NTm9kZUl0ZXJhdG9yLmggXAog
ICAgIERPTU5vZGVMaXN0LmggXAogICAgIERPTU5vdGF0aW9uLmggXAogICAgIERPTU92ZXJmbG93
RXZlbnQuaCBcCkBAIC0xMzUsNiArMTM2LDcgQEAgYWxsIDogXAogICAgIERPTVN0eWxlU2hlZXQu
aCBcCiAgICAgRE9NU3R5bGVTaGVldExpc3QuaCBcCiAgICAgRE9NVGV4dC5oIFwKKyAgICBET01U
cmVlV2Fsa2VyLmggXAogICAgIERPTVVJRXZlbnQuaCBcCiAgICAgRE9NV2hlZWxFdmVudC5oCiBl
bmRpZgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJl
dmlzaW9uIDE2MjYzKQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHdvcmtpbmcgY29weSkKQEAgLTQ2OCw2ICs0NjgsMTQgQEAKIAkJODU0RkU3MzcwQTIyOTdC
RTAwNThEN0FEIC8qIFRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODU0RkU3MkQwQTIyOTdCRTAwNThEN0FEIC8qIFRyYXZlcnNhbC5oICov
OyB9OwogCQk4NTRGRTczODBBMjI5N0JFMDA1OEQ3QUQgLyogVHJlZVdhbGtlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTRGRTcyRTBBMjI5N0JF
MDA1OEQ3QUQgLyogVHJlZVdhbGtlci5jcHAgKi87IH07CiAJCTg1NEZFNzM5MEEyMjk3QkUwMDU4
RDdBRCAvKiBUcmVlV2Fsa2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NTRGRTcyRjBBMjI5N0JFMDA1OEQ3QUQgLyogVHJlZVdhbGtlci5oICovOyB9
OworCQk4NTUyNkMzNzBBQjBBMTdFMDAwMzAyRUEgLyogRE9NTm9kZUl0ZXJhdG9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTUyNkMzNTBBQjBBMTdF
MDAwMzAyRUEgLyogRE9NTm9kZUl0ZXJhdG9yLmggKi87IH07CisJCTg1NTI2QzM4MEFCMEExN0Uw
MDAzMDJFQSAvKiBET01Ob2RlSXRlcmF0b3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NTUyNkMzNjBBQjBBMTdFMDAwMzAyRUEgLyogRE9NTm9kZUl0
ZXJhdG9yLm1tICovOyB9OworCQk4NTUyNkMzRTBBQjBBNzZGMDAwMzAyRUEgLyogRE9NTm9kZUl0
ZXJhdG9yUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODU1MjZDM0QwQUIwQTc2RjAwMDMwMkVBIC8qIERPTU5vZGVJdGVyYXRvclByaXZhdGUu
aCAqLzsgfTsKKwkJODU1MjZDNzIwQUIwQUUyRjAwMDMwMkVBIC8qIERPTU5vZGVJdGVyYXRvci5o
IGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTUyNkMz
NTBBQjBBMTdFMDAwMzAyRUEgLyogRE9NTm9kZUl0ZXJhdG9yLmggKi87IH07CisJCTg1NTI2Qzcz
MEFCMEFFMkYwMDAzMDJFQSAvKiBET01Ob2RlSXRlcmF0b3JQcml2YXRlLmggaW4gQ29weUZpbGVz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NTI2QzNEMEFCMEE3NkYwMDAz
MDJFQSAvKiBET01Ob2RlSXRlcmF0b3JQcml2YXRlLmggKi87IH07CisJCTg1NTI2Q0QyMEFCMEI3
RDkwMDAzMDJFQSAvKiBET01UcmVlV2Fsa2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NTUyNkNEMDBBQjBCN0Q5MDAwMzAyRUEgLyogRE9NVHJlZVdh
bGtlci5oICovOyB9OworCQk4NTUyNkNEMzBBQjBCN0RBMDAwMzAyRUEgLyogRE9NVHJlZVdhbGtl
ci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NTI2
Q0QxMEFCMEI3RDkwMDAzMDJFQSAvKiBET01UcmVlV2Fsa2VyLm1tICovOyB9OworCQk4NTUyNkQw
NTBBQjBCOTc5MDAwMzAyRUEgLyogRE9NVHJlZVdhbGtlci5oIGluIENvcHlGaWxlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTUyNkNEMDBBQjBCN0Q5MDAwMzAyRUEgLyog
RE9NVHJlZVdhbGtlci5oICovOyB9OwogCQk4NTZDODlGQzBBOTBGMDY4MDA1QzY4N0IgLyogRE9N
Tm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU2
Qzg5RkEwQTkwRjA2ODAwNUM2ODdCIC8qIERPTU5vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NTZDODlGRDBBOTBGMDY4MDA1QzY4N0IgLyog
RE9NTm9kZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1NkM4OUZCMEE5MEYwNjgwMDVDNjg3QiAvKiBET01Ob2RlLm1tICovOyB9OwogCQk4NTZDOEFF
NDBBOTEyNjQ5MDA1QzY4N0IgLyogRE9NT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTZDOEFFMjBBOTEyNjQ5MDA1QzY4N0IgLyogRE9NT2Jq
ZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTUyNiw2ICs1MzQsNyBAQAogCQk4NTlBOUM0RTBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTE1l
dGFFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODU5QTlDNDQwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxNZXRhRWxlbWVudC5tbSAqLzsg
fTsKIAkJODU5QTlDNEYwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxTdHlsZUVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OUE5QzQ1MEFB
NUUzQkQwMEI2OTRCMiAvKiBET01IVE1MU3R5bGVFbGVtZW50LmggKi87IH07CiAJCTg1OUE5QzUw
MEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MU3R5bGVFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU5QTlDNDYwQUE1RTNCRDAwQjY5NEIy
IC8qIERPTUhUTUxTdHlsZUVsZW1lbnQubW0gKi87IH07CisJCTg1OUZBNUZCMEFCMEJGMjAwMDRG
QUVFOSAvKiBET01Ob2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTlGQTVGQTBBQjBCRjIwMDA0RkFFRTkgLyogRE9NTm9kZUZpbHRlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1QUNB
OTg2MEE5QjUyMDMwMDY3MUU5MCAvKiBET01DaGFyYWN0ZXJEYXRhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUFDQTk4NDBBOUI1MjAzMDA2NzFFOTAg
LyogRE9NQ2hhcmFjdGVyRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07
IH07CiAJCTg1QUNBOTg3MEE5QjUyMDMwMDY3MUU5MCAvKiBET01DaGFyYWN0ZXJEYXRhLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVBQ0E5ODUwQTlC
NTIwMzAwNjcxRTkwIC8qIERPTUNoYXJhY3RlckRhdGEubW0gKi87IH07CiAJCTg1QUNBOTlDMEE5
QjU3NTkwMDY3MUU5MCAvKiBET01UZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NUFDQTk5QTBBOUI1NzU5MDA2NzFFOTAgLyogRE9NVGV4dC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CkBAIC0yMDEwLDYgKzIwMTksOSBA
QAogCQkJZHN0UGF0aCA9IFZlcnNpb25zL0EvUHJpdmF0ZUhlYWRlcnM7CiAJCQlkc3RTdWJmb2xk
ZXJTcGVjID0gMTsKIAkJCWZpbGVzID0gKAorCQkJCTg1NTI2RDA1MEFCMEI5NzkwMDAzMDJFQSAv
KiBET01UcmVlV2Fsa2VyLmggaW4gQ29weUZpbGVzICovLAorCQkJCTg1NTI2QzcyMEFCMEFFMkYw
MDAzMDJFQSAvKiBET01Ob2RlSXRlcmF0b3IuaCBpbiBDb3B5RmlsZXMgKi8sCisJCQkJODU1MjZD
NzMwQUIwQUUyRjAwMDMwMkVBIC8qIERPTU5vZGVJdGVyYXRvclByaXZhdGUuaCBpbiBDb3B5Rmls
ZXMgKi8sCiAJCQkJODU3RTBCMzEwQUIwNDQ3ODAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQuaCBp
biBDb3B5RmlsZXMgKi8sCiAJCQkJODU3RTBCMzIwQUIwNDQ3ODAwMzZFNDQ3IC8qIERPTU1vdXNl
RXZlbnRQcml2YXRlLmggaW4gQ29weUZpbGVzICovLAogCQkJCTg1REYzNDVEMEFBRkMyRDQwMEU1
OUFFMyAvKiBET01NdXRhdGlvbkV2ZW50LmggaW4gQ29weUZpbGVzICovLApAQCAtMjY3MSw2ICsy
NjgzLDExIEBACiAJCTg1NEZFNzJEMEEyMjk3QkUwMDU4RDdBRCAvKiBUcmF2ZXJzYWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRyYXZlcnNhbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NTRGRTcyRTBBMjI5N0JFMDA1OEQ3QUQgLyogVHJlZVdhbGtlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHJlZVdhbGtlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1NEZFNzJGMEEyMjk3QkUwMDU4RDdBRCAv
KiBUcmVlV2Fsa2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUcmVlV2Fs
a2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1NTI2QzM1MEFCMEExN0UwMDAz
MDJFQSAvKiBET01Ob2RlSXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTU5vZGVJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NTUy
NkMzNjBBQjBBMTdFMDAwMzAyRUEgLyogRE9NTm9kZUl0ZXJhdG9yLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTU5vZGVJdGVyYXRvci5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODU1MjZDM0QwQUIwQTc2RjAwMDMwMkVBIC8qIERPTU5vZGVJ
dGVyYXRvclByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU5v
ZGVJdGVyYXRvclByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODU1MjZD
RDAwQUIwQjdEOTAwMDMwMkVBIC8qIERPTVRyZWVXYWxrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERPTVRyZWVXYWxrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODU1MjZDRDEwQUIwQjdEOTAwMDMwMkVBIC8qIERPTVRyZWVXYWxrZXIubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NVHJlZVdhbGtlci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU1NTQyNTcwQUE0OEIxRTAwQkE4OUYyIC8qIEhU
TUxUYWJsZUNhcHRpb25FbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTU1
NDI1ODBBQTQ4QjFFMDBCQTg5RjIgLyogSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBIVE1MVGFibGVDZWxsRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg1NTU0MjU5MEFBNDhCMUUwMEJBODlGMiAvKiBIVE1MVGFibGVDb2xF
bGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTFRhYmxlQ29sRWxlbWVudC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzI2LDYgKzI3NDMsNyBAQAogCQk4
NTlBOUM0NTBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTFN0eWxlRWxlbWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTFN0eWxlRWxlbWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4NTlBOUM0NjBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRN
TFN0eWxlRWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBET01IVE1MU3R5bGVFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
NTlCN0ZCOTBBOEQyODg4MDBBNUYxRUEgLyogQ29kZUdlbmVyYXRvck9iakMucG0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5zY3JpcHQucGVybDsgbmFtZSA9IENvZGVHZW5lcmF0b3JPYmpDLnBtOyBwYXRoID0g
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbTsgc291cmNlVHJlZSA9IFNPVVJD
RV9ST09UOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKKwkJODU5RkE1RkEwQUIwQkYy
MDAwNEZBRUU5IC8qIERPTU5vZGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTU5vZGVGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVB
Q0E5ODQwQTlCNTIwMzAwNjcxRTkwIC8qIERPTUNoYXJhY3RlckRhdGEuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNoYXJhY3RlckRhdGEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODVBQ0E5ODUwQTlCNTIwMzAwNjcxRTkwIC8qIERPTUNoYXJhY3RlckRh
dGEubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NQ2hhcmFj
dGVyRGF0YS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVBQ0E5OUEwQTlCNTc1
OTAwNjcxRTkwIC8qIERPTVRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERPTVRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ5MTIsNiArNDkzMCwx
OCBAQAogCQkJbmFtZSA9IENvcmU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9Owor
CQk4NTUyNkMxNTBBQjBBMTJBMDAwMzAyRUEgLyogVHJhdmVyc2FsICovID0geworCQkJaXNhID0g
UEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk4NTUyNkMzRDBBQjBBNzZGMDAwMzAyRUEg
LyogRE9NTm9kZUl0ZXJhdG9yUHJpdmF0ZS5oICovLAorCQkJCTg1NTI2QzM1MEFCMEExN0UwMDAz
MDJFQSAvKiBET01Ob2RlSXRlcmF0b3IuaCAqLywKKwkJCQk4NTUyNkMzNjBBQjBBMTdFMDAwMzAy
RUEgLyogRE9NTm9kZUl0ZXJhdG9yLm1tICovLAorCQkJCTg1NTI2Q0QwMEFCMEI3RDkwMDAzMDJF
QSAvKiBET01UcmVlV2Fsa2VyLmggKi8sCisJCQkJODU1MjZDRDEwQUIwQjdEOTAwMDMwMkVBIC8q
IERPTVRyZWVXYWxrZXIubW0gKi8sCisJCQkpOworCQkJbmFtZSA9IFRyYXZlcnNhbDsKKwkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTg1OEMzOTUxMEFBOTAyNEMwMEIxODdBNCAv
KiBDU1MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNTAy
Miw2ICs1MDUyLDE0IEBACiAJCQluYW1lID0gSFRNTDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CiAJCX07CisJCTg1OUZBNUYyMEFCMEJFRTIwMDRGQUVFOSAvKiBUcmF2ZXJzYWwgKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTg1OUZBNUZBMEFCMEJG
MjAwMDRGQUVFOSAvKiBET01Ob2RlRmlsdGVyLmggKi8sCisJCQkpOworCQkJbmFtZSA9IFRyYXZl
cnNhbDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTg1QUZBN0FCMEFBRjNC
QjAwMEU4NDMwNSAvKiBFdmVudHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKApAQCAtNTA1Nyw2ICs1MDk1LDcgQEAKIAkJCQk4NUFGQTdBQjBBQUYzQkIwMDBFODQz
MDUgLyogRXZlbnRzICovLAogCQkJCTg1QzU2RDAzMEFBOEJBQTcwMEQ5NTc1NSAvKiBIVE1MICov
LAogCQkJCTg1MDY1NzA0MEFBQjQ3NkMwMDJEMTVDMCAvKiBTdHlsZVNoZWV0cyAqLywKKwkJCQk4
NTUyNkMxNTBBQjBBMTJBMDAwMzAyRUEgLyogVHJhdmVyc2FsICovLAogCQkJKTsKIAkJCW5hbWUg
PSAiRGVyaXZlZCBTb3VyY2VzIjsKIAkJCXBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJDb3JlOwpA
QCAtNjIwOCw2ICs2MjQ3LDcgQEAKIAkJCQk4NThDMzk1MTBBQTkwMjRDMDBCMTg3QTQgLyogQ1NT
ICovLAogCQkJCTg1QzdGNDQzMEFBRjc2ODYwMDQwMTRERCAvKiBFdmVudHMgKi8sCiAJCQkJODU5
OTJGQzIwQUE1REQ0NjAwQUMwNzg1IC8qIEhUTUwgKi8sCisJCQkJODU5RkE1RjIwQUIwQkVFMjAw
NEZBRUU5IC8qIFRyYXZlcnNhbCAqLywKIAkJCQk4NTlCN0ZCOTBBOEQyODg4MDBBNUYxRUEgLyog
Q29kZUdlbmVyYXRvck9iakMucG0gKi8sCiAJCQkJMUNEMEI2MjAwQUFCREI1MDAwRDBBM0ZGIC8q
IFB1YmxpY0RPTUludGVyZmFjZXMuaCAqLywKIAkJCQlCQzFBMzc5NzA5N0M3MTVGMDAxOUYzRDgg
LyogRE9NLmggKi8sCkBAIC03ODAyLDYgKzc4NDIsMTAgQEAKIAkJCQk4NURGMzQ0MDBBQUZDMEVE
MDBFNTlBRTMgLyogRE9NS2V5Ym9hcmRFdmVudFByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg1N0UwQjI1MEFCMDQzNDYwMDM2RTQ0NyAvKiBET01Nb3VzZUV2ZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NTdFMEIyQzBBQjA0M0ZDMDAzNkU0NDcgLyogRE9NTW91c2VFdmVudFByaXZhdGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTg1NTI2QzM3MEFCMEExN0UwMDAzMDJFQSAvKiBET01Ob2Rl
SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTg1NTI2QzNFMEFCMEE3NkYwMDAzMDJFQSAv
KiBET01Ob2RlSXRlcmF0b3JQcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4NTUyNkNEMjBB
QjBCN0Q5MDAwMzAyRUEgLyogRE9NVHJlZVdhbGtlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJODU5
RkE1RkIwQUIwQkYyMDAwNEZBRUU5IC8qIERPTU5vZGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpA
QCAtODgxMCw2ICs4ODU0LDggQEAKIAkJCQk4NUM3RjVFODBBQUZCQUZCMDA0MDE0REQgLyogRE9N
V2hlZWxFdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1RkYzMTVCMEFBRkJGQ0IwMDM3NEYz
OCAvKiBET01LZXlib2FyZEV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODU3RTBCMjYwQUIw
NDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQk4NTUy
NkMzODBBQjBBMTdFMDAwMzAyRUEgLyogRE9NTm9kZUl0ZXJhdG9yLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJODU1MjZDRDMwQUIwQjdEQTAwMDMwMkVBIC8qIERPTVRyZWVXYWxrZXIubW0gaW4gU291
cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQkocmV2aXNpb24gMTYyNjMpCisrKyBXZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAxLDcgKzExMDEs
NyBAQCBzdGF0aWMgQ2xhc3MgZWxlbWVudENsYXNzKGNvbnN0IEF0b21pY1N0CiAvLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gRE9NTm9kZUl0ZXJhdG9yCiAKLUBpbXBsZW1l
bnRhdGlvbiBET01Ob2RlSXRlcmF0b3IKK0BpbXBsZW1lbnRhdGlvbiBET01Ob2RlSXRlcmF0b3Io
V2ViQ29yZUludGVybmFsKQogCiAtIChpZClfaW5pdFdpdGhOb2RlSXRlcmF0b3I6KE5vZGVJdGVy
YXRvciAqKWltcGwgZmlsdGVyOihpZCA8RE9NTm9kZUZpbHRlcj4pZmlsdGVyCiB7CkBAIC0xMTIw
LDc1ICsxMTIwLDYgQEAgc3RhdGljIENsYXNzIGVsZW1lbnRDbGFzcyhjb25zdCBBdG9taWNTdAog
ICAgIHJldHVybiBET01fY2FzdDxOb2RlSXRlcmF0b3IgKj4oX2ludGVybmFsKTsKIH0KIAotLSAo
dm9pZClkZWFsbG9jCi17Ci0gICAgW21fZmlsdGVyIHJlbGVhc2VdOwotICAgIGlmIChfaW50ZXJu
YWwpIHsKLSAgICAgICAgW3NlbGYgZGV0YWNoXTsKLSAgICAgICAgRE9NX2Nhc3Q8Tm9kZUl0ZXJh
dG9yICo+KF9pbnRlcm5hbCktPmRlcmVmKCk7Ci0gICAgfQotICAgIFtzdXBlciBkZWFsbG9jXTsK
LX0KLQotLSAodm9pZClmaW5hbGl6ZQotewotICAgIGlmIChfaW50ZXJuYWwpIHsKLSAgICAgICAg
W3NlbGYgZGV0YWNoXTsKLSAgICAgICAgRE9NX2Nhc3Q8Tm9kZUl0ZXJhdG9yICo+KF9pbnRlcm5h
bCktPmRlcmVmKCk7Ci0gICAgfQotICAgIFtzdXBlciBmaW5hbGl6ZV07Ci19Ci0KLS0gKERPTU5v
ZGUgKilyb290Ci17Ci0gICAgcmV0dXJuIFtET01Ob2RlIF9ub2RlV2l0aDpbc2VsZiBfbm9kZUl0
ZXJhdG9yXS0+cm9vdCgpXTsKLX0KLQotLSAodW5zaWduZWQpd2hhdFRvU2hvdwotewotICAgIHJl
dHVybiBbc2VsZiBfbm9kZUl0ZXJhdG9yXS0+d2hhdFRvU2hvdygpOwotfQotCi0tIChpZCA8RE9N
Tm9kZUZpbHRlcj4pZmlsdGVyCi17Ci0gICAgaWYgKG1fZmlsdGVyKQotICAgICAgICAvLyBUaGlz
IG5vZGUgaXRlcmF0b3Igd2FzIGNyZWF0ZWQgZnJvbSB0aGUgb2JqYyBzaWRlCi0gICAgICAgIHJl
dHVybiBbW21fZmlsdGVyIHJldGFpbl0gYXV0b3JlbGVhc2VdOwotCi0gICAgLy8gVGhpcyBub2Rl
IGl0ZXJhdG9yIHdhcyBjcmVhdGVkIGZyb20gdGhlIGMrKyBzaWRlCi0gICAgcmV0dXJuIFtET01O
b2RlRmlsdGVyIF9ub2RlRmlsdGVyV2l0aDpbc2VsZiBfbm9kZUl0ZXJhdG9yXS0+ZmlsdGVyKCld
OwotfQotCi0tIChCT09MKWV4cGFuZEVudGl0eVJlZmVyZW5jZXMKLXsKLSAgICByZXR1cm4gW3Nl
bGYgX25vZGVJdGVyYXRvcl0tPmV4cGFuZEVudGl0eVJlZmVyZW5jZXMoKTsKLX0KLQotLSAoRE9N
Tm9kZSAqKW5leHROb2RlCi17Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgRE9NTm9k
ZSAqcmVzdWx0ID0gW0RPTU5vZGUgX25vZGVXaXRoOltzZWxmIF9ub2RlSXRlcmF0b3JdLT5uZXh0
Tm9kZShlYyldOwotICAgIHJhaXNlT25ET01FcnJvcihlYyk7Ci0gICAgcmV0dXJuIHJlc3VsdDsK
LX0KLQotLSAoRE9NTm9kZSAqKXByZXZpb3VzTm9kZQotewotICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwotICAgIERPTU5vZGUgKnJlc3VsdCA9IFtET01Ob2RlIF9ub2RlV2l0aDpbc2VsZiBfbm9k
ZUl0ZXJhdG9yXS0+cHJldmlvdXNOb2RlKGVjKV07Ci0gICAgcmFpc2VPbkRPTUVycm9yKGVjKTsK
LSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0tICh2b2lkKWRldGFjaAotewotICAgIFtzZWxmIF9u
b2RlSXRlcmF0b3JdLT5kZXRhY2goKTsKLX0KLQotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gRE9N
Tm9kZUl0ZXJhdG9yKFdlYkNvcmVJbnRlcm5hbCkKLQogKyAoRE9NTm9kZUl0ZXJhdG9yICopX25v
ZGVJdGVyYXRvcldpdGg6KE5vZGVJdGVyYXRvciAqKWltcGwgZmlsdGVyOihpZCA8RE9NTm9kZUZp
bHRlcj4pZmlsdGVyCiB7CiAgICAgaWYgKCFpbXBsKQpAQCAtMTIwOCw3ICsxMTM5LDcgQEAgc3Rh
dGljIENsYXNzIGVsZW1lbnRDbGFzcyhjb25zdCBBdG9taWNTdAogLy8tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIC8vIERPTVRyZWVXYWxrZXIKIAotQGltcGxlbWVudGF0aW9uIERP
TVRyZWVXYWxrZXIKK0BpbXBsZW1lbnRhdGlvbiBET01UcmVlV2Fsa2VyIChXZWJDb3JlSW50ZXJu
YWwpCiAKIC0gKGlkKV9pbml0V2l0aFRyZWVXYWxrZXI6KFRyZWVXYWxrZXIgKilpbXBsIGZpbHRl
cjooaWQgPERPTU5vZGVGaWx0ZXI+KWZpbHRlcgogewpAQCAtMTIyNywxMDAgKzExNTgsNiBAQCBz
dGF0aWMgQ2xhc3MgZWxlbWVudENsYXNzKGNvbnN0IEF0b21pY1N0CiAgICAgcmV0dXJuIERPTV9j
YXN0PFRyZWVXYWxrZXIgKj4oX2ludGVybmFsKTsKIH0KIAotLSAodm9pZClkZWFsbG9jCi17Ci0g
ICAgaWYgKG1fZmlsdGVyKQotICAgICAgICBbbV9maWx0ZXIgcmVsZWFzZV07Ci0gICAgaWYgKF9p
bnRlcm5hbCkgewotICAgICAgICBET01fY2FzdDxUcmVlV2Fsa2VyICo+KF9pbnRlcm5hbCktPmRl
cmVmKCk7Ci0gICAgfQotICAgIFtzdXBlciBkZWFsbG9jXTsKLX0KLQotLSAodm9pZClmaW5hbGl6
ZQotewotICAgIGlmIChfaW50ZXJuYWwpIHsKLSAgICAgICAgRE9NX2Nhc3Q8VHJlZVdhbGtlciAq
PihfaW50ZXJuYWwpLT5kZXJlZigpOwotICAgIH0KLSAgICBbc3VwZXIgZmluYWxpemVdOwotfQot
Ci0tIChET01Ob2RlICopcm9vdAotewotICAgIHJldHVybiBbRE9NTm9kZSBfbm9kZVdpdGg6W3Nl
bGYgX3RyZWVXYWxrZXJdLT5yb290KCldOwotfQotCi0tICh1bnNpZ25lZCl3aGF0VG9TaG93Ci17
Ci0gICAgcmV0dXJuIFtzZWxmIF90cmVlV2Fsa2VyXS0+d2hhdFRvU2hvdygpOwotfQotCi0tIChp
ZCA8RE9NTm9kZUZpbHRlcj4pZmlsdGVyCi17Ci0gICAgaWYgKG1fZmlsdGVyKQotICAgICAgICAv
LyBUaGlzIHRyZWUgd2Fsa2VyIHdhcyBjcmVhdGVkIGZyb20gdGhlIG9iamMgc2lkZQotICAgICAg
ICByZXR1cm4gW1ttX2ZpbHRlciByZXRhaW5dIGF1dG9yZWxlYXNlXTsKLQotICAgIC8vIFRoaXMg
dHJlZSB3YWxrZXIgd2FzIGNyZWF0ZWQgZnJvbSB0aGUgYysrIHNpZGUKLSAgICByZXR1cm4gW0RP
TU5vZGVGaWx0ZXIgX25vZGVGaWx0ZXJXaXRoOltzZWxmIF90cmVlV2Fsa2VyXS0+ZmlsdGVyKCld
OwotfQotCi0tIChCT09MKWV4cGFuZEVudGl0eVJlZmVyZW5jZXMKLXsKLSAgICByZXR1cm4gW3Nl
bGYgX3RyZWVXYWxrZXJdLT5leHBhbmRFbnRpdHlSZWZlcmVuY2VzKCk7Ci19Ci0KLS0gKERPTU5v
ZGUgKiljdXJyZW50Tm9kZQotewotICAgIHJldHVybiBbRE9NTm9kZSBfbm9kZVdpdGg6W3NlbGYg
X3RyZWVXYWxrZXJdLT5jdXJyZW50Tm9kZSgpXTsKLX0KLQotLSAodm9pZClzZXRDdXJyZW50Tm9k
ZTooRE9NTm9kZSAqKWN1cnJlbnROb2RlCi17Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0g
ICAgW3NlbGYgX3RyZWVXYWxrZXJdLT5zZXRDdXJyZW50Tm9kZShbY3VycmVudE5vZGUgX25vZGVd
LCBlYyk7Ci0gICAgcmFpc2VPbkRPTUVycm9yKGVjKTsKLX0KLQotLSAoRE9NTm9kZSAqKXBhcmVu
dE5vZGUKLXsKLSAgICByZXR1cm4gW0RPTU5vZGUgX25vZGVXaXRoOltzZWxmIF90cmVlV2Fsa2Vy
XS0+cGFyZW50Tm9kZSgpXTsKLX0KLQotLSAoRE9NTm9kZSAqKWZpcnN0Q2hpbGQKLXsKLSAgICBy
ZXR1cm4gW0RPTU5vZGUgX25vZGVXaXRoOltzZWxmIF90cmVlV2Fsa2VyXS0+Zmlyc3RDaGlsZCgp
XTsKLX0KLQotLSAoRE9NTm9kZSAqKWxhc3RDaGlsZAotewotICAgIHJldHVybiBbRE9NTm9kZSBf
bm9kZVdpdGg6W3NlbGYgX3RyZWVXYWxrZXJdLT5sYXN0Q2hpbGQoKV07Ci19Ci0KLS0gKERPTU5v
ZGUgKilwcmV2aW91c1NpYmxpbmcKLXsKLSAgICByZXR1cm4gW0RPTU5vZGUgX25vZGVXaXRoOltz
ZWxmIF90cmVlV2Fsa2VyXS0+cHJldmlvdXNTaWJsaW5nKCldOwotfQotCi0tIChET01Ob2RlICop
bmV4dFNpYmxpbmcKLXsKLSAgICByZXR1cm4gW0RPTU5vZGUgX25vZGVXaXRoOltzZWxmIF90cmVl
V2Fsa2VyXS0+bmV4dFNpYmxpbmcoKV07Ci19Ci0KLS0gKERPTU5vZGUgKilwcmV2aW91c05vZGUK
LXsKLSAgICByZXR1cm4gW0RPTU5vZGUgX25vZGVXaXRoOltzZWxmIF90cmVlV2Fsa2VyXS0+cHJl
dmlvdXNOb2RlKCldOwotfQotCi0tIChET01Ob2RlICopbmV4dE5vZGUKLXsKLSAgICByZXR1cm4g
W0RPTU5vZGUgX25vZGVXaXRoOltzZWxmIF90cmVlV2Fsa2VyXS0+bmV4dE5vZGUoKV07Ci19Ci0K
LUBlbmQKLQotQGltcGxlbWVudGF0aW9uIERPTVRyZWVXYWxrZXIgKFdlYkNvcmVJbnRlcm5hbCkK
LQogKyAoRE9NVHJlZVdhbGtlciAqKV90cmVlV2Fsa2VyV2l0aDooVHJlZVdhbGtlciAqKWltcGwg
ZmlsdGVyOihpZCA8RE9NTm9kZUZpbHRlcj4pZmlsdGVyCiB7CiAgICAgaWYgKCFpbXBsKQpJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTU5vZGVGaWx0ZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NTm9kZUZpbHRlci5oCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTU5vZGVGaWx0ZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBBcHBsZSBDb21w
dXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBT
YW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworQGNsYXNzIERPTU5v
ZGU7CisKK2VudW0geworICAgIC8vIENvbnN0YW50cyByZXR1cm5lZCBieSBhY2NlcHROb2RlCisg
ICAgRE9NX0ZJTFRFUl9BQ0NFUFQgICAgICAgICAgICAgICAgICA9IDEsCisgICAgRE9NX0ZJTFRF
Ul9SRUpFQ1QgICAgICAgICAgICAgICAgICA9IDIsCisgICAgRE9NX0ZJTFRFUl9TS0lQICAgICAg
ICAgICAgICAgICAgICA9IDMKK307CisKK2VudW0geworICAgIC8vIENvbnN0YW50cyBmb3Igd2hh
dFRvU2hvdworICAgIERPTV9TSE9XX0FMTCAgICAgICAgICAgICAgICAgICAgICAgPSAweEZGRkZG
RkZGLAorICAgIERPTV9TSE9XX0VMRU1FTlQgICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDAx
LAorICAgIERPTV9TSE9XX0FUVFJJQlVURSAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDAyLAor
ICAgIERPTV9TSE9XX1RFWFQgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDA0LAorICAg
IERPTV9TSE9XX0NEQVRBX1NFQ1RJT04gICAgICAgICAgICAgPSAweDAwMDAwMDA4LAorICAgIERP
TV9TSE9XX0VOVElUWV9SRUZFUkVOQ0UgICAgICAgICAgPSAweDAwMDAwMDEwLAorICAgIERPTV9T
SE9XX0VOVElUWSAgICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDIwLAorICAgIERPTV9TSE9X
X1BST0NFU1NJTkdfSU5TVFJVQ1RJT04gICAgPSAweDAwMDAwMDQwLAorICAgIERPTV9TSE9XX0NP
TU1FTlQgICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDgwLAorICAgIERPTV9TSE9XX0RPQ1VN
RU5UICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMTAwLAorICAgIERPTV9TSE9XX0RPQ1VNRU5U
X1RZUEUgICAgICAgICAgICAgPSAweDAwMDAwMjAwLAorICAgIERPTV9TSE9XX0RPQ1VNRU5UX0ZS
QUdNRU5UICAgICAgICAgPSAweDAwMDAwNDAwLAorICAgIERPTV9TSE9XX05PVEFUSU9OICAgICAg
ICAgICAgICAgICAgPSAweDAwMDAwODAwCit9OworCitAcHJvdG9jb2wgRE9NTm9kZUZpbHRlciA8
TlNPYmplY3Q+CistIChzaG9ydClhY2NlcHROb2RlOihET01Ob2RlICopbjsKK0BlbmQKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01UcmF2ZXJzYWwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NVHJhdmVyc2FsLmgJKHJldmlzaW9uIDE2MjYzKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTVRyYXZlcnNhbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNCBBcHBsZSBDb21wdXRlciwgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBB
cHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKQEAgLTI4LDY3ICsyOCw5IEBACiAjaW1wb3J0IDxXZWJDb3JlL0RPTURvY3VtZW50Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0RPTU9iamVjdC5oPgogCi1AY2xhc3MgRE9NTm9kZUZpbHRlcjsK
LQotZW51bSB7Ci0gICAgLy8gQ29uc3RhbnRzIHJldHVybmVkIGJ5IGFjY2VwdE5vZGUKLSAgICBE
T01fRklMVEVSX0FDQ0VQVCAgICAgICAgICAgICAgICAgID0gMSwKLSAgICBET01fRklMVEVSX1JF
SkVDVCAgICAgICAgICAgICAgICAgID0gMiwKLSAgICBET01fRklMVEVSX1NLSVAgICAgICAgICAg
ICAgICAgICAgID0gMwotfTsKLQotZW51bSB7Ci0gICAgLy8gQ29uc3RhbnRzIGZvciB3aGF0VG9T
aG93Ci0gICAgRE9NX1NIT1dfQUxMICAgICAgICAgICAgICAgICAgICAgICA9IDB4RkZGRkZGRkYs
Ci0gICAgRE9NX1NIT1dfRUxFTUVOVCAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDEsCi0g
ICAgRE9NX1NIT1dfQVRUUklCVVRFICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDIsCi0gICAg
RE9NX1NIT1dfVEVYVCAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDQsCi0gICAgRE9N
X1NIT1dfQ0RBVEFfU0VDVElPTiAgICAgICAgICAgICA9IDB4MDAwMDAwMDgsCi0gICAgRE9NX1NI
T1dfRU5USVRZX1JFRkVSRU5DRSAgICAgICAgICA9IDB4MDAwMDAwMTAsCi0gICAgRE9NX1NIT1df
RU5USVRZICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMjAsCi0gICAgRE9NX1NIT1dfUFJP
Q0VTU0lOR19JTlNUUlVDVElPTiAgICA9IDB4MDAwMDAwNDAsCi0gICAgRE9NX1NIT1dfQ09NTUVO
VCAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwODAsCi0gICAgRE9NX1NIT1dfRE9DVU1FTlQg
ICAgICAgICAgICAgICAgICA9IDB4MDAwMDAxMDAsCi0gICAgRE9NX1NIT1dfRE9DVU1FTlRfVFlQ
RSAgICAgICAgICAgICA9IDB4MDAwMDAyMDAsCi0gICAgRE9NX1NIT1dfRE9DVU1FTlRfRlJBR01F
TlQgICAgICAgICA9IDB4MDAwMDA0MDAsCi0gICAgRE9NX1NIT1dfTk9UQVRJT04gICAgICAgICAg
ICAgICAgICA9IDB4MDAwMDA4MDAKLX07Ci0KLUBwcm90b2NvbCBET01Ob2RlRmlsdGVyIDxOU09i
amVjdD4KLS0gKHNob3J0KWFjY2VwdE5vZGU6KERPTU5vZGUgKiluOwotQGVuZAotCi1AaW50ZXJm
YWNlIERPTU5vZGVJdGVyYXRvciA6IERPTU9iamVjdAotewotICAgIGlkIDxET01Ob2RlRmlsdGVy
PiBtX2ZpbHRlcjsKLX0KLS0gKERPTU5vZGUgKilyb290OwotLSAodW5zaWduZWQpd2hhdFRvU2hv
dzsKLS0gKGlkIDxET01Ob2RlRmlsdGVyPilmaWx0ZXI7Ci0tIChCT09MKWV4cGFuZEVudGl0eVJl
ZmVyZW5jZXM7Ci0tIChET01Ob2RlICopbmV4dE5vZGU7Ci0tIChET01Ob2RlICopcHJldmlvdXNO
b2RlOwotLSAodm9pZClkZXRhY2g7Ci1AZW5kCi0KLUBpbnRlcmZhY2UgRE9NVHJlZVdhbGtlciA6
IERPTU9iamVjdAotewotICAgIGlkIDxET01Ob2RlRmlsdGVyPiBtX2ZpbHRlcjsKLX0KLS0gKERP
TU5vZGUgKilyb290OwotLSAodW5zaWduZWQpd2hhdFRvU2hvdzsKLS0gKGlkIDxET01Ob2RlRmls
dGVyPilmaWx0ZXI7Ci0tIChCT09MKWV4cGFuZEVudGl0eVJlZmVyZW5jZXM7Ci0tIChET01Ob2Rl
ICopY3VycmVudE5vZGU7Ci0tICh2b2lkKXNldEN1cnJlbnROb2RlOihET01Ob2RlICopY3VycmVu
dE5vZGU7Ci0tIChET01Ob2RlICopcGFyZW50Tm9kZTsKLS0gKERPTU5vZGUgKilmaXJzdENoaWxk
OwotLSAoRE9NTm9kZSAqKWxhc3RDaGlsZDsKLS0gKERPTU5vZGUgKilwcmV2aW91c1NpYmxpbmc7
Ci0tIChET01Ob2RlICopbmV4dFNpYmxpbmc7Ci0tIChET01Ob2RlICopcHJldmlvdXNOb2RlOwot
LSAoRE9NTm9kZSAqKW5leHROb2RlOwotQGVuZAorI2ltcG9ydCA8V2ViQ29yZS9ET01Ob2RlRmls
dGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RPTU5vZGVJdGVyYXRvci5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9ET01UcmVlV2Fsa2VyLmg+CiAKIEBpbnRlcmZhY2UgRE9NRG9jdW1lbnQgKERPTURvY3Vt
ZW50VHJhdmVyc2FsKQogLSAoRE9NTm9kZUl0ZXJhdG9yICopY3JlYXRlTm9kZUl0ZXJhdG9yOihE
T01Ob2RlICopcm9vdCA6KHVuc2lnbmVkKXdoYXRUb1Nob3cgOihpZCA8RE9NTm9kZUZpbHRlcj4p
ZmlsdGVyIDooQk9PTClleHBhbmRFbnRpdHlSZWZlcmVuY2VzOwpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oCShyZXZpc2lvbiAxNjI2MykKKysrIFdl
YkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRlcmZhY2VzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTg1MCwzICs4NTAsMjggQEAKIC8vLSAodm9pZClpbml0TW91c2VFdmVudDooTlNTdHJpbmcg
Kil0eXBlIGNhbkJ1YmJsZTooQk9PTCljYW5CdWJibGUgY2FuY2VsYWJsZTooQk9PTCljYW5jZWxh
YmxlIHZpZXc6KERPTUFic3RyYWN0VmlldyAqKXZpZXcgZGV0YWlsOihpbnQpZGV0YWlsIHNjcmVl
blg6KGludClzY3JlZW5YIHNjcmVlblk6KGludClzY3JlZW5ZIGNsaWVudFg6KGludCljbGllbnRY
IGNsaWVudFk6KGludCljbGllbnRZIGN0cmxLZXk6KEJPT0wpY3RybEtleSBhbHRLZXk6KEJPT0wp
YWx0S2V5IHNoaWZ0S2V5OihCT09MKXNoaWZ0S2V5IG1ldGFLZXk6KEJPT0wpbWV0YUtleSBidXR0
b246KHVuc2lnbmVkIHNob3J0KWJ1dHRvbiByZWxhdGVkVGFyZ2V0OihpZCA8RE9NRXZlbnRUYXJn
ZXQ+KXJlbGF0ZWRUYXJnZXQ7CiAtICh2b2lkKWluaXRNb3VzZUV2ZW50OihOU1N0cmluZyAqKXR5
cGUgOihCT09MKWNhbkJ1YmJsZSA6KEJPT0wpY2FuY2VsYWJsZSA6KERPTUFic3RyYWN0VmlldyAq
KXZpZXcgOihpbnQpZGV0YWlsIDooaW50KXNjcmVlblggOihpbnQpc2NyZWVuWSA6KGludCljbGll
bnRYIDooaW50KWNsaWVudFkgOihCT09MKWN0cmxLZXkgOihCT09MKWFsdEtleSA6KEJPT0wpc2hp
ZnRLZXkgOihCT09MKW1ldGFLZXkgOih1bnNpZ25lZCBzaG9ydClidXR0b24gOihpZCA8RE9NRXZl
bnRUYXJnZXQ+KXJlbGF0ZWRUYXJnZXQ7CiBAZW5kCisKK0BpbnRlcmZhY2UgRE9NTm9kZUl0ZXJh
dG9yIDogRE9NT2JqZWN0CitAcHJvcGVydHkocmVhZG9ubHkpIERPTU5vZGUgKnJvb3Q7CitAcHJv
cGVydHkocmVhZG9ubHkpIHVuc2lnbmVkIHdoYXRUb1Nob3c7CitAcHJvcGVydHkocmVhZG9ubHkp
IGlkIDxET01Ob2RlRmlsdGVyPiBmaWx0ZXI7CitAcHJvcGVydHkocmVhZG9ubHkpIEJPT0wgZXhw
YW5kRW50aXR5UmVmZXJlbmNlczsKKy0gKERPTU5vZGUgKiluZXh0Tm9kZTsKKy0gKERPTU5vZGUg
KilwcmV2aW91c05vZGU7CistICh2b2lkKWRldGFjaDsKK0BlbmQKKworQGludGVyZmFjZSBET01U
cmVlV2Fsa2VyIDogRE9NT2JqZWN0CitAcHJvcGVydHkocmVhZG9ubHkpIERPTU5vZGUgKnJvb3Q7
CitAcHJvcGVydHkocmVhZG9ubHkpIHVuc2lnbmVkIHdoYXRUb1Nob3c7CitAcHJvcGVydHkocmVh
ZG9ubHkpIGlkIDxET01Ob2RlRmlsdGVyPiBmaWx0ZXI7CitAcHJvcGVydHkocmVhZG9ubHkpIEJP
T0wgZXhwYW5kRW50aXR5UmVmZXJlbmNlczsKK0Bwcm9wZXJ0eSBET01Ob2RlICpjdXJyZW50Tm9k
ZTsKKy0gKERPTU5vZGUgKilwYXJlbnROb2RlOworLSAoRE9NTm9kZSAqKWZpcnN0Q2hpbGQ7Cist
IChET01Ob2RlICopbGFzdENoaWxkOworLSAoRE9NTm9kZSAqKXByZXZpb3VzU2libGluZzsKKy0g
KERPTU5vZGUgKiluZXh0U2libGluZzsKKy0gKERPTU5vZGUgKilwcmV2aW91c05vZGU7CistIChE
T01Ob2RlICopbmV4dE5vZGU7CitAZW5kCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvck9iakMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCShyZXZpc2lvbiAxNjI2MykKKysrIFdlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQkod29ya2luZyBjb3B5KQpAQCAtMzQs
NiArMzQsNyBAQCBteSAlcHJpdmF0ZUhlYWRlckZvcndhcmREZWNsYXJhdGlvbnNGb3JQCiBteSAl
cHVibGljSW50ZXJmYWNlcyA9ICgpOwogbXkgJG5ld1B1YmxpY0NsYXNzID0gMDsKIG15ICRpc1By
b3RvY29sID0gMDsKK215IEBpdmFycyA9ICgpOwogbXkgJGJ1aWxkaW5nRm9yVGlnZXJPckVhcmxp
ZXIgPSAxIGlmICRFTlZ7Ik1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCJ9IGFuZCAkRU5WeyJNQUNP
U1hfREVQTE9ZTUVOVF9UQVJHRVQifSA8PSAxMC40OwogbXkgJGJ1aWxkaW5nRm9yTGVvcGFyZE9y
TGF0ZXIgPSAxIGlmICRFTlZ7Ik1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCJ9IGFuZCAkRU5WeyJN
QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQifSA+PSAxMC41OwogCkBAIC0xNjksOCArMTcwLDggQEAg
c3ViIEdlbmVyYXRlSW50ZXJmYWNlCiAgICAgUmVhZFB1YmxpY0ludGVyZmFjZXMoJGNsYXNzTmFt
ZSwgJHBhcmVudENsYXNzTmFtZSwgJGRlZmluZXMpOwogCiAgICAgIyBTdGFydCBhY3R1YWwgZ2Vu
ZXJhdGlvbi4uCi0gICAgJG9iamVjdC0+R2VuZXJhdGVJbXBsZW1lbnRhdGlvbigkZGF0YU5vZGUp
IHVubGVzcyAkaXNQcm90b2NvbDsKICAgICAkb2JqZWN0LT5HZW5lcmF0ZUhlYWRlcigkZGF0YU5v
ZGUpOworICAgICRvYmplY3QtPkdlbmVyYXRlSW1wbGVtZW50YXRpb24oJGRhdGFOb2RlKSB1bmxl
c3MgJGlzUHJvdG9jb2w7CiAKICAgICAjIFdyaXRlIGNoYW5nZXMuCiAgICAgJG9iamVjdC0+V3Jp
dGVEYXRhKCJET00iIC4gJG5hbWUpOwpAQCAtMjQ2LDcgKzI0Nyw3IEBAIHN1YiBJc1Byb3RvY29s
VHlwZQogewogICAgICR0eXBlID0gc2hpZnQ7CiAKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAi
WFBhdGhOU1Jlc29sdmVyIiBvciAkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIgb3IgJHR5cGUgZXEg
IkV2ZW50VGFyZ2V0IjsKKyAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiWFBhdGhOU1Jlc29sdmVy
IiBvciAkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIgb3IgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IiBv
ciAkdHlwZSBlcSAiTm9kZUZpbHRlciI7CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTQ2Miw2ICs0
NjMsMjIgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAjIC0gQWRkIGF0dHJpYnV0ZSBnZXR0
ZXJzL3NldHRlcnMuCiAgICAgaWYgKCRudW1BdHRyaWJ1dGVzID4gMCkgeworICAgICAgICAjIEFk
ZCBpdmFycywgaWYgYW55LCBmaXJzdAorICAgICAgICBAaXZhcnMgPSAoKTsKKyAgICAgICAgZm9y
ZWFjaCBteSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAg
ICAgIHB1c2goQGl2YXJzLCAkYXR0cmlidXRlKSBpZiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJPYmpDSXZhciJ9OworICAgICAgICB9CisgICAgICAgIGlmIChz
Y2FsYXIoQGl2YXJzKSkgeworICAgICAgICAgICAgcHVzaChAaGVhZGVyQXR0cmlidXRlcywgIntc
biIpOworICAgICAgICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAaXZhcnMpIHsKKyAgICAg
ICAgICAgICAgICBteSAkdHlwZSA9IEdldE9iakNUeXBlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
dHlwZSk7OworICAgICAgICAgICAgICAgIG15ICRuYW1lID0gIm1fIiAuICRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+bmFtZTsKKyAgICAgICAgICAgICAgICBteSAkaXZhckRlY2xhcmF0aW9uID0gIiR0
eXBlICRuYW1lIjsKKyAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJBdHRyaWJ1dGVzLCAiICAg
ICRpdmFyRGVjbGFyYXRpb247XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1c2go
QGhlYWRlckF0dHJpYnV0ZXMsICJ9XG4iKTsKKyAgICAgICAgfQorCiAgICAgICAgIGZvcmVhY2gg
bXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CiAgICAgICAgICAgICBt
eSAkYXR0cmlidXRlTmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKIApAQCAtNjQy
LDE4ICs2NTksNDAgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICMg
T25seSBnZW5lcmF0ZSAnZGVhbGxvYycgYW5kICdmaW5hbGl6ZScgbWV0aG9kcyBmb3IgZGlyZWN0
IHN1YmNsYXNzZXMgb2YgRE9NT2JqZWN0LgogCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiNkZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PCRpbXBsQ2xhc3NOYW1lV2l0aE5hbWVz
cGFjZSo+KF9pbnRlcm5hbClcblxuIik7CisgICAgICAgICAgICBteSBAaXZhcnNUb1JlbGVhc2Ug
PSAoKTsKKyAgICAgICAgICAgIGlmIChzY2FsYXIoQGl2YXJzKSkgeworICAgICAgICAgICAgICAg
IGZvcmVhY2ggJGF0dHJpYnV0ZSAoQGl2YXJzKSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRu
YW1lID0gIm1fIiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaXZhcnNUb1JlbGVhc2UsICIgICAgWyRuYW1lIHJlbGVhc2VdO1xuIik7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIi0gKHZvaWQpZGVhbGxvY1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIntcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKF9p
bnRlcm5hbClcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIElN
UEwtPmRlcmVmKCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCBAaXZhcnNU
b1JlbGVhc2UpOworICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJOb2RlSXRlcmF0
b3IiKSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKF9pbnRl
cm5hbCkge1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IFtzZWxmIGRldGFjaF07XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAgICAgSU1QTC0+ZGVyZWYoKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIH07XG4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKF9pbnRlcm5hbClcbiIpOworICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBJTVBMLT5kZXJlZigpO1xuIik7Cisg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBbc3VwZXIg
ZGVhbGxvY107XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsK
IAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICItICh2b2lkKWZpbmFsaXplXG4iKTsK
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBpZiAoX2ludGVybmFsKVxuIik7Ci0gICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgSU1QTC0+ZGVyZWYoKTtcbiIpOworICAgICAgICAgICAg
aWYgKCRpbnRlcmZhY2VOYW1lIGVxICJOb2RlSXRlcmF0b3IiKSB7CisgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKF9pbnRlcm5hbCkge1xuIik7CisgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIFtzZWxmIGRldGFjaF07XG4iKTsKKyAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSU1QTC0+ZGVyZWYoKTtc
biIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH07XG4iKTsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgaWYgKF9pbnRlcm5hbClcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICAgICBJTVBMLT5kZXJlZigpO1xuIik7CisgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBbc3VwZXIgZmluYWxpemVdO1xuIik7CiAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAgICAgICAgIH0gZWxzaWYgKCRpbnRl
cmZhY2VOYW1lIGVxICJDU1NTdHlsZVNoZWV0IikgewpAQCAtNjg3LDYgKzcyNiw3IEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBteSAkYXR0cmlidXRlTmFtZSA9ICRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVUeXBl
ID0gR2V0T2JqQ1R5cGUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKICAgICAgICAgICAg
IG15ICRhdHRyaWJ1dGVJc1JlYWRvbmx5ID0gKCRhdHRyaWJ1dGUtPnR5cGUgPX4gL15yZWFkb25s
eS8pOworICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZUNsYXNzTmFtZSA9IEdldENsYXNzTmFtZSgk
YXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUpOwogCiAgICAgICAgICAgICBteSAkYXR0cmlidXRl
SW50ZXJmYWNlTmFtZSA9ICRhdHRyaWJ1dGVOYW1lOwogICAgICAgICAgICAgaWYgKCRhdHRyaWJ1
dGVOYW1lIGVxICJpZCIpIHsKQEAgLTcxNCw2ICs3NTQsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogICAgICAgICAgICAgbXkgJHR5cGVNYWtlciA9IEdldE9iakNUeXBlTWFrZXIoJGF0
dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKIAogICAgICAgICAgICAgIyBTcGVjaWFsIGNhc2Vz
CisgICAgICAgICAgICBteSBAY3VzdG9tR2V0dGVyQ29udGVudCA9ICgpOyAKICAgICAgICAgICAg
IGlmICgkYXR0cmlidXRlVHlwZVNhbnNQdHIgZXEgIkRPTUltcGxlbWVudGF0aW9uIikgewogICAg
ICAgICAgICAgICAgICMgRklYTUU6IFdlIGhhdmUgdG8gc3BlY2lhbCBjYXNlIERPTUltcGxlbWVu
dGF0aW9uIHVudGlsIERPTUltcGxlbWVudGF0aW9uRnJvbnQgaXMgcmVtb3ZlZAogICAgICAgICAg
ICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICJbJGF0dHJpYnV0ZVR5cGVTYW5zUHRyICR0eXBl
TWFrZXI6aW1wbGVtZW50YXRpb25Gcm9udChJTVBMIjsKQEAgLTczMSw2ICs3NzIsMTMgQEAgc3Vi
IEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRl
bnRUYWlsID0gIlxAXCJzcmNcIl0iOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAkaW1wbEluY2x1ZGVzeyJET01Qcml2YXRlLmgifSA9IDE7CisgICAgICAgICAgICB9IGVsc2lm
ICgkaWRsVHlwZSBlcSAiTm9kZUZpbHRlciIpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBjdXN0
b21HZXR0ZXJDb250ZW50LCAiICAgIGlmIChtX2ZpbHRlcilcbiIpOworICAgICAgICAgICAgICAg
IHB1c2goQGN1c3RvbUdldHRlckNvbnRlbnQsICIgICAgICAgIC8vIFRoaXMgbm9kZSBpdGVyYXRv
ciB3YXMgY3JlYXRlZCBmcm9tIHRoZSBPYmplY3RpdmUtQyBzaWRlLlxuIik7CisgICAgICAgICAg
ICAgICAgcHVzaChAY3VzdG9tR2V0dGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIFtbbV9maWx0
ZXIgcmV0YWluXSBhdXRvcmVsZWFzZV07XG5cbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGN1
c3RvbUdldHRlckNvbnRlbnQsICIgICAgLy8gVGhpcyBub2RlIGl0ZXJhdG9yIHdhcyBjcmVhdGVk
IGZyb20gdGhlIEMrKyBzaWRlLlxuIik7CisgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRI
ZWFkID0gIlskYXR0cmlidXRlQ2xhc3NOYW1lICR0eXBlTWFrZXI6V1RGOjpnZXRQdHIoIiAuICRn
ZXR0ZXJDb250ZW50SGVhZDsKKyAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudFRhaWwgLj0g
IildIjsKICAgICAgICAgICAgIH0gZWxzaWYgKCR0eXBlTWFrZXIgbmUgIiIpIHsKICAgICAgICAg
ICAgICAgICAjIFN1cnJvdW5kIGdldHRlciB3aXRoIFR5cGVNYWtlcgogICAgICAgICAgICAgICAg
ICRnZXR0ZXJDb250ZW50SGVhZCA9ICJbJGF0dHJpYnV0ZVR5cGVTYW5zUHRyICR0eXBlTWFrZXI6
V1RGOjpnZXRQdHIoIiAuICRnZXR0ZXJDb250ZW50SGVhZDsKQEAgLTc1NSwxMSArODAzLDEzIEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICRnZXR0ZXJD
b250ZW50ID0gJGF0dHJpYnV0ZVR5cGUgLiAiIHJlc3VsdCA9ICIgLiAkZ2V0dGVyQ29udGVudDsK
ICAgICAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
QGN1c3RvbUdldHRlckNvbnRlbnQpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICRleGNlcHRpb25Jbml0XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAkZ2V0dGVyQ29udGVudDtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICRleGNlcHRpb25SYWlzZU9uRXJyb3JcbiIpOwogICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiByZXN1bHQ7XG4iKTsKICAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIEBjdXN0b21H
ZXR0ZXJDb250ZW50KTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBy
ZXR1cm4gJGdldHRlckNvbnRlbnQ7XG4iKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKSW5kZXg6IFdlYkNvcmUvZG9tL05vZGVGaWx0ZXIu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaWRsCShyZXZpc2lvbiAx
NjI2MykKKysrIFdlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5j
LgorICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwu
Y29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMCw3ICsyMSw3IEBACiBtb2R1bGUgdHJhdmVy
c2FsIHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgaW50ZXJmYWNl
IFtMZWdhY3lQYXJlbnQ9S0pTOjpET01Ob2RlRmlsdGVyLCBHZW5lcmF0ZUNvbnN0cnVjdG9yXSBO
b2RlRmlsdGVyIHsKKyAgICBpbnRlcmZhY2UgW0xlZ2FjeVBhcmVudD1LSlM6OkRPTU5vZGVGaWx0
ZXIsIEdlbmVyYXRlQ29uc3RydWN0b3IsIE9iakNQcm90b2NvbF0gTm9kZUZpbHRlciB7CiAKICAg
ICAgICAgLy8gQ29uc3RhbnRzIHJldHVybmVkIGJ5IGFjY2VwdE5vZGUKICAgICAgICAgY29uc3Qg
c2hvcnQgICAgICAgICAgICAgICBGSUxURVJfQUNDRVBUICAgICAgICAgICAgICAgICAgPSAxOwpA
QCAtNDEsNiArNDIsOSBAQCBtb2R1bGUgdHJhdmVyc2FsIHsKICAgICAgICAgY29uc3QgdW5zaWdu
ZWQgbG9uZyAgICAgICBTSE9XX0RPQ1VNRU5UX1RZUEUgICAgICAgICAgICAgPSAweDAwMDAwMjAw
OwogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nICAgICAgIFNIT1dfRE9DVU1FTlRfRlJBR01F
TlQgICAgICAgICA9IDB4MDAwMDA0MDA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgICAg
ICAgU0hPV19OT1RBVElPTiAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDgwMDsKKworICAgICAg
ICBbRXhjbHVkZT1KU10gc2hvcnQgYWNjZXB0Tm9kZShpbiBOb2RlIG4pOworCiAgICAgfTsKLSAg
CisKIH0KSW5kZXg6IFdlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbAkocmV2aXNpb24gMTYyNjMpCisrKyBXZWJDb3Jl
L2RvbS9Ob2RlSXRlcmF0b3IuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0
IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC0xOSwxMCArMjAsMTEgQEAKIAogbW9kdWxlIHRyYXZlcnNhbCB7CiAKKyAg
ICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgogICAgIGludGVyZmFjZSBbQ3VzdG9tTWFy
a0Z1bmN0aW9uXSBOb2RlSXRlcmF0b3IgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9k
ZSByb290OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3aGF0VG9T
aG93OwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUZpbHRlciBmaWx0ZXI7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbT2JqQ0l2YXJdIE5vZGVGaWx0ZXIgZmlsdGVyOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVuY2VzOwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSByZWZlcmVuY2VOb2RlOwogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBwb2ludGVyQmVmb3JlUmVmZXJlbmNlTm9kZTsKSW5k
ZXg6IFdlYkNvcmUvZG9tL1JhbmdlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9SYW5n
ZS5pZGwJKHJldmlzaW9uIDE2MjYzKQorKysgV2ViQ29yZS9kb20vUmFuZ2UuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBD
b21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53
ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xOSwxMCArMjAsOSBAQAog
CiBtb2R1bGUgcmFuZ2VzIHsKIAorICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CiAg
ICAgaW50ZXJmYWNlIFtHZW5lcmF0ZUNvbnN0cnVjdG9yXSBSYW5nZSB7CiAKLSAgICAgICAgLy8g
RE9NIExldmVsIDIKLQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSBzdGFydENvbnRh
aW5lcgogICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgc3RhcnRPZmZzZXQKQEAgLTM2LDExICszNiwxMSBAQCBt
b2R1bGUgcmFuZ2VzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgY29tbW9uQW5j
ZXN0b3JDb250YWluZXIKICAgICAgICAgICAgIGdldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7
CiAKLSAgICAgICAgdm9pZCBzZXRTdGFydChpbiBOb2RlIHJlZk5vZGUsIAotICAgICAgICAgICAg
ICAgICAgICAgIGluIGxvbmcgb2Zmc2V0KQorICAgICAgICBbT2xkU3R5bGVPYmpDXSB2b2lkIHNl
dFN0YXJ0KGluIE5vZGUgcmVmTm9kZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gbG9uZyBvZmZzZXQpCiAgICAgICAgICAgICByYWlzZXMoUmFuZ2VFeGNlcHRpb24s
IGRvbTo6RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRFbmQoaW4gTm9kZSByZWZOb2Rl
LCAKLSAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBvZmZzZXQpCisgICAgICAgIFtPbGRTdHls
ZU9iakNdIHZvaWQgc2V0RW5kKGluIE5vZGUgcmVmTm9kZSwgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIGxvbmcgb2Zmc2V0KQogICAgICAgICAgICAgcmFpc2VzKFJhbmdl
RXhjZXB0aW9uLCBkb206OkRPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0U3RhcnRCZWZv
cmUoaW4gTm9kZSByZWZOb2RlKQogICAgICAgICAgICAgcmFpc2VzKFJhbmdlRXhjZXB0aW9uLCBk
b206OkRPTUV4Y2VwdGlvbik7CkBAIC02Myw4ICs2Myw4IEBAIG1vZHVsZSByYW5nZXMgewogICAg
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBFTkRfVE9fRU5EICAgICA9IDI7CiAgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IEVORF9UT19TVEFSVCAgID0gMzsKIAotICAgICAgICBzaG9ydCBj
b21wYXJlQm91bmRhcnlQb2ludHMoaW4gQ29tcGFyZUhvdyBob3csCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBSYW5nZSBzb3VyY2VSYW5nZSkKKyAgICAgICAgW09sZFN0
eWxlT2JqQ10gc2hvcnQgY29tcGFyZUJvdW5kYXJ5UG9pbnRzKGluIENvbXBhcmVIb3cgaG93LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gUmFu
Z2Ugc291cmNlUmFuZ2UpCiAgICAgICAgICAgICByYWlzZXMoZG9tOjpET01FeGNlcHRpb24pOwog
ICAgICAgICBzaG9ydCBjb21wYXJlUG9pbnQoaW4gTm9kZSByZWZOb2RlLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIGxvbmcgb2Zmc2V0KQpJbmRleDogV2ViQ29yZS9kb20vVHJlZVdh
bGtlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwJKHJldmlz
aW9uIDE2MjYzKQorKysgV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVy
LCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0Bn
bWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE5LDEwICsyMCwxMSBAQAogCiBtb2R1
bGUgdHJhdmVyc2FsIHsKIAorICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CiAgICAg
aW50ZXJmYWNlIFtDdXN0b21NYXJrRnVuY3Rpb25dIFRyZWVXYWxrZXIgewogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgTm9kZSByb290OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyB3aGF0VG9TaG93OwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUZp
bHRlciBmaWx0ZXI7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbT2JqQ0l2YXJdIE5vZGVG
aWx0ZXIgZmlsdGVyOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBleHBhbmRF
bnRpdHlSZWZlcmVuY2VzOyAgICAgICAgCiAgICAgICAgIGF0dHJpYnV0ZSBOb2RlIGN1cnJlbnRO
b2RlCiAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRpb24pOwpAQCAtMzUsNiAr
MzcsNyBAQCBtb2R1bGUgdHJhdmVyc2FsIHsKICAgICAgICAgTm9kZSBwcmV2aW91c05vZGUoKTsK
ICAgICAgICAgTm9kZSBuZXh0Tm9kZSgpOwogICAgIH07CisKIH0KIAogIApcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKSW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMTYyNjUpCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDYtMDktMDcgIFNhbSBXZWluaWcgIDxzYW0u
d2VpbmlnQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQYXRjaCBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDc3NAorICAgICAgICBBdXRvLWdlbmVyYXRlIHRoZSBPYmplY3RpdmUtQyBE
T00gVHJhdmVyc2FsIGJpbmRpbmdzCisKKyAgICAgICAgKiBNaWdyYXRlSGVhZGVycy5tYWtlOgor
CiAyMDA2LTA5LTA3ICBTYW0gV2VpbmlnICA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4uCkluZGV4OiBXZWJLaXQvTWlncmF0ZUhlYWRlcnMubWFrZQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvTWlncmF0ZUhlYWRlcnMubWFrZQkocmV2aXNpb24gMTYyNjMp
CisrKyBXZWJLaXQvTWlncmF0ZUhlYWRlcnMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTU2LDYg
KzE1Niw5IEBAIGFsbCA6IFwKICAgICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NTmFtZWROb2Rl
TWFwLmggXAogICAgICQoUFJJVkFURV9IRUFERVJTX0RJUikvRE9NTmFtZWROb2RlTWFwUHJpdmF0
ZS5oIFwKICAgICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NTm9kZS5oIFwKKyAgICAkKFBVQkxJ
Q19IRUFERVJTX0RJUikvRE9NTm9kZUZpbHRlci5oIFwKKyAgICAkKFBVQkxJQ19IRUFERVJTX0RJ
UikvRE9NTm9kZUl0ZXJhdG9yLmggXAorICAgICQoUFJJVkFURV9IRUFERVJTX0RJUikvRE9NTm9k
ZUl0ZXJhdG9yUHJpdmF0ZS5oIFwKICAgICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NTm9kZUxp
c3QuaCBcCiAgICAgJChQVUJMSUNfSEVBREVSU19ESVIpL0RPTU5vdGF0aW9uLmggXAogICAgICQo
UFVCTElDX0hFQURFUlNfRElSKS9ET01PYmplY3QuaCBcCkBAIC0xNzEsNiArMTc0LDcgQEAgYWxs
IDogXAogICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01TdHlsZXNoZWV0cy5oIFwKICAgICAk
KFBVQkxJQ19IRUFERVJTX0RJUikvRE9NVGV4dC5oIFwKICAgICAkKFBVQkxJQ19IRUFERVJTX0RJ
UikvRE9NVHJhdmVyc2FsLmggXAorICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01UcmVlV2Fs
a2VyLmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01VSUV2ZW50LmggXAogICAgICQo
UFJJVkFURV9IRUFERVJTX0RJUikvRE9NVUlFdmVudFByaXZhdGUuaCBcCiAgICAgJChQVUJMSUNf
SEVBREVSU19ESVIpL0RPTVZpZXdzLmggXAo=
</data>
<flag name="review"
          id="3353"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>