<?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>133420</bug_id>
          <alias>currentColor</alias>
          <creation_ts>2014-05-31 07:00:36 -0700</creation_ts>
          <short_desc>`currentColor` computes to the same colour on all elements, even if &apos;color&apos; is inherited differently</short_desc>
          <delta_ts>2015-03-29 20:11:33 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://jsfiddle.net/RDf4m/2/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chauncey McAskill">shimoroka</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>benjamin</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1012741</commentid>
    <comment_count>0</comment_count>
    <who name="Chauncey McAskill">shimoroka</who>
    <bug_when>2014-05-31 07:00:36 -0700</bug_when>
    <thetext>I&apos;ve linked the test case on JSFiddle in the URL field above. The following URL is a StackOverflow thread explaining the situation in detail :

http://stackoverflow.com/questions/23936150/issues-with-css-currentcolor-keyword-in-ios-and-safari

Essentially under Safari 6 and up (Safari 5, is unaffected), the `currentColor` CSS keyword computes to the same colour (the first colour it initially computes) on all subsequent elements and pseudo-elements. Notably on border and background colour properties.

The keyword will sometimes compute to the proper colours depending on browser re-paints, can&apos;t quite reproduce.

This issue is related to :
- https://bugs.webkit.org/show_bug.cgi?id=80454
- https://bugs.webkit.org/show_bug.cgi?id=117776
- https://bugs.webkit.org/show_bug.cgi?id=95083</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080993</commentid>
    <comment_count>1</comment_count>
      <attachid>249678</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-03-28 23:15:23 -0700</bug_when>
    <thetext>Created attachment 249678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081060</commentid>
    <comment_count>2</comment_count>
      <attachid>249678</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-03-29 16:40:22 -0700</bug_when>
    <thetext>Comment on attachment 249678
Patch

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

&gt; Source/WebCore/css/StyleResolver.cpp:264
&gt; +            const StyleProperties::PropertyReference current = properties.propertyAt(i);

I suggest auto here. Also, the const doesn’t add anything.

&gt; Source/WebCore/css/StyleResolver.cpp:1718
&gt; +    for (const auto&amp; matchedProperties : matchResult.matchedProperties()) {

I don’t think you needed to add this const here. I believe would be const automatically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081088</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-03-29 20:11:33 -0700</bug_when>
    <thetext>Committed r182130: &lt;http://trac.webkit.org/changeset/182130&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249678</attachid>
            <date>2015-03-28 23:15:23 -0700</date>
            <delta_ts>2015-03-29 16:40:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133420-20150328231442.patch</filename>
            <type>text/plain</type>
            <size>35018</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmQwMzhmNGQ4YjQ1MjIy
NThhNWJmYTQ4YmJhNjMwMWYwYjQ2MTQ0ZC4uZGUzZDRiYTg2ZGQxMWFmMDQ0ZDI3MDg4ZDUzNGZj
NzQxMzdjYTliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE1LTAzLTI4ICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBgY3VycmVudENv
bG9yYCBjb21wdXRlcyB0byB0aGUgc2FtZSBjb2xvdXIgb24gYWxsIGVsZW1lbnRzLCBldmVuIGlm
ICdjb2xvcicgaXMgaW5oZXJpdGVkIGRpZmZlcmVudGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM0MjAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHJlc29sdmluZyBhIHN0eWxlIHdpdGggdGhl
IGhlbHAgb2YgdGhlIHByb3BlcnR5IGNhY2hlLCB3ZSB3ZXJlCisgICAgICAgIGNvbXBsZXRlbHkg
aWdub3JpbmcgY3VycmVudENvbG9yLgorCisgICAgICAgIFNpbmNlIHlvdSBjYW4gc2V0IGN1cnJl
bnRDb2xvciBvbiBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5vdCBpbmhlcml0ZWQsCisgICAgICAgIHRo
b3NlIHByb3BlcnRpZXMgd291bGQganVzdCBiZSBjb3BpZWQgZnJvbSB0aGUgY2FjaGVkIHN0eWxl
LCB3aGljaAorICAgICAgICBtYXkgaGF2ZSBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGluaGVyaXRl
ZCBjb2xvci4KKworICAgICAgICBUaGlzIHBhY3RoIGZpeGVzIHRoZSBpc3N1ZSBieSBwcmV2ZW50
aW5nIGFueSBNYXRjaFJlc3VsdCBmcm9tIGhpdHRpbmcKKyAgICAgICAgdGhlIGNhY2hlIGlmIGl0
IGNvbnRhaW5zIGFueSBub24taW5oZXJpdGVkIHByb3BlcnR5IHRoYXQgd291bGQgcmVxdWlyZQor
ICAgICAgICByZXNvbHV0aW9uIGJ5IHRoZSBjYWNoZToKKyAgICAgICAgLVVzaW5nIHRoZSBpbmhl
cml0IHZhbHVlLgorICAgICAgICAtVXNpbmcgdGhlIGN1cnJlbnRDb2xvciB2YWx1ZS4KKworICAg
ICAgICBUZXN0czogZmFzdC9jc3MvY3VycmVudENvbG9yLW9uLWJlZm9yZS1hZnRlci1wc2V1ZG8t
ZWxlbWVudHMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MvY3VycmVudENvbG9yLXN0eWxl
LXVwZGF0ZS1yZWZ0ZXN0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzL2N1cnJlbnRDb2xv
ci12YWx1ZS1zdHlsZS11cGRhdGUuaHRtbAorCisgICAgICAgICogY3NzL0VsZW1lbnRSdWxlQ29s
bGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRF
bGVtZW50U3R5bGVQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29s
bGVjdG9yOjptYXRjaEF1dGhvclJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxl
Q29sbGVjdG9yOjptYXRjaFVzZXJSdWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UnVs
ZUNvbGxlY3Rvcjo6bWF0Y2hVQVJ1bGVzKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpNYXRjaFJlc3VsdDo6YWRkTWF0
Y2hlZFByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6c3R5bGVG
b3JLZXlmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpwc2V1ZG9TdHls
ZUZvckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JQ
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmZpbmRGcm9tTWF0Y2hlZFBy
b3BlcnRpZXNDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphZGRUb01h
dGNoZWRQcm9wZXJ0aWVzQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6ZXh0cmFjdERpcmVjdGlv
bkFuZFdyaXRpbmdNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmFwcGx5
TWF0Y2hlZFByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Q2Fz
Y2FkZWRQcm9wZXJ0aWVzOjphZGRTdHlsZVByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVSZXNvbHZlcjo6Q2FzY2FkZWRQcm9wZXJ0aWVzOjphZGRNYXRjaGVzKToKKyAgICAgICAg
KiBjc3MvU3R5bGVSZXNvbHZlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6
TWF0Y2hSZXN1bHQ6Om1hdGNoZWRQcm9wZXJ0aWVzKToKKwogMjAxNS0wMy0yOCAgSm9vbmdodW4g
UGFyayAgPGpoNzE4LnBhcmtAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgbnVsbHB0ciBjbGVhbnVw
IGluIElubGluZUZvb0JveCBjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxl
Q29sbGVjdG9yLmNwcAppbmRleCAxYjIxNmEwYjI2ZmRkZWU2ZmFmMmUwZGMwZWI1NWNmOWZhMjNm
ZjYxLi42ZTdlMGQxMDUzNmVhN2U3YmFmNjExYzhlMDA1OTU3NzU4ZDEyNGMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTEwNCw3ICsxMDQsNyBA
QCBpbmxpbmUgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6YWRkRWxlbWVudFN0eWxlUHJvcGVy
dGllcyhjb25zdCBTdHlsZVByb3BlcnRpZQogewogICAgIGlmICghcHJvcGVydHlTZXQpCiAgICAg
ICAgIHJldHVybjsKLSAgICBtX3Jlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUgPSBtX3Jlc3Vs
dC5tYXRjaGVkUHJvcGVydGllcy5zaXplKCk7CisgICAgbV9yZXN1bHQucmFuZ2VzLmxhc3RBdXRo
b3JSdWxlID0gbV9yZXN1bHQubWF0Y2hlZFByb3BlcnRpZXMoKS5zaXplKCk7CiAgICAgaWYgKG1f
cmVzdWx0LnJhbmdlcy5maXJzdEF1dGhvclJ1bGUgPT0gLTEpCiAgICAgICAgIG1fcmVzdWx0LnJh
bmdlcy5maXJzdEF1dGhvclJ1bGUgPSBtX3Jlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGU7CiAg
ICAgbV9yZXN1bHQuYWRkTWF0Y2hlZFByb3BlcnRpZXMoKnByb3BlcnR5U2V0KTsKQEAgLTIyMCw3
ICsyMjAsNyBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpzb3J0QW5kVHJhbnNmZXJNYXRj
aGVkUnVsZXMoKQogdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hBdXRob3JSdWxlcyhi
b29sIGluY2x1ZGVFbXB0eVJ1bGVzKQogewogICAgIGNsZWFyTWF0Y2hlZFJ1bGVzKCk7Ci0gICAg
bV9yZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlID0gbV9yZXN1bHQubWF0Y2hlZFByb3BlcnRp
ZXMuc2l6ZSgpIC0gMTsKKyAgICBtX3Jlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUgPSBtX3Jl
c3VsdC5tYXRjaGVkUHJvcGVydGllcygpLnNpemUoKSAtIDE7CiAKICAgICAvLyBNYXRjaCBnbG9i
YWwgYXV0aG9yIHJ1bGVzLgogICAgIE1hdGNoUmVxdWVzdCBtYXRjaFJlcXVlc3QobV9ydWxlU2V0
cy5hdXRob3JTdHlsZSgpLCBpbmNsdWRlRW1wdHlSdWxlcyk7CkBAIC0yMzgsNyArMjM4LDcgQEAg
dm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hVc2VyUnVsZXMoYm9vbCBpbmNsdWRlRW1w
dHlSdWxlcykKICAgICAKICAgICBjbGVhck1hdGNoZWRSdWxlcygpOwogCi0gICAgbV9yZXN1bHQu
cmFuZ2VzLmxhc3RVc2VyUnVsZSA9IG1fcmVzdWx0Lm1hdGNoZWRQcm9wZXJ0aWVzLnNpemUoKSAt
IDE7CisgICAgbV9yZXN1bHQucmFuZ2VzLmxhc3RVc2VyUnVsZSA9IG1fcmVzdWx0Lm1hdGNoZWRQ
cm9wZXJ0aWVzKCkuc2l6ZSgpIC0gMTsKICAgICBNYXRjaFJlcXVlc3QgbWF0Y2hSZXF1ZXN0KG1f
cnVsZVNldHMudXNlclN0eWxlKCksIGluY2x1ZGVFbXB0eVJ1bGVzKTsKICAgICBTdHlsZVJlc29s
dmVyOjpSdWxlUmFuZ2UgcnVsZVJhbmdlID0gbV9yZXN1bHQucmFuZ2VzLnVzZXJSdWxlUmFuZ2Uo
KTsKICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlcyhtYXRjaFJlcXVlc3QsIHJ1bGVSYW5nZSk7CkBA
IC0yNjcsNyArMjY3LDcgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hVQVJ1bGVz
KFJ1bGVTZXQqIHJ1bGVzKQogewogICAgIGNsZWFyTWF0Y2hlZFJ1bGVzKCk7CiAgICAgCi0gICAg
bV9yZXN1bHQucmFuZ2VzLmxhc3RVQVJ1bGUgPSBtX3Jlc3VsdC5tYXRjaGVkUHJvcGVydGllcy5z
aXplKCkgLSAxOworICAgIG1fcmVzdWx0LnJhbmdlcy5sYXN0VUFSdWxlID0gbV9yZXN1bHQubWF0
Y2hlZFByb3BlcnRpZXMoKS5zaXplKCkgLSAxOwogICAgIFN0eWxlUmVzb2x2ZXI6OlJ1bGVSYW5n
ZSBydWxlUmFuZ2UgPSBtX3Jlc3VsdC5yYW5nZXMuVUFSdWxlUmFuZ2UoKTsKICAgICBjb2xsZWN0
TWF0Y2hpbmdSdWxlcyhNYXRjaFJlcXVlc3QocnVsZXMpLCBydWxlUmFuZ2UpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggMjYxNTE4OTBmYmFmMWUyNjM3MTZkZTNmMzJh
ZmM3NGIzYTgzNjk5ZS4uYWI0ZTk1ODRhMzhkYjI0MTcxZDdkZWU3ODUwZjZmNWY2ODY3OTUwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTg1LDcgKzE4NSw3IEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgaGFzUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCkgY29uc3Q7CiAg
ICAgUHJvcGVydHkmIHByb3BlcnR5KENTU1Byb3BlcnR5SUQpOwotICAgIGJvb2wgYWRkTWF0Y2hl
cyhjb25zdCBNYXRjaFJlc3VsdCYsIGJvb2wgaW1wb3J0YW50LCBpbnQgc3RhcnRJbmRleCwgaW50
IGVuZEluZGV4LCBib29sIGluaGVyaXRlZE9ubHkgPSBmYWxzZSk7CisgICAgdm9pZCBhZGRNYXRj
aGVzKGNvbnN0IE1hdGNoUmVzdWx0JiwgYm9vbCBpbXBvcnRhbnQsIGludCBzdGFydEluZGV4LCBp
bnQgZW5kSW5kZXgsIGJvb2wgaW5oZXJpdGVkT25seSA9IGZhbHNlKTsKIAogICAgIHZvaWQgc2V0
KENTU1Byb3BlcnR5SUQsIENTU1ZhbHVlJiwgdW5zaWduZWQgbGlua01hdGNoVHlwZSk7CiAgICAg
dm9pZCBzZXREZWZlcnJlZChDU1NQcm9wZXJ0eUlELCBDU1NWYWx1ZSYsIHVuc2lnbmVkIGxpbmtN
YXRjaFR5cGUpOwpAQCAtMTkzLDcgKzE5Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGx5RGVm
ZXJyZWRQcm9wZXJ0aWVzKFN0eWxlUmVzb2x2ZXImKTsKIAogcHJpdmF0ZToKLSAgICBib29sIGFk
ZFN0eWxlUHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRpZXMmLCBTdHlsZVJ1bGUmLCBib29s
IGlzSW1wb3J0YW50LCBib29sIGluaGVyaXRlZE9ubHksIFByb3BlcnR5V2hpdGVsaXN0VHlwZSwg
dW5zaWduZWQgbGlua01hdGNoVHlwZSk7CisgICAgdm9pZCBhZGRTdHlsZVByb3BlcnRpZXMoY29u
c3QgU3R5bGVQcm9wZXJ0aWVzJiwgU3R5bGVSdWxlJiwgYm9vbCBpc0ltcG9ydGFudCwgYm9vbCBp
bmhlcml0ZWRPbmx5LCBQcm9wZXJ0eVdoaXRlbGlzdFR5cGUsIHVuc2lnbmVkIGxpbmtNYXRjaFR5
cGUpOwogICAgIHN0YXRpYyB2b2lkIHNldFByb3BlcnR5SW50ZXJuYWwoUHJvcGVydHkmLCBDU1NQ
cm9wZXJ0eUlELCBDU1NWYWx1ZSYsIHVuc2lnbmVkIGxpbmtNYXRjaFR5cGUpOwogCiAgICAgUHJv
cGVydHkgbV9wcm9wZXJ0aWVzW251bUNTU1Byb3BlcnRpZXMgKyAxXTsKQEAgLTI0NiwxMiArMjQ2
LDQxIEBAIGlubGluZSB2b2lkIFN0eWxlUmVzb2x2ZXI6OlN0YXRlOjpjbGVhcigpCiAKIHZvaWQg
U3R5bGVSZXNvbHZlcjo6TWF0Y2hSZXN1bHQ6OmFkZE1hdGNoZWRQcm9wZXJ0aWVzKGNvbnN0IFN0
eWxlUHJvcGVydGllcyYgcHJvcGVydGllcywgU3R5bGVSdWxlKiBydWxlLCB1bnNpZ25lZCBsaW5r
TWF0Y2hUeXBlLCBQcm9wZXJ0eVdoaXRlbGlzdFR5cGUgcHJvcGVydHlXaGl0ZWxpc3RUeXBlKQog
ewotICAgIG1hdGNoZWRQcm9wZXJ0aWVzLmdyb3cobWF0Y2hlZFByb3BlcnRpZXMuc2l6ZSgpICsg
MSk7Ci0gICAgU3R5bGVSZXNvbHZlcjo6TWF0Y2hlZFByb3BlcnRpZXMmIG5ld1Byb3BlcnRpZXMg
PSBtYXRjaGVkUHJvcGVydGllcy5sYXN0KCk7CisgICAgbV9tYXRjaGVkUHJvcGVydGllcy5ncm93
KG1fbWF0Y2hlZFByb3BlcnRpZXMuc2l6ZSgpICsgMSk7CisgICAgU3R5bGVSZXNvbHZlcjo6TWF0
Y2hlZFByb3BlcnRpZXMmIG5ld1Byb3BlcnRpZXMgPSBtX21hdGNoZWRQcm9wZXJ0aWVzLmxhc3Qo
KTsKICAgICBuZXdQcm9wZXJ0aWVzLnByb3BlcnRpZXMgPSBjb25zdF9jYXN0PFN0eWxlUHJvcGVy
dGllcyo+KCZwcm9wZXJ0aWVzKTsKICAgICBuZXdQcm9wZXJ0aWVzLmxpbmtNYXRjaFR5cGUgPSBs
aW5rTWF0Y2hUeXBlOwogICAgIG5ld1Byb3BlcnRpZXMud2hpdGVsaXN0VHlwZSA9IHByb3BlcnR5
V2hpdGVsaXN0VHlwZTsKICAgICBtYXRjaGVkUnVsZXMuYXBwZW5kKHJ1bGUpOworCisgICAgaWYg
KGlzQ2FjaGVhYmxlKSB7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGNvdW50ID0gcHJv
cGVydGllcy5wcm9wZXJ0eUNvdW50KCk7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICAv
LyBDdXJyZW50bHkgdGhlIHByb3BlcnR5IGNhY2hlIG9ubHkgY29weSB0aGUgbm9uLWluaGVyaXRl
ZCB2YWx1ZXMgYW5kIHJlc29sdmUKKyAgICAgICAgICAgIC8vIHRoZSBpbmhlcml0ZWQgb25lcy4K
KyAgICAgICAgICAgIC8vIEhlcmUgd2UgZGVmaW5lIHNvbWUgZXhjZXB0aW9uIHdlcmUgd2UgaGF2
ZSB0byByZXNvbHZlIHNvbWUgcHJvcGVydGllcyB0aGF0IGFyZSBub3QgaW5oZXJpdGVkCisgICAg
ICAgICAgICAvLyBieSBkZWZhdWx0LiBJZiB0aG9zZSBleGNlcHRpb25zIGJlY29tZSB0b28gY29t
bW9uIG9uIHRoZSB3ZWIsIGl0IHNob3VsZCBiZSBwb3NzaWJsZQorICAgICAgICAgICAgLy8gdG8g
YnVpbGQgYSBsaXN0IG9mIGV4Y2VwdGlvbiB0byByZXNvbHZlIGluc3RlYWQgb2YgY29tcGxldGVs
eSBkaXNhYmxpbmcgdGhlIGNhY2hlLgorCisgICAgICAgICAgICBjb25zdCBTdHlsZVByb3BlcnRp
ZXM6OlByb3BlcnR5UmVmZXJlbmNlIGN1cnJlbnQgPSBwcm9wZXJ0aWVzLnByb3BlcnR5QXQoaSk7
CisgICAgICAgICAgICBpZiAoIWN1cnJlbnQuaXNJbmhlcml0ZWQoKSkgeworICAgICAgICAgICAg
ICAgIC8vIElmIHRoZSBwcm9wZXJ0eSB2YWx1ZSBpcyBleHBsaWNpdGx5IGluaGVyaXRlZCwgd2Ug
bmVlZCB0byBhcHBseSBmdXJ0aGVyIG5vbi1pbmhlcml0ZWQgcHJvcGVydGllcworICAgICAgICAg
ICAgICAgIC8vIGFzIHRoZXkgbWlnaHQgb3ZlcnJpZGUgdGhlIHZhbHVlIGluaGVyaXRlZCBoZXJl
LiBGb3IgdGhpcyByZWFzb24gd2UgZG9uJ3QgYWxsb3cgZGVjbGFyYXRpb25zIHdpdGgKKyAgICAg
ICAgICAgICAgICAvLyBleHBsaWNpdGx5IGluaGVyaXRlZCBwcm9wZXJ0aWVzIHRvIGJlIGNhY2hl
ZC4KKyAgICAgICAgICAgICAgICBjb25zdCBDU1NWYWx1ZSYgdmFsdWUgPSAqY3VycmVudC52YWx1
ZSgpOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5pc0luaGVyaXRlZFZhbHVlKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gVGhlIHZh
bHVlIGN1cnJlbnRDb2xvciBoYXMgaW1wbGljaXRlbHkgdGhlIHNhbWUgc2lkZSBlZmZlY3QuIEl0
IGRlcGVuZHMgb24gdGhlIHZhbHVlIG9mIGNvbG9yLAorICAgICAgICAgICAgICAgIC8vIHdoaWNo
IGlzIGFuIGluaGVyaXRlZCB2YWx1ZSwgbWFraW5nIHRoZSBub24taW5oZXJpdGVkIHByb3BlcnR5
IGltcGxpY2l0ZWx5IGluaGVyaXRlZC4KKyAgICAgICAgICAgICAgICBpZiAoaXM8Q1NTUHJpbWl0
aXZlVmFsdWU+KHZhbHVlKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpLmdl
dFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUN1cnJlbnRjb2xvcikgeworICAgICAgICAgICAgICAgICAg
ICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CiB9CiAKIFN0eWxl
UmVzb2x2ZXI6OlN0eWxlUmVzb2x2ZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIG1hdGNoQXV0
aG9yQW5kVXNlclN0eWxlcykKQEAgLTgzNiw3ICs4NjUsNyBAQCBSZWY8UmVuZGVyU3R5bGU+IFN0
eWxlUmVzb2x2ZXI6OnN0eWxlRm9yS2V5ZnJhbWUoY29uc3QgUmVuZGVyU3R5bGUqIGVsZW1lbnRT
dHlsZQogICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gYm90aGVyIHdpdGggIWltcG9ydGFudC4gU2lu
Y2UgdGhlcmUgaXMgb25seSBldmVyIG9uZQogICAgIC8vIGRlY2wsIHRoZXJlJ3Mgbm90aGluZyB0
byBvdmVycmlkZS4gU28ganVzdCBhZGQgdGhlIGZpcnN0IHByb3BlcnRpZXMuCiAgICAgQ2FzY2Fk
ZWRQcm9wZXJ0aWVzIGNhc2NhZGUoZGlyZWN0aW9uLCB3cml0aW5nTW9kZSk7Ci0gICAgY2FzY2Fk
ZS5hZGRNYXRjaGVzKHJlc3VsdCwgZmFsc2UsIDAsIHJlc3VsdC5tYXRjaGVkUHJvcGVydGllcy5z
aXplKCkgLSAxKTsKKyAgICBjYXNjYWRlLmFkZE1hdGNoZXMocmVzdWx0LCBmYWxzZSwgMCwgcmVz
dWx0Lm1hdGNoZWRQcm9wZXJ0aWVzKCkuc2l6ZSgpIC0gMSk7CiAKICAgICBhcHBseUNhc2NhZGVk
UHJvcGVydGllcyhjYXNjYWRlLCBmaXJzdENTU1Byb3BlcnR5LCBsYXN0SGlnaFByaW9yaXR5UHJv
cGVydHkpOwogCkBAIC05NjMsNyArOTkyLDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5
bGVSZXNvbHZlcjo6cHNldWRvU3R5bGVGb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIGMKICAg
ICAgICAgY29sbGVjdG9yLm1hdGNoQXV0aG9yUnVsZXMoZmFsc2UpOwogICAgIH0KIAotICAgIGlm
IChjb2xsZWN0b3IubWF0Y2hlZFJlc3VsdCgpLm1hdGNoZWRQcm9wZXJ0aWVzLmlzRW1wdHkoKSkK
KyAgICBpZiAoY29sbGVjdG9yLm1hdGNoZWRSZXN1bHQoKS5tYXRjaGVkUHJvcGVydGllcygpLmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRTdHls
ZVR5cGUocHNldWRvU3R5bGVSZXF1ZXN0LnBzZXVkb0lkKTsKQEAgLTEwMDIsNyArMTAzMSw3IEBA
IFJlZjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JQYWdlKGludCBwYWdlSW5k
ZXgpCiAgICAgZXh0cmFjdERpcmVjdGlvbkFuZFdyaXRpbmdNb2RlKCptX3N0YXRlLnN0eWxlKCks
IHJlc3VsdCwgZGlyZWN0aW9uLCB3cml0aW5nTW9kZSk7CiAKICAgICBDYXNjYWRlZFByb3BlcnRp
ZXMgY2FzY2FkZShkaXJlY3Rpb24sIHdyaXRpbmdNb2RlKTsKLSAgICBjYXNjYWRlLmFkZE1hdGNo
ZXMocmVzdWx0LCBmYWxzZSwgMCwgcmVzdWx0Lm1hdGNoZWRQcm9wZXJ0aWVzLnNpemUoKSAtIDEp
OworICAgIGNhc2NhZGUuYWRkTWF0Y2hlcyhyZXN1bHQsIGZhbHNlLCAwLCByZXN1bHQubWF0Y2hl
ZFByb3BlcnRpZXMoKS5zaXplKCkgLSAxKTsKIAogICAgIGFwcGx5Q2FzY2FkZWRQcm9wZXJ0aWVz
KGNhc2NhZGUsIGZpcnN0Q1NTUHJvcGVydHksIGxhc3RIaWdoUHJpb3JpdHlQcm9wZXJ0eSk7CiAK
QEAgLTE2MTEsMTEgKzE2NDAsMTEgQEAgY29uc3QgU3R5bGVSZXNvbHZlcjo6TWF0Y2hlZFByb3Bl
cnRpZXNDYWNoZUl0ZW0qIFN0eWxlUmVzb2x2ZXI6OmZpbmRGcm9tTWF0Y2hlZFAKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgTWF0Y2hlZFByb3BlcnRpZXNDYWNoZUl0ZW0mIGNhY2hlSXRlbSA9IGl0
LT52YWx1ZTsKIAotICAgIHNpemVfdCBzaXplID0gbWF0Y2hSZXN1bHQubWF0Y2hlZFByb3BlcnRp
ZXMuc2l6ZSgpOworICAgIHNpemVfdCBzaXplID0gbWF0Y2hSZXN1bHQubWF0Y2hlZFByb3BlcnRp
ZXMoKS5zaXplKCk7CiAgICAgaWYgKHNpemUgIT0gY2FjaGVJdGVtLm1hdGNoZWRQcm9wZXJ0aWVz
LnNpemUoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBz
aXplOyArK2kpIHsKLSAgICAgICAgaWYgKG1hdGNoUmVzdWx0Lm1hdGNoZWRQcm9wZXJ0aWVzW2ld
ICE9IGNhY2hlSXRlbS5tYXRjaGVkUHJvcGVydGllc1tpXSkKKyAgICAgICAgaWYgKG1hdGNoUmVz
dWx0Lm1hdGNoZWRQcm9wZXJ0aWVzKClbaV0gIT0gY2FjaGVJdGVtLm1hdGNoZWRQcm9wZXJ0aWVz
W2ldKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIGlmIChjYWNoZUl0ZW0ucmFu
Z2VzICE9IG1hdGNoUmVzdWx0LnJhbmdlcykKQEAgLTE2MzQsNyArMTY2Myw3IEBAIHZvaWQgU3R5
bGVSZXNvbHZlcjo6YWRkVG9NYXRjaGVkUHJvcGVydGllc0NhY2hlKGNvbnN0IFJlbmRlclN0eWxl
KiBzdHlsZSwgY29uc3QKIAogICAgIEFTU0VSVChoYXNoKTsKICAgICBNYXRjaGVkUHJvcGVydGll
c0NhY2hlSXRlbSBjYWNoZUl0ZW07Ci0gICAgY2FjaGVJdGVtLm1hdGNoZWRQcm9wZXJ0aWVzLmFw
cGVuZFZlY3RvcihtYXRjaFJlc3VsdC5tYXRjaGVkUHJvcGVydGllcyk7CisgICAgY2FjaGVJdGVt
Lm1hdGNoZWRQcm9wZXJ0aWVzLmFwcGVuZFZlY3RvcihtYXRjaFJlc3VsdC5tYXRjaGVkUHJvcGVy
dGllcygpKTsKICAgICBjYWNoZUl0ZW0ucmFuZ2VzID0gbWF0Y2hSZXN1bHQucmFuZ2VzOwogICAg
IC8vIE5vdGUgdGhhdCB3ZSBkb24ndCBjYWNoZSB0aGUgb3JpZ2luYWwgUmVuZGVyU3R5bGUgaW5z
dGFuY2UuIEl0IG1heSBiZSBmdXJ0aGVyIG1vZGlmaWVkLgogICAgIC8vIFRoZSBSZW5kZXJTdHls
ZSBpbiB0aGUgY2FjaGUgaXMgcmVhbGx5IGp1c3QgYSBob2xkZXIgZm9yIHRoZSBzdWJzdHJ1Y3R1
cmVzIGFuZCBuZXZlciB1c2VkIGFzLWlzLgpAQCAtMTY4Niw3ICsxNzE1LDcgQEAgdm9pZCBleHRy
YWN0RGlyZWN0aW9uQW5kV3JpdGluZ01vZGUoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25z
dCBTdHlsZVJlc29sdmUKICAgICBib29sIGhhZEltcG9ydGFudFdlYmtpdFdyaXRpbmdNb2RlID0g
ZmFsc2U7CiAgICAgYm9vbCBoYWRJbXBvcnRhbnREaXJlY3Rpb24gPSBmYWxzZTsKIAotICAgIGZv
ciAoYXV0byYgbWF0Y2hlZFByb3BlcnRpZXMgOiBtYXRjaFJlc3VsdC5tYXRjaGVkUHJvcGVydGll
cykgeworICAgIGZvciAoY29uc3QgYXV0byYgbWF0Y2hlZFByb3BlcnRpZXMgOiBtYXRjaFJlc3Vs
dC5tYXRjaGVkUHJvcGVydGllcygpKSB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGNv
dW50ID0gbWF0Y2hlZFByb3BlcnRpZXMucHJvcGVydGllcy0+cHJvcGVydHlDb3VudCgpOyBpIDwg
Y291bnQ7ICsraSkgewogICAgICAgICAgICAgYXV0byBwcm9wZXJ0eSA9IG1hdGNoZWRQcm9wZXJ0
aWVzLnByb3BlcnRpZXMtPnByb3BlcnR5QXQoaSk7CiAgICAgICAgICAgICBpZiAoIXByb3BlcnR5
LnZhbHVlKCktPmlzUHJpbWl0aXZlVmFsdWUoKSkKQEAgLTE3MTUsNyArMTc0NCw3IEBAIHZvaWQg
U3R5bGVSZXNvbHZlcjo6YXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3VsdCYg
bWF0Y2hSZXN1bHQsIGNvbnN0CiB7CiAgICAgQVNTRVJUKGVsZW1lbnQpOwogICAgIFN0YXRlJiBz
dGF0ZSA9IG1fc3RhdGU7Ci0gICAgdW5zaWduZWQgY2FjaGVIYXNoID0gc2hvdWxkVXNlTWF0Y2hl
ZFByb3BlcnRpZXNDYWNoZSAmJiBtYXRjaFJlc3VsdC5pc0NhY2hlYWJsZSA/IGNvbXB1dGVNYXRj
aGVkUHJvcGVydGllc0hhc2gobWF0Y2hSZXN1bHQubWF0Y2hlZFByb3BlcnRpZXMuZGF0YSgpLCBt
YXRjaFJlc3VsdC5tYXRjaGVkUHJvcGVydGllcy5zaXplKCkpIDogMDsKKyAgICB1bnNpZ25lZCBj
YWNoZUhhc2ggPSBzaG91bGRVc2VNYXRjaGVkUHJvcGVydGllc0NhY2hlICYmIG1hdGNoUmVzdWx0
LmlzQ2FjaGVhYmxlID8gY29tcHV0ZU1hdGNoZWRQcm9wZXJ0aWVzSGFzaChtYXRjaFJlc3VsdC5t
YXRjaGVkUHJvcGVydGllcygpLmRhdGEoKSwgbWF0Y2hSZXN1bHQubWF0Y2hlZFByb3BlcnRpZXMo
KS5zaXplKCkpIDogMDsKICAgICBib29sIGFwcGx5SW5oZXJpdGVkT25seSA9IGZhbHNlOwogICAg
IGNvbnN0IE1hdGNoZWRQcm9wZXJ0aWVzQ2FjaGVJdGVtKiBjYWNoZUl0ZW0gPSAwOwogICAgIGlm
IChjYWNoZUhhc2ggJiYgKGNhY2hlSXRlbSA9IGZpbmRGcm9tTWF0Y2hlZFByb3BlcnRpZXNDYWNo
ZShjYWNoZUhhc2gsIG1hdGNoUmVzdWx0KSkKQEAgLTE3NDksOSArMTc3OCw4IEBAIHZvaWQgU3R5
bGVSZXNvbHZlcjo6YXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3VsdCYgbWF0
Y2hSZXN1bHQsIGNvbnN0CiAgICAgICAgIC8vIElmIHNvLCB3ZSBjYWNoZSB0aGUgYm9yZGVyIGFu
ZCBiYWNrZ3JvdW5kIHN0eWxlcyBzbyB0aGF0IFJlbmRlclRoZW1lOjphZGp1c3RTdHlsZSgpCiAg
ICAgICAgIC8vIGNhbiBsb29rIGF0IHRoZW0gbGF0ZXIgdG8gZmlndXJlIG91dCBpZiB0aGlzIGlz
IGEgc3R5bGVkIGZvcm0gY29udHJvbCBvciBub3QuCiAgICAgICAgIENhc2NhZGVkUHJvcGVydGll
cyBjYXNjYWRlKGRpcmVjdGlvbiwgd3JpdGluZ01vZGUpOwotICAgICAgICBpZiAoIWNhc2NhZGUu
YWRkTWF0Y2hlcyhtYXRjaFJlc3VsdCwgZmFsc2UsIG1hdGNoUmVzdWx0LnJhbmdlcy5maXJzdFVB
UnVsZSwgbWF0Y2hSZXN1bHQucmFuZ2VzLmxhc3RVQVJ1bGUsIGFwcGx5SW5oZXJpdGVkT25seSkK
LSAgICAgICAgICAgIHx8ICFjYXNjYWRlLmFkZE1hdGNoZXMobWF0Y2hSZXN1bHQsIHRydWUsIG1h
dGNoUmVzdWx0LnJhbmdlcy5maXJzdFVBUnVsZSwgbWF0Y2hSZXN1bHQucmFuZ2VzLmxhc3RVQVJ1
bGUsIGFwcGx5SW5oZXJpdGVkT25seSkpCi0gICAgICAgICAgICByZXR1cm4gYXBwbHlNYXRjaGVk
UHJvcGVydGllcyhtYXRjaFJlc3VsdCwgZWxlbWVudCwgRG9Ob3RVc2VNYXRjaGVkUHJvcGVydGll
c0NhY2hlKTsKKyAgICAgICAgY2FzY2FkZS5hZGRNYXRjaGVzKG1hdGNoUmVzdWx0LCBmYWxzZSwg
bWF0Y2hSZXN1bHQucmFuZ2VzLmZpcnN0VUFSdWxlLCBtYXRjaFJlc3VsdC5yYW5nZXMubGFzdFVB
UnVsZSwgYXBwbHlJbmhlcml0ZWRPbmx5KTsKKyAgICAgICAgY2FzY2FkZS5hZGRNYXRjaGVzKG1h
dGNoUmVzdWx0LCB0cnVlLCBtYXRjaFJlc3VsdC5yYW5nZXMuZmlyc3RVQVJ1bGUsIG1hdGNoUmVz
dWx0LnJhbmdlcy5sYXN0VUFSdWxlLCBhcHBseUluaGVyaXRlZE9ubHkpOwogCiAgICAgICAgIGFw
cGx5Q2FzY2FkZWRQcm9wZXJ0aWVzKGNhc2NhZGUsIENTU1Byb3BlcnR5V2Via2l0UnVieVBvc2l0
aW9uLCBDU1NQcm9wZXJ0eVdlYmtpdFJ1YnlQb3NpdGlvbik7CiAgICAgICAgIGFkanVzdFN0eWxl
Rm9ySW50ZXJDaGFyYWN0ZXJSdWJ5KCk7CkBAIC0xNzY2LDExICsxNzk0LDEwIEBAIHZvaWQgU3R5
bGVSZXNvbHZlcjo6YXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3VsdCYgbWF0
Y2hSZXN1bHQsIGNvbnN0CiAgICAgfQogCiAgICAgQ2FzY2FkZWRQcm9wZXJ0aWVzIGNhc2NhZGUo
ZGlyZWN0aW9uLCB3cml0aW5nTW9kZSk7Ci0gICAgaWYgKCFjYXNjYWRlLmFkZE1hdGNoZXMobWF0
Y2hSZXN1bHQsIGZhbHNlLCAwLCBtYXRjaFJlc3VsdC5tYXRjaGVkUHJvcGVydGllcy5zaXplKCkg
LSAxLCBhcHBseUluaGVyaXRlZE9ubHkpCi0gICAgICAgIHx8ICFjYXNjYWRlLmFkZE1hdGNoZXMo
bWF0Y2hSZXN1bHQsIHRydWUsIG1hdGNoUmVzdWx0LnJhbmdlcy5maXJzdEF1dGhvclJ1bGUsIG1h
dGNoUmVzdWx0LnJhbmdlcy5sYXN0QXV0aG9yUnVsZSwgYXBwbHlJbmhlcml0ZWRPbmx5KQotICAg
ICAgICB8fCAhY2FzY2FkZS5hZGRNYXRjaGVzKG1hdGNoUmVzdWx0LCB0cnVlLCBtYXRjaFJlc3Vs
dC5yYW5nZXMuZmlyc3RVc2VyUnVsZSwgbWF0Y2hSZXN1bHQucmFuZ2VzLmxhc3RVc2VyUnVsZSwg
YXBwbHlJbmhlcml0ZWRPbmx5KQotICAgICAgICB8fCAhY2FzY2FkZS5hZGRNYXRjaGVzKG1hdGNo
UmVzdWx0LCB0cnVlLCBtYXRjaFJlc3VsdC5yYW5nZXMuZmlyc3RVQVJ1bGUsIG1hdGNoUmVzdWx0
LnJhbmdlcy5sYXN0VUFSdWxlLCBhcHBseUluaGVyaXRlZE9ubHkpKQotICAgICAgICByZXR1cm4g
YXBwbHlNYXRjaGVkUHJvcGVydGllcyhtYXRjaFJlc3VsdCwgZWxlbWVudCwgRG9Ob3RVc2VNYXRj
aGVkUHJvcGVydGllc0NhY2hlKTsKKyAgICBjYXNjYWRlLmFkZE1hdGNoZXMobWF0Y2hSZXN1bHQs
IGZhbHNlLCAwLCBtYXRjaFJlc3VsdC5tYXRjaGVkUHJvcGVydGllcygpLnNpemUoKSAtIDEsIGFw
cGx5SW5oZXJpdGVkT25seSk7CisgICAgY2FzY2FkZS5hZGRNYXRjaGVzKG1hdGNoUmVzdWx0LCB0
cnVlLCBtYXRjaFJlc3VsdC5yYW5nZXMuZmlyc3RBdXRob3JSdWxlLCBtYXRjaFJlc3VsdC5yYW5n
ZXMubGFzdEF1dGhvclJ1bGUsIGFwcGx5SW5oZXJpdGVkT25seSk7CisgICAgY2FzY2FkZS5hZGRN
YXRjaGVzKG1hdGNoUmVzdWx0LCB0cnVlLCBtYXRjaFJlc3VsdC5yYW5nZXMuZmlyc3RVc2VyUnVs
ZSwgbWF0Y2hSZXN1bHQucmFuZ2VzLmxhc3RVc2VyUnVsZSwgYXBwbHlJbmhlcml0ZWRPbmx5KTsK
KyAgICBjYXNjYWRlLmFkZE1hdGNoZXMobWF0Y2hSZXN1bHQsIHRydWUsIG1hdGNoUmVzdWx0LnJh
bmdlcy5maXJzdFVBUnVsZSwgbWF0Y2hSZXN1bHQucmFuZ2VzLmxhc3RVQVJ1bGUsIGFwcGx5SW5o
ZXJpdGVkT25seSk7CiAKICAgICBhcHBseUNhc2NhZGVkUHJvcGVydGllcyhjYXNjYWRlLCBDU1NQ
cm9wZXJ0eVdlYmtpdFJ1YnlQb3NpdGlvbiwgQ1NTUHJvcGVydHlXZWJraXRSdWJ5UG9zaXRpb24p
OwogICAgIApAQCAtMjYyNCwxOCArMjY1MSwxNiBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OkNhc2Nh
ZGVkUHJvcGVydGllczo6c2V0RGVmZXJyZWQoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUmCiAg
ICAgbV9kZWZlcnJlZFByb3BlcnRpZXMuYXBwZW5kKHByb3BlcnR5KTsKIH0KIAotYm9vbCBTdHls
ZVJlc29sdmVyOjpDYXNjYWRlZFByb3BlcnRpZXM6OmFkZFN0eWxlUHJvcGVydGllcyhjb25zdCBT
dHlsZVByb3BlcnRpZXMmIHByb3BlcnRpZXMsIFN0eWxlUnVsZSYsIGJvb2wgaXNJbXBvcnRhbnQs
IGJvb2wgaW5oZXJpdGVkT25seSwgUHJvcGVydHlXaGl0ZWxpc3RUeXBlIHByb3BlcnR5V2hpdGVs
aXN0VHlwZSwgdW5zaWduZWQgbGlua01hdGNoVHlwZSkKK3ZvaWQgU3R5bGVSZXNvbHZlcjo6Q2Fz
Y2FkZWRQcm9wZXJ0aWVzOjphZGRTdHlsZVByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVz
JiBwcm9wZXJ0aWVzLCBTdHlsZVJ1bGUmLCBib29sIGlzSW1wb3J0YW50LCBib29sIGluaGVyaXRl
ZE9ubHksIFByb3BlcnR5V2hpdGVsaXN0VHlwZSBwcm9wZXJ0eVdoaXRlbGlzdFR5cGUsIHVuc2ln
bmVkIGxpbmtNYXRjaFR5cGUpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgY291bnQgPSBw
cm9wZXJ0aWVzLnByb3BlcnR5Q291bnQoKTsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgYXV0
byBjdXJyZW50ID0gcHJvcGVydGllcy5wcm9wZXJ0eUF0KGkpOwogICAgICAgICBpZiAoaXNJbXBv
cnRhbnQgIT0gY3VycmVudC5pc0ltcG9ydGFudCgpKQogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIGlmIChpbmhlcml0ZWRPbmx5ICYmICFjdXJyZW50LmlzSW5oZXJpdGVkKCkpIHsKLSAg
ICAgICAgICAgIC8vIElmIHRoZSBwcm9wZXJ0eSB2YWx1ZSBpcyBleHBsaWNpdGx5IGluaGVyaXRl
ZCwgd2UgbmVlZCB0byBhcHBseSBmdXJ0aGVyIG5vbi1pbmhlcml0ZWQgcHJvcGVydGllcwotICAg
ICAgICAgICAgLy8gYXMgdGhleSBtaWdodCBvdmVycmlkZSB0aGUgdmFsdWUgaW5oZXJpdGVkIGhl
cmUuIEZvciB0aGlzIHJlYXNvbiB3ZSBkb24ndCBhbGxvdyBkZWNsYXJhdGlvbnMgd2l0aAotICAg
ICAgICAgICAgLy8gZXhwbGljaXRseSBpbmhlcml0ZWQgcHJvcGVydGllcyB0byBiZSBjYWNoZWQu
Ci0gICAgICAgICAgICBpZiAoY3VycmVudC52YWx1ZSgpLT5pc0luaGVyaXRlZFZhbHVlKCkpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgLy8gV2UgYXBwbHkgdGhl
IGluaGVyaXRlZCBwcm9wZXJ0aWVzIG9ubHkgd2hlbiB1c2luZyB0aGUgcHJvcGVydHkgY2FjaGUu
CisgICAgICAgICAgICAvLyBBIG1hdGNoIHdpdGggYSB2YWx1ZSB0aGF0IGlzIGV4cGxpY2l0ZWx5
IGluaGVyaXRlZCBzaG91bGQgbmV2ZXIgaGF2ZSBiZWVuIGNhY2hlZC4KKyAgICAgICAgICAgIEFT
U0VSVCghY3VycmVudC52YWx1ZSgpLT5pc0luaGVyaXRlZFZhbHVlKCkpOwogICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEID0g
Y3VycmVudC5pZCgpOwpAQCAtMjY1MiwyMCArMjY3NywxNyBAQCBib29sIFN0eWxlUmVzb2x2ZXI6
OkNhc2NhZGVkUHJvcGVydGllczo6YWRkU3R5bGVQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVy
dGllcwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzZXQocHJvcGVydHlJRCwgKmN1cnJlbnQu
dmFsdWUoKSwgbGlua01hdGNoVHlwZSk7CiAgICAgfQotICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIFN0eWxlUmVzb2x2ZXI6OkNhc2NhZGVkUHJvcGVydGllczo6YWRkTWF0Y2hlcyhjb25zdCBN
YXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQsIGJvb2wgaW1wb3J0YW50LCBpbnQgc3RhcnRJbmRleCwg
aW50IGVuZEluZGV4LCBib29sIGluaGVyaXRlZE9ubHkpCit2b2lkIFN0eWxlUmVzb2x2ZXI6OkNh
c2NhZGVkUHJvcGVydGllczo6YWRkTWF0Y2hlcyhjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1
bHQsIGJvb2wgaW1wb3J0YW50LCBpbnQgc3RhcnRJbmRleCwgaW50IGVuZEluZGV4LCBib29sIGlu
aGVyaXRlZE9ubHkpCiB7CiAgICAgaWYgKHN0YXJ0SW5kZXggPT0gLTEpCi0gICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKGludCBpID0gc3RhcnRJbmRleDsg
aSA8PSBlbmRJbmRleDsgKytpKSB7Ci0gICAgICAgIGNvbnN0IE1hdGNoZWRQcm9wZXJ0aWVzJiBt
YXRjaGVkUHJvcGVydGllcyA9IG1hdGNoUmVzdWx0Lm1hdGNoZWRQcm9wZXJ0aWVzW2ldOwotICAg
ICAgICBpZiAoIWFkZFN0eWxlUHJvcGVydGllcygqbWF0Y2hlZFByb3BlcnRpZXMucHJvcGVydGll
cywgKm1hdGNoUmVzdWx0Lm1hdGNoZWRSdWxlc1tpXSwgaW1wb3J0YW50LCBpbmhlcml0ZWRPbmx5
LCBzdGF0aWNfY2FzdDxQcm9wZXJ0eVdoaXRlbGlzdFR5cGU+KG1hdGNoZWRQcm9wZXJ0aWVzLndo
aXRlbGlzdFR5cGUpLCBtYXRjaGVkUHJvcGVydGllcy5saW5rTWF0Y2hUeXBlKSkKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY29uc3QgTWF0Y2hlZFByb3BlcnRpZXMmIG1hdGNo
ZWRQcm9wZXJ0aWVzID0gbWF0Y2hSZXN1bHQubWF0Y2hlZFByb3BlcnRpZXMoKVtpXTsKKyAgICAg
ICAgYWRkU3R5bGVQcm9wZXJ0aWVzKCptYXRjaGVkUHJvcGVydGllcy5wcm9wZXJ0aWVzLCAqbWF0
Y2hSZXN1bHQubWF0Y2hlZFJ1bGVzW2ldLCBpbXBvcnRhbnQsIGluaGVyaXRlZE9ubHksIHN0YXRp
Y19jYXN0PFByb3BlcnR5V2hpdGVsaXN0VHlwZT4obWF0Y2hlZFByb3BlcnRpZXMud2hpdGVsaXN0
VHlwZSksIG1hdGNoZWRQcm9wZXJ0aWVzLmxpbmtNYXRjaFR5cGUpOwogICAgIH0KLSAgICByZXR1
cm4gdHJ1ZTsKIH0KIAogdm9pZCBTdHlsZVJlc29sdmVyOjpDYXNjYWRlZFByb3BlcnRpZXM6OmFw
cGx5RGVmZXJyZWRQcm9wZXJ0aWVzKFN0eWxlUmVzb2x2ZXImIHJlc29sdmVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmgKaW5kZXggOTcyNzVkOGE5YmRjZmU5YjUyNzI1ODg3NDVlY2U1NDRi
ODAyMzczNC4uZTQ0MjJlMGE3YzdmN2ViZjRjNjhjNWM1OWZkOTljOWMxNWNlMWFkZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC0yNzcsMTIgKzI3NywxNSBAQCBwdWJsaWM6CiAK
ICAgICBzdHJ1Y3QgTWF0Y2hSZXN1bHQgewogICAgICAgICBNYXRjaFJlc3VsdCgpIDogaXNDYWNo
ZWFibGUodHJ1ZSkgeyB9Ci0gICAgICAgIFZlY3RvcjxNYXRjaGVkUHJvcGVydGllcywgNjQ+IG1h
dGNoZWRQcm9wZXJ0aWVzOwogICAgICAgICBWZWN0b3I8U3R5bGVSdWxlKiwgNjQ+IG1hdGNoZWRS
dWxlczsKICAgICAgICAgTWF0Y2hSYW5nZXMgcmFuZ2VzOwogICAgICAgICBib29sIGlzQ2FjaGVh
YmxlOwogCi0gICAgICAgIHZvaWQgYWRkTWF0Y2hlZFByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9w
ZXJ0aWVzJiwgU3R5bGVSdWxlKiA9IDAsIHVuc2lnbmVkIGxpbmtNYXRjaFR5cGUgPSBTZWxlY3Rv
ckNoZWNrZXI6Ok1hdGNoQWxsLCBQcm9wZXJ0eVdoaXRlbGlzdFR5cGUgPSBQcm9wZXJ0eVdoaXRl
bGlzdE5vbmUpOworICAgICAgICBjb25zdCBWZWN0b3I8TWF0Y2hlZFByb3BlcnRpZXMsIDY0PiYg
bWF0Y2hlZFByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiBtX21hdGNoZWRQcm9wZXJ0aWVzOyB9
CisKKyAgICAgICAgdm9pZCBhZGRNYXRjaGVkUHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRp
ZXMmLCBTdHlsZVJ1bGUqID0gbnVsbHB0ciwgdW5zaWduZWQgbGlua01hdGNoVHlwZSA9IFNlbGVj
dG9yQ2hlY2tlcjo6TWF0Y2hBbGwsIFByb3BlcnR5V2hpdGVsaXN0VHlwZSA9IFByb3BlcnR5V2hp
dGVsaXN0Tm9uZSk7CisgICAgcHJpdmF0ZToKKyAgICAgICAgVmVjdG9yPE1hdGNoZWRQcm9wZXJ0
aWVzLCA2ND4gbV9tYXRjaGVkUHJvcGVydGllczsKICAgICB9OwogCiBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGE3MGVkYjk2ZmJmZWM1YTkzZTk4OTQ3M2FlODcwZGQ4YmE3MjcxOTAuLjVhNzZlMjUwMzY4YWU2
ZGYxNTkyOTM3MDk0ZjgzYmM2OWQ5ZjJmZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0w
My0yOCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
YGN1cnJlbnRDb2xvcmAgY29tcHV0ZXMgdG8gdGhlIHNhbWUgY29sb3VyIG9uIGFsbCBlbGVtZW50
cywgZXZlbiBpZiAnY29sb3InIGlzIGluaGVyaXRlZCBkaWZmZXJlbnRseQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNDIwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9jdXJyZW50Q29s
b3Itb24tYmVmb3JlLWFmdGVyLXBzZXVkby1lbGVtZW50cy1leHBlY3RlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Nzcy9jdXJyZW50Q29sb3Itb24tYmVmb3JlLWFmdGVyLXBzZXVkby1l
bGVtZW50cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9jdXJyZW50Q29sb3Itc3R5
bGUtdXBkYXRlLXJlZnRlc3QtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9j
c3MvY3VycmVudENvbG9yLXN0eWxlLXVwZGF0ZS1yZWZ0ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3NzL2N1cnJlbnRDb2xvci12YWx1ZS1zdHlsZS11cGRhdGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9jdXJyZW50Q29sb3ItdmFsdWUtc3R5bGUtdXBk
YXRlLmh0bWw6IEFkZGVkLgorCiAyMDE1LTAzLTI4ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFy
b0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRvcHQgQXJyYXkucHJvdG90
eXBlLmluY2x1ZGVzIGFuZCBTdHJpbmcucHJvdG90eXBlLmluY2x1ZGVzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jdXJyZW50Q29sb3Itb24tYmVmb3JlLWFmdGVyLXBzZXVkby1l
bGVtZW50cy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3VycmVudENvbG9y
LW9uLWJlZm9yZS1hZnRlci1wc2V1ZG8tZWxlbWVudHMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43OWIzNzNmNzAzN2Q0YjA0MDYyY2U2NDJkMjBmNjkzMmYxZDZiZjYyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3VycmVudENvbG9yLW9uLWJlZm9yZS1hZnRlci1w
c2V1ZG8tZWxlbWVudHMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDcgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPHN0eWxlPgorICAgICNmaXJzdDo6YmVmb3JlLCAjZmlyc3Q6OmFmdGVyIHsgY29udGVu
dDogJ0ZBSUwnOyBiYWNrZ3JvdW5kOiB3aGl0ZTsgfQorICAgICNzZWNvbmQ6OmJlZm9yZSwgI3Nl
Y29uZDo6YWZ0ZXIgeyBjb250ZW50OiAnRkFJTCc7IGJhY2tncm91bmQ6IG5hdnk7IH0KKzwvc3R5
bGU+Cis8cD5UaGVyZSBzaG91bGQgYmUgYSBibHVlIGJsb2NrIGJlbG93OgorPHA+PHNwYW4gaWQ9
ImZpcnN0IiBzdHlsZT0iY29sb3I6d2hpdGUiPjwvc3Bhbj4gPHNwYW4gaWQ9InNlY29uZCIgc3R5
bGU9ImNvbG9yOm5hdnkiPjwvc3Bhbj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jdXJyZW50Q29sb3Itb24tYmVmb3JlLWFmdGVy
LXBzZXVkby1lbGVtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3VycmVudENvbG9y
LW9uLWJlZm9yZS1hZnRlci1wc2V1ZG8tZWxlbWVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODM3MWJl
ZTVmNTlkODZhMGJhZDU3NjA0ZmYwODVkNjY1NTJlMWUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvY3VycmVudENvbG9yLW9uLWJlZm9yZS1hZnRlci1wc2V1ZG8tZWxl
bWVudHMuaHRtbApAQCAtMCwwICsxLDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPnNwYW46
bWF0Y2hlcyg6OmJlZm9yZSwgOjphZnRlcikgeyBjb250ZW50OiAnRkFJTCc7IGJhY2tncm91bmQ6
IGN1cnJlbnRDb2xvcjsgfTwvc3R5bGU+Cis8cD5UaGVyZSBzaG91bGQgYmUgYSBibHVlIGJsb2Nr
IGJlbG93OgorPHA+PHNwYW4gc3R5bGU9ImNvbG9yOndoaXRlIj48L3NwYW4+IDxzcGFuIHN0eWxl
PSJjb2xvcjpuYXZ5Ij48L3NwYW4+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3VycmVudENvbG9yLXN0eWxlLXVwZGF0ZS1yZWZ0
ZXN0LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jdXJyZW50Q29sb3Itc3R5
bGUtdXBkYXRlLXJlZnRlc3QtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDM5MmVlZmI5Njlh
YjMwN2Y3ZjMxMTBmODQ0ZjhkNDVmMGMwNmM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY3VycmVudENvbG9yLXN0eWxlLXVwZGF0ZS1yZWZ0ZXN0LWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4K
KyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmNvbnRhaW5lcjEgeworICAgICAgICAgICAg
ICAgIG1hcmdpbjogNHB4OworICAgICAgICAgICAgICAgIGNvbG9yOiBibHVlOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgLmNvbnRhaW5lcjEgPiBzcGFuIHsKKyAgICAgICAgICAgICAgICBi
b3JkZXI6IDFweCBzb2xpZCBibHVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLmNvbnRh
aW5lcjIgeworICAgICAgICAgICAgICAgIG1hcmdpbjogNHB4OworICAgICAgICAgICAgICAgIGNv
bG9yOiByZWQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAuY29udGFpbmVyMiA+IHNwYW4g
eworICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRo
aXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSB2YWx1ZSBvZiBjdXJyZW50Q29sb3IgaXMgdXBkYXRl
ZCBjb3JyZWN0bHkgd2hlbiB0aGUgc3R5bGUgaXMgdXBkYXRlZC4gSWYgdGhlIHRleHQgaXMgc3Vj
Y2Vzc2Z1bCwgZWFjaCBvZiB0aGUgbGluZSBzaG91bGQgYmUgc3R5bGVkIGFzIGRlc2NyaWJlZCBi
eSBpdHMgdGV4dC48L3A+CisKKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyMSI+CisgICAg
ICAgICAgICA8c3Bhbj5UaGlzIHRleHQgYW5kIGJvcmRlciBzaG91bGQgYmUgYmx1ZS48L3NwYW4+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIyIj4KKyAgICAg
ICAgICAgIDxzcGFuPlRoaXMgdGV4dCBhbmQgYm9yZGVyIHNob3VsZCBiZSByZWQuPC9zcGFuPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyMiI+CisgICAgICAg
ICAgICA8c3Bhbj5UaGlzIHRleHQgYW5kIGJvcmRlciBzaG91bGQgYmUgcmVkLjwvc3Bhbj4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lcjEiPgorICAgICAgICAg
ICAgPHNwYW4+VGhpcyB0ZXh0IGFuZCBib3JkZXIgc2hvdWxkIGJlIGJsdWUuPC9zcGFuPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyMiI+CisgICAgICAgICAg
ICA8c3Bhbj5UaGlzIHRleHQgYW5kIGJvcmRlciBzaG91bGQgYmUgcmVkLjwvc3Bhbj4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lcjEiPgorICAgICAgICAgICAg
PHNwYW4+VGhpcyB0ZXh0IGFuZCBib3JkZXIgc2hvdWxkIGJlIGJsdWUuPC9zcGFuPgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyMiI+CisgICAgICAgICAgICA8
c3Bhbj5UaGlzIHRleHQgYW5kIGJvcmRlciBzaG91bGQgYmUgcmVkLjwvc3Bhbj4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lcjEiPgorICAgICAgICAgICAgPHNw
YW4+VGhpcyB0ZXh0IGFuZCBib3JkZXIgc2hvdWxkIGJlIGJsdWUuPC9zcGFuPgorICAgICAgICA8
L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3VycmVudENvbG9yLXN0eWxlLXVwZGF0
ZS1yZWZ0ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jdXJyZW50Q29sb3Itc3R5bGUt
dXBkYXRlLXJlZnRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTZhZDc2NTM2NDMxNDc3OTJmOThhYzcy
MTJkYjY1MGZiNWNiNzcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y3VycmVudENvbG9yLXN0eWxlLXVwZGF0ZS1yZWZ0ZXN0Lmh0bWwKQEAgLTAsMCArMSw4NiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdD4KKyAg
ICAgICAgICAgIGZ1bmN0aW9uIGZvcmNlTGF5b3V0KCkgeworICAgICAgICAgICAgICAgIC8vIFdl
IG11c3QgbWFrZSBzdXJlIHRvIGhpdCB0aGUgY2FjaGUuCisgICAgICAgICAgICAgICAgdmFyIGZp
cnN0UGFyYWdyYXBoID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigicCIpOworICAgICAgICAgICAg
ICAgIHZhciBvcmlnaW5hbE9mZnNldCA9IGZpcnN0UGFyYWdyYXBoLm9mZnNldExlZnQ7CisgICAg
ICAgICAgICAgICAgZmlyc3RQYXJhZ3JhcGguc3R5bGUubWFyZ2luTGVmdCA9ICc0MnB4JzsKKyAg
ICAgICAgICAgICAgICB2YXIgbmV3T2Zmc2V0ID0gZmlyc3RQYXJhZ3JhcGgub2Zmc2V0TGVmdDsK
KyAgICAgICAgICAgICAgICBpZiAob3JpZ2luYWxPZmZzZXQgPT0gbmV3T2Zmc2V0KQorICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgiU29tZXRoaW5nIGhvcnJpYmx5IHdyb25nIGhh
cHBlbmVkIHRvIHRoZSBsYXlvdXQuIik7CisgICAgICAgICAgICAgICAgZmlyc3RQYXJhZ3JhcGgu
c3R5bGUubWFyZ2luTGVmdCA9ICcwJzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZG9j
dW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZvcmNlTGF5b3V0KTsK
KworCisgICAgICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgICAgIGZv
cmNlTGF5b3V0KCk7CisKKyAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0MSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQxIik7CisgICAgICAgICAgICAgICAgdGFyZ2V0MS5jbGFzc0xp
c3QuYWRkKCJjb250YWluZXIyIik7CisKKyAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0MiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQyIik7CisgICAgICAgICAgICAgICAgdGFyZ2V0
Mi5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgImNvbnRhaW5lcjEiKTsKKworICAgICAgICAgICAgICAg
IHZhciB0YXJnZXQzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDMiKTsKKyAgICAg
ICAgICAgICAgICB0YXJnZXQzLnN0eWxlLmNvbG9yID0gInJlZCI7CisKKyAgICAgICAgICAgICAg
ICB2YXIgdGFyZ2V0NCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ0Iik7CisgICAg
ICAgICAgICAgICAgdGFyZ2V0NC5zdHlsZS5jb2xvciA9ICJibHVlIjsKKworICAgICAgICAgICAg
ICAgIHZhciB0YXJnZXQ1ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDUiKTsKKyAg
ICAgICAgICAgICAgICB0YXJnZXQ1LnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiY29sb3I6IHJlZCIp
OworCisgICAgICAgICAgICAgICAgdmFyIHRhcmdldDYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0NiIpOworICAgICAgICAgICAgICAgIHRhcmdldDYuc2V0QXR0cmlidXRlKCJzdHls
ZSIsICJjb2xvcjogYmx1ZSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJ1blRlc3QpOworICAgICAgICA8L3NjcmlwdD4KKyAg
ICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmNvbnRhaW5lcjEgeworICAgICAgICAgICAgICAg
IGNvbG9yOiBibHVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLmNvbnRhaW5lcjIgewor
ICAgICAgICAgICAgICAgIGNvbG9yOiByZWQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBk
aXYgeworICAgICAgICAgICAgICAgIG1hcmdpbjogNHB4OworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgZGl2ID4gc3BhbiB7CisgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgY3Vy
cmVudENvbG9yOworICAgICAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4K
KyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIHZhbHVl
IG9mIGN1cnJlbnRDb2xvciBpcyB1cGRhdGVkIGNvcnJlY3RseSB3aGVuIHRoZSBzdHlsZSBpcyB1
cGRhdGVkLiBJZiB0aGUgdGV4dCBpcyBzdWNjZXNzZnVsLCBlYWNoIG9mIHRoZSBsaW5lIHNob3Vs
ZCBiZSBzdHlsZWQgYXMgZGVzY3JpYmVkIGJ5IGl0cyB0ZXh0LjwvcD4KKworICAgICAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIxIj4KKyAgICAgICAgICAgIDxzcGFuPlRoaXMgdGV4dCBhbmQgYm9y
ZGVyIHNob3VsZCBiZSBibHVlLjwvc3Bhbj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lcjIiPgorICAgICAgICAgICAgPHNwYW4+VGhpcyB0ZXh0IGFuZCBib3Jk
ZXIgc2hvdWxkIGJlIHJlZC48L3NwYW4+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlk
PSJ0YXJnZXQxIj4KKyAgICAgICAgICAgIDxzcGFuPlRoaXMgdGV4dCBhbmQgYm9yZGVyIHNob3Vs
ZCBiZSByZWQuPC9zcGFuPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0idGFyZ2V0
MiI+CisgICAgICAgICAgICA8c3Bhbj5UaGlzIHRleHQgYW5kIGJvcmRlciBzaG91bGQgYmUgYmx1
ZS48L3NwYW4+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQzIj4KKyAg
ICAgICAgICAgIDxzcGFuPlRoaXMgdGV4dCBhbmQgYm9yZGVyIHNob3VsZCBiZSByZWQuPC9zcGFu
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0idGFyZ2V0NCI+CisgICAgICAgICAg
ICA8c3Bhbj5UaGlzIHRleHQgYW5kIGJvcmRlciBzaG91bGQgYmUgYmx1ZS48L3NwYW4+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQ1Ij4KKyAgICAgICAgICAgIDxzcGFu
PlRoaXMgdGV4dCBhbmQgYm9yZGVyIHNob3VsZCBiZSByZWQuPC9zcGFuPgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPGRpdiBpZD0idGFyZ2V0NiI+CisgICAgICAgICAgICA8c3Bhbj5UaGlzIHRl
eHQgYW5kIGJvcmRlciBzaG91bGQgYmUgYmx1ZS48L3NwYW4+CisgICAgICAgIDwvZGl2PgorICAg
IDwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jdXJyZW50Q29sb3ItdmFsdWUtc3R5bGUtdXBkYXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2N1cnJlbnRDb2xvci12YWx1ZS1zdHls
ZS11cGRhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwYmJkZTNlZTRmY2E1NjE3NjgzMjhk
ODg3MDBhNTRjZGI5NDU0OTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jdXJyZW50Q29sb3ItdmFsdWUtc3R5bGUtdXBkYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDU5IEBACitUZXN0IHRoYXQgdGhlIHByb3BlcnRpZXMgdGhhdCB1c2UgdGhlIENTUyBWYWx1ZSAi
Y3VycmVudGNvbG9yIiB0byBkZWZpbmUgdGhlIGNvbG9yIGFyZSB1cGRhdGVkIGNvcnJlY3RseSB3
aGVuIHRoZSBpbmhlcml0ZWQgY29sb3IgY2hhbmdlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKKworSW5pdGlhbCBzdGF0ZS4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlID4+IHRhcmdldCIpWzBdKS5ib3JkZXJDb2xv
ciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgPj4gdGFyZ2V0IilbMF0pLmJhY2tncm91bmRDb2xvciBp
cyAicmdiKDQsIDUsIDYpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIi50ZXN0LWNhc2UgPj4gdGFyZ2V0IilbMV0pLmJvcmRlckNvbG9yIGlzICJyZ2Io
NCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiLnRlc3QtY2FzZSA+PiB0YXJnZXQiKVsxXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoNCwg
NSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
LnRlc3QtY2FzZSA+PiB0YXJnZXQiKVsyXSkuYm9yZGVyQ29sb3IgaXMgInJnYig0LCA1LCA2KSIK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1j
YXNlID4+IHRhcmdldCIpWzJdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNl
ID4+IHRhcmdldCIpWzNdKS5ib3JkZXJDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgPj4gdGFy
Z2V0IilbM10pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorCitMZXQncyBvdmVy
cmlkZSB0aGUgc3R5bGUgb2YgdGhlIHdyYXBwZXIgdGhyb3VnaCB0aGVpciBzdHlsZSBvYmplY3Qu
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3Qt
Y2FzZSA+PiB0YXJnZXQiKVswXSkuYm9yZGVyQ29sb3IgaXMgInJnYig3LCA4LCA5KSIKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlID4+
IHRhcmdldCIpWzBdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYig3LCA4LCA5KSIKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlID4+IHRh
cmdldCIpWzFdKS5ib3JkZXJDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgPj4gdGFyZ2V0Iilb
MV0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgPj4gdGFyZ2V0IilbMl0p
LmJvcmRlckNvbG9yIGlzICJyZ2IoNywgOCwgOSkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSA+PiB0YXJnZXQiKVsyXSkuYmFja2dy
b3VuZENvbG9yIGlzICJyZ2IoNywgOCwgOSkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSA+PiB0YXJnZXQiKVszXSkuYm9yZGVyQ29s
b3IgaXMgInJnYig3LCA4LCA5KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlID4+IHRhcmdldCIpWzNdKS5iYWNrZ3JvdW5kQ29sb3Ig
aXMgInJnYig3LCA4LCA5KSIKKworTGV0J3MgcmVtb3ZlIHRoZSBzdHlsZSBhdHRyaWJ1dGUgb24g
dGhlIHdyYXBwZXIuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgiLnRlc3QtY2FzZSA+PiB0YXJnZXQiKVswXSkuYm9yZGVyQ29sb3IgaXMgInJnYig0LCA1
LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIu
dGVzdC1jYXNlID4+IHRhcmdldCIpWzBdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYig0LCA1LCA2
KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVz
dC1jYXNlID4+IHRhcmdldCIpWzFdKS5ib3JkZXJDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2Ug
Pj4gdGFyZ2V0IilbMV0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgPj4g
dGFyZ2V0IilbMl0pLmJvcmRlckNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSA+PiB0YXJnZXQi
KVsyXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSA+PiB0YXJnZXQiKVsz
XSkuYm9yZGVyQ29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlID4+IHRhcmdldCIpWzNdKS5iYWNr
Z3JvdW5kQ29sb3IgaXMgInJnYig0LCA1LCA2KSIKKworTGV0J3MgcmVtb3ZlIGNsYXNzIG9uIHRo
ZSB3cmFwcGVycy4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIudGVzdC1jYXNlID4+IHRhcmdldCIpWzBdKS5ib3JkZXJDb2xvciBpcyAicmdiKDEsIDIs
IDMpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50
ZXN0LWNhc2UgPj4gdGFyZ2V0IilbMF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEsIDIsIDMp
IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0
LWNhc2UgPj4gdGFyZ2V0IilbMV0pLmJvcmRlckNvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNT
IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSA+
PiB0YXJnZXQiKVsxXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSA+PiB0
YXJnZXQiKVsyXSkuYm9yZGVyQ29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlID4+IHRhcmdldCIp
WzJdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlID4+IHRhcmdldCIpWzNd
KS5ib3JkZXJDb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgPj4gdGFyZ2V0IilbM10pLmJhY2tn
cm91bmRDb2xvciBpcyAicmdiKDEsIDIsIDMpIgorCitUaGVuIGFkZCBpdCBiYWNrLgorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgPj4g
dGFyZ2V0IilbMF0pLmJvcmRlckNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSA+PiB0YXJnZXQi
KVswXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSA+PiB0YXJnZXQiKVsx
XSkuYm9yZGVyQ29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlID4+IHRhcmdldCIpWzFdKS5iYWNr
Z3JvdW5kQ29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlID4+IHRhcmdldCIpWzJdKS5ib3JkZXJD
b2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgPj4gdGFyZ2V0IilbMl0pLmJhY2tncm91bmRDb2xv
ciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgPj4gdGFyZ2V0IilbM10pLmJvcmRlckNvbG9yIGlzICJy
Z2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgiLnRlc3QtY2FzZSA+PiB0YXJnZXQiKVszXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2Io
NCwgNSwgNikiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3VycmVudENvbG9yLXZhbHVl
LXN0eWxlLXVwZGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3VycmVudENvbG9yLXZh
bHVlLXN0eWxlLXVwZGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1YWUwYTA1MzcyMTFiY2EwNGVmNmQ4
OTYxNTNiNmQ5NDc5OGM4MjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jdXJyZW50Q29sb3ItdmFsdWUtc3R5bGUtdXBkYXRlLmh0bWwKQEAgLTAsMCArMSw4NyBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgLnRlc3QtY2FzZSB7
CisgICAgICAgIGNvbG9yOiByZ2IoMSwgMiwgMyk7CisgICAgfQorICAgIC53cmFwcGVyIHsKKyAg
ICAgICAgY29sb3I6IHJnYig0LCA1LCA2KTsKKyAgICB9CisgICAgdGFyZ2V0IHsKKyAgICAgICAg
Ym9yZGVyLWNvbG9yOiBjdXJyZW50Y29sb3I7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1
cnJlbnRjb2xvcjsKKyAgICB9Cis8L3N0eWxlPgorPHNjcmlwdD4KKyAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKyAgICBmdW5jdGlvbiB0ZXN0Q29sb3IoZXhwZWN0ZWRDb2xvcikgeworICAgICAg
ICB2YXIgYWxsVGFyZ2V0cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2Ug
Pj4gdGFyZ2V0Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsVGFyZ2V0cy5sZW5n
dGg7ICsraSkgeworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgPj4gdGFyZ2V0Iilb
JyArIGkgKyAnXSkuYm9yZGVyQ29sb3InLCBleHBlY3RlZENvbG9yKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCIudGVzdC1jYXNlID4+IHRhcmdldCIpWycgKyBpICsgJ10pLmJhY2tncm91bmRDb2xv
cicsIGV4cGVjdGVkQ29sb3IpOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCB0aGUgcHJvcGVydGllcyB0
aGF0IHVzZSB0aGUgQ1NTIFZhbHVlICJjdXJyZW50Y29sb3IiIHRvIGRlZmluZSB0aGUgY29sb3Ig
YXJlIHVwZGF0ZWQgY29ycmVjdGx5IHdoZW4gdGhlIGluaGVyaXRlZCBjb2xvciBjaGFuZ2VzLicp
OworCisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIkluaXRpYWwgc3RhdGUuIik7
CisgICAgICAgIHRlc3RDb2xvcigicmdiKDQsIDUsIDYpIik7CisKKyAgICAgICAgZGVidWcoIiIp
OworICAgICAgICBkZWJ1ZygiTGV0J3Mgb3ZlcnJpZGUgdGhlIHN0eWxlIG9mIHRoZSB3cmFwcGVy
IHRocm91Z2ggdGhlaXIgc3R5bGUgb2JqZWN0LiIpOworICAgICAgICB2YXIgYWxsV3JhcHBlcnMg
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIud3JhcHBlciIpOworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGFsbFdyYXBwZXJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBhbGxX
cmFwcGVyc1tpXS5zdHlsZS5jb2xvciA9ICJyZ2IoNywgOCwgOSkiOworICAgICAgICB9CisgICAg
ICAgIHRlc3RDb2xvcigicmdiKDcsIDgsIDkpIik7CisKKyAgICAgICAgZGVidWcoIiIpOworICAg
ICAgICBkZWJ1ZygiTGV0J3MgcmVtb3ZlIHRoZSBzdHlsZSBhdHRyaWJ1dGUgb24gdGhlIHdyYXBw
ZXIuIik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsV3JhcHBlcnMubGVuZ3RoOyAr
K2kpIHsKKyAgICAgICAgICAgIGFsbFdyYXBwZXJzW2ldLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUi
KTsKKyAgICAgICAgfQorICAgICAgICB0ZXN0Q29sb3IoInJnYig0LCA1LCA2KSIpOworCisgICAg
ICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIkxldCdzIHJlbW92ZSBjbGFzcyBvbiB0aGUg
d3JhcHBlcnMuIik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsV3JhcHBlcnMubGVu
Z3RoOyArK2kpIHsKKyAgICAgICAgICAgIGFsbFdyYXBwZXJzW2ldLmNsYXNzTGlzdC5yZW1vdmUo
IndyYXBwZXIiKTsKKyAgICAgICAgfQorICAgICAgICB0ZXN0Q29sb3IoInJnYigxLCAyLCAzKSIp
OworCisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIlRoZW4gYWRkIGl0IGJhY2su
Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsV3JhcHBlcnMubGVuZ3RoOyArK2kp
IHsKKyAgICAgICAgICAgIGFsbFdyYXBwZXJzW2ldLmNsYXNzTGlzdC5hZGQoIndyYXBwZXIiKTsK
KyAgICAgICAgfQorICAgICAgICB0ZXN0Q29sb3IoInJnYig0LCA1LCA2KSIpOworCisgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgIH0KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIHJ1blRlc3QpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNz
PSJ0ZXN0LWNhc2UiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4KKyAgICAgICAgICAg
IDx0YXJnZXQ+PC90YXJnZXQ+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJ3
cmFwcGVyIj4KKyAgICAgICAgICAgIDx0YXJnZXQ+PC90YXJnZXQ+CisgICAgICAgIDwvZGl2Pgor
ICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InRlc3QtY2FzZSIgc3R5bGU9ImRpc3BsYXk6bm9u
ZTsiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4KKyAgICAgICAgICAgIDx0YXJnZXQ+
PC90YXJnZXQ+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4K
KyAgICAgICAgICAgIDx0YXJnZXQ+PC90YXJnZXQ+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2
PgorPC9ib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="274509"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>