<?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>214835</bug_id>
          
          <creation_ts>2020-07-27 10:54:23 -0700</creation_ts>
          <short_desc>Update release*() functions on ExceptionOr() to always release the member</short_desc>
          <delta_ts>2020-07-27 17:06:26 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=214746</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jsbell</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1675305</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-27 10:54:23 -0700</bug_when>
    <thetext>Update release*() functions on ExceptionOr() to always release the member, instead of simply doing a cast and leaving it up to the call site.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675310</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-27 11:01:55 -0700</bug_when>
    <thetext>In addition to this good change, I still think we might *also* want to add an assertion to make sure we never double-release.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675344</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-27 12:13:02 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #1)
&gt; In addition to this good change, I still think we might *also* want to add
&gt; an assertion to make sure we never double-release.

Working on it. I ran the tests and it actually found a bug :S</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675348</commentid>
    <comment_count>3</comment_count>
      <attachid>405302</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-27 12:22:47 -0700</bug_when>
    <thetext>Created attachment 405302
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675358</commentid>
    <comment_count>4</comment_count>
      <attachid>405302</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-27 13:00:57 -0700</bug_when>
    <thetext>Comment on attachment 405302
Patch

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

&gt; Source/WebCore/dom/ExceptionOr.h:140
&gt; +    ASSERT(!m_wasReleased);
&gt; +#if ASSERT_ENABLED
&gt; +    m_wasReleased = true;
&gt; +#endif

I have a horrible/great idea:

    ASSERT(!std::exchnage(m_wasReleased, true));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675365</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-27 13:06:22 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 405302 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=405302&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/ExceptionOr.h:140
&gt; &gt; +    ASSERT(!m_wasReleased);
&gt; &gt; +#if ASSERT_ENABLED
&gt; &gt; +    m_wasReleased = true;
&gt; &gt; +#endif
&gt; 
&gt; I have a horrible/great idea:
&gt; 
&gt;     ASSERT(!std::exchnage(m_wasReleased, true));

Not super readable but this is way more concise and avoid the #if. I&apos;ll do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675368</commentid>
    <comment_count>6</comment_count>
      <attachid>405305</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-27 13:07:25 -0700</bug_when>
    <thetext>Created attachment 405305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675370</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-27 13:07:41 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; Not super readable but this is way more concise and avoid the #if. I&apos;ll do
&gt; it.

Glad you decided to use it. I guessed that you would see both the horrible side and the great side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675392</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-27 14:08:38 -0700</bug_when>
    <thetext>Bots are not happy. Looks like this may have found another bug in IDB.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675395</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-27 14:21:52 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #8)
&gt; Bots are not happy. Looks like this may have found another bug in IDB.

Or maybe not. I see the same IDB failures on another patch.. Tree is likely red.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675398</commentid>
    <comment_count>10</comment_count>
      <attachid>405313</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-27 14:54:06 -0700</bug_when>
    <thetext>Created attachment 405313
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675470</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-27 17:05:10 -0700</bug_when>
    <thetext>Committed r264958: &lt;https://trac.webkit.org/changeset/264958&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 405313.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675472</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-27 17:06:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/66189892&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405302</attachid>
            <date>2020-07-27 12:22:47 -0700</date>
            <delta_ts>2020-07-27 13:07:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214835-20200727122246.patch</filename>
            <type>text/plain</type>
            <size>5432</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0OTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWFmNDI1MDI1OTY5NzE3
ZDM0OWE3YzY5NjI3OTMwNmM1ZTNiMmQ4MS4uYThjODA1MjljYjVmNjA3MWYwZDU3ODQyYTRkYjZl
NjA5MDk3YWM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA3LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIHJlbGVhc2UqKCkg
ZnVuY3Rpb25zIG9uIEV4Y2VwdGlvbk9yKCkgdG8gYWx3YXlzIHJlbGVhc2UgdGhlIG1lbWJlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0ODM1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHJl
bGVhc2UqKCkgZnVuY3Rpb25zIG9uIEV4Y2VwdGlvbk9yKCkgdG8gYWx3YXlzIHJlbGVhc2UgdGhl
IG1lbWJlciBpbnN0ZWFkIG9mCisgICAgICAgIHNpbXBseSBkb2luZyBhIGNhc3QgdG8gYW4gcnZh
bHVlIHJlZmVyZW5jZSBhbmQgbGVhdmluZyBpdCB1cCB0byB0aGUgY2FsbGVyLgorCisgICAgICAg
IEFsc28gYWRkIGFzc2VydGlvbnMgdG8gbWFrZSBzdXJlIHdlIGRvbid0IHJlbGVhc2UgdGhvc2Ug
bWVtYmVycyBtb3JlIHRoYW4gb25jZSBhbmQgdG8KKyAgICAgICAgbWFrZSBzdXJlIHdlIGRvbid0
IHRyeSB0byBhY2Nlc3MgdGhlIG1lbWJlciBhZnRlciByZWxlYXNpbmcgaXQuCisKKyAgICAgICAg
KiBkb20vRXhjZXB0aW9uT3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPFJldHVy
blR5cGU+OjpleGNlcHRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RXhjZXB0aW9uT3I8
UmV0dXJuVHlwZT46OnJlbGVhc2VFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RXhjZXB0
aW9uT3I8UmV0dXJuVHlwZT46OnJldHVyblZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpyZWxlYXNlUmV0dXJuVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6Pjo6cmVsZWFzZUV4Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFeGNlcHRp
b25Pcjx2b2lkPjo6ZXhjZXB0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2VwdGlv
bk9yPHZvaWQ+OjpyZWxlYXNlRXhjZXB0aW9uKToKKworICAgICAgICAqIGRvbS9UcmVlV2Fsa2Vy
LmNwcDoKKyAgICAgICAgRml4IGJ1ZyBmb3VuZCBieSBuZXcgYXNzZXJ0aW9uLgorCiAyMDIwLTA3
LTI1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNj
cm9sbCBTbmFwIGJyb2tlbiB3aGVuIHVzaW5nIFJUTCBsYXlvdXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Pci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlv
bk9yLmgKaW5kZXggYzFjYjhlYTU5YWVjMTczNWU0MjY3YWFjY2ZjOTdjNmE3M2UzZWU5ZS4uZjQ0
NGZlY2E5NzgwZDMyMjUzODEwN2ZmOTk4MmE5ZTM2MjljMGU3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0V4Y2VwdGlvbk9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2Vw
dGlvbk9yLmgKQEAgLTQyLDEyICs0MiwxNSBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc0V4Y2Vw
dGlvbigpIGNvbnN0OwogICAgIGNvbnN0IEV4Y2VwdGlvbiYgZXhjZXB0aW9uKCkgY29uc3Q7Ci0g
ICAgRXhjZXB0aW9uJiYgcmVsZWFzZUV4Y2VwdGlvbigpOworICAgIEV4Y2VwdGlvbiByZWxlYXNl
RXhjZXB0aW9uKCk7CiAgICAgY29uc3QgUmV0dXJuVHlwZSYgcmV0dXJuVmFsdWUoKSBjb25zdDsK
LSAgICBSZXR1cm5UeXBlJiYgcmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgUmV0dXJuVHlwZSBy
ZWxlYXNlUmV0dXJuVmFsdWUoKTsKICAgICAKIHByaXZhdGU6CiAgICAgRXhwZWN0ZWQ8UmV0dXJu
VHlwZSwgRXhjZXB0aW9uPiBtX3ZhbHVlOworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgYm9vbCBt
X3dhc1JlbGVhc2VkIHsgZmFsc2UgfTsKKyNlbmRpZgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUg
VD4gY2xhc3MgRXhjZXB0aW9uT3I8VCY+IHsKQEAgLTYwLDcgKzYzLDcgQEAgcHVibGljOgogCiAg
ICAgYm9vbCBoYXNFeGNlcHRpb24oKSBjb25zdDsKICAgICBjb25zdCBFeGNlcHRpb24mIGV4Y2Vw
dGlvbigpIGNvbnN0OwotICAgIEV4Y2VwdGlvbiYmIHJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICBF
eGNlcHRpb24gcmVsZWFzZUV4Y2VwdGlvbigpOwogICAgIGNvbnN0IFJldHVyblJlZmVyZW5jZVR5
cGUmIHJldHVyblZhbHVlKCkgY29uc3Q7CiAgICAgUmV0dXJuUmVmZXJlbmNlVHlwZSYgcmVsZWFz
ZVJldHVyblZhbHVlKCk7CiAgICAgCkBAIC03NywxMCArODAsMTMgQEAgcHVibGljOgogCiAgICAg
Ym9vbCBoYXNFeGNlcHRpb24oKSBjb25zdDsKICAgICBjb25zdCBFeGNlcHRpb24mIGV4Y2VwdGlv
bigpIGNvbnN0OwotICAgIEV4Y2VwdGlvbiYmIHJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICBFeGNl
cHRpb24gcmVsZWFzZUV4Y2VwdGlvbigpOwogCiBwcml2YXRlOgogICAgIEV4cGVjdGVkPHZvaWQs
IEV4Y2VwdGlvbj4gbV92YWx1ZTsKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIGJvb2wgbV93YXNS
ZWxlYXNlZCB7IGZhbHNlIH07CisjZW5kaWYKIH07CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IGlzb2xh
dGVkQ29weShFeGNlcHRpb25Pcjx2b2lkPiYmKTsKQEAgLTEwNywyMSArMTEzLDMxIEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFJldHVyblR5cGU+IGlubGluZSBib29sIEV4Y2VwdGlvbk9yPFJldHVyblR5
cGU+OjpoYXNFeGNlcHRpb24oCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFJldHVyblR5cGU+IGlubGlu
ZSBjb25zdCBFeGNlcHRpb24mIEV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpleGNlcHRpb24oKSBj
b25zdAogeworICAgIEFTU0VSVCghbV93YXNSZWxlYXNlZCk7CiAgICAgcmV0dXJuIG1fdmFsdWUu
ZXJyb3IoKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgUmV0dXJuVHlwZT4gaW5saW5lIEV4Y2Vw
dGlvbiYmIEV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpyZWxlYXNlRXhjZXB0aW9uKCkKK3RlbXBs
YXRlPHR5cGVuYW1lIFJldHVyblR5cGU+IGlubGluZSBFeGNlcHRpb24gRXhjZXB0aW9uT3I8UmV0
dXJuVHlwZT46OnJlbGVhc2VFeGNlcHRpb24oKQogeworICAgIEFTU0VSVCghbV93YXNSZWxlYXNl
ZCk7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBtX3dhc1JlbGVhc2VkID0gdHJ1ZTsKKyNlbmRp
ZgogICAgIHJldHVybiBXVEZNb3ZlKG1fdmFsdWUuZXJyb3IoKSk7CiB9CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFJldHVyblR5cGU+IGlubGluZSBjb25zdCBSZXR1cm5UeXBlJiBFeGNlcHRpb25PcjxS
ZXR1cm5UeXBlPjo6cmV0dXJuVmFsdWUoKSBjb25zdAogeworICAgIEFTU0VSVCghbV93YXNSZWxl
YXNlZCk7CiAgICAgcmV0dXJuIG1fdmFsdWUudmFsdWUoKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5h
bWUgUmV0dXJuVHlwZT4gaW5saW5lIFJldHVyblR5cGUmJiBFeGNlcHRpb25PcjxSZXR1cm5UeXBl
Pjo6cmVsZWFzZVJldHVyblZhbHVlKCkKK3RlbXBsYXRlPHR5cGVuYW1lIFJldHVyblR5cGU+IGlu
bGluZSBSZXR1cm5UeXBlIEV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpyZWxlYXNlUmV0dXJuVmFs
dWUoKQogeworICAgIEFTU0VSVCghbV93YXNSZWxlYXNlZCk7CisjaWYgQVNTRVJUX0VOQUJMRUQK
KyAgICBtX3dhc1JlbGVhc2VkID0gdHJ1ZTsKKyNlbmRpZgogICAgIHJldHVybiBXVEZNb3ZlKG1f
dmFsdWUudmFsdWUoKSk7CiB9CiAKQEAgLTE0NSw3ICsxNjEsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBSZXR1cm5SZWZlcmVuY2VUeXBlPiBpbmxpbmUgY29uc3QgRXhjZXB0aW9uJiBFeGNlcHRpb25P
cjxSZXR1cgogICAgIHJldHVybiBtX3ZhbHVlLmV4Y2VwdGlvbigpOwogfQogCi10ZW1wbGF0ZTx0
eXBlbmFtZSBSZXR1cm5SZWZlcmVuY2VUeXBlPiBpbmxpbmUgRXhjZXB0aW9uJiYgRXhjZXB0aW9u
T3I8UmV0dXJuUmVmZXJlbmNlVHlwZSY+OjpyZWxlYXNlRXhjZXB0aW9uKCkKK3RlbXBsYXRlPHR5
cGVuYW1lIFJldHVyblJlZmVyZW5jZVR5cGU+IGlubGluZSBFeGNlcHRpb24gRXhjZXB0aW9uT3I8
UmV0dXJuUmVmZXJlbmNlVHlwZSY+OjpyZWxlYXNlRXhjZXB0aW9uKCkKIHsKICAgICByZXR1cm4g
bV92YWx1ZS5yZWxlYXNlRXhjZXB0aW9uKCk7CiB9CkBAIC0xNzIsMTEgKzE4OCwxNiBAQCBpbmxp
bmUgYm9vbCBFeGNlcHRpb25Pcjx2b2lkPjo6aGFzRXhjZXB0aW9uKCkgY29uc3QKIAogaW5saW5l
IGNvbnN0IEV4Y2VwdGlvbiYgRXhjZXB0aW9uT3I8dm9pZD46OmV4Y2VwdGlvbigpIGNvbnN0CiB7
CisgICAgQVNTRVJUKCFtX3dhc1JlbGVhc2VkKTsKICAgICByZXR1cm4gbV92YWx1ZS5lcnJvcigp
OwogfQogCi1pbmxpbmUgRXhjZXB0aW9uJiYgRXhjZXB0aW9uT3I8dm9pZD46OnJlbGVhc2VFeGNl
cHRpb24oKQoraW5saW5lIEV4Y2VwdGlvbiBFeGNlcHRpb25Pcjx2b2lkPjo6cmVsZWFzZUV4Y2Vw
dGlvbigpCiB7CisgICAgQVNTRVJUKCFtX3dhc1JlbGVhc2VkKTsKKyNpZiBBU1NFUlRfRU5BQkxF
RAorICAgIG1fd2FzUmVsZWFzZWQgPSB0cnVlOworI2VuZGlmCiAgICAgcmV0dXJuIFdURk1vdmUo
bV92YWx1ZS5lcnJvcigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVXYWxrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwCmluZGV4IGY0
ZWQ0MTJiY2E5YmI3NjJiNTA2YTI3ZTNhN2UwZDllY2QxZGVmZjAuLjcxNWRkZmIxZWI3NzkzNzMx
Y2Y4YTc5MDkwZTgxMzcxYjZhNzkxY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlV2Fsa2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAKQEAg
LTIzOSw3ICsyMzksNyBAQCBDaGlsZHJlbjoKICAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5oYXNF
eGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2Vw
dGlvbigpOwogCi0gICAgICAgIGlmIChmaWx0ZXJSZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkg
PT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKKyAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5y
ZXR1cm5WYWx1ZSgpID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQpCiAgICAgICAgICAgICBy
ZXR1cm4gc2V0Q3VycmVudChub2RlLnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICBpZiAoZmls
dGVyUmVzdWx0LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVCkKICAg
ICAgICAgICAgIGJyZWFrOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405305</attachid>
            <date>2020-07-27 13:07:25 -0700</date>
            <delta_ts>2020-07-27 14:54:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214835-20200727130725.patch</filename>
            <type>text/plain</type>
            <size>5330</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0OTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWFmNDI1MDI1OTY5NzE3
ZDM0OWE3YzY5NjI3OTMwNmM1ZTNiMmQ4MS4uYThjODA1MjljYjVmNjA3MWYwZDU3ODQyYTRkYjZl
NjA5MDk3YWM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA3LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIHJlbGVhc2UqKCkg
ZnVuY3Rpb25zIG9uIEV4Y2VwdGlvbk9yKCkgdG8gYWx3YXlzIHJlbGVhc2UgdGhlIG1lbWJlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0ODM1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHJl
bGVhc2UqKCkgZnVuY3Rpb25zIG9uIEV4Y2VwdGlvbk9yKCkgdG8gYWx3YXlzIHJlbGVhc2UgdGhl
IG1lbWJlciBpbnN0ZWFkIG9mCisgICAgICAgIHNpbXBseSBkb2luZyBhIGNhc3QgdG8gYW4gcnZh
bHVlIHJlZmVyZW5jZSBhbmQgbGVhdmluZyBpdCB1cCB0byB0aGUgY2FsbGVyLgorCisgICAgICAg
IEFsc28gYWRkIGFzc2VydGlvbnMgdG8gbWFrZSBzdXJlIHdlIGRvbid0IHJlbGVhc2UgdGhvc2Ug
bWVtYmVycyBtb3JlIHRoYW4gb25jZSBhbmQgdG8KKyAgICAgICAgbWFrZSBzdXJlIHdlIGRvbid0
IHRyeSB0byBhY2Nlc3MgdGhlIG1lbWJlciBhZnRlciByZWxlYXNpbmcgaXQuCisKKyAgICAgICAg
KiBkb20vRXhjZXB0aW9uT3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPFJldHVy
blR5cGU+OjpleGNlcHRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RXhjZXB0aW9uT3I8
UmV0dXJuVHlwZT46OnJlbGVhc2VFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RXhjZXB0
aW9uT3I8UmV0dXJuVHlwZT46OnJldHVyblZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpyZWxlYXNlUmV0dXJuVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6Pjo6cmVsZWFzZUV4Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFeGNlcHRp
b25Pcjx2b2lkPjo6ZXhjZXB0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2VwdGlv
bk9yPHZvaWQ+OjpyZWxlYXNlRXhjZXB0aW9uKToKKworICAgICAgICAqIGRvbS9UcmVlV2Fsa2Vy
LmNwcDoKKyAgICAgICAgRml4IGJ1ZyBmb3VuZCBieSBuZXcgYXNzZXJ0aW9uLgorCiAyMDIwLTA3
LTI1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNj
cm9sbCBTbmFwIGJyb2tlbiB3aGVuIHVzaW5nIFJUTCBsYXlvdXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Pci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlv
bk9yLmgKaW5kZXggYzFjYjhlYTU5YWVjMTczNWU0MjY3YWFjY2ZjOTdjNmE3M2UzZWU5ZS4uNGE1
MzQzNjE5NTAwYzEyZDc5OWI3YmUwNzRjN2Y3OGI2YmRiNTU5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0V4Y2VwdGlvbk9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2Vw
dGlvbk9yLmgKQEAgLTQyLDEyICs0MiwxNSBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc0V4Y2Vw
dGlvbigpIGNvbnN0OwogICAgIGNvbnN0IEV4Y2VwdGlvbiYgZXhjZXB0aW9uKCkgY29uc3Q7Ci0g
ICAgRXhjZXB0aW9uJiYgcmVsZWFzZUV4Y2VwdGlvbigpOworICAgIEV4Y2VwdGlvbiByZWxlYXNl
RXhjZXB0aW9uKCk7CiAgICAgY29uc3QgUmV0dXJuVHlwZSYgcmV0dXJuVmFsdWUoKSBjb25zdDsK
LSAgICBSZXR1cm5UeXBlJiYgcmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgUmV0dXJuVHlwZSBy
ZWxlYXNlUmV0dXJuVmFsdWUoKTsKICAgICAKIHByaXZhdGU6CiAgICAgRXhwZWN0ZWQ8UmV0dXJu
VHlwZSwgRXhjZXB0aW9uPiBtX3ZhbHVlOworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgYm9vbCBt
X3dhc1JlbGVhc2VkIHsgZmFsc2UgfTsKKyNlbmRpZgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUg
VD4gY2xhc3MgRXhjZXB0aW9uT3I8VCY+IHsKQEAgLTYwLDcgKzYzLDcgQEAgcHVibGljOgogCiAg
ICAgYm9vbCBoYXNFeGNlcHRpb24oKSBjb25zdDsKICAgICBjb25zdCBFeGNlcHRpb24mIGV4Y2Vw
dGlvbigpIGNvbnN0OwotICAgIEV4Y2VwdGlvbiYmIHJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICBF
eGNlcHRpb24gcmVsZWFzZUV4Y2VwdGlvbigpOwogICAgIGNvbnN0IFJldHVyblJlZmVyZW5jZVR5
cGUmIHJldHVyblZhbHVlKCkgY29uc3Q7CiAgICAgUmV0dXJuUmVmZXJlbmNlVHlwZSYgcmVsZWFz
ZVJldHVyblZhbHVlKCk7CiAgICAgCkBAIC03NywxMCArODAsMTMgQEAgcHVibGljOgogCiAgICAg
Ym9vbCBoYXNFeGNlcHRpb24oKSBjb25zdDsKICAgICBjb25zdCBFeGNlcHRpb24mIGV4Y2VwdGlv
bigpIGNvbnN0OwotICAgIEV4Y2VwdGlvbiYmIHJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICBFeGNl
cHRpb24gcmVsZWFzZUV4Y2VwdGlvbigpOwogCiBwcml2YXRlOgogICAgIEV4cGVjdGVkPHZvaWQs
IEV4Y2VwdGlvbj4gbV92YWx1ZTsKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIGJvb2wgbV93YXNS
ZWxlYXNlZCB7IGZhbHNlIH07CisjZW5kaWYKIH07CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IGlzb2xh
dGVkQ29weShFeGNlcHRpb25Pcjx2b2lkPiYmKTsKQEAgLTEwNywyMSArMTEzLDI1IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFJldHVyblR5cGU+IGlubGluZSBib29sIEV4Y2VwdGlvbk9yPFJldHVyblR5
cGU+OjpoYXNFeGNlcHRpb24oCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFJldHVyblR5cGU+IGlubGlu
ZSBjb25zdCBFeGNlcHRpb24mIEV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpleGNlcHRpb24oKSBj
b25zdAogeworICAgIEFTU0VSVCghbV93YXNSZWxlYXNlZCk7CiAgICAgcmV0dXJuIG1fdmFsdWUu
ZXJyb3IoKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgUmV0dXJuVHlwZT4gaW5saW5lIEV4Y2Vw
dGlvbiYmIEV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpyZWxlYXNlRXhjZXB0aW9uKCkKK3RlbXBs
YXRlPHR5cGVuYW1lIFJldHVyblR5cGU+IGlubGluZSBFeGNlcHRpb24gRXhjZXB0aW9uT3I8UmV0
dXJuVHlwZT46OnJlbGVhc2VFeGNlcHRpb24oKQogeworICAgIEFTU0VSVCghc3RkOjpleGNoYW5n
ZShtX3dhc1JlbGVhc2VkLCB0cnVlKSk7CiAgICAgcmV0dXJuIFdURk1vdmUobV92YWx1ZS5lcnJv
cigpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgUmV0dXJuVHlwZT4gaW5saW5lIGNvbnN0IFJl
dHVyblR5cGUmIEV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpyZXR1cm5WYWx1ZSgpIGNvbnN0CiB7
CisgICAgQVNTRVJUKCFtX3dhc1JlbGVhc2VkKTsKICAgICByZXR1cm4gbV92YWx1ZS52YWx1ZSgp
OwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBSZXR1cm5UeXBlPiBpbmxpbmUgUmV0dXJuVHlwZSYm
IEV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpyZWxlYXNlUmV0dXJuVmFsdWUoKQordGVtcGxhdGU8
dHlwZW5hbWUgUmV0dXJuVHlwZT4gaW5saW5lIFJldHVyblR5cGUgRXhjZXB0aW9uT3I8UmV0dXJu
VHlwZT46OnJlbGVhc2VSZXR1cm5WYWx1ZSgpCiB7CisgICAgQVNTRVJUKCFzdGQ6OmV4Y2hhbmdl
KG1fd2FzUmVsZWFzZWQsIHRydWUpKTsKICAgICByZXR1cm4gV1RGTW92ZShtX3ZhbHVlLnZhbHVl
KCkpOwogfQogCkBAIC0xNDUsNyArMTU1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgUmV0dXJuUmVm
ZXJlbmNlVHlwZT4gaW5saW5lIGNvbnN0IEV4Y2VwdGlvbiYgRXhjZXB0aW9uT3I8UmV0dXIKICAg
ICByZXR1cm4gbV92YWx1ZS5leGNlcHRpb24oKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgUmV0
dXJuUmVmZXJlbmNlVHlwZT4gaW5saW5lIEV4Y2VwdGlvbiYmIEV4Y2VwdGlvbk9yPFJldHVyblJl
ZmVyZW5jZVR5cGUmPjo6cmVsZWFzZUV4Y2VwdGlvbigpCit0ZW1wbGF0ZTx0eXBlbmFtZSBSZXR1
cm5SZWZlcmVuY2VUeXBlPiBpbmxpbmUgRXhjZXB0aW9uIEV4Y2VwdGlvbk9yPFJldHVyblJlZmVy
ZW5jZVR5cGUmPjo6cmVsZWFzZUV4Y2VwdGlvbigpCiB7CiAgICAgcmV0dXJuIG1fdmFsdWUucmVs
ZWFzZUV4Y2VwdGlvbigpOwogfQpAQCAtMTcyLDExICsxODIsMTMgQEAgaW5saW5lIGJvb2wgRXhj
ZXB0aW9uT3I8dm9pZD46Omhhc0V4Y2VwdGlvbigpIGNvbnN0CiAKIGlubGluZSBjb25zdCBFeGNl
cHRpb24mIEV4Y2VwdGlvbk9yPHZvaWQ+OjpleGNlcHRpb24oKSBjb25zdAogeworICAgIEFTU0VS
VCghbV93YXNSZWxlYXNlZCk7CiAgICAgcmV0dXJuIG1fdmFsdWUuZXJyb3IoKTsKIH0KIAotaW5s
aW5lIEV4Y2VwdGlvbiYmIEV4Y2VwdGlvbk9yPHZvaWQ+OjpyZWxlYXNlRXhjZXB0aW9uKCkKK2lu
bGluZSBFeGNlcHRpb24gRXhjZXB0aW9uT3I8dm9pZD46OnJlbGVhc2VFeGNlcHRpb24oKQogewor
ICAgIEFTU0VSVCghc3RkOjpleGNoYW5nZShtX3dhc1JlbGVhc2VkLCB0cnVlKSk7CiAgICAgcmV0
dXJuIFdURk1vdmUobV92YWx1ZS5lcnJvcigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIu
Y3BwCmluZGV4IGY0ZWQ0MTJiY2E5YmI3NjJiNTA2YTI3ZTNhN2UwZDllY2QxZGVmZjAuLjcxNWRk
ZmIxZWI3NzkzNzMxY2Y4YTc5MDkwZTgxMzcxYjZhNzkxY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdh
bGtlci5jcHAKQEAgLTIzOSw3ICsyMzksNyBAQCBDaGlsZHJlbjoKICAgICAgICAgaWYgKGZpbHRl
clJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJSZXN1bHQu
cmVsZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgICAgIGlmIChmaWx0ZXJSZXN1bHQucmVsZWFzZVJl
dHVyblZhbHVlKCkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKKyAgICAgICAgaWYgKGZp
bHRlclJlc3VsdC5yZXR1cm5WYWx1ZSgpID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQpCiAg
ICAgICAgICAgICByZXR1cm4gc2V0Q3VycmVudChub2RlLnJlbGVhc2VOb25OdWxsKCkpOwogICAg
ICAgICBpZiAoZmlsdGVyUmVzdWx0LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRlcjo6RklMVEVS
X1JFSkVDVCkKICAgICAgICAgICAgIGJyZWFrOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405313</attachid>
            <date>2020-07-27 14:54:06 -0700</date>
            <delta_ts>2020-07-27 17:05:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214835-20200727145405.patch</filename>
            <type>text/plain</type>
            <size>20210</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0OTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGNhYmJkOGQxZjAwYzYx
YjMyYTNiMzJjMDI4MjkyOTA4ODg5M2U1MS4uNGYxMGM2YjcyZTg0ZTFiNGRjZTIyYmMwM2Y3MTE2
MTMzNmJjM2MyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIwLTA3LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIHJlbGVhc2UqKCkg
ZnVuY3Rpb25zIG9uIEV4Y2VwdGlvbk9yKCkgdG8gYWx3YXlzIHJlbGVhc2UgdGhlIG1lbWJlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0ODM1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHJl
bGVhc2UqKCkgZnVuY3Rpb25zIG9uIEV4Y2VwdGlvbk9yKCkgdG8gYWx3YXlzIHJlbGVhc2UgdGhl
IG1lbWJlciBpbnN0ZWFkIG9mCisgICAgICAgIHNpbXBseSBkb2luZyBhIGNhc3QgdG8gYW4gcnZh
bHVlIHJlZmVyZW5jZSBhbmQgbGVhdmluZyBpdCB1cCB0byB0aGUgY2FsbGVyLgorCisgICAgICAg
IEFsc28gYWRkIGFzc2VydGlvbnMgdG8gbWFrZSBzdXJlIHdlIGRvbid0IHJlbGVhc2UgdGhvc2Ug
bWVtYmVycyBtb3JlIHRoYW4gb25jZSBhbmQgdG8KKyAgICAgICAgbWFrZSBzdXJlIHdlIGRvbid0
IHRyeSB0byBhY2Nlc3MgdGhlIG1lbWJlciBhZnRlciByZWxlYXNpbmcgaXQuCisKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJJ
bmRleDo6ZG9PcGVuQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4Ojpkb09wZW5L
ZXlDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXg6OmRvR2V0QWxsKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkluZGV4Ojpkb0dldEFsbEtleXMpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVj
dFN0b3JlOjpkb09wZW5DdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6
OmRvT3BlbktleUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6ZG9E
ZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6OmRvR2V0QWxsKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpkb0dldEFsbEtleXMpOgorICAgICAgICBG
aXggaXNzdWVzIGZvdW5kIGluIGV4aXN0aW5nIGNvZGUgYnkgbmV3IGFzc2VydGlvbnMuCisKKyAg
ICAgICAgKiBkb20vRXhjZXB0aW9uT3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2VwdGlvbk9y
PFJldHVyblR5cGU+OjpleGNlcHRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RXhjZXB0
aW9uT3I8UmV0dXJuVHlwZT46OnJlbGVhc2VFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
RXhjZXB0aW9uT3I8UmV0dXJuVHlwZT46OnJldHVyblZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpyZWxlYXNlUmV0dXJuVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6Pjo6cmVsZWFzZUV4Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpF
eGNlcHRpb25Pcjx2b2lkPjo6ZXhjZXB0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4
Y2VwdGlvbk9yPHZvaWQ+OjpyZWxlYXNlRXhjZXB0aW9uKToKKworICAgICAgICAqIGRvbS9UcmVl
V2Fsa2VyLmNwcDoKKyAgICAgICAgRml4IGlzc3VlcyBmb3VuZCBpbiBleGlzdGluZyBjb2RlIGJ5
IG5ldyBhc3NlcnRpb25zLgorCiAyMDIwLTA3LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgQVNTRVJUKFtmaWx0ZXJlZENvb2tpZXMuZ2V0KCkgY291bnRdIDw9
IDEpIG9uICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvY29va2ll
cy90aGlyZC1wYXJ0eS1jb29raWUtYWNjZXB0ZWQuaHR0cHMuaHRtbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwCmluZGV4IDMyYmM3YTllNGQ4NTcwMWMw
ZjY2NjhhZDZjZjk3ZWY3ZDhlYzMwZTcuLmI4MGQ3MjZkMWFiOTlhMzM2MWI0ZjVhZmY2NDEwOTU1
NjcyNjlmYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkluZGV4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRl
eC5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCBFeGNlcHRpb25PcjxSZWY8SURCUmVxdWVzdD4+IElE
QkluZGV4Ojpkb09wZW5DdXJzb3IoSlNHbG9iYWxPYmplY3QmIGV4ZWNTdGF0ZSwgSQogICAgIGlm
IChrZXlSYW5nZS5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGtleVJhbmdlLnJlbGVh
c2VFeGNlcHRpb24oKTsKIAotICAgIElEQktleVJhbmdlRGF0YSByYW5nZURhdGEgPSBrZXlSYW5n
ZS5yZXR1cm5WYWx1ZSgpID8ga2V5UmFuZ2UucmVsZWFzZVJldHVyblZhbHVlKCkuZ2V0KCkgOiBu
dWxscHRyOworICAgIElEQktleVJhbmdlRGF0YSByYW5nZURhdGEgPSBrZXlSYW5nZS5yZXR1cm5W
YWx1ZSgpLmdldCgpOwogICAgIGlmIChyYW5nZURhdGEubG93ZXJLZXkuaXNOdWxsKCkpCiAgICAg
ICAgIHJhbmdlRGF0YS5sb3dlcktleSA9IElEQktleURhdGE6Om1pbmltdW0oKTsKICAgICBpZiAo
cmFuZ2VEYXRhLnVwcGVyS2V5LmlzTnVsbCgpKQpAQCAtMjAxLDcgKzIwMSw3IEBAIEV4Y2VwdGlv
bk9yPFJlZjxJREJSZXF1ZXN0Pj4gSURCSW5kZXg6OmRvT3BlbktleUN1cnNvcihKU0dsb2JhbE9i
amVjdCYgZXhlY1N0YXRlCiAgICAgaWYgKGtleVJhbmdlLmhhc0V4Y2VwdGlvbigpKQogICAgICAg
ICByZXR1cm4ga2V5UmFuZ2UucmVsZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgYXV0byoga2V5UmFu
Z2VQb2ludGVyID0ga2V5UmFuZ2UucmV0dXJuVmFsdWUoKSA/IGtleVJhbmdlLnJlbGVhc2VSZXR1
cm5WYWx1ZSgpLmdldCgpIDogbnVsbHB0cjsKKyAgICBhdXRvKiBrZXlSYW5nZVBvaW50ZXIgPSBr
ZXlSYW5nZS5yZXR1cm5WYWx1ZSgpLmdldCgpOwogICAgIGF1dG8gaW5mbyA9IElEQkN1cnNvcklu
Zm86OmluZGV4Q3Vyc29yKG1fb2JqZWN0U3RvcmUudHJhbnNhY3Rpb24oKSwgbV9vYmplY3RTdG9y
ZS5pbmZvKCkuaWRlbnRpZmllcigpLCBtX2luZm8uaWRlbnRpZmllcigpLCBrZXlSYW5nZVBvaW50
ZXIsIGRpcmVjdGlvbiwgSW5kZXhlZERCOjpDdXJzb3JUeXBlOjpLZXlPbmx5KTsKICAgICByZXR1
cm4gbV9vYmplY3RTdG9yZS50cmFuc2FjdGlvbigpLnJlcXVlc3RPcGVuQ3Vyc29yKGV4ZWNTdGF0
ZSwgKnRoaXMsIGluZm8pOwogfQpAQCAtMzUxLDcgKzM1MSw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxJ
REJSZXF1ZXN0Pj4gSURCSW5kZXg6OmRvR2V0QWxsKEpTR2xvYmFsT2JqZWN0JiBleGVjU3RhdGUs
IE9wdGlvCiAgICAgaWYgKGtleVJhbmdlLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4g
a2V5UmFuZ2UucmVsZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgYXV0byoga2V5UmFuZ2VQb2ludGVy
ID0ga2V5UmFuZ2UucmV0dXJuVmFsdWUoKSA/IGtleVJhbmdlLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
LmdldCgpIDogbnVsbHB0cjsKKyAgICBhdXRvIGtleVJhbmdlUG9pbnRlciA9IGtleVJhbmdlLnJl
dHVyblZhbHVlKCkuZ2V0KCk7CiAgICAgcmV0dXJuIG1fb2JqZWN0U3RvcmUudHJhbnNhY3Rpb24o
KS5yZXF1ZXN0R2V0QWxsSW5kZXhSZWNvcmRzKGV4ZWNTdGF0ZSwgKnRoaXMsIGtleVJhbmdlUG9p
bnRlciwgSW5kZXhlZERCOjpHZXRBbGxUeXBlOjpWYWx1ZXMsIGNvdW50KTsKIH0KIApAQCAtMzg4
LDcgKzM4OCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxJREJSZXF1ZXN0Pj4gSURCSW5kZXg6OmRvR2V0
QWxsS2V5cyhKU0dsb2JhbE9iamVjdCYgZXhlY1N0YXRlLCBPCiAgICAgaWYgKGtleVJhbmdlLmhh
c0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4ga2V5UmFuZ2UucmVsZWFzZUV4Y2VwdGlvbigp
OwogCi0gICAgYXV0byoga2V5UmFuZ2VQb2ludGVyID0ga2V5UmFuZ2UucmV0dXJuVmFsdWUoKSA/
IGtleVJhbmdlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLmdldCgpIDogbnVsbHB0cjsKKyAgICBhdXRv
KiBrZXlSYW5nZVBvaW50ZXIgPSBrZXlSYW5nZS5yZXR1cm5WYWx1ZSgpLmdldCgpOwogICAgIHJl
dHVybiBtX29iamVjdFN0b3JlLnRyYW5zYWN0aW9uKCkucmVxdWVzdEdldEFsbEluZGV4UmVjb3Jk
cyhleGVjU3RhdGUsICp0aGlzLCBrZXlSYW5nZVBvaW50ZXIsIEluZGV4ZWREQjo6R2V0QWxsVHlw
ZTo6S2V5cywgY291bnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKaW5kZXggNGQxNjE3YzcwM2ViZGExOWRmNWFjMWYz
MTM2MGRjNDZiOTdiOTNlZS4uNjJmM2VhYWRhMmFlM2VkOTUxNThhZmE3MTIxZjU1ZjhhMzJhNGQ0
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVj
dFN0b3JlLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxJREJSZXF1ZXN0
Pj4gSURCT2JqZWN0U3RvcmU6OmRvT3BlbkN1cnNvcihKU0dsb2JhbE9iamVjdCYgZXhlY1N0CiAg
ICAgYXV0byBrZXlSYW5nZSA9IGZ1bmN0aW9uKCk7CiAgICAgaWYgKGtleVJhbmdlLmhhc0V4Y2Vw
dGlvbigpKQogICAgICAgICByZXR1cm4ga2V5UmFuZ2UucmVsZWFzZUV4Y2VwdGlvbigpOwotICAg
IGF1dG8qIGtleVJhbmdlUG9pbnRlciA9IGtleVJhbmdlLnJldHVyblZhbHVlKCkgPyBrZXlSYW5n
ZS5yZWxlYXNlUmV0dXJuVmFsdWUoKS5nZXQoKSA6IG51bGxwdHI7CisgICAgYXV0byoga2V5UmFu
Z2VQb2ludGVyID0ga2V5UmFuZ2UucmV0dXJuVmFsdWUoKS5nZXQoKTsKIAogICAgIGF1dG8gaW5m
byA9IElEQkN1cnNvckluZm86Om9iamVjdFN0b3JlQ3Vyc29yKG1fdHJhbnNhY3Rpb24sIG1faW5m
by5pZGVudGlmaWVyKCksIGtleVJhbmdlUG9pbnRlciwgZGlyZWN0aW9uLCBJbmRleGVkREI6OkN1
cnNvclR5cGU6OktleUFuZFZhbHVlKTsKICAgICByZXR1cm4gbV90cmFuc2FjdGlvbi5yZXF1ZXN0
T3BlbkN1cnNvcihleGVjU3RhdGUsICp0aGlzLCBpbmZvKTsKQEAgLTE5Nyw3ICsxOTcsNyBAQCBF
eGNlcHRpb25PcjxSZWY8SURCUmVxdWVzdD4+IElEQk9iamVjdFN0b3JlOjpkb09wZW5LZXlDdXJz
b3IoSlNHbG9iYWxPYmplY3QmIGV4ZQogICAgIGlmIChrZXlSYW5nZS5oYXNFeGNlcHRpb24oKSkK
ICAgICAgICAgcmV0dXJuIGtleVJhbmdlLnJlbGVhc2VFeGNlcHRpb24oKTsKIAotICAgIGF1dG8q
IGtleVJhbmdlUG9pbnRlciA9IGtleVJhbmdlLnJldHVyblZhbHVlKCkgPyBrZXlSYW5nZS5yZWxl
YXNlUmV0dXJuVmFsdWUoKS5nZXQoKSA6IG51bGxwdHI7CisgICAgYXV0byoga2V5UmFuZ2VQb2lu
dGVyID0ga2V5UmFuZ2UucmV0dXJuVmFsdWUoKS5nZXQoKTsKICAgICBhdXRvIGluZm8gPSBJREJD
dXJzb3JJbmZvOjpvYmplY3RTdG9yZUN1cnNvcihtX3RyYW5zYWN0aW9uLCBtX2luZm8uaWRlbnRp
ZmllcigpLCBrZXlSYW5nZVBvaW50ZXIsIGRpcmVjdGlvbiwgSW5kZXhlZERCOjpDdXJzb3JUeXBl
OjpLZXlPbmx5KTsKICAgICByZXR1cm4gbV90cmFuc2FjdGlvbi5yZXF1ZXN0T3BlbkN1cnNvcihl
eGVjU3RhdGUsICp0aGlzLCBpbmZvKTsKIH0KQEAgLTQwOSw3ICs0MDksNyBAQCBFeGNlcHRpb25P
cjxSZWY8SURCUmVxdWVzdD4+IElEQk9iamVjdFN0b3JlOjpkb0RlbGV0ZShKU0dsb2JhbE9iamVj
dCYgZXhlY1N0YXRlLAogICAgIGlmIChrZXlSYW5nZS5oYXNFeGNlcHRpb24oKSkKICAgICAgICAg
cmV0dXJuIGtleVJhbmdlLnJlbGVhc2VFeGNlcHRpb24oKTsKIAotICAgIElEQktleVJhbmdlRGF0
YSBrZXlSYW5nZURhdGEgPSBrZXlSYW5nZS5yZXR1cm5WYWx1ZSgpID8ga2V5UmFuZ2UucmVsZWFz
ZVJldHVyblZhbHVlKCkuZ2V0KCkgOiBudWxscHRyOworICAgIElEQktleVJhbmdlRGF0YSBrZXlS
YW5nZURhdGEgPSBrZXlSYW5nZS5yZXR1cm5WYWx1ZSgpLmdldCgpOwogICAgIGlmICgha2V5UmFu
Z2VEYXRhLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IERhdGFFcnJvciwg
IkZhaWxlZCB0byBleGVjdXRlICdkZWxldGUnIG9uICdJREJPYmplY3RTdG9yZSc6IFRoZSBwYXJh
bWV0ZXIgaXMgbm90IGEgdmFsaWQga2V5IHJhbmdlLiJfcyB9OwogCkBAIC02MTAsNyArNjEwLDcg
QEAgRXhjZXB0aW9uT3I8UmVmPElEQlJlcXVlc3Q+PiBJREJPYmplY3RTdG9yZTo6ZG9HZXRBbGwo
SlNHbG9iYWxPYmplY3QmIGV4ZWNTdGF0ZSwKICAgICBpZiAoa2V5UmFuZ2UuaGFzRXhjZXB0aW9u
KCkpCiAgICAgICAgIHJldHVybiBrZXlSYW5nZS5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKLSAgICBh
dXRvKiBrZXlSYW5nZVBvaW50ZXIgPSBrZXlSYW5nZS5yZXR1cm5WYWx1ZSgpID8ga2V5UmFuZ2Uu
cmVsZWFzZVJldHVyblZhbHVlKCkuZ2V0KCkgOiBudWxscHRyOworICAgIGF1dG8qIGtleVJhbmdl
UG9pbnRlciA9IGtleVJhbmdlLnJldHVyblZhbHVlKCkuZ2V0KCk7CiAgICAgcmV0dXJuIG1fdHJh
bnNhY3Rpb24ucmVxdWVzdEdldEFsbE9iamVjdFN0b3JlUmVjb3JkcyhleGVjU3RhdGUsICp0aGlz
LCBrZXlSYW5nZVBvaW50ZXIsIEluZGV4ZWREQjo6R2V0QWxsVHlwZTo6VmFsdWVzLCBjb3VudCk7
CiB9CiAKQEAgLTY0Nyw3ICs2NDcsNyBAQCBFeGNlcHRpb25PcjxSZWY8SURCUmVxdWVzdD4+IElE
Qk9iamVjdFN0b3JlOjpkb0dldEFsbEtleXMoSlNHbG9iYWxPYmplY3QmIGV4ZWNTdAogICAgIGlm
IChrZXlSYW5nZS5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGtleVJhbmdlLnJlbGVh
c2VFeGNlcHRpb24oKTsKIAotICAgIGF1dG8qIGtleVJhbmdlUG9pbnRlciA9IGtleVJhbmdlLnJl
dHVyblZhbHVlKCkgPyBrZXlSYW5nZS5yZWxlYXNlUmV0dXJuVmFsdWUoKS5nZXQoKSA6IG51bGxw
dHI7CisgICAgYXV0byoga2V5UmFuZ2VQb2ludGVyID0ga2V5UmFuZ2UucmV0dXJuVmFsdWUoKS5n
ZXQoKTsKICAgICByZXR1cm4gbV90cmFuc2FjdGlvbi5yZXF1ZXN0R2V0QWxsT2JqZWN0U3RvcmVS
ZWNvcmRzKGV4ZWNTdGF0ZSwgKnRoaXMsIGtleVJhbmdlUG9pbnRlciwgSW5kZXhlZERCOjpHZXRB
bGxUeXBlOjpLZXlzLCBjb3VudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FeGNlcHRpb25Pci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbk9yLmgKaW5kZXgg
YzFjYjhlYTU5YWVjMTczNWU0MjY3YWFjY2ZjOTdjNmE3M2UzZWU5ZS4uNGE1MzQzNjE5NTAwYzEy
ZDc5OWI3YmUwNzRjN2Y3OGI2YmRiNTU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0V4Y2VwdGlvbk9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbk9yLmgKQEAg
LTQyLDEyICs0MiwxNSBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc0V4Y2VwdGlvbigpIGNvbnN0
OwogICAgIGNvbnN0IEV4Y2VwdGlvbiYgZXhjZXB0aW9uKCkgY29uc3Q7Ci0gICAgRXhjZXB0aW9u
JiYgcmVsZWFzZUV4Y2VwdGlvbigpOworICAgIEV4Y2VwdGlvbiByZWxlYXNlRXhjZXB0aW9uKCk7
CiAgICAgY29uc3QgUmV0dXJuVHlwZSYgcmV0dXJuVmFsdWUoKSBjb25zdDsKLSAgICBSZXR1cm5U
eXBlJiYgcmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgUmV0dXJuVHlwZSByZWxlYXNlUmV0dXJu
VmFsdWUoKTsKICAgICAKIHByaXZhdGU6CiAgICAgRXhwZWN0ZWQ8UmV0dXJuVHlwZSwgRXhjZXB0
aW9uPiBtX3ZhbHVlOworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgYm9vbCBtX3dhc1JlbGVhc2Vk
IHsgZmFsc2UgfTsKKyNlbmRpZgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgRXhj
ZXB0aW9uT3I8VCY+IHsKQEAgLTYwLDcgKzYzLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNF
eGNlcHRpb24oKSBjb25zdDsKICAgICBjb25zdCBFeGNlcHRpb24mIGV4Y2VwdGlvbigpIGNvbnN0
OwotICAgIEV4Y2VwdGlvbiYmIHJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICBFeGNlcHRpb24gcmVs
ZWFzZUV4Y2VwdGlvbigpOwogICAgIGNvbnN0IFJldHVyblJlZmVyZW5jZVR5cGUmIHJldHVyblZh
bHVlKCkgY29uc3Q7CiAgICAgUmV0dXJuUmVmZXJlbmNlVHlwZSYgcmVsZWFzZVJldHVyblZhbHVl
KCk7CiAgICAgCkBAIC03NywxMCArODAsMTMgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNFeGNl
cHRpb24oKSBjb25zdDsKICAgICBjb25zdCBFeGNlcHRpb24mIGV4Y2VwdGlvbigpIGNvbnN0Owot
ICAgIEV4Y2VwdGlvbiYmIHJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICBFeGNlcHRpb24gcmVsZWFz
ZUV4Y2VwdGlvbigpOwogCiBwcml2YXRlOgogICAgIEV4cGVjdGVkPHZvaWQsIEV4Y2VwdGlvbj4g
bV92YWx1ZTsKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIGJvb2wgbV93YXNSZWxlYXNlZCB7IGZh
bHNlIH07CisjZW5kaWYKIH07CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IGlzb2xhdGVkQ29weShFeGNl
cHRpb25Pcjx2b2lkPiYmKTsKQEAgLTEwNywyMSArMTEzLDI1IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IFJldHVyblR5cGU+IGlubGluZSBib29sIEV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpoYXNFeGNl
cHRpb24oCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFJldHVyblR5cGU+IGlubGluZSBjb25zdCBFeGNl
cHRpb24mIEV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpleGNlcHRpb24oKSBjb25zdAogeworICAg
IEFTU0VSVCghbV93YXNSZWxlYXNlZCk7CiAgICAgcmV0dXJuIG1fdmFsdWUuZXJyb3IoKTsKIH0K
IAotdGVtcGxhdGU8dHlwZW5hbWUgUmV0dXJuVHlwZT4gaW5saW5lIEV4Y2VwdGlvbiYmIEV4Y2Vw
dGlvbk9yPFJldHVyblR5cGU+OjpyZWxlYXNlRXhjZXB0aW9uKCkKK3RlbXBsYXRlPHR5cGVuYW1l
IFJldHVyblR5cGU+IGlubGluZSBFeGNlcHRpb24gRXhjZXB0aW9uT3I8UmV0dXJuVHlwZT46OnJl
bGVhc2VFeGNlcHRpb24oKQogeworICAgIEFTU0VSVCghc3RkOjpleGNoYW5nZShtX3dhc1JlbGVh
c2VkLCB0cnVlKSk7CiAgICAgcmV0dXJuIFdURk1vdmUobV92YWx1ZS5lcnJvcigpKTsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgUmV0dXJuVHlwZT4gaW5saW5lIGNvbnN0IFJldHVyblR5cGUmIEV4
Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpyZXR1cm5WYWx1ZSgpIGNvbnN0CiB7CisgICAgQVNTRVJU
KCFtX3dhc1JlbGVhc2VkKTsKICAgICByZXR1cm4gbV92YWx1ZS52YWx1ZSgpOwogfQogCi10ZW1w
bGF0ZTx0eXBlbmFtZSBSZXR1cm5UeXBlPiBpbmxpbmUgUmV0dXJuVHlwZSYmIEV4Y2VwdGlvbk9y
PFJldHVyblR5cGU+OjpyZWxlYXNlUmV0dXJuVmFsdWUoKQordGVtcGxhdGU8dHlwZW5hbWUgUmV0
dXJuVHlwZT4gaW5saW5lIFJldHVyblR5cGUgRXhjZXB0aW9uT3I8UmV0dXJuVHlwZT46OnJlbGVh
c2VSZXR1cm5WYWx1ZSgpCiB7CisgICAgQVNTRVJUKCFzdGQ6OmV4Y2hhbmdlKG1fd2FzUmVsZWFz
ZWQsIHRydWUpKTsKICAgICByZXR1cm4gV1RGTW92ZShtX3ZhbHVlLnZhbHVlKCkpOwogfQogCkBA
IC0xNDUsNyArMTU1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgUmV0dXJuUmVmZXJlbmNlVHlwZT4g
aW5saW5lIGNvbnN0IEV4Y2VwdGlvbiYgRXhjZXB0aW9uT3I8UmV0dXIKICAgICByZXR1cm4gbV92
YWx1ZS5leGNlcHRpb24oKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgUmV0dXJuUmVmZXJlbmNl
VHlwZT4gaW5saW5lIEV4Y2VwdGlvbiYmIEV4Y2VwdGlvbk9yPFJldHVyblJlZmVyZW5jZVR5cGUm
Pjo6cmVsZWFzZUV4Y2VwdGlvbigpCit0ZW1wbGF0ZTx0eXBlbmFtZSBSZXR1cm5SZWZlcmVuY2VU
eXBlPiBpbmxpbmUgRXhjZXB0aW9uIEV4Y2VwdGlvbk9yPFJldHVyblJlZmVyZW5jZVR5cGUmPjo6
cmVsZWFzZUV4Y2VwdGlvbigpCiB7CiAgICAgcmV0dXJuIG1fdmFsdWUucmVsZWFzZUV4Y2VwdGlv
bigpOwogfQpAQCAtMTcyLDExICsxODIsMTMgQEAgaW5saW5lIGJvb2wgRXhjZXB0aW9uT3I8dm9p
ZD46Omhhc0V4Y2VwdGlvbigpIGNvbnN0CiAKIGlubGluZSBjb25zdCBFeGNlcHRpb24mIEV4Y2Vw
dGlvbk9yPHZvaWQ+OjpleGNlcHRpb24oKSBjb25zdAogeworICAgIEFTU0VSVCghbV93YXNSZWxl
YXNlZCk7CiAgICAgcmV0dXJuIG1fdmFsdWUuZXJyb3IoKTsKIH0KIAotaW5saW5lIEV4Y2VwdGlv
biYmIEV4Y2VwdGlvbk9yPHZvaWQ+OjpyZWxlYXNlRXhjZXB0aW9uKCkKK2lubGluZSBFeGNlcHRp
b24gRXhjZXB0aW9uT3I8dm9pZD46OnJlbGVhc2VFeGNlcHRpb24oKQogeworICAgIEFTU0VSVCgh
c3RkOjpleGNoYW5nZShtX3dhc1JlbGVhc2VkLCB0cnVlKSk7CiAgICAgcmV0dXJuIFdURk1vdmUo
bV92YWx1ZS5lcnJvcigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVXYWxrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwCmluZGV4IGY0
ZWQ0MTJiY2E5YmI3NjJiNTA2YTI3ZTNhN2UwZDllY2QxZGVmZjAuLjcxNWRkZmIxZWI3NzkzNzMx
Y2Y4YTc5MDkwZTgxMzcxYjZhNzkxY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlV2Fsa2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAKQEAg
LTIzOSw3ICsyMzksNyBAQCBDaGlsZHJlbjoKICAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5oYXNF
eGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2Vw
dGlvbigpOwogCi0gICAgICAgIGlmIChmaWx0ZXJSZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkg
PT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKKyAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5y
ZXR1cm5WYWx1ZSgpID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQpCiAgICAgICAgICAgICBy
ZXR1cm4gc2V0Q3VycmVudChub2RlLnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICBpZiAoZmls
dGVyUmVzdWx0LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVCkKICAg
ICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGNkNjc1YjBmZDE0MDY0MTRjYmIwZTM4MmRjNTVkMTVlNzMxZTM5MTQuLjU4
NWE1ZDI2OWFhNzFlZTY0Mjk3NWFmMDkwNWM5MDVkMDdhZmJlMzUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0w
Ny0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBy
ZWxlYXNlKigpIGZ1bmN0aW9ucyBvbiBFeGNlcHRpb25PcigpIHRvIGFsd2F5cyByZWxlYXNlIHRo
ZSBtZW1iZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNDgzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dlZEluU3RhdHVzLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICBGaXggdW5zYWZlIGNvZGUgaW4gQVBJ
IHRlc3Qgd2hpY2ggd2FzIHN0b3JpbmcgYSByYXcgcG9pbnRlciB0byBzb21ldGhpbmcgaGVsZCBp
bnNpZGUgYW4gRXhwZWN0ZWRPciwKKyAgICAgICAgYWZ0ZXIgY2FsbGluZyByZWxlYXNlUmV0dXJu
VmFsdWUoKS4KKwogMjAyMC0wNy0yNyAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgZXdzIGVtYWlsIG5vdGlmaWNhdGlvbiBzaG91bGQgaW5jbHVkZSBib3Qg
bmFtZSBhbmQgbGluayB0byByZXN1bHRzIGRhdGFiYXNlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2VkSW5TdGF0dXMuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dlZEluU3RhdHVzLmNwcAppbmRleCBkYjgzM2Y3MWIy
MjQzYzk5MGE2Yjg3ZTkxNjAwNzczOWJjZjc5YjZjLi4zNTY0ZTg4ZGMxYjVlYTcyODZiY2JmMjk3
MjgwYWZkYWVkODI4ZWJkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvTG9nZ2VkSW5TdGF0dXMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Mb2dnZWRJblN0YXR1cy5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgVEVTVChMb2dnZWRJ
blN0YXR1cywgRGVmYXVsdEV4cGlyeVdlYkF1dGhuKQogICAgIFJlZ2lzdHJhYmxlRG9tYWluIGxv
Z2luRG9tYWluIHsgVVJMIHsgeyB9LCAiaHR0cHM6Ly9sb2dpbi5leGFtcGxlLmNvbSJfcyB9IH07
CiAKICAgICBhdXRvIGxvZ2dlZEluUmVzdWx0ID0gTG9nZ2VkSW5TdGF0dXM6OmNyZWF0ZShsb2dp
bkRvbWFpbiwgImFkbWluIl9zLCBMb2dnZWRJblN0YXR1czo6Q3JlZGVudGlhbFRva2VuVHlwZTo6
SFRUUFN0YXRlVG9rZW4sIExvZ2dlZEluU3RhdHVzOjpBdXRoZW50aWNhdGlvblR5cGU6OldlYkF1
dGhuKTsKLSAgICBhdXRvJiBsb2dnZWRJbiA9IGxvZ2dlZEluUmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpLmdldCgpOworICAgIGF1dG8mIGxvZ2dlZEluID0gbG9nZ2VkSW5SZXN1bHQucmV0dXJu
VmFsdWUoKS5nZXQoKTsKICAgICBhdXRvIG5vdyA9IFdhbGxUaW1lOjpub3coKTsKICAgICBBU1NF
UlRfRVEobG9nZ2VkSW4ucmVnaXN0cmFibGVEb21haW4oKS5zdHJpbmcoKSwgImV4YW1wbGUuY29t
Il9zKTsKICAgICBBU1NFUlRfRVEobG9nZ2VkSW4udXNlcm5hbWUoKSwgImFkbWluIl9zKTsKQEAg
LTU5LDcgKzU5LDcgQEAgVEVTVChMb2dnZWRJblN0YXR1cywgRGVmYXVsdEV4cGlyeVBhc3N3b3Jk
TWFuYWdlcikKICAgICBSZWdpc3RyYWJsZURvbWFpbiBsb2dpbkRvbWFpbiB7IFVSTCB7IHsgfSwg
Imh0dHBzOi8vbG9naW4uZXhhbXBsZS5jb20iX3MgfSB9OwogCiAgICAgYXV0byBsb2dnZWRJblJl
c3VsdCA9IExvZ2dlZEluU3RhdHVzOjpjcmVhdGUobG9naW5Eb21haW4sICJhZG1pbiJfcywgTG9n
Z2VkSW5TdGF0dXM6OkNyZWRlbnRpYWxUb2tlblR5cGU6OkhUVFBTdGF0ZVRva2VuLCBMb2dnZWRJ
blN0YXR1czo6QXV0aGVudGljYXRpb25UeXBlOjpQYXNzd29yZE1hbmFnZXIpOwotICAgIGF1dG8m
IGxvZ2dlZEluID0gbG9nZ2VkSW5SZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkuZ2V0KCk7Cisg
ICAgYXV0byYgbG9nZ2VkSW4gPSBsb2dnZWRJblJlc3VsdC5yZXR1cm5WYWx1ZSgpLmdldCgpOwog
ICAgIGF1dG8gbm93ID0gV2FsbFRpbWU6Om5vdygpOwogICAgIEFTU0VSVF9FUShsb2dnZWRJbi5h
dXRoZW50aWNhdGlvblR5cGUoKSwgTG9nZ2VkSW5TdGF0dXM6OkF1dGhlbnRpY2F0aW9uVHlwZTo6
UGFzc3dvcmRNYW5hZ2VyKTsKICAgICBBU1NFUlRfVFJVRShsb2dnZWRJbi5leHBpcnkoKSA8IG5v
dyArIExvZ2dlZEluU3RhdHVzOjpUaW1lVG9MaXZlTG9uZyArIDYwX3MpOwpAQCAtNzIsNyArNzIs
NyBAQCBURVNUKExvZ2dlZEluU3RhdHVzLCBEZWZhdWx0RXhwaXJ5VW5tYW5hZ2VkKQogICAgIFJl
Z2lzdHJhYmxlRG9tYWluIGxvZ2luRG9tYWluIHsgVVJMIHsgeyB9LCAiaHR0cHM6Ly9sb2dpbi5l
eGFtcGxlLmNvbSJfcyB9IH07CiAKICAgICBhdXRvIGxvZ2dlZEluUmVzdWx0ID0gTG9nZ2VkSW5T
dGF0dXM6OmNyZWF0ZShsb2dpbkRvbWFpbiwgImFkbWluIl9zLCBMb2dnZWRJblN0YXR1czo6Q3Jl
ZGVudGlhbFRva2VuVHlwZTo6SFRUUFN0YXRlVG9rZW4sIExvZ2dlZEluU3RhdHVzOjpBdXRoZW50
aWNhdGlvblR5cGU6OlVubWFuYWdlZCk7Ci0gICAgYXV0byYgbG9nZ2VkSW4gPSBsb2dnZWRJblJl
c3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKS5nZXQoKTsKKyAgICBhdXRvJiBsb2dnZWRJbiA9IGxv
Z2dlZEluUmVzdWx0LnJldHVyblZhbHVlKCkuZ2V0KCk7CiAgICAgYXV0byBub3cgPSBXYWxsVGlt
ZTo6bm93KCk7CiAgICAgQVNTRVJUX0VRKGxvZ2dlZEluLmF1dGhlbnRpY2F0aW9uVHlwZSgpLCBM
b2dnZWRJblN0YXR1czo6QXV0aGVudGljYXRpb25UeXBlOjpVbm1hbmFnZWQpOwogICAgIEFTU0VS
VF9UUlVFKGxvZ2dlZEluLmV4cGlyeSgpIDwgbm93ICsgTG9nZ2VkSW5TdGF0dXM6OlRpbWVUb0xp
dmVTaG9ydCArIDYwX3MpOwpAQCAtODYsNyArODYsNyBAQCBURVNUKExvZ2dlZEluU3RhdHVzLCBD
dXN0b21FeHBpcnlCZWxvd0xvbmcpCiAKICAgICBhdXRvIGN1c3RvbUV4cGlyeSA9IExvZ2dlZElu
U3RhdHVzOjpUaW1lVG9MaXZlTG9uZyAtIDQ4X2g7CiAgICAgYXV0byBsb2dnZWRJblJlc3VsdCA9
IExvZ2dlZEluU3RhdHVzOjpjcmVhdGUobG9naW5Eb21haW4sICJhZG1pbiJfcywgTG9nZ2VkSW5T
dGF0dXM6OkNyZWRlbnRpYWxUb2tlblR5cGU6OkhUVFBTdGF0ZVRva2VuLCBMb2dnZWRJblN0YXR1
czo6QXV0aGVudGljYXRpb25UeXBlOjpXZWJBdXRobiwgY3VzdG9tRXhwaXJ5KTsKLSAgICBhdXRv
JiBsb2dnZWRJbiA9IGxvZ2dlZEluUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLmdldCgpOwor
ICAgIGF1dG8mIGxvZ2dlZEluID0gbG9nZ2VkSW5SZXN1bHQucmV0dXJuVmFsdWUoKS5nZXQoKTsK
ICAgICBhdXRvIG5vdyA9IFdhbGxUaW1lOjpub3coKTsKICAgICBBU1NFUlRfRVEobG9nZ2VkSW4u
YXV0aGVudGljYXRpb25UeXBlKCksIExvZ2dlZEluU3RhdHVzOjpBdXRoZW50aWNhdGlvblR5cGU6
OldlYkF1dGhuKTsKICAgICBBU1NFUlRfVFJVRShsb2dnZWRJbi5leHBpcnkoKSA8IG5vdyArIGN1
c3RvbUV4cGlyeSArIDYwX3MpOwpAQCAtMTAwLDcgKzEwMCw3IEBAIFRFU1QoTG9nZ2VkSW5TdGF0
dXMsIEN1c3RvbUV4cGlyeUJlbG93U2hvcnQpCiAKICAgICBhdXRvIGN1c3RvbUV4cGlyeSA9IExv
Z2dlZEluU3RhdHVzOjpUaW1lVG9MaXZlU2hvcnQgLSA0OF9oOwogICAgIGF1dG8gbG9nZ2VkSW5S
ZXN1bHQgPSBMb2dnZWRJblN0YXR1czo6Y3JlYXRlKGxvZ2luRG9tYWluLCAiYWRtaW4iX3MsIExv
Z2dlZEluU3RhdHVzOjpDcmVkZW50aWFsVG9rZW5UeXBlOjpIVFRQU3RhdGVUb2tlbiwgTG9nZ2Vk
SW5TdGF0dXM6OkF1dGhlbnRpY2F0aW9uVHlwZTo6UGFzc3dvcmRNYW5hZ2VyLCBjdXN0b21FeHBp
cnkpOwotICAgIGF1dG8mIGxvZ2dlZEluID0gbG9nZ2VkSW5SZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCkuZ2V0KCk7CisgICAgYXV0byYgbG9nZ2VkSW4gPSBsb2dnZWRJblJlc3VsdC5yZXR1cm5W
YWx1ZSgpLmdldCgpOwogICAgIGF1dG8gbm93ID0gV2FsbFRpbWU6Om5vdygpOwogICAgIEFTU0VS
VF9FUShsb2dnZWRJbi5hdXRoZW50aWNhdGlvblR5cGUoKSwgTG9nZ2VkSW5TdGF0dXM6OkF1dGhl
bnRpY2F0aW9uVHlwZTo6UGFzc3dvcmRNYW5hZ2VyKTsKICAgICBBU1NFUlRfVFJVRShsb2dnZWRJ
bi5leHBpcnkoKSA8IG5vdyArIGN1c3RvbUV4cGlyeSArIDYwX3MpOwpAQCAtMTE0LDE4ICsxMTQs
MTggQEAgVEVTVChMb2dnZWRJblN0YXR1cywgUmVuZXdlZEV4cGlyeSkKIAogICAgIGF1dG8gY3Vz
dG9tRXhwaXJ5ID0gTG9nZ2VkSW5TdGF0dXM6OlRpbWVUb0xpdmVTaG9ydCAtIDQ4X2g7CiAgICAg
YXV0byBsb2dnZWRJblJlc3VsdCA9IExvZ2dlZEluU3RhdHVzOjpjcmVhdGUobG9naW5Eb21haW4s
ICJhZG1pbiJfcywgTG9nZ2VkSW5TdGF0dXM6OkNyZWRlbnRpYWxUb2tlblR5cGU6OkhUVFBTdGF0
ZVRva2VuLCBMb2dnZWRJblN0YXR1czo6QXV0aGVudGljYXRpb25UeXBlOjpXZWJBdXRobiwgY3Vz
dG9tRXhwaXJ5KTsKLSAgICBhdXRvJiBsb2dnZWRJbiA9IGxvZ2dlZEluUmVzdWx0LnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpLmdldCgpOworICAgIGF1dG8gbG9nZ2VkSW4gPSBsb2dnZWRJblJlc3VsdC5y
ZWxlYXNlUmV0dXJuVmFsdWUoKTsKICAgICBhdXRvIG5vdyA9IFdhbGxUaW1lOjpub3coKTsKLSAg
ICBBU1NFUlRfRVEobG9nZ2VkSW4uYXV0aGVudGljYXRpb25UeXBlKCksIExvZ2dlZEluU3RhdHVz
OjpBdXRoZW50aWNhdGlvblR5cGU6OldlYkF1dGhuKTsKLSAgICBBU1NFUlRfVFJVRShsb2dnZWRJ
bi5leHBpcnkoKSA8IG5vdyArIGN1c3RvbUV4cGlyeSArIDYwX3MpOwotICAgIEFTU0VSVF9UUlVF
KGxvZ2dlZEluLmV4cGlyeSgpID4gbm93ICsgY3VzdG9tRXhwaXJ5IC0gNjBfcyk7Ci0gICAgQVNT
RVJUX0ZBTFNFKGxvZ2dlZEluLmhhc0V4cGlyZWQoKSk7CisgICAgQVNTRVJUX0VRKGxvZ2dlZElu
LT5hdXRoZW50aWNhdGlvblR5cGUoKSwgTG9nZ2VkSW5TdGF0dXM6OkF1dGhlbnRpY2F0aW9uVHlw
ZTo6V2ViQXV0aG4pOworICAgIEFTU0VSVF9UUlVFKGxvZ2dlZEluLT5leHBpcnkoKSA8IG5vdyAr
IGN1c3RvbUV4cGlyeSArIDYwX3MpOworICAgIEFTU0VSVF9UUlVFKGxvZ2dlZEluLT5leHBpcnko
KSA+IG5vdyArIGN1c3RvbUV4cGlyeSAtIDYwX3MpOworICAgIEFTU0VSVF9GQUxTRShsb2dnZWRJ
bi0+aGFzRXhwaXJlZCgpKTsKICAgICBhdXRvIG5ld0N1c3RvbUV4cGlyeSA9IDI0X2g7Ci0gICAg
bG9nZ2VkSW4uc2V0VGltZVRvTGl2ZShuZXdDdXN0b21FeHBpcnkpOwotICAgIEFTU0VSVF9FUShs
b2dnZWRJbi5hdXRoZW50aWNhdGlvblR5cGUoKSwgTG9nZ2VkSW5TdGF0dXM6OkF1dGhlbnRpY2F0
aW9uVHlwZTo6V2ViQXV0aG4pOwotICAgIEFTU0VSVF9UUlVFKGxvZ2dlZEluLmV4cGlyeSgpIDwg
bm93ICsgbmV3Q3VzdG9tRXhwaXJ5ICsgNjBfcyk7Ci0gICAgQVNTRVJUX1RSVUUobG9nZ2VkSW4u
ZXhwaXJ5KCkgPiBub3cgKyBuZXdDdXN0b21FeHBpcnkgLSA2MF9zKTsKLSAgICBBU1NFUlRfRkFM
U0UobG9nZ2VkSW4uaGFzRXhwaXJlZCgpKTsKKyAgICBsb2dnZWRJbi0+c2V0VGltZVRvTGl2ZShu
ZXdDdXN0b21FeHBpcnkpOworICAgIEFTU0VSVF9FUShsb2dnZWRJbi0+YXV0aGVudGljYXRpb25U
eXBlKCksIExvZ2dlZEluU3RhdHVzOjpBdXRoZW50aWNhdGlvblR5cGU6OldlYkF1dGhuKTsKKyAg
ICBBU1NFUlRfVFJVRShsb2dnZWRJbi0+ZXhwaXJ5KCkgPCBub3cgKyBuZXdDdXN0b21FeHBpcnkg
KyA2MF9zKTsKKyAgICBBU1NFUlRfVFJVRShsb2dnZWRJbi0+ZXhwaXJ5KCkgPiBub3cgKyBuZXdD
dXN0b21FeHBpcnkgLSA2MF9zKTsKKyAgICBBU1NFUlRfRkFMU0UobG9nZ2VkSW4tPmhhc0V4cGly
ZWQoKSk7CiB9CiAKIC8vIE5lZ2F0aXZlIHRlc3QgY2FzZXMuCkBAIC0xNTYsMjAgKzE1NiwyMCBA
QCBURVNUKExvZ2dlZEluU3RhdHVzLCBDbGFtcGVkRXhwaXJ5TG9uZykKIAogICAgIC8vIFRvbyBs
b25nIGV4cGlyaWVzIGZvciBtYW5hZ2VkIGF1dGggdHlwZXMgc2hvdWxkIGJlIGNsYW1wZWQgdG8g
TG9nZ2VkSW5TdGF0dXM6OlRpbWVUb0xpdmVMb25nLgogICAgIGF1dG8gbG9nZ2VkSW5SZXN1bHQg
PSBMb2dnZWRJblN0YXR1czo6Y3JlYXRlKGxvZ2luRG9tYWluLCAiYWRtaW4iX3MsIExvZ2dlZElu
U3RhdHVzOjpDcmVkZW50aWFsVG9rZW5UeXBlOjpIVFRQU3RhdGVUb2tlbiwgTG9nZ2VkSW5TdGF0
dXM6OkF1dGhlbnRpY2F0aW9uVHlwZTo6V2ViQXV0aG4sIExvZ2dlZEluU3RhdHVzOjpUaW1lVG9M
aXZlTG9uZyArIDI0X2gpOwotICAgIGF1dG8mIGxvZ2dlZEluID0gbG9nZ2VkSW5SZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCkuZ2V0KCk7CisgICAgYXV0byBsb2dnZWRJbiA9IGxvZ2dlZEluUmVz
dWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogICAgIGF1dG8gbm93ID0gV2FsbFRpbWU6Om5vdygp
OwotICAgIEFTU0VSVF9FUShsb2dnZWRJbi5hdXRoZW50aWNhdGlvblR5cGUoKSwgTG9nZ2VkSW5T
dGF0dXM6OkF1dGhlbnRpY2F0aW9uVHlwZTo6V2ViQXV0aG4pOwotICAgIEFTU0VSVF9UUlVFKGxv
Z2dlZEluLmV4cGlyeSgpIDwgbm93ICsgTG9nZ2VkSW5TdGF0dXM6OlRpbWVUb0xpdmVMb25nICsg
NjBfcyk7Ci0gICAgQVNTRVJUX1RSVUUobG9nZ2VkSW4uZXhwaXJ5KCkgPiBub3cgKyBMb2dnZWRJ
blN0YXR1czo6VGltZVRvTGl2ZUxvbmcgLSA2MF9zKTsKLSAgICBBU1NFUlRfRkFMU0UobG9nZ2Vk
SW4uaGFzRXhwaXJlZCgpKTsKKyAgICBBU1NFUlRfRVEobG9nZ2VkSW4tPmF1dGhlbnRpY2F0aW9u
VHlwZSgpLCBMb2dnZWRJblN0YXR1czo6QXV0aGVudGljYXRpb25UeXBlOjpXZWJBdXRobik7Cisg
ICAgQVNTRVJUX1RSVUUobG9nZ2VkSW4tPmV4cGlyeSgpIDwgbm93ICsgTG9nZ2VkSW5TdGF0dXM6
OlRpbWVUb0xpdmVMb25nICsgNjBfcyk7CisgICAgQVNTRVJUX1RSVUUobG9nZ2VkSW4tPmV4cGly
eSgpID4gbm93ICsgTG9nZ2VkSW5TdGF0dXM6OlRpbWVUb0xpdmVMb25nIC0gNjBfcyk7CisgICAg
QVNTRVJUX0ZBTFNFKGxvZ2dlZEluLT5oYXNFeHBpcmVkKCkpOwogCiAgICAgLy8gUmVuZXdlZCwg
dG9vIGxvbmcgZXhwaXJpZXMgZm9yIG1hbmFnZWQgYXV0aCB0eXBlcyBzaG91bGQgYWxzbyBiZSBj
bGFtcGVkIHRvIExvZ2dlZEluU3RhdHVzOjpUaW1lVG9MaXZlTG9uZy4KICAgICBhdXRvIG5ld0N1
c3RvbUV4cGlyeSA9IExvZ2dlZEluU3RhdHVzOjpUaW1lVG9MaXZlTG9uZyArIDI0X2g7Ci0gICAg
bG9nZ2VkSW4uc2V0VGltZVRvTGl2ZShuZXdDdXN0b21FeHBpcnkpOwotICAgIEFTU0VSVF9FUShs
b2dnZWRJbi5hdXRoZW50aWNhdGlvblR5cGUoKSwgTG9nZ2VkSW5TdGF0dXM6OkF1dGhlbnRpY2F0
aW9uVHlwZTo6V2ViQXV0aG4pOwotICAgIEFTU0VSVF9UUlVFKGxvZ2dlZEluLmV4cGlyeSgpIDwg
bm93ICsgTG9nZ2VkSW5TdGF0dXM6OlRpbWVUb0xpdmVMb25nICsgNjBfcyk7Ci0gICAgQVNTRVJU
X1RSVUUobG9nZ2VkSW4uZXhwaXJ5KCkgPiBub3cgKyBMb2dnZWRJblN0YXR1czo6VGltZVRvTGl2
ZUxvbmcgLSA2MF9zKTsKLSAgICBBU1NFUlRfRkFMU0UobG9nZ2VkSW4uaGFzRXhwaXJlZCgpKTsK
KyAgICBsb2dnZWRJbi0+c2V0VGltZVRvTGl2ZShuZXdDdXN0b21FeHBpcnkpOworICAgIEFTU0VS
VF9FUShsb2dnZWRJbi0+YXV0aGVudGljYXRpb25UeXBlKCksIExvZ2dlZEluU3RhdHVzOjpBdXRo
ZW50aWNhdGlvblR5cGU6OldlYkF1dGhuKTsKKyAgICBBU1NFUlRfVFJVRShsb2dnZWRJbi0+ZXhw
aXJ5KCkgPCBub3cgKyBMb2dnZWRJblN0YXR1czo6VGltZVRvTGl2ZUxvbmcgKyA2MF9zKTsKKyAg
ICBBU1NFUlRfVFJVRShsb2dnZWRJbi0+ZXhwaXJ5KCkgPiBub3cgKyBMb2dnZWRJblN0YXR1czo6
VGltZVRvTGl2ZUxvbmcgLSA2MF9zKTsKKyAgICBBU1NFUlRfRkFMU0UobG9nZ2VkSW4tPmhhc0V4
cGlyZWQoKSk7CiB9CiAKIFRFU1QoTG9nZ2VkSW5TdGF0dXMsIENsYW1wZWRFeHBpcnlTaG9ydCkK
QEAgLTE3OCw3ICsxNzgsNyBAQCBURVNUKExvZ2dlZEluU3RhdHVzLCBDbGFtcGVkRXhwaXJ5U2hv
cnQpCiAKICAgICAvLyBUb28gbG9uZyBleHBpcmllcyBmb3IgdW5tYW5hZ2VkIGF1dGggdHlwZXMg
c2hvdWxkIGJlIGNsYW1wZWQgdG8gTG9nZ2VkSW5TdGF0dXM6OlRpbWVUb0xpdmVTaG9ydC4KICAg
ICBhdXRvIGxvZ2dlZEluUmVzdWx0ID0gTG9nZ2VkSW5TdGF0dXM6OmNyZWF0ZShsb2dpbkRvbWFp
biwgImFkbWluIl9zLCBMb2dnZWRJblN0YXR1czo6Q3JlZGVudGlhbFRva2VuVHlwZTo6SFRUUFN0
YXRlVG9rZW4sIExvZ2dlZEluU3RhdHVzOjpBdXRoZW50aWNhdGlvblR5cGU6OlVubWFuYWdlZCwg
TG9nZ2VkSW5TdGF0dXM6OlRpbWVUb0xpdmVTaG9ydCArIDI0X2gpOwotICAgIGF1dG8mIGxvZ2dl
ZEluID0gbG9nZ2VkSW5SZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkuZ2V0KCk7CisgICAgYXV0
byBsb2dnZWRJbiA9IGxvZ2dlZEluUmVzdWx0LnJldHVyblZhbHVlKCkuZ2V0KCk7CiAgICAgYXV0
byBub3cgPSBXYWxsVGltZTo6bm93KCk7CiAgICAgQVNTRVJUX0VRKGxvZ2dlZEluLmF1dGhlbnRp
Y2F0aW9uVHlwZSgpLCBMb2dnZWRJblN0YXR1czo6QXV0aGVudGljYXRpb25UeXBlOjpVbm1hbmFn
ZWQpOwogICAgIEFTU0VSVF9UUlVFKGxvZ2dlZEluLmV4cGlyeSgpIDwgbm93ICsgTG9nZ2VkSW5T
dGF0dXM6OlRpbWVUb0xpdmVTaG9ydCArIDYwX3MpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>