<?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>122020</bug_id>
          
          <creation_ts>2013-09-27 10:20:11 -0700</creation_ts>
          <short_desc>Use std::unique_ptr for GraphicsLayer creation</short_desc>
          <delta_ts>2013-09-27 11:38:10 -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>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>933985</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-27 10:20:11 -0700</bug_when>
    <thetext>Use std::unique_ptr for GraphicsLayer creation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933988</commentid>
    <comment_count>1</comment_count>
      <attachid>212818</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-27 10:23:10 -0700</bug_when>
    <thetext>Created attachment 212818
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933994</commentid>
    <comment_count>2</comment_count>
      <attachid>212818</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-09-27 10:30:33 -0700</bug_when>
    <thetext>Comment on attachment 212818
Patch

Attachment 212818 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/2655161</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933995</commentid>
    <comment_count>3</comment_count>
      <attachid>212818</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-09-27 10:31:18 -0700</bug_when>
    <thetext>Comment on attachment 212818
Patch

Attachment 212818 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/2658197</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934001</commentid>
    <comment_count>4</comment_count>
      <attachid>212818</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-09-27 10:40:10 -0700</bug_when>
    <thetext>Comment on attachment 212818
Patch

Attachment 212818 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/2658199</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934002</commentid>
    <comment_count>5</comment_count>
      <attachid>212822</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-27 10:41:23 -0700</bug_when>
    <thetext>Created attachment 212822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934010</commentid>
    <comment_count>6</comment_count>
      <attachid>212822</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-09-27 10:47:34 -0700</bug_when>
    <thetext>Comment on attachment 212822
Patch

Attachment 212822 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/2658201</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934011</commentid>
    <comment_count>7</comment_count>
      <attachid>212824</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-27 10:47:41 -0700</bug_when>
    <thetext>Created attachment 212824
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934013</commentid>
    <comment_count>8</comment_count>
      <attachid>212824</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-09-27 10:58:12 -0700</bug_when>
    <thetext>Comment on attachment 212824
Patch

Attachment 212824 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/2658206</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934015</commentid>
    <comment_count>9</comment_count>
      <attachid>212824</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-09-27 11:03:56 -0700</bug_when>
    <thetext>Comment on attachment 212824
Patch

Attachment 212824 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/2650181</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934016</commentid>
    <comment_count>10</comment_count>
      <attachid>212826</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-27 11:04:37 -0700</bug_when>
    <thetext>Created attachment 212826
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934017</commentid>
    <comment_count>11</comment_count>
      <attachid>212826</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-09-27 11:13:26 -0700</bug_when>
    <thetext>Comment on attachment 212826
Patch

Attachment 212826 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/2623197</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934018</commentid>
    <comment_count>12</comment_count>
      <attachid>212826</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-09-27 11:14:19 -0700</bug_when>
    <thetext>Comment on attachment 212826
Patch

Attachment 212826 did not pass gtk-wk2-ews (gtk-wk2):
Output: http://webkit-queues.appspot.com/results/2653184</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934029</commentid>
    <comment_count>13</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-27 11:38:10 -0700</bug_when>
    <thetext>Committed r156560: &lt;http://trac.webkit.org/changeset/156560&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212818</attachid>
            <date>2013-09-27 10:23:10 -0700</date>
            <delta_ts>2013-09-27 10:41:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122020-20130927102309.patch</filename>
            <type>text/plain</type>
            <size>29546</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTlmMjI4YjgzODZkNzFh
MmY1YTNmZGJkMDQ0MmMyMTBhNzZjM2UwNy4uOTRjOWQzMWI0YWY3MTQ1ZGZlZDBhYTNkYzYwNWFh
NTg3NTE0OWQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTA5LTI3ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6dW5p
cXVlX3B0ciBmb3IgR3JhcGhpY3NMYXllciBjcmVhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMDIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckZhY3Rvcnku
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVHcmFwaGljc0xh
eWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29t
cG9zaXRpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVH
cmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBk
YXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJCYWNraW5nOjpwYWludEludG9MYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpo
YXNTY3JvbGxpbmdMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZVJvb3RMYXllclBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmg6CisKIDIwMTMtMDktMjYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgog
CiAgICAgICAgIHJlbmFtZSBLVVJMIHRvIFVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDY2Zjk4NWRkODU0OTgx
NTQ2MWFlMzk1NTlkYzU0MGZlYjZkNDEzNWMuLjc2YzY4NGFiNmIzOTk3NTE5ZjI4Y2Q2OWI1YmJh
MjQ1NzllMzdjZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wOS0yNyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBzdGQ6OnVu
aXF1ZV9wdHIgZm9yIEdyYXBoaWNzTGF5ZXIgY3JlYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjAyMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRy
ZWVIb3N0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1t
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpnZXRPckNyZWF0ZUxheWVy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhvc3RNYWMuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhvc3RNYWMubW06Cisg
ICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RNYWM6OnBhaW50Q29udGVudHMpOgorICAgICAg
ICAoV2ViS2l0OjpMYXllclRyZWVIb3N0TWFjOjpjcmVhdGVQYWdlT3ZlcmxheUxheWVyKToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdE1hYzo6ZGVzdHJveVBhZ2VPdmVybGF5TGF5ZXIp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlR3JhcGhpY3NMYXllci5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlR3JhcGhpY3NMYXllci5t
bToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRl
eHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNv
bnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmNyZWF0
ZUdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6cGFpbnRDb250ZW50cyk6CisgICAgICAgIChX
ZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpjcmVhdGVQYWdlT3ZlcmxheUxh
eWVyKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmRl
c3Ryb3lQYWdlT3ZlcmxheUxheWVyKToKKwogMjAxMy0wOS0yNiAgRGFyaW4gQWRsZXIgIDxkYXJp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgcmVuYW1lIEtVUkwgdG8gVVJMCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggMTQyOWRjMjNl
YjVhMWJmYTE2ZGYxMzhhZTg3Yjk4OWI0YTU0M2JjNy4uZWJhNDNkZDRlYjJjMmRhYjY1ZThkYjNm
ZDViZWU0ZjcwY2Y2NTI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtMjI0LDcgKzIyNCw3IEBAIHByb3RlY3RlZDoKIGNsYXNz
IEdyYXBoaWNzTGF5ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdyYXBoaWNzTGF5ZXIp
OyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0
cjxHcmFwaGljc0xheWVyPiBjcmVhdGUoR3JhcGhpY3NMYXllckZhY3RvcnkqLCBHcmFwaGljc0xh
eWVyQ2xpZW50Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBj
cmVhdGUoR3JhcGhpY3NMYXllckZhY3RvcnkqLCBHcmFwaGljc0xheWVyQ2xpZW50Kik7CiAgICAg
CiAgICAgdmlydHVhbCB+R3JhcGhpY3NMYXllcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFjdG9yeS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckZhY3RvcnkuaAppbmRleCBjNzQ3
YmI4YTY3NzNkNDA4NjNlYjY5Y2FiY2UyZjUyNDU1M2YwMDk2Li42NDEzZTkzY2I0MmExZjFhZWM1
MmY1ZmE5MDI1OTUwZjk5OGY5ODM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJGYWN0b3J5LmgKQEAgLTM5LDcgKzM5LDcgQEAg
Y2xhc3MgR3JhcGhpY3NMYXllckZhY3RvcnkgewogcHVibGljOgogICAgIHZpcnR1YWwgfkdyYXBo
aWNzTGF5ZXJGYWN0b3J5KCkgeyB9CiAKLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8R3JhcGhpY3NM
YXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KikgPSAwOworICAg
IHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5
ZXIoR3JhcGhpY3NMYXllckNsaWVudCopID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFw
aGljc0xheWVyQ0EuY3BwCmluZGV4IDAyNTFmYzNjYTY3MDJjYWZmYWZmODdiZWEwMTViOGQwYzI5
ODA0ZjcuLjIwMGMxMzQyZGE0ZjI5ZGM4YzEwMWQ2N2Y2ODc3MWU1MWVkMjhhZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXll
ckNBLmNwcApAQCAtMjczLDEwICsyNzMsMTAgQEAgc3RhdGljIGlubGluZSBib29sIHN1cHBvcnRz
QWNjZWxlcmF0ZWRGaWx0ZXJBbmltYXRpb25zKCkKIH0KICNlbmRpZgogCi1QYXNzT3duUHRyPEdy
YXBoaWNzTGF5ZXI+IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSog
ZmFjdG9yeSwgR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQorc3RkOjp1bmlxdWVfcHRyPEdy
YXBoaWNzTGF5ZXI+IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSog
ZmFjdG9yeSwgR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogewogICAgIGlmICghZmFjdG9y
eSkKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHcmFwaGljc0xheWVyQ0EoY2xpZW50KSk7
CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyYXBoaWNzTGF5ZXJDQT4oY2xpZW50
KTsKIAogICAgIHJldHVybiBmYWN0b3J5LT5jcmVhdGVHcmFwaGljc0xheWVyKGNsaWVudCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5oCmluZGV4IDk2ODEyNzM2NmY1ZjljZDZjMjYyMTljNDY4ZTRkMGI1YTllYmJmMmQu
LmYzZTRjOGIwZThiMTk5ZjI1MDYyOWQyMGM4MzM1YTY2NTcyOTI2YjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBA
IC0xOTQsNyArMTk0LDcgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIFN0cmluZyBDbG9uZUlEOyAv
LyBJZGVudGlmaWVyIGZvciBhIGdpdmVuIGNsb25lLCBiYXNlZCBvbiBvcmlnaW5hbC9yZXBsaWNh
IGJyYW5jaGluZyBkb3duIHRoZSB0cmVlLgogICAgIHN0YXRpYyBib29sIGlzUmVwbGljYXRlZFJv
b3RDbG9uZShjb25zdCBDbG9uZUlEJiBjbG9uZUlEKSB7IHJldHVybiBjbG9uZUlEWzBVXSAmIDE7
IH0KIAotICAgIHR5cGVkZWYgSGFzaE1hcDxDbG9uZUlELCBSZWZQdHI8UGxhdGZvcm1DQUxheWVy
PiA+IExheWVyTWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxDbG9uZUlELCBSZWZQdHI8UGxhdGZv
cm1DQUxheWVyPj4gTGF5ZXJNYXA7CiAgICAgTGF5ZXJNYXAqIHByaW1hcnlMYXllckNsb25lcygp
IGNvbnN0IHsgcmV0dXJuIG1fc3RydWN0dXJhbExheWVyLmdldCgpID8gbV9zdHJ1Y3R1cmFsTGF5
ZXJDbG9uZXMuZ2V0KCkgOiBtX2xheWVyQ2xvbmVzLmdldCgpOyB9CiAgICAgTGF5ZXJNYXAqIGFu
aW1hdGVkTGF5ZXJDbG9uZXMoQW5pbWF0ZWRQcm9wZXJ0eUlEKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
bXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IGQw
OTY4YjlhNTRhMjBiZGQ1NmQ4MjcyZWZjZGJiZDI3YjMwNTdhYzAuLjQwNzgyMWNmMWM3NzViMjBh
MGM2ZmNiYzNlNmU4ZmI4OWY5NjgxMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKQEAgLTI2NCw3ICsyNjQsNyBAQCB2b2lkIENv
bXBvc2l0aW5nQ29vcmRpbmF0b3I6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciog
Z3JhcGhpY3NMYXllciwgRwogICAgIG1fY2xpZW50LT5wYWludExheWVyQ29udGVudHMoZ3JhcGhp
Y3NMYXllciwgZ3JhcGhpY3NDb250ZXh0LCBjbGlwUmVjdCk7CiB9CiAKLVBhc3NPd25QdHI8R3Jh
cGhpY3NMYXllcj4gQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Y3JlYXRlR3JhcGhpY3NMYXllcihH
cmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCitzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXll
cj4gQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Y3JlYXRlR3JhcGhpY3NMYXllcihHcmFwaGljc0xh
eWVyQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBsYXll
ciA9IG5ldyBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoY2xpZW50KTsKICAgICBsYXllci0+c2V0
Q29vcmRpbmF0b3IodGhpcyk7CkBAIC0yNzIsNyArMjcyLDcgQEAgUGFzc093blB0cjxHcmFwaGlj
c0xheWVyPiBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBo
aWNzTGEKICAgICBtX3N0YXRlLmxheWVyc1RvQ3JlYXRlLmFwcGVuZChsYXllci0+aWQoKSk7CiAg
ICAgbGF5ZXItPnNldE5lZWRzVmlzaWJsZVJlY3RBZGp1c3RtZW50KCk7CiAgICAgbV9jbGllbnQt
Pm5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKLSAgICByZXR1cm4gYWRvcHRQdHIobGF5ZXIpOworICAg
IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4obGF5ZXIpOwogfQogCiBmbG9h
dCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaAppbmRleCBm
ZDQxY2I4NzMyODUyZDAzMmUyMmVmNTJhMTRjOGU0ODc4NmY2NTdiLi41ODNhN2M3ZTZmNjA1ZGM1
YTI2ZTk5ZmMyYTkwYzdmMWNmZmIzZDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVVcGRhdGVBdGxhcyh1aW50MzJfdCBhdGxhc0lEKSBPVkVS
UklERTsKIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJGYWN0b3J5Ci0gICAgdmlydHVhbCBQYXNzT3du
UHRyPEdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVu
dCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+
IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCopIE9WRVJSSURFOwogCiAg
ICAgdm9pZCBpbml0aWFsaXplUm9vdENvbXBvc2l0aW5nTGF5ZXJJZk5lZWRlZCgpOwogICAgIHZv
aWQgZmx1c2hQZW5kaW5nSW1hZ2VCYWNraW5nQ2hhbmdlcygpOwpAQCAtMTM1LDcgKzEzNSw3IEBA
IHByaXZhdGU6CiAgICAgUGFnZSogbV9wYWdlOwogICAgIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6
OkNsaWVudCogbV9jbGllbnQ7CiAKLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9yb290TGF5
ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fcm9vdExheWVyOwogICAg
IEdyYXBoaWNzTGF5ZXIqIG1fcm9vdENvbXBvc2l0aW5nTGF5ZXI7CiAKICAgICBDb29yZGluYXRl
ZEdyYXBoaWNzU3RhdGUgbV9zdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggNjBmMjcwMGExMzk0N2YyOTMxNTIyNzkyOTRlZTkz
NThjYTRkMzllNi4uNjhiOWI5Mjk3ZmY3ZmM0MGIyMjBmMzYxYjc2ZTdmYzJjZDhiN2Y4ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAg
LTE2MSwxMyArMTYxLDEzIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp3aWxsRGVzdHJveUxh
eWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogICAgICAgICBjb21wb3NpdG9yKCkubGF5
ZXJUaWxlZEJhY2tpbmdVc2FnZUNoYW5nZWQobGF5ZXIsIGZhbHNlKTsKIH0KIAotUGFzc093blB0
cjxHcmFwaGljc0xheWVyPiBSZW5kZXJMYXllckJhY2tpbmc6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIo
Y29uc3QgU3RyaW5nJiBuYW1lKQorc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IFJlbmRl
ckxheWVyQmFja2luZzo6Y3JlYXRlR3JhcGhpY3NMYXllcihjb25zdCBTdHJpbmcmIG5hbWUpCiB7
CiAgICAgR3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5ID0gMDsKICAg
ICBpZiAoUGFnZSogcGFnZSA9IHJlbmRlcmVyKCkuZnJhbWUoKS5wYWdlKCkpCiAgICAgICAgIGdy
YXBoaWNzTGF5ZXJGYWN0b3J5ID0gcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuZ3JhcGhpY3NMYXll
ckZhY3RvcnkoKTsKIAotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBncmFwaGljc0xheWVyID0g
R3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5LCB0aGlzKTsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gZ3JhcGhpY3NMYXllciA9IEdyYXBoaWNzTGF5
ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSwgdGhpcyk7CiAKICNpZm5kZWYgTkRFQlVH
CiAgICAgZ3JhcGhpY3NMYXllci0+c2V0TmFtZShuYW1lKTsKQEAgLTE4MCw3ICsxODAsNyBAQCBQ
YXNzT3duUHRyPEdyYXBoaWNzTGF5ZXI+IFJlbmRlckxheWVyQmFja2luZzo6Y3JlYXRlR3JhcGhp
Y3NMYXllcihjb25zdCBTdHJpbmcmCiAgICAgZ3JhcGhpY3NMYXllci0+c2V0QWNjZWxlcmF0ZXNE
cmF3aW5nKGNvbXBvc2l0b3IoKS5hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKCkpOwogI2VuZGlm
ICAgIAogICAgIAotICAgIHJldHVybiBncmFwaGljc0xheWVyLnJlbGVhc2UoKTsKKyAgICByZXR1
cm4gZ3JhcGhpY3NMYXllcjsKIH0KIAogYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnNob3VsZFVz
ZVRpbGVkQmFja2luZyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKQEAgLTUyMyw3ICs1MjMs
NyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3Vy
YXRpb24oKQogICAgICAgICB1cGRhdGVJbnRlcm5hbEhpZXJhcmNoeSgpOwogCiAgICAgaWYgKEdy
YXBoaWNzTGF5ZXIqIGZsYXR0ZW5pbmdMYXllciA9IHRpbGVDYWNoZUZsYXR0ZW5pbmdMYXllcigp
KSB7Ci0gICAgICAgIGlmIChsYXllckNvbmZpZ0NoYW5nZWQgfHwgZmxhdHRlbmluZ0xheWVyLT5w
YXJlbnQoKSAhPSBtX2dyYXBoaWNzTGF5ZXIpCisgICAgICAgIGlmIChsYXllckNvbmZpZ0NoYW5n
ZWQgfHwgZmxhdHRlbmluZ0xheWVyLT5wYXJlbnQoKSAhPSBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCkp
CiAgICAgICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPmFkZENoaWxkKGZsYXR0ZW5pbmdMYXllcik7
CiAgICAgfQogCkBAIC0xOTgwLDcgKzE5ODAsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6
cGFpbnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcAog
ICAgIGlmIChwYWludGluZ1BoYXNlICYgR3JhcGhpY3NMYXllclBhaW50Q29tcG9zaXRlZFNjcm9s
bCkKICAgICAgICAgcGFpbnRGbGFncyB8PSBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5n
Q29tcG9zaXRpbmdTY3JvbGxpbmdQaGFzZTsKIAotICAgIGlmIChncmFwaGljc0xheWVyID09IG1f
YmFja2dyb3VuZExheWVyKQorICAgIGlmIChncmFwaGljc0xheWVyID09IG1fYmFja2dyb3VuZExh
eWVyLmdldCgpKQogICAgICAgICBwYWludEZsYWdzIHw9IChSZW5kZXJMYXllcjo6UGFpbnRMYXll
clBhaW50aW5nUm9vdEJhY2tncm91bmRPbmx5IHwgUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJQYWlu
dGluZ0NvbXBvc2l0aW5nRm9yZWdyb3VuZFBoYXNlKTsgLy8gTmVlZCBQYWludExheWVyUGFpbnRp
bmdDb21wb3NpdGluZ0ZvcmVncm91bmRQaGFzZSB0byB3YWxrIGNoaWxkIGxheWVycy4KICAgICBl
bHNlIGlmIChjb21wb3NpdG9yKCkuZml4ZWRSb290QmFja2dyb3VuZExheWVyKCkpCiAgICAgICAg
IHBhaW50RmxhZ3MgfD0gUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJQYWludGluZ1NraXBSb290QmFj
a2dyb3VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
aAppbmRleCA1NmYxN2MwYTZmZTBjZjE3MjViMTU3MTg3ZjkwZmIwMjlhMTNiYjdmLi44NTk4YmE0
YmFmZGI0NzMwNWEyODY5NGFiMmRmOTNmOGQ3YzRiMWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoK
ICAgICBHcmFwaGljc0xheWVyKiBiYWNrZ3JvdW5kTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2Jh
Y2tncm91bmRMYXllci5nZXQoKTsgfQogICAgIGJvb2wgYmFja2dyb3VuZExheWVyUGFpbnRzRml4
ZWRSb290QmFja2dyb3VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZExheWVyUGFpbnRz
Rml4ZWRSb290QmFja2dyb3VuZDsgfQogICAgIAotICAgIGJvb2wgaGFzU2Nyb2xsaW5nTGF5ZXIo
KSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGluZ0xheWVyOyB9CisgICAgYm9vbCBoYXNTY3JvbGxp
bmdMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nTGF5ZXIgIT0gbnVsbHB0cjsgfQog
ICAgIEdyYXBoaWNzTGF5ZXIqIHNjcm9sbGluZ0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3Jv
bGxpbmdMYXllci5nZXQoKTsgfQogICAgIEdyYXBoaWNzTGF5ZXIqIHNjcm9sbGluZ0NvbnRlbnRz
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIuZ2V0KCk7IH0K
IApAQCAtMjA4LDcgKzIwOCw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCB3aWxsRGVzdHJv
eUxheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKTsKICAgICAKLSAgICBQYXNzT3duUHRyPEdyYXBo
aWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoY29uc3QgU3RyaW5nJik7CisgICAgc3RkOjp1
bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoY29uc3QgU3RyaW5n
Jik7CiAKICAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0JiByZW5kZXJlcigpIGNvbnN0IHsgcmV0
dXJuIG1fb3duaW5nTGF5ZXItPnJlbmRlcmVyKCk7IH0KICAgICBSZW5kZXJMYXllckNvbXBvc2l0
b3ImIGNvbXBvc2l0b3IoKSBjb25zdCB7IHJldHVybiBtX293bmluZ0xheWVyLT5jb21wb3NpdG9y
KCk7IH0KQEAgLTI4MywyMCArMjgzLDIwIEBAIHByaXZhdGU6CiAKICAgICBSZW5kZXJMYXllciog
bV9vd25pbmdMYXllcjsKIAotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2FuY2VzdG9yQ2xp
cHBpbmdMYXllcjsgLy8gT25seSB1c2VkIGlmIHdlIGFyZSBjbGlwcGVkIGJ5IGFuIGFuY2VzdG9y
IHdoaWNoIGlzIG5vdCBhIHN0YWNraW5nIGNvbnRleHQuCi0gICAgT3duUHRyPEdyYXBoaWNzTGF5
ZXI+IG1fY29udGVudHNDb250YWlubWVudExheWVyOyAvLyBPbmx5IHVzZWQgaWYgd2UgaGF2ZSBh
IGJhY2tncm91bmQgbGF5ZXI7IHRha2VzIHRoZSB0cmFuc2Zvcm0uCi0gICAgT3duUHRyPEdyYXBo
aWNzTGF5ZXI+IG1fZ3JhcGhpY3NMYXllcjsKLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9m
b3JlZ3JvdW5kTGF5ZXI7IC8vIE9ubHkgdXNlZCBpbiBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRvIGRy
YXcgdGhlIGZvcmVncm91bmQgc2VwYXJhdGVseS4KLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4g
bV9iYWNrZ3JvdW5kTGF5ZXI7IC8vIE9ubHkgdXNlZCBpbiBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRv
IGRyYXcgdGhlIGJhY2tncm91bmQgc2VwYXJhdGVseS4KLSAgICBPd25QdHI8R3JhcGhpY3NMYXll
cj4gbV9jaGlsZENvbnRhaW5tZW50TGF5ZXI7IC8vIE9ubHkgdXNlZCBpZiB3ZSBoYXZlIGNsaXBw
aW5nIG9uIGEgc3RhY2tpbmcgY29udGV4dCB3aXRoIGNvbXBvc2l0aW5nIGNoaWxkcmVuLCBvciBp
ZiB0aGUgbGF5ZXIgaGFzIGEgdGlsZSBjYWNoZS4KLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4g
bV9tYXNrTGF5ZXI7IC8vIE9ubHkgdXNlZCBpZiB3ZSBoYXZlIGEgbWFzay4KKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9hbmNlc3RvckNsaXBwaW5nTGF5ZXI7IC8vIE9ubHkg
dXNlZCBpZiB3ZSBhcmUgY2xpcHBlZCBieSBhbiBhbmNlc3RvciB3aGljaCBpcyBub3QgYSBzdGFj
a2luZyBjb250ZXh0LgorICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2NvbnRl
bnRzQ29udGFpbm1lbnRMYXllcjsgLy8gT25seSB1c2VkIGlmIHdlIGhhdmUgYSBiYWNrZ3JvdW5k
IGxheWVyOyB0YWtlcyB0aGUgdHJhbnNmb3JtLgorICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGlj
c0xheWVyPiBtX2dyYXBoaWNzTGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5
ZXI+IG1fZm9yZWdyb3VuZExheWVyOyAvLyBPbmx5IHVzZWQgaW4gY2FzZXMgd2hlcmUgd2UgbmVl
ZCB0byBkcmF3IHRoZSBmb3JlZ3JvdW5kIHNlcGFyYXRlbHkuCisgICAgc3RkOjp1bmlxdWVfcHRy
PEdyYXBoaWNzTGF5ZXI+IG1fYmFja2dyb3VuZExheWVyOyAvLyBPbmx5IHVzZWQgaW4gY2FzZXMg
d2hlcmUgd2UgbmVlZCB0byBkcmF3IHRoZSBiYWNrZ3JvdW5kIHNlcGFyYXRlbHkuCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fY2hpbGRDb250YWlubWVudExheWVyOyAvLyBP
bmx5IHVzZWQgaWYgd2UgaGF2ZSBjbGlwcGluZyBvbiBhIHN0YWNraW5nIGNvbnRleHQgd2l0aCBj
b21wb3NpdGluZyBjaGlsZHJlbiwgb3IgaWYgdGhlIGxheWVyIGhhcyBhIHRpbGUgY2FjaGUuCisg
ICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fbWFza0xheWVyOyAvLyBPbmx5IHVz
ZWQgaWYgd2UgaGF2ZSBhIG1hc2suCiAKLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9sYXll
ckZvckhvcml6b250YWxTY3JvbGxiYXI7Ci0gICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fbGF5
ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcjsKLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9sYXll
ckZvclNjcm9sbENvcm5lcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9s
YXllckZvckhvcml6b250YWxTY3JvbGxiYXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNz
TGF5ZXI+IG1fbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
R3JhcGhpY3NMYXllcj4gbV9sYXllckZvclNjcm9sbENvcm5lcjsKIAotICAgIE93blB0cjxHcmFw
aGljc0xheWVyPiBtX3Njcm9sbGluZ0xheWVyOyAvLyBPbmx5IHVzZWQgaWYgdGhlIGxheWVyIGlz
IHVzaW5nIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nLgotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBt
X3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXI7IC8vIE9ubHkgdXNlZCBpZiB0aGUgbGF5ZXIgaXMgdXNp
bmcgY29tcG9zaXRlZCBzY3JvbGxpbmcuCisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5
ZXI+IG1fc2Nyb2xsaW5nTGF5ZXI7IC8vIE9ubHkgdXNlZCBpZiB0aGUgbGF5ZXIgaXMgdXNpbmcg
Y29tcG9zaXRlZCBzY3JvbGxpbmcuCisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+
IG1fc2Nyb2xsaW5nQ29udGVudHNMYXllcjsgLy8gT25seSB1c2VkIGlmIHRoZSBsYXllciBpcyB1
c2luZyBjb21wb3NpdGVkIHNjcm9sbGluZy4KIAogICAgIHVpbnQ2NF90IG1fc2Nyb2xsTGF5ZXJJ
RDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcAppbmRleCBmMDRkMDU1NDcwMWNkZWEwZDY0MGFkYWY3Y2MzZDI4YWYwNWNjZmYwLi5j
YWYxYzAxYWM1NTExNGRjNmMyOGM0NDFkMjE4MGFmYTIzYzc3MTgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTcxMSwx
MCArMTcxMSwxMCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlUm9vdExheWVy
UG9zaXRpb24oKQogICAgICAgICB9CiAgICAgfQogCi0gICAgdXBkYXRlTGF5ZXJGb3JUb3BPdmVy
aGFuZ0FyZWEobV9sYXllckZvclRvcE92ZXJoYW5nQXJlYSk7Ci0gICAgdXBkYXRlTGF5ZXJGb3JC
b3R0b21PdmVyaGFuZ0FyZWEobV9sYXllckZvckJvdHRvbU92ZXJoYW5nQXJlYSk7Ci0gICAgdXBk
YXRlTGF5ZXJGb3JIZWFkZXIobV9sYXllckZvckhlYWRlcik7Ci0gICAgdXBkYXRlTGF5ZXJGb3JG
b290ZXIobV9sYXllckZvckZvb3Rlcik7CisgICAgdXBkYXRlTGF5ZXJGb3JUb3BPdmVyaGFuZ0Fy
ZWEobV9sYXllckZvclRvcE92ZXJoYW5nQXJlYSAhPSBudWxscHRyKTsKKyAgICB1cGRhdGVMYXll
ckZvckJvdHRvbU92ZXJoYW5nQXJlYShtX2xheWVyRm9yQm90dG9tT3ZlcmhhbmdBcmVhICE9IG51
bGxwdHIpOworICAgIHVwZGF0ZUxheWVyRm9ySGVhZGVyKG1fbGF5ZXJGb3JIZWFkZXIgIT0gbnVs
bHB0cik7CisgICAgdXBkYXRlTGF5ZXJGb3JGb290ZXIobV9sYXllckZvckZvb3RlciAhPSBudWxs
cHRyKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggYzJmM2QwNzYwNjVlZjhlNGVhYmRiN2NhZDE4OWQxNTEz
NDdmZTBhNy4uMDBiNjlmNjQ5MzhmOTE4MGU0MGQ4ZjE2ZmNlZGZkZDRkYTU3MjUzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAt
NDEwLDcgKzQxMCw3IEBAIHByaXZhdGU6CiAKIHByaXZhdGU6CiAgICAgUmVuZGVyVmlldyYgbV9y
ZW5kZXJWaWV3OwotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX3Jvb3RDb250ZW50TGF5ZXI7
CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fcm9vdENvbnRlbnRMYXllcjsK
ICAgICBUaW1lcjxSZW5kZXJMYXllckNvbXBvc2l0b3I+IG1fdXBkYXRlQ29tcG9zaXRpbmdMYXll
cnNUaW1lcjsKIAogICAgIGJvb2wgbV9oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nOwpAQCAtNDM5
LDI2ICs0MzksMjYgQEAgcHJpdmF0ZToKICAgICBSb290TGF5ZXJBdHRhY2htZW50IG1fcm9vdExh
eWVyQXR0YWNobWVudDsKIAogICAgIC8vIEVuY2xvc2luZyBjbGlwcGluZyBsYXllciBmb3IgaWZy
YW1lIGNvbnRlbnQKLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9jbGlwTGF5ZXI7Ci0gICAg
T3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fc2Nyb2xsTGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRy
PEdyYXBoaWNzTGF5ZXI+IG1fY2xpcExheWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGlj
c0xheWVyPiBtX3Njcm9sbExheWVyOwogCiAgICAgSGFzaFNldDxSZW5kZXJMYXllcio+IG1fdmll
d3BvcnRDb25zdHJhaW5lZExheWVyczsKICAgICBIYXNoU2V0PFJlbmRlckxheWVyKj4gbV92aWV3
cG9ydENvbnN0cmFpbmVkTGF5ZXJzTmVlZGluZ1VwZGF0ZTsKIAogICAgIC8vIEVuY2xvc2luZyBs
YXllciBmb3Igb3ZlcmZsb3cgY29udHJvbHMgYW5kIHRoZSBjbGlwcGluZyBsYXllcgotICAgIE93
blB0cjxHcmFwaGljc0xheWVyPiBtX292ZXJmbG93Q29udHJvbHNIb3N0TGF5ZXI7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllcjsK
IAogICAgIC8vIExheWVycyBmb3Igb3ZlcmZsb3cgY29udHJvbHMKLSAgICBPd25QdHI8R3JhcGhp
Y3NMYXllcj4gbV9sYXllckZvckhvcml6b250YWxTY3JvbGxiYXI7Ci0gICAgT3duUHRyPEdyYXBo
aWNzTGF5ZXI+IG1fbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcjsKLSAgICBPd25QdHI8R3JhcGhp
Y3NMYXllcj4gbV9sYXllckZvclNjcm9sbENvcm5lcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3Jh
cGhpY3NMYXllcj4gbV9sYXllckZvckhvcml6b250YWxTY3JvbGxiYXI7CisgICAgc3RkOjp1bmlx
dWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcjsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvclNjcm9sbENvcm5lcjsKICNp
ZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCi0gICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fbGF5
ZXJGb3JPdmVyaGFuZ0FyZWFzOwotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2NvbnRlbnRT
aGFkb3dMYXllcjsKLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvclRvcE92ZXJo
YW5nQXJlYTsKLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvckJvdHRvbU92ZXJo
YW5nQXJlYTsKLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvckhlYWRlcjsKLSAg
ICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvckZvb3RlcjsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvck92ZXJoYW5nQXJlYXM7CisgICAgc3RkOjp1
bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fY29udGVudFNoYWRvd0xheWVyOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9yVG9wT3ZlcmhhbmdBcmVhOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9yQm90dG9tT3ZlcmhhbmdB
cmVhOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9ySGVhZGVy
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9yRm9vdGVyOwog
I2VuZGlmCiAKICAgICBPd25QdHI8R3JhcGhpY3NMYXllclVwZGF0ZXI+IG1fbGF5ZXJVcGRhdGVy
OyAvLyBVcGRhdGVzIHRpbGVkIGxheWVyIHZpc2libGUgYXJlYSBwZXJpb2RpY2FsbHkgd2hpbGUg
YW5pbWF0aW9ucyBhcmUgcnVubmluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9SZW1vdGVMYXllclRyZWVIb3N0LmgKaW5kZXggYzRiOTUyYWUxYzJiNzU5YzY2NTMzMTY2
MGNhNzYyYmI1ZDMwMThhZC4uYmZiZmMxZmJiYzY2NDRkYmQyYjc5OTk4YjlmYTQ5YTllMTZlNWNk
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRy
ZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRy
ZWVIb3N0LmgKQEAgLTU3LDcgKzU3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHkqIG1f
d2ViUGFnZVByb3h5OwogCiAgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbV9yb290TGF5ZXI7
Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+PiBt
X2xheWVyczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
R3JhcGhpY3NMYXllcj4+IG1fbGF5ZXJzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhv
c3QubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3Qu
bW0KaW5kZXggNTkzNGUwNzBlYTJkNjRlZDRkZDRlMjI4NjRmODNjNGNlZTlhMzMxMS4uMzIzYWI4
ZTdmMDdhYzJiYWFkOTJlNDAxMjcyMDQ1OThkZTVjMmZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQpAQCAtNzYsMTEgKzc2
LDExIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y29tbWl0KGNvbnN0IFJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIAogR3JhcGhpY3NMYXllciogUmVtb3RlTGF5
ZXJUcmVlSG9zdDo6Z2V0T3JDcmVhdGVMYXllcih1aW50NjRfdCBsYXllcklEKQogewotICAgIGF1
dG8gYWRkUmVzdWx0ID0gbV9sYXllcnMuYWRkKGxheWVySUQsIG51bGxwdHIpOwotICAgIGlmIChh
ZGRSZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9
IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZSgwLCB0aGlzKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3Jh
cGhpY3NMYXllcj4mIGxheWVyID0gbV9sYXllcnMuYWRkKGxheWVySUQsIG51bGxwdHIpLml0ZXJh
dG9yLT52YWx1ZTsKKyAgICBpZiAoIWxheWVyKQorICAgICAgICBsYXllciA9IEdyYXBoaWNzTGF5
ZXI6OmNyZWF0ZSgwLCB0aGlzKTsKIAotICAgIHJldHVybiBhZGRSZXN1bHQuaXRlcmF0b3ItPnZh
bHVlLmdldCgpOworICAgIHJldHVybiBsYXllci5nZXQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L0xheWVyVHJlZUhvc3RNYWMuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvTGF5ZXJUcmVlSG9zdE1hYy5oCmluZGV4IDM3NDdjYjdhMDEzYWRiMDk5NWM1OTc0NzNlYTg4
MTIzMDdlYzgwYzYuLjQ2YmEyZDdjYTQzOGIwZmM2N2U1NGRiNmYyOGFhZjU2OGQ3ODRhODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvTGF5ZXJUcmVl
SG9zdE1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvTGF5
ZXJUcmVlSG9zdE1hYy5oCkBAIC05Miw5ICs5Miw5IEBAIHByaXZhdGU6CiAKICAgICBMYXllclRy
ZWVDb250ZXh0IG1fbGF5ZXJUcmVlQ29udGV4dDsKIAotICAgIE93blB0cjxXZWJDb3JlOjpHcmFw
aGljc0xheWVyPiBtX3Jvb3RMYXllcjsKLSAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXll
cj4gbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyOwotICAgIHR5cGVkZWYgSGFzaE1hcDxQYWdl
T3ZlcmxheSosIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPj4gUGFnZU92ZXJsYXlMYXll
ck1hcDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9yb290
TGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fbm9u
Q29tcG9zaXRlZENvbnRlbnRMYXllcjsKKyAgICB0eXBlZGVmIEhhc2hNYXA8UGFnZU92ZXJsYXkq
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4+IFBhZ2VPdmVybGF5TGF5
ZXJNYXA7CiAgICAgUGFnZU92ZXJsYXlMYXllck1hcCBtX3BhZ2VPdmVybGF5TGF5ZXJzOwogCiAg
ICAgT3duUHRyPExheWVySG9zdGluZ0NvbnRleHQ+IG1fbGF5ZXJIb3N0aW5nQ29udGV4dDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvTGF5ZXJUcmVl
SG9zdE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvTGF5ZXJU
cmVlSG9zdE1hYy5tbQppbmRleCAzOTI3MThiZDNlMjkzYmMwYjI5N2VkNDgzOGMzMzY5YzBmMTc2
OTU3Li4zYjc4NmYwZmY3NDk5MTIyNmNkNzZjMTlkNTA0Mjk5ZDY4YjYyNTZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhvc3RNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9MYXllclRyZWVI
b3N0TWFjLm1tCkBAIC0yNzQsMTUgKzI3NCwxNCBAQCB2b2lkIExheWVyVHJlZUhvc3RNYWM6Om5v
dGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopCiAKIHZvaWQg
TGF5ZXJUcmVlSG9zdE1hYzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFw
aGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgR3JhcGhpY3NMYXll
clBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQogewotICAgIGlmIChncmFw
aGljc0xheWVyID09IG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllcikgeworICAgIGlmIChncmFw
aGljc0xheWVyID09IG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci5nZXQoKSkgewogICAgICAg
ICBtX3dlYlBhZ2UtPmRyYXdSZWN0KGdyYXBoaWNzQ29udGV4dCwgY2xpcFJlY3QpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgUGFnZU92ZXJsYXlMYXllck1hcDo6aXRlcmF0b3IgZW5k
ID0gbV9wYWdlT3ZlcmxheUxheWVycy5lbmQoKTsKLSAgICBmb3IgKFBhZ2VPdmVybGF5TGF5ZXJN
YXA6Oml0ZXJhdG9yIGl0ID0gbV9wYWdlT3ZlcmxheUxheWVycy5iZWdpbigpOyBpdCAhPSBlbmQ7
ICsraXQpIHsKLSAgICAgICAgaWYgKGl0LT52YWx1ZSA9PSBncmFwaGljc0xheWVyKSB7Ci0gICAg
ICAgICAgICBtX3dlYlBhZ2UtPmRyYXdQYWdlT3ZlcmxheShpdC0+a2V5LCBncmFwaGljc0NvbnRl
eHQsIGNsaXBSZWN0KTsKKyAgICBmb3IgKGF1dG8mIHBhZ2VPdmVybGF5TGF5ZXIgOiBtX3BhZ2VP
dmVybGF5TGF5ZXJzKSB7CisgICAgICAgIGlmIChwYWdlT3ZlcmxheUxheWVyLnZhbHVlLmdldCgp
ID09IGdyYXBoaWNzTGF5ZXIpIHsKKyAgICAgICAgICAgIG1fd2ViUGFnZS0+ZHJhd1BhZ2VPdmVy
bGF5KHBhZ2VPdmVybGF5TGF5ZXIua2V5LCBncmFwaGljc0NvbnRleHQsIGNsaXBSZWN0KTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQpAQCAtMzg1LDcgKzM4NCw3IEBAIGJv
b2wgTGF5ZXJUcmVlSG9zdE1hYzo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCkKIAogdm9pZCBM
YXllclRyZWVIb3N0TWFjOjpjcmVhdGVQYWdlT3ZlcmxheUxheWVyKFBhZ2VPdmVybGF5KiBwYWdl
T3ZlcmxheSkKIHsKLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbGF5ZXIgPSBHcmFwaGljc0xh
eWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgdGhpcyk7CisgICAgc3RkOjp1bmlx
dWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGxheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBo
aWNzTGF5ZXJGYWN0b3J5KCksIHRoaXMpOwogI2lmbmRlZiBOREVCVUcKICAgICBsYXllci0+c2V0
TmFtZSgiTGF5ZXJUcmVlSG9zdCBwYWdlIG92ZXJsYXkgY29udGVudCIpOwogI2VuZGlmCkBAIC0z
OTgsMTIgKzM5NywxMiBAQCB2b2lkIExheWVyVHJlZUhvc3RNYWM6OmNyZWF0ZVBhZ2VPdmVybGF5
TGF5ZXIoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5KQogCiAgICAgbV9yb290TGF5ZXItPmFkZENo
aWxkKGxheWVyLmdldCgpKTsKIAotICAgIG1fcGFnZU92ZXJsYXlMYXllcnMuYWRkKHBhZ2VPdmVy
bGF5LCBsYXllci5yZWxlYXNlKCkpOworICAgIG1fcGFnZU92ZXJsYXlMYXllcnMuYWRkKHBhZ2VP
dmVybGF5LCBzdGQ6Om1vdmUobGF5ZXIpKTsKIH0KIAogdm9pZCBMYXllclRyZWVIb3N0TWFjOjpk
ZXN0cm95UGFnZU92ZXJsYXlMYXllcihQYWdlT3ZlcmxheSogcGFnZU92ZXJsYXkpCiB7Ci0gICAg
T3duUHRyPEdyYXBoaWNzTGF5ZXI+IGxheWVyID0gbV9wYWdlT3ZlcmxheUxheWVycy50YWtlKHBh
Z2VPdmVybGF5KTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbGF5ZXIgPSBt
X3BhZ2VPdmVybGF5TGF5ZXJzLnRha2UocGFnZU92ZXJsYXkpOwogICAgIEFTU0VSVChsYXllcik7
CiAKICAgICBsYXllci0+cmVtb3ZlRnJvbVBhcmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVHcmFwaGljc0xheWVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUdyYXBoaWNzTGF5ZXIuaApp
bmRleCBjNjVjZDY1ZDNkZGE5NGRkMzc0NDVlZmQ4MzhjZDA5MTdiZjU1Mzk3Li4xYmMzOTI2YjZi
Y2ZmNmYwNjZjZDQzOGJlNDdiNjFkZmRkNTc4ODA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUdyYXBoaWNzTGF5ZXIuaApA
QCAtMzQsMTQgKzM0LDEyIEBAIGNsYXNzIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ7CiAKIGNsYXNz
IFJlbW90ZUdyYXBoaWNzTGF5ZXIgOiBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NMYXllciB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gY3Jl
YXRlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQqLCBSZW1vdGVMYXllclRyZWVDb250ZXh0
Kik7CisgICAgUmVtb3RlR3JhcGhpY3NMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50
KiwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCopOwogICAgIHZpcnR1YWwgflJlbW90ZUdyYXBoaWNz
TGF5ZXIoKTsKIAogICAgIHVpbnQ2NF90IGxheWVySUQoKSBjb25zdCB7IHJldHVybiBtX2xheWVy
SUQ7IH0KIAogcHJpdmF0ZToKLSAgICBSZW1vdGVHcmFwaGljc0xheWVyKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDbGllbnQqLCBSZW1vdGVMYXllclRyZWVDb250ZXh0Kik7Ci0KICAgICAvLyBXZWJD
b3JlOjpHcmFwaGljc0xheWVyCiAgICAgdmlydHVhbCB2b2lkIHNldE5hbWUoY29uc3QgU3RyaW5n
JikgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUmVtb3RlR3JhcGhpY3NMYXllci5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUmVtb3RlR3JhcGhpY3NMYXllci5tbQppbmRleCBlYzIwMWMyYmZjZDgx
MTZkYTM1NGRjZDAwMTQ1YTE0NTNhMzQyODU1Li4wNDM2NzVkZDJjMjRiNzM1ZTUxZTUxMDQ4Y2Nm
MmQ0NmI2ZjVkNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUdyYXBoaWNzTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVHcmFwaGljc0xheWVyLm1tCkBAIC00MiwxMSArNDIsNiBA
QCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVMYXllcklEKCkKICAgICByZXR1cm4gKytsYXllcklE
OwogfQogCi1QYXNzT3duUHRyPEdyYXBoaWNzTGF5ZXI+IFJlbW90ZUdyYXBoaWNzTGF5ZXI6OmNy
ZWF0ZShHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQq
IGNvbnRleHQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBSZW1vdGVHcmFwaGljc0xheWVy
KGNsaWVudCwgY29udGV4dCkpOwotfQotCiBSZW1vdGVHcmFwaGljc0xheWVyOjpSZW1vdGVHcmFw
aGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCwgUmVtb3RlTGF5ZXJUcmVlQ29u
dGV4dCogY29udGV4dCkKICAgICA6IEdyYXBoaWNzTGF5ZXIoY2xpZW50KQogICAgICwgbV9sYXll
cklEKGdlbmVyYXRlTGF5ZXJJRCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaAppbmRleCBm
NWQ3OTczZmRiZjQzMDQ4ZmY5YTMwMTk2MThmNzQ1ZjA4YWE5Yjk4Li43N2EwOTU0YmJiMDMzMWJm
ZjY5OGEwMGI5MThlOGJjODI0OTI0MzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaApA
QCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJlbW90ZUxheWVyVHJlZUNv
bnRleHQoV2ViUGFnZSopOwogCiAgICAgLy8gV2ViQ29yZTo6R3JhcGhpY3NMYXllckZhY3RvcnkK
LSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gY3JlYXRlR3Jh
cGhpY3NMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50KikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gY3JlYXRlR3Jh
cGhpY3NMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50KikgT1ZFUlJJREU7CiAKICAg
ICB2b2lkIGxheWVyRmx1c2hUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPFJlbW90ZUxheWVyVHJl
ZUNvbnRleHQ+Kik7CiAgICAgdm9pZCBmbHVzaExheWVycygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1t
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVD
b250ZXh0Lm1tCmluZGV4IGI4NjQ1NDA1NTg0YzcwMjA0OGJmNzQ3Yjc1MTdiODU0OWEzMzU4YjYu
Ljg5OTNkY2I5MDViZGQ2Mjg1MTZkZmQ2ZGYxNjlmYjk2YTY2OWY0ZGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxh
eWVyVHJlZUNvbnRleHQubW0KQEAgLTg2LDkgKzg2LDkgQEAgUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb24mIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmN1cnJlbnRUcmFuc2FjdGlvbigpCiAgICAg
cmV0dXJuICptX2N1cnJlbnRUcmFuc2FjdGlvbjsKIH0KIAotUGFzc093blB0cjxHcmFwaGljc0xh
eWVyPiBSZW1vdGVMYXllclRyZWVDb250ZXh0OjpjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNz
TGF5ZXJDbGllbnQqIGNsaWVudCkKK3N0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBSZW1v
dGVMYXllclRyZWVDb250ZXh0OjpjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGll
bnQqIGNsaWVudCkKIHsKLSAgICByZXR1cm4gUmVtb3RlR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGNs
aWVudCwgdGhpcyk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlR3JhcGhpY3NM
YXllcj4oY2xpZW50LCB0aGlzKTsKIH0KIAogdm9pZCBSZW1vdGVMYXllclRyZWVDb250ZXh0Ojps
YXllckZsdXNoVGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxSZW1vdGVMYXllclRyZWVDb250ZXh0
PiopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Rp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKaW5kZXggOWY5MmIw
ZWQzN2NkYjFiYzU3NDcyY2ZiNWZmNDFmM2YxMTI1ZTI3YS4uMDM4YjMyYjA2N2FiNGNmODMxYmVm
NTllM2E4YzA4NTQyYmZjNzEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWEuaApAQCAtMTI3LDcgKzEyNyw3IEBAIHByaXZhdGU6CiAKICAgICBSZXRhaW5QdHI8Q0FM
YXllcj4gbV9kZWJ1Z0luZm9MYXllcjsKIAotICAgIHR5cGVkZWYgSGFzaE1hcDxQYWdlT3Zlcmxh
eSosIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPj4gUGFnZU92ZXJsYXlMYXllck1hcDsK
KyAgICB0eXBlZGVmIEhhc2hNYXA8UGFnZU92ZXJsYXkqLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6R3JhcGhpY3NMYXllcj4+IFBhZ2VPdmVybGF5TGF5ZXJNYXA7CiAgICAgUGFnZU92ZXJsYXlM
YXllck1hcCBtX3BhZ2VPdmVybGF5TGF5ZXJzOwogICAgIG11dGFibGUgSGFzaE1hcDxjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgUmV0YWluUHRyPENBTGF5ZXI+PiBtX3BhZ2VPdmVybGF5
UGxhdGZvcm1MYXllcnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
Lm1tCmluZGV4IDQ2YjEwNDk5ZTg2YzI4N2RhODQ4MGI2ZTM3Mzk1NjNmMzI0NTVmOTQuLjcyMDky
OWZjNGU3OGE0MThjYWFmOGNkMzg0MTY3ZDk3MTFlMTA0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWEubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQpAQCAtMzQ0LDggKzM0NCw4IEBAIHZvaWQgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhp
Y3NMYXllciopCiAKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnBhaW50Q29u
dGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhpY3NDb250ZXh0
JiBncmFwaGljc0NvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRS
ZWN0JiBjbGlwUmVjdCkKIHsKLSAgICBmb3IgKFBhZ2VPdmVybGF5TGF5ZXJNYXA6Oml0ZXJhdG9y
IGl0ID0gbV9wYWdlT3ZlcmxheUxheWVycy5iZWdpbigpLCBlbmQgPSBtX3BhZ2VPdmVybGF5TGF5
ZXJzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgaWYgKGl0LT52YWx1ZSA9PSBn
cmFwaGljc0xheWVyKSB7CisgICAgZm9yIChhdXRvIGl0ID0gbV9wYWdlT3ZlcmxheUxheWVycy5i
ZWdpbigpLCBlbmQgPSBtX3BhZ2VPdmVybGF5TGF5ZXJzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKKyAgICAgICAgaWYgKGl0LT52YWx1ZS5nZXQoKSA9PSBncmFwaGljc0xheWVyKSB7CiAgICAg
ICAgICAgICBtX3dlYlBhZ2UtPmRyYXdQYWdlT3ZlcmxheShpdC0+a2V5LCBncmFwaGljc0NvbnRl
eHQsIGNsaXBSZWN0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC02MTMsNyAr
NjEzLDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2V0Um9vdENvbXBv
c2l0aW5nTGF5ZXIoQ0FMYXllciAqbGF5ZXIpCiAKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWE6OmNyZWF0ZVBhZ2VPdmVybGF5TGF5ZXIoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5
KQogewotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBsYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNy
ZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCB0aGlzKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
R3JhcGhpY3NMYXllcj4gbGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXll
ckZhY3RvcnkoKSwgdGhpcyk7CiAjaWZuZGVmIE5ERUJVRwogICAgIGxheWVyLT5zZXROYW1lKCJw
YWdlIG92ZXJsYXkgY29udGVudCIpOwogI2VuZGlmCkBAIC02MzYsMTIgKzYzNiwxMiBAQCB2b2lk
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpjcmVhdGVQYWdlT3ZlcmxheUxheWVyKFBh
Z2VPdmVybGF5KiBwYWdlT3ZlcgogCiAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIAotICAg
IG1fcGFnZU92ZXJsYXlMYXllcnMuYWRkKHBhZ2VPdmVybGF5LCBsYXllci5yZWxlYXNlKCkpOwor
ICAgIG1fcGFnZU92ZXJsYXlMYXllcnMuYWRkKHBhZ2VPdmVybGF5LCBzdGQ6Om1vdmUobGF5ZXIp
KTsKIH0KIAogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6ZGVzdHJveVBhZ2VP
dmVybGF5TGF5ZXIoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5KQogewotICAgIE93blB0cjxHcmFw
aGljc0xheWVyPiBsYXllciA9IG1fcGFnZU92ZXJsYXlMYXllcnMudGFrZShwYWdlT3ZlcmxheSk7
CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGxheWVyID0gbV9wYWdlT3Zlcmxh
eUxheWVycy50YWtlKHBhZ2VPdmVybGF5KTsKICAgICBBU1NFUlQobGF5ZXIpOwogCiAgICAgW0NB
VHJhbnNhY3Rpb24gYmVnaW5dOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212822</attachid>
            <date>2013-09-27 10:41:23 -0700</date>
            <delta_ts>2013-09-27 10:47:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122020-20130927104117.patch</filename>
            <type>text/plain</type>
            <size>32021</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTlmMjI4YjgzODZkNzFh
MmY1YTNmZGJkMDQ0MmMyMTBhNzZjM2UwNy4uOTRjOWQzMWI0YWY3MTQ1ZGZlZDBhYTNkYzYwNWFh
NTg3NTE0OWQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTA5LTI3ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6dW5p
cXVlX3B0ciBmb3IgR3JhcGhpY3NMYXllciBjcmVhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMDIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckZhY3Rvcnku
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVHcmFwaGljc0xh
eWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29t
cG9zaXRpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVH
cmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBk
YXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJCYWNraW5nOjpwYWludEludG9MYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpo
YXNTY3JvbGxpbmdMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZVJvb3RMYXllclBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmg6CisKIDIwMTMtMDktMjYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgog
CiAgICAgICAgIHJlbmFtZSBLVVJMIHRvIFVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDY2Zjk4NWRkODU0OTgx
NTQ2MWFlMzk1NTlkYzU0MGZlYjZkNDEzNWMuLjc2YzY4NGFiNmIzOTk3NTE5ZjI4Y2Q2OWI1YmJh
MjQ1NzllMzdjZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wOS0yNyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBzdGQ6OnVu
aXF1ZV9wdHIgZm9yIEdyYXBoaWNzTGF5ZXIgY3JlYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjAyMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRy
ZWVIb3N0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1t
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpnZXRPckNyZWF0ZUxheWVy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhvc3RNYWMuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhvc3RNYWMubW06Cisg
ICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RNYWM6OnBhaW50Q29udGVudHMpOgorICAgICAg
ICAoV2ViS2l0OjpMYXllclRyZWVIb3N0TWFjOjpjcmVhdGVQYWdlT3ZlcmxheUxheWVyKToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdE1hYzo6ZGVzdHJveVBhZ2VPdmVybGF5TGF5ZXIp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlR3JhcGhpY3NMYXllci5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlR3JhcGhpY3NMYXllci5t
bToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRl
eHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNv
bnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmNyZWF0
ZUdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6cGFpbnRDb250ZW50cyk6CisgICAgICAgIChX
ZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpjcmVhdGVQYWdlT3ZlcmxheUxh
eWVyKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmRl
c3Ryb3lQYWdlT3ZlcmxheUxheWVyKToKKwogMjAxMy0wOS0yNiAgRGFyaW4gQWRsZXIgIDxkYXJp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgcmVuYW1lIEtVUkwgdG8gVVJMCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggMTQyOWRjMjNl
YjVhMWJmYTE2ZGYxMzhhZTg3Yjk4OWI0YTU0M2JjNy4uZWJhNDNkZDRlYjJjMmRhYjY1ZThkYjNm
ZDViZWU0ZjcwY2Y2NTI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtMjI0LDcgKzIyNCw3IEBAIHByb3RlY3RlZDoKIGNsYXNz
IEdyYXBoaWNzTGF5ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdyYXBoaWNzTGF5ZXIp
OyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0
cjxHcmFwaGljc0xheWVyPiBjcmVhdGUoR3JhcGhpY3NMYXllckZhY3RvcnkqLCBHcmFwaGljc0xh
eWVyQ2xpZW50Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBj
cmVhdGUoR3JhcGhpY3NMYXllckZhY3RvcnkqLCBHcmFwaGljc0xheWVyQ2xpZW50Kik7CiAgICAg
CiAgICAgdmlydHVhbCB+R3JhcGhpY3NMYXllcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFjdG9yeS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckZhY3RvcnkuaAppbmRleCBjNzQ3
YmI4YTY3NzNkNDA4NjNlYjY5Y2FiY2UyZjUyNDU1M2YwMDk2Li42NDEzZTkzY2I0MmExZjFhZWM1
MmY1ZmE5MDI1OTUwZjk5OGY5ODM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJGYWN0b3J5LmgKQEAgLTM5LDcgKzM5LDcgQEAg
Y2xhc3MgR3JhcGhpY3NMYXllckZhY3RvcnkgewogcHVibGljOgogICAgIHZpcnR1YWwgfkdyYXBo
aWNzTGF5ZXJGYWN0b3J5KCkgeyB9CiAKLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8R3JhcGhpY3NM
YXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KikgPSAwOworICAg
IHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5
ZXIoR3JhcGhpY3NMYXllckNsaWVudCopID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFw
aGljc0xheWVyQ0EuY3BwCmluZGV4IDAyNTFmYzNjYTY3MDJjYWZmYWZmODdiZWEwMTViOGQwYzI5
ODA0ZjcuLjIwMGMxMzQyZGE0ZjI5ZGM4YzEwMWQ2N2Y2ODc3MWU1MWVkMjhhZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXll
ckNBLmNwcApAQCAtMjczLDEwICsyNzMsMTAgQEAgc3RhdGljIGlubGluZSBib29sIHN1cHBvcnRz
QWNjZWxlcmF0ZWRGaWx0ZXJBbmltYXRpb25zKCkKIH0KICNlbmRpZgogCi1QYXNzT3duUHRyPEdy
YXBoaWNzTGF5ZXI+IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSog
ZmFjdG9yeSwgR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQorc3RkOjp1bmlxdWVfcHRyPEdy
YXBoaWNzTGF5ZXI+IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSog
ZmFjdG9yeSwgR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogewogICAgIGlmICghZmFjdG9y
eSkKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHcmFwaGljc0xheWVyQ0EoY2xpZW50KSk7
CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyYXBoaWNzTGF5ZXJDQT4oY2xpZW50
KTsKIAogICAgIHJldHVybiBmYWN0b3J5LT5jcmVhdGVHcmFwaGljc0xheWVyKGNsaWVudCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5oCmluZGV4IDk2ODEyNzM2NmY1ZjljZDZjMjYyMTljNDY4ZTRkMGI1YTllYmJmMmQu
LmYzZTRjOGIwZThiMTk5ZjI1MDYyOWQyMGM4MzM1YTY2NTcyOTI2YjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBA
IC0xOTQsNyArMTk0LDcgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIFN0cmluZyBDbG9uZUlEOyAv
LyBJZGVudGlmaWVyIGZvciBhIGdpdmVuIGNsb25lLCBiYXNlZCBvbiBvcmlnaW5hbC9yZXBsaWNh
IGJyYW5jaGluZyBkb3duIHRoZSB0cmVlLgogICAgIHN0YXRpYyBib29sIGlzUmVwbGljYXRlZFJv
b3RDbG9uZShjb25zdCBDbG9uZUlEJiBjbG9uZUlEKSB7IHJldHVybiBjbG9uZUlEWzBVXSAmIDE7
IH0KIAotICAgIHR5cGVkZWYgSGFzaE1hcDxDbG9uZUlELCBSZWZQdHI8UGxhdGZvcm1DQUxheWVy
PiA+IExheWVyTWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxDbG9uZUlELCBSZWZQdHI8UGxhdGZv
cm1DQUxheWVyPj4gTGF5ZXJNYXA7CiAgICAgTGF5ZXJNYXAqIHByaW1hcnlMYXllckNsb25lcygp
IGNvbnN0IHsgcmV0dXJuIG1fc3RydWN0dXJhbExheWVyLmdldCgpID8gbV9zdHJ1Y3R1cmFsTGF5
ZXJDbG9uZXMuZ2V0KCkgOiBtX2xheWVyQ2xvbmVzLmdldCgpOyB9CiAgICAgTGF5ZXJNYXAqIGFu
aW1hdGVkTGF5ZXJDbG9uZXMoQW5pbWF0ZWRQcm9wZXJ0eUlEKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggYzk5YzgwODBkN2ZmMzI5MTI4
ZTY3OTJhNzYwZWI2Mjk3OGE4YzcyYS4uZjlhMjA5ZGY5NGZlMGFmMjkwNGNhYjAzM2U3YWRmMjY4
MjQwOGMzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCkBA
IC0zNSwxMCArMzUsMTAgQEAgVGV4dHVyZU1hcHBlckxheWVyKiB0b1RleHR1cmVNYXBwZXJMYXll
cihHcmFwaGljc0xheWVyKiBsYXllcikKICAgICByZXR1cm4gbGF5ZXIgPyB0b0dyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyKGxheWVyKS0+bGF5ZXIoKSA6IDA7CiB9CiAKLVBhc3NPd25QdHI8R3Jh
cGhpY3NMYXllcj4gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBm
YWN0b3J5LCBHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCitzdGQ6OnVuaXF1ZV9wdHI8R3Jh
cGhpY3NMYXllcj4gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBm
YWN0b3J5LCBHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgaWYgKCFmYWN0b3J5
KQotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
KGNsaWVudCkpOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlcj4oY2xpZW50KTsKIAogICAgIHJldHVybiBmYWN0b3J5LT5jcmVhdGVHcmFw
aGljc0xheWVyKGNsaWVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29t
cG9zaXRpbmdDb29yZGluYXRvci5jcHAKaW5kZXggZDA5NjhiOWE1NGEyMGJkZDU2ZDgyNzJlZmNk
YmJkMjdiMzA1N2FjMC4uNDA3ODIxY2YxYzc3NWIyMGEwYzZmY2JjM2U2ZThmYjg5Zjk2ODEyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9y
LmNwcApAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6cGFp
bnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHCiAgICAgbV9j
bGllbnQtPnBhaW50TGF5ZXJDb250ZW50cyhncmFwaGljc0xheWVyLCBncmFwaGljc0NvbnRleHQs
IGNsaXBSZWN0KTsKIH0KIAotUGFzc093blB0cjxHcmFwaGljc0xheWVyPiBDb21wb3NpdGluZ0Nv
b3JkaW5hdG9yOjpjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVu
dCkKK3N0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBDb21wb3NpdGluZ0Nvb3JkaW5hdG9y
OjpjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKIHsKICAg
ICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbmV3IENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcihjbGllbnQpOwogICAgIGxheWVyLT5zZXRDb29yZGluYXRvcih0aGlzKTsKQEAgLTI3
Miw3ICsyNzIsNyBAQCBQYXNzT3duUHRyPEdyYXBoaWNzTGF5ZXI+IENvbXBvc2l0aW5nQ29vcmRp
bmF0b3I6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYQogICAgIG1fc3RhdGUubGF5ZXJz
VG9DcmVhdGUuYXBwZW5kKGxheWVyLT5pZCgpKTsKICAgICBsYXllci0+c2V0TmVlZHNWaXNpYmxl
UmVjdEFkanVzdG1lbnQoKTsKICAgICBtX2NsaWVudC0+bm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwot
ICAgIHJldHVybiBhZG9wdFB0cihsYXllcik7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxH
cmFwaGljc0xheWVyPihsYXllcik7CiB9CiAKIGZsb2F0IENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6
OmRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29tcG9zaXRpbmdDb29yZGluYXRvci5oCmluZGV4IGZkNDFjYjg3MzI4NTJkMDMyZTIyZWY1MmEx
NGM4ZTQ4Nzg2ZjY1N2IuLjU4M2E3YzdlNmY2MDVkYzVhMjZlOTlmYzJhOTBjN2YxY2ZmYjNkMjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3Iu
aApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVVw
ZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQpIE9WRVJSSURFOwogCiAgICAgLy8gR3JhcGhpY3NM
YXllckZhY3RvcnkKLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4gY3JlYXRl
R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihHcmFw
aGljc0xheWVyQ2xpZW50KikgT1ZFUlJJREU7CiAKICAgICB2b2lkIGluaXRpYWxpemVSb290Q29t
cG9zaXRpbmdMYXllcklmTmVlZGVkKCk7CiAgICAgdm9pZCBmbHVzaFBlbmRpbmdJbWFnZUJhY2tp
bmdDaGFuZ2VzKCk7CkBAIC0xMzUsNyArMTM1LDcgQEAgcHJpdmF0ZToKICAgICBQYWdlKiBtX3Bh
Z2U7CiAgICAgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Q2xpZW50KiBtX2NsaWVudDsKIAotICAg
IE93blB0cjxHcmFwaGljc0xheWVyPiBtX3Jvb3RMYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
R3JhcGhpY3NMYXllcj4gbV9yb290TGF5ZXI7CiAgICAgR3JhcGhpY3NMYXllciogbV9yb290Q29t
cG9zaXRpbmdMYXllcjsKIAogICAgIENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZSBtX3N0YXRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRl
eCA2MGYyNzAwYTEzOTQ3ZjI5MzE1MjI3OTI5NGVlOTM1OGNhNGQzOWU2Li42OGI5YjkyOTdmZjdm
YzQwYjIyMGYzNjFiNzZlN2ZjMmNkOGI3ZjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTYxLDEzICsxNjEsMTMgQEAgdm9pZCBS
ZW5kZXJMYXllckJhY2tpbmc6OndpbGxEZXN0cm95TGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciog
bGF5ZXIpCiAgICAgICAgIGNvbXBvc2l0b3IoKS5sYXllclRpbGVkQmFja2luZ1VzYWdlQ2hhbmdl
ZChsYXllciwgZmFsc2UpOwogfQogCi1QYXNzT3duUHRyPEdyYXBoaWNzTGF5ZXI+IFJlbmRlckxh
eWVyQmFja2luZzo6Y3JlYXRlR3JhcGhpY3NMYXllcihjb25zdCBTdHJpbmcmIG5hbWUpCitzdGQ6
OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gUmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVHcmFw
aGljc0xheWVyKGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICBHcmFwaGljc0xheWVyRmFjdG9y
eSogZ3JhcGhpY3NMYXllckZhY3RvcnkgPSAwOwogICAgIGlmIChQYWdlKiBwYWdlID0gcmVuZGVy
ZXIoKS5mcmFtZSgpLnBhZ2UoKSkKICAgICAgICAgZ3JhcGhpY3NMYXllckZhY3RvcnkgPSBwYWdl
LT5jaHJvbWUoKS5jbGllbnQoKS5ncmFwaGljc0xheWVyRmFjdG9yeSgpOwogCi0gICAgT3duUHRy
PEdyYXBoaWNzTGF5ZXI+IGdyYXBoaWNzTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3Jh
cGhpY3NMYXllckZhY3RvcnksIHRoaXMpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xh
eWVyPiBncmFwaGljc0xheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJG
YWN0b3J5LCB0aGlzKTsKIAogI2lmbmRlZiBOREVCVUcKICAgICBncmFwaGljc0xheWVyLT5zZXRO
YW1lKG5hbWUpOwpAQCAtMTgwLDcgKzE4MCw3IEBAIFBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4g
UmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVHcmFwaGljc0xheWVyKGNvbnN0IFN0cmluZyYKICAg
ICBncmFwaGljc0xheWVyLT5zZXRBY2NlbGVyYXRlc0RyYXdpbmcoY29tcG9zaXRvcigpLmFjY2Vs
ZXJhdGVkRHJhd2luZ0VuYWJsZWQoKSk7CiAjZW5kaWYgICAgCiAgICAgCi0gICAgcmV0dXJuIGdy
YXBoaWNzTGF5ZXIucmVsZWFzZSgpOworICAgIHJldHVybiBncmFwaGljc0xheWVyOwogfQogCiBi
b29sIFJlbmRlckxheWVyQmFja2luZzo6c2hvdWxkVXNlVGlsZWRCYWNraW5nKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKSBjb25zdApAQCAtNTIzLDcgKzUyMyw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNr
aW5nOjp1cGRhdGVHcmFwaGljc0xheWVyQ29uZmlndXJhdGlvbigpCiAgICAgICAgIHVwZGF0ZUlu
dGVybmFsSGllcmFyY2h5KCk7CiAKICAgICBpZiAoR3JhcGhpY3NMYXllciogZmxhdHRlbmluZ0xh
eWVyID0gdGlsZUNhY2hlRmxhdHRlbmluZ0xheWVyKCkpIHsKLSAgICAgICAgaWYgKGxheWVyQ29u
ZmlnQ2hhbmdlZCB8fCBmbGF0dGVuaW5nTGF5ZXItPnBhcmVudCgpICE9IG1fZ3JhcGhpY3NMYXll
cikKKyAgICAgICAgaWYgKGxheWVyQ29uZmlnQ2hhbmdlZCB8fCBmbGF0dGVuaW5nTGF5ZXItPnBh
cmVudCgpICE9IG1fZ3JhcGhpY3NMYXllci5nZXQoKSkKICAgICAgICAgICAgIG1fZ3JhcGhpY3NM
YXllci0+YWRkQ2hpbGQoZmxhdHRlbmluZ0xheWVyKTsKICAgICB9CiAKQEAgLTE5ODAsNyArMTk4
MCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludEludG9MYXllcihjb25zdCBHcmFw
aGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwCiAgICAgaWYgKHBhaW50aW5nUGhhc2UgJiBH
cmFwaGljc0xheWVyUGFpbnRDb21wb3NpdGVkU2Nyb2xsKQogICAgICAgICBwYWludEZsYWdzIHw9
IFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ1Njcm9sbGluZ1BoYXNl
OwogCi0gICAgaWYgKGdyYXBoaWNzTGF5ZXIgPT0gbV9iYWNrZ3JvdW5kTGF5ZXIpCisgICAgaWYg
KGdyYXBoaWNzTGF5ZXIgPT0gbV9iYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkpCiAgICAgICAgIHBhaW50
RmxhZ3MgfD0gKFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdSb290QmFja2dyb3VuZE9u
bHkgfCBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdGb3JlZ3JvdW5k
UGhhc2UpOyAvLyBOZWVkIFBhaW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5nRm9yZWdyb3VuZFBo
YXNlIHRvIHdhbGsgY2hpbGQgbGF5ZXJzLgogICAgIGVsc2UgaWYgKGNvbXBvc2l0b3IoKS5maXhl
ZFJvb3RCYWNrZ3JvdW5kTGF5ZXIoKSkKICAgICAgICAgcGFpbnRGbGFncyB8PSBSZW5kZXJMYXll
cjo6UGFpbnRMYXllclBhaW50aW5nU2tpcFJvb3RCYWNrZ3JvdW5kOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IDU2ZjE3YzBhNmZlMGNmMTcy
NWIxNTcxODdmOTBmYjAyOWExM2JiN2YuLjg1OThiYTRiYWZkYjQ3MzA1YTI4Njk0YWIyZGY5M2Y4
ZDdjNGIxY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmgKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogICAgIEdyYXBoaWNzTGF5ZXIqIGJhY2tn
cm91bmRMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZExheWVyLmdldCgpOyB9CiAg
ICAgYm9vbCBiYWNrZ3JvdW5kTGF5ZXJQYWludHNGaXhlZFJvb3RCYWNrZ3JvdW5kKCkgY29uc3Qg
eyByZXR1cm4gbV9iYWNrZ3JvdW5kTGF5ZXJQYWludHNGaXhlZFJvb3RCYWNrZ3JvdW5kOyB9CiAg
ICAgCi0gICAgYm9vbCBoYXNTY3JvbGxpbmdMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xs
aW5nTGF5ZXI7IH0KKyAgICBib29sIGhhc1Njcm9sbGluZ0xheWVyKCkgY29uc3QgeyByZXR1cm4g
bV9zY3JvbGxpbmdMYXllciAhPSBudWxscHRyOyB9CiAgICAgR3JhcGhpY3NMYXllciogc2Nyb2xs
aW5nTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGluZ0xheWVyLmdldCgpOyB9CiAgICAg
R3JhcGhpY3NMYXllciogc2Nyb2xsaW5nQ29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1f
c2Nyb2xsaW5nQ29udGVudHNMYXllci5nZXQoKTsgfQogCkBAIC0yMDgsNyArMjA4LDcgQEAgcHJp
dmF0ZToKICAgICAKICAgICB2b2lkIHdpbGxEZXN0cm95TGF5ZXIoY29uc3QgR3JhcGhpY3NMYXll
ciopOwogICAgIAotICAgIFBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NM
YXllcihjb25zdCBTdHJpbmcmKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4g
Y3JlYXRlR3JhcGhpY3NMYXllcihjb25zdCBTdHJpbmcmKTsKIAogICAgIFJlbmRlckxheWVyTW9k
ZWxPYmplY3QmIHJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gbV9vd25pbmdMYXllci0+cmVuZGVy
ZXIoKTsgfQogICAgIFJlbmRlckxheWVyQ29tcG9zaXRvciYgY29tcG9zaXRvcigpIGNvbnN0IHsg
cmV0dXJuIG1fb3duaW5nTGF5ZXItPmNvbXBvc2l0b3IoKTsgfQpAQCAtMjgzLDIwICsyODMsMjAg
QEAgcHJpdmF0ZToKIAogICAgIFJlbmRlckxheWVyKiBtX293bmluZ0xheWVyOwogCi0gICAgT3du
UHRyPEdyYXBoaWNzTGF5ZXI+IG1fYW5jZXN0b3JDbGlwcGluZ0xheWVyOyAvLyBPbmx5IHVzZWQg
aWYgd2UgYXJlIGNsaXBwZWQgYnkgYW4gYW5jZXN0b3Igd2hpY2ggaXMgbm90IGEgc3RhY2tpbmcg
Y29udGV4dC4KLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9jb250ZW50c0NvbnRhaW5tZW50
TGF5ZXI7IC8vIE9ubHkgdXNlZCBpZiB3ZSBoYXZlIGEgYmFja2dyb3VuZCBsYXllcjsgdGFrZXMg
dGhlIHRyYW5zZm9ybS4KLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9ncmFwaGljc0xheWVy
OwotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2ZvcmVncm91bmRMYXllcjsgLy8gT25seSB1
c2VkIGluIGNhc2VzIHdoZXJlIHdlIG5lZWQgdG8gZHJhdyB0aGUgZm9yZWdyb3VuZCBzZXBhcmF0
ZWx5LgotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2JhY2tncm91bmRMYXllcjsgLy8gT25s
eSB1c2VkIGluIGNhc2VzIHdoZXJlIHdlIG5lZWQgdG8gZHJhdyB0aGUgYmFja2dyb3VuZCBzZXBh
cmF0ZWx5LgotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2NoaWxkQ29udGFpbm1lbnRMYXll
cjsgLy8gT25seSB1c2VkIGlmIHdlIGhhdmUgY2xpcHBpbmcgb24gYSBzdGFja2luZyBjb250ZXh0
IHdpdGggY29tcG9zaXRpbmcgY2hpbGRyZW4sIG9yIGlmIHRoZSBsYXllciBoYXMgYSB0aWxlIGNh
Y2hlLgotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX21hc2tMYXllcjsgLy8gT25seSB1c2Vk
IGlmIHdlIGhhdmUgYSBtYXNrLgorICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBt
X2FuY2VzdG9yQ2xpcHBpbmdMYXllcjsgLy8gT25seSB1c2VkIGlmIHdlIGFyZSBjbGlwcGVkIGJ5
IGFuIGFuY2VzdG9yIHdoaWNoIGlzIG5vdCBhIHN0YWNraW5nIGNvbnRleHQuCisgICAgc3RkOjp1
bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fY29udGVudHNDb250YWlubWVudExheWVyOyAvLyBP
bmx5IHVzZWQgaWYgd2UgaGF2ZSBhIGJhY2tncm91bmQgbGF5ZXI7IHRha2VzIHRoZSB0cmFuc2Zv
cm0uCisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fZ3JhcGhpY3NMYXllcjsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9mb3JlZ3JvdW5kTGF5ZXI7IC8v
IE9ubHkgdXNlZCBpbiBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRvIGRyYXcgdGhlIGZvcmVncm91bmQg
c2VwYXJhdGVseS4KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9iYWNrZ3Jv
dW5kTGF5ZXI7IC8vIE9ubHkgdXNlZCBpbiBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRvIGRyYXcgdGhl
IGJhY2tncm91bmQgc2VwYXJhdGVseS4KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXll
cj4gbV9jaGlsZENvbnRhaW5tZW50TGF5ZXI7IC8vIE9ubHkgdXNlZCBpZiB3ZSBoYXZlIGNsaXBw
aW5nIG9uIGEgc3RhY2tpbmcgY29udGV4dCB3aXRoIGNvbXBvc2l0aW5nIGNoaWxkcmVuLCBvciBp
ZiB0aGUgbGF5ZXIgaGFzIGEgdGlsZSBjYWNoZS4KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhp
Y3NMYXllcj4gbV9tYXNrTGF5ZXI7IC8vIE9ubHkgdXNlZCBpZiB3ZSBoYXZlIGEgbWFzay4KIAot
ICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcjsK
LSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyOwot
ICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9yU2Nyb2xsQ29ybmVyOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJh
cjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvclZlcnRpY2Fs
U2Nyb2xsYmFyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9y
U2Nyb2xsQ29ybmVyOwogCi0gICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fc2Nyb2xsaW5nTGF5
ZXI7IC8vIE9ubHkgdXNlZCBpZiB0aGUgbGF5ZXIgaXMgdXNpbmcgY29tcG9zaXRlZCBzY3JvbGxp
bmcuCi0gICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fc2Nyb2xsaW5nQ29udGVudHNMYXllcjsg
Ly8gT25seSB1c2VkIGlmIHRoZSBsYXllciBpcyB1c2luZyBjb21wb3NpdGVkIHNjcm9sbGluZy4K
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9zY3JvbGxpbmdMYXllcjsgLy8g
T25seSB1c2VkIGlmIHRoZSBsYXllciBpcyB1c2luZyBjb21wb3NpdGVkIHNjcm9sbGluZy4KKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9zY3JvbGxpbmdDb250ZW50c0xheWVy
OyAvLyBPbmx5IHVzZWQgaWYgdGhlIGxheWVyIGlzIHVzaW5nIGNvbXBvc2l0ZWQgc2Nyb2xsaW5n
LgogCiAgICAgdWludDY0X3QgbV9zY3JvbGxMYXllcklEOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IGYwNGQwNTU0NzAx
Y2RlYTBkNjQwYWRhZjdjYzNkMjhhZjA1Y2NmZjAuLmNhZjFjMDFhYzU1MTE0ZGM2YzI4YzQ0MWQy
MTgwYWZhMjNjNzcxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0xNzExLDEwICsxNzExLDEwIEBAIHZvaWQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVSb290TGF5ZXJQb3NpdGlvbigpCiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICB1cGRhdGVMYXllckZvclRvcE92ZXJoYW5nQXJlYShtX2xheWVyRm9yVG9wT3Zl
cmhhbmdBcmVhKTsKLSAgICB1cGRhdGVMYXllckZvckJvdHRvbU92ZXJoYW5nQXJlYShtX2xheWVy
Rm9yQm90dG9tT3ZlcmhhbmdBcmVhKTsKLSAgICB1cGRhdGVMYXllckZvckhlYWRlcihtX2xheWVy
Rm9ySGVhZGVyKTsKLSAgICB1cGRhdGVMYXllckZvckZvb3RlcihtX2xheWVyRm9yRm9vdGVyKTsK
KyAgICB1cGRhdGVMYXllckZvclRvcE92ZXJoYW5nQXJlYShtX2xheWVyRm9yVG9wT3ZlcmhhbmdB
cmVhICE9IG51bGxwdHIpOworICAgIHVwZGF0ZUxheWVyRm9yQm90dG9tT3ZlcmhhbmdBcmVhKG1f
bGF5ZXJGb3JCb3R0b21PdmVyaGFuZ0FyZWEgIT0gbnVsbHB0cik7CisgICAgdXBkYXRlTGF5ZXJG
b3JIZWFkZXIobV9sYXllckZvckhlYWRlciAhPSBudWxscHRyKTsKKyAgICB1cGRhdGVMYXllckZv
ckZvb3RlcihtX2xheWVyRm9yRm9vdGVyICE9IG51bGxwdHIpOwogI2VuZGlmCiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCBj
MmYzZDA3NjA2NWVmOGU0ZWFiZGI3Y2FkMTg5ZDE1MTM0N2ZlMGE3Li4wMGI2OWY2NDkzOGY5MTgw
ZTQwZDhmMTZmY2VkZmRkNGRhNTcyNTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC00MTAsNyArNDEwLDcgQEAgcHJpdmF0ZToK
IAogcHJpdmF0ZToKICAgICBSZW5kZXJWaWV3JiBtX3JlbmRlclZpZXc7Ci0gICAgT3duUHRyPEdy
YXBoaWNzTGF5ZXI+IG1fcm9vdENvbnRlbnRMYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3Jh
cGhpY3NMYXllcj4gbV9yb290Q29udGVudExheWVyOwogICAgIFRpbWVyPFJlbmRlckxheWVyQ29t
cG9zaXRvcj4gbV91cGRhdGVDb21wb3NpdGluZ0xheWVyc1RpbWVyOwogCiAgICAgYm9vbCBtX2hh
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmc7CkBAIC00MzksMjYgKzQzOSwyNiBAQCBwcml2YXRlOgog
ICAgIFJvb3RMYXllckF0dGFjaG1lbnQgbV9yb290TGF5ZXJBdHRhY2htZW50OwogCiAgICAgLy8g
RW5jbG9zaW5nIGNsaXBwaW5nIGxheWVyIGZvciBpZnJhbWUgY29udGVudAotICAgIE93blB0cjxH
cmFwaGljc0xheWVyPiBtX2NsaXBMYXllcjsKLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9z
Y3JvbGxMYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9jbGlwTGF5
ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fc2Nyb2xsTGF5ZXI7CiAK
ICAgICBIYXNoU2V0PFJlbmRlckxheWVyKj4gbV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzOwog
ICAgIEhhc2hTZXQ8UmVuZGVyTGF5ZXIqPiBtX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnNOZWVk
aW5nVXBkYXRlOwogCiAgICAgLy8gRW5jbG9zaW5nIGxheWVyIGZvciBvdmVyZmxvdyBjb250cm9s
cyBhbmQgdGhlIGNsaXBwaW5nIGxheWVyCi0gICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fb3Zl
cmZsb3dDb250cm9sc0hvc3RMYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXll
cj4gbV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVyOwogCiAgICAgLy8gTGF5ZXJzIGZvciBvdmVy
ZmxvdyBjb250cm9scwotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9ySG9yaXpv
bnRhbFNjcm9sbGJhcjsKLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvclZlcnRp
Y2FsU2Nyb2xsYmFyOwotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9yU2Nyb2xs
Q29ybmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9ySG9y
aXpvbnRhbFNjcm9sbGJhcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9s
YXllckZvclZlcnRpY2FsU2Nyb2xsYmFyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xh
eWVyPiBtX2xheWVyRm9yU2Nyb2xsQ29ybmVyOwogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykK
LSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvck92ZXJoYW5nQXJlYXM7Ci0gICAg
T3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fY29udGVudFNoYWRvd0xheWVyOwotICAgIE93blB0cjxH
cmFwaGljc0xheWVyPiBtX2xheWVyRm9yVG9wT3ZlcmhhbmdBcmVhOwotICAgIE93blB0cjxHcmFw
aGljc0xheWVyPiBtX2xheWVyRm9yQm90dG9tT3ZlcmhhbmdBcmVhOwotICAgIE93blB0cjxHcmFw
aGljc0xheWVyPiBtX2xheWVyRm9ySGVhZGVyOwotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBt
X2xheWVyRm9yRm9vdGVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xh
eWVyRm9yT3ZlcmhhbmdBcmVhczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4g
bV9jb250ZW50U2hhZG93TGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+
IG1fbGF5ZXJGb3JUb3BPdmVyaGFuZ0FyZWE7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNz
TGF5ZXI+IG1fbGF5ZXJGb3JCb3R0b21PdmVyaGFuZ0FyZWE7CisgICAgc3RkOjp1bmlxdWVfcHRy
PEdyYXBoaWNzTGF5ZXI+IG1fbGF5ZXJGb3JIZWFkZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdy
YXBoaWNzTGF5ZXI+IG1fbGF5ZXJGb3JGb290ZXI7CiAjZW5kaWYKIAogICAgIE93blB0cjxHcmFw
aGljc0xheWVyVXBkYXRlcj4gbV9sYXllclVwZGF0ZXI7IC8vIFVwZGF0ZXMgdGlsZWQgbGF5ZXIg
dmlzaWJsZSBhcmVhIHBlcmlvZGljYWxseSB3aGlsZSBhbmltYXRpb25zIGFyZSBydW5uaW5nLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmgKaW5kZXggZDI4NjlhNDhkNjg2MzVk
OTFlN2FhZDBlM2Q3MmZjYTU1YTU2MzY0OC4uMWViNzk2YjhkODU0OThhNTZhZDQ3ZjhhODE4NTAy
YTY2NjlmZjE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oCkBAIC01
Myw3ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgRXZhc19PYmplY3QqIG1fdmlldzsKIAogICAgIE93
blB0cjxUZXh0dXJlTWFwcGVyPiBtX3RleHR1cmVNYXBwZXI7Ci0gICAgT3duUHRyPEdyYXBoaWNz
TGF5ZXI+IG1fcm9vdEdyYXBoaWNzTGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNz
TGF5ZXI+IG1fcm9vdEdyYXBoaWNzTGF5ZXI7CiAgICAgVGV4dHVyZU1hcHBlckxheWVyKiBtX3Jv
b3RUZXh0dXJlTWFwcGVyTGF5ZXI7CiAKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1f
Y29udGV4dDNEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9U
ZXh0dXJlTWFwcGVyTGF5ZXJDbGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9UZXh0dXJlTWFwcGVyTGF5ZXJDbGllbnRRdC5oCmluZGV4IDJmZmI1ZjBhYTQ2Yjc4NjYx
YTg3NzFjNTk1NWU5NjEyOWE4ZDVlNDQuLjlhYzVlN2UzYWM4ZTcxMmY0ZGJiNDA4OTM3ZmQzNDkw
M2RjOWM1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvVGV4
dHVyZU1hcHBlckxheWVyQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L1RleHR1cmVNYXBwZXJMYXllckNsaWVudFF0LmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgcmVuZGVyQ29tcG9zaXRlZExheWVycyhHcmFwaGljc0NvbnRleHQqLCBj
b25zdCBJbnRSZWN0JiBjbGlwKTsKIHByaXZhdGU6CiAgICAgUVdlYkZyYW1lQWRhcHRlciogbV9m
cmFtZTsKLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9yb290R3JhcGhpY3NMYXllcjsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9yb290R3JhcGhpY3NMYXllcjsKICAg
ICBUaW1lcjxUZXh0dXJlTWFwcGVyTGF5ZXJDbGllbnRRdD4gbV9zeW5jVGltZXI7CiAgICAgV2Vi
Q29yZTo6VGV4dHVyZU1hcHBlckxheWVyKiBtX3Jvb3RUZXh0dXJlTWFwcGVyTGF5ZXI7CiAgICAg
T3duUHRyPFdlYkNvcmU6OlRleHR1cmVNYXBwZXI+IG1fdGV4dHVyZU1hcHBlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0LmgKaW5kZXgg
YzRiOTUyYWUxYzJiNzU5YzY2NTMzMTY2MGNhNzYyYmI1ZDMwMThhZC4uYmZiZmMxZmJiYzY2NDRk
YmQyYjc5OTk4YjlmYTQ5YTllMTZlNWNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0LmgKQEAgLTU3LDcgKzU3LDcgQEAgcHJpdmF0
ZToKICAgICBXZWJQYWdlUHJveHkqIG1fd2ViUGFnZVByb3h5OwogCiAgICAgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciogbV9yb290TGF5ZXI7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgT3duUHRyPFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI+PiBtX2xheWVyczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4+IG1fbGF5ZXJzOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KaW5kZXggNTkzNGUwNzBlYTJkNjRlZDRkZDRlMjI4
NjRmODNjNGNlZTlhMzMxMS4uMzIzYWI4ZTdmMDdhYzJiYWFkOTJlNDAxMjcyMDQ1OThkZTVjMmZl
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRy
ZWVIb3N0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJU
cmVlSG9zdC5tbQpAQCAtNzYsMTEgKzc2LDExIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6
Y29tbWl0KGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIAog
R3JhcGhpY3NMYXllciogUmVtb3RlTGF5ZXJUcmVlSG9zdDo6Z2V0T3JDcmVhdGVMYXllcih1aW50
NjRfdCBsYXllcklEKQogewotICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9sYXllcnMuYWRkKGxheWVy
SUQsIG51bGxwdHIpOwotICAgIGlmIChhZGRSZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAgICAgYWRk
UmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZSgwLCB0aGlzKTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4mIGxheWVyID0gbV9sYXllcnMuYWRk
KGxheWVySUQsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICBpZiAoIWxheWVyKQorICAg
ICAgICBsYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZSgwLCB0aGlzKTsKIAotICAgIHJldHVy
biBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmdldCgpOworICAgIHJldHVybiBsYXllci5nZXQo
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhvc3RNYWMuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvTGF5ZXJUcmVlSG9zdE1hYy5oCmluZGV4IDM3NDdj
YjdhMDEzYWRiMDk5NWM1OTc0NzNlYTg4MTIzMDdlYzgwYzYuLjQ2YmEyZDdjYTQzOGIwZmM2N2U1
NGRiNmYyOGFhZjU2OGQ3ODRhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvTGF5ZXJUcmVlSG9zdE1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvTGF5ZXJUcmVlSG9zdE1hYy5oCkBAIC05Miw5ICs5Miw5IEBA
IHByaXZhdGU6CiAKICAgICBMYXllclRyZWVDb250ZXh0IG1fbGF5ZXJUcmVlQ29udGV4dDsKIAot
ICAgIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX3Jvb3RMYXllcjsKLSAgICBPd25Q
dHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyOwot
ICAgIHR5cGVkZWYgSGFzaE1hcDxQYWdlT3ZlcmxheSosIE93blB0cjxXZWJDb3JlOjpHcmFwaGlj
c0xheWVyPj4gUGFnZU92ZXJsYXlMYXllck1hcDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6R3JhcGhpY3NMYXllcj4gbV9yb290TGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXI+IG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllcjsKKyAgICB0eXBl
ZGVmIEhhc2hNYXA8UGFnZU92ZXJsYXkqLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhp
Y3NMYXllcj4+IFBhZ2VPdmVybGF5TGF5ZXJNYXA7CiAgICAgUGFnZU92ZXJsYXlMYXllck1hcCBt
X3BhZ2VPdmVybGF5TGF5ZXJzOwogCiAgICAgT3duUHRyPExheWVySG9zdGluZ0NvbnRleHQ+IG1f
bGF5ZXJIb3N0aW5nQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvTGF5ZXJUcmVlSG9zdE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvTGF5ZXJUcmVlSG9zdE1hYy5tbQppbmRleCAzOTI3MThiZDNlMjkz
YmMwYjI5N2VkNDgzOGMzMzY5YzBmMTc2OTU3Li4zYjc4NmYwZmY3NDk5MTIyNmNkNzZjMTlkNTA0
Mjk5ZDY4YjYyNTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL0xheWVyVHJlZUhvc3RNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9MYXllclRyZWVIb3N0TWFjLm1tCkBAIC0yNzQsMTUgKzI3NCwxNCBAQCB2
b2lkIExheWVyVHJlZUhvc3RNYWM6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopCiAKIHZvaWQgTGF5ZXJUcmVlSG9zdE1hYzo6cGFpbnRDb250ZW50cyhj
b25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQmIGdyYXBo
aWNzQ29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGNs
aXBSZWN0KQogewotICAgIGlmIChncmFwaGljc0xheWVyID09IG1fbm9uQ29tcG9zaXRlZENvbnRl
bnRMYXllcikgeworICAgIGlmIChncmFwaGljc0xheWVyID09IG1fbm9uQ29tcG9zaXRlZENvbnRl
bnRMYXllci5nZXQoKSkgewogICAgICAgICBtX3dlYlBhZ2UtPmRyYXdSZWN0KGdyYXBoaWNzQ29u
dGV4dCwgY2xpcFJlY3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUGFnZU92ZXJs
YXlMYXllck1hcDo6aXRlcmF0b3IgZW5kID0gbV9wYWdlT3ZlcmxheUxheWVycy5lbmQoKTsKLSAg
ICBmb3IgKFBhZ2VPdmVybGF5TGF5ZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9wYWdlT3ZlcmxheUxh
eWVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgaWYgKGl0LT52YWx1ZSA9
PSBncmFwaGljc0xheWVyKSB7Ci0gICAgICAgICAgICBtX3dlYlBhZ2UtPmRyYXdQYWdlT3Zlcmxh
eShpdC0+a2V5LCBncmFwaGljc0NvbnRleHQsIGNsaXBSZWN0KTsKKyAgICBmb3IgKGF1dG8mIHBh
Z2VPdmVybGF5TGF5ZXIgOiBtX3BhZ2VPdmVybGF5TGF5ZXJzKSB7CisgICAgICAgIGlmIChwYWdl
T3ZlcmxheUxheWVyLnZhbHVlLmdldCgpID09IGdyYXBoaWNzTGF5ZXIpIHsKKyAgICAgICAgICAg
IG1fd2ViUGFnZS0+ZHJhd1BhZ2VPdmVybGF5KHBhZ2VPdmVybGF5TGF5ZXIua2V5LCBncmFwaGlj
c0NvbnRleHQsIGNsaXBSZWN0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
fQpAQCAtMzg1LDcgKzM4NCw3IEBAIGJvb2wgTGF5ZXJUcmVlSG9zdE1hYzo6Zmx1c2hQZW5kaW5n
TGF5ZXJDaGFuZ2VzKCkKIAogdm9pZCBMYXllclRyZWVIb3N0TWFjOjpjcmVhdGVQYWdlT3Zlcmxh
eUxheWVyKFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSkKIHsKLSAgICBPd25QdHI8R3JhcGhpY3NM
YXllcj4gbGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3Rvcnko
KSwgdGhpcyk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGxheWVyID0gR3Jh
cGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksIHRoaXMpOwogI2lmbmRl
ZiBOREVCVUcKICAgICBsYXllci0+c2V0TmFtZSgiTGF5ZXJUcmVlSG9zdCBwYWdlIG92ZXJsYXkg
Y29udGVudCIpOwogI2VuZGlmCkBAIC0zOTgsMTIgKzM5NywxMiBAQCB2b2lkIExheWVyVHJlZUhv
c3RNYWM6OmNyZWF0ZVBhZ2VPdmVybGF5TGF5ZXIoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5KQog
CiAgICAgbV9yb290TGF5ZXItPmFkZENoaWxkKGxheWVyLmdldCgpKTsKIAotICAgIG1fcGFnZU92
ZXJsYXlMYXllcnMuYWRkKHBhZ2VPdmVybGF5LCBsYXllci5yZWxlYXNlKCkpOworICAgIG1fcGFn
ZU92ZXJsYXlMYXllcnMuYWRkKHBhZ2VPdmVybGF5LCBzdGQ6Om1vdmUobGF5ZXIpKTsKIH0KIAog
dm9pZCBMYXllclRyZWVIb3N0TWFjOjpkZXN0cm95UGFnZU92ZXJsYXlMYXllcihQYWdlT3Zlcmxh
eSogcGFnZU92ZXJsYXkpCiB7Ci0gICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IGxheWVyID0gbV9w
YWdlT3ZlcmxheUxheWVycy50YWtlKHBhZ2VPdmVybGF5KTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
R3JhcGhpY3NMYXllcj4gbGF5ZXIgPSBtX3BhZ2VPdmVybGF5TGF5ZXJzLnRha2UocGFnZU92ZXJs
YXkpOwogICAgIEFTU0VSVChsYXllcik7CiAKICAgICBsYXllci0+cmVtb3ZlRnJvbVBhcmVudCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1v
dGVHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1JlbW90ZUdyYXBoaWNzTGF5ZXIuaAppbmRleCBjNjVjZDY1ZDNkZGE5NGRkMzc0NDVlZmQ4Mzhj
ZDA5MTdiZjU1Mzk3Li4xYmMzOTI2YjZiY2ZmNmYwNjZjZDQzOGJlNDdiNjFkZmRkNTc4ODA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUdy
YXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1JlbW90ZUdyYXBoaWNzTGF5ZXIuaApAQCAtMzQsMTQgKzM0LDEyIEBAIGNsYXNzIFJlbW90ZUxh
eWVyVHJlZUNvbnRleHQ7CiAKIGNsYXNzIFJlbW90ZUdyYXBoaWNzTGF5ZXIgOiBwdWJsaWMgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8V2Vi
Q29yZTo6R3JhcGhpY3NMYXllcj4gY3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQq
LCBSZW1vdGVMYXllclRyZWVDb250ZXh0Kik7CisgICAgUmVtb3RlR3JhcGhpY3NMYXllcihXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ2xpZW50KiwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCopOwogICAg
IHZpcnR1YWwgflJlbW90ZUdyYXBoaWNzTGF5ZXIoKTsKIAogICAgIHVpbnQ2NF90IGxheWVySUQo
KSBjb25zdCB7IHJldHVybiBtX2xheWVySUQ7IH0KIAogcHJpdmF0ZToKLSAgICBSZW1vdGVHcmFw
aGljc0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQqLCBSZW1vdGVMYXllclRyZWVD
b250ZXh0Kik7Ci0KICAgICAvLyBXZWJDb3JlOjpHcmFwaGljc0xheWVyCiAgICAgdmlydHVhbCB2
b2lkIHNldE5hbWUoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlR3JhcGhpY3NMYXllci5tbSBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlR3JhcGhpY3NMYXll
ci5tbQppbmRleCBlYzIwMWMyYmZjZDgxMTZkYTM1NGRjZDAwMTQ1YTE0NTNhMzQyODU1Li4wNDM2
NzVkZDJjMjRiNzM1ZTUxZTUxMDQ4Y2NmMmQ0NmI2ZjVkNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUdyYXBoaWNzTGF5ZXIubW0KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVHcmFwaGljc0xh
eWVyLm1tCkBAIC00MiwxMSArNDIsNiBAQCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVMYXllcklE
KCkKICAgICByZXR1cm4gKytsYXllcklEOwogfQogCi1QYXNzT3duUHRyPEdyYXBoaWNzTGF5ZXI+
IFJlbW90ZUdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQs
IFJlbW90ZUxheWVyVHJlZUNvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBSZW1vdGVHcmFwaGljc0xheWVyKGNsaWVudCwgY29udGV4dCkpOwotfQotCiBSZW1vdGVH
cmFwaGljc0xheWVyOjpSZW1vdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNs
aWVudCwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCogY29udGV4dCkKICAgICA6IEdyYXBoaWNzTGF5
ZXIoY2xpZW50KQogICAgICwgbV9sYXllcklEKGdlbmVyYXRlTGF5ZXJJRCgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVD
b250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxh
eWVyVHJlZUNvbnRleHQuaAppbmRleCBmNWQ3OTczZmRiZjQzMDQ4ZmY5YTMwMTk2MThmNzQ1ZjA4
YWE5Yjk4Li43N2EwOTU0YmJiMDMzMWJmZjY5OGEwMGI5MThlOGJjODI0OTI0MzgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJl
ZUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Jl
bW90ZUxheWVyVHJlZUNvbnRleHQuaApAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAgIGV4
cGxpY2l0IFJlbW90ZUxheWVyVHJlZUNvbnRleHQoV2ViUGFnZSopOwogCiAgICAgLy8gV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckZhY3RvcnkKLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6
R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q2xpZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q2xpZW50KikgT1ZFUlJJREU7CiAKICAgICB2b2lkIGxheWVyRmx1c2hUaW1lckZpcmVkKFdlYkNv
cmU6OlRpbWVyPFJlbW90ZUxheWVyVHJlZUNvbnRleHQ+Kik7CiAgICAgdm9pZCBmbHVzaExheWVy
cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9S
ZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCmluZGV4IGI4NjQ1NDA1NTg0YzcwMjA0
OGJmNzQ3Yjc1MTdiODU0OWEzMzU4YjYuLjg5OTNkY2I5MDViZGQ2Mjg1MTZkZmQ2ZGYxNjlmYjk2
YTY2OWY0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KQEAgLTg2LDkgKzg2LDkg
QEAgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmN1
cnJlbnRUcmFuc2FjdGlvbigpCiAgICAgcmV0dXJuICptX2N1cnJlbnRUcmFuc2FjdGlvbjsKIH0K
IAotUGFzc093blB0cjxHcmFwaGljc0xheWVyPiBSZW1vdGVMYXllclRyZWVDb250ZXh0OjpjcmVh
dGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKK3N0ZDo6dW5pcXVl
X3B0cjxHcmFwaGljc0xheWVyPiBSZW1vdGVMYXllclRyZWVDb250ZXh0OjpjcmVhdGVHcmFwaGlj
c0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKIHsKLSAgICByZXR1cm4gUmVtb3Rl
R3JhcGhpY3NMYXllcjo6Y3JlYXRlKGNsaWVudCwgdGhpcyk7CisgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8UmVtb3RlR3JhcGhpY3NMYXllcj4oY2xpZW50LCB0aGlzKTsKIH0KIAogdm9pZCBS
ZW1vdGVMYXllclRyZWVDb250ZXh0OjpsYXllckZsdXNoVGltZXJGaXJlZChXZWJDb3JlOjpUaW1l
cjxSZW1vdGVMYXllclRyZWVDb250ZXh0PiopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhLmgKaW5kZXggOWY5MmIwZWQzN2NkYjFiYzU3NDcyY2ZiNWZmNDFmM2YxMTI1ZTI3
YS4uMDM4YjMyYjA2N2FiNGNmODMxYmVmNTllM2E4YzA4NTQyYmZjNzEyMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaApAQCAtMTI3LDcgKzEyNyw3IEBAIHByaXZh
dGU6CiAKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9kZWJ1Z0luZm9MYXllcjsKIAotICAgIHR5
cGVkZWYgSGFzaE1hcDxQYWdlT3ZlcmxheSosIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVy
Pj4gUGFnZU92ZXJsYXlMYXllck1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8UGFnZU92ZXJsYXkq
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4+IFBhZ2VPdmVybGF5TGF5
ZXJNYXA7CiAgICAgUGFnZU92ZXJsYXlMYXllck1hcCBtX3BhZ2VPdmVybGF5TGF5ZXJzOwogICAg
IG11dGFibGUgSGFzaE1hcDxjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgUmV0YWluUHRy
PENBTGF5ZXI+PiBtX3BhZ2VPdmVybGF5UGxhdGZvcm1MYXllcnM7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCmluZGV4IDQ2YjEwNDk5ZTg2YzI4N2RhODQ4MGI2
ZTM3Mzk1NjNmMzI0NTVmOTQuLjcyMDkyOWZjNGU3OGE0MThjYWFmOGNkMzg0MTY3ZDk3MTFlMTA0
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQpAQCAtMzQ0
LDggKzM0NCw4IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6Om5vdGlmeUZs
dXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCiAKIHZvaWQgVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWE6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhp
Y3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIEdyYXBoaWNzTGF5ZXJQ
YWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKIHsKLSAgICBmb3IgKFBhZ2VP
dmVybGF5TGF5ZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9wYWdlT3ZlcmxheUxheWVycy5iZWdpbigp
LCBlbmQgPSBtX3BhZ2VPdmVybGF5TGF5ZXJzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAg
ICAgICAgaWYgKGl0LT52YWx1ZSA9PSBncmFwaGljc0xheWVyKSB7CisgICAgZm9yIChhdXRvIGl0
ID0gbV9wYWdlT3ZlcmxheUxheWVycy5iZWdpbigpLCBlbmQgPSBtX3BhZ2VPdmVybGF5TGF5ZXJz
LmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgaWYgKGl0LT52YWx1ZS5nZXQoKSA9
PSBncmFwaGljc0xheWVyKSB7CiAgICAgICAgICAgICBtX3dlYlBhZ2UtPmRyYXdQYWdlT3Zlcmxh
eShpdC0+a2V5LCBncmFwaGljc0NvbnRleHQsIGNsaXBSZWN0KTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CkBAIC02MTMsNyArNjEzLDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYTo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoQ0FMYXllciAqbGF5ZXIpCiAKIHZv
aWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmNyZWF0ZVBhZ2VPdmVybGF5TGF5ZXIo
UGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5KQogewotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBs
YXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCB0aGlz
KTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbGF5ZXIgPSBHcmFwaGljc0xh
eWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgdGhpcyk7CiAjaWZuZGVmIE5ERUJV
RwogICAgIGxheWVyLT5zZXROYW1lKCJwYWdlIG92ZXJsYXkgY29udGVudCIpOwogI2VuZGlmCkBA
IC02MzYsMTIgKzYzNiwxMiBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpj
cmVhdGVQYWdlT3ZlcmxheUxheWVyKFBhZ2VPdmVybGF5KiBwYWdlT3ZlcgogCiAgICAgW0NBVHJh
bnNhY3Rpb24gY29tbWl0XTsKIAotICAgIG1fcGFnZU92ZXJsYXlMYXllcnMuYWRkKHBhZ2VPdmVy
bGF5LCBsYXllci5yZWxlYXNlKCkpOworICAgIG1fcGFnZU92ZXJsYXlMYXllcnMuYWRkKHBhZ2VP
dmVybGF5LCBzdGQ6Om1vdmUobGF5ZXIpKTsKIH0KIAogdm9pZCBUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYTo6ZGVzdHJveVBhZ2VPdmVybGF5TGF5ZXIoUGFnZU92ZXJsYXkqIHBhZ2VPdmVy
bGF5KQogewotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBsYXllciA9IG1fcGFnZU92ZXJsYXlM
YXllcnMudGFrZShwYWdlT3ZlcmxheSk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5
ZXI+IGxheWVyID0gbV9wYWdlT3ZlcmxheUxheWVycy50YWtlKHBhZ2VPdmVybGF5KTsKICAgICBB
U1NFUlQobGF5ZXIpOwogCiAgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212824</attachid>
            <date>2013-09-27 10:47:41 -0700</date>
            <delta_ts>2013-09-27 11:04:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122020-20130927104741.patch</filename>
            <type>text/plain</type>
            <size>32733</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTlmMjI4YjgzODZkNzFh
MmY1YTNmZGJkMDQ0MmMyMTBhNzZjM2UwNy4uOTRjOWQzMWI0YWY3MTQ1ZGZlZDBhYTNkYzYwNWFh
NTg3NTE0OWQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTA5LTI3ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6dW5p
cXVlX3B0ciBmb3IgR3JhcGhpY3NMYXllciBjcmVhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMDIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckZhY3Rvcnku
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVHcmFwaGljc0xh
eWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29t
cG9zaXRpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVH
cmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBk
YXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJCYWNraW5nOjpwYWludEludG9MYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpo
YXNTY3JvbGxpbmdMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZVJvb3RMYXllclBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmg6CisKIDIwMTMtMDktMjYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgog
CiAgICAgICAgIHJlbmFtZSBLVVJMIHRvIFVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDY2Zjk4NWRkODU0OTgx
NTQ2MWFlMzk1NTlkYzU0MGZlYjZkNDEzNWMuLjc2YzY4NGFiNmIzOTk3NTE5ZjI4Y2Q2OWI1YmJh
MjQ1NzllMzdjZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wOS0yNyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBzdGQ6OnVu
aXF1ZV9wdHIgZm9yIEdyYXBoaWNzTGF5ZXIgY3JlYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjAyMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRy
ZWVIb3N0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1t
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpnZXRPckNyZWF0ZUxheWVy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhvc3RNYWMuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhvc3RNYWMubW06Cisg
ICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RNYWM6OnBhaW50Q29udGVudHMpOgorICAgICAg
ICAoV2ViS2l0OjpMYXllclRyZWVIb3N0TWFjOjpjcmVhdGVQYWdlT3ZlcmxheUxheWVyKToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdE1hYzo6ZGVzdHJveVBhZ2VPdmVybGF5TGF5ZXIp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlR3JhcGhpY3NMYXllci5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlR3JhcGhpY3NMYXllci5t
bToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRl
eHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNv
bnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmNyZWF0
ZUdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6cGFpbnRDb250ZW50cyk6CisgICAgICAgIChX
ZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpjcmVhdGVQYWdlT3ZlcmxheUxh
eWVyKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmRl
c3Ryb3lQYWdlT3ZlcmxheUxheWVyKToKKwogMjAxMy0wOS0yNiAgRGFyaW4gQWRsZXIgIDxkYXJp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgcmVuYW1lIEtVUkwgdG8gVVJMCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggMTQyOWRjMjNl
YjVhMWJmYTE2ZGYxMzhhZTg3Yjk4OWI0YTU0M2JjNy4uZWJhNDNkZDRlYjJjMmRhYjY1ZThkYjNm
ZDViZWU0ZjcwY2Y2NTI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtMjI0LDcgKzIyNCw3IEBAIHByb3RlY3RlZDoKIGNsYXNz
IEdyYXBoaWNzTGF5ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdyYXBoaWNzTGF5ZXIp
OyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0
cjxHcmFwaGljc0xheWVyPiBjcmVhdGUoR3JhcGhpY3NMYXllckZhY3RvcnkqLCBHcmFwaGljc0xh
eWVyQ2xpZW50Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBj
cmVhdGUoR3JhcGhpY3NMYXllckZhY3RvcnkqLCBHcmFwaGljc0xheWVyQ2xpZW50Kik7CiAgICAg
CiAgICAgdmlydHVhbCB+R3JhcGhpY3NMYXllcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFjdG9yeS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckZhY3RvcnkuaAppbmRleCBjNzQ3
YmI4YTY3NzNkNDA4NjNlYjY5Y2FiY2UyZjUyNDU1M2YwMDk2Li42NDEzZTkzY2I0MmExZjFhZWM1
MmY1ZmE5MDI1OTUwZjk5OGY5ODM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJGYWN0b3J5LmgKQEAgLTM5LDcgKzM5LDcgQEAg
Y2xhc3MgR3JhcGhpY3NMYXllckZhY3RvcnkgewogcHVibGljOgogICAgIHZpcnR1YWwgfkdyYXBo
aWNzTGF5ZXJGYWN0b3J5KCkgeyB9CiAKLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8R3JhcGhpY3NM
YXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KikgPSAwOworICAg
IHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5
ZXIoR3JhcGhpY3NMYXllckNsaWVudCopID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFw
aGljc0xheWVyQ0EuY3BwCmluZGV4IDAyNTFmYzNjYTY3MDJjYWZmYWZmODdiZWEwMTViOGQwYzI5
ODA0ZjcuLjIwMGMxMzQyZGE0ZjI5ZGM4YzEwMWQ2N2Y2ODc3MWU1MWVkMjhhZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXll
ckNBLmNwcApAQCAtMjczLDEwICsyNzMsMTAgQEAgc3RhdGljIGlubGluZSBib29sIHN1cHBvcnRz
QWNjZWxlcmF0ZWRGaWx0ZXJBbmltYXRpb25zKCkKIH0KICNlbmRpZgogCi1QYXNzT3duUHRyPEdy
YXBoaWNzTGF5ZXI+IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSog
ZmFjdG9yeSwgR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQorc3RkOjp1bmlxdWVfcHRyPEdy
YXBoaWNzTGF5ZXI+IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSog
ZmFjdG9yeSwgR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogewogICAgIGlmICghZmFjdG9y
eSkKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHcmFwaGljc0xheWVyQ0EoY2xpZW50KSk7
CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyYXBoaWNzTGF5ZXJDQT4oY2xpZW50
KTsKIAogICAgIHJldHVybiBmYWN0b3J5LT5jcmVhdGVHcmFwaGljc0xheWVyKGNsaWVudCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5oCmluZGV4IDk2ODEyNzM2NmY1ZjljZDZjMjYyMTljNDY4ZTRkMGI1YTllYmJmMmQu
LmYzZTRjOGIwZThiMTk5ZjI1MDYyOWQyMGM4MzM1YTY2NTcyOTI2YjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBA
IC0xOTQsNyArMTk0LDcgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIFN0cmluZyBDbG9uZUlEOyAv
LyBJZGVudGlmaWVyIGZvciBhIGdpdmVuIGNsb25lLCBiYXNlZCBvbiBvcmlnaW5hbC9yZXBsaWNh
IGJyYW5jaGluZyBkb3duIHRoZSB0cmVlLgogICAgIHN0YXRpYyBib29sIGlzUmVwbGljYXRlZFJv
b3RDbG9uZShjb25zdCBDbG9uZUlEJiBjbG9uZUlEKSB7IHJldHVybiBjbG9uZUlEWzBVXSAmIDE7
IH0KIAotICAgIHR5cGVkZWYgSGFzaE1hcDxDbG9uZUlELCBSZWZQdHI8UGxhdGZvcm1DQUxheWVy
PiA+IExheWVyTWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxDbG9uZUlELCBSZWZQdHI8UGxhdGZv
cm1DQUxheWVyPj4gTGF5ZXJNYXA7CiAgICAgTGF5ZXJNYXAqIHByaW1hcnlMYXllckNsb25lcygp
IGNvbnN0IHsgcmV0dXJuIG1fc3RydWN0dXJhbExheWVyLmdldCgpID8gbV9zdHJ1Y3R1cmFsTGF5
ZXJDbG9uZXMuZ2V0KCkgOiBtX2xheWVyQ2xvbmVzLmdldCgpOyB9CiAgICAgTGF5ZXJNYXAqIGFu
aW1hdGVkTGF5ZXJDbG9uZXMoQW5pbWF0ZWRQcm9wZXJ0eUlEKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggYzk5YzgwODBkN2ZmMzI5MTI4
ZTY3OTJhNzYwZWI2Mjk3OGE4YzcyYS4uZjlhMjA5ZGY5NGZlMGFmMjkwNGNhYjAzM2U3YWRmMjY4
MjQwOGMzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCkBA
IC0zNSwxMCArMzUsMTAgQEAgVGV4dHVyZU1hcHBlckxheWVyKiB0b1RleHR1cmVNYXBwZXJMYXll
cihHcmFwaGljc0xheWVyKiBsYXllcikKICAgICByZXR1cm4gbGF5ZXIgPyB0b0dyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyKGxheWVyKS0+bGF5ZXIoKSA6IDA7CiB9CiAKLVBhc3NPd25QdHI8R3Jh
cGhpY3NMYXllcj4gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBm
YWN0b3J5LCBHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCitzdGQ6OnVuaXF1ZV9wdHI8R3Jh
cGhpY3NMYXllcj4gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBm
YWN0b3J5LCBHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgaWYgKCFmYWN0b3J5
KQotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
KGNsaWVudCkpOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlcj4oY2xpZW50KTsKIAogICAgIHJldHVybiBmYWN0b3J5LT5jcmVhdGVHcmFw
aGljc0xheWVyKGNsaWVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29t
cG9zaXRpbmdDb29yZGluYXRvci5jcHAKaW5kZXggZDA5NjhiOWE1NGEyMGJkZDU2ZDgyNzJlZmNk
YmJkMjdiMzA1N2FjMC4uNDA3ODIxY2YxYzc3NWIyMGEwYzZmY2JjM2U2ZThmYjg5Zjk2ODEyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9y
LmNwcApAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6cGFp
bnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHCiAgICAgbV9j
bGllbnQtPnBhaW50TGF5ZXJDb250ZW50cyhncmFwaGljc0xheWVyLCBncmFwaGljc0NvbnRleHQs
IGNsaXBSZWN0KTsKIH0KIAotUGFzc093blB0cjxHcmFwaGljc0xheWVyPiBDb21wb3NpdGluZ0Nv
b3JkaW5hdG9yOjpjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVu
dCkKK3N0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBDb21wb3NpdGluZ0Nvb3JkaW5hdG9y
OjpjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKIHsKICAg
ICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbmV3IENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcihjbGllbnQpOwogICAgIGxheWVyLT5zZXRDb29yZGluYXRvcih0aGlzKTsKQEAgLTI3
Miw3ICsyNzIsNyBAQCBQYXNzT3duUHRyPEdyYXBoaWNzTGF5ZXI+IENvbXBvc2l0aW5nQ29vcmRp
bmF0b3I6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYQogICAgIG1fc3RhdGUubGF5ZXJz
VG9DcmVhdGUuYXBwZW5kKGxheWVyLT5pZCgpKTsKICAgICBsYXllci0+c2V0TmVlZHNWaXNpYmxl
UmVjdEFkanVzdG1lbnQoKTsKICAgICBtX2NsaWVudC0+bm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwot
ICAgIHJldHVybiBhZG9wdFB0cihsYXllcik7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxH
cmFwaGljc0xheWVyPihsYXllcik7CiB9CiAKIGZsb2F0IENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6
OmRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29tcG9zaXRpbmdDb29yZGluYXRvci5oCmluZGV4IGZkNDFjYjg3MzI4NTJkMDMyZTIyZWY1MmEx
NGM4ZTQ4Nzg2ZjY1N2IuLjU4M2E3YzdlNmY2MDVkYzVhMjZlOTlmYzJhOTBjN2YxY2ZmYjNkMjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3Iu
aApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVVw
ZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQpIE9WRVJSSURFOwogCiAgICAgLy8gR3JhcGhpY3NM
YXllckZhY3RvcnkKLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4gY3JlYXRl
R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihHcmFw
aGljc0xheWVyQ2xpZW50KikgT1ZFUlJJREU7CiAKICAgICB2b2lkIGluaXRpYWxpemVSb290Q29t
cG9zaXRpbmdMYXllcklmTmVlZGVkKCk7CiAgICAgdm9pZCBmbHVzaFBlbmRpbmdJbWFnZUJhY2tp
bmdDaGFuZ2VzKCk7CkBAIC0xMzUsNyArMTM1LDcgQEAgcHJpdmF0ZToKICAgICBQYWdlKiBtX3Bh
Z2U7CiAgICAgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Q2xpZW50KiBtX2NsaWVudDsKIAotICAg
IE93blB0cjxHcmFwaGljc0xheWVyPiBtX3Jvb3RMYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
R3JhcGhpY3NMYXllcj4gbV9yb290TGF5ZXI7CiAgICAgR3JhcGhpY3NMYXllciogbV9yb290Q29t
cG9zaXRpbmdMYXllcjsKIAogICAgIENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZSBtX3N0YXRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRl
eCA2MGYyNzAwYTEzOTQ3ZjI5MzE1MjI3OTI5NGVlOTM1OGNhNGQzOWU2Li42OGI5YjkyOTdmZjdm
YzQwYjIyMGYzNjFiNzZlN2ZjMmNkOGI3ZjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTYxLDEzICsxNjEsMTMgQEAgdm9pZCBS
ZW5kZXJMYXllckJhY2tpbmc6OndpbGxEZXN0cm95TGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciog
bGF5ZXIpCiAgICAgICAgIGNvbXBvc2l0b3IoKS5sYXllclRpbGVkQmFja2luZ1VzYWdlQ2hhbmdl
ZChsYXllciwgZmFsc2UpOwogfQogCi1QYXNzT3duUHRyPEdyYXBoaWNzTGF5ZXI+IFJlbmRlckxh
eWVyQmFja2luZzo6Y3JlYXRlR3JhcGhpY3NMYXllcihjb25zdCBTdHJpbmcmIG5hbWUpCitzdGQ6
OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gUmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVHcmFw
aGljc0xheWVyKGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICBHcmFwaGljc0xheWVyRmFjdG9y
eSogZ3JhcGhpY3NMYXllckZhY3RvcnkgPSAwOwogICAgIGlmIChQYWdlKiBwYWdlID0gcmVuZGVy
ZXIoKS5mcmFtZSgpLnBhZ2UoKSkKICAgICAgICAgZ3JhcGhpY3NMYXllckZhY3RvcnkgPSBwYWdl
LT5jaHJvbWUoKS5jbGllbnQoKS5ncmFwaGljc0xheWVyRmFjdG9yeSgpOwogCi0gICAgT3duUHRy
PEdyYXBoaWNzTGF5ZXI+IGdyYXBoaWNzTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3Jh
cGhpY3NMYXllckZhY3RvcnksIHRoaXMpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xh
eWVyPiBncmFwaGljc0xheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJG
YWN0b3J5LCB0aGlzKTsKIAogI2lmbmRlZiBOREVCVUcKICAgICBncmFwaGljc0xheWVyLT5zZXRO
YW1lKG5hbWUpOwpAQCAtMTgwLDcgKzE4MCw3IEBAIFBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4g
UmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVHcmFwaGljc0xheWVyKGNvbnN0IFN0cmluZyYKICAg
ICBncmFwaGljc0xheWVyLT5zZXRBY2NlbGVyYXRlc0RyYXdpbmcoY29tcG9zaXRvcigpLmFjY2Vs
ZXJhdGVkRHJhd2luZ0VuYWJsZWQoKSk7CiAjZW5kaWYgICAgCiAgICAgCi0gICAgcmV0dXJuIGdy
YXBoaWNzTGF5ZXIucmVsZWFzZSgpOworICAgIHJldHVybiBncmFwaGljc0xheWVyOwogfQogCiBi
b29sIFJlbmRlckxheWVyQmFja2luZzo6c2hvdWxkVXNlVGlsZWRCYWNraW5nKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKSBjb25zdApAQCAtNTIzLDcgKzUyMyw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNr
aW5nOjp1cGRhdGVHcmFwaGljc0xheWVyQ29uZmlndXJhdGlvbigpCiAgICAgICAgIHVwZGF0ZUlu
dGVybmFsSGllcmFyY2h5KCk7CiAKICAgICBpZiAoR3JhcGhpY3NMYXllciogZmxhdHRlbmluZ0xh
eWVyID0gdGlsZUNhY2hlRmxhdHRlbmluZ0xheWVyKCkpIHsKLSAgICAgICAgaWYgKGxheWVyQ29u
ZmlnQ2hhbmdlZCB8fCBmbGF0dGVuaW5nTGF5ZXItPnBhcmVudCgpICE9IG1fZ3JhcGhpY3NMYXll
cikKKyAgICAgICAgaWYgKGxheWVyQ29uZmlnQ2hhbmdlZCB8fCBmbGF0dGVuaW5nTGF5ZXItPnBh
cmVudCgpICE9IG1fZ3JhcGhpY3NMYXllci5nZXQoKSkKICAgICAgICAgICAgIG1fZ3JhcGhpY3NM
YXllci0+YWRkQ2hpbGQoZmxhdHRlbmluZ0xheWVyKTsKICAgICB9CiAKQEAgLTE5ODAsNyArMTk4
MCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludEludG9MYXllcihjb25zdCBHcmFw
aGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwCiAgICAgaWYgKHBhaW50aW5nUGhhc2UgJiBH
cmFwaGljc0xheWVyUGFpbnRDb21wb3NpdGVkU2Nyb2xsKQogICAgICAgICBwYWludEZsYWdzIHw9
IFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ1Njcm9sbGluZ1BoYXNl
OwogCi0gICAgaWYgKGdyYXBoaWNzTGF5ZXIgPT0gbV9iYWNrZ3JvdW5kTGF5ZXIpCisgICAgaWYg
KGdyYXBoaWNzTGF5ZXIgPT0gbV9iYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkpCiAgICAgICAgIHBhaW50
RmxhZ3MgfD0gKFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdSb290QmFja2dyb3VuZE9u
bHkgfCBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdGb3JlZ3JvdW5k
UGhhc2UpOyAvLyBOZWVkIFBhaW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5nRm9yZWdyb3VuZFBo
YXNlIHRvIHdhbGsgY2hpbGQgbGF5ZXJzLgogICAgIGVsc2UgaWYgKGNvbXBvc2l0b3IoKS5maXhl
ZFJvb3RCYWNrZ3JvdW5kTGF5ZXIoKSkKICAgICAgICAgcGFpbnRGbGFncyB8PSBSZW5kZXJMYXll
cjo6UGFpbnRMYXllclBhaW50aW5nU2tpcFJvb3RCYWNrZ3JvdW5kOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IDU2ZjE3YzBhNmZlMGNmMTcy
NWIxNTcxODdmOTBmYjAyOWExM2JiN2YuLjg1OThiYTRiYWZkYjQ3MzA1YTI4Njk0YWIyZGY5M2Y4
ZDdjNGIxY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmgKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogICAgIEdyYXBoaWNzTGF5ZXIqIGJhY2tn
cm91bmRMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZExheWVyLmdldCgpOyB9CiAg
ICAgYm9vbCBiYWNrZ3JvdW5kTGF5ZXJQYWludHNGaXhlZFJvb3RCYWNrZ3JvdW5kKCkgY29uc3Qg
eyByZXR1cm4gbV9iYWNrZ3JvdW5kTGF5ZXJQYWludHNGaXhlZFJvb3RCYWNrZ3JvdW5kOyB9CiAg
ICAgCi0gICAgYm9vbCBoYXNTY3JvbGxpbmdMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xs
aW5nTGF5ZXI7IH0KKyAgICBib29sIGhhc1Njcm9sbGluZ0xheWVyKCkgY29uc3QgeyByZXR1cm4g
bV9zY3JvbGxpbmdMYXllciAhPSBudWxscHRyOyB9CiAgICAgR3JhcGhpY3NMYXllciogc2Nyb2xs
aW5nTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGluZ0xheWVyLmdldCgpOyB9CiAgICAg
R3JhcGhpY3NMYXllciogc2Nyb2xsaW5nQ29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1f
c2Nyb2xsaW5nQ29udGVudHNMYXllci5nZXQoKTsgfQogCkBAIC0yMDgsNyArMjA4LDcgQEAgcHJp
dmF0ZToKICAgICAKICAgICB2b2lkIHdpbGxEZXN0cm95TGF5ZXIoY29uc3QgR3JhcGhpY3NMYXll
ciopOwogICAgIAotICAgIFBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NM
YXllcihjb25zdCBTdHJpbmcmKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4g
Y3JlYXRlR3JhcGhpY3NMYXllcihjb25zdCBTdHJpbmcmKTsKIAogICAgIFJlbmRlckxheWVyTW9k
ZWxPYmplY3QmIHJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gbV9vd25pbmdMYXllci0+cmVuZGVy
ZXIoKTsgfQogICAgIFJlbmRlckxheWVyQ29tcG9zaXRvciYgY29tcG9zaXRvcigpIGNvbnN0IHsg
cmV0dXJuIG1fb3duaW5nTGF5ZXItPmNvbXBvc2l0b3IoKTsgfQpAQCAtMjgzLDIwICsyODMsMjAg
QEAgcHJpdmF0ZToKIAogICAgIFJlbmRlckxheWVyKiBtX293bmluZ0xheWVyOwogCi0gICAgT3du
UHRyPEdyYXBoaWNzTGF5ZXI+IG1fYW5jZXN0b3JDbGlwcGluZ0xheWVyOyAvLyBPbmx5IHVzZWQg
aWYgd2UgYXJlIGNsaXBwZWQgYnkgYW4gYW5jZXN0b3Igd2hpY2ggaXMgbm90IGEgc3RhY2tpbmcg
Y29udGV4dC4KLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9jb250ZW50c0NvbnRhaW5tZW50
TGF5ZXI7IC8vIE9ubHkgdXNlZCBpZiB3ZSBoYXZlIGEgYmFja2dyb3VuZCBsYXllcjsgdGFrZXMg
dGhlIHRyYW5zZm9ybS4KLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9ncmFwaGljc0xheWVy
OwotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2ZvcmVncm91bmRMYXllcjsgLy8gT25seSB1
c2VkIGluIGNhc2VzIHdoZXJlIHdlIG5lZWQgdG8gZHJhdyB0aGUgZm9yZWdyb3VuZCBzZXBhcmF0
ZWx5LgotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2JhY2tncm91bmRMYXllcjsgLy8gT25s
eSB1c2VkIGluIGNhc2VzIHdoZXJlIHdlIG5lZWQgdG8gZHJhdyB0aGUgYmFja2dyb3VuZCBzZXBh
cmF0ZWx5LgotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2NoaWxkQ29udGFpbm1lbnRMYXll
cjsgLy8gT25seSB1c2VkIGlmIHdlIGhhdmUgY2xpcHBpbmcgb24gYSBzdGFja2luZyBjb250ZXh0
IHdpdGggY29tcG9zaXRpbmcgY2hpbGRyZW4sIG9yIGlmIHRoZSBsYXllciBoYXMgYSB0aWxlIGNh
Y2hlLgotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX21hc2tMYXllcjsgLy8gT25seSB1c2Vk
IGlmIHdlIGhhdmUgYSBtYXNrLgorICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBt
X2FuY2VzdG9yQ2xpcHBpbmdMYXllcjsgLy8gT25seSB1c2VkIGlmIHdlIGFyZSBjbGlwcGVkIGJ5
IGFuIGFuY2VzdG9yIHdoaWNoIGlzIG5vdCBhIHN0YWNraW5nIGNvbnRleHQuCisgICAgc3RkOjp1
bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fY29udGVudHNDb250YWlubWVudExheWVyOyAvLyBP
bmx5IHVzZWQgaWYgd2UgaGF2ZSBhIGJhY2tncm91bmQgbGF5ZXI7IHRha2VzIHRoZSB0cmFuc2Zv
cm0uCisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fZ3JhcGhpY3NMYXllcjsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9mb3JlZ3JvdW5kTGF5ZXI7IC8v
IE9ubHkgdXNlZCBpbiBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRvIGRyYXcgdGhlIGZvcmVncm91bmQg
c2VwYXJhdGVseS4KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9iYWNrZ3Jv
dW5kTGF5ZXI7IC8vIE9ubHkgdXNlZCBpbiBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRvIGRyYXcgdGhl
IGJhY2tncm91bmQgc2VwYXJhdGVseS4KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXll
cj4gbV9jaGlsZENvbnRhaW5tZW50TGF5ZXI7IC8vIE9ubHkgdXNlZCBpZiB3ZSBoYXZlIGNsaXBw
aW5nIG9uIGEgc3RhY2tpbmcgY29udGV4dCB3aXRoIGNvbXBvc2l0aW5nIGNoaWxkcmVuLCBvciBp
ZiB0aGUgbGF5ZXIgaGFzIGEgdGlsZSBjYWNoZS4KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhp
Y3NMYXllcj4gbV9tYXNrTGF5ZXI7IC8vIE9ubHkgdXNlZCBpZiB3ZSBoYXZlIGEgbWFzay4KIAot
ICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcjsK
LSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyOwot
ICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9yU2Nyb2xsQ29ybmVyOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJh
cjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvclZlcnRpY2Fs
U2Nyb2xsYmFyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9y
U2Nyb2xsQ29ybmVyOwogCi0gICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fc2Nyb2xsaW5nTGF5
ZXI7IC8vIE9ubHkgdXNlZCBpZiB0aGUgbGF5ZXIgaXMgdXNpbmcgY29tcG9zaXRlZCBzY3JvbGxp
bmcuCi0gICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fc2Nyb2xsaW5nQ29udGVudHNMYXllcjsg
Ly8gT25seSB1c2VkIGlmIHRoZSBsYXllciBpcyB1c2luZyBjb21wb3NpdGVkIHNjcm9sbGluZy4K
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9zY3JvbGxpbmdMYXllcjsgLy8g
T25seSB1c2VkIGlmIHRoZSBsYXllciBpcyB1c2luZyBjb21wb3NpdGVkIHNjcm9sbGluZy4KKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9zY3JvbGxpbmdDb250ZW50c0xheWVy
OyAvLyBPbmx5IHVzZWQgaWYgdGhlIGxheWVyIGlzIHVzaW5nIGNvbXBvc2l0ZWQgc2Nyb2xsaW5n
LgogCiAgICAgdWludDY0X3QgbV9zY3JvbGxMYXllcklEOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IGYwNGQwNTU0NzAx
Y2RlYTBkNjQwYWRhZjdjYzNkMjhhZjA1Y2NmZjAuLmNhZjFjMDFhYzU1MTE0ZGM2YzI4YzQ0MWQy
MTgwYWZhMjNjNzcxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0xNzExLDEwICsxNzExLDEwIEBAIHZvaWQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVSb290TGF5ZXJQb3NpdGlvbigpCiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICB1cGRhdGVMYXllckZvclRvcE92ZXJoYW5nQXJlYShtX2xheWVyRm9yVG9wT3Zl
cmhhbmdBcmVhKTsKLSAgICB1cGRhdGVMYXllckZvckJvdHRvbU92ZXJoYW5nQXJlYShtX2xheWVy
Rm9yQm90dG9tT3ZlcmhhbmdBcmVhKTsKLSAgICB1cGRhdGVMYXllckZvckhlYWRlcihtX2xheWVy
Rm9ySGVhZGVyKTsKLSAgICB1cGRhdGVMYXllckZvckZvb3RlcihtX2xheWVyRm9yRm9vdGVyKTsK
KyAgICB1cGRhdGVMYXllckZvclRvcE92ZXJoYW5nQXJlYShtX2xheWVyRm9yVG9wT3ZlcmhhbmdB
cmVhICE9IG51bGxwdHIpOworICAgIHVwZGF0ZUxheWVyRm9yQm90dG9tT3ZlcmhhbmdBcmVhKG1f
bGF5ZXJGb3JCb3R0b21PdmVyaGFuZ0FyZWEgIT0gbnVsbHB0cik7CisgICAgdXBkYXRlTGF5ZXJG
b3JIZWFkZXIobV9sYXllckZvckhlYWRlciAhPSBudWxscHRyKTsKKyAgICB1cGRhdGVMYXllckZv
ckZvb3RlcihtX2xheWVyRm9yRm9vdGVyICE9IG51bGxwdHIpOwogI2VuZGlmCiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCBj
MmYzZDA3NjA2NWVmOGU0ZWFiZGI3Y2FkMTg5ZDE1MTM0N2ZlMGE3Li4wMGI2OWY2NDkzOGY5MTgw
ZTQwZDhmMTZmY2VkZmRkNGRhNTcyNTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC00MTAsNyArNDEwLDcgQEAgcHJpdmF0ZToK
IAogcHJpdmF0ZToKICAgICBSZW5kZXJWaWV3JiBtX3JlbmRlclZpZXc7Ci0gICAgT3duUHRyPEdy
YXBoaWNzTGF5ZXI+IG1fcm9vdENvbnRlbnRMYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3Jh
cGhpY3NMYXllcj4gbV9yb290Q29udGVudExheWVyOwogICAgIFRpbWVyPFJlbmRlckxheWVyQ29t
cG9zaXRvcj4gbV91cGRhdGVDb21wb3NpdGluZ0xheWVyc1RpbWVyOwogCiAgICAgYm9vbCBtX2hh
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmc7CkBAIC00MzksMjYgKzQzOSwyNiBAQCBwcml2YXRlOgog
ICAgIFJvb3RMYXllckF0dGFjaG1lbnQgbV9yb290TGF5ZXJBdHRhY2htZW50OwogCiAgICAgLy8g
RW5jbG9zaW5nIGNsaXBwaW5nIGxheWVyIGZvciBpZnJhbWUgY29udGVudAotICAgIE93blB0cjxH
cmFwaGljc0xheWVyPiBtX2NsaXBMYXllcjsKLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9z
Y3JvbGxMYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9jbGlwTGF5
ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fc2Nyb2xsTGF5ZXI7CiAK
ICAgICBIYXNoU2V0PFJlbmRlckxheWVyKj4gbV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzOwog
ICAgIEhhc2hTZXQ8UmVuZGVyTGF5ZXIqPiBtX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnNOZWVk
aW5nVXBkYXRlOwogCiAgICAgLy8gRW5jbG9zaW5nIGxheWVyIGZvciBvdmVyZmxvdyBjb250cm9s
cyBhbmQgdGhlIGNsaXBwaW5nIGxheWVyCi0gICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fb3Zl
cmZsb3dDb250cm9sc0hvc3RMYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXll
cj4gbV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVyOwogCiAgICAgLy8gTGF5ZXJzIGZvciBvdmVy
ZmxvdyBjb250cm9scwotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9ySG9yaXpv
bnRhbFNjcm9sbGJhcjsKLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvclZlcnRp
Y2FsU2Nyb2xsYmFyOwotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9yU2Nyb2xs
Q29ybmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9ySG9y
aXpvbnRhbFNjcm9sbGJhcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9s
YXllckZvclZlcnRpY2FsU2Nyb2xsYmFyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xh
eWVyPiBtX2xheWVyRm9yU2Nyb2xsQ29ybmVyOwogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykK
LSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvck92ZXJoYW5nQXJlYXM7Ci0gICAg
T3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fY29udGVudFNoYWRvd0xheWVyOwotICAgIE93blB0cjxH
cmFwaGljc0xheWVyPiBtX2xheWVyRm9yVG9wT3ZlcmhhbmdBcmVhOwotICAgIE93blB0cjxHcmFw
aGljc0xheWVyPiBtX2xheWVyRm9yQm90dG9tT3ZlcmhhbmdBcmVhOwotICAgIE93blB0cjxHcmFw
aGljc0xheWVyPiBtX2xheWVyRm9ySGVhZGVyOwotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBt
X2xheWVyRm9yRm9vdGVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xh
eWVyRm9yT3ZlcmhhbmdBcmVhczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4g
bV9jb250ZW50U2hhZG93TGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+
IG1fbGF5ZXJGb3JUb3BPdmVyaGFuZ0FyZWE7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNz
TGF5ZXI+IG1fbGF5ZXJGb3JCb3R0b21PdmVyaGFuZ0FyZWE7CisgICAgc3RkOjp1bmlxdWVfcHRy
PEdyYXBoaWNzTGF5ZXI+IG1fbGF5ZXJGb3JIZWFkZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdy
YXBoaWNzTGF5ZXI+IG1fbGF5ZXJGb3JGb290ZXI7CiAjZW5kaWYKIAogICAgIE93blB0cjxHcmFw
aGljc0xheWVyVXBkYXRlcj4gbV9sYXllclVwZGF0ZXI7IC8vIFVwZGF0ZXMgdGlsZWQgbGF5ZXIg
dmlzaWJsZSBhcmVhIHBlcmlvZGljYWxseSB3aGlsZSBhbmltYXRpb25zIGFyZSBydW5uaW5nLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmgKaW5kZXggZDI4NjlhNDhkNjg2MzVk
OTFlN2FhZDBlM2Q3MmZjYTU1YTU2MzY0OC4uMWViNzk2YjhkODU0OThhNTZhZDQ3ZjhhODE4NTAy
YTY2NjlmZjE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oCkBAIC01
Myw3ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgRXZhc19PYmplY3QqIG1fdmlldzsKIAogICAgIE93
blB0cjxUZXh0dXJlTWFwcGVyPiBtX3RleHR1cmVNYXBwZXI7Ci0gICAgT3duUHRyPEdyYXBoaWNz
TGF5ZXI+IG1fcm9vdEdyYXBoaWNzTGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNz
TGF5ZXI+IG1fcm9vdEdyYXBoaWNzTGF5ZXI7CiAgICAgVGV4dHVyZU1hcHBlckxheWVyKiBtX3Jv
b3RUZXh0dXJlTWFwcGVyTGF5ZXI7CiAKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1f
Y29udGV4dDNEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9U
ZXh0dXJlTWFwcGVyTGF5ZXJDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L1RleHR1cmVNYXBwZXJMYXllckNsaWVudFF0LmNwcAppbmRleCA0NjU4NTdmYWYwMjYx
Y2EwYjc2Y2Q1NDI3MzAwMmQ4ZDIwZGU4ZTY2Li4yMWMzOWI2NjQ0MTg5ZTE0Mzc5YTlkNzUxZTNk
MTIzY2Q2NDE5MTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L1RleHR1cmVNYXBwZXJMYXllckNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L1RleHR1cmVNYXBwZXJMYXllckNsaWVudFF0LmNwcApAQCAtNzcsNyArNzcs
NyBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllckNsaWVudFF0OjpzZXRSb290R3JhcGhpY3NMYXll
cihHcmFwaGljc0xheWVyKiBsYXllcikKICAgICAgICAgbV9yb290VGV4dHVyZU1hcHBlckxheWVy
LT5zZXRUZXh0dXJlTWFwcGVyKG1fdGV4dHVyZU1hcHBlci5nZXQoKSk7CiAgICAgICAgIHN5bmNS
b290TGF5ZXIoKTsKICAgICB9IGVsc2UgewotICAgICAgICBtX3Jvb3RHcmFwaGljc0xheWVyLmNs
ZWFyKCk7CisgICAgICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXIgPSBudWxscHRyOwogICAgICAgICBt
X3Jvb3RUZXh0dXJlTWFwcGVyTGF5ZXIgPSAwOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvVGV4dHVyZU1hcHBlckxheWVyQ2xpZW50UXQuaCBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvVGV4dHVyZU1hcHBlckxheWVyQ2xpZW50
UXQuaAppbmRleCAyZmZiNWYwYWE0NmI3ODY2MWE4NzcxYzU5NTVlOTYxMjlhOGQ1ZTQ0Li45YWM1
ZTdlM2FjOGU3MTJmNGRiYjQwODkzN2ZkMzQ5MDNkYzljNTA3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHR1cmVNYXBwZXJMYXllckNsaWVudFF0LmgKKysr
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9UZXh0dXJlTWFwcGVyTGF5ZXJDbGll
bnRRdC5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbmRlckNvbXBvc2l0
ZWRMYXllcnMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYgY2xpcCk7CiBwcml2YXRl
OgogICAgIFFXZWJGcmFtZUFkYXB0ZXIqIG1fZnJhbWU7Ci0gICAgT3duUHRyPEdyYXBoaWNzTGF5
ZXI+IG1fcm9vdEdyYXBoaWNzTGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5
ZXI+IG1fcm9vdEdyYXBoaWNzTGF5ZXI7CiAgICAgVGltZXI8VGV4dHVyZU1hcHBlckxheWVyQ2xp
ZW50UXQ+IG1fc3luY1RpbWVyOwogICAgIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllciogbV9y
b290VGV4dHVyZU1hcHBlckxheWVyOwogICAgIE93blB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
PiBtX3RleHR1cmVNYXBwZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1JlbW90ZUxheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
UmVtb3RlTGF5ZXJUcmVlSG9zdC5oCmluZGV4IGM0Yjk1MmFlMWMyYjc1OWM2NjUzMzE2NjBjYTc2
MmJiNWQzMDE4YWQuLmJmYmZjMWZiYmM2NjQ0ZGJkMmI3OTk5OGI5ZmE0OWE5ZTE2ZTVjZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9z
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9z
dC5oCkBAIC01Nyw3ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KiBtX3dlYlBh
Z2VQcm94eTsKIAogICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIG1fcm9vdExheWVyOwotICAg
IEhhc2hNYXA8dWludDY0X3QsIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPj4gbV9sYXll
cnM7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI+PiBtX2xheWVyczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCmlu
ZGV4IDU5MzRlMDcwZWEyZDY0ZWQ0ZGQ0ZTIyODY0ZjgzYzRjZWU5YTMzMTEuLjMyM2FiOGU3ZjA3
YWMyYmFhZDkyZTQwMTI3MjA0NTk4ZGU1YzJmZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KQEAgLTc2LDExICs3NiwxMSBA
QCB2b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmNvbW1pdChjb25zdCBSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiAKIEdyYXBoaWNzTGF5ZXIqIFJlbW90ZUxheWVyVHJl
ZUhvc3Q6OmdldE9yQ3JlYXRlTGF5ZXIodWludDY0X3QgbGF5ZXJJRCkKIHsKLSAgICBhdXRvIGFk
ZFJlc3VsdCA9IG1fbGF5ZXJzLmFkZChsYXllcklELCBudWxscHRyKTsKLSAgICBpZiAoYWRkUmVz
dWx0LmlzTmV3RW50cnkpCi0gICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBHcmFw
aGljc0xheWVyOjpjcmVhdGUoMCwgdGhpcyk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNz
TGF5ZXI+JiBsYXllciA9IG1fbGF5ZXJzLmFkZChsYXllcklELCBudWxscHRyKS5pdGVyYXRvci0+
dmFsdWU7CisgICAgaWYgKCFsYXllcikKKyAgICAgICAgbGF5ZXIgPSBHcmFwaGljc0xheWVyOjpj
cmVhdGUoMCwgdGhpcyk7CiAKLSAgICByZXR1cm4gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5n
ZXQoKTsKKyAgICByZXR1cm4gbGF5ZXIuZ2V0KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9MYXll
clRyZWVIb3N0TWFjLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xh
eWVyVHJlZUhvc3RNYWMuaAppbmRleCAzNzQ3Y2I3YTAxM2FkYjA5OTVjNTk3NDczZWE4ODEyMzA3
ZWM4MGM2Li40NmJhMmQ3Y2E0MzhiMGZjNjdlNTRkYjZmMjhhYWY1NjhkNzg0YTg5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhvc3RN
YWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJl
ZUhvc3RNYWMuaApAQCAtOTIsOSArOTIsOSBAQCBwcml2YXRlOgogCiAgICAgTGF5ZXJUcmVlQ29u
dGV4dCBtX2xheWVyVHJlZUNvbnRleHQ7CiAKLSAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NM
YXllcj4gbV9yb290TGF5ZXI7Ci0gICAgT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1f
bm9uQ29tcG9zaXRlZENvbnRlbnRMYXllcjsKLSAgICB0eXBlZGVmIEhhc2hNYXA8UGFnZU92ZXJs
YXkqLCBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4+IFBhZ2VPdmVybGF5TGF5ZXJNYXA7
CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fcm9vdExheWVy
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX25vbkNvbXBv
c2l0ZWRDb250ZW50TGF5ZXI7CisgICAgdHlwZWRlZiBIYXNoTWFwPFBhZ2VPdmVybGF5Kiwgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+PiBQYWdlT3ZlcmxheUxheWVyTWFw
OwogICAgIFBhZ2VPdmVybGF5TGF5ZXJNYXAgbV9wYWdlT3ZlcmxheUxheWVyczsKIAogICAgIE93
blB0cjxMYXllckhvc3RpbmdDb250ZXh0PiBtX2xheWVySG9zdGluZ0NvbnRleHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhvc3RN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhv
c3RNYWMubW0KaW5kZXggMzkyNzE4YmQzZTI5M2JjMGIyOTdlZDQ4MzhjMzM2OWMwZjE3Njk1Ny4u
M2I3ODZmMGZmNzQ5OTEyMjZjZDc2YzE5ZDUwNDI5OWQ2OGI2MjU2YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9MYXllclRyZWVIb3N0TWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvTGF5ZXJUcmVlSG9zdE1h
Yy5tbQpAQCAtMjc0LDE1ICsyNzQsMTQgQEAgdm9pZCBMYXllclRyZWVIb3N0TWFjOjpub3RpZnlG
bHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKQogCiB2b2lkIExheWVy
VHJlZUhvc3RNYWM6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NM
YXllciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWlu
dGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKIHsKLSAgICBpZiAoZ3JhcGhpY3NM
YXllciA9PSBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXIpIHsKKyAgICBpZiAoZ3JhcGhpY3NM
YXllciA9PSBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXIuZ2V0KCkpIHsKICAgICAgICAgbV93
ZWJQYWdlLT5kcmF3UmVjdChncmFwaGljc0NvbnRleHQsIGNsaXBSZWN0KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIFBhZ2VPdmVybGF5TGF5ZXJNYXA6Oml0ZXJhdG9yIGVuZCA9IG1f
cGFnZU92ZXJsYXlMYXllcnMuZW5kKCk7Ci0gICAgZm9yIChQYWdlT3ZlcmxheUxheWVyTWFwOjpp
dGVyYXRvciBpdCA9IG1fcGFnZU92ZXJsYXlMYXllcnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KSB7Ci0gICAgICAgIGlmIChpdC0+dmFsdWUgPT0gZ3JhcGhpY3NMYXllcikgewotICAgICAgICAg
ICAgbV93ZWJQYWdlLT5kcmF3UGFnZU92ZXJsYXkoaXQtPmtleSwgZ3JhcGhpY3NDb250ZXh0LCBj
bGlwUmVjdCk7CisgICAgZm9yIChhdXRvJiBwYWdlT3ZlcmxheUxheWVyIDogbV9wYWdlT3Zlcmxh
eUxheWVycykgeworICAgICAgICBpZiAocGFnZU92ZXJsYXlMYXllci52YWx1ZS5nZXQoKSA9PSBn
cmFwaGljc0xheWVyKSB7CisgICAgICAgICAgICBtX3dlYlBhZ2UtPmRyYXdQYWdlT3ZlcmxheShw
YWdlT3ZlcmxheUxheWVyLmtleSwgZ3JhcGhpY3NDb250ZXh0LCBjbGlwUmVjdCk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KQEAgLTM4NSw3ICszODQsNyBAQCBib29sIExh
eWVyVHJlZUhvc3RNYWM6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCiAKIHZvaWQgTGF5ZXJU
cmVlSG9zdE1hYzo6Y3JlYXRlUGFnZU92ZXJsYXlMYXllcihQYWdlT3ZlcmxheSogcGFnZU92ZXJs
YXkpCiB7Ci0gICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IGxheWVyID0gR3JhcGhpY3NMYXllcjo6
Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksIHRoaXMpOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxHcmFwaGljc0xheWVyPiBsYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xh
eWVyRmFjdG9yeSgpLCB0aGlzKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgbGF5ZXItPnNldE5hbWUo
IkxheWVyVHJlZUhvc3QgcGFnZSBvdmVybGF5IGNvbnRlbnQiKTsKICNlbmRpZgpAQCAtMzk4LDEy
ICszOTcsMTIgQEAgdm9pZCBMYXllclRyZWVIb3N0TWFjOjpjcmVhdGVQYWdlT3ZlcmxheUxheWVy
KFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSkKIAogICAgIG1fcm9vdExheWVyLT5hZGRDaGlsZChs
YXllci5nZXQoKSk7CiAKLSAgICBtX3BhZ2VPdmVybGF5TGF5ZXJzLmFkZChwYWdlT3ZlcmxheSwg
bGF5ZXIucmVsZWFzZSgpKTsKKyAgICBtX3BhZ2VPdmVybGF5TGF5ZXJzLmFkZChwYWdlT3Zlcmxh
eSwgc3RkOjptb3ZlKGxheWVyKSk7CiB9CiAKIHZvaWQgTGF5ZXJUcmVlSG9zdE1hYzo6ZGVzdHJv
eVBhZ2VPdmVybGF5TGF5ZXIoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5KQogewotICAgIE93blB0
cjxHcmFwaGljc0xheWVyPiBsYXllciA9IG1fcGFnZU92ZXJsYXlMYXllcnMudGFrZShwYWdlT3Zl
cmxheSk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGxheWVyID0gbV9wYWdl
T3ZlcmxheUxheWVycy50YWtlKHBhZ2VPdmVybGF5KTsKICAgICBBU1NFUlQobGF5ZXIpOwogCiAg
ICAgbGF5ZXItPnJlbW92ZUZyb21QYXJlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVHcmFwaGljc0xheWVyLmgKaW5kZXgg
YzY1Y2Q2NWQzZGRhOTRkZDM3NDQ1ZWZkODM4Y2QwOTE3YmY1NTM5Ny4uMWJjMzkyNmI2YmNmZjZm
MDY2Y2Q0MzhiZTQ3YjYxZGZkZDU3ODgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVHcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVHcmFwaGljc0xheWVyLmgKQEAgLTM0
LDE0ICszNCwxMiBAQCBjbGFzcyBSZW1vdGVMYXllclRyZWVDb250ZXh0OwogCiBjbGFzcyBSZW1v
dGVHcmFwaGljc0xheWVyIDogcHVibGljIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IGNyZWF0ZShX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50KiwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCopOwor
ICAgIFJlbW90ZUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudCosIFJl
bW90ZUxheWVyVHJlZUNvbnRleHQqKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVHcmFwaGljc0xheWVy
KCk7CiAKICAgICB1aW50NjRfdCBsYXllcklEKCkgY29uc3QgeyByZXR1cm4gbV9sYXllcklEOyB9
CiAKIHByaXZhdGU6Ci0gICAgUmVtb3RlR3JhcGhpY3NMYXllcihXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ2xpZW50KiwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCopOwotCiAgICAgLy8gV2ViQ29yZTo6
R3JhcGhpY3NMYXllcgogICAgIHZpcnR1YWwgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYpIE9W
RVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1JlbW90ZUdyYXBoaWNzTGF5ZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1JlbW90ZUdyYXBoaWNzTGF5ZXIubW0KaW5kZXggZWMyMDFjMmJmY2Q4MTE2ZGEz
NTRkY2QwMDE0NWExNDUzYTM0Mjg1NS4uMDQzNjc1ZGQyYzI0YjczNWU1MWU1MTA0OGNjZjJkNDZi
NmY1ZDcwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9SZW1vdGVHcmFwaGljc0xheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlR3JhcGhpY3NMYXllci5tbQpAQCAtNDIsMTEgKzQyLDYgQEAgc3Rh
dGljIHVpbnQ2NF90IGdlbmVyYXRlTGF5ZXJJRCgpCiAgICAgcmV0dXJuICsrbGF5ZXJJRDsKIH0K
IAotUGFzc093blB0cjxHcmFwaGljc0xheWVyPiBSZW1vdGVHcmFwaGljc0xheWVyOjpjcmVhdGUo
R3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50LCBSZW1vdGVMYXllclRyZWVDb250ZXh0KiBjb250
ZXh0KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUmVtb3RlR3JhcGhpY3NMYXllcihjbGll
bnQsIGNvbnRleHQpKTsKLX0KLQogUmVtb3RlR3JhcGhpY3NMYXllcjo6UmVtb3RlR3JhcGhpY3NM
YXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQq
IGNvbnRleHQpCiAgICAgOiBHcmFwaGljc0xheWVyKGNsaWVudCkKICAgICAsIG1fbGF5ZXJJRChn
ZW5lcmF0ZUxheWVySUQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmgKaW5kZXggZjVkNzk3
M2ZkYmY0MzA0OGZmOWEzMDE5NjE4Zjc0NWYwOGFhOWI5OC4uNzdhMDk1NGJiYjAzMzFiZmY2OThh
MDBiOTE4ZThiYzgyNDkyNDM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmgKQEAgLTUy
LDcgKzUyLDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBSZW1vdGVMYXllclRyZWVDb250ZXh0
KFdlYlBhZ2UqKTsKIAogICAgIC8vIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5Ci0gICAg
dmlydHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNz
TGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudCopIE9WRVJSSURFOworICAgIHZpcnR1
YWwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNz
TGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudCopIE9WRVJSSURFOwogCiAgICAgdm9p
ZCBsYXllckZsdXNoVGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxSZW1vdGVMYXllclRyZWVDb250
ZXh0PiopOwogICAgIHZvaWQgZmx1c2hMYXllcnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4
dC5tbQppbmRleCBiODY0NTQwNTU4NGM3MDIwNDhiZjc0N2I3NTE3Yjg1NDlhMzM1OGI2Li44OTkz
ZGNiOTA1YmRkNjI4NTE2ZGZkNmRmMTY5ZmI5NmE2NjlmNGRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0K
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRy
ZWVDb250ZXh0Lm1tCkBAIC04Niw5ICs4Niw5IEBAIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
JiBSZW1vdGVMYXllclRyZWVDb250ZXh0OjpjdXJyZW50VHJhbnNhY3Rpb24oKQogICAgIHJldHVy
biAqbV9jdXJyZW50VHJhbnNhY3Rpb247CiB9CiAKLVBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4g
UmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6Y3JlYXRlR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVy
Q2xpZW50KiBjbGllbnQpCitzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gUmVtb3RlTGF5
ZXJUcmVlQ29udGV4dDo6Y3JlYXRlR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBj
bGllbnQpCiB7Ci0gICAgcmV0dXJuIFJlbW90ZUdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShjbGllbnQs
IHRoaXMpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFJlbW90ZUdyYXBoaWNzTGF5ZXI+
KGNsaWVudCwgdGhpcyk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6bGF5ZXJG
bHVzaFRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8UmVtb3RlTGF5ZXJUcmVlQ29udGV4dD4qKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCmluZGV4IDlmOTJiMGVkMzdj
ZGIxYmM1NzQ3MmNmYjVmZjQxZjNmMTEyNWUyN2EuLjAzOGIzMmIwNjdhYjRjZjgzMWJlZjU5ZTNh
OGMwODU0MmJmYzcxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
LmgKQEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2YXRlOgogCiAgICAgUmV0YWluUHRyPENBTGF5ZXI+
IG1fZGVidWdJbmZvTGF5ZXI7CiAKLSAgICB0eXBlZGVmIEhhc2hNYXA8UGFnZU92ZXJsYXkqLCBP
d25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4+IFBhZ2VPdmVybGF5TGF5ZXJNYXA7CisgICAg
dHlwZWRlZiBIYXNoTWFwPFBhZ2VPdmVybGF5Kiwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXI+PiBQYWdlT3ZlcmxheUxheWVyTWFwOwogICAgIFBhZ2VPdmVybGF5TGF5ZXJN
YXAgbV9wYWdlT3ZlcmxheUxheWVyczsKICAgICBtdXRhYmxlIEhhc2hNYXA8Y29uc3QgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciosIFJldGFpblB0cjxDQUxheWVyPj4gbV9wYWdlT3ZlcmxheVBsYXRm
b3JtTGF5ZXJzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQpp
bmRleCA0NmIxMDQ5OWU4NmMyODdkYTg0ODBiNmUzNzM5NTYzZjMyNDU1Zjk0Li43MjA5MjlmYzRl
NzhhNDE4Y2FhZjhjZDM4NDE2N2Q5NzExZTEwNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTM0NCw4ICszNDQsOCBAQCB2b2lkIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKQogCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpwYWludENvbnRlbnRz
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgZ3Jh
cGhpY3NDb250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYg
Y2xpcFJlY3QpCiB7Ci0gICAgZm9yIChQYWdlT3ZlcmxheUxheWVyTWFwOjppdGVyYXRvciBpdCA9
IG1fcGFnZU92ZXJsYXlMYXllcnMuYmVnaW4oKSwgZW5kID0gbV9wYWdlT3ZlcmxheUxheWVycy5l
bmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIGlmIChpdC0+dmFsdWUgPT0gZ3JhcGhp
Y3NMYXllcikgeworICAgIGZvciAoYXV0byBpdCA9IG1fcGFnZU92ZXJsYXlMYXllcnMuYmVnaW4o
KSwgZW5kID0gbV9wYWdlT3ZlcmxheUxheWVycy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7Cisg
ICAgICAgIGlmIChpdC0+dmFsdWUuZ2V0KCkgPT0gZ3JhcGhpY3NMYXllcikgewogICAgICAgICAg
ICAgbV93ZWJQYWdlLT5kcmF3UGFnZU92ZXJsYXkoaXQtPmtleSwgZ3JhcGhpY3NDb250ZXh0LCBj
bGlwUmVjdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNjEzLDcgKzYxMyw3
IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldFJvb3RDb21wb3NpdGlu
Z0xheWVyKENBTGF5ZXIgKmxheWVyKQogCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpjcmVhdGVQYWdlT3ZlcmxheUxheWVyKFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSkKIHsK
LSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUo
Z3JhcGhpY3NMYXllckZhY3RvcnkoKSwgdGhpcyk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBo
aWNzTGF5ZXI+IGxheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0
b3J5KCksIHRoaXMpOwogI2lmbmRlZiBOREVCVUcKICAgICBsYXllci0+c2V0TmFtZSgicGFnZSBv
dmVybGF5IGNvbnRlbnQiKTsKICNlbmRpZgpAQCAtNjM2LDEyICs2MzYsMTIgQEAgdm9pZCBUaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Y3JlYXRlUGFnZU92ZXJsYXlMYXllcihQYWdlT3Zl
cmxheSogcGFnZU92ZXIKIAogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiAKLSAgICBtX3Bh
Z2VPdmVybGF5TGF5ZXJzLmFkZChwYWdlT3ZlcmxheSwgbGF5ZXIucmVsZWFzZSgpKTsKKyAgICBt
X3BhZ2VPdmVybGF5TGF5ZXJzLmFkZChwYWdlT3ZlcmxheSwgc3RkOjptb3ZlKGxheWVyKSk7CiB9
CiAKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmRlc3Ryb3lQYWdlT3Zlcmxh
eUxheWVyKFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSkKIHsKLSAgICBPd25QdHI8R3JhcGhpY3NM
YXllcj4gbGF5ZXIgPSBtX3BhZ2VPdmVybGF5TGF5ZXJzLnRha2UocGFnZU92ZXJsYXkpOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBsYXllciA9IG1fcGFnZU92ZXJsYXlMYXll
cnMudGFrZShwYWdlT3ZlcmxheSk7CiAgICAgQVNTRVJUKGxheWVyKTsKIAogICAgIFtDQVRyYW5z
YWN0aW9uIGJlZ2luXTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212826</attachid>
            <date>2013-09-27 11:04:37 -0700</date>
            <delta_ts>2013-09-27 11:31:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122020-20130927110436.patch</filename>
            <type>text/plain</type>
            <size>33459</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTlmMjI4YjgzODZkNzFh
MmY1YTNmZGJkMDQ0MmMyMTBhNzZjM2UwNy4uOTRjOWQzMWI0YWY3MTQ1ZGZlZDBhYTNkYzYwNWFh
NTg3NTE0OWQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTA5LTI3ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6dW5p
cXVlX3B0ciBmb3IgR3JhcGhpY3NMYXllciBjcmVhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMDIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckZhY3Rvcnku
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVHcmFwaGljc0xh
eWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29t
cG9zaXRpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVH
cmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBk
YXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJCYWNraW5nOjpwYWludEludG9MYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpo
YXNTY3JvbGxpbmdMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZVJvb3RMYXllclBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmg6CisKIDIwMTMtMDktMjYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgog
CiAgICAgICAgIHJlbmFtZSBLVVJMIHRvIFVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDY2Zjk4NWRkODU0OTgx
NTQ2MWFlMzk1NTlkYzU0MGZlYjZkNDEzNWMuLjc2YzY4NGFiNmIzOTk3NTE5ZjI4Y2Q2OWI1YmJh
MjQ1NzllMzdjZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wOS0yNyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBzdGQ6OnVu
aXF1ZV9wdHIgZm9yIEdyYXBoaWNzTGF5ZXIgY3JlYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjAyMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRy
ZWVIb3N0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1t
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpnZXRPckNyZWF0ZUxheWVy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhvc3RNYWMuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhvc3RNYWMubW06Cisg
ICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RNYWM6OnBhaW50Q29udGVudHMpOgorICAgICAg
ICAoV2ViS2l0OjpMYXllclRyZWVIb3N0TWFjOjpjcmVhdGVQYWdlT3ZlcmxheUxheWVyKToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdE1hYzo6ZGVzdHJveVBhZ2VPdmVybGF5TGF5ZXIp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlR3JhcGhpY3NMYXllci5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlR3JhcGhpY3NMYXllci5t
bToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRl
eHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNv
bnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmNyZWF0
ZUdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6cGFpbnRDb250ZW50cyk6CisgICAgICAgIChX
ZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpjcmVhdGVQYWdlT3ZlcmxheUxh
eWVyKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmRl
c3Ryb3lQYWdlT3ZlcmxheUxheWVyKToKKwogMjAxMy0wOS0yNiAgRGFyaW4gQWRsZXIgIDxkYXJp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgcmVuYW1lIEtVUkwgdG8gVVJMCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggMTQyOWRjMjNl
YjVhMWJmYTE2ZGYxMzhhZTg3Yjk4OWI0YTU0M2JjNy4uZWJhNDNkZDRlYjJjMmRhYjY1ZThkYjNm
ZDViZWU0ZjcwY2Y2NTI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtMjI0LDcgKzIyNCw3IEBAIHByb3RlY3RlZDoKIGNsYXNz
IEdyYXBoaWNzTGF5ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdyYXBoaWNzTGF5ZXIp
OyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0
cjxHcmFwaGljc0xheWVyPiBjcmVhdGUoR3JhcGhpY3NMYXllckZhY3RvcnkqLCBHcmFwaGljc0xh
eWVyQ2xpZW50Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBj
cmVhdGUoR3JhcGhpY3NMYXllckZhY3RvcnkqLCBHcmFwaGljc0xheWVyQ2xpZW50Kik7CiAgICAg
CiAgICAgdmlydHVhbCB+R3JhcGhpY3NMYXllcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFjdG9yeS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckZhY3RvcnkuaAppbmRleCBjNzQ3
YmI4YTY3NzNkNDA4NjNlYjY5Y2FiY2UyZjUyNDU1M2YwMDk2Li42NDEzZTkzY2I0MmExZjFhZWM1
MmY1ZmE5MDI1OTUwZjk5OGY5ODM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJGYWN0b3J5LmgKQEAgLTM5LDcgKzM5LDcgQEAg
Y2xhc3MgR3JhcGhpY3NMYXllckZhY3RvcnkgewogcHVibGljOgogICAgIHZpcnR1YWwgfkdyYXBo
aWNzTGF5ZXJGYWN0b3J5KCkgeyB9CiAKLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8R3JhcGhpY3NM
YXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KikgPSAwOworICAg
IHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5
ZXIoR3JhcGhpY3NMYXllckNsaWVudCopID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFw
aGljc0xheWVyQ0EuY3BwCmluZGV4IDAyNTFmYzNjYTY3MDJjYWZmYWZmODdiZWEwMTViOGQwYzI5
ODA0ZjcuLjIwMGMxMzQyZGE0ZjI5ZGM4YzEwMWQ2N2Y2ODc3MWU1MWVkMjhhZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXll
ckNBLmNwcApAQCAtMjczLDEwICsyNzMsMTAgQEAgc3RhdGljIGlubGluZSBib29sIHN1cHBvcnRz
QWNjZWxlcmF0ZWRGaWx0ZXJBbmltYXRpb25zKCkKIH0KICNlbmRpZgogCi1QYXNzT3duUHRyPEdy
YXBoaWNzTGF5ZXI+IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSog
ZmFjdG9yeSwgR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQorc3RkOjp1bmlxdWVfcHRyPEdy
YXBoaWNzTGF5ZXI+IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSog
ZmFjdG9yeSwgR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogewogICAgIGlmICghZmFjdG9y
eSkKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHcmFwaGljc0xheWVyQ0EoY2xpZW50KSk7
CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyYXBoaWNzTGF5ZXJDQT4oY2xpZW50
KTsKIAogICAgIHJldHVybiBmYWN0b3J5LT5jcmVhdGVHcmFwaGljc0xheWVyKGNsaWVudCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5oCmluZGV4IDk2ODEyNzM2NmY1ZjljZDZjMjYyMTljNDY4ZTRkMGI1YTllYmJmMmQu
LmYzZTRjOGIwZThiMTk5ZjI1MDYyOWQyMGM4MzM1YTY2NTcyOTI2YjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBA
IC0xOTQsNyArMTk0LDcgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIFN0cmluZyBDbG9uZUlEOyAv
LyBJZGVudGlmaWVyIGZvciBhIGdpdmVuIGNsb25lLCBiYXNlZCBvbiBvcmlnaW5hbC9yZXBsaWNh
IGJyYW5jaGluZyBkb3duIHRoZSB0cmVlLgogICAgIHN0YXRpYyBib29sIGlzUmVwbGljYXRlZFJv
b3RDbG9uZShjb25zdCBDbG9uZUlEJiBjbG9uZUlEKSB7IHJldHVybiBjbG9uZUlEWzBVXSAmIDE7
IH0KIAotICAgIHR5cGVkZWYgSGFzaE1hcDxDbG9uZUlELCBSZWZQdHI8UGxhdGZvcm1DQUxheWVy
PiA+IExheWVyTWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxDbG9uZUlELCBSZWZQdHI8UGxhdGZv
cm1DQUxheWVyPj4gTGF5ZXJNYXA7CiAgICAgTGF5ZXJNYXAqIHByaW1hcnlMYXllckNsb25lcygp
IGNvbnN0IHsgcmV0dXJuIG1fc3RydWN0dXJhbExheWVyLmdldCgpID8gbV9zdHJ1Y3R1cmFsTGF5
ZXJDbG9uZXMuZ2V0KCkgOiBtX2xheWVyQ2xvbmVzLmdldCgpOyB9CiAgICAgTGF5ZXJNYXAqIGFu
aW1hdGVkTGF5ZXJDbG9uZXMoQW5pbWF0ZWRQcm9wZXJ0eUlEKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggYzk5YzgwODBkN2ZmMzI5MTI4
ZTY3OTJhNzYwZWI2Mjk3OGE4YzcyYS4uZjlhMjA5ZGY5NGZlMGFmMjkwNGNhYjAzM2U3YWRmMjY4
MjQwOGMzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCkBA
IC0zNSwxMCArMzUsMTAgQEAgVGV4dHVyZU1hcHBlckxheWVyKiB0b1RleHR1cmVNYXBwZXJMYXll
cihHcmFwaGljc0xheWVyKiBsYXllcikKICAgICByZXR1cm4gbGF5ZXIgPyB0b0dyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyKGxheWVyKS0+bGF5ZXIoKSA6IDA7CiB9CiAKLVBhc3NPd25QdHI8R3Jh
cGhpY3NMYXllcj4gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBm
YWN0b3J5LCBHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCitzdGQ6OnVuaXF1ZV9wdHI8R3Jh
cGhpY3NMYXllcj4gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBm
YWN0b3J5LCBHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgaWYgKCFmYWN0b3J5
KQotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
KGNsaWVudCkpOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlcj4oY2xpZW50KTsKIAogICAgIHJldHVybiBmYWN0b3J5LT5jcmVhdGVHcmFw
aGljc0xheWVyKGNsaWVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29t
cG9zaXRpbmdDb29yZGluYXRvci5jcHAKaW5kZXggZDA5NjhiOWE1NGEyMGJkZDU2ZDgyNzJlZmNk
YmJkMjdiMzA1N2FjMC4uNDA3ODIxY2YxYzc3NWIyMGEwYzZmY2JjM2U2ZThmYjg5Zjk2ODEyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9y
LmNwcApAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6cGFp
bnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHCiAgICAgbV9j
bGllbnQtPnBhaW50TGF5ZXJDb250ZW50cyhncmFwaGljc0xheWVyLCBncmFwaGljc0NvbnRleHQs
IGNsaXBSZWN0KTsKIH0KIAotUGFzc093blB0cjxHcmFwaGljc0xheWVyPiBDb21wb3NpdGluZ0Nv
b3JkaW5hdG9yOjpjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVu
dCkKK3N0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBDb21wb3NpdGluZ0Nvb3JkaW5hdG9y
OjpjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKIHsKICAg
ICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbmV3IENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcihjbGllbnQpOwogICAgIGxheWVyLT5zZXRDb29yZGluYXRvcih0aGlzKTsKQEAgLTI3
Miw3ICsyNzIsNyBAQCBQYXNzT3duUHRyPEdyYXBoaWNzTGF5ZXI+IENvbXBvc2l0aW5nQ29vcmRp
bmF0b3I6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYQogICAgIG1fc3RhdGUubGF5ZXJz
VG9DcmVhdGUuYXBwZW5kKGxheWVyLT5pZCgpKTsKICAgICBsYXllci0+c2V0TmVlZHNWaXNpYmxl
UmVjdEFkanVzdG1lbnQoKTsKICAgICBtX2NsaWVudC0+bm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwot
ICAgIHJldHVybiBhZG9wdFB0cihsYXllcik7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxH
cmFwaGljc0xheWVyPihsYXllcik7CiB9CiAKIGZsb2F0IENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6
OmRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29tcG9zaXRpbmdDb29yZGluYXRvci5oCmluZGV4IGZkNDFjYjg3MzI4NTJkMDMyZTIyZWY1MmEx
NGM4ZTQ4Nzg2ZjY1N2IuLjU4M2E3YzdlNmY2MDVkYzVhMjZlOTlmYzJhOTBjN2YxY2ZmYjNkMjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3Iu
aApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVVw
ZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQpIE9WRVJSSURFOwogCiAgICAgLy8gR3JhcGhpY3NM
YXllckZhY3RvcnkKLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4gY3JlYXRl
R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihHcmFw
aGljc0xheWVyQ2xpZW50KikgT1ZFUlJJREU7CiAKICAgICB2b2lkIGluaXRpYWxpemVSb290Q29t
cG9zaXRpbmdMYXllcklmTmVlZGVkKCk7CiAgICAgdm9pZCBmbHVzaFBlbmRpbmdJbWFnZUJhY2tp
bmdDaGFuZ2VzKCk7CkBAIC0xMzUsNyArMTM1LDcgQEAgcHJpdmF0ZToKICAgICBQYWdlKiBtX3Bh
Z2U7CiAgICAgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Q2xpZW50KiBtX2NsaWVudDsKIAotICAg
IE93blB0cjxHcmFwaGljc0xheWVyPiBtX3Jvb3RMYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
R3JhcGhpY3NMYXllcj4gbV9yb290TGF5ZXI7CiAgICAgR3JhcGhpY3NMYXllciogbV9yb290Q29t
cG9zaXRpbmdMYXllcjsKIAogICAgIENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZSBtX3N0YXRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRl
eCA2MGYyNzAwYTEzOTQ3ZjI5MzE1MjI3OTI5NGVlOTM1OGNhNGQzOWU2Li42OGI5YjkyOTdmZjdm
YzQwYjIyMGYzNjFiNzZlN2ZjMmNkOGI3ZjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTYxLDEzICsxNjEsMTMgQEAgdm9pZCBS
ZW5kZXJMYXllckJhY2tpbmc6OndpbGxEZXN0cm95TGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciog
bGF5ZXIpCiAgICAgICAgIGNvbXBvc2l0b3IoKS5sYXllclRpbGVkQmFja2luZ1VzYWdlQ2hhbmdl
ZChsYXllciwgZmFsc2UpOwogfQogCi1QYXNzT3duUHRyPEdyYXBoaWNzTGF5ZXI+IFJlbmRlckxh
eWVyQmFja2luZzo6Y3JlYXRlR3JhcGhpY3NMYXllcihjb25zdCBTdHJpbmcmIG5hbWUpCitzdGQ6
OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gUmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVHcmFw
aGljc0xheWVyKGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICBHcmFwaGljc0xheWVyRmFjdG9y
eSogZ3JhcGhpY3NMYXllckZhY3RvcnkgPSAwOwogICAgIGlmIChQYWdlKiBwYWdlID0gcmVuZGVy
ZXIoKS5mcmFtZSgpLnBhZ2UoKSkKICAgICAgICAgZ3JhcGhpY3NMYXllckZhY3RvcnkgPSBwYWdl
LT5jaHJvbWUoKS5jbGllbnQoKS5ncmFwaGljc0xheWVyRmFjdG9yeSgpOwogCi0gICAgT3duUHRy
PEdyYXBoaWNzTGF5ZXI+IGdyYXBoaWNzTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3Jh
cGhpY3NMYXllckZhY3RvcnksIHRoaXMpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xh
eWVyPiBncmFwaGljc0xheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJG
YWN0b3J5LCB0aGlzKTsKIAogI2lmbmRlZiBOREVCVUcKICAgICBncmFwaGljc0xheWVyLT5zZXRO
YW1lKG5hbWUpOwpAQCAtMTgwLDcgKzE4MCw3IEBAIFBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4g
UmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVHcmFwaGljc0xheWVyKGNvbnN0IFN0cmluZyYKICAg
ICBncmFwaGljc0xheWVyLT5zZXRBY2NlbGVyYXRlc0RyYXdpbmcoY29tcG9zaXRvcigpLmFjY2Vs
ZXJhdGVkRHJhd2luZ0VuYWJsZWQoKSk7CiAjZW5kaWYgICAgCiAgICAgCi0gICAgcmV0dXJuIGdy
YXBoaWNzTGF5ZXIucmVsZWFzZSgpOworICAgIHJldHVybiBncmFwaGljc0xheWVyOwogfQogCiBi
b29sIFJlbmRlckxheWVyQmFja2luZzo6c2hvdWxkVXNlVGlsZWRCYWNraW5nKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKSBjb25zdApAQCAtNTIzLDcgKzUyMyw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNr
aW5nOjp1cGRhdGVHcmFwaGljc0xheWVyQ29uZmlndXJhdGlvbigpCiAgICAgICAgIHVwZGF0ZUlu
dGVybmFsSGllcmFyY2h5KCk7CiAKICAgICBpZiAoR3JhcGhpY3NMYXllciogZmxhdHRlbmluZ0xh
eWVyID0gdGlsZUNhY2hlRmxhdHRlbmluZ0xheWVyKCkpIHsKLSAgICAgICAgaWYgKGxheWVyQ29u
ZmlnQ2hhbmdlZCB8fCBmbGF0dGVuaW5nTGF5ZXItPnBhcmVudCgpICE9IG1fZ3JhcGhpY3NMYXll
cikKKyAgICAgICAgaWYgKGxheWVyQ29uZmlnQ2hhbmdlZCB8fCBmbGF0dGVuaW5nTGF5ZXItPnBh
cmVudCgpICE9IG1fZ3JhcGhpY3NMYXllci5nZXQoKSkKICAgICAgICAgICAgIG1fZ3JhcGhpY3NM
YXllci0+YWRkQ2hpbGQoZmxhdHRlbmluZ0xheWVyKTsKICAgICB9CiAKQEAgLTE5ODAsNyArMTk4
MCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludEludG9MYXllcihjb25zdCBHcmFw
aGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwCiAgICAgaWYgKHBhaW50aW5nUGhhc2UgJiBH
cmFwaGljc0xheWVyUGFpbnRDb21wb3NpdGVkU2Nyb2xsKQogICAgICAgICBwYWludEZsYWdzIHw9
IFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ1Njcm9sbGluZ1BoYXNl
OwogCi0gICAgaWYgKGdyYXBoaWNzTGF5ZXIgPT0gbV9iYWNrZ3JvdW5kTGF5ZXIpCisgICAgaWYg
KGdyYXBoaWNzTGF5ZXIgPT0gbV9iYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkpCiAgICAgICAgIHBhaW50
RmxhZ3MgfD0gKFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdSb290QmFja2dyb3VuZE9u
bHkgfCBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdGb3JlZ3JvdW5k
UGhhc2UpOyAvLyBOZWVkIFBhaW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5nRm9yZWdyb3VuZFBo
YXNlIHRvIHdhbGsgY2hpbGQgbGF5ZXJzLgogICAgIGVsc2UgaWYgKGNvbXBvc2l0b3IoKS5maXhl
ZFJvb3RCYWNrZ3JvdW5kTGF5ZXIoKSkKICAgICAgICAgcGFpbnRGbGFncyB8PSBSZW5kZXJMYXll
cjo6UGFpbnRMYXllclBhaW50aW5nU2tpcFJvb3RCYWNrZ3JvdW5kOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IDU2ZjE3YzBhNmZlMGNmMTcy
NWIxNTcxODdmOTBmYjAyOWExM2JiN2YuLjg1OThiYTRiYWZkYjQ3MzA1YTI4Njk0YWIyZGY5M2Y4
ZDdjNGIxY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmgKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogICAgIEdyYXBoaWNzTGF5ZXIqIGJhY2tn
cm91bmRMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZExheWVyLmdldCgpOyB9CiAg
ICAgYm9vbCBiYWNrZ3JvdW5kTGF5ZXJQYWludHNGaXhlZFJvb3RCYWNrZ3JvdW5kKCkgY29uc3Qg
eyByZXR1cm4gbV9iYWNrZ3JvdW5kTGF5ZXJQYWludHNGaXhlZFJvb3RCYWNrZ3JvdW5kOyB9CiAg
ICAgCi0gICAgYm9vbCBoYXNTY3JvbGxpbmdMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xs
aW5nTGF5ZXI7IH0KKyAgICBib29sIGhhc1Njcm9sbGluZ0xheWVyKCkgY29uc3QgeyByZXR1cm4g
bV9zY3JvbGxpbmdMYXllciAhPSBudWxscHRyOyB9CiAgICAgR3JhcGhpY3NMYXllciogc2Nyb2xs
aW5nTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGluZ0xheWVyLmdldCgpOyB9CiAgICAg
R3JhcGhpY3NMYXllciogc2Nyb2xsaW5nQ29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1f
c2Nyb2xsaW5nQ29udGVudHNMYXllci5nZXQoKTsgfQogCkBAIC0yMDgsNyArMjA4LDcgQEAgcHJp
dmF0ZToKICAgICAKICAgICB2b2lkIHdpbGxEZXN0cm95TGF5ZXIoY29uc3QgR3JhcGhpY3NMYXll
ciopOwogICAgIAotICAgIFBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NM
YXllcihjb25zdCBTdHJpbmcmKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4g
Y3JlYXRlR3JhcGhpY3NMYXllcihjb25zdCBTdHJpbmcmKTsKIAogICAgIFJlbmRlckxheWVyTW9k
ZWxPYmplY3QmIHJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gbV9vd25pbmdMYXllci0+cmVuZGVy
ZXIoKTsgfQogICAgIFJlbmRlckxheWVyQ29tcG9zaXRvciYgY29tcG9zaXRvcigpIGNvbnN0IHsg
cmV0dXJuIG1fb3duaW5nTGF5ZXItPmNvbXBvc2l0b3IoKTsgfQpAQCAtMjgzLDIwICsyODMsMjAg
QEAgcHJpdmF0ZToKIAogICAgIFJlbmRlckxheWVyKiBtX293bmluZ0xheWVyOwogCi0gICAgT3du
UHRyPEdyYXBoaWNzTGF5ZXI+IG1fYW5jZXN0b3JDbGlwcGluZ0xheWVyOyAvLyBPbmx5IHVzZWQg
aWYgd2UgYXJlIGNsaXBwZWQgYnkgYW4gYW5jZXN0b3Igd2hpY2ggaXMgbm90IGEgc3RhY2tpbmcg
Y29udGV4dC4KLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9jb250ZW50c0NvbnRhaW5tZW50
TGF5ZXI7IC8vIE9ubHkgdXNlZCBpZiB3ZSBoYXZlIGEgYmFja2dyb3VuZCBsYXllcjsgdGFrZXMg
dGhlIHRyYW5zZm9ybS4KLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9ncmFwaGljc0xheWVy
OwotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2ZvcmVncm91bmRMYXllcjsgLy8gT25seSB1
c2VkIGluIGNhc2VzIHdoZXJlIHdlIG5lZWQgdG8gZHJhdyB0aGUgZm9yZWdyb3VuZCBzZXBhcmF0
ZWx5LgotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2JhY2tncm91bmRMYXllcjsgLy8gT25s
eSB1c2VkIGluIGNhc2VzIHdoZXJlIHdlIG5lZWQgdG8gZHJhdyB0aGUgYmFja2dyb3VuZCBzZXBh
cmF0ZWx5LgotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2NoaWxkQ29udGFpbm1lbnRMYXll
cjsgLy8gT25seSB1c2VkIGlmIHdlIGhhdmUgY2xpcHBpbmcgb24gYSBzdGFja2luZyBjb250ZXh0
IHdpdGggY29tcG9zaXRpbmcgY2hpbGRyZW4sIG9yIGlmIHRoZSBsYXllciBoYXMgYSB0aWxlIGNh
Y2hlLgotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX21hc2tMYXllcjsgLy8gT25seSB1c2Vk
IGlmIHdlIGhhdmUgYSBtYXNrLgorICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBt
X2FuY2VzdG9yQ2xpcHBpbmdMYXllcjsgLy8gT25seSB1c2VkIGlmIHdlIGFyZSBjbGlwcGVkIGJ5
IGFuIGFuY2VzdG9yIHdoaWNoIGlzIG5vdCBhIHN0YWNraW5nIGNvbnRleHQuCisgICAgc3RkOjp1
bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fY29udGVudHNDb250YWlubWVudExheWVyOyAvLyBP
bmx5IHVzZWQgaWYgd2UgaGF2ZSBhIGJhY2tncm91bmQgbGF5ZXI7IHRha2VzIHRoZSB0cmFuc2Zv
cm0uCisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fZ3JhcGhpY3NMYXllcjsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9mb3JlZ3JvdW5kTGF5ZXI7IC8v
IE9ubHkgdXNlZCBpbiBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRvIGRyYXcgdGhlIGZvcmVncm91bmQg
c2VwYXJhdGVseS4KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9iYWNrZ3Jv
dW5kTGF5ZXI7IC8vIE9ubHkgdXNlZCBpbiBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRvIGRyYXcgdGhl
IGJhY2tncm91bmQgc2VwYXJhdGVseS4KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXll
cj4gbV9jaGlsZENvbnRhaW5tZW50TGF5ZXI7IC8vIE9ubHkgdXNlZCBpZiB3ZSBoYXZlIGNsaXBw
aW5nIG9uIGEgc3RhY2tpbmcgY29udGV4dCB3aXRoIGNvbXBvc2l0aW5nIGNoaWxkcmVuLCBvciBp
ZiB0aGUgbGF5ZXIgaGFzIGEgdGlsZSBjYWNoZS4KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhp
Y3NMYXllcj4gbV9tYXNrTGF5ZXI7IC8vIE9ubHkgdXNlZCBpZiB3ZSBoYXZlIGEgbWFzay4KIAot
ICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcjsK
LSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyOwot
ICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9yU2Nyb2xsQ29ybmVyOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJh
cjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvclZlcnRpY2Fs
U2Nyb2xsYmFyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9y
U2Nyb2xsQ29ybmVyOwogCi0gICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fc2Nyb2xsaW5nTGF5
ZXI7IC8vIE9ubHkgdXNlZCBpZiB0aGUgbGF5ZXIgaXMgdXNpbmcgY29tcG9zaXRlZCBzY3JvbGxp
bmcuCi0gICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fc2Nyb2xsaW5nQ29udGVudHNMYXllcjsg
Ly8gT25seSB1c2VkIGlmIHRoZSBsYXllciBpcyB1c2luZyBjb21wb3NpdGVkIHNjcm9sbGluZy4K
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9zY3JvbGxpbmdMYXllcjsgLy8g
T25seSB1c2VkIGlmIHRoZSBsYXllciBpcyB1c2luZyBjb21wb3NpdGVkIHNjcm9sbGluZy4KKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9zY3JvbGxpbmdDb250ZW50c0xheWVy
OyAvLyBPbmx5IHVzZWQgaWYgdGhlIGxheWVyIGlzIHVzaW5nIGNvbXBvc2l0ZWQgc2Nyb2xsaW5n
LgogCiAgICAgdWludDY0X3QgbV9zY3JvbGxMYXllcklEOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IGYwNGQwNTU0NzAx
Y2RlYTBkNjQwYWRhZjdjYzNkMjhhZjA1Y2NmZjAuLmNhZjFjMDFhYzU1MTE0ZGM2YzI4YzQ0MWQy
MTgwYWZhMjNjNzcxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0xNzExLDEwICsxNzExLDEwIEBAIHZvaWQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVSb290TGF5ZXJQb3NpdGlvbigpCiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICB1cGRhdGVMYXllckZvclRvcE92ZXJoYW5nQXJlYShtX2xheWVyRm9yVG9wT3Zl
cmhhbmdBcmVhKTsKLSAgICB1cGRhdGVMYXllckZvckJvdHRvbU92ZXJoYW5nQXJlYShtX2xheWVy
Rm9yQm90dG9tT3ZlcmhhbmdBcmVhKTsKLSAgICB1cGRhdGVMYXllckZvckhlYWRlcihtX2xheWVy
Rm9ySGVhZGVyKTsKLSAgICB1cGRhdGVMYXllckZvckZvb3RlcihtX2xheWVyRm9yRm9vdGVyKTsK
KyAgICB1cGRhdGVMYXllckZvclRvcE92ZXJoYW5nQXJlYShtX2xheWVyRm9yVG9wT3ZlcmhhbmdB
cmVhICE9IG51bGxwdHIpOworICAgIHVwZGF0ZUxheWVyRm9yQm90dG9tT3ZlcmhhbmdBcmVhKG1f
bGF5ZXJGb3JCb3R0b21PdmVyaGFuZ0FyZWEgIT0gbnVsbHB0cik7CisgICAgdXBkYXRlTGF5ZXJG
b3JIZWFkZXIobV9sYXllckZvckhlYWRlciAhPSBudWxscHRyKTsKKyAgICB1cGRhdGVMYXllckZv
ckZvb3RlcihtX2xheWVyRm9yRm9vdGVyICE9IG51bGxwdHIpOwogI2VuZGlmCiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCBj
MmYzZDA3NjA2NWVmOGU0ZWFiZGI3Y2FkMTg5ZDE1MTM0N2ZlMGE3Li4wMGI2OWY2NDkzOGY5MTgw
ZTQwZDhmMTZmY2VkZmRkNGRhNTcyNTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC00MTAsNyArNDEwLDcgQEAgcHJpdmF0ZToK
IAogcHJpdmF0ZToKICAgICBSZW5kZXJWaWV3JiBtX3JlbmRlclZpZXc7Ci0gICAgT3duUHRyPEdy
YXBoaWNzTGF5ZXI+IG1fcm9vdENvbnRlbnRMYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3Jh
cGhpY3NMYXllcj4gbV9yb290Q29udGVudExheWVyOwogICAgIFRpbWVyPFJlbmRlckxheWVyQ29t
cG9zaXRvcj4gbV91cGRhdGVDb21wb3NpdGluZ0xheWVyc1RpbWVyOwogCiAgICAgYm9vbCBtX2hh
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmc7CkBAIC00MzksMjYgKzQzOSwyNiBAQCBwcml2YXRlOgog
ICAgIFJvb3RMYXllckF0dGFjaG1lbnQgbV9yb290TGF5ZXJBdHRhY2htZW50OwogCiAgICAgLy8g
RW5jbG9zaW5nIGNsaXBwaW5nIGxheWVyIGZvciBpZnJhbWUgY29udGVudAotICAgIE93blB0cjxH
cmFwaGljc0xheWVyPiBtX2NsaXBMYXllcjsKLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9z
Y3JvbGxMYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9jbGlwTGF5
ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fc2Nyb2xsTGF5ZXI7CiAK
ICAgICBIYXNoU2V0PFJlbmRlckxheWVyKj4gbV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzOwog
ICAgIEhhc2hTZXQ8UmVuZGVyTGF5ZXIqPiBtX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnNOZWVk
aW5nVXBkYXRlOwogCiAgICAgLy8gRW5jbG9zaW5nIGxheWVyIGZvciBvdmVyZmxvdyBjb250cm9s
cyBhbmQgdGhlIGNsaXBwaW5nIGxheWVyCi0gICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fb3Zl
cmZsb3dDb250cm9sc0hvc3RMYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXll
cj4gbV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVyOwogCiAgICAgLy8gTGF5ZXJzIGZvciBvdmVy
ZmxvdyBjb250cm9scwotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9ySG9yaXpv
bnRhbFNjcm9sbGJhcjsKLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvclZlcnRp
Y2FsU2Nyb2xsYmFyOwotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9yU2Nyb2xs
Q29ybmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9ySG9y
aXpvbnRhbFNjcm9sbGJhcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9s
YXllckZvclZlcnRpY2FsU2Nyb2xsYmFyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xh
eWVyPiBtX2xheWVyRm9yU2Nyb2xsQ29ybmVyOwogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykK
LSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvck92ZXJoYW5nQXJlYXM7Ci0gICAg
T3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fY29udGVudFNoYWRvd0xheWVyOwotICAgIE93blB0cjxH
cmFwaGljc0xheWVyPiBtX2xheWVyRm9yVG9wT3ZlcmhhbmdBcmVhOwotICAgIE93blB0cjxHcmFw
aGljc0xheWVyPiBtX2xheWVyRm9yQm90dG9tT3ZlcmhhbmdBcmVhOwotICAgIE93blB0cjxHcmFw
aGljc0xheWVyPiBtX2xheWVyRm9ySGVhZGVyOwotICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBt
X2xheWVyRm9yRm9vdGVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xh
eWVyRm9yT3ZlcmhhbmdBcmVhczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4g
bV9jb250ZW50U2hhZG93TGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+
IG1fbGF5ZXJGb3JUb3BPdmVyaGFuZ0FyZWE7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNz
TGF5ZXI+IG1fbGF5ZXJGb3JCb3R0b21PdmVyaGFuZ0FyZWE7CisgICAgc3RkOjp1bmlxdWVfcHRy
PEdyYXBoaWNzTGF5ZXI+IG1fbGF5ZXJGb3JIZWFkZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdy
YXBoaWNzTGF5ZXI+IG1fbGF5ZXJGb3JGb290ZXI7CiAjZW5kaWYKIAogICAgIE93blB0cjxHcmFw
aGljc0xheWVyVXBkYXRlcj4gbV9sYXllclVwZGF0ZXI7IC8vIFVwZGF0ZXMgdGlsZWQgbGF5ZXIg
dmlzaWJsZSBhcmVhIHBlcmlvZGljYWxseSB3aGlsZSBhbmltYXRpb25zIGFyZSBydW5uaW5nLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuY3BwCmluZGV4IDBmMWY2YzkyODIy
NTRjMGFhNzI5ZTAxMmZjNjQ4MGNjYjIwNmY1NzQuLjczMmRkYzFhZmMzZTUxM2E1YjY4YmNkYjQw
MGU1ODRlZjQ2ODZkYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5j
cHAKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6
cmVuZGVyTGF5ZXJzKCkKIHZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmF0dGFj
aFJvb3RHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXIqIHJvb3RMYXllcikKIHsKICAgICBpZiAo
IXJvb3RMYXllcikgewotICAgICAgICBtX3Jvb3RHcmFwaGljc0xheWVyLmNsZWFyKCk7CisgICAg
ICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXIgPSBudWxscHRyOwogICAgICAgICBtX3Jvb3RUZXh0dXJl
TWFwcGVyTGF5ZXIgPSAwOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0RWZsLmgKaW5kZXggZDI4NjlhNDhkNjg2MzVkOTFlN2FhZDBlM2Q3MmZj
YTU1YTU2MzY0OC4uMWViNzk2YjhkODU0OThhNTZhZDQ3ZjhhODE4NTAyYTY2NjlmZjE4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oCkBAIC01Myw3ICs1Myw3IEBAIHBy
aXZhdGU6CiAgICAgRXZhc19PYmplY3QqIG1fdmlldzsKIAogICAgIE93blB0cjxUZXh0dXJlTWFw
cGVyPiBtX3RleHR1cmVNYXBwZXI7Ci0gICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fcm9vdEdy
YXBoaWNzTGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fcm9vdEdy
YXBoaWNzTGF5ZXI7CiAgICAgVGV4dHVyZU1hcHBlckxheWVyKiBtX3Jvb3RUZXh0dXJlTWFwcGVy
TGF5ZXI7CiAKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1fY29udGV4dDNEOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9UZXh0dXJlTWFwcGVyTGF5
ZXJDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHR1cmVN
YXBwZXJMYXllckNsaWVudFF0LmNwcAppbmRleCA0NjU4NTdmYWYwMjYxY2EwYjc2Y2Q1NDI3MzAw
MmQ4ZDIwZGU4ZTY2Li4yMWMzOWI2NjQ0MTg5ZTE0Mzc5YTlkNzUxZTNkMTIzY2Q2NDE5MTgyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHR1cmVNYXBwZXJM
YXllckNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1Rl
eHR1cmVNYXBwZXJMYXllckNsaWVudFF0LmNwcApAQCAtNzcsNyArNzcsNyBAQCB2b2lkIFRleHR1
cmVNYXBwZXJMYXllckNsaWVudFF0OjpzZXRSb290R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVy
KiBsYXllcikKICAgICAgICAgbV9yb290VGV4dHVyZU1hcHBlckxheWVyLT5zZXRUZXh0dXJlTWFw
cGVyKG1fdGV4dHVyZU1hcHBlci5nZXQoKSk7CiAgICAgICAgIHN5bmNSb290TGF5ZXIoKTsKICAg
ICB9IGVsc2UgewotICAgICAgICBtX3Jvb3RHcmFwaGljc0xheWVyLmNsZWFyKCk7CisgICAgICAg
IG1fcm9vdEdyYXBoaWNzTGF5ZXIgPSBudWxscHRyOwogICAgICAgICBtX3Jvb3RUZXh0dXJlTWFw
cGVyTGF5ZXIgPSAwOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvVGV4dHVyZU1hcHBlckxheWVyQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvVGV4dHVyZU1hcHBlckxheWVyQ2xpZW50UXQuaAppbmRleCAyZmZi
NWYwYWE0NmI3ODY2MWE4NzcxYzU5NTVlOTYxMjlhOGQ1ZTQ0Li45YWM1ZTdlM2FjOGU3MTJmNGRi
YjQwODkzN2ZkMzQ5MDNkYzljNTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L1RleHR1cmVNYXBwZXJMYXllckNsaWVudFF0LmgKKysrIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9UZXh0dXJlTWFwcGVyTGF5ZXJDbGllbnRRdC5oCkBAIC01MCw3
ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbmRlckNvbXBvc2l0ZWRMYXllcnMoR3JhcGhp
Y3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYgY2xpcCk7CiBwcml2YXRlOgogICAgIFFXZWJGcmFt
ZUFkYXB0ZXIqIG1fZnJhbWU7Ci0gICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fcm9vdEdyYXBo
aWNzTGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fcm9vdEdyYXBo
aWNzTGF5ZXI7CiAgICAgVGltZXI8VGV4dHVyZU1hcHBlckxheWVyQ2xpZW50UXQ+IG1fc3luY1Rp
bWVyOwogICAgIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllciogbV9yb290VGV4dHVyZU1hcHBl
ckxheWVyOwogICAgIE93blB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyPiBtX3RleHR1cmVNYXBw
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVy
VHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVl
SG9zdC5oCmluZGV4IGM0Yjk1MmFlMWMyYjc1OWM2NjUzMzE2NjBjYTc2MmJiNWQzMDE4YWQuLmJm
YmZjMWZiYmM2NjQ0ZGJkMmI3OTk5OGI5ZmE0OWE5ZTE2ZTVjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5oCkBAIC01Nyw3ICs1
Nyw3IEBAIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KiBtX3dlYlBhZ2VQcm94eTsKIAogICAg
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIG1fcm9vdExheWVyOwotICAgIEhhc2hNYXA8dWludDY0
X3QsIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPj4gbV9sYXllcnM7CisgICAgSGFzaE1h
cDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+PiBtX2xh
eWVyczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCmluZGV4IDU5MzRlMDcwZWEy
ZDY0ZWQ0ZGQ0ZTIyODY0ZjgzYzRjZWU5YTMzMTEuLjMyM2FiOGU3ZjA3YWMyYmFhZDkyZTQwMTI3
MjA0NTk4ZGU1YzJmZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
UmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1JlbW90ZUxheWVyVHJlZUhvc3QubW0KQEAgLTc2LDExICs3NiwxMSBAQCB2b2lkIFJlbW90ZUxh
eWVyVHJlZUhvc3Q6OmNvbW1pdChjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgdHJh
bnNhY3Rpb24pCiAKIEdyYXBoaWNzTGF5ZXIqIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmdldE9yQ3Jl
YXRlTGF5ZXIodWludDY0X3QgbGF5ZXJJRCkKIHsKLSAgICBhdXRvIGFkZFJlc3VsdCA9IG1fbGF5
ZXJzLmFkZChsYXllcklELCBudWxscHRyKTsKLSAgICBpZiAoYWRkUmVzdWx0LmlzTmV3RW50cnkp
Ci0gICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBHcmFwaGljc0xheWVyOjpjcmVh
dGUoMCwgdGhpcyk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+JiBsYXllciA9
IG1fbGF5ZXJzLmFkZChsYXllcklELCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CisgICAgaWYg
KCFsYXllcikKKyAgICAgICAgbGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoMCwgdGhpcyk7
CiAKLSAgICByZXR1cm4gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKKyAgICByZXR1
cm4gbGF5ZXIuZ2V0KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9MYXllclRyZWVIb3N0TWFjLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhvc3RNYWMu
aAppbmRleCAzNzQ3Y2I3YTAxM2FkYjA5OTVjNTk3NDczZWE4ODEyMzA3ZWM4MGM2Li40NmJhMmQ3
Y2E0MzhiMGZjNjdlNTRkYjZmMjhhYWY1NjhkNzg0YTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhvc3RNYWMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhvc3RNYWMuaApAQCAt
OTIsOSArOTIsOSBAQCBwcml2YXRlOgogCiAgICAgTGF5ZXJUcmVlQ29udGV4dCBtX2xheWVyVHJl
ZUNvbnRleHQ7CiAKLSAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9yb290TGF5
ZXI7Ci0gICAgT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fbm9uQ29tcG9zaXRlZENv
bnRlbnRMYXllcjsKLSAgICB0eXBlZGVmIEhhc2hNYXA8UGFnZU92ZXJsYXkqLCBPd25QdHI8V2Vi
Q29yZTo6R3JhcGhpY3NMYXllcj4+IFBhZ2VPdmVybGF5TGF5ZXJNYXA7CisgICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fcm9vdExheWVyOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5
ZXI7CisgICAgdHlwZWRlZiBIYXNoTWFwPFBhZ2VPdmVybGF5Kiwgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI+PiBQYWdlT3ZlcmxheUxheWVyTWFwOwogICAgIFBhZ2VPdmVy
bGF5TGF5ZXJNYXAgbV9wYWdlT3ZlcmxheUxheWVyczsKIAogICAgIE93blB0cjxMYXllckhvc3Rp
bmdDb250ZXh0PiBtX2xheWVySG9zdGluZ0NvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhvc3RNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhvc3RNYWMubW0KaW5kZXgg
MzkyNzE4YmQzZTI5M2JjMGIyOTdlZDQ4MzhjMzM2OWMwZjE3Njk1Ny4uM2I3ODZmMGZmNzQ5OTEy
MjZjZDc2YzE5ZDUwNDI5OWQ2OGI2MjU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9MYXllclRyZWVIb3N0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvTGF5ZXJUcmVlSG9zdE1hYy5tbQpAQCAtMjc0LDE1
ICsyNzQsMTQgQEAgdm9pZCBMYXllclRyZWVIb3N0TWFjOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKQogCiB2b2lkIExheWVyVHJlZUhvc3RNYWM6OnBh
aW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhpY3ND
b250ZXh0JiBncmFwaGljc0NvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25z
dCBJbnRSZWN0JiBjbGlwUmVjdCkKIHsKLSAgICBpZiAoZ3JhcGhpY3NMYXllciA9PSBtX25vbkNv
bXBvc2l0ZWRDb250ZW50TGF5ZXIpIHsKKyAgICBpZiAoZ3JhcGhpY3NMYXllciA9PSBtX25vbkNv
bXBvc2l0ZWRDb250ZW50TGF5ZXIuZ2V0KCkpIHsKICAgICAgICAgbV93ZWJQYWdlLT5kcmF3UmVj
dChncmFwaGljc0NvbnRleHQsIGNsaXBSZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIFBhZ2VPdmVybGF5TGF5ZXJNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fcGFnZU92ZXJsYXlMYXll
cnMuZW5kKCk7Ci0gICAgZm9yIChQYWdlT3ZlcmxheUxheWVyTWFwOjppdGVyYXRvciBpdCA9IG1f
cGFnZU92ZXJsYXlMYXllcnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIGlm
IChpdC0+dmFsdWUgPT0gZ3JhcGhpY3NMYXllcikgewotICAgICAgICAgICAgbV93ZWJQYWdlLT5k
cmF3UGFnZU92ZXJsYXkoaXQtPmtleSwgZ3JhcGhpY3NDb250ZXh0LCBjbGlwUmVjdCk7CisgICAg
Zm9yIChhdXRvJiBwYWdlT3ZlcmxheUxheWVyIDogbV9wYWdlT3ZlcmxheUxheWVycykgeworICAg
ICAgICBpZiAocGFnZU92ZXJsYXlMYXllci52YWx1ZS5nZXQoKSA9PSBncmFwaGljc0xheWVyKSB7
CisgICAgICAgICAgICBtX3dlYlBhZ2UtPmRyYXdQYWdlT3ZlcmxheShwYWdlT3ZlcmxheUxheWVy
LmtleSwgZ3JhcGhpY3NDb250ZXh0LCBjbGlwUmVjdCk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgIH0KQEAgLTM4NSw3ICszODQsNyBAQCBib29sIExheWVyVHJlZUhvc3RNYWM6
OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCiAKIHZvaWQgTGF5ZXJUcmVlSG9zdE1hYzo6Y3Jl
YXRlUGFnZU92ZXJsYXlMYXllcihQYWdlT3ZlcmxheSogcGFnZU92ZXJsYXkpCiB7Ci0gICAgT3du
UHRyPEdyYXBoaWNzTGF5ZXI+IGxheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNz
TGF5ZXJGYWN0b3J5KCksIHRoaXMpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVy
PiBsYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCB0
aGlzKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgbGF5ZXItPnNldE5hbWUoIkxheWVyVHJlZUhvc3Qg
cGFnZSBvdmVybGF5IGNvbnRlbnQiKTsKICNlbmRpZgpAQCAtMzk4LDEyICszOTcsMTIgQEAgdm9p
ZCBMYXllclRyZWVIb3N0TWFjOjpjcmVhdGVQYWdlT3ZlcmxheUxheWVyKFBhZ2VPdmVybGF5KiBw
YWdlT3ZlcmxheSkKIAogICAgIG1fcm9vdExheWVyLT5hZGRDaGlsZChsYXllci5nZXQoKSk7CiAK
LSAgICBtX3BhZ2VPdmVybGF5TGF5ZXJzLmFkZChwYWdlT3ZlcmxheSwgbGF5ZXIucmVsZWFzZSgp
KTsKKyAgICBtX3BhZ2VPdmVybGF5TGF5ZXJzLmFkZChwYWdlT3ZlcmxheSwgc3RkOjptb3ZlKGxh
eWVyKSk7CiB9CiAKIHZvaWQgTGF5ZXJUcmVlSG9zdE1hYzo6ZGVzdHJveVBhZ2VPdmVybGF5TGF5
ZXIoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5KQogewotICAgIE93blB0cjxHcmFwaGljc0xheWVy
PiBsYXllciA9IG1fcGFnZU92ZXJsYXlMYXllcnMudGFrZShwYWdlT3ZlcmxheSk7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGxheWVyID0gbV9wYWdlT3ZlcmxheUxheWVycy50
YWtlKHBhZ2VPdmVybGF5KTsKICAgICBBU1NFUlQobGF5ZXIpOwogCiAgICAgbGF5ZXItPnJlbW92
ZUZyb21QYXJlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUmVtb3RlR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9SZW1vdGVHcmFwaGljc0xheWVyLmgKaW5kZXggYzY1Y2Q2NWQzZGRhOTRk
ZDM3NDQ1ZWZkODM4Y2QwOTE3YmY1NTM5Ny4uMWJjMzkyNmI2YmNmZjZmMDY2Y2Q0MzhiZTQ3YjYx
ZGZkZDU3ODgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9SZW1vdGVHcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9SZW1vdGVHcmFwaGljc0xheWVyLmgKQEAgLTM0LDE0ICszNCwxMiBAQCBj
bGFzcyBSZW1vdGVMYXllclRyZWVDb250ZXh0OwogCiBjbGFzcyBSZW1vdGVHcmFwaGljc0xheWVy
IDogcHVibGljIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IGNyZWF0ZShXZWJDb3JlOjpHcmFwaGlj
c0xheWVyQ2xpZW50KiwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCopOworICAgIFJlbW90ZUdyYXBo
aWNzTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudCosIFJlbW90ZUxheWVyVHJlZUNv
bnRleHQqKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVHcmFwaGljc0xheWVyKCk7CiAKICAgICB1aW50
NjRfdCBsYXllcklEKCkgY29uc3QgeyByZXR1cm4gbV9sYXllcklEOyB9CiAKIHByaXZhdGU6Ci0g
ICAgUmVtb3RlR3JhcGhpY3NMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50KiwgUmVt
b3RlTGF5ZXJUcmVlQ29udGV4dCopOwotCiAgICAgLy8gV2ViQ29yZTo6R3JhcGhpY3NMYXllcgog
ICAgIHZpcnR1YWwgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUdyYXBo
aWNzTGF5ZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90
ZUdyYXBoaWNzTGF5ZXIubW0KaW5kZXggZWMyMDFjMmJmY2Q4MTE2ZGEzNTRkY2QwMDE0NWExNDUz
YTM0Mjg1NS4uMDQzNjc1ZGQyYzI0YjczNWU1MWU1MTA0OGNjZjJkNDZiNmY1ZDcwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVHcmFwaGlj
c0xheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVt
b3RlR3JhcGhpY3NMYXllci5tbQpAQCAtNDIsMTEgKzQyLDYgQEAgc3RhdGljIHVpbnQ2NF90IGdl
bmVyYXRlTGF5ZXJJRCgpCiAgICAgcmV0dXJuICsrbGF5ZXJJRDsKIH0KIAotUGFzc093blB0cjxH
cmFwaGljc0xheWVyPiBSZW1vdGVHcmFwaGljc0xheWVyOjpjcmVhdGUoR3JhcGhpY3NMYXllckNs
aWVudCogY2xpZW50LCBSZW1vdGVMYXllclRyZWVDb250ZXh0KiBjb250ZXh0KQotewotICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgUmVtb3RlR3JhcGhpY3NMYXllcihjbGllbnQsIGNvbnRleHQpKTsK
LX0KLQogUmVtb3RlR3JhcGhpY3NMYXllcjo6UmVtb3RlR3JhcGhpY3NMYXllcihHcmFwaGljc0xh
eWVyQ2xpZW50KiBjbGllbnQsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQqIGNvbnRleHQpCiAgICAg
OiBHcmFwaGljc0xheWVyKGNsaWVudCkKICAgICAsIG1fbGF5ZXJJRChnZW5lcmF0ZUxheWVySUQo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVt
b3RlTGF5ZXJUcmVlQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmgKaW5kZXggZjVkNzk3M2ZkYmY0MzA0OGZmOWEz
MDE5NjE4Zjc0NWYwOGFhOWI5OC4uNzdhMDk1NGJiYjAzMzFiZmY2OThhMDBiOTE4ZThiYzgyNDky
NDM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9S
ZW1vdGVMYXllclRyZWVDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJp
dmF0ZToKICAgICBleHBsaWNpdCBSZW1vdGVMYXllclRyZWVDb250ZXh0KFdlYlBhZ2UqKTsKIAog
ICAgIC8vIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5Ci0gICAgdmlydHVhbCBQYXNzT3du
UHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6
R3JhcGhpY3NMYXllckNsaWVudCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6
R3JhcGhpY3NMYXllckNsaWVudCopIE9WRVJSSURFOwogCiAgICAgdm9pZCBsYXllckZsdXNoVGlt
ZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxSZW1vdGVMYXllclRyZWVDb250ZXh0PiopOwogICAgIHZv
aWQgZmx1c2hMYXllcnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQppbmRleCBiODY0
NTQwNTU4NGM3MDIwNDhiZjc0N2I3NTE3Yjg1NDlhMzM1OGI2Li44OTkzZGNiOTA1YmRkNjI4NTE2
ZGZkNmRmMTY5ZmI5NmE2NjlmNGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCkBA
IC04Niw5ICs4Niw5IEBAIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiBSZW1vdGVMYXllclRy
ZWVDb250ZXh0OjpjdXJyZW50VHJhbnNhY3Rpb24oKQogICAgIHJldHVybiAqbV9jdXJyZW50VHJh
bnNhY3Rpb247CiB9CiAKLVBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4gUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dDo6Y3JlYXRlR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQp
CitzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6
Y3JlYXRlR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiB7Ci0gICAg
cmV0dXJuIFJlbW90ZUdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShjbGllbnQsIHRoaXMpOworICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPFJlbW90ZUdyYXBoaWNzTGF5ZXI+KGNsaWVudCwgdGhpcyk7
CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6bGF5ZXJGbHVzaFRpbWVyRmlyZWQo
V2ViQ29yZTo6VGltZXI8UmVtb3RlTGF5ZXJUcmVlQ29udGV4dD4qKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCmluZGV4IDlmOTJiMGVkMzdjZGIxYmM1NzQ3MmNmYjVm
ZjQxZjNmMTEyNWUyN2EuLjAzOGIzMmIwNjdhYjRjZjgzMWJlZjU5ZTNhOGMwODU0MmJmYzcxMjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKQEAgLTEyNyw3ICsx
MjcsNyBAQCBwcml2YXRlOgogCiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fZGVidWdJbmZvTGF5
ZXI7CiAKLSAgICB0eXBlZGVmIEhhc2hNYXA8UGFnZU92ZXJsYXkqLCBPd25QdHI8V2ViQ29yZTo6
R3JhcGhpY3NMYXllcj4+IFBhZ2VPdmVybGF5TGF5ZXJNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFw
PFBhZ2VPdmVybGF5Kiwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+PiBQ
YWdlT3ZlcmxheUxheWVyTWFwOwogICAgIFBhZ2VPdmVybGF5TGF5ZXJNYXAgbV9wYWdlT3Zlcmxh
eUxheWVyczsKICAgICBtdXRhYmxlIEhhc2hNYXA8Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciosIFJldGFpblB0cjxDQUxheWVyPj4gbV9wYWdlT3ZlcmxheVBsYXRmb3JtTGF5ZXJzOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQppbmRleCA0NmIxMDQ5OWU4
NmMyODdkYTg0ODBiNmUzNzM5NTYzZjMyNDU1Zjk0Li43MjA5MjlmYzRlNzhhNDE4Y2FhZjhjZDM4
NDE2N2Q5NzExZTEwNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWEubW0KQEAgLTM0NCw4ICszNDQsOCBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQogCiB2b2lkIFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBH
cmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpCiB7Ci0g
ICAgZm9yIChQYWdlT3ZlcmxheUxheWVyTWFwOjppdGVyYXRvciBpdCA9IG1fcGFnZU92ZXJsYXlM
YXllcnMuYmVnaW4oKSwgZW5kID0gbV9wYWdlT3ZlcmxheUxheWVycy5lbmQoKTsgaXQgIT0gZW5k
OyArK2l0KSB7Ci0gICAgICAgIGlmIChpdC0+dmFsdWUgPT0gZ3JhcGhpY3NMYXllcikgeworICAg
IGZvciAoYXV0byBpdCA9IG1fcGFnZU92ZXJsYXlMYXllcnMuYmVnaW4oKSwgZW5kID0gbV9wYWdl
T3ZlcmxheUxheWVycy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIGlmIChpdC0+
dmFsdWUuZ2V0KCkgPT0gZ3JhcGhpY3NMYXllcikgewogICAgICAgICAgICAgbV93ZWJQYWdlLT5k
cmF3UGFnZU92ZXJsYXkoaXQtPmtleSwgZ3JhcGhpY3NDb250ZXh0LCBjbGlwUmVjdCk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNjEzLDcgKzYxMyw3IEBAIHZvaWQgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKENBTGF5ZXIg
KmxheWVyKQogCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpjcmVhdGVQYWdl
T3ZlcmxheUxheWVyKFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSkKIHsKLSAgICBPd25QdHI8R3Jh
cGhpY3NMYXllcj4gbGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZh
Y3RvcnkoKSwgdGhpcyk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGxheWVy
ID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksIHRoaXMpOwog
I2lmbmRlZiBOREVCVUcKICAgICBsYXllci0+c2V0TmFtZSgicGFnZSBvdmVybGF5IGNvbnRlbnQi
KTsKICNlbmRpZgpAQCAtNjM2LDEyICs2MzYsMTIgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYTo6Y3JlYXRlUGFnZU92ZXJsYXlMYXllcihQYWdlT3ZlcmxheSogcGFnZU92ZXIK
IAogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiAKLSAgICBtX3BhZ2VPdmVybGF5TGF5ZXJz
LmFkZChwYWdlT3ZlcmxheSwgbGF5ZXIucmVsZWFzZSgpKTsKKyAgICBtX3BhZ2VPdmVybGF5TGF5
ZXJzLmFkZChwYWdlT3ZlcmxheSwgc3RkOjptb3ZlKGxheWVyKSk7CiB9CiAKIHZvaWQgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmRlc3Ryb3lQYWdlT3ZlcmxheUxheWVyKFBhZ2VPdmVy
bGF5KiBwYWdlT3ZlcmxheSkKIHsKLSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbGF5ZXIgPSBt
X3BhZ2VPdmVybGF5TGF5ZXJzLnRha2UocGFnZU92ZXJsYXkpOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxHcmFwaGljc0xheWVyPiBsYXllciA9IG1fcGFnZU92ZXJsYXlMYXllcnMudGFrZShwYWdlT3Zl
cmxheSk7CiAgICAgQVNTRVJUKGxheWVyKTsKIAogICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsK
</data>
<flag name="review"
          id="235089"
          type_id="1"
          status="+"
          setter="koivisto"
    />
    <flag name="commit-queue"
          id="235091"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>