<?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>126940</bug_id>
          
          <creation_ts>2014-01-13 15:42:58 -0800</creation_ts>
          <short_desc>[WebGL2] Query Objects</short_desc>
          <delta_ts>2020-07-23 17:50:35 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>214622</dependson>
          <blocked>126404</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="James Darpinian">jdarpinian</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jdarpinian</cc>
    
    <cc>kbr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>967504</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2014-01-13 15:42:58 -0800</bug_when>
    <thetext>Implement the WebGL 2 Query objects.

/* Query Objects */
  WebGLQuery? createQuery();
  void deleteQuery(WebGLQuery? query);
  [WebGLHandlesContextLoss] GLboolean isQuery(WebGLQuery? query);
  void beginQuery(GLenum target, WebGLQuery? query);
  void endQuery(GLenum target);
  /* TODO: document return type */
  any getQuery(GLenum target, GLenum pname);
  /* TODO: document return type */
  any getQueryParameter(WebGLQuery? query, GLenum pname);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967505</commentid>
    <comment_count>1</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2014-01-13 15:43:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/15002395&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228212</commentid>
    <comment_count>2</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-09-09 10:52:10 -0700</bug_when>
    <thetext>&lt;rdar://problem/28228150&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228214</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-09-09 10:53:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/15002395&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673331</commentid>
    <comment_count>4</comment_count>
      <attachid>404781</attachid>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-07-20 17:27:53 -0700</bug_when>
    <thetext>Created attachment 404781
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673533</commentid>
    <comment_count>5</comment_count>
      <attachid>404781</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-07-21 11:29:19 -0700</bug_when>
    <thetext>Comment on attachment 404781
Patch

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

Looking good overall James - couple of comments.

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1879
&gt; +    if (isContextLostOrPending() || !validateWebGLObject(&quot;deleteQuery&quot;, query))

Deleting a null query, like other objects, is supposed to be a no-op, so using validateWebGLObject here will generate an incorrect INVALID_VALUE. Is this covered by the WebGL conformance tests?

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1920
&gt;      if (!addResult.isNewEntry) {

It looks like adding, without first testing whether an entry exists, means that if there is an attempt to incorrectly begin two queries of the same type one after the other, m_activeQueries will overwrite the first (actually active) one with the second one, breaking the tracking state. This can be tested by:
 - Attempt to start query A (like TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN)
 - Attempt to start query B of the same type (leads to INVALID_OPERATION)
 - Attempt to end query A

This will yield INVALID_OPERATION when it shouldn&apos;t.

Could you confirm whether this bug exists and if so make sure it&apos;s covered by the upstream WebGL conformance tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673551</commentid>
    <comment_count>6</comment_count>
      <attachid>404781</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-07-21 12:01:04 -0700</bug_when>
    <thetext>Comment on attachment 404781
Patch

Attempting to remove duplicate comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673703</commentid>
    <comment_count>7</comment_count>
      <attachid>404890</attachid>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-07-21 17:45:19 -0700</bug_when>
    <thetext>Created attachment 404890
review feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673704</commentid>
    <comment_count>8</comment_count>
      <attachid>404781</attachid>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-07-21 17:46:23 -0700</bug_when>
    <thetext>Comment on attachment 404781
Patch

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

&gt;&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1879
&gt;&gt; +    if (isContextLostOrPending() || !validateWebGLObject(&quot;deleteQuery&quot;, query))
&gt; 
&gt; Deleting a null query, like other objects, is supposed to be a no-op, so using validateWebGLObject here will generate an incorrect INVALID_VALUE. Is this covered by the WebGL conformance tests?

Fixed. Looks like maybe there isn&apos;t a test for that, or at least it isn&apos;t running in the WebKit layout tests.

&gt;&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1920
&gt;&gt;      if (!addResult.isNewEntry) {
&gt; 
&gt; It looks like adding, without first testing whether an entry exists, means that if there is an attempt to incorrectly begin two queries of the same type one after the other, m_activeQueries will overwrite the first (actually active) one with the second one, breaking the tracking state. This can be tested by:
&gt;  - Attempt to start query A (like TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN)
&gt;  - Attempt to start query B of the same type (leads to INVALID_OPERATION)
&gt;  - Attempt to end query A
&gt; 
&gt; This will yield INVALID_OPERATION when it shouldn&apos;t.
&gt; 
&gt; Could you confirm whether this bug exists and if so make sure it&apos;s covered by the upstream WebGL conformance tests?

There are tests for this. It turns out WTF::HashMap::add does not overwrite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673706</commentid>
    <comment_count>9</comment_count>
      <attachid>404781</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-07-21 17:58:26 -0700</bug_when>
    <thetext>Comment on attachment 404781
Patch

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

&gt;&gt;&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1879
&gt;&gt;&gt; +    if (isContextLostOrPending() || !validateWebGLObject(&quot;deleteQuery&quot;, query))
&gt;&gt; 
&gt;&gt; Deleting a null query, like other objects, is supposed to be a no-op, so using validateWebGLObject here will generate an incorrect INVALID_VALUE. Is this covered by the WebGL conformance tests?
&gt; 
&gt; Fixed. Looks like maybe there isn&apos;t a test for that, or at least it isn&apos;t running in the WebKit layout tests.

Possible to quickly add a test to sdk/tests/conformance2/query/query.html ? It looks like this isn&apos;t checked at least by that test.

&gt;&gt;&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1920
&gt;&gt;&gt;      if (!addResult.isNewEntry) {
&gt;&gt; 
&gt;&gt; It looks like adding, without first testing whether an entry exists, means that if there is an attempt to incorrectly begin two queries of the same type one after the other, m_activeQueries will overwrite the first (actually active) one with the second one, breaking the tracking state. This can be tested by:
&gt;&gt;  - Attempt to start query A (like TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN)
&gt;&gt;  - Attempt to start query B of the same type (leads to INVALID_OPERATION)
&gt;&gt;  - Attempt to end query A
&gt;&gt; 
&gt;&gt; This will yield INVALID_OPERATION when it shouldn&apos;t.
&gt;&gt; 
&gt;&gt; Could you confirm whether this bug exists and if so make sure it&apos;s covered by the upstream WebGL conformance tests?
&gt; 
&gt; There are tests for this. It turns out WTF::HashMap::add does not overwrite.

Ah right, I misread the documentation for HashMap::add. Thanks for checking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673707</commentid>
    <comment_count>10</comment_count>
      <attachid>404890</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-07-21 18:07:16 -0700</bug_when>
    <thetext>Comment on attachment 404890
review feedback

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

Looks good to me!

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1890
&gt; +    if (isContextLostOrPending() || !query || !query-&gt;object() || !validateWebGLObject(&quot;isQuery&quot;, query))

This will generate INVALID_VALUE if it receives a query from a different context, where Chromium will just return false. Not sure what the better behavior is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674050</commentid>
    <comment_count>11</comment_count>
      <attachid>404998</attachid>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-07-22 17:12:13 -0700</bug_when>
    <thetext>Created attachment 404998
rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674059</commentid>
    <comment_count>12</comment_count>
      <attachid>405002</attachid>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-07-22 17:57:36 -0700</bug_when>
    <thetext>Created attachment 405002
rebaseline layout test expando-loss-2.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674479</commentid>
    <comment_count>13</comment_count>
      <attachid>405100</attachid>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-07-23 17:19:40 -0700</bug_when>
    <thetext>Created attachment 405100
mark reviewed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674496</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-23 17:50:33 -0700</bug_when>
    <thetext>Committed r264807: &lt;https://trac.webkit.org/changeset/264807&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 405100.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404781</attachid>
            <date>2020-07-20 17:27:53 -0700</date>
            <delta_ts>2020-07-21 17:45:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126940-20200720172752.patch</filename>
            <type>text/plain</type>
            <size>17256</size>
            <attacher name="James Darpinian">jdarpinian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZiOTRlMTgxMGU0ZGUx
MjM2ZGZjOGNiZWM2ZDk3MzM4MjgzYjk5ZC4uMWE2Nzg3YzEyMmE3NjczNTkwYzEwYmJiMWZjNGM0
NDFiNzM1NGY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA3LTIwICBKYW1l
cyBEYXJwaW5pYW4gIDxqZGFycGluaWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbV2ViR0wy
XSBRdWVyeSBPYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjY5NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBQYXNzZXMgY29uZm9ybWFuY2UgdGVzdHMgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3F1ZXJ5LyoKKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlUXVl
cnkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNRdWVyeSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZVF1ZXJ5
VGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJlZ2lu
UXVlcnkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZW5kUXVl
cnkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnkp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnlQYXJh
bWV0ZXIpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaDoK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMUXVlcnk6OmRlbGV0ZU9iamVjdEltcGwpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMUXVlcnkuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZh
bGlkYXRlV2ViR0xPYmplY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dy
YXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmRlbGV0ZVF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjppc1F1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpnZXRRdWVyeSk6CisKIDIwMjAtMDctMjAgIENsYXJrIFdhbmcgIDxjbGFya193
YW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXhlcyB0byBtYXRjaCBCYXNlQXVkaW9Db250ZXh0
LmlkbCB0byBzcGVjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TDJSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
MlJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGJjNmI1MjEzOTg0YjFkYWUxZDM0ZmNiOWQxMGU4
M2RmZjBmMzMzNTMuLjUzMmRiMTc2MWQ2MzNmZDk3MWJjYWU2NGFmOWU2MWU4ZTEyYWQ0YzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0Nv
bnRleHQuY3BwCkBAIC0xODc0LDQ0ICsxODc0LDY0IEBAIFJlZlB0cjxXZWJHTFF1ZXJ5PiBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVRdWVyeSgpCiAgICAgcmV0dXJuIHF1ZXJ5OwogfQog
Ci12b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0ZVF1ZXJ5KFdlYkdMUXVlcnkqKQor
dm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVRdWVyeShXZWJHTFF1ZXJ5KiBxdWVy
eSkKIHsKLSAgICBMT0coV2ViR0wsICJbWyBOT1QgSU1QTEVNRU5URUQgXV0gZGVsZXRlUXVlcnko
KSIpOworICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xP
YmplY3QoImRlbGV0ZVF1ZXJ5IiwgcXVlcnkpKQorICAgICAgICByZXR1cm47CisgICAgaWYgKHF1
ZXJ5LT50YXJnZXQoKSAmJiBxdWVyeSA9PSBtX2FjdGl2ZVF1ZXJpZXMuZ2V0KHF1ZXJ5LT50YXJn
ZXQoKSkpIHsKKyAgICAgICAgbV9jb250ZXh0LT5lbmRRdWVyeShxdWVyeS0+dGFyZ2V0KCkpOwor
ICAgICAgICBtX2FjdGl2ZVF1ZXJpZXMucmVtb3ZlKHF1ZXJ5LT50YXJnZXQoKSk7CisgICAgfQor
ICAgIGRlbGV0ZU9iamVjdChxdWVyeSk7CiB9CiAKLUdDR0xib29sZWFuIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmlzUXVlcnkoV2ViR0xRdWVyeSopCitHQ0dMYm9vbGVhbiBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0Ojppc1F1ZXJ5KFdlYkdMUXVlcnkqIHF1ZXJ5KQogewotICAgIExPRyhXZWJHTCwg
IltbIE5PVCBJTVBMRU1FTlRFRCBdXSBpc1F1ZXJ5KCkiKTsKLSAgICByZXR1cm4gZmFsc2U7Cisg
ICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhcXVlcnkgfHwgIXF1ZXJ5LT5vYmpl
Y3QoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiaXNRdWVyeSIsIHF1ZXJ5KSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX2NvbnRleHQtPmlzUXVlcnkocXVlcnktPm9iamVj
dCgpKTsKK30KKworYm9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZVF1ZXJ5VGFy
Z2V0KGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSog
dGFyZ2V0S2V5KQoreworICAgIGlmICh0YXJnZXQgIT0gR3JhcGhpY3NDb250ZXh0R0w6OkFOWV9T
QU1QTEVTX1BBU1NFRCAmJiB0YXJnZXQgIT0gR3JhcGhpY3NDb250ZXh0R0w6OkFOWV9TQU1QTEVT
X1BBU1NFRF9DT05TRVJWQVRJVkUgJiYgdGFyZ2V0ICE9IEdyYXBoaWNzQ29udGV4dEdMOjpUUkFO
U0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOKSB7CisgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX0VOVU0sIGZ1bmN0aW9uTmFtZSwgImlu
dmFsaWQgdGFyZ2V0Iik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKHRh
cmdldEtleSkKKyAgICAgICAgKnRhcmdldEtleSA9ICh0YXJnZXQgPT0gR3JhcGhpY3NDb250ZXh0
R0w6OkFOWV9TQU1QTEVTX1BBU1NFRF9DT05TRVJWQVRJVkUpID8gR3JhcGhpY3NDb250ZXh0R0w6
OkFOWV9TQU1QTEVTX1BBU1NFRCA6IHRhcmdldDsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9p
ZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiZWdpblF1ZXJ5KEdDR0xlbnVtIHRhcmdldCwgV2Vi
R0xRdWVyeSYgcXVlcnkpCiB7Ci0gICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKKyAg
ICBHQ0dMZW51bSB0YXJnZXRLZXk7CisgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8
fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiYmVnaW5RdWVyeSIsICZxdWVyeSkgfHwgIXZhbGlkYXRl
UXVlcnlUYXJnZXQoImJlZ2luUXVlcnkiLCB0YXJnZXQsICZ0YXJnZXRLZXkpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICAvLyBGSVhNRTogQWRkIHZhbGlkYXRpb24gdG8gcHJldmVudCBiYWQgY2Fj
aGluZy4KLQotICAgIC8vIE9ubHkgb25lIHF1ZXJ5IG9iamVjdCBjYW4gYmUgYWN0aXZlIHBlciB0
YXJnZXQuCi0gICAgYXV0byB0YXJnZXRLZXkgPSAodGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dEdM
OjpBTllfU0FNUExFU19QQVNTRURfQ09OU0VSVkFUSVZFKSA/IEdyYXBoaWNzQ29udGV4dEdMOjpB
TllfU0FNUExFU19QQVNTRUQgOiB0YXJnZXQ7CisgICAgaWYgKHF1ZXJ5LnRhcmdldCgpICYmIHF1
ZXJ5LnRhcmdldCgpICE9IHRhcmdldCkgeworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJT04sICJiZWdpblF1ZXJ5IiwgInF1ZXJ5IHR5
cGUgZG9lcyBub3QgbWF0Y2ggdGFyZ2V0Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAg
ICBhdXRvIGFkZFJlc3VsdCA9IG1fYWN0aXZlUXVlcmllcy5hZGQodGFyZ2V0S2V5LCBtYWtlUmVm
UHRyKCZxdWVyeSkpOwogCisgICAgLy8gT25seSBvbmUgcXVlcnkgb2JqZWN0IGNhbiBiZSBhY3Rp
dmUgcGVyIHRhcmdldC4KICAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KSB7CiAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX09QRVJBVElPTiwg
ImJlZ2luUXVlcnkiLCAiUXVlcnkgb2JqZWN0IG9mIHRhcmdldCBpcyBhbHJlYWR5IGFjdGl2ZSIp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgbV9jb250ZXh0LT5iZWdpblF1ZXJ5KHRh
cmdldCwgcXVlcnkub2JqZWN0KCkpOworICAgIHF1ZXJ5LnNldFRhcmdldCh0YXJnZXQpOwogfQog
CiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmVuZFF1ZXJ5KEdDR0xlbnVtIHRhcmdldCkK
IHsKLSAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICFzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpCisgICAgR0NHTGVudW0gdGFyZ2V0S2V5OworICAgIGlmIChpc0NvbnRleHRMb3N0
T3JQZW5kaW5nKCkgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSB8fCAhdmFsaWRhdGVRdWVy
eVRhcmdldCgiYmVnaW5RdWVyeSIsIHRhcmdldCwgJnRhcmdldEtleSkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGF1dG8gdGFyZ2V0S2V5ID0gKHRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6
QU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElWRSkgPyBHcmFwaGljc0NvbnRleHRHTDo6QU5Z
X1NBTVBMRVNfUEFTU0VEIDogdGFyZ2V0OwotCiAgICAgYXV0byBxdWVyeSA9IG1fYWN0aXZlUXVl
cmllcy50YWtlKHRhcmdldEtleSk7CiAgICAgaWYgKCFxdWVyeSkgewogICAgICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJT04sICJlbmRRdWVy
eSIsICJRdWVyeSBvYmplY3Qgb2YgdGFyZ2V0IGlzIG5vdCBhY3RpdmUiKTsKQEAgLTE5MjYsMjIg
KzE5NDYsMzYgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjplbmRRdWVyeShHQ0dMZW51
bSB0YXJnZXQpCiAgICAgfSk7CiB9CiAKLVJlZlB0cjxXZWJHTFF1ZXJ5PiBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpnZXRRdWVyeShHQ0dMZW51bSwgR0NHTGVudW0pCitSZWZQdHI8V2ViR0xRdWVy
eT4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnkoR0NHTGVudW0gdGFyZ2V0LCBHQ0dM
ZW51bSBwbmFtZSkKIHsKLSAgICBMT0coV2ViR0wsICJbWyBOT1QgSU1QTEVNRU5URUQgXV0gZ2V0
cXVlcnkoKSIpOwotICAgIHJldHVybiBudWxscHRyOworICAgIEdDR0xlbnVtIHRhcmdldEtleTsK
KyAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICFzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgfHwgIXZhbGlkYXRlUXVlcnlUYXJnZXQoImJlZ2luUXVlcnkiLCB0YXJnZXQsICZ0YXJn
ZXRLZXkpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChwbmFtZSAhPSBHcmFw
aGljc0NvbnRleHRHTDo6Q1VSUkVOVF9RVUVSWSkgeworICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9FTlVNLCAiZ2V0UXVlcnkiLCAiaW52YWxpZCBw
YXJhbWV0ZXIgbmFtZSIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBh
dXRvIHF1ZXJ5ID0gbV9hY3RpdmVRdWVyaWVzLmdldCh0YXJnZXRLZXkpOworICAgIGlmICghcXVl
cnkgfHwgcXVlcnktPnRhcmdldCgpICE9IHRhcmdldCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgcmV0dXJuIHF1ZXJ5OwogfQogCiBXZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
OjpnZXRRdWVyeVBhcmFtZXRlcihXZWJHTFF1ZXJ5JiBxdWVyeSwgR0NHTGVudW0gcG5hbWUpCiB7
Ci0gICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKKyAgICBpZiAoaXNDb250ZXh0TG9z
dE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJnZXRRdWVyeVBhcmFtZXRlciIs
ICZxdWVyeSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgc3dpdGNoIChwbmFtZSkg
ewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlFVRVJZX1JFU1VMVDoKKyAgICAgICAgaWYg
KCFxdWVyeS5pc1Jlc3VsdEF2YWlsYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBicmVhazsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpRVUVSWV9SRVNVTFRf
QVZBSUxBQkxFOgogICAgICAgICBpZiAoIXF1ZXJ5LmlzUmVzdWx0QXZhaWxhYmxlKCkpCi0gICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgYnJl
YWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0R0w6OklOVkFMSURfRU5VTSwgImdldFF1ZXJ5UGFyYW1ldGVyIiwgIkludmFsaWQgcG5hbWUi
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmlu
Z0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0Nv
bnRleHQuaAppbmRleCAwNDIwZDc3NjYxOGU3MmUzOWUxZjg1NTY4N2I1ZTMzNDU4YzVkODhhLi5m
MzJiMjk3ODRiYTA0NzdhM2I2MTQ2MzZmYzc1ZDY4NzFhZDAwNDRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCkBAIC0yOTYs
NiArMjk2LDcgQEAgcHJpdmF0ZToKICAgICBXZWJHTEZyYW1lYnVmZmVyKiBnZXRSZWFkRnJhbWVi
dWZmZXJCaW5kaW5nKCkgZmluYWw7CiAgICAgdm9pZCByZXN0b3JlQ3VycmVudEZyYW1lYnVmZmVy
KCkgZmluYWw7CiAgICAgYm9vbCB2YWxpZGF0ZU5vbkRlZmF1bHRGcmFtZWJ1ZmZlckF0dGFjaG1l
bnQoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQ0dMZW51bSBhdHRhY2htZW50KTsKKyAgICBi
b29sIHZhbGlkYXRlUXVlcnlUYXJnZXQoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQ0dMZW51
bSB0YXJnZXQsIEdDR0xlbnVtKiB0YXJnZXRLZXkpOwogCiAgICAgR0NHTGVudW0gYmFzZUludGVy
bmFsRm9ybWF0RnJvbUludGVybmFsRm9ybWF0KEdDR0xlbnVtIGludGVybmFsZm9ybWF0KTsKICAg
ICBib29sIGlzSW50ZWdlckZvcm1hdChHQ0dMZW51bSBpbnRlcm5hbGZvcm1hdCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuY3BwCmluZGV4IDRmMjQxNTJiZjcyMjg5NzRi
NzA0YTFlMDcwNTNlNTA2Mzc0MzAwYzguLjRkMDNjMmFhNDJkYTVhZGRjY2Q2ZDBmYTMwMzQ4MGE2
YTM0Njg0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVl
cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuY3BwCkBA
IC01MSw5ICs1MSw3IEBAIFdlYkdMUXVlcnk6OldlYkdMUXVlcnkoV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYgY3R4KQogCiB2b2lkIFdlYkdMUXVlcnk6OmRlbGV0ZU9iamVjdEltcGwoR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wqIGNvbnRleHQzZCwgUGxhdGZvcm1HTE9iamVjdCBvYmplY3QpCiB7
Ci0gICAgVU5VU0VEX1BBUkFNKGNvbnRleHQzZCk7Ci0gICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7
Ci0gICAgLy8gRklYTUU6IENhbGwgZGVsZXRlUXVlcnkgZnJvbSBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTC4KKyAgICBjb250ZXh0M2QtPmRlbGV0ZVF1ZXJ5KG9iamVjdCk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuaAppbmRleCA0YmQ2ZjFjMDQ2ZjE1Mzg4Y2M1
ODAxZjQxNTYxYTY5M2YzM2EzZDlmLi4xYmFlNTI1MjlmMDA3MTM5ODgzOTE5OTk4MzE5MmJmODZh
OWE1MmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5oCkBAIC00MCwx
MSArNDAsMTUgQEAgcHVibGljOgogCiAgICAgdm9pZCBtYWtlUmVzdWx0QXZhaWxhYmxlKCkgeyBt
X2lzUmVzdWx0QXZhaWxhYmxlID0gdHJ1ZTsgfQogCisgICAgdm9pZCBzZXRUYXJnZXQoR0NHTGVu
dW0gdGFyZ2V0KSB7IG1fdGFyZ2V0ID0gdGFyZ2V0OyB9CisgICAgR0NHTGVudW0gdGFyZ2V0KCkg
Y29uc3QgeyByZXR1cm4gbV90YXJnZXQ7IH0KKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJH
TFF1ZXJ5KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKICAgICB2b2lkIGRlbGV0ZU9iamVj
dEltcGwoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBQbGF0Zm9ybUdMT2JqZWN0KSBvdmVycmlk
ZTsKIAogICAgIGJvb2wgbV9pc1Jlc3VsdEF2YWlsYWJsZSB7IGZhbHNlIH07CisgICAgR0NHTGVu
dW0gbV90YXJnZXQgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuY3BwCmluZGV4IGEyMzAzZjU4ZjM3NTA5N2E2MGI3NjRjMzg5YzYyYmRlZDU1OGNjMzkuLmU2
NzYyMjIxNDg4MGRmOGVjYWI1YjYzMjE2MGJmNDAxZjQ0YjIwMjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CkBAIC0yMzA0LDggKzIzMDQsMTIgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2
YWxpZGF0ZVZlcnRleEF0dHJpYnV0ZXModW5zaWduZWQgZWxlbWVudENvdW50LAogCiBib29sIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZhbGlkYXRlV2ViR0xPYmplY3QoY29uc3QgY2hhciog
ZnVuY3Rpb25OYW1lLCBXZWJHTE9iamVjdCogb2JqZWN0KQogewotICAgIGlmICghb2JqZWN0IHx8
ICFvYmplY3QtPm9iamVjdCgpKSB7Ci0gICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNz
Q29udGV4dEdMOjpJTlZBTElEX1ZBTFVFLCBmdW5jdGlvbk5hbWUsICJubyBvYmplY3Qgb3Igb2Jq
ZWN0IGRlbGV0ZWQiKTsKKyAgICBpZiAoIW9iamVjdCkgeworICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9WQUxVRSwgZnVuY3Rpb25OYW1lLCAibm8g
b2JqZWN0Iik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKCFvYmplY3Qt
Pm9iamVjdCgpKSB7CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdM
OjpJTlZBTElEX09QRVJBVElPTiwgZnVuY3Rpb25OYW1lLCAiYXR0ZW1wdCB0byB1c2UgYSBkZWxl
dGVkIG9iamVjdCIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIGlmICghb2Jq
ZWN0LT52YWxpZGF0ZShjb250ZXh0R3JvdXAoKSwgKnRoaXMpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xF
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29u
dGV4dEdMQU5HTEUuY3BwCmluZGV4IGQyNzQ3YzUyZmM1MmVkNzdkY2ExZTk0NzZhZWUzYjMwNDg5
ZDU0MGYuLjBlM2RmYWUxZTA2MmY4ZTkxODIyOWU2NTcxYzE5YjI2ZmI3MmFjOWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4
dEdMQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCkBAIC0yMzM5LDIyICsyMzM5LDIyIEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNsZWFyQnVmZmVyZmkoR0NHTGVudW0gYnVmZmVyLCBH
Q0dMaW50IGRyYXdidWZmZXIsCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmRlbGV0
ZVF1ZXJ5KFBsYXRmb3JtR0xPYmplY3QgcXVlcnkpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHF1ZXJ5
KTsKKyAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKKyAgICBnbDo6RGVsZXRlUXVlcmllcygxLCAm
cXVlcnkpOwogfQogCiBHQ0dMYm9vbGVhbiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6aXNRdWVy
eShQbGF0Zm9ybUdMT2JqZWN0IHF1ZXJ5KQogewotICAgIFVOVVNFRF9QQVJBTShxdWVyeSk7Ci0K
LSAgICByZXR1cm4gZmFsc2U7CisgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CisgICAgcmV0dXJu
IGdsOjpJc1F1ZXJ5KHF1ZXJ5KTsKIH0KIAogUGxhdGZvcm1HTE9iamVjdCBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6Z2V0UXVlcnkoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBwbmFtZSkKIHsK
LSAgICBVTlVTRURfUEFSQU0odGFyZ2V0KTsKLSAgICBVTlVTRURfUEFSQU0ocG5hbWUpOwotCi0g
ICAgcmV0dXJuIDA7CisgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CisgICAgR0xpbnQgdmFsdWU7
CisgICAgZ2w6OkdldFF1ZXJ5aXYodGFyZ2V0LCBwbmFtZSwgJnZhbHVlKTsKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8UGxhdGZvcm1HTE9iamVjdD4odmFsdWUpOwogfQogCiBQbGF0Zm9ybUdMT2Jq
ZWN0IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGVTYW1wbGVyKCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MWY0
ZTk1NzY4MDUzYWZlYTczYjRhZmJhYjY2MTE2OWU4MjhkYTA2Li5jYzI3Mjg1YzM2YzkyZGFiYzA2
MzA1ZTU4ODExZjNhZmQzY2Y1MzE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDctMjAg
IEphbWVzIERhcnBpbmlhbiAgPGpkYXJwaW5pYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtX
ZWJHTDJdIFF1ZXJ5IE9iamVjdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyNjk0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3F1ZXJ5L3F1ZXJ5LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvc3RhdGUvZ2wtb2Jq
ZWN0LWdldC1jYWxscy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDctMjAgIENsYXJrIFdhbmcgIDxj
bGFya193YW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXhlcyB0byBtYXRjaCBCYXNlQXVkaW9D
b250ZXh0LmlkbCB0byBzcGVjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvcXVlcnkvcXVlcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3F1ZXJ5L3F1ZXJ5LWV4cGVjdGVkLnR4dAppbmRleCAwMDc4NTk4
MTdmOWVlYzAyN2Y5NjQ2ODc2OWZjOGU4MjczMmQ3MWJlLi4xNGIxYzEzMDBiYjg1YmU4NjY4OWZl
ZmNiZTgxYjkxN2I4OWViNTMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvcXVlcnkvcXVlcnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9xdWVyeS9xdWVyeS1leHBlY3RlZC50eHQKQEAgLTEsNDQg
KzEsNSBAQAogVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFu
IGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCiAKIFRlc3Q6IC4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9xdWVyeS9xdWVyeS5odG1sCi1bIDE6IFBB
U1MgXSBXZWJHTCBjb250ZXh0IGV4aXN0cwotWyAyOiBQQVNTIF0gZ2wuQU5ZX1NBTVBMRVNfUEFT
U0VEIGlzIDB4OEMyRgotWyAzOiBQQVNTIF0gZ2wuQU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZB
VElWRSBpcyAweDhENkEKLVsgNDogUEFTUyBdIGdsLlRSQU5TRk9STV9GRUVEQkFDS19QUklNSVRJ
VkVTX1dSSVRURU4gaXMgMHg4Qzg4Ci1bIDU6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogQU5ZX1NBTVBMRVNfUEFTU0VEIHF1ZXJ5IHNob3VsZCBzdWNjZWVk
Ci1bIDY6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogQU5Z
X1NBTVBMRVNfUEFTU0VEIHF1ZXJ5IHNob3VsZCBzdWNjZWVkCi1bIDc6IFBBU1MgXSBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogQU5ZX1NBTVBMRVNfUEFTU0VEIHF1ZXJ5
IHNob3VsZCBzdWNjZWVkCi1bIDg6IFBBU1MgXSBnbC5nZXRRdWVyeShnbC5BTllfU0FNUExFU19Q
QVNTRUQsIGdsLkNVUlJFTlRfUVVFUlkpIGlzIG51bGwKLVsgOTogUEFTUyBdIGdsLmdldFF1ZXJ5
KGdsLkFOWV9TQU1QTEVTX1BBU1NFRF9DT05TRVJWQVRJVkUsIGdsLkNVUlJFTlRfUVVFUlkpIGlz
IG51bGwKLVsgMTA6IFBBU1MgXSBnbC5nZXRRdWVyeShnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfUFJJ
TUlUSVZFU19XUklUVEVOLCBnbC5DVVJSRU5UX1FVRVJZKSBpcyBudWxsCi1bIDExOiBQQVNTIF0g
Z2wuZ2V0UXVlcnkoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiwgZ2wu
Q1VSUkVOVF9RVUVSWSkgaXMgbnVsbAotWyAxMjogRkFJTCBdIGdsLmlzUXVlcnkocTEpIHNob3Vs
ZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1bIDEzOiBGQUlMIF0gZ2wuZ2V0UXVlcnkoZ2wuVFJBTlNG
T1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiwgZ2wuQ1VSUkVOVF9RVUVSWSkgc2hvdWxk
IGJlIFtvYmplY3QgV2ViR0xRdWVyeV0uIFdhcyBudWxsLgotWyAxNDogUEFTUyBdIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBDYW4ndCBiZWdpbiBhIHF1
ZXJ5IHdoaWxlIG9uZSBpcyBhbHJlYWR5IGFjdGl2ZQotWyAxNTogRkFJTCBdIGdsLmdldFF1ZXJ5
KGdsLlRSQU5TRk9STV9GRUVEQkFDS19QUklNSVRJVkVTX1dSSVRURU4sIGdsLkNVUlJFTlRfUVVF
UlkpIHNob3VsZCBiZSBbb2JqZWN0IFdlYkdMUXVlcnldLiBXYXMgbnVsbC4KLVsgMTY6IFBBU1Mg
XSBnbC5nZXRRdWVyeShnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOLCBn
bC5DVVJSRU5UX1FVRVJZKSBpcyBudWxsCi1bIDE3OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IENhbid0IGVuZCBhIHF1ZXJ5IGlmIG9uZSBp
cyBub3QgYWN0aXZlCi1bIDE4OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX09QRVJBVElPTiA6IENhbid0IHJlLXVzZSBxdWVyeSBvYmplY3RzIGZvciBpbmNvbXBh
dGlibGUgdGFyZ2V0cwotWyAxOTogUEFTUyBdIGdsLmdldFF1ZXJ5KGdsLkFOWV9TQU1QTEVTX1BB
U1NFRCwgZ2wuQ1VSUkVOVF9RVUVSWSkgaXMgbnVsbAotWyAyMDogRkFJTCBdIGdsLmdldFF1ZXJ5
KGdsLkFOWV9TQU1QTEVTX1BBU1NFRCwgZ2wuQ1VSUkVOVF9RVUVSWSkgc2hvdWxkIGJlIFtvYmpl
Y3QgV2ViR0xRdWVyeV0uIFdhcyBudWxsLgotWyAyMTogUEFTUyBdIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBDYW4ndCBjYWxsIGJlZ2luUXVlcnkgb24g
YW4gYWxyZWFkeSBhY3RpdmUgcXVlcnkgb2JqZWN0Ci1bIDIyOiBQQVNTIF0gZ2wuZ2V0UXVlcnko
Z2wuQU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElWRSwgZ2wuQ1VSUkVOVF9RVUVSWSkgaXMg
bnVsbAotWyAyMzogRkFJTCBdIGdldEVycm9yIGV4cGVjdGVkOiBOT19FUlJPUi4gV2FzIElOVkFM
SURfT1BFUkFUSU9OIDogU2hvdWxkIGJlIGFibGUgdG8gaGF2ZSBtdWx0aXBsZSB1bnJlbGF0ZWQg
cXVlcnkgdHlwZXMgYWN0aXZlIGF0IG9uY2UKLVsgMjQ6IEZBSUwgXSBnbC5nZXRRdWVyeShnbC5U
UkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOLCBnbC5DVVJSRU5UX1FVRVJZKSBz
aG91bGQgYmUgW29iamVjdCBXZWJHTFF1ZXJ5XS4gV2FzIG51bGwuCi1bIDI1OiBQQVNTIF0gZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IGRlbGV0aW5nIHF1ZXJpZXMgc2hv
dWxkIG5vdCBwcm9kdWNlIGVycm9ycwotWyAyNjogUEFTUyBdIGdsLmdldFF1ZXJ5KGdsLlRSQU5T
Rk9STV9GRUVEQkFDS19QUklNSVRJVkVTX1dSSVRURU4sIGdsLkNVUlJFTlRfUVVFUlkpIGlzIG51
bGwKLVsgMjc6IFBBU1MgXSBnbC5nZXRRdWVyeShnbC5BTllfU0FNUExFU19QQVNTRURfQ09OU0VS
VkFUSVZFLCBnbC5DVVJSRU5UX1FVRVJZKSBpcyBudWxsCi1bIDI4OiBQQVNTIF0gZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IGJlZ2lubmluZyBhIGRlbGV0
ZWQgcXVlcnkgb2JqZWN0Ci1bIDI5OiBQQVNTIF0gZ2wuZ2V0UXVlcnkoZ2wuVFJBTlNGT1JNX0ZF
RURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiwgZ2wuQ1VSUkVOVF9RVUVSWSkgaXMgbnVsbAotWyAz
MDogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBzaG91bGQg
aGF2ZSBubyBwcmV2aW91cyBlcnJvcnMKLVsgMzE6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogY3JlYXRlUXVlcnkgc2hvdWxkIG5vdCBzZXQgYW4gZXJyb3IK
LVsgMzI6IFBBU1MgXSBxMSBpcyBub24tbnVsbC4KLVsgMzM6IFBBU1MgXSBnbC5pc1F1ZXJ5KHEx
KSBpcyBmYWxzZQotWyAzNDogRkFJTCBdIGdsLmlzUXVlcnkocTEpIHNob3VsZCBiZSB0cnVlLiBX
YXMgZmFsc2UuCi1bIDM1OiBGQUlMIF0gZ2wuaXNRdWVyeShxMSkgc2hvdWxkIGJlIHRydWUuIFdh
cyBmYWxzZS4KLVsgMzY6IFBBU1MgXSBnbC5pc1F1ZXJ5KHExKSBpcyBmYWxzZQotWyAzNzogUEFT
UyBdIGdsLmlzUXVlcnkobnVsbCkgaXMgZmFsc2UKLVsgMzg6IEZBSUwgXSBnZXRFcnJvciBleHBl
Y3RlZDogTk9fRVJST1IuIFdhcyBJTlZBTElEX09QRVJBVElPTiA6IHRoZXJlIHNob3VsZCBiZSBu
byBlcnJvcnMKLVsgMzk6IFBBU1MgXSBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotWyBGQUlM
IF0gOSBmYWlsdXJlcyByZXBvcnRlZAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZAogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvc3RhdGUvZ2wtb2Jq
ZWN0LWdldC1jYWxscy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy1leHBlY3RlZC50eHQKaW5kZXggODc1
MzNhZWNjOGM4M2RiYjI3ODI0MTY5Y2NjZmViMmFmMmE1ODIxYS4uYzM5MDAzZDNhMDg1M2Y5Mjk4
NjFiYTU5NjZmNGEwMmUyMDRjNzdlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9zdGF0ZS9nbC1vYmplY3Qt
Z2V0LWNhbGxzLWV4cGVjdGVkLnR4dApAQCAtMzEzLDcgKzMxMyw3IEBAIFRlc3Q6IC4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9zdGF0ZS9nbC1vYmplY3QtZ2V0
LWNhbGxzLmh0CiBbIDMxMDogUEFTUyBdIGdsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lO
Q19DT05ESVRJT04pIGlzIGdsLlNZTkNfR1BVX0NPTU1BTkRTX0NPTVBMRVRFCiBbIDMxMTogUEFT
UyBdIGdsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19GTEFHUykgaXMgMAogWyAzMTI6
IFBBU1MgXSBnZXRTeW5jUGFyYW1ldGVyIGNvcnJlY3RseSBoYW5kbGVkIGludmFsaWQgcG5hbWUg
ZW51bXMKLVsgMzEzOiBGQUlMIF0gZ2wuZ2V0UXVlcnlQYXJhbWV0ZXIocXVlcnksIGdsLlFVRVJZ
X1JFU1VMVF9BVkFJTEFCTEUpIHNob3VsZCBiZSBmYWxzZSAob2YgdHlwZSBib29sZWFuKS4gV2Fz
IDAgKG9mIHR5cGUgbnVtYmVyKS4KK1sgMzEzOiBQQVNTIF0gZ2wuZ2V0UXVlcnlQYXJhbWV0ZXIo
cXVlcnksIGdsLlFVRVJZX1JFU1VMVF9BVkFJTEFCTEUpIGlzIGZhbHNlCiBbIDMxNDogUEFTUyBd
IGdldFF1ZXJ5UGFyYW1ldGVyIGNvcnJlY3RseSBoYW5kbGVkIGludmFsaWQgcG5hbWUgZW51bXMK
IFsgMzE1OiBQQVNTIF0gZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHZlcnRTaGFkZXIsIGdsLkNPTVBJ
TEVfU1RBVFVTKSBpcyB0cnVlCiBbIDMxNjogUEFTUyBdIGdsLmdldFNoYWRlclBhcmFtZXRlcihm
cmFnU2hhZGVyLCBnbC5DT01QSUxFX1NUQVRVUykgaXMgdHJ1ZQpAQCAtMzY0LDUgKzM2NCw1IEBA
IFRlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9zdGF0
ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0CiBbIDM2MTogUEFTUyBdIGdldEFjdGl2ZVVuaWZvcm1C
bG9ja1BhcmFtZXRlciBjb3JyZWN0bHkgaGFuZGxlZCBpbnZhbGlkIHBuYW1lIGVudW1zCiBbIDM2
MjogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOgogWyAzNjM6
IFBBU1MgXSBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotWyBGQUlMIF0gNDUgZmFpbHVyZXMg
cmVwb3J0ZWQKK1sgRkFJTCBdIDQ0IGZhaWx1cmVzIHJlcG9ydGVkCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404890</attachid>
            <date>2020-07-21 17:45:19 -0700</date>
            <delta_ts>2020-07-22 17:12:11 -0700</delta_ts>
            <desc>review feedback</desc>
            <filename>bug-126940-20200721174519.patch</filename>
            <type>text/plain</type>
            <size>16212</size>
            <attacher name="James Darpinian">jdarpinian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZiOTRlMTgxMGU0ZGUx
MjM2ZGZjOGNiZWM2ZDk3MzM4MjgzYjk5ZC4uMWE2Nzg3YzEyMmE3NjczNTkwYzEwYmJiMWZjNGM0
NDFiNzM1NGY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA3LTIwICBKYW1l
cyBEYXJwaW5pYW4gIDxqZGFycGluaWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbV2ViR0wy
XSBRdWVyeSBPYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjY5NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBQYXNzZXMgY29uZm9ybWFuY2UgdGVzdHMgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3F1ZXJ5LyoKKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlUXVl
cnkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNRdWVyeSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZVF1ZXJ5
VGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJlZ2lu
UXVlcnkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZW5kUXVl
cnkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnkp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnlQYXJh
bWV0ZXIpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaDoK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMUXVlcnk6OmRlbGV0ZU9iamVjdEltcGwpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMUXVlcnkuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZh
bGlkYXRlV2ViR0xPYmplY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dy
YXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmRlbGV0ZVF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjppc1F1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpnZXRRdWVyeSk6CisKIDIwMjAtMDctMjAgIENsYXJrIFdhbmcgIDxjbGFya193
YW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXhlcyB0byBtYXRjaCBCYXNlQXVkaW9Db250ZXh0
LmlkbCB0byBzcGVjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TDJSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
MlJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGJjNmI1MjEzOTg0YjFkYWUxZDM0ZmNiOWQxMGU4
M2RmZjBmMzMzNTMuLmEyMmE3YWI5NmMzMzA1NjQ3MmY1Yzk0NGI0NzFkOTgzMjQyZTdhNTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0Nv
bnRleHQuY3BwCkBAIC0xODc0LDQ0ICsxODc0LDY0IEBAIFJlZlB0cjxXZWJHTFF1ZXJ5PiBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVRdWVyeSgpCiAgICAgcmV0dXJuIHF1ZXJ5OwogfQog
Ci12b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0ZVF1ZXJ5KFdlYkdMUXVlcnkqKQor
dm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVRdWVyeShXZWJHTFF1ZXJ5KiBxdWVy
eSkKIHsKLSAgICBMT0coV2ViR0wsICJbWyBOT1QgSU1QTEVNRU5URUQgXV0gZGVsZXRlUXVlcnko
KSIpOworICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXF1ZXJ5IHx8ICFxdWVy
eS0+b2JqZWN0KCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImRlbGV0ZVF1ZXJ5IiwgcXVlcnkp
KQorICAgICAgICByZXR1cm47CisgICAgaWYgKHF1ZXJ5LT50YXJnZXQoKSAmJiBxdWVyeSA9PSBt
X2FjdGl2ZVF1ZXJpZXMuZ2V0KHF1ZXJ5LT50YXJnZXQoKSkpIHsKKyAgICAgICAgbV9jb250ZXh0
LT5lbmRRdWVyeShxdWVyeS0+dGFyZ2V0KCkpOworICAgICAgICBtX2FjdGl2ZVF1ZXJpZXMucmVt
b3ZlKHF1ZXJ5LT50YXJnZXQoKSk7CisgICAgfQorICAgIGRlbGV0ZU9iamVjdChxdWVyeSk7CiB9
CiAKLUdDR0xib29sZWFuIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmlzUXVlcnkoV2ViR0xRdWVy
eSopCitHQ0dMYm9vbGVhbiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppc1F1ZXJ5KFdlYkdMUXVl
cnkqIHF1ZXJ5KQogewotICAgIExPRyhXZWJHTCwgIltbIE5PVCBJTVBMRU1FTlRFRCBdXSBpc1F1
ZXJ5KCkiKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRp
bmcoKSB8fCAhcXVlcnkgfHwgIXF1ZXJ5LT5vYmplY3QoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVj
dCgiaXNRdWVyeSIsIHF1ZXJ5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBt
X2NvbnRleHQtPmlzUXVlcnkocXVlcnktPm9iamVjdCgpKTsKK30KKworYm9vbCBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZVF1ZXJ5VGFyZ2V0KGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFt
ZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSogdGFyZ2V0S2V5KQoreworICAgIGlmICh0YXJn
ZXQgIT0gR3JhcGhpY3NDb250ZXh0R0w6OkFOWV9TQU1QTEVTX1BBU1NFRCAmJiB0YXJnZXQgIT0g
R3JhcGhpY3NDb250ZXh0R0w6OkFOWV9TQU1QTEVTX1BBU1NFRF9DT05TRVJWQVRJVkUgJiYgdGFy
Z2V0ICE9IEdyYXBoaWNzQ29udGV4dEdMOjpUUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19X
UklUVEVOKSB7CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJ
TlZBTElEX0VOVU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgdGFyZ2V0Iik7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKHRhcmdldEtleSkKKyAgICAgICAgKnRhcmdldEtl
eSA9ICh0YXJnZXQgPT0gR3JhcGhpY3NDb250ZXh0R0w6OkFOWV9TQU1QTEVTX1BBU1NFRF9DT05T
RVJWQVRJVkUpID8gR3JhcGhpY3NDb250ZXh0R0w6OkFOWV9TQU1QTEVTX1BBU1NFRCA6IHRhcmdl
dDsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpi
ZWdpblF1ZXJ5KEdDR0xlbnVtIHRhcmdldCwgV2ViR0xRdWVyeSYgcXVlcnkpCiB7Ci0gICAgaWYg
KGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKKyAgICBHQ0dMZW51bSB0YXJnZXRLZXk7CisgICAg
aWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiYmVn
aW5RdWVyeSIsICZxdWVyeSkgfHwgIXZhbGlkYXRlUXVlcnlUYXJnZXQoImJlZ2luUXVlcnkiLCB0
YXJnZXQsICZ0YXJnZXRLZXkpKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBGSVhNRTogQWRk
IHZhbGlkYXRpb24gdG8gcHJldmVudCBiYWQgY2FjaGluZy4KLQotICAgIC8vIE9ubHkgb25lIHF1
ZXJ5IG9iamVjdCBjYW4gYmUgYWN0aXZlIHBlciB0YXJnZXQuCi0gICAgYXV0byB0YXJnZXRLZXkg
PSAodGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dEdMOjpBTllfU0FNUExFU19QQVNTRURfQ09OU0VS
VkFUSVZFKSA/IEdyYXBoaWNzQ29udGV4dEdMOjpBTllfU0FNUExFU19QQVNTRUQgOiB0YXJnZXQ7
CisgICAgaWYgKHF1ZXJ5LnRhcmdldCgpICYmIHF1ZXJ5LnRhcmdldCgpICE9IHRhcmdldCkgewor
ICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9PUEVS
QVRJT04sICJiZWdpblF1ZXJ5IiwgInF1ZXJ5IHR5cGUgZG9lcyBub3QgbWF0Y2ggdGFyZ2V0Iik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fYWN0aXZl
UXVlcmllcy5hZGQodGFyZ2V0S2V5LCBtYWtlUmVmUHRyKCZxdWVyeSkpOwogCisgICAgLy8gT25s
eSBvbmUgcXVlcnkgb2JqZWN0IGNhbiBiZSBhY3RpdmUgcGVyIHRhcmdldC4KICAgICBpZiAoIWFk
ZFJlc3VsdC5pc05ld0VudHJ5KSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNz
Q29udGV4dEdMOjpJTlZBTElEX09QRVJBVElPTiwgImJlZ2luUXVlcnkiLCAiUXVlcnkgb2JqZWN0
IG9mIHRhcmdldCBpcyBhbHJlYWR5IGFjdGl2ZSIpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgbV9jb250ZXh0LT5iZWdpblF1ZXJ5KHRhcmdldCwgcXVlcnkub2JqZWN0KCkpOworICAg
IHF1ZXJ5LnNldFRhcmdldCh0YXJnZXQpOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmVuZFF1ZXJ5KEdDR0xlbnVtIHRhcmdldCkKIHsKLSAgICBpZiAoaXNDb250ZXh0TG9zdE9y
UGVuZGluZygpIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgR0NHTGVudW0gdGFy
Z2V0S2V5OworICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSB8fCAhdmFsaWRhdGVRdWVyeVRhcmdldCgiYmVnaW5RdWVyeSIsIHRhcmdl
dCwgJnRhcmdldEtleSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gdGFyZ2V0S2V5ID0g
KHRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6QU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZB
VElWRSkgPyBHcmFwaGljc0NvbnRleHRHTDo6QU5ZX1NBTVBMRVNfUEFTU0VEIDogdGFyZ2V0Owot
CiAgICAgYXV0byBxdWVyeSA9IG1fYWN0aXZlUXVlcmllcy50YWtlKHRhcmdldEtleSk7CiAgICAg
aWYgKCFxdWVyeSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRH
TDo6SU5WQUxJRF9PUEVSQVRJT04sICJlbmRRdWVyeSIsICJRdWVyeSBvYmplY3Qgb2YgdGFyZ2V0
IGlzIG5vdCBhY3RpdmUiKTsKQEAgLTE5MjYsMjIgKzE5NDYsMzYgQEAgdm9pZCBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0OjplbmRRdWVyeShHQ0dMZW51bSB0YXJnZXQpCiAgICAgfSk7CiB9CiAKLVJl
ZlB0cjxXZWJHTFF1ZXJ5PiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRRdWVyeShHQ0dMZW51
bSwgR0NHTGVudW0pCitSZWZQdHI8V2ViR0xRdWVyeT4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
Z2V0UXVlcnkoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBwbmFtZSkKIHsKLSAgICBMT0coV2Vi
R0wsICJbWyBOT1QgSU1QTEVNRU5URUQgXV0gZ2V0cXVlcnkoKSIpOwotICAgIHJldHVybiBudWxs
cHRyOworICAgIEdDR0xlbnVtIHRhcmdldEtleTsKKyAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVu
ZGluZygpIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgfHwgIXZhbGlkYXRlUXVlcnlUYXJn
ZXQoImJlZ2luUXVlcnkiLCB0YXJnZXQsICZ0YXJnZXRLZXkpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIGlmIChwbmFtZSAhPSBHcmFwaGljc0NvbnRleHRHTDo6Q1VSUkVOVF9RVUVS
WSkgeworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJ
RF9FTlVNLCAiZ2V0UXVlcnkiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBhdXRvIHF1ZXJ5ID0gbV9hY3RpdmVRdWVyaWVz
LmdldCh0YXJnZXRLZXkpOworICAgIGlmICghcXVlcnkgfHwgcXVlcnktPnRhcmdldCgpICE9IHRh
cmdldCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHF1ZXJ5OwogfQogCiBX
ZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRRdWVyeVBhcmFtZXRlcihXZWJHTFF1
ZXJ5JiBxdWVyeSwgR0NHTGVudW0gcG5hbWUpCiB7Ci0gICAgaWYgKGlzQ29udGV4dExvc3RPclBl
bmRpbmcoKSkKKyAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdl
YkdMT2JqZWN0KCJnZXRRdWVyeVBhcmFtZXRlciIsICZxdWVyeSkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgc3dpdGNoIChwbmFtZSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
R0w6OlFVRVJZX1JFU1VMVDoKKyAgICAgICAgaWYgKCFxdWVyeS5pc1Jlc3VsdEF2YWlsYWJsZSgp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBicmVhazsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dEdMOjpRVUVSWV9SRVNVTFRfQVZBSUxBQkxFOgogICAgICAgICBpZiAoIXF1
ZXJ5LmlzUmVzdWx0QXZhaWxhYmxlKCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfRU5VTSwgImdldFF1
ZXJ5UGFyYW1ldGVyIiwgIkludmFsaWQgcG5hbWUiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaAppbmRleCAwNDIwZDc3NjYxOGU3
MmUzOWUxZjg1NTY4N2I1ZTMzNDU4YzVkODhhLi5mMzJiMjk3ODRiYTA0NzdhM2I2MTQ2MzZmYzc1
ZDY4NzFhZDAwNDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TDJSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dC5oCkBAIC0yOTYsNiArMjk2LDcgQEAgcHJpdmF0ZToKICAgICBX
ZWJHTEZyYW1lYnVmZmVyKiBnZXRSZWFkRnJhbWVidWZmZXJCaW5kaW5nKCkgZmluYWw7CiAgICAg
dm9pZCByZXN0b3JlQ3VycmVudEZyYW1lYnVmZmVyKCkgZmluYWw7CiAgICAgYm9vbCB2YWxpZGF0
ZU5vbkRlZmF1bHRGcmFtZWJ1ZmZlckF0dGFjaG1lbnQoY29uc3QgY2hhciogZnVuY3Rpb25OYW1l
LCBHQ0dMZW51bSBhdHRhY2htZW50KTsKKyAgICBib29sIHZhbGlkYXRlUXVlcnlUYXJnZXQoY29u
c3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xlbnVtKiB0YXJnZXRL
ZXkpOwogCiAgICAgR0NHTGVudW0gYmFzZUludGVybmFsRm9ybWF0RnJvbUludGVybmFsRm9ybWF0
KEdDR0xlbnVtIGludGVybmFsZm9ybWF0KTsKICAgICBib29sIGlzSW50ZWdlckZvcm1hdChHQ0dM
ZW51bSBpbnRlcm5hbGZvcm1hdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVl
cnkuY3BwCmluZGV4IDRmMjQxNTJiZjcyMjg5NzRiNzA0YTFlMDcwNTNlNTA2Mzc0MzAwYzguLjRk
MDNjMmFhNDJkYTVhZGRjY2Q2ZDBmYTMwMzQ4MGE2YTM0Njg0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuY3BwCkBAIC01MSw5ICs1MSw3IEBAIFdlYkdMUXVlcnk6
OldlYkdMUXVlcnkoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4KQogCiB2b2lkIFdlYkdM
UXVlcnk6OmRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGNvbnRleHQz
ZCwgUGxhdGZvcm1HTE9iamVjdCBvYmplY3QpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKGNvbnRleHQz
ZCk7Ci0gICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7Ci0gICAgLy8gRklYTUU6IENhbGwgZGVsZXRl
UXVlcnkgZnJvbSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTC4KKyAgICBjb250ZXh0M2QtPmRlbGV0
ZVF1ZXJ5KG9iamVjdCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUXVlcnkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVl
cnkuaAppbmRleCA0YmQ2ZjFjMDQ2ZjE1Mzg4Y2M1ODAxZjQxNTYxYTY5M2YzM2EzZDlmLi4xYmFl
NTI1MjlmMDA3MTM5ODgzOTE5OTk4MzE5MmJmODZhOWE1MmIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xRdWVyeS5oCkBAIC00MCwxMSArNDAsMTUgQEAgcHVibGljOgogCiAgICAg
dm9pZCBtYWtlUmVzdWx0QXZhaWxhYmxlKCkgeyBtX2lzUmVzdWx0QXZhaWxhYmxlID0gdHJ1ZTsg
fQogCisgICAgdm9pZCBzZXRUYXJnZXQoR0NHTGVudW0gdGFyZ2V0KSB7IG1fdGFyZ2V0ID0gdGFy
Z2V0OyB9CisgICAgR0NHTGVudW0gdGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXQ7IH0K
KwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJHTFF1ZXJ5KFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UmKTsKICAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wqLCBQbGF0Zm9ybUdMT2JqZWN0KSBvdmVycmlkZTsKIAogICAgIGJvb2wgbV9pc1Jlc3VsdEF2
YWlsYWJsZSB7IGZhbHNlIH07CisgICAgR0NHTGVudW0gbV90YXJnZXQgeyAwIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCmlu
ZGV4IGQyNzQ3YzUyZmM1MmVkNzdkY2ExZTk0NzZhZWUzYjMwNDg5ZDU0MGYuLjBlM2RmYWUxZTA2
MmY4ZTkxODIyOWU2NTcxYzE5YjI2ZmI3MmFjOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdM
QU5HTEUuY3BwCkBAIC0yMzM5LDIyICsyMzM5LDIyIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OmNsZWFyQnVmZmVyZmkoR0NHTGVudW0gYnVmZmVyLCBHQ0dMaW50IGRyYXdidWZmZXIs
CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmRlbGV0ZVF1ZXJ5KFBsYXRmb3JtR0xP
YmplY3QgcXVlcnkpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHF1ZXJ5KTsKKyAgICBtYWtlQ29udGV4
dEN1cnJlbnQoKTsKKyAgICBnbDo6RGVsZXRlUXVlcmllcygxLCAmcXVlcnkpOwogfQogCiBHQ0dM
Ym9vbGVhbiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6aXNRdWVyeShQbGF0Zm9ybUdMT2JqZWN0
IHF1ZXJ5KQogewotICAgIFVOVVNFRF9QQVJBTShxdWVyeSk7Ci0KLSAgICByZXR1cm4gZmFsc2U7
CisgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CisgICAgcmV0dXJuIGdsOjpJc1F1ZXJ5KHF1ZXJ5
KTsKIH0KIAogUGxhdGZvcm1HTE9iamVjdCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0UXVl
cnkoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBwbmFtZSkKIHsKLSAgICBVTlVTRURfUEFSQU0o
dGFyZ2V0KTsKLSAgICBVTlVTRURfUEFSQU0ocG5hbWUpOwotCi0gICAgcmV0dXJuIDA7CisgICAg
bWFrZUNvbnRleHRDdXJyZW50KCk7CisgICAgR0xpbnQgdmFsdWU7CisgICAgZ2w6OkdldFF1ZXJ5
aXYodGFyZ2V0LCBwbmFtZSwgJnZhbHVlKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGxhdGZv
cm1HTE9iamVjdD4odmFsdWUpOwogfQogCiBQbGF0Zm9ybUdMT2JqZWN0IEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpjcmVhdGVTYW1wbGVyKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MWY0ZTk1NzY4MDUzYWZlYTczYjRh
ZmJhYjY2MTE2OWU4MjhkYTA2Li5jYzI3Mjg1YzM2YzkyZGFiYzA2MzA1ZTU4ODExZjNhZmQzY2Y1
MzE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDctMjAgIEphbWVzIERhcnBpbmlhbiAg
PGpkYXJwaW5pYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtXZWJHTDJdIFF1ZXJ5IE9iamVj
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjk0
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3F1ZXJ5L3F1ZXJ5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy1leHBl
Y3RlZC50eHQ6CisKIDIwMjAtMDctMjAgIENsYXJrIFdhbmcgIDxjbGFya193YW5nQGFwcGxlLmNv
bT4KIAogICAgICAgICBGaXhlcyB0byBtYXRjaCBCYXNlQXVkaW9Db250ZXh0LmlkbCB0byBzcGVj
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvcXVlcnkv
cXVlcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3F1ZXJ5L3F1ZXJ5LWV4cGVjdGVkLnR4dAppbmRleCAwMDc4NTk4MTdmOWVlYzAyN2Y5NjQ2ODc2
OWZjOGU4MjczMmQ3MWJlLi4xNGIxYzEzMDBiYjg1YmU4NjY4OWZlZmNiZTgxYjkxN2I4OWViNTMw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvcXVlcnkv
cXVlcnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi9xdWVyeS9xdWVyeS1leHBlY3RlZC50eHQKQEAgLTEsNDQgKzEsNSBAQAogVGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuCiAKIFRlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlMi9xdWVyeS9xdWVyeS5odG1sCi1bIDE6IFBBU1MgXSBXZWJHTCBjb250ZXh0
IGV4aXN0cwotWyAyOiBQQVNTIF0gZ2wuQU5ZX1NBTVBMRVNfUEFTU0VEIGlzIDB4OEMyRgotWyAz
OiBQQVNTIF0gZ2wuQU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElWRSBpcyAweDhENkEKLVsg
NDogUEFTUyBdIGdsLlRSQU5TRk9STV9GRUVEQkFDS19QUklNSVRJVkVTX1dSSVRURU4gaXMgMHg4
Qzg4Ci1bIDU6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDog
QU5ZX1NBTVBMRVNfUEFTU0VEIHF1ZXJ5IHNob3VsZCBzdWNjZWVkCi1bIDY6IFBBU1MgXSBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogQU5ZX1NBTVBMRVNfUEFTU0VEIHF1
ZXJ5IHNob3VsZCBzdWNjZWVkCi1bIDc6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogQU5ZX1NBTVBMRVNfUEFTU0VEIHF1ZXJ5IHNob3VsZCBzdWNjZWVkCi1b
IDg6IFBBU1MgXSBnbC5nZXRRdWVyeShnbC5BTllfU0FNUExFU19QQVNTRUQsIGdsLkNVUlJFTlRf
UVVFUlkpIGlzIG51bGwKLVsgOTogUEFTUyBdIGdsLmdldFF1ZXJ5KGdsLkFOWV9TQU1QTEVTX1BB
U1NFRF9DT05TRVJWQVRJVkUsIGdsLkNVUlJFTlRfUVVFUlkpIGlzIG51bGwKLVsgMTA6IFBBU1Mg
XSBnbC5nZXRRdWVyeShnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOLCBn
bC5DVVJSRU5UX1FVRVJZKSBpcyBudWxsCi1bIDExOiBQQVNTIF0gZ2wuZ2V0UXVlcnkoZ2wuVFJB
TlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiwgZ2wuQ1VSUkVOVF9RVUVSWSkgaXMg
bnVsbAotWyAxMjogRkFJTCBdIGdsLmlzUXVlcnkocTEpIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFs
c2UuCi1bIDEzOiBGQUlMIF0gZ2wuZ2V0UXVlcnkoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1J
VElWRVNfV1JJVFRFTiwgZ2wuQ1VSUkVOVF9RVUVSWSkgc2hvdWxkIGJlIFtvYmplY3QgV2ViR0xR
dWVyeV0uIFdhcyBudWxsLgotWyAxNDogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBDYW4ndCBiZWdpbiBhIHF1ZXJ5IHdoaWxlIG9uZSBpcyBh
bHJlYWR5IGFjdGl2ZQotWyAxNTogRkFJTCBdIGdsLmdldFF1ZXJ5KGdsLlRSQU5TRk9STV9GRUVE
QkFDS19QUklNSVRJVkVTX1dSSVRURU4sIGdsLkNVUlJFTlRfUVVFUlkpIHNob3VsZCBiZSBbb2Jq
ZWN0IFdlYkdMUXVlcnldLiBXYXMgbnVsbC4KLVsgMTY6IFBBU1MgXSBnbC5nZXRRdWVyeShnbC5U
UkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOLCBnbC5DVVJSRU5UX1FVRVJZKSBp
cyBudWxsCi1bIDE3OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X09QRVJBVElPTiA6IENhbid0IGVuZCBhIHF1ZXJ5IGlmIG9uZSBpcyBub3QgYWN0aXZlCi1bIDE4
OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6
IENhbid0IHJlLXVzZSBxdWVyeSBvYmplY3RzIGZvciBpbmNvbXBhdGlibGUgdGFyZ2V0cwotWyAx
OTogUEFTUyBdIGdsLmdldFF1ZXJ5KGdsLkFOWV9TQU1QTEVTX1BBU1NFRCwgZ2wuQ1VSUkVOVF9R
VUVSWSkgaXMgbnVsbAotWyAyMDogRkFJTCBdIGdsLmdldFF1ZXJ5KGdsLkFOWV9TQU1QTEVTX1BB
U1NFRCwgZ2wuQ1VSUkVOVF9RVUVSWSkgc2hvdWxkIGJlIFtvYmplY3QgV2ViR0xRdWVyeV0uIFdh
cyBudWxsLgotWyAyMTogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJ
RF9PUEVSQVRJT04gOiBDYW4ndCBjYWxsIGJlZ2luUXVlcnkgb24gYW4gYWxyZWFkeSBhY3RpdmUg
cXVlcnkgb2JqZWN0Ci1bIDIyOiBQQVNTIF0gZ2wuZ2V0UXVlcnkoZ2wuQU5ZX1NBTVBMRVNfUEFT
U0VEX0NPTlNFUlZBVElWRSwgZ2wuQ1VSUkVOVF9RVUVSWSkgaXMgbnVsbAotWyAyMzogRkFJTCBd
IGdldEVycm9yIGV4cGVjdGVkOiBOT19FUlJPUi4gV2FzIElOVkFMSURfT1BFUkFUSU9OIDogU2hv
dWxkIGJlIGFibGUgdG8gaGF2ZSBtdWx0aXBsZSB1bnJlbGF0ZWQgcXVlcnkgdHlwZXMgYWN0aXZl
IGF0IG9uY2UKLVsgMjQ6IEZBSUwgXSBnbC5nZXRRdWVyeShnbC5UUkFOU0ZPUk1fRkVFREJBQ0tf
UFJJTUlUSVZFU19XUklUVEVOLCBnbC5DVVJSRU5UX1FVRVJZKSBzaG91bGQgYmUgW29iamVjdCBX
ZWJHTFF1ZXJ5XS4gV2FzIG51bGwuCi1bIDI1OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IGRlbGV0aW5nIHF1ZXJpZXMgc2hvdWxkIG5vdCBwcm9kdWNlIGVy
cm9ycwotWyAyNjogUEFTUyBdIGdsLmdldFF1ZXJ5KGdsLlRSQU5TRk9STV9GRUVEQkFDS19QUklN
SVRJVkVTX1dSSVRURU4sIGdsLkNVUlJFTlRfUVVFUlkpIGlzIG51bGwKLVsgMjc6IFBBU1MgXSBn
bC5nZXRRdWVyeShnbC5BTllfU0FNUExFU19QQVNTRURfQ09OU0VSVkFUSVZFLCBnbC5DVVJSRU5U
X1FVRVJZKSBpcyBudWxsCi1bIDI4OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX09QRVJBVElPTiA6IGJlZ2lubmluZyBhIGRlbGV0ZWQgcXVlcnkgb2JqZWN0Ci1b
IDI5OiBQQVNTIF0gZ2wuZ2V0UXVlcnkoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNf
V1JJVFRFTiwgZ2wuQ1VSUkVOVF9RVUVSWSkgaXMgbnVsbAotWyAzMDogUEFTUyBdIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBzaG91bGQgaGF2ZSBubyBwcmV2aW91cyBl
cnJvcnMKLVsgMzE6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogY3JlYXRlUXVlcnkgc2hvdWxkIG5vdCBzZXQgYW4gZXJyb3IKLVsgMzI6IFBBU1MgXSBxMSBp
cyBub24tbnVsbC4KLVsgMzM6IFBBU1MgXSBnbC5pc1F1ZXJ5KHExKSBpcyBmYWxzZQotWyAzNDog
RkFJTCBdIGdsLmlzUXVlcnkocTEpIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1bIDM1OiBG
QUlMIF0gZ2wuaXNRdWVyeShxMSkgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLVsgMzY6IFBB
U1MgXSBnbC5pc1F1ZXJ5KHExKSBpcyBmYWxzZQotWyAzNzogUEFTUyBdIGdsLmlzUXVlcnkobnVs
bCkgaXMgZmFsc2UKLVsgMzg6IEZBSUwgXSBnZXRFcnJvciBleHBlY3RlZDogTk9fRVJST1IuIFdh
cyBJTlZBTElEX09QRVJBVElPTiA6IHRoZXJlIHNob3VsZCBiZSBubyBlcnJvcnMKLVsgMzk6IFBB
U1MgXSBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotWyBGQUlMIF0gOSBmYWlsdXJlcyByZXBv
cnRlZAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvc3RhdGUvZ2wt
b2JqZWN0LWdldC1jYWxscy1leHBlY3RlZC50eHQKaW5kZXggODc1MzNhZWNjOGM4M2RiYjI3ODI0
MTY5Y2NjZmViMmFmMmE1ODIxYS4uYzM5MDAzZDNhMDg1M2Y5Mjk4NjFiYTU5NjZmNGEwMmUyMDRj
NzdlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3N0
YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLWV4cGVjdGVk
LnR4dApAQCAtMzEzLDcgKzMxMyw3IEBAIFRlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlMi9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0CiBbIDMxMDog
UEFTUyBdIGdsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19DT05ESVRJT04pIGlzIGds
LlNZTkNfR1BVX0NPTU1BTkRTX0NPTVBMRVRFCiBbIDMxMTogUEFTUyBdIGdsLmdldFN5bmNQYXJh
bWV0ZXIoc3luYywgZ2wuU1lOQ19GTEFHUykgaXMgMAogWyAzMTI6IFBBU1MgXSBnZXRTeW5jUGFy
YW1ldGVyIGNvcnJlY3RseSBoYW5kbGVkIGludmFsaWQgcG5hbWUgZW51bXMKLVsgMzEzOiBGQUlM
IF0gZ2wuZ2V0UXVlcnlQYXJhbWV0ZXIocXVlcnksIGdsLlFVRVJZX1JFU1VMVF9BVkFJTEFCTEUp
IHNob3VsZCBiZSBmYWxzZSAob2YgdHlwZSBib29sZWFuKS4gV2FzIDAgKG9mIHR5cGUgbnVtYmVy
KS4KK1sgMzEzOiBQQVNTIF0gZ2wuZ2V0UXVlcnlQYXJhbWV0ZXIocXVlcnksIGdsLlFVRVJZX1JF
U1VMVF9BVkFJTEFCTEUpIGlzIGZhbHNlCiBbIDMxNDogUEFTUyBdIGdldFF1ZXJ5UGFyYW1ldGVy
IGNvcnJlY3RseSBoYW5kbGVkIGludmFsaWQgcG5hbWUgZW51bXMKIFsgMzE1OiBQQVNTIF0gZ2wu
Z2V0U2hhZGVyUGFyYW1ldGVyKHZlcnRTaGFkZXIsIGdsLkNPTVBJTEVfU1RBVFVTKSBpcyB0cnVl
CiBbIDMxNjogUEFTUyBdIGdsLmdldFNoYWRlclBhcmFtZXRlcihmcmFnU2hhZGVyLCBnbC5DT01Q
SUxFX1NUQVRVUykgaXMgdHJ1ZQpAQCAtMzY0LDUgKzM2NCw1IEBAIFRlc3Q6IC4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNh
bGxzLmh0CiBbIDM2MTogUEFTUyBdIGdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlciBjb3Jy
ZWN0bHkgaGFuZGxlZCBpbnZhbGlkIHBuYW1lIGVudW1zCiBbIDM2MjogUEFTUyBdIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOgogWyAzNjM6IFBBU1MgXSBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQotWyBGQUlMIF0gNDUgZmFpbHVyZXMgcmVwb3J0ZWQKK1sgRkFJTCBd
IDQ0IGZhaWx1cmVzIHJlcG9ydGVkCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404998</attachid>
            <date>2020-07-22 17:12:13 -0700</date>
            <delta_ts>2020-07-22 17:57:34 -0700</delta_ts>
            <desc>rebase</desc>
            <filename>bug-126940-20200722171212.patch</filename>
            <type>text/plain</type>
            <size>16301</size>
            <attacher name="James Darpinian">jdarpinian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTFiZjc3OWM4MzZlMmNl
ZDU1ODQwMWFjZmY1NzNkMzMxMmIzMjEyNS4uNzNjNjIxZjRlMjRjMzcyZTUxYTFkMjg4ZDdmZDI1
ZjJmNmExN2ZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA3LTIwICBKYW1l
cyBEYXJwaW5pYW4gIDxqZGFycGluaWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbV2ViR0wy
XSBRdWVyeSBPYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjY5NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBQYXNzZXMgY29uZm9ybWFuY2UgdGVzdHMgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3F1ZXJ5LyoKKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlUXVl
cnkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNRdWVyeSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZVF1ZXJ5
VGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJlZ2lu
UXVlcnkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZW5kUXVl
cnkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnkp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnlQYXJh
bWV0ZXIpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaDoK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMUXVlcnk6OmRlbGV0ZU9iamVjdEltcGwpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMUXVlcnkuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZh
bGlkYXRlV2ViR0xPYmplY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dy
YXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmRlbGV0ZVF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjppc1F1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpnZXRRdWVyeSk6CisKIDIwMjAtMDctMjIgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyMDU4MjYpOiBuYXJy
b3dOb0JyZWFrU3BhY2UgKFUrMjAyRikgaGFzIHplcm8gd2lkdGgsIHJlZ2FyZGxlc3Mgb2YgZm9u
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdD
b250ZXh0LmNwcAppbmRleCA2ZjE4Y2Q3ODBhNDM1ZWNkZGVhNWUwZTM3YmUyMjE2OTk1MWU1YTYz
Li5kNjRmN2U3YTNjNWZlYTU1MDZlZDRmMzRjNjE4YTk5MjNhOTIzMDIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcApA
QCAtMTg3NCw0NCArMTg3NCw2NCBAQCBSZWZQdHI8V2ViR0xRdWVyeT4gV2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6Y3JlYXRlUXVlcnkoKQogICAgIHJldHVybiBxdWVyeTsKIH0KIAotdm9pZCBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVRdWVyeShXZWJHTFF1ZXJ5KikKK3ZvaWQgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlUXVlcnkoV2ViR0xRdWVyeSogcXVlcnkpCiB7Ci0gICAg
TE9HKFdlYkdMLCAiW1sgTk9UIElNUExFTUVOVEVEIF1dIGRlbGV0ZVF1ZXJ5KCkiKTsKKyAgICBp
ZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICFxdWVyeSB8fCAhcXVlcnktPm9iamVjdCgp
IHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJkZWxldGVRdWVyeSIsIHF1ZXJ5KSkKKyAgICAgICAg
cmV0dXJuOworICAgIGlmIChxdWVyeS0+dGFyZ2V0KCkgJiYgcXVlcnkgPT0gbV9hY3RpdmVRdWVy
aWVzLmdldChxdWVyeS0+dGFyZ2V0KCkpKSB7CisgICAgICAgIG1fY29udGV4dC0+ZW5kUXVlcnko
cXVlcnktPnRhcmdldCgpKTsKKyAgICAgICAgbV9hY3RpdmVRdWVyaWVzLnJlbW92ZShxdWVyeS0+
dGFyZ2V0KCkpOworICAgIH0KKyAgICBkZWxldGVPYmplY3QocXVlcnkpOwogfQogCi1HQ0dMYm9v
bGVhbiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppc1F1ZXJ5KFdlYkdMUXVlcnkqKQorR0NHTGJv
b2xlYW4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNRdWVyeShXZWJHTFF1ZXJ5KiBxdWVyeSkK
IHsKLSAgICBMT0coV2ViR0wsICJbWyBOT1QgSU1QTEVNRU5URUQgXV0gaXNRdWVyeSgpIik7Ci0g
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXF1
ZXJ5IHx8ICFxdWVyeS0+b2JqZWN0KCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImlzUXVlcnki
LCBxdWVyeSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9jb250ZXh0LT5p
c1F1ZXJ5KHF1ZXJ5LT5vYmplY3QoKSk7Cit9CisKK2Jvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6dmFsaWRhdGVRdWVyeVRhcmdldChjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDR0xlbnVt
IHRhcmdldCwgR0NHTGVudW0qIHRhcmdldEtleSkKK3sKKyAgICBpZiAodGFyZ2V0ICE9IEdyYXBo
aWNzQ29udGV4dEdMOjpBTllfU0FNUExFU19QQVNTRUQgJiYgdGFyZ2V0ICE9IEdyYXBoaWNzQ29u
dGV4dEdMOjpBTllfU0FNUExFU19QQVNTRURfQ09OU0VSVkFUSVZFICYmIHRhcmdldCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTikgewor
ICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9FTlVN
LCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIHRhcmdldCIpOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorICAgIGlmICh0YXJnZXRLZXkpCisgICAgICAgICp0YXJnZXRLZXkgPSAodGFyZ2V0
ID09IEdyYXBoaWNzQ29udGV4dEdMOjpBTllfU0FNUExFU19QQVNTRURfQ09OU0VSVkFUSVZFKSA/
IEdyYXBoaWNzQ29udGV4dEdMOjpBTllfU0FNUExFU19QQVNTRUQgOiB0YXJnZXQ7CisgICAgcmV0
dXJuIHRydWU7CiB9CiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmVnaW5RdWVyeShH
Q0dMZW51bSB0YXJnZXQsIFdlYkdMUXVlcnkmIHF1ZXJ5KQogewotICAgIGlmIChpc0NvbnRleHRM
b3N0T3JQZW5kaW5nKCkpCisgICAgR0NHTGVudW0gdGFyZ2V0S2V5OworICAgIGlmIChpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImJlZ2luUXVlcnkiLCAm
cXVlcnkpIHx8ICF2YWxpZGF0ZVF1ZXJ5VGFyZ2V0KCJiZWdpblF1ZXJ5IiwgdGFyZ2V0LCAmdGFy
Z2V0S2V5KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUU6IEFkZCB2YWxpZGF0aW9u
IHRvIHByZXZlbnQgYmFkIGNhY2hpbmcuCi0KLSAgICAvLyBPbmx5IG9uZSBxdWVyeSBvYmplY3Qg
Y2FuIGJlIGFjdGl2ZSBwZXIgdGFyZ2V0LgotICAgIGF1dG8gdGFyZ2V0S2V5ID0gKHRhcmdldCA9
PSBHcmFwaGljc0NvbnRleHRHTDo6QU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElWRSkgPyBH
cmFwaGljc0NvbnRleHRHTDo6QU5ZX1NBTVBMRVNfUEFTU0VEIDogdGFyZ2V0OworICAgIGlmIChx
dWVyeS50YXJnZXQoKSAmJiBxdWVyeS50YXJnZXQoKSAhPSB0YXJnZXQpIHsKKyAgICAgICAgc3lu
dGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfT1BFUkFUSU9OLCAiYmVn
aW5RdWVyeSIsICJxdWVyeSB0eXBlIGRvZXMgbm90IG1hdGNoIHRhcmdldCIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQogCiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX2FjdGl2ZVF1ZXJpZXMuYWRk
KHRhcmdldEtleSwgbWFrZVJlZlB0cigmcXVlcnkpKTsKIAorICAgIC8vIE9ubHkgb25lIHF1ZXJ5
IG9iamVjdCBjYW4gYmUgYWN0aXZlIHBlciB0YXJnZXQuCiAgICAgaWYgKCFhZGRSZXN1bHQuaXNO
ZXdFbnRyeSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6
SU5WQUxJRF9PUEVSQVRJT04sICJiZWdpblF1ZXJ5IiwgIlF1ZXJ5IG9iamVjdCBvZiB0YXJnZXQg
aXMgYWxyZWFkeSBhY3RpdmUiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIG1fY29u
dGV4dC0+YmVnaW5RdWVyeSh0YXJnZXQsIHF1ZXJ5Lm9iamVjdCgpKTsKKyAgICBxdWVyeS5zZXRU
YXJnZXQodGFyZ2V0KTsKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjplbmRRdWVy
eShHQ0dMZW51bSB0YXJnZXQpCiB7Ci0gICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8
fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgIEdDR0xlbnVtIHRhcmdldEtleTsKKyAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgfHwgIXZhbGlkYXRlUXVlcnlUYXJnZXQoImJlZ2luUXVlcnkiLCB0YXJnZXQsICZ0YXJnZXRL
ZXkpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHRhcmdldEtleSA9ICh0YXJnZXQgPT0g
R3JhcGhpY3NDb250ZXh0R0w6OkFOWV9TQU1QTEVTX1BBU1NFRF9DT05TRVJWQVRJVkUpID8gR3Jh
cGhpY3NDb250ZXh0R0w6OkFOWV9TQU1QTEVTX1BBU1NFRCA6IHRhcmdldDsKLQogICAgIGF1dG8g
cXVlcnkgPSBtX2FjdGl2ZVF1ZXJpZXMudGFrZSh0YXJnZXRLZXkpOwogICAgIGlmICghcXVlcnkp
IHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURf
T1BFUkFUSU9OLCAiZW5kUXVlcnkiLCAiUXVlcnkgb2JqZWN0IG9mIHRhcmdldCBpcyBub3QgYWN0
aXZlIik7CkBAIC0xOTI2LDIyICsxOTQ2LDM2IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6ZW5kUXVlcnkoR0NHTGVudW0gdGFyZ2V0KQogICAgIH0pOwogfQogCi1SZWZQdHI8V2ViR0xR
dWVyeT4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnkoR0NHTGVudW0sIEdDR0xlbnVt
KQorUmVmUHRyPFdlYkdMUXVlcnk+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5KEdD
R0xlbnVtIHRhcmdldCwgR0NHTGVudW0gcG5hbWUpCiB7Ci0gICAgTE9HKFdlYkdMLCAiW1sgTk9U
IElNUExFTUVOVEVEIF1dIGdldHF1ZXJ5KCkiKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBH
Q0dMZW51bSB0YXJnZXRLZXk7CisgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAh
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIHx8ICF2YWxpZGF0ZVF1ZXJ5VGFyZ2V0KCJiZWdpblF1
ZXJ5IiwgdGFyZ2V0LCAmdGFyZ2V0S2V5KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAg
ICBpZiAocG5hbWUgIT0gR3JhcGhpY3NDb250ZXh0R0w6OkNVUlJFTlRfUVVFUlkpIHsKKyAgICAg
ICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfRU5VTSwgImdl
dFF1ZXJ5IiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgfQorCisgICAgYXV0byBxdWVyeSA9IG1fYWN0aXZlUXVlcmllcy5nZXQodGFyZ2V0
S2V5KTsKKyAgICBpZiAoIXF1ZXJ5IHx8IHF1ZXJ5LT50YXJnZXQoKSAhPSB0YXJnZXQpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBxdWVyeTsKIH0KIAogV2ViR0xBbnkgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnlQYXJhbWV0ZXIoV2ViR0xRdWVyeSYgcXVlcnks
IEdDR0xlbnVtIHBuYW1lKQogewotICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCisg
ICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgi
Z2V0UXVlcnlQYXJhbWV0ZXIiLCAmcXVlcnkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAog
ICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpRVUVSWV9S
RVNVTFQ6CisgICAgICAgIGlmICghcXVlcnkuaXNSZXN1bHRBdmFpbGFibGUoKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTDo6UVVFUllfUkVTVUxUX0FWQUlMQUJMRToKICAgICAgICAgaWYgKCFxdWVyeS5pc1Jlc3Vs
dEF2YWlsYWJsZSgpKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX0VOVU0sICJnZXRRdWVyeVBhcmFtZXRl
ciIsICJJbnZhbGlkIHBuYW1lIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggMDQyMGQ3NzY2MThlNzJlMzllMWY4NTU2
ODdiNWUzMzQ1OGM1ZDg4YS4uZjMyYjI5Nzg0YmEwNDc3YTNiNjE0NjM2ZmM3NWQ2ODcxYWQwMDQ0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmlu
Z0NvbnRleHQuaApAQCAtMjk2LDYgKzI5Niw3IEBAIHByaXZhdGU6CiAgICAgV2ViR0xGcmFtZWJ1
ZmZlciogZ2V0UmVhZEZyYW1lYnVmZmVyQmluZGluZygpIGZpbmFsOwogICAgIHZvaWQgcmVzdG9y
ZUN1cnJlbnRGcmFtZWJ1ZmZlcigpIGZpbmFsOwogICAgIGJvb2wgdmFsaWRhdGVOb25EZWZhdWx0
RnJhbWVidWZmZXJBdHRhY2htZW50KGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0NHTGVudW0g
YXR0YWNobWVudCk7CisgICAgYm9vbCB2YWxpZGF0ZVF1ZXJ5VGFyZ2V0KGNvbnN0IGNoYXIqIGZ1
bmN0aW9uTmFtZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSogdGFyZ2V0S2V5KTsKIAogICAg
IEdDR0xlbnVtIGJhc2VJbnRlcm5hbEZvcm1hdEZyb21JbnRlcm5hbEZvcm1hdChHQ0dMZW51bSBp
bnRlcm5hbGZvcm1hdCk7CiAgICAgYm9vbCBpc0ludGVnZXJGb3JtYXQoR0NHTGVudW0gaW50ZXJu
YWxmb3JtYXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xR
dWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmNwcAppbmRl
eCA0ZjI0MTUyYmY3MjI4OTc0YjcwNGExZTA3MDUzZTUwNjM3NDMwMGM4Li40ZDAzYzJhYTQyZGE1
YWRkY2NkNmQwZmEzMDM0ODBhNmEzNDY4NGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFF1ZXJ5LmNwcApAQCAtNTEsOSArNTEsNyBAQCBXZWJHTFF1ZXJ5OjpXZWJHTFF1ZXJ5
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKIAogdm9pZCBXZWJHTFF1ZXJ5OjpkZWxl
dGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0M2QsIFBsYXRmb3Jt
R0xPYmplY3Qgb2JqZWN0KQogewotICAgIFVOVVNFRF9QQVJBTShjb250ZXh0M2QpOwotICAgIFVO
VVNFRF9QQVJBTShvYmplY3QpOwotICAgIC8vIEZJWE1FOiBDYWxsIGRlbGV0ZVF1ZXJ5IGZyb20g
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuCisgICAgY29udGV4dDNkLT5kZWxldGVRdWVyeShvYmpl
Y3QpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFF1ZXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmgKaW5kZXgg
NGJkNmYxYzA0NmYxNTM4OGNjNTgwMWY0MTU2MWE2OTNmMzNhM2Q5Zi4uMWJhZTUyNTI5ZjAwNzEz
OTg4MzkxOTk5ODMxOTJiZjg2YTlhNTJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xRdWVyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUXVlcnkuaApAQCAtNDAsMTEgKzQwLDE1IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbWFrZVJl
c3VsdEF2YWlsYWJsZSgpIHsgbV9pc1Jlc3VsdEF2YWlsYWJsZSA9IHRydWU7IH0KIAorICAgIHZv
aWQgc2V0VGFyZ2V0KEdDR0xlbnVtIHRhcmdldCkgeyBtX3RhcmdldCA9IHRhcmdldDsgfQorICAg
IEdDR0xlbnVtIHRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0OyB9CisKIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgV2ViR0xRdWVyeShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CiAg
ICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZv
cm1HTE9iamVjdCkgb3ZlcnJpZGU7CiAKICAgICBib29sIG1faXNSZXN1bHRBdmFpbGFibGUgeyBm
YWxzZSB9OworICAgIEdDR0xlbnVtIG1fdGFyZ2V0IHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAppbmRleCBjYzEwYzFl
MDQyMDI1MzA1NTM0NGQ1ZjAwZTIxYjdkM2E4OGRlNGNkLi4yZTkyNzE3YTFhOGYzZDY2YjE3MTM1
MjBhOTQ3ZGE4MDcyOWYwNTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcApA
QCAtMjM0NiwyMiArMjM0NiwyMiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjbGVh
ckJ1ZmZlcmZpKEdDR0xlbnVtIGJ1ZmZlciwgR0NHTGludCBkcmF3YnVmZmVyLAogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpkZWxldGVRdWVyeShQbGF0Zm9ybUdMT2JqZWN0IHF1ZXJ5
KQogewotICAgIFVOVVNFRF9QQVJBTShxdWVyeSk7CisgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7
CisgICAgZ2w6OkRlbGV0ZVF1ZXJpZXMoMSwgJnF1ZXJ5KTsKIH0KIAogR0NHTGJvb2xlYW4gR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0w6OmlzUXVlcnkoUGxhdGZvcm1HTE9iamVjdCBxdWVyeSkKIHsK
LSAgICBVTlVTRURfUEFSQU0ocXVlcnkpOwotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIG1ha2VD
b250ZXh0Q3VycmVudCgpOworICAgIHJldHVybiBnbDo6SXNRdWVyeShxdWVyeSk7CiB9CiAKIFBs
YXRmb3JtR0xPYmplY3QgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmdldFF1ZXJ5KEdDR0xlbnVt
IHRhcmdldCwgR0NHTGVudW0gcG5hbWUpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHRhcmdldCk7Ci0g
ICAgVU5VU0VEX1BBUkFNKHBuYW1lKTsKLQotICAgIHJldHVybiAwOworICAgIG1ha2VDb250ZXh0
Q3VycmVudCgpOworICAgIEdMaW50IHZhbHVlOworICAgIGdsOjpHZXRRdWVyeWl2KHRhcmdldCwg
cG5hbWUsICZ2YWx1ZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFBsYXRmb3JtR0xPYmplY3Q+
KHZhbHVlKTsKIH0KIAogUGxhdGZvcm1HTE9iamVjdCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
Y3JlYXRlU2FtcGxlcigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDlmODI1MjkyNTY2N2ZiMTNjMTNkZDc5NDg5NDQyMWNj
YTNmYjU5My4uN2U5NGQxZGZjNmI0ZjkyMmQxZDA1ZGFkZTM2NzM2MjNlMDMxNTFhOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDIwLTA3LTIwICBKYW1lcyBEYXJwaW5pYW4gIDxqZGFycGluaWFu
QGNocm9taXVtLm9yZz4KKworICAgICAgICBbV2ViR0wyXSBRdWVyeSBPYmplY3RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY5NDAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi9xdWVyeS9xdWVyeS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMtZXhwZWN0ZWQudHh0Ogor
CiAyMDIwLTA3LTIyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIGNvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGluZy1pZnJhbWUtc2Ny
b2xsLXJlcGFpbnQuaHRtbCBmYWlscyBvbiBNb2phdmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9xdWVyeS9xdWVyeS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvcXVlcnkvcXVlcnktZXhwZWN0ZWQudHh0
CmluZGV4IDAwNzg1OTgxN2Y5ZWVjMDI3Zjk2NDY4NzY5ZmM4ZTgyNzMyZDcxYmUuLjE0YjFjMTMw
MGJiODViZTg2Njg5ZmVmY2JlODFiOTE3Yjg5ZWI1MzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9xdWVyeS9xdWVyeS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3F1ZXJ5L3F1ZXJ5LWV4cGVjdGVk
LnR4dApAQCAtMSw0NCArMSw1IEBACiBUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0
ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KIAogVGVzdDog
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3F1ZXJ5L3F1ZXJ5
Lmh0bWwKLVsgMTogUEFTUyBdIFdlYkdMIGNvbnRleHQgZXhpc3RzCi1bIDI6IFBBU1MgXSBnbC5B
TllfU0FNUExFU19QQVNTRUQgaXMgMHg4QzJGCi1bIDM6IFBBU1MgXSBnbC5BTllfU0FNUExFU19Q
QVNTRURfQ09OU0VSVkFUSVZFIGlzIDB4OEQ2QQotWyA0OiBQQVNTIF0gZ2wuVFJBTlNGT1JNX0ZF
RURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiBpcyAweDhDODgKLVsgNTogUEFTUyBdIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBBTllfU0FNUExFU19QQVNTRUQgcXVlcnkg
c2hvdWxkIHN1Y2NlZWQKLVsgNjogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiBBTllfU0FNUExFU19QQVNTRUQgcXVlcnkgc2hvdWxkIHN1Y2NlZWQKLVsgNzog
UEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBBTllfU0FNUExF
U19QQVNTRUQgcXVlcnkgc2hvdWxkIHN1Y2NlZWQKLVsgODogUEFTUyBdIGdsLmdldFF1ZXJ5KGds
LkFOWV9TQU1QTEVTX1BBU1NFRCwgZ2wuQ1VSUkVOVF9RVUVSWSkgaXMgbnVsbAotWyA5OiBQQVNT
IF0gZ2wuZ2V0UXVlcnkoZ2wuQU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElWRSwgZ2wuQ1VS
UkVOVF9RVUVSWSkgaXMgbnVsbAotWyAxMDogUEFTUyBdIGdsLmdldFF1ZXJ5KGdsLlRSQU5TRk9S
TV9GRUVEQkFDS19QUklNSVRJVkVTX1dSSVRURU4sIGdsLkNVUlJFTlRfUVVFUlkpIGlzIG51bGwK
LVsgMTE6IFBBU1MgXSBnbC5nZXRRdWVyeShnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZF
U19XUklUVEVOLCBnbC5DVVJSRU5UX1FVRVJZKSBpcyBudWxsCi1bIDEyOiBGQUlMIF0gZ2wuaXNR
dWVyeShxMSkgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLVsgMTM6IEZBSUwgXSBnbC5nZXRR
dWVyeShnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOLCBnbC5DVVJSRU5U
X1FVRVJZKSBzaG91bGQgYmUgW29iamVjdCBXZWJHTFF1ZXJ5XS4gV2FzIG51bGwuCi1bIDE0OiBQ
QVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IENh
bid0IGJlZ2luIGEgcXVlcnkgd2hpbGUgb25lIGlzIGFscmVhZHkgYWN0aXZlCi1bIDE1OiBGQUlM
IF0gZ2wuZ2V0UXVlcnkoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiwg
Z2wuQ1VSUkVOVF9RVUVSWSkgc2hvdWxkIGJlIFtvYmplY3QgV2ViR0xRdWVyeV0uIFdhcyBudWxs
LgotWyAxNjogUEFTUyBdIGdsLmdldFF1ZXJ5KGdsLlRSQU5TRk9STV9GRUVEQkFDS19QUklNSVRJ
VkVTX1dSSVRURU4sIGdsLkNVUlJFTlRfUVVFUlkpIGlzIG51bGwKLVsgMTc6IFBBU1MgXSBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogQ2FuJ3QgZW5kIGEg
cXVlcnkgaWYgb25lIGlzIG5vdCBhY3RpdmUKLVsgMTg6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogQ2FuJ3QgcmUtdXNlIHF1ZXJ5IG9iamVj
dHMgZm9yIGluY29tcGF0aWJsZSB0YXJnZXRzCi1bIDE5OiBQQVNTIF0gZ2wuZ2V0UXVlcnkoZ2wu
QU5ZX1NBTVBMRVNfUEFTU0VELCBnbC5DVVJSRU5UX1FVRVJZKSBpcyBudWxsCi1bIDIwOiBGQUlM
IF0gZ2wuZ2V0UXVlcnkoZ2wuQU5ZX1NBTVBMRVNfUEFTU0VELCBnbC5DVVJSRU5UX1FVRVJZKSBz
aG91bGQgYmUgW29iamVjdCBXZWJHTFF1ZXJ5XS4gV2FzIG51bGwuCi1bIDIxOiBQQVNTIF0gZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IENhbid0IGNhbGwg
YmVnaW5RdWVyeSBvbiBhbiBhbHJlYWR5IGFjdGl2ZSBxdWVyeSBvYmplY3QKLVsgMjI6IFBBU1Mg
XSBnbC5nZXRRdWVyeShnbC5BTllfU0FNUExFU19QQVNTRURfQ09OU0VSVkFUSVZFLCBnbC5DVVJS
RU5UX1FVRVJZKSBpcyBudWxsCi1bIDIzOiBGQUlMIF0gZ2V0RXJyb3IgZXhwZWN0ZWQ6IE5PX0VS
Uk9SLiBXYXMgSU5WQUxJRF9PUEVSQVRJT04gOiBTaG91bGQgYmUgYWJsZSB0byBoYXZlIG11bHRp
cGxlIHVucmVsYXRlZCBxdWVyeSB0eXBlcyBhY3RpdmUgYXQgb25jZQotWyAyNDogRkFJTCBdIGds
LmdldFF1ZXJ5KGdsLlRSQU5TRk9STV9GRUVEQkFDS19QUklNSVRJVkVTX1dSSVRURU4sIGdsLkNV
UlJFTlRfUVVFUlkpIHNob3VsZCBiZSBbb2JqZWN0IFdlYkdMUXVlcnldLiBXYXMgbnVsbC4KLVsg
MjU6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogZGVsZXRp
bmcgcXVlcmllcyBzaG91bGQgbm90IHByb2R1Y2UgZXJyb3JzCi1bIDI2OiBQQVNTIF0gZ2wuZ2V0
UXVlcnkoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiwgZ2wuQ1VSUkVO
VF9RVUVSWSkgaXMgbnVsbAotWyAyNzogUEFTUyBdIGdsLmdldFF1ZXJ5KGdsLkFOWV9TQU1QTEVT
X1BBU1NFRF9DT05TRVJWQVRJVkUsIGdsLkNVUlJFTlRfUVVFUlkpIGlzIG51bGwKLVsgMjg6IFBB
U1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogYmVn
aW5uaW5nIGEgZGVsZXRlZCBxdWVyeSBvYmplY3QKLVsgMjk6IFBBU1MgXSBnbC5nZXRRdWVyeShn
bC5UUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOLCBnbC5DVVJSRU5UX1FVRVJZ
KSBpcyBudWxsCi1bIDMwOiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IHNob3VsZCBoYXZlIG5vIHByZXZpb3VzIGVycm9ycwotWyAzMTogUEFTUyBdIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBjcmVhdGVRdWVyeSBzaG91bGQgbm90
IHNldCBhbiBlcnJvcgotWyAzMjogUEFTUyBdIHExIGlzIG5vbi1udWxsLgotWyAzMzogUEFTUyBd
IGdsLmlzUXVlcnkocTEpIGlzIGZhbHNlCi1bIDM0OiBGQUlMIF0gZ2wuaXNRdWVyeShxMSkgc2hv
dWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLVsgMzU6IEZBSUwgXSBnbC5pc1F1ZXJ5KHExKSBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotWyAzNjogUEFTUyBdIGdsLmlzUXVlcnkocTEpIGlzIGZh
bHNlCi1bIDM3OiBQQVNTIF0gZ2wuaXNRdWVyeShudWxsKSBpcyBmYWxzZQotWyAzODogRkFJTCBd
IGdldEVycm9yIGV4cGVjdGVkOiBOT19FUlJPUi4gV2FzIElOVkFMSURfT1BFUkFUSU9OIDogdGhl
cmUgc2hvdWxkIGJlIG5vIGVycm9ycwotWyAzOTogUEFTUyBdIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCi1bIEZBSUwgXSA5IGZhaWx1cmVzIHJlcG9ydGVkCitbIFBBU1MgXSBBbGwgdGVzdHMg
cGFzc2VkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLWV4cGVjdGVk
LnR4dAppbmRleCAxYjI3MzE4YTYxYTcwMDM4YmMwNjk5ZTY0NDhkMmExOGVkMWIzMDU3Li5hZmQw
OGIyMTQ5ZTYyOTQ0ZTcwMzkzMmE2YWNkZjVjYzI2NTcyNGMwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3N0
YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMtZXhwZWN0ZWQudHh0CkBAIC0zMTMsNyArMzEzLDcgQEAg
VGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3N0YXRl
L2dsLW9iamVjdC1nZXQtY2FsbHMuaHQKIFsgMzEwOiBQQVNTIF0gZ2wuZ2V0U3luY1BhcmFtZXRl
cihzeW5jLCBnbC5TWU5DX0NPTkRJVElPTikgaXMgZ2wuU1lOQ19HUFVfQ09NTUFORFNfQ09NUExF
VEUKIFsgMzExOiBQQVNTIF0gZ2wuZ2V0U3luY1BhcmFtZXRlcihzeW5jLCBnbC5TWU5DX0ZMQUdT
KSBpcyAwCiBbIDMxMjogUEFTUyBdIGdldFN5bmNQYXJhbWV0ZXIgY29ycmVjdGx5IGhhbmRsZWQg
aW52YWxpZCBwbmFtZSBlbnVtcwotWyAzMTM6IEZBSUwgXSBnbC5nZXRRdWVyeVBhcmFtZXRlcihx
dWVyeSwgZ2wuUVVFUllfUkVTVUxUX0FWQUlMQUJMRSkgc2hvdWxkIGJlIGZhbHNlIChvZiB0eXBl
IGJvb2xlYW4pLiBXYXMgMCAob2YgdHlwZSBudW1iZXIpLgorWyAzMTM6IFBBU1MgXSBnbC5nZXRR
dWVyeVBhcmFtZXRlcihxdWVyeSwgZ2wuUVVFUllfUkVTVUxUX0FWQUlMQUJMRSkgaXMgZmFsc2UK
IFsgMzE0OiBQQVNTIF0gZ2V0UXVlcnlQYXJhbWV0ZXIgY29ycmVjdGx5IGhhbmRsZWQgaW52YWxp
ZCBwbmFtZSBlbnVtcwogWyAzMTU6IFBBU1MgXSBnbC5nZXRTaGFkZXJQYXJhbWV0ZXIodmVydFNo
YWRlciwgZ2wuQ09NUElMRV9TVEFUVVMpIGlzIHRydWUKIFsgMzE2OiBQQVNTIF0gZ2wuZ2V0U2hh
ZGVyUGFyYW1ldGVyKGZyYWdTaGFkZXIsIGdsLkNPTVBJTEVfU1RBVFVTKSBpcyB0cnVlCkBAIC0z
NjQsNSArMzY0LDUgQEAgVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UyL3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMuaHQKIFsgMzYxOiBQQVNTIF0gZ2V0
QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyIGNvcnJlY3RseSBoYW5kbGVkIGludmFsaWQgcG5h
bWUgZW51bXMKIFsgMzYyOiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6CiBbIDM2MzogUEFTUyBdIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi1bIEZBSUwg
XSAzOCBmYWlsdXJlcyByZXBvcnRlZAorWyBGQUlMIF0gMzcgZmFpbHVyZXMgcmVwb3J0ZWQKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405002</attachid>
            <date>2020-07-22 17:57:36 -0700</date>
            <delta_ts>2020-07-23 17:19:39 -0700</delta_ts>
            <desc>rebaseline layout test expando-loss-2.html</desc>
            <filename>bug-126940-20200722175735.patch</filename>
            <type>text/plain</type>
            <size>18342</size>
            <attacher name="James Darpinian">jdarpinian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTFiZjc3OWM4MzZlMmNl
ZDU1ODQwMWFjZmY1NzNkMzMxMmIzMjEyNS4uNzNjNjIxZjRlMjRjMzcyZTUxYTFkMjg4ZDdmZDI1
ZjJmNmExN2ZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA3LTIwICBKYW1l
cyBEYXJwaW5pYW4gIDxqZGFycGluaWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbV2ViR0wy
XSBRdWVyeSBPYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjY5NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBQYXNzZXMgY29uZm9ybWFuY2UgdGVzdHMgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3F1ZXJ5LyoKKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlUXVl
cnkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNRdWVyeSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZVF1ZXJ5
VGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJlZ2lu
UXVlcnkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZW5kUXVl
cnkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnkp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnlQYXJh
bWV0ZXIpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaDoK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMUXVlcnk6OmRlbGV0ZU9iamVjdEltcGwpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMUXVlcnkuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZh
bGlkYXRlV2ViR0xPYmplY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dy
YXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmRlbGV0ZVF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjppc1F1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpnZXRRdWVyeSk6CisKIDIwMjAtMDctMjIgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyMDU4MjYpOiBuYXJy
b3dOb0JyZWFrU3BhY2UgKFUrMjAyRikgaGFzIHplcm8gd2lkdGgsIHJlZ2FyZGxlc3Mgb2YgZm9u
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdD
b250ZXh0LmNwcAppbmRleCA2ZjE4Y2Q3ODBhNDM1ZWNkZGVhNWUwZTM3YmUyMjE2OTk1MWU1YTYz
Li5kNjRmN2U3YTNjNWZlYTU1MDZlZDRmMzRjNjE4YTk5MjNhOTIzMDIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcApA
QCAtMTg3NCw0NCArMTg3NCw2NCBAQCBSZWZQdHI8V2ViR0xRdWVyeT4gV2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6Y3JlYXRlUXVlcnkoKQogICAgIHJldHVybiBxdWVyeTsKIH0KIAotdm9pZCBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVRdWVyeShXZWJHTFF1ZXJ5KikKK3ZvaWQgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlUXVlcnkoV2ViR0xRdWVyeSogcXVlcnkpCiB7Ci0gICAg
TE9HKFdlYkdMLCAiW1sgTk9UIElNUExFTUVOVEVEIF1dIGRlbGV0ZVF1ZXJ5KCkiKTsKKyAgICBp
ZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICFxdWVyeSB8fCAhcXVlcnktPm9iamVjdCgp
IHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJkZWxldGVRdWVyeSIsIHF1ZXJ5KSkKKyAgICAgICAg
cmV0dXJuOworICAgIGlmIChxdWVyeS0+dGFyZ2V0KCkgJiYgcXVlcnkgPT0gbV9hY3RpdmVRdWVy
aWVzLmdldChxdWVyeS0+dGFyZ2V0KCkpKSB7CisgICAgICAgIG1fY29udGV4dC0+ZW5kUXVlcnko
cXVlcnktPnRhcmdldCgpKTsKKyAgICAgICAgbV9hY3RpdmVRdWVyaWVzLnJlbW92ZShxdWVyeS0+
dGFyZ2V0KCkpOworICAgIH0KKyAgICBkZWxldGVPYmplY3QocXVlcnkpOwogfQogCi1HQ0dMYm9v
bGVhbiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppc1F1ZXJ5KFdlYkdMUXVlcnkqKQorR0NHTGJv
b2xlYW4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNRdWVyeShXZWJHTFF1ZXJ5KiBxdWVyeSkK
IHsKLSAgICBMT0coV2ViR0wsICJbWyBOT1QgSU1QTEVNRU5URUQgXV0gaXNRdWVyeSgpIik7Ci0g
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXF1
ZXJ5IHx8ICFxdWVyeS0+b2JqZWN0KCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImlzUXVlcnki
LCBxdWVyeSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9jb250ZXh0LT5p
c1F1ZXJ5KHF1ZXJ5LT5vYmplY3QoKSk7Cit9CisKK2Jvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6dmFsaWRhdGVRdWVyeVRhcmdldChjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDR0xlbnVt
IHRhcmdldCwgR0NHTGVudW0qIHRhcmdldEtleSkKK3sKKyAgICBpZiAodGFyZ2V0ICE9IEdyYXBo
aWNzQ29udGV4dEdMOjpBTllfU0FNUExFU19QQVNTRUQgJiYgdGFyZ2V0ICE9IEdyYXBoaWNzQ29u
dGV4dEdMOjpBTllfU0FNUExFU19QQVNTRURfQ09OU0VSVkFUSVZFICYmIHRhcmdldCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTikgewor
ICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9FTlVN
LCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIHRhcmdldCIpOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorICAgIGlmICh0YXJnZXRLZXkpCisgICAgICAgICp0YXJnZXRLZXkgPSAodGFyZ2V0
ID09IEdyYXBoaWNzQ29udGV4dEdMOjpBTllfU0FNUExFU19QQVNTRURfQ09OU0VSVkFUSVZFKSA/
IEdyYXBoaWNzQ29udGV4dEdMOjpBTllfU0FNUExFU19QQVNTRUQgOiB0YXJnZXQ7CisgICAgcmV0
dXJuIHRydWU7CiB9CiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmVnaW5RdWVyeShH
Q0dMZW51bSB0YXJnZXQsIFdlYkdMUXVlcnkmIHF1ZXJ5KQogewotICAgIGlmIChpc0NvbnRleHRM
b3N0T3JQZW5kaW5nKCkpCisgICAgR0NHTGVudW0gdGFyZ2V0S2V5OworICAgIGlmIChpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImJlZ2luUXVlcnkiLCAm
cXVlcnkpIHx8ICF2YWxpZGF0ZVF1ZXJ5VGFyZ2V0KCJiZWdpblF1ZXJ5IiwgdGFyZ2V0LCAmdGFy
Z2V0S2V5KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUU6IEFkZCB2YWxpZGF0aW9u
IHRvIHByZXZlbnQgYmFkIGNhY2hpbmcuCi0KLSAgICAvLyBPbmx5IG9uZSBxdWVyeSBvYmplY3Qg
Y2FuIGJlIGFjdGl2ZSBwZXIgdGFyZ2V0LgotICAgIGF1dG8gdGFyZ2V0S2V5ID0gKHRhcmdldCA9
PSBHcmFwaGljc0NvbnRleHRHTDo6QU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElWRSkgPyBH
cmFwaGljc0NvbnRleHRHTDo6QU5ZX1NBTVBMRVNfUEFTU0VEIDogdGFyZ2V0OworICAgIGlmIChx
dWVyeS50YXJnZXQoKSAmJiBxdWVyeS50YXJnZXQoKSAhPSB0YXJnZXQpIHsKKyAgICAgICAgc3lu
dGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfT1BFUkFUSU9OLCAiYmVn
aW5RdWVyeSIsICJxdWVyeSB0eXBlIGRvZXMgbm90IG1hdGNoIHRhcmdldCIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQogCiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX2FjdGl2ZVF1ZXJpZXMuYWRk
KHRhcmdldEtleSwgbWFrZVJlZlB0cigmcXVlcnkpKTsKIAorICAgIC8vIE9ubHkgb25lIHF1ZXJ5
IG9iamVjdCBjYW4gYmUgYWN0aXZlIHBlciB0YXJnZXQuCiAgICAgaWYgKCFhZGRSZXN1bHQuaXNO
ZXdFbnRyeSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6
SU5WQUxJRF9PUEVSQVRJT04sICJiZWdpblF1ZXJ5IiwgIlF1ZXJ5IG9iamVjdCBvZiB0YXJnZXQg
aXMgYWxyZWFkeSBhY3RpdmUiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIG1fY29u
dGV4dC0+YmVnaW5RdWVyeSh0YXJnZXQsIHF1ZXJ5Lm9iamVjdCgpKTsKKyAgICBxdWVyeS5zZXRU
YXJnZXQodGFyZ2V0KTsKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjplbmRRdWVy
eShHQ0dMZW51bSB0YXJnZXQpCiB7Ci0gICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8
fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgIEdDR0xlbnVtIHRhcmdldEtleTsKKyAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgfHwgIXZhbGlkYXRlUXVlcnlUYXJnZXQoImJlZ2luUXVlcnkiLCB0YXJnZXQsICZ0YXJnZXRL
ZXkpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHRhcmdldEtleSA9ICh0YXJnZXQgPT0g
R3JhcGhpY3NDb250ZXh0R0w6OkFOWV9TQU1QTEVTX1BBU1NFRF9DT05TRVJWQVRJVkUpID8gR3Jh
cGhpY3NDb250ZXh0R0w6OkFOWV9TQU1QTEVTX1BBU1NFRCA6IHRhcmdldDsKLQogICAgIGF1dG8g
cXVlcnkgPSBtX2FjdGl2ZVF1ZXJpZXMudGFrZSh0YXJnZXRLZXkpOwogICAgIGlmICghcXVlcnkp
IHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURf
T1BFUkFUSU9OLCAiZW5kUXVlcnkiLCAiUXVlcnkgb2JqZWN0IG9mIHRhcmdldCBpcyBub3QgYWN0
aXZlIik7CkBAIC0xOTI2LDIyICsxOTQ2LDM2IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6ZW5kUXVlcnkoR0NHTGVudW0gdGFyZ2V0KQogICAgIH0pOwogfQogCi1SZWZQdHI8V2ViR0xR
dWVyeT4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnkoR0NHTGVudW0sIEdDR0xlbnVt
KQorUmVmUHRyPFdlYkdMUXVlcnk+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5KEdD
R0xlbnVtIHRhcmdldCwgR0NHTGVudW0gcG5hbWUpCiB7Ci0gICAgTE9HKFdlYkdMLCAiW1sgTk9U
IElNUExFTUVOVEVEIF1dIGdldHF1ZXJ5KCkiKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBH
Q0dMZW51bSB0YXJnZXRLZXk7CisgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAh
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIHx8ICF2YWxpZGF0ZVF1ZXJ5VGFyZ2V0KCJiZWdpblF1
ZXJ5IiwgdGFyZ2V0LCAmdGFyZ2V0S2V5KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAg
ICBpZiAocG5hbWUgIT0gR3JhcGhpY3NDb250ZXh0R0w6OkNVUlJFTlRfUVVFUlkpIHsKKyAgICAg
ICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfRU5VTSwgImdl
dFF1ZXJ5IiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgfQorCisgICAgYXV0byBxdWVyeSA9IG1fYWN0aXZlUXVlcmllcy5nZXQodGFyZ2V0
S2V5KTsKKyAgICBpZiAoIXF1ZXJ5IHx8IHF1ZXJ5LT50YXJnZXQoKSAhPSB0YXJnZXQpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBxdWVyeTsKIH0KIAogV2ViR0xBbnkgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnlQYXJhbWV0ZXIoV2ViR0xRdWVyeSYgcXVlcnks
IEdDR0xlbnVtIHBuYW1lKQogewotICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCisg
ICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgi
Z2V0UXVlcnlQYXJhbWV0ZXIiLCAmcXVlcnkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAog
ICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpRVUVSWV9S
RVNVTFQ6CisgICAgICAgIGlmICghcXVlcnkuaXNSZXN1bHRBdmFpbGFibGUoKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTDo6UVVFUllfUkVTVUxUX0FWQUlMQUJMRToKICAgICAgICAgaWYgKCFxdWVyeS5pc1Jlc3Vs
dEF2YWlsYWJsZSgpKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX0VOVU0sICJnZXRRdWVyeVBhcmFtZXRl
ciIsICJJbnZhbGlkIHBuYW1lIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggMDQyMGQ3NzY2MThlNzJlMzllMWY4NTU2
ODdiNWUzMzQ1OGM1ZDg4YS4uZjMyYjI5Nzg0YmEwNDc3YTNiNjE0NjM2ZmM3NWQ2ODcxYWQwMDQ0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmlu
Z0NvbnRleHQuaApAQCAtMjk2LDYgKzI5Niw3IEBAIHByaXZhdGU6CiAgICAgV2ViR0xGcmFtZWJ1
ZmZlciogZ2V0UmVhZEZyYW1lYnVmZmVyQmluZGluZygpIGZpbmFsOwogICAgIHZvaWQgcmVzdG9y
ZUN1cnJlbnRGcmFtZWJ1ZmZlcigpIGZpbmFsOwogICAgIGJvb2wgdmFsaWRhdGVOb25EZWZhdWx0
RnJhbWVidWZmZXJBdHRhY2htZW50KGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0NHTGVudW0g
YXR0YWNobWVudCk7CisgICAgYm9vbCB2YWxpZGF0ZVF1ZXJ5VGFyZ2V0KGNvbnN0IGNoYXIqIGZ1
bmN0aW9uTmFtZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSogdGFyZ2V0S2V5KTsKIAogICAg
IEdDR0xlbnVtIGJhc2VJbnRlcm5hbEZvcm1hdEZyb21JbnRlcm5hbEZvcm1hdChHQ0dMZW51bSBp
bnRlcm5hbGZvcm1hdCk7CiAgICAgYm9vbCBpc0ludGVnZXJGb3JtYXQoR0NHTGVudW0gaW50ZXJu
YWxmb3JtYXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xR
dWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmNwcAppbmRl
eCA0ZjI0MTUyYmY3MjI4OTc0YjcwNGExZTA3MDUzZTUwNjM3NDMwMGM4Li40ZDAzYzJhYTQyZGE1
YWRkY2NkNmQwZmEzMDM0ODBhNmEzNDY4NGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFF1ZXJ5LmNwcApAQCAtNTEsOSArNTEsNyBAQCBXZWJHTFF1ZXJ5OjpXZWJHTFF1ZXJ5
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKIAogdm9pZCBXZWJHTFF1ZXJ5OjpkZWxl
dGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0M2QsIFBsYXRmb3Jt
R0xPYmplY3Qgb2JqZWN0KQogewotICAgIFVOVVNFRF9QQVJBTShjb250ZXh0M2QpOwotICAgIFVO
VVNFRF9QQVJBTShvYmplY3QpOwotICAgIC8vIEZJWE1FOiBDYWxsIGRlbGV0ZVF1ZXJ5IGZyb20g
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuCisgICAgY29udGV4dDNkLT5kZWxldGVRdWVyeShvYmpl
Y3QpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFF1ZXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmgKaW5kZXgg
NGJkNmYxYzA0NmYxNTM4OGNjNTgwMWY0MTU2MWE2OTNmMzNhM2Q5Zi4uMWJhZTUyNTI5ZjAwNzEz
OTg4MzkxOTk5ODMxOTJiZjg2YTlhNTJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xRdWVyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUXVlcnkuaApAQCAtNDAsMTEgKzQwLDE1IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbWFrZVJl
c3VsdEF2YWlsYWJsZSgpIHsgbV9pc1Jlc3VsdEF2YWlsYWJsZSA9IHRydWU7IH0KIAorICAgIHZv
aWQgc2V0VGFyZ2V0KEdDR0xlbnVtIHRhcmdldCkgeyBtX3RhcmdldCA9IHRhcmdldDsgfQorICAg
IEdDR0xlbnVtIHRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0OyB9CisKIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgV2ViR0xRdWVyeShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CiAg
ICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZv
cm1HTE9iamVjdCkgb3ZlcnJpZGU7CiAKICAgICBib29sIG1faXNSZXN1bHRBdmFpbGFibGUgeyBm
YWxzZSB9OworICAgIEdDR0xlbnVtIG1fdGFyZ2V0IHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAppbmRleCBjYzEwYzFl
MDQyMDI1MzA1NTM0NGQ1ZjAwZTIxYjdkM2E4OGRlNGNkLi4yZTkyNzE3YTFhOGYzZDY2YjE3MTM1
MjBhOTQ3ZGE4MDcyOWYwNTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcApA
QCAtMjM0NiwyMiArMjM0NiwyMiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjbGVh
ckJ1ZmZlcmZpKEdDR0xlbnVtIGJ1ZmZlciwgR0NHTGludCBkcmF3YnVmZmVyLAogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpkZWxldGVRdWVyeShQbGF0Zm9ybUdMT2JqZWN0IHF1ZXJ5
KQogewotICAgIFVOVVNFRF9QQVJBTShxdWVyeSk7CisgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7
CisgICAgZ2w6OkRlbGV0ZVF1ZXJpZXMoMSwgJnF1ZXJ5KTsKIH0KIAogR0NHTGJvb2xlYW4gR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0w6OmlzUXVlcnkoUGxhdGZvcm1HTE9iamVjdCBxdWVyeSkKIHsK
LSAgICBVTlVTRURfUEFSQU0ocXVlcnkpOwotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIG1ha2VD
b250ZXh0Q3VycmVudCgpOworICAgIHJldHVybiBnbDo6SXNRdWVyeShxdWVyeSk7CiB9CiAKIFBs
YXRmb3JtR0xPYmplY3QgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmdldFF1ZXJ5KEdDR0xlbnVt
IHRhcmdldCwgR0NHTGVudW0gcG5hbWUpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHRhcmdldCk7Ci0g
ICAgVU5VU0VEX1BBUkFNKHBuYW1lKTsKLQotICAgIHJldHVybiAwOworICAgIG1ha2VDb250ZXh0
Q3VycmVudCgpOworICAgIEdMaW50IHZhbHVlOworICAgIGdsOjpHZXRRdWVyeWl2KHRhcmdldCwg
cG5hbWUsICZ2YWx1ZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFBsYXRmb3JtR0xPYmplY3Q+
KHZhbHVlKTsKIH0KIAogUGxhdGZvcm1HTE9iamVjdCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
Y3JlYXRlU2FtcGxlcigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDlmODI1MjkyNTY2N2ZiMTNjMTNkZDc5NDg5NDQyMWNj
YTNmYjU5My4uN2U5NGQxZGZjNmI0ZjkyMmQxZDA1ZGFkZTM2NzM2MjNlMDMxNTFhOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDIwLTA3LTIwICBKYW1lcyBEYXJwaW5pYW4gIDxqZGFycGluaWFu
QGNocm9taXVtLm9yZz4KKworICAgICAgICBbV2ViR0wyXSBRdWVyeSBPYmplY3RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY5NDAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi9xdWVyeS9xdWVyeS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMtZXhwZWN0ZWQudHh0Ogor
CiAyMDIwLTA3LTIyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIGNvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGluZy1pZnJhbWUtc2Ny
b2xsLXJlcGFpbnQuaHRtbCBmYWlscyBvbiBNb2phdmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9taXNjL2V4cGFuZG8tbG9zcy0yLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9taXNjL2V4cGFuZG8tbG9z
cy0yLWV4cGVjdGVkLnR4dAppbmRleCBiMDc1NzcxNzU2OGU2M2YyNDQxY2E2MzRkMjY1ZGJjZmNi
MDhmMmIzLi5mYzAyOTZhYjRlYWQ1MDQ4NGM0ODM0M2ZmZjNhYzUwYTY1ZjA4ZWU4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvbWlzYy9leHBhbmRvLWxv
c3MtMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL21pc2MvZXhwYW5kby1sb3NzLTItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09O
U09MRSBNRVNTQUdFOiBUeXBlRXJyb3I6IG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGlu
ZyAnaW5zdGFuY2UuZXhwYW5kbzEnKQogVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlz
dGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCiAKIFRlc3Q6
IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9taXNjL2V4cGFu
ZG8tbG9zcy0yLmh0bWwKQEAgLTMyNyw4ICszMjYsMTYgQEAgVGVzdDogLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL21pc2MvZXhwYW5kby1sb3NzLTIuaHRtbAog
WyAzMjM6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcs
IDQ3KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KIFsg
MzI0OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0
Nyk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KIFsgMzI1OiBQ
QVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIK
LVsgMzI2OiBGQUlMIF0gQ1VSUkVOVF9RVUVSWSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJv
dW5kLgotWyAzMjc6IEZBSUwgXSBDVVJSRU5UX1FVRVJZIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3
YXMgYm91bmQuCi1bIDMyODogRkFJTCBdIHN1Y2Nlc3NmdWxseVBhcnNlZCBzaG91bGQgYmUgdHJ1
ZSAob2YgdHlwZSBib29sZWFuKS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRlZmluZWQpLgot
WyBGQUlMIF0gMTc5IGZhaWx1cmVzIHJlcG9ydGVkCitbIDMyNjogUEFTUyBdIENVUlJFTlRfUVVF
UlkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KK1sgMzI3OiBQQVNTIF0gQ1VSUkVO
VF9RVUVSWSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgorWyAzMjg6IEZBSUwgXSBR
dWVyeTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgorWyAzMjk6
IEZBSUwgXSBRdWVyeTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0
ZSBHQy4KK1sgMzMwOiBQQVNTIF0gUXVlcnk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KK1sgMzMxOiBQQVNTIF0gW29iamVjdCBXZWJHTFF1ZXJ5XSBpcyBhbiBp
bnN0YW5jZSBvZiBXZWJHTFF1ZXJ5CitbIDMzMjogRkFJTCBdIFF1ZXJ5OiBFeHBlY3QgYmFzaWMg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCitbIDMzMzogRkFJTCBdIFF1ZXJ5OiBFeHBl
Y3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgorWyAzMzQ6IFBBU1Mg
XSBRdWVyeTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgorWyAz
MzU6IFBBU1MgXSBbb2JqZWN0IFdlYkdMUXVlcnldIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMUXVl
cnkKK1sgMzM2OiBQQVNTIF0gc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKK1sgRkFJTCBdIDE4
MCBmYWlsdXJlcyByZXBvcnRlZAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvcXVlcnkvcXVlcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3F1ZXJ5L3F1ZXJ5LWV4cGVjdGVkLnR4dAppbmRleCAwMDc4
NTk4MTdmOWVlYzAyN2Y5NjQ2ODc2OWZjOGU4MjczMmQ3MWJlLi4xNGIxYzEzMDBiYjg1YmU4NjY4
OWZlZmNiZTgxYjkxN2I4OWViNTMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvcXVlcnkvcXVlcnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9xdWVyeS9xdWVyeS1leHBlY3RlZC50eHQKQEAgLTEs
NDQgKzEsNSBAQAogVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGlu
IGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCiAKIFRlc3Q6IC4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9xdWVyeS9xdWVyeS5odG1sCi1bIDE6
IFBBU1MgXSBXZWJHTCBjb250ZXh0IGV4aXN0cwotWyAyOiBQQVNTIF0gZ2wuQU5ZX1NBTVBMRVNf
UEFTU0VEIGlzIDB4OEMyRgotWyAzOiBQQVNTIF0gZ2wuQU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNF
UlZBVElWRSBpcyAweDhENkEKLVsgNDogUEFTUyBdIGdsLlRSQU5TRk9STV9GRUVEQkFDS19QUklN
SVRJVkVTX1dSSVRURU4gaXMgMHg4Qzg4Ci1bIDU6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogQU5ZX1NBTVBMRVNfUEFTU0VEIHF1ZXJ5IHNob3VsZCBzdWNj
ZWVkCi1bIDY6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDog
QU5ZX1NBTVBMRVNfUEFTU0VEIHF1ZXJ5IHNob3VsZCBzdWNjZWVkCi1bIDc6IFBBU1MgXSBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogQU5ZX1NBTVBMRVNfUEFTU0VEIHF1
ZXJ5IHNob3VsZCBzdWNjZWVkCi1bIDg6IFBBU1MgXSBnbC5nZXRRdWVyeShnbC5BTllfU0FNUExF
U19QQVNTRUQsIGdsLkNVUlJFTlRfUVVFUlkpIGlzIG51bGwKLVsgOTogUEFTUyBdIGdsLmdldFF1
ZXJ5KGdsLkFOWV9TQU1QTEVTX1BBU1NFRF9DT05TRVJWQVRJVkUsIGdsLkNVUlJFTlRfUVVFUlkp
IGlzIG51bGwKLVsgMTA6IFBBU1MgXSBnbC5nZXRRdWVyeShnbC5UUkFOU0ZPUk1fRkVFREJBQ0tf
UFJJTUlUSVZFU19XUklUVEVOLCBnbC5DVVJSRU5UX1FVRVJZKSBpcyBudWxsCi1bIDExOiBQQVNT
IF0gZ2wuZ2V0UXVlcnkoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiwg
Z2wuQ1VSUkVOVF9RVUVSWSkgaXMgbnVsbAotWyAxMjogRkFJTCBdIGdsLmlzUXVlcnkocTEpIHNo
b3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1bIDEzOiBGQUlMIF0gZ2wuZ2V0UXVlcnkoZ2wuVFJB
TlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiwgZ2wuQ1VSUkVOVF9RVUVSWSkgc2hv
dWxkIGJlIFtvYmplY3QgV2ViR0xRdWVyeV0uIFdhcyBudWxsLgotWyAxNDogUEFTUyBdIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBDYW4ndCBiZWdpbiBh
IHF1ZXJ5IHdoaWxlIG9uZSBpcyBhbHJlYWR5IGFjdGl2ZQotWyAxNTogRkFJTCBdIGdsLmdldFF1
ZXJ5KGdsLlRSQU5TRk9STV9GRUVEQkFDS19QUklNSVRJVkVTX1dSSVRURU4sIGdsLkNVUlJFTlRf
UVVFUlkpIHNob3VsZCBiZSBbb2JqZWN0IFdlYkdMUXVlcnldLiBXYXMgbnVsbC4KLVsgMTY6IFBB
U1MgXSBnbC5nZXRRdWVyeShnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVO
LCBnbC5DVVJSRU5UX1FVRVJZKSBpcyBudWxsCi1bIDE3OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IENhbid0IGVuZCBhIHF1ZXJ5IGlmIG9u
ZSBpcyBub3QgYWN0aXZlCi1bIDE4OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX09QRVJBVElPTiA6IENhbid0IHJlLXVzZSBxdWVyeSBvYmplY3RzIGZvciBpbmNv
bXBhdGlibGUgdGFyZ2V0cwotWyAxOTogUEFTUyBdIGdsLmdldFF1ZXJ5KGdsLkFOWV9TQU1QTEVT
X1BBU1NFRCwgZ2wuQ1VSUkVOVF9RVUVSWSkgaXMgbnVsbAotWyAyMDogRkFJTCBdIGdsLmdldFF1
ZXJ5KGdsLkFOWV9TQU1QTEVTX1BBU1NFRCwgZ2wuQ1VSUkVOVF9RVUVSWSkgc2hvdWxkIGJlIFtv
YmplY3QgV2ViR0xRdWVyeV0uIFdhcyBudWxsLgotWyAyMTogUEFTUyBdIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBDYW4ndCBjYWxsIGJlZ2luUXVlcnkg
b24gYW4gYWxyZWFkeSBhY3RpdmUgcXVlcnkgb2JqZWN0Ci1bIDIyOiBQQVNTIF0gZ2wuZ2V0UXVl
cnkoZ2wuQU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElWRSwgZ2wuQ1VSUkVOVF9RVUVSWSkg
aXMgbnVsbAotWyAyMzogRkFJTCBdIGdldEVycm9yIGV4cGVjdGVkOiBOT19FUlJPUi4gV2FzIElO
VkFMSURfT1BFUkFUSU9OIDogU2hvdWxkIGJlIGFibGUgdG8gaGF2ZSBtdWx0aXBsZSB1bnJlbGF0
ZWQgcXVlcnkgdHlwZXMgYWN0aXZlIGF0IG9uY2UKLVsgMjQ6IEZBSUwgXSBnbC5nZXRRdWVyeShn
bC5UUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOLCBnbC5DVVJSRU5UX1FVRVJZ
KSBzaG91bGQgYmUgW29iamVjdCBXZWJHTFF1ZXJ5XS4gV2FzIG51bGwuCi1bIDI1OiBQQVNTIF0g
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IGRlbGV0aW5nIHF1ZXJpZXMg
c2hvdWxkIG5vdCBwcm9kdWNlIGVycm9ycwotWyAyNjogUEFTUyBdIGdsLmdldFF1ZXJ5KGdsLlRS
QU5TRk9STV9GRUVEQkFDS19QUklNSVRJVkVTX1dSSVRURU4sIGdsLkNVUlJFTlRfUVVFUlkpIGlz
IG51bGwKLVsgMjc6IFBBU1MgXSBnbC5nZXRRdWVyeShnbC5BTllfU0FNUExFU19QQVNTRURfQ09O
U0VSVkFUSVZFLCBnbC5DVVJSRU5UX1FVRVJZKSBpcyBudWxsCi1bIDI4OiBQQVNTIF0gZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IGJlZ2lubmluZyBhIGRl
bGV0ZWQgcXVlcnkgb2JqZWN0Ci1bIDI5OiBQQVNTIF0gZ2wuZ2V0UXVlcnkoZ2wuVFJBTlNGT1JN
X0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiwgZ2wuQ1VSUkVOVF9RVUVSWSkgaXMgbnVsbAot
WyAzMDogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBzaG91
bGQgaGF2ZSBubyBwcmV2aW91cyBlcnJvcnMKLVsgMzE6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogY3JlYXRlUXVlcnkgc2hvdWxkIG5vdCBzZXQgYW4gZXJy
b3IKLVsgMzI6IFBBU1MgXSBxMSBpcyBub24tbnVsbC4KLVsgMzM6IFBBU1MgXSBnbC5pc1F1ZXJ5
KHExKSBpcyBmYWxzZQotWyAzNDogRkFJTCBdIGdsLmlzUXVlcnkocTEpIHNob3VsZCBiZSB0cnVl
LiBXYXMgZmFsc2UuCi1bIDM1OiBGQUlMIF0gZ2wuaXNRdWVyeShxMSkgc2hvdWxkIGJlIHRydWUu
IFdhcyBmYWxzZS4KLVsgMzY6IFBBU1MgXSBnbC5pc1F1ZXJ5KHExKSBpcyBmYWxzZQotWyAzNzog
UEFTUyBdIGdsLmlzUXVlcnkobnVsbCkgaXMgZmFsc2UKLVsgMzg6IEZBSUwgXSBnZXRFcnJvciBl
eHBlY3RlZDogTk9fRVJST1IuIFdhcyBJTlZBTElEX09QRVJBVElPTiA6IHRoZXJlIHNob3VsZCBi
ZSBubyBlcnJvcnMKLVsgMzk6IFBBU1MgXSBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotWyBG
QUlMIF0gOSBmYWlsdXJlcyByZXBvcnRlZAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvc3RhdGUvZ2wt
b2JqZWN0LWdldC1jYWxscy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy1leHBlY3RlZC50eHQKaW5kZXgg
MWIyNzMxOGE2MWE3MDAzOGJjMDY5OWU2NDQ4ZDJhMThlZDFiMzA1Ny4uYWZkMDhiMjE0OWU2Mjk0
NGU3MDM5MzJhNmFjZGY1Y2MyNjU3MjRjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9zdGF0ZS9nbC1vYmpl
Y3QtZ2V0LWNhbGxzLWV4cGVjdGVkLnR4dApAQCAtMzEzLDcgKzMxMyw3IEBAIFRlc3Q6IC4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9zdGF0ZS9nbC1vYmplY3Qt
Z2V0LWNhbGxzLmh0CiBbIDMxMDogUEFTUyBdIGdsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wu
U1lOQ19DT05ESVRJT04pIGlzIGdsLlNZTkNfR1BVX0NPTU1BTkRTX0NPTVBMRVRFCiBbIDMxMTog
UEFTUyBdIGdsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19GTEFHUykgaXMgMAogWyAz
MTI6IFBBU1MgXSBnZXRTeW5jUGFyYW1ldGVyIGNvcnJlY3RseSBoYW5kbGVkIGludmFsaWQgcG5h
bWUgZW51bXMKLVsgMzEzOiBGQUlMIF0gZ2wuZ2V0UXVlcnlQYXJhbWV0ZXIocXVlcnksIGdsLlFV
RVJZX1JFU1VMVF9BVkFJTEFCTEUpIHNob3VsZCBiZSBmYWxzZSAob2YgdHlwZSBib29sZWFuKS4g
V2FzIDAgKG9mIHR5cGUgbnVtYmVyKS4KK1sgMzEzOiBQQVNTIF0gZ2wuZ2V0UXVlcnlQYXJhbWV0
ZXIocXVlcnksIGdsLlFVRVJZX1JFU1VMVF9BVkFJTEFCTEUpIGlzIGZhbHNlCiBbIDMxNDogUEFT
UyBdIGdldFF1ZXJ5UGFyYW1ldGVyIGNvcnJlY3RseSBoYW5kbGVkIGludmFsaWQgcG5hbWUgZW51
bXMKIFsgMzE1OiBQQVNTIF0gZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHZlcnRTaGFkZXIsIGdsLkNP
TVBJTEVfU1RBVFVTKSBpcyB0cnVlCiBbIDMxNjogUEFTUyBdIGdsLmdldFNoYWRlclBhcmFtZXRl
cihmcmFnU2hhZGVyLCBnbC5DT01QSUxFX1NUQVRVUykgaXMgdHJ1ZQpAQCAtMzY0LDUgKzM2NCw1
IEBAIFRlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9z
dGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0CiBbIDM2MTogUEFTUyBdIGdldEFjdGl2ZVVuaWZv
cm1CbG9ja1BhcmFtZXRlciBjb3JyZWN0bHkgaGFuZGxlZCBpbnZhbGlkIHBuYW1lIGVudW1zCiBb
IDM2MjogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOgogWyAz
NjM6IFBBU1MgXSBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotWyBGQUlMIF0gMzggZmFpbHVy
ZXMgcmVwb3J0ZWQKK1sgRkFJTCBdIDM3IGZhaWx1cmVzIHJlcG9ydGVkCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405100</attachid>
            <date>2020-07-23 17:19:40 -0700</date>
            <delta_ts>2020-07-23 17:50:34 -0700</delta_ts>
            <desc>mark reviewed</desc>
            <filename>bug-126940-20200723171940.patch</filename>
            <type>text/plain</type>
            <size>18338</size>
            <attacher name="James Darpinian">jdarpinian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTFiZjc3OWM4MzZlMmNl
ZDU1ODQwMWFjZmY1NzNkMzMxMmIzMjEyNS4uZDdlYWIxZDc5YTg1MWNiZjI0YmUxYjFlZDY1MzY3
NGEyYzllMDExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA3LTIwICBKYW1l
cyBEYXJwaW5pYW4gIDxqZGFycGluaWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbV2ViR0wy
XSBRdWVyeSBPYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjY5NDAKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAg
ICAgICAgUGFzc2VzIGNvbmZvcm1hbmNlIHRlc3RzIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9x
dWVyeS8qCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0ZVF1ZXJ5
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmlzUXVlcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVRdWVyeVRh
cmdldCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiZWdpblF1
ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmVuZFF1ZXJ5
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5KToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5UGFyYW1l
dGVyKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0Lmg6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFF1ZXJ5OjpkZWxldGVPYmplY3RJbXBsKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJH
TFF1ZXJ5Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxp
ZGF0ZVdlYkdMT2JqZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFw
aGljc0NvbnRleHRHTEFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpkZWxldGVRdWVyeSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6aXNRdWVyeSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TE9wZW5HTDo6Z2V0UXVlcnkpOgorCiAyMDIwLTA3LTIyICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1t
YXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjA1ODI2KTogbmFycm93
Tm9CcmVha1NwYWNlIChVKzIwMkYpIGhhcyB6ZXJvIHdpZHRoLCByZWdhcmRsZXNzIG9mIGZvbnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0Nv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dC5jcHAKaW5kZXggNmYxOGNkNzgwYTQzNWVjZGRlYTVlMGUzN2JlMjIxNjk5NTFlNWE2My4u
ZDY0ZjdlN2EzYzVmZWE1NTA2ZWQ0ZjM0YzYxOGE5OTIzYTkyMzAyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAg
LTE4NzQsNDQgKzE4NzQsNjQgQEAgUmVmUHRyPFdlYkdMUXVlcnk+IFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmNyZWF0ZVF1ZXJ5KCkKICAgICByZXR1cm4gcXVlcnk7CiB9CiAKLXZvaWQgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlUXVlcnkoV2ViR0xRdWVyeSopCit2b2lkIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OmRlbGV0ZVF1ZXJ5KFdlYkdMUXVlcnkqIHF1ZXJ5KQogewotICAgIExP
RyhXZWJHTCwgIltbIE5PVCBJTVBMRU1FTlRFRCBdXSBkZWxldGVRdWVyeSgpIik7CisgICAgaWYg
KGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhcXVlcnkgfHwgIXF1ZXJ5LT5vYmplY3QoKSB8
fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZGVsZXRlUXVlcnkiLCBxdWVyeSkpCisgICAgICAgIHJl
dHVybjsKKyAgICBpZiAocXVlcnktPnRhcmdldCgpICYmIHF1ZXJ5ID09IG1fYWN0aXZlUXVlcmll
cy5nZXQocXVlcnktPnRhcmdldCgpKSkgeworICAgICAgICBtX2NvbnRleHQtPmVuZFF1ZXJ5KHF1
ZXJ5LT50YXJnZXQoKSk7CisgICAgICAgIG1fYWN0aXZlUXVlcmllcy5yZW1vdmUocXVlcnktPnRh
cmdldCgpKTsKKyAgICB9CisgICAgZGVsZXRlT2JqZWN0KHF1ZXJ5KTsKIH0KIAotR0NHTGJvb2xl
YW4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNRdWVyeShXZWJHTFF1ZXJ5KikKK0dDR0xib29s
ZWFuIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmlzUXVlcnkoV2ViR0xRdWVyeSogcXVlcnkpCiB7
Ci0gICAgTE9HKFdlYkdMLCAiW1sgTk9UIElNUExFTUVOVEVEIF1dIGlzUXVlcnkoKSIpOwotICAg
IHJldHVybiBmYWxzZTsKKyAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICFxdWVy
eSB8fCAhcXVlcnktPm9iamVjdCgpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJpc1F1ZXJ5Iiwg
cXVlcnkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fY29udGV4dC0+aXNR
dWVyeShxdWVyeS0+b2JqZWN0KCkpOworfQorCitib29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OnZhbGlkYXRlUXVlcnlUYXJnZXQoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQ0dMZW51bSB0
YXJnZXQsIEdDR0xlbnVtKiB0YXJnZXRLZXkpCit7CisgICAgaWYgKHRhcmdldCAhPSBHcmFwaGlj
c0NvbnRleHRHTDo6QU5ZX1NBTVBMRVNfUEFTU0VEICYmIHRhcmdldCAhPSBHcmFwaGljc0NvbnRl
eHRHTDo6QU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElWRSAmJiB0YXJnZXQgIT0gR3JhcGhp
Y3NDb250ZXh0R0w6OlRSQU5TRk9STV9GRUVEQkFDS19QUklNSVRJVkVTX1dSSVRURU4pIHsKKyAg
ICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfRU5VTSwg
ZnVuY3Rpb25OYW1lLCAiaW52YWxpZCB0YXJnZXQiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICBpZiAodGFyZ2V0S2V5KQorICAgICAgICAqdGFyZ2V0S2V5ID0gKHRhcmdldCA9
PSBHcmFwaGljc0NvbnRleHRHTDo6QU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElWRSkgPyBH
cmFwaGljc0NvbnRleHRHTDo6QU5ZX1NBTVBMRVNfUEFTU0VEIDogdGFyZ2V0OworICAgIHJldHVy
biB0cnVlOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJlZ2luUXVlcnkoR0NH
TGVudW0gdGFyZ2V0LCBXZWJHTFF1ZXJ5JiBxdWVyeSkKIHsKLSAgICBpZiAoaXNDb250ZXh0TG9z
dE9yUGVuZGluZygpKQorICAgIEdDR0xlbnVtIHRhcmdldEtleTsKKyAgICBpZiAoaXNDb250ZXh0
TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJiZWdpblF1ZXJ5IiwgJnF1
ZXJ5KSB8fCAhdmFsaWRhdGVRdWVyeVRhcmdldCgiYmVnaW5RdWVyeSIsIHRhcmdldCwgJnRhcmdl
dEtleSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBBZGQgdmFsaWRhdGlvbiB0
byBwcmV2ZW50IGJhZCBjYWNoaW5nLgotCi0gICAgLy8gT25seSBvbmUgcXVlcnkgb2JqZWN0IGNh
biBiZSBhY3RpdmUgcGVyIHRhcmdldC4KLSAgICBhdXRvIHRhcmdldEtleSA9ICh0YXJnZXQgPT0g
R3JhcGhpY3NDb250ZXh0R0w6OkFOWV9TQU1QTEVTX1BBU1NFRF9DT05TRVJWQVRJVkUpID8gR3Jh
cGhpY3NDb250ZXh0R0w6OkFOWV9TQU1QTEVTX1BBU1NFRCA6IHRhcmdldDsKKyAgICBpZiAocXVl
cnkudGFyZ2V0KCkgJiYgcXVlcnkudGFyZ2V0KCkgIT0gdGFyZ2V0KSB7CisgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX09QRVJBVElPTiwgImJlZ2lu
UXVlcnkiLCAicXVlcnkgdHlwZSBkb2VzIG5vdCBtYXRjaCB0YXJnZXQiKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KIAogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9hY3RpdmVRdWVyaWVzLmFkZCh0
YXJnZXRLZXksIG1ha2VSZWZQdHIoJnF1ZXJ5KSk7CiAKKyAgICAvLyBPbmx5IG9uZSBxdWVyeSBv
YmplY3QgY2FuIGJlIGFjdGl2ZSBwZXIgdGFyZ2V0LgogICAgIGlmICghYWRkUmVzdWx0LmlzTmV3
RW50cnkpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklO
VkFMSURfT1BFUkFUSU9OLCAiYmVnaW5RdWVyeSIsICJRdWVyeSBvYmplY3Qgb2YgdGFyZ2V0IGlz
IGFscmVhZHkgYWN0aXZlIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBtX2NvbnRl
eHQtPmJlZ2luUXVlcnkodGFyZ2V0LCBxdWVyeS5vYmplY3QoKSk7CisgICAgcXVlcnkuc2V0VGFy
Z2V0KHRhcmdldCk7CiB9CiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZW5kUXVlcnko
R0NHTGVudW0gdGFyZ2V0KQogewotICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwg
IXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICBHQ0dMZW51bSB0YXJnZXRLZXk7CisgICAg
aWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
IHx8ICF2YWxpZGF0ZVF1ZXJ5VGFyZ2V0KCJiZWdpblF1ZXJ5IiwgdGFyZ2V0LCAmdGFyZ2V0S2V5
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byB0YXJnZXRLZXkgPSAodGFyZ2V0ID09IEdy
YXBoaWNzQ29udGV4dEdMOjpBTllfU0FNUExFU19QQVNTRURfQ09OU0VSVkFUSVZFKSA/IEdyYXBo
aWNzQ29udGV4dEdMOjpBTllfU0FNUExFU19QQVNTRUQgOiB0YXJnZXQ7Ci0KICAgICBhdXRvIHF1
ZXJ5ID0gbV9hY3RpdmVRdWVyaWVzLnRha2UodGFyZ2V0S2V5KTsKICAgICBpZiAoIXF1ZXJ5KSB7
CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX09Q
RVJBVElPTiwgImVuZFF1ZXJ5IiwgIlF1ZXJ5IG9iamVjdCBvZiB0YXJnZXQgaXMgbm90IGFjdGl2
ZSIpOwpAQCAtMTkyNiwyMiArMTk0NiwzNiBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmVuZFF1ZXJ5KEdDR0xlbnVtIHRhcmdldCkKICAgICB9KTsKIH0KIAotUmVmUHRyPFdlYkdMUXVl
cnk+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5KEdDR0xlbnVtLCBHQ0dMZW51bSkK
K1JlZlB0cjxXZWJHTFF1ZXJ5PiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRRdWVyeShHQ0dM
ZW51bSB0YXJnZXQsIEdDR0xlbnVtIHBuYW1lKQogewotICAgIExPRyhXZWJHTCwgIltbIE5PVCBJ
TVBMRU1FTlRFRCBdXSBnZXRxdWVyeSgpIik7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgR0NH
TGVudW0gdGFyZ2V0S2V5OworICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSB8fCAhdmFsaWRhdGVRdWVyeVRhcmdldCgiYmVnaW5RdWVy
eSIsIHRhcmdldCwgJnRhcmdldEtleSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
aWYgKHBuYW1lICE9IEdyYXBoaWNzQ29udGV4dEdMOjpDVVJSRU5UX1FVRVJZKSB7CisgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX0VOVU0sICJnZXRR
dWVyeSIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7CisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIH0KKworICAgIGF1dG8gcXVlcnkgPSBtX2FjdGl2ZVF1ZXJpZXMuZ2V0KHRhcmdldEtl
eSk7CisgICAgaWYgKCFxdWVyeSB8fCBxdWVyeS0+dGFyZ2V0KCkgIT0gdGFyZ2V0KQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gcXVlcnk7CiB9CiAKIFdlYkdMQW55IFdlYkdM
MlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdMUXVlcnkmIHF1ZXJ5LCBH
Q0dMZW51bSBwbmFtZSkKIHsKLSAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQorICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImdl
dFF1ZXJ5UGFyYW1ldGVyIiwgJnF1ZXJ5KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAg
ICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UVVFUllfUkVT
VUxUOgorICAgICAgICBpZiAoIXF1ZXJ5LmlzUmVzdWx0QXZhaWxhYmxlKCkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
R0w6OlFVRVJZX1JFU1VMVF9BVkFJTEFCTEU6CiAgICAgICAgIGlmICghcXVlcnkuaXNSZXN1bHRB
dmFpbGFibGUoKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9FTlVNLCAiZ2V0UXVlcnlQYXJhbWV0ZXIi
LCAiSW52YWxpZCBwbmFtZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDA0MjBkNzc2NjE4ZTcyZTM5ZTFmODU1Njg3
YjVlMzM0NThjNWQ4OGEuLmYzMmIyOTc4NGJhMDQ3N2EzYjYxNDYzNmZjNzVkNjg3MWFkMDA0NGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0Nv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdD
b250ZXh0LmgKQEAgLTI5Niw2ICsyOTYsNyBAQCBwcml2YXRlOgogICAgIFdlYkdMRnJhbWVidWZm
ZXIqIGdldFJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcoKSBmaW5hbDsKICAgICB2b2lkIHJlc3RvcmVD
dXJyZW50RnJhbWVidWZmZXIoKSBmaW5hbDsKICAgICBib29sIHZhbGlkYXRlTm9uRGVmYXVsdEZy
YW1lYnVmZmVyQXR0YWNobWVudChjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDR0xlbnVtIGF0
dGFjaG1lbnQpOworICAgIGJvb2wgdmFsaWRhdGVRdWVyeVRhcmdldChjb25zdCBjaGFyKiBmdW5j
dGlvbk5hbWUsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0qIHRhcmdldEtleSk7CiAKICAgICBH
Q0dMZW51bSBiYXNlSW50ZXJuYWxGb3JtYXRGcm9tSW50ZXJuYWxGb3JtYXQoR0NHTGVudW0gaW50
ZXJuYWxmb3JtYXQpOwogICAgIGJvb2wgaXNJbnRlZ2VyRm9ybWF0KEdDR0xlbnVtIGludGVybmFs
Zm9ybWF0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVl
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5jcHAKaW5kZXgg
NGYyNDE1MmJmNzIyODk3NGI3MDRhMWUwNzA1M2U1MDYzNzQzMDBjOC4uNGQwM2MyYWE0MmRhNWFk
ZGNjZDZkMGZhMzAzNDgwYTZhMzQ2ODRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xRdWVyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xRdWVyeS5jcHAKQEAgLTUxLDkgKzUxLDcgQEAgV2ViR0xRdWVyeTo6V2ViR0xRdWVyeShX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgpCiAKIHZvaWQgV2ViR0xRdWVyeTo6ZGVsZXRl
T2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dDNkLCBQbGF0Zm9ybUdM
T2JqZWN0IG9iamVjdCkKIHsKLSAgICBVTlVTRURfUEFSQU0oY29udGV4dDNkKTsKLSAgICBVTlVT
RURfUEFSQU0ob2JqZWN0KTsKLSAgICAvLyBGSVhNRTogQ2FsbCBkZWxldGVRdWVyeSBmcm9tIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMLgorICAgIGNvbnRleHQzZC0+ZGVsZXRlUXVlcnkob2JqZWN0
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xR
dWVyeS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5oCmluZGV4IDRi
ZDZmMWMwNDZmMTUzODhjYzU4MDFmNDE1NjFhNjkzZjMzYTNkOWYuLjFiYWU1MjUyOWYwMDcxMzk4
ODM5MTk5OTgzMTkyYmY4NmE5YTUyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUXVlcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFF1ZXJ5LmgKQEAgLTQwLDExICs0MCwxNSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG1ha2VSZXN1
bHRBdmFpbGFibGUoKSB7IG1faXNSZXN1bHRBdmFpbGFibGUgPSB0cnVlOyB9CiAKKyAgICB2b2lk
IHNldFRhcmdldChHQ0dMZW51bSB0YXJnZXQpIHsgbV90YXJnZXQgPSB0YXJnZXQ7IH0KKyAgICBH
Q0dMZW51bSB0YXJnZXQoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldDsgfQorCiBwcml2YXRlOgog
ICAgIGV4cGxpY2l0IFdlYkdMUXVlcnkoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwogICAg
IHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCosIFBsYXRmb3Jt
R0xPYmplY3QpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBtX2lzUmVzdWx0QXZhaWxhYmxlIHsgZmFs
c2UgfTsKKyAgICBHQ0dMZW51bSBtX3RhcmdldCB7IDAgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Fu
Z2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKaW5kZXggY2MxMGMxZTA0
MjAyNTMwNTUzNDRkNWYwMGUyMWI3ZDNhODhkZTRjZC4uMmU5MjcxN2ExYThmM2Q2NmIxNzEzNTIw
YTk0N2RhODA3MjlmMDUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKQEAg
LTIzNDYsMjIgKzIzNDYsMjIgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y2xlYXJC
dWZmZXJmaShHQ0dMZW51bSBidWZmZXIsIEdDR0xpbnQgZHJhd2J1ZmZlciwKIAogdm9pZCBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6ZGVsZXRlUXVlcnkoUGxhdGZvcm1HTE9iamVjdCBxdWVyeSkK
IHsKLSAgICBVTlVTRURfUEFSQU0ocXVlcnkpOworICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwor
ICAgIGdsOjpEZWxldGVRdWVyaWVzKDEsICZxdWVyeSk7CiB9CiAKIEdDR0xib29sZWFuIEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMOjppc1F1ZXJ5KFBsYXRmb3JtR0xPYmplY3QgcXVlcnkpCiB7Ci0g
ICAgVU5VU0VEX1BBUkFNKHF1ZXJ5KTsKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICBtYWtlQ29u
dGV4dEN1cnJlbnQoKTsKKyAgICByZXR1cm4gZ2w6OklzUXVlcnkocXVlcnkpOwogfQogCiBQbGF0
Zm9ybUdMT2JqZWN0IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpnZXRRdWVyeShHQ0dMZW51bSB0
YXJnZXQsIEdDR0xlbnVtIHBuYW1lKQogewotICAgIFVOVVNFRF9QQVJBTSh0YXJnZXQpOwotICAg
IFVOVVNFRF9QQVJBTShwbmFtZSk7Ci0KLSAgICByZXR1cm4gMDsKKyAgICBtYWtlQ29udGV4dEN1
cnJlbnQoKTsKKyAgICBHTGludCB2YWx1ZTsKKyAgICBnbDo6R2V0UXVlcnlpdih0YXJnZXQsIHBu
YW1lLCAmdmFsdWUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxQbGF0Zm9ybUdMT2JqZWN0Pih2
YWx1ZSk7CiB9CiAKIFBsYXRmb3JtR0xPYmplY3QgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNy
ZWF0ZVNhbXBsZXIoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDA5ZjgyNTI5MjU2NjdmYjEzYzEzZGQ3OTQ4OTQ0MjFjY2Ez
ZmI1OTMuLjA0ZTdlYTAwOWQwNjA3MGI2MmRmYzA2NTM1ZTdiYTJlZjM3NTJiOTEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAyMC0wNy0yMCAgSmFtZXMgRGFycGluaWFuICA8amRhcnBpbmlhbkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1dlYkdMMl0gUXVlcnkgT2JqZWN0cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2OTQwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgICogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3F1ZXJ5L3F1ZXJ5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy1leHBlY3RlZC50eHQ6CisKIDIw
MjAtMDctMjIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0aW5nLWlmcmFtZS1zY3JvbGwt
cmVwYWludC5odG1sIGZhaWxzIG9uIE1vamF2ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL21pc2MvZXhwYW5kby1sb3NzLTItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL21pc2MvZXhwYW5kby1sb3NzLTIt
ZXhwZWN0ZWQudHh0CmluZGV4IGIwNzU3NzE3NTY4ZTYzZjI0NDFjYTYzNGQyNjVkYmNmY2IwOGYy
YjMuLmZjMDI5NmFiNGVhZDUwNDg0YzQ4MzQzZmZmM2FjNTBhNjVmMDhlZTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9taXNjL2V4cGFuZG8tbG9zcy0y
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
bWlzYy9leHBhbmRvLWxvc3MtMi1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xF
IE1FU1NBR0U6IFR5cGVFcnJvcjogbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdp
bnN0YW5jZS5leHBhbmRvMScpCiBUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQg
YmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KIAogVGVzdDogLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL21pc2MvZXhwYW5kby1s
b3NzLTIuaHRtbApAQCAtMzI3LDggKzMyNiwxNiBAQCBUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvbWlzYy9leHBhbmRvLWxvc3MtMi5odG1sCiBbIDMy
MzogUEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDcp
OiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgogWyAzMjQ6
IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ3KTog
RXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgogWyAzMjU6IFBBU1Mg
XSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAz
MjY6IEZBSUwgXSBDVVJSRU5UX1FVRVJZIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQu
Ci1bIDMyNzogRkFJTCBdIENVUlJFTlRfUVVFUlkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBi
b3VuZC4KLVsgMzI4OiBGQUlMIF0gc3VjY2Vzc2Z1bGx5UGFyc2VkIHNob3VsZCBiZSB0cnVlIChv
ZiB0eXBlIGJvb2xlYW4pLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCi1bIEZB
SUwgXSAxNzkgZmFpbHVyZXMgcmVwb3J0ZWQKK1sgMzI2OiBQQVNTIF0gQ1VSUkVOVF9RVUVSWSBy
ZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgorWyAzMjc6IFBBU1MgXSBDVVJSRU5UX1FV
RVJZIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCitbIDMyODogRkFJTCBdIFF1ZXJ5
OiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCitbIDMyOTogRkFJ
TCBdIFF1ZXJ5OiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgorWyAzMzA6IFBBU1MgXSBRdWVyeTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgorWyAzMzE6IFBBU1MgXSBbb2JqZWN0IFdlYkdMUXVlcnldIGlzIGFuIGluc3Rh
bmNlIG9mIFdlYkdMUXVlcnkKK1sgMzMyOiBGQUlMIF0gUXVlcnk6IEV4cGVjdCBiYXNpYyBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KK1sgMzMzOiBGQUlMIF0gUXVlcnk6IEV4cGVjdCBz
dWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCitbIDMzNDogUEFTUyBdIFF1
ZXJ5OiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCitbIDMzNTog
UEFTUyBdIFtvYmplY3QgV2ViR0xRdWVyeV0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xRdWVyeQor
WyAzMzY6IFBBU1MgXSBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorWyBGQUlMIF0gMTgwIGZh
aWx1cmVzIHJlcG9ydGVkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi9xdWVyeS9xdWVyeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvcXVlcnkvcXVlcnktZXhwZWN0ZWQudHh0CmluZGV4IDAwNzg1OTgx
N2Y5ZWVjMDI3Zjk2NDY4NzY5ZmM4ZTgyNzMyZDcxYmUuLjE0YjFjMTMwMGJiODViZTg2Njg5ZmVm
Y2JlODFiOTE3Yjg5ZWI1MzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi9xdWVyeS9xdWVyeS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3F1ZXJ5L3F1ZXJ5LWV4cGVjdGVkLnR4dApAQCAtMSw0NCAr
MSw1IEBACiBUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4g
aWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KIAogVGVzdDogLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3F1ZXJ5L3F1ZXJ5Lmh0bWwKLVsgMTogUEFT
UyBdIFdlYkdMIGNvbnRleHQgZXhpc3RzCi1bIDI6IFBBU1MgXSBnbC5BTllfU0FNUExFU19QQVNT
RUQgaXMgMHg4QzJGCi1bIDM6IFBBU1MgXSBnbC5BTllfU0FNUExFU19QQVNTRURfQ09OU0VSVkFU
SVZFIGlzIDB4OEQ2QQotWyA0OiBQQVNTIF0gZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElW
RVNfV1JJVFRFTiBpcyAweDhDODgKLVsgNTogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiBBTllfU0FNUExFU19QQVNTRUQgcXVlcnkgc2hvdWxkIHN1Y2NlZWQK
LVsgNjogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBBTllf
U0FNUExFU19QQVNTRUQgcXVlcnkgc2hvdWxkIHN1Y2NlZWQKLVsgNzogUEFTUyBdIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBBTllfU0FNUExFU19QQVNTRUQgcXVlcnkg
c2hvdWxkIHN1Y2NlZWQKLVsgODogUEFTUyBdIGdsLmdldFF1ZXJ5KGdsLkFOWV9TQU1QTEVTX1BB
U1NFRCwgZ2wuQ1VSUkVOVF9RVUVSWSkgaXMgbnVsbAotWyA5OiBQQVNTIF0gZ2wuZ2V0UXVlcnko
Z2wuQU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElWRSwgZ2wuQ1VSUkVOVF9RVUVSWSkgaXMg
bnVsbAotWyAxMDogUEFTUyBdIGdsLmdldFF1ZXJ5KGdsLlRSQU5TRk9STV9GRUVEQkFDS19QUklN
SVRJVkVTX1dSSVRURU4sIGdsLkNVUlJFTlRfUVVFUlkpIGlzIG51bGwKLVsgMTE6IFBBU1MgXSBn
bC5nZXRRdWVyeShnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOLCBnbC5D
VVJSRU5UX1FVRVJZKSBpcyBudWxsCi1bIDEyOiBGQUlMIF0gZ2wuaXNRdWVyeShxMSkgc2hvdWxk
IGJlIHRydWUuIFdhcyBmYWxzZS4KLVsgMTM6IEZBSUwgXSBnbC5nZXRRdWVyeShnbC5UUkFOU0ZP
Uk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOLCBnbC5DVVJSRU5UX1FVRVJZKSBzaG91bGQg
YmUgW29iamVjdCBXZWJHTFF1ZXJ5XS4gV2FzIG51bGwuCi1bIDE0OiBQQVNTIF0gZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IENhbid0IGJlZ2luIGEgcXVl
cnkgd2hpbGUgb25lIGlzIGFscmVhZHkgYWN0aXZlCi1bIDE1OiBGQUlMIF0gZ2wuZ2V0UXVlcnko
Z2wuVFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiwgZ2wuQ1VSUkVOVF9RVUVS
WSkgc2hvdWxkIGJlIFtvYmplY3QgV2ViR0xRdWVyeV0uIFdhcyBudWxsLgotWyAxNjogUEFTUyBd
IGdsLmdldFF1ZXJ5KGdsLlRSQU5TRk9STV9GRUVEQkFDS19QUklNSVRJVkVTX1dSSVRURU4sIGds
LkNVUlJFTlRfUVVFUlkpIGlzIG51bGwKLVsgMTc6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogQ2FuJ3QgZW5kIGEgcXVlcnkgaWYgb25lIGlz
IG5vdCBhY3RpdmUKLVsgMTg6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfT1BFUkFUSU9OIDogQ2FuJ3QgcmUtdXNlIHF1ZXJ5IG9iamVjdHMgZm9yIGluY29tcGF0
aWJsZSB0YXJnZXRzCi1bIDE5OiBQQVNTIF0gZ2wuZ2V0UXVlcnkoZ2wuQU5ZX1NBTVBMRVNfUEFT
U0VELCBnbC5DVVJSRU5UX1FVRVJZKSBpcyBudWxsCi1bIDIwOiBGQUlMIF0gZ2wuZ2V0UXVlcnko
Z2wuQU5ZX1NBTVBMRVNfUEFTU0VELCBnbC5DVVJSRU5UX1FVRVJZKSBzaG91bGQgYmUgW29iamVj
dCBXZWJHTFF1ZXJ5XS4gV2FzIG51bGwuCi1bIDIxOiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IENhbid0IGNhbGwgYmVnaW5RdWVyeSBvbiBh
biBhbHJlYWR5IGFjdGl2ZSBxdWVyeSBvYmplY3QKLVsgMjI6IFBBU1MgXSBnbC5nZXRRdWVyeShn
bC5BTllfU0FNUExFU19QQVNTRURfQ09OU0VSVkFUSVZFLCBnbC5DVVJSRU5UX1FVRVJZKSBpcyBu
dWxsCi1bIDIzOiBGQUlMIF0gZ2V0RXJyb3IgZXhwZWN0ZWQ6IE5PX0VSUk9SLiBXYXMgSU5WQUxJ
RF9PUEVSQVRJT04gOiBTaG91bGQgYmUgYWJsZSB0byBoYXZlIG11bHRpcGxlIHVucmVsYXRlZCBx
dWVyeSB0eXBlcyBhY3RpdmUgYXQgb25jZQotWyAyNDogRkFJTCBdIGdsLmdldFF1ZXJ5KGdsLlRS
QU5TRk9STV9GRUVEQkFDS19QUklNSVRJVkVTX1dSSVRURU4sIGdsLkNVUlJFTlRfUVVFUlkpIHNo
b3VsZCBiZSBbb2JqZWN0IFdlYkdMUXVlcnldLiBXYXMgbnVsbC4KLVsgMjU6IFBBU1MgXSBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogZGVsZXRpbmcgcXVlcmllcyBzaG91
bGQgbm90IHByb2R1Y2UgZXJyb3JzCi1bIDI2OiBQQVNTIF0gZ2wuZ2V0UXVlcnkoZ2wuVFJBTlNG
T1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiwgZ2wuQ1VSUkVOVF9RVUVSWSkgaXMgbnVs
bAotWyAyNzogUEFTUyBdIGdsLmdldFF1ZXJ5KGdsLkFOWV9TQU1QTEVTX1BBU1NFRF9DT05TRVJW
QVRJVkUsIGdsLkNVUlJFTlRfUVVFUlkpIGlzIG51bGwKLVsgMjg6IFBBU1MgXSBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogYmVnaW5uaW5nIGEgZGVsZXRl
ZCBxdWVyeSBvYmplY3QKLVsgMjk6IFBBU1MgXSBnbC5nZXRRdWVyeShnbC5UUkFOU0ZPUk1fRkVF
REJBQ0tfUFJJTUlUSVZFU19XUklUVEVOLCBnbC5DVVJSRU5UX1FVRVJZKSBpcyBudWxsCi1bIDMw
OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IHNob3VsZCBo
YXZlIG5vIHByZXZpb3VzIGVycm9ycwotWyAzMTogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiBjcmVhdGVRdWVyeSBzaG91bGQgbm90IHNldCBhbiBlcnJvcgot
WyAzMjogUEFTUyBdIHExIGlzIG5vbi1udWxsLgotWyAzMzogUEFTUyBdIGdsLmlzUXVlcnkocTEp
IGlzIGZhbHNlCi1bIDM0OiBGQUlMIF0gZ2wuaXNRdWVyeShxMSkgc2hvdWxkIGJlIHRydWUuIFdh
cyBmYWxzZS4KLVsgMzU6IEZBSUwgXSBnbC5pc1F1ZXJ5KHExKSBzaG91bGQgYmUgdHJ1ZS4gV2Fz
IGZhbHNlLgotWyAzNjogUEFTUyBdIGdsLmlzUXVlcnkocTEpIGlzIGZhbHNlCi1bIDM3OiBQQVNT
IF0gZ2wuaXNRdWVyeShudWxsKSBpcyBmYWxzZQotWyAzODogRkFJTCBdIGdldEVycm9yIGV4cGVj
dGVkOiBOT19FUlJPUi4gV2FzIElOVkFMSURfT1BFUkFUSU9OIDogdGhlcmUgc2hvdWxkIGJlIG5v
IGVycm9ycwotWyAzOTogUEFTUyBdIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi1bIEZBSUwg
XSA5IGZhaWx1cmVzIHJlcG9ydGVkCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9zdGF0ZS9nbC1vYmpl
Y3QtZ2V0LWNhbGxzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLWV4cGVjdGVkLnR4dAppbmRleCAxYjI3
MzE4YTYxYTcwMDM4YmMwNjk5ZTY0NDhkMmExOGVkMWIzMDU3Li5hZmQwOGIyMTQ5ZTYyOTQ0ZTcw
MzkzMmE2YWNkZjVjYzI2NTcyNGMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3N0YXRlL2dsLW9iamVjdC1n
ZXQtY2FsbHMtZXhwZWN0ZWQudHh0CkBAIC0zMTMsNyArMzEzLDcgQEAgVGVzdDogLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3N0YXRlL2dsLW9iamVjdC1nZXQt
Y2FsbHMuaHQKIFsgMzEwOiBQQVNTIF0gZ2wuZ2V0U3luY1BhcmFtZXRlcihzeW5jLCBnbC5TWU5D
X0NPTkRJVElPTikgaXMgZ2wuU1lOQ19HUFVfQ09NTUFORFNfQ09NUExFVEUKIFsgMzExOiBQQVNT
IF0gZ2wuZ2V0U3luY1BhcmFtZXRlcihzeW5jLCBnbC5TWU5DX0ZMQUdTKSBpcyAwCiBbIDMxMjog
UEFTUyBdIGdldFN5bmNQYXJhbWV0ZXIgY29ycmVjdGx5IGhhbmRsZWQgaW52YWxpZCBwbmFtZSBl
bnVtcwotWyAzMTM6IEZBSUwgXSBnbC5nZXRRdWVyeVBhcmFtZXRlcihxdWVyeSwgZ2wuUVVFUllf
UkVTVUxUX0FWQUlMQUJMRSkgc2hvdWxkIGJlIGZhbHNlIChvZiB0eXBlIGJvb2xlYW4pLiBXYXMg
MCAob2YgdHlwZSBudW1iZXIpLgorWyAzMTM6IFBBU1MgXSBnbC5nZXRRdWVyeVBhcmFtZXRlcihx
dWVyeSwgZ2wuUVVFUllfUkVTVUxUX0FWQUlMQUJMRSkgaXMgZmFsc2UKIFsgMzE0OiBQQVNTIF0g
Z2V0UXVlcnlQYXJhbWV0ZXIgY29ycmVjdGx5IGhhbmRsZWQgaW52YWxpZCBwbmFtZSBlbnVtcwog
WyAzMTU6IFBBU1MgXSBnbC5nZXRTaGFkZXJQYXJhbWV0ZXIodmVydFNoYWRlciwgZ2wuQ09NUElM
RV9TVEFUVVMpIGlzIHRydWUKIFsgMzE2OiBQQVNTIF0gZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKGZy
YWdTaGFkZXIsIGdsLkNPTVBJTEVfU1RBVFVTKSBpcyB0cnVlCkBAIC0zNjQsNSArMzY0LDUgQEAg
VGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3N0YXRl
L2dsLW9iamVjdC1nZXQtY2FsbHMuaHQKIFsgMzYxOiBQQVNTIF0gZ2V0QWN0aXZlVW5pZm9ybUJs
b2NrUGFyYW1ldGVyIGNvcnJlY3RseSBoYW5kbGVkIGludmFsaWQgcG5hbWUgZW51bXMKIFsgMzYy
OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6CiBbIDM2Mzog
UEFTUyBdIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi1bIEZBSUwgXSAzOCBmYWlsdXJlcyBy
ZXBvcnRlZAorWyBGQUlMIF0gMzcgZmFpbHVyZXMgcmVwb3J0ZWQKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>