<?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>132894</bug_id>
          
          <creation_ts>2014-05-13 18:36:00 -0700</creation_ts>
          <short_desc>[UI-side compositing] Scrolling breaks on news.google.com on iOS</short_desc>
          <delta_ts>2014-05-14 22:34:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>132943</dup_id>
          
          <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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1009153</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-13 18:36:00 -0700</bug_when>
    <thetext>[UI-side compositing] Scrolling breaks on news.google.com on iOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009154</commentid>
    <comment_count>1</comment_count>
      <attachid>231425</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-13 18:38:57 -0700</bug_when>
    <thetext>Created attachment 231425
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009155</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-13 18:39:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/16887057&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009156</commentid>
    <comment_count>3</comment_count>
      <attachid>231425</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-05-13 18:40:29 -0700</bug_when>
    <thetext>Comment on attachment 231425
Patch

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

&gt; Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:427
&gt; +    return [m_layer.get() animationForKey:key];

no .get()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009157</commentid>
    <comment_count>4</comment_count>
      <attachid>231426</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-13 18:49:46 -0700</bug_when>
    <thetext>Created attachment 231426
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009166</commentid>
    <comment_count>5</comment_count>
      <attachid>231429</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-13 20:32:06 -0700</bug_when>
    <thetext>Created attachment 231429
EWS again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009186</commentid>
    <comment_count>6</comment_count>
      <attachid>231429</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-05-13 22:28:48 -0700</bug_when>
    <thetext>Comment on attachment 231429
EWS again

Windows EWS error is:

     1&gt;..\platform\graphics\ca\win\PlatformCALayerWin.cpp(313): error C2440: &apos;initializing&apos; : cannot convert from &apos;WTF::HashTableConstIteratorAdapter&lt;WTF::HashTable&lt;WTF::String,WTF::KeyValuePair&lt;WTF::String,WTF::RefPtr&lt;WebCore::PlatformCAAnimation&gt;&gt;,WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::String,WTF::RefPtr&lt;WebCore::PlatformCAAnimation&gt;&gt;&gt;,WTF::StringHash,WTF::HashMap&lt;WTF::String,WTF::RefPtr&lt;WebCore::PlatformCAAnimation&gt;,WTF::DefaultHash&lt;WTF::String&gt;::Hash,WTF::HashTraits&lt;WTF::String&gt;,WTF::HashTraits&lt;MappedArg&gt;&gt;::KeyValuePairTraits,WTF::HashTraits&lt;WTF::String&gt;&gt;,WTF::KeyValuePair&lt;WTF::String,WTF::RefPtr&lt;WebCore::PlatformCAAnimation&gt;&gt;&gt;&apos; to &apos;WTF::HashTableIteratorAdapter&lt;WTF::HashTable&lt;WTF::String,WTF::KeyValuePair&lt;WTF::String,WTF::RefPtr&lt;WebCore::PlatformCAAnimation&gt;&gt;,WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::String,WTF::RefPtr&lt;WebCore::PlatformCAAnimation&gt;&gt;&gt;,WTF::StringHash,WTF::HashMap&lt;WTF::String,WTF::RefPtr&lt;WebCore::PlatformCAAnimation&gt;,WTF::DefaultHash&lt;WTF::String&gt;::Hash,WTF::HashTraits&lt;WTF::String&gt;,WTF::HashTraits&lt;MappedArg&gt;&gt;::KeyValuePairTraits,WTF::HashTraits&lt;WTF::String&gt;&gt;,WTF::KeyValuePair&lt;WTF::String,WTF::RefPtr&lt;WebCore::PlatformCAAnimation&gt;&gt;&gt;&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009187</commentid>
    <comment_count>7</comment_count>
      <attachid>231429</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-13 22:30:05 -0700</bug_when>
    <thetext>Comment on attachment 231429
EWS again

Thanks. This doesn&apos;t need review, I&apos;m just EWSing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009453</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-14 22:34:39 -0700</bug_when>
    <thetext>Bug 132943 has a better fix.

*** This bug has been marked as a duplicate of bug 132943 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231425</attachid>
            <date>2014-05-13 18:38:57 -0700</date>
            <delta_ts>2014-05-13 18:49:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132894-20140513183833.patch</filename>
            <type>text/plain</type>
            <size>13197</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4NzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDc3NTliZjU5NmI2NGQ5
NzkyYTE4MTQ4ODdkYWUwNTA3N2IyMGY2Zi4uMjZjZjhmY2FmMTU2MDMxZmJiMzUyY2NmMmExNzA5
YjY2MGFjZWY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA1LTEzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtVSS1zaWRlIGNv
bXBvc2l0aW5nXSBTY3JvbGxpbmcgYnJlYWtzIG9uIG5ld3MuZ29vZ2xlLmNvbSBvbiBpT1MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjg5NAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMTY4ODcwNTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFu
aW1hdGlvbkZvcktleSgpIGlzIHVuaW1wbGVtZW50ZWQsIHdoaWNoIGJyb2tlIGFuaW1hdGlvbgor
ICAgICAgICByZW1vdmFsLgorICAgICAgICAKKyAgICAgICAgQWRkIFBsYXRmb3JtQ0FMYXllcjo6
aGFzQW5pbWF0aW9uRm9yS2V5KCkgd2hpY2ggaXMgZWFzeSB0byBpbXBsZW1lbnQgd2l0aCBVSS1z
aWRlCisgICAgICAgIGNvbXBvc2l0aW5nLCBhbmQgdXNlIGl0IGluIEdyYXBoaWNzTGF5ZXJDQTo6
cmVtb3ZlQ0FBbmltYXRpb25Gcm9tTGF5ZXIoKSB0byBlbnN1cmUKKyAgICAgICAgdGhhdCB3ZSBy
ZW1vdmUgdHJhbnNpdGlvbnMgY29ycmVjdGx5LgorICAgICAgICAKKyAgICAgICAgUmVtb3ZlIHNv
bWUgcmVkdW5kYW50IHBhcmFtZXRlciBuYW1lcyBmcm9tIGhlYWRlciBmaWxlcy4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6Om1vdmVPckNvcHlMYXllckFuaW1hdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnJlbW92ZUNBQW5pbWF0aW9uRnJvbUxheWVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbToK
KyAgICAgICAgKFBsYXRmb3JtQ0FMYXllck1hYzo6YW5pbWF0aW9uRm9yS2V5KToKKyAgICAgICAg
KFBsYXRmb3JtQ0FMYXllck1hYzo6aGFzQW5pbWF0aW9uRm9yS2V5KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcDoKKyAgICAgICAgKFBs
YXRmb3JtQ0FMYXllcldpbjo6YW5pbWF0aW9uRm9yS2V5KToKKyAgICAgICAgKFBsYXRmb3JtQ0FM
YXllcldpbjo6aGFzQW5pbWF0aW9uRm9yS2V5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmg6CisKIDIwMTQtMDUtMTMgIEJyYWR5IEVpZHNv
biAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBwb3NpdGlvbmluZy9kcmF3
aW5nIG9mIHRoZSBpbWFnZSBjb250cm9scyBidXR0b24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYThmMDA0YmE3
ZGI5ZWE0Y2JmNDU0YzBhZWE1MTUzYTYyNmQzZTcwYi4uMTc2NWIwZmU1ZDdlODU4ZDYyZmUzYWYz
NTM0NmI4ZDc0N2M4YTQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDE0LTA1LTEz
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFtVSS1z
aWRlIGNvbXBvc2l0aW5nXSBTY3JvbGxpbmcgYnJlYWtzIG9uIG5ld3MuZ29vZ2xlLmNvbSBvbiBp
T1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjg5
NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTY4ODcwNTc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphbmlt
YXRpb25Gb3JLZXkoKSBpcyB1bmltcGxlbWVudGVkLCB3aGljaCBicm9rZSBhbmltYXRpb24KKyAg
ICAgICAgcmVtb3ZhbC4KKyAgICAgICAgCisgICAgICAgIEFkZCBQbGF0Zm9ybUNBTGF5ZXI6Omhh
c0FuaW1hdGlvbkZvcktleSgpIHdoaWNoIGlzIGVhc3kgdG8gaW1wbGVtZW50IHdpdGggVUktc2lk
ZQorICAgICAgICBjb21wb3NpdGluZywgYW5kIHVzZSBpdCBpbiBHcmFwaGljc0xheWVyQ0E6OnJl
bW92ZUNBQW5pbWF0aW9uRnJvbUxheWVyKCkgdG8gZW5zdXJlCisgICAgICAgIHRoYXQgd2UgcmVt
b3ZlIHRyYW5zaXRpb25zIGNvcnJlY3RseS4KKyAgICAgICAgCisgICAgICAgIFJlbW92ZSBzb21l
IHJlZHVuZGFudCBwYXJhbWV0ZXIgbmFtZXMgZnJvbSBoZWFkZXIgZmlsZXMuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YWRkQW5pbWF0aW9uRm9yS2V5KToK
KyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVBbmltYXRpb25G
b3JLZXkpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFuaW1hdGlv
bkZvcktleSk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6aGFzQW5p
bWF0aW9uRm9yS2V5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZS5oOgorCisyMDE0LTA1LTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCiAgICAgICAgIFtpT1MgV0syXSBNYWtlIHZpZXcgZGVidWdnaW5nIGVh
c2llcgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMy
ODkyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IGNhOTliMzdkODY4NDc5Yzg3MWY0YTZlNTY1NGNkNWM1
NmQwNWEzYzAuLjMzMzBkYjFkODY5NmQ3NjU2MTY5YWQ3ZmNhYjc3MzU3Nzk3YmJkOTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmNwcApAQCAtNTc0LDYgKzU3NCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRD
aGlsZHJlblRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCkKIAogdm9pZCBH
cmFwaGljc0xheWVyQ0E6Om1vdmVPckNvcHlMYXllckFuaW1hdGlvbihNb3ZlT3JDb3B5IG9wZXJh
dGlvbiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZGVudGlmaWVyLCBQbGF0Zm9ybUNBTGF5ZXIg
KmZyb21MYXllciwgUGxhdGZvcm1DQUxheWVyICp0b0xheWVyKQogeworICAgIC8vIEZJWE1FOiB0
aGlzIGRvZXNuJ3Qgd29yayB3aXRoIFVJLXNpZGUgY29tcG9zaXRpbmcsIHdoZXJlIHdlIGRvbid0
IGhhdmUgQ0FBbmltYXRpb25zIGluIHRoZSBXZWIgUHJvY2Vzcy4KICAgICBSZWZQdHI8UGxhdGZv
cm1DQUFuaW1hdGlvbj4gYW5pbSA9IGZyb21MYXllci0+YW5pbWF0aW9uRm9yS2V5KGFuaW1hdGlv
bklkZW50aWZpZXIpOwogICAgIGlmICghYW5pbSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjI3Niw3
ICsyMjc3LDcgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OnJlbW92ZUNBQW5pbWF0aW9uRnJvbUxh
eWVyKEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSwgY28KIAogICAgIFN0cmluZyBhbmltYXRp
b25JRCA9IGFuaW1hdGlvbklkZW50aWZpZXIoYW5pbWF0aW9uTmFtZSwgcHJvcGVydHksIGluZGV4
LCBzdWJJbmRleCk7CiAKLSAgICBpZiAoIWxheWVyLT5hbmltYXRpb25Gb3JLZXkoYW5pbWF0aW9u
SUQpKQorICAgIGlmICghbGF5ZXItPmhhc0FuaW1hdGlvbkZvcktleShhbmltYXRpb25JRCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBsYXllci0+cmVtb3ZlQW5pbWF0aW9uRm9y
S2V5KGFuaW1hdGlvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKaW5kZXggZThiMmZlZWVjM2E4Nzg0NzVkMTgxOTMw
ZGViZjVjNmVjMTk3MzYxNi4uYWQxMWY1Y2YxOTMzNTMwMTBhN2Q1ZWU2OWQ4Y2Q1YjE4MmQ2YzMy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZv
cm1DQUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxh
dGZvcm1DQUxheWVyLmgKQEAgLTEyMSw5ICsxMjEsMTAgQEAgcHVibGljOgogICAgIC8vIEFueSBz
dWJsYXllcnMgcHJldmlvdXNseSBpbiB0aGUgY3VycmVudCBsYXllciBhcmUgcmVtb3ZlZC4KICAg
ICB2aXJ0dWFsIHZvaWQgYWRvcHRTdWJsYXllcnMoUGxhdGZvcm1DQUxheWVyKiBzb3VyY2UpID0g
MDsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBr
ZXksIFBsYXRmb3JtQ0FBbmltYXRpb24qKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUFu
aW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkgPSAwOwotICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBhbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBr
ZXkpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmlu
ZyYsIFBsYXRmb3JtQ0FBbmltYXRpb24qKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFu
aW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFBsYXRmb3JtQ0FBbmltYXRpb24+IGFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmKSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCBib29sIGhhc0FuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcm
KSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWFzayhQbGF0Zm9ybUNBTGF5ZXIq
KSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaAppbmRleCBiYTdmM2Y3MTczMGY1MTMwYTFh
Y2U0NmFkZjViNjUzODEwMzNlMmNhLi44MWY2ZmU4NzFmYzUyM2YzNWEzNjJlZTI0YmFlYmEyMmI5
ZTBiNzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9t
YWMvUGxhdGZvcm1DQUxheWVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oCkBAIC02MSw4ICs2MSw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgYWRvcHRTdWJsYXllcnMoUGxhdGZvcm1DQUxheWVyKiBzb3Vy
Y2UpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGFkZEFuaW1hdGlvbkZvcktleShjb25z
dCBTdHJpbmcmIGtleSwgUGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOwotICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRl
OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBhbmltYXRpb25G
b3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGFuaW1hdGlvbkZvcktleShjb25zdCBTdHJp
bmcmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQW5pbWF0aW9uRm9yS2V5
KGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRp
b25TdGFydGVkKENGVGltZUludGVydmFsIGJlZ2luVGltZSkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0
dWFsIHZvaWQgc2V0TWFzayhQbGF0Zm9ybUNBTGF5ZXIqKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1D
QUxheWVyTWFjLm1tCmluZGV4IDQwNTgwZDk5YmU2ZDU0ZmFiZGVkNjI1YWE1Zjc4ODRjMmYwMmQz
YjIuLmE2NDBiNzdmZTdjZTJkYjgxMGExZTUxMTE0YTYzMGUwYmU0YmViZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRm
b3JtQ0FMYXllck1hYy5tbQpAQCAtNDE0LDcgKzQxNCw3IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVy
TWFjOjpyZW1vdmVBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpCiAgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwogfQogCi1QYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+
IFBsYXRmb3JtQ0FMYXllck1hYzo6YW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KQor
UGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmFuaW1h
dGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkgY29uc3QKIHsKICAgICBDQVByb3BlcnR5QW5p
bWF0aW9uKiBwcm9wZXJ0eUFuaW1hdGlvbiA9IHN0YXRpY19jYXN0PENBUHJvcGVydHlBbmltYXRp
b24qPihbbV9sYXllci5nZXQoKSBhbmltYXRpb25Gb3JLZXk6a2V5XSk7CiAgICAgaWYgKCFwcm9w
ZXJ0eUFuaW1hdGlvbikKQEAgLTQyMiw2ICs0MjIsMTEgQEAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNB
QW5pbWF0aW9uPiBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmFuaW1hdGlvbkZvcktleShjb25zdCBTdHJp
bmcKICAgICByZXR1cm4gUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6Y3JlYXRlKHByb3BlcnR5QW5p
bWF0aW9uKTsKIH0KIAorYm9vbCBQbGF0Zm9ybUNBTGF5ZXJNYWM6Omhhc0FuaW1hdGlvbkZvcktl
eShjb25zdCBTdHJpbmcmIGtleSkgY29uc3QKK3sKKyAgICByZXR1cm4gW21fbGF5ZXIuZ2V0KCkg
YW5pbWF0aW9uRm9yS2V5OmtleV07Cit9CisKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXRN
YXNrKFBsYXRmb3JtQ0FMYXllciogbGF5ZXIpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93
aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCmluZGV4IGE5NDE1ZjRlYWFlZGQxOWMw
ZjhkZDhjNTJlZmE3YmQ0NWI4ZGM2NDguLmJkZjY4NDVhNzJkY2E5NGEzNWM2ODkwZWMzNDViMWY3
NjMxMzc3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCkBAIC0zMDgsNyArMzA4LDcg
QEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJXaW46OnJlbW92ZUFuaW1hdGlvbkZvcktleShjb25zdCBT
dHJpbmcmIGtleSkKICAgICBzZXROZWVkc0NvbW1pdCgpOwogfQogCi1QYXNzUmVmUHRyPFBsYXRm
b3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FMYXllcldpbjo6YW5pbWF0aW9uRm9yS2V5KGNvbnN0
IFN0cmluZyYga2V5KQorUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNB
TGF5ZXJXaW46OmFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkgY29uc3QKIHsKICAg
ICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+ID46Oml0ZXJhdG9y
IGl0ID0gbV9hbmltYXRpb25zLmZpbmQoa2V5KTsKICAgICBpZiAoaXQgPT0gbV9hbmltYXRpb25z
LmVuZCgpKQpAQCAtMzE3LDYgKzMxNywxMSBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRp
b24+IFBsYXRmb3JtQ0FMYXllcldpbjo6YW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZwogICAg
IHJldHVybiBpdC0+dmFsdWU7CiB9CiAKK2Jvb2wgUGxhdGZvcm1DQUxheWVyV2luOjpoYXNBbmlt
YXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYW5p
bWF0aW9ucy5jb250YWlucyhrZXkpOworfQorCiB2b2lkIFBsYXRmb3JtQ0FMYXllcldpbjo6c2V0
TWFzayhQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQogewogICAgIENBQ0ZMYXllclNldE1hc2sobV9s
YXllci5nZXQoKSwgbGF5ZXIgPyBsYXllci0+cGxhdGZvcm1MYXllcigpIDogMCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxh
eWVyV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZv
cm1DQUxheWVyV2luLmgKaW5kZXggZDM3MjJkNjZkYTY2MWMwYTZkNTU5ODY0M2YxMzdjYzk4MWZi
MDQ5ZC4uMGJlMGY2OTEwMzIyNTkxNjRkNzg4YzNlZmM2YzQwNjIwZDc2MWMwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXll
cldpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0
Zm9ybUNBTGF5ZXJXaW4uaApAQCAtNTUsOCArNTUsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgYWRkQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBQbGF0Zm9ybUNBQW5p
bWF0aW9uKikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1hdGlvbkZvcktl
eShjb25zdCBTdHJpbmcmIGtleSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFBs
YXRmb3JtQ0FBbmltYXRpb24+IGFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoQ0ZUaW1lSW50ZXJ2YWwg
YmVnaW5UaW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFu
aW1hdGlvbj4gYW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgYm9vbCBoYXNBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJikgY29uc3Qg
b3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWFzayhQbGF0Zm9ybUNBTGF5ZXIqKSBv
dmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCmluZGV4IGI4M2YwMGEwODI5
OWI4ZWMwZWM5MTBmMDI0M2VmNTVkMjY5ZjBlMWQuLmI4NDZlNDM3YzE1NGY1YzA4MDAwNTQzODg5
OTY4OWMyYjlhNGJjZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKQEAgLTI5OSw2
ICsyOTksOCBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YWRvcHRTdWJsYXllcnMoUGxh
dGZvcm1DQUxheWVyKiBzb3VyY2UpCiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphZGRB
bmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIFBsYXRmb3JtQ0FBbmltYXRpb24qIGFu
aW1hdGlvbikKIHsKKyAgICBtX3J1bm5pbmdBbmltYXRpb25zLmFkZChrZXkpOworCiAgICAgbV9w
cm9wZXJ0aWVzLmFkZGVkQW5pbWF0aW9ucy5zZXQoa2V5LCB0b1BsYXRmb3JtQ0FBbmltYXRpb25S
ZW1vdGUoYW5pbWF0aW9uKS0+cHJvcGVydGllcygpKTsKICAgICBtX3Byb3BlcnRpZXMubm90ZVBy
b3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpBbmltYXRpb25zQ2hh
bmdlZCk7CiAKQEAgLTMwOCwxNyArMzEwLDI0IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3Rl
OjphZGRBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIFBsYXRmb3JtQ0FBbmltCiAK
IHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVBbmltYXRpb25Gb3JLZXkoY29uc3Qg
U3RyaW5nJiBrZXkpCiB7CisgICAgbV9ydW5uaW5nQW5pbWF0aW9ucy5yZW1vdmUoa2V5KTsKKwog
ICAgIG1fcHJvcGVydGllcy5hZGRlZEFuaW1hdGlvbnMucmVtb3ZlKGtleSk7CiAgICAgbV9wcm9w
ZXJ0aWVzLmtleVBhdGhzT2ZBbmltYXRpb25zVG9SZW1vdmUuYWRkKGtleSk7CiAgICAgbV9wcm9w
ZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6
QW5pbWF0aW9uc0NoYW5nZWQpOwogfQogCi1QYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+
IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5
KQorUGFzc1JlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGU6OmFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmKSBjb25zdAogewotICAgIC8v
IEZJWE1FOiBpbXBsZW1lbnQuCisgICAgLy8gRklYTUU6IGltcGxlbWVudC4gPHJkYXI6Ly9wcm9i
bGVtLzE2OTA2MzY5PgogICAgIHJldHVybiBudWxscHRyOwogfQogCitib29sIFBsYXRmb3JtQ0FM
YXllclJlbW90ZTo6aGFzQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBjb25zdAor
eworICAgIHJldHVybiBtX3J1bm5pbmdBbmltYXRpb25zLmNvbnRhaW5zKGtleSk7Cit9CisKIHZv
aWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXRNYXNrKFBsYXRmb3JtQ0FMYXllciogbGF5ZXIp
CiB7CiAgICAgaWYgKGxheWVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaAppbmRleCA1ODM0
NmUwOTNjZjBkODE4YWZlYmE5YmMyODlhNjQ2OGRlODcwNGFkLi4wZDE1OGM3NmQwZTY4OTczNDc0
NjY5NmQ0MzhlZmVjNzBjZDIxMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgKQEAgLTYz
LDkgKzYzLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3Jt
Q0FMYXllckxpc3QqIGN1c3RvbVN1YmxheWVycygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51
bGxwdHI7IH0KICAgICB2aXJ0dWFsIHZvaWQgYWRvcHRTdWJsYXllcnMoV2ViQ29yZTo6UGxhdGZv
cm1DQUxheWVyKiBzb3VyY2UpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGFkZEFuaW1h
dGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSwgV2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlv
biopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbmltYXRpb25Gb3JLZXkoY29u
c3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpQbGF0Zm9ybUNBQW5pbWF0aW9uPiBhbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRpb25Gb3JLZXkoY29uc3QgU3Ry
aW5nJiwgV2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb24+IGFuaW1h
dGlvbkZvcktleShjb25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJv
b2wgaGFzQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBhbmltYXRpb25TdGFydGVkKENGVGltZUludGVydmFsIGJlZ2luVGltZSkg
b3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWFzayhXZWJDb3JlOjpQbGF0Zm9ybUNB
TGF5ZXIqKSBvdmVycmlkZTsKQEAgLTE3NSw2ICsxNzYsNyBAQCBwcml2YXRlOgogCiAgICAgUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyBtX3Byb3BlcnRpZXM7CiAg
ICAgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyTGlzdCBtX2NoaWxkcmVuOworICAgIEhhc2hTZXQ8
U3RyaW5nPiBtX3J1bm5pbmdBbmltYXRpb25zOwogICAgIFBsYXRmb3JtQ0FMYXllclJlbW90ZSog
bV9zdXBlcmxheWVyOwogICAgIFBsYXRmb3JtQ0FMYXllclJlbW90ZSogbV9tYXNrTGF5ZXI7CiAg
ICAgYm9vbCBtX2FjY2VsZXJhdGVzRHJhd2luZzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231426</attachid>
            <date>2014-05-13 18:49:46 -0700</date>
            <delta_ts>2014-05-13 20:32:02 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-132894-20140513184923.patch</filename>
            <type>text/plain</type>
            <size>26901</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4NzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDc3NTliZjU5NmI2NGQ5
NzkyYTE4MTQ4ODdkYWUwNTA3N2IyMGY2Zi4uMjZjZjhmY2FmMTU2MDMxZmJiMzUyY2NmMmExNzA5
YjY2MGFjZWY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA1LTEzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtVSS1zaWRlIGNv
bXBvc2l0aW5nXSBTY3JvbGxpbmcgYnJlYWtzIG9uIG5ld3MuZ29vZ2xlLmNvbSBvbiBpT1MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjg5NAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMTY4ODcwNTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFu
aW1hdGlvbkZvcktleSgpIGlzIHVuaW1wbGVtZW50ZWQsIHdoaWNoIGJyb2tlIGFuaW1hdGlvbgor
ICAgICAgICByZW1vdmFsLgorICAgICAgICAKKyAgICAgICAgQWRkIFBsYXRmb3JtQ0FMYXllcjo6
aGFzQW5pbWF0aW9uRm9yS2V5KCkgd2hpY2ggaXMgZWFzeSB0byBpbXBsZW1lbnQgd2l0aCBVSS1z
aWRlCisgICAgICAgIGNvbXBvc2l0aW5nLCBhbmQgdXNlIGl0IGluIEdyYXBoaWNzTGF5ZXJDQTo6
cmVtb3ZlQ0FBbmltYXRpb25Gcm9tTGF5ZXIoKSB0byBlbnN1cmUKKyAgICAgICAgdGhhdCB3ZSBy
ZW1vdmUgdHJhbnNpdGlvbnMgY29ycmVjdGx5LgorICAgICAgICAKKyAgICAgICAgUmVtb3ZlIHNv
bWUgcmVkdW5kYW50IHBhcmFtZXRlciBuYW1lcyBmcm9tIGhlYWRlciBmaWxlcy4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6Om1vdmVPckNvcHlMYXllckFuaW1hdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnJlbW92ZUNBQW5pbWF0aW9uRnJvbUxheWVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbToK
KyAgICAgICAgKFBsYXRmb3JtQ0FMYXllck1hYzo6YW5pbWF0aW9uRm9yS2V5KToKKyAgICAgICAg
KFBsYXRmb3JtQ0FMYXllck1hYzo6aGFzQW5pbWF0aW9uRm9yS2V5KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcDoKKyAgICAgICAgKFBs
YXRmb3JtQ0FMYXllcldpbjo6YW5pbWF0aW9uRm9yS2V5KToKKyAgICAgICAgKFBsYXRmb3JtQ0FM
YXllcldpbjo6aGFzQW5pbWF0aW9uRm9yS2V5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmg6CisKIDIwMTQtMDUtMTMgIEJyYWR5IEVpZHNv
biAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBwb3NpdGlvbmluZy9kcmF3
aW5nIG9mIHRoZSBpbWFnZSBjb250cm9scyBidXR0b24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYThmMDA0YmE3
ZGI5ZWE0Y2JmNDU0YzBhZWE1MTUzYTYyNmQzZTcwYi4uMTc2NWIwZmU1ZDdlODU4ZDYyZmUzYWYz
NTM0NmI4ZDc0N2M4YTQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDE0LTA1LTEz
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFtVSS1z
aWRlIGNvbXBvc2l0aW5nXSBTY3JvbGxpbmcgYnJlYWtzIG9uIG5ld3MuZ29vZ2xlLmNvbSBvbiBp
T1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjg5
NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTY4ODcwNTc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphbmlt
YXRpb25Gb3JLZXkoKSBpcyB1bmltcGxlbWVudGVkLCB3aGljaCBicm9rZSBhbmltYXRpb24KKyAg
ICAgICAgcmVtb3ZhbC4KKyAgICAgICAgCisgICAgICAgIEFkZCBQbGF0Zm9ybUNBTGF5ZXI6Omhh
c0FuaW1hdGlvbkZvcktleSgpIHdoaWNoIGlzIGVhc3kgdG8gaW1wbGVtZW50IHdpdGggVUktc2lk
ZQorICAgICAgICBjb21wb3NpdGluZywgYW5kIHVzZSBpdCBpbiBHcmFwaGljc0xheWVyQ0E6OnJl
bW92ZUNBQW5pbWF0aW9uRnJvbUxheWVyKCkgdG8gZW5zdXJlCisgICAgICAgIHRoYXQgd2UgcmVt
b3ZlIHRyYW5zaXRpb25zIGNvcnJlY3RseS4KKyAgICAgICAgCisgICAgICAgIFJlbW92ZSBzb21l
IHJlZHVuZGFudCBwYXJhbWV0ZXIgbmFtZXMgZnJvbSBoZWFkZXIgZmlsZXMuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YWRkQW5pbWF0aW9uRm9yS2V5KToK
KyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVBbmltYXRpb25G
b3JLZXkpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFuaW1hdGlv
bkZvcktleSk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6aGFzQW5p
bWF0aW9uRm9yS2V5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZS5oOgorCisyMDE0LTA1LTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCiAgICAgICAgIFtpT1MgV0syXSBNYWtlIHZpZXcgZGVidWdnaW5nIGVh
c2llcgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMy
ODkyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IGNhOTliMzdkODY4NDc5Yzg3MWY0YTZlNTY1NGNkNWM1
NmQwNWEzYzAuLjMzMzBkYjFkODY5NmQ3NjU2MTY5YWQ3ZmNhYjc3MzU3Nzk3YmJkOTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmNwcApAQCAtNTc0LDYgKzU3NCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRD
aGlsZHJlblRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCkKIAogdm9pZCBH
cmFwaGljc0xheWVyQ0E6Om1vdmVPckNvcHlMYXllckFuaW1hdGlvbihNb3ZlT3JDb3B5IG9wZXJh
dGlvbiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZGVudGlmaWVyLCBQbGF0Zm9ybUNBTGF5ZXIg
KmZyb21MYXllciwgUGxhdGZvcm1DQUxheWVyICp0b0xheWVyKQogeworICAgIC8vIEZJWE1FOiB0
aGlzIGRvZXNuJ3Qgd29yayB3aXRoIFVJLXNpZGUgY29tcG9zaXRpbmcsIHdoZXJlIHdlIGRvbid0
IGhhdmUgQ0FBbmltYXRpb25zIGluIHRoZSBXZWIgUHJvY2Vzcy4KICAgICBSZWZQdHI8UGxhdGZv
cm1DQUFuaW1hdGlvbj4gYW5pbSA9IGZyb21MYXllci0+YW5pbWF0aW9uRm9yS2V5KGFuaW1hdGlv
bklkZW50aWZpZXIpOwogICAgIGlmICghYW5pbSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjI3Niw3
ICsyMjc3LDcgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OnJlbW92ZUNBQW5pbWF0aW9uRnJvbUxh
eWVyKEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSwgY28KIAogICAgIFN0cmluZyBhbmltYXRp
b25JRCA9IGFuaW1hdGlvbklkZW50aWZpZXIoYW5pbWF0aW9uTmFtZSwgcHJvcGVydHksIGluZGV4
LCBzdWJJbmRleCk7CiAKLSAgICBpZiAoIWxheWVyLT5hbmltYXRpb25Gb3JLZXkoYW5pbWF0aW9u
SUQpKQorICAgIGlmICghbGF5ZXItPmhhc0FuaW1hdGlvbkZvcktleShhbmltYXRpb25JRCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBsYXllci0+cmVtb3ZlQW5pbWF0aW9uRm9y
S2V5KGFuaW1hdGlvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKaW5kZXggZThiMmZlZWVjM2E4Nzg0NzVkMTgxOTMw
ZGViZjVjNmVjMTk3MzYxNi4uYWQxMWY1Y2YxOTMzNTMwMTBhN2Q1ZWU2OWQ4Y2Q1YjE4MmQ2YzMy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZv
cm1DQUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxh
dGZvcm1DQUxheWVyLmgKQEAgLTEyMSw5ICsxMjEsMTAgQEAgcHVibGljOgogICAgIC8vIEFueSBz
dWJsYXllcnMgcHJldmlvdXNseSBpbiB0aGUgY3VycmVudCBsYXllciBhcmUgcmVtb3ZlZC4KICAg
ICB2aXJ0dWFsIHZvaWQgYWRvcHRTdWJsYXllcnMoUGxhdGZvcm1DQUxheWVyKiBzb3VyY2UpID0g
MDsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBr
ZXksIFBsYXRmb3JtQ0FBbmltYXRpb24qKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUFu
aW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkgPSAwOwotICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBhbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBr
ZXkpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmlu
ZyYsIFBsYXRmb3JtQ0FBbmltYXRpb24qKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFu
aW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFBsYXRmb3JtQ0FBbmltYXRpb24+IGFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmKSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCBib29sIGhhc0FuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcm
KSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWFzayhQbGF0Zm9ybUNBTGF5ZXIq
KSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaAppbmRleCBiYTdmM2Y3MTczMGY1MTMwYTFh
Y2U0NmFkZjViNjUzODEwMzNlMmNhLi44MWY2ZmU4NzFmYzUyM2YzNWEzNjJlZTI0YmFlYmEyMmI5
ZTBiNzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9t
YWMvUGxhdGZvcm1DQUxheWVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oCkBAIC02MSw4ICs2MSw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgYWRvcHRTdWJsYXllcnMoUGxhdGZvcm1DQUxheWVyKiBzb3Vy
Y2UpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGFkZEFuaW1hdGlvbkZvcktleShjb25z
dCBTdHJpbmcmIGtleSwgUGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOwotICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRl
OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBhbmltYXRpb25G
b3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGFuaW1hdGlvbkZvcktleShjb25zdCBTdHJp
bmcmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQW5pbWF0aW9uRm9yS2V5
KGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRp
b25TdGFydGVkKENGVGltZUludGVydmFsIGJlZ2luVGltZSkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0
dWFsIHZvaWQgc2V0TWFzayhQbGF0Zm9ybUNBTGF5ZXIqKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1D
QUxheWVyTWFjLm1tCmluZGV4IDQwNTgwZDk5YmU2ZDU0ZmFiZGVkNjI1YWE1Zjc4ODRjMmYwMmQz
YjIuLmZjNDE4NjllNjhjM2ZhZjU5OWIwZGMxYjllYjkwOGY1NDYzOTFmZDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRm
b3JtQ0FMYXllck1hYy5tbQpAQCAtMjg5LDcgKzI4OSw3IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1D
QUxheWVyPiBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmNsb25lKFBsYXRmb3JtQ0FMYXllckNsaWVudCog
b3duCiAKIFBsYXRmb3JtQ0FMYXllck1hYzo6flBsYXRmb3JtQ0FMYXllck1hYygpCiB7Ci0gICAg
W21fbGF5ZXIuZ2V0KCkgc2V0VmFsdWU6bmlsIGZvcktleTpwbGF0Zm9ybUNBTGF5ZXJQb2ludGVy
XTsKKyAgICBbbV9sYXllciBzZXRWYWx1ZTpuaWwgZm9yS2V5OnBsYXRmb3JtQ0FMYXllclBvaW50
ZXJdOwogICAgIAogICAgIC8vIFJlbW92ZSB0aGUgb3duZXIgcG9pbnRlciBmcm9tIHRoZSBkZWxl
Z2F0ZSBpbiBjYXNlIHRoZXJlIGlzIGEgcGVuZGluZyBhbmltYXRpb25TdGFydGVkIGV2ZW50Lgog
ICAgIFtzdGF0aWNfY2FzdDxXZWJBbmltYXRpb25EZWxlZ2F0ZSo+KG1fZGVsZWdhdGUuZ2V0KCkp
IHNldE93bmVyOm5pbF07CkBAIC0zMDgsMjggKzMwOCwyOCBAQCB2b2lkIFBsYXRmb3JtQ0FMYXll
ck1hYzo6c2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogZGlydHlSZWN0KQogewogICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIGlmIChkaXJ0eVJlY3QpCi0gICAgICAg
IFttX2xheWVyLmdldCgpIHNldE5lZWRzRGlzcGxheUluUmVjdDoqZGlydHlSZWN0XTsKKyAgICAg
ICAgW21fbGF5ZXIgc2V0TmVlZHNEaXNwbGF5SW5SZWN0OipkaXJ0eVJlY3RdOwogICAgIGVsc2UK
LSAgICAgICAgW21fbGF5ZXIuZ2V0KCkgc2V0TmVlZHNEaXNwbGF5XTsKKyAgICAgICAgW21fbGF5
ZXIgc2V0TmVlZHNEaXNwbGF5XTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAg
ICAgCiB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0Q29udGVudHNDaGFuZ2VkKCkKIHsKICAg
ICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBbbV9sYXllci5nZXQoKSBzZXRDb250
ZW50c0NoYW5nZWRdOworICAgIFttX2xheWVyIHNldENvbnRlbnRzQ2hhbmdlZF07CiAgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiBQbGF0Zm9ybUNBTGF5ZXIqIFBsYXRmb3JtQ0FM
YXllck1hYzo6c3VwZXJsYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHBsYXRmb3JtQ0FMYXll
cihbbV9sYXllci5nZXQoKSBzdXBlcmxheWVyXSk7CisgICAgcmV0dXJuIHBsYXRmb3JtQ0FMYXll
cihbbV9sYXllciBzdXBlcmxheWVyXSk7CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpy
ZW1vdmVGcm9tU3VwZXJsYXllcigpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
Ci0gICAgW21fbGF5ZXIuZ2V0KCkgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOworICAgIFttX2xheWVy
IHJlbW92ZUZyb21TdXBlcmxheWVyXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9
CiAKQEAgLTM0Niw3ICszNDYsNyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0U3VibGF5
ZXJzKGNvbnN0IFBsYXRmb3JtQ0FMYXllckxpc3QmIGxpc3QpCiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBsaXN0LnNpemUoKTsgKytpKQogICAgICAgICBbc3VibGF5ZXJzIGFkZE9iamVjdDps
aXN0W2ldLT5tX2xheWVyLmdldCgpXTsKIAotICAgIFttX2xheWVyLmdldCgpIHNldFN1YmxheWVy
czpzdWJsYXllcnNdOworICAgIFttX2xheWVyIHNldFN1YmxheWVyczpzdWJsYXllcnNdOwogICAg
IFtzdWJsYXllcnMgcmVsZWFzZV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQpA
QCAtMzU0LDcgKzM1NCw3IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXRTdWJsYXllcnMo
Y29uc3QgUGxhdGZvcm1DQUxheWVyTGlzdCYgbGlzdCkKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFj
OjpyZW1vdmVBbGxTdWJsYXllcnMoKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwotICAgIFttX2xheWVyLmdldCgpIHNldFN1YmxheWVyczpuaWxdOworICAgIFttX2xheWVyIHNl
dFN1YmxheWVyczpuaWxdOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIApAQCAt
MzYyLDcgKzM2Miw3IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjphcHBlbmRTdWJsYXllcihQ
bGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwogICAgIEFTU0VSVChtX2xheWVyICE9IGxheWVyLT5tX2xheWVyKTsKLSAgICBbbV9sYXllci5n
ZXQoKSBhZGRTdWJsYXllcjpsYXllci0+bV9sYXllci5nZXQoKV07CisgICAgW21fbGF5ZXIgYWRk
U3VibGF5ZXI6bGF5ZXItPm1fbGF5ZXIuZ2V0KCldOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKIH0KIApAQCAtMzcwLDcgKzM3MCw3IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpp
bnNlcnRTdWJsYXllcihQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyLCBzaXplX3QgaW5kZXgpCiB7CiAg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgQVNTRVJUKG1fbGF5ZXIgIT0gbGF5
ZXItPm1fbGF5ZXIpOwotICAgIFttX2xheWVyLmdldCgpIGluc2VydFN1YmxheWVyOmxheWVyLT5t
X2xheWVyLmdldCgpIGF0SW5kZXg6aW5kZXhdOworICAgIFttX2xheWVyIGluc2VydFN1YmxheWVy
OmxheWVyLT5tX2xheWVyLmdldCgpIGF0SW5kZXg6aW5kZXhdOwogICAgIEVORF9CTE9DS19PQkpD
X0VYQ0VQVElPTlMKIH0KIApAQCAtMzc4LDE0ICszNzgsMTQgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5
ZXJNYWM6OnJlcGxhY2VTdWJsYXllcihQbGF0Zm9ybUNBTGF5ZXIqIHJlZmVyZW5jZSwgUGxhdGZv
cm1DQUwKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBBU1NFUlQobV9s
YXllciAhPSBsYXllci0+bV9sYXllcik7Ci0gICAgW21fbGF5ZXIuZ2V0KCkgcmVwbGFjZVN1Ymxh
eWVyOnJlZmVyZW5jZS0+bV9sYXllci5nZXQoKSB3aXRoOmxheWVyLT5tX2xheWVyLmdldCgpXTsK
KyAgICBbbV9sYXllciByZXBsYWNlU3VibGF5ZXI6cmVmZXJlbmNlLT5tX2xheWVyLmdldCgpIHdp
dGg6bGF5ZXItPm1fbGF5ZXIuZ2V0KCldOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
IH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmFkb3B0U3VibGF5ZXJzKFBsYXRmb3JtQ0FM
YXllciogc291cmNlKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFtt
X2xheWVyLmdldCgpIHNldFN1YmxheWVyczpbc291cmNlLT5tX2xheWVyLmdldCgpIHN1YmxheWVy
c11dOworICAgIFttX2xheWVyIHNldFN1YmxheWVyczpbc291cmNlLT5tX2xheWVyLmdldCgpIHN1
YmxheWVyc11dOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIApAQCAtNDAzLDUz
ICs0MDMsNTggQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmFkZEFuaW1hdGlvbkZvcktleShj
b25zdCBTdHJpbmcmIGtleSwgUGxhdGZvcm1DQUFuaW1hdGkKICAgICAgICAgW3Byb3BlcnR5QW5p
bWF0aW9uIHNldERlbGVnYXRlOnN0YXRpY19jYXN0PGlkPihtX2RlbGVnYXRlLmdldCgpKV07CiAg
ICAgIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFttX2xheWVyLmdldCgp
IGFkZEFuaW1hdGlvbjpwcm9wZXJ0eUFuaW1hdGlvbiBmb3JLZXk6a2V5XTsKKyAgICBbbV9sYXll
ciBhZGRBbmltYXRpb246cHJvcGVydHlBbmltYXRpb24gZm9yS2V5OmtleV07CiAgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6cmVtb3Zl
QW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KQogewogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUwotICAgIFttX2xheWVyLmdldCgpIHJlbW92ZUFuaW1hdGlvbkZvcktleTpr
ZXldOworICAgIFttX2xheWVyIHJlbW92ZUFuaW1hdGlvbkZvcktleTprZXldOwogICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAotUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9u
PiBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkK
K1Bhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUxheWVyTWFjOjphbmlt
YXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0CiB7Ci0gICAgQ0FQcm9wZXJ0eUFu
aW1hdGlvbiogcHJvcGVydHlBbmltYXRpb24gPSBzdGF0aWNfY2FzdDxDQVByb3BlcnR5QW5pbWF0
aW9uKj4oW21fbGF5ZXIuZ2V0KCkgYW5pbWF0aW9uRm9yS2V5OmtleV0pOworICAgIENBUHJvcGVy
dHlBbmltYXRpb24qIHByb3BlcnR5QW5pbWF0aW9uID0gc3RhdGljX2Nhc3Q8Q0FQcm9wZXJ0eUFu
aW1hdGlvbio+KFttX2xheWVyIGFuaW1hdGlvbkZvcktleTprZXldKTsKICAgICBpZiAoIXByb3Bl
cnR5QW5pbWF0aW9uKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gUGxhdGZvcm1DQUFu
aW1hdGlvbk1hYzo6Y3JlYXRlKHByb3BlcnR5QW5pbWF0aW9uKTsKIH0KIAorYm9vbCBQbGF0Zm9y
bUNBTGF5ZXJNYWM6Omhhc0FuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkgY29uc3QK
K3sKKyAgICByZXR1cm4gW21fbGF5ZXIgYW5pbWF0aW9uRm9yS2V5OmtleV07Cit9CisKIHZvaWQg
UGxhdGZvcm1DQUxheWVyTWFjOjpzZXRNYXNrKFBsYXRmb3JtQ0FMYXllciogbGF5ZXIpCiB7CiAg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0TWFz
azpsYXllciA/IGxheWVyLT5wbGF0Zm9ybUxheWVyKCkgOiAwXTsKKyAgICBbbV9sYXllciBzZXRN
YXNrOmxheWVyID8gbGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSA6IDBdOwogICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlMKIH0KIAogYm9vbCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmlzT3BhcXVlKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gW21fbGF5ZXIuZ2V0KCkgaXNPcGFxdWVdOworICAgIHJldHVy
biBbbV9sYXllciBpc09wYXF1ZV07CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXRP
cGFxdWUoYm9vbCB2YWx1ZSkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAg
ICBbbV9sYXllci5nZXQoKSBzZXRPcGFxdWU6dmFsdWVdOworICAgIFttX2xheWVyIHNldE9wYXF1
ZTp2YWx1ZV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiBGbG9hdFJlY3Qg
UGxhdGZvcm1DQUxheWVyTWFjOjpib3VuZHMoKSBjb25zdAogewotICAgIHJldHVybiBbbV9sYXll
ci5nZXQoKSBib3VuZHNdOworICAgIHJldHVybiBbbV9sYXllciBib3VuZHNdOwogfQogCiB2b2lk
IFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0Qm91bmRzKGNvbnN0IEZsb2F0UmVjdCYgdmFsdWUpCiB7
CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0
Qm91bmRzOnZhbHVlXTsKKyAgICBbbV9sYXllciBzZXRCb3VuZHM6dmFsdWVdOwogICAgIAogICAg
IGlmIChyZXF1aXJlc0N1c3RvbUFwcGVhcmFuY2VVcGRhdGVPbkJvdW5kc0NoYW5nZSgpKQogICAg
ICAgICB1cGRhdGVDdXN0b21BcHBlYXJhbmNlKG1fY3VzdG9tQXBwZWFyYW5jZSk7CkBAIC00NTks
MTQ0ICs0NjQsMTQ0IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXRCb3VuZHMoY29uc3Qg
RmxvYXRSZWN0JiB2YWx1ZSkKIAogRmxvYXRQb2ludDNEIFBsYXRmb3JtQ0FMYXllck1hYzo6cG9z
aXRpb24oKSBjb25zdAogewotICAgIENHUG9pbnQgcG9pbnQgPSBbbV9sYXllci5nZXQoKSBwb3Np
dGlvbl07Ci0gICAgcmV0dXJuIEZsb2F0UG9pbnQzRChwb2ludC54LCBwb2ludC55LCBbbV9sYXll
ci5nZXQoKSB6UG9zaXRpb25dKTsKKyAgICBDR1BvaW50IHBvaW50ID0gW21fbGF5ZXIgcG9zaXRp
b25dOworICAgIHJldHVybiBGbG9hdFBvaW50M0QocG9pbnQueCwgcG9pbnQueSwgW21fbGF5ZXIg
elBvc2l0aW9uXSk7CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXRQb3NpdGlvbihj
b25zdCBGbG9hdFBvaW50M0QmIHZhbHVlKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUwotICAgIFttX2xheWVyLmdldCgpIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKHZhbHVlLngo
KSwgdmFsdWUueSgpKV07Ci0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0WlBvc2l0aW9uOnZhbHVlLnoo
KV07CisgICAgW21fbGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UodmFsdWUueCgpLCB2YWx1
ZS55KCkpXTsKKyAgICBbbV9sYXllciBzZXRaUG9zaXRpb246dmFsdWUueigpXTsKICAgICBFTkRf
QkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIEZsb2F0UG9pbnQzRCBQbGF0Zm9ybUNBTGF5ZXJN
YWM6OmFuY2hvclBvaW50KCkgY29uc3QKIHsKLSAgICBDR1BvaW50IHBvaW50ID0gW21fbGF5ZXIu
Z2V0KCkgYW5jaG9yUG9pbnRdOworICAgIENHUG9pbnQgcG9pbnQgPSBbbV9sYXllciBhbmNob3JQ
b2ludF07CiAgICAgZmxvYXQgeiA9IDA7Ci0gICAgeiA9IFttX2xheWVyLmdldCgpIGFuY2hvclBv
aW50Wl07CisgICAgeiA9IFttX2xheWVyIGFuY2hvclBvaW50Wl07CiAgICAgcmV0dXJuIEZsb2F0
UG9pbnQzRChwb2ludC54LCBwb2ludC55LCB6KTsKIH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJN
YWM6OnNldEFuY2hvclBvaW50KGNvbnN0IEZsb2F0UG9pbnQzRCYgdmFsdWUpCiB7CiAgICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0QW5jaG9yUG9p
bnQ6Q0dQb2ludE1ha2UodmFsdWUueCgpLCB2YWx1ZS55KCkpXTsKLSAgICBbbV9sYXllci5nZXQo
KSBzZXRBbmNob3JQb2ludFo6dmFsdWUueigpXTsKKyAgICBbbV9sYXllciBzZXRBbmNob3JQb2lu
dDpDR1BvaW50TWFrZSh2YWx1ZS54KCksIHZhbHVlLnkoKSldOworICAgIFttX2xheWVyIHNldEFu
Y2hvclBvaW50Wjp2YWx1ZS56KCldOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0K
IAogVHJhbnNmb3JtYXRpb25NYXRyaXggUGxhdGZvcm1DQUxheWVyTWFjOjp0cmFuc2Zvcm0oKSBj
b25zdAogewotICAgIHJldHVybiBbbV9sYXllci5nZXQoKSB0cmFuc2Zvcm1dOworICAgIHJldHVy
biBbbV9sYXllciB0cmFuc2Zvcm1dOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0
VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKIHsKICAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBbbV9sYXllci5nZXQoKSBzZXRUcmFuc2Zvcm06
dmFsdWVdOworICAgIFttX2xheWVyIHNldFRyYW5zZm9ybTp2YWx1ZV07CiAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogfQogCiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBQbGF0Zm9ybUNBTGF5
ZXJNYWM6OnN1YmxheWVyVHJhbnNmb3JtKCkgY29uc3QKIHsKLSAgICByZXR1cm4gW21fbGF5ZXIu
Z2V0KCkgc3VibGF5ZXJUcmFuc2Zvcm1dOworICAgIHJldHVybiBbbV9sYXllciBzdWJsYXllclRy
YW5zZm9ybV07CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXRTdWJsYXllclRyYW5z
Zm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdmFsdWUpCiB7CiAgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0U3VibGF5ZXJUcmFuc2Zv
cm06dmFsdWVdOworICAgIFttX2xheWVyIHNldFN1YmxheWVyVHJhbnNmb3JtOnZhbHVlXTsKICAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFj
OjpzZXRIaWRkZW4oYm9vbCB2YWx1ZSkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKLSAgICBbbV9sYXllci5nZXQoKSBzZXRIaWRkZW46dmFsdWVdOworICAgIFttX2xheWVyIHNl
dEhpZGRlbjp2YWx1ZV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiB2b2lk
IFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0R2VvbWV0cnlGbGlwcGVkKGJvb2wgdmFsdWUpCiB7CiAg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0R2Vv
bWV0cnlGbGlwcGVkOnZhbHVlXTsKKyAgICBbbV9sYXllciBzZXRHZW9tZXRyeUZsaXBwZWQ6dmFs
dWVdOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogYm9vbCBQbGF0Zm9ybUNB
TGF5ZXJNYWM6OmlzRG91YmxlU2lkZWQoKSBjb25zdAogewotICAgIHJldHVybiBbbV9sYXllci5n
ZXQoKSBpc0RvdWJsZVNpZGVkXTsKKyAgICByZXR1cm4gW21fbGF5ZXIgaXNEb3VibGVTaWRlZF07
CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXREb3VibGVTaWRlZChib29sIHZhbHVl
KQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFttX2xheWVyLmdldCgp
IHNldERvdWJsZVNpZGVkOnZhbHVlXTsKKyAgICBbbV9sYXllciBzZXREb3VibGVTaWRlZDp2YWx1
ZV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiBib29sIFBsYXRmb3JtQ0FM
YXllck1hYzo6bWFza3NUb0JvdW5kcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFttX2xheWVyLmdl
dCgpIG1hc2tzVG9Cb3VuZHNdOworICAgIHJldHVybiBbbV9sYXllciBtYXNrc1RvQm91bmRzXTsK
IH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldE1hc2tzVG9Cb3VuZHMoYm9vbCB2YWx1
ZSkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBbbV9sYXllci5nZXQo
KSBzZXRNYXNrc1RvQm91bmRzOnZhbHVlXTsKKyAgICBbbV9sYXllciBzZXRNYXNrc1RvQm91bmRz
OnZhbHVlXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIGJvb2wgUGxhdGZv
cm1DQUxheWVyTWFjOjphY2NlbGVyYXRlc0RyYXdpbmcoKSBjb25zdAogewotICAgIHJldHVybiBb
bV9sYXllci5nZXQoKSBhY2NlbGVyYXRlc0RyYXdpbmddOworICAgIHJldHVybiBbbV9sYXllciBh
Y2NlbGVyYXRlc0RyYXdpbmddOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0QWNj
ZWxlcmF0ZXNEcmF3aW5nKGJvb2wgYWNjZWxlcmF0ZXNEcmF3aW5nKQogewogICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFttX2xheWVyLmdldCgpIHNldEFjY2VsZXJhdGVzRHJh
d2luZzphY2NlbGVyYXRlc0RyYXdpbmddOworICAgIFttX2xheWVyIHNldEFjY2VsZXJhdGVzRHJh
d2luZzphY2NlbGVyYXRlc0RyYXdpbmddOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
IH0KIAogQ0ZUeXBlUmVmIFBsYXRmb3JtQ0FMYXllck1hYzo6Y29udGVudHMoKSBjb25zdAogewot
ICAgIHJldHVybiBbbV9sYXllci5nZXQoKSBjb250ZW50c107CisgICAgcmV0dXJuIFttX2xheWVy
IGNvbnRlbnRzXTsKIH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldENvbnRlbnRzKENG
VHlwZVJlZiB2YWx1ZSkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBb
bV9sYXllci5nZXQoKSBzZXRDb250ZW50czpzdGF0aWNfY2FzdDxpZD4oY29uc3RfY2FzdDx2b2lk
Kj4odmFsdWUpKV07CisgICAgW21fbGF5ZXIgc2V0Q29udGVudHM6c3RhdGljX2Nhc3Q8aWQ+KGNv
bnN0X2Nhc3Q8dm9pZCo+KHZhbHVlKSldOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
IH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldENvbnRlbnRzUmVjdChjb25zdCBGbG9h
dFJlY3QmIHZhbHVlKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFtt
X2xheWVyLmdldCgpIHNldENvbnRlbnRzUmVjdDp2YWx1ZV07CisgICAgW21fbGF5ZXIgc2V0Q29u
dGVudHNSZWN0OnZhbHVlXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHZv
aWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXRNaW5pZmljYXRpb25GaWx0ZXIoRmlsdGVyVHlwZSB2
YWx1ZSkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBbbV9sYXllci5n
ZXQoKSBzZXRNaW5pZmljYXRpb25GaWx0ZXI6dG9DQUZpbHRlclR5cGUodmFsdWUpXTsKKyAgICBb
bV9sYXllciBzZXRNaW5pZmljYXRpb25GaWx0ZXI6dG9DQUZpbHRlclR5cGUodmFsdWUpXTsKICAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFj
OjpzZXRNYWduaWZpY2F0aW9uRmlsdGVyKEZpbHRlclR5cGUgdmFsdWUpCiB7CiAgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0TWFnbmlmaWNhdGlv
bkZpbHRlcjp0b0NBRmlsdGVyVHlwZSh2YWx1ZSldOworICAgIFttX2xheWVyIHNldE1hZ25pZmlj
YXRpb25GaWx0ZXI6dG9DQUZpbHRlclR5cGUodmFsdWUpXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TCiB9CiAKIENvbG9yIFBsYXRmb3JtQ0FMYXllck1hYzo6YmFja2dyb3VuZENvbG9y
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gW21fbGF5ZXIuZ2V0KCkgYmFja2dyb3VuZENvbG9yXTsK
KyAgICByZXR1cm4gW21fbGF5ZXIgYmFja2dyb3VuZENvbG9yXTsKIH0KIAogdm9pZCBQbGF0Zm9y
bUNBTGF5ZXJNYWM6OnNldEJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYgdmFsdWUpCkBAIC02
MDgsMTQgKzYxMywxNCBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0QmFja2dyb3VuZENv
bG9yKGNvbnN0IENvbG9yJiB2YWx1ZSkKICAgICBSZXRhaW5QdHI8Q0dDb2xvclJlZj4gY29sb3Ig
PSBhZG9wdENGKENHQ29sb3JDcmVhdGUoY29sb3JTcGFjZS5nZXQoKSwgY29tcG9uZW50cykpOwog
CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0
QmFja2dyb3VuZENvbG9yOmNvbG9yLmdldCgpXTsKKyAgICBbbV9sYXllciBzZXRCYWNrZ3JvdW5k
Q29sb3I6Y29sb3IuZ2V0KCldOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAog
dm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldEJvcmRlcldpZHRoKGZsb2F0IHZhbHVlKQogewog
ICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFttX2xheWVyLmdldCgpIHNldEJv
cmRlcldpZHRoOnZhbHVlXTsKKyAgICBbbV9sYXllciBzZXRCb3JkZXJXaWR0aDp2YWx1ZV07CiAg
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCkBAIC02MjgsMTkgKzYzMywxOSBAQCB2
b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0Qm9yZGVyQ29sb3IoY29uc3QgQ29sb3ImIHZhbHVl
KQogICAgIFJldGFpblB0cjxDR0NvbG9yUmVmPiBjb2xvciA9IGFkb3B0Q0YoQ0dDb2xvckNyZWF0
ZShjb2xvclNwYWNlLmdldCgpLCBjb21wb25lbnRzKSk7CiAKICAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlMKLSAgICBbbV9sYXllci5nZXQoKSBzZXRCb3JkZXJDb2xvcjpjb2xvci5nZXQo
KV07CisgICAgW21fbGF5ZXIgc2V0Qm9yZGVyQ29sb3I6Y29sb3IuZ2V0KCldOwogICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogZmxvYXQgUGxhdGZvcm1DQUxheWVyTWFjOjpvcGFj
aXR5KCkgY29uc3QKIHsKLSAgICByZXR1cm4gW21fbGF5ZXIuZ2V0KCkgb3BhY2l0eV07CisgICAg
cmV0dXJuIFttX2xheWVyIG9wYWNpdHldOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6
c2V0T3BhY2l0eShmbG9hdCB2YWx1ZSkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKLSAgICBbbV9sYXllci5nZXQoKSBzZXRPcGFjaXR5OnZhbHVlXTsKKyAgICBbbV9sYXllciBz
ZXRPcGFjaXR5OnZhbHVlXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKQEAg
LTY1Myw3ICs2NTgsNyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0RmlsdGVycyhjb25z
dCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmNv
cHlGaWx0ZXJzRnJvbShjb25zdCBQbGF0Zm9ybUNBTGF5ZXIqIHNvdXJjZUxheWVyKQogewogICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFttX2xheWVyLmdldCgpIHNldEZpbHRl
cnM6W3NvdXJjZUxheWVyLT5wbGF0Zm9ybUxheWVyKCkgZmlsdGVyc11dOworICAgIFttX2xheWVy
IHNldEZpbHRlcnM6W3NvdXJjZUxheWVyLT5wbGF0Zm9ybUxheWVyKCkgZmlsdGVyc11dOwogICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIApAQCAtNjkyLDQxICs2OTcsNDEgQEAgdm9p
ZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldEJsZW5kTW9kZShCbGVuZE1vZGUgYmxlbmRNb2RlKQog
dm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldE5hbWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsK
ICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBbbV9sYXllci5nZXQoKSBzZXRO
YW1lOnZhbHVlXTsKKyAgICBbbV9sYXllciBzZXROYW1lOnZhbHVlXTsKICAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TCiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXRTcGVlZChm
bG9hdCB2YWx1ZSkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBbbV9s
YXllci5nZXQoKSBzZXRTcGVlZDp2YWx1ZV07CisgICAgW21fbGF5ZXIgc2V0U3BlZWQ6dmFsdWVd
OwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5
ZXJNYWM6OnNldFRpbWVPZmZzZXQoQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCiB7CiAgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0VGltZU9mZnNldDp2
YWx1ZV07CisgICAgW21fbGF5ZXIgc2V0VGltZU9mZnNldDp2YWx1ZV07CiAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogfQogCiBmbG9hdCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmNvbnRlbnRz
U2NhbGUoKSBjb25zdAogewotICAgIHJldHVybiBbbV9sYXllci5nZXQoKSBjb250ZW50c1NjYWxl
XTsKKyAgICByZXR1cm4gW21fbGF5ZXIgY29udGVudHNTY2FsZV07CiB9CiAKIHZvaWQgUGxhdGZv
cm1DQUxheWVyTWFjOjpzZXRDb250ZW50c1NjYWxlKGZsb2F0IHZhbHVlKQogewogICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFttX2xheWVyLmdldCgpIHNldENvbnRlbnRzU2Nh
bGU6dmFsdWVdOworICAgIFttX2xheWVyIHNldENvbnRlbnRzU2NhbGU6dmFsdWVdOwogI2lmIFBM
QVRGT1JNKElPUykKLSAgICBbbV9sYXllci5nZXQoKSBzZXRSYXN0ZXJpemF0aW9uU2NhbGU6dmFs
dWVdOworICAgIFttX2xheWVyIHNldFJhc3Rlcml6YXRpb25TY2FsZTp2YWx1ZV07CiAKICAgICBp
ZiAobV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlV2ViVGlsZWRMYXllcikgewogICAgICAgICAvLyBU
aGlzIHdpbGwgaW52YWxpZGF0ZSBhbGwgdGhlIHRpbGVzIHNvIHdlIHdvbid0IGVuZCB1cCB3aXRo
IHN0YWxlIHRpbGVzIHdpdGggdGhlIHdyb25nIHNjYWxlIGluIHRoZSB3cm9uZyBwbGFjZSwKICAg
ICAgICAgLy8gc2VlIDxyZGFyOi8vcHJvYmxlbS85NDM0NzY1PiBmb3IgbW9yZSBpbmZvcm1hdGlv
bi4KICAgICAgICAgc3RhdGljIE5TRGljdGlvbmFyeSAqb3B0aW9uc0RpY3Rpb25hcnkgPSBbW05T
RGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhPYmplY3RzQW5kS2V5czpbTlNOdW1iZXIgbnVtYmVy
V2l0aEJvb2w6WUVTXSwga0NBVGlsZWRMYXllclJlbW92ZUltbWVkaWF0ZWx5LCBuaWxdOwotICAg
ICAgICBbKENBVGlsZWRMYXllciAqKW1fbGF5ZXIuZ2V0KCkgc2V0TmVlZHNEaXNwbGF5SW5SZWN0
OlttX2xheWVyLmdldCgpIGJvdW5kc10gbGV2ZWxPZkRldGFpbDowIG9wdGlvbnM6b3B0aW9uc0Rp
Y3Rpb25hcnldOworICAgICAgICBbKENBVGlsZWRMYXllciAqKW1fbGF5ZXIuZ2V0KCkgc2V0TmVl
ZHNEaXNwbGF5SW5SZWN0OlttX2xheWVyIGJvdW5kc10gbGV2ZWxPZkRldGFpbDowIG9wdGlvbnM6
b3B0aW9uc0RpY3Rpb25hcnldOwogICAgIH0KICNlbmRpZgogICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKQEAgLTczNSw3ICs3NDAsNyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0
Q29udGVudHNTY2FsZShmbG9hdCB2YWx1ZSkKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXRF
ZGdlQW50aWFsaWFzaW5nTWFzayh1bnNpZ25lZCBtYXNrKQogewogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUwotICAgIFttX2xheWVyLmdldCgpIHNldEVkZ2VBbnRpYWxpYXNpbmdNYXNr
Om1hc2tdOworICAgIFttX2xheWVyIHNldEVkZ2VBbnRpYWxpYXNpbmdNYXNrOm1hc2tdOwogICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIApAQCAtNzkxLDcgKzc5Niw3IEBAIGJvb2wg
UGxhdGZvcm1DQUxheWVyOjppc1dlYkxheWVyKCkKIHsKICAgICBCT09MIHJlc3VsdCA9IE5POwog
ICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIHJlc3VsdCA9IFttX2xheWVyLmdl
dCgpIGlzS2luZE9mQ2xhc3M6W1dlYkxheWVyIHNlbGZdXTsKKyAgICByZXN1bHQgPSBbbV9sYXll
ciBpc0tpbmRPZkNsYXNzOltXZWJMYXllciBzZWxmXV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3Bw
CmluZGV4IGE5NDE1ZjRlYWFlZGQxOWMwZjhkZDhjNTJlZmE3YmQ0NWI4ZGM2NDguLmJkZjY4NDVh
NzJkY2E5NGEzNWM2ODkwZWMzNDViMWY3NjMxMzc3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJX
aW4uY3BwCkBAIC0zMDgsNyArMzA4LDcgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJXaW46OnJlbW92
ZUFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkKICAgICBzZXROZWVkc0NvbW1pdCgp
OwogfQogCi1QYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FMYXllcldp
bjo6YW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KQorUGFzc1JlZlB0cjxQbGF0Zm9y
bUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBTGF5ZXJXaW46OmFuaW1hdGlvbkZvcktleShjb25zdCBT
dHJpbmcmIGtleSkgY29uc3QKIHsKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPFBsYXRmb3Jt
Q0FBbmltYXRpb24+ID46Oml0ZXJhdG9yIGl0ID0gbV9hbmltYXRpb25zLmZpbmQoa2V5KTsKICAg
ICBpZiAoaXQgPT0gbV9hbmltYXRpb25zLmVuZCgpKQpAQCAtMzE3LDYgKzMxNywxMSBAQCBQYXNz
UmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FMYXllcldpbjo6YW5pbWF0aW9u
Rm9yS2V5KGNvbnN0IFN0cmluZwogICAgIHJldHVybiBpdC0+dmFsdWU7CiB9CiAKK2Jvb2wgUGxh
dGZvcm1DQUxheWVyV2luOjpoYXNBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fYW5pbWF0aW9ucy5jb250YWlucyhrZXkpOworfQorCiB2b2lk
IFBsYXRmb3JtQ0FMYXllcldpbjo6c2V0TWFzayhQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQogewog
ICAgIENBQ0ZMYXllclNldE1hc2sobV9sYXllci5nZXQoKSwgbGF5ZXIgPyBsYXllci0+cGxhdGZv
cm1MYXllcigpIDogMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmgKaW5kZXggZDM3MjJkNjZkYTY2
MWMwYTZkNTU5ODY0M2YxMzdjYzk4MWZiMDQ5ZC4uMGJlMGY2OTEwMzIyNTkxNjRkNzg4YzNlZmM2
YzQwNjIwZDc2MWMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uaApAQCAtNTUsOCArNTUsOCBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0
cmluZyYga2V5LCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIHJlbW92ZUFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGFuaW1hdGlvbkZvcktl
eShjb25zdCBTdHJpbmcmIGtleSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGFuaW1hdGlv
blN0YXJ0ZWQoQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gYW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0
cmluZyYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBoYXNBbmltYXRpb25Gb3JL
ZXkoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0
TWFzayhQbGF0Zm9ybUNBTGF5ZXIqKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1v
dGUuY3BwCmluZGV4IGI4M2YwMGEwODI5OWI4ZWMwZWM5MTBmMDI0M2VmNTVkMjY5ZjBlMWQuLmI4
NDZlNDM3YzE1NGY1YzA4MDAwNTQzODg5OTY4OWMyYjlhNGJjZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FM
YXllclJlbW90ZS5jcHAKQEAgLTI5OSw2ICsyOTksOCBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllclJl
bW90ZTo6YWRvcHRTdWJsYXllcnMoUGxhdGZvcm1DQUxheWVyKiBzb3VyY2UpCiAKIHZvaWQgUGxh
dGZvcm1DQUxheWVyUmVtb3RlOjphZGRBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXks
IFBsYXRmb3JtQ0FBbmltYXRpb24qIGFuaW1hdGlvbikKIHsKKyAgICBtX3J1bm5pbmdBbmltYXRp
b25zLmFkZChrZXkpOworCiAgICAgbV9wcm9wZXJ0aWVzLmFkZGVkQW5pbWF0aW9ucy5zZXQoa2V5
LCB0b1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUoYW5pbWF0aW9uKS0+cHJvcGVydGllcygpKTsK
ICAgICBtX3Byb3BlcnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpBbmltYXRpb25zQ2hhbmdlZCk7CiAKQEAgLTMwOCwxNyArMzEwLDI0IEBAIHZv
aWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphZGRBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5n
JiBrZXksIFBsYXRmb3JtQ0FBbmltCiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1v
dmVBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpCiB7CisgICAgbV9ydW5uaW5nQW5p
bWF0aW9ucy5yZW1vdmUoa2V5KTsKKwogICAgIG1fcHJvcGVydGllcy5hZGRlZEFuaW1hdGlvbnMu
cmVtb3ZlKGtleSk7CiAgICAgbV9wcm9wZXJ0aWVzLmtleVBhdGhzT2ZBbmltYXRpb25zVG9SZW1v
dmUuYWRkKGtleSk7CiAgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6QW5pbWF0aW9uc0NoYW5nZWQpOwogfQogCi1QYXNzUmVm
UHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YW5pbWF0aW9u
Rm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KQorUGFzc1JlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybUNB
QW5pbWF0aW9uPiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFuaW1hdGlvbkZvcktleShjb25zdCBT
dHJpbmcmKSBjb25zdAogewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQuCisgICAgLy8gRklYTUU6
IGltcGxlbWVudC4gPHJkYXI6Ly9wcm9ibGVtLzE2OTA2MzY5PgogICAgIHJldHVybiBudWxscHRy
OwogfQogCitib29sIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6aGFzQW5pbWF0aW9uRm9yS2V5KGNv
bnN0IFN0cmluZyYga2V5KSBjb25zdAoreworICAgIHJldHVybiBtX3J1bm5pbmdBbmltYXRpb25z
LmNvbnRhaW5zKGtleSk7Cit9CisKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXRNYXNr
KFBsYXRmb3JtQ0FMYXllciogbGF5ZXIpCiB7CiAgICAgaWYgKGxheWVyKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJl
bW90ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNB
TGF5ZXJSZW1vdGUuaAppbmRleCA1ODM0NmUwOTNjZjBkODE4YWZlYmE5YmMyODlhNjQ2OGRlODcw
NGFkLi4wZDE1OGM3NmQwZTY4OTczNDc0NjY5NmQ0MzhlZmVjNzBjZDIxMzA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJl
bW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUxheWVyUmVtb3RlLmgKQEAgLTYzLDkgKzYzLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckxpc3QqIGN1c3RvbVN1YmxheWVycygpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIHZvaWQgYWRvcHRT
dWJsYXllcnMoV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyKiBzb3VyY2UpIG92ZXJyaWRlOwogCi0g
ICAgdmlydHVhbCB2b2lkIGFkZEFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSwgV2Vi
Q29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOwotICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uPiBhbmltYXRpb25G
b3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhZGRB
bmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlv
biopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbmltYXRpb25Gb3JLZXkoY29u
c3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBs
YXRmb3JtQ0FBbmltYXRpb24+IGFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmlu
ZyYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRpb25TdGFydGVkKENG
VGltZUludGVydmFsIGJlZ2luVGltZSkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0
TWFzayhXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIqKSBvdmVycmlkZTsKQEAgLTE3NSw2ICsxNzYs
NyBAQCBwcml2YXRlOgogCiAgICAgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJv
cGVydGllcyBtX3Byb3BlcnRpZXM7CiAgICAgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyTGlzdCBt
X2NoaWxkcmVuOworICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3J1bm5pbmdBbmltYXRpb25zOwogICAg
IFBsYXRmb3JtQ0FMYXllclJlbW90ZSogbV9zdXBlcmxheWVyOwogICAgIFBsYXRmb3JtQ0FMYXll
clJlbW90ZSogbV9tYXNrTGF5ZXI7CiAgICAgYm9vbCBtX2FjY2VsZXJhdGVzRHJhd2luZzsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231429</attachid>
            <date>2014-05-13 20:32:06 -0700</date>
            <delta_ts>2014-05-13 22:30:04 -0700</delta_ts>
            <desc>EWS again</desc>
            <filename>bug-132894-20140513203142.patch</filename>
            <type>text/plain</type>
            <size>26831</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4NzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGRmNzZiYmU5MjZjYzI4
ZjI0MTU3YTU2MDUxOGNkM2Y2NzMxYWFhYS4uMDFkMTQxNWNiMmQyMGQ5YzVhODgyZjMzNzlhZTYy
MWYxN2U4ZDViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA1LTEzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtVSS1zaWRlIGNv
bXBvc2l0aW5nXSBTY3JvbGxpbmcgYnJlYWtzIG9uIG5ld3MuZ29vZ2xlLmNvbSBvbiBpT1MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjg5NAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMTY4ODcwNTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2lt
b24gRnJhc2VyLgorICAgICAgICAKKyAgICAgICAgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphbmlt
YXRpb25Gb3JLZXkoKSBpcyB1bmltcGxlbWVudGVkLCB3aGljaCBicm9rZSBhbmltYXRpb24KKyAg
ICAgICAgcmVtb3ZhbC4KKyAgICAgICAgCisgICAgICAgIEFkZCBQbGF0Zm9ybUNBTGF5ZXI6Omhh
c0FuaW1hdGlvbkZvcktleSgpIHdoaWNoIGlzIGVhc3kgdG8gaW1wbGVtZW50IHdpdGggVUktc2lk
ZQorICAgICAgICBjb21wb3NpdGluZywgYW5kIHVzZSBpdCBpbiBHcmFwaGljc0xheWVyQ0E6OnJl
bW92ZUNBQW5pbWF0aW9uRnJvbUxheWVyKCkgdG8gZW5zdXJlCisgICAgICAgIHRoYXQgd2UgcmVt
b3ZlIHRyYW5zaXRpb25zIGNvcnJlY3RseS4KKyAgICAgICAgCisgICAgICAgIFJlbW92ZSBzb21l
IHJlZHVuZGFudCBwYXJhbWV0ZXIgbmFtZXMgZnJvbSBoZWFkZXIgZmlsZXMuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNBOjptb3ZlT3JDb3B5TGF5ZXJBbmltYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpyZW1vdmVDQUFuaW1hdGlvbkZyb21MYXllcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW06Cisg
ICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJNYWM6OmFuaW1hdGlvbkZvcktleSk6CisgICAgICAgIChQ
bGF0Zm9ybUNBTGF5ZXJNYWM6Omhhc0FuaW1hdGlvbkZvcktleSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHA6CisgICAgICAgIChQbGF0
Zm9ybUNBTGF5ZXJXaW46OmFuaW1hdGlvbkZvcktleSk6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5
ZXJXaW46Omhhc0FuaW1hdGlvbkZvcktleSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5oOgorCiAyMDE0LTA1LTEzICBEZWFuIEphY2tzb24g
IDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBBdHRlbXB0ZWQgYnVpbGQgZml4IGFmdGVyIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI4OTEKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA1NWIyYWU0M2E2NzVlMDQ0Mzk5MmY4Yjg1MmJmNjBlOTcxMDI0NjUwLi5mZjEwMDE0MDBiYzVm
MzhmY2E3OWMzY2JhOTNkZGRkNzNjNTczMDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAK
KzIwMTQtMDUtMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1VJLXNpZGUgY29tcG9zaXRpbmddIFNjcm9sbGluZyBicmVha3Mgb24gbmV3cy5nb29n
bGUuY29tIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTMyODk0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjg4NzA1Nz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgUGxhdGZvcm1DQUxheWVyUmVt
b3RlOjphbmltYXRpb25Gb3JLZXkoKSBpcyB1bmltcGxlbWVudGVkLCB3aGljaCBicm9rZSBhbmlt
YXRpb24KKyAgICAgICAgcmVtb3ZhbC4KKyAgICAgICAgCisgICAgICAgIEFkZCBQbGF0Zm9ybUNB
TGF5ZXI6Omhhc0FuaW1hdGlvbkZvcktleSgpIHdoaWNoIGlzIGVhc3kgdG8gaW1wbGVtZW50IHdp
dGggVUktc2lkZQorICAgICAgICBjb21wb3NpdGluZywgYW5kIHVzZSBpdCBpbiBHcmFwaGljc0xh
eWVyQ0E6OnJlbW92ZUNBQW5pbWF0aW9uRnJvbUxheWVyKCkgdG8gZW5zdXJlCisgICAgICAgIHRo
YXQgd2UgcmVtb3ZlIHRyYW5zaXRpb25zIGNvcnJlY3RseS4KKyAgICAgICAgCisgICAgICAgIFJl
bW92ZSBzb21lIHJlZHVuZGFudCBwYXJhbWV0ZXIgbmFtZXMgZnJvbSBoZWFkZXIgZmlsZXMuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YWRkQW5pbWF0aW9u
Rm9yS2V5KToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVB
bmltYXRpb25Gb3JLZXkpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6
OmFuaW1hdGlvbkZvcktleSk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90
ZTo6aGFzQW5pbWF0aW9uRm9yS2V5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oOgorCiAyMDE0LTA1LTEzICBBbmRlcnMgQ2FybHNzb24g
IDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQW5vdGhlciBidWlsZCBmaXguCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXll
ckNBLmNwcAppbmRleCBjYTk5YjM3ZDg2ODQ3OWM4NzFmNGE2ZTU2NTRjZDVjNTZkMDVhM2MwLi4z
MzMwZGIxZDg2OTZkNzY1NjE2OWFkN2ZjYWI3NzM1Nzc5N2JiZDkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAK
QEAgLTU3NCw2ICs1NzQsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q2hpbGRyZW5UcmFu
c2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHQpCiAKIHZvaWQgR3JhcGhpY3NMYXll
ckNBOjptb3ZlT3JDb3B5TGF5ZXJBbmltYXRpb24oTW92ZU9yQ29weSBvcGVyYXRpb24sIGNvbnN0
IFN0cmluZyYgYW5pbWF0aW9uSWRlbnRpZmllciwgUGxhdGZvcm1DQUxheWVyICpmcm9tTGF5ZXIs
IFBsYXRmb3JtQ0FMYXllciAqdG9MYXllcikKIHsKKyAgICAvLyBGSVhNRTogdGhpcyBkb2Vzbid0
IHdvcmsgd2l0aCBVSS1zaWRlIGNvbXBvc2l0aW5nLCB3aGVyZSB3ZSBkb24ndCBoYXZlIENBQW5p
bWF0aW9ucyBpbiB0aGUgV2ViIFByb2Nlc3MuCiAgICAgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRp
b24+IGFuaW0gPSBmcm9tTGF5ZXItPmFuaW1hdGlvbkZvcktleShhbmltYXRpb25JZGVudGlmaWVy
KTsKICAgICBpZiAoIWFuaW0pCiAgICAgICAgIHJldHVybjsKQEAgLTIyNzYsNyArMjI3Nyw3IEBA
IGJvb2wgR3JhcGhpY3NMYXllckNBOjpyZW1vdmVDQUFuaW1hdGlvbkZyb21MYXllcihBbmltYXRl
ZFByb3BlcnR5SUQgcHJvcGVydHksIGNvCiAKICAgICBTdHJpbmcgYW5pbWF0aW9uSUQgPSBhbmlt
YXRpb25JZGVudGlmaWVyKGFuaW1hdGlvbk5hbWUsIHByb3BlcnR5LCBpbmRleCwgc3ViSW5kZXgp
OwogCi0gICAgaWYgKCFsYXllci0+YW5pbWF0aW9uRm9yS2V5KGFuaW1hdGlvbklEKSkKKyAgICBp
ZiAoIWxheWVyLT5oYXNBbmltYXRpb25Gb3JLZXkoYW5pbWF0aW9uSUQpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgCiAgICAgbGF5ZXItPnJlbW92ZUFuaW1hdGlvbkZvcktleShhbmltYXRp
b25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9Q
bGF0Zm9ybUNBTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1Bs
YXRmb3JtQ0FMYXllci5oCmluZGV4IGU4YjJmZWVlYzNhODc4NDc1ZDE4MTkzMGRlYmY1YzZlYzE5
NzM2MTYuLmFkMTFmNWNmMTkzMzUzMDEwYTdkNWVlNjlkOGNkNWIxODJkNmMzMmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXll
ci5oCkBAIC0xMjEsOSArMTIxLDEwIEBAIHB1YmxpYzoKICAgICAvLyBBbnkgc3VibGF5ZXJzIHBy
ZXZpb3VzbHkgaW4gdGhlIGN1cnJlbnQgbGF5ZXIgYXJlIHJlbW92ZWQuCiAgICAgdmlydHVhbCB2
b2lkIGFkb3B0U3VibGF5ZXJzKFBsYXRmb3JtQ0FMYXllciogc291cmNlKSA9IDA7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgYWRkQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBQbGF0Zm9y
bUNBQW5pbWF0aW9uKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbmltYXRpb25Gb3JL
ZXkoY29uc3QgU3RyaW5nJiBrZXkpID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZv
cm1DQUFuaW1hdGlvbj4gYW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGFkZEFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmLCBQbGF0Zm9y
bUNBQW5pbWF0aW9uKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbmltYXRpb25Gb3JL
ZXkoY29uc3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNB
QW5pbWF0aW9uPiBhbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJikgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgYm9vbCBoYXNBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJikgY29uc3QgPSAw
OwogCiAgICAgdmlydHVhbCB2b2lkIHNldE1hc2soUGxhdGZvcm1DQUxheWVyKikgPSAwOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZv
cm1DQUxheWVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMv
UGxhdGZvcm1DQUxheWVyTWFjLmgKaW5kZXggYmE3ZjNmNzE3MzBmNTEzMGExYWNlNDZhZGY1YjY1
MzgxMDMzZTJjYS4uODFmNmZlODcxZmM1MjNmMzVhMzYyZWUyNGJhZWJhMjJiOWUwYjcxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3Jt
Q0FMYXllck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21h
Yy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaApAQCAtNjEsOCArNjEsOSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGFkb3B0U3VibGF5ZXJzKFBsYXRmb3JtQ0FMYXllciogc291cmNlKSBvdmVycmlk
ZTsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBr
ZXksIFBsYXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVt
b3ZlQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gYW5pbWF0aW9uRm9yS2V5KGNvbnN0
IFN0cmluZyYga2V5KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQW5pbWF0aW9u
Rm9yS2V5KGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQ
bGF0Zm9ybUNBQW5pbWF0aW9uPiBhbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJikgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhc0FuaW1hdGlvbkZvcktleShjb25zdCBTdHJp
bmcmKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChD
RlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHNl
dE1hc2soUGxhdGZvcm1DQUxheWVyKikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5t
bQppbmRleCA0MDU4MGQ5OWJlNmQ1NGZhYmRlZDYyNWFhNWY3ODg0YzJmMDJkM2IyLi5mYzQxODY5
ZTY4YzNmYWY1OTliMGRjMWI5ZWI5MDhmNTQ2MzkxZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJN
YWMubW0KQEAgLTI4OSw3ICsyODksNyBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gUGxh
dGZvcm1DQUxheWVyTWFjOjpjbG9uZShQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bgogCiBQbGF0
Zm9ybUNBTGF5ZXJNYWM6On5QbGF0Zm9ybUNBTGF5ZXJNYWMoKQogewotICAgIFttX2xheWVyLmdl
dCgpIHNldFZhbHVlOm5pbCBmb3JLZXk6cGxhdGZvcm1DQUxheWVyUG9pbnRlcl07CisgICAgW21f
bGF5ZXIgc2V0VmFsdWU6bmlsIGZvcktleTpwbGF0Zm9ybUNBTGF5ZXJQb2ludGVyXTsKICAgICAK
ICAgICAvLyBSZW1vdmUgdGhlIG93bmVyIHBvaW50ZXIgZnJvbSB0aGUgZGVsZWdhdGUgaW4gY2Fz
ZSB0aGVyZSBpcyBhIHBlbmRpbmcgYW5pbWF0aW9uU3RhcnRlZCBldmVudC4KICAgICBbc3RhdGlj
X2Nhc3Q8V2ViQW5pbWF0aW9uRGVsZWdhdGUqPihtX2RlbGVnYXRlLmdldCgpKSBzZXRPd25lcjpu
aWxdOwpAQCAtMzA4LDI4ICszMDgsMjggQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldE5l
ZWRzRGlzcGxheShjb25zdCBGbG9hdFJlY3QqIGRpcnR5UmVjdCkKIHsKICAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlMKICAgICBpZiAoZGlydHlSZWN0KQotICAgICAgICBbbV9sYXllci5n
ZXQoKSBzZXROZWVkc0Rpc3BsYXlJblJlY3Q6KmRpcnR5UmVjdF07CisgICAgICAgIFttX2xheWVy
IHNldE5lZWRzRGlzcGxheUluUmVjdDoqZGlydHlSZWN0XTsKICAgICBlbHNlCi0gICAgICAgIFtt
X2xheWVyLmdldCgpIHNldE5lZWRzRGlzcGxheV07CisgICAgICAgIFttX2xheWVyIHNldE5lZWRz
RGlzcGxheV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogICAgIAogdm9pZCBQ
bGF0Zm9ybUNBTGF5ZXJNYWM6OnNldENvbnRlbnRzQ2hhbmdlZCgpCiB7CiAgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0Q29udGVudHNDaGFuZ2Vk
XTsKKyAgICBbbV9sYXllciBzZXRDb250ZW50c0NoYW5nZWRdOwogICAgIEVORF9CTE9DS19PQkpD
X0VYQ0VQVElPTlMKIH0KIAogUGxhdGZvcm1DQUxheWVyKiBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnN1
cGVybGF5ZXIoKSBjb25zdAogewotICAgIHJldHVybiBwbGF0Zm9ybUNBTGF5ZXIoW21fbGF5ZXIu
Z2V0KCkgc3VwZXJsYXllcl0pOworICAgIHJldHVybiBwbGF0Zm9ybUNBTGF5ZXIoW21fbGF5ZXIg
c3VwZXJsYXllcl0pOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6cmVtb3ZlRnJvbVN1
cGVybGF5ZXIoKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFttX2xh
eWVyLmdldCgpIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAgICBbbV9sYXllciByZW1vdmVGcm9t
U3VwZXJsYXllcl07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCkBAIC0zNDYs
NyArMzQ2LDcgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldFN1YmxheWVycyhjb25zdCBQ
bGF0Zm9ybUNBTGF5ZXJMaXN0JiBsaXN0KQogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlz
dC5zaXplKCk7ICsraSkKICAgICAgICAgW3N1YmxheWVycyBhZGRPYmplY3Q6bGlzdFtpXS0+bV9s
YXllci5nZXQoKV07CiAKLSAgICBbbV9sYXllci5nZXQoKSBzZXRTdWJsYXllcnM6c3VibGF5ZXJz
XTsKKyAgICBbbV9sYXllciBzZXRTdWJsYXllcnM6c3VibGF5ZXJzXTsKICAgICBbc3VibGF5ZXJz
IHJlbGVhc2VdOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KQEAgLTM1NCw3ICsz
NTQsNyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0U3VibGF5ZXJzKGNvbnN0IFBsYXRm
b3JtQ0FMYXllckxpc3QmIGxpc3QpCiB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6cmVtb3ZlQWxs
U3VibGF5ZXJzKCkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBbbV9s
YXllci5nZXQoKSBzZXRTdWJsYXllcnM6bmlsXTsKKyAgICBbbV9sYXllciBzZXRTdWJsYXllcnM6
bmlsXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKQEAgLTM2Miw3ICszNjIs
NyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6YXBwZW5kU3VibGF5ZXIoUGxhdGZvcm1DQUxh
eWVyKiBsYXllcikKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBBU1NF
UlQobV9sYXllciAhPSBsYXllci0+bV9sYXllcik7Ci0gICAgW21fbGF5ZXIuZ2V0KCkgYWRkU3Vi
bGF5ZXI6bGF5ZXItPm1fbGF5ZXIuZ2V0KCldOworICAgIFttX2xheWVyIGFkZFN1YmxheWVyOmxh
eWVyLT5tX2xheWVyLmdldCgpXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAK
QEAgLTM3MCw3ICszNzAsNyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6aW5zZXJ0U3VibGF5
ZXIoUGxhdGZvcm1DQUxheWVyKiBsYXllciwgc2l6ZV90IGluZGV4KQogewogICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwogICAgIEFTU0VSVChtX2xheWVyICE9IGxheWVyLT5tX2xheWVy
KTsKLSAgICBbbV9sYXllci5nZXQoKSBpbnNlcnRTdWJsYXllcjpsYXllci0+bV9sYXllci5nZXQo
KSBhdEluZGV4OmluZGV4XTsKKyAgICBbbV9sYXllciBpbnNlcnRTdWJsYXllcjpsYXllci0+bV9s
YXllci5nZXQoKSBhdEluZGV4OmluZGV4XTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiB9CiAKQEAgLTM3OCwxNCArMzc4LDE0IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpyZXBs
YWNlU3VibGF5ZXIoUGxhdGZvcm1DQUxheWVyKiByZWZlcmVuY2UsIFBsYXRmb3JtQ0FMCiB7CiAg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgQVNTRVJUKG1fbGF5ZXIgIT0gbGF5
ZXItPm1fbGF5ZXIpOwotICAgIFttX2xheWVyLmdldCgpIHJlcGxhY2VTdWJsYXllcjpyZWZlcmVu
Y2UtPm1fbGF5ZXIuZ2V0KCkgd2l0aDpsYXllci0+bV9sYXllci5nZXQoKV07CisgICAgW21fbGF5
ZXIgcmVwbGFjZVN1YmxheWVyOnJlZmVyZW5jZS0+bV9sYXllci5nZXQoKSB3aXRoOmxheWVyLT5t
X2xheWVyLmdldCgpXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHZvaWQg
UGxhdGZvcm1DQUxheWVyTWFjOjphZG9wdFN1YmxheWVycyhQbGF0Zm9ybUNBTGF5ZXIqIHNvdXJj
ZSkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBbbV9sYXllci5nZXQo
KSBzZXRTdWJsYXllcnM6W3NvdXJjZS0+bV9sYXllci5nZXQoKSBzdWJsYXllcnNdXTsKKyAgICBb
bV9sYXllciBzZXRTdWJsYXllcnM6W3NvdXJjZS0+bV9sYXllci5nZXQoKSBzdWJsYXllcnNdXTsK
ICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKQEAgLTQwMyw1MyArNDAzLDU4IEBA
IHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjphZGRBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5n
JiBrZXksIFBsYXRmb3JtQ0FBbmltYXRpCiAgICAgICAgIFtwcm9wZXJ0eUFuaW1hdGlvbiBzZXRE
ZWxlZ2F0ZTpzdGF0aWNfY2FzdDxpZD4obV9kZWxlZ2F0ZS5nZXQoKSldOwogICAgICAKICAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBbbV9sYXllci5nZXQoKSBhZGRBbmltYXRp
b246cHJvcGVydHlBbmltYXRpb24gZm9yS2V5OmtleV07CisgICAgW21fbGF5ZXIgYWRkQW5pbWF0
aW9uOnByb3BlcnR5QW5pbWF0aW9uIGZvcktleTprZXldOwogICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKIH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnJlbW92ZUFuaW1hdGlvbkZv
cktleShjb25zdCBTdHJpbmcmIGtleSkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKLSAgICBbbV9sYXllci5nZXQoKSByZW1vdmVBbmltYXRpb25Gb3JLZXk6a2V5XTsKKyAgICBb
bV9sYXllciByZW1vdmVBbmltYXRpb25Gb3JLZXk6a2V5XTsKICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TCiB9CiAKLVBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1D
QUxheWVyTWFjOjphbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpCitQYXNzUmVmUHRy
PFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FMYXllck1hYzo6YW5pbWF0aW9uRm9yS2V5
KGNvbnN0IFN0cmluZyYga2V5KSBjb25zdAogewotICAgIENBUHJvcGVydHlBbmltYXRpb24qIHBy
b3BlcnR5QW5pbWF0aW9uID0gc3RhdGljX2Nhc3Q8Q0FQcm9wZXJ0eUFuaW1hdGlvbio+KFttX2xh
eWVyLmdldCgpIGFuaW1hdGlvbkZvcktleTprZXldKTsKKyAgICBDQVByb3BlcnR5QW5pbWF0aW9u
KiBwcm9wZXJ0eUFuaW1hdGlvbiA9IHN0YXRpY19jYXN0PENBUHJvcGVydHlBbmltYXRpb24qPihb
bV9sYXllciBhbmltYXRpb25Gb3JLZXk6a2V5XSk7CiAgICAgaWYgKCFwcm9wZXJ0eUFuaW1hdGlv
bikKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6
OmNyZWF0ZShwcm9wZXJ0eUFuaW1hdGlvbik7CiB9CiAKK2Jvb2wgUGxhdGZvcm1DQUxheWVyTWFj
OjpoYXNBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0Cit7CisgICAgcmV0
dXJuIFttX2xheWVyIGFuaW1hdGlvbkZvcktleTprZXldOworfQorCiB2b2lkIFBsYXRmb3JtQ0FM
YXllck1hYzo6c2V0TWFzayhQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQogewogICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFttX2xheWVyLmdldCgpIHNldE1hc2s6bGF5ZXIgPyBs
YXllci0+cGxhdGZvcm1MYXllcigpIDogMF07CisgICAgW21fbGF5ZXIgc2V0TWFzazpsYXllciA/
IGxheWVyLT5wbGF0Zm9ybUxheWVyKCkgOiAwXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCiB9CiAKIGJvb2wgUGxhdGZvcm1DQUxheWVyTWFjOjppc09wYXF1ZSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIFttX2xheWVyLmdldCgpIGlzT3BhcXVlXTsKKyAgICByZXR1cm4gW21fbGF5ZXIg
aXNPcGFxdWVdOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0T3BhcXVlKGJvb2wg
dmFsdWUpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21fbGF5ZXIu
Z2V0KCkgc2V0T3BhcXVlOnZhbHVlXTsKKyAgICBbbV9sYXllciBzZXRPcGFxdWU6dmFsdWVdOwog
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogRmxvYXRSZWN0IFBsYXRmb3JtQ0FM
YXllck1hYzo6Ym91bmRzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gW21fbGF5ZXIuZ2V0KCkgYm91
bmRzXTsKKyAgICByZXR1cm4gW21fbGF5ZXIgYm91bmRzXTsKIH0KIAogdm9pZCBQbGF0Zm9ybUNB
TGF5ZXJNYWM6OnNldEJvdW5kcyhjb25zdCBGbG9hdFJlY3QmIHZhbHVlKQogewogICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFttX2xheWVyLmdldCgpIHNldEJvdW5kczp2YWx1
ZV07CisgICAgW21fbGF5ZXIgc2V0Qm91bmRzOnZhbHVlXTsKICAgICAKICAgICBpZiAocmVxdWly
ZXNDdXN0b21BcHBlYXJhbmNlVXBkYXRlT25Cb3VuZHNDaGFuZ2UoKSkKICAgICAgICAgdXBkYXRl
Q3VzdG9tQXBwZWFyYW5jZShtX2N1c3RvbUFwcGVhcmFuY2UpOwpAQCAtNDU5LDE0NCArNDY0LDE0
NCBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0Qm91bmRzKGNvbnN0IEZsb2F0UmVjdCYg
dmFsdWUpCiAKIEZsb2F0UG9pbnQzRCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnBvc2l0aW9uKCkgY29u
c3QKIHsKLSAgICBDR1BvaW50IHBvaW50ID0gW21fbGF5ZXIuZ2V0KCkgcG9zaXRpb25dOwotICAg
IHJldHVybiBGbG9hdFBvaW50M0QocG9pbnQueCwgcG9pbnQueSwgW21fbGF5ZXIuZ2V0KCkgelBv
c2l0aW9uXSk7CisgICAgQ0dQb2ludCBwb2ludCA9IFttX2xheWVyIHBvc2l0aW9uXTsKKyAgICBy
ZXR1cm4gRmxvYXRQb2ludDNEKHBvaW50LngsIHBvaW50LnksIFttX2xheWVyIHpQb3NpdGlvbl0p
OwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0UG9zaXRpb24oY29uc3QgRmxvYXRQ
b2ludDNEJiB2YWx1ZSkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBb
bV9sYXllci5nZXQoKSBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZSh2YWx1ZS54KCksIHZhbHVlLnko
KSldOwotICAgIFttX2xheWVyLmdldCgpIHNldFpQb3NpdGlvbjp2YWx1ZS56KCldOworICAgIFtt
X2xheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKHZhbHVlLngoKSwgdmFsdWUueSgpKV07Cisg
ICAgW21fbGF5ZXIgc2V0WlBvc2l0aW9uOnZhbHVlLnooKV07CiAgICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwogfQogCiBGbG9hdFBvaW50M0QgUGxhdGZvcm1DQUxheWVyTWFjOjphbmNob3JQ
b2ludCgpIGNvbnN0CiB7Ci0gICAgQ0dQb2ludCBwb2ludCA9IFttX2xheWVyLmdldCgpIGFuY2hv
clBvaW50XTsKKyAgICBDR1BvaW50IHBvaW50ID0gW21fbGF5ZXIgYW5jaG9yUG9pbnRdOwogICAg
IGZsb2F0IHogPSAwOwotICAgIHogPSBbbV9sYXllci5nZXQoKSBhbmNob3JQb2ludFpdOworICAg
IHogPSBbbV9sYXllciBhbmNob3JQb2ludFpdOwogICAgIHJldHVybiBGbG9hdFBvaW50M0QocG9p
bnQueCwgcG9pbnQueSwgeik7CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXRBbmNo
b3JQb2ludChjb25zdCBGbG9hdFBvaW50M0QmIHZhbHVlKQogewogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUwotICAgIFttX2xheWVyLmdldCgpIHNldEFuY2hvclBvaW50OkNHUG9pbnRN
YWtlKHZhbHVlLngoKSwgdmFsdWUueSgpKV07Ci0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0QW5jaG9y
UG9pbnRaOnZhbHVlLnooKV07CisgICAgW21fbGF5ZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludE1h
a2UodmFsdWUueCgpLCB2YWx1ZS55KCkpXTsKKyAgICBbbV9sYXllciBzZXRBbmNob3JQb2ludFo6
dmFsdWUueigpXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIFRyYW5zZm9y
bWF0aW9uTWF0cml4IFBsYXRmb3JtQ0FMYXllck1hYzo6dHJhbnNmb3JtKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gW21fbGF5ZXIuZ2V0KCkgdHJhbnNmb3JtXTsKKyAgICByZXR1cm4gW21fbGF5ZXIg
dHJhbnNmb3JtXTsKIH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldFRyYW5zZm9ybShj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdmFsdWUpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TCi0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0VHJhbnNmb3JtOnZhbHVlXTsKKyAg
ICBbbV9sYXllciBzZXRUcmFuc2Zvcm06dmFsdWVdOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKIH0KIAogVHJhbnNmb3JtYXRpb25NYXRyaXggUGxhdGZvcm1DQUxheWVyTWFjOjpzdWJs
YXllclRyYW5zZm9ybSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFttX2xheWVyLmdldCgpIHN1Ymxh
eWVyVHJhbnNmb3JtXTsKKyAgICByZXR1cm4gW21fbGF5ZXIgc3VibGF5ZXJUcmFuc2Zvcm1dOwog
fQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0U3VibGF5ZXJUcmFuc2Zvcm0oY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmIHZhbHVlKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwotICAgIFttX2xheWVyLmdldCgpIHNldFN1YmxheWVyVHJhbnNmb3JtOnZhbHVlXTsK
KyAgICBbbV9sYXllciBzZXRTdWJsYXllclRyYW5zZm9ybTp2YWx1ZV07CiAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0SGlkZGVu
KGJvb2wgdmFsdWUpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21f
bGF5ZXIuZ2V0KCkgc2V0SGlkZGVuOnZhbHVlXTsKKyAgICBbbV9sYXllciBzZXRIaWRkZW46dmFs
dWVdOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogdm9pZCBQbGF0Zm9ybUNB
TGF5ZXJNYWM6OnNldEdlb21ldHJ5RmxpcHBlZChib29sIHZhbHVlKQogewogICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFttX2xheWVyLmdldCgpIHNldEdlb21ldHJ5RmxpcHBl
ZDp2YWx1ZV07CisgICAgW21fbGF5ZXIgc2V0R2VvbWV0cnlGbGlwcGVkOnZhbHVlXTsKICAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIGJvb2wgUGxhdGZvcm1DQUxheWVyTWFjOjpp
c0RvdWJsZVNpZGVkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gW21fbGF5ZXIuZ2V0KCkgaXNEb3Vi
bGVTaWRlZF07CisgICAgcmV0dXJuIFttX2xheWVyIGlzRG91YmxlU2lkZWRdOwogfQogCiB2b2lk
IFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0RG91YmxlU2lkZWQoYm9vbCB2YWx1ZSkKIHsKICAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBbbV9sYXllci5nZXQoKSBzZXREb3VibGVT
aWRlZDp2YWx1ZV07CisgICAgW21fbGF5ZXIgc2V0RG91YmxlU2lkZWQ6dmFsdWVdOwogICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogYm9vbCBQbGF0Zm9ybUNBTGF5ZXJNYWM6Om1h
c2tzVG9Cb3VuZHMoKSBjb25zdAogewotICAgIHJldHVybiBbbV9sYXllci5nZXQoKSBtYXNrc1Rv
Qm91bmRzXTsKKyAgICByZXR1cm4gW21fbGF5ZXIgbWFza3NUb0JvdW5kc107CiB9CiAKIHZvaWQg
UGxhdGZvcm1DQUxheWVyTWFjOjpzZXRNYXNrc1RvQm91bmRzKGJvb2wgdmFsdWUpCiB7CiAgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0TWFza3NU
b0JvdW5kczp2YWx1ZV07CisgICAgW21fbGF5ZXIgc2V0TWFza3NUb0JvdW5kczp2YWx1ZV07CiAg
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiBib29sIFBsYXRmb3JtQ0FMYXllck1h
Yzo6YWNjZWxlcmF0ZXNEcmF3aW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gW21fbGF5ZXIuZ2V0
KCkgYWNjZWxlcmF0ZXNEcmF3aW5nXTsKKyAgICByZXR1cm4gW21fbGF5ZXIgYWNjZWxlcmF0ZXNE
cmF3aW5nXTsKIH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldEFjY2VsZXJhdGVzRHJh
d2luZyhib29sIGFjY2VsZXJhdGVzRHJhd2luZykKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKLSAgICBbbV9sYXllci5nZXQoKSBzZXRBY2NlbGVyYXRlc0RyYXdpbmc6YWNjZWxl
cmF0ZXNEcmF3aW5nXTsKKyAgICBbbV9sYXllciBzZXRBY2NlbGVyYXRlc0RyYXdpbmc6YWNjZWxl
cmF0ZXNEcmF3aW5nXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIENGVHlw
ZVJlZiBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmNvbnRlbnRzKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
W21fbGF5ZXIuZ2V0KCkgY29udGVudHNdOworICAgIHJldHVybiBbbV9sYXllciBjb250ZW50c107
CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXRDb250ZW50cyhDRlR5cGVSZWYgdmFs
dWUpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21fbGF5ZXIuZ2V0
KCkgc2V0Q29udGVudHM6c3RhdGljX2Nhc3Q8aWQ+KGNvbnN0X2Nhc3Q8dm9pZCo+KHZhbHVlKSld
OworICAgIFttX2xheWVyIHNldENvbnRlbnRzOnN0YXRpY19jYXN0PGlkPihjb25zdF9jYXN0PHZv
aWQqPih2YWx1ZSkpXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHZvaWQg
UGxhdGZvcm1DQUxheWVyTWFjOjpzZXRDb250ZW50c1JlY3QoY29uc3QgRmxvYXRSZWN0JiB2YWx1
ZSkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBbbV9sYXllci5nZXQo
KSBzZXRDb250ZW50c1JlY3Q6dmFsdWVdOworICAgIFttX2xheWVyIHNldENvbnRlbnRzUmVjdDp2
YWx1ZV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiB2b2lkIFBsYXRmb3Jt
Q0FMYXllck1hYzo6c2V0TWluaWZpY2F0aW9uRmlsdGVyKEZpbHRlclR5cGUgdmFsdWUpCiB7CiAg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0TWlu
aWZpY2F0aW9uRmlsdGVyOnRvQ0FGaWx0ZXJUeXBlKHZhbHVlKV07CisgICAgW21fbGF5ZXIgc2V0
TWluaWZpY2F0aW9uRmlsdGVyOnRvQ0FGaWx0ZXJUeXBlKHZhbHVlKV07CiAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0TWFnbmlm
aWNhdGlvbkZpbHRlcihGaWx0ZXJUeXBlIHZhbHVlKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwotICAgIFttX2xheWVyLmdldCgpIHNldE1hZ25pZmljYXRpb25GaWx0ZXI6dG9D
QUZpbHRlclR5cGUodmFsdWUpXTsKKyAgICBbbV9sYXllciBzZXRNYWduaWZpY2F0aW9uRmlsdGVy
OnRvQ0FGaWx0ZXJUeXBlKHZhbHVlKV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwog
fQogCiBDb2xvciBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmJhY2tncm91bmRDb2xvcigpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIFttX2xheWVyLmdldCgpIGJhY2tncm91bmRDb2xvcl07CisgICAgcmV0dXJu
IFttX2xheWVyIGJhY2tncm91bmRDb2xvcl07CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFj
OjpzZXRCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIHZhbHVlKQpAQCAtNjA4LDE0ICs2MTMs
MTQgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldEJhY2tncm91bmRDb2xvcihjb25zdCBD
b2xvciYgdmFsdWUpCiAgICAgUmV0YWluUHRyPENHQ29sb3JSZWY+IGNvbG9yID0gYWRvcHRDRihD
R0NvbG9yQ3JlYXRlKGNvbG9yU3BhY2UuZ2V0KCksIGNvbXBvbmVudHMpKTsKIAogICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFttX2xheWVyLmdldCgpIHNldEJhY2tncm91bmRD
b2xvcjpjb2xvci5nZXQoKV07CisgICAgW21fbGF5ZXIgc2V0QmFja2dyb3VuZENvbG9yOmNvbG9y
LmdldCgpXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHZvaWQgUGxhdGZv
cm1DQUxheWVyTWFjOjpzZXRCb3JkZXJXaWR0aChmbG9hdCB2YWx1ZSkKIHsKICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBbbV9sYXllci5nZXQoKSBzZXRCb3JkZXJXaWR0aDp2
YWx1ZV07CisgICAgW21fbGF5ZXIgc2V0Qm9yZGVyV2lkdGg6dmFsdWVdOwogICAgIEVORF9CTE9D
S19PQkpDX0VYQ0VQVElPTlMKIH0KIApAQCAtNjI4LDE5ICs2MzMsMTkgQEAgdm9pZCBQbGF0Zm9y
bUNBTGF5ZXJNYWM6OnNldEJvcmRlckNvbG9yKGNvbnN0IENvbG9yJiB2YWx1ZSkKICAgICBSZXRh
aW5QdHI8Q0dDb2xvclJlZj4gY29sb3IgPSBhZG9wdENGKENHQ29sb3JDcmVhdGUoY29sb3JTcGFj
ZS5nZXQoKSwgY29tcG9uZW50cykpOwogCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
Ci0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0Qm9yZGVyQ29sb3I6Y29sb3IuZ2V0KCldOworICAgIFtt
X2xheWVyIHNldEJvcmRlckNvbG9yOmNvbG9yLmdldCgpXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TCiB9CiAKIGZsb2F0IFBsYXRmb3JtQ0FMYXllck1hYzo6b3BhY2l0eSgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIFttX2xheWVyLmdldCgpIG9wYWNpdHldOworICAgIHJldHVybiBbbV9s
YXllciBvcGFjaXR5XTsKIH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldE9wYWNpdHko
ZmxvYXQgdmFsdWUpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21f
bGF5ZXIuZ2V0KCkgc2V0T3BhY2l0eTp2YWx1ZV07CisgICAgW21fbGF5ZXIgc2V0T3BhY2l0eTp2
YWx1ZV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCkBAIC02NTMsNyArNjU4
LDcgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldEZpbHRlcnMoY29uc3QgRmlsdGVyT3Bl
cmF0aW9ucyYgZmlsdGVycykKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpjb3B5RmlsdGVyc0Zy
b20oY29uc3QgUGxhdGZvcm1DQUxheWVyKiBzb3VyY2VMYXllcikKIHsKICAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlMKLSAgICBbbV9sYXllci5nZXQoKSBzZXRGaWx0ZXJzOltzb3VyY2VM
YXllci0+cGxhdGZvcm1MYXllcigpIGZpbHRlcnNdXTsKKyAgICBbbV9sYXllciBzZXRGaWx0ZXJz
Oltzb3VyY2VMYXllci0+cGxhdGZvcm1MYXllcigpIGZpbHRlcnNdXTsKICAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TCiB9CiAKQEAgLTY5Miw0MSArNjk3LDQxIEBAIHZvaWQgUGxhdGZvcm1D
QUxheWVyTWFjOjpzZXRCbGVuZE1vZGUoQmxlbmRNb2RlIGJsZW5kTW9kZSkKIHZvaWQgUGxhdGZv
cm1DQUxheWVyTWFjOjpzZXROYW1lKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0TmFtZTp2YWx1ZV07
CisgICAgW21fbGF5ZXIgc2V0TmFtZTp2YWx1ZV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0U3BlZWQoZmxvYXQgdmFsdWUp
CiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW21fbGF5ZXIuZ2V0KCkg
c2V0U3BlZWQ6dmFsdWVdOworICAgIFttX2xheWVyIHNldFNwZWVkOnZhbHVlXTsKICAgICBFTkRf
QkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXRU
aW1lT2Zmc2V0KENGVGltZUludGVydmFsIHZhbHVlKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwotICAgIFttX2xheWVyLmdldCgpIHNldFRpbWVPZmZzZXQ6dmFsdWVdOworICAg
IFttX2xheWVyIHNldFRpbWVPZmZzZXQ6dmFsdWVdOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKIH0KIAogZmxvYXQgUGxhdGZvcm1DQUxheWVyTWFjOjpjb250ZW50c1NjYWxlKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gW21fbGF5ZXIuZ2V0KCkgY29udGVudHNTY2FsZV07CisgICAgcmV0
dXJuIFttX2xheWVyIGNvbnRlbnRzU2NhbGVdOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllck1h
Yzo6c2V0Q29udGVudHNTY2FsZShmbG9hdCB2YWx1ZSkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlMKLSAgICBbbV9sYXllci5nZXQoKSBzZXRDb250ZW50c1NjYWxlOnZhbHVlXTsK
KyAgICBbbV9sYXllciBzZXRDb250ZW50c1NjYWxlOnZhbHVlXTsKICNpZiBQTEFURk9STShJT1Mp
Ci0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0UmFzdGVyaXphdGlvblNjYWxlOnZhbHVlXTsKKyAgICBb
bV9sYXllciBzZXRSYXN0ZXJpemF0aW9uU2NhbGU6dmFsdWVdOwogCiAgICAgaWYgKG1fbGF5ZXJU
eXBlID09IExheWVyVHlwZVdlYlRpbGVkTGF5ZXIpIHsKICAgICAgICAgLy8gVGhpcyB3aWxsIGlu
dmFsaWRhdGUgYWxsIHRoZSB0aWxlcyBzbyB3ZSB3b24ndCBlbmQgdXAgd2l0aCBzdGFsZSB0aWxl
cyB3aXRoIHRoZSB3cm9uZyBzY2FsZSBpbiB0aGUgd3JvbmcgcGxhY2UsCiAgICAgICAgIC8vIHNl
ZSA8cmRhcjovL3Byb2JsZW0vOTQzNDc2NT4gZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICAgICAg
IHN0YXRpYyBOU0RpY3Rpb25hcnkgKm9wdGlvbnNEaWN0aW9uYXJ5ID0gW1tOU0RpY3Rpb25hcnkg
YWxsb2NdIGluaXRXaXRoT2JqZWN0c0FuZEtleXM6W05TTnVtYmVyIG51bWJlcldpdGhCb29sOllF
U10sIGtDQVRpbGVkTGF5ZXJSZW1vdmVJbW1lZGlhdGVseSwgbmlsXTsKLSAgICAgICAgWyhDQVRp
bGVkTGF5ZXIgKiltX2xheWVyLmdldCgpIHNldE5lZWRzRGlzcGxheUluUmVjdDpbbV9sYXllci5n
ZXQoKSBib3VuZHNdIGxldmVsT2ZEZXRhaWw6MCBvcHRpb25zOm9wdGlvbnNEaWN0aW9uYXJ5XTsK
KyAgICAgICAgWyhDQVRpbGVkTGF5ZXIgKiltX2xheWVyLmdldCgpIHNldE5lZWRzRGlzcGxheUlu
UmVjdDpbbV9sYXllciBib3VuZHNdIGxldmVsT2ZEZXRhaWw6MCBvcHRpb25zOm9wdGlvbnNEaWN0
aW9uYXJ5XTsKICAgICB9CiAjZW5kaWYKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCkBA
IC03MzUsNyArNzQwLDcgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldENvbnRlbnRzU2Nh
bGUoZmxvYXQgdmFsdWUpCiB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0RWRnZUFudGlhbGlh
c2luZ01hc2sodW5zaWduZWQgbWFzaykKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKLSAgICBbbV9sYXllci5nZXQoKSBzZXRFZGdlQW50aWFsaWFzaW5nTWFzazptYXNrXTsKKyAg
ICBbbV9sYXllciBzZXRFZGdlQW50aWFsaWFzaW5nTWFzazptYXNrXTsKICAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TCiB9CiAKQEAgLTc5MSw3ICs3OTYsNyBAQCBib29sIFBsYXRmb3JtQ0FM
YXllcjo6aXNXZWJMYXllcigpCiB7CiAgICAgQk9PTCByZXN1bHQgPSBOTzsKICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICByZXN1bHQgPSBbbV9sYXllci5nZXQoKSBpc0tpbmRP
ZkNsYXNzOltXZWJMYXllciBzZWxmXV07CisgICAgcmVzdWx0ID0gW21fbGF5ZXIgaXNLaW5kT2ZD
bGFzczpbV2ViTGF5ZXIgc2VsZl1dOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAg
ICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcAppbmRleCBhOTQx
NWY0ZWFhZWRkMTljMGY4ZGQ4YzUyZWZhN2JkNDViOGRjNjQ4Li5iZGY2ODQ1YTcyZGNhOTRhMzVj
Njg5MGVjMzQ1YjFmNzYzMTM3N2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcApAQCAt
MzA4LDcgKzMwOCw3IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyV2luOjpyZW1vdmVBbmltYXRpb25G
b3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpCiAgICAgc2V0TmVlZHNDb21taXQoKTsKIH0KIAotUGFz
c1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBTGF5ZXJXaW46OmFuaW1hdGlv
bkZvcktleShjb25zdCBTdHJpbmcmIGtleSkKK1Bhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlv
bj4gUGxhdGZvcm1DQUxheWVyV2luOjphbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkp
IGNvbnN0CiB7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9u
PiA+OjppdGVyYXRvciBpdCA9IG1fYW5pbWF0aW9ucy5maW5kKGtleSk7CiAgICAgaWYgKGl0ID09
IG1fYW5pbWF0aW9ucy5lbmQoKSkKQEAgLTMxNyw2ICszMTcsMTEgQEAgUGFzc1JlZlB0cjxQbGF0
Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBTGF5ZXJXaW46OmFuaW1hdGlvbkZvcktleShjb25z
dCBTdHJpbmcKICAgICByZXR1cm4gaXQtPnZhbHVlOwogfQogCitib29sIFBsYXRmb3JtQ0FMYXll
cldpbjo6aGFzQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBjb25zdAoreworICAg
IHJldHVybiBtX2FuaW1hdGlvbnMuY29udGFpbnMoa2V5KTsKK30KKwogdm9pZCBQbGF0Zm9ybUNB
TGF5ZXJXaW46OnNldE1hc2soUGxhdGZvcm1DQUxheWVyKiBsYXllcikKIHsKICAgICBDQUNGTGF5
ZXJTZXRNYXNrKG1fbGF5ZXIuZ2V0KCksIGxheWVyID8gbGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSA6
IDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2lu
L1BsYXRmb3JtQ0FMYXllcldpbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5oCmluZGV4IGQzNzIyZDY2ZGE2NjFjMGE2ZDU1OTg2
NDNmMTM3Y2M5ODFmYjA0OWQuLmJiZmJiYzE1MGFkNzVlZmQ4OWQwOTdkZDZjNmZkZGU1Njc5MGNj
NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBTGF5ZXJXaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmgKQEAgLTU1LDcgKzU1LDggQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIGFkZEFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSwg
UGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVB
bmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBhbmltYXRpb25Gb3JLZXkoY29uc3QgU3Ry
aW5nJiBrZXkpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5p
bWF0aW9uPiBhbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBib29sIGhhc0FuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChDRlRpbWVJbnRlcnZh
bCBiZWdpblRpbWUpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHNldE1hc2soUGxhdGZv
cm1DQUxheWVyKikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKaW5kZXgg
YjgzZjAwYTA4Mjk5YjhlYzBlYzkxMGYwMjQzZWY1NWQyNjlmMGUxZC4uYjg0NmU0MzdjMTU0ZjVj
MDgwMDA1NDM4ODk5Njg5YzJiOWE0YmNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNw
cApAQCAtMjk5LDYgKzI5OSw4IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphZG9wdFN1
YmxheWVycyhQbGF0Zm9ybUNBTGF5ZXIqIHNvdXJjZSkKIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGU6OmFkZEFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSwgUGxhdGZvcm1DQUFu
aW1hdGlvbiogYW5pbWF0aW9uKQogeworICAgIG1fcnVubmluZ0FuaW1hdGlvbnMuYWRkKGtleSk7
CisKICAgICBtX3Byb3BlcnRpZXMuYWRkZWRBbmltYXRpb25zLnNldChrZXksIHRvUGxhdGZvcm1D
QUFuaW1hdGlvblJlbW90ZShhbmltYXRpb24pLT5wcm9wZXJ0aWVzKCkpOwogICAgIG1fcHJvcGVy
dGllcy5ub3RlUHJvcGVydGllc0NoYW5nZWQoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkFu
aW1hdGlvbnNDaGFuZ2VkKTsKIApAQCAtMzA4LDE3ICszMTAsMjQgQEAgdm9pZCBQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGU6OmFkZEFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSwgUGxhdGZv
cm1DQUFuaW0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlbW92ZUFuaW1hdGlvbkZv
cktleShjb25zdCBTdHJpbmcmIGtleSkKIHsKKyAgICBtX3J1bm5pbmdBbmltYXRpb25zLnJlbW92
ZShrZXkpOworCiAgICAgbV9wcm9wZXJ0aWVzLmFkZGVkQW5pbWF0aW9ucy5yZW1vdmUoa2V5KTsK
ICAgICBtX3Byb3BlcnRpZXMua2V5UGF0aHNPZkFuaW1hdGlvbnNUb1JlbW92ZS5hZGQoa2V5KTsK
ICAgICBtX3Byb3BlcnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpBbmltYXRpb25zQ2hhbmdlZCk7CiB9CiAKLVBhc3NSZWZQdHI8UGxhdGZvcm1D
QUFuaW1hdGlvbj4gUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphbmltYXRpb25Gb3JLZXkoY29uc3Qg
U3RyaW5nJiBrZXkpCitQYXNzUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb24+IFBs
YXRmb3JtQ0FMYXllclJlbW90ZTo6YW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYpIGNvbnN0
CiB7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudC4KKyAgICAvLyBGSVhNRTogaW1wbGVtZW50LiA8
cmRhcjovL3Byb2JsZW0vMTY5MDYzNjk+CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK2Jvb2wg
UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpoYXNBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBr
ZXkpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcnVubmluZ0FuaW1hdGlvbnMuY29udGFpbnMoa2V5
KTsKK30KKwogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldE1hc2soUGxhdGZvcm1DQUxh
eWVyKiBsYXllcikKIHsKICAgICBpZiAobGF5ZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5o
CmluZGV4IDU4MzQ2ZTA5M2NmMGQ4MThhZmViYTliYzI4OWE2NDY4ZGU4NzA0YWQuLjBkMTU4Yzc2
ZDBlNjg5NzM0NzQ2Njk2ZDQzOGVmZWM3MGNkMjEzMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1v
dGUuaApAQCAtNjMsOSArNjMsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgY29uc3QgV2ViQ29y
ZTo6UGxhdGZvcm1DQUxheWVyTGlzdCogY3VzdG9tU3VibGF5ZXJzKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgdm9pZCBhZG9wdFN1YmxheWVycyhXZWJD
b3JlOjpQbGF0Zm9ybUNBTGF5ZXIqIHNvdXJjZSkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgYWRkQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBXZWJDb3JlOjpQbGF0Zm9y
bUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1hdGlv
bkZvcktleShjb25zdCBTdHJpbmcmIGtleSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBQYXNzUmVm
UHRyPFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb24+IGFuaW1hdGlvbkZvcktleShjb25zdCBT
dHJpbmcmIGtleSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFkZEFuaW1hdGlvbkZvcktl
eShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1h
dGlvbj4gYW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBoYXNBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJikgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoQ0ZUaW1lSW50ZXJ2YWwg
YmVnaW5UaW1lKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRNYXNrKFdlYkNvcmU6
OlBsYXRmb3JtQ0FMYXllciopIG92ZXJyaWRlOwpAQCAtMTc1LDYgKzE3Niw3IEBAIHByaXZhdGU6
CiAKICAgICBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzIG1fcHJv
cGVydGllczsKICAgICBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJMaXN0IG1fY2hpbGRyZW47Cisg
ICAgSGFzaFNldDxTdHJpbmc+IG1fcnVubmluZ0FuaW1hdGlvbnM7CiAgICAgUGxhdGZvcm1DQUxh
eWVyUmVtb3RlKiBtX3N1cGVybGF5ZXI7CiAgICAgUGxhdGZvcm1DQUxheWVyUmVtb3RlKiBtX21h
c2tMYXllcjsKICAgICBib29sIG1fYWNjZWxlcmF0ZXNEcmF3aW5nOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>