<?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>232772</bug_id>
          
          <creation_ts>2021-11-05 15:48:48 -0700</creation_ts>
          <short_desc>[LFC][IFC] Process all replacement, control and opaque inline items.</short_desc>
          <delta_ts>2021-11-06 12:42:17 -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>1812280</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-11-05 15:48:48 -0700</bug_when>
    <thetext>generate bidi level for all the inline items.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812282</commentid>
    <comment_count>1</comment_count>
      <attachid>443451</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-11-05 15:54:26 -0700</bug_when>
    <thetext>Created attachment 443451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812347</commentid>
    <comment_count>2</comment_count>
      <attachid>443476</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-11-05 21:42:55 -0700</bug_when>
    <thetext>Created attachment 443476
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812386</commentid>
    <comment_count>3</comment_count>
      <attachid>443476</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-06 06:35:44 -0700</bug_when>
    <thetext>Comment on attachment 443476
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=443476&amp;action=review

&gt; Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp:147
&gt; +    size_t inlineTextBoxOffset = 0;
&gt; +    for (size_t index = 0; index &lt; inlineItems.size(); ++index) {

Could we reserverInitialCapacity() for InlineItemOffsetList and then use uncheckedAppend?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812387</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-11-06 06:42:24 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #3)
&gt; Comment on attachment 443476 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=443476&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp:147
&gt; &gt; +    size_t inlineTextBoxOffset = 0;
&gt; &gt; +    for (size_t index = 0; index &lt; inlineItems.size(); ++index) {
&gt; 
&gt; Could we reserverInitialCapacity() for InlineItemOffsetList and then use
&gt; uncheckedAppend?
Good point! Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812399</commentid>
    <comment_count>5</comment_count>
      <attachid>443487</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-11-06 09:58:38 -0700</bug_when>
    <thetext>Created attachment 443487
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812409</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-06 12:41:26 -0700</bug_when>
    <thetext>Committed r285374 (243931@main): &lt;https://commits.webkit.org/243931@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443487.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812410</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-06 12:42:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/85103505&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443451</attachid>
            <date>2021-11-05 15:54:26 -0700</date>
            <delta_ts>2021-11-05 21:42:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232772-20211105155425.patch</filename>
            <type>text/plain</type>
            <size>12625</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjg1ODIxNWIxYjE3MzI3
ZDkzYTRlZDc2NzU3NDgxNTk2MTNiYzY5My4uNDNiNWQyNzU3ZjVmNzlhNWNmZDhkYzAwMWJjMzBl
OGM0MDJjNGE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTExLTA1ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIFByb2Nlc3Mg
YWxsIHJlcGxhY2VtZW50LCBjb250cm9sIGFuZCBvcGFxdWUgaW5saW5lIGl0ZW1zLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyNzcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgS2VlcCB0cmFjayBvZiBh
bGwgdGhlIGlubGluZSBpdGVtIHBvc2l0aW9ucyBpbiB0aGUgcGFyYWdyYXBoIGNvbnRlbnQgKGlu
Y2x1ZGluZyB0aGUgb3BhcXVlIGl0ZW1zKS4KKyAgICAgICAgSXQgbWFrZXMgdGhlIGJpZGkgcmFu
Z2UgbG9naWMgc2ltcGxlLgorICAgICAgICAxLiBBc3NpZ24gdGhlIGNvbXB1dGVkIGJpZGkgbGV2
ZWwgdG8gaW5saW5lIGl0ZW1zIHVwIHRvIHRoZSBiaWRpIGVuZCBwb3NpdGlvbi4KKyAgICAgICAg
Mi4gU3BsaXQgdGhlIGlubGluZSB0ZXh0IGl0ZW0gb24gdGhlIGJpZGkgYm91bmRhcnkuCisgICAg
ICAgIDMuIFBvc3QtcHJvY2VzcyB0aGUgb3BhcXVlIGl0ZW1zIChpdGVtcyB0aGF0IGFyZSBub3Qg
cGFydCBvZiB0aGUgcGFyYWdyYXBoIGNvbnRlbnQpLgorCisgICAgICAgICogbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6YnVpbGRCaWRpUGFyYWdyYXBoKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lSXRlbXNCdWlsZGVyOjpicmVha0FuZENvbXB1dGVCaWRpTGV2ZWxzKToKKyAg
ICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVUZXh0SXRlbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVtOjpzcGxpdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVtOjpzcGxpdEF0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVUZXh0
SXRlbS5oOgorCiAyMDIxLTExLTA1ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTEZDXVtJRkNdIEJ1aWxkIHRoZSBwYXJhZ3JhcGggY29udGVudCB3aGVuIGFsbCB0
aGUgaW5saW5lIGl0ZW1zIGFyZSBwcm9jZXNzZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJ
dGVtc0J1aWxkZXIuY3BwCmluZGV4IGIxNTQwZTJhMzA2MGMyMzhjYmUxZWZjODNjNTMwMzI1MGU4
YjJkNmMuLjY0YjUyNzc4ODhjMTk0MjI3NzE0MThiOGEyOTZiYTk4MWI4NDk0NjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUl0ZW1zQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcApAQCAtMTM5LDMyICsxMzksMzcg
QEAgdm9pZCBJbmxpbmVJdGVtc0J1aWxkZXI6OmNvbGxlY3RJbmxpbmVJdGVtcyhJbmxpbmVJdGVt
cyYgaW5saW5lSXRlbXMpCiAgICAgfQogfQogCi11c2luZyBDb250ZW50T2Zmc2V0TWFwID0gSGFz
aE1hcDxjb25zdCBCb3gqLCBzaXplX3Q+Owotc3RhdGljIGlubGluZSB2b2lkIGJ1aWxkQmlkaVBh
cmFncmFwaChjb25zdCBJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMsICBTdHJpbmdCdWlsZGVyJiBw
YXJhZ3JhcGhDb250ZW50QnVpbGRlciwgQ29udGVudE9mZnNldE1hcCYgY29udGVudE9mZnNldE1h
cCkKK3VzaW5nIElubGluZUl0ZW1PZmZzZXRMaXN0ID0gVmVjdG9yPHN0ZDo6b3B0aW9uYWw8c2l6
ZV90Pj47CitzdGF0aWMgaW5saW5lIHZvaWQgYnVpbGRCaWRpUGFyYWdyYXBoKGNvbnN0IElubGlu
ZUl0ZW1zJiBpbmxpbmVJdGVtcywgIFN0cmluZ0J1aWxkZXImIHBhcmFncmFwaENvbnRlbnRCdWls
ZGVyLCBJbmxpbmVJdGVtT2Zmc2V0TGlzdCYgaW5saW5lSXRlbU9mZnNldExpc3QpCiB7CiAgICAg
Y29uc3QgQm94KiBsYXN0SW5saW5lVGV4dEJveCA9IG51bGxwdHI7Ci0gICAgZm9yIChhdXRvJiBp
bmxpbmVJdGVtIDogaW5saW5lSXRlbXMpIHsKKyAgICBzaXplX3QgaW5saW5lVGV4dEJveE9mZnNl
dCA9IDA7CisgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IGlubGluZUl0ZW1zLnNp
emUoKTsgKytpbmRleCkgeworICAgICAgICBhdXRvJiBpbmxpbmVJdGVtID0gaW5saW5lSXRlbXNb
aW5kZXhdOwogICAgICAgICBhdXRvJiBsYXlvdXRCb3ggPSBpbmxpbmVJdGVtLmxheW91dEJveCgp
OwogCiAgICAgICAgIGlmIChpbmxpbmVJdGVtLmlzVGV4dCgpKSB7CiAgICAgICAgICAgICBpZiAo
bGFzdElubGluZVRleHRCb3ggIT0gJmxheW91dEJveCkgewotICAgICAgICAgICAgICAgIGNvbnRl
bnRPZmZzZXRNYXAuc2V0KCZsYXlvdXRCb3gsIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmxlbmd0
aCgpKTsKKyAgICAgICAgICAgICAgICBpbmxpbmVUZXh0Qm94T2Zmc2V0ID0gcGFyYWdyYXBoQ29u
dGVudEJ1aWxkZXIubGVuZ3RoKCk7CiAgICAgICAgICAgICAgICAgcGFyYWdyYXBoQ29udGVudEJ1
aWxkZXIuYXBwZW5kKGRvd25jYXN0PElubGluZVRleHRCb3g+KGxheW91dEJveCkuY29udGVudCgp
KTsKICAgICAgICAgICAgICAgICBsYXN0SW5saW5lVGV4dEJveCA9ICZsYXlvdXRCb3g7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoaW5saW5lSXRlbS5pc0JveCgpKQorICAgICAg
ICAgICAgaW5saW5lSXRlbU9mZnNldExpc3QuYXBwZW5kKHsgaW5saW5lVGV4dEJveE9mZnNldCAr
IGRvd25jYXN0PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVtKS5zdGFydCgpIH0pOworICAgICAg
ICB9IGVsc2UgaWYgKGlubGluZUl0ZW0uaXNCb3goKSkgeworICAgICAgICAgICAgaW5saW5lSXRl
bU9mZnNldExpc3QuYXBwZW5kKHsgcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIubGVuZ3RoKCkgfSk7
CiAgICAgICAgICAgICBwYXJhZ3JhcGhDb250ZW50QnVpbGRlci5hcHBlbmQob2JqZWN0UmVwbGFj
ZW1lbnRDaGFyYWN0ZXIpOworICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKGlubGluZUl0ZW0u
aXNJbmxpbmVCb3hTdGFydCgpIHx8IGlubGluZUl0ZW0uaXNJbmxpbmVCb3hFbmQoKSkgewogICAg
ICAgICAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy13cml0aW5nLW1vZGVzLyN1
bmljb2RlLWJpZGkKICAgICAgICAgICAgIGF1dG8mIHN0eWxlID0gaW5saW5lSXRlbS5zdHlsZSgp
OwogICAgICAgICAgICAgYXV0byBpbml0aWF0ZXNDb250cm9sQ2hhcmFjdGVyID0gc3R5bGUucnRs
T3JkZXJpbmcoKSA9PSBPcmRlcjo6TG9naWNhbCAmJiBzdHlsZS51bmljb2RlQmlkaSgpICE9IEVV
bmljb2RlQmlkaTo6VUJOb3JtYWw7Ci0gICAgICAgICAgICBpZiAoIWluaXRpYXRlc0NvbnRyb2xD
aGFyYWN0ZXIpCisgICAgICAgICAgICBpZiAoIWluaXRpYXRlc0NvbnRyb2xDaGFyYWN0ZXIpIHsK
KyAgICAgICAgICAgICAgICAvLyBPcGFxdWUgaXRlbXMgZG8gbm90IGhhdmUgcG9zaXRpb24gaW4g
dGhlIGJpZGkgcGFyYWdyYXBoLiBUaGV5IGluaGVyaXQgdGhlaXIgYmlkaSBsZXZlbCBmcm9tIHRo
ZSBuZXh0IGlubGluZSBpdGVtLgorICAgICAgICAgICAgICAgIGlubGluZUl0ZW1PZmZzZXRMaXN0
LmFwcGVuZCh7IH0pOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaW5saW5lSXRlbU9mZnNldExpc3QuYXBwZW5kKHsgcGFyYWdyYXBoQ29udGVu
dEJ1aWxkZXIubGVuZ3RoKCkgfSk7CiAgICAgICAgICAgICBhdXRvIGlzRW50ZXJpbmdCaWRpID0g
aW5saW5lSXRlbS5pc0lubGluZUJveFN0YXJ0KCk7Ci0KLSAgICAgICAgICAgIGlmIChpc0VudGVy
aW5nQmlkaSkKLSAgICAgICAgICAgICAgICBjb250ZW50T2Zmc2V0TWFwLmFkZCgmbGF5b3V0Qm94
LCBwYXJhZ3JhcGhDb250ZW50QnVpbGRlci5sZW5ndGgoKSk7Ci0KICAgICAgICAgICAgIHN3aXRj
aCAoc3R5bGUudW5pY29kZUJpZGkoKSkgewogICAgICAgICAgICAgY2FzZSBFVW5pY29kZUJpZGk6
OlVCTm9ybWFsOgogICAgICAgICAgICAgICAgIC8vIFRoZSBib3ggZG9lcyBub3Qgb3BlbiBhbiBh
ZGRpdGlvbmFsIGxldmVsIG9mIGVtYmVkZGluZyB3aXRoIHJlc3BlY3QgdG8gdGhlIGJpZGlyZWN0
aW9uYWwgYWxnb3JpdGhtLgpAQCAtMjA2LDggKzIxMSw5IEBAIHZvaWQgSW5saW5lSXRlbXNCdWls
ZGVyOjpicmVha0FuZENvbXB1dGVCaWRpTGV2ZWxzKElubGluZUl0ZW1zJiBpbmxpbmVJdGVtcykK
ICAgICBBU1NFUlQoIWlubGluZUl0ZW1zLmlzRW1wdHkoKSk7CiAKICAgICBTdHJpbmdCdWlsZGVy
IHBhcmFncmFwaENvbnRlbnRCdWlsZGVyOwotICAgIENvbnRlbnRPZmZzZXRNYXAgY29udGVudE9m
ZnNldE1hcDsKLSAgICBidWlsZEJpZGlQYXJhZ3JhcGgoaW5saW5lSXRlbXMsIHBhcmFncmFwaENv
bnRlbnRCdWlsZGVyLCBjb250ZW50T2Zmc2V0TWFwKTsKKyAgICBJbmxpbmVJdGVtT2Zmc2V0TGlz
dCBpbmxpbmVJdGVtT2Zmc2V0czsKKyAgICBidWlsZEJpZGlQYXJhZ3JhcGgoaW5saW5lSXRlbXMs
IHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLCBpbmxpbmVJdGVtT2Zmc2V0cyk7CisgICAgQVNTRVJU
KGlubGluZUl0ZW1PZmZzZXRzLnNpemUoKSA9PSBpbmxpbmVJdGVtcy5zaXplKCkpOwogCiAgICAg
Ly8gMS4gU2V0dXAgdGhlIGJpZGkgYm91bmRhcnkgbG9vcCBieSBjYWxsaW5nIHViaWRpX3NldFBh
cmEgd2l0aCB0aGUgcGFyYWdyYXBoIHRleHQuCiAgICAgLy8gMi4gQ2FsbCB1YmlkaV9nZXRMb2dp
Y2FsUnVuIHRvIGFkdmFuY2UgdG8gdGhlIG5leHQgYmlkaSBib3VuZGFyeSB1bnRpbCB3ZSBoaXQg
dGhlIGVuZCBvZiB0aGUgY29udGVudC4KQEAgLTIxOCw2MSArMjI0LDcyIEBAIHZvaWQgSW5saW5l
SXRlbXNCdWlsZGVyOjpicmVha0FuZENvbXB1dGVCaWRpTGV2ZWxzKElubGluZUl0ZW1zJiBpbmxp
bmVJdGVtcykKICAgICAgICAgdWJpZGlfY2xvc2UodWJpZGkpOwogICAgIH0pOwogCi0gICAgVUJp
RGlMZXZlbCBiaWRpTGV2ZWwgPSBVQklESV9ERUZBVUxUX0xUUjsKKyAgICBVQmlEaUxldmVsIHJv
b3RCaWRpTGV2ZWwgPSBVQklESV9ERUZBVUxUX0xUUjsKICAgICBib29sIHVzZUhldXJpc3RpY0Jh
c2VEaXJlY3Rpb24gPSByb290KCkuc3R5bGUoKS51bmljb2RlQmlkaSgpID09IEVVbmljb2RlQmlk
aTo6UGxhaW50ZXh0OwogICAgIGlmICghdXNlSGV1cmlzdGljQmFzZURpcmVjdGlvbikKLSAgICAg
ICAgYmlkaUxldmVsID0gcm9vdCgpLnN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8g
VUJJRElfTFRSIDogVUJJRElfUlRMOworICAgICAgICByb290QmlkaUxldmVsID0gcm9vdCgpLnN0
eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gVUJJRElfTFRSIDogVUJJRElfUlRMOwog
CiAgICAgVUVycm9yQ29kZSBlcnJvciA9IFVfWkVST19FUlJPUjsKICAgICBBU1NFUlQoIXBhcmFn
cmFwaENvbnRlbnRCdWlsZGVyLmlzRW1wdHkoKSk7Ci0gICAgdWJpZGlfc2V0UGFyYSh1YmlkaSwg
cGFyYWdyYXBoQ29udGVudEJ1aWxkZXIuY2hhcmFjdGVyczE2KCksIHBhcmFncmFwaENvbnRlbnRC
dWlsZGVyLmxlbmd0aCgpLCBiaWRpTGV2ZWwsIG51bGxwdHIsICZlcnJvcik7CisgICAgdWJpZGlf
c2V0UGFyYSh1YmlkaSwgcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIuY2hhcmFjdGVyczE2KCksIHBh
cmFncmFwaENvbnRlbnRCdWlsZGVyLmxlbmd0aCgpLCByb290QmlkaUxldmVsLCBudWxscHRyLCAm
ZXJyb3IpOwogICAgIGlmIChVX0ZBSUxVUkUoZXJyb3IpKSB7CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgc2l6ZV90IGN1cnJlbnRJ
bmxpbmVJdGVtSW5kZXggPSAwOworICAgIHNpemVfdCBpbmxpbmVJdGVtSW5kZXggPSAwOworICAg
IGF1dG8gaGFzU2Vlbk9wYXF1ZUl0ZW0gPSBmYWxzZTsKICAgICBmb3IgKHNpemVfdCBjdXJyZW50
UG9zaXRpb24gPSAwOyBjdXJyZW50UG9zaXRpb24gPCBwYXJhZ3JhcGhDb250ZW50QnVpbGRlci5s
ZW5ndGgoKTspIHsKLSAgICAgICAgVUJpRGlMZXZlbCBsZXZlbDsKKyAgICAgICAgVUJpRGlMZXZl
bCBiaWRpTGV2ZWw7CiAgICAgICAgIGludDMyX3QgZW5kUG9zaXRpb24gPSBjdXJyZW50UG9zaXRp
b247Ci0gICAgICAgIHViaWRpX2dldExvZ2ljYWxSdW4odWJpZGksIGN1cnJlbnRQb3NpdGlvbiwg
JmVuZFBvc2l0aW9uLCAmbGV2ZWwpOworICAgICAgICB1YmlkaV9nZXRMb2dpY2FsUnVuKHViaWRp
LCBjdXJyZW50UG9zaXRpb24sICZlbmRQb3NpdGlvbiwgJmJpZGlMZXZlbCk7CiAKLSAgICAgICAg
YXV0byBzZXRCaWRpTGV2ZWxPblJhbmdlID0gWyZdIHsKKyAgICAgICAgYXV0byBzZXRCaWRpTGV2
ZWxPblJhbmdlID0gWyZdKHNpemVfdCBiaWRpRW5kLCBhdXRvIGJpZGlMZXZlbEZvclJhbmdlKSB7
CiAgICAgICAgICAgICAvLyBXZSBzaG91bGQgYWx3YXlzIGhhdmUgaW5saW5lIGl0ZW0ocykgYXNz
b2NpYXRlZCB3aXRoIGEgYmlkaSByYW5nZS4KLSAgICAgICAgICAgIEFTU0VSVChjdXJyZW50SW5s
aW5lSXRlbUluZGV4IDwgaW5saW5lSXRlbXMuc2l6ZSgpKTsKLQotICAgICAgICAgICAgd2hpbGUg
KGN1cnJlbnRJbmxpbmVJdGVtSW5kZXggPCBpbmxpbmVJdGVtcy5zaXplKCkpIHsKLSAgICAgICAg
ICAgICAgICBhdXRvJiBpbmxpbmVJdGVtID0gaW5saW5lSXRlbXNbY3VycmVudElubGluZUl0ZW1J
bmRleF07Ci0gICAgICAgICAgICAgICAgaWYgKCFpbmxpbmVJdGVtLmlzVGV4dCgpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGZhaWxzIHdpdGggbXVsdGlwbGUgaW5saW5l
IGJveGVzIGFzIHRoZXkgZG9uJ3QgYWR2YW5jZSBwb3NpdGlvbi4KLSAgICAgICAgICAgICAgICAg
ICAgaW5saW5lSXRlbS5zZXRCaWRpTGV2ZWwobGV2ZWwpOwotICAgICAgICAgICAgICAgICAgICAr
K2N1cnJlbnRJbmxpbmVJdGVtSW5kZXg7CisgICAgICAgICAgICBBU1NFUlQoaW5saW5lSXRlbUlu
ZGV4IDwgaW5saW5lSXRlbU9mZnNldHMuc2l6ZSgpKTsKKyAgICAgICAgICAgIC8vIFN0YXJ0IG9m
IHRoZSByYW5nZSBpcyBhbHdheXMgd2hlcmUgd2UgbGVmdCBvZmYgKGJpZGkgcmFuZ2VzIGRvIG5v
dCBoYXZlIGdhcHMpLgorICAgICAgICAgICAgZm9yICg7IGlubGluZUl0ZW1JbmRleCA8IGlubGlu
ZUl0ZW1PZmZzZXRzLnNpemUoKTsgKytpbmxpbmVJdGVtSW5kZXgpIHsKKyAgICAgICAgICAgICAg
ICBhdXRvIG9mZnNldCA9IGlubGluZUl0ZW1PZmZzZXRzW2lubGluZUl0ZW1JbmRleF07CisgICAg
ICAgICAgICAgICAgaWYgKCFvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBp
cyBhbiBvcGFxdWUgaXRlbS4gTGV0J3MgcG9zdC1wcm9jZXNzIGl0LgorICAgICAgICAgICAgICAg
ICAgICBoYXNTZWVuT3BhcXVlSXRlbSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogRmluZCBv
dXQgaWYgdGhpcyBpcyB0aGUgbW9zdCBvcHRpbWFsIHBsYWNlIHRvIG1lYXN1cmUgYW5kIGNhY2hl
IHRleHQgd2lkdGhzLiAKLSAgICAgICAgICAgICAgICBhdXRvJiBpbmxpbmVUZXh0SXRlbSA9IGRv
d25jYXN0PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVtKTsKLSAgICAgICAgICAgICAgICBpbmxp
bmVUZXh0SXRlbS5zZXRCaWRpTGV2ZWwobGV2ZWwpOwotCi0gICAgICAgICAgICAgICAgYXV0byBp
bmxpbmVUZXh0SXRlbUVuZCA9IGlubGluZVRleHRJdGVtLmVuZCgpOwotICAgICAgICAgICAgICAg
IGF1dG8gYmlkaUVuZCA9IGVuZFBvc2l0aW9uIC0gY29udGVudE9mZnNldE1hcC5nZXQoJmlubGlu
ZVRleHRJdGVtLmxheW91dEJveCgpKTsKLSAgICAgICAgICAgICAgICBpZiAoYmlkaUVuZCA9PSBp
bmxpbmVUZXh0SXRlbUVuZCkgewotICAgICAgICAgICAgICAgICAgICArK2N1cnJlbnRJbmxpbmVJ
dGVtSW5kZXg7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBpbmxpbmUgaXRlbSBpcyBvdXRzaWRl
IG9mIHRoZSBiaWRpIHJhbmdlLgorICAgICAgICAgICAgICAgIGlmICgqb2Zmc2V0ID49IGJpZGlF
bmQpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGF1dG8mIGlu
bGluZUl0ZW0gPSBpbmxpbmVJdGVtc1tpbmxpbmVJdGVtSW5kZXhdOworICAgICAgICAgICAgICAg
IGlubGluZUl0ZW0uc2V0QmlkaUxldmVsKGJpZGlMZXZlbEZvclJhbmdlKTsKKyAgICAgICAgICAg
ICAgICBpZiAoaW5saW5lSXRlbS5pc1RleHQoKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRv
JiBpbmxpbmVUZXh0SXRlbSA9IGRvd25jYXN0PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVtKTsK
KyAgICAgICAgICAgICAgICAgICAgYXV0byBpbmxpbmVUZXh0SXRlbUVuZEluUGFyYWdyYXBoID0g
Km9mZnNldCArIGlubGluZVRleHRJdGVtLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBp
ZiAoaW5saW5lVGV4dEl0ZW1FbmRJblBhcmFncmFwaCA+IGJpZGlFbmQpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGF1dG8gb3ZlcmZsb3dMZW5ndGggPSBpbmxpbmVUZXh0SXRlbUVuZEluUGFy
YWdyYXBoIC0gYmlkaUVuZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZUl0ZW1zLmlu
c2VydChpbmxpbmVJdGVtSW5kZXggKyAxLCBpbmxpbmVUZXh0SXRlbS5zcGxpdChpbmxpbmVUZXh0
SXRlbS5sZW5ndGgoKSAtIG92ZXJmbG93TGVuZ3RoKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBpbmxpbmVJdGVtT2Zmc2V0cy5pbnNlcnQoaW5saW5lSXRlbUluZGV4ICsgMSwgYmlkaUVuZCk7
CisgICAgICAgICAgICAgICAgICAgICAgICArK2lubGluZUl0ZW1JbmRleDsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIGlmIChiaWRpRW5kIDwgaW5saW5lVGV4dEl0ZW1FbmQpIHsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRJbmxpbmVJdGVtSW5kZXggPT0gaW5saW5l
SXRlbXMuc2l6ZSgpIC0gMSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZUl0ZW1zLmFw
cGVuZChpbmxpbmVUZXh0SXRlbS5zcGxpdEF0KGJpZGlFbmQpKTsKLSAgICAgICAgICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5lSXRlbXMuaW5zZXJ0KGN1cnJl
bnRJbmxpbmVJdGVtSW5kZXggKyAxLCBpbmxpbmVUZXh0SXRlbS5zcGxpdEF0KGJpZGlFbmQpKTsK
LSAgICAgICAgICAgICAgICAgICAgKytjdXJyZW50SW5saW5lSXRlbUluZGV4OwotICAgICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgKytj
dXJyZW50SW5saW5lSXRlbUluZGV4OwogICAgICAgICAgICAgfQogICAgICAgICB9OwotICAgICAg
ICBzZXRCaWRpTGV2ZWxPblJhbmdlKCk7CisgICAgICAgIHNldEJpZGlMZXZlbE9uUmFuZ2UoZW5k
UG9zaXRpb24sIGJpZGlMZXZlbCk7CiAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA9IGVuZFBvc2l0
aW9uOwogICAgIH0KKworICAgIGF1dG8gc2V0QmlkaUxldmVsRm9yT3BhcXVlSW5saW5lSXRlbXMg
PSBbJl0geworICAgICAgICBpZiAoIWhhc1NlZW5PcGFxdWVJdGVtKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAvLyBPcGFxdWUgaXRlbXMgKGlubGluZSBpdGVtcyB3aXRoIG5vIHBhcmFn
cmFwaCBjb250ZW50KSBnZXQgdGhlaXIgYmlkaSBsZXZlbCB2YWx1ZXMgZnJvbSB0aGVpciBhZGph
Y2VudCBpdGVtcy4KKyAgICAgICAgYXV0byBsYXN0QmlkaUxldmVsID0gcm9vdEJpZGlMZXZlbDsK
KyAgICAgICAgZm9yIChhdXRvIGluZGV4ID0gaW5saW5lSXRlbXMuc2l6ZSgpOyBpbmRleC0tOykg
eworICAgICAgICAgICAgaWYgKCFpbmxpbmVJdGVtT2Zmc2V0c1tpbmRleF0pCisgICAgICAgICAg
ICAgICAgaW5saW5lSXRlbXNbaW5kZXhdLnNldEJpZGlMZXZlbChsYXN0QmlkaUxldmVsKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsYXN0QmlkaUxldmVsID0gaW5saW5lSXRl
bXNbaW5kZXhdLmJpZGlMZXZlbCgpOworICAgICAgICB9CisgICAgfTsKKyAgICBzZXRCaWRpTGV2
ZWxGb3JPcGFxdWVJbmxpbmVJdGVtcygpOwogfQogCiB2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6
aGFuZGxlVGV4dENvbnRlbnQoY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgSW5s
aW5lSXRlbXMmIGlubGluZUl0ZW1zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uY3Bw
CmluZGV4IDdlNDM0OGZiMzJmMmNmOGI5MWIxMjgxZGU2Nzk1ZWNmMmIzZGYzYzMuLjg2NDBjZDI1
N2VlMGQ5YmU4MzY4ZDJjNmQ0ZTIwZGY2Y2U0MDU1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVUZXh0SXRlbS5jcHAKQEAgLTcxLDExICs3MSwxMSBAQCBJbmxpbmVUZXh0SXRlbSBJbmxpbmVU
ZXh0SXRlbTo6cmlnaHQodW5zaWduZWQgbGVuZ3RoLCBzdGQ6Om9wdGlvbmFsPElubGluZUxheW91
dAogICAgIHJldHVybiB7IGlubGluZVRleHRCb3goKSwgZW5kKCkgLSBsZW5ndGgsIGxlbmd0aCwg
YmlkaUxldmVsKCksIGhhc1RyYWlsaW5nU29mdEh5cGhlbigpLCBpc1dvcmRTZXBhcmF0b3IoKSwg
d2lkdGgsIG1fdGV4dEl0ZW1UeXBlIH07CiB9CiAKLUlubGluZVRleHRJdGVtIElubGluZVRleHRJ
dGVtOjpzcGxpdEF0KHNpemVfdCBwb3NpdGlvbikKK0lubGluZVRleHRJdGVtIElubGluZVRleHRJ
dGVtOjpzcGxpdChzaXplX3QgbGVmdFNpZGVMZW5ndGgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQo
bGVuZ3RoKCkgPiAxKTsKLSAgICBSRUxFQVNFX0FTU0VSVChwb3NpdGlvbiA+IHN0YXJ0KCkgJiYg
cG9zaXRpb24gPCBlbmQoKSk7Ci0gICAgYXV0byByaWdodFNpZGUgPSByaWdodChlbmQoKSAtIHBv
c2l0aW9uLCB7IH0pOworICAgIFJFTEVBU0VfQVNTRVJUKGxlZnRTaWRlTGVuZ3RoICYmIGxlZnRT
aWRlTGVuZ3RoIDwgbGVuZ3RoKCkpOworICAgIGF1dG8gcmlnaHRTaWRlID0gcmlnaHQobGVuZ3Ro
KCkgLSBsZWZ0U2lkZUxlbmd0aCwgeyB9KTsKICAgICBtX2xlbmd0aCA9IGxlbmd0aCgpIC0gcmln
aHRTaWRlLmxlbmd0aCgpOwogICAgIHJldHVybiByaWdodFNpZGU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVUZXh0
SXRlbS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lVGV4dEl0ZW0uaAppbmRleCAzOGI0MzI4MGI0OWMwNWQ4NjNjMmQ1MWNlNmM5OTQ2NmYz
OTU4OGYxLi42OTE4NDU3MTdhOTA0M2Q5YWMyZDg3MzY0NzE1NjI3MTM5Y2M3YzJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVUZXh0SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKICAg
ICBmcmllbmQgY2xhc3MgSW5saW5lSXRlbXNCdWlsZGVyOwogICAgIHVzaW5nIElubGluZUl0ZW06
OlRleHRJdGVtVHlwZTsKIAotICAgIElubGluZVRleHRJdGVtIHNwbGl0QXQoc2l6ZV90IHBvc2l0
aW9uKTsKKyAgICBJbmxpbmVUZXh0SXRlbSBzcGxpdChzaXplX3QgbGVmdFNpZGVMZW5ndGgpOwog
CiAgICAgSW5saW5lVGV4dEl0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYsIHVuc2lnbmVkIHN0YXJ0
LCB1bnNpZ25lZCBsZW5ndGgsIFVCaURpTGV2ZWwsIGJvb2wgaGFzVHJhaWxpbmdTb2Z0SHlwaGVu
LCBib29sIGlzV29yZFNlcGFyYXRvciwgc3RkOjpvcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiB3
aWR0aCwgVGV4dEl0ZW1UeXBlKTsKICAgICBleHBsaWNpdCBJbmxpbmVUZXh0SXRlbShjb25zdCBJ
bmxpbmVUZXh0Qm94JiwgVUJpRGlMZXZlbCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443476</attachid>
            <date>2021-11-05 21:42:55 -0700</date>
            <delta_ts>2021-11-06 09:58:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232772-20211105214254.patch</filename>
            <type>text/plain</type>
            <size>12866</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjg1ODIxNWIxYjE3MzI3
ZDkzYTRlZDc2NzU3NDgxNTk2MTNiYzY5My4uODgwNzVlZDJlZDRjZWExNGIwMDk5OGI3MjFjMDUz
NmFhMDFlY2RkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTExLTA1ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIFByb2Nlc3Mg
YWxsIHJlcGxhY2VtZW50LCBjb250cm9sIGFuZCBvcGFxdWUgaW5saW5lIGl0ZW1zLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyNzcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgS2VlcCB0cmFjayBvZiBl
YWNoIGlubGluZSBpdGVtIHBvc2l0aW9uIGluIHRoZSBwYXJhZ3JhcGggY29udGVudCAoaW5jbHVk
aW5nIHRoZSBvcGFxdWUgaXRlbXMgd2l0aCBudWxsb3B0IHBvc2l0aW9uKSBpbiBhIHZlY3Rvci4K
KyAgICAgICAgKFRoaXMgb2Zmc2V0IHZlY3RvciBpcyBhbHdheXMgaW4gc3luYyB3aXRoIHRoZSBJ
bmxpbmVJdGVtcyB2ZWN0b3IgKGkuZS4gbnRoIHZhbHVlIHJlZmVycyB0byB0aGUgbnRoIGlubGlu
ZSBpdGVtKQorICAgICAgICBOb3RlIHRoYXQgaXQgbmVlZHMgdG8gZ3JvdyB0b2dldGhlciB3aXRo
IHRoZSBJbmxpbmVJdGVtcyBhcyB3ZSBzcGxpdCBpbmxpbmUgdGV4dCBjb250ZW50IG9uIGJpZGkg
Ym91bmRhcmllcy4pCisKKyAgICAgICAgMS4gV2FsayB0aGUgSW5saW5lSXRlbXMgdXAgdG8gdGhl
IGJpZGkgZW5kIHBvc2l0aW9uIGFuZCBhc3NpZ24gdGhlIGNvbXB1dGVkIGJpZGkgbGV2ZWwgdG8g
ZWFjaCBlbnRyeS4KKyAgICAgICAgMi4gU3BsaXQgdGhlIGlubGluZSB0ZXh0IGl0ZW0gb24gdGhl
IGJpZGkgYm91bmRhcnkgYXMgbmVlZGVkLgorICAgICAgICAzLiBQb3N0LXByb2Nlc3MgdGhlIG9w
YXF1ZSBpdGVtcyAoaXRlbXMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIHBhcmFncmFwaCBjb250
ZW50KS4KKworICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUl0ZW1zQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OmJ1aWxkQmlkaVBh
cmFncmFwaCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUl0ZW1zQnVpbGRlcjo6
YnJlYWtBbmRDb21wdXRlQmlkaUxldmVscyk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVUZXh0SXRlbTo6c3BsaXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVUZXh0SXRlbTo6c3BsaXRBdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uaDoKKwogMjAyMS0xMS0wNSAgQWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBCdWlsZCB0
aGUgcGFyYWdyYXBoIGNvbnRlbnQgd2hlbiBhbGwgdGhlIGlubGluZSBpdGVtcyBhcmUgcHJvY2Vz
c2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcAppbmRleCBiMTU0
MGUyYTMwNjBjMjM4Y2JlMWVmYzgzYzUzMDMyNTBlOGIyZDZjLi41ODM4ZWRiYzkyYWE4OWU0NzM3
Mzk3OGQ2YzFkNzNmYWZjNzA0NWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1z
QnVpbGRlci5jcHAKQEAgLTEzOSwzMiArMTM5LDM3IEBAIHZvaWQgSW5saW5lSXRlbXNCdWlsZGVy
Ojpjb2xsZWN0SW5saW5lSXRlbXMoSW5saW5lSXRlbXMmIGlubGluZUl0ZW1zKQogICAgIH0KIH0K
IAotdXNpbmcgQ29udGVudE9mZnNldE1hcCA9IEhhc2hNYXA8Y29uc3QgQm94Kiwgc2l6ZV90PjsK
LXN0YXRpYyBpbmxpbmUgdm9pZCBidWlsZEJpZGlQYXJhZ3JhcGgoY29uc3QgSW5saW5lSXRlbXMm
IGlubGluZUl0ZW1zLCAgU3RyaW5nQnVpbGRlciYgcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIsIENv
bnRlbnRPZmZzZXRNYXAmIGNvbnRlbnRPZmZzZXRNYXApCit1c2luZyBJbmxpbmVJdGVtT2Zmc2V0
TGlzdCA9IFZlY3RvcjxzdGQ6Om9wdGlvbmFsPHNpemVfdD4+Oworc3RhdGljIGlubGluZSB2b2lk
IGJ1aWxkQmlkaVBhcmFncmFwaChjb25zdCBJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMsICBTdHJp
bmdCdWlsZGVyJiBwYXJhZ3JhcGhDb250ZW50QnVpbGRlciwgSW5saW5lSXRlbU9mZnNldExpc3Qm
IGlubGluZUl0ZW1PZmZzZXRMaXN0KQogewogICAgIGNvbnN0IEJveCogbGFzdElubGluZVRleHRC
b3ggPSBudWxscHRyOwotICAgIGZvciAoYXV0byYgaW5saW5lSXRlbSA6IGlubGluZUl0ZW1zKSB7
CisgICAgc2l6ZV90IGlubGluZVRleHRCb3hPZmZzZXQgPSAwOworICAgIGZvciAoc2l6ZV90IGlu
ZGV4ID0gMDsgaW5kZXggPCBpbmxpbmVJdGVtcy5zaXplKCk7ICsraW5kZXgpIHsKKyAgICAgICAg
YXV0byYgaW5saW5lSXRlbSA9IGlubGluZUl0ZW1zW2luZGV4XTsKICAgICAgICAgYXV0byYgbGF5
b3V0Qm94ID0gaW5saW5lSXRlbS5sYXlvdXRCb3goKTsKIAogICAgICAgICBpZiAoaW5saW5lSXRl
bS5pc1RleHQoKSkgewogICAgICAgICAgICAgaWYgKGxhc3RJbmxpbmVUZXh0Qm94ICE9ICZsYXlv
dXRCb3gpIHsKLSAgICAgICAgICAgICAgICBjb250ZW50T2Zmc2V0TWFwLnNldCgmbGF5b3V0Qm94
LCBwYXJhZ3JhcGhDb250ZW50QnVpbGRlci5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgaW5s
aW5lVGV4dEJveE9mZnNldCA9IHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmxlbmd0aCgpOwogICAg
ICAgICAgICAgICAgIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmFwcGVuZChkb3duY2FzdDxJbmxp
bmVUZXh0Qm94PihsYXlvdXRCb3gpLmNvbnRlbnQoKSk7CiAgICAgICAgICAgICAgICAgbGFzdElu
bGluZVRleHRCb3ggPSAmbGF5b3V0Qm94OwogICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2Ug
aWYgKGlubGluZUl0ZW0uaXNCb3goKSkKKyAgICAgICAgICAgIGlubGluZUl0ZW1PZmZzZXRMaXN0
LmFwcGVuZCh7IGlubGluZVRleHRCb3hPZmZzZXQgKyBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4o
aW5saW5lSXRlbSkuc3RhcnQoKSB9KTsKKyAgICAgICAgfSBlbHNlIGlmIChpbmxpbmVJdGVtLmlz
Qm94KCkpIHsKKyAgICAgICAgICAgIGlubGluZUl0ZW1PZmZzZXRMaXN0LmFwcGVuZCh7IHBhcmFn
cmFwaENvbnRlbnRCdWlsZGVyLmxlbmd0aCgpIH0pOwogICAgICAgICAgICAgcGFyYWdyYXBoQ29u
dGVudEJ1aWxkZXIuYXBwZW5kKG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyKTsKKyAgICAgICAg
fQogICAgICAgICBlbHNlIGlmIChpbmxpbmVJdGVtLmlzSW5saW5lQm94U3RhcnQoKSB8fCBpbmxp
bmVJdGVtLmlzSW5saW5lQm94RW5kKCkpIHsKICAgICAgICAgICAgIC8vIGh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3Mtd3JpdGluZy1tb2Rlcy8jdW5pY29kZS1iaWRpCiAgICAgICAgICAgICBh
dXRvJiBzdHlsZSA9IGlubGluZUl0ZW0uc3R5bGUoKTsKICAgICAgICAgICAgIGF1dG8gaW5pdGlh
dGVzQ29udHJvbENoYXJhY3RlciA9IHN0eWxlLnJ0bE9yZGVyaW5nKCkgPT0gT3JkZXI6OkxvZ2lj
YWwgJiYgc3R5bGUudW5pY29kZUJpZGkoKSAhPSBFVW5pY29kZUJpZGk6OlVCTm9ybWFsOwotICAg
ICAgICAgICAgaWYgKCFpbml0aWF0ZXNDb250cm9sQ2hhcmFjdGVyKQorICAgICAgICAgICAgaWYg
KCFpbml0aWF0ZXNDb250cm9sQ2hhcmFjdGVyKSB7CisgICAgICAgICAgICAgICAgLy8gT3BhcXVl
IGl0ZW1zIGRvIG5vdCBoYXZlIHBvc2l0aW9uIGluIHRoZSBiaWRpIHBhcmFncmFwaC4gVGhleSBp
bmhlcml0IHRoZWlyIGJpZGkgbGV2ZWwgZnJvbSB0aGUgbmV4dCBpbmxpbmUgaXRlbS4KKyAgICAg
ICAgICAgICAgICBpbmxpbmVJdGVtT2Zmc2V0TGlzdC5hcHBlbmQoeyB9KTsKICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlubGluZUl0ZW1PZmZz
ZXRMaXN0LmFwcGVuZCh7IHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmxlbmd0aCgpIH0pOwogICAg
ICAgICAgICAgYXV0byBpc0VudGVyaW5nQmlkaSA9IGlubGluZUl0ZW0uaXNJbmxpbmVCb3hTdGFy
dCgpOwotCi0gICAgICAgICAgICBpZiAoaXNFbnRlcmluZ0JpZGkpCi0gICAgICAgICAgICAgICAg
Y29udGVudE9mZnNldE1hcC5hZGQoJmxheW91dEJveCwgcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIu
bGVuZ3RoKCkpOwotCiAgICAgICAgICAgICBzd2l0Y2ggKHN0eWxlLnVuaWNvZGVCaWRpKCkpIHsK
ICAgICAgICAgICAgIGNhc2UgRVVuaWNvZGVCaWRpOjpVQk5vcm1hbDoKICAgICAgICAgICAgICAg
ICAvLyBUaGUgYm94IGRvZXMgbm90IG9wZW4gYW4gYWRkaXRpb25hbCBsZXZlbCBvZiBlbWJlZGRp
bmcgd2l0aCByZXNwZWN0IHRvIHRoZSBiaWRpcmVjdGlvbmFsIGFsZ29yaXRobS4KQEAgLTIwNiw4
ICsyMTEsOSBAQCB2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6YnJlYWtBbmRDb21wdXRlQmlkaUxl
dmVscyhJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMpCiAgICAgQVNTRVJUKCFpbmxpbmVJdGVtcy5p
c0VtcHR5KCkpOwogCiAgICAgU3RyaW5nQnVpbGRlciBwYXJhZ3JhcGhDb250ZW50QnVpbGRlcjsK
LSAgICBDb250ZW50T2Zmc2V0TWFwIGNvbnRlbnRPZmZzZXRNYXA7Ci0gICAgYnVpbGRCaWRpUGFy
YWdyYXBoKGlubGluZUl0ZW1zLCBwYXJhZ3JhcGhDb250ZW50QnVpbGRlciwgY29udGVudE9mZnNl
dE1hcCk7CisgICAgSW5saW5lSXRlbU9mZnNldExpc3QgaW5saW5lSXRlbU9mZnNldHM7CisgICAg
YnVpbGRCaWRpUGFyYWdyYXBoKGlubGluZUl0ZW1zLCBwYXJhZ3JhcGhDb250ZW50QnVpbGRlciwg
aW5saW5lSXRlbU9mZnNldHMpOworICAgIEFTU0VSVChpbmxpbmVJdGVtT2Zmc2V0cy5zaXplKCkg
PT0gaW5saW5lSXRlbXMuc2l6ZSgpKTsKIAogICAgIC8vIDEuIFNldHVwIHRoZSBiaWRpIGJvdW5k
YXJ5IGxvb3AgYnkgY2FsbGluZyB1YmlkaV9zZXRQYXJhIHdpdGggdGhlIHBhcmFncmFwaCB0ZXh0
LgogICAgIC8vIDIuIENhbGwgdWJpZGlfZ2V0TG9naWNhbFJ1biB0byBhZHZhbmNlIHRvIHRoZSBu
ZXh0IGJpZGkgYm91bmRhcnkgdW50aWwgd2UgaGl0IHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQuCkBA
IC0yMTgsNjEgKzIyNCw3NCBAQCB2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6YnJlYWtBbmRDb21w
dXRlQmlkaUxldmVscyhJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMpCiAgICAgICAgIHViaWRpX2Ns
b3NlKHViaWRpKTsKICAgICB9KTsKIAotICAgIFVCaURpTGV2ZWwgYmlkaUxldmVsID0gVUJJRElf
REVGQVVMVF9MVFI7CisgICAgVUJpRGlMZXZlbCByb290QmlkaUxldmVsID0gVUJJRElfREVGQVVM
VF9MVFI7CiAgICAgYm9vbCB1c2VIZXVyaXN0aWNCYXNlRGlyZWN0aW9uID0gcm9vdCgpLnN0eWxl
KCkudW5pY29kZUJpZGkoKSA9PSBFVW5pY29kZUJpZGk6OlBsYWludGV4dDsKICAgICBpZiAoIXVz
ZUhldXJpc3RpY0Jhc2VEaXJlY3Rpb24pCi0gICAgICAgIGJpZGlMZXZlbCA9IHJvb3QoKS5zdHls
ZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IFVCSURJX0xUUiA6IFVCSURJX1JUTDsKKyAg
ICAgICAgcm9vdEJpZGlMZXZlbCA9IHJvb3QoKS5zdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rp
b24oKSA/IFVCSURJX0xUUiA6IFVCSURJX1JUTDsKIAogICAgIFVFcnJvckNvZGUgZXJyb3IgPSBV
X1pFUk9fRVJST1I7CiAgICAgQVNTRVJUKCFwYXJhZ3JhcGhDb250ZW50QnVpbGRlci5pc0VtcHR5
KCkpOwotICAgIHViaWRpX3NldFBhcmEodWJpZGksIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmNo
YXJhY3RlcnMxNigpLCBwYXJhZ3JhcGhDb250ZW50QnVpbGRlci5sZW5ndGgoKSwgYmlkaUxldmVs
LCBudWxscHRyLCAmZXJyb3IpOworICAgIHViaWRpX3NldFBhcmEodWJpZGksIHBhcmFncmFwaENv
bnRlbnRCdWlsZGVyLmNoYXJhY3RlcnMxNigpLCBwYXJhZ3JhcGhDb250ZW50QnVpbGRlci5sZW5n
dGgoKSwgcm9vdEJpZGlMZXZlbCwgbnVsbHB0ciwgJmVycm9yKTsKICAgICBpZiAoVV9GQUlMVVJF
KGVycm9yKSkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIHNpemVfdCBjdXJyZW50SW5saW5lSXRlbUluZGV4ID0gMDsKKyAgICBz
aXplX3QgaW5saW5lSXRlbUluZGV4ID0gMDsKKyAgICBhdXRvIGhhc1NlZW5PcGFxdWVJdGVtID0g
ZmFsc2U7CiAgICAgZm9yIChzaXplX3QgY3VycmVudFBvc2l0aW9uID0gMDsgY3VycmVudFBvc2l0
aW9uIDwgcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIubGVuZ3RoKCk7KSB7Ci0gICAgICAgIFVCaURp
TGV2ZWwgbGV2ZWw7CisgICAgICAgIFVCaURpTGV2ZWwgYmlkaUxldmVsOwogICAgICAgICBpbnQz
Ml90IGVuZFBvc2l0aW9uID0gY3VycmVudFBvc2l0aW9uOwotICAgICAgICB1YmlkaV9nZXRMb2dp
Y2FsUnVuKHViaWRpLCBjdXJyZW50UG9zaXRpb24sICZlbmRQb3NpdGlvbiwgJmxldmVsKTsKKyAg
ICAgICAgdWJpZGlfZ2V0TG9naWNhbFJ1bih1YmlkaSwgY3VycmVudFBvc2l0aW9uLCAmZW5kUG9z
aXRpb24sICZiaWRpTGV2ZWwpOwogCi0gICAgICAgIGF1dG8gc2V0QmlkaUxldmVsT25SYW5nZSA9
IFsmXSB7CisgICAgICAgIGF1dG8gc2V0QmlkaUxldmVsT25SYW5nZSA9IFsmXShzaXplX3QgYmlk
aUVuZCwgYXV0byBiaWRpTGV2ZWxGb3JSYW5nZSkgewogICAgICAgICAgICAgLy8gV2Ugc2hvdWxk
IGFsd2F5cyBoYXZlIGlubGluZSBpdGVtKHMpIGFzc29jaWF0ZWQgd2l0aCBhIGJpZGkgcmFuZ2Uu
Ci0gICAgICAgICAgICBBU1NFUlQoY3VycmVudElubGluZUl0ZW1JbmRleCA8IGlubGluZUl0ZW1z
LnNpemUoKSk7Ci0KLSAgICAgICAgICAgIHdoaWxlIChjdXJyZW50SW5saW5lSXRlbUluZGV4IDwg
aW5saW5lSXRlbXMuc2l6ZSgpKSB7Ci0gICAgICAgICAgICAgICAgYXV0byYgaW5saW5lSXRlbSA9
IGlubGluZUl0ZW1zW2N1cnJlbnRJbmxpbmVJdGVtSW5kZXhdOwotICAgICAgICAgICAgICAgIGlm
ICghaW5saW5lSXRlbS5pc1RleHQoKSkgewotICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
VGhpcyBmYWlscyB3aXRoIG11bHRpcGxlIGlubGluZSBib3hlcyBhcyB0aGV5IGRvbid0IGFkdmFu
Y2UgcG9zaXRpb24uCi0gICAgICAgICAgICAgICAgICAgIGlubGluZUl0ZW0uc2V0QmlkaUxldmVs
KGxldmVsKTsKLSAgICAgICAgICAgICAgICAgICAgKytjdXJyZW50SW5saW5lSXRlbUluZGV4Owor
ICAgICAgICAgICAgQVNTRVJUKGlubGluZUl0ZW1JbmRleCA8IGlubGluZUl0ZW1PZmZzZXRzLnNp
emUoKSk7CisgICAgICAgICAgICAvLyBTdGFydCBvZiB0aGUgcmFuZ2UgaXMgYWx3YXlzIHdoZXJl
IHdlIGxlZnQgb2ZmIChiaWRpIHJhbmdlcyBkbyBub3QgaGF2ZSBnYXBzKS4KKyAgICAgICAgICAg
IGZvciAoOyBpbmxpbmVJdGVtSW5kZXggPCBpbmxpbmVJdGVtT2Zmc2V0cy5zaXplKCk7ICsraW5s
aW5lSXRlbUluZGV4KSB7CisgICAgICAgICAgICAgICAgYXV0byBvZmZzZXQgPSBpbmxpbmVJdGVt
T2Zmc2V0c1tpbmxpbmVJdGVtSW5kZXhdOworICAgICAgICAgICAgICAgIGlmICghb2Zmc2V0KSB7
CisgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYW4gb3BhcXVlIGl0ZW0uIExldCdzIHBv
c3QtcHJvY2VzcyBpdC4KKyAgICAgICAgICAgICAgICAgICAgaGFzU2Vlbk9wYXF1ZUl0ZW0gPSB0
cnVlOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgLy8gRklYTUU6IEZpbmQgb3V0IGlmIHRoaXMgaXMgdGhlIG1vc3Qgb3B0
aW1hbCBwbGFjZSB0byBtZWFzdXJlIGFuZCBjYWNoZSB0ZXh0IHdpZHRocy4gCi0gICAgICAgICAg
ICAgICAgYXV0byYgaW5saW5lVGV4dEl0ZW0gPSBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5s
aW5lSXRlbSk7Ci0gICAgICAgICAgICAgICAgaW5saW5lVGV4dEl0ZW0uc2V0QmlkaUxldmVsKGxl
dmVsKTsKLQotICAgICAgICAgICAgICAgIGF1dG8gaW5saW5lVGV4dEl0ZW1FbmQgPSBpbmxpbmVU
ZXh0SXRlbS5lbmQoKTsKLSAgICAgICAgICAgICAgICBhdXRvIGJpZGlFbmQgPSBlbmRQb3NpdGlv
biAtIGNvbnRlbnRPZmZzZXRNYXAuZ2V0KCZpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSk7Ci0g
ICAgICAgICAgICAgICAgaWYgKGJpZGlFbmQgPT0gaW5saW5lVGV4dEl0ZW1FbmQpIHsKLSAgICAg
ICAgICAgICAgICAgICAgKytjdXJyZW50SW5saW5lSXRlbUluZGV4OworICAgICAgICAgICAgICAg
IGlmICgqb2Zmc2V0ID49IGJpZGlFbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBp
bmxpbmUgaXRlbSBpcyBvdXRzaWRlIG9mIHRoZSBiaWRpIHJhbmdlLgogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGJpZGlF
bmQgPCBpbmxpbmVUZXh0SXRlbUVuZCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVu
dElubGluZUl0ZW1JbmRleCA9PSBpbmxpbmVJdGVtcy5zaXplKCkgLSAxKQotICAgICAgICAgICAg
ICAgICAgICAgICAgaW5saW5lSXRlbXMuYXBwZW5kKGlubGluZVRleHRJdGVtLnNwbGl0QXQoYmlk
aUVuZCkpOwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAg
ICBpbmxpbmVJdGVtcy5pbnNlcnQoY3VycmVudElubGluZUl0ZW1JbmRleCArIDEsIGlubGluZVRl
eHRJdGVtLnNwbGl0QXQoYmlkaUVuZCkpOwotICAgICAgICAgICAgICAgICAgICArK2N1cnJlbnRJ
bmxpbmVJdGVtSW5kZXg7CisgICAgICAgICAgICAgICAgYXV0byYgaW5saW5lSXRlbSA9IGlubGlu
ZUl0ZW1zW2lubGluZUl0ZW1JbmRleF07CisgICAgICAgICAgICAgICAgaW5saW5lSXRlbS5zZXRC
aWRpTGV2ZWwoYmlkaUxldmVsRm9yUmFuZ2UpOworICAgICAgICAgICAgICAgIGlmICghaW5saW5l
SXRlbS5pc1RleHQoKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICAgICAgLy8gQ2hlY2sgaWYgdGhpcyB0ZXh0IGl0ZW0gaXMgb24gYmlkaSBib3VuZGFyeSBhbmQg
bmVlZHMgc3BsaXR0aW5nLgorICAgICAgICAgICAgICAgIGF1dG8mIGlubGluZVRleHRJdGVtID0g
ZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pOworICAgICAgICAgICAgICAgIGF1
dG8gZW5kUG9zaXRpb24gPSAqb2Zmc2V0ICsgaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCk7CisgICAg
ICAgICAgICAgICAgaWYgKGVuZFBvc2l0aW9uID4gYmlkaUVuZCkgeworICAgICAgICAgICAgICAg
ICAgICBpbmxpbmVJdGVtcy5pbnNlcnQoaW5saW5lSXRlbUluZGV4ICsgMSwgaW5saW5lVGV4dEl0
ZW0uc3BsaXQoYmlkaUVuZCAtICpvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gUmln
aHQgc2lkZSBpcyBnb2luZyB0byBiZSBwcm9jZXNzZWQgYXQgdGhlIG5leHQgYmlkaSByYW5nZS4K
KyAgICAgICAgICAgICAgICAgICAgaW5saW5lSXRlbU9mZnNldHMuaW5zZXJ0KGlubGluZUl0ZW1J
bmRleCArIDEsIGJpZGlFbmQpOworICAgICAgICAgICAgICAgICAgICArK2lubGluZUl0ZW1JbmRl
eDsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICsrY3VycmVudElubGluZUl0ZW1JbmRleDsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfTsKLSAgICAgICAgc2V0QmlkaUxldmVsT25SYW5nZSgpOworICAgICAgICBzZXRCaWRpTGV2
ZWxPblJhbmdlKGVuZFBvc2l0aW9uLCBiaWRpTGV2ZWwpOwogICAgICAgICBjdXJyZW50UG9zaXRp
b24gPSBlbmRQb3NpdGlvbjsKICAgICB9CisKKyAgICBhdXRvIHNldEJpZGlMZXZlbEZvck9wYXF1
ZUlubGluZUl0ZW1zID0gWyZdIHsKKyAgICAgICAgaWYgKCFoYXNTZWVuT3BhcXVlSXRlbSkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgLy8gT3BhcXVlIGl0ZW1zIChpbmxpbmUgaXRlbXMg
d2l0aCBubyBwYXJhZ3JhcGggY29udGVudCkgZ2V0IHRoZWlyIGJpZGkgbGV2ZWwgdmFsdWVzIGZy
b20gdGhlaXIgYWRqYWNlbnQgaXRlbXMuCisgICAgICAgIGF1dG8gbGFzdEJpZGlMZXZlbCA9IHJv
b3RCaWRpTGV2ZWw7CisgICAgICAgIGZvciAoYXV0byBpbmRleCA9IGlubGluZUl0ZW1zLnNpemUo
KTsgaW5kZXgtLTspIHsKKyAgICAgICAgICAgIGlmICghaW5saW5lSXRlbU9mZnNldHNbaW5kZXhd
KQorICAgICAgICAgICAgICAgIGlubGluZUl0ZW1zW2luZGV4XS5zZXRCaWRpTGV2ZWwobGFzdEJp
ZGlMZXZlbCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbGFzdEJpZGlMZXZl
bCA9IGlubGluZUl0ZW1zW2luZGV4XS5iaWRpTGV2ZWwoKTsKKyAgICAgICAgfQorICAgIH07Cisg
ICAgc2V0QmlkaUxldmVsRm9yT3BhcXVlSW5saW5lSXRlbXMoKTsKIH0KIAogdm9pZCBJbmxpbmVJ
dGVtc0J1aWxkZXI6OmhhbmRsZVRleHRDb250ZW50KGNvbnN0IElubGluZVRleHRCb3gmIGlubGlu
ZVRleHRCb3gsIElubGluZUl0ZW1zJiBpbmxpbmVJdGVtcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZVRleHRJdGVtLmNwcAppbmRleCA3ZTQzNDhmYjMyZjJjZjhiOTFiMTI4MWRlNjc5NWVjZjJiM2Rm
M2MzLi44NjQwY2QyNTdlZTBkOWJlODM2OGQyYzZkNGUyMGRmNmNlNDA1NTI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVU
ZXh0SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uY3BwCkBAIC03MSwxMSArNzEsMTEgQEAgSW5saW5lVGV4
dEl0ZW0gSW5saW5lVGV4dEl0ZW06OnJpZ2h0KHVuc2lnbmVkIGxlbmd0aCwgc3RkOjpvcHRpb25h
bDxJbmxpbmVMYXlvdXQKICAgICByZXR1cm4geyBpbmxpbmVUZXh0Qm94KCksIGVuZCgpIC0gbGVu
Z3RoLCBsZW5ndGgsIGJpZGlMZXZlbCgpLCBoYXNUcmFpbGluZ1NvZnRIeXBoZW4oKSwgaXNXb3Jk
U2VwYXJhdG9yKCksIHdpZHRoLCBtX3RleHRJdGVtVHlwZSB9OwogfQogCi1JbmxpbmVUZXh0SXRl
bSBJbmxpbmVUZXh0SXRlbTo6c3BsaXRBdChzaXplX3QgcG9zaXRpb24pCitJbmxpbmVUZXh0SXRl
bSBJbmxpbmVUZXh0SXRlbTo6c3BsaXQoc2l6ZV90IGxlZnRTaWRlTGVuZ3RoKQogewogICAgIFJF
TEVBU0VfQVNTRVJUKGxlbmd0aCgpID4gMSk7Ci0gICAgUkVMRUFTRV9BU1NFUlQocG9zaXRpb24g
PiBzdGFydCgpICYmIHBvc2l0aW9uIDwgZW5kKCkpOwotICAgIGF1dG8gcmlnaHRTaWRlID0gcmln
aHQoZW5kKCkgLSBwb3NpdGlvbiwgeyB9KTsKKyAgICBSRUxFQVNFX0FTU0VSVChsZWZ0U2lkZUxl
bmd0aCAmJiBsZWZ0U2lkZUxlbmd0aCA8IGxlbmd0aCgpKTsKKyAgICBhdXRvIHJpZ2h0U2lkZSA9
IHJpZ2h0KGxlbmd0aCgpIC0gbGVmdFNpZGVMZW5ndGgsIHsgfSk7CiAgICAgbV9sZW5ndGggPSBs
ZW5ndGgoKSAtIHJpZ2h0U2lkZS5sZW5ndGgoKTsKICAgICByZXR1cm4gcmlnaHRTaWRlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lVGV4dEl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmgKaW5kZXggMzhiNDMyODBiNDljMDVkODYzYzJk
NTFjZTZjOTk0NjZmMzk1ODhmMS4uNjkxODQ1NzE3YTkwNDNkOWFjMmQ4NzM2NDcxNTYyNzEzOWNj
N2MyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVUZXh0SXRlbS5oCkBAIC02NCw3ICs2NCw3IEBA
IHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIElubGluZUl0ZW1zQnVpbGRlcjsKICAgICB1c2lu
ZyBJbmxpbmVJdGVtOjpUZXh0SXRlbVR5cGU7CiAKLSAgICBJbmxpbmVUZXh0SXRlbSBzcGxpdEF0
KHNpemVfdCBwb3NpdGlvbik7CisgICAgSW5saW5lVGV4dEl0ZW0gc3BsaXQoc2l6ZV90IGxlZnRT
aWRlTGVuZ3RoKTsKIAogICAgIElubGluZVRleHRJdGVtKGNvbnN0IElubGluZVRleHRCb3gmLCB1
bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBVQmlEaUxldmVsLCBib29sIGhhc1RyYWls
aW5nU29mdEh5cGhlbiwgYm9vbCBpc1dvcmRTZXBhcmF0b3IsIHN0ZDo6b3B0aW9uYWw8SW5saW5l
TGF5b3V0VW5pdD4gd2lkdGgsIFRleHRJdGVtVHlwZSk7CiAgICAgZXhwbGljaXQgSW5saW5lVGV4
dEl0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYsIFVCaURpTGV2ZWwpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443487</attachid>
            <date>2021-11-06 09:58:38 -0700</date>
            <delta_ts>2021-11-06 12:41:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232772-20211106095837.patch</filename>
            <type>text/plain</type>
            <size>12970</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjg1ODIxNWIxYjE3MzI3
ZDkzYTRlZDc2NzU3NDgxNTk2MTNiYzY5My4uNDkyMTIxYjI0MzAwNTcyNWEzMzhhOWRiZmRhY2Yw
ZGFkN2MzNjkyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTExLTA1ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIFByb2Nlc3Mg
YWxsIHJlcGxhY2VtZW50LCBjb250cm9sIGFuZCBvcGFxdWUgaW5saW5lIGl0ZW1zLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyNzcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgS2VlcCB0cmFjayBvZiBl
YWNoIGlubGluZSBpdGVtIHBvc2l0aW9uIGluIHRoZSBwYXJhZ3JhcGggY29udGVudCAoaW5jbHVk
aW5nIHRoZSBvcGFxdWUgaXRlbXMgd2l0aCBudWxsb3B0IHBvc2l0aW9uKSBpbiBhIHZlY3Rvci4K
KyAgICAgICAgKFRoaXMgb2Zmc2V0IHZlY3RvciBpcyBhbHdheXMgaW4gc3luYyB3aXRoIHRoZSBJ
bmxpbmVJdGVtcyB2ZWN0b3IgKGkuZS4gbnRoIHZhbHVlIHJlZmVycyB0byB0aGUgbnRoIGlubGlu
ZSBpdGVtKQorICAgICAgICBOb3RlIHRoYXQgaXQgbmVlZHMgdG8gZ3JvdyB0b2dldGhlciB3aXRo
IHRoZSBJbmxpbmVJdGVtcyBhcyB3ZSBzcGxpdCBpbmxpbmUgdGV4dCBjb250ZW50IG9uIGJpZGkg
Ym91bmRhcmllcy4pCisKKyAgICAgICAgMS4gV2FsayB0aGUgSW5saW5lSXRlbXMgdXAgdG8gdGhl
IGJpZGkgZW5kIHBvc2l0aW9uIGFuZCBhc3NpZ24gdGhlIGNvbXB1dGVkIGJpZGkgbGV2ZWwgdG8g
ZWFjaCBlbnRyeS4KKyAgICAgICAgMi4gU3BsaXQgdGhlIGlubGluZSB0ZXh0IGl0ZW0gb24gdGhl
IGJpZGkgYm91bmRhcnkgYXMgbmVlZGVkLgorICAgICAgICAzLiBQb3N0LXByb2Nlc3MgdGhlIG9w
YXF1ZSBpdGVtcyAoaXRlbXMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIHBhcmFncmFwaCBjb250
ZW50KS4KKworICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUl0ZW1zQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OmJ1aWxkQmlkaVBh
cmFncmFwaCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUl0ZW1zQnVpbGRlcjo6
YnJlYWtBbmRDb21wdXRlQmlkaUxldmVscyk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVUZXh0SXRlbTo6c3BsaXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVUZXh0SXRlbTo6c3BsaXRBdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uaDoKKwogMjAyMS0xMS0wNSAgQWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBCdWlsZCB0
aGUgcGFyYWdyYXBoIGNvbnRlbnQgd2hlbiBhbGwgdGhlIGlubGluZSBpdGVtcyBhcmUgcHJvY2Vz
c2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcAppbmRleCBiMTU0
MGUyYTMwNjBjMjM4Y2JlMWVmYzgzYzUzMDMyNTBlOGIyZDZjLi43NTQ4ZTQ2ZWM0MTIzMGRmZTA4
MDA2OGYwMTIzMGU2YmU5NTNhZWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1z
QnVpbGRlci5jcHAKQEAgLTEzOSwzMiArMTM5LDM3IEBAIHZvaWQgSW5saW5lSXRlbXNCdWlsZGVy
Ojpjb2xsZWN0SW5saW5lSXRlbXMoSW5saW5lSXRlbXMmIGlubGluZUl0ZW1zKQogICAgIH0KIH0K
IAotdXNpbmcgQ29udGVudE9mZnNldE1hcCA9IEhhc2hNYXA8Y29uc3QgQm94Kiwgc2l6ZV90PjsK
LXN0YXRpYyBpbmxpbmUgdm9pZCBidWlsZEJpZGlQYXJhZ3JhcGgoY29uc3QgSW5saW5lSXRlbXMm
IGlubGluZUl0ZW1zLCAgU3RyaW5nQnVpbGRlciYgcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIsIENv
bnRlbnRPZmZzZXRNYXAmIGNvbnRlbnRPZmZzZXRNYXApCit1c2luZyBJbmxpbmVJdGVtT2Zmc2V0
TGlzdCA9IFZlY3RvcjxzdGQ6Om9wdGlvbmFsPHNpemVfdD4+Oworc3RhdGljIGlubGluZSB2b2lk
IGJ1aWxkQmlkaVBhcmFncmFwaChjb25zdCBJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMsICBTdHJp
bmdCdWlsZGVyJiBwYXJhZ3JhcGhDb250ZW50QnVpbGRlciwgSW5saW5lSXRlbU9mZnNldExpc3Qm
IGlubGluZUl0ZW1PZmZzZXRMaXN0KQogewogICAgIGNvbnN0IEJveCogbGFzdElubGluZVRleHRC
b3ggPSBudWxscHRyOwotICAgIGZvciAoYXV0byYgaW5saW5lSXRlbSA6IGlubGluZUl0ZW1zKSB7
CisgICAgc2l6ZV90IGlubGluZVRleHRCb3hPZmZzZXQgPSAwOworICAgIGZvciAoc2l6ZV90IGlu
ZGV4ID0gMDsgaW5kZXggPCBpbmxpbmVJdGVtcy5zaXplKCk7ICsraW5kZXgpIHsKKyAgICAgICAg
YXV0byYgaW5saW5lSXRlbSA9IGlubGluZUl0ZW1zW2luZGV4XTsKICAgICAgICAgYXV0byYgbGF5
b3V0Qm94ID0gaW5saW5lSXRlbS5sYXlvdXRCb3goKTsKIAogICAgICAgICBpZiAoaW5saW5lSXRl
bS5pc1RleHQoKSkgewogICAgICAgICAgICAgaWYgKGxhc3RJbmxpbmVUZXh0Qm94ICE9ICZsYXlv
dXRCb3gpIHsKLSAgICAgICAgICAgICAgICBjb250ZW50T2Zmc2V0TWFwLnNldCgmbGF5b3V0Qm94
LCBwYXJhZ3JhcGhDb250ZW50QnVpbGRlci5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgaW5s
aW5lVGV4dEJveE9mZnNldCA9IHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmxlbmd0aCgpOwogICAg
ICAgICAgICAgICAgIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmFwcGVuZChkb3duY2FzdDxJbmxp
bmVUZXh0Qm94PihsYXlvdXRCb3gpLmNvbnRlbnQoKSk7CiAgICAgICAgICAgICAgICAgbGFzdElu
bGluZVRleHRCb3ggPSAmbGF5b3V0Qm94OwogICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2Ug
aWYgKGlubGluZUl0ZW0uaXNCb3goKSkKKyAgICAgICAgICAgIGlubGluZUl0ZW1PZmZzZXRMaXN0
LnVuY2hlY2tlZEFwcGVuZCh7IGlubGluZVRleHRCb3hPZmZzZXQgKyBkb3duY2FzdDxJbmxpbmVU
ZXh0SXRlbT4oaW5saW5lSXRlbSkuc3RhcnQoKSB9KTsKKyAgICAgICAgfSBlbHNlIGlmIChpbmxp
bmVJdGVtLmlzQm94KCkpIHsKKyAgICAgICAgICAgIGlubGluZUl0ZW1PZmZzZXRMaXN0LnVuY2hl
Y2tlZEFwcGVuZCh7IHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmxlbmd0aCgpIH0pOwogICAgICAg
ICAgICAgcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIuYXBwZW5kKG9iamVjdFJlcGxhY2VtZW50Q2hh
cmFjdGVyKTsKKyAgICAgICAgfQogICAgICAgICBlbHNlIGlmIChpbmxpbmVJdGVtLmlzSW5saW5l
Qm94U3RhcnQoKSB8fCBpbmxpbmVJdGVtLmlzSW5saW5lQm94RW5kKCkpIHsKICAgICAgICAgICAg
IC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Mtd3JpdGluZy1tb2Rlcy8jdW5pY29kZS1i
aWRpCiAgICAgICAgICAgICBhdXRvJiBzdHlsZSA9IGlubGluZUl0ZW0uc3R5bGUoKTsKICAgICAg
ICAgICAgIGF1dG8gaW5pdGlhdGVzQ29udHJvbENoYXJhY3RlciA9IHN0eWxlLnJ0bE9yZGVyaW5n
KCkgPT0gT3JkZXI6OkxvZ2ljYWwgJiYgc3R5bGUudW5pY29kZUJpZGkoKSAhPSBFVW5pY29kZUJp
ZGk6OlVCTm9ybWFsOwotICAgICAgICAgICAgaWYgKCFpbml0aWF0ZXNDb250cm9sQ2hhcmFjdGVy
KQorICAgICAgICAgICAgaWYgKCFpbml0aWF0ZXNDb250cm9sQ2hhcmFjdGVyKSB7CisgICAgICAg
ICAgICAgICAgLy8gT3BhcXVlIGl0ZW1zIGRvIG5vdCBoYXZlIHBvc2l0aW9uIGluIHRoZSBiaWRp
IHBhcmFncmFwaC4gVGhleSBpbmhlcml0IHRoZWlyIGJpZGkgbGV2ZWwgZnJvbSB0aGUgbmV4dCBp
bmxpbmUgaXRlbS4KKyAgICAgICAgICAgICAgICBpbmxpbmVJdGVtT2Zmc2V0TGlzdC51bmNoZWNr
ZWRBcHBlbmQoeyB9KTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGlubGluZUl0ZW1PZmZzZXRMaXN0LnVuY2hlY2tlZEFwcGVuZCh7IHBhcmFn
cmFwaENvbnRlbnRCdWlsZGVyLmxlbmd0aCgpIH0pOwogICAgICAgICAgICAgYXV0byBpc0VudGVy
aW5nQmlkaSA9IGlubGluZUl0ZW0uaXNJbmxpbmVCb3hTdGFydCgpOwotCi0gICAgICAgICAgICBp
ZiAoaXNFbnRlcmluZ0JpZGkpCi0gICAgICAgICAgICAgICAgY29udGVudE9mZnNldE1hcC5hZGQo
JmxheW91dEJveCwgcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIubGVuZ3RoKCkpOwotCiAgICAgICAg
ICAgICBzd2l0Y2ggKHN0eWxlLnVuaWNvZGVCaWRpKCkpIHsKICAgICAgICAgICAgIGNhc2UgRVVu
aWNvZGVCaWRpOjpVQk5vcm1hbDoKICAgICAgICAgICAgICAgICAvLyBUaGUgYm94IGRvZXMgbm90
IG9wZW4gYW4gYWRkaXRpb25hbCBsZXZlbCBvZiBlbWJlZGRpbmcgd2l0aCByZXNwZWN0IHRvIHRo
ZSBiaWRpcmVjdGlvbmFsIGFsZ29yaXRobS4KQEAgLTIwNiw4ICsyMTEsMTAgQEAgdm9pZCBJbmxp
bmVJdGVtc0J1aWxkZXI6OmJyZWFrQW5kQ29tcHV0ZUJpZGlMZXZlbHMoSW5saW5lSXRlbXMmIGlu
bGluZUl0ZW1zKQogICAgIEFTU0VSVCghaW5saW5lSXRlbXMuaXNFbXB0eSgpKTsKIAogICAgIFN0
cmluZ0J1aWxkZXIgcGFyYWdyYXBoQ29udGVudEJ1aWxkZXI7Ci0gICAgQ29udGVudE9mZnNldE1h
cCBjb250ZW50T2Zmc2V0TWFwOwotICAgIGJ1aWxkQmlkaVBhcmFncmFwaChpbmxpbmVJdGVtcywg
cGFyYWdyYXBoQ29udGVudEJ1aWxkZXIsIGNvbnRlbnRPZmZzZXRNYXApOworICAgIElubGluZUl0
ZW1PZmZzZXRMaXN0IGlubGluZUl0ZW1PZmZzZXRzOworICAgIGlubGluZUl0ZW1PZmZzZXRzLnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkoaW5saW5lSXRlbXMuc2l6ZSgpKTsKKyAgICBidWlsZEJpZGlQ
YXJhZ3JhcGgoaW5saW5lSXRlbXMsIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLCBpbmxpbmVJdGVt
T2Zmc2V0cyk7CisgICAgQVNTRVJUKGlubGluZUl0ZW1PZmZzZXRzLnNpemUoKSA9PSBpbmxpbmVJ
dGVtcy5zaXplKCkpOwogCiAgICAgLy8gMS4gU2V0dXAgdGhlIGJpZGkgYm91bmRhcnkgbG9vcCBi
eSBjYWxsaW5nIHViaWRpX3NldFBhcmEgd2l0aCB0aGUgcGFyYWdyYXBoIHRleHQuCiAgICAgLy8g
Mi4gQ2FsbCB1YmlkaV9nZXRMb2dpY2FsUnVuIHRvIGFkdmFuY2UgdG8gdGhlIG5leHQgYmlkaSBi
b3VuZGFyeSB1bnRpbCB3ZSBoaXQgdGhlIGVuZCBvZiB0aGUgY29udGVudC4KQEAgLTIxOCw2MSAr
MjI1LDc0IEBAIHZvaWQgSW5saW5lSXRlbXNCdWlsZGVyOjpicmVha0FuZENvbXB1dGVCaWRpTGV2
ZWxzKElubGluZUl0ZW1zJiBpbmxpbmVJdGVtcykKICAgICAgICAgdWJpZGlfY2xvc2UodWJpZGkp
OwogICAgIH0pOwogCi0gICAgVUJpRGlMZXZlbCBiaWRpTGV2ZWwgPSBVQklESV9ERUZBVUxUX0xU
UjsKKyAgICBVQmlEaUxldmVsIHJvb3RCaWRpTGV2ZWwgPSBVQklESV9ERUZBVUxUX0xUUjsKICAg
ICBib29sIHVzZUhldXJpc3RpY0Jhc2VEaXJlY3Rpb24gPSByb290KCkuc3R5bGUoKS51bmljb2Rl
QmlkaSgpID09IEVVbmljb2RlQmlkaTo6UGxhaW50ZXh0OwogICAgIGlmICghdXNlSGV1cmlzdGlj
QmFzZURpcmVjdGlvbikKLSAgICAgICAgYmlkaUxldmVsID0gcm9vdCgpLnN0eWxlKCkuaXNMZWZ0
VG9SaWdodERpcmVjdGlvbigpID8gVUJJRElfTFRSIDogVUJJRElfUlRMOworICAgICAgICByb290
QmlkaUxldmVsID0gcm9vdCgpLnN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gVUJJ
RElfTFRSIDogVUJJRElfUlRMOwogCiAgICAgVUVycm9yQ29kZSBlcnJvciA9IFVfWkVST19FUlJP
UjsKICAgICBBU1NFUlQoIXBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmlzRW1wdHkoKSk7Ci0gICAg
dWJpZGlfc2V0UGFyYSh1YmlkaSwgcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIuY2hhcmFjdGVyczE2
KCksIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmxlbmd0aCgpLCBiaWRpTGV2ZWwsIG51bGxwdHIs
ICZlcnJvcik7CisgICAgdWJpZGlfc2V0UGFyYSh1YmlkaSwgcGFyYWdyYXBoQ29udGVudEJ1aWxk
ZXIuY2hhcmFjdGVyczE2KCksIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmxlbmd0aCgpLCByb290
QmlkaUxldmVsLCBudWxscHRyLCAmZXJyb3IpOwogICAgIGlmIChVX0ZBSUxVUkUoZXJyb3IpKSB7
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgc2l6ZV90IGN1cnJlbnRJbmxpbmVJdGVtSW5kZXggPSAwOworICAgIHNpemVfdCBpbmxp
bmVJdGVtSW5kZXggPSAwOworICAgIGF1dG8gaGFzU2Vlbk9wYXF1ZUl0ZW0gPSBmYWxzZTsKICAg
ICBmb3IgKHNpemVfdCBjdXJyZW50UG9zaXRpb24gPSAwOyBjdXJyZW50UG9zaXRpb24gPCBwYXJh
Z3JhcGhDb250ZW50QnVpbGRlci5sZW5ndGgoKTspIHsKLSAgICAgICAgVUJpRGlMZXZlbCBsZXZl
bDsKKyAgICAgICAgVUJpRGlMZXZlbCBiaWRpTGV2ZWw7CiAgICAgICAgIGludDMyX3QgZW5kUG9z
aXRpb24gPSBjdXJyZW50UG9zaXRpb247Ci0gICAgICAgIHViaWRpX2dldExvZ2ljYWxSdW4odWJp
ZGksIGN1cnJlbnRQb3NpdGlvbiwgJmVuZFBvc2l0aW9uLCAmbGV2ZWwpOworICAgICAgICB1Ymlk
aV9nZXRMb2dpY2FsUnVuKHViaWRpLCBjdXJyZW50UG9zaXRpb24sICZlbmRQb3NpdGlvbiwgJmJp
ZGlMZXZlbCk7CiAKLSAgICAgICAgYXV0byBzZXRCaWRpTGV2ZWxPblJhbmdlID0gWyZdIHsKKyAg
ICAgICAgYXV0byBzZXRCaWRpTGV2ZWxPblJhbmdlID0gWyZdKHNpemVfdCBiaWRpRW5kLCBhdXRv
IGJpZGlMZXZlbEZvclJhbmdlKSB7CiAgICAgICAgICAgICAvLyBXZSBzaG91bGQgYWx3YXlzIGhh
dmUgaW5saW5lIGl0ZW0ocykgYXNzb2NpYXRlZCB3aXRoIGEgYmlkaSByYW5nZS4KLSAgICAgICAg
ICAgIEFTU0VSVChjdXJyZW50SW5saW5lSXRlbUluZGV4IDwgaW5saW5lSXRlbXMuc2l6ZSgpKTsK
LQotICAgICAgICAgICAgd2hpbGUgKGN1cnJlbnRJbmxpbmVJdGVtSW5kZXggPCBpbmxpbmVJdGVt
cy5zaXplKCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvJiBpbmxpbmVJdGVtID0gaW5saW5lSXRl
bXNbY3VycmVudElubGluZUl0ZW1JbmRleF07Ci0gICAgICAgICAgICAgICAgaWYgKCFpbmxpbmVJ
dGVtLmlzVGV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGZhaWxz
IHdpdGggbXVsdGlwbGUgaW5saW5lIGJveGVzIGFzIHRoZXkgZG9uJ3QgYWR2YW5jZSBwb3NpdGlv
bi4KLSAgICAgICAgICAgICAgICAgICAgaW5saW5lSXRlbS5zZXRCaWRpTGV2ZWwobGV2ZWwpOwot
ICAgICAgICAgICAgICAgICAgICArK2N1cnJlbnRJbmxpbmVJdGVtSW5kZXg7CisgICAgICAgICAg
ICBBU1NFUlQoaW5saW5lSXRlbUluZGV4IDwgaW5saW5lSXRlbU9mZnNldHMuc2l6ZSgpKTsKKyAg
ICAgICAgICAgIC8vIFN0YXJ0IG9mIHRoZSByYW5nZSBpcyBhbHdheXMgd2hlcmUgd2UgbGVmdCBv
ZmYgKGJpZGkgcmFuZ2VzIGRvIG5vdCBoYXZlIGdhcHMpLgorICAgICAgICAgICAgZm9yICg7IGlu
bGluZUl0ZW1JbmRleCA8IGlubGluZUl0ZW1PZmZzZXRzLnNpemUoKTsgKytpbmxpbmVJdGVtSW5k
ZXgpIHsKKyAgICAgICAgICAgICAgICBhdXRvIG9mZnNldCA9IGlubGluZUl0ZW1PZmZzZXRzW2lu
bGluZUl0ZW1JbmRleF07CisgICAgICAgICAgICAgICAgaWYgKCFvZmZzZXQpIHsKKyAgICAgICAg
ICAgICAgICAgICAgLy8gVGhpcyBpcyBhbiBvcGFxdWUgaXRlbS4gTGV0J3MgcG9zdC1wcm9jZXNz
IGl0LgorICAgICAgICAgICAgICAgICAgICBoYXNTZWVuT3BhcXVlSXRlbSA9IHRydWU7CiAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogRmluZCBvdXQgaWYgdGhpcyBpcyB0aGUgbW9zdCBvcHRpbWFsIHBsYWNl
IHRvIG1lYXN1cmUgYW5kIGNhY2hlIHRleHQgd2lkdGhzLiAKLSAgICAgICAgICAgICAgICBhdXRv
JiBpbmxpbmVUZXh0SXRlbSA9IGRvd25jYXN0PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVtKTsK
LSAgICAgICAgICAgICAgICBpbmxpbmVUZXh0SXRlbS5zZXRCaWRpTGV2ZWwobGV2ZWwpOwotCi0g
ICAgICAgICAgICAgICAgYXV0byBpbmxpbmVUZXh0SXRlbUVuZCA9IGlubGluZVRleHRJdGVtLmVu
ZCgpOwotICAgICAgICAgICAgICAgIGF1dG8gYmlkaUVuZCA9IGVuZFBvc2l0aW9uIC0gY29udGVu
dE9mZnNldE1hcC5nZXQoJmlubGluZVRleHRJdGVtLmxheW91dEJveCgpKTsKLSAgICAgICAgICAg
ICAgICBpZiAoYmlkaUVuZCA9PSBpbmxpbmVUZXh0SXRlbUVuZCkgewotICAgICAgICAgICAgICAg
ICAgICArK2N1cnJlbnRJbmxpbmVJdGVtSW5kZXg7CisgICAgICAgICAgICAgICAgaWYgKCpvZmZz
ZXQgPj0gYmlkaUVuZCkgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlubGluZSBpdGVt
IGlzIG91dHNpZGUgb2YgdGhlIGJpZGkgcmFuZ2UuCiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoYmlkaUVuZCA8IGlubGlu
ZVRleHRJdGVtRW5kKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50SW5saW5lSXRl
bUluZGV4ID09IGlubGluZUl0ZW1zLnNpemUoKSAtIDEpCi0gICAgICAgICAgICAgICAgICAgICAg
ICBpbmxpbmVJdGVtcy5hcHBlbmQoaW5saW5lVGV4dEl0ZW0uc3BsaXRBdChiaWRpRW5kKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZUl0
ZW1zLmluc2VydChjdXJyZW50SW5saW5lSXRlbUluZGV4ICsgMSwgaW5saW5lVGV4dEl0ZW0uc3Bs
aXRBdChiaWRpRW5kKSk7Ci0gICAgICAgICAgICAgICAgICAgICsrY3VycmVudElubGluZUl0ZW1J
bmRleDsKKyAgICAgICAgICAgICAgICBhdXRvJiBpbmxpbmVJdGVtID0gaW5saW5lSXRlbXNbaW5s
aW5lSXRlbUluZGV4XTsKKyAgICAgICAgICAgICAgICBpbmxpbmVJdGVtLnNldEJpZGlMZXZlbChi
aWRpTGV2ZWxGb3JSYW5nZSk7CisgICAgICAgICAgICAgICAgaWYgKCFpbmxpbmVJdGVtLmlzVGV4
dCgpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAvLyBD
aGVjayBpZiB0aGlzIHRleHQgaXRlbSBpcyBvbiBiaWRpIGJvdW5kYXJ5IGFuZCBuZWVkcyBzcGxp
dHRpbmcuCisgICAgICAgICAgICAgICAgYXV0byYgaW5saW5lVGV4dEl0ZW0gPSBkb3duY2FzdDxJ
bmxpbmVUZXh0SXRlbT4oaW5saW5lSXRlbSk7CisgICAgICAgICAgICAgICAgYXV0byBlbmRQb3Np
dGlvbiA9ICpvZmZzZXQgKyBpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAg
ICBpZiAoZW5kUG9zaXRpb24gPiBiaWRpRW5kKSB7CisgICAgICAgICAgICAgICAgICAgIGlubGlu
ZUl0ZW1zLmluc2VydChpbmxpbmVJdGVtSW5kZXggKyAxLCBpbmxpbmVUZXh0SXRlbS5zcGxpdChi
aWRpRW5kIC0gKm9mZnNldCkpOworICAgICAgICAgICAgICAgICAgICAvLyBSaWdodCBzaWRlIGlz
IGdvaW5nIHRvIGJlIHByb2Nlc3NlZCBhdCB0aGUgbmV4dCBiaWRpIHJhbmdlLgorICAgICAgICAg
ICAgICAgICAgICBpbmxpbmVJdGVtT2Zmc2V0cy5pbnNlcnQoaW5saW5lSXRlbUluZGV4ICsgMSwg
YmlkaUVuZCk7CisgICAgICAgICAgICAgICAgICAgICsraW5saW5lSXRlbUluZGV4OwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
KytjdXJyZW50SW5saW5lSXRlbUluZGV4OwogICAgICAgICAgICAgfQogICAgICAgICB9OwotICAg
ICAgICBzZXRCaWRpTGV2ZWxPblJhbmdlKCk7CisgICAgICAgIHNldEJpZGlMZXZlbE9uUmFuZ2Uo
ZW5kUG9zaXRpb24sIGJpZGlMZXZlbCk7CiAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA9IGVuZFBv
c2l0aW9uOwogICAgIH0KKworICAgIGF1dG8gc2V0QmlkaUxldmVsRm9yT3BhcXVlSW5saW5lSXRl
bXMgPSBbJl0geworICAgICAgICBpZiAoIWhhc1NlZW5PcGFxdWVJdGVtKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAvLyBPcGFxdWUgaXRlbXMgKGlubGluZSBpdGVtcyB3aXRoIG5vIHBh
cmFncmFwaCBjb250ZW50KSBnZXQgdGhlaXIgYmlkaSBsZXZlbCB2YWx1ZXMgZnJvbSB0aGVpciBh
ZGphY2VudCBpdGVtcy4KKyAgICAgICAgYXV0byBsYXN0QmlkaUxldmVsID0gcm9vdEJpZGlMZXZl
bDsKKyAgICAgICAgZm9yIChhdXRvIGluZGV4ID0gaW5saW5lSXRlbXMuc2l6ZSgpOyBpbmRleC0t
OykgeworICAgICAgICAgICAgaWYgKCFpbmxpbmVJdGVtT2Zmc2V0c1tpbmRleF0pCisgICAgICAg
ICAgICAgICAgaW5saW5lSXRlbXNbaW5kZXhdLnNldEJpZGlMZXZlbChsYXN0QmlkaUxldmVsKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsYXN0QmlkaUxldmVsID0gaW5saW5l
SXRlbXNbaW5kZXhdLmJpZGlMZXZlbCgpOworICAgICAgICB9CisgICAgfTsKKyAgICBzZXRCaWRp
TGV2ZWxGb3JPcGFxdWVJbmxpbmVJdGVtcygpOwogfQogCiB2b2lkIElubGluZUl0ZW1zQnVpbGRl
cjo6aGFuZGxlVGV4dENvbnRlbnQoY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwg
SW5saW5lSXRlbXMmIGlubGluZUl0ZW1zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0u
Y3BwCmluZGV4IDdlNDM0OGZiMzJmMmNmOGI5MWIxMjgxZGU2Nzk1ZWNmMmIzZGYzYzMuLjg2NDBj
ZDI1N2VlMGQ5YmU4MzY4ZDJjNmQ0ZTIwZGY2Y2U0MDU1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVUZXh0SXRlbS5jcHAKQEAgLTcxLDExICs3MSwxMSBAQCBJbmxpbmVUZXh0SXRlbSBJbmxp
bmVUZXh0SXRlbTo6cmlnaHQodW5zaWduZWQgbGVuZ3RoLCBzdGQ6Om9wdGlvbmFsPElubGluZUxh
eW91dAogICAgIHJldHVybiB7IGlubGluZVRleHRCb3goKSwgZW5kKCkgLSBsZW5ndGgsIGxlbmd0
aCwgYmlkaUxldmVsKCksIGhhc1RyYWlsaW5nU29mdEh5cGhlbigpLCBpc1dvcmRTZXBhcmF0b3Io
KSwgd2lkdGgsIG1fdGV4dEl0ZW1UeXBlIH07CiB9CiAKLUlubGluZVRleHRJdGVtIElubGluZVRl
eHRJdGVtOjpzcGxpdEF0KHNpemVfdCBwb3NpdGlvbikKK0lubGluZVRleHRJdGVtIElubGluZVRl
eHRJdGVtOjpzcGxpdChzaXplX3QgbGVmdFNpZGVMZW5ndGgpCiB7CiAgICAgUkVMRUFTRV9BU1NF
UlQobGVuZ3RoKCkgPiAxKTsKLSAgICBSRUxFQVNFX0FTU0VSVChwb3NpdGlvbiA+IHN0YXJ0KCkg
JiYgcG9zaXRpb24gPCBlbmQoKSk7Ci0gICAgYXV0byByaWdodFNpZGUgPSByaWdodChlbmQoKSAt
IHBvc2l0aW9uLCB7IH0pOworICAgIFJFTEVBU0VfQVNTRVJUKGxlZnRTaWRlTGVuZ3RoICYmIGxl
ZnRTaWRlTGVuZ3RoIDwgbGVuZ3RoKCkpOworICAgIGF1dG8gcmlnaHRTaWRlID0gcmlnaHQobGVu
Z3RoKCkgLSBsZWZ0U2lkZUxlbmd0aCwgeyB9KTsKICAgICBtX2xlbmd0aCA9IGxlbmd0aCgpIC0g
cmlnaHRTaWRlLmxlbmd0aCgpOwogICAgIHJldHVybiByaWdodFNpZGU7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVU
ZXh0SXRlbS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lVGV4dEl0ZW0uaAppbmRleCAzOGI0MzI4MGI0OWMwNWQ4NjNjMmQ1MWNlNmM5OTQ2
NmYzOTU4OGYxLi42OTE4NDU3MTdhOTA0M2Q5YWMyZDg3MzY0NzE1NjI3MTM5Y2M3YzJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVUZXh0SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToK
ICAgICBmcmllbmQgY2xhc3MgSW5saW5lSXRlbXNCdWlsZGVyOwogICAgIHVzaW5nIElubGluZUl0
ZW06OlRleHRJdGVtVHlwZTsKIAotICAgIElubGluZVRleHRJdGVtIHNwbGl0QXQoc2l6ZV90IHBv
c2l0aW9uKTsKKyAgICBJbmxpbmVUZXh0SXRlbSBzcGxpdChzaXplX3QgbGVmdFNpZGVMZW5ndGgp
OwogCiAgICAgSW5saW5lVGV4dEl0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYsIHVuc2lnbmVkIHN0
YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIFVCaURpTGV2ZWwsIGJvb2wgaGFzVHJhaWxpbmdTb2Z0SHlw
aGVuLCBib29sIGlzV29yZFNlcGFyYXRvciwgc3RkOjpvcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0
PiB3aWR0aCwgVGV4dEl0ZW1UeXBlKTsKICAgICBleHBsaWNpdCBJbmxpbmVUZXh0SXRlbShjb25z
dCBJbmxpbmVUZXh0Qm94JiwgVUJpRGlMZXZlbCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>