<?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>231873</bug_id>
          
          <creation_ts>2021-10-16 16:36:38 -0700</creation_ts>
          <short_desc>[LFC][IFC] Adjust the logical right side of the line when box-decoration-break: clone is present</short_desc>
          <delta_ts>2021-10-18 20:37:16 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1805326</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-10-16 16:36:38 -0700</bug_when>
    <thetext>this is for non-line spanning inline boxes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805331</commentid>
    <comment_count>1</comment_count>
      <attachid>441510</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-10-16 16:46:06 -0700</bug_when>
    <thetext>Created attachment 441510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805343</commentid>
    <comment_count>2</comment_count>
      <attachid>441515</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-10-16 20:13:09 -0700</bug_when>
    <thetext>Created attachment 441515
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805734</commentid>
    <comment_count>3</comment_count>
      <attachid>441644</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-10-18 15:22:53 -0700</bug_when>
    <thetext>Created attachment 441644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805738</commentid>
    <comment_count>4</comment_count>
      <attachid>441647</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-10-18 15:28:49 -0700</bug_when>
    <thetext>Created attachment 441647
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805865</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-18 20:36:13 -0700</bug_when>
    <thetext>Committed r284432 (243194@main): &lt;https://commits.webkit.org/243194@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441647.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805866</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-18 20:37:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/84399568&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441510</attachid>
            <date>2021-10-16 16:46:06 -0700</date>
            <delta_ts>2021-10-16 20:13:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>11935</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">Y29tbWl0IGE2NjM1ZDI5MTNkZDQ4NzUzNzE4ODliOTNjZWVkNmI5NGEwMmI3Y2QKQXV0aG9yOiBa
YWxhbiBCdWp0YXMgPHphbGFuQGFwcGxlLmNvbT4KRGF0ZTogICBTYXQgT2N0IDE2IDE2OjQ1OjE5
IDIwMjEgLTA3MDAKCiAgICBmaW5hbAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2YjU2ODMzNDYwNDkuLmNhOWRl
MDdiZDQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTEwLTE2ICBBbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIEFkanVzdCB0aGUg
bG9naWNhbCByaWdodCBzaWRlIG9mIHRoZSBsaW5lIHdoZW4gYm94LWRlY29yYXRpb24tYnJlYWs6
IGNsb25lIGlzIHByZXNlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTg3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciAiYm94LWRlY29yYXRpb24tYnJl
YWs6IGNsb25lIiBjYXNlcyB3aGVuIHRoZSBpbmxpbmUgYm94IGlzIGVpdGhlciBub3QgbGluZSBz
cGFubmluZyBvcgorICAgICAgICBpdCBzaG93cyB1cCBmaXJzdCBvbiB0aGUgbGluZS4KKworICAg
ICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjppbml0aWFsaXplKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGluZTo6YXBwZW5kSW5saW5lQm94U3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lOjphcHBlbmRJbmxpbmVCb3hFbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lOjphcHBlbmRUZXh0Q29udGVudCk6CisgICAgICAgICogbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMaW5lOjpjb250ZW50TG9naWNhbFJpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6TGluZTo6aW5saW5lQm94TGlzdFdpdGhDbG9uZWREZWNvcmF0aW9uRW5kIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6bGluZVNwYW5uaW5nSW5saW5l
Qm94UnVuRW5kcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lQm94QnVpbGRlcjo6Y29uc3RydWN0QW5kQWxpZ25JbmxpbmVMZXZlbEJv
eGVzKToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVM
aW5lQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjpo
YW5kbGVJbmxpbmVDb250ZW50KToKKwogMjAyMS0xMC0xNiAgWmFsYW4gQnVqdGFzICA8emFsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gQWRqdXN0IHRoZSBsb2dpY2FsIHJpZ2h0
IHNpZGUgb2YgdGhlIGxpbmUgd2l0aCBsaW5lIHNwYW5uaW5nIGlubGluZSBib3hlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVMaW5lLmNwcAppbmRleCAxNmUzZTJjN2M1MGEuLjgxMWJhYWJlZmJjNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKQEAgLTUyLDggKzUyLDggQEAgTGluZTo6fkxpbmUo
KQogCiB2b2lkIExpbmU6OmluaXRpYWxpemUoY29uc3QgVmVjdG9yPElubGluZUl0ZW0+JiBsaW5l
U3Bhbm5pbmdJbmxpbmVCb3hlcykKIHsKLSAgICBtX2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVu
ZHMuY2xlYXIoKTsKLSAgICBtX2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZFdpZHRoID0geyB9
OworICAgIG1faW5saW5lQm94TGlzdFdpdGhDbG9uZWREZWNvcmF0aW9uRW5kLmNsZWFyKCk7Cisg
ICAgbV9jbG9uZWRFbmREZWNvcmF0aW9uV2lkdGhGb3JJbmxpbmVCb3hSdW5zID0geyB9OwogICAg
IG1fbm9uU3Bhbm5pbmdJbmxpbmVMZXZlbEJveENvdW50ID0gMDsKICAgICBtX2NvbnRlbnRMb2dp
Y2FsV2lkdGggPSB7IH07CiAgICAgbV9ydW5zLmNsZWFyKCk7CkBAIC03OSw4ICs3OSw4IEBAIHZv
aWQgTGluZTo6aW5pdGlhbGl6ZShjb25zdCBWZWN0b3I8SW5saW5lSXRlbT4mIGxpbmVTcGFubmlu
Z0lubGluZUJveGVzKQogICAgICAgICAgICAgbV9jb250ZW50TG9naWNhbFdpZHRoID0gc3RkOjpt
YXgobV9jb250ZW50TG9naWNhbFdpZHRoLCBydW5Mb2dpY2FsUmlnaHQpOwogCiAgICAgICAgICAg
ICBhdXRvIG1hcmdpbkJvcmRlckFuZFBhZGRpbmdFbmQgPSBpbmxpbmVCb3hHZW9tZXRyeS5tYXJn
aW5FbmQoKSArIGlubGluZUJveEdlb21ldHJ5LmJvcmRlclJpZ2h0KCkgKyBpbmxpbmVCb3hHZW9t
ZXRyeS5wYWRkaW5nUmlnaHQoKS52YWx1ZV9vcigwX2x1KTsKLSAgICAgICAgICAgIG1fbGluZVNw
YW5uaW5nSW5saW5lQm94UnVuRW5kcy5hZGQoJmlubGluZUJveFN0YXJ0SXRlbS5sYXlvdXRCb3go
KSwgbWFyZ2luQm9yZGVyQW5kUGFkZGluZ0VuZCk7Ci0gICAgICAgICAgICBtX2xpbmVTcGFubmlu
Z0lubGluZUJveFJ1bkVuZFdpZHRoICs9IG1hcmdpbkJvcmRlckFuZFBhZGRpbmdFbmQ7CisgICAg
ICAgICAgICBtX2lubGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVuZC5hZGQoJmlubGlu
ZUJveFN0YXJ0SXRlbS5sYXlvdXRCb3goKSwgbWFyZ2luQm9yZGVyQW5kUGFkZGluZ0VuZCk7Cisg
ICAgICAgICAgICBtX2Nsb25lZEVuZERlY29yYXRpb25XaWR0aEZvcklubGluZUJveFJ1bnMgKz0g
bWFyZ2luQm9yZGVyQW5kUGFkZGluZ0VuZDsKICAgICAgICAgICAgIG1fY29udGVudExvZ2ljYWxX
aWR0aCArPSBtYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRW5kOwogICAgICAgICB9CiAgICAgfTsKQEAg
LTI3Nyw2ICsyNzcsMTcgQEAgdm9pZCBMaW5lOjphcHBlbmRJbmxpbmVCb3hTdGFydChjb25zdCBJ
bmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBSZW5kZXJTdHlsZSYKICAgICAvLyBUaGlzIGlz
IHJlYWxseSBqdXN0IGEgcGxhY2Vob2xkZXIgdG8gbWFyayB0aGUgc3RhcnQgb2YgdGhlIGlubGlu
ZSBib3ggPHNwYW4+LgogICAgICsrbV9ub25TcGFubmluZ0lubGluZUxldmVsQm94Q291bnQ7CiAg
ICAgYXBwZW5kTm9uQnJlYWthYmxlU3BhY2UoaW5saW5lSXRlbSwgc3R5bGUsIGxhc3RSdW5Mb2dp
Y2FsUmlnaHQoKSwgbG9naWNhbFdpZHRoKTsKKyNpZiBFTkFCTEUoQ1NTX0JPWF9ERUNPUkFUSU9O
X0JSRUFLKQorICAgIC8vIENoZWNrIGlmIHRoaXMgaW5saW5lIGJveCdzIGVuZCBzaWRlIHRha2Vz
IHVwIHNvbWUgc3BhY2Ugb24gdGhlIGxpbmUuCisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cu
b3JnL2Nzcy1icmVhay8jYnJlYWstZGVjb3JhdGlvbgorICAgIC8vIGNsb25lOiBFYWNoIGJveCBm
cmFnbWVudCBpcyBpbmRlcGVuZGVudGx5IHdyYXBwZWQgd2l0aCB0aGUgYm9yZGVyLCBwYWRkaW5n
LCBhbmQgbWFyZ2luLgorICAgIGlmIChzdHlsZS5ib3hEZWNvcmF0aW9uQnJlYWsoKSA9PSBCb3hE
ZWNvcmF0aW9uQnJlYWs6OkNsb25lKSB7CisgICAgICAgIGF1dG8mIGlubGluZUJveEdlb21ldHJ5
ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChpbmxpbmVJdGVtLmxheW91dEJv
eCgpKTsKKyAgICAgICAgYXV0byBtYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRW5kID0gaW5saW5lQm94
R2VvbWV0cnkubWFyZ2luRW5kKCkgKyBpbmxpbmVCb3hHZW9tZXRyeS5ib3JkZXJSaWdodCgpICsg
aW5saW5lQm94R2VvbWV0cnkucGFkZGluZ1JpZ2h0KCkudmFsdWVfb3IoMF9sdSk7CisgICAgICAg
IG1fY2xvbmVkRW5kRGVjb3JhdGlvbldpZHRoRm9ySW5saW5lQm94UnVucyArPSBtYXJnaW5Cb3Jk
ZXJBbmRQYWRkaW5nRW5kOworICAgICAgICBtX2NvbnRlbnRMb2dpY2FsV2lkdGggKz0gbWFyZ2lu
Qm9yZGVyQW5kUGFkZGluZ0VuZDsKKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBMaW5lOjphcHBl
bmRJbmxpbmVCb3hFbmQoY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCkKQEAgLTI4OCwxMSAr
Mjk5LDExIEBAIHZvaWQgTGluZTo6YXBwZW5kSW5saW5lQm94RW5kKGNvbnN0IElubGluZUl0ZW0m
IGlubGluZUl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzCiAgICAgICAgIG1fY29udGVudExvZ2lj
YWxXaWR0aCAtPSBtX3RyaW1tYWJsZVRyYWlsaW5nQ29udGVudC5yZW1vdmVQYXJ0aWFsbHlUcmlt
bWFibGVDb250ZW50KCk7CiAgICAgfTsKICAgICBhdXRvIHJlbW92ZUZyb21MaW5lU3Bhbm5pbmdJ
bmxpbmVCb3hMaXN0SWZBcHBsaWNhYmxlID0gWyZdIHsKLSAgICAgICAgQVNTRVJUKCFtX2xpbmVT
cGFubmluZ0lubGluZUJveFJ1bkVuZHMuY29udGFpbnMoJmlubGluZUl0ZW0ubGF5b3V0Qm94KCkp
IHx8IG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kcy5nZXQoJmlubGluZUl0ZW0ubGF5b3V0
Qm94KCkpID09IGxvZ2ljYWxXaWR0aCk7Ci0gICAgICAgIGF1dG8gaW5saW5lQm94RW5kID0gbV9s
aW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRzLnJlbW92ZSgmaW5saW5lSXRlbS5sYXlvdXRCb3go
KSk7CisgICAgICAgIEFTU0VSVCghbV9pbmxpbmVCb3hMaXN0V2l0aENsb25lZERlY29yYXRpb25F
bmQuY29udGFpbnMoJmlubGluZUl0ZW0ubGF5b3V0Qm94KCkpIHx8IG1faW5saW5lQm94TGlzdFdp
dGhDbG9uZWREZWNvcmF0aW9uRW5kLmdldCgmaW5saW5lSXRlbS5sYXlvdXRCb3goKSkgPT0gbG9n
aWNhbFdpZHRoKTsKKyAgICAgICAgYXV0byBpbmxpbmVCb3hFbmQgPSBtX2lubGluZUJveExpc3RX
aXRoQ2xvbmVkRGVjb3JhdGlvbkVuZC5yZW1vdmUoJmlubGluZUl0ZW0ubGF5b3V0Qm94KCkpOwog
ICAgICAgICAvLyBUaGlzIGlubGluZSBib3ggZW5kIG5vdyBjb250cmlidXRlcyB0byB0aGUgbGlu
ZSBjb250ZW50IHdpZHRoIGluIHRoZSByZWd1bGFyIHdheS4KICAgICAgICAgbV9jb250ZW50TG9n
aWNhbFdpZHRoIC09IGlubGluZUJveEVuZDsKLSAgICAgICAgbV9saW5lU3Bhbm5pbmdJbmxpbmVC
b3hSdW5FbmRXaWR0aCAtPSBpbmxpbmVCb3hFbmQ7CisgICAgICAgIG1fY2xvbmVkRW5kRGVjb3Jh
dGlvbldpZHRoRm9ySW5saW5lQm94UnVucyAtPSBpbmxpbmVCb3hFbmQ7CiAgICAgfTsKICAgICAv
LyBQcmV2ZW50IHRyYWlsaW5nIGxldHRlci1zcGFjaW5nIGZyb20gc3BpbGxpbmcgb3V0IG9mIHRo
ZSBpbmxpbmUgYm94LgogICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdGV4dC0z
LyNsZXR0ZXItc3BhY2luZy1wcm9wZXJ0eSBTZWUgZXhhbXBsZSAyMS4KQEAgLTM0NCwxMCArMzU1
LDEyIEBAIHZvaWQgTGluZTo6YXBwZW5kVGV4dENvbnRlbnQoY29uc3QgSW5saW5lVGV4dEl0ZW0m
IGlubGluZVRleHRJdGVtLCBjb25zdCBSZW5kZXJTCiAgICAgfSgpOwogICAgIGF1dG8gb2xkQ29u
dGVudExvZ2ljYWxXaWR0aCA9IGNvbnRlbnRMb2dpY2FsV2lkdGgoKTsKICAgICBpZiAobmVlZHNO
ZXdSdW4pIHsKLSAgICAgICAgLy8gTm90ZSwgbmVnYXRpdmUgd29yZHMgc3BhY2luZyBtYXkgY2F1
c2UgZ2x5cGggb3ZlcmxhcC4KKyAgICAgICAgLy8gTm90ZSwgbmVnYXRpdmUgd29yZCBzcGFjaW5n
IG1heSBjYXVzZSBnbHlwaCBvdmVybGFwLgogICAgICAgICBhdXRvIHJ1bkxvZ2ljYWxMZWZ0ID0g
bGFzdFJ1bkxvZ2ljYWxSaWdodCgpICsgKGlubGluZVRleHRJdGVtLmlzV29yZFNlcGFyYXRvcigp
ID8gc3R5bGUuZm9udENhc2NhZGUoKS53b3JkU3BhY2luZygpIDogMC4wZik7CisgICAgICAgIGF1
dG8gcnVubG9naWNhbFJpZ2h0ID0gcnVuTG9naWNhbExlZnQgKyBsb2dpY2FsV2lkdGg7CisgICAg
ICAgIGF1dG8gYWRqdXN0ZWRMb2dpY2FsV2lkdGggPSBzdGQ6Om1heCgwLjBmLCBydW5sb2dpY2Fs
UmlnaHQgLSBsYXN0UnVuTG9naWNhbFJpZ2h0KCkpOwogICAgICAgICBtX3J1bnMuYXBwZW5kKHsg
aW5saW5lVGV4dEl0ZW0sIHN0eWxlLCBydW5Mb2dpY2FsTGVmdCwgbG9naWNhbFdpZHRoIH0pOwot
ICAgICAgICBtX2NvbnRlbnRMb2dpY2FsV2lkdGggPSBzdGQ6Om1heChvbGRDb250ZW50TG9naWNh
bFdpZHRoLCBydW5Mb2dpY2FsTGVmdCArIGxvZ2ljYWxXaWR0aCk7CisgICAgICAgIG1fY29udGVu
dExvZ2ljYWxXaWR0aCArPSBhZGp1c3RlZExvZ2ljYWxXaWR0aDsKICAgICB9IGVsc2UgewogICAg
ICAgICBtX3J1bnMubGFzdCgpLmV4cGFuZChpbmxpbmVUZXh0SXRlbSwgbG9naWNhbFdpZHRoKTsK
ICAgICAgICAgLy8gRG8gbm90IGxldCBuZWdhdGl2ZSBsZXR0ZXIgc3BhY2luZyBtYWtlIHRoZSBj
b250ZW50IHNob3J0ZXIgdGhhbiBpdCBhbHJlYWR5IGlzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5o
CmluZGV4IDQ5N2E2YjhjNTA2OS4uMTFjMzgwMGI0NDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGlu
ZS5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0NvbnRlbnQoKSBjb25z
dCB7IHJldHVybiAhbV9ydW5zLmlzRW1wdHkoKSAmJiAhbV9ydW5zLmxhc3QoKS5pc0xpbmVTcGFu
bmluZ0lubGluZUJveFN0YXJ0KCk7IH0KIAogICAgIElubGluZUxheW91dFVuaXQgY29udGVudExv
Z2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudExvZ2ljYWxXaWR0aDsgfQotICAg
IElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0dXJuIGxh
c3RSdW5Mb2dpY2FsUmlnaHQoKSArIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kV2lkdGg7
IH0KKyAgICBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJl
dHVybiBsYXN0UnVuTG9naWNhbFJpZ2h0KCkgKyBtX2Nsb25lZEVuZERlY29yYXRpb25XaWR0aEZv
cklubGluZUJveFJ1bnM7IH0KICAgICBzaXplX3Qgbm9uU3Bhbm5pbmdJbmxpbmVMZXZlbEJveENv
dW50KCkgY29uc3QgeyByZXR1cm4gbV9ub25TcGFubmluZ0lubGluZUxldmVsQm94Q291bnQ7IH0K
IAogICAgIElubGluZUxheW91dFVuaXQgdHJpbW1hYmxlVHJhaWxpbmdXaWR0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fdHJpbW1hYmxlVHJhaWxpbmdDb250ZW50LndpZHRoKCk7IH0KQEAgLTE1Niw4ICsx
NTYsOCBAQCBwdWJsaWM6CiAgICAgfTsKICAgICB1c2luZyBSdW5MaXN0ID0gVmVjdG9yPFJ1biwg
MTA+OwogICAgIGNvbnN0IFJ1bkxpc3QmIHJ1bnMoKSBjb25zdCB7IHJldHVybiBtX3J1bnM7IH0K
LSAgICB1c2luZyBMaW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRzID0gSGFzaE1hcDxjb25zdCBC
b3gqLCBJbmxpbmVMYXlvdXRVbml0PjsKLSAgICBjb25zdCBMaW5lU3Bhbm5pbmdJbmxpbmVCb3hS
dW5FbmRzJiBsaW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRzKCkgY29uc3QgeyByZXR1cm4gbV9s
aW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRzOyB9CisgICAgdXNpbmcgSW5saW5lQm94TGlzdFdp
dGhDbG9uZWREZWNvcmF0aW9uRW5kID0gSGFzaE1hcDxjb25zdCBCb3gqLCBJbmxpbmVMYXlvdXRV
bml0PjsKKyAgICBjb25zdCBJbmxpbmVCb3hMaXN0V2l0aENsb25lZERlY29yYXRpb25FbmQmIGlu
bGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVuZCgpIGNvbnN0IHsgcmV0dXJuIG1faW5s
aW5lQm94TGlzdFdpdGhDbG9uZWREZWNvcmF0aW9uRW5kOyB9CiAKIHByaXZhdGU6CiAgICAgSW5s
aW5lTGF5b3V0VW5pdCBsYXN0UnVuTG9naWNhbFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9ydW5z
LmlzRW1wdHkoKSA/IDAuMGYgOiBtX3J1bnMubGFzdCgpLmxvZ2ljYWxSaWdodCgpOyB9CkBAIC0y
MjAsOCArMjIwLDggQEAgcHJpdmF0ZToKICAgICBJbmxpbmVMYXlvdXRVbml0IG1fY29udGVudExv
Z2ljYWxXaWR0aCB7IDAgfTsKICAgICBzaXplX3QgbV9ub25TcGFubmluZ0lubGluZUxldmVsQm94
Q291bnQgeyAwIH07CiAgICAgc3RkOjpvcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiBtX3RyYWls
aW5nU29mdEh5cGhlbldpZHRoIHsgMCB9OwotICAgIExpbmVTcGFubmluZ0lubGluZUJveFJ1bkVu
ZHMgbV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRzOwotICAgIElubGluZUxheW91dFVuaXQg
bV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRXaWR0aCB7IDAgfTsKKyAgICBJbmxpbmVCb3hM
aXN0V2l0aENsb25lZERlY29yYXRpb25FbmQgbV9pbmxpbmVCb3hMaXN0V2l0aENsb25lZERlY29y
YXRpb25FbmQ7CisgICAgSW5saW5lTGF5b3V0VW5pdCBtX2Nsb25lZEVuZERlY29yYXRpb25XaWR0
aEZvcklubGluZUJveFJ1bnMgeyAwIH07CiB9OwogCiBpbmxpbmUgdm9pZCBMaW5lOjpUcmltbWFi
bGVUcmFpbGluZ0NvbnRlbnQ6OnJlc2V0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmVCb3hCdWlsZGVyLmNwcAppbmRleCBjMmVlYjE0NmY4MjAuLmE2MDQ4OGUxMmJkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lTGluZUJveEJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcApAQCAtMzEwLDcgKzMx
MCwxNCBAQCBJbmxpbmVMYXlvdXRVbml0IExpbmVCb3hCdWlsZGVyOjpjb25zdHJ1Y3RBbmRBbGln
bklubGluZUxldmVsQm94ZXMoTGluZUJveCYgbGluZQogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKHJ1bi5pc0xpbmVTcGFubmluZ0lubGluZUJveFN0YXJ0KCkp
IHsKLSAgICAgICAgICAgIGF1dG8gaW5saW5lQm94ID0gSW5saW5lTGV2ZWxCb3g6OmNyZWF0ZUlu
bGluZUJveChsYXlvdXRCb3gsIHN0eWxlLCBsb2dpY2FsTGVmdCwgcm9vdElubGluZUJveC5sb2dp
Y2FsV2lkdGgoKSwgSW5saW5lTGV2ZWxCb3g6OkxpbmVTcGFubmluZ0lubGluZUJveDo6WWVzKTsK
KyAgICAgICAgICAgIGF1dG8gbWFyZ2luU3RhcnQgPSBJbmxpbmVMYXlvdXRVbml0IHsgfTsKKyNp
ZiBFTkFCTEUoQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKQorICAgICAgICAgICAgaWYgKHN0eWxl
LmJveERlY29yYXRpb25CcmVhaygpID09IEJveERlY29yYXRpb25CcmVhazo6Q2xvbmUpCisgICAg
ICAgICAgICAgICAgbWFyZ2luU3RhcnQgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9y
Qm94KGxheW91dEJveCkubWFyZ2luU3RhcnQoKTsKKyNlbmRpZgorICAgICAgICAgICAgYXV0byBh
ZGp1c3RlZExvZ2ljYWxTdGFydCA9IGxvZ2ljYWxMZWZ0ICsgbWFyZ2luU3RhcnQ7CisgICAgICAg
ICAgICBhdXRvIGxvZ2ljYWxXaWR0aCA9IHJvb3RJbmxpbmVCb3gubG9naWNhbFdpZHRoKCkgLSBh
ZGp1c3RlZExvZ2ljYWxTdGFydDsKKyAgICAgICAgICAgIGF1dG8gaW5saW5lQm94ID0gSW5saW5l
TGV2ZWxCb3g6OmNyZWF0ZUlubGluZUJveChsYXlvdXRCb3gsIHN0eWxlLCBhZGp1c3RlZExvZ2lj
YWxTdGFydCwgbG9naWNhbFdpZHRoLCBJbmxpbmVMZXZlbEJveDo6TGluZVNwYW5uaW5nSW5saW5l
Qm94OjpZZXMpOwogICAgICAgICAgICAgc2V0SW5pdGlhbFZlcnRpY2FsR2VvbWV0cnlGb3JJbmxp
bmVCb3goaW5saW5lQm94KTsKICAgICAgICAgICAgIHVwZGF0ZUNhblVzZVNpbXBsaWZpZWRBbGln
bm1lbnQoaW5saW5lQm94KTsKICAgICAgICAgICAgIGxpbmVCb3guYWRkSW5saW5lTGV2ZWxCb3go
V1RGTW92ZShpbmxpbmVCb3gpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVy
LmNwcAppbmRleCA0NzU4YzA2M2ZhYWYuLmRlMzFkYzA3ZjY5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcApAQCAtNzM1LDEyICs3MzUsMTIgQEAgTGluZUJ1aWxk
ZXI6OlJlc3VsdCBMaW5lQnVpbGRlcjo6aGFuZGxlSW5saW5lQ29udGVudChJbmxpbmVDb250ZW50
QnJlYWtlciYgaW5saW4KICAgICB9KCk7CiAgICAgYXV0byBhdmFpbGFibGVXaWR0aCA9IFsmXSB7
CiAgICAgICAgIGF1dG8gbGluZUNvbnRlbnRMb2dpY2FsV2lkdGggPSBtX2xpbmUuY29udGVudExv
Z2ljYWxXaWR0aCgpOwotICAgICAgICBhdXRvJiBsaW5lU3Bhbm5pbmdJbmxpbmVCb3hFbmRzID0g
bV9saW5lLmxpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMoKTsKLSAgICAgICAgaWYgKCFsaW5l
U3Bhbm5pbmdJbmxpbmVCb3hFbmRzLmlzRW1wdHkoKSAmJiBpbmxpbmVDb250ZW50Lmhhc0lubGlu
ZUxldmVsQm94KCkpIHsKKyAgICAgICAgYXV0byYgaW5saW5lQm94TGlzdFdpdGhDbG9uZWREZWNv
cmF0aW9uRW5kID0gbV9saW5lLmlubGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVuZCgp
OworICAgICAgICBpZiAoIWlubGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVuZC5pc0Vt
cHR5KCkgJiYgaW5saW5lQ29udGVudC5oYXNJbmxpbmVMZXZlbEJveCgpKSB7CiAgICAgICAgICAg
ICAvLyBXZSBtYXkgdHJ5IHRvIGNvbW1pdCBhIGxpbmUgc3Bhbm5pbmcgaW5saW5lIGJveCBlbmQg
aGVyZS4gTGV0J3Mgbm90IGFjY291bnQgZm9yIGl0cyBsb2dpY2FsIHdpZHRoIHR3aWNlLgogICAg
ICAgICAgICAgZm9yIChhdXRvJiBydW4gOiBjb250aW51b3VzSW5saW5lQ29udGVudC5ydW5zKCkp
IHsKICAgICAgICAgICAgICAgICBpZiAocnVuLmlubGluZUl0ZW0uaXNJbmxpbmVCb3hFbmQoKSkK
LSAgICAgICAgICAgICAgICAgICAgbGluZUNvbnRlbnRMb2dpY2FsV2lkdGggLT0gbGluZVNwYW5u
aW5nSW5saW5lQm94RW5kcy5nZXQoJnJ1bi5pbmxpbmVJdGVtLmxheW91dEJveCgpKTsKKyAgICAg
ICAgICAgICAgICAgICAgbGluZUNvbnRlbnRMb2dpY2FsV2lkdGggLT0gaW5saW5lQm94TGlzdFdp
dGhDbG9uZWREZWNvcmF0aW9uRW5kLmdldCgmcnVuLmlubGluZUl0ZW0ubGF5b3V0Qm94KCkpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGF1dG8gYXZhaWxhYmxlV2lkdGhGb3JD
b250ZW50ID0gbGluZUxvZ2ljYWxSZWN0Rm9yQ2FuZGlkYXRlQ29udGVudC53aWR0aCgpIC0gbGlu
ZUNvbnRlbnRMb2dpY2FsV2lkdGg7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441515</attachid>
            <date>2021-10-16 20:13:09 -0700</date>
            <delta_ts>2021-10-18 15:22:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>11918</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">Y29tbWl0IDY1MzZiOTcyZDFiZDZlYjhiNDkwYmQ5YjRkNjllODQyNzM3YzA1OWYKQXV0aG9yOiBa
YWxhbiBCdWp0YXMgPHphbGFuQGFwcGxlLmNvbT4KRGF0ZTogICBTYXQgT2N0IDE2IDIwOjEyOjI2
IDIwMjEgLTA3MDAKCiAgICBmaW5hbAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlM2MzOGVjMGU2NmUuLjM5NGM2
YjVkZjQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTEwLTE2ICBBbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIEFkanVzdCB0aGUg
bG9naWNhbCByaWdodCBzaWRlIG9mIHRoZSBsaW5lIHdoZW4gYm94LWRlY29yYXRpb24tYnJlYWs6
IGNsb25lIGlzIHByZXNlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTg3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciAiYm94LWRlY29yYXRpb24tYnJl
YWs6IGNsb25lIiBjYXNlcyB3aGVuIHRoZSBpbmxpbmUgYm94IGlzIGVpdGhlciBub3QgbGluZSBz
cGFubmluZyBvcgorICAgICAgICBpdCBzaG93cyB1cCBmaXJzdCBvbiB0aGUgbGluZS4KKworICAg
ICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjppbml0aWFsaXplKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGluZTo6YXBwZW5kSW5saW5lQm94U3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lOjphcHBlbmRJbmxpbmVCb3hFbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lOjphcHBlbmRUZXh0Q29udGVudCk6CisgICAgICAgICogbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMaW5lOjpjb250ZW50TG9naWNhbFJpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6TGluZTo6aW5saW5lQm94TGlzdFdpdGhDbG9uZWREZWNvcmF0aW9uRW5kIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6bGluZVNwYW5uaW5nSW5saW5l
Qm94UnVuRW5kcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lQm94QnVpbGRlcjo6Y29uc3RydWN0QW5kQWxpZ25JbmxpbmVMZXZlbEJv
eGVzKToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVM
aW5lQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjpo
YW5kbGVJbmxpbmVDb250ZW50KToKKwogMjAyMS0xMC0xNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBBZGp1c3QgdGhlIGxvZ2ljYWwgcmlnaHQg
c2lkZSBvZiB0aGUgbGluZSB3aXRoIGxpbmUgc3Bhbm5pbmcgaW5saW5lIGJveGVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUxpbmUuY3BwCmluZGV4IDE2ZTNlMmM3YzUwYS4uODExYmFhYmVmYmM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcApAQCAtNTIsOCArNTIsOCBAQCBMaW5lOjp+TGluZSgp
CiAKIHZvaWQgTGluZTo6aW5pdGlhbGl6ZShjb25zdCBWZWN0b3I8SW5saW5lSXRlbT4mIGxpbmVT
cGFubmluZ0lubGluZUJveGVzKQogewotICAgIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5k
cy5jbGVhcigpOwotICAgIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kV2lkdGggPSB7IH07
CisgICAgbV9pbmxpbmVCb3hMaXN0V2l0aENsb25lZERlY29yYXRpb25FbmQuY2xlYXIoKTsKKyAg
ICBtX2Nsb25lZEVuZERlY29yYXRpb25XaWR0aEZvcklubGluZUJveFJ1bnMgPSB7IH07CiAgICAg
bV9ub25TcGFubmluZ0lubGluZUxldmVsQm94Q291bnQgPSAwOwogICAgIG1fY29udGVudExvZ2lj
YWxXaWR0aCA9IHsgfTsKICAgICBtX3J1bnMuY2xlYXIoKTsKQEAgLTc5LDggKzc5LDggQEAgdm9p
ZCBMaW5lOjppbml0aWFsaXplKGNvbnN0IFZlY3RvcjxJbmxpbmVJdGVtPiYgbGluZVNwYW5uaW5n
SW5saW5lQm94ZXMpCiAgICAgICAgICAgICBtX2NvbnRlbnRMb2dpY2FsV2lkdGggPSBzdGQ6Om1h
eChtX2NvbnRlbnRMb2dpY2FsV2lkdGgsIHJ1bkxvZ2ljYWxSaWdodCk7CiAKICAgICAgICAgICAg
IGF1dG8gbWFyZ2luQm9yZGVyQW5kUGFkZGluZ0VuZCA9IGlubGluZUJveEdlb21ldHJ5Lm1hcmdp
bkVuZCgpICsgaW5saW5lQm94R2VvbWV0cnkuYm9yZGVyUmlnaHQoKSArIGlubGluZUJveEdlb21l
dHJ5LnBhZGRpbmdSaWdodCgpLnZhbHVlX29yKDBfbHUpOwotICAgICAgICAgICAgbV9saW5lU3Bh
bm5pbmdJbmxpbmVCb3hSdW5FbmRzLmFkZCgmaW5saW5lQm94U3RhcnRJdGVtLmxheW91dEJveCgp
LCBtYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRW5kKTsKLSAgICAgICAgICAgIG1fbGluZVNwYW5uaW5n
SW5saW5lQm94UnVuRW5kV2lkdGggKz0gbWFyZ2luQm9yZGVyQW5kUGFkZGluZ0VuZDsKKyAgICAg
ICAgICAgIG1faW5saW5lQm94TGlzdFdpdGhDbG9uZWREZWNvcmF0aW9uRW5kLmFkZCgmaW5saW5l
Qm94U3RhcnRJdGVtLmxheW91dEJveCgpLCBtYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRW5kKTsKKyAg
ICAgICAgICAgIG1fY2xvbmVkRW5kRGVjb3JhdGlvbldpZHRoRm9ySW5saW5lQm94UnVucyArPSBt
YXJnaW5Cb3JkZXJBbmRQYWRkaW5nRW5kOwogICAgICAgICAgICAgbV9jb250ZW50TG9naWNhbFdp
ZHRoICs9IG1hcmdpbkJvcmRlckFuZFBhZGRpbmdFbmQ7CiAgICAgICAgIH0KICAgICB9OwpAQCAt
Mjc3LDYgKzI3NywxNyBAQCB2b2lkIExpbmU6OmFwcGVuZElubGluZUJveFN0YXJ0KGNvbnN0IElu
bGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJgogICAgIC8vIFRoaXMgaXMg
cmVhbGx5IGp1c3QgYSBwbGFjZWhvbGRlciB0byBtYXJrIHRoZSBzdGFydCBvZiB0aGUgaW5saW5l
IGJveCA8c3Bhbj4uCiAgICAgKyttX25vblNwYW5uaW5nSW5saW5lTGV2ZWxCb3hDb3VudDsKICAg
ICBhcHBlbmROb25CcmVha2FibGVTcGFjZShpbmxpbmVJdGVtLCBzdHlsZSwgbGFzdFJ1bkxvZ2lj
YWxSaWdodCgpLCBsb2dpY2FsV2lkdGgpOworI2lmIEVOQUJMRShDU1NfQk9YX0RFQ09SQVRJT05f
QlJFQUspCisgICAgLy8gQ2hlY2sgaWYgdGhpcyBpbmxpbmUgYm94J3MgZW5kIHNpZGUgdGFrZXMg
dXAgc29tZSBzcGFjZSBvbiB0aGUgbGluZS4KKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3NzLWJyZWFrLyNicmVhay1kZWNvcmF0aW9uCisgICAgLy8gY2xvbmU6IEVhY2ggYm94IGZy
YWdtZW50IGlzIGluZGVwZW5kZW50bHkgd3JhcHBlZCB3aXRoIHRoZSBib3JkZXIsIHBhZGRpbmcs
IGFuZCBtYXJnaW4uCisgICAgaWYgKHN0eWxlLmJveERlY29yYXRpb25CcmVhaygpID09IEJveERl
Y29yYXRpb25CcmVhazo6Q2xvbmUpIHsKKyAgICAgICAgYXV0byYgaW5saW5lQm94R2VvbWV0cnkg
PSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGlubGluZUl0ZW0ubGF5b3V0Qm94
KCkpOworICAgICAgICBhdXRvIG1hcmdpbkJvcmRlckFuZFBhZGRpbmdFbmQgPSBpbmxpbmVCb3hH
ZW9tZXRyeS5tYXJnaW5FbmQoKSArIGlubGluZUJveEdlb21ldHJ5LmJvcmRlclJpZ2h0KCkgKyBp
bmxpbmVCb3hHZW9tZXRyeS5wYWRkaW5nUmlnaHQoKS52YWx1ZV9vcigwX2x1KTsKKyAgICAgICAg
bV9jbG9uZWRFbmREZWNvcmF0aW9uV2lkdGhGb3JJbmxpbmVCb3hSdW5zICs9IG1hcmdpbkJvcmRl
ckFuZFBhZGRpbmdFbmQ7CisgICAgICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCArPSBtYXJnaW5C
b3JkZXJBbmRQYWRkaW5nRW5kOworICAgIH0KKyNlbmRpZgogfQogCiB2b2lkIExpbmU6OmFwcGVu
ZElubGluZUJveEVuZChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKQpAQCAtMjg4LDExICsy
OTksMTEgQEAgdm9pZCBMaW5lOjphcHBlbmRJbmxpbmVCb3hFbmQoY29uc3QgSW5saW5lSXRlbSYg
aW5saW5lSXRlbSwgY29uc3QgUmVuZGVyU3R5bGUmIHMKICAgICAgICAgbV9jb250ZW50TG9naWNh
bFdpZHRoIC09IG1fdHJpbW1hYmxlVHJhaWxpbmdDb250ZW50LnJlbW92ZVBhcnRpYWxseVRyaW1t
YWJsZUNvbnRlbnQoKTsKICAgICB9OwogICAgIGF1dG8gcmVtb3ZlRnJvbUxpbmVTcGFubmluZ0lu
bGluZUJveExpc3RJZkFwcGxpY2FibGUgPSBbJl0gewotICAgICAgICBBU1NFUlQoIW1fbGluZVNw
YW5uaW5nSW5saW5lQm94UnVuRW5kcy5jb250YWlucygmaW5saW5lSXRlbS5sYXlvdXRCb3goKSkg
fHwgbV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRzLmdldCgmaW5saW5lSXRlbS5sYXlvdXRC
b3goKSkgPT0gbG9naWNhbFdpZHRoKTsKLSAgICAgICAgYXV0byBpbmxpbmVCb3hFbmQgPSBtX2xp
bmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMucmVtb3ZlKCZpbmxpbmVJdGVtLmxheW91dEJveCgp
KTsKKyAgICAgICAgQVNTRVJUKCFtX2lubGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVu
ZC5jb250YWlucygmaW5saW5lSXRlbS5sYXlvdXRCb3goKSkgfHwgbV9pbmxpbmVCb3hMaXN0V2l0
aENsb25lZERlY29yYXRpb25FbmQuZ2V0KCZpbmxpbmVJdGVtLmxheW91dEJveCgpKSA9PSBsb2dp
Y2FsV2lkdGgpOworICAgICAgICBhdXRvIGlubGluZUJveEVuZCA9IG1faW5saW5lQm94TGlzdFdp
dGhDbG9uZWREZWNvcmF0aW9uRW5kLnJlbW92ZSgmaW5saW5lSXRlbS5sYXlvdXRCb3goKSk7CiAg
ICAgICAgIC8vIFRoaXMgaW5saW5lIGJveCBlbmQgbm93IGNvbnRyaWJ1dGVzIHRvIHRoZSBsaW5l
IGNvbnRlbnQgd2lkdGggaW4gdGhlIHJlZ3VsYXIgd2F5LgogICAgICAgICBtX2NvbnRlbnRMb2dp
Y2FsV2lkdGggLT0gaW5saW5lQm94RW5kOwotICAgICAgICBtX2xpbmVTcGFubmluZ0lubGluZUJv
eFJ1bkVuZFdpZHRoIC09IGlubGluZUJveEVuZDsKKyAgICAgICAgbV9jbG9uZWRFbmREZWNvcmF0
aW9uV2lkdGhGb3JJbmxpbmVCb3hSdW5zIC09IGlubGluZUJveEVuZDsKICAgICB9OwogICAgIC8v
IFByZXZlbnQgdHJhaWxpbmcgbGV0dGVyLXNwYWNpbmcgZnJvbSBzcGlsbGluZyBvdXQgb2YgdGhl
IGlubGluZSBib3guCiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy10ZXh0LTMv
I2xldHRlci1zcGFjaW5nLXByb3BlcnR5IFNlZSBleGFtcGxlIDIxLgpAQCAtMzQ0LDEwICszNTUs
MTIgQEAgdm9pZCBMaW5lOjphcHBlbmRUZXh0Q29udGVudChjb25zdCBJbmxpbmVUZXh0SXRlbSYg
aW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRlclMKICAgICB9KCk7CiAgICAgYXV0byBvbGRDb250
ZW50TG9naWNhbFdpZHRoID0gY29udGVudExvZ2ljYWxXaWR0aCgpOwogICAgIGlmIChuZWVkc05l
d1J1bikgewotICAgICAgICAvLyBOb3RlLCBuZWdhdGl2ZSB3b3JkcyBzcGFjaW5nIG1heSBjYXVz
ZSBnbHlwaCBvdmVybGFwLgorICAgICAgICAvLyBOb3RlLCBuZWdhdGl2ZSB3b3JkIHNwYWNpbmcg
bWF5IGNhdXNlIGdseXBoIG92ZXJsYXAuCiAgICAgICAgIGF1dG8gcnVuTG9naWNhbExlZnQgPSBs
YXN0UnVuTG9naWNhbFJpZ2h0KCkgKyAoaW5saW5lVGV4dEl0ZW0uaXNXb3JkU2VwYXJhdG9yKCkg
PyBzdHlsZS5mb250Q2FzY2FkZSgpLndvcmRTcGFjaW5nKCkgOiAwLjBmKTsKKyAgICAgICAgYXV0
byBydW5sb2dpY2FsUmlnaHQgPSBydW5Mb2dpY2FsTGVmdCArIGxvZ2ljYWxXaWR0aDsKKyAgICAg
ICAgYXV0byBhZGp1c3RlZExvZ2ljYWxXaWR0aCA9IHN0ZDo6bWF4KDAuMGYsIHJ1bmxvZ2ljYWxS
aWdodCAtIGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSk7CiAgICAgICAgIG1fcnVucy5hcHBlbmQoeyBp
bmxpbmVUZXh0SXRlbSwgc3R5bGUsIHJ1bkxvZ2ljYWxMZWZ0LCBsb2dpY2FsV2lkdGggfSk7Ci0g
ICAgICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCA9IHN0ZDo6bWF4KG9sZENvbnRlbnRMb2dpY2Fs
V2lkdGgsIHJ1bkxvZ2ljYWxMZWZ0ICsgbG9naWNhbFdpZHRoKTsKKyAgICAgICAgbV9jb250ZW50
TG9naWNhbFdpZHRoICs9IGFkanVzdGVkTG9naWNhbFdpZHRoOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIG1fcnVucy5sYXN0KCkuZXhwYW5kKGlubGluZVRleHRJdGVtLCBsb2dpY2FsV2lkdGgpOwog
ICAgICAgICAvLyBEbyBub3QgbGV0IG5lZ2F0aXZlIGxldHRlciBzcGFjaW5nIG1ha2UgdGhlIGNv
bnRlbnQgc2hvcnRlciB0aGFuIGl0IGFscmVhZHkgaXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmgK
aW5kZXggNDk3YTZiOGM1MDY5Li4xMWMzODAwYjQ0MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5l
LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzQ29udGVudCgpIGNvbnN0
IHsgcmV0dXJuICFtX3J1bnMuaXNFbXB0eSgpICYmICFtX3J1bnMubGFzdCgpLmlzTGluZVNwYW5u
aW5nSW5saW5lQm94U3RhcnQoKTsgfQogCiAgICAgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9n
aWNhbFdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50TG9naWNhbFdpZHRoOyB9Ci0gICAg
SW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbGFz
dFJ1bkxvZ2ljYWxSaWdodCgpICsgbV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRXaWR0aDsg
fQorICAgIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0
dXJuIGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSArIG1fY2xvbmVkRW5kRGVjb3JhdGlvbldpZHRoRm9y
SW5saW5lQm94UnVuczsgfQogICAgIHNpemVfdCBub25TcGFubmluZ0lubGluZUxldmVsQm94Q291
bnQoKSBjb25zdCB7IHJldHVybiBtX25vblNwYW5uaW5nSW5saW5lTGV2ZWxCb3hDb3VudDsgfQog
CiAgICAgSW5saW5lTGF5b3V0VW5pdCB0cmltbWFibGVUcmFpbGluZ1dpZHRoKCkgY29uc3QgeyBy
ZXR1cm4gbV90cmltbWFibGVUcmFpbGluZ0NvbnRlbnQud2lkdGgoKTsgfQpAQCAtMTU2LDggKzE1
Niw4IEBAIHB1YmxpYzoKICAgICB9OwogICAgIHVzaW5nIFJ1bkxpc3QgPSBWZWN0b3I8UnVuLCAx
MD47CiAgICAgY29uc3QgUnVuTGlzdCYgcnVucygpIGNvbnN0IHsgcmV0dXJuIG1fcnVuczsgfQot
ICAgIHVzaW5nIExpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMgPSBIYXNoTWFwPGNvbnN0IEJv
eCosIElubGluZUxheW91dFVuaXQ+OwotICAgIGNvbnN0IExpbmVTcGFubmluZ0lubGluZUJveFJ1
bkVuZHMmIGxpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMoKSBjb25zdCB7IHJldHVybiBtX2xp
bmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHM7IH0KKyAgICB1c2luZyBJbmxpbmVCb3hMaXN0V2l0
aENsb25lZERlY29yYXRpb25FbmQgPSBIYXNoTWFwPGNvbnN0IEJveCosIElubGluZUxheW91dFVu
aXQ+OworICAgIGNvbnN0IElubGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVuZCYgaW5s
aW5lQm94TGlzdFdpdGhDbG9uZWREZWNvcmF0aW9uRW5kKCkgY29uc3QgeyByZXR1cm4gbV9pbmxp
bmVCb3hMaXN0V2l0aENsb25lZERlY29yYXRpb25FbmQ7IH0KIAogcHJpdmF0ZToKICAgICBJbmxp
bmVMYXlvdXRVbml0IGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3J1bnMu
aXNFbXB0eSgpID8gMC4wZiA6IG1fcnVucy5sYXN0KCkubG9naWNhbFJpZ2h0KCk7IH0KQEAgLTIy
MCw4ICsyMjAsOCBAQCBwcml2YXRlOgogICAgIElubGluZUxheW91dFVuaXQgbV9jb250ZW50TG9n
aWNhbFdpZHRoIHsgMCB9OwogICAgIHNpemVfdCBtX25vblNwYW5uaW5nSW5saW5lTGV2ZWxCb3hD
b3VudCB7IDAgfTsKICAgICBzdGQ6Om9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IG1fdHJhaWxp
bmdTb2Z0SHlwaGVuV2lkdGggeyAwIH07Ci0gICAgTGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5k
cyBtX2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHM7Ci0gICAgSW5saW5lTGF5b3V0VW5pdCBt
X2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZFdpZHRoIHsgMCB9OworICAgIElubGluZUJveExp
c3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVuZCBtX2lubGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3Jh
dGlvbkVuZDsKKyAgICBJbmxpbmVMYXlvdXRVbml0IG1fY2xvbmVkRW5kRGVjb3JhdGlvbldpZHRo
Rm9ySW5saW5lQm94UnVucyB7IDAgfTsKIH07CiAKIGlubGluZSB2b2lkIExpbmU6OlRyaW1tYWJs
ZVRyYWlsaW5nQ29udGVudDo6cmVzZXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGlu
ZUJveEJ1aWxkZXIuY3BwCmluZGV4IGMyZWViMTQ2ZjgyMC4uYTYwNDg4ZTEyYmQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lQm94QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3BwCkBAIC0zMTAsNyArMzEw
LDE0IEBAIElubGluZUxheW91dFVuaXQgTGluZUJveEJ1aWxkZXI6OmNvbnN0cnVjdEFuZEFsaWdu
SW5saW5lTGV2ZWxCb3hlcyhMaW5lQm94JiBsaW5lCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogICAgICAgICBpZiAocnVuLmlzTGluZVNwYW5uaW5nSW5saW5lQm94U3RhcnQoKSkg
ewotICAgICAgICAgICAgYXV0byBpbmxpbmVCb3ggPSBJbmxpbmVMZXZlbEJveDo6Y3JlYXRlSW5s
aW5lQm94KGxheW91dEJveCwgc3R5bGUsIGxvZ2ljYWxMZWZ0LCByb290SW5saW5lQm94LmxvZ2lj
YWxXaWR0aCgpLCBJbmxpbmVMZXZlbEJveDo6TGluZVNwYW5uaW5nSW5saW5lQm94OjpZZXMpOwor
ICAgICAgICAgICAgYXV0byBtYXJnaW5TdGFydCA9IElubGluZUxheW91dFVuaXQgeyB9OworI2lm
IEVOQUJMRShDU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspCisgICAgICAgICAgICBpZiAoc3R5bGUu
Ym94RGVjb3JhdGlvbkJyZWFrKCkgPT0gQm94RGVjb3JhdGlvbkJyZWFrOjpDbG9uZSkKKyAgICAg
ICAgICAgICAgICBtYXJnaW5TdGFydCA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JC
b3gobGF5b3V0Qm94KS5tYXJnaW5TdGFydCgpOworI2VuZGlmCisgICAgICAgICAgICBhdXRvIGFk
anVzdGVkTG9naWNhbFN0YXJ0ID0gbG9naWNhbExlZnQgKyBtYXJnaW5TdGFydDsKKyAgICAgICAg
ICAgIGF1dG8gbG9naWNhbFdpZHRoID0gcm9vdElubGluZUJveC5sb2dpY2FsV2lkdGgoKSAtIGFk
anVzdGVkTG9naWNhbFN0YXJ0OworICAgICAgICAgICAgYXV0byBpbmxpbmVCb3ggPSBJbmxpbmVM
ZXZlbEJveDo6Y3JlYXRlSW5saW5lQm94KGxheW91dEJveCwgc3R5bGUsIGFkanVzdGVkTG9naWNh
bFN0YXJ0LCBsb2dpY2FsV2lkdGgsIElubGluZUxldmVsQm94OjpMaW5lU3Bhbm5pbmdJbmxpbmVC
b3g6Olllcyk7CiAgICAgICAgICAgICBzZXRJbml0aWFsVmVydGljYWxHZW9tZXRyeUZvcklubGlu
ZUJveChpbmxpbmVCb3gpOwogICAgICAgICAgICAgdXBkYXRlQ2FuVXNlU2ltcGxpZmllZEFsaWdu
bWVudChpbmxpbmVCb3gpOwogICAgICAgICAgICAgbGluZUJveC5hZGRJbmxpbmVMZXZlbEJveChX
VEZNb3ZlKGlubGluZUJveCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIu
Y3BwCmluZGV4IDM1M2QzZjBjMmI4Ny4uNWFmY2QzMTVkMjM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCkBAIC03MzUsMTIgKzczNSwxMiBAQCBMaW5lQnVpbGRl
cjo6UmVzdWx0IExpbmVCdWlsZGVyOjpoYW5kbGVJbmxpbmVDb250ZW50KElubGluZUNvbnRlbnRC
cmVha2VyJiBpbmxpbgogICAgIH0oKTsKICAgICBhdXRvIGF2YWlsYWJsZVdpZHRoID0gWyZdIHsK
ICAgICAgICAgYXV0byBjb250ZW50TG9naWNhbFJpZ2h0ID0gbV9saW5lLmNvbnRlbnRMb2dpY2Fs
UmlnaHQoKTsKLSAgICAgICAgYXV0byYgbGluZVNwYW5uaW5nSW5saW5lQm94RW5kcyA9IG1fbGlu
ZS5saW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRzKCk7Ci0gICAgICAgIGlmICghbGluZVNwYW5u
aW5nSW5saW5lQm94RW5kcy5pc0VtcHR5KCkgJiYgaW5saW5lQ29udGVudC5oYXNJbmxpbmVMZXZl
bEJveCgpKSB7CisgICAgICAgIGF1dG8mIGlubGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlv
bkVuZCA9IG1fbGluZS5pbmxpbmVCb3hMaXN0V2l0aENsb25lZERlY29yYXRpb25FbmQoKTsKKyAg
ICAgICAgaWYgKCFpbmxpbmVCb3hMaXN0V2l0aENsb25lZERlY29yYXRpb25FbmQuaXNFbXB0eSgp
ICYmIGlubGluZUNvbnRlbnQuaGFzSW5saW5lTGV2ZWxCb3goKSkgewogICAgICAgICAgICAgLy8g
V2UgbWF5IHRyeSB0byBjb21taXQgYSBsaW5lIHNwYW5uaW5nIGlubGluZSBib3ggZW5kIGhlcmUu
IExldCdzIG5vdCBhY2NvdW50IGZvciBpdHMgbG9naWNhbCB3aWR0aCB0d2ljZS4KICAgICAgICAg
ICAgIGZvciAoYXV0byYgcnVuIDogY29udGludW91c0lubGluZUNvbnRlbnQucnVucygpKSB7CiAg
ICAgICAgICAgICAgICAgaWYgKHJ1bi5pbmxpbmVJdGVtLmlzSW5saW5lQm94RW5kKCkpCi0gICAg
ICAgICAgICAgICAgICAgIGNvbnRlbnRMb2dpY2FsUmlnaHQgLT0gbGluZVNwYW5uaW5nSW5saW5l
Qm94RW5kcy5nZXQoJnJ1bi5pbmxpbmVJdGVtLmxheW91dEJveCgpKTsKKyAgICAgICAgICAgICAg
ICAgICAgY29udGVudExvZ2ljYWxSaWdodCAtPSBpbmxpbmVCb3hMaXN0V2l0aENsb25lZERlY29y
YXRpb25FbmQuZ2V0KCZydW4uaW5saW5lSXRlbS5sYXlvdXRCb3goKSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICAgICAgYXV0byBhdmFpbGFibGVXaWR0aEZvckNvbnRlbnQgPSBsaW5l
TG9naWNhbFJlY3RGb3JDYW5kaWRhdGVDb250ZW50LndpZHRoKCkgLSBjb250ZW50TG9naWNhbFJp
Z2h0Owo=
</data>
<flag name="review"
          id="465823"
          type_id="1"
          status="+"
          setter="koivisto"
    />
    <flag name="commit-queue"
          id="465827"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441644</attachid>
            <date>2021-10-18 15:22:53 -0700</date>
            <delta_ts>2021-10-18 15:28:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>33544</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">Y29tbWl0IDY1MzZiOTcyZDFiZDZlYjhiNDkwYmQ5YjRkNjllODQyNzM3YzA1OWYKQXV0aG9yOiBa
YWxhbiBCdWp0YXMgPHphbGFuQGFwcGxlLmNvbT4KRGF0ZTogICBTYXQgT2N0IDE2IDIwOjEyOjI2
IDIwMjEgLTA3MDAKCiAgICBmaW5hbAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlM2MzOGVjMGU2NmUuLjM5NGM2
YjVkZjQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTEwLTE2ICBBbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIEFkanVzdCB0aGUg
bG9naWNhbCByaWdodCBzaWRlIG9mIHRoZSBsaW5lIHdoZW4gYm94LWRlY29yYXRpb24tYnJlYWs6
IGNsb25lIGlzIHByZXNlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTg3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciAiYm94LWRlY29yYXRpb24tYnJl
YWs6IGNsb25lIiBjYXNlcyB3aGVuIHRoZSBpbmxpbmUgYm94IGlzIGVpdGhlciBub3QgbGluZSBz
cGFubmluZyBvcgorICAgICAgICBpdCBzaG93cyB1cCBmaXJzdCBvbiB0aGUgbGluZS4KKworICAg
ICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjppbml0aWFsaXplKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGluZTo6YXBwZW5kSW5saW5lQm94U3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lOjphcHBlbmRJbmxpbmVCb3hFbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lOjphcHBlbmRUZXh0Q29udGVudCk6CisgICAgICAgICogbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMaW5lOjpjb250ZW50TG9naWNhbFJpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6TGluZTo6aW5saW5lQm94TGlzdFdpdGhDbG9uZWREZWNvcmF0aW9uRW5kIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6bGluZVNwYW5uaW5nSW5saW5l
Qm94UnVuRW5kcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lQm94QnVpbGRlcjo6Y29uc3RydWN0QW5kQWxpZ25JbmxpbmVMZXZlbEJv
eGVzKToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVM
aW5lQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjpo
YW5kbGVJbmxpbmVDb250ZW50KToKKwogMjAyMS0xMC0xNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBBZGp1c3QgdGhlIGxvZ2ljYWwgcmlnaHQg
c2lkZSBvZiB0aGUgbGluZSB3aXRoIGxpbmUgc3Bhbm5pbmcgaW5saW5lIGJveGVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUxpbmUuY3BwCmluZGV4IDE2ZTNlMmM3YzUwYS4uODExYmFhYmVmYmM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcApAQCAtNTIsOCArNTIsOCBAQCBMaW5lOjp+TGluZSgp
CiAKIHZvaWQgTGluZTo6aW5pdGlhbGl6ZShjb25zdCBWZWN0b3I8SW5saW5lSXRlbT4mIGxpbmVT
cGFubmluZ0lubGluZUJveGVzKQogewotICAgIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5k
cy5jbGVhcigpOwotICAgIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kV2lkdGggPSB7IH07
CisgICAgbV9pbmxpbmVCb3hMaXN0V2l0aENsb25lZERlY29yYXRpb25FbmQuY2xlYXIoKTsKKyAg
ICBtX2Nsb25lZEVuZERlY29yYXRpb25XaWR0aEZvcklubGluZUJveFJ1bnMgPSB7IH07CiAgICAg
bV9ub25TcGFubmluZ0lubGluZUxldmVsQm94Q291bnQgPSAwOwogICAgIG1fY29udGVudExvZ2lj
YWxXaWR0aCA9IHsgfTsKICAgICBtX3J1bnMuY2xlYXIoKTsKQEAgLTc5LDggKzc5LDggQEAgdm9p
ZCBMaW5lOjppbml0aWFsaXplKGNvbnN0IFZlY3RvcjxJbmxpbmVJdGVtPiYgbGluZVNwYW5uaW5n
SW5saW5lQm94ZXMpCiAgICAgICAgICAgICBtX2NvbnRlbnRMb2dpY2FsV2lkdGggPSBzdGQ6Om1h
eChtX2NvbnRlbnRMb2dpY2FsV2lkdGgsIHJ1bkxvZ2ljYWxSaWdodCk7CiAKICAgICAgICAgICAg
IGF1dG8gbWFyZ2luQm9yZGVyQW5kUGFkZGluZ0VuZCA9IGlubGluZUJveEdlb21ldHJ5Lm1hcmdp
bkVuZCgpICsgaW5saW5lQm94R2VvbWV0cnkuYm9yZGVyUmlnaHQoKSArIGlubGluZUJveEdlb21l
dHJ5LnBhZGRpbmdSaWdodCgpLnZhbHVlX29yKDBfbHUpOwotICAgICAgICAgICAgbV9saW5lU3Bh
bm5pbmdJbmxpbmVCb3hSdW5FbmRzLmFkZCgmaW5saW5lQm94U3RhcnRJdGVtLmxheW91dEJveCgp
LCBtYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRW5kKTsKLSAgICAgICAgICAgIG1fbGluZVNwYW5uaW5n
SW5saW5lQm94UnVuRW5kV2lkdGggKz0gbWFyZ2luQm9yZGVyQW5kUGFkZGluZ0VuZDsKKyAgICAg
ICAgICAgIG1faW5saW5lQm94TGlzdFdpdGhDbG9uZWREZWNvcmF0aW9uRW5kLmFkZCgmaW5saW5l
Qm94U3RhcnRJdGVtLmxheW91dEJveCgpLCBtYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRW5kKTsKKyAg
ICAgICAgICAgIG1fY2xvbmVkRW5kRGVjb3JhdGlvbldpZHRoRm9ySW5saW5lQm94UnVucyArPSBt
YXJnaW5Cb3JkZXJBbmRQYWRkaW5nRW5kOwogICAgICAgICAgICAgbV9jb250ZW50TG9naWNhbFdp
ZHRoICs9IG1hcmdpbkJvcmRlckFuZFBhZGRpbmdFbmQ7CiAgICAgICAgIH0KICAgICB9OwpAQCAt
Mjc3LDYgKzI3NywxNyBAQCB2b2lkIExpbmU6OmFwcGVuZElubGluZUJveFN0YXJ0KGNvbnN0IElu
bGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJgogICAgIC8vIFRoaXMgaXMg
cmVhbGx5IGp1c3QgYSBwbGFjZWhvbGRlciB0byBtYXJrIHRoZSBzdGFydCBvZiB0aGUgaW5saW5l
IGJveCA8c3Bhbj4uCiAgICAgKyttX25vblNwYW5uaW5nSW5saW5lTGV2ZWxCb3hDb3VudDsKICAg
ICBhcHBlbmROb25CcmVha2FibGVTcGFjZShpbmxpbmVJdGVtLCBzdHlsZSwgbGFzdFJ1bkxvZ2lj
YWxSaWdodCgpLCBsb2dpY2FsV2lkdGgpOworI2lmIEVOQUJMRShDU1NfQk9YX0RFQ09SQVRJT05f
QlJFQUspCisgICAgLy8gQ2hlY2sgaWYgdGhpcyBpbmxpbmUgYm94J3MgZW5kIHNpZGUgdGFrZXMg
dXAgc29tZSBzcGFjZSBvbiB0aGUgbGluZS4KKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3NzLWJyZWFrLyNicmVhay1kZWNvcmF0aW9uCisgICAgLy8gY2xvbmU6IEVhY2ggYm94IGZy
YWdtZW50IGlzIGluZGVwZW5kZW50bHkgd3JhcHBlZCB3aXRoIHRoZSBib3JkZXIsIHBhZGRpbmcs
IGFuZCBtYXJnaW4uCisgICAgaWYgKHN0eWxlLmJveERlY29yYXRpb25CcmVhaygpID09IEJveERl
Y29yYXRpb25CcmVhazo6Q2xvbmUpIHsKKyAgICAgICAgYXV0byYgaW5saW5lQm94R2VvbWV0cnkg
PSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGlubGluZUl0ZW0ubGF5b3V0Qm94
KCkpOworICAgICAgICBhdXRvIG1hcmdpbkJvcmRlckFuZFBhZGRpbmdFbmQgPSBpbmxpbmVCb3hH
ZW9tZXRyeS5tYXJnaW5FbmQoKSArIGlubGluZUJveEdlb21ldHJ5LmJvcmRlclJpZ2h0KCkgKyBp
bmxpbmVCb3hHZW9tZXRyeS5wYWRkaW5nUmlnaHQoKS52YWx1ZV9vcigwX2x1KTsKKyAgICAgICAg
bV9jbG9uZWRFbmREZWNvcmF0aW9uV2lkdGhGb3JJbmxpbmVCb3hSdW5zICs9IG1hcmdpbkJvcmRl
ckFuZFBhZGRpbmdFbmQ7CisgICAgICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCArPSBtYXJnaW5C
b3JkZXJBbmRQYWRkaW5nRW5kOworICAgIH0KKyNlbmRpZgogfQogCiB2b2lkIExpbmU6OmFwcGVu
ZElubGluZUJveEVuZChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKQpAQCAtMjg4LDExICsy
OTksMTEgQEAgdm9pZCBMaW5lOjphcHBlbmRJbmxpbmVCb3hFbmQoY29uc3QgSW5saW5lSXRlbSYg
aW5saW5lSXRlbSwgY29uc3QgUmVuZGVyU3R5bGUmIHMKICAgICAgICAgbV9jb250ZW50TG9naWNh
bFdpZHRoIC09IG1fdHJpbW1hYmxlVHJhaWxpbmdDb250ZW50LnJlbW92ZVBhcnRpYWxseVRyaW1t
YWJsZUNvbnRlbnQoKTsKICAgICB9OwogICAgIGF1dG8gcmVtb3ZlRnJvbUxpbmVTcGFubmluZ0lu
bGluZUJveExpc3RJZkFwcGxpY2FibGUgPSBbJl0gewotICAgICAgICBBU1NFUlQoIW1fbGluZVNw
YW5uaW5nSW5saW5lQm94UnVuRW5kcy5jb250YWlucygmaW5saW5lSXRlbS5sYXlvdXRCb3goKSkg
fHwgbV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRzLmdldCgmaW5saW5lSXRlbS5sYXlvdXRC
b3goKSkgPT0gbG9naWNhbFdpZHRoKTsKLSAgICAgICAgYXV0byBpbmxpbmVCb3hFbmQgPSBtX2xp
bmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMucmVtb3ZlKCZpbmxpbmVJdGVtLmxheW91dEJveCgp
KTsKKyAgICAgICAgQVNTRVJUKCFtX2lubGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVu
ZC5jb250YWlucygmaW5saW5lSXRlbS5sYXlvdXRCb3goKSkgfHwgbV9pbmxpbmVCb3hMaXN0V2l0
aENsb25lZERlY29yYXRpb25FbmQuZ2V0KCZpbmxpbmVJdGVtLmxheW91dEJveCgpKSA9PSBsb2dp
Y2FsV2lkdGgpOworICAgICAgICBhdXRvIGlubGluZUJveEVuZCA9IG1faW5saW5lQm94TGlzdFdp
dGhDbG9uZWREZWNvcmF0aW9uRW5kLnJlbW92ZSgmaW5saW5lSXRlbS5sYXlvdXRCb3goKSk7CiAg
ICAgICAgIC8vIFRoaXMgaW5saW5lIGJveCBlbmQgbm93IGNvbnRyaWJ1dGVzIHRvIHRoZSBsaW5l
IGNvbnRlbnQgd2lkdGggaW4gdGhlIHJlZ3VsYXIgd2F5LgogICAgICAgICBtX2NvbnRlbnRMb2dp
Y2FsV2lkdGggLT0gaW5saW5lQm94RW5kOwotICAgICAgICBtX2xpbmVTcGFubmluZ0lubGluZUJv
eFJ1bkVuZFdpZHRoIC09IGlubGluZUJveEVuZDsKKyAgICAgICAgbV9jbG9uZWRFbmREZWNvcmF0
aW9uV2lkdGhGb3JJbmxpbmVCb3hSdW5zIC09IGlubGluZUJveEVuZDsKICAgICB9OwogICAgIC8v
IFByZXZlbnQgdHJhaWxpbmcgbGV0dGVyLXNwYWNpbmcgZnJvbSBzcGlsbGluZyBvdXQgb2YgdGhl
IGlubGluZSBib3guCiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy10ZXh0LTMv
I2xldHRlci1zcGFjaW5nLXByb3BlcnR5IFNlZSBleGFtcGxlIDIxLgpAQCAtMzQ0LDEwICszNTUs
MTIgQEAgdm9pZCBMaW5lOjphcHBlbmRUZXh0Q29udGVudChjb25zdCBJbmxpbmVUZXh0SXRlbSYg
aW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRlclMKICAgICB9KCk7CiAgICAgYXV0byBvbGRDb250
ZW50TG9naWNhbFdpZHRoID0gY29udGVudExvZ2ljYWxXaWR0aCgpOwogICAgIGlmIChuZWVkc05l
d1J1bikgewotICAgICAgICAvLyBOb3RlLCBuZWdhdGl2ZSB3b3JkcyBzcGFjaW5nIG1heSBjYXVz
ZSBnbHlwaCBvdmVybGFwLgorICAgICAgICAvLyBOb3RlLCBuZWdhdGl2ZSB3b3JkIHNwYWNpbmcg
bWF5IGNhdXNlIGdseXBoIG92ZXJsYXAuCiAgICAgICAgIGF1dG8gcnVuTG9naWNhbExlZnQgPSBs
YXN0UnVuTG9naWNhbFJpZ2h0KCkgKyAoaW5saW5lVGV4dEl0ZW0uaXNXb3JkU2VwYXJhdG9yKCkg
PyBzdHlsZS5mb250Q2FzY2FkZSgpLndvcmRTcGFjaW5nKCkgOiAwLjBmKTsKKyAgICAgICAgYXV0
byBydW5sb2dpY2FsUmlnaHQgPSBydW5Mb2dpY2FsTGVmdCArIGxvZ2ljYWxXaWR0aDsKKyAgICAg
ICAgYXV0byBhZGp1c3RlZExvZ2ljYWxXaWR0aCA9IHN0ZDo6bWF4KDAuMGYsIHJ1bmxvZ2ljYWxS
aWdodCAtIGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSk7CiAgICAgICAgIG1fcnVucy5hcHBlbmQoeyBp
bmxpbmVUZXh0SXRlbSwgc3R5bGUsIHJ1bkxvZ2ljYWxMZWZ0LCBsb2dpY2FsV2lkdGggfSk7Ci0g
ICAgICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCA9IHN0ZDo6bWF4KG9sZENvbnRlbnRMb2dpY2Fs
V2lkdGgsIHJ1bkxvZ2ljYWxMZWZ0ICsgbG9naWNhbFdpZHRoKTsKKyAgICAgICAgbV9jb250ZW50
TG9naWNhbFdpZHRoICs9IGFkanVzdGVkTG9naWNhbFdpZHRoOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIG1fcnVucy5sYXN0KCkuZXhwYW5kKGlubGluZVRleHRJdGVtLCBsb2dpY2FsV2lkdGgpOwog
ICAgICAgICAvLyBEbyBub3QgbGV0IG5lZ2F0aXZlIGxldHRlciBzcGFjaW5nIG1ha2UgdGhlIGNv
bnRlbnQgc2hvcnRlciB0aGFuIGl0IGFscmVhZHkgaXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmgK
aW5kZXggNDk3YTZiOGM1MDY5Li4xMWMzODAwYjQ0MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5l
LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzQ29udGVudCgpIGNvbnN0
IHsgcmV0dXJuICFtX3J1bnMuaXNFbXB0eSgpICYmICFtX3J1bnMubGFzdCgpLmlzTGluZVNwYW5u
aW5nSW5saW5lQm94U3RhcnQoKTsgfQogCiAgICAgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9n
aWNhbFdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50TG9naWNhbFdpZHRoOyB9Ci0gICAg
SW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbGFz
dFJ1bkxvZ2ljYWxSaWdodCgpICsgbV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRXaWR0aDsg
fQorICAgIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0
dXJuIGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSArIG1fY2xvbmVkRW5kRGVjb3JhdGlvbldpZHRoRm9y
SW5saW5lQm94UnVuczsgfQogICAgIHNpemVfdCBub25TcGFubmluZ0lubGluZUxldmVsQm94Q291
bnQoKSBjb25zdCB7IHJldHVybiBtX25vblNwYW5uaW5nSW5saW5lTGV2ZWxCb3hDb3VudDsgfQog
CiAgICAgSW5saW5lTGF5b3V0VW5pdCB0cmltbWFibGVUcmFpbGluZ1dpZHRoKCkgY29uc3QgeyBy
ZXR1cm4gbV90cmltbWFibGVUcmFpbGluZ0NvbnRlbnQud2lkdGgoKTsgfQpAQCAtMTU2LDggKzE1
Niw4IEBAIHB1YmxpYzoKICAgICB9OwogICAgIHVzaW5nIFJ1bkxpc3QgPSBWZWN0b3I8UnVuLCAx
MD47CiAgICAgY29uc3QgUnVuTGlzdCYgcnVucygpIGNvbnN0IHsgcmV0dXJuIG1fcnVuczsgfQot
ICAgIHVzaW5nIExpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMgPSBIYXNoTWFwPGNvbnN0IEJv
eCosIElubGluZUxheW91dFVuaXQ+OwotICAgIGNvbnN0IExpbmVTcGFubmluZ0lubGluZUJveFJ1
bkVuZHMmIGxpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMoKSBjb25zdCB7IHJldHVybiBtX2xp
bmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHM7IH0KKyAgICB1c2luZyBJbmxpbmVCb3hMaXN0V2l0
aENsb25lZERlY29yYXRpb25FbmQgPSBIYXNoTWFwPGNvbnN0IEJveCosIElubGluZUxheW91dFVu
aXQ+OworICAgIGNvbnN0IElubGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVuZCYgaW5s
aW5lQm94TGlzdFdpdGhDbG9uZWREZWNvcmF0aW9uRW5kKCkgY29uc3QgeyByZXR1cm4gbV9pbmxp
bmVCb3hMaXN0V2l0aENsb25lZERlY29yYXRpb25FbmQ7IH0KIAogcHJpdmF0ZToKICAgICBJbmxp
bmVMYXlvdXRVbml0IGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3J1bnMu
aXNFbXB0eSgpID8gMC4wZiA6IG1fcnVucy5sYXN0KCkubG9naWNhbFJpZ2h0KCk7IH0KQEAgLTIy
MCw4ICsyMjAsOCBAQCBwcml2YXRlOgogICAgIElubGluZUxheW91dFVuaXQgbV9jb250ZW50TG9n
aWNhbFdpZHRoIHsgMCB9OwogICAgIHNpemVfdCBtX25vblNwYW5uaW5nSW5saW5lTGV2ZWxCb3hD
b3VudCB7IDAgfTsKICAgICBzdGQ6Om9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IG1fdHJhaWxp
bmdTb2Z0SHlwaGVuV2lkdGggeyAwIH07Ci0gICAgTGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5k
cyBtX2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHM7Ci0gICAgSW5saW5lTGF5b3V0VW5pdCBt
X2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZFdpZHRoIHsgMCB9OworICAgIElubGluZUJveExp
c3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVuZCBtX2lubGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3Jh
dGlvbkVuZDsKKyAgICBJbmxpbmVMYXlvdXRVbml0IG1fY2xvbmVkRW5kRGVjb3JhdGlvbldpZHRo
Rm9ySW5saW5lQm94UnVucyB7IDAgfTsKIH07CiAKIGlubGluZSB2b2lkIExpbmU6OlRyaW1tYWJs
ZVRyYWlsaW5nQ29udGVudDo6cmVzZXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGlu
ZUJveEJ1aWxkZXIuY3BwCmluZGV4IGMyZWViMTQ2ZjgyMC4uYTYwNDg4ZTEyYmQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lQm94QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3BwCkBAIC0zMTAsNyArMzEw
LDE0IEBAIElubGluZUxheW91dFVuaXQgTGluZUJveEJ1aWxkZXI6OmNvbnN0cnVjdEFuZEFsaWdu
SW5saW5lTGV2ZWxCb3hlcyhMaW5lQm94JiBsaW5lCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogICAgICAgICBpZiAocnVuLmlzTGluZVNwYW5uaW5nSW5saW5lQm94U3RhcnQoKSkg
ewotICAgICAgICAgICAgYXV0byBpbmxpbmVCb3ggPSBJbmxpbmVMZXZlbEJveDo6Y3JlYXRlSW5s
aW5lQm94KGxheW91dEJveCwgc3R5bGUsIGxvZ2ljYWxMZWZ0LCByb290SW5saW5lQm94LmxvZ2lj
YWxXaWR0aCgpLCBJbmxpbmVMZXZlbEJveDo6TGluZVNwYW5uaW5nSW5saW5lQm94OjpZZXMpOwor
ICAgICAgICAgICAgYXV0byBtYXJnaW5TdGFydCA9IElubGluZUxheW91dFVuaXQgeyB9OworI2lm
IEVOQUJMRShDU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspCisgICAgICAgICAgICBpZiAoc3R5bGUu
Ym94RGVjb3JhdGlvbkJyZWFrKCkgPT0gQm94RGVjb3JhdGlvbkJyZWFrOjpDbG9uZSkKKyAgICAg
ICAgICAgICAgICBtYXJnaW5TdGFydCA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JC
b3gobGF5b3V0Qm94KS5tYXJnaW5TdGFydCgpOworI2VuZGlmCisgICAgICAgICAgICBhdXRvIGFk
anVzdGVkTG9naWNhbFN0YXJ0ID0gbG9naWNhbExlZnQgKyBtYXJnaW5TdGFydDsKKyAgICAgICAg
ICAgIGF1dG8gbG9naWNhbFdpZHRoID0gcm9vdElubGluZUJveC5sb2dpY2FsV2lkdGgoKSAtIGFk
anVzdGVkTG9naWNhbFN0YXJ0OworICAgICAgICAgICAgYXV0byBpbmxpbmVCb3ggPSBJbmxpbmVM
ZXZlbEJveDo6Y3JlYXRlSW5saW5lQm94KGxheW91dEJveCwgc3R5bGUsIGFkanVzdGVkTG9naWNh
bFN0YXJ0LCBsb2dpY2FsV2lkdGgsIElubGluZUxldmVsQm94OjpMaW5lU3Bhbm5pbmdJbmxpbmVC
b3g6Olllcyk7CiAgICAgICAgICAgICBzZXRJbml0aWFsVmVydGljYWxHZW9tZXRyeUZvcklubGlu
ZUJveChpbmxpbmVCb3gpOwogICAgICAgICAgICAgdXBkYXRlQ2FuVXNlU2ltcGxpZmllZEFsaWdu
bWVudChpbmxpbmVCb3gpOwogICAgICAgICAgICAgbGluZUJveC5hZGRJbmxpbmVMZXZlbEJveChX
VEZNb3ZlKGlubGluZUJveCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIu
Y3BwCmluZGV4IDM1M2QzZjBjMmI4Ny4uNWFmY2QzMTVkMjM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCkBAIC03MzUsMTIgKzczNSwxMiBAQCBMaW5lQnVpbGRl
cjo6UmVzdWx0IExpbmVCdWlsZGVyOjpoYW5kbGVJbmxpbmVDb250ZW50KElubGluZUNvbnRlbnRC
cmVha2VyJiBpbmxpbgogICAgIH0oKTsKICAgICBhdXRvIGF2YWlsYWJsZVdpZHRoID0gWyZdIHsK
ICAgICAgICAgYXV0byBjb250ZW50TG9naWNhbFJpZ2h0ID0gbV9saW5lLmNvbnRlbnRMb2dpY2Fs
UmlnaHQoKTsKLSAgICAgICAgYXV0byYgbGluZVNwYW5uaW5nSW5saW5lQm94RW5kcyA9IG1fbGlu
ZS5saW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRzKCk7Ci0gICAgICAgIGlmICghbGluZVNwYW5u
aW5nSW5saW5lQm94RW5kcy5pc0VtcHR5KCkgJiYgaW5saW5lQ29udGVudC5oYXNJbmxpbmVMZXZl
bEJveCgpKSB7CisgICAgICAgIGF1dG8mIGlubGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlv
bkVuZCA9IG1fbGluZS5pbmxpbmVCb3hMaXN0V2l0aENsb25lZERlY29yYXRpb25FbmQoKTsKKyAg
ICAgICAgaWYgKCFpbmxpbmVCb3hMaXN0V2l0aENsb25lZERlY29yYXRpb25FbmQuaXNFbXB0eSgp
ICYmIGlubGluZUNvbnRlbnQuaGFzSW5saW5lTGV2ZWxCb3goKSkgewogICAgICAgICAgICAgLy8g
V2UgbWF5IHRyeSB0byBjb21taXQgYSBsaW5lIHNwYW5uaW5nIGlubGluZSBib3ggZW5kIGhlcmUu
IExldCdzIG5vdCBhY2NvdW50IGZvciBpdHMgbG9naWNhbCB3aWR0aCB0d2ljZS4KICAgICAgICAg
ICAgIGZvciAoYXV0byYgcnVuIDogY29udGludW91c0lubGluZUNvbnRlbnQucnVucygpKSB7CiAg
ICAgICAgICAgICAgICAgaWYgKHJ1bi5pbmxpbmVJdGVtLmlzSW5saW5lQm94RW5kKCkpCi0gICAg
ICAgICAgICAgICAgICAgIGNvbnRlbnRMb2dpY2FsUmlnaHQgLT0gbGluZVNwYW5uaW5nSW5saW5l
Qm94RW5kcy5nZXQoJnJ1bi5pbmxpbmVJdGVtLmxheW91dEJveCgpKTsKKyAgICAgICAgICAgICAg
ICAgICAgY29udGVudExvZ2ljYWxSaWdodCAtPSBpbmxpbmVCb3hMaXN0V2l0aENsb25lZERlY29y
YXRpb25FbmQuZ2V0KCZydW4uaW5saW5lSXRlbS5sYXlvdXRCb3goKSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICAgICAgYXV0byBhdmFpbGFibGVXaWR0aEZvckNvbnRlbnQgPSBsaW5l
TG9naWNhbFJlY3RGb3JDYW5kaWRhdGVDb250ZW50LndpZHRoKCkgLSBjb250ZW50TG9naWNhbFJp
Z2h0Owpjb21taXQgNzkyYWUyZDZjOThjYTM0NmQ3NDBmZDQzNjgyNmQ4ZWNhZDk5MmJlZgpBdXRo
b3I6IFphbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiAgIFNhdCBPY3QgMTYgMjA6
MTI6MjYgMjAyMSAtMDcwMAoKICAgIGZpbmFsCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGUzYzM4ZWMwZTY2ZS4u
OTdlMWQ3YTlmNDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjEtMTAtMTYgIEFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtMRkNdW0lGQ10gQWRqdXN0
IHRoZSBsb2dpY2FsIHJpZ2h0IHNpZGUgb2YgdGhlIGxpbmUgd2hlbiBib3gtZGVjb3JhdGlvbi1i
cmVhazogY2xvbmUgaXMgcHJlc2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxODczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlz
dG8uCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yICJib3gtZGVjb3JhdGlv
bi1icmVhazogY2xvbmUiIGNhc2VzIHdoZW4gdGhlIGlubGluZSBib3ggaXMgZWl0aGVyIG5vdCBs
aW5lIHNwYW5uaW5nIG9yCisgICAgICAgIGl0IHNob3dzIHVwIGZpcnN0IG9uIHRoZSBsaW5lLgor
CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmluaXRpYWxpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjphcHBlbmRJbmxpbmVCb3hTdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZElubGluZUJveEVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZFRleHRDb250ZW50KToKKyAgICAgICAgKiBsYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmg6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkxpbmU6OmNvbnRlbnRMb2dpY2FsUmlnaHQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMaW5lOjppbmxpbmVCb3hMaXN0V2l0aENsb25lZERlY29yYXRpb25F
bmQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpsaW5lU3Bhbm5pbmdJ
bmxpbmVCb3hSdW5FbmRzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3hCdWlsZGVyOjpjb25zdHJ1Y3RBbmRBbGlnbklubGluZUxl
dmVsQm94ZXMpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUxpbmVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxk
ZXI6OmhhbmRsZUlubGluZUNvbnRlbnQpOgorCiAyMDIxLTEwLTE2ICBBbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIEFkanVzdCB0aGUgbG9naWNhbCBy
aWdodCBzaWRlIG9mIHRoZSBsaW5lIHdpdGggbGluZSBzcGFubmluZyBpbmxpbmUgYm94ZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKaW5kZXggMTZlM2UyYzdjNTBhLi4zMjVkODIyNDljMzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwCkBAIC01MiwzNiArNTIsMzEgQEAgTGluZTo6
fkxpbmUoKQogCiB2b2lkIExpbmU6OmluaXRpYWxpemUoY29uc3QgVmVjdG9yPElubGluZUl0ZW0+
JiBsaW5lU3Bhbm5pbmdJbmxpbmVCb3hlcykKIHsKLSAgICBtX2xpbmVTcGFubmluZ0lubGluZUJv
eFJ1bkVuZHMuY2xlYXIoKTsKLSAgICBtX2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZFdpZHRo
ID0geyB9OworICAgIG1faW5saW5lQm94TGlzdFdpdGhDbG9uZWREZWNvcmF0aW9uRW5kLmNsZWFy
KCk7CisgICAgbV9jbG9uZWRFbmREZWNvcmF0aW9uV2lkdGhGb3JJbmxpbmVCb3hSdW5zID0geyB9
OwogICAgIG1fbm9uU3Bhbm5pbmdJbmxpbmVMZXZlbEJveENvdW50ID0gMDsKICAgICBtX2NvbnRl
bnRMb2dpY2FsV2lkdGggPSB7IH07CiAgICAgbV9ydW5zLmNsZWFyKCk7CiAgICAgcmVzZXRUcmFp
bGluZ0NvbnRlbnQoKTsKICAgICBhdXRvIGFwcGVuZExpbmVTcGFubmluZ0lubGluZUJveGVzID0g
WyZdIHsKICAgICAgICAgZm9yIChhdXRvJiBpbmxpbmVCb3hTdGFydEl0ZW0gOiBsaW5lU3Bhbm5p
bmdJbmxpbmVCb3hlcykgewotICAgICAgICAgICAgYXV0byBzaG91bGRDaGVja0Zvck1hcmdpbkJv
cmRlckFuZFBhZGRpbmcgPSBmYWxzZTsKICNpZiBFTkFCTEUoQ1NTX0JPWF9ERUNPUkFUSU9OX0JS
RUFLKQotICAgICAgICAgICAgc2hvdWxkQ2hlY2tGb3JNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nID0g
aW5saW5lQm94U3RhcnRJdGVtLnN0eWxlKCkuYm94RGVjb3JhdGlvbkJyZWFrKCkgPT0gQm94RGVj
b3JhdGlvbkJyZWFrOjpDbG9uZTsKLSNlbmRpZgotICAgICAgICAgICAgaWYgKCFzaG91bGRDaGVj
a0Zvck1hcmdpbkJvcmRlckFuZFBhZGRpbmcpIHsKKyAgICAgICAgICAgIGlmIChpbmxpbmVCb3hT
dGFydEl0ZW0uc3R5bGUoKS5ib3hEZWNvcmF0aW9uQnJlYWsoKSAhPSBCb3hEZWNvcmF0aW9uQnJl
YWs6OkNsb25lKQogICAgICAgICAgICAgICAgIG1fcnVucy5hcHBlbmQoeyBpbmxpbmVCb3hTdGFy
dEl0ZW0sIGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSwgeyB9IH0pOwotICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9k
cmFmdHMuY3Nzd2cub3JnL2Nzcy1icmVhay8jYnJlYWstZGVjb3JhdGlvbgorICAgICAgICAgICAg
ICAgIC8vIGNsb25lOiBFYWNoIGJveCBmcmFnbWVudCBpcyBpbmRlcGVuZGVudGx5IHdyYXBwZWQg
d2l0aCB0aGUgYm9yZGVyLCBwYWRkaW5nLCBhbmQgbWFyZ2luLgorICAgICAgICAgICAgICAgIGF1
dG8mIGlubGluZUJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJv
eChpbmxpbmVCb3hTdGFydEl0ZW0ubGF5b3V0Qm94KCkpOworICAgICAgICAgICAgICAgIGF1dG8g
bWFyZ2luQm9yZGVyQW5kUGFkZGluZ1N0YXJ0ID0gaW5saW5lQm94R2VvbWV0cnkubWFyZ2luU3Rh
cnQoKSArIGlubGluZUJveEdlb21ldHJ5LmJvcmRlckxlZnQoKSArIGlubGluZUJveEdlb21ldHJ5
LnBhZGRpbmdMZWZ0KCkudmFsdWVfb3IoMF9sdSk7CisgICAgICAgICAgICAgICAgYXV0byBydW5M
b2dpY2FsTGVmdCA9IGxhc3RSdW5Mb2dpY2FsUmlnaHQoKTsKKyAgICAgICAgICAgICAgICBtX3J1
bnMuYXBwZW5kKHsgaW5saW5lQm94U3RhcnRJdGVtLCBydW5Mb2dpY2FsTGVmdCwgbWFyZ2luQm9y
ZGVyQW5kUGFkZGluZ1N0YXJ0IH0pOworICAgICAgICAgICAgICAgIC8vIERvIG5vdCBsZXQgbmVn
YXRpdmUgbWFyZ2luIG1ha2UgdGhlIGNvbnRlbnQgc2hvcnRlciB0aGFuIGl0IGFscmVhZHkgaXMu
CisgICAgICAgICAgICAgICAgbV9jb250ZW50TG9naWNhbFdpZHRoID0gc3RkOjptYXgobV9jb250
ZW50TG9naWNhbFdpZHRoLCBydW5Mb2dpY2FsTGVmdCArIG1hcmdpbkJvcmRlckFuZFBhZGRpbmdT
dGFydCk7CisgICAgICAgICAgICAgICAgbV9jb250ZW50TG9naWNhbFdpZHRoICs9IGFkZEJvcmRl
ckFuZFBhZGRpbmdFbmRGb3JJbmxpbmVCb3hEZWNvcmF0aW9uQ2xvbmUoaW5saW5lQm94U3RhcnRJ
dGVtKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3MtYnJlYWsvI2JyZWFrLWRlY29yYXRpb24KLSAgICAgICAgICAgIC8vIGNsb25lOiBF
YWNoIGJveCBmcmFnbWVudCBpcyBpbmRlcGVuZGVudGx5IHdyYXBwZWQgd2l0aCB0aGUgYm9yZGVy
LCBwYWRkaW5nLCBhbmQgbWFyZ2luLgotICAgICAgICAgICAgYXV0byYgaW5saW5lQm94R2VvbWV0
cnkgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGlubGluZUJveFN0YXJ0SXRl
bS5sYXlvdXRCb3goKSk7Ci0gICAgICAgICAgICBhdXRvIHJ1bkxvZ2ljYWxMZWZ0ID0gbGFzdFJ1
bkxvZ2ljYWxSaWdodCgpOwotICAgICAgICAgICAgYXV0byBtYXJnaW5Cb3JkZXJBbmRQYWRkaW5n
U3RhcnQgPSBpbmxpbmVCb3hHZW9tZXRyeS5tYXJnaW5TdGFydCgpICsgaW5saW5lQm94R2VvbWV0
cnkuYm9yZGVyTGVmdCgpICsgaW5saW5lQm94R2VvbWV0cnkucGFkZGluZ0xlZnQoKS52YWx1ZV9v
cigwX2x1KTsKLSAgICAgICAgICAgIG1fcnVucy5hcHBlbmQoeyBpbmxpbmVCb3hTdGFydEl0ZW0s
IHJ1bkxvZ2ljYWxMZWZ0LCBtYXJnaW5Cb3JkZXJBbmRQYWRkaW5nU3RhcnQgfSk7Ci0gICAgICAg
ICAgICAvLyBEbyBub3QgbGV0IG5lZ2F0aXZlIG1hcmdpbiBtYWtlIHRoZSBjb250ZW50IHNob3J0
ZXIgdGhhbiBpdCBhbHJlYWR5IGlzLgotICAgICAgICAgICAgYXV0byBydW5Mb2dpY2FsUmlnaHQg
PSBydW5Mb2dpY2FsTGVmdCArIG1hcmdpbkJvcmRlckFuZFBhZGRpbmdTdGFydDsKLSAgICAgICAg
ICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCA9IHN0ZDo6bWF4KG1fY29udGVudExvZ2ljYWxXaWR0
aCwgcnVuTG9naWNhbFJpZ2h0KTsKLQotICAgICAgICAgICAgYXV0byBtYXJnaW5Cb3JkZXJBbmRQ
YWRkaW5nRW5kID0gaW5saW5lQm94R2VvbWV0cnkubWFyZ2luRW5kKCkgKyBpbmxpbmVCb3hHZW9t
ZXRyeS5ib3JkZXJSaWdodCgpICsgaW5saW5lQm94R2VvbWV0cnkucGFkZGluZ1JpZ2h0KCkudmFs
dWVfb3IoMF9sdSk7Ci0gICAgICAgICAgICBtX2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMu
YWRkKCZpbmxpbmVCb3hTdGFydEl0ZW0ubGF5b3V0Qm94KCksIG1hcmdpbkJvcmRlckFuZFBhZGRp
bmdFbmQpOwotICAgICAgICAgICAgbV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRXaWR0aCAr
PSBtYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRW5kOwotICAgICAgICAgICAgbV9jb250ZW50TG9naWNh
bFdpZHRoICs9IG1hcmdpbkJvcmRlckFuZFBhZGRpbmdFbmQ7CisjZWxzZQorICAgICAgICAgICAg
bV9ydW5zLmFwcGVuZCh7IGlubGluZUJveFN0YXJ0SXRlbSwgbGFzdFJ1bkxvZ2ljYWxSaWdodCgp
LCB7IH0gfSk7CisjZW5kaWYKICAgICAgICAgfQogICAgIH07CiAgICAgYXBwZW5kTGluZVNwYW5u
aW5nSW5saW5lQm94ZXMoKTsKQEAgLTI2NCwxOSArMjU5LDE2IEBAIHZvaWQgTGluZTo6YXBwZW5k
KGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwg
SW5saW5lCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIExpbmU6OmFw
cGVuZE5vbkJyZWFrYWJsZVNwYWNlKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0
IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5l
TGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpCi17Ci0gICAgbV9ydW5zLmFwcGVuZCh7IGlubGluZUl0
ZW0sIHN0eWxlLCBsb2dpY2FsTGVmdCwgbG9naWNhbFdpZHRoIH0pOwotICAgIC8vIERvIG5vdCBs
ZXQgbmVnYXRpdmUgbWFyZ2luIG1ha2UgdGhlIGNvbnRlbnQgc2hvcnRlciB0aGFuIGl0IGFscmVh
ZHkgaXMuCi0gICAgYXV0byBydW5Mb2dpY2FsUmlnaHQgPSBsb2dpY2FsTGVmdCArIGxvZ2ljYWxX
aWR0aDsKLSAgICBtX2NvbnRlbnRMb2dpY2FsV2lkdGggPSBzdGQ6Om1heChtX2NvbnRlbnRMb2dp
Y2FsV2lkdGgsIHJ1bkxvZ2ljYWxSaWdodCk7Ci19Ci0KIHZvaWQgTGluZTo6YXBwZW5kSW5saW5l
Qm94U3RhcnQoY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgY29uc3QgUmVuZGVyU3R5bGUm
IHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCkKIHsKICAgICAvLyBUaGlzIGlz
IHJlYWxseSBqdXN0IGEgcGxhY2Vob2xkZXIgdG8gbWFyayB0aGUgc3RhcnQgb2YgdGhlIGlubGlu
ZSBib3ggPHNwYW4+LgogICAgICsrbV9ub25TcGFubmluZ0lubGluZUxldmVsQm94Q291bnQ7Ci0g
ICAgYXBwZW5kTm9uQnJlYWthYmxlU3BhY2UoaW5saW5lSXRlbSwgc3R5bGUsIGxhc3RSdW5Mb2dp
Y2FsUmlnaHQoKSwgbG9naWNhbFdpZHRoKTsKKyAgICBhdXRvIGxvZ2ljYWxMZWZ0ID0gbGFzdFJ1
bkxvZ2ljYWxSaWdodCgpOworICAgIC8vIEluY29taW5nIGxvZ2ljYWwgd2lkdGggaW5jbHVkZXMg
dGhlIGNsb25lZCBkZWNvcmF0aW9uIGVuZCB0byBiZSBhYmxlIHRvIGRvIGxpbmUgYnJlYWtpbmcu
CisgICAgYXV0byBib3JkZXJBbmRQYWRkaW5nRW5kRm9yRGVjb3JhdGlvbkNsb25lID0gYWRkQm9y
ZGVyQW5kUGFkZGluZ0VuZEZvcklubGluZUJveERlY29yYXRpb25DbG9uZShpbmxpbmVJdGVtKTsK
KyAgICBtX3J1bnMuYXBwZW5kKHsgaW5saW5lSXRlbSwgc3R5bGUsIGxvZ2ljYWxMZWZ0LCBsb2dp
Y2FsV2lkdGggLSBib3JkZXJBbmRQYWRkaW5nRW5kRm9yRGVjb3JhdGlvbkNsb25lIH0pOworICAg
IC8vIERvIG5vdCBsZXQgbmVnYXRpdmUgbWFyZ2luIG1ha2UgdGhlIGNvbnRlbnQgc2hvcnRlciB0
aGFuIGl0IGFscmVhZHkgaXMuCisgICAgbV9jb250ZW50TG9naWNhbFdpZHRoID0gc3RkOjptYXgo
bV9jb250ZW50TG9naWNhbFdpZHRoLCBsb2dpY2FsTGVmdCArIGxvZ2ljYWxXaWR0aCk7CiB9CiAK
IHZvaWQgTGluZTo6YXBwZW5kSW5saW5lQm94RW5kKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0
ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lk
dGgpCkBAIC0yODcsMTggKzI3OSwxNCBAQCB2b2lkIExpbmU6OmFwcGVuZElubGluZUJveEVuZChj
b25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBSZW5kZXJTdHlsZSYgcwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICBtX2NvbnRlbnRMb2dpY2FsV2lkdGggLT0gbV90cmltbWFi
bGVUcmFpbGluZ0NvbnRlbnQucmVtb3ZlUGFydGlhbGx5VHJpbW1hYmxlQ29udGVudCgpOwogICAg
IH07Ci0gICAgYXV0byByZW1vdmVGcm9tTGluZVNwYW5uaW5nSW5saW5lQm94TGlzdElmQXBwbGlj
YWJsZSA9IFsmXSB7Ci0gICAgICAgIEFTU0VSVCghbV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5F
bmRzLmNvbnRhaW5zKCZpbmxpbmVJdGVtLmxheW91dEJveCgpKSB8fCBtX2xpbmVTcGFubmluZ0lu
bGluZUJveFJ1bkVuZHMuZ2V0KCZpbmxpbmVJdGVtLmxheW91dEJveCgpKSA9PSBsb2dpY2FsV2lk
dGgpOwotICAgICAgICBhdXRvIGlubGluZUJveEVuZCA9IG1fbGluZVNwYW5uaW5nSW5saW5lQm94
UnVuRW5kcy5yZW1vdmUoJmlubGluZUl0ZW0ubGF5b3V0Qm94KCkpOwotICAgICAgICAvLyBUaGlz
IGlubGluZSBib3ggZW5kIG5vdyBjb250cmlidXRlcyB0byB0aGUgbGluZSBjb250ZW50IHdpZHRo
IGluIHRoZSByZWd1bGFyIHdheS4KLSAgICAgICAgbV9jb250ZW50TG9naWNhbFdpZHRoIC09IGlu
bGluZUJveEVuZDsKLSAgICAgICAgbV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRXaWR0aCAt
PSBpbmxpbmVCb3hFbmQ7Ci0gICAgfTsKICAgICAvLyBQcmV2ZW50IHRyYWlsaW5nIGxldHRlci1z
cGFjaW5nIGZyb20gc3BpbGxpbmcgb3V0IG9mIHRoZSBpbmxpbmUgYm94LgogICAgIC8vIGh0dHBz
Oi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdGV4dC0zLyNsZXR0ZXItc3BhY2luZy1wcm9wZXJ0eSBT
ZWUgZXhhbXBsZSAyMS4KICAgICByZW1vdmVUcmFpbGluZ0xldHRlclNwYWNpbmcoKTsKLSAgICBy
ZW1vdmVGcm9tTGluZVNwYW5uaW5nSW5saW5lQm94TGlzdElmQXBwbGljYWJsZSgpOwotICAgIGFw
cGVuZE5vbkJyZWFrYWJsZVNwYWNlKGlubGluZUl0ZW0sIHN0eWxlLCBsYXN0UnVuTG9naWNhbFJp
Z2h0KCksIGxvZ2ljYWxXaWR0aCk7CisgICAgbV9jb250ZW50TG9naWNhbFdpZHRoIC09IHJlbW92
ZUJvcmRlckFuZFBhZGRpbmdFbmRGb3JJbmxpbmVCb3hEZWNvcmF0aW9uQ2xvbmUoaW5saW5lSXRl
bSk7CisgICAgYXV0byBsb2dpY2FsTGVmdCA9IGxhc3RSdW5Mb2dpY2FsUmlnaHQoKTsKKyAgICBt
X3J1bnMuYXBwZW5kKHsgaW5saW5lSXRlbSwgc3R5bGUsIGxvZ2ljYWxMZWZ0LCBsb2dpY2FsV2lk
dGggfSk7CisgICAgLy8gRG8gbm90IGxldCBuZWdhdGl2ZSBtYXJnaW4gbWFrZSB0aGUgY29udGVu
dCBzaG9ydGVyIHRoYW4gaXQgYWxyZWFkeSBpcy4KKyAgICBtX2NvbnRlbnRMb2dpY2FsV2lkdGgg
PSBzdGQ6Om1heChtX2NvbnRlbnRMb2dpY2FsV2lkdGgsIGxvZ2ljYWxMZWZ0ICsgbG9naWNhbFdp
ZHRoKTsKIH0KIAogdm9pZCBMaW5lOjphcHBlbmRUZXh0Q29udGVudChjb25zdCBJbmxpbmVUZXh0
SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGgpCkBAIC0zNDQsMTAgKzMzMiwxMiBAQCB2b2lkIExpbmU6OmFw
cGVuZFRleHRDb250ZW50KGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29u
c3QgUmVuZGVyUwogICAgIH0oKTsKICAgICBhdXRvIG9sZENvbnRlbnRMb2dpY2FsV2lkdGggPSBj
b250ZW50TG9naWNhbFdpZHRoKCk7CiAgICAgaWYgKG5lZWRzTmV3UnVuKSB7Ci0gICAgICAgIC8v
IE5vdGUsIG5lZ2F0aXZlIHdvcmRzIHNwYWNpbmcgbWF5IGNhdXNlIGdseXBoIG92ZXJsYXAuCisg
ICAgICAgIC8vIE5vdGUsIG5lZ2F0aXZlIHdvcmQgc3BhY2luZyBtYXkgY2F1c2UgZ2x5cGggb3Zl
cmxhcC4KICAgICAgICAgYXV0byBydW5Mb2dpY2FsTGVmdCA9IGxhc3RSdW5Mb2dpY2FsUmlnaHQo
KSArIChpbmxpbmVUZXh0SXRlbS5pc1dvcmRTZXBhcmF0b3IoKSA/IHN0eWxlLmZvbnRDYXNjYWRl
KCkud29yZFNwYWNpbmcoKSA6IDAuMGYpOwogICAgICAgICBtX3J1bnMuYXBwZW5kKHsgaW5saW5l
VGV4dEl0ZW0sIHN0eWxlLCBydW5Mb2dpY2FsTGVmdCwgbG9naWNhbFdpZHRoIH0pOwotICAgICAg
ICBtX2NvbnRlbnRMb2dpY2FsV2lkdGggPSBzdGQ6Om1heChvbGRDb250ZW50TG9naWNhbFdpZHRo
LCBydW5Mb2dpY2FsTGVmdCArIGxvZ2ljYWxXaWR0aCk7CisgICAgICAgIC8vIE5vdGUgdGhhdCB0
aGUgX2NvbnRlbnRfIGxvZ2ljYWwgcmlnaHQgbWF5IGJlIGxhcmdlciB0aGFuIHRoZSBfcnVuXyBs
b2dpY2FsIHJpZ2h0LgorICAgICAgICBhdXRvIGNvbnRlbnRMb2dpY2FsUmlnaHQgPSBydW5Mb2dp
Y2FsTGVmdCArIGxvZ2ljYWxXaWR0aCArIG1fY2xvbmVkRW5kRGVjb3JhdGlvbldpZHRoRm9ySW5s
aW5lQm94UnVuczsKKyAgICAgICAgbV9jb250ZW50TG9naWNhbFdpZHRoID0gc3RkOjptYXgob2xk
Q29udGVudExvZ2ljYWxXaWR0aCwgY29udGVudExvZ2ljYWxSaWdodCk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgbV9ydW5zLmxhc3QoKS5leHBhbmQoaW5saW5lVGV4dEl0ZW0sIGxvZ2ljYWxXaWR0
aCk7CiAgICAgICAgIC8vIERvIG5vdCBsZXQgbmVnYXRpdmUgbGV0dGVyIHNwYWNpbmcgbWFrZSB0
aGUgY29udGVudCBzaG9ydGVyIHRoYW4gaXQgYWxyZWFkeSBpcy4KQEAgLTQxNiw2ICs0MDYsMzcg
QEAgdm9pZCBMaW5lOjphcHBlbmRXb3JkQnJlYWtPcHBvcnR1bml0eShjb25zdCBJbmxpbmVJdGVt
JiBpbmxpbmVJdGVtKQogICAgIG1fcnVucy5hcHBlbmQoeyBpbmxpbmVJdGVtLCBsYXN0UnVuTG9n
aWNhbFJpZ2h0KCkgfSk7CiB9CiAKK0lubGluZUxheW91dFVuaXQgTGluZTo6YWRkQm9yZGVyQW5k
UGFkZGluZ0VuZEZvcklubGluZUJveERlY29yYXRpb25DbG9uZShjb25zdCBJbmxpbmVJdGVtJiBp
bmxpbmVCb3hTdGFydEl0ZW0pCit7CisgICAgQVNTRVJUKGlubGluZUJveFN0YXJ0SXRlbS5pc0lu
bGluZUJveFN0YXJ0KCkpOworI2lmIEVOQUJMRShDU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspCisg
ICAgaWYgKGlubGluZUJveFN0YXJ0SXRlbS5zdHlsZSgpLmJveERlY29yYXRpb25CcmVhaygpICE9
IEJveERlY29yYXRpb25CcmVhazo6Q2xvbmUpCisgICAgICAgIHJldHVybiB7IH07CisgICAgLy8g
aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1icmVhay8jYnJlYWstZGVjb3JhdGlvbgorICAg
IGF1dG8mIGlubGluZUJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZv
ckJveChpbmxpbmVCb3hTdGFydEl0ZW0ubGF5b3V0Qm94KCkpOworICAgIGF1dG8gYm9yZGVyQW5k
UGFkZGluZ0VuZCA9IGlubGluZUJveEdlb21ldHJ5LmJvcmRlclJpZ2h0KCkgKyBpbmxpbmVCb3hH
ZW9tZXRyeS5wYWRkaW5nUmlnaHQoKS52YWx1ZV9vcigwX2x1KTsKKyAgICBtX2lubGluZUJveExp
c3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVuZC5hZGQoJmlubGluZUJveFN0YXJ0SXRlbS5sYXlvdXRC
b3goKSwgYm9yZGVyQW5kUGFkZGluZ0VuZCk7CisgICAgbV9jbG9uZWRFbmREZWNvcmF0aW9uV2lk
dGhGb3JJbmxpbmVCb3hSdW5zICs9IGJvcmRlckFuZFBhZGRpbmdFbmQ7CisgICAgcmV0dXJuIGJv
cmRlckFuZFBhZGRpbmdFbmQ7CisjZW5kaWYKKyAgICByZXR1cm4geyB9OworfQorCitJbmxpbmVM
YXlvdXRVbml0IExpbmU6OnJlbW92ZUJvcmRlckFuZFBhZGRpbmdFbmRGb3JJbmxpbmVCb3hEZWNv
cmF0aW9uQ2xvbmUoY29uc3QgSW5saW5lSXRlbSYgaW5saW5lQm94RW5kSXRlbSkKK3sKKyAgICBB
U1NFUlQoaW5saW5lQm94RW5kSXRlbS5pc0lubGluZUJveEVuZCgpKTsKKyNpZiBFTkFCTEUoQ1NT
X0JPWF9ERUNPUkFUSU9OX0JSRUFLKQorICAgIGF1dG8gYm9yZGVyQW5kUGFkZGluZ0VuZCA9IG1f
aW5saW5lQm94TGlzdFdpdGhDbG9uZWREZWNvcmF0aW9uRW5kLnRha2UoJmlubGluZUJveEVuZEl0
ZW0ubGF5b3V0Qm94KCkpOworICAgIGlmIChzdGQ6OmlzaW5mKGJvcmRlckFuZFBhZGRpbmdFbmQp
KQorICAgICAgICByZXR1cm4geyB9OworICAgIC8vIFRoaXMgaW5saW5lIGJveCBlbmQgbm93IGNv
bnRyaWJ1dGVzIHRvIHRoZSBsaW5lIGNvbnRlbnQgd2lkdGggaW4gdGhlIHJlZ3VsYXIgd2F5LCBz
byBsZXQncyByZW1vdmUKKyAgICAvLyBpdCBmcm9tIHRoZSBzaWRlIHN0cnVjdHVyZSB3aGVyZSB3
ZSBrZWVwIHRyYWNrIG9mIHRoZSAibm90LXlldCBwbGFjZWQgYnV0IHNwYWNlIHRha2luZyIgZGVj
b3JhdGlvbnMuCisgICAgbV9jbG9uZWRFbmREZWNvcmF0aW9uV2lkdGhGb3JJbmxpbmVCb3hSdW5z
IC09IGJvcmRlckFuZFBhZGRpbmdFbmQ7CisgICAgcmV0dXJuIGJvcmRlckFuZFBhZGRpbmdFbmQ7
CisjZW5kaWYKKyAgICByZXR1cm4geyB9OworfQorCiB2b2lkIExpbmU6OmFkZFRyYWlsaW5nSHlw
aGVuKElubGluZUxheW91dFVuaXQgaHlwaGVuTG9naWNhbFdpZHRoKQogewogICAgIGZvciAoYXV0
byYgcnVuIDogV1RGOjptYWtlUmV2ZXJzZWRSYW5nZShtX3J1bnMpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5l
LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lLmgKaW5kZXggNDk3YTZiOGM1MDY5Li45MTMyODUzYTBhYzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVMaW5lLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzQ29udGVu
dCgpIGNvbnN0IHsgcmV0dXJuICFtX3J1bnMuaXNFbXB0eSgpICYmICFtX3J1bnMubGFzdCgpLmlz
TGluZVNwYW5uaW5nSW5saW5lQm94U3RhcnQoKTsgfQogCiAgICAgSW5saW5lTGF5b3V0VW5pdCBj
b250ZW50TG9naWNhbFdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50TG9naWNhbFdpZHRo
OyB9Ci0gICAgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbFJpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gbGFzdFJ1bkxvZ2ljYWxSaWdodCgpICsgbV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5F
bmRXaWR0aDsgfQorICAgIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxSaWdodCgpIGNv
bnN0IHsgcmV0dXJuIGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSArIG1fY2xvbmVkRW5kRGVjb3JhdGlv
bldpZHRoRm9ySW5saW5lQm94UnVuczsgfQogICAgIHNpemVfdCBub25TcGFubmluZ0lubGluZUxl
dmVsQm94Q291bnQoKSBjb25zdCB7IHJldHVybiBtX25vblNwYW5uaW5nSW5saW5lTGV2ZWxCb3hD
b3VudDsgfQogCiAgICAgSW5saW5lTGF5b3V0VW5pdCB0cmltbWFibGVUcmFpbGluZ1dpZHRoKCkg
Y29uc3QgeyByZXR1cm4gbV90cmltbWFibGVUcmFpbGluZ0NvbnRlbnQud2lkdGgoKTsgfQpAQCAt
MTU2LDEzICsxNTYsMTIgQEAgcHVibGljOgogICAgIH07CiAgICAgdXNpbmcgUnVuTGlzdCA9IFZl
Y3RvcjxSdW4sIDEwPjsKICAgICBjb25zdCBSdW5MaXN0JiBydW5zKCkgY29uc3QgeyByZXR1cm4g
bV9ydW5zOyB9Ci0gICAgdXNpbmcgTGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kcyA9IEhhc2hN
YXA8Y29uc3QgQm94KiwgSW5saW5lTGF5b3V0VW5pdD47Ci0gICAgY29uc3QgTGluZVNwYW5uaW5n
SW5saW5lQm94UnVuRW5kcyYgbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kcygpIGNvbnN0IHsg
cmV0dXJuIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kczsgfQorICAgIHVzaW5nIElubGlu
ZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVuZCA9IEhhc2hNYXA8Y29uc3QgQm94KiwgSW5s
aW5lTGF5b3V0VW5pdD47CisgICAgY29uc3QgSW5saW5lQm94TGlzdFdpdGhDbG9uZWREZWNvcmF0
aW9uRW5kJiBpbmxpbmVCb3hMaXN0V2l0aENsb25lZERlY29yYXRpb25FbmQoKSBjb25zdCB7IHJl
dHVybiBtX2lubGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVuZDsgfQogCiBwcml2YXRl
OgogICAgIElubGluZUxheW91dFVuaXQgbGFzdFJ1bkxvZ2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0
dXJuIG1fcnVucy5pc0VtcHR5KCkgPyAwLjBmIDogbV9ydW5zLmxhc3QoKS5sb2dpY2FsUmlnaHQo
KTsgfQogCi0gICAgdm9pZCBhcHBlbmROb25CcmVha2FibGVTcGFjZShjb25zdCBJbmxpbmVJdGVt
JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxp
bmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCk7CiAgICAgdm9pZCBhcHBlbmRUZXh0Q29udGVudChj
b25zdCBJbmxpbmVUZXh0SXRlbSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5p
dCBsb2dpY2FsV2lkdGgpOwogICAgIHZvaWQgYXBwZW5kTm9uUmVwbGFjZWRJbmxpbmVMZXZlbEJv
eChjb25zdCBJbmxpbmVJdGVtJiwgY29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0
IG1hcmdpbkJveExvZ2ljYWxXaWR0aCk7CiAgICAgdm9pZCBhcHBlbmRSZXBsYWNlZElubGluZUxl
dmVsQm94KGNvbnN0IElubGluZUl0ZW0mLCBjb25zdCBSZW5kZXJTdHlsZSYsIElubGluZUxheW91
dFVuaXQgbWFyZ2luQm94TG9naWNhbFdpZHRoKTsKQEAgLTE3MSw2ICsxNzAsOCBAQCBwcml2YXRl
OgogICAgIHZvaWQgYXBwZW5kTGluZUJyZWFrKGNvbnN0IElubGluZUl0ZW0mKTsKICAgICB2b2lk
IGFwcGVuZFdvcmRCcmVha09wcG9ydHVuaXR5KGNvbnN0IElubGluZUl0ZW0mKTsKIAorICAgIElu
bGluZUxheW91dFVuaXQgYWRkQm9yZGVyQW5kUGFkZGluZ0VuZEZvcklubGluZUJveERlY29yYXRp
b25DbG9uZShjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVCb3hTdGFydEl0ZW0pOworICAgIElubGlu
ZUxheW91dFVuaXQgcmVtb3ZlQm9yZGVyQW5kUGFkZGluZ0VuZEZvcklubGluZUJveERlY29yYXRp
b25DbG9uZShjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVCb3hFbmRJdGVtKTsKICAgICB2b2lkIHJl
bW92ZVRyYWlsaW5nVHJpbW1hYmxlQ29udGVudCgpOwogICAgIHZvaWQgdmlzdWFsbHlDb2xsYXBz
ZUhhbmdpbmdPdmVyZmxvdyhJbmxpbmVMYXlvdXRVbml0IGhvcml6b250YWxBdmFpbGFibGVTcGFj
ZSk7CiAKQEAgLTIyMCw4ICsyMjEsOCBAQCBwcml2YXRlOgogICAgIElubGluZUxheW91dFVuaXQg
bV9jb250ZW50TG9naWNhbFdpZHRoIHsgMCB9OwogICAgIHNpemVfdCBtX25vblNwYW5uaW5nSW5s
aW5lTGV2ZWxCb3hDb3VudCB7IDAgfTsKICAgICBzdGQ6Om9wdGlvbmFsPElubGluZUxheW91dFVu
aXQ+IG1fdHJhaWxpbmdTb2Z0SHlwaGVuV2lkdGggeyAwIH07Ci0gICAgTGluZVNwYW5uaW5nSW5s
aW5lQm94UnVuRW5kcyBtX2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHM7Ci0gICAgSW5saW5l
TGF5b3V0VW5pdCBtX2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZFdpZHRoIHsgMCB9OworICAg
IElubGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVuZCBtX2lubGluZUJveExpc3RXaXRo
Q2xvbmVkRGVjb3JhdGlvbkVuZDsKKyAgICBJbmxpbmVMYXlvdXRVbml0IG1fY2xvbmVkRW5kRGVj
b3JhdGlvbldpZHRoRm9ySW5saW5lQm94UnVucyB7IDAgfTsKIH07CiAKIGlubGluZSB2b2lkIExp
bmU6OlRyaW1tYWJsZVRyYWlsaW5nQ29udGVudDo6cmVzZXQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveEJ1
aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3BwCmluZGV4IGMyZWViMTQ2ZjgyMC4uYTYwNDg4ZTEy
YmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3BwCkBA
IC0zMTAsNyArMzEwLDE0IEBAIElubGluZUxheW91dFVuaXQgTGluZUJveEJ1aWxkZXI6OmNvbnN0
cnVjdEFuZEFsaWduSW5saW5lTGV2ZWxCb3hlcyhMaW5lQm94JiBsaW5lCiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgfQogICAgICAgICBpZiAocnVuLmlzTGluZVNwYW5uaW5nSW5saW5l
Qm94U3RhcnQoKSkgewotICAgICAgICAgICAgYXV0byBpbmxpbmVCb3ggPSBJbmxpbmVMZXZlbEJv
eDo6Y3JlYXRlSW5saW5lQm94KGxheW91dEJveCwgc3R5bGUsIGxvZ2ljYWxMZWZ0LCByb290SW5s
aW5lQm94LmxvZ2ljYWxXaWR0aCgpLCBJbmxpbmVMZXZlbEJveDo6TGluZVNwYW5uaW5nSW5saW5l
Qm94OjpZZXMpOworICAgICAgICAgICAgYXV0byBtYXJnaW5TdGFydCA9IElubGluZUxheW91dFVu
aXQgeyB9OworI2lmIEVOQUJMRShDU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspCisgICAgICAgICAg
ICBpZiAoc3R5bGUuYm94RGVjb3JhdGlvbkJyZWFrKCkgPT0gQm94RGVjb3JhdGlvbkJyZWFrOjpD
bG9uZSkKKyAgICAgICAgICAgICAgICBtYXJnaW5TdGFydCA9IGZvcm1hdHRpbmdDb250ZXh0KCku
Z2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94KS5tYXJnaW5TdGFydCgpOworI2VuZGlmCisgICAgICAg
ICAgICBhdXRvIGFkanVzdGVkTG9naWNhbFN0YXJ0ID0gbG9naWNhbExlZnQgKyBtYXJnaW5TdGFy
dDsKKyAgICAgICAgICAgIGF1dG8gbG9naWNhbFdpZHRoID0gcm9vdElubGluZUJveC5sb2dpY2Fs
V2lkdGgoKSAtIGFkanVzdGVkTG9naWNhbFN0YXJ0OworICAgICAgICAgICAgYXV0byBpbmxpbmVC
b3ggPSBJbmxpbmVMZXZlbEJveDo6Y3JlYXRlSW5saW5lQm94KGxheW91dEJveCwgc3R5bGUsIGFk
anVzdGVkTG9naWNhbFN0YXJ0LCBsb2dpY2FsV2lkdGgsIElubGluZUxldmVsQm94OjpMaW5lU3Bh
bm5pbmdJbmxpbmVCb3g6Olllcyk7CiAgICAgICAgICAgICBzZXRJbml0aWFsVmVydGljYWxHZW9t
ZXRyeUZvcklubGluZUJveChpbmxpbmVCb3gpOwogICAgICAgICAgICAgdXBkYXRlQ2FuVXNlU2lt
cGxpZmllZEFsaWdubWVudChpbmxpbmVCb3gpOwogICAgICAgICAgICAgbGluZUJveC5hZGRJbmxp
bmVMZXZlbEJveChXVEZNb3ZlKGlubGluZUJveCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
TGluZUJ1aWxkZXIuY3BwCmluZGV4IDM1M2QzZjBjMmI4Ny4uNDZjZTkyYTRiZDhhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCkBAIC0yMzksOCArMjM5LDE1IEBA
IElubGluZUxheW91dFVuaXQgTGluZUJ1aWxkZXI6OmlubGluZUl0ZW1XaWR0aChjb25zdCBJbmxp
bmVJdGVtJiBpbmxpbmVJdGVtLCBJbmxpCiAgICAgaWYgKGxheW91dEJveC5pc1JlcGxhY2VkQm94
KCkpCiAgICAgICAgIHJldHVybiBib3hHZW9tZXRyeS5tYXJnaW5Cb3hXaWR0aCgpOwogCi0gICAg
aWYgKGlubGluZUl0ZW0uaXNJbmxpbmVCb3hTdGFydCgpKQotICAgICAgICByZXR1cm4gYm94R2Vv
bWV0cnkubWFyZ2luU3RhcnQoKSArIGJveEdlb21ldHJ5LmJvcmRlckxlZnQoKSArIGJveEdlb21l
dHJ5LnBhZGRpbmdMZWZ0KCkudmFsdWVfb3IoMCk7CisgICAgaWYgKGlubGluZUl0ZW0uaXNJbmxp
bmVCb3hTdGFydCgpKSB7CisgICAgICAgIGF1dG8gbG9naWNhbFdpZHRoID0gYm94R2VvbWV0cnku
bWFyZ2luU3RhcnQoKSArIGJveEdlb21ldHJ5LmJvcmRlckxlZnQoKSArIGJveEdlb21ldHJ5LnBh
ZGRpbmdMZWZ0KCkudmFsdWVfb3IoMCk7CisjaWYgRU5BQkxFKENTU19CT1hfREVDT1JBVElPTl9C
UkVBSykKKyAgICAgICAgYXV0byYgc3R5bGUgPSBtX2lzRmlyc3RMaW5lID8gaW5saW5lSXRlbS5m
aXJzdExpbmVTdHlsZSgpIDogaW5saW5lSXRlbS5zdHlsZSgpOworICAgICAgICBpZiAoc3R5bGUu
Ym94RGVjb3JhdGlvbkJyZWFrKCkgPT0gQm94RGVjb3JhdGlvbkJyZWFrOjpDbG9uZSkKKyAgICAg
ICAgICAgIGxvZ2ljYWxXaWR0aCArPSBib3hHZW9tZXRyeS5ib3JkZXJSaWdodCgpICsgYm94R2Vv
bWV0cnkucGFkZGluZ1JpZ2h0KCkudmFsdWVfb3IoMF9sdSk7CisjZW5kaWYKKyAgICAgICAgcmV0
dXJuIGxvZ2ljYWxXaWR0aDsKKyAgICB9CiAKICAgICBpZiAoaW5saW5lSXRlbS5pc0lubGluZUJv
eEVuZCgpKQogICAgICAgICByZXR1cm4gYm94R2VvbWV0cnkubWFyZ2luRW5kKCkgKyBib3hHZW9t
ZXRyeS5ib3JkZXJSaWdodCgpICsgYm94R2VvbWV0cnkucGFkZGluZ1JpZ2h0KCkudmFsdWVfb3Io
MCk7CkBAIC02OTcsNiArNzA0LDIxIEBAIHZvaWQgTGluZUJ1aWxkZXI6OmhhbmRsZUZsb2F0Q29u
dGVudChjb25zdCBJbmxpbmVJdGVtJiBmbG9hdEl0ZW0pCiAgICAgbV9saW5lTG9naWNhbFJlY3Qu
ZXhwYW5kSG9yaXpvbnRhbGx5KC1mbG9hdEJveFdpZHRoKTsKIH0KIAorc3RhdGljIGlubGluZSBJ
bmxpbmVMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoKGNvbnN0IExpbmVDYW5kaWRhdGU6OklubGlu
ZUNvbnRlbnQmIGNhbmRpZGF0ZUNvbnRlbnQsIGNvbnN0IExpbmUmIGxpbmUsIElubGluZUxheW91
dFVuaXQgYXZhaWxhYmxlV2lkdGhGb3JDb250ZW50KQoreworICAgIGF1dG8gYXZhaWxhYmxlV2lk
dGggPSBhdmFpbGFibGVXaWR0aEZvckNvbnRlbnQgLSBsaW5lLmNvbnRlbnRMb2dpY2FsUmlnaHQo
KTsKKyAgICBhdXRvJiBpbmxpbmVCb3hMaXN0V2l0aENsb25lZERlY29yYXRpb25FbmQgPSBsaW5l
LmlubGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVuZCgpOworICAgIGlmIChjYW5kaWRh
dGVDb250ZW50Lmhhc0lubGluZUxldmVsQm94KCkgJiYgIWlubGluZUJveExpc3RXaXRoQ2xvbmVk
RGVjb3JhdGlvbkVuZC5pc0VtcHR5KCkpIHsKKyAgICAgICAgLy8gV2UgbWF5IHRyeSB0byBjb21t
aXQgYSBpbmxpbmUgYm94IGVuZCBoZXJlIHdoaWNoIGFscmVhZHkgdGFrZXMgdXAgcGxhY2UgaW1w
bGljaXRseS4KKyAgICAgICAgLy8gTGV0J3Mgbm90IGFjY291bnQgZm9yIGl0cyBsb2dpY2FsIHdp
ZHRoIHR3aWNlLgorICAgICAgICBmb3IgKGF1dG8mIHJ1biA6IGNhbmRpZGF0ZUNvbnRlbnQuY29u
dGludW91c0NvbnRlbnQoKS5ydW5zKCkpIHsKKyAgICAgICAgICAgIGlmIChydW4uaW5saW5lSXRl
bS5pc0lubGluZUJveEVuZCgpKQorICAgICAgICAgICAgICAgIGF2YWlsYWJsZVdpZHRoICs9IGlu
bGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVuZC5nZXQoJnJ1bi5pbmxpbmVJdGVtLmxh
eW91dEJveCgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gc3RkOjppc25hbihhdmFp
bGFibGVXaWR0aCkgPyBtYXhJbmxpbmVMYXlvdXRVbml0KCkgOiBhdmFpbGFibGVXaWR0aDsKK30K
KwogTGluZUJ1aWxkZXI6OlJlc3VsdCBMaW5lQnVpbGRlcjo6aGFuZGxlSW5saW5lQ29udGVudChJ
bmxpbmVDb250ZW50QnJlYWtlciYgaW5saW5lQ29udGVudEJyZWFrZXIsIGNvbnN0IElubGluZUl0
ZW1SYW5nZSYgbGF5b3V0UmFuZ2UsIGNvbnN0IExpbmVDYW5kaWRhdGUmIGxpbmVDYW5kaWRhdGUp
CiB7CiAgICAgYXV0byYgaW5saW5lQ29udGVudCA9IGxpbmVDYW5kaWRhdGUuaW5saW5lQ29udGVu
dDsKQEAgLTcxMiw3ICs3MzQsNyBAQCBMaW5lQnVpbGRlcjo6UmVzdWx0IExpbmVCdWlsZGVyOjpo
YW5kbGVJbmxpbmVDb250ZW50KElubGluZUNvbnRlbnRCcmVha2VyJiBpbmxpbgogICAgIGlmIChz
aG91bGREaXNhYmxlSHlwaGVuYXRpb24oKSkKICAgICAgICAgaW5saW5lQ29udGVudEJyZWFrZXIu
c2V0SHlwaGVuYXRpb25EaXNhYmxlZCgpOwogCi0gICAgYXV0byYgY29udGludW91c0lubGluZUNv
bnRlbnQgPSBsaW5lQ2FuZGlkYXRlLmlubGluZUNvbnRlbnQuY29udGludW91c0NvbnRlbnQoKTsK
KyAgICBhdXRvJiBjb250aW51b3VzSW5saW5lQ29udGVudCA9IGlubGluZUNvbnRlbnQuY29udGlu
dW91c0NvbnRlbnQoKTsKICAgICBhdXRvIGxpbmVMb2dpY2FsUmVjdEZvckNhbmRpZGF0ZUNvbnRl
bnQgPSBbJl0gewogICAgICAgICAvLyBDaGVjayBpZiB0aGUgY2FuZGlkYXRlIGNvbnRlbnQgd291
bGQgc3RyZXRjaCB0aGUgbGluZSBhbmQgd2hldGhlciBhZGRpdGlvbmFsIGZsb2F0cyBhcmUgZ2V0
dGluZyBpbiB0aGUgd2F5LgogICAgICAgICBpZiAoIWZsb2F0aW5nU3RhdGUoKSB8fCAhaW5saW5l
Q29udGVudC5oYXNJbmxpbmVMZXZlbEJveCgpKQpAQCAtNzMzLDIyICs3NTUsMTAgQEAgTGluZUJ1
aWxkZXI6OlJlc3VsdCBMaW5lQnVpbGRlcjo6aGFuZGxlSW5saW5lQ29udGVudChJbmxpbmVDb250
ZW50QnJlYWtlciYgaW5saW4KICAgICAgICAgfQogICAgICAgICByZXR1cm4gYWRqdXN0ZWRMaW5l
TG9naWNhbFJlY3Q7CiAgICAgfSgpOwotICAgIGF1dG8gYXZhaWxhYmxlV2lkdGggPSBbJl0gewot
ICAgICAgICBhdXRvIGNvbnRlbnRMb2dpY2FsUmlnaHQgPSBtX2xpbmUuY29udGVudExvZ2ljYWxS
aWdodCgpOwotICAgICAgICBhdXRvJiBsaW5lU3Bhbm5pbmdJbmxpbmVCb3hFbmRzID0gbV9saW5l
LmxpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMoKTsKLSAgICAgICAgaWYgKCFsaW5lU3Bhbm5p
bmdJbmxpbmVCb3hFbmRzLmlzRW1wdHkoKSAmJiBpbmxpbmVDb250ZW50Lmhhc0lubGluZUxldmVs
Qm94KCkpIHsKLSAgICAgICAgICAgIC8vIFdlIG1heSB0cnkgdG8gY29tbWl0IGEgbGluZSBzcGFu
bmluZyBpbmxpbmUgYm94IGVuZCBoZXJlLiBMZXQncyBub3QgYWNjb3VudCBmb3IgaXRzIGxvZ2lj
YWwgd2lkdGggdHdpY2UuCi0gICAgICAgICAgICBmb3IgKGF1dG8mIHJ1biA6IGNvbnRpbnVvdXNJ
bmxpbmVDb250ZW50LnJ1bnMoKSkgewotICAgICAgICAgICAgICAgIGlmIChydW4uaW5saW5lSXRl
bS5pc0lubGluZUJveEVuZCgpKQotICAgICAgICAgICAgICAgICAgICBjb250ZW50TG9naWNhbFJp
Z2h0IC09IGxpbmVTcGFubmluZ0lubGluZUJveEVuZHMuZ2V0KCZydW4uaW5saW5lSXRlbS5sYXlv
dXRCb3goKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgYXV0byBhdmFpbGFi
bGVXaWR0aEZvckNvbnRlbnQgPSBsaW5lTG9naWNhbFJlY3RGb3JDYW5kaWRhdGVDb250ZW50Lndp
ZHRoKCkgLSBjb250ZW50TG9naWNhbFJpZ2h0OwotICAgICAgICByZXR1cm4gc3RkOjppc25hbihh
dmFpbGFibGVXaWR0aEZvckNvbnRlbnQpID8gbWF4SW5saW5lTGF5b3V0VW5pdCgpIDogYXZhaWxh
YmxlV2lkdGhGb3JDb250ZW50OwotICAgIH0oKTsKICAgICAvLyBXaGlsZSB0aGUgZmxvYXRzIGFy
ZSBub3QgY29uc2lkZXJlZCB0byBiZSBvbiB0aGUgbGluZSwgdGhleSBtYWtlIHRoZSBsaW5lIGNv
bnRlbnRmdWwgZm9yIGxpbmUgYnJlYWtpbmcuCisgICAgYXV0byBhdmFpbGFibGVXaWR0aEZvck5l
d0NvbnRlbnQgPSBhdmFpbGFibGVXaWR0aChpbmxpbmVDb250ZW50LCBtX2xpbmUsIGxpbmVMb2dp
Y2FsUmVjdEZvckNhbmRpZGF0ZUNvbnRlbnQud2lkdGgoKSk7CiAgICAgYXV0byBsaW5lSGFzQ29u
dGVudCA9IG1fbGluZS5oYXNDb250ZW50KCkgfHwgbV9jb250ZW50SXNDb25zdHJhaW5lZEJ5Rmxv
YXQ7Ci0gICAgYXV0byBsaW5lU3RhdHVzID0gSW5saW5lQ29udGVudEJyZWFrZXI6OkxpbmVTdGF0
dXMgeyBtX2xpbmUuY29udGVudExvZ2ljYWxSaWdodCgpLCBhdmFpbGFibGVXaWR0aCwgbV9saW5l
LnRyaW1tYWJsZVRyYWlsaW5nV2lkdGgoKSwgbV9saW5lLnRyYWlsaW5nU29mdEh5cGhlbldpZHRo
KCksIG1fbGluZS5pc1RyYWlsaW5nUnVuRnVsbHlUcmltbWFibGUoKSwgbGluZUhhc0NvbnRlbnQs
ICFtX3dyYXBPcHBvcnR1bml0eUxpc3QuaXNFbXB0eSgpIH07CisgICAgYXV0byBsaW5lU3RhdHVz
ID0gSW5saW5lQ29udGVudEJyZWFrZXI6OkxpbmVTdGF0dXMgeyBtX2xpbmUuY29udGVudExvZ2lj
YWxSaWdodCgpLCBhdmFpbGFibGVXaWR0aEZvck5ld0NvbnRlbnQsIG1fbGluZS50cmltbWFibGVU
cmFpbGluZ1dpZHRoKCksIG1fbGluZS50cmFpbGluZ1NvZnRIeXBoZW5XaWR0aCgpLCBtX2xpbmUu
aXNUcmFpbGluZ1J1bkZ1bGx5VHJpbW1hYmxlKCksIGxpbmVIYXNDb250ZW50LCAhbV93cmFwT3Bw
b3J0dW5pdHlMaXN0LmlzRW1wdHkoKSB9OwogICAgIGF1dG8gcmVzdWx0ID0gaW5saW5lQ29udGVu
dEJyZWFrZXIucHJvY2Vzc0lubGluZUNvbnRlbnQoY29udGludW91c0lubGluZUNvbnRlbnQsIGxp
bmVTdGF0dXMpOwogICAgIGF1dG8mIGNhbmRpZGF0ZVJ1bnMgPSBjb250aW51b3VzSW5saW5lQ29u
dGVudC5ydW5zKCk7CiAgICAgaWYgKHJlc3VsdC5hY3Rpb24gPT0gSW5saW5lQ29udGVudEJyZWFr
ZXI6OlJlc3VsdDo6QWN0aW9uOjpLZWVwKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441647</attachid>
            <date>2021-10-18 15:28:49 -0700</date>
            <delta_ts>2021-10-18 20:36:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Path.txt</filename>
            <type>text/plain</type>
            <size>21626</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">Y29tbWl0IDc5MmFlMmQ2Yzk4Y2EzNDZkNzQwZmQ0MzY4MjZkOGVjYWQ5OTJiZWYKQXV0aG9yOiBa
YWxhbiBCdWp0YXMgPHphbGFuQGFwcGxlLmNvbT4KRGF0ZTogICBTYXQgT2N0IDE2IDIwOjEyOjI2
IDIwMjEgLTA3MDAKCiAgICBmaW5hbAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlM2MzOGVjMGU2NmUuLjk3ZTFk
N2E5ZjQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTEwLTE2ICBBbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIEFkanVzdCB0aGUg
bG9naWNhbCByaWdodCBzaWRlIG9mIHRoZSBsaW5lIHdoZW4gYm94LWRlY29yYXRpb24tYnJlYWs6
IGNsb25lIGlzIHByZXNlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTg3MworCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciAiYm94LWRlY29yYXRpb24tYnJl
YWs6IGNsb25lIiBjYXNlcyB3aGVuIHRoZSBpbmxpbmUgYm94IGlzIGVpdGhlciBub3QgbGluZSBz
cGFubmluZyBvcgorICAgICAgICBpdCBzaG93cyB1cCBmaXJzdCBvbiB0aGUgbGluZS4KKworICAg
ICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjppbml0aWFsaXplKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGluZTo6YXBwZW5kSW5saW5lQm94U3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lOjphcHBlbmRJbmxpbmVCb3hFbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lOjphcHBlbmRUZXh0Q29udGVudCk6CisgICAgICAgICogbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMaW5lOjpjb250ZW50TG9naWNhbFJpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6TGluZTo6aW5saW5lQm94TGlzdFdpdGhDbG9uZWREZWNvcmF0aW9uRW5kIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6bGluZVNwYW5uaW5nSW5saW5l
Qm94UnVuRW5kcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lQm94QnVpbGRlcjo6Y29uc3RydWN0QW5kQWxpZ25JbmxpbmVMZXZlbEJv
eGVzKToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVM
aW5lQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjpo
YW5kbGVJbmxpbmVDb250ZW50KToKKwogMjAyMS0xMC0xNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBBZGp1c3QgdGhlIGxvZ2ljYWwgcmlnaHQg
c2lkZSBvZiB0aGUgbGluZSB3aXRoIGxpbmUgc3Bhbm5pbmcgaW5saW5lIGJveGVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUxpbmUuY3BwCmluZGV4IDE2ZTNlMmM3YzUwYS4uMzI1ZDgyMjQ5YzM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcApAQCAtNTIsMzYgKzUyLDMxIEBAIExpbmU6On5MaW5l
KCkKIAogdm9pZCBMaW5lOjppbml0aWFsaXplKGNvbnN0IFZlY3RvcjxJbmxpbmVJdGVtPiYgbGlu
ZVNwYW5uaW5nSW5saW5lQm94ZXMpCiB7Ci0gICAgbV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5F
bmRzLmNsZWFyKCk7Ci0gICAgbV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRXaWR0aCA9IHsg
fTsKKyAgICBtX2lubGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVuZC5jbGVhcigpOwor
ICAgIG1fY2xvbmVkRW5kRGVjb3JhdGlvbldpZHRoRm9ySW5saW5lQm94UnVucyA9IHsgfTsKICAg
ICBtX25vblNwYW5uaW5nSW5saW5lTGV2ZWxCb3hDb3VudCA9IDA7CiAgICAgbV9jb250ZW50TG9n
aWNhbFdpZHRoID0geyB9OwogICAgIG1fcnVucy5jbGVhcigpOwogICAgIHJlc2V0VHJhaWxpbmdD
b250ZW50KCk7CiAgICAgYXV0byBhcHBlbmRMaW5lU3Bhbm5pbmdJbmxpbmVCb3hlcyA9IFsmXSB7
CiAgICAgICAgIGZvciAoYXV0byYgaW5saW5lQm94U3RhcnRJdGVtIDogbGluZVNwYW5uaW5nSW5s
aW5lQm94ZXMpIHsKLSAgICAgICAgICAgIGF1dG8gc2hvdWxkQ2hlY2tGb3JNYXJnaW5Cb3JkZXJB
bmRQYWRkaW5nID0gZmFsc2U7CiAjaWYgRU5BQkxFKENTU19CT1hfREVDT1JBVElPTl9CUkVBSykK
LSAgICAgICAgICAgIHNob3VsZENoZWNrRm9yTWFyZ2luQm9yZGVyQW5kUGFkZGluZyA9IGlubGlu
ZUJveFN0YXJ0SXRlbS5zdHlsZSgpLmJveERlY29yYXRpb25CcmVhaygpID09IEJveERlY29yYXRp
b25CcmVhazo6Q2xvbmU7Ci0jZW5kaWYKLSAgICAgICAgICAgIGlmICghc2hvdWxkQ2hlY2tGb3JN
YXJnaW5Cb3JkZXJBbmRQYWRkaW5nKSB7CisgICAgICAgICAgICBpZiAoaW5saW5lQm94U3RhcnRJ
dGVtLnN0eWxlKCkuYm94RGVjb3JhdGlvbkJyZWFrKCkgIT0gQm94RGVjb3JhdGlvbkJyZWFrOjpD
bG9uZSkKICAgICAgICAgICAgICAgICBtX3J1bnMuYXBwZW5kKHsgaW5saW5lQm94U3RhcnRJdGVt
LCBsYXN0UnVuTG9naWNhbFJpZ2h0KCksIHsgfSB9KTsKLSAgICAgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3MtYnJlYWsvI2JyZWFrLWRlY29yYXRpb24KKyAgICAgICAgICAgICAgICAv
LyBjbG9uZTogRWFjaCBib3ggZnJhZ21lbnQgaXMgaW5kZXBlbmRlbnRseSB3cmFwcGVkIHdpdGgg
dGhlIGJvcmRlciwgcGFkZGluZywgYW5kIG1hcmdpbi4KKyAgICAgICAgICAgICAgICBhdXRvJiBp
bmxpbmVCb3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goaW5s
aW5lQm94U3RhcnRJdGVtLmxheW91dEJveCgpKTsKKyAgICAgICAgICAgICAgICBhdXRvIG1hcmdp
bkJvcmRlckFuZFBhZGRpbmdTdGFydCA9IGlubGluZUJveEdlb21ldHJ5Lm1hcmdpblN0YXJ0KCkg
KyBpbmxpbmVCb3hHZW9tZXRyeS5ib3JkZXJMZWZ0KCkgKyBpbmxpbmVCb3hHZW9tZXRyeS5wYWRk
aW5nTGVmdCgpLnZhbHVlX29yKDBfbHUpOworICAgICAgICAgICAgICAgIGF1dG8gcnVuTG9naWNh
bExlZnQgPSBsYXN0UnVuTG9naWNhbFJpZ2h0KCk7CisgICAgICAgICAgICAgICAgbV9ydW5zLmFw
cGVuZCh7IGlubGluZUJveFN0YXJ0SXRlbSwgcnVuTG9naWNhbExlZnQsIG1hcmdpbkJvcmRlckFu
ZFBhZGRpbmdTdGFydCB9KTsKKyAgICAgICAgICAgICAgICAvLyBEbyBub3QgbGV0IG5lZ2F0aXZl
IG1hcmdpbiBtYWtlIHRoZSBjb250ZW50IHNob3J0ZXIgdGhhbiBpdCBhbHJlYWR5IGlzLgorICAg
ICAgICAgICAgICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCA9IHN0ZDo6bWF4KG1fY29udGVudExv
Z2ljYWxXaWR0aCwgcnVuTG9naWNhbExlZnQgKyBtYXJnaW5Cb3JkZXJBbmRQYWRkaW5nU3RhcnQp
OworICAgICAgICAgICAgICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCArPSBhZGRCb3JkZXJBbmRQ
YWRkaW5nRW5kRm9ySW5saW5lQm94RGVjb3JhdGlvbkNsb25lKGlubGluZUJveFN0YXJ0SXRlbSk7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3NzLWJyZWFrLyNicmVhay1kZWNvcmF0aW9uCi0gICAgICAgICAgICAvLyBjbG9uZTogRWFjaCBi
b3ggZnJhZ21lbnQgaXMgaW5kZXBlbmRlbnRseSB3cmFwcGVkIHdpdGggdGhlIGJvcmRlciwgcGFk
ZGluZywgYW5kIG1hcmdpbi4KLSAgICAgICAgICAgIGF1dG8mIGlubGluZUJveEdlb21ldHJ5ID0g
Zm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChpbmxpbmVCb3hTdGFydEl0ZW0ubGF5
b3V0Qm94KCkpOwotICAgICAgICAgICAgYXV0byBydW5Mb2dpY2FsTGVmdCA9IGxhc3RSdW5Mb2dp
Y2FsUmlnaHQoKTsKLSAgICAgICAgICAgIGF1dG8gbWFyZ2luQm9yZGVyQW5kUGFkZGluZ1N0YXJ0
ID0gaW5saW5lQm94R2VvbWV0cnkubWFyZ2luU3RhcnQoKSArIGlubGluZUJveEdlb21ldHJ5LmJv
cmRlckxlZnQoKSArIGlubGluZUJveEdlb21ldHJ5LnBhZGRpbmdMZWZ0KCkudmFsdWVfb3IoMF9s
dSk7Ci0gICAgICAgICAgICBtX3J1bnMuYXBwZW5kKHsgaW5saW5lQm94U3RhcnRJdGVtLCBydW5M
b2dpY2FsTGVmdCwgbWFyZ2luQm9yZGVyQW5kUGFkZGluZ1N0YXJ0IH0pOwotICAgICAgICAgICAg
Ly8gRG8gbm90IGxldCBuZWdhdGl2ZSBtYXJnaW4gbWFrZSB0aGUgY29udGVudCBzaG9ydGVyIHRo
YW4gaXQgYWxyZWFkeSBpcy4KLSAgICAgICAgICAgIGF1dG8gcnVuTG9naWNhbFJpZ2h0ID0gcnVu
TG9naWNhbExlZnQgKyBtYXJnaW5Cb3JkZXJBbmRQYWRkaW5nU3RhcnQ7Ci0gICAgICAgICAgICBt
X2NvbnRlbnRMb2dpY2FsV2lkdGggPSBzdGQ6Om1heChtX2NvbnRlbnRMb2dpY2FsV2lkdGgsIHJ1
bkxvZ2ljYWxSaWdodCk7Ci0KLSAgICAgICAgICAgIGF1dG8gbWFyZ2luQm9yZGVyQW5kUGFkZGlu
Z0VuZCA9IGlubGluZUJveEdlb21ldHJ5Lm1hcmdpbkVuZCgpICsgaW5saW5lQm94R2VvbWV0cnku
Ym9yZGVyUmlnaHQoKSArIGlubGluZUJveEdlb21ldHJ5LnBhZGRpbmdSaWdodCgpLnZhbHVlX29y
KDBfbHUpOwotICAgICAgICAgICAgbV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRzLmFkZCgm
aW5saW5lQm94U3RhcnRJdGVtLmxheW91dEJveCgpLCBtYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRW5k
KTsKLSAgICAgICAgICAgIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kV2lkdGggKz0gbWFy
Z2luQm9yZGVyQW5kUGFkZGluZ0VuZDsKLSAgICAgICAgICAgIG1fY29udGVudExvZ2ljYWxXaWR0
aCArPSBtYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRW5kOworI2Vsc2UKKyAgICAgICAgICAgIG1fcnVu
cy5hcHBlbmQoeyBpbmxpbmVCb3hTdGFydEl0ZW0sIGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSwgeyB9
IH0pOworI2VuZGlmCiAgICAgICAgIH0KICAgICB9OwogICAgIGFwcGVuZExpbmVTcGFubmluZ0lu
bGluZUJveGVzKCk7CkBAIC0yNjQsMTkgKzI1OSwxNiBAQCB2b2lkIExpbmU6OmFwcGVuZChjb25z
dCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIElubGlu
ZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBMaW5lOjphcHBlbmRO
b25CcmVha2FibGVTcGFjZShjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBSZW5k
ZXJTdHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQsIElubGluZUxheW91
dFVuaXQgbG9naWNhbFdpZHRoKQotewotICAgIG1fcnVucy5hcHBlbmQoeyBpbmxpbmVJdGVtLCBz
dHlsZSwgbG9naWNhbExlZnQsIGxvZ2ljYWxXaWR0aCB9KTsKLSAgICAvLyBEbyBub3QgbGV0IG5l
Z2F0aXZlIG1hcmdpbiBtYWtlIHRoZSBjb250ZW50IHNob3J0ZXIgdGhhbiBpdCBhbHJlYWR5IGlz
LgotICAgIGF1dG8gcnVuTG9naWNhbFJpZ2h0ID0gbG9naWNhbExlZnQgKyBsb2dpY2FsV2lkdGg7
Ci0gICAgbV9jb250ZW50TG9naWNhbFdpZHRoID0gc3RkOjptYXgobV9jb250ZW50TG9naWNhbFdp
ZHRoLCBydW5Mb2dpY2FsUmlnaHQpOwotfQotCiB2b2lkIExpbmU6OmFwcGVuZElubGluZUJveFN0
YXJ0KGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpCiB7CiAgICAgLy8gVGhpcyBpcyByZWFs
bHkganVzdCBhIHBsYWNlaG9sZGVyIHRvIG1hcmsgdGhlIHN0YXJ0IG9mIHRoZSBpbmxpbmUgYm94
IDxzcGFuPi4KICAgICArK21fbm9uU3Bhbm5pbmdJbmxpbmVMZXZlbEJveENvdW50OwotICAgIGFw
cGVuZE5vbkJyZWFrYWJsZVNwYWNlKGlubGluZUl0ZW0sIHN0eWxlLCBsYXN0UnVuTG9naWNhbFJp
Z2h0KCksIGxvZ2ljYWxXaWR0aCk7CisgICAgYXV0byBsb2dpY2FsTGVmdCA9IGxhc3RSdW5Mb2dp
Y2FsUmlnaHQoKTsKKyAgICAvLyBJbmNvbWluZyBsb2dpY2FsIHdpZHRoIGluY2x1ZGVzIHRoZSBj
bG9uZWQgZGVjb3JhdGlvbiBlbmQgdG8gYmUgYWJsZSB0byBkbyBsaW5lIGJyZWFraW5nLgorICAg
IGF1dG8gYm9yZGVyQW5kUGFkZGluZ0VuZEZvckRlY29yYXRpb25DbG9uZSA9IGFkZEJvcmRlckFu
ZFBhZGRpbmdFbmRGb3JJbmxpbmVCb3hEZWNvcmF0aW9uQ2xvbmUoaW5saW5lSXRlbSk7CisgICAg
bV9ydW5zLmFwcGVuZCh7IGlubGluZUl0ZW0sIHN0eWxlLCBsb2dpY2FsTGVmdCwgbG9naWNhbFdp
ZHRoIC0gYm9yZGVyQW5kUGFkZGluZ0VuZEZvckRlY29yYXRpb25DbG9uZSB9KTsKKyAgICAvLyBE
byBub3QgbGV0IG5lZ2F0aXZlIG1hcmdpbiBtYWtlIHRoZSBjb250ZW50IHNob3J0ZXIgdGhhbiBp
dCBhbHJlYWR5IGlzLgorICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCA9IHN0ZDo6bWF4KG1fY29u
dGVudExvZ2ljYWxXaWR0aCwgbG9naWNhbExlZnQgKyBsb2dpY2FsV2lkdGgpOwogfQogCiB2b2lk
IExpbmU6OmFwcGVuZElubGluZUJveEVuZChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBj
b25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKQpA
QCAtMjg3LDE4ICsyNzksMTQgQEAgdm9pZCBMaW5lOjphcHBlbmRJbmxpbmVCb3hFbmQoY29uc3Qg
SW5saW5lSXRlbSYgaW5saW5lSXRlbSwgY29uc3QgUmVuZGVyU3R5bGUmIHMKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgbV9jb250ZW50TG9naWNhbFdpZHRoIC09IG1fdHJpbW1hYmxlVHJh
aWxpbmdDb250ZW50LnJlbW92ZVBhcnRpYWxseVRyaW1tYWJsZUNvbnRlbnQoKTsKICAgICB9Owot
ICAgIGF1dG8gcmVtb3ZlRnJvbUxpbmVTcGFubmluZ0lubGluZUJveExpc3RJZkFwcGxpY2FibGUg
PSBbJl0gewotICAgICAgICBBU1NFUlQoIW1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kcy5j
b250YWlucygmaW5saW5lSXRlbS5sYXlvdXRCb3goKSkgfHwgbV9saW5lU3Bhbm5pbmdJbmxpbmVC
b3hSdW5FbmRzLmdldCgmaW5saW5lSXRlbS5sYXlvdXRCb3goKSkgPT0gbG9naWNhbFdpZHRoKTsK
LSAgICAgICAgYXV0byBpbmxpbmVCb3hFbmQgPSBtX2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVu
ZHMucmVtb3ZlKCZpbmxpbmVJdGVtLmxheW91dEJveCgpKTsKLSAgICAgICAgLy8gVGhpcyBpbmxp
bmUgYm94IGVuZCBub3cgY29udHJpYnV0ZXMgdG8gdGhlIGxpbmUgY29udGVudCB3aWR0aCBpbiB0
aGUgcmVndWxhciB3YXkuCi0gICAgICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCAtPSBpbmxpbmVC
b3hFbmQ7Ci0gICAgICAgIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kV2lkdGggLT0gaW5s
aW5lQm94RW5kOwotICAgIH07CiAgICAgLy8gUHJldmVudCB0cmFpbGluZyBsZXR0ZXItc3BhY2lu
ZyBmcm9tIHNwaWxsaW5nIG91dCBvZiB0aGUgaW5saW5lIGJveC4KICAgICAvLyBodHRwczovL2Ry
YWZ0cy5jc3N3Zy5vcmcvY3NzLXRleHQtMy8jbGV0dGVyLXNwYWNpbmctcHJvcGVydHkgU2VlIGV4
YW1wbGUgMjEuCiAgICAgcmVtb3ZlVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCk7Ci0gICAgcmVtb3Zl
RnJvbUxpbmVTcGFubmluZ0lubGluZUJveExpc3RJZkFwcGxpY2FibGUoKTsKLSAgICBhcHBlbmRO
b25CcmVha2FibGVTcGFjZShpbmxpbmVJdGVtLCBzdHlsZSwgbGFzdFJ1bkxvZ2ljYWxSaWdodCgp
LCBsb2dpY2FsV2lkdGgpOworICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCAtPSByZW1vdmVCb3Jk
ZXJBbmRQYWRkaW5nRW5kRm9ySW5saW5lQm94RGVjb3JhdGlvbkNsb25lKGlubGluZUl0ZW0pOwor
ICAgIGF1dG8gbG9naWNhbExlZnQgPSBsYXN0UnVuTG9naWNhbFJpZ2h0KCk7CisgICAgbV9ydW5z
LmFwcGVuZCh7IGlubGluZUl0ZW0sIHN0eWxlLCBsb2dpY2FsTGVmdCwgbG9naWNhbFdpZHRoIH0p
OworICAgIC8vIERvIG5vdCBsZXQgbmVnYXRpdmUgbWFyZ2luIG1ha2UgdGhlIGNvbnRlbnQgc2hv
cnRlciB0aGFuIGl0IGFscmVhZHkgaXMuCisgICAgbV9jb250ZW50TG9naWNhbFdpZHRoID0gc3Rk
OjptYXgobV9jb250ZW50TG9naWNhbFdpZHRoLCBsb2dpY2FsTGVmdCArIGxvZ2ljYWxXaWR0aCk7
CiB9CiAKIHZvaWQgTGluZTo6YXBwZW5kVGV4dENvbnRlbnQoY29uc3QgSW5saW5lVGV4dEl0ZW0m
IGlubGluZVRleHRJdGVtLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIElubGluZUxheW91dFVu
aXQgbG9naWNhbFdpZHRoKQpAQCAtMzQ0LDEwICszMzIsMTIgQEAgdm9pZCBMaW5lOjphcHBlbmRU
ZXh0Q29udGVudChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJl
bmRlclMKICAgICB9KCk7CiAgICAgYXV0byBvbGRDb250ZW50TG9naWNhbFdpZHRoID0gY29udGVu
dExvZ2ljYWxXaWR0aCgpOwogICAgIGlmIChuZWVkc05ld1J1bikgewotICAgICAgICAvLyBOb3Rl
LCBuZWdhdGl2ZSB3b3JkcyBzcGFjaW5nIG1heSBjYXVzZSBnbHlwaCBvdmVybGFwLgorICAgICAg
ICAvLyBOb3RlLCBuZWdhdGl2ZSB3b3JkIHNwYWNpbmcgbWF5IGNhdXNlIGdseXBoIG92ZXJsYXAu
CiAgICAgICAgIGF1dG8gcnVuTG9naWNhbExlZnQgPSBsYXN0UnVuTG9naWNhbFJpZ2h0KCkgKyAo
aW5saW5lVGV4dEl0ZW0uaXNXb3JkU2VwYXJhdG9yKCkgPyBzdHlsZS5mb250Q2FzY2FkZSgpLndv
cmRTcGFjaW5nKCkgOiAwLjBmKTsKICAgICAgICAgbV9ydW5zLmFwcGVuZCh7IGlubGluZVRleHRJ
dGVtLCBzdHlsZSwgcnVuTG9naWNhbExlZnQsIGxvZ2ljYWxXaWR0aCB9KTsKLSAgICAgICAgbV9j
b250ZW50TG9naWNhbFdpZHRoID0gc3RkOjptYXgob2xkQ29udGVudExvZ2ljYWxXaWR0aCwgcnVu
TG9naWNhbExlZnQgKyBsb2dpY2FsV2lkdGgpOworICAgICAgICAvLyBOb3RlIHRoYXQgdGhlIF9j
b250ZW50XyBsb2dpY2FsIHJpZ2h0IG1heSBiZSBsYXJnZXIgdGhhbiB0aGUgX3J1bl8gbG9naWNh
bCByaWdodC4KKyAgICAgICAgYXV0byBjb250ZW50TG9naWNhbFJpZ2h0ID0gcnVuTG9naWNhbExl
ZnQgKyBsb2dpY2FsV2lkdGggKyBtX2Nsb25lZEVuZERlY29yYXRpb25XaWR0aEZvcklubGluZUJv
eFJ1bnM7CisgICAgICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCA9IHN0ZDo6bWF4KG9sZENvbnRl
bnRMb2dpY2FsV2lkdGgsIGNvbnRlbnRMb2dpY2FsUmlnaHQpOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIG1fcnVucy5sYXN0KCkuZXhwYW5kKGlubGluZVRleHRJdGVtLCBsb2dpY2FsV2lkdGgpOwog
ICAgICAgICAvLyBEbyBub3QgbGV0IG5lZ2F0aXZlIGxldHRlciBzcGFjaW5nIG1ha2UgdGhlIGNv
bnRlbnQgc2hvcnRlciB0aGFuIGl0IGFscmVhZHkgaXMuCkBAIC00MTYsNiArNDA2LDM3IEBAIHZv
aWQgTGluZTo6YXBwZW5kV29yZEJyZWFrT3Bwb3J0dW5pdHkoY29uc3QgSW5saW5lSXRlbSYgaW5s
aW5lSXRlbSkKICAgICBtX3J1bnMuYXBwZW5kKHsgaW5saW5lSXRlbSwgbGFzdFJ1bkxvZ2ljYWxS
aWdodCgpIH0pOwogfQogCitJbmxpbmVMYXlvdXRVbml0IExpbmU6OmFkZEJvcmRlckFuZFBhZGRp
bmdFbmRGb3JJbmxpbmVCb3hEZWNvcmF0aW9uQ2xvbmUoY29uc3QgSW5saW5lSXRlbSYgaW5saW5l
Qm94U3RhcnRJdGVtKQoreworICAgIEFTU0VSVChpbmxpbmVCb3hTdGFydEl0ZW0uaXNJbmxpbmVC
b3hTdGFydCgpKTsKKyNpZiBFTkFCTEUoQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKQorICAgIGlm
IChpbmxpbmVCb3hTdGFydEl0ZW0uc3R5bGUoKS5ib3hEZWNvcmF0aW9uQnJlYWsoKSAhPSBCb3hE
ZWNvcmF0aW9uQnJlYWs6OkNsb25lKQorICAgICAgICByZXR1cm4geyB9OworICAgIC8vIGh0dHBz
Oi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtYnJlYWsvI2JyZWFrLWRlY29yYXRpb24KKyAgICBhdXRv
JiBpbmxpbmVCb3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3go
aW5saW5lQm94U3RhcnRJdGVtLmxheW91dEJveCgpKTsKKyAgICBhdXRvIGJvcmRlckFuZFBhZGRp
bmdFbmQgPSBpbmxpbmVCb3hHZW9tZXRyeS5ib3JkZXJSaWdodCgpICsgaW5saW5lQm94R2VvbWV0
cnkucGFkZGluZ1JpZ2h0KCkudmFsdWVfb3IoMF9sdSk7CisgICAgbV9pbmxpbmVCb3hMaXN0V2l0
aENsb25lZERlY29yYXRpb25FbmQuYWRkKCZpbmxpbmVCb3hTdGFydEl0ZW0ubGF5b3V0Qm94KCks
IGJvcmRlckFuZFBhZGRpbmdFbmQpOworICAgIG1fY2xvbmVkRW5kRGVjb3JhdGlvbldpZHRoRm9y
SW5saW5lQm94UnVucyArPSBib3JkZXJBbmRQYWRkaW5nRW5kOworICAgIHJldHVybiBib3JkZXJB
bmRQYWRkaW5nRW5kOworI2VuZGlmCisgICAgcmV0dXJuIHsgfTsKK30KKworSW5saW5lTGF5b3V0
VW5pdCBMaW5lOjpyZW1vdmVCb3JkZXJBbmRQYWRkaW5nRW5kRm9ySW5saW5lQm94RGVjb3JhdGlv
bkNsb25lKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUJveEVuZEl0ZW0pCit7CisgICAgQVNTRVJU
KGlubGluZUJveEVuZEl0ZW0uaXNJbmxpbmVCb3hFbmQoKSk7CisjaWYgRU5BQkxFKENTU19CT1hf
REVDT1JBVElPTl9CUkVBSykKKyAgICBhdXRvIGJvcmRlckFuZFBhZGRpbmdFbmQgPSBtX2lubGlu
ZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVuZC50YWtlKCZpbmxpbmVCb3hFbmRJdGVtLmxh
eW91dEJveCgpKTsKKyAgICBpZiAoc3RkOjppc2luZihib3JkZXJBbmRQYWRkaW5nRW5kKSkKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICAvLyBUaGlzIGlubGluZSBib3ggZW5kIG5vdyBjb250cmli
dXRlcyB0byB0aGUgbGluZSBjb250ZW50IHdpZHRoIGluIHRoZSByZWd1bGFyIHdheSwgc28gbGV0
J3MgcmVtb3ZlCisgICAgLy8gaXQgZnJvbSB0aGUgc2lkZSBzdHJ1Y3R1cmUgd2hlcmUgd2Uga2Vl
cCB0cmFjayBvZiB0aGUgIm5vdC15ZXQgcGxhY2VkIGJ1dCBzcGFjZSB0YWtpbmciIGRlY29yYXRp
b25zLgorICAgIG1fY2xvbmVkRW5kRGVjb3JhdGlvbldpZHRoRm9ySW5saW5lQm94UnVucyAtPSBi
b3JkZXJBbmRQYWRkaW5nRW5kOworICAgIHJldHVybiBib3JkZXJBbmRQYWRkaW5nRW5kOworI2Vu
ZGlmCisgICAgcmV0dXJuIHsgfTsKK30KKwogdm9pZCBMaW5lOjphZGRUcmFpbGluZ0h5cGhlbihJ
bmxpbmVMYXlvdXRVbml0IGh5cGhlbkxvZ2ljYWxXaWR0aCkKIHsKICAgICBmb3IgKGF1dG8mIHJ1
biA6IFdURjo6bWFrZVJldmVyc2VkUmFuZ2UobV9ydW5zKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGlu
ZS5oCmluZGV4IDQ5N2E2YjhjNTA2OS4uOTEzMjg1M2EwYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
TGluZS5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0NvbnRlbnQoKSBj
b25zdCB7IHJldHVybiAhbV9ydW5zLmlzRW1wdHkoKSAmJiAhbV9ydW5zLmxhc3QoKS5pc0xpbmVT
cGFubmluZ0lubGluZUJveFN0YXJ0KCk7IH0KIAogICAgIElubGluZUxheW91dFVuaXQgY29udGVu
dExvZ2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudExvZ2ljYWxXaWR0aDsgfQot
ICAgIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0dXJu
IGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSArIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kV2lk
dGg7IH0KKyAgICBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsUmlnaHQoKSBjb25zdCB7
IHJldHVybiBsYXN0UnVuTG9naWNhbFJpZ2h0KCkgKyBtX2Nsb25lZEVuZERlY29yYXRpb25XaWR0
aEZvcklubGluZUJveFJ1bnM7IH0KICAgICBzaXplX3Qgbm9uU3Bhbm5pbmdJbmxpbmVMZXZlbEJv
eENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9ub25TcGFubmluZ0lubGluZUxldmVsQm94Q291bnQ7
IH0KIAogICAgIElubGluZUxheW91dFVuaXQgdHJpbW1hYmxlVHJhaWxpbmdXaWR0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHJpbW1hYmxlVHJhaWxpbmdDb250ZW50LndpZHRoKCk7IH0KQEAgLTE1Niwx
MyArMTU2LDEyIEBAIHB1YmxpYzoKICAgICB9OwogICAgIHVzaW5nIFJ1bkxpc3QgPSBWZWN0b3I8
UnVuLCAxMD47CiAgICAgY29uc3QgUnVuTGlzdCYgcnVucygpIGNvbnN0IHsgcmV0dXJuIG1fcnVu
czsgfQotICAgIHVzaW5nIExpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMgPSBIYXNoTWFwPGNv
bnN0IEJveCosIElubGluZUxheW91dFVuaXQ+OwotICAgIGNvbnN0IExpbmVTcGFubmluZ0lubGlu
ZUJveFJ1bkVuZHMmIGxpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMoKSBjb25zdCB7IHJldHVy
biBtX2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHM7IH0KKyAgICB1c2luZyBJbmxpbmVCb3hM
aXN0V2l0aENsb25lZERlY29yYXRpb25FbmQgPSBIYXNoTWFwPGNvbnN0IEJveCosIElubGluZUxh
eW91dFVuaXQ+OworICAgIGNvbnN0IElubGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVu
ZCYgaW5saW5lQm94TGlzdFdpdGhDbG9uZWREZWNvcmF0aW9uRW5kKCkgY29uc3QgeyByZXR1cm4g
bV9pbmxpbmVCb3hMaXN0V2l0aENsb25lZERlY29yYXRpb25FbmQ7IH0KIAogcHJpdmF0ZToKICAg
ICBJbmxpbmVMYXlvdXRVbml0IGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBt
X3J1bnMuaXNFbXB0eSgpID8gMC4wZiA6IG1fcnVucy5sYXN0KCkubG9naWNhbFJpZ2h0KCk7IH0K
IAotICAgIHZvaWQgYXBwZW5kTm9uQnJlYWthYmxlU3BhY2UoY29uc3QgSW5saW5lSXRlbSYsIGNv
bnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGgpOwogICAgIHZvaWQgYXBwZW5kVGV4dENvbnRlbnQoY29uc3Qg
SW5saW5lVGV4dEl0ZW0mLCBjb25zdCBSZW5kZXJTdHlsZSYsIElubGluZUxheW91dFVuaXQgbG9n
aWNhbFdpZHRoKTsKICAgICB2b2lkIGFwcGVuZE5vblJlcGxhY2VkSW5saW5lTGV2ZWxCb3goY29u
c3QgSW5saW5lSXRlbSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBtYXJn
aW5Cb3hMb2dpY2FsV2lkdGgpOwogICAgIHZvaWQgYXBwZW5kUmVwbGFjZWRJbmxpbmVMZXZlbEJv
eChjb25zdCBJbmxpbmVJdGVtJiwgY29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0
IG1hcmdpbkJveExvZ2ljYWxXaWR0aCk7CkBAIC0xNzEsNiArMTcwLDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGFwcGVuZExpbmVCcmVhayhjb25zdCBJbmxpbmVJdGVtJik7CiAgICAgdm9pZCBhcHBl
bmRXb3JkQnJlYWtPcHBvcnR1bml0eShjb25zdCBJbmxpbmVJdGVtJik7CiAKKyAgICBJbmxpbmVM
YXlvdXRVbml0IGFkZEJvcmRlckFuZFBhZGRpbmdFbmRGb3JJbmxpbmVCb3hEZWNvcmF0aW9uQ2xv
bmUoY29uc3QgSW5saW5lSXRlbSYgaW5saW5lQm94U3RhcnRJdGVtKTsKKyAgICBJbmxpbmVMYXlv
dXRVbml0IHJlbW92ZUJvcmRlckFuZFBhZGRpbmdFbmRGb3JJbmxpbmVCb3hEZWNvcmF0aW9uQ2xv
bmUoY29uc3QgSW5saW5lSXRlbSYgaW5saW5lQm94RW5kSXRlbSk7CiAgICAgdm9pZCByZW1vdmVU
cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnQoKTsKICAgICB2b2lkIHZpc3VhbGx5Q29sbGFwc2VIYW5n
aW5nT3ZlcmZsb3coSW5saW5lTGF5b3V0VW5pdCBob3Jpem9udGFsQXZhaWxhYmxlU3BhY2UpOwog
CkBAIC0yMjAsOCArMjIxLDggQEAgcHJpdmF0ZToKICAgICBJbmxpbmVMYXlvdXRVbml0IG1fY29u
dGVudExvZ2ljYWxXaWR0aCB7IDAgfTsKICAgICBzaXplX3QgbV9ub25TcGFubmluZ0lubGluZUxl
dmVsQm94Q291bnQgeyAwIH07CiAgICAgc3RkOjpvcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiBt
X3RyYWlsaW5nU29mdEh5cGhlbldpZHRoIHsgMCB9OwotICAgIExpbmVTcGFubmluZ0lubGluZUJv
eFJ1bkVuZHMgbV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRzOwotICAgIElubGluZUxheW91
dFVuaXQgbV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRXaWR0aCB7IDAgfTsKKyAgICBJbmxp
bmVCb3hMaXN0V2l0aENsb25lZERlY29yYXRpb25FbmQgbV9pbmxpbmVCb3hMaXN0V2l0aENsb25l
ZERlY29yYXRpb25FbmQ7CisgICAgSW5saW5lTGF5b3V0VW5pdCBtX2Nsb25lZEVuZERlY29yYXRp
b25XaWR0aEZvcklubGluZUJveFJ1bnMgeyAwIH07CiB9OwogCiBpbmxpbmUgdm9pZCBMaW5lOjpU
cmltbWFibGVUcmFpbGluZ0NvbnRlbnQ6OnJlc2V0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUxpbmVCb3hCdWlsZGVyLmNwcAppbmRleCBjMmVlYjE0NmY4MjAuLmE2MDQ4OGUxMmJkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcApAQCAtMzEw
LDcgKzMxMCwxNCBAQCBJbmxpbmVMYXlvdXRVbml0IExpbmVCb3hCdWlsZGVyOjpjb25zdHJ1Y3RB
bmRBbGlnbklubGluZUxldmVsQm94ZXMoTGluZUJveCYgbGluZQogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHJ1bi5pc0xpbmVTcGFubmluZ0lubGluZUJveFN0
YXJ0KCkpIHsKLSAgICAgICAgICAgIGF1dG8gaW5saW5lQm94ID0gSW5saW5lTGV2ZWxCb3g6OmNy
ZWF0ZUlubGluZUJveChsYXlvdXRCb3gsIHN0eWxlLCBsb2dpY2FsTGVmdCwgcm9vdElubGluZUJv
eC5sb2dpY2FsV2lkdGgoKSwgSW5saW5lTGV2ZWxCb3g6OkxpbmVTcGFubmluZ0lubGluZUJveDo6
WWVzKTsKKyAgICAgICAgICAgIGF1dG8gbWFyZ2luU3RhcnQgPSBJbmxpbmVMYXlvdXRVbml0IHsg
fTsKKyNpZiBFTkFCTEUoQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKQorICAgICAgICAgICAgaWYg
KHN0eWxlLmJveERlY29yYXRpb25CcmVhaygpID09IEJveERlY29yYXRpb25CcmVhazo6Q2xvbmUp
CisgICAgICAgICAgICAgICAgbWFyZ2luU3RhcnQgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21l
dHJ5Rm9yQm94KGxheW91dEJveCkubWFyZ2luU3RhcnQoKTsKKyNlbmRpZgorICAgICAgICAgICAg
YXV0byBhZGp1c3RlZExvZ2ljYWxTdGFydCA9IGxvZ2ljYWxMZWZ0ICsgbWFyZ2luU3RhcnQ7Cisg
ICAgICAgICAgICBhdXRvIGxvZ2ljYWxXaWR0aCA9IHJvb3RJbmxpbmVCb3gubG9naWNhbFdpZHRo
KCkgLSBhZGp1c3RlZExvZ2ljYWxTdGFydDsKKyAgICAgICAgICAgIGF1dG8gaW5saW5lQm94ID0g
SW5saW5lTGV2ZWxCb3g6OmNyZWF0ZUlubGluZUJveChsYXlvdXRCb3gsIHN0eWxlLCBhZGp1c3Rl
ZExvZ2ljYWxTdGFydCwgbG9naWNhbFdpZHRoLCBJbmxpbmVMZXZlbEJveDo6TGluZVNwYW5uaW5n
SW5saW5lQm94OjpZZXMpOwogICAgICAgICAgICAgc2V0SW5pdGlhbFZlcnRpY2FsR2VvbWV0cnlG
b3JJbmxpbmVCb3goaW5saW5lQm94KTsKICAgICAgICAgICAgIHVwZGF0ZUNhblVzZVNpbXBsaWZp
ZWRBbGlnbm1lbnQoaW5saW5lQm94KTsKICAgICAgICAgICAgIGxpbmVCb3guYWRkSW5saW5lTGV2
ZWxCb3goV1RGTW92ZShpbmxpbmVCb3gpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVC
dWlsZGVyLmNwcAppbmRleCAzNTNkM2YwYzJiODcuLjQ2Y2U5MmE0YmQ4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGlu
ZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcApAQCAtMjM5LDggKzIzOSwxNSBAQCBJbmxp
bmVMYXlvdXRVbml0IExpbmVCdWlsZGVyOjppbmxpbmVJdGVtV2lkdGgoY29uc3QgSW5saW5lSXRl
bSYgaW5saW5lSXRlbSwgSW5saQogICAgIGlmIChsYXlvdXRCb3guaXNSZXBsYWNlZEJveCgpKQog
ICAgICAgICByZXR1cm4gYm94R2VvbWV0cnkubWFyZ2luQm94V2lkdGgoKTsKIAotICAgIGlmIChp
bmxpbmVJdGVtLmlzSW5saW5lQm94U3RhcnQoKSkKLSAgICAgICAgcmV0dXJuIGJveEdlb21ldHJ5
Lm1hcmdpblN0YXJ0KCkgKyBib3hHZW9tZXRyeS5ib3JkZXJMZWZ0KCkgKyBib3hHZW9tZXRyeS5w
YWRkaW5nTGVmdCgpLnZhbHVlX29yKDApOworICAgIGlmIChpbmxpbmVJdGVtLmlzSW5saW5lQm94
U3RhcnQoKSkgeworICAgICAgICBhdXRvIGxvZ2ljYWxXaWR0aCA9IGJveEdlb21ldHJ5Lm1hcmdp
blN0YXJ0KCkgKyBib3hHZW9tZXRyeS5ib3JkZXJMZWZ0KCkgKyBib3hHZW9tZXRyeS5wYWRkaW5n
TGVmdCgpLnZhbHVlX29yKDApOworI2lmIEVOQUJMRShDU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsp
CisgICAgICAgIGF1dG8mIHN0eWxlID0gbV9pc0ZpcnN0TGluZSA/IGlubGluZUl0ZW0uZmlyc3RM
aW5lU3R5bGUoKSA6IGlubGluZUl0ZW0uc3R5bGUoKTsKKyAgICAgICAgaWYgKHN0eWxlLmJveERl
Y29yYXRpb25CcmVhaygpID09IEJveERlY29yYXRpb25CcmVhazo6Q2xvbmUpCisgICAgICAgICAg
ICBsb2dpY2FsV2lkdGggKz0gYm94R2VvbWV0cnkuYm9yZGVyUmlnaHQoKSArIGJveEdlb21ldHJ5
LnBhZGRpbmdSaWdodCgpLnZhbHVlX29yKDBfbHUpOworI2VuZGlmCisgICAgICAgIHJldHVybiBs
b2dpY2FsV2lkdGg7CisgICAgfQogCiAgICAgaWYgKGlubGluZUl0ZW0uaXNJbmxpbmVCb3hFbmQo
KSkKICAgICAgICAgcmV0dXJuIGJveEdlb21ldHJ5Lm1hcmdpbkVuZCgpICsgYm94R2VvbWV0cnku
Ym9yZGVyUmlnaHQoKSArIGJveEdlb21ldHJ5LnBhZGRpbmdSaWdodCgpLnZhbHVlX29yKDApOwpA
QCAtNjk3LDYgKzcwNCwyMSBAQCB2b2lkIExpbmVCdWlsZGVyOjpoYW5kbGVGbG9hdENvbnRlbnQo
Y29uc3QgSW5saW5lSXRlbSYgZmxvYXRJdGVtKQogICAgIG1fbGluZUxvZ2ljYWxSZWN0LmV4cGFu
ZEhvcml6b250YWxseSgtZmxvYXRCb3hXaWR0aCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgSW5saW5l
TGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aChjb25zdCBMaW5lQ2FuZGlkYXRlOjpJbmxpbmVDb250
ZW50JiBjYW5kaWRhdGVDb250ZW50LCBjb25zdCBMaW5lJiBsaW5lLCBJbmxpbmVMYXlvdXRVbml0
IGF2YWlsYWJsZVdpZHRoRm9yQ29udGVudCkKK3sKKyAgICBhdXRvIGF2YWlsYWJsZVdpZHRoID0g
YXZhaWxhYmxlV2lkdGhGb3JDb250ZW50IC0gbGluZS5jb250ZW50TG9naWNhbFJpZ2h0KCk7Cisg
ICAgYXV0byYgaW5saW5lQm94TGlzdFdpdGhDbG9uZWREZWNvcmF0aW9uRW5kID0gbGluZS5pbmxp
bmVCb3hMaXN0V2l0aENsb25lZERlY29yYXRpb25FbmQoKTsKKyAgICBpZiAoY2FuZGlkYXRlQ29u
dGVudC5oYXNJbmxpbmVMZXZlbEJveCgpICYmICFpbmxpbmVCb3hMaXN0V2l0aENsb25lZERlY29y
YXRpb25FbmQuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIFdlIG1heSB0cnkgdG8gY29tbWl0IGEg
aW5saW5lIGJveCBlbmQgaGVyZSB3aGljaCBhbHJlYWR5IHRha2VzIHVwIHBsYWNlIGltcGxpY2l0
bHkuCisgICAgICAgIC8vIExldCdzIG5vdCBhY2NvdW50IGZvciBpdHMgbG9naWNhbCB3aWR0aCB0
d2ljZS4KKyAgICAgICAgZm9yIChhdXRvJiBydW4gOiBjYW5kaWRhdGVDb250ZW50LmNvbnRpbnVv
dXNDb250ZW50KCkucnVucygpKSB7CisgICAgICAgICAgICBpZiAocnVuLmlubGluZUl0ZW0uaXNJ
bmxpbmVCb3hFbmQoKSkKKyAgICAgICAgICAgICAgICBhdmFpbGFibGVXaWR0aCArPSBpbmxpbmVC
b3hMaXN0V2l0aENsb25lZERlY29yYXRpb25FbmQuZ2V0KCZydW4uaW5saW5lSXRlbS5sYXlvdXRC
b3goKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHN0ZDo6aXNuYW4oYXZhaWxhYmxl
V2lkdGgpID8gbWF4SW5saW5lTGF5b3V0VW5pdCgpIDogYXZhaWxhYmxlV2lkdGg7Cit9CisKIExp
bmVCdWlsZGVyOjpSZXN1bHQgTGluZUJ1aWxkZXI6OmhhbmRsZUlubGluZUNvbnRlbnQoSW5saW5l
Q29udGVudEJyZWFrZXImIGlubGluZUNvbnRlbnRCcmVha2VyLCBjb25zdCBJbmxpbmVJdGVtUmFu
Z2UmIGxheW91dFJhbmdlLCBjb25zdCBMaW5lQ2FuZGlkYXRlJiBsaW5lQ2FuZGlkYXRlKQogewog
ICAgIGF1dG8mIGlubGluZUNvbnRlbnQgPSBsaW5lQ2FuZGlkYXRlLmlubGluZUNvbnRlbnQ7CkBA
IC03MTIsNyArNzM0LDcgQEAgTGluZUJ1aWxkZXI6OlJlc3VsdCBMaW5lQnVpbGRlcjo6aGFuZGxl
SW5saW5lQ29udGVudChJbmxpbmVDb250ZW50QnJlYWtlciYgaW5saW4KICAgICBpZiAoc2hvdWxk
RGlzYWJsZUh5cGhlbmF0aW9uKCkpCiAgICAgICAgIGlubGluZUNvbnRlbnRCcmVha2VyLnNldEh5
cGhlbmF0aW9uRGlzYWJsZWQoKTsKIAotICAgIGF1dG8mIGNvbnRpbnVvdXNJbmxpbmVDb250ZW50
ID0gbGluZUNhbmRpZGF0ZS5pbmxpbmVDb250ZW50LmNvbnRpbnVvdXNDb250ZW50KCk7CisgICAg
YXV0byYgY29udGludW91c0lubGluZUNvbnRlbnQgPSBpbmxpbmVDb250ZW50LmNvbnRpbnVvdXND
b250ZW50KCk7CiAgICAgYXV0byBsaW5lTG9naWNhbFJlY3RGb3JDYW5kaWRhdGVDb250ZW50ID0g
WyZdIHsKICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGNhbmRpZGF0ZSBjb250ZW50IHdvdWxkIHN0
cmV0Y2ggdGhlIGxpbmUgYW5kIHdoZXRoZXIgYWRkaXRpb25hbCBmbG9hdHMgYXJlIGdldHRpbmcg
aW4gdGhlIHdheS4KICAgICAgICAgaWYgKCFmbG9hdGluZ1N0YXRlKCkgfHwgIWlubGluZUNvbnRl
bnQuaGFzSW5saW5lTGV2ZWxCb3goKSkKQEAgLTczMywyMiArNzU1LDEwIEBAIExpbmVCdWlsZGVy
OjpSZXN1bHQgTGluZUJ1aWxkZXI6OmhhbmRsZUlubGluZUNvbnRlbnQoSW5saW5lQ29udGVudEJy
ZWFrZXImIGlubGluCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGFkanVzdGVkTGluZUxvZ2lj
YWxSZWN0OwogICAgIH0oKTsKLSAgICBhdXRvIGF2YWlsYWJsZVdpZHRoID0gWyZdIHsKLSAgICAg
ICAgYXV0byBjb250ZW50TG9naWNhbFJpZ2h0ID0gbV9saW5lLmNvbnRlbnRMb2dpY2FsUmlnaHQo
KTsKLSAgICAgICAgYXV0byYgbGluZVNwYW5uaW5nSW5saW5lQm94RW5kcyA9IG1fbGluZS5saW5l
U3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRzKCk7Ci0gICAgICAgIGlmICghbGluZVNwYW5uaW5nSW5s
aW5lQm94RW5kcy5pc0VtcHR5KCkgJiYgaW5saW5lQ29udGVudC5oYXNJbmxpbmVMZXZlbEJveCgp
KSB7Ci0gICAgICAgICAgICAvLyBXZSBtYXkgdHJ5IHRvIGNvbW1pdCBhIGxpbmUgc3Bhbm5pbmcg
aW5saW5lIGJveCBlbmQgaGVyZS4gTGV0J3Mgbm90IGFjY291bnQgZm9yIGl0cyBsb2dpY2FsIHdp
ZHRoIHR3aWNlLgotICAgICAgICAgICAgZm9yIChhdXRvJiBydW4gOiBjb250aW51b3VzSW5saW5l
Q29udGVudC5ydW5zKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAocnVuLmlubGluZUl0ZW0uaXNJ
bmxpbmVCb3hFbmQoKSkKLSAgICAgICAgICAgICAgICAgICAgY29udGVudExvZ2ljYWxSaWdodCAt
PSBsaW5lU3Bhbm5pbmdJbmxpbmVCb3hFbmRzLmdldCgmcnVuLmlubGluZUl0ZW0ubGF5b3V0Qm94
KCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGF1dG8gYXZhaWxhYmxlV2lk
dGhGb3JDb250ZW50ID0gbGluZUxvZ2ljYWxSZWN0Rm9yQ2FuZGlkYXRlQ29udGVudC53aWR0aCgp
IC0gY29udGVudExvZ2ljYWxSaWdodDsKLSAgICAgICAgcmV0dXJuIHN0ZDo6aXNuYW4oYXZhaWxh
YmxlV2lkdGhGb3JDb250ZW50KSA/IG1heElubGluZUxheW91dFVuaXQoKSA6IGF2YWlsYWJsZVdp
ZHRoRm9yQ29udGVudDsKLSAgICB9KCk7CiAgICAgLy8gV2hpbGUgdGhlIGZsb2F0cyBhcmUgbm90
IGNvbnNpZGVyZWQgdG8gYmUgb24gdGhlIGxpbmUsIHRoZXkgbWFrZSB0aGUgbGluZSBjb250ZW50
ZnVsIGZvciBsaW5lIGJyZWFraW5nLgorICAgIGF1dG8gYXZhaWxhYmxlV2lkdGhGb3JOZXdDb250
ZW50ID0gYXZhaWxhYmxlV2lkdGgoaW5saW5lQ29udGVudCwgbV9saW5lLCBsaW5lTG9naWNhbFJl
Y3RGb3JDYW5kaWRhdGVDb250ZW50LndpZHRoKCkpOwogICAgIGF1dG8gbGluZUhhc0NvbnRlbnQg
PSBtX2xpbmUuaGFzQ29udGVudCgpIHx8IG1fY29udGVudElzQ29uc3RyYWluZWRCeUZsb2F0Owot
ICAgIGF1dG8gbGluZVN0YXR1cyA9IElubGluZUNvbnRlbnRCcmVha2VyOjpMaW5lU3RhdHVzIHsg
bV9saW5lLmNvbnRlbnRMb2dpY2FsUmlnaHQoKSwgYXZhaWxhYmxlV2lkdGgsIG1fbGluZS50cmlt
bWFibGVUcmFpbGluZ1dpZHRoKCksIG1fbGluZS50cmFpbGluZ1NvZnRIeXBoZW5XaWR0aCgpLCBt
X2xpbmUuaXNUcmFpbGluZ1J1bkZ1bGx5VHJpbW1hYmxlKCksIGxpbmVIYXNDb250ZW50LCAhbV93
cmFwT3Bwb3J0dW5pdHlMaXN0LmlzRW1wdHkoKSB9OworICAgIGF1dG8gbGluZVN0YXR1cyA9IElu
bGluZUNvbnRlbnRCcmVha2VyOjpMaW5lU3RhdHVzIHsgbV9saW5lLmNvbnRlbnRMb2dpY2FsUmln
aHQoKSwgYXZhaWxhYmxlV2lkdGhGb3JOZXdDb250ZW50LCBtX2xpbmUudHJpbW1hYmxlVHJhaWxp
bmdXaWR0aCgpLCBtX2xpbmUudHJhaWxpbmdTb2Z0SHlwaGVuV2lkdGgoKSwgbV9saW5lLmlzVHJh
aWxpbmdSdW5GdWxseVRyaW1tYWJsZSgpLCBsaW5lSGFzQ29udGVudCwgIW1fd3JhcE9wcG9ydHVu
aXR5TGlzdC5pc0VtcHR5KCkgfTsKICAgICBhdXRvIHJlc3VsdCA9IGlubGluZUNvbnRlbnRCcmVh
a2VyLnByb2Nlc3NJbmxpbmVDb250ZW50KGNvbnRpbnVvdXNJbmxpbmVDb250ZW50LCBsaW5lU3Rh
dHVzKTsKICAgICBhdXRvJiBjYW5kaWRhdGVSdW5zID0gY29udGludW91c0lubGluZUNvbnRlbnQu
cnVucygpOwogICAgIGlmIChyZXN1bHQuYWN0aW9uID09IElubGluZUNvbnRlbnRCcmVha2VyOjpS
ZXN1bHQ6OkFjdGlvbjo6S2VlcCkgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>