<?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>228180</bug_id>
          
          <creation_ts>2021-07-22 02:46:31 -0700</creation_ts>
          <short_desc>[Cocoa] ComplexTextController&apos;s notion of glyph run initial advance is wrong</short_desc>
          <delta_ts>2021-08-11 11:52: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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          <dependson>228905</dependson>
          <blocked>206208</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1778678</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-22 02:46:31 -0700</bug_when>
    <thetext>[Cocoa] ComplexTextController&apos;s notion of glyph run initial advance is wrong</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778679</commentid>
    <comment_count>1</comment_count>
      <attachid>434001</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-22 02:47:19 -0700</bug_when>
    <thetext>Created attachment 434001
Needs tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778775</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-22 11:51:47 -0700</bug_when>
    <thetext>Failing tests on Monterey:
fast/ruby/ruby-expansion-cjk-4.html
fast/text/combining-enclosing-keycap.html
fast/text/initial-advance-in-intermediate-run-complex.html
imported/w3c/web-platform-tests/css/css-text/word-break/word-break-normal-ar-000.html
imported/w3c/web-platform-tests/css/css-ui/text-overflow-022.html
imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining.html
platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment.html
svg/W3C-I18N/text-anchor-dirLTR-anchorMiddle.svg
svg/W3C-I18N/text-anchor-dirLTR-anchorStart.svg
svg/W3C-I18N/text-anchor-dirNone-anchorEnd.svg
svg/W3C-I18N/text-anchor-dirNone-anchorMiddle.svg
svg/W3C-I18N/text-anchor-dirNone-anchorStart.svg
svg/W3C-I18N/text-anchor-dirRTL-anchorEnd.svg
svg/W3C-I18N/text-anchor-dirRTL-anchorMiddle.svg
svg/W3C-I18N/text-anchor-dirRTL-anchorStart.svg
svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorEnd.svg
svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorMiddle.svg
svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorStart.svg
svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorEnd.svg
svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorMiddle.svg
svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorStart.svg
svg/W3C-I18N/text-anchor-no-markup.svg
svg/W3C-SVG-1.1/text-fonts-01-t.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778811</commentid>
    <comment_count>3</comment_count>
      <attachid>434031</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-22 13:37:47 -0700</bug_when>
    <thetext>Created attachment 434031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778828</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-22 14:20:08 -0700</bug_when>
    <thetext>New failing tests:

fast/text/combining-enclosing-keycap.html
fast/text/initial-advance-in-intermediate-run-complex.html
fast/text/initial-advance-selected-text.html
imported/blink/fast/gradients/gradient-transparency.html
imported/w3c/web-platform-tests/css/css-text/word-break/word-break-normal-ar-000.html
imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining.html
model-element/model-element-source.html
platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment.html
svg/W3C-I18N/text-anchor-dirLTR-anchorMiddle.svg
svg/W3C-I18N/text-anchor-dirLTR-anchorStart.svg
svg/W3C-I18N/text-anchor-dirNone-anchorEnd.svg
svg/W3C-I18N/text-anchor-dirNone-anchorMiddle.svg
svg/W3C-I18N/text-anchor-dirNone-anchorStart.svg
svg/W3C-I18N/text-anchor-dirRTL-anchorEnd.svg
svg/W3C-I18N/text-anchor-dirRTL-anchorMiddle.svg
svg/W3C-I18N/text-anchor-dirRTL-anchorStart.svg
svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorEnd.svg
svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorMiddle.svg
svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorStart.svg
svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorEnd.svg
svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorMiddle.svg
svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorStart.svg
svg/W3C-I18N/text-anchor-no-markup.svg
svg/dom/altGlyph-dom.xhtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779382</commentid>
    <comment_count>5</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-25 16:29:49 -0700</bug_when>
    <thetext>Failing tests:

fast/text/combining-enclosing-keycap.html
imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining.html
fast/text/initial-advance-in-intermediate-run-complex.html
fast/text/initial-advance-selected-text.html
imported/w3c/web-platform-tests/css/css-text/word-break/word-break-normal-ar-000.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779383</commentid>
    <comment_count>6</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-25 16:31:42 -0700</bug_when>
    <thetext>fast/text/combining-enclosing-keycap.html and imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining.html look like rebaselines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779384</commentid>
    <comment_count>7</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-25 16:40:13 -0700</bug_when>
    <thetext>fast/text/initial-advance-in-intermediate-run-complex.html needs an update (the test is philosophically passing but being reported as failing)

fast/text/initial-advance-in-intermediate-run-complex.html is rdar://80985709.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779385</commentid>
    <comment_count>8</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-25 16:41:25 -0700</bug_when>
    <thetext>Whoops, this meant to say:

fast/text/initial-advance-in-intermediate-run-complex.html needs an update (the test is philosophically passing but being reported as failing)

fast/text/initial-advance-selected-text.html is rdar://80985709.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780339</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-29 02:47:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/81261632&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781422</commentid>
    <comment_count>10</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-02 15:22:32 -0700</bug_when>
    <thetext>See also: rdar://80985709</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782143</commentid>
    <comment_count>11</comment_count>
      <attachid>434966</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-04 23:39:59 -0700</bug_when>
    <thetext>Created attachment 434966
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782786</commentid>
    <comment_count>12</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-08 14:28:54 -0700</bug_when>
    <thetext>I think I should split this up into 2 patches:
1. Add each run’s initial advance to the end of the previous run
2. The initial advance doesn’t point to the first glyph’s pain location. This one will need the new SPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783022</commentid>
    <comment_count>13</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-09 16:35:51 -0700</bug_when>
    <thetext>Let&apos;s not do this. Let&apos;s instead just delete the complex text codepath.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783404</commentid>
    <comment_count>14</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-10 23:46:17 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783405</commentid>
    <comment_count>15</comment_count>
      <attachid>435326</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-10 23:46:19 -0700</bug_when>
    <thetext>Created attachment 435326
Patch that does everything right with the SPI</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434001</attachid>
            <date>2021-07-22 02:47:19 -0700</date>
            <delta_ts>2021-07-22 13:37:45 -0700</delta_ts>
            <desc>Needs tests</desc>
            <filename>bug-228180-20210722024718.patch</filename>
            <type>text/plain</type>
            <size>9599</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzAxZTEwMmU2ZDc0MDRk
ZGIyZmUwZTI2MzZmOTE1YzliN2U2MmUyNi4uNjQyYTY4YzkzZGNmMGZkY2ZmM2I3MjQ1YzdmMWE2
Mjc3MjExYWJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA3LTIyICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBD
b21wbGV4VGV4dENvbnRyb2xsZXIncyBub3Rpb24gb2YgZ2x5cGggcnVuIGluaXRpYWwgYWR2YW5j
ZSBpcyB3cm9uZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI4MTgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9D
b21wbGV4VGV4dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRD
b250cm9sbGVyOjphZHZhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJv
bGxlcjo6YWRqdXN0R2x5cGhzQW5kQWR2YW5jZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dseXBoQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaEJ1ZmZlcjo6ZmxhdHRlbik6
CisgICAgICAgIChXZWJDb3JlOjpHbHlwaEJ1ZmZlcjo6aXNGbGF0dGVuZWQgY29uc3QpOgorCiAy
MDIxLTA3LTAxICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIE1pc3NpbmcgbGF5b3V0cyB3aGVuIHVzaW5nIHNpbXBsaWZpZWQgbGF5b3V0IHdpdGgg
T09GIHBvc2l0aW9uZWQgZWxlbWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCmluZGV4IDQ0OTMyZGVm
Y2Q5ODYzZTYwZjIwY2E5ZDE3NjJhNzk2NTMwYjFmYjguLjBkMWM1M2IwNGRkZGM4MGFjYTY0ZDFl
NWZkNWYzZTMzYmFlZWE0MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcApAQCAtNjA0LDIxICs2MDQs
OCBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6YWR2YW5jZSh1bnNpZ25lZCBvZmZzZXQs
IEdseXBoQnVmZmVyKiBnbHlwaEJ1ZmZlciwgRwogICAgICAgICAgICAgaWYgKGdseXBoQnVmZmVy
ICYmICFtX2NoYXJhY3RlckluQ3VycmVudEdseXBoKSB7CiAgICAgICAgICAgICAgICAgYXV0byBj
dXJyZW50R2x5cGhPcmlnaW4gPSBnbHlwaE9yaWdpbihnbHlwaEluZGV4SW50b0NvbXBsZXhUZXh0
Q29udHJvbGxlcik7CiAgICAgICAgICAgICAgICAgR2x5cGhCdWZmZXJBZHZhbmNlIHBhaW50QWR2
YW5jZSA9IG1ha2VHbHlwaEJ1ZmZlckFkdmFuY2UoYWRqdXN0ZWRCYXNlQWR2YW5jZSk7Ci0gICAg
ICAgICAgICAgICAgaWYgKCFnbHlwaEluZGV4SW50b0N1cnJlbnRSdW4pIHsKLSAgICAgICAgICAg
ICAgICAgICAgLy8gVGhlIGZpcnN0IGxheW91dCBhZHZhbmNlIG9mIGV2ZXJ5IHJ1biBpbmNsdWRl
cyB0aGUgImluaXRpYWwgbGF5b3V0IGFkdmFuY2UuIiBIb3dldmVyLCBoZXJlLCB3ZSBuZWVkCi0g
ICAgICAgICAgICAgICAgICAgIC8vIHBhaW50IGFkdmFuY2VzLCBzbyBzdWJ0cmFjdCBpdCBvdXQg
YmVmb3JlIHRyYW5zZm9ybWluZyB0aGUgbGF5b3V0IGFkdmFuY2UgaW50byBhIHBhaW50IGFkdmFu
Y2UuCi0gICAgICAgICAgICAgICAgICAgIHNldFdpZHRoKHBhaW50QWR2YW5jZSwgd2lkdGgocGFp
bnRBZHZhbmNlKSAtIChjb21wbGV4VGV4dFJ1bi5pbml0aWFsQWR2YW5jZSgpLndpZHRoKCkgLSBj
dXJyZW50R2x5cGhPcmlnaW4ueCgpKSk7Ci0gICAgICAgICAgICAgICAgICAgIHNldEhlaWdodChw
YWludEFkdmFuY2UsIGhlaWdodChwYWludEFkdmFuY2UpIC0gKGNvbXBsZXhUZXh0UnVuLmluaXRp
YWxBZHZhbmNlKCkuaGVpZ2h0KCkgLSBjdXJyZW50R2x5cGhPcmlnaW4ueSgpKSk7Ci0gICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIHNldFdpZHRoKHBhaW50QWR2YW5jZSwgd2lkdGgo
cGFpbnRBZHZhbmNlKSArIGdseXBoT3JpZ2luKGdseXBoSW5kZXhJbnRvQ29tcGxleFRleHRDb250
cm9sbGVyICsgMSkueCgpIC0gY3VycmVudEdseXBoT3JpZ2luLngoKSk7CiAgICAgICAgICAgICAg
ICAgc2V0SGVpZ2h0KHBhaW50QWR2YW5jZSwgaGVpZ2h0KHBhaW50QWR2YW5jZSkgKyBnbHlwaE9y
aWdpbihnbHlwaEluZGV4SW50b0NvbXBsZXhUZXh0Q29udHJvbGxlciArIDEpLnkoKSAtIGN1cnJl
bnRHbHlwaE9yaWdpbi55KCkpOwotICAgICAgICAgICAgICAgIGlmIChnbHlwaEluZGV4SW50b0N1
cnJlbnRSdW4gPT0gZ2x5cGhDb3VudCAtIDEgJiYgY3VycmVudFJ1bkluZGV4ICsgMSA8IHJ1bkNv
dW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIE91ciBwYWludCBhZHZhbmNlIHBvaW50cyB0
byB0aGUgZW5kIG9mIHRoZSBydW4uIEhvd2V2ZXIsIHRoZSBuZXh0IHJ1biBtYXkgaGF2ZSBhbgot
ICAgICAgICAgICAgICAgICAgICAvLyBpbml0aWFsIGFkdmFuY2UsIGFuZCBvdXIgcGFpbnQgYWR2
YW5jZSBuZWVkcyB0byBwb2ludCB0byB0aGUgbG9jYXRpb24gb2YgdGhlIG5leHQKLSAgICAgICAg
ICAgICAgICAgICAgLy8gZ2x5cGguIFNvLCB3ZSBuZWVkIHRvIGFkZCBpbiB0aGUgbmV4dCBydW4n
cyBpbml0aWFsIGFkdmFuY2UuCi0gICAgICAgICAgICAgICAgICAgIHNldFdpZHRoKHBhaW50QWR2
YW5jZSwgd2lkdGgocGFpbnRBZHZhbmNlKSAtIGdseXBoT3JpZ2luKGdseXBoSW5kZXhJbnRvQ29t
cGxleFRleHRDb250cm9sbGVyICsgMSkueCgpICsgbV9jb21wbGV4VGV4dFJ1bnNbY3VycmVudFJ1
bkluZGV4ICsgMV0tPmluaXRpYWxBZHZhbmNlKCkud2lkdGgoKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIHNldEhlaWdodChwYWludEFkdmFuY2UsIGhlaWdodChwYWludEFkdmFuY2UpIC0gZ2x5cGhP
cmlnaW4oZ2x5cGhJbmRleEludG9Db21wbGV4VGV4dENvbnRyb2xsZXIgKyAxKS55KCkgKyBtX2Nv
bXBsZXhUZXh0UnVuc1tjdXJyZW50UnVuSW5kZXggKyAxXS0+aW5pdGlhbEFkdmFuY2UoKS5oZWln
aHQoKSk7Ci0gICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHNldEhlaWdodChwYWlu
dEFkdmFuY2UsIC1oZWlnaHQocGFpbnRBZHZhbmNlKSk7IC8vIEluY3JlYXNpbmcgeSBwb2ludHMg
ZG93bgogICAgICAgICAgICAgICAgIGdseXBoQnVmZmVyLT5hZGQobV9hZGp1c3RlZEdseXBoc1tn
bHlwaEluZGV4SW50b0NvbXBsZXhUZXh0Q29udHJvbGxlcl0sIGNvbXBsZXhUZXh0UnVuLmZvbnQo
KSwgcGFpbnRBZHZhbmNlLCBjb21wbGV4VGV4dFJ1bi5pbmRleEF0KG1fZ2x5cGhJbkN1cnJlbnRS
dW4pKTsKICAgICAgICAgICAgIH0KQEAgLTY4NSw2ICs2NzIsNyBAQCB2b2lkIENvbXBsZXhUZXh0
Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhzQW5kQWR2YW5jZXMoKQogICAgIGZvciAoc2l6ZV90IHJ1
bkluZGV4ID0gMDsgcnVuSW5kZXggPCBydW5Db3VudDsgKytydW5JbmRleCkgewogICAgICAgICBD
b21wbGV4VGV4dFJ1biYgY29tcGxleFRleHRSdW4gPSAqbV9jb21wbGV4VGV4dFJ1bnNbcnVuSW5k
ZXhdOwogICAgICAgICB1bnNpZ25lZCBnbHlwaENvdW50ID0gY29tcGxleFRleHRSdW4uZ2x5cGhD
b3VudCgpOworICAgICAgICBBU1NFUlQoZ2x5cGhDb3VudCk7CiAgICAgICAgIGNvbnN0IEZvbnQm
IGZvbnQgPSBjb21wbGV4VGV4dFJ1bi5mb250KCk7CiAKICAgICAgICAgaWYgKCFjb21wbGV4VGV4
dFJ1bi5pc0xUUigpKQpAQCAtNzIyLDkgKzcxMCw5IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9s
bGVyOjphZGp1c3RHbHlwaHNBbmRBZHZhbmNlcygpCiAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgIGlmICghaSkgewotICAgICAgICAgICAgICAgIGFkdmFuY2UuZXhwYW5kKGNvbXBsZXhUZXh0
UnVuLmluaXRpYWxBZHZhbmNlKCkud2lkdGgoKSwgY29tcGxleFRleHRSdW4uaW5pdGlhbEFkdmFu
Y2UoKS5oZWlnaHQoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8qIG9yaWdpbnMgPSBjb21w
bGV4VGV4dFJ1bi5nbHlwaE9yaWdpbnMoKSkKLSAgICAgICAgICAgICAgICAgICAgYWR2YW5jZS5l
eHBhbmQoLW9yaWdpbnNbMF0ueCgpLCAtb3JpZ2luc1swXS55KCkpOworICAgICAgICAgICAgICAg
IGlmICghbV9hZGp1c3RlZEJhc2VBZHZhbmNlcy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAg
ICAgIG1fYWRqdXN0ZWRCYXNlQWR2YW5jZXMubGFzdCgpICs9IGNvbXBsZXhUZXh0UnVuLmluaXRp
YWxBZHZhbmNlKCk7CisgICAgICAgICAgICAgICAgbV90b3RhbEFkdmFuY2UgKz0gY29tcGxleFRl
eHRSdW4uaW5pdGlhbEFkdmFuY2UoKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgYWR2
YW5jZS5leHBhbmQoZm9udC5zeW50aGV0aWNCb2xkT2Zmc2V0KCksIDApOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIu
aAppbmRleCBhMWQ2ZTM2YWRjNDY4NTEzM2E1MDE0YmRmZGZlYzIyMDk3NGI0NWY3Li4xNTFiNzVk
Y2JiZGRmZjg2OTdhYzBiNDczZDRkNTY0NjZhODgyYjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaApAQCAt
MTA4LDEzICsxMDgsMTMgQEAgcHVibGljOgogICAgICAgICAvKgogICAgICAgICAgKiBUaGlzIGlz
IHRoZSBmb3JtYXQgb2YgdGhlIGluZm9ybWF0aW9uIENvcmVUZXh0IGdpdmVzIHVzIGFib3V0IGVh
Y2ggcnVuOgogICAgICAgICAgKgotICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAtLS0tLT5YIChQYWludCBnbHlwaCBwb3NpdGlvbikgICBYIChQYWludCBn
bHlwaCBwb3NpdGlvbikgICBYIChQYWludCBnbHlwaCBwb3NpdGlvbikKLSAgICAgICAgICogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgICA3ICAgICAgICAgICAgICAg
ICAgICAgICAgICA3ICAgICAgICAgICAgICAgICAgICAgICAgICA3Ci0gICAgICAgICAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgICAvICAgICAgICAgICAgICAgICAg
ICAgICAgICAvICAgICAgICAgICAgICAgICAgICAgICAgICAvCi0gICAgICAgICAqICAgICAgICAg
ICAgICAgICAgIChJbml0aWFsIGFkdmFuY2UpIC8gICAgIC8gKEdseXBoIG9yaWdpbikgICAgICAg
ICAgIC8gKEdseXBoIG9yaWdpbikgICAgICAgICAgIC8gKEdseXBoIG9yaWdpbikKLSAgICAgICAg
ICogICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tICAgICAvICAgICAgICAgICAg
ICAgICAgICAgICAgICAvICAgICAgICAgICAgICAgICAgICAgICAgICAvCi0gICAgICAgICAqICAg
ICAgICAgICAgICAgICAvICAgICAgICAgICAgICAgICAgICAgICAvICAgICAgICAgICAgICAgICAg
ICAgICAgICAvICAgICAgICAgICAgICAgICAgICAgICAgICAvCi0gICAgICAgICAqICAgICAgICAg
ICAgICAgIFggICAgICAgICAgICAgICAgICAgICAgIFgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LVgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVgK
KyAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
WCAoUGFpbnQgZ2x5cGggcG9zaXRpb24pICAgWCAoUGFpbnQgZ2x5cGggcG9zaXRpb24pICAgWCAo
UGFpbnQgZ2x5cGggcG9zaXRpb24pCisgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNyAgICAgICAgICAgICAgICAgICAgICAgICAgNyAgICAgICAg
ICAgICAgICAgICAgICAgICAgNworICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAg
ICAgICAgICAgICAgICAgLworICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvIChHbHlwaCBvcmlnaW4pICAgICAgICAgICAvIChHbHlwaCBvcmlnaW4p
ICAgICAgICAgICAvIChHbHlwaCBvcmlnaW4pCisgICAgICAgICAqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICAg
ICAgICAgICAgICAgICAgICAgICAgLworICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgKElu
aXRpYWwgYWR2YW5jZSkgICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAg
ICAgICAgICAgICAgICAgLworICAgICAgICAgKiAgICAgICAgICAgICAgICBYLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLT5YLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5YLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLT5YLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5YCiAgICAgICAgICAqICh0ZXh0IHBv
c2l0aW9uIF4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFzZSBhZHZhbmNlKSAgICAg
ICAgICAgICAoYmFzZSBhZHZhbmNlKSAgICAgICAgICAgICAoYmFzZSBhZHZhbmNlKQogICAgICAg
ICAgKgogICAgICAgICAgKgpAQCAtMTI5LDcgKzEyOSw3IEBAIHB1YmxpYzoKICAgICAgICAgICog
ICAgICAgICAgICAgICAgICAgKEluaXRpYWwgYWR2YW5jZSkgLyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAoUGFpbnQgYWR2
YW5jZSkKICAgICAgICAgICogICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC0tLS0tLS0tLS0tLS0tLS0KICAgICAgICAgICogICAgICAgICAgICAgICAgIC8gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAqICAg
ICAgICAgICAgICAgIFgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLVgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVgtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLVgKKyAgICAgICAgICogICAgICAgICAgICAgICAgWC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+WC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+WC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+WAogICAgICAgICAgKiAodGV4dCBwb3NpdGlvbiBeKSAg
ICAgICAgICAgICAgICAobGF5b3V0IGFkdmFuY2UpICAgICAgICAgICAgICAgICAgICAgICAobGF5
b3V0IGFkdmFuY2UpICAgICAgICAgICAobGF5b3V0IGFkdmFuY2UpCiAgICAgICAgICAqLwogICAg
ICAgICB2b2lkIGdyb3dJbml0aWFsQWR2YW5jZUhvcml6b250YWxseShmbG9hdCBkZWx0YSkgeyBt
X2luaXRpYWxBZHZhbmNlLmV4cGFuZChkZWx0YSwgMCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5oCmluZGV4IGFmZDhiYTI0ZmMxY2RlN2NkYTk2
YzcyZTVkNmIzOTBhY2JmNTYyM2EuLjBhM2ZhODQ1MzgyYzhmMWI3MDUwNTNhZDkzNGU1Y2YyZWUx
YWNiMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBo
QnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhCdWZm
ZXIuaApAQCAtMTczLDIzICsxNzMsMzAgQEAgcHVibGljOgogICAgIC8vIGFuZCB6ZXJvcy1vdXQg
dGhlIG9yaWdpbnMgaW4gdGhlICJtX29yaWdpbnMiIGZpZWxkLgogICAgIHZvaWQgZmxhdHRlbigp
CiAgICAgeworICAgICAgICBBU1NFUlQoc2l6ZSgpIHx8ICghd2lkdGgobV9pbml0aWFsQWR2YW5j
ZSkgJiYgIWhlaWdodChtX2luaXRpYWxBZHZhbmNlKSkpOworICAgICAgICBpZiAoc2l6ZSgpKSB7
CisgICAgICAgICAgICBtX2luaXRpYWxBZHZhbmNlID0gbWFrZUdseXBoQnVmZmVyQWR2YW5jZSgK
KyAgICAgICAgICAgICAgICB3aWR0aChtX2luaXRpYWxBZHZhbmNlKSArIHgobV9vcmlnaW5zWzBd
KSwKKyAgICAgICAgICAgICAgICBoZWlnaHQobV9pbml0aWFsQWR2YW5jZSkgKyB5KG1fb3JpZ2lu
c1swXSkpOworICAgICAgICB9CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXpl
KCk7ICsraSkgewogICAgICAgICAgICAgbV9hZHZhbmNlc1tpXSA9IG1ha2VHbHlwaEJ1ZmZlckFk
dmFuY2UoCiAgICAgICAgICAgICAgICAgLXgobV9vcmlnaW5zW2ldKSArIHdpZHRoKG1fYWR2YW5j
ZXNbaV0pICsgKGkgKyAxIDwgc2l6ZSgpID8geChtX29yaWdpbnNbaSArIDFdKSA6IDApLAotICAg
ICAgICAgICAgICAgIC15KG1fb3JpZ2luc1tpXSkgKyBoZWlnaHQobV9hZHZhbmNlc1tpXSkgKyAo
aSArIDEgPCBzaXplKCkgPyB5KG1fb3JpZ2luc1tpICsgMV0pIDogMCkKLSAgICAgICAgICAgICk7
CisgICAgICAgICAgICAgICAgLXkobV9vcmlnaW5zW2ldKSArIGhlaWdodChtX2FkdmFuY2VzW2ld
KSArIChpICsgMSA8IHNpemUoKSA/IHkobV9vcmlnaW5zW2kgKyAxXSkgOiAwKSk7CiAgICAgICAg
ICAgICBtX29yaWdpbnNbaV0gPSBtYWtlR2x5cGhCdWZmZXJPcmlnaW4oKTsKICAgICAgICAgfQog
ICAgIH0KIAorI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgYm9vbCBpc0ZsYXR0ZW5lZCgpIGNvbnN0
CiAgICAgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZSgpOyArK2kpIHsK
LSAgICAgICAgICAgIGlmIChtX29yaWdpbnNbaV0gIT0gbWFrZUdseXBoQnVmZmVyT3JpZ2luKCkp
CisgICAgICAgICAgICBpZiAoeChtX29yaWdpbnNbaV0pIHx8IHkobV9vcmlnaW5zW2ldKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQorI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgdm9pZCBzd2FwKHVuc2lnbmVkIGlu
ZGV4MSwgdW5zaWduZWQgaW5kZXgyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434031</attachid>
            <date>2021-07-22 13:37:47 -0700</date>
            <delta_ts>2021-08-04 23:39:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228180-20210722133746.patch</filename>
            <type>text/plain</type>
            <size>21294</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzAxZTEwMmU2ZDc0MDRk
ZGIyZmUwZTI2MzZmOTE1YzliN2U2MmUyNi4uNjQyYTY4YzkzZGNmMGZkY2ZmM2I3MjQ1YzdmMWE2
Mjc3MjExYWJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA3LTIyICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBD
b21wbGV4VGV4dENvbnRyb2xsZXIncyBub3Rpb24gb2YgZ2x5cGggcnVuIGluaXRpYWwgYWR2YW5j
ZSBpcyB3cm9uZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI4MTgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9D
b21wbGV4VGV4dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRD
b250cm9sbGVyOjphZHZhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJv
bGxlcjo6YWRqdXN0R2x5cGhzQW5kQWR2YW5jZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dseXBoQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaEJ1ZmZlcjo6ZmxhdHRlbik6
CisgICAgICAgIChXZWJDb3JlOjpHbHlwaEJ1ZmZlcjo6aXNGbGF0dGVuZWQgY29uc3QpOgorCiAy
MDIxLTA3LTAxICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIE1pc3NpbmcgbGF5b3V0cyB3aGVuIHVzaW5nIHNpbXBsaWZpZWQgbGF5b3V0IHdpdGgg
T09GIHBvc2l0aW9uZWQgZWxlbWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvV2ViQ29yZS54Y3NjaGVtZSBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvV2Vi
Q29yZS54Y3NjaGVtZQppbmRleCAxNTgyZTFhM2M1NmRmOWU3ODIwMGQ5OWE5OTg2ODA1OTFiNGNk
ZjBiLi5hMDVjMjYyOWE0ZjI1ZDgzNDVmMWRiNTA4OTMzZGJhMDZkYjY0MTk2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVz
L1dlYkNvcmUueGNzY2hlbWUKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
eGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJDb3JlLnhjc2NoZW1lCkBAIC00MCw2ICs0MCwyMyBA
QAogICAgICAgZGVidWdEb2N1bWVudFZlcnNpb25pbmcgPSAiWUVTIgogICAgICAgZGVidWdTZXJ2
aWNlRXh0ZW5zaW9uID0gImludGVybmFsIgogICAgICAgYWxsb3dMb2NhdGlvblNpbXVsYXRpb24g
PSAiWUVTIj4KKyAgICAgIDxQYXRoUnVubmFibGUKKyAgICAgICAgIHJ1bm5hYmxlRGVidWdnaW5n
TW9kZSA9ICIwIgorICAgICAgICAgQnVuZGxlSWRlbnRpZmllciA9ICJvcmcud2Via2l0Lk1pbmlC
cm93c2VyIgorICAgICAgICAgRmlsZVBhdGggPSAiL1VzZXJzL21tYXhmaWVsZC9CdWlsZC9Qcm9k
dWN0cy9EZWJ1Zy9NaW5pQnJvd3Nlci5hcHAiPgorICAgICAgPC9QYXRoUnVubmFibGU+CisgICAg
ICA8RW52aXJvbm1lbnRWYXJpYWJsZXM+CisgICAgICAgICA8RW52aXJvbm1lbnRWYXJpYWJsZQor
ICAgICAgICAgICAga2V5ID0gIk1hbGxvYyIKKyAgICAgICAgICAgIHZhbHVlID0gIjEiCisgICAg
ICAgICAgICBpc0VuYWJsZWQgPSAiWUVTIj4KKyAgICAgICAgIDwvRW52aXJvbm1lbnRWYXJpYWJs
ZT4KKyAgICAgICAgIDxFbnZpcm9ubWVudFZhcmlhYmxlCisgICAgICAgICAgICBrZXkgPSAiX19Y
UENfTWFsbG9jIgorICAgICAgICAgICAgdmFsdWUgPSAiMSIKKyAgICAgICAgICAgIGlzRW5hYmxl
ZCA9ICJZRVMiPgorICAgICAgICAgPC9FbnZpcm9ubWVudFZhcmlhYmxlPgorICAgICAgPC9FbnZp
cm9ubWVudFZhcmlhYmxlcz4KICAgIDwvTGF1bmNoQWN0aW9uPgogICAgPFByb2ZpbGVBY3Rpb24K
ICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxlYXNlIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAK
aW5kZXggNDQ5MzJkZWZjZDk4NjNlNjBmMjBjYTlkMTc2MmE3OTY1MzBiMWZiOC4uZTU3MzcwYjNh
MzhkMTcyZDBkNDJmYWE2NjM2YjA2MDFlNTViNGZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCkBA
IC0xNzUsNyArMTc1LDcgQEAgdW5zaWduZWQgQ29tcGxleFRleHRDb250cm9sbGVyOjpvZmZzZXRG
b3JQb3NpdGlvbihmbG9hdCBoLCBib29sIGluY2x1ZGVQYXJ0aWFsR2wKICAgICBpZiAoaCA8IDAp
CiAgICAgICAgIHJldHVybiBtX3J1bi5sdHIoKSA/IDAgOiBtX2VuZDsKIAotICAgIGZsb2F0IHgg
PSBoOworICAgIGZsb2F0IHggPSBoIC0gbV9jb21wbGV4VGV4dFJ1bnNbMF0tPmluaXRpYWxBZHZh
bmNlKCkud2lkdGgoKTsKIAogICAgIHNpemVfdCBydW5Db3VudCA9IG1fY29tcGxleFRleHRSdW5z
LnNpemUoKTsKICAgICB1bnNpZ25lZCBvZmZzZXRJbnRvQWRqdXN0ZWRHbHlwaHMgPSAwOwpAQCAt
NTgzLDcgKzU4Myw3IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjphZHZhbmNlKHVuc2ln
bmVkIG9mZnNldCwgR2x5cGhCdWZmZXIqIGdseXBoQnVmZmVyLCBHCiAgICAgICAgIC8vIFdoZW4g
bGVmdG1vc3RHbHlwaCBpcyAwLCBpdCByZXByZXNlbnRzIHRoZSBmaXJzdCBnbHlwaCB0byBkcmF3
LCB0YWtpbmcgaW50bwogICAgICAgICAvLyBhY2NvdW50IHRoZSB0ZXh0IGRpcmVjdGlvbi4KICAg
ICAgICAgaWYgKCFpbmRleE9mTGVmdG1vc3RHbHlwaEluQ3VycmVudFJ1biAmJiBnbHlwaEJ1ZmZl
cikKLSAgICAgICAgICAgIGdseXBoQnVmZmVyLT5zZXRJbml0aWFsQWR2YW5jZShtYWtlR2x5cGhC
dWZmZXJBZHZhbmNlKGNvbXBsZXhUZXh0UnVuLmluaXRpYWxBZHZhbmNlKCkpKTsKKyAgICAgICAg
ICAgIGdseXBoQnVmZmVyLT5zZXRJbml0aWFsQWR2YW5jZShtYWtlR2x5cGhCdWZmZXJBZHZhbmNl
KGdseXBoT3JpZ2luKDApICsgY29tcGxleFRleHRSdW4uaW5pdGlhbEFkdmFuY2UoKSAtIEZsb2F0
UG9pbnQoKSkpOwogCiAgICAgICAgIHdoaWxlIChtX2dseXBoSW5DdXJyZW50UnVuIDwgZ2x5cGhD
b3VudCkgewogICAgICAgICAgICAgdW5zaWduZWQgZ2x5cGhTdGFydE9mZnNldCA9IGNvbXBsZXhU
ZXh0UnVuLmluZGV4QXQoZ2x5cGhJbmRleEludG9DdXJyZW50UnVuKTsKQEAgLTYwNCwyMSArNjA0
LDggQEAgdm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OmFkdmFuY2UodW5zaWduZWQgb2Zmc2V0
LCBHbHlwaEJ1ZmZlciogZ2x5cGhCdWZmZXIsIEcKICAgICAgICAgICAgIGlmIChnbHlwaEJ1ZmZl
ciAmJiAhbV9jaGFyYWN0ZXJJbkN1cnJlbnRHbHlwaCkgewogICAgICAgICAgICAgICAgIGF1dG8g
Y3VycmVudEdseXBoT3JpZ2luID0gZ2x5cGhPcmlnaW4oZ2x5cGhJbmRleEludG9Db21wbGV4VGV4
dENvbnRyb2xsZXIpOwogICAgICAgICAgICAgICAgIEdseXBoQnVmZmVyQWR2YW5jZSBwYWludEFk
dmFuY2UgPSBtYWtlR2x5cGhCdWZmZXJBZHZhbmNlKGFkanVzdGVkQmFzZUFkdmFuY2UpOwotICAg
ICAgICAgICAgICAgIGlmICghZ2x5cGhJbmRleEludG9DdXJyZW50UnVuKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIC8vIFRoZSBmaXJzdCBsYXlvdXQgYWR2YW5jZSBvZiBldmVyeSBydW4gaW5jbHVk
ZXMgdGhlICJpbml0aWFsIGxheW91dCBhZHZhbmNlLiIgSG93ZXZlciwgaGVyZSwgd2UgbmVlZAot
ICAgICAgICAgICAgICAgICAgICAvLyBwYWludCBhZHZhbmNlcywgc28gc3VidHJhY3QgaXQgb3V0
IGJlZm9yZSB0cmFuc2Zvcm1pbmcgdGhlIGxheW91dCBhZHZhbmNlIGludG8gYSBwYWludCBhZHZh
bmNlLgotICAgICAgICAgICAgICAgICAgICBzZXRXaWR0aChwYWludEFkdmFuY2UsIHdpZHRoKHBh
aW50QWR2YW5jZSkgLSAoY29tcGxleFRleHRSdW4uaW5pdGlhbEFkdmFuY2UoKS53aWR0aCgpIC0g
Y3VycmVudEdseXBoT3JpZ2luLngoKSkpOwotICAgICAgICAgICAgICAgICAgICBzZXRIZWlnaHQo
cGFpbnRBZHZhbmNlLCBoZWlnaHQocGFpbnRBZHZhbmNlKSAtIChjb21wbGV4VGV4dFJ1bi5pbml0
aWFsQWR2YW5jZSgpLmhlaWdodCgpIC0gY3VycmVudEdseXBoT3JpZ2luLnkoKSkpOwotICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBzZXRXaWR0aChwYWludEFkdmFuY2UsIHdpZHRo
KHBhaW50QWR2YW5jZSkgKyBnbHlwaE9yaWdpbihnbHlwaEluZGV4SW50b0NvbXBsZXhUZXh0Q29u
dHJvbGxlciArIDEpLngoKSAtIGN1cnJlbnRHbHlwaE9yaWdpbi54KCkpOwogICAgICAgICAgICAg
ICAgIHNldEhlaWdodChwYWludEFkdmFuY2UsIGhlaWdodChwYWludEFkdmFuY2UpICsgZ2x5cGhP
cmlnaW4oZ2x5cGhJbmRleEludG9Db21wbGV4VGV4dENvbnRyb2xsZXIgKyAxKS55KCkgLSBjdXJy
ZW50R2x5cGhPcmlnaW4ueSgpKTsKLSAgICAgICAgICAgICAgICBpZiAoZ2x5cGhJbmRleEludG9D
dXJyZW50UnVuID09IGdseXBoQ291bnQgLSAxICYmIGN1cnJlbnRSdW5JbmRleCArIDEgPCBydW5D
b3VudCkgewotICAgICAgICAgICAgICAgICAgICAvLyBPdXIgcGFpbnQgYWR2YW5jZSBwb2ludHMg
dG8gdGhlIGVuZCBvZiB0aGUgcnVuLiBIb3dldmVyLCB0aGUgbmV4dCBydW4gbWF5IGhhdmUgYW4K
LSAgICAgICAgICAgICAgICAgICAgLy8gaW5pdGlhbCBhZHZhbmNlLCBhbmQgb3VyIHBhaW50IGFk
dmFuY2UgbmVlZHMgdG8gcG9pbnQgdG8gdGhlIGxvY2F0aW9uIG9mIHRoZSBuZXh0Ci0gICAgICAg
ICAgICAgICAgICAgIC8vIGdseXBoLiBTbywgd2UgbmVlZCB0byBhZGQgaW4gdGhlIG5leHQgcnVu
J3MgaW5pdGlhbCBhZHZhbmNlLgotICAgICAgICAgICAgICAgICAgICBzZXRXaWR0aChwYWludEFk
dmFuY2UsIHdpZHRoKHBhaW50QWR2YW5jZSkgLSBnbHlwaE9yaWdpbihnbHlwaEluZGV4SW50b0Nv
bXBsZXhUZXh0Q29udHJvbGxlciArIDEpLngoKSArIG1fY29tcGxleFRleHRSdW5zW2N1cnJlbnRS
dW5JbmRleCArIDFdLT5pbml0aWFsQWR2YW5jZSgpLndpZHRoKCkpOwotICAgICAgICAgICAgICAg
ICAgICBzZXRIZWlnaHQocGFpbnRBZHZhbmNlLCBoZWlnaHQocGFpbnRBZHZhbmNlKSAtIGdseXBo
T3JpZ2luKGdseXBoSW5kZXhJbnRvQ29tcGxleFRleHRDb250cm9sbGVyICsgMSkueSgpICsgbV9j
b21wbGV4VGV4dFJ1bnNbY3VycmVudFJ1bkluZGV4ICsgMV0tPmluaXRpYWxBZHZhbmNlKCkuaGVp
Z2h0KCkpOwotICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBzZXRIZWlnaHQocGFp
bnRBZHZhbmNlLCAtaGVpZ2h0KHBhaW50QWR2YW5jZSkpOyAvLyBJbmNyZWFzaW5nIHkgcG9pbnRz
IGRvd24KICAgICAgICAgICAgICAgICBnbHlwaEJ1ZmZlci0+YWRkKG1fYWRqdXN0ZWRHbHlwaHNb
Z2x5cGhJbmRleEludG9Db21wbGV4VGV4dENvbnRyb2xsZXJdLCBjb21wbGV4VGV4dFJ1bi5mb250
KCksIHBhaW50QWR2YW5jZSwgY29tcGxleFRleHRSdW4uaW5kZXhBdChtX2dseXBoSW5DdXJyZW50
UnVuKSk7CiAgICAgICAgICAgICB9CkBAIC02MjYsNiArNjEzLDggQEAgdm9pZCBDb21wbGV4VGV4
dENvbnRyb2xsZXI6OmFkdmFuY2UodW5zaWduZWQgb2Zmc2V0LCBHbHlwaEJ1ZmZlciogZ2x5cGhC
dWZmZXIsIEcKICAgICAgICAgICAgIHVuc2lnbmVkIG9sZENoYXJhY3RlckluQ3VycmVudEdseXBo
ID0gbV9jaGFyYWN0ZXJJbkN1cnJlbnRHbHlwaDsKICAgICAgICAgICAgIG1fY2hhcmFjdGVySW5D
dXJyZW50R2x5cGggPSBzdGQ6Om1pbihtX2N1cnJlbnRDaGFyYWN0ZXIgLSBjb21wbGV4VGV4dFJ1
bi5zdHJpbmdMb2NhdGlvbigpLCBnbHlwaEVuZE9mZnNldCkgLSBnbHlwaFN0YXJ0T2Zmc2V0Owog
ICAgICAgICAgICAgbV9ydW5XaWR0aFNvRmFyICs9IGFkanVzdGVkQmFzZUFkdmFuY2Uud2lkdGgo
KSAqIHJ1bldpZHRoU29GYXJGcmFjdGlvbihnbHlwaFN0YXJ0T2Zmc2V0LCBnbHlwaEVuZE9mZnNl
dCwgb2xkQ2hhcmFjdGVySW5DdXJyZW50R2x5cGgsIGl0ZXJhdGlvblN0eWxlKTsKKyAgICAgICAg
ICAgIGlmICghY3VycmVudFJ1bkluZGV4ICYmICFnbHlwaEluZGV4SW50b0N1cnJlbnRSdW4pCisg
ICAgICAgICAgICAgICAgbV9ydW5XaWR0aFNvRmFyICs9IGNvbXBsZXhUZXh0UnVuLmluaXRpYWxB
ZHZhbmNlKCkud2lkdGgoKTsKIAogICAgICAgICAgICAgaWYgKGdseXBoRW5kT2Zmc2V0ICsgY29t
cGxleFRleHRSdW4uc3RyaW5nTG9jYXRpb24oKSA+IG1fY3VycmVudENoYXJhY3RlcikKICAgICAg
ICAgICAgICAgICByZXR1cm47CkBAIC02ODUsNiArNjc0LDcgQEAgdm9pZCBDb21wbGV4VGV4dENv
bnRyb2xsZXI6OmFkanVzdEdseXBoc0FuZEFkdmFuY2VzKCkKICAgICBmb3IgKHNpemVfdCBydW5J
bmRleCA9IDA7IHJ1bkluZGV4IDwgcnVuQ291bnQ7ICsrcnVuSW5kZXgpIHsKICAgICAgICAgQ29t
cGxleFRleHRSdW4mIGNvbXBsZXhUZXh0UnVuID0gKm1fY29tcGxleFRleHRSdW5zW3J1bkluZGV4
XTsKICAgICAgICAgdW5zaWduZWQgZ2x5cGhDb3VudCA9IGNvbXBsZXhUZXh0UnVuLmdseXBoQ291
bnQoKTsKKyAgICAgICAgQVNTRVJUKGdseXBoQ291bnQpOwogICAgICAgICBjb25zdCBGb250JiBm
b250ID0gY29tcGxleFRleHRSdW4uZm9udCgpOwogCiAgICAgICAgIGlmICghY29tcGxleFRleHRS
dW4uaXNMVFIoKSkKQEAgLTcyMiw5ICs3MTIsOSBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxl
cjo6YWRqdXN0R2x5cGhzQW5kQWR2YW5jZXMoKQogICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICBpZiAoIWkpIHsKLSAgICAgICAgICAgICAgICBhZHZhbmNlLmV4cGFuZChjb21wbGV4VGV4dFJ1
bi5pbml0aWFsQWR2YW5jZSgpLndpZHRoKCksIGNvbXBsZXhUZXh0UnVuLmluaXRpYWxBZHZhbmNl
KCkuaGVpZ2h0KCkpOwotICAgICAgICAgICAgICAgIGlmIChhdXRvKiBvcmlnaW5zID0gY29tcGxl
eFRleHRSdW4uZ2x5cGhPcmlnaW5zKCkpCi0gICAgICAgICAgICAgICAgICAgIGFkdmFuY2UuZXhw
YW5kKC1vcmlnaW5zWzBdLngoKSwgLW9yaWdpbnNbMF0ueSgpKTsKKyAgICAgICAgICAgICAgICBp
ZiAoIW1fYWRqdXN0ZWRCYXNlQWR2YW5jZXMuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAg
ICBtX2FkanVzdGVkQmFzZUFkdmFuY2VzLmxhc3QoKSArPSBjb21wbGV4VGV4dFJ1bi5pbml0aWFs
QWR2YW5jZSgpOworICAgICAgICAgICAgICAgIG1fdG90YWxBZHZhbmNlICs9IGNvbXBsZXhUZXh0
UnVuLmluaXRpYWxBZHZhbmNlKCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGFkdmFu
Y2UuZXhwYW5kKGZvbnQuc3ludGhldGljQm9sZE9mZnNldCgpLCAwKTsKQEAgLTc2MSwxMyArNzUx
LDExIEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRBZHZhbmNl
cygpCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhwYW5kTGVmdCkgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fZXhwYW5zaW9uIC09IG1fZXhwYW5zaW9uUGVyT3Bwb3J0dW5p
dHk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5jcmVhc2UgcHJldmlvdXMgd2lk
dGgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9hZGp1c3RlZEJhc2VBZHZhbmNl
cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWR2YW5jZS5l
eHBhbmQobV9leHBhbnNpb25QZXJPcHBvcnR1bml0eSwgMCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKG1fYWRqdXN0ZWRCYXNlQWR2YW5jZXMuaXNFbXB0eSgpKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV4VGV4dFJ1bi5ncm93SW5pdGlhbEFkdmFuY2VI
b3Jpem9udGFsbHkobV9leHBhbnNpb25QZXJPcHBvcnR1bml0eSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fYWRqdXN0ZWRCYXNlQWR2YW5jZXMubGFz
dCgpLmV4cGFuZChtX2V4cGFuc2lvblBlck9wcG9ydHVuaXR5LCAwKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV90b3RhbEFkdmFuY2UuZXhwYW5kKG1fZXhwYW5zaW9uUGVyT3Bw
b3J0dW5pdHksIDApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX3RvdGFsQWR2YW5jZS5leHBhbmQobV9leHBhbnNpb25QZXJPcHBv
cnR1bml0eSwgMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoZXhwYW5kUmlnaHQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
X2V4cGFuc2lvbiAtPSBtX2V4cGFuc2lvblBlck9wcG9ydHVuaXR5OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaApp
bmRleCBhMWQ2ZTM2YWRjNDY4NTEzM2E1MDE0YmRmZGZlYzIyMDk3NGI0NWY3Li4xNTFiNzVkY2Ji
ZGRmZjg2OTdhYzBiNDczZDRkNTY0NjZhODgyYjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaApAQCAtMTA4
LDEzICsxMDgsMTMgQEAgcHVibGljOgogICAgICAgICAvKgogICAgICAgICAgKiBUaGlzIGlzIHRo
ZSBmb3JtYXQgb2YgdGhlIGluZm9ybWF0aW9uIENvcmVUZXh0IGdpdmVzIHVzIGFib3V0IGVhY2gg
cnVuOgogICAgICAgICAgKgotICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAtLS0tLT5YIChQYWludCBnbHlwaCBwb3NpdGlvbikgICBYIChQYWludCBnbHlw
aCBwb3NpdGlvbikgICBYIChQYWludCBnbHlwaCBwb3NpdGlvbikKLSAgICAgICAgICogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgICA3ICAgICAgICAgICAgICAgICAg
ICAgICAgICA3ICAgICAgICAgICAgICAgICAgICAgICAgICA3Ci0gICAgICAgICAqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgICAvICAgICAgICAgICAgICAgICAgICAg
ICAgICAvICAgICAgICAgICAgICAgICAgICAgICAgICAvCi0gICAgICAgICAqICAgICAgICAgICAg
ICAgICAgIChJbml0aWFsIGFkdmFuY2UpIC8gICAgIC8gKEdseXBoIG9yaWdpbikgICAgICAgICAg
IC8gKEdseXBoIG9yaWdpbikgICAgICAgICAgIC8gKEdseXBoIG9yaWdpbikKLSAgICAgICAgICog
ICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tICAgICAvICAgICAgICAgICAgICAg
ICAgICAgICAgICAvICAgICAgICAgICAgICAgICAgICAgICAgICAvCi0gICAgICAgICAqICAgICAg
ICAgICAgICAgICAvICAgICAgICAgICAgICAgICAgICAgICAvICAgICAgICAgICAgICAgICAgICAg
ICAgICAvICAgICAgICAgICAgICAgICAgICAgICAgICAvCi0gICAgICAgICAqICAgICAgICAgICAg
ICAgIFggICAgICAgICAgICAgICAgICAgICAgIFgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVgt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVgKKyAg
ICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWCAo
UGFpbnQgZ2x5cGggcG9zaXRpb24pICAgWCAoUGFpbnQgZ2x5cGggcG9zaXRpb24pICAgWCAoUGFp
bnQgZ2x5cGggcG9zaXRpb24pCisgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNyAgICAgICAgICAgICAgICAgICAgICAgICAgNyAgICAgICAgICAg
ICAgICAgICAgICAgICAgNworICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAgICAg
ICAgICAgICAgICAgLworICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvIChHbHlwaCBvcmlnaW4pICAgICAgICAgICAvIChHbHlwaCBvcmlnaW4pICAg
ICAgICAgICAvIChHbHlwaCBvcmlnaW4pCisgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICAgICAg
ICAgICAgICAgICAgICAgICAgLworICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgKEluaXRp
YWwgYWR2YW5jZSkgICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAgICAg
ICAgICAgICAgICAgLworICAgICAgICAgKiAgICAgICAgICAgICAgICBYLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLT5YLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5YLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLT5YLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5YCiAgICAgICAgICAqICh0ZXh0IHBvc2l0
aW9uIF4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFzZSBhZHZhbmNlKSAgICAgICAg
ICAgICAoYmFzZSBhZHZhbmNlKSAgICAgICAgICAgICAoYmFzZSBhZHZhbmNlKQogICAgICAgICAg
KgogICAgICAgICAgKgpAQCAtMTI5LDcgKzEyOSw3IEBAIHB1YmxpYzoKICAgICAgICAgICogICAg
ICAgICAgICAgICAgICAgKEluaXRpYWwgYWR2YW5jZSkgLyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAoUGFpbnQgYWR2YW5j
ZSkKICAgICAgICAgICogICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC0tLS0tLS0tLS0tLS0tLS0KICAgICAgICAgICogICAgICAgICAgICAgICAgIC8gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAqICAgICAg
ICAgICAgICAgIFgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLVgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LVgKKyAgICAgICAgICogICAgICAgICAgICAgICAgWC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+WC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+WC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0+WAogICAgICAgICAgKiAodGV4dCBwb3NpdGlvbiBeKSAgICAg
ICAgICAgICAgICAobGF5b3V0IGFkdmFuY2UpICAgICAgICAgICAgICAgICAgICAgICAobGF5b3V0
IGFkdmFuY2UpICAgICAgICAgICAobGF5b3V0IGFkdmFuY2UpCiAgICAgICAgICAqLwogICAgICAg
ICB2b2lkIGdyb3dJbml0aWFsQWR2YW5jZUhvcml6b250YWxseShmbG9hdCBkZWx0YSkgeyBtX2lu
aXRpYWxBZHZhbmNlLmV4cGFuZChkZWx0YSwgMCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5oCmluZGV4IGFmZDhiYTI0ZmMxY2RlN2NkYTk2Yzcy
ZTVkNmIzOTBhY2JmNTYyM2EuLjBhM2ZhODQ1MzgyYzhmMWI3MDUwNTNhZDkzNGU1Y2YyZWUxYWNi
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVm
ZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIu
aApAQCAtMTczLDIzICsxNzMsMzAgQEAgcHVibGljOgogICAgIC8vIGFuZCB6ZXJvcy1vdXQgdGhl
IG9yaWdpbnMgaW4gdGhlICJtX29yaWdpbnMiIGZpZWxkLgogICAgIHZvaWQgZmxhdHRlbigpCiAg
ICAgeworICAgICAgICBBU1NFUlQoc2l6ZSgpIHx8ICghd2lkdGgobV9pbml0aWFsQWR2YW5jZSkg
JiYgIWhlaWdodChtX2luaXRpYWxBZHZhbmNlKSkpOworICAgICAgICBpZiAoc2l6ZSgpKSB7Cisg
ICAgICAgICAgICBtX2luaXRpYWxBZHZhbmNlID0gbWFrZUdseXBoQnVmZmVyQWR2YW5jZSgKKyAg
ICAgICAgICAgICAgICB3aWR0aChtX2luaXRpYWxBZHZhbmNlKSArIHgobV9vcmlnaW5zWzBdKSwK
KyAgICAgICAgICAgICAgICBoZWlnaHQobV9pbml0aWFsQWR2YW5jZSkgKyB5KG1fb3JpZ2luc1sw
XSkpOworICAgICAgICB9CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplKCk7
ICsraSkgewogICAgICAgICAgICAgbV9hZHZhbmNlc1tpXSA9IG1ha2VHbHlwaEJ1ZmZlckFkdmFu
Y2UoCiAgICAgICAgICAgICAgICAgLXgobV9vcmlnaW5zW2ldKSArIHdpZHRoKG1fYWR2YW5jZXNb
aV0pICsgKGkgKyAxIDwgc2l6ZSgpID8geChtX29yaWdpbnNbaSArIDFdKSA6IDApLAotICAgICAg
ICAgICAgICAgIC15KG1fb3JpZ2luc1tpXSkgKyBoZWlnaHQobV9hZHZhbmNlc1tpXSkgKyAoaSAr
IDEgPCBzaXplKCkgPyB5KG1fb3JpZ2luc1tpICsgMV0pIDogMCkKLSAgICAgICAgICAgICk7Cisg
ICAgICAgICAgICAgICAgLXkobV9vcmlnaW5zW2ldKSArIGhlaWdodChtX2FkdmFuY2VzW2ldKSAr
IChpICsgMSA8IHNpemUoKSA/IHkobV9vcmlnaW5zW2kgKyAxXSkgOiAwKSk7CiAgICAgICAgICAg
ICBtX29yaWdpbnNbaV0gPSBtYWtlR2x5cGhCdWZmZXJPcmlnaW4oKTsKICAgICAgICAgfQogICAg
IH0KIAorI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgYm9vbCBpc0ZsYXR0ZW5lZCgpIGNvbnN0CiAg
ICAgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZSgpOyArK2kpIHsKLSAg
ICAgICAgICAgIGlmIChtX29yaWdpbnNbaV0gIT0gbWFrZUdseXBoQnVmZmVyT3JpZ2luKCkpCisg
ICAgICAgICAgICBpZiAoeChtX29yaWdpbnNbaV0pIHx8IHkobV9vcmlnaW5zW2ldKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQorI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgdm9pZCBzd2FwKHVuc2lnbmVkIGluZGV4
MSwgdW5zaWduZWQgaW5kZXgyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbQppbmRleCAzNDNlYTY5NWJi
MzlkMDE5NDRkZDE2ODI3MDM3MmVhZDkyOGNmMDgxLi43YjBlOWQ4NjBjOTJmNWNjZGIyNDRhZThl
Yjk3MjMyZDlmNDI5OGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbQpAQCAtMjI4LDcgKzIyOCw3
IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNwZWVjaFN5bnRoZXNpc0dldERlZmF1
bHRWb2ljZUlkZW50aWZpZXJGb3JMb2NhbGUoCiAgICAgICAgIHJldHVybiBuaWw7CiAKICNpZiBI
QVZFKFNQRUVDSFNZTlRIRVNJU19NT05URVJFWV9TUEkpCi0gICAgcmV0dXJuIGFkb3B0Q0YoQ29w
eUlkZW50aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRWb2ljZUluTGlzdFdpdGhMb2NhbGUoc3BlZWNo
U3ludGhlc2lzR2V0Vm9pY2VJZGVudGlmaWVycygpLmdldCgpLCAoX19icmlkZ2UgQ0ZMb2NhbGVS
ZWYpdXNlckxvY2FsZSkpOworICAgIHJldHVybiBuaWw7IC8vYWRvcHRDRihDb3B5SWRlbnRpZmll
clN0cmluZ0ZvclByZWZlcnJlZFZvaWNlSW5MaXN0V2l0aExvY2FsZShzcGVlY2hTeW50aGVzaXNH
ZXRWb2ljZUlkZW50aWZpZXJzKCkuZ2V0KCksIChfX2JyaWRnZSBDRkxvY2FsZVJlZil1c2VyTG9j
YWxlKSk7CiAjZWxzZQogICAgIHJldHVybiBHZXRJZGVudGlmaWVyU3RyaW5nRm9yUHJlZmVycmVk
Vm9pY2VJbkxpc3RXaXRoTG9jYWxlKHNwZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMo
KS5nZXQoKSwgKF9fYnJpZGdlIENGTG9jYWxlUmVmKXVzZXJMb2NhbGUpOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3hjc2hh
cmVkZGF0YS94Y3NjaGVtZXMvVGVzdFdlYktpdEFQSS54Y3NjaGVtZSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9UZXN0
V2ViS2l0QVBJLnhjc2NoZW1lCmluZGV4IDVmNWVjMmU0YWVjMzllZGMzOWZjN2Y4NWM3ZDk2N2U1
YzQ5NDY5NGUuLmY2MTk2N2Y5ZTI0ZDQyMTBkZmZmY2FhZDVjNTZiNjc5ZWU5ZDc5NzYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2oveGNzaGFy
ZWRkYXRhL3hjc2NoZW1lcy9UZXN0V2ViS2l0QVBJLnhjc2NoZW1lCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9U
ZXN0V2ViS2l0QVBJLnhjc2NoZW1lCkBAIC01MCw2ICs1MCwxMiBAQAogICAgICAgICAgICAgUmVm
ZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6VGVzdFdlYktpdEFQSS54Y29kZXByb2oiPgog
ICAgICAgICAgPC9CdWlsZGFibGVSZWZlcmVuY2U+CiAgICAgICA8L0J1aWxkYWJsZVByb2R1Y3RS
dW5uYWJsZT4KKyAgICAgIDxDb21tYW5kTGluZUFyZ3VtZW50cz4KKyAgICAgICAgIDxDb21tYW5k
TGluZUFyZ3VtZW50CisgICAgICAgICAgICBhcmd1bWVudCA9ICItLWd0ZXN0X2ZpbHRlcj1Db21w
bGV4VGV4dENvbnRyb2xsZXJUZXN0LioiCisgICAgICAgICAgICBpc0VuYWJsZWQgPSAiWUVTIj4K
KyAgICAgICAgIDwvQ29tbWFuZExpbmVBcmd1bWVudD4KKyAgICAgIDwvQ29tbWFuZExpbmVBcmd1
bWVudHM+CiAgICA8L0xhdW5jaEFjdGlvbj4KICAgIDxQcm9maWxlQWN0aW9uCiAgICAgICBidWls
ZENvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggYmNm
MDMyOTU1YmUyZWJkZmZlNjkzZDhhOGJiZDgyYmY5NDJmOWQ5OS4uNGI3YzlmZGJiMmUzYmVkZjI1
MmFhYmU2OWRlYTZjYTY0YWI4YTc5OCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKQEAgLTY4LDEw
ICs2OCwxMCBAQCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVyVGVzdCwgSW5pdGlhbEFkdmFu
Y2VXaXRoTGVmdFJ1bkluUlRMKQogICAgIHJ1bnMuYXBwZW5kKFdURk1vdmUocnVuMikpOwogICAg
IENvbXBsZXhUZXh0Q29udHJvbGxlciBjb250cm9sbGVyKGZvbnQsIHRleHRSdW4sIHJ1bnMpOwog
Ci0gICAgZmxvYXQgdG90YWxXaWR0aCA9IDA7Ci0gICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBh
ZHZhbmNlcy5zaXplKCk7ICsraSkKKyAgICBmbG9hdCB0b3RhbFdpZHRoID0gaW5pdGlhbEFkdmFu
Y2Uud2lkdGgoKSArIHNwYWNlV2lkdGg7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhZHZh
bmNlcy5zaXplKCk7ICsraSkKICAgICAgICAgdG90YWxXaWR0aCArPSBhZHZhbmNlc1tpXS53aWR0
aCgpOwotICAgIEVYUEVDVF9ORUFSKGNvbnRyb2xsZXIudG90YWxBZHZhbmNlKCkud2lkdGgoKSwg
c3BhY2VXaWR0aCArIHRvdGFsV2lkdGgsIDAuMDAwMSk7CisgICAgRVhQRUNUX05FQVIoY29udHJv
bGxlci50b3RhbEFkdmFuY2UoKS53aWR0aCgpLCB0b3RhbFdpZHRoLCAwLjAwMDEpOwogICAgIEds
eXBoQnVmZmVyIGdseXBoQnVmZmVyOwogICAgIEVYUEVDVF9ORUFSKGNvbnRyb2xsZXIucnVuV2lk
dGhTb0ZhcigpLCAwLCAwLjAwMDEpOwogICAgIGNvbnRyb2xsZXIuYWR2YW5jZSgwLCAmZ2x5cGhC
dWZmZXIpOwpAQCAtNzksNyArNzksNyBAQCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVyVGVz
dCwgSW5pdGlhbEFkdmFuY2VXaXRoTGVmdFJ1bkluUlRMKQogICAgIGNvbnRyb2xsZXIuYWR2YW5j
ZSgxLCAmZ2x5cGhCdWZmZXIpOwogICAgIEVYUEVDVF9ORUFSKGNvbnRyb2xsZXIucnVuV2lkdGhT
b0ZhcigpLCBhZHZhbmNlc1s0XS53aWR0aCgpLCAwLjAwMDEpOwogICAgIGNvbnRyb2xsZXIuYWR2
YW5jZSg2LCAmZ2x5cGhCdWZmZXIpOwotICAgIEVYUEVDVF9ORUFSKGNvbnRyb2xsZXIucnVuV2lk
dGhTb0ZhcigpLCBzcGFjZVdpZHRoICsgdG90YWxXaWR0aCwgMC4wMDAxKTsKKyAgICBFWFBFQ1Rf
TkVBUihjb250cm9sbGVyLnJ1bldpZHRoU29GYXIoKSwgdG90YWxXaWR0aCwgMC4wMDAxKTsKICAg
ICBFWFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5pbml0aWFsQWR2YW5jZSgpKSwgMCwgMC4w
MDAxKTsKICAgICBFWFBFQ1RfTkVBUihoZWlnaHQoZ2x5cGhCdWZmZXIuaW5pdGlhbEFkdmFuY2Uo
KSksIDAsIDAuMDAwMSk7CiAgICAgRVhQRUNUX0VRKGdseXBoQnVmZmVyLnNpemUoKSwgNlUpOwpA
QCAtODgsNyArODgsNyBAQCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVyVGVzdCwgSW5pdGlh
bEFkdmFuY2VXaXRoTGVmdFJ1bkluUlRMKQogICAgIEVYUEVDVF9ORUFSKHdpZHRoKGdseXBoQnVm
ZmVyLmFkdmFuY2VBdCgyKSksIHdpZHRoKGFkdmFuY2VzWzJdKSwgMC4wMDAxKTsKICAgICBFWFBF
Q1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoMykpLCB3aWR0aChhZHZhbmNlc1sx
XSksIDAuMDAwMSk7CiAgICAgRVhQRUNUX05FQVIod2lkdGgoZ2x5cGhCdWZmZXIuYWR2YW5jZUF0
KDQpKSwgLXdpZHRoKGluaXRpYWxBZHZhbmNlKSwgMC4wMDAxKTsKLSAgICBFWFBFQ1RfTkVBUih3
aWR0aChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoNSkpLCBzcGFjZVdpZHRoICsgd2lkdGgoaW5pdGlh
bEFkdmFuY2UpLCAwLjAwMDEpOworICAgIEVYUEVDVF9ORUFSKHdpZHRoKGdseXBoQnVmZmVyLmFk
dmFuY2VBdCg1KSksIHNwYWNlV2lkdGggKyB3aWR0aChpbml0aWFsQWR2YW5jZSkgKyB3aWR0aChp
bml0aWFsQWR2YW5jZSksIDAuMDAwMSk7CiB9CiAKIFRFU1RfRihDb21wbGV4VGV4dENvbnRyb2xs
ZXJUZXN0LCBJbml0aWFsQWR2YW5jZUluUlRMKQpAQCAtMTEyLDggKzExMiw4IEBAIFRFU1RfRihD
b21wbGV4VGV4dENvbnRyb2xsZXJUZXN0LCBJbml0aWFsQWR2YW5jZUluUlRMKQogICAgIHJ1bnMu
YXBwZW5kKFdURk1vdmUocnVuKSk7CiAgICAgQ29tcGxleFRleHRDb250cm9sbGVyIGNvbnRyb2xs
ZXIoZm9udCwgdGV4dFJ1biwgcnVucyk7CiAKLSAgICBmbG9hdCB0b3RhbFdpZHRoID0gMDsKLSAg
ICBmb3IgKHNpemVfdCBpID0gMTsgaSA8IGFkdmFuY2VzLnNpemUoKTsgKytpKQorICAgIGZsb2F0
IHRvdGFsV2lkdGggPSBpbml0aWFsQWR2YW5jZS53aWR0aCgpOworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgYWR2YW5jZXMuc2l6ZSgpOyArK2kpCiAgICAgICAgIHRvdGFsV2lkdGggKz0gYWR2
YW5jZXNbaV0ud2lkdGgoKTsKICAgICBFWFBFQ1RfTkVBUihjb250cm9sbGVyLnRvdGFsQWR2YW5j
ZSgpLndpZHRoKCksIHRvdGFsV2lkdGgsIDAuMDAwMSk7CiAgICAgR2x5cGhCdWZmZXIgZ2x5cGhC
dWZmZXI7CkBAIC0xMjQsMTUgKzEyNCwxNSBAQCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVy
VGVzdCwgSW5pdGlhbEFkdmFuY2VJblJUTCkKICAgICBFWFBFQ1RfTkVBUihjb250cm9sbGVyLnJ1
bldpZHRoU29GYXIoKSwgYWR2YW5jZXNbNF0ud2lkdGgoKSwgMC4wMDAxKTsKICAgICBjb250cm9s
bGVyLmFkdmFuY2UoNSwgJmdseXBoQnVmZmVyKTsKICAgICBFWFBFQ1RfTkVBUihjb250cm9sbGVy
LnJ1bldpZHRoU29GYXIoKSwgdG90YWxXaWR0aCwgMC4wMDAxKTsKLSAgICBFWFBFQ1RfTkVBUih3
aWR0aChnbHlwaEJ1ZmZlci5pbml0aWFsQWR2YW5jZSgpKSwgaW5pdGlhbEFkdmFuY2Uud2lkdGgo
KSwgMC4wMDAxKTsKLSAgICBFWFBFQ1RfTkVBUihoZWlnaHQoZ2x5cGhCdWZmZXIuaW5pdGlhbEFk
dmFuY2UoKSksIGluaXRpYWxBZHZhbmNlLmhlaWdodCgpLCAwLjAwMDEpOworICAgIEVYUEVDVF9O
RUFSKHdpZHRoKGdseXBoQnVmZmVyLmluaXRpYWxBZHZhbmNlKCkpLCBpbml0aWFsQWR2YW5jZS53
aWR0aCgpICsgb3JpZ2luc1swXS54KCksIDAuMDAwMSk7CisgICAgRVhQRUNUX05FQVIoaGVpZ2h0
KGdseXBoQnVmZmVyLmluaXRpYWxBZHZhbmNlKCkpLCBpbml0aWFsQWR2YW5jZS5oZWlnaHQoKSAr
IG9yaWdpbnNbMF0ueSgpLCAwLjAwMDEpOwogICAgIEVYUEVDVF9FUShnbHlwaEJ1ZmZlci5zaXpl
KCksIDVVKTsKICAgICBFWFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoMCkp
LCBhZHZhbmNlc1s0XS53aWR0aCgpLCAwLjAwMDEpOwogICAgIEVYUEVDVF9ORUFSKHdpZHRoKGds
eXBoQnVmZmVyLmFkdmFuY2VBdCgxKSksIGFkdmFuY2VzWzNdLndpZHRoKCksIDAuMDAwMSk7CiAg
ICAgRVhQRUNUX05FQVIod2lkdGgoZ2x5cGhCdWZmZXIuYWR2YW5jZUF0KDIpKSwgYWR2YW5jZXNb
Ml0ud2lkdGgoKSwgMC4wMDAxKTsKICAgICBFWFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5h
ZHZhbmNlQXQoMykpLCBhZHZhbmNlc1sxXS53aWR0aCgpLCAwLjAwMDEpOwotICAgIEVYUEVDVF9O
RUFSKHdpZHRoKGdseXBoQnVmZmVyLmFkdmFuY2VBdCg0KSksIC1pbml0aWFsQWR2YW5jZS53aWR0
aCgpLCAwLjAwMDEpOwotICAgIEVYUEVDVF9ORUFSKGhlaWdodChnbHlwaEJ1ZmZlci5hZHZhbmNl
QXQoNCkpLCBpbml0aWFsQWR2YW5jZS5oZWlnaHQoKSwgMC4wMDAxKTsKKyAgICBFWFBFQ1RfTkVB
Uih3aWR0aChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoNCkpLCAtb3JpZ2luc1swXS54KCkgKyBhZHZh
bmNlc1swXS53aWR0aCgpLCAwLjAwMDEpOworICAgIEVYUEVDVF9ORUFSKGhlaWdodChnbHlwaEJ1
ZmZlci5hZHZhbmNlQXQoNCkpLCBvcmlnaW5zWzBdLnkoKSAtIGFkdmFuY2VzWzBdLmhlaWdodCgp
LCAwLjAwMDEpOwogfQogCiBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVyVGVzdCwgSW5pdGlh
bEFkdmFuY2VXaXRoTGVmdFJ1bkluTFRSKQpAQCAtMTY1LDcgKzE2NSw3IEBAIFRFU1RfRihDb21w
bGV4VGV4dENvbnRyb2xsZXJUZXN0LCBJbml0aWFsQWR2YW5jZVdpdGhMZWZ0UnVuSW5MVFIpCiAg
ICAgY29udHJvbGxlci5hZHZhbmNlKDAsICZnbHlwaEJ1ZmZlcik7CiAgICAgRVhQRUNUX05FQVIo
Y29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCksIDAsIDAuMDAwMSk7CiAgICAgY29udHJvbGxlci5h
ZHZhbmNlKDEsICZnbHlwaEJ1ZmZlcik7Ci0gICAgRVhQRUNUX05FQVIoY29udHJvbGxlci5ydW5X
aWR0aFNvRmFyKCksIHNwYWNlV2lkdGgsIDAuMDAwMSk7CisgICAgRVhQRUNUX05FQVIoY29udHJv
bGxlci5ydW5XaWR0aFNvRmFyKCksIHNwYWNlV2lkdGggKyBpbml0aWFsQWR2YW5jZS53aWR0aCgp
LCAwLjAwMDEpOwogICAgIGNvbnRyb2xsZXIuYWR2YW5jZSgyLCAmZ2x5cGhCdWZmZXIpOwogICAg
IEVYUEVDVF9ORUFSKGNvbnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpLCBzcGFjZVdpZHRoICsgYWR2
YW5jZXNbMF0ud2lkdGgoKSArIGluaXRpYWxBZHZhbmNlLndpZHRoKCksIDAuMDAwMSk7CiAgICAg
Y29udHJvbGxlci5hZHZhbmNlKDMsICZnbHlwaEJ1ZmZlcik7CkBAIC0zMjMsMTIgKzMyMywxMiBA
QCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVyVGVzdCwgVmVydGljYWxBZHZhbmNlcykKICAg
ICBjb250cm9sbGVyLmFkdmFuY2UoNCwgJmdseXBoQnVmZmVyKTsKICAgICBFWFBFQ1RfTkVBUihj
b250cm9sbGVyLnJ1bldpZHRoU29GYXIoKSwgMCwgMC4wMDAxKTsKICAgICBFWFBFQ1RfTkVBUih3
aWR0aChnbHlwaEJ1ZmZlci5pbml0aWFsQWR2YW5jZSgpKSwgMCwgMC4wMDAxKTsKLSAgICBFWFBF
Q1RfTkVBUihoZWlnaHQoZ2x5cGhCdWZmZXIuaW5pdGlhbEFkdmFuY2UoKSksIDE2LCAwLjAwMDEp
OworICAgIEVYUEVDVF9ORUFSKGhlaWdodChnbHlwaEJ1ZmZlci5pbml0aWFsQWR2YW5jZSgpKSwg
MTYgKyA0LCAwLjAwMDEpOwogICAgIEVYUEVDVF9FUShnbHlwaEJ1ZmZlci5zaXplKCksIDRVKTsK
ICAgICBFWFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoMCkpLCAwLCAwLjAw
MDEpOwogICAgIEVYUEVDVF9ORUFSKGhlaWdodChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoMCkpLCA0
IC0gMSAtOCwgMC4wMDAxKTsKICAgICBFWFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5hZHZh
bmNlQXQoMSkpLCAwLCAwLjAwMDEpOwotICAgIEVYUEVDVF9ORUFSKGhlaWdodChnbHlwaEJ1ZmZl
ci5hZHZhbmNlQXQoMSkpLCA4IC0gMiAtIDUxMiwgMC4wMDAxKTsKKyAgICBFWFBFQ1RfTkVBUiho
ZWlnaHQoZ2x5cGhCdWZmZXIuYWR2YW5jZUF0KDEpKSwgOCAtIDIgLSAxMjggLSA1MTIsIDAuMDAw
MSk7CiAgICAgRVhQRUNUX05FQVIod2lkdGgoZ2x5cGhCdWZmZXIuYWR2YW5jZUF0KDIpKSwgMCwg
MC4wMDAxKTsKICAgICBFWFBFQ1RfTkVBUihoZWlnaHQoZ2x5cGhCdWZmZXIuYWR2YW5jZUF0KDIp
KSwgMTI4IC0gMzIgLSAyNTYsIDAuMDAwMSk7CiAgICAgRVhQRUNUX05FQVIod2lkdGgoZ2x5cGhC
dWZmZXIuYWR2YW5jZUF0KDMpKSwgMCwgMC4wMDAxKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434966</attachid>
            <date>2021-08-04 23:39:59 -0700</date>
            <delta_ts>2021-08-10 23:46:15 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-228180-20210804233958.patch</filename>
            <type>text/plain</type>
            <size>23586</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGMzYTkxNjUwYTI4YTc5NWIwN2I1ODQ1
MjQyMDQ2NWIxMzY0YTFiMWQuLjNiMWE0Y2E1NjM4OTUzZThiNTQ0NTQ2MmZiMWFlOGEwYWE5MmI1
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDgtMDQgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIENvbXBsZXhUZXh0Q29udHJv
bGxlcidzIG5vdGlvbiBvZiBnbHlwaCBydW4gaW5pdGlhbCBhZHZhbmNlIGlzIHdyb25nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjgxODAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9y
bUhhdmUuaDoKKwogMjAyMS0wOC0wMyAgUmlzdWwgSXNsYW0gIDxyaXN1bF9pc2xhbUBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIGZ1bmN0aW9ucyBmb3IgcGFyc2luZyBVUkwgcXVlcnkgc3RyaW5n
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggMGNiYTQyYzQyOWVhZjMwZDk1YjQ4YmJjMzE4OThhMDY0NDZkMDdmMC4u
YTY1ODBhZDQ1YTYzYzU4NzIzZjdhNTNjOTMzNTczNTNlOTc3ODA2NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDIxLTA4LTA0ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBh
cHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBDb21wbGV4VGV4dENvbnRyb2xsZXIncyBub3Rp
b24gb2YgZ2x5cGggcnVuIGluaXRpYWwgYWR2YW5jZSBpcyB3cm9uZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4MTgwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjpvZmZzZXRGb3JQb3NpdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6OmFkdmFuY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRB
ZHZhbmNlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9s
bGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdseXBoQnVmZmVyOjpmbGF0dGVuKToKKyAgICAgICAgKFdlYkNvcmU6Okds
eXBoQnVmZmVyOjppc0ZsYXR0ZW5lZCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjpDb21wbGV4VGV4dFJ1bjo6Q29tcGxleFRleHRSdW4p
OgorCiAyMDIxLTA4LTA0ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OKD8pOiBzdWJ0aXRsZSB0ZXh0IHNpemluZyBpcyBzb21ldGltZXMgaW5j
b25zaXN0ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBiNzZmNTkyZjkyMWI0MDJiZDlhZWRlNWJj
NDkwMTkyNmI1ODc0MjAzLi5iY2JiMzc3ZDJiYWVmMDU5YmVkNzM1NjRiODEwNWViMjE4ZWU0MmQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wOC0wNCAgTXlsZXMg
Qy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQ29t
cGxleFRleHRDb250cm9sbGVyJ3Mgbm90aW9uIG9mIGdseXBoIHJ1biBpbml0aWFsIGFkdmFuY2Ug
aXMgd3JvbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyODE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogcGFsL3NwaS9jZi9Db3JlVGV4dFNQSS5oOgorCiAyMDIxLTA4LTAzICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBbTGl2ZSBUZXh0XSBbaU9TXSBQcm92aWRl
IGEgcHJlc2VudGluZyBgVUlWaWV3Q29udHJvbGxlcmAgZm9yIG1hY2hpbmUgcmVhZGFibGUgY29k
ZSBhY3Rpb25zIHNvIHRoYXQgdGhleSBhcmUgcmVsYXRlZCB0byB0aGUgc2FtZSB2aWV3CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtSGF2ZS5oCmluZGV4IDYxZjEzYzJiNzNkZDJlMDM1OTJjM2E5Nzc5MmY5MzZmOTdkYzFm
NDQuLmNiOWU2OTAyOWU1NTE5MzIzNmVlYmJiNGM0NjgyYTViZjcxZWVjZTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtSGF2ZS5oCkBAIC0xMDU0LDExICsxMDU0LDEwIEBACiAjZGVmaW5lIEhBVkVfVUlCTFVSRUZG
RUNUX1NUWUxFX1NZU1RFTV9NQVRFUklBTCAxCiAjZW5kaWYKIAotI2lmIChQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwIFwKLSAgICB8fCAo
UExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAw
MDApIFwKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDExMDAwMCkgXAorICAgIHx8ICgoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUND
QVRBTFlTVCkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAwMCkg
XAogICAgIHx8IChQTEFURk9STShXQVRDSE9TKSAmJiBfX1dBVENIX09TX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDcwMDAwKSBcCi0gICAgfHwgKFBMQVRGT1JNKEFQUExFVFYpICYmIF9fVFZfT1Nf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwKSBcCi0gICAgfHwgKFBMQVRGT1JNKE1BQ0NB
VEFMWVNUKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDApKQor
ICAgIHx8IChQTEFURk9STShBUFBMRVRWKSAmJiBfX1RWX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDE0MDAwMCkKICNkZWZpbmUgSEFWRV9DT1JFX1RFWFRfU0JJWF9JTUFHRV9TSVpFX0ZVTkNU
SU9OUyAxCiAjZW5kaWYKIApAQCAtMTEyNiwzICsxMTI1LDEwIEBACiAjaWYgKFBMQVRGT1JNKElP
UykgJiYgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSkgJiYgX19JUEhPTkVfT1NfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUwMDAwCiAjZGVmaW5lIEhBVkVfU1lTVEVNX1NUQVRVUyAx
CiAjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTIwMDAwKSBcCisgICAgfHwgKChQTEFURk9STShJT1MpIHx8IFBMQVRGT1JN
KE1BQ0NBVEFMWVNUKSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUw
MDAwKSBcCisgICAgfHwgKFBMQVRGT1JNKFdBVENIT1MpICYmIF9fV0FUQ0hfT1NfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gODAwMDApIFwKKyAgICB8fCAoUExBVEZPUk0oQVBQTEVUVikgJiYgX19U
Vl9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNTAwMDApCisjZGVmaW5lIEhBVkVfQ1RSVU5H
RVRJTklUSUFMQkFTRUFEVkFOQ0UgMQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9jZi9Db3JlVGV4dFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2YvQ29yZVRleHRTUEkuaAppbmRleCA0OTA4NjYzOThjNGI1MDQ1NDA5NGJiYTk0ZmU4MThk
YWMzZWY4Y2RhLi42OTUwNDk0OGY2NzZjYzRmZjJjNjAzMDRjOTNlZTkxNjk4NGE0MDM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9Db3JlVGV4dFNQSS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NvcmVUZXh0U1BJLmgKQEAgLTExMiw2ICsx
MTIsNyBAQCBDR1NpemUgQ1RGb250U2hhcGVHbHlwaHMoQ1RGb250UmVmLCBDR0dseXBoIGdseXBo
c1tdLCBDR1NpemUgYWR2YW5jZXNbXSwgQ0dQb2ludAogI2VuZGlmCiAKIENHU2l6ZSBDVFJ1bkdl
dEluaXRpYWxBZHZhbmNlKENUUnVuUmVmKTsKK0NHU2l6ZSBDVFJ1bkdldEluaXRpYWxCYXNlQWR2
YW5jZShDVFJ1blJlZik7CiBDVExpbmVSZWYgQ1RMaW5lQ3JlYXRlV2l0aFVuaUNoYXJQcm92aWRl
cihDVFVuaUNoYXJQcm92aWRlckNhbGxiYWNrLCBDVFVuaUNoYXJEaXNwb3NlQ2FsbGJhY2ssIHZv
aWQqIHJlZkNvbik7CiB2b2lkIENUUnVuR2V0QmFzZUFkdmFuY2VzQW5kT3JpZ2lucyhDVFJ1blJl
ZiwgQ0ZSYW5nZSwgQ0dTaXplIGJhc2VBZHZhbmNlc1tdLCBDR1BvaW50IG9yaWdpbnNbXSk7CiBD
VFR5cGVzZXR0ZXJSZWYgQ1RUeXBlc2V0dGVyQ3JlYXRlV2l0aFVuaUNoYXJQcm92aWRlckFuZE9w
dGlvbnMoQ1RVbmlDaGFyUHJvdmlkZXJDYWxsYmFjaywgQ1RVbmlDaGFyRGlzcG9zZUNhbGxiYWNr
LCB2b2lkKiByZWZDb24sIENGRGljdGlvbmFyeVJlZiBvcHRpb25zKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIu
Y3BwCmluZGV4IDQ0OTMyZGVmY2Q5ODYzZTYwZjIwY2E5ZDE3NjJhNzk2NTMwYjFmYjguLmU1NzM3
MGIzYTM4ZDE3MmQwZDQyZmFhNjYzNmIwNjAxZTU1YjRmZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNw
cApAQCAtMTc1LDcgKzE3NSw3IEBAIHVuc2lnbmVkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6b2Zm
c2V0Rm9yUG9zaXRpb24oZmxvYXQgaCwgYm9vbCBpbmNsdWRlUGFydGlhbEdsCiAgICAgaWYgKGgg
PCAwKQogICAgICAgICByZXR1cm4gbV9ydW4ubHRyKCkgPyAwIDogbV9lbmQ7CiAKLSAgICBmbG9h
dCB4ID0gaDsKKyAgICBmbG9hdCB4ID0gaCAtIG1fY29tcGxleFRleHRSdW5zWzBdLT5pbml0aWFs
QWR2YW5jZSgpLndpZHRoKCk7CiAKICAgICBzaXplX3QgcnVuQ291bnQgPSBtX2NvbXBsZXhUZXh0
UnVucy5zaXplKCk7CiAgICAgdW5zaWduZWQgb2Zmc2V0SW50b0FkanVzdGVkR2x5cGhzID0gMDsK
QEAgLTU4Myw3ICs1ODMsNyBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6YWR2YW5jZSh1
bnNpZ25lZCBvZmZzZXQsIEdseXBoQnVmZmVyKiBnbHlwaEJ1ZmZlciwgRwogICAgICAgICAvLyBX
aGVuIGxlZnRtb3N0R2x5cGggaXMgMCwgaXQgcmVwcmVzZW50cyB0aGUgZmlyc3QgZ2x5cGggdG8g
ZHJhdywgdGFraW5nIGludG8KICAgICAgICAgLy8gYWNjb3VudCB0aGUgdGV4dCBkaXJlY3Rpb24u
CiAgICAgICAgIGlmICghaW5kZXhPZkxlZnRtb3N0R2x5cGhJbkN1cnJlbnRSdW4gJiYgZ2x5cGhC
dWZmZXIpCi0gICAgICAgICAgICBnbHlwaEJ1ZmZlci0+c2V0SW5pdGlhbEFkdmFuY2UobWFrZUds
eXBoQnVmZmVyQWR2YW5jZShjb21wbGV4VGV4dFJ1bi5pbml0aWFsQWR2YW5jZSgpKSk7CisgICAg
ICAgICAgICBnbHlwaEJ1ZmZlci0+c2V0SW5pdGlhbEFkdmFuY2UobWFrZUdseXBoQnVmZmVyQWR2
YW5jZShnbHlwaE9yaWdpbigwKSArIGNvbXBsZXhUZXh0UnVuLmluaXRpYWxBZHZhbmNlKCkgLSBG
bG9hdFBvaW50KCkpKTsKIAogICAgICAgICB3aGlsZSAobV9nbHlwaEluQ3VycmVudFJ1biA8IGds
eXBoQ291bnQpIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGdseXBoU3RhcnRPZmZzZXQgPSBjb21w
bGV4VGV4dFJ1bi5pbmRleEF0KGdseXBoSW5kZXhJbnRvQ3VycmVudFJ1bik7CkBAIC02MDQsMjEg
KzYwNCw4IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjphZHZhbmNlKHVuc2lnbmVkIG9m
ZnNldCwgR2x5cGhCdWZmZXIqIGdseXBoQnVmZmVyLCBHCiAgICAgICAgICAgICBpZiAoZ2x5cGhC
dWZmZXIgJiYgIW1fY2hhcmFjdGVySW5DdXJyZW50R2x5cGgpIHsKICAgICAgICAgICAgICAgICBh
dXRvIGN1cnJlbnRHbHlwaE9yaWdpbiA9IGdseXBoT3JpZ2luKGdseXBoSW5kZXhJbnRvQ29tcGxl
eFRleHRDb250cm9sbGVyKTsKICAgICAgICAgICAgICAgICBHbHlwaEJ1ZmZlckFkdmFuY2UgcGFp
bnRBZHZhbmNlID0gbWFrZUdseXBoQnVmZmVyQWR2YW5jZShhZGp1c3RlZEJhc2VBZHZhbmNlKTsK
LSAgICAgICAgICAgICAgICBpZiAoIWdseXBoSW5kZXhJbnRvQ3VycmVudFJ1bikgewotICAgICAg
ICAgICAgICAgICAgICAvLyBUaGUgZmlyc3QgbGF5b3V0IGFkdmFuY2Ugb2YgZXZlcnkgcnVuIGlu
Y2x1ZGVzIHRoZSAiaW5pdGlhbCBsYXlvdXQgYWR2YW5jZS4iIEhvd2V2ZXIsIGhlcmUsIHdlIG5l
ZWQKLSAgICAgICAgICAgICAgICAgICAgLy8gcGFpbnQgYWR2YW5jZXMsIHNvIHN1YnRyYWN0IGl0
IG91dCBiZWZvcmUgdHJhbnNmb3JtaW5nIHRoZSBsYXlvdXQgYWR2YW5jZSBpbnRvIGEgcGFpbnQg
YWR2YW5jZS4KLSAgICAgICAgICAgICAgICAgICAgc2V0V2lkdGgocGFpbnRBZHZhbmNlLCB3aWR0
aChwYWludEFkdmFuY2UpIC0gKGNvbXBsZXhUZXh0UnVuLmluaXRpYWxBZHZhbmNlKCkud2lkdGgo
KSAtIGN1cnJlbnRHbHlwaE9yaWdpbi54KCkpKTsKLSAgICAgICAgICAgICAgICAgICAgc2V0SGVp
Z2h0KHBhaW50QWR2YW5jZSwgaGVpZ2h0KHBhaW50QWR2YW5jZSkgLSAoY29tcGxleFRleHRSdW4u
aW5pdGlhbEFkdmFuY2UoKS5oZWlnaHQoKSAtIGN1cnJlbnRHbHlwaE9yaWdpbi55KCkpKTsKLSAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgc2V0V2lkdGgocGFpbnRBZHZhbmNlLCB3
aWR0aChwYWludEFkdmFuY2UpICsgZ2x5cGhPcmlnaW4oZ2x5cGhJbmRleEludG9Db21wbGV4VGV4
dENvbnRyb2xsZXIgKyAxKS54KCkgLSBjdXJyZW50R2x5cGhPcmlnaW4ueCgpKTsKICAgICAgICAg
ICAgICAgICBzZXRIZWlnaHQocGFpbnRBZHZhbmNlLCBoZWlnaHQocGFpbnRBZHZhbmNlKSArIGds
eXBoT3JpZ2luKGdseXBoSW5kZXhJbnRvQ29tcGxleFRleHRDb250cm9sbGVyICsgMSkueSgpIC0g
Y3VycmVudEdseXBoT3JpZ2luLnkoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGdseXBoSW5kZXhJ
bnRvQ3VycmVudFJ1biA9PSBnbHlwaENvdW50IC0gMSAmJiBjdXJyZW50UnVuSW5kZXggKyAxIDwg
cnVuQ291bnQpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gT3VyIHBhaW50IGFkdmFuY2UgcG9p
bnRzIHRvIHRoZSBlbmQgb2YgdGhlIHJ1bi4gSG93ZXZlciwgdGhlIG5leHQgcnVuIG1heSBoYXZl
IGFuCi0gICAgICAgICAgICAgICAgICAgIC8vIGluaXRpYWwgYWR2YW5jZSwgYW5kIG91ciBwYWlu
dCBhZHZhbmNlIG5lZWRzIHRvIHBvaW50IHRvIHRoZSBsb2NhdGlvbiBvZiB0aGUgbmV4dAotICAg
ICAgICAgICAgICAgICAgICAvLyBnbHlwaC4gU28sIHdlIG5lZWQgdG8gYWRkIGluIHRoZSBuZXh0
IHJ1bidzIGluaXRpYWwgYWR2YW5jZS4KLSAgICAgICAgICAgICAgICAgICAgc2V0V2lkdGgocGFp
bnRBZHZhbmNlLCB3aWR0aChwYWludEFkdmFuY2UpIC0gZ2x5cGhPcmlnaW4oZ2x5cGhJbmRleElu
dG9Db21wbGV4VGV4dENvbnRyb2xsZXIgKyAxKS54KCkgKyBtX2NvbXBsZXhUZXh0UnVuc1tjdXJy
ZW50UnVuSW5kZXggKyAxXS0+aW5pdGlhbEFkdmFuY2UoKS53aWR0aCgpKTsKLSAgICAgICAgICAg
ICAgICAgICAgc2V0SGVpZ2h0KHBhaW50QWR2YW5jZSwgaGVpZ2h0KHBhaW50QWR2YW5jZSkgLSBn
bHlwaE9yaWdpbihnbHlwaEluZGV4SW50b0NvbXBsZXhUZXh0Q29udHJvbGxlciArIDEpLnkoKSAr
IG1fY29tcGxleFRleHRSdW5zW2N1cnJlbnRSdW5JbmRleCArIDFdLT5pbml0aWFsQWR2YW5jZSgp
LmhlaWdodCgpKTsKLSAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgc2V0SGVpZ2h0
KHBhaW50QWR2YW5jZSwgLWhlaWdodChwYWludEFkdmFuY2UpKTsgLy8gSW5jcmVhc2luZyB5IHBv
aW50cyBkb3duCiAgICAgICAgICAgICAgICAgZ2x5cGhCdWZmZXItPmFkZChtX2FkanVzdGVkR2x5
cGhzW2dseXBoSW5kZXhJbnRvQ29tcGxleFRleHRDb250cm9sbGVyXSwgY29tcGxleFRleHRSdW4u
Zm9udCgpLCBwYWludEFkdmFuY2UsIGNvbXBsZXhUZXh0UnVuLmluZGV4QXQobV9nbHlwaEluQ3Vy
cmVudFJ1bikpOwogICAgICAgICAgICAgfQpAQCAtNjI2LDYgKzYxMyw4IEBAIHZvaWQgQ29tcGxl
eFRleHRDb250cm9sbGVyOjphZHZhbmNlKHVuc2lnbmVkIG9mZnNldCwgR2x5cGhCdWZmZXIqIGds
eXBoQnVmZmVyLCBHCiAgICAgICAgICAgICB1bnNpZ25lZCBvbGRDaGFyYWN0ZXJJbkN1cnJlbnRH
bHlwaCA9IG1fY2hhcmFjdGVySW5DdXJyZW50R2x5cGg7CiAgICAgICAgICAgICBtX2NoYXJhY3Rl
ckluQ3VycmVudEdseXBoID0gc3RkOjptaW4obV9jdXJyZW50Q2hhcmFjdGVyIC0gY29tcGxleFRl
eHRSdW4uc3RyaW5nTG9jYXRpb24oKSwgZ2x5cGhFbmRPZmZzZXQpIC0gZ2x5cGhTdGFydE9mZnNl
dDsKICAgICAgICAgICAgIG1fcnVuV2lkdGhTb0ZhciArPSBhZGp1c3RlZEJhc2VBZHZhbmNlLndp
ZHRoKCkgKiBydW5XaWR0aFNvRmFyRnJhY3Rpb24oZ2x5cGhTdGFydE9mZnNldCwgZ2x5cGhFbmRP
ZmZzZXQsIG9sZENoYXJhY3RlckluQ3VycmVudEdseXBoLCBpdGVyYXRpb25TdHlsZSk7CisgICAg
ICAgICAgICBpZiAoIWN1cnJlbnRSdW5JbmRleCAmJiAhZ2x5cGhJbmRleEludG9DdXJyZW50UnVu
KQorICAgICAgICAgICAgICAgIG1fcnVuV2lkdGhTb0ZhciArPSBjb21wbGV4VGV4dFJ1bi5pbml0
aWFsQWR2YW5jZSgpLndpZHRoKCk7CiAKICAgICAgICAgICAgIGlmIChnbHlwaEVuZE9mZnNldCAr
IGNvbXBsZXhUZXh0UnVuLnN0cmluZ0xvY2F0aW9uKCkgPiBtX2N1cnJlbnRDaGFyYWN0ZXIpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjg1LDYgKzY3NCw3IEBAIHZvaWQgQ29tcGxleFRl
eHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRBZHZhbmNlcygpCiAgICAgZm9yIChzaXplX3Qg
cnVuSW5kZXggPSAwOyBydW5JbmRleCA8IHJ1bkNvdW50OyArK3J1bkluZGV4KSB7CiAgICAgICAg
IENvbXBsZXhUZXh0UnVuJiBjb21wbGV4VGV4dFJ1biA9ICptX2NvbXBsZXhUZXh0UnVuc1tydW5J
bmRleF07CiAgICAgICAgIHVuc2lnbmVkIGdseXBoQ291bnQgPSBjb21wbGV4VGV4dFJ1bi5nbHlw
aENvdW50KCk7CisgICAgICAgIEFTU0VSVChnbHlwaENvdW50KTsKICAgICAgICAgY29uc3QgRm9u
dCYgZm9udCA9IGNvbXBsZXhUZXh0UnVuLmZvbnQoKTsKIAogICAgICAgICBpZiAoIWNvbXBsZXhU
ZXh0UnVuLmlzTFRSKCkpCkBAIC03MjIsOSArNzEyLDkgQEAgdm9pZCBDb21wbGV4VGV4dENvbnRy
b2xsZXI6OmFkanVzdEdseXBoc0FuZEFkdmFuY2VzKCkKICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgaWYgKCFpKSB7Ci0gICAgICAgICAgICAgICAgYWR2YW5jZS5leHBhbmQoY29tcGxleFRl
eHRSdW4uaW5pdGlhbEFkdmFuY2UoKS53aWR0aCgpLCBjb21wbGV4VGV4dFJ1bi5pbml0aWFsQWR2
YW5jZSgpLmhlaWdodCgpKTsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byogb3JpZ2lucyA9IGNv
bXBsZXhUZXh0UnVuLmdseXBoT3JpZ2lucygpKQotICAgICAgICAgICAgICAgICAgICBhZHZhbmNl
LmV4cGFuZCgtb3JpZ2luc1swXS54KCksIC1vcmlnaW5zWzBdLnkoKSk7CisgICAgICAgICAgICAg
ICAgaWYgKCFtX2FkanVzdGVkQmFzZUFkdmFuY2VzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAg
ICAgICAgbV9hZGp1c3RlZEJhc2VBZHZhbmNlcy5sYXN0KCkgKz0gY29tcGxleFRleHRSdW4uaW5p
dGlhbEFkdmFuY2UoKTsKKyAgICAgICAgICAgICAgICBtX3RvdGFsQWR2YW5jZSArPSBjb21wbGV4
VGV4dFJ1bi5pbml0aWFsQWR2YW5jZSgpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBh
ZHZhbmNlLmV4cGFuZChmb250LnN5bnRoZXRpY0JvbGRPZmZzZXQoKSwgMCk7CkBAIC03NjEsMTMg
Kzc1MSwxMSBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhzQW5kQWR2
YW5jZXMoKQogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV4cGFuZExlZnQpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX2V4cGFuc2lvbiAtPSBtX2V4cGFuc2lvblBlck9wcG9y
dHVuaXR5OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluY3JlYXNlIHByZXZpb3Vz
IHdpZHRoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fYWRqdXN0ZWRCYXNlQWR2
YW5jZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkdmFu
Y2UuZXhwYW5kKG1fZXhwYW5zaW9uUGVyT3Bwb3J0dW5pdHksIDApOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChtX2FkanVzdGVkQmFzZUFkdmFuY2VzLmlzRW1wdHkoKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxleFRleHRSdW4uZ3Jvd0luaXRpYWxBZHZh
bmNlSG9yaXpvbnRhbGx5KG1fZXhwYW5zaW9uUGVyT3Bwb3J0dW5pdHkpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2FkanVzdGVkQmFzZUFkdmFuY2Vz
Lmxhc3QoKS5leHBhbmQobV9leHBhbnNpb25QZXJPcHBvcnR1bml0eSwgMCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fdG90YWxBZHZhbmNlLmV4cGFuZChtX2V4cGFuc2lvblBl
ck9wcG9ydHVuaXR5LCAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV90b3RhbEFkdmFuY2UuZXhwYW5kKG1fZXhwYW5zaW9uUGVy
T3Bwb3J0dW5pdHksIDApOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKGV4cGFuZFJpZ2h0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbV9leHBhbnNpb24gLT0gbV9leHBhbnNpb25QZXJPcHBvcnR1bml0eTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVy
LmgKaW5kZXggYTFkNmUzNmFkYzQ2ODUxMzNhNTAxNGJkZmRmZWMyMjA5NzRiNDVmNy4uMTUxYjc1
ZGNiYmRkZmY4Njk3YWMwYjQ3M2Q0ZDU2NDY2YTg4MmIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmgKQEAg
LTEwOCwxMyArMTA4LDEzIEBAIHB1YmxpYzoKICAgICAgICAgLyoKICAgICAgICAgICogVGhpcyBp
cyB0aGUgZm9ybWF0IG9mIHRoZSBpbmZvcm1hdGlvbiBDb3JlVGV4dCBnaXZlcyB1cyBhYm91dCBl
YWNoIHJ1bjoKICAgICAgICAgICoKLSAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLS0tLS0+WCAoUGFpbnQgZ2x5cGggcG9zaXRpb24pICAgWCAoUGFpbnQg
Z2x5cGggcG9zaXRpb24pICAgWCAoUGFpbnQgZ2x5cGggcG9zaXRpb24pCi0gICAgICAgICAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICAgNyAgICAgICAgICAgICAg
ICAgICAgICAgICAgNyAgICAgICAgICAgICAgICAgICAgICAgICAgNwotICAgICAgICAgKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICAgLyAgICAgICAgICAgICAgICAg
ICAgICAgICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgLwotICAgICAgICAgKiAgICAgICAg
ICAgICAgICAgICAoSW5pdGlhbCBhZHZhbmNlKSAvICAgICAvIChHbHlwaCBvcmlnaW4pICAgICAg
ICAgICAvIChHbHlwaCBvcmlnaW4pICAgICAgICAgICAvIChHbHlwaCBvcmlnaW4pCi0gICAgICAg
ICAqICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgLyAgICAgICAgICAg
ICAgICAgICAgICAgICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgLwotICAgICAgICAgKiAg
ICAgICAgICAgICAgICAgLyAgICAgICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAgICAgICAg
ICAgICAgICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgLwotICAgICAgICAgKiAgICAgICAg
ICAgICAgICBYICAgICAgICAgICAgICAgICAgICAgICBYLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS1YLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1YLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1Y
CisgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFggKFBhaW50IGdseXBoIHBvc2l0aW9uKSAgIFggKFBhaW50IGdseXBoIHBvc2l0aW9uKSAgIFgg
KFBhaW50IGdseXBoIHBvc2l0aW9uKQorICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDcgICAgICAgICAgICAgICAgICAgICAgICAgIDcgICAgICAg
ICAgICAgICAgICAgICAgICAgIDcKKyAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8gICAgICAgICAgICAgICAgICAgICAgICAgIC8gICAgICAgICAg
ICAgICAgICAgICAgICAgIC8KKyAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLyAoR2x5cGggb3JpZ2luKSAgICAgICAgICAgLyAoR2x5cGggb3JpZ2lu
KSAgICAgICAgICAgLyAoR2x5cGggb3JpZ2luKQorICAgICAgICAgKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8gICAgICAgICAgICAgICAgICAgICAgICAgIC8gICAg
ICAgICAgICAgICAgICAgICAgICAgIC8KKyAgICAgICAgICogICAgICAgICAgICAgICAgICAgIChJ
bml0aWFsIGFkdmFuY2UpICAgIC8gICAgICAgICAgICAgICAgICAgICAgICAgIC8gICAgICAgICAg
ICAgICAgICAgICAgICAgIC8KKyAgICAgICAgICogICAgICAgICAgICAgICAgWC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0+WC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+WC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0+WC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+WAogICAgICAgICAgKiAodGV4dCBw
b3NpdGlvbiBeKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhc2UgYWR2YW5jZSkgICAg
ICAgICAgICAgKGJhc2UgYWR2YW5jZSkgICAgICAgICAgICAgKGJhc2UgYWR2YW5jZSkKICAgICAg
ICAgICoKICAgICAgICAgICoKQEAgLTEyOSw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgICAgICAq
ICAgICAgICAgICAgICAgICAgIChJbml0aWFsIGFkdmFuY2UpIC8gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgKFBhaW50IGFk
dmFuY2UpCiAgICAgICAgICAqICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAtLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAqICAgICAgICAgICAgICAgICAvICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgKiAg
ICAgICAgICAgICAgICBYLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS1YLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1YLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS1YCisgICAgICAgICAqICAgICAgICAgICAgICAgIFgtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlgt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlgKICAgICAgICAgICogKHRleHQgcG9zaXRpb24gXikg
ICAgICAgICAgICAgICAgKGxheW91dCBhZHZhbmNlKSAgICAgICAgICAgICAgICAgICAgICAgKGxh
eW91dCBhZHZhbmNlKSAgICAgICAgICAgKGxheW91dCBhZHZhbmNlKQogICAgICAgICAgKi8KICAg
ICAgICAgdm9pZCBncm93SW5pdGlhbEFkdmFuY2VIb3Jpem9udGFsbHkoZmxvYXQgZGVsdGEpIHsg
bV9pbml0aWFsQWR2YW5jZS5leHBhbmQoZGVsdGEsIDApOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIuaAppbmRleCBhZmQ4YmEyNGZjMWNkZTdjZGE5
NmM3MmU1ZDZiMzkwYWNiZjU2MjNhLi4wYTNmYTg0NTM4MmM4ZjFiNzA1MDUzYWQ5MzRlNWNmMmVl
MWFjYjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVm
ZmVyLmgKQEAgLTE3MywyMyArMTczLDMwIEBAIHB1YmxpYzoKICAgICAvLyBhbmQgemVyb3Mtb3V0
IHRoZSBvcmlnaW5zIGluIHRoZSAibV9vcmlnaW5zIiBmaWVsZC4KICAgICB2b2lkIGZsYXR0ZW4o
KQogICAgIHsKKyAgICAgICAgQVNTRVJUKHNpemUoKSB8fCAoIXdpZHRoKG1faW5pdGlhbEFkdmFu
Y2UpICYmICFoZWlnaHQobV9pbml0aWFsQWR2YW5jZSkpKTsKKyAgICAgICAgaWYgKHNpemUoKSkg
eworICAgICAgICAgICAgbV9pbml0aWFsQWR2YW5jZSA9IG1ha2VHbHlwaEJ1ZmZlckFkdmFuY2Uo
CisgICAgICAgICAgICAgICAgd2lkdGgobV9pbml0aWFsQWR2YW5jZSkgKyB4KG1fb3JpZ2luc1sw
XSksCisgICAgICAgICAgICAgICAgaGVpZ2h0KG1faW5pdGlhbEFkdmFuY2UpICsgeShtX29yaWdp
bnNbMF0pKTsKKyAgICAgICAgfQogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6
ZSgpOyArK2kpIHsKICAgICAgICAgICAgIG1fYWR2YW5jZXNbaV0gPSBtYWtlR2x5cGhCdWZmZXJB
ZHZhbmNlKAogICAgICAgICAgICAgICAgIC14KG1fb3JpZ2luc1tpXSkgKyB3aWR0aChtX2FkdmFu
Y2VzW2ldKSArIChpICsgMSA8IHNpemUoKSA/IHgobV9vcmlnaW5zW2kgKyAxXSkgOiAwKSwKLSAg
ICAgICAgICAgICAgICAteShtX29yaWdpbnNbaV0pICsgaGVpZ2h0KG1fYWR2YW5jZXNbaV0pICsg
KGkgKyAxIDwgc2l6ZSgpID8geShtX29yaWdpbnNbaSArIDFdKSA6IDApCi0gICAgICAgICAgICAp
OworICAgICAgICAgICAgICAgIC15KG1fb3JpZ2luc1tpXSkgKyBoZWlnaHQobV9hZHZhbmNlc1tp
XSkgKyAoaSArIDEgPCBzaXplKCkgPyB5KG1fb3JpZ2luc1tpICsgMV0pIDogMCkpOwogICAgICAg
ICAgICAgbV9vcmlnaW5zW2ldID0gbWFrZUdseXBoQnVmZmVyT3JpZ2luKCk7CiAgICAgICAgIH0K
ICAgICB9CiAKKyNpZiBBU1NFUlRfRU5BQkxFRAogICAgIGJvb2wgaXNGbGF0dGVuZWQoKSBjb25z
dAogICAgIHsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemUoKTsgKytpKSB7
Ci0gICAgICAgICAgICBpZiAobV9vcmlnaW5zW2ldICE9IG1ha2VHbHlwaEJ1ZmZlck9yaWdpbigp
KQorICAgICAgICAgICAgaWYgKHgobV9vcmlnaW5zW2ldKSB8fCB5KG1fb3JpZ2luc1tpXSkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KKyNlbmRpZgogCiBwcml2YXRlOgogICAgIHZvaWQgc3dhcCh1bnNpZ25lZCBp
bmRleDEsIHVuc2lnbmVkIGluZGV4MikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3Jl
VGV4dC5tbQppbmRleCBlOTAxNzRiZWY0MzAzMTBhM2I5ZTVkNDU4MWJmYTFhZGVlZWUwN2RmLi5m
NjZiMjg5NDQ1OTU3ODI0Njc3ZWQ3ZWYwNWM2ODI2M2RiYjkxNjNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29y
ZVRleHQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBs
ZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCkBAIC0zNSw3ICszNSwxMSBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBDb21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0UnVuOjpDb21w
bGV4VGV4dFJ1bihDVFJ1blJlZiBjdFJ1biwgY29uc3QgRm9udCYgZm9udCwgY29uc3QgVUNoYXIq
IGNoYXJhY3RlcnMsIHVuc2lnbmVkIHN0cmluZ0xvY2F0aW9uLCB1bnNpZ25lZCBzdHJpbmdMZW5n
dGgsIHVuc2lnbmVkIGluZGV4QmVnaW4sIHVuc2lnbmVkIGluZGV4RW5kKQorI2lmIEhBVkUoQ1RS
VU5HRVRJTklUSUFMQkFTRUFEVkFOQ0UpCisgICAgOiBtX2luaXRpYWxBZHZhbmNlKENUUnVuR2V0
SW5pdGlhbEJhc2VBZHZhbmNlKGN0UnVuKSkKKyNlbHNlCiAgICAgOiBtX2luaXRpYWxBZHZhbmNl
KENUUnVuR2V0SW5pdGlhbEFkdmFuY2UoY3RSdW4pKQorI2VuZGlmCiAgICAgLCBtX2ZvbnQoZm9u
dCkKICAgICAsIG1fY2hhcmFjdGVycyhjaGFyYWN0ZXJzKQogICAgICwgbV9zdHJpbmdMZW5ndGgo
c3RyaW5nTGVuZ3RoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDBiZWMzNDgyMTUzYzc5N2NlMzE1YjY4M2RkODNhNmY0ZjExYjgxNDguLmFjZGUx
YzkyOTA2Yzc2MTY4MGEyYTUyNWFkYjk3OTFhYzQ5NmE4NzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wOC0w
NCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtD
b2NvYV0gQ29tcGxleFRleHRDb250cm9sbGVyJ3Mgbm90aW9uIG9mIGdseXBoIHJ1biBpbml0aWFs
IGFkdmFuY2UgaXMgd3JvbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyODE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbXBsZXhUZXh0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorCiAyMDIxLTA4LTA0
ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbd2Via2l0
Y29yZXB5XSBBZGQgc2hhcmVkIHRlcm1pbmFsIGlucHV0IGNvZGUKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbXBsZXhUZXh0Q29udHJvbGxlci5j
cHAKaW5kZXggYmNmMDMyOTU1YmUyZWJkZmZlNjkzZDhhOGJiZDgyYmY5NDJmOWQ5OS4uNGI3Yzlm
ZGJiMmUzYmVkZjI1MmFhYmU2OWRlYTZjYTY0YWI4YTc5OCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbXBsZXhUZXh0Q29udHJvbGxlci5j
cHAKQEAgLTY4LDEwICs2OCwxMCBAQCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVyVGVzdCwg
SW5pdGlhbEFkdmFuY2VXaXRoTGVmdFJ1bkluUlRMKQogICAgIHJ1bnMuYXBwZW5kKFdURk1vdmUo
cnVuMikpOwogICAgIENvbXBsZXhUZXh0Q29udHJvbGxlciBjb250cm9sbGVyKGZvbnQsIHRleHRS
dW4sIHJ1bnMpOwogCi0gICAgZmxvYXQgdG90YWxXaWR0aCA9IDA7Ci0gICAgZm9yIChzaXplX3Qg
aSA9IDE7IGkgPCBhZHZhbmNlcy5zaXplKCk7ICsraSkKKyAgICBmbG9hdCB0b3RhbFdpZHRoID0g
aW5pdGlhbEFkdmFuY2Uud2lkdGgoKSArIHNwYWNlV2lkdGg7CisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBhZHZhbmNlcy5zaXplKCk7ICsraSkKICAgICAgICAgdG90YWxXaWR0aCArPSBhZHZh
bmNlc1tpXS53aWR0aCgpOwotICAgIEVYUEVDVF9ORUFSKGNvbnRyb2xsZXIudG90YWxBZHZhbmNl
KCkud2lkdGgoKSwgc3BhY2VXaWR0aCArIHRvdGFsV2lkdGgsIDAuMDAwMSk7CisgICAgRVhQRUNU
X05FQVIoY29udHJvbGxlci50b3RhbEFkdmFuY2UoKS53aWR0aCgpLCB0b3RhbFdpZHRoLCAwLjAw
MDEpOwogICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOwogICAgIEVYUEVDVF9ORUFSKGNvbnRy
b2xsZXIucnVuV2lkdGhTb0ZhcigpLCAwLCAwLjAwMDEpOwogICAgIGNvbnRyb2xsZXIuYWR2YW5j
ZSgwLCAmZ2x5cGhCdWZmZXIpOwpAQCAtNzksNyArNzksNyBAQCBURVNUX0YoQ29tcGxleFRleHRD
b250cm9sbGVyVGVzdCwgSW5pdGlhbEFkdmFuY2VXaXRoTGVmdFJ1bkluUlRMKQogICAgIGNvbnRy
b2xsZXIuYWR2YW5jZSgxLCAmZ2x5cGhCdWZmZXIpOwogICAgIEVYUEVDVF9ORUFSKGNvbnRyb2xs
ZXIucnVuV2lkdGhTb0ZhcigpLCBhZHZhbmNlc1s0XS53aWR0aCgpLCAwLjAwMDEpOwogICAgIGNv
bnRyb2xsZXIuYWR2YW5jZSg2LCAmZ2x5cGhCdWZmZXIpOwotICAgIEVYUEVDVF9ORUFSKGNvbnRy
b2xsZXIucnVuV2lkdGhTb0ZhcigpLCBzcGFjZVdpZHRoICsgdG90YWxXaWR0aCwgMC4wMDAxKTsK
KyAgICBFWFBFQ1RfTkVBUihjb250cm9sbGVyLnJ1bldpZHRoU29GYXIoKSwgdG90YWxXaWR0aCwg
MC4wMDAxKTsKICAgICBFWFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5pbml0aWFsQWR2YW5j
ZSgpKSwgMCwgMC4wMDAxKTsKICAgICBFWFBFQ1RfTkVBUihoZWlnaHQoZ2x5cGhCdWZmZXIuaW5p
dGlhbEFkdmFuY2UoKSksIDAsIDAuMDAwMSk7CiAgICAgRVhQRUNUX0VRKGdseXBoQnVmZmVyLnNp
emUoKSwgNlUpOwpAQCAtODgsNyArODgsNyBAQCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVy
VGVzdCwgSW5pdGlhbEFkdmFuY2VXaXRoTGVmdFJ1bkluUlRMKQogICAgIEVYUEVDVF9ORUFSKHdp
ZHRoKGdseXBoQnVmZmVyLmFkdmFuY2VBdCgyKSksIHdpZHRoKGFkdmFuY2VzWzJdKSwgMC4wMDAx
KTsKICAgICBFWFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoMykpLCB3aWR0
aChhZHZhbmNlc1sxXSksIDAuMDAwMSk7CiAgICAgRVhQRUNUX05FQVIod2lkdGgoZ2x5cGhCdWZm
ZXIuYWR2YW5jZUF0KDQpKSwgLXdpZHRoKGluaXRpYWxBZHZhbmNlKSwgMC4wMDAxKTsKLSAgICBF
WFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoNSkpLCBzcGFjZVdpZHRoICsg
d2lkdGgoaW5pdGlhbEFkdmFuY2UpLCAwLjAwMDEpOworICAgIEVYUEVDVF9ORUFSKHdpZHRoKGds
eXBoQnVmZmVyLmFkdmFuY2VBdCg1KSksIHNwYWNlV2lkdGggKyB3aWR0aChpbml0aWFsQWR2YW5j
ZSkgKyB3aWR0aChpbml0aWFsQWR2YW5jZSksIDAuMDAwMSk7CiB9CiAKIFRFU1RfRihDb21wbGV4
VGV4dENvbnRyb2xsZXJUZXN0LCBJbml0aWFsQWR2YW5jZUluUlRMKQpAQCAtMTEyLDggKzExMiw4
IEBAIFRFU1RfRihDb21wbGV4VGV4dENvbnRyb2xsZXJUZXN0LCBJbml0aWFsQWR2YW5jZUluUlRM
KQogICAgIHJ1bnMuYXBwZW5kKFdURk1vdmUocnVuKSk7CiAgICAgQ29tcGxleFRleHRDb250cm9s
bGVyIGNvbnRyb2xsZXIoZm9udCwgdGV4dFJ1biwgcnVucyk7CiAKLSAgICBmbG9hdCB0b3RhbFdp
ZHRoID0gMDsKLSAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8IGFkdmFuY2VzLnNpemUoKTsgKytp
KQorICAgIGZsb2F0IHRvdGFsV2lkdGggPSBpbml0aWFsQWR2YW5jZS53aWR0aCgpOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgYWR2YW5jZXMuc2l6ZSgpOyArK2kpCiAgICAgICAgIHRvdGFs
V2lkdGggKz0gYWR2YW5jZXNbaV0ud2lkdGgoKTsKICAgICBFWFBFQ1RfTkVBUihjb250cm9sbGVy
LnRvdGFsQWR2YW5jZSgpLndpZHRoKCksIHRvdGFsV2lkdGgsIDAuMDAwMSk7CiAgICAgR2x5cGhC
dWZmZXIgZ2x5cGhCdWZmZXI7CkBAIC0xMjQsMTUgKzEyNCwxNSBAQCBURVNUX0YoQ29tcGxleFRl
eHRDb250cm9sbGVyVGVzdCwgSW5pdGlhbEFkdmFuY2VJblJUTCkKICAgICBFWFBFQ1RfTkVBUihj
b250cm9sbGVyLnJ1bldpZHRoU29GYXIoKSwgYWR2YW5jZXNbNF0ud2lkdGgoKSwgMC4wMDAxKTsK
ICAgICBjb250cm9sbGVyLmFkdmFuY2UoNSwgJmdseXBoQnVmZmVyKTsKICAgICBFWFBFQ1RfTkVB
Uihjb250cm9sbGVyLnJ1bldpZHRoU29GYXIoKSwgdG90YWxXaWR0aCwgMC4wMDAxKTsKLSAgICBF
WFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5pbml0aWFsQWR2YW5jZSgpKSwgaW5pdGlhbEFk
dmFuY2Uud2lkdGgoKSwgMC4wMDAxKTsKLSAgICBFWFBFQ1RfTkVBUihoZWlnaHQoZ2x5cGhCdWZm
ZXIuaW5pdGlhbEFkdmFuY2UoKSksIGluaXRpYWxBZHZhbmNlLmhlaWdodCgpLCAwLjAwMDEpOwor
ICAgIEVYUEVDVF9ORUFSKHdpZHRoKGdseXBoQnVmZmVyLmluaXRpYWxBZHZhbmNlKCkpLCBpbml0
aWFsQWR2YW5jZS53aWR0aCgpICsgb3JpZ2luc1swXS54KCksIDAuMDAwMSk7CisgICAgRVhQRUNU
X05FQVIoaGVpZ2h0KGdseXBoQnVmZmVyLmluaXRpYWxBZHZhbmNlKCkpLCBpbml0aWFsQWR2YW5j
ZS5oZWlnaHQoKSArIG9yaWdpbnNbMF0ueSgpLCAwLjAwMDEpOwogICAgIEVYUEVDVF9FUShnbHlw
aEJ1ZmZlci5zaXplKCksIDVVKTsKICAgICBFWFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5h
ZHZhbmNlQXQoMCkpLCBhZHZhbmNlc1s0XS53aWR0aCgpLCAwLjAwMDEpOwogICAgIEVYUEVDVF9O
RUFSKHdpZHRoKGdseXBoQnVmZmVyLmFkdmFuY2VBdCgxKSksIGFkdmFuY2VzWzNdLndpZHRoKCks
IDAuMDAwMSk7CiAgICAgRVhQRUNUX05FQVIod2lkdGgoZ2x5cGhCdWZmZXIuYWR2YW5jZUF0KDIp
KSwgYWR2YW5jZXNbMl0ud2lkdGgoKSwgMC4wMDAxKTsKICAgICBFWFBFQ1RfTkVBUih3aWR0aChn
bHlwaEJ1ZmZlci5hZHZhbmNlQXQoMykpLCBhZHZhbmNlc1sxXS53aWR0aCgpLCAwLjAwMDEpOwot
ICAgIEVYUEVDVF9ORUFSKHdpZHRoKGdseXBoQnVmZmVyLmFkdmFuY2VBdCg0KSksIC1pbml0aWFs
QWR2YW5jZS53aWR0aCgpLCAwLjAwMDEpOwotICAgIEVYUEVDVF9ORUFSKGhlaWdodChnbHlwaEJ1
ZmZlci5hZHZhbmNlQXQoNCkpLCBpbml0aWFsQWR2YW5jZS5oZWlnaHQoKSwgMC4wMDAxKTsKKyAg
ICBFWFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoNCkpLCAtb3JpZ2luc1sw
XS54KCkgKyBhZHZhbmNlc1swXS53aWR0aCgpLCAwLjAwMDEpOworICAgIEVYUEVDVF9ORUFSKGhl
aWdodChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoNCkpLCBvcmlnaW5zWzBdLnkoKSAtIGFkdmFuY2Vz
WzBdLmhlaWdodCgpLCAwLjAwMDEpOwogfQogCiBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVy
VGVzdCwgSW5pdGlhbEFkdmFuY2VXaXRoTGVmdFJ1bkluTFRSKQpAQCAtMTY1LDcgKzE2NSw3IEBA
IFRFU1RfRihDb21wbGV4VGV4dENvbnRyb2xsZXJUZXN0LCBJbml0aWFsQWR2YW5jZVdpdGhMZWZ0
UnVuSW5MVFIpCiAgICAgY29udHJvbGxlci5hZHZhbmNlKDAsICZnbHlwaEJ1ZmZlcik7CiAgICAg
RVhQRUNUX05FQVIoY29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCksIDAsIDAuMDAwMSk7CiAgICAg
Y29udHJvbGxlci5hZHZhbmNlKDEsICZnbHlwaEJ1ZmZlcik7Ci0gICAgRVhQRUNUX05FQVIoY29u
dHJvbGxlci5ydW5XaWR0aFNvRmFyKCksIHNwYWNlV2lkdGgsIDAuMDAwMSk7CisgICAgRVhQRUNU
X05FQVIoY29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCksIHNwYWNlV2lkdGggKyBpbml0aWFsQWR2
YW5jZS53aWR0aCgpLCAwLjAwMDEpOwogICAgIGNvbnRyb2xsZXIuYWR2YW5jZSgyLCAmZ2x5cGhC
dWZmZXIpOwogICAgIEVYUEVDVF9ORUFSKGNvbnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpLCBzcGFj
ZVdpZHRoICsgYWR2YW5jZXNbMF0ud2lkdGgoKSArIGluaXRpYWxBZHZhbmNlLndpZHRoKCksIDAu
MDAwMSk7CiAgICAgY29udHJvbGxlci5hZHZhbmNlKDMsICZnbHlwaEJ1ZmZlcik7CkBAIC0zMjMs
MTIgKzMyMywxMiBAQCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVyVGVzdCwgVmVydGljYWxB
ZHZhbmNlcykKICAgICBjb250cm9sbGVyLmFkdmFuY2UoNCwgJmdseXBoQnVmZmVyKTsKICAgICBF
WFBFQ1RfTkVBUihjb250cm9sbGVyLnJ1bldpZHRoU29GYXIoKSwgMCwgMC4wMDAxKTsKICAgICBF
WFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5pbml0aWFsQWR2YW5jZSgpKSwgMCwgMC4wMDAx
KTsKLSAgICBFWFBFQ1RfTkVBUihoZWlnaHQoZ2x5cGhCdWZmZXIuaW5pdGlhbEFkdmFuY2UoKSks
IDE2LCAwLjAwMDEpOworICAgIEVYUEVDVF9ORUFSKGhlaWdodChnbHlwaEJ1ZmZlci5pbml0aWFs
QWR2YW5jZSgpKSwgMTYgKyA0LCAwLjAwMDEpOwogICAgIEVYUEVDVF9FUShnbHlwaEJ1ZmZlci5z
aXplKCksIDRVKTsKICAgICBFWFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQo
MCkpLCAwLCAwLjAwMDEpOwogICAgIEVYUEVDVF9ORUFSKGhlaWdodChnbHlwaEJ1ZmZlci5hZHZh
bmNlQXQoMCkpLCA0IC0gMSAtOCwgMC4wMDAxKTsKICAgICBFWFBFQ1RfTkVBUih3aWR0aChnbHlw
aEJ1ZmZlci5hZHZhbmNlQXQoMSkpLCAwLCAwLjAwMDEpOwotICAgIEVYUEVDVF9ORUFSKGhlaWdo
dChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoMSkpLCA4IC0gMiAtIDUxMiwgMC4wMDAxKTsKKyAgICBF
WFBFQ1RfTkVBUihoZWlnaHQoZ2x5cGhCdWZmZXIuYWR2YW5jZUF0KDEpKSwgOCAtIDIgLSAxMjgg
LSA1MTIsIDAuMDAwMSk7CiAgICAgRVhQRUNUX05FQVIod2lkdGgoZ2x5cGhCdWZmZXIuYWR2YW5j
ZUF0KDIpKSwgMCwgMC4wMDAxKTsKICAgICBFWFBFQ1RfTkVBUihoZWlnaHQoZ2x5cGhCdWZmZXIu
YWR2YW5jZUF0KDIpKSwgMTI4IC0gMzIgLSAyNTYsIDAuMDAwMSk7CiAgICAgRVhQRUNUX05FQVIo
d2lkdGgoZ2x5cGhCdWZmZXIuYWR2YW5jZUF0KDMpKSwgMCwgMC4wMDAxKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435326</attachid>
            <date>2021-08-10 23:46:19 -0700</date>
            <delta_ts>2021-08-10 23:46:19 -0700</delta_ts>
            <desc>Patch that does everything right with the SPI</desc>
            <filename>bug-228180-20210810234618.patch</filename>
            <type>text/plain</type>
            <size>23607</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwODgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBlNDExNjY0ODIxZjY1
YzQ1M2MyYjYyNjVjYTdjM2UwNmE5YjlhYS4uZDBmMzVlNjk4NDIxMDgyNzNkM2Q5OTcwZDI2MTIx
Yjc2NzYyZGM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTA4LTEwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBD
b21wbGV4VGV4dENvbnRyb2xsZXIncyBub3Rpb24gb2YgZ2x5cGggcnVuIGluaXRpYWwgYWR2YW5j
ZSBpcyB3cm9uZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI4MTgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9D
b21wbGV4VGV4dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRD
b250cm9sbGVyOjpvZmZzZXRGb3JQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4
VGV4dENvbnRyb2xsZXI6OmFkdmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRD
b250cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRBZHZhbmNlcyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR2x5cGhCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdseXBoQnVmZmVyOjpmbGF0
dGVuKToKKyAgICAgICAgKFdlYkNvcmU6OkdseXBoQnVmZmVyOjppc0ZsYXR0ZW5lZCBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNv
cmVUZXh0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjpDb21w
bGV4VGV4dFJ1bjo6Q29tcGxleFRleHRSdW4pOgorCiAyMDIxLTA4LTEwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIENyb3NzLU9yaWdpbi1PcGVuZXItUG9s
aWN5IHN1cHBvcnQgZm9yIEJsb2IgVVJMcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggZjFiN2M4ZmYw
ODQ1ZWVkYjQzNWMxMWFlYjIxZmRjZTg0MTkyNjUzYS4uOGY5MjdmMGZjNjFlOWRhMWUwMWU4ZDNm
NDY2MDU2ZjQxNzU1Zjc0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MjEtMDgtMTAgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAg
ICAgICBbQ29jb2FdIENvbXBsZXhUZXh0Q29udHJvbGxlcidzIG5vdGlvbiBvZiBnbHlwaCBydW4g
aW5pdGlhbCBhZHZhbmNlIGlzIHdyb25nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjgxODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHBhbC9zcGkvY2YvQ29yZVRleHRTUEkuaDoKKwogMjAyMS0wOC0x
MCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NmL0NvcmVUZXh0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9Db3JlVGV4
dFNQSS5oCmluZGV4IDQ5MDg2NjM5OGM0YjUwNDU0MDk0YmJhOTRmZTgxOGRhYzNlZjhjZGEuLmI5
Yjc3NzFiNTJkYzg2NmM5MmNjZGQ2ZTEzNDA1NGQ0OTQ2OGE1NzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NvcmVUZXh0U1BJLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY2YvQ29yZVRleHRTUEkuaApAQCAtMTExLDYgKzExMSw3IEBAIGJvb2wg
Q1RGb250VHJhbnNmb3JtR2x5cGhzKENURm9udFJlZiwgQ0dHbHlwaCBnbHlwaHNbXSwgQ0dTaXpl
IGFkdmFuY2VzW10sIENGSW5kCiBDR1NpemUgQ1RGb250U2hhcGVHbHlwaHMoQ1RGb250UmVmLCBD
R0dseXBoIGdseXBoc1tdLCBDR1NpemUgYWR2YW5jZXNbXSwgQ0dQb2ludCBvcmlnaW5zW10sIENG
SW5kZXggaW5kZXhlc1tdLCBjb25zdCBVbmlDaGFyIGNoYXJzW10sIENGSW5kZXggY291bnQsIENU
Rm9udFNoYXBlT3B0aW9ucywgQ0ZTdHJpbmdSZWYgbGFuZ3VhZ2UsIHZvaWQgKF5oYW5kbGVyKShD
RlJhbmdlLCBDR0dseXBoKiosIENHU2l6ZSoqLCBDR1BvaW50KiosIENGSW5kZXgqKikpOwogI2Vu
ZGlmCiAKK0NHU2l6ZSBDVFJ1bkdldEluaXRpYWxCYXNlQWR2YW5jZShDVFJ1blJlZik7CiBDR1Np
emUgQ1RSdW5HZXRJbml0aWFsQWR2YW5jZShDVFJ1blJlZik7CiBDVExpbmVSZWYgQ1RMaW5lQ3Jl
YXRlV2l0aFVuaUNoYXJQcm92aWRlcihDVFVuaUNoYXJQcm92aWRlckNhbGxiYWNrLCBDVFVuaUNo
YXJEaXNwb3NlQ2FsbGJhY2ssIHZvaWQqIHJlZkNvbik7CiB2b2lkIENUUnVuR2V0QmFzZUFkdmFu
Y2VzQW5kT3JpZ2lucyhDVFJ1blJlZiwgQ0ZSYW5nZSwgQ0dTaXplIGJhc2VBZHZhbmNlc1tdLCBD
R1BvaW50IG9yaWdpbnNbXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAppbmRleCA0NDkzMmRlZmNkOTg2
M2U2MGYyMGNhOWQxNzYyYTc5NjUzMGIxZmI4Li44MmY4MTJmOTlhYWU3ZWQyOTE0MGVhYTE3NDNl
MjBlMzQzNDQzMjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKQEAgLTE3NSw3ICsxNzUsNyBAQCB1
bnNpZ25lZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6Om9mZnNldEZvclBvc2l0aW9uKGZsb2F0IGgs
IGJvb2wgaW5jbHVkZVBhcnRpYWxHbAogICAgIGlmIChoIDwgMCkKICAgICAgICAgcmV0dXJuIG1f
cnVuLmx0cigpID8gMCA6IG1fZW5kOwogCi0gICAgZmxvYXQgeCA9IGg7CisgICAgZmxvYXQgeCA9
IGggLSBtX2NvbXBsZXhUZXh0UnVuc1swXS0+aW5pdGlhbEFkdmFuY2UoKS53aWR0aCgpOwogCiAg
ICAgc2l6ZV90IHJ1bkNvdW50ID0gbV9jb21wbGV4VGV4dFJ1bnMuc2l6ZSgpOwogICAgIHVuc2ln
bmVkIG9mZnNldEludG9BZGp1c3RlZEdseXBocyA9IDA7CkBAIC01NTEsNiArNTUxLDcgQEAgZmxv
YXQgQ29tcGxleFRleHRDb250cm9sbGVyOjpydW5XaWR0aFNvRmFyRnJhY3Rpb24odW5zaWduZWQg
Z2x5cGhTdGFydE9mZnNldCwgdW4KICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fY2hh
cmFjdGVySW5DdXJyZW50R2x5cGggLSBvbGRDaGFyYWN0ZXJJbkN1cnJlbnRHbHlwaCkgLyAoZ2x5
cGhFbmRPZmZzZXQgLSBnbHlwaFN0YXJ0T2Zmc2V0KTsKIH0KIAorLy8gVGhpcyBmdW5jdGlvbiBl
bWl0cyBwcmUtZmxhdHRlbmVkIGluZm9ybWF0aW9uIGludG8gdGhlIEdseXBoQnVmZmVyLgogdm9p
ZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OmFkdmFuY2UodW5zaWduZWQgb2Zmc2V0LCBHbHlwaEJ1
ZmZlciogZ2x5cGhCdWZmZXIsIEdseXBoSXRlcmF0aW9uU3R5bGUgaXRlcmF0aW9uU3R5bGUsIEhh
c2hTZXQ8Y29uc3QgRm9udCo+KiBmYWxsYmFja0ZvbnRzKQogewogICAgIGlmIChvZmZzZXQgPiBt
X2VuZCkKQEAgLTU4Myw3ICs1ODQsNyBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6YWR2
YW5jZSh1bnNpZ25lZCBvZmZzZXQsIEdseXBoQnVmZmVyKiBnbHlwaEJ1ZmZlciwgRwogICAgICAg
ICAvLyBXaGVuIGxlZnRtb3N0R2x5cGggaXMgMCwgaXQgcmVwcmVzZW50cyB0aGUgZmlyc3QgZ2x5
cGggdG8gZHJhdywgdGFraW5nIGludG8KICAgICAgICAgLy8gYWNjb3VudCB0aGUgdGV4dCBkaXJl
Y3Rpb24uCiAgICAgICAgIGlmICghaW5kZXhPZkxlZnRtb3N0R2x5cGhJbkN1cnJlbnRSdW4gJiYg
Z2x5cGhCdWZmZXIpCi0gICAgICAgICAgICBnbHlwaEJ1ZmZlci0+c2V0SW5pdGlhbEFkdmFuY2Uo
bWFrZUdseXBoQnVmZmVyQWR2YW5jZShjb21wbGV4VGV4dFJ1bi5pbml0aWFsQWR2YW5jZSgpKSk7
CisgICAgICAgICAgICBnbHlwaEJ1ZmZlci0+c2V0SW5pdGlhbEFkdmFuY2UobWFrZUdseXBoQnVm
ZmVyQWR2YW5jZShnbHlwaE9yaWdpbigwKSArIGNvbXBsZXhUZXh0UnVuLmluaXRpYWxBZHZhbmNl
KCkgLSBGbG9hdFBvaW50KCkpKTsKIAogICAgICAgICB3aGlsZSAobV9nbHlwaEluQ3VycmVudFJ1
biA8IGdseXBoQ291bnQpIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGdseXBoU3RhcnRPZmZzZXQg
PSBjb21wbGV4VGV4dFJ1bi5pbmRleEF0KGdseXBoSW5kZXhJbnRvQ3VycmVudFJ1bik7CkBAIC02
MDEsMzEgKzYwMiwyMCBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6YWR2YW5jZSh1bnNp
Z25lZCBvZmZzZXQsIEdseXBoQnVmZmVyKiBnbHlwaEJ1ZmZlciwgRwogICAgICAgICAgICAgaWYg
KGdseXBoU3RhcnRPZmZzZXQgKyBjb21wbGV4VGV4dFJ1bi5zdHJpbmdMb2NhdGlvbigpID49IG1f
Y3VycmVudENoYXJhY3RlcikKICAgICAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAgICAg
IGF1dG8gY3VycmVudEdseXBoT3JpZ2luID0gZ2x5cGhPcmlnaW4oZ2x5cGhJbmRleEludG9Db21w
bGV4VGV4dENvbnRyb2xsZXIpOwogICAgICAgICAgICAgaWYgKGdseXBoQnVmZmVyICYmICFtX2No
YXJhY3RlckluQ3VycmVudEdseXBoKSB7Ci0gICAgICAgICAgICAgICAgYXV0byBjdXJyZW50R2x5
cGhPcmlnaW4gPSBnbHlwaE9yaWdpbihnbHlwaEluZGV4SW50b0NvbXBsZXhUZXh0Q29udHJvbGxl
cik7Ci0gICAgICAgICAgICAgICAgR2x5cGhCdWZmZXJBZHZhbmNlIHBhaW50QWR2YW5jZSA9IG1h
a2VHbHlwaEJ1ZmZlckFkdmFuY2UoYWRqdXN0ZWRCYXNlQWR2YW5jZSk7Ci0gICAgICAgICAgICAg
ICAgaWYgKCFnbHlwaEluZGV4SW50b0N1cnJlbnRSdW4pIHsKLSAgICAgICAgICAgICAgICAgICAg
Ly8gVGhlIGZpcnN0IGxheW91dCBhZHZhbmNlIG9mIGV2ZXJ5IHJ1biBpbmNsdWRlcyB0aGUgImlu
aXRpYWwgbGF5b3V0IGFkdmFuY2UuIiBIb3dldmVyLCBoZXJlLCB3ZSBuZWVkCi0gICAgICAgICAg
ICAgICAgICAgIC8vIHBhaW50IGFkdmFuY2VzLCBzbyBzdWJ0cmFjdCBpdCBvdXQgYmVmb3JlIHRy
YW5zZm9ybWluZyB0aGUgbGF5b3V0IGFkdmFuY2UgaW50byBhIHBhaW50IGFkdmFuY2UuCi0gICAg
ICAgICAgICAgICAgICAgIHNldFdpZHRoKHBhaW50QWR2YW5jZSwgd2lkdGgocGFpbnRBZHZhbmNl
KSAtIChjb21wbGV4VGV4dFJ1bi5pbml0aWFsQWR2YW5jZSgpLndpZHRoKCkgLSBjdXJyZW50R2x5
cGhPcmlnaW4ueCgpKSk7Ci0gICAgICAgICAgICAgICAgICAgIHNldEhlaWdodChwYWludEFkdmFu
Y2UsIGhlaWdodChwYWludEFkdmFuY2UpIC0gKGNvbXBsZXhUZXh0UnVuLmluaXRpYWxBZHZhbmNl
KCkuaGVpZ2h0KCkgLSBjdXJyZW50R2x5cGhPcmlnaW4ueSgpKSk7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIHNldFdpZHRoKHBhaW50QWR2YW5jZSwgd2lkdGgocGFpbnRBZHZh
bmNlKSArIGdseXBoT3JpZ2luKGdseXBoSW5kZXhJbnRvQ29tcGxleFRleHRDb250cm9sbGVyICsg
MSkueCgpIC0gY3VycmVudEdseXBoT3JpZ2luLngoKSk7Ci0gICAgICAgICAgICAgICAgc2V0SGVp
Z2h0KHBhaW50QWR2YW5jZSwgaGVpZ2h0KHBhaW50QWR2YW5jZSkgKyBnbHlwaE9yaWdpbihnbHlw
aEluZGV4SW50b0NvbXBsZXhUZXh0Q29udHJvbGxlciArIDEpLnkoKSAtIGN1cnJlbnRHbHlwaE9y
aWdpbi55KCkpOwotICAgICAgICAgICAgICAgIGlmIChnbHlwaEluZGV4SW50b0N1cnJlbnRSdW4g
PT0gZ2x5cGhDb3VudCAtIDEgJiYgY3VycmVudFJ1bkluZGV4ICsgMSA8IHJ1bkNvdW50KSB7Ci0g
ICAgICAgICAgICAgICAgICAgIC8vIE91ciBwYWludCBhZHZhbmNlIHBvaW50cyB0byB0aGUgZW5k
IG9mIHRoZSBydW4uIEhvd2V2ZXIsIHRoZSBuZXh0IHJ1biBtYXkgaGF2ZSBhbgotICAgICAgICAg
ICAgICAgICAgICAvLyBpbml0aWFsIGFkdmFuY2UsIGFuZCBvdXIgcGFpbnQgYWR2YW5jZSBuZWVk
cyB0byBwb2ludCB0byB0aGUgbG9jYXRpb24gb2YgdGhlIG5leHQKLSAgICAgICAgICAgICAgICAg
ICAgLy8gZ2x5cGguIFNvLCB3ZSBuZWVkIHRvIGFkZCBpbiB0aGUgbmV4dCBydW4ncyBpbml0aWFs
IGFkdmFuY2UuCi0gICAgICAgICAgICAgICAgICAgIHNldFdpZHRoKHBhaW50QWR2YW5jZSwgd2lk
dGgocGFpbnRBZHZhbmNlKSAtIGdseXBoT3JpZ2luKGdseXBoSW5kZXhJbnRvQ29tcGxleFRleHRD
b250cm9sbGVyICsgMSkueCgpICsgbV9jb21wbGV4VGV4dFJ1bnNbY3VycmVudFJ1bkluZGV4ICsg
MV0tPmluaXRpYWxBZHZhbmNlKCkud2lkdGgoKSk7Ci0gICAgICAgICAgICAgICAgICAgIHNldEhl
aWdodChwYWludEFkdmFuY2UsIGhlaWdodChwYWludEFkdmFuY2UpIC0gZ2x5cGhPcmlnaW4oZ2x5
cGhJbmRleEludG9Db21wbGV4VGV4dENvbnRyb2xsZXIgKyAxKS55KCkgKyBtX2NvbXBsZXhUZXh0
UnVuc1tjdXJyZW50UnVuSW5kZXggKyAxXS0+aW5pdGlhbEFkdmFuY2UoKS5oZWlnaHQoKSk7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHNldEhlaWdodChwYWludEFkdmFuY2Us
IC1oZWlnaHQocGFpbnRBZHZhbmNlKSk7IC8vIEluY3JlYXNpbmcgeSBwb2ludHMgZG93bgorICAg
ICAgICAgICAgICAgIGF1dG8gbmV4dEdseXBoT3JpZ2luID0gZ2x5cGhPcmlnaW4oZ2x5cGhJbmRl
eEludG9Db21wbGV4VGV4dENvbnRyb2xsZXIgKyAxKTsKKyAgICAgICAgICAgICAgICBHbHlwaEJ1
ZmZlckFkdmFuY2UgcGFpbnRBZHZhbmNlID0gbWFrZUdseXBoQnVmZmVyQWR2YW5jZSgKKyAgICAg
ICAgICAgICAgICAgICAgYWRqdXN0ZWRCYXNlQWR2YW5jZS53aWR0aCgpICsgbmV4dEdseXBoT3Jp
Z2luLngoKSAtIGN1cnJlbnRHbHlwaE9yaWdpbi54KCksCisgICAgICAgICAgICAgICAgICAgIC0o
YWRqdXN0ZWRCYXNlQWR2YW5jZS5oZWlnaHQoKSArIG5leHRHbHlwaE9yaWdpbi55KCkgLSBjdXJy
ZW50R2x5cGhPcmlnaW4ueSgpKSk7CiAgICAgICAgICAgICAgICAgZ2x5cGhCdWZmZXItPmFkZCht
X2FkanVzdGVkR2x5cGhzW2dseXBoSW5kZXhJbnRvQ29tcGxleFRleHRDb250cm9sbGVyXSwgY29t
cGxleFRleHRSdW4uZm9udCgpLCBwYWludEFkdmFuY2UsIGNvbXBsZXhUZXh0UnVuLmluZGV4QXQo
bV9nbHlwaEluQ3VycmVudFJ1bikpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB1bnNp
Z25lZCBvbGRDaGFyYWN0ZXJJbkN1cnJlbnRHbHlwaCA9IG1fY2hhcmFjdGVySW5DdXJyZW50R2x5
cGg7CiAgICAgICAgICAgICBtX2NoYXJhY3RlckluQ3VycmVudEdseXBoID0gc3RkOjptaW4obV9j
dXJyZW50Q2hhcmFjdGVyIC0gY29tcGxleFRleHRSdW4uc3RyaW5nTG9jYXRpb24oKSwgZ2x5cGhF
bmRPZmZzZXQpIC0gZ2x5cGhTdGFydE9mZnNldDsKICAgICAgICAgICAgIG1fcnVuV2lkdGhTb0Zh
ciArPSBhZGp1c3RlZEJhc2VBZHZhbmNlLndpZHRoKCkgKiBydW5XaWR0aFNvRmFyRnJhY3Rpb24o
Z2x5cGhTdGFydE9mZnNldCwgZ2x5cGhFbmRPZmZzZXQsIG9sZENoYXJhY3RlckluQ3VycmVudEds
eXBoLCBpdGVyYXRpb25TdHlsZSk7CisgICAgICAgICAgICBpZiAoIWN1cnJlbnRSdW5JbmRleCAm
JiAhZ2x5cGhJbmRleEludG9DdXJyZW50UnVuKQorICAgICAgICAgICAgICAgIG1fcnVuV2lkdGhT
b0ZhciArPSBjb21wbGV4VGV4dFJ1bi5pbml0aWFsQWR2YW5jZSgpLndpZHRoKCk7CiAKICAgICAg
ICAgICAgIGlmIChnbHlwaEVuZE9mZnNldCArIGNvbXBsZXhUZXh0UnVuLnN0cmluZ0xvY2F0aW9u
KCkgPiBtX2N1cnJlbnRDaGFyYWN0ZXIpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjg1
LDYgKzY3NSw5IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRB
ZHZhbmNlcygpCiAgICAgZm9yIChzaXplX3QgcnVuSW5kZXggPSAwOyBydW5JbmRleCA8IHJ1bkNv
dW50OyArK3J1bkluZGV4KSB7CiAgICAgICAgIENvbXBsZXhUZXh0UnVuJiBjb21wbGV4VGV4dFJ1
biA9ICptX2NvbXBsZXhUZXh0UnVuc1tydW5JbmRleF07CiAgICAgICAgIHVuc2lnbmVkIGdseXBo
Q291bnQgPSBjb21wbGV4VGV4dFJ1bi5nbHlwaENvdW50KCk7CisgICAgICAgIEFTU0VSVChnbHlw
aENvdW50KTsKKyAgICAgICAgaWYgKCFnbHlwaENvdW50KQorICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgIGNvbnN0IEZvbnQmIGZvbnQgPSBjb21wbGV4VGV4dFJ1bi5mb250KCk7CiAKICAg
ICAgICAgaWYgKCFjb21wbGV4VGV4dFJ1bi5pc0xUUigpKQpAQCAtNzIyLDkgKzcxNSwxMiBAQCB2
b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhzQW5kQWR2YW5jZXMoKQogICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoIWkpIHsKLSAgICAgICAgICAgICAgICBhZHZh
bmNlLmV4cGFuZChjb21wbGV4VGV4dFJ1bi5pbml0aWFsQWR2YW5jZSgpLndpZHRoKCksIGNvbXBs
ZXhUZXh0UnVuLmluaXRpYWxBZHZhbmNlKCkuaGVpZ2h0KCkpOwotICAgICAgICAgICAgICAgIGlm
IChhdXRvKiBvcmlnaW5zID0gY29tcGxleFRleHRSdW4uZ2x5cGhPcmlnaW5zKCkpCi0gICAgICAg
ICAgICAgICAgICAgIGFkdmFuY2UuZXhwYW5kKC1vcmlnaW5zWzBdLngoKSwgLW9yaWdpbnNbMF0u
eSgpKTsKKyAgICAgICAgICAgICAgICAvLyBBIHJ1bidzIGluaXRpYWwgYWR2YW5jZSBzaG91bGQg
YmUgYWRkZWQgdG8gdGhlIGxheW91dCBhZHZhbmNlIG9mIHRoZSB2aXN1YWxseSBwcmV2aW91cyBn
bHlwaC4KKyAgICAgICAgICAgICAgICAvLyBIb3dldmVyLCBpZiB0aGVyZSBpcyBubyB2aXN1YWxs
eSBwcmV2aW91cyBnbHlwaCwgdGhlbiB3ZSBqdXN0IGxlYXZlIHRoZSBpbml0aWFsIGFkdmFuY2Ug
YWxvbmUgaW5zaWRlIHRoZSBydW4sCisgICAgICAgICAgICAgICAgLy8gYW5kIHJlbHkgb24gYWR2
YW5jZSgpIHRvIHJlYWQgaXQgYW5kIGhvbm9yIGl0IGNvcnJlY3RseS4KKyAgICAgICAgICAgICAg
ICBpZiAoIW1fYWRqdXN0ZWRCYXNlQWR2YW5jZXMuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAg
ICAgICBtX2FkanVzdGVkQmFzZUFkdmFuY2VzLmxhc3QoKSArPSBjb21wbGV4VGV4dFJ1bi5pbml0
aWFsQWR2YW5jZSgpOworICAgICAgICAgICAgICAgIG1fdG90YWxBZHZhbmNlICs9IGNvbXBsZXhU
ZXh0UnVuLmluaXRpYWxBZHZhbmNlKCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGFk
dmFuY2UuZXhwYW5kKGZvbnQuc3ludGhldGljQm9sZE9mZnNldCgpLCAwKTsKQEAgLTc2MCwxNCAr
NzU2LDE0IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRBZHZh
bmNlcygpCiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIFtleHBhbmRMZWZ0LCBleHBhbmRS
aWdodF0gPSBleHBhbnNpb25Mb2NhdGlvbihpZGVvZ3JhcGgsIHRyZWF0QXNTcGFjZSwgbV9ydW4u
bHRyKCksIGFmdGVyRXhwYW5zaW9uLCBmb3JiaWRMZWZ0RXhwYW5zaW9uLCBmb3JiaWRSaWdodEV4
cGFuc2lvbiwgZm9yY2VMZWZ0RXhwYW5zaW9uLCBmb3JjZVJpZ2h0RXhwYW5zaW9uKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChleHBhbmRMZWZ0KSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV9leHBhbnNpb24gLT0gbV9leHBhbnNpb25QZXJPcHBvcnR1bml0eTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBJbmNyZWFzZSBwcmV2aW91cyB3aWR0aAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChtX2FkanVzdGVkQmFzZUFkdmFuY2VzLmlzRW1wdHko
KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZHZhbmNlLmV4cGFuZChtX2V4
cGFuc2lvblBlck9wcG9ydHVuaXR5LCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBUcmVhdCB0aGlzIGFzIGFuIGluaXRpYWwgYWR2YW5jZSwgYW5kIHRyeSB0byBhZGQgaXQgdG8g
dGhlIGxheW91dCBhZHZhbmNlIG9mIHRoZSB2aXN1YWxseSBwcmV2aW91cyBnbHlwaC4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBIb3dldmVyLCBpZiB0aGVyZSBpcyBubyB2aXN1YWxs
eSBwcmV2aW91cyBnbHlwaCwgdGhlbiB3ZSB1cGRhdGUgdGhpcyBydW4ncyByZWFsIGluaXRpYWwg
YWR2YW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgcmVseSBvbiBDb21w
bGV4VGV4dENvbnRyb2xsZXI6OmFkdmFuY2UoKSdzIGhhbmRsaW5nIG9mIGluaXRpYWwgYWR2YW5j
ZXMgdG8gZG8gdGhlIHJpZ2h0IHRoaW5nLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChtX2FkanVzdGVkQmFzZUFkdmFuY2VzLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29tcGxleFRleHRSdW4uZ3Jvd0luaXRpYWxBZHZhbmNlSG9yaXpvbnRhbGx5
KG1fZXhwYW5zaW9uUGVyT3Bwb3J0dW5pdHkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX2FkanVzdGVkQmFzZUFkdmFuY2VzLmxhc3QoKS5leHBhbmQo
bV9leHBhbnNpb25QZXJPcHBvcnR1bml0eSwgMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1fdG90YWxBZHZhbmNlLmV4cGFuZChtX2V4cGFuc2lvblBlck9wcG9ydHVuaXR5LCAw
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbV90b3RhbEFkdmFuY2UuZXhwYW5kKG1fZXhwYW5zaW9uUGVyT3Bwb3J0dW5pdHksIDAp
OwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGV4cGFuZFJpZ2h0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9leHBhbnNpb24g
LT0gbV9leHBhbnNpb25QZXJPcHBvcnR1bml0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmgKaW5kZXggYTFkNmUz
NmFkYzQ2ODUxMzNhNTAxNGJkZmRmZWMyMjA5NzRiNDVmNy4uMTUxYjc1ZGNiYmRkZmY4Njk3YWMw
YjQ3M2Q0ZDU2NDY2YTg4MmIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmgKQEAgLTEwOCwxMyArMTA4LDEz
IEBAIHB1YmxpYzoKICAgICAgICAgLyoKICAgICAgICAgICogVGhpcyBpcyB0aGUgZm9ybWF0IG9m
IHRoZSBpbmZvcm1hdGlvbiBDb3JlVGV4dCBnaXZlcyB1cyBhYm91dCBlYWNoIHJ1bjoKICAgICAg
ICAgICoKLSAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LS0tLS0+WCAoUGFpbnQgZ2x5cGggcG9zaXRpb24pICAgWCAoUGFpbnQgZ2x5cGggcG9zaXRpb24p
ICAgWCAoUGFpbnQgZ2x5cGggcG9zaXRpb24pCi0gICAgICAgICAqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLyAgICAgNyAgICAgICAgICAgICAgICAgICAgICAgICAgNyAg
ICAgICAgICAgICAgICAgICAgICAgICAgNwotICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLyAgICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICAg
ICAgICAgICAgICAgICAgICAgICAgLwotICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAoSW5p
dGlhbCBhZHZhbmNlKSAvICAgICAvIChHbHlwaCBvcmlnaW4pICAgICAgICAgICAvIChHbHlwaCBv
cmlnaW4pICAgICAgICAgICAvIChHbHlwaCBvcmlnaW4pCi0gICAgICAgICAqICAgICAgICAgICAg
ICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAg
LyAgICAgICAgICAgICAgICAgICAgICAgICAgLwotICAgICAgICAgKiAgICAgICAgICAgICAgICAg
LyAgICAgICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICAg
ICAgICAgICAgICAgICAgICAgICAgLwotICAgICAgICAgKiAgICAgICAgICAgICAgICBYICAgICAg
ICAgICAgICAgICAgICAgICBYLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1YLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS1YLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1YCisgICAgICAgICAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFggKFBhaW50IGdseXBo
IHBvc2l0aW9uKSAgIFggKFBhaW50IGdseXBoIHBvc2l0aW9uKSAgIFggKFBhaW50IGdseXBoIHBv
c2l0aW9uKQorICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDcgICAgICAgICAgICAgICAgICAgICAgICAgIDcgICAgICAgICAgICAgICAgICAgICAg
ICAgIDcKKyAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8gICAgICAgICAgICAgICAgICAgICAgICAgIC8gICAgICAgICAgICAgICAgICAgICAgICAg
IC8KKyAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LyAoR2x5cGggb3JpZ2luKSAgICAgICAgICAgLyAoR2x5cGggb3JpZ2luKSAgICAgICAgICAgLyAo
R2x5cGggb3JpZ2luKQorICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8gICAgICAgICAgICAgICAgICAgICAgICAgIC8gICAgICAgICAgICAgICAgICAg
ICAgICAgIC8KKyAgICAgICAgICogICAgICAgICAgICAgICAgICAgIChJbml0aWFsIGFkdmFuY2Up
ICAgIC8gICAgICAgICAgICAgICAgICAgICAgICAgIC8gICAgICAgICAgICAgICAgICAgICAgICAg
IC8KKyAgICAgICAgICogICAgICAgICAgICAgICAgWC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+WC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+WC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+WC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0+WAogICAgICAgICAgKiAodGV4dCBwb3NpdGlvbiBeKSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGJhc2UgYWR2YW5jZSkgICAgICAgICAgICAgKGJhc2Ug
YWR2YW5jZSkgICAgICAgICAgICAgKGJhc2UgYWR2YW5jZSkKICAgICAgICAgICoKICAgICAgICAg
ICoKQEAgLTEyOSw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgICAgICAqICAgICAgICAgICAgICAg
ICAgIChJbml0aWFsIGFkdmFuY2UpIC8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgKFBhaW50IGFkdmFuY2UpCiAgICAgICAg
ICAqICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0t
LS0tLS0tLS0tCiAgICAgICAgICAqICAgICAgICAgICAgICAgICAvICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgKiAgICAgICAgICAgICAgICBY
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1YLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS1YLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1YCisgICAgICAg
ICAqICAgICAgICAgICAgICAgIFgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tPlgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlgtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tPlgKICAgICAgICAgICogKHRleHQgcG9zaXRpb24gXikgICAgICAgICAgICAgICAg
KGxheW91dCBhZHZhbmNlKSAgICAgICAgICAgICAgICAgICAgICAgKGxheW91dCBhZHZhbmNlKSAg
ICAgICAgICAgKGxheW91dCBhZHZhbmNlKQogICAgICAgICAgKi8KICAgICAgICAgdm9pZCBncm93
SW5pdGlhbEFkdmFuY2VIb3Jpem9udGFsbHkoZmxvYXQgZGVsdGEpIHsgbV9pbml0aWFsQWR2YW5j
ZS5leHBhbmQoZGVsdGEsIDApOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR2x5cGhCdWZmZXIuaAppbmRleCBhZmQ4YmEyNGZjMWNkZTdjZGE5NmM3MmU1ZDZiMzkwYWNi
ZjU2MjNhLi41YTlhZTYyZDkyYTBmNjI0NWE1NDQ2N2E0YjI1OGJlNTMyMjQxNDFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVmZmVyLmgKQEAgLTE3Mywy
MyArMTczLDMzIEBAIHB1YmxpYzoKICAgICAvLyBhbmQgemVyb3Mtb3V0IHRoZSBvcmlnaW5zIGlu
IHRoZSAibV9vcmlnaW5zIiBmaWVsZC4KICAgICB2b2lkIGZsYXR0ZW4oKQogICAgIHsKKyAgICAg
ICAgQVNTRVJUKHNpemUoKSB8fCAoIXdpZHRoKG1faW5pdGlhbEFkdmFuY2UpICYmICFoZWlnaHQo
bV9pbml0aWFsQWR2YW5jZSkpKTsKKyAgICAgICAgaWYgKHNpemUoKSkgeworICAgICAgICAgICAg
bV9pbml0aWFsQWR2YW5jZSA9IG1ha2VHbHlwaEJ1ZmZlckFkdmFuY2UoCisgICAgICAgICAgICAg
ICAgd2lkdGgobV9pbml0aWFsQWR2YW5jZSkgKyB4KG1fb3JpZ2luc1swXSksCisgICAgICAgICAg
ICAgICAgaGVpZ2h0KG1faW5pdGlhbEFkdmFuY2UpICsgeShtX29yaWdpbnNbMF0pKTsKKyAgICAg
ICAgfQogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZSgpOyArK2kpIHsKICAg
ICAgICAgICAgIG1fYWR2YW5jZXNbaV0gPSBtYWtlR2x5cGhCdWZmZXJBZHZhbmNlKAogICAgICAg
ICAgICAgICAgIC14KG1fb3JpZ2luc1tpXSkgKyB3aWR0aChtX2FkdmFuY2VzW2ldKSArIChpICsg
MSA8IHNpemUoKSA/IHgobV9vcmlnaW5zW2kgKyAxXSkgOiAwKSwKLSAgICAgICAgICAgICAgICAt
eShtX29yaWdpbnNbaV0pICsgaGVpZ2h0KG1fYWR2YW5jZXNbaV0pICsgKGkgKyAxIDwgc2l6ZSgp
ID8geShtX29yaWdpbnNbaSArIDFdKSA6IDApCi0gICAgICAgICAgICApOworICAgICAgICAgICAg
ICAgIC15KG1fb3JpZ2luc1tpXSkgKyBoZWlnaHQobV9hZHZhbmNlc1tpXSkgKyAoaSArIDEgPCBz
aXplKCkgPyB5KG1fb3JpZ2luc1tpICsgMV0pIDogMCkpOwogICAgICAgICAgICAgbV9vcmlnaW5z
W2ldID0gbWFrZUdseXBoQnVmZmVyT3JpZ2luKCk7CiAgICAgICAgIH0KICAgICB9CiAKKyNpZiBB
U1NFUlRfRU5BQkxFRAogICAgIGJvb2wgaXNGbGF0dGVuZWQoKSBjb25zdAogICAgIHsKKyAgICAg
ICAgLy8gVGhpcyBkb2Vzbid0IGFjdHVhbGx5IHByb3ZlIHRoYXQgZmxhdHRlbigpIHdhcyBjYWxs
ZWQsCisgICAgICAgIC8vIGJ1dCBpZiB0aGlzIHRlc3QgcGFzc2VzLCB0aGVuIHdlIGNhbiBhdCBs
ZWFzdCBkcmF3IHRoZSBnbHlwaHMgY29ycmVjdGx5LAorICAgICAgICAvLyBldmVuIGlmIHRoZXJl
IHdhcyBhIHByb2dyYW1tZXIgZXJyb3IgYW5kIGZsYXR0ZW4oKSBzaG91bGQgaGF2ZSBiZWVuIGNh
bGxlZC4KICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemUoKTsgKytpKSB7Ci0g
ICAgICAgICAgICBpZiAobV9vcmlnaW5zW2ldICE9IG1ha2VHbHlwaEJ1ZmZlck9yaWdpbigpKQor
ICAgICAgICAgICAgaWYgKHgobV9vcmlnaW5zW2ldKSB8fCB5KG1fb3JpZ2luc1tpXSkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KKyNlbmRpZgogCiBwcml2YXRlOgogICAgIHZvaWQgc3dhcCh1bnNpZ25lZCBpbmRl
eDEsIHVuc2lnbmVkIGluZGV4MikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4
dC5tbQppbmRleCBlOTAxNzRiZWY0MzAzMTBhM2I5ZTVkNDU4MWJmYTFhZGVlZWUwN2RmLi5mOThj
ZGU2ZTgwZjZiOThlZWQ5OTc1YzEzNWVkYmZjZDMwMTVkMDc3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRl
eHQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhU
ZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCkBAIC0zNSw3ICszNSw3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29tcGxleFRleHRSdW46OkNvbXBsZXhU
ZXh0UnVuKENUUnVuUmVmIGN0UnVuLCBjb25zdCBGb250JiBmb250LCBjb25zdCBVQ2hhciogY2hh
cmFjdGVycywgdW5zaWduZWQgc3RyaW5nTG9jYXRpb24sIHVuc2lnbmVkIHN0cmluZ0xlbmd0aCwg
dW5zaWduZWQgaW5kZXhCZWdpbiwgdW5zaWduZWQgaW5kZXhFbmQpCi0gICAgOiBtX2luaXRpYWxB
ZHZhbmNlKENUUnVuR2V0SW5pdGlhbEFkdmFuY2UoY3RSdW4pKQorICAgIDogbV9pbml0aWFsQWR2
YW5jZShDVFJ1bkdldEluaXRpYWxCYXNlQWR2YW5jZShjdFJ1bikpCiAgICAgLCBtX2ZvbnQoZm9u
dCkKICAgICAsIG1fY2hhcmFjdGVycyhjaGFyYWN0ZXJzKQogICAgICwgbV9zdHJpbmdMZW5ndGgo
c3RyaW5nTGVuZ3RoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGVhODIyYzg0ODk1NDQ0OGI4MjJlODJkOWQ0M2M3YTBlNzA2NjYxNmYuLmJmNTIy
OTVkMmIyMjAyMDU3NWJjMzQyZDg4ZDVjNmZjZmM2OTdiMmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wOC0x
MCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtD
b2NvYV0gQ29tcGxleFRleHRDb250cm9sbGVyJ3Mgbm90aW9uIG9mIGdseXBoIHJ1biBpbml0aWFs
IGFkdmFuY2UgaXMgd3JvbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyODE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbXBsZXhUZXh0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorCiAyMDIxLTA4LTEw
ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbd2Via2l0
cHldIFN0b3AgcmVseWluZyBvbiBkZXZpY2UucGxpc3QgZm9yIHNpbXVsYXRlZCBkZXZpY2Ugc3Rh
dGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db21wbGV4
VGV4dENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Nv
bXBsZXhUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggYmNmMDMyOTU1YmUyZWJkZmZlNjkzZDhhOGJi
ZDgyYmY5NDJmOWQ5OS4uNGI3YzlmZGJiMmUzYmVkZjI1MmFhYmU2OWRlYTZjYTY0YWI4YTc5OCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbXBsZXhUZXh0
Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Nv
bXBsZXhUZXh0Q29udHJvbGxlci5jcHAKQEAgLTY4LDEwICs2OCwxMCBAQCBURVNUX0YoQ29tcGxl
eFRleHRDb250cm9sbGVyVGVzdCwgSW5pdGlhbEFkdmFuY2VXaXRoTGVmdFJ1bkluUlRMKQogICAg
IHJ1bnMuYXBwZW5kKFdURk1vdmUocnVuMikpOwogICAgIENvbXBsZXhUZXh0Q29udHJvbGxlciBj
b250cm9sbGVyKGZvbnQsIHRleHRSdW4sIHJ1bnMpOwogCi0gICAgZmxvYXQgdG90YWxXaWR0aCA9
IDA7Ci0gICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBhZHZhbmNlcy5zaXplKCk7ICsraSkKKyAg
ICBmbG9hdCB0b3RhbFdpZHRoID0gaW5pdGlhbEFkdmFuY2Uud2lkdGgoKSArIHNwYWNlV2lkdGg7
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhZHZhbmNlcy5zaXplKCk7ICsraSkKICAgICAg
ICAgdG90YWxXaWR0aCArPSBhZHZhbmNlc1tpXS53aWR0aCgpOwotICAgIEVYUEVDVF9ORUFSKGNv
bnRyb2xsZXIudG90YWxBZHZhbmNlKCkud2lkdGgoKSwgc3BhY2VXaWR0aCArIHRvdGFsV2lkdGgs
IDAuMDAwMSk7CisgICAgRVhQRUNUX05FQVIoY29udHJvbGxlci50b3RhbEFkdmFuY2UoKS53aWR0
aCgpLCB0b3RhbFdpZHRoLCAwLjAwMDEpOwogICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOwog
ICAgIEVYUEVDVF9ORUFSKGNvbnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpLCAwLCAwLjAwMDEpOwog
ICAgIGNvbnRyb2xsZXIuYWR2YW5jZSgwLCAmZ2x5cGhCdWZmZXIpOwpAQCAtNzksNyArNzksNyBA
QCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVyVGVzdCwgSW5pdGlhbEFkdmFuY2VXaXRoTGVm
dFJ1bkluUlRMKQogICAgIGNvbnRyb2xsZXIuYWR2YW5jZSgxLCAmZ2x5cGhCdWZmZXIpOwogICAg
IEVYUEVDVF9ORUFSKGNvbnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpLCBhZHZhbmNlc1s0XS53aWR0
aCgpLCAwLjAwMDEpOwogICAgIGNvbnRyb2xsZXIuYWR2YW5jZSg2LCAmZ2x5cGhCdWZmZXIpOwot
ICAgIEVYUEVDVF9ORUFSKGNvbnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpLCBzcGFjZVdpZHRoICsg
dG90YWxXaWR0aCwgMC4wMDAxKTsKKyAgICBFWFBFQ1RfTkVBUihjb250cm9sbGVyLnJ1bldpZHRo
U29GYXIoKSwgdG90YWxXaWR0aCwgMC4wMDAxKTsKICAgICBFWFBFQ1RfTkVBUih3aWR0aChnbHlw
aEJ1ZmZlci5pbml0aWFsQWR2YW5jZSgpKSwgMCwgMC4wMDAxKTsKICAgICBFWFBFQ1RfTkVBUiho
ZWlnaHQoZ2x5cGhCdWZmZXIuaW5pdGlhbEFkdmFuY2UoKSksIDAsIDAuMDAwMSk7CiAgICAgRVhQ
RUNUX0VRKGdseXBoQnVmZmVyLnNpemUoKSwgNlUpOwpAQCAtODgsNyArODgsNyBAQCBURVNUX0Yo
Q29tcGxleFRleHRDb250cm9sbGVyVGVzdCwgSW5pdGlhbEFkdmFuY2VXaXRoTGVmdFJ1bkluUlRM
KQogICAgIEVYUEVDVF9ORUFSKHdpZHRoKGdseXBoQnVmZmVyLmFkdmFuY2VBdCgyKSksIHdpZHRo
KGFkdmFuY2VzWzJdKSwgMC4wMDAxKTsKICAgICBFWFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZl
ci5hZHZhbmNlQXQoMykpLCB3aWR0aChhZHZhbmNlc1sxXSksIDAuMDAwMSk7CiAgICAgRVhQRUNU
X05FQVIod2lkdGgoZ2x5cGhCdWZmZXIuYWR2YW5jZUF0KDQpKSwgLXdpZHRoKGluaXRpYWxBZHZh
bmNlKSwgMC4wMDAxKTsKLSAgICBFWFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5hZHZhbmNl
QXQoNSkpLCBzcGFjZVdpZHRoICsgd2lkdGgoaW5pdGlhbEFkdmFuY2UpLCAwLjAwMDEpOworICAg
IEVYUEVDVF9ORUFSKHdpZHRoKGdseXBoQnVmZmVyLmFkdmFuY2VBdCg1KSksIHNwYWNlV2lkdGgg
KyB3aWR0aChpbml0aWFsQWR2YW5jZSkgKyB3aWR0aChpbml0aWFsQWR2YW5jZSksIDAuMDAwMSk7
CiB9CiAKIFRFU1RfRihDb21wbGV4VGV4dENvbnRyb2xsZXJUZXN0LCBJbml0aWFsQWR2YW5jZUlu
UlRMKQpAQCAtMTEyLDggKzExMiw4IEBAIFRFU1RfRihDb21wbGV4VGV4dENvbnRyb2xsZXJUZXN0
LCBJbml0aWFsQWR2YW5jZUluUlRMKQogICAgIHJ1bnMuYXBwZW5kKFdURk1vdmUocnVuKSk7CiAg
ICAgQ29tcGxleFRleHRDb250cm9sbGVyIGNvbnRyb2xsZXIoZm9udCwgdGV4dFJ1biwgcnVucyk7
CiAKLSAgICBmbG9hdCB0b3RhbFdpZHRoID0gMDsKLSAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8
IGFkdmFuY2VzLnNpemUoKTsgKytpKQorICAgIGZsb2F0IHRvdGFsV2lkdGggPSBpbml0aWFsQWR2
YW5jZS53aWR0aCgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYWR2YW5jZXMuc2l6ZSgp
OyArK2kpCiAgICAgICAgIHRvdGFsV2lkdGggKz0gYWR2YW5jZXNbaV0ud2lkdGgoKTsKICAgICBF
WFBFQ1RfTkVBUihjb250cm9sbGVyLnRvdGFsQWR2YW5jZSgpLndpZHRoKCksIHRvdGFsV2lkdGgs
IDAuMDAwMSk7CiAgICAgR2x5cGhCdWZmZXIgZ2x5cGhCdWZmZXI7CkBAIC0xMjQsMTUgKzEyNCwx
NSBAQCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVyVGVzdCwgSW5pdGlhbEFkdmFuY2VJblJU
TCkKICAgICBFWFBFQ1RfTkVBUihjb250cm9sbGVyLnJ1bldpZHRoU29GYXIoKSwgYWR2YW5jZXNb
NF0ud2lkdGgoKSwgMC4wMDAxKTsKICAgICBjb250cm9sbGVyLmFkdmFuY2UoNSwgJmdseXBoQnVm
ZmVyKTsKICAgICBFWFBFQ1RfTkVBUihjb250cm9sbGVyLnJ1bldpZHRoU29GYXIoKSwgdG90YWxX
aWR0aCwgMC4wMDAxKTsKLSAgICBFWFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5pbml0aWFs
QWR2YW5jZSgpKSwgaW5pdGlhbEFkdmFuY2Uud2lkdGgoKSwgMC4wMDAxKTsKLSAgICBFWFBFQ1Rf
TkVBUihoZWlnaHQoZ2x5cGhCdWZmZXIuaW5pdGlhbEFkdmFuY2UoKSksIGluaXRpYWxBZHZhbmNl
LmhlaWdodCgpLCAwLjAwMDEpOworICAgIEVYUEVDVF9ORUFSKHdpZHRoKGdseXBoQnVmZmVyLmlu
aXRpYWxBZHZhbmNlKCkpLCBpbml0aWFsQWR2YW5jZS53aWR0aCgpICsgb3JpZ2luc1swXS54KCks
IDAuMDAwMSk7CisgICAgRVhQRUNUX05FQVIoaGVpZ2h0KGdseXBoQnVmZmVyLmluaXRpYWxBZHZh
bmNlKCkpLCBpbml0aWFsQWR2YW5jZS5oZWlnaHQoKSArIG9yaWdpbnNbMF0ueSgpLCAwLjAwMDEp
OwogICAgIEVYUEVDVF9FUShnbHlwaEJ1ZmZlci5zaXplKCksIDVVKTsKICAgICBFWFBFQ1RfTkVB
Uih3aWR0aChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoMCkpLCBhZHZhbmNlc1s0XS53aWR0aCgpLCAw
LjAwMDEpOwogICAgIEVYUEVDVF9ORUFSKHdpZHRoKGdseXBoQnVmZmVyLmFkdmFuY2VBdCgxKSks
IGFkdmFuY2VzWzNdLndpZHRoKCksIDAuMDAwMSk7CiAgICAgRVhQRUNUX05FQVIod2lkdGgoZ2x5
cGhCdWZmZXIuYWR2YW5jZUF0KDIpKSwgYWR2YW5jZXNbMl0ud2lkdGgoKSwgMC4wMDAxKTsKICAg
ICBFWFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoMykpLCBhZHZhbmNlc1sx
XS53aWR0aCgpLCAwLjAwMDEpOwotICAgIEVYUEVDVF9ORUFSKHdpZHRoKGdseXBoQnVmZmVyLmFk
dmFuY2VBdCg0KSksIC1pbml0aWFsQWR2YW5jZS53aWR0aCgpLCAwLjAwMDEpOwotICAgIEVYUEVD
VF9ORUFSKGhlaWdodChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoNCkpLCBpbml0aWFsQWR2YW5jZS5o
ZWlnaHQoKSwgMC4wMDAxKTsKKyAgICBFWFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5hZHZh
bmNlQXQoNCkpLCAtb3JpZ2luc1swXS54KCkgKyBhZHZhbmNlc1swXS53aWR0aCgpLCAwLjAwMDEp
OworICAgIEVYUEVDVF9ORUFSKGhlaWdodChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoNCkpLCBvcmln
aW5zWzBdLnkoKSAtIGFkdmFuY2VzWzBdLmhlaWdodCgpLCAwLjAwMDEpOwogfQogCiBURVNUX0Yo
Q29tcGxleFRleHRDb250cm9sbGVyVGVzdCwgSW5pdGlhbEFkdmFuY2VXaXRoTGVmdFJ1bkluTFRS
KQpAQCAtMTY1LDcgKzE2NSw3IEBAIFRFU1RfRihDb21wbGV4VGV4dENvbnRyb2xsZXJUZXN0LCBJ
bml0aWFsQWR2YW5jZVdpdGhMZWZ0UnVuSW5MVFIpCiAgICAgY29udHJvbGxlci5hZHZhbmNlKDAs
ICZnbHlwaEJ1ZmZlcik7CiAgICAgRVhQRUNUX05FQVIoY29udHJvbGxlci5ydW5XaWR0aFNvRmFy
KCksIDAsIDAuMDAwMSk7CiAgICAgY29udHJvbGxlci5hZHZhbmNlKDEsICZnbHlwaEJ1ZmZlcik7
Ci0gICAgRVhQRUNUX05FQVIoY29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCksIHNwYWNlV2lkdGgs
IDAuMDAwMSk7CisgICAgRVhQRUNUX05FQVIoY29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCksIHNw
YWNlV2lkdGggKyBpbml0aWFsQWR2YW5jZS53aWR0aCgpLCAwLjAwMDEpOwogICAgIGNvbnRyb2xs
ZXIuYWR2YW5jZSgyLCAmZ2x5cGhCdWZmZXIpOwogICAgIEVYUEVDVF9ORUFSKGNvbnRyb2xsZXIu
cnVuV2lkdGhTb0ZhcigpLCBzcGFjZVdpZHRoICsgYWR2YW5jZXNbMF0ud2lkdGgoKSArIGluaXRp
YWxBZHZhbmNlLndpZHRoKCksIDAuMDAwMSk7CiAgICAgY29udHJvbGxlci5hZHZhbmNlKDMsICZn
bHlwaEJ1ZmZlcik7CkBAIC0zMjMsMTIgKzMyMywxMiBAQCBURVNUX0YoQ29tcGxleFRleHRDb250
cm9sbGVyVGVzdCwgVmVydGljYWxBZHZhbmNlcykKICAgICBjb250cm9sbGVyLmFkdmFuY2UoNCwg
JmdseXBoQnVmZmVyKTsKICAgICBFWFBFQ1RfTkVBUihjb250cm9sbGVyLnJ1bldpZHRoU29GYXIo
KSwgMCwgMC4wMDAxKTsKICAgICBFWFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5pbml0aWFs
QWR2YW5jZSgpKSwgMCwgMC4wMDAxKTsKLSAgICBFWFBFQ1RfTkVBUihoZWlnaHQoZ2x5cGhCdWZm
ZXIuaW5pdGlhbEFkdmFuY2UoKSksIDE2LCAwLjAwMDEpOworICAgIEVYUEVDVF9ORUFSKGhlaWdo
dChnbHlwaEJ1ZmZlci5pbml0aWFsQWR2YW5jZSgpKSwgMTYgKyA0LCAwLjAwMDEpOwogICAgIEVY
UEVDVF9FUShnbHlwaEJ1ZmZlci5zaXplKCksIDRVKTsKICAgICBFWFBFQ1RfTkVBUih3aWR0aChn
bHlwaEJ1ZmZlci5hZHZhbmNlQXQoMCkpLCAwLCAwLjAwMDEpOwogICAgIEVYUEVDVF9ORUFSKGhl
aWdodChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoMCkpLCA0IC0gMSAtOCwgMC4wMDAxKTsKICAgICBF
WFBFQ1RfTkVBUih3aWR0aChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoMSkpLCAwLCAwLjAwMDEpOwot
ICAgIEVYUEVDVF9ORUFSKGhlaWdodChnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoMSkpLCA4IC0gMiAt
IDUxMiwgMC4wMDAxKTsKKyAgICBFWFBFQ1RfTkVBUihoZWlnaHQoZ2x5cGhCdWZmZXIuYWR2YW5j
ZUF0KDEpKSwgOCAtIDIgLSAxMjggLSA1MTIsIDAuMDAwMSk7CiAgICAgRVhQRUNUX05FQVIod2lk
dGgoZ2x5cGhCdWZmZXIuYWR2YW5jZUF0KDIpKSwgMCwgMC4wMDAxKTsKICAgICBFWFBFQ1RfTkVB
UihoZWlnaHQoZ2x5cGhCdWZmZXIuYWR2YW5jZUF0KDIpKSwgMTI4IC0gMzIgLSAyNTYsIDAuMDAw
MSk7CiAgICAgRVhQRUNUX05FQVIod2lkdGgoZ2x5cGhCdWZmZXIuYWR2YW5jZUF0KDMpKSwgMCwg
MC4wMDAxKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>