<?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>109588</bug_id>
          
          <creation_ts>2013-02-12 08:26:16 -0800</creation_ts>
          <short_desc>[Texmap] Implementation for pattern compositing</short_desc>
          <delta_ts>2013-04-22 03:38:32 -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>
          <dependson>108203</dependson>
    
    <dependson>114946</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Noam Rosenthal">noam</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>jturcotte</cc>
    
    <cc>luiz</cc>
    
    <cc>mrobinson</cc>
    
    <cc>philn</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>830963</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-02-12 08:26:16 -0800</bug_when>
    <thetext>[Texmap] Implementation for pattern compositing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830979</commentid>
    <comment_count>1</comment_count>
      <attachid>187876</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-02-12 08:47:59 -0800</bug_when>
    <thetext>Created attachment 187876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830991</commentid>
    <comment_count>2</comment_count>
      <attachid>187876</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-12 09:01:20 -0800</bug_when>
    <thetext>Comment on attachment 187876
Patch

Attachment 187876 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16510287</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830992</commentid>
    <comment_count>3</comment_count>
      <attachid>187876</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-12 09:01:27 -0800</bug_when>
    <thetext>Comment on attachment 187876
Patch

Attachment 187876 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16517258</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831241</commentid>
    <comment_count>4</comment_count>
      <attachid>187876</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-12 14:07:23 -0800</bug_when>
    <thetext>Comment on attachment 187876
Patch

Attachment 187876 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16531132</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875804</commentid>
    <comment_count>5</comment_count>
      <attachid>198125</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-04-15 07:39:29 -0700</bug_when>
    <thetext>Created attachment 198125
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878393</commentid>
    <comment_count>6</comment_count>
      <attachid>198125</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-04-19 05:50:33 -0700</bug_when>
    <thetext>Comment on attachment 198125
Patch

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

Is this supposed to be always disabled, and what happens to TextureMapperImageBuffer in this case?

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:587
&gt; +        layer-&gt;setShouldMapBackingStoreToContentsRect(false);

Isn&apos;t it always false?

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:594
&gt; +//    layer-&gt;setShouldMapBackingStoreToContentsRect(true);

Is that supposed to be commented out?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878401</commentid>
    <comment_count>7</comment_count>
      <attachid>198125</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-04-19 06:15:40 -0700</bug_when>
    <thetext>Comment on attachment 198125
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:587
&gt;&gt; +        layer-&gt;setShouldMapBackingStoreToContentsRect(false);
&gt; 
&gt; Isn&apos;t it always false?

See below

&gt;&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:594
&gt;&gt; +//    layer-&gt;setShouldMapBackingStoreToContentsRect(true);
&gt; 
&gt; Is that supposed to be commented out?

No, it&apos;s a debugging leftover...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878409</commentid>
    <comment_count>8</comment_count>
      <attachid>198850</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-04-19 06:36:06 -0700</bug_when>
    <thetext>Created attachment 198850
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878419</commentid>
    <comment_count>9</comment_count>
      <attachid>198850</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-04-19 06:51:39 -0700</bug_when>
    <thetext>Comment on attachment 198850
Patch

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

LGTM

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp:124
&gt; +    if (m_state.solidColor.isValid() &amp;&amp; !m_state.contentsRect.isEmpty() &amp;&amp; m_state.solidColor.alpha()) {

Unrelated optimization, isn&apos;t it?

But I will let it slide.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878422</commentid>
    <comment_count>10</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-04-19 06:57:39 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 198850 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=198850&amp;action=review
&gt; 
&gt; LGTM
Thanks, I&apos;ll ask a WK2 owner to approve.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp:124
&gt; &gt; +    if (m_state.solidColor.isValid() &amp;&amp; !m_state.contentsRect.isEmpty() &amp;&amp; m_state.solidColor.alpha()) {
&gt; 
&gt; Unrelated optimization, isn&apos;t it?
It isn&apos;t :)
Now that we support pattern compositing, if this is not there, this code path would be triggered and the pattern would not be drawn.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878447</commentid>
    <comment_count>11</comment_count>
      <attachid>198850</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-04-19 08:20:51 -0700</bug_when>
    <thetext>Comment on attachment 198850
Patch

wk2r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878523</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-19 08:59:14 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 198850:

platform/mac/editing/deleting/deletionUI-single-instance.html bug 114181 (author: rniwa@webkit.org)
transitions/color-transition-rounding.html bug 114182 (author: simon.fraser@apple.com)
transitions/cubic-bezier-overflow-svg-length.html bug 114183 (author: peter@chromium.org)
transitions/interrupt-zero-duration.html bug 114184 (authors: cmarrin@apple.com, rniwa@webkit.org, and simon.fraser@apple.com)
transitions/multiple-background-transitions.html bug 114185 (author: simon.fraser@apple.com)
transitions/cubic-bezier-overflow-color.html bug 114186 (author: peter@chromium.org)
transitions/mismatched-shadow-transitions.html bug 114188 (author: simon.fraser@apple.com)
transitions/color-transition-all.html bug 114189 (authors: ossy@webkit.org and simon.fraser@apple.com)
transitions/cubic-bezier-overflow-shadow.html bug 114191 (author: peter@chromium.org)
transitions/min-max-width-height-transitions.html bug 114192 (author: simon.fraser@apple.com)
transitions/cancel-transition.html bug 114193 (authors: ojan@chromium.org, rniwa@webkit.org, and simon.fraser@apple.com)
transitions/border-radius-transition.html bug 114194 (author: simon.fraser@apple.com)
transitions/flex-transitions.html bug 114195 (author: tony@chromium.org)
transitions/mixed-type.html bug 114196 (author: mikelawther@chromium.org)
transitions/multiple-mask-transitions.html bug 114197 (author: simon.fraser@apple.com)
transitions/color-transition-premultiplied.html bug 114198 (author: simon.fraser@apple.com)
transitions/mismatched-shadow-styles.html bug 114199 (author: simon.fraser@apple.com)
transitions/mask-transitions.html bug 114200 (authors: ojan@chromium.org, oliver@apple.com, and simon.fraser@apple.com)
transitions/cubic-bezier-overflow-length.html bug 114201 (author: peter@chromium.org)
transitions/multiple-background-size-transitions.html bug 114202 (authors: mitz@webkit.org and simon.fraser@apple.com)
transitions/clip-transition.html bug 114203 (authors: dglazkov@chromium.org and simon.fraser@apple.com)
transitions/cubic-bezier-overflow-transform.html bug 114204 (author: peter@chromium.org)
transitions/interrupted-accelerated-transition.html bug 56242 (authors: rniwa@webkit.org, simon.fraser@apple.com, and tonyg@chromium.org)
transitions/background-transitions.html bug 114206 (author: simon.fraser@apple.com)
http/tests/security/cookies/third-party-cookie-blocking-user-action.html bug 114511 (authors: ap@webkit.org, jochen@chromium.org, and rniwa@webkit.org)
http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html bug 114208 (authors: abarth@webkit.org and rniwa@webkit.org)
http/tests/inspector/appcache/appcache-manifest-with-non-existing-file.html bug 114209 (author: vsevik@chromium.org)
fast/loader/javascript-url-in-object.html bug 114210 (authors: rniwa@webkit.org and sam@webkit.org)
svg/animations/smil-leak-elements.svg bug 114280 (authors: fmalita@chromium.org and timothy_horton@apple.com)
svg/animations/smil-leak-dynamically-added-element-instances.svg bug 114281 (authors: fmalita@chromium.org and timothy_horton@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878525</commentid>
    <comment_count>13</comment_count>
      <attachid>198850</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-19 09:00:10 -0700</bug_when>
    <thetext>Comment on attachment 198850
Patch

Clearing flags on attachment: 198850

Committed r148748: &lt;http://trac.webkit.org/changeset/148748&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878527</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-19 09:00:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187876</attachid>
            <date>2013-02-12 08:47:59 -0800</date>
            <delta_ts>2013-04-15 07:39:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109588-20130212174428.patch</filename>
            <type>text/plain</type>
            <size>31597</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTllYTBjNWZiNDM1MTZj
NGUyNGJiZTZkMWM4MDY1MzY5ZDEyOTM2Mi4uY2U1YTQxY2U5ZjEzN2I1OWFjNjgxZmI0NGJlMjgz
MGRhMjRhNGY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEzLTAyLTEyICBObydh
bSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1RleG1hcF0gSW1wbGVt
ZW50YXRpb24gZm9yIHBhdHRlcm4gY29tcG9zaXRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTU4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRoZSBuZWNlc3NhcnkgZmFjaWxpdGllcyBp
biBUZXh0dXJlTWFwcGVyW0dMXSB0byBkcmF3IHRpbGVkIHBhdHRlcm5zIHdoZW4gdGhleSdyZQor
ICAgICAgICBzZXQgZnJvbSBXZWJDb3JlLgorCisgICAgICAgIFRlc3RzIGluIGNvbXBvc2l0aW5n
L3BhdHRlcm5zIHdvdWxkIHN0YXJ0IHRha2luZyBhZmZlY3Qgb25jZSB0aGlzIGNvZGUgaXMgZW5h
YmxlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlcjo6c2V0Q29udGVudHNUaWxlUmVjdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpjb21taXRMYXllckNoYW5n
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlci5oOgorICAgICAgICAoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpzZXRDb250ZW50c1RpbGVSZWN0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jTGF5ZXJTdGF0ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZTo6c2V0TGF5ZXJTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmg6CisgICAgICAgIChDb29yZGluYXRlZExh
eWVySW5mbyk6CisgICAgICAgICAgICBQYXNzIHRoZSBjb250ZW50c1RpbGVSZWN0IGFyb3VuZCBp
biBjb29yZGluYXRlZCBncmFwaGljcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmg6CisgICAgICAgIChUZXh0dXJlTWFwcGVy
QmFja2luZ1N0b3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyOjpnZXRUZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZS5o
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU6Omdl
dFRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
clRpbGVkQmFja2luZ1N0b3JlOjpnZXRUZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlLmg6CisgICAgICAgIChU
ZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6Z2V0VGV4dHVyZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkQmFj
a2luZ1N0b3JlLmg6CisgICAgICAgIChDb29yZGluYXRlZEJhY2tpbmdTdG9yZSk6CisgICAgICAg
ICAgICBSZW5hbWUgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXI6OnRleHR1cmUoKSB0byBnZXRU
ZXh0dXJlKCkgYW5kIHJlbW92ZSBlbXB0eSBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlckdMOjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZWRRdWFkV2l0aFByb2dyYW0pOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpkcmF3RmlsdGVyZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaDoKKyAgICAgICAg
KFRleHR1cmVNYXBwZXJHTCk6CisgICAgICAgICAgICBEcmF3IGEgcGF0dGVybiB3aXRoIEdMIHVz
aW5nIEdMX1JFUEVBVCBhbmQgYW4gYWRqdXN0ZWQgcGF0dGVyblRyYW5zZm9ybS4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpwYWludFNlbGYpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpzZXRDb250ZW50c1RpbGVSZWN0KToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyTGF5ZXIuaDoKKyAgICAgICAgKFRleHR1cmVNYXBwZXJMYXllcik6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnRleHR1cmUpOgorICAgICAgICAoU3RhdGUpOgor
ICAgICAgICAgICAgRHJhdyBhIHBhdHRlcm4gd2hlbiB3ZSBoYXZlIGEgY29udGVudHNUaWxlUmVj
dCB0aGF0IGlzIG5vdCBlcXVhbCB0byBjb250ZW50c1JlY3QuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmg6CisgICAgICAgICAg
ICBBZGQgc3R1YiBpbXBsZW1lbnRhdGlvbiBmb3Igc29mdHdhcmUtZmFsbGJhY2sgcGF0dGVybiBk
cmF3aW5nLgorCiAyMDEzLTAyLTExICBObydhbSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgQWxsb3cgZGlyZWN0IGNvbXBvc2l0aW5nIG9mIGJhY2tncm91bmQgaW1hZ2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAppbmRleCA5MTZjZmNl
OTU3NzhkMTRhZTgwZTE0MzE5MDhlOWFjZGJhMDI0MTU2Li5lYjg0MjQ0MzJjZmMzZmE1OTE1Nzlj
ZWM5ZmU5Njc5MTU0NWNmODcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlci5jcHAKQEAgLTMzNiw2ICszMzYsMTUgQEAgdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlcjo6c2V0Q29udGVudHNSZWN0KGNvbnN0IEludFJlY3QmIHZhbHVlKQogICAgIG5vdGlmeUNo
YW5nZShDb250ZW50c1JlY3RDaGFuZ2UpOwogfQogCit2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyOjpzZXRDb250ZW50c1RpbGVSZWN0KGNvbnN0IEludFJlY3QmIHZhbHVlKQoreworICAg
IGlmICh2YWx1ZSA9PSBjb250ZW50c1RpbGVSZWN0KCkpCisgICAgICAgIHJldHVybjsKKworICAg
IEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVGlsZVJlY3QodmFsdWUpOworICAgIG5vdGlmeUNo
YW5nZShDb250ZW50c1JlY3RDaGFuZ2UpOworfQorCiB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyOjpzZXRDb250ZW50c1RvU29saWRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCiB7CiAg
ICAgaWYgKGNvbG9yID09IG1fc29saWRDb2xvcikKQEAgLTQ5Myw4ICs1MDIsMTAgQEAgdm9pZCBH
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6Y29tbWl0TGF5ZXJDaGFuZ2VzKCkKICAgICBpZiAo
bV9jaGFuZ2VNYXNrICYgUHJlc2VydmVzM0RDaGFuZ2UpCiAgICAgICAgIG1fbGF5ZXItPnNldFBy
ZXNlcnZlczNEKHByZXNlcnZlczNEKCkpOwogCi0gICAgaWYgKG1fY2hhbmdlTWFzayAmIENvbnRl
bnRzUmVjdENoYW5nZSkKKyAgICBpZiAobV9jaGFuZ2VNYXNrICYgQ29udGVudHNSZWN0Q2hhbmdl
KSB7CiAgICAgICAgIG1fbGF5ZXItPnNldENvbnRlbnRzUmVjdChjb250ZW50c1JlY3QoKSk7Cisg
ICAgICAgIG1fbGF5ZXItPnNldENvbnRlbnRzVGlsZVJlY3QoY29udGVudHNUaWxlUmVjdCgpKTsK
KyAgICB9CiAKICAgICBpZiAobV9jaGFuZ2VNYXNrICYgTWFza3NUb0JvdW5kc0NoYW5nZSkKICAg
ICAgICAgbV9sYXllci0+c2V0TWFza3NUb0JvdW5kcyhtYXNrc1RvQm91bmRzKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAppbmRleCA1ZWU1MzcxZGZmMDMyNGRkMzAx
YTI2NGM3YjNhYjcxNDE4YWZkYTg0Li5lNjlhOWQyYWU2ZjI4NGFjZGYxMTJmYWY2YjUwNTEwMmEy
ODUyNmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaApAQCAtNTgs
NiArNTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEJhY2tmYWNlVmlzaWJpbGl0
eShib29sIGIpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRPcGFjaXR5KGZsb2F0IG9wYWNpdHkpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1JlY3QoY29uc3QgSW50UmVjdCYgcik7CisgICAg
dmlydHVhbCB2b2lkIHNldENvbnRlbnRzVGlsZVJlY3QoY29uc3QgSW50UmVjdCYpOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRSZXBsaWNhdGVkQnlMYXllcihHcmFwaGljc0xheWVyKik7CiAgICAgdmly
dHVhbCB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShJbWFnZSopOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250ZW50c1RvU29saWRDb2xvcihjb25zdCBDb2xvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKaW5kZXgg
ZDk2MTE2YjcwOTkzNjhhZDQ0NTU5OTZjMWI3MzIwMTYyNzBkZWVjMi4uMjI5NmEzNGY3NzZkZmFh
ZGFjNDgyMjFjOTBkMjhhZjViZDc1YTc1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCkBAIC0xMzMsNiArMTMz
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkcmF3UmVwYWludENvdW50ZXIoaW50IHJl
cGFpbnRDb3VudCwgY29uc3QgQ29sb3ImLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmUoY29u
c3QgQml0bWFwVGV4dHVyZSYsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0LCBjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4ID0gVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwg
ZmxvYXQgb3BhY2l0eSA9IDEuMGYsIGNvbnN0IEJpdG1hcFRleHR1cmUqIG1hc2tUZXh0dXJlID0g
MCwgdW5zaWduZWQgZXhwb3NlZEVkZ2VzID0gQWxsRWRnZXMpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZHJhd1BhdHRlcm4oY29uc3QgQml0bWFwVGV4dHVyZSYsIGNvbnN0IEZsb2F0UmVjdCYgdGFy
Z2V0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYsIGZsb2F0IG9wYWNpdHkpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1NvbGlkQ29sb3Io
Y29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBDb2xv
ciYpID0gMDsKIAogICAgIC8vIG1ha2VzIGEgc3VyZmFjZSB0aGUgdGFyZ2V0IGZvciB0aGUgZm9s
bG93aW5nIGRyYXdUZXh0dXJlIGNhbGxzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0
b3JlLmgKaW5kZXggNmJmYjNmMWNmZTViMmUxNjZjODEzYzAzM2RhYWU2OGExNTFkZWY3ZC4uZmNi
YjhjMGI5ODc4OGY0OGRlYzU0NjQ3MjU5ZDUwNmRmMTRmNWZkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckJhY2tpbmdTdG9yZS5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEdyYXBoaWNzTGF5
ZXI7CiAKIGNsYXNzIFRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUgOiBwdWJsaWMgVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXIsIHB1YmxpYyBSZWZDb3VudGVkPFRleHR1cmVNYXBwZXJCYWNraW5n
U3RvcmU+IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4g
dGV4dHVyZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVy
ZT4gZ2V0VGV4dHVyZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1
cmVNYXBwZXIoVGV4dHVyZU1hcHBlciosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4JiwgZmxvYXQsIEJpdG1hcFRleHR1cmUqKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGRyYXdSZXBhaW50Q291bnRlcihUZXh0dXJlTWFwcGVyKiwgaW50IC8qIHJlcGFpbnRDb3Vu
dCAqLywgY29uc3QgQ29sb3ImLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYpIHsgfQogICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUoKSB7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggYjJlMGUwNTRmYjAwNTlhMDE4ODVkMTk4OGVm
ODUyOGE0ODM3N2ZkMS4uNDU3MzkwM2UwMzZkYWYxMDQzZDUzZDc5NTJmMzcyY2NiY2E2YzA5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTM5Myw2ICszOTMsMzAgQEAgdm9pZCBUZXh0dXJl
TWFwcGVyR0w6OmRyYXdSZXBhaW50Q291bnRlcihpbnQgcmVwYWludENvdW50LCBjb25zdCBDb2xv
ciYgY29sb3IsIGMKICNlbmRpZgogfQogCit2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1BhdHRl
cm4oY29uc3QgQml0bWFwVGV4dHVyZSYgdGV4dHVyZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgdHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5KQoreworICAgIGlmICh0YXJnZXRSZWN0ID09IHRp
bGVSZWN0KSB7CisgICAgICAgIGRyYXdUZXh0dXJlKHRleHR1cmUsIHRhcmdldFJlY3QsIHRyYW5z
Zm9ybSwgb3BhY2l0eSwgMCwgQWxsRWRnZXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKGNsaXBTdGFjaygpLmN1cnJlbnQoKS5zY2lzc29yQm94LmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgY29uc3QgQml0bWFwVGV4dHVyZUdMJiB0ZXh0dXJlR0wgPSBzdGF0
aWNfY2FzdDxjb25zdCBCaXRtYXBUZXh0dXJlR0wmPih0ZXh0dXJlKTsKKyAgICBGbGFncyBmbGFn
cyA9IHRleHR1cmVHTC5pc09wYXF1ZSgpID8gMCA6IFNob3VsZEJsZW5kOworCisgICAgVGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW06Ok9wdGlvbnMgb3B0aW9ucyA9IFRleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtOjpUZXh0dXJlOworICAgIGlmIChvcGFjaXR5IDwgMSkgeworICAgICAgICBvcHRp
b25zIHw9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcGFjaXR5OworICAgICAgICBmbGFn
cyB8PSBTaG91bGRCbGVuZDsKKyAgICB9CisKKyAgICBSZWZQdHI8VGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW0+IHByb2dyYW07CisgICAgcHJvZ3JhbSA9IGRhdGEoKS5zaGFyZWRHTERhdGEoKS5n
ZXRTaGFkZXJQcm9ncmFtKG9wdGlvbnMpOworICAgIGRyYXdUZXh0dXJlZFF1YWRXaXRoUHJvZ3Jh
bShwcm9ncmFtLmdldCgpLCB0ZXh0dXJlR0wuaWQoKSwgZmxhZ3MsIHRleHR1cmVHTC5zaXplKCks
IHRhcmdldFJlY3QsIHRpbGVSZWN0LCB0cmFuc2Zvcm0sIG9wYWNpdHksIDApOworfQorCiB2b2lk
IFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUoY29uc3QgQml0bWFwVGV4dHVyZSYgdGV4dHVy
ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgbWF0cml4LCBmbG9hdCBvcGFjaXR5LCBjb25zdCBCaXRtYXBUZXh0dXJlKiBtYXNrLCB1bnNp
Z25lZCBleHBvc2VkRWRnZXMpCiB7CiAgICAgaWYgKCF0ZXh0dXJlLmlzVmFsaWQoKSkKQEAgLTQz
MCw3ICs0NTQsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUoUGxhdGZvcm0z
RE9iamVjdCB0ZXh0dXJlLCBGbGFncyBmbGFncywgY29uc3QgSQogCiAgICAgUmVmUHRyPFRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBwcm9ncmFtOwogICAgIHByb2dyYW0gPSBkYXRhKCkuc2hh
cmVkR0xEYXRhKCkuZ2V0U2hhZGVyUHJvZ3JhbShvcHRpb25zKTsKLSAgICBkcmF3VGV4dHVyZWRR
dWFkV2l0aFByb2dyYW0ocHJvZ3JhbS5nZXQoKSwgdGV4dHVyZSwgZmxhZ3MsIHRleHR1cmVTaXpl
LCB0YXJnZXRSZWN0LCBtb2RlbFZpZXdNYXRyaXgsIG9wYWNpdHksIG1hc2tUZXh0dXJlKTsKKyAg
ICBkcmF3VGV4dHVyZWRRdWFkV2l0aFByb2dyYW0ocHJvZ3JhbS5nZXQoKSwgdGV4dHVyZSwgZmxh
Z3MsIHRleHR1cmVTaXplLCB0YXJnZXRSZWN0LCB0YXJnZXRSZWN0LCBtb2RlbFZpZXdNYXRyaXgs
IG9wYWNpdHksIG1hc2tUZXh0dXJlKTsKIH0KIAogdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdT
b2xpZENvbG9yKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIG1hdHJpeCwgY29uc3QgQ29sb3ImIGNvbG9yKQpAQCAtNTE2LDcgKzU0MCw3IEBAIHZvaWQg
VGV4dHVyZU1hcHBlckdMOjpkcmF3KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIG1vCiAKICAgICBtX2NvbnRleHQzRC0+ZGlzYWJsZVZlcnRleEF0dHJp
YkFycmF5KHNoYWRlclByb2dyYW0tPnZlcnRleExvY2F0aW9uKCkpOwogfQotdm9pZCBUZXh0dXJl
TWFwcGVyR0w6OmRyYXdUZXh0dXJlZFF1YWRXaXRoUHJvZ3JhbShUZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbSogcHJvZ3JhbSwgdWludDMyX3QgdGV4dHVyZSwgRmxhZ3MgZmxhZ3MsIGNvbnN0IElu
dFNpemUmIHNpemUsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIG1vZGVsVmlld01hdHJpeCwgZmxvYXQgb3BhY2l0eSwgY29uc3QgQml0bWFwVGV4dHVy
ZSogbWFza1RleHR1cmUpCit2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmVkUXVhZFdp
dGhQcm9ncmFtKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtKiBwcm9ncmFtLCB1aW50MzJfdCB0
ZXh0dXJlLCBGbGFncyBmbGFncywgY29uc3QgSW50U2l6ZSYgc2l6ZSwgY29uc3QgRmxvYXRSZWN0
JiByZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgbW9kZWxWaWV3TWF0cml4LCBmbG9hdCBvcGFjaXR5LCBjb25zdCBCaXRtYXBUZXh0dXJl
KiBtYXNrVGV4dHVyZSkKIHsKICAgICBtX2NvbnRleHQzRC0+dXNlUHJvZ3JhbShwcm9ncmFtLT5w
cm9ncmFtSUQoKSk7CiAgICAgbV9jb250ZXh0M0QtPmFjdGl2ZVRleHR1cmUoR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkUwKTsKQEAgLTUyNCw3ICs1NDgsMTQgQEAgdm9pZCBUZXh0dXJlTWFwcGVy
R0w6OmRyYXdUZXh0dXJlZFF1YWRXaXRoUHJvZ3JhbShUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bSogcHIKICAgICBtX2NvbnRleHQzRC0+YmluZFRleHR1cmUodGFyZ2V0LCB0ZXh0dXJlKTsKICAg
ICBtX2NvbnRleHQzRC0+dW5pZm9ybTFpKHByb2dyYW0tPnNhbXBsZXJMb2NhdGlvbigpLCAwKTsK
IAorICAgIGJvb2wgcmVwZWF0VGlsZXMgPSB0aWxlUmVjdCAhPSByZWN0OworCiAgICAgVHJhbnNm
b3JtYXRpb25NYXRyaXggcGF0dGVyblRyYW5zZm9ybTsKKyAgICBpZiAocmVwZWF0VGlsZXMpIHsK
KyAgICAgICAgcGF0dGVyblRyYW5zZm9ybSA9CisgICAgICAgICAgICBUcmFuc2Zvcm1hdGlvbk1h
dHJpeDo6cmVjdFRvUmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygpLCB0aWxlUmVjdC5z
aXplKCkpLCByZWN0KQorICAgICAgICAgICAgLm11bHRpcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4
KCkudHJhbnNsYXRlKHRpbGVSZWN0LngoKSAvIHJlY3Qud2lkdGgoKSwgdGlsZVJlY3QueSgpIC8g
cmVjdC5oZWlnaHQoKSkpOworICAgIH0KICAgICBpZiAoZmxhZ3MgJiBTaG91bGRGbGlwVGV4dHVy
ZSkKICAgICAgICAgcGF0dGVyblRyYW5zZm9ybS5mbGlwWSgpOwogICAgIGlmIChmbGFncyAmIFNo
b3VsZFVzZUFSQlRleHR1cmVSZWN0KQpAQCAtNTMyLDkgKzU2MywxMiBAQCB2b2lkIFRleHR1cmVN
YXBwZXJHTDo6ZHJhd1RleHR1cmVkUXVhZFdpdGhQcm9ncmFtKFRleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtKiBwcgogICAgIGlmIChmbGFncyAmIFNob3VsZEZsaXBUZXh0dXJlKQogICAgICAgICBw
YXR0ZXJuVHJhbnNmb3JtLnRyYW5zbGF0ZSgwLCAtMSk7CiAKLQogICAgIHByb2dyYW0tPnNldE1h
dHJpeChwcm9ncmFtLT50ZXh0dXJlU3BhY2VNYXRyaXhMb2NhdGlvbigpLCBwYXR0ZXJuVHJhbnNm
b3JtKTsKICAgICBtX2NvbnRleHQzRC0+dW5pZm9ybTFmKHByb2dyYW0tPm9wYWNpdHlMb2NhdGlv
bigpLCBvcGFjaXR5KTsKKyAgICBHQzNEZW51bSB3cmFwTW9kZSA9IHJlcGVhdFRpbGVzID8gR3Jh
cGhpY3NDb250ZXh0M0Q6OlJFUEVBVCA6IEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdF
OworCisgICAgbV9jb250ZXh0M0QtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRF
WFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfUywgd3JhcE1vZGUpOwor
ICAgIG1fY29udGV4dDNELT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJF
XzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1QsIHdyYXBNb2RlKTsKIAogICAg
IGlmIChtYXNrVGV4dHVyZSAmJiBtYXNrVGV4dHVyZS0+aXNWYWxpZCgpKSB7CiAgICAgICAgIGNv
bnN0IEJpdG1hcFRleHR1cmVHTCogbWFza1RleHR1cmVHTCA9IHN0YXRpY19jYXN0PGNvbnN0IEJp
dG1hcFRleHR1cmVHTCo+KG1hc2tUZXh0dXJlKTsKQEAgLTk0Miw3ICs5NzYsNyBAQCB2b2lkIFRl
eHR1cmVNYXBwZXJHTDo6ZHJhd0ZpbHRlcmVkKGNvbnN0IEJpdG1hcFRleHR1cmUmIHNhbXBsZXIs
IGNvbnN0IEJpdG1hcFRleAogCiAgICAgcHJlcGFyZUZpbHRlclByb2dyYW0ocHJvZ3JhbS5nZXQo
KSwgZmlsdGVyLCBwYXNzLCBzYW1wbGVyLmNvbnRlbnRTaXplKCksIHN0YXRpY19jYXN0PGNvbnN0
IEJpdG1hcFRleHR1cmVHTCY+KGNvbnRlbnRUZXh0dXJlKS5pZCgpKTsKICAgICBGbG9hdFJlY3Qg
dGFyZ2V0UmVjdChJbnRQb2ludDo6emVybygpLCBzYW1wbGVyLmNvbnRlbnRTaXplKCkpOwotICAg
IGRyYXdUZXh0dXJlZFF1YWRXaXRoUHJvZ3JhbShwcm9ncmFtLmdldCgpLCBzdGF0aWNfY2FzdDxj
b25zdCBCaXRtYXBUZXh0dXJlR0wmPihzYW1wbGVyKS5pZCgpLCAwLCBJbnRTaXplKDEsIDEpLCB0
YXJnZXRSZWN0LCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAxLCAwKTsKKyAgICBkcmF3VGV4dHVy
ZWRRdWFkV2l0aFByb2dyYW0ocHJvZ3JhbS5nZXQoKSwgc3RhdGljX2Nhc3Q8Y29uc3QgQml0bWFw
VGV4dHVyZUdMJj4oc2FtcGxlcikuaWQoKSwgMCwgSW50U2l6ZSgxLCAxKSwgdGFyZ2V0UmVjdCwg
dGFyZ2V0UmVjdCwgVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgMSwgMCk7CiB9CiAKIFBhc3NSZWZQ
dHI8Qml0bWFwVGV4dHVyZT4gQml0bWFwVGV4dHVyZUdMOjphcHBseUZpbHRlcnMoVGV4dHVyZU1h
cHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgQml0bWFwVGV4dHVyZSYgY29udGVudFRleHR1cmUs
IGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKaW5kZXgg
OTgzZTJhMDZjM2M0M2Q2M2FhOWViYTFhZjZjMWExZDhkZjU5M2RkZC4uOTljZTk5NDVlMDQxN2U5
MzNhYTE0MTdmODM0MDk3MDNmYjI0NTY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaApAQCAtNTUsNiAr
NTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRyYXdCb3JkZXIoY29uc3QgQ29sb3Im
LCBmbG9hdCBib3JkZXJXaWR0aCwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1JlcGFpbnRDb3VudGVy
KGludCByZXBhaW50Q291bnQsIGNvbnN0IENvbG9yJiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdU
ZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1cmUmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0IG9wYWNpdHksIGNvbnN0IEJpdG1hcFRleHR1cmUqIG1h
c2tUZXh0dXJlLCB1bnNpZ25lZCBleHBvc2VkRWRnZXMpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBkcmF3UGF0dGVybihjb25zdCBCaXRtYXBUZXh0dXJlJiwgY29uc3QgRmxvYXRSZWN0Jiwg
Y29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCBvcGFj
aXR5KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmUoUGxhdGZvcm0zRE9i
amVjdCB0ZXh0dXJlLCBGbGFncywgY29uc3QgSW50U2l6ZSYgdGV4dHVyZVNpemUsIGNvbnN0IEZs
b2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmll
d01hdHJpeCwgZmxvYXQgb3BhY2l0eSwgY29uc3QgQml0bWFwVGV4dHVyZSogbWFza1RleHR1cmUs
IHVuc2lnbmVkIGV4cG9zZWRFZGdlcyA9IEFsbEVkZ2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgZHJh
d1NvbGlkQ29sb3IoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgm
LCBjb25zdCBDb2xvciYpIE9WRVJSSURFOwogCkBAIC0xMDIsNyArMTAzLDcgQEAgcHJpdmF0ZToK
IAogICAgIFRleHR1cmVNYXBwZXJHTCgpOwogCi0gICAgdm9pZCBkcmF3VGV4dHVyZWRRdWFkV2l0
aFByb2dyYW0oVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0qLCB1aW50MzJfdCB0ZXh0dXJlLCBG
bGFncywgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgsIGZsb2F0IG9wYWNpdHksIGNvbnN0IEJpdG1hcFRl
eHR1cmUqIG1hc2tUZXh0dXJlKTsKKyAgICB2b2lkIGRyYXdUZXh0dXJlZFF1YWRXaXRoUHJvZ3Jh
bShUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSosIHVpbnQzMl90IHRleHR1cmUsIEZsYWdzLCBj
b25zdCBJbnRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCwgZmxvYXQgb3BhY2l0eSwgY29u
c3QgQml0bWFwVGV4dHVyZSogbWFza1RleHR1cmUpOwogICAgIHZvaWQgZHJhdyhjb25zdCBGbG9h
dFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSosIEdDM0RlbnVtIGRyYXdpbmdNb2RlLCBGbGFncyk7CiAK
ICAgICB2b2lkIGRyYXdVbml0UmVjdChUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSosIEdDM0Rl
bnVtIGRyYXdpbmdNb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuaAppbmRl
eCA1YjJlOTc4M2Q2OWMwNTg2MzkyNzJhMmI2MzFjNzZhZTEwNTczZDNjLi5hZjcyMzk4YmJjYWEy
YTc1M2Q2OGE5YTA5YmRhNTA4YjBjMjY5MTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFn
ZUJ1ZmZlci5oCkBAIC01Niw2ICs1NiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRy
YXdCb3JkZXIoY29uc3QgQ29sb3ImLCBmbG9hdCBib3JkZXJXaWR0aCwgY29uc3QgRmxvYXRSZWN0
JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgZHJhd1JlcGFpbnRDb3VudGVyKGludCByZXBhaW50Q291bnQsIGNvbnN0IENvbG9yJiwgY29u
c3QgRmxvYXRQb2ludCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGRyYXdUZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1cmUmLCBjb25zdCBG
bG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQg
b3BhY2l0eSwgY29uc3QgQml0bWFwVGV4dHVyZSogbWFza1RleHR1cmUsIHVuc2lnbmVkIGV4cG9z
ZWRFZGdlcykgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKGNvbnN0IEJp
dG1hcFRleHR1cmUmIHRleHR1cmUsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCBv
cGFjaXR5KSBPVkVSUklERQorICAgIHsKKyAgICB9CisKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1Nv
bGlkQ29sb3IoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBj
b25zdCBDb2xvciYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBiZWdpbkNsaXAoY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgYmluZFN1cmZhY2UoQml0bWFwVGV4dHVyZSogc3VyZmFjZSkgT1ZFUlJJREUg
eyBtX2N1cnJlbnRTdXJmYWNlID0gc3VyZmFjZTt9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3Bw
CmluZGV4IGVkZmUzMjA3OGQ4ZjIxYWI3ODhhNGFjZmU3ZDVjMmJjZjFmNDI5MDYuLjUxNzhmN2M0
NjNmNDU5YTFlNDQzZTdiMGZhZWZhNTQzNzkwYzMxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5
ZXIuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50
U2VsZihjb25zdCBUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zKQogICAgIGZsb2F0
IG9wYWNpdHkgPSBvcHRpb25zLm9wYWNpdHk7CiAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IG1h
c2sgPSBvcHRpb25zLm1hc2s7CiAKLSAgICBpZiAobV9zdGF0ZS5zb2xpZENvbG9yLmlzVmFsaWQo
KSAmJiAhbV9zdGF0ZS5jb250ZW50c1JlY3QuaXNFbXB0eSgpKSB7CisgICAgaWYgKG1fc3RhdGUu
c29saWRDb2xvci5pc1ZhbGlkKCkgJiYgbV9zdGF0ZS5zb2xpZENvbG9yLmFscGhhKCkgJiYgIW1f
c3RhdGUuY29udGVudHNSZWN0LmlzRW1wdHkoKSkgewogICAgICAgICBvcHRpb25zLnRleHR1cmVN
YXBwZXItPmRyYXdTb2xpZENvbG9yKG1fc3RhdGUuY29udGVudHNSZWN0LCB0cmFuc2Zvcm0sIGJs
ZW5kV2l0aE9wYWNpdHkobV9zdGF0ZS5zb2xpZENvbG9yLCBvcGFjaXR5KSk7CiAgICAgICAgIGlm
IChtX3N0YXRlLnNob3dEZWJ1Z0JvcmRlcnMpCiAgICAgICAgICAgICBvcHRpb25zLnRleHR1cmVN
YXBwZXItPmRyYXdCb3JkZXIobV9zdGF0ZS5kZWJ1Z0JvcmRlckNvbG9yLCBtX3N0YXRlLmRlYnVn
Qm9yZGVyV2lkdGgsIGxheWVyUmVjdCgpLCB0cmFuc2Zvcm0pOwpAQCAtMTI5LDYgKzEyOSwxMyBA
QCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRTZWxmKGNvbnN0IFRleHR1cmVNYXBwZXJQ
YWludE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgfQogCiAgICAgaWYgKG1fY29udGVudHNMYXllcikg
eworICAgICAgICBpZiAobV9zdGF0ZS5jb250ZW50c1RpbGVSZWN0ICE9IG1fc3RhdGUuY29udGVu
dHNSZWN0KSB7CisgICAgICAgICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gdGV4dHVyZSA9IG1f
Y29udGVudHNMYXllci0+Z2V0VGV4dHVyZSgpOworICAgICAgICAgICAgaWYgKHRleHR1cmUpCisg
ICAgICAgICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3UGF0dGVybigqdGV4dHVy
ZS5nZXQoKSwgbV9zdGF0ZS5jb250ZW50c1JlY3QsIG1fc3RhdGUuY29udGVudHNUaWxlUmVjdCwg
dHJhbnNmb3JtLCBvcGFjaXR5KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCiAg
ICAgICAgIEFTU0VSVCghbGF5ZXJSZWN0KCkuaXNFbXB0eSgpKTsKICAgICAgICAgbV9jb250ZW50
c0xheWVyLT5wYWludFRvVGV4dHVyZU1hcHBlcihvcHRpb25zLnRleHR1cmVNYXBwZXIsIG1fc3Rh
dGUuY29udGVudHNSZWN0LCB0cmFuc2Zvcm0sIG9wYWNpdHksIG1hc2suZ2V0KCkpOwogICAgICAg
ICBpZiAobV9zdGF0ZS5zaG93RGVidWdCb3JkZXJzKQpAQCAtNDgyLDYgKzQ4OSwxMSBAQCB2b2lk
IFRleHR1cmVNYXBwZXJMYXllcjo6c2V0Q29udGVudHNSZWN0KGNvbnN0IEludFJlY3QmIGNvbnRl
bnRzUmVjdCkKICAgICBtX3N0YXRlLmNvbnRlbnRzUmVjdCA9IGNvbnRlbnRzUmVjdDsKIH0KIAor
dm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldENvbnRlbnRzVGlsZVJlY3QoY29uc3QgSW50UmVj
dCYgY29udGVudHNSZWN0KQoreworICAgIG1fc3RhdGUuY29udGVudHNUaWxlUmVjdCA9IGNvbnRl
bnRzUmVjdDsKK30KKwogdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldE1hc2tzVG9Cb3VuZHMo
Ym9vbCBtYXNrc1RvQm91bmRzKQogewogICAgIG1fc3RhdGUubWFza3NUb0JvdW5kcyA9IG1hc2tz
VG9Cb3VuZHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgKaW5kZXggZjZiNzJhMzI1YmI4NWJlMDFm
ODkyYzM3OWMyYjcwNzZkMTY2MDRlNC4uYmE4YzcyYTY0OWM1MTM4MTM5N2I2NjVjMjY4OGYxYWQ2
YzllZmM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaApAQCAtNjgsNiArNjgsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsK
ICAgICB2b2lkIHNldENoaWxkcmVuVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
Jik7CiAgICAgdm9pZCBzZXRDb250ZW50c1JlY3QoY29uc3QgSW50UmVjdCYpOworICAgIHZvaWQg
c2V0Q29udGVudHNUaWxlUmVjdChjb25zdCBJbnRSZWN0Jik7CiAgICAgdm9pZCBzZXRNYXNrc1Rv
Qm91bmRzKGJvb2wpOwogICAgIHZvaWQgc2V0RHJhd3NDb250ZW50KGJvb2wpOwogICAgIHZvaWQg
c2V0Q29udGVudHNWaXNpYmxlKGJvb2wpOwpAQCAtMTAzLDcgKzEwNCw3IEBAIHByaXZhdGU6CiAg
ICAgc3RhdGljIGludCBjb21wYXJlR3JhcGhpY3NMYXllcnNaVmFsdWUoY29uc3Qgdm9pZCogYSwg
Y29uc3Qgdm9pZCogYik7CiAgICAgc3RhdGljIHZvaWQgc29ydEJ5Wk9yZGVyKFZlY3RvcjxUZXh0
dXJlTWFwcGVyTGF5ZXIqID4mIGFycmF5LCBpbnQgZmlyc3QsIGludCBsYXN0KTsKIAotICAgIFBh
c3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gdGV4dHVyZSgpIHsgcmV0dXJuIG1fYmFja2luZ1N0b3Jl
ID8gbV9iYWNraW5nU3RvcmUtPnRleHR1cmUoKSA6IDA7IH0KKyAgICBQYXNzUmVmUHRyPEJpdG1h
cFRleHR1cmU+IHRleHR1cmUoKSB7IHJldHVybiBtX2JhY2tpbmdTdG9yZSA/IG1fYmFja2luZ1N0
b3JlLT5nZXRUZXh0dXJlKCkgOiAwOyB9CiAgICAgRmxvYXRQb2ludCBhZGp1c3RlZFBvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5wb3MgKyBtX3Njcm9sbFBvc2l0aW9uRGVsdGE7IH0K
ICAgICBib29sIGlzQW5jZXN0b3JGaXhlZFRvVmlld3BvcnQoKSBjb25zdDsKIApAQCAtMTY0LDYg
KzE2NSw3IEBAIHByaXZhdGU6CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGNoaWxkcmVu
VHJhbnNmb3JtOwogICAgICAgICBmbG9hdCBvcGFjaXR5OwogICAgICAgICBGbG9hdFJlY3QgY29u
dGVudHNSZWN0OworICAgICAgICBGbG9hdFJlY3QgY29udGVudHNUaWxlUmVjdDsKICAgICAgICAg
VGV4dHVyZU1hcHBlckxheWVyKiBtYXNrTGF5ZXI7CiAgICAgICAgIFRleHR1cmVNYXBwZXJMYXll
ciogcmVwbGljYUxheWVyOwogICAgICAgICBDb2xvciBzb2xpZENvbG9yOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaAppbmRleCBmNDg3OTUyNjc2ODAxOTA4NWNiZGVmODll
NjZlZTQ3ZGVmODEwMTE1Li4wZjY1ZjQ4YTRiMTQ0M2ZiY2NmN2MxYTY0YjZiNzRhODQyNWUyZmQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaApAQCAtMzQsNiArMzQs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIoKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlcios
IGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdN
YXRyaXggPSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBmbG9hdCBvcGFjaXR5ID0gMS4wLCBCaXRt
YXBUZXh0dXJlKiBtYXNrID0gMCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzd2FwQnVmZmVycygp
IHsgfQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBnZXRUZXh0dXJlKCkg
Y29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBkcmF3Qm9yZGVyKFRleHR1cmVN
YXBwZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0IENvbG9yJiBjb2xvciwgZmxvYXQgYm9yZGVyV2lk
dGgsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIHRyYW5zZm9ybSkKICAgICB7CiAgICAgICAgIHRleHR1cmVNYXBwZXItPmRyYXdCb3JkZXIo
Y29sb3IsIGJvcmRlcldpZHRoLCB0YXJnZXRSZWN0LCB0cmFuc2Zvcm0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTdXJm
YWNlQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZS5jcHAKaW5kZXggYzcxNDJkNzVk
ZDVhNzYzZjBiNjIyYTU2MzY1YWQ5YzIyZTgzOWUxMi4uMDJjYjlkOGFhNzFkNzMxZTczNjc5ODky
NTc1MDIwY2Q4ZGE1NTM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclN1cmZh
Y2VCYWNraW5nU3RvcmUuY3BwCkBAIC0zNywxMyArMzcsNiBAQCB2b2lkIFRleHR1cmVNYXBwZXJT
dXJmYWNlQmFja2luZ1N0b3JlOjpzd2FwQnVmZmVyc0lmTmVlZGVkKHVpbnQzMl90KQogICAgICAg
ICBtX2dyYXBoaWNzU3VyZmFjZS0+c3dhcEJ1ZmZlcnMoKTsKIH0KIAotUGFzc1JlZlB0cjxCaXRt
YXBUZXh0dXJlPiBUZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZTo6dGV4dHVyZSgpIGNv
bnN0Ci17Ci0gICAgLy8gRklYTUU6IEluc3RlYWQgb2YganVzdCByZXR1cm5pbmcgYW4gZW1wdHkg
dGV4dHVyZSwgd2Ugc2hvdWxkIHdyYXAgdGhlIHRleHR1cmUgY29udGVudHMgaW50byBhIEJpdG1h
cFRleHR1cmUuCi0gICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IGVtcHR5VGV4dHVyZTsKLSAgICBy
ZXR1cm4gZW1wdHlUZXh0dXJlOwotfQotCiB2b2lkIFRleHR1cmVNYXBwZXJTdXJmYWNlQmFja2lu
Z1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVy
LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2spCiB7CiAgICAg
aWYgKG1fZ3JhcGhpY3NTdXJmYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclN1cmZh
Y2VCYWNraW5nU3RvcmUuaAppbmRleCA0Y2QxMDE0ZmM4NWVhM2E3ZTk3MWM4ZGUwNWY0MWE0ZmQ0
YmQyNmM3Li44NGY2MzQ1ZTg5YzY0YmI2YWQ3ZGZjMDFlYWE5Mjk3Y2UzM2VmMGM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
clN1cmZhY2VCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmUuaApAQCAtMzYsNyAr
MzYsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dHVyZU1hcHBlclN1cmZh
Y2VCYWNraW5nU3RvcmU+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0dXJlTWFw
cGVyU3VyZmFjZUJhY2tpbmdTdG9yZSk7IH0KICAgICB2b2lkIHNldEdyYXBoaWNzU3VyZmFjZShQ
YXNzUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4pOwogICAgIHZvaWQgc3dhcEJ1ZmZlcnNJZk5lZWRl
ZCh1aW50MzJfdCBmcm9udEJ1ZmZlcik7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEJpdG1hcFRl
eHR1cmU+IHRleHR1cmUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Qml0bWFwVGV4
dHVyZT4gZ2V0VGV4dHVyZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciosIGNvbnN0IEZsb2F0UmVjdCYsIGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQsIEJpdG1hcFRleHR1cmUqKTsKICAgICB2
aXJ0dWFsIH5UZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZSgpIHsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
clRpbGVkQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IDM1MTZmMGY0
YTUxYjA2ZjkzNDQ0NzRlNTdiZmQ2MGM0OTRhYzdjMmUuLmRlYjFlZjQxZjA5NTA5ODlhODhjNGZj
ZDdkMjQzOWYyODM4M2NmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRC
YWNraW5nU3RvcmUuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyVGls
ZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBw
ZXIKICAgICAgICAgbV90aWxlc1tpXS51cGRhdGVDb250ZW50cyh0ZXh0dXJlTWFwcGVyLCBzb3Vy
Y2VMYXllciwgZGlydHlSZWN0LCB1cGRhdGVDb250ZW50c0ZsYWcpOwogfQogCi1QYXNzUmVmUHRy
PEJpdG1hcFRleHR1cmU+IFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6dGV4dHVyZSgp
IGNvbnN0CitQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IFRleHR1cmVNYXBwZXJUaWxlZEJhY2tp
bmdTdG9yZTo6Z2V0VGV4dHVyZSgpIGNvbnN0CiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtX3RpbGVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiB0
ZXh0dXJlID0gbV90aWxlc1tpXS50ZXh0dXJlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3Jl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
clRpbGVkQmFja2luZ1N0b3JlLmgKaW5kZXggOTM5YjE4NWQ3ZWEzNTRmM2JiNTM5ODViOGE1Njdl
OTE2Nzc2NGZlYi4uZWJmYTVjMDRmMTcxZGNjOTg5NjEyYWUzYzNiYzQwNTQ5NWNlNzY3ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuaApAQCAtMzcsNyAr
MzcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dHVyZU1hcHBlclRpbGVk
QmFja2luZ1N0b3JlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgVGV4dHVyZU1hcHBl
clRpbGVkQmFja2luZ1N0b3JlKTsgfQogICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXJUaWxlZEJh
Y2tpbmdTdG9yZSgpIHsgfQogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+
IHRleHR1cmUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Qml0bWFw
VGV4dHVyZT4gZ2V0VGV4dHVyZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBw
YWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmxvYXRSZWN0JiwgY29u
c3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCwgQml0bWFwVGV4dHVyZSopIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBkcmF3Qm9yZGVyKFRleHR1cmVNYXBwZXIqLCBjb25zdCBDb2xv
ciYsIGZsb2F0IGJvcmRlcldpZHRoLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkcmF3UmVwYWludENvdW50
ZXIoVGV4dHVyZU1hcHBlciosIGludCByZXBhaW50Q291bnQsIGNvbnN0IENvbG9yJiwgY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKSBPVkVSUklERTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCmlu
ZGV4IDk1ZGEyYjhmYjVmNGE4ZDlkMmM5ODc5ZTkzYWNiODVjMGYzYzliOGIuLjNjYWEwMzk0YThh
OWMwNTQ1ZDliMjhkNTMzOWEzNzBjOGFhZmQ1MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEJhY2tpbmdT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcApAQCAtODksNyArODksNyBAQCB2
b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjp1cGRhdGVUaWxlKHVpbnQzMl90IGlkLCBjb25z
dCBJbnRSZWN0JiBzb3VyY2VSZWN0LAogICAgIGl0LT52YWx1ZS5zZXRCYWNrQnVmZmVyKHRpbGVS
ZWN0LCBzb3VyY2VSZWN0LCBiYWNrQnVmZmVyLCBvZmZzZXQpOwogfQogCi1QYXNzUmVmUHRyPEJp
dG1hcFRleHR1cmU+IENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjp0ZXh0dXJlKCkgY29uc3QKK1Bh
c3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmdldFRleHR1
cmUoKSBjb25zdAogewogICAgIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZU1hcDo6Y29uc3Rf
aXRlcmF0b3IgZW5kID0gbV90aWxlcy5lbmQoKTsKICAgICBmb3IgKENvb3JkaW5hdGVkQmFja2lu
Z1N0b3JlVGlsZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7IGl0ICE9
IGVuZDsgKytpdCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRC
YWNraW5nU3RvcmUuaAppbmRleCA5MzEwZTM3ZGRmMjE3ZTE5ZjllZjQ5N2QxNmM5NjA2MzgzMThj
YTQxLi5jN2E1MWE4YjMzNjhmZDJhNjc5Y2RkMGNjMjNkYjEwYzlhMjVjMzI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuaApAQCAtNjAs
NyArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVUaWxlKHVpbnQzMl90IHRpbGVJRCwg
Y29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmLCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3Vy
ZmFjZT4sIGNvbnN0IEludFBvaW50Jik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29vcmRpbmF0
ZWRCYWNraW5nU3RvcmU+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDb29yZGluYXRl
ZEJhY2tpbmdTdG9yZSk7IH0KICAgICB2b2lkIGNvbW1pdFRpbGVPcGVyYXRpb25zKFRleHR1cmVN
YXBwZXIqKTsKLSAgICBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRleHR1cmUoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6Qml0bWFwVGV4dHVyZT4gZ2V0VGV4dHVy
ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZvaWQgc2V0U2l6ZShjb25zdCBGbG9hdFNpemUmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciosIGNv
bnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQsIEJpdG1h
cFRleHR1cmUqKTsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0JvcmRlcihUZXh0dXJlTWFwcGVyKiwg
Y29uc3QgQ29sb3ImLCBmbG9hdCBib3JkZXJXaWR0aCwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKaW5kZXggMGVlOTdjZGMwMGJh
ZTU5ZWU4NGRlYjY5NjQ0ZTQ1YmIzNzEyMTNiMi4uMTMyYzBkODg3ODdhZjdhNTY1Yjc3Nzc5MzIx
MGViMWJiNDYzNWQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTMwNyw2ICszMDcsMTUgQEAgdm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzUmVjdChjb25zdCBJbnRSZWN0JiByKQogICAg
IGRpZENoYW5nZUxheWVyU3RhdGUoKTsKIH0KIAordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnNldENvbnRlbnRzVGlsZVJlY3QoY29uc3QgSW50UmVjdCYgcikKK3sKKyAgICBpZiAoY29u
dGVudHNUaWxlUmVjdCgpID09IHIpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzTGF5
ZXI6OnNldENvbnRlbnRzVGlsZVJlY3Qocik7CisgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwor
fQorCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNOZWVkc0Rpc3Bs
YXkoKQogewogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQpAQCAtNTU5LDYgKzU2OCw3IEBAIHZv
aWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jTGF5ZXJTdGF0ZSgpCiAgICAgbV9sYXll
ckluZm8uY2hpbGRyZW5UcmFuc2Zvcm0gPSBjaGlsZHJlblRyYW5zZm9ybSgpOwogICAgIG1fbGF5
ZXJJbmZvLmNvbnRlbnRzT3BhcXVlID0gY29udGVudHNPcGFxdWUoKTsKICAgICBtX2xheWVySW5m
by5jb250ZW50c1JlY3QgPSBjb250ZW50c1JlY3QoKTsKKyAgICBtX2xheWVySW5mby5jb250ZW50
c1RpbGVSZWN0ID0gY29udGVudHNUaWxlUmVjdCgpOwogICAgIG1fbGF5ZXJJbmZvLmRyYXdzQ29u
dGVudCA9IGRyYXdzQ29udGVudCgpOwogICAgIG1fbGF5ZXJJbmZvLmNvbnRlbnRzVmlzaWJsZSA9
IGNvbnRlbnRzQXJlVmlzaWJsZSgpOwogICAgIG1fbGF5ZXJJbmZvLm1hc2sgPSB0b0Nvb3JkaW5h
dGVkTGF5ZXJJRChtYXNrTGF5ZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggYTNmMGEwOGZkOTgyMTVkMTAxNmQyNzg1
OWY1Mjc1ODMzNDAyMGZhMi4uODg1MGI4OGY0NmMyYTMyYjQ5ZDI1ZjFkNDE2NTI4NDVhZGQyY2Fk
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuaApAQCAtMTA0LDYgKzEwNCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0
QmFja2ZhY2VWaXNpYmlsaXR5KGJvb2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRP
cGFjaXR5KGZsb2F0KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNSZWN0
KGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNU
aWxlUmVjdChjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldENv
bnRlbnRzVG9JbWFnZShJbWFnZSopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250
ZW50c1RvU29saWRDb2xvcihjb25zdCBDb2xvciYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRTaG93RGVidWdCb3JkZXIoYm9vbCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCmluZGV4IGQyMTVmYjM2
MTNiOTA3YjZiMWQ5ZjVlODkxMTlkYmIyNjQ0ZjQ1OTQuLmQ3ZDlkNzdiMWY2ZjhiNmUwZGI2NmUx
NGNhMjQ3YjgyNjgwMzE1NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCkBAIC0zMzQsNiArMzM0LDcgQEAgdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldExheWVyU3RhdGUoQ29vcmRpbmF0ZWRMYXllcklEIGlk
LCBjb25zdCBDb29yZGkKICAgICBsYXllci0+c2V0QmFja2ZhY2VWaXNpYmlsaXR5KGxheWVySW5m
by5iYWNrZmFjZVZpc2libGUpOwogICAgIGxheWVyLT5zZXRDb250ZW50c09wYXF1ZShsYXllcklu
Zm8uY29udGVudHNPcGFxdWUpOwogICAgIGxheWVyLT5zZXRDb250ZW50c1JlY3QobGF5ZXJJbmZv
LmNvbnRlbnRzUmVjdCk7CisgICAgbGF5ZXItPnNldENvbnRlbnRzVGlsZVJlY3QobGF5ZXJJbmZv
LmNvbnRlbnRzVGlsZVJlY3QpOwogICAgIGxheWVyLT5zZXRDb250ZW50c1RvU29saWRDb2xvcihs
YXllckluZm8uc29saWRDb2xvcik7CiAgICAgbGF5ZXItPnNldERyYXdzQ29udGVudChsYXllcklu
Zm8uZHJhd3NDb250ZW50KTsKICAgICBsYXllci0+c2V0Q29udGVudHNWaXNpYmxlKGxheWVySW5m
by5jb250ZW50c1Zpc2libGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRMYXllckluZm8uaAppbmRleCAwZmEyYTEyZWQzZjQ2YzA4NDIzYjRiOWM0ZGM5MTY1NjlmMDM4
Yjc2Li5hOWViM2MzM2MwMWE3MjJhMzE2NGU4NDg4NWE2MjM1Y2Q5NzM1NjcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRMYXllckluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRMYXllckluZm8uaApAQCAtNTYsNiArNTYs
NyBAQCBzdHJ1Y3QgQ29vcmRpbmF0ZWRMYXllckluZm8gewogICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IHRyYW5zZm9ybTsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjaGlsZHJlblRyYW5zZm9y
bTsKICAgICBJbnRSZWN0IGNvbnRlbnRzUmVjdDsKKyAgICBJbnRSZWN0IGNvbnRlbnRzVGlsZVJl
Y3Q7CiAgICAgZmxvYXQgb3BhY2l0eTsKICAgICBDb2xvciBzb2xpZENvbG9yOwogICAgIENvbG9y
IGRlYnVnQm9yZGVyQ29sb3I7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198125</attachid>
            <date>2013-04-15 07:39:29 -0700</date>
            <delta_ts>2013-04-19 06:35:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109588-20130415163903.patch</filename>
            <type>text/plain</type>
            <size>25505</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY0NGY5YTU1MTdjNDZh
OTNhNDAyNjAxYTMxNzMzNGVmYzZiYzQxMi4uMTQwOWI2ZjRiNTI4ZmM3ODA1YzZmMzU1MjIxZmQ4
NTEzMDNhYjczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEzLTA0LTE1ICBOb2Ft
IFJvc2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBbVGV4bWFwXSBJbXBsZW1l
bnRhdGlvbiBmb3IgcGF0dGVybiBjb21wb3NpdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIHBhdHRlcm4gY29tcG9zaXRpbmcgKGJhY2tn
cm91bmQgaW1hZ2VzKSBmb3IgQ29vcmRpbmF0ZWRHcmFwaGljcy9UZXh0dXJlTWFwcGVyR0wuCisg
ICAgICAgIFVzZSB0aGUgZXhpc3RpbmcgcGF0dGVyblRyYW5zZm9ybSBzaGFkZXIgdW5pZm9ybSwg
bXVsdGlwbHlpbmcgaXQgYnkgYSBtYXRyaXggY2FsY3VsYXRlZAorICAgICAgICB1c2luZyB0aGUg
Y29udGVudHNSZWN0LCB0aWxlU2l6ZSBhbmQgdGlsZVBoYXNlLgorCisgICAgICAgIENvdmVyZWQg
YnkgZXhpc3RpbmcgdGVzdHMgaW4gY29tcG9zaXRpbmcvcGF0dGVybnMuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6CisgICAgICAgIChHcmFwaGljc0xheWVy
KToKKyAgICAgICAgICAgIENvbmRpdGlvbmFsbHkgZW5hYmxlIHBhdHRlcm4gY29tcG9zaXRpbmcg
Zm9yIGNvb3JkaW5hdGVkIGdyYXBoaWNzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
cjo6VGV4dHVyZU1hcHBlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OnNldFBhdHRl
cm5UcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6c2V0V3JhcE1v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6d3JhcE1vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6cGF0dGVyblRyYW5zZm9ybSk6CisgICAgICAgICAg
ICBBZGQgd3JhcE1vZGUgYW5kIHBhdHRlcm5UcmFuc2Zvcm0gcHJvcGVydGllcyB0byB0aGUgVGV4
dHVyZU1hcHBlciBzdGF0ZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpk
cmF3VGV4dHVyZWRRdWFkV2l0aFByb2dyYW0pOgorICAgICAgICAgICAgUGFpbnQgd2l0aCBHTF9S
RVBFQVQgYW5kIGEgcGF0dGVybiB0cmFuc2Zvcm0gd2hlbiBuZWVkZWQuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6Y29tcHV0ZVBhdHRlcm5UcmFuc2Zvcm1JZk5l
ZWRlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXJMYXllcjo6cGFpbnRTZWxmKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXll
cjo6c2V0Q29udGVudHNSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXll
cjo6c2V0Q29udGVudHNUaWxlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
TGF5ZXI6OnNldENvbnRlbnRzVGlsZVBoYXNlKToKKyAgICAgICAgICAgIEFwcGx5IHRoZSBwYXR0
ZXJuVHJhbnNmb3JtIGZyb20gdGhlIHRpbGUgc2l6ZS9waGFzZS4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJMYXllcjo6VGV4dHVyZU1hcHBlckxheWVyKToKKyAgICAgICAgKFRl
eHR1cmVNYXBwZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6
OnNldFNob3VsZE1hcEJhY2tpbmdTdG9yZVRvQ29udGVudHNSZWN0KToKKyAgICAgICAgKFN0YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6U3RhdGU6OlN0YXRlKToK
KyAgICAgICAgICAgIEFsbG93IHRoZSBjbGllbnQgdG8gY29uZmlndXJlIHdoZXRoZXIgYSBsYXll
ciB1c2VzIGl0cyBib3VuZHMgb3IgaXRzCisgICAgICAgICAgICBjb250ZW50cyByZWN0IHRvIHBh
aW50IHRoZSBiYWNraW5nIHN0b3JlLgorICAgICAgICAgICAgVGhpcyBpcyBuZWVkZWQgbm93IHNp
bmNlIGxheWVycyB3aXRoIGJhY2tncm91bmQgaW1hZ2VzLCB1bmxpa2UgbGF5ZXJzCisgICAgICAg
ICAgICB3aXRoIHJlZ3VsYXIgaW1hZ2VzLCBtYXkgaGF2ZSBib3VuZHMgdGhhdCBhcmUgZ3JlYXRl
ciB0aGFuIHRoZSBjb250ZW50cworICAgICAgICAgICAgcmVjdC4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250
ZW50c1RpbGVTaXplKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RpbGVQaGFzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNob3VsZFN1cHBvcnRDb250ZW50
c1RpbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpzdXBwb3J0c0NvbnRl
bnRzVGlsaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAgIChDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRMYXllclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6YXNzaWduSW1hZ2VCYWNraW5nVG9MYXllcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NTdGF0ZS5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUpOgor
ICAgICAgICAgICAgTG9naWMgdG8gcGFzcyB0aGUgdGlsZVNpemUvdGlsZVBoYXNlIGZyb20gQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyCisgICAgICAgICAgICB0byBUZXh0dXJlTWFwcGVyTGF5ZXIu
CisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRGlyZWN0bHlDb21wb3NpdGVkQmFj
a2dyb3VuZEltYWdlKToKKyAgICAgICAgICAgIERvbid0IHJlc2V0IHRoZSBsYXllcidzIGltYWdl
IGNvbnRlbnRzIHdoZW4gdGhpcyBpcyBhIGRpcmVjdGx5IGNvbXBvc2l0ZWQgaW1hZ2UuCisKIDIw
MTMtMDQtMTAgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBB
bGxvdyBkaXJlY3QgY29tcG9zaXRpbmcgb2YgYmFja2dyb3VuZCBpbWFnZXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA5NmNhYjUzMzMzY2ZiYWFlNzU1YzcxMjQ0YjliYjVkMGRmNzM3NDNlLi5lZDhmMWFmOWNmNmY4
ODc5MzMwNDhkMWFlMzA4NWEwMjg5MWMxYThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTMtMDQtMTUgIE5vYW0gUm9zZW50aGFsICA8bm9hbUB3ZWJraXQub3JnPgorCisgICAgICAg
IFtUZXhtYXBdIEltcGxlbWVudGF0aW9uIGZvciBwYXR0ZXJuIGNvbXBvc2l0aW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk1ODgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZXJpYWxpemUgdGhlIHR3
byBuZXcgcHJvcGVydGllcyBmcm9tIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciB0byBDb29yZGlu
YXRlZEdyYXBoaWNzU2NlbmUuCisKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoQ29yZUlQ
Qzo6OjplbmNvZGUpOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNvZGUpOgorICAgICAgICAgICAg
RW5jb2RlL2RlY29kZSB0aGUgbmV3IHRpbGluZyBwcm9wZXJ0aWVzLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpDb29y
ZGluYXRlZExheWVyVHJlZUhvc3QpOgorICAgICAgICAgICAgRW5hYmxlIHBhdHRlcm4gY29tcG9z
aXRpbmcgZm9yIGNvb3JkaW5hdGVkIGdyYXBoaWNzLgorICAgICAgICAgICAgVGhpcyBpcyBuZWVk
ZWQgc2luY2Ugd2UgZG9uJ3Qgd2FudCB0byBlbmFibGUgcGF0dGVybiBjb21wb3NpdGluZyBmb3IK
KyAgICAgICAgICAgIFdlYktpdDEgeWV0LgorCiAyMDEzLTA0LTE1ICBCYWxhenMgS2VsZW1lbiAg
PGtiYWxhenNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbQ29vcmRHZnhdIEJhY2tncm91bmQgY29s
b3Igc2hvdWxkIG5vdCBiZSBwYXJ0IG9mIEdyYXBoaWNzTGF5ZXJTdGF0ZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IDE4NGI0MmNh
NzE4YTNlODM5ZWZkNzRkMGJmYzNiZmZiNTVmNzI2ZWUuLmM5NWZkNDFlYzEzNTcyZTBjOWY5OTI5
YWI2NDg1ODY5ZWI2YzQwNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmgKQEAgLTQ0MywxMSArNDQzLDE1IEBAIHB1YmxpYzoKICNlbmRp
ZgogICAgIH0KIAorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyAgICBzdGF0aWMgYm9v
bCBzdXBwb3J0c0NvbnRlbnRzVGlsaW5nKCk7CisjZWxzZQogICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzQ29udGVudHNUaWxpbmcoKQogICAgIHsKICAgICAgICAgLy8gRklYTUU6IEVuYWJsZSB0aGUg
ZmVhdHVyZSBvbiBkaWZmZXJlbnQgcG9ydHMuCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CisjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyLmNwcAppbmRleCA0ZGMyODk5N2M5YWU0ZDUzMDRiNjEwYzRjNzY2YTE3NWI1MWQ5YmRhLi4x
MmIwNGJhNDI0MGVhMTAwY2I5YmVkMDg1MmViMjkyNzE5YzcwMTE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIu
Y3BwCkBAIC0xNDMsNiArMTQzLDcgQEAgVGV4dHVyZU1hcHBlcjo6VGV4dHVyZU1hcHBlcihBY2Nl
bGVyYXRpb25Nb2RlIGFjY2VsZXJhdGlvbk1vZGUpCiAgICAgLCBtX3RleHR1cmVQb29sKGFkb3B0
UHRyKG5ldyBCaXRtYXBUZXh0dXJlUG9vbCgpKSkKICAgICAsIG1fYWNjZWxlcmF0aW9uTW9kZShh
Y2NlbGVyYXRpb25Nb2RlKQogICAgICwgbV9pc01hc2tNb2RlKGZhbHNlKQorICAgICwgbV93cmFw
TW9kZShTdHJldGNoV3JhcCkKIHsgfQogCiBUZXh0dXJlTWFwcGVyOjp+VGV4dHVyZU1hcHBlcigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXIuaAppbmRleCA3ZGVkY2IxNDVjZDNiM2I5NTc4NTYwYmMyMmQxMjBiYzg3ZDNm
YmMzLi4xMzgwNzFkOWJmMzFhMDI3MTYzYjI4ZWE1OGZkMjhhYWI4OTM4ODcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyLmgKQEAgLTExNSw2ICsxMTUsMTIgQEAgcHVibGljOgogICAgIGVudW0gUGFpbnRGbGFnIHsK
ICAgICAgICAgUGFpbnRpbmdNaXJyb3JlZCA9IDEgPDwgMCwKICAgICB9OworCisgICAgZW51bSBX
cmFwTW9kZSB7CisgICAgICAgIFN0cmV0Y2hXcmFwLAorICAgICAgICBSZXBlYXRXcmFwCisgICAg
fTsKKwogICAgIHR5cGVkZWYgdW5zaWduZWQgUGFpbnRGbGFnczsKIAogICAgIHN0YXRpYyBQYXNz
T3duUHRyPFRleHR1cmVNYXBwZXI+IGNyZWF0ZShBY2NlbGVyYXRpb25Nb2RlIG5ld01vZGUgPSBT
b2Z0d2FyZU1vZGUpOwpAQCAtMTYzLDEyICsxNjksMTcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVDYWNoZWRDdXN0b21GaWx0ZXJQcm9ncmFtKEN1c3RvbUZpbHRlclByb2dyYW0q
KSB7IH0KICNlbmRpZgogCisgICAgdm9pZCBzZXRQYXR0ZXJuVHJhbnNmb3JtKGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiBwKSB7IG1fcGF0dGVyblRyYW5zZm9ybSA9IHA7IH0KKyAgICB2b2lk
IHNldFdyYXBNb2RlKFdyYXBNb2RlIG0pIHsgbV93cmFwTW9kZSA9IG07IH0KKwogcHJvdGVjdGVk
OgogICAgIGV4cGxpY2l0IFRleHR1cmVNYXBwZXIoQWNjZWxlcmF0aW9uTW9kZSk7CiAKICAgICBH
cmFwaGljc0NvbnRleHQqIG1fY29udGV4dDsKIAogICAgIGJvb2wgaXNJbk1hc2tNb2RlKCkgY29u
c3QgeyByZXR1cm4gbV9pc01hc2tNb2RlOyB9CisgICAgV3JhcE1vZGUgd3JhcE1vZGUoKSBjb25z
dCB7IHJldHVybiBtX3dyYXBNb2RlOyB9CisgICAgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgm
IHBhdHRlcm5UcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX3BhdHRlcm5UcmFuc2Zvcm07IH0K
IAogcHJpdmF0ZToKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCkBAIC0xODQsNiArMTk1LDgg
QEAgcHJpdmF0ZToKICAgICBPd25QdHI8Qml0bWFwVGV4dHVyZVBvb2w+IG1fdGV4dHVyZVBvb2w7
CiAgICAgQWNjZWxlcmF0aW9uTW9kZSBtX2FjY2VsZXJhdGlvbk1vZGU7CiAgICAgYm9vbCBtX2lz
TWFza01vZGU7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9wYXR0ZXJuVHJhbnNmb3JtOwor
ICAgIFdyYXBNb2RlIG1fd3JhcE1vZGU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCmlu
ZGV4IDdhMzVjMmViODRkMWFkNDUyMjZiYTg0NjQ2MjJkOWMzZDk5YTJmZjQuLjg4NzU2OTQ1ODdh
OGNmM2JiNDliNmMzZjhmZTBhMTlhNTA1NmNjZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCkBA
IC01NDgsOCArNTQ4LDEyIEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZWRRdWFk
V2l0aFByb2dyYW0oVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0qIHByCiAgICAgR0MzRGVudW0g
dGFyZ2V0ID0gZmxhZ3MgJiBTaG91bGRVc2VBUkJUZXh0dXJlUmVjdCA/IEdDM0RlbnVtKEV4dGVu
c2lvbnMzRDo6VEVYVFVSRV9SRUNUQU5HTEVfQVJCKSA6IEdDM0RlbnVtKEdyYXBoaWNzQ29udGV4
dDNEOjpURVhUVVJFXzJEKTsKICAgICBtX2NvbnRleHQzRC0+YmluZFRleHR1cmUodGFyZ2V0LCB0
ZXh0dXJlKTsKICAgICBtX2NvbnRleHQzRC0+dW5pZm9ybTFpKHByb2dyYW0tPnNhbXBsZXJMb2Nh
dGlvbigpLCAwKTsKKyAgICBpZiAod3JhcE1vZGUoKSA9PSBSZXBlYXRXcmFwKSB7CisgICAgICAg
IG1fY29udGV4dDNELT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJE
LCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1MsIEdyYXBoaWNzQ29udGV4dDNEOjpS
RVBFQVQpOworICAgICAgICBtX2NvbnRleHQzRC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFw
aGljc0NvbnRleHQzRDo6UkVQRUFUKTsKKyAgICB9CiAKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBwYXR0ZXJuVHJhbnNmb3JtOworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHBhdHRlcm5UcmFu
c2Zvcm0gPSB0aGlzLT5wYXR0ZXJuVHJhbnNmb3JtKCk7CiAgICAgaWYgKGZsYWdzICYgU2hvdWxk
RmxpcFRleHR1cmUpCiAgICAgICAgIHBhdHRlcm5UcmFuc2Zvcm0uZmxpcFkoKTsKICAgICBpZiAo
ZmxhZ3MgJiBTaG91bGRVc2VBUkJUZXh0dXJlUmVjdCkKQEAgLTU2NCw2ICs1NjgsOCBAQCB2b2lk
IFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmVkUXVhZFdpdGhQcm9ncmFtKFRleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtKiBwcgogICAgICAgICBmbGFncyB8PSBTaG91bGRCbGVuZDsKIAogICAg
IGRyYXcocmVjdCwgbW9kZWxWaWV3TWF0cml4LCBwcm9ncmFtLCBHcmFwaGljc0NvbnRleHQzRDo6
VFJJQU5HTEVfRkFOLCBmbGFncyk7CisgICAgbV9jb250ZXh0M0QtPnRleFBhcmFtZXRlcmkoR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dS
QVBfUywgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOworICAgIG1fY29udGV4dDNE
LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV9XUkFQX1QsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdF
KTsKIH0KIAogQml0bWFwVGV4dHVyZUdMOjpCaXRtYXBUZXh0dXJlR0woVGV4dHVyZU1hcHBlckdM
KiB0ZXh0dXJlTWFwcGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRleCBiN2M1YzBi
ODkwNjc5YTZhYzUwZjRmNmU2MGQ5NGM1YmQyZjAzMmViLi5iY2QxYzVjNzk4MDAwNzUyOGNjY2Jm
ZGYyNjQ5YjFlNjY5NGVjY2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtOTks
NiArOTksMTcgQEAgc3RhdGljIENvbG9yIGJsZW5kV2l0aE9wYWNpdHkoY29uc3QgQ29sb3ImIGNv
bG9yLCBmbG9hdCBvcGFjaXR5KQogICAgIHJldHVybiBDb2xvcihjb2xvcldpdGhPdmVycmlkZUFs
cGhhKHJnYmEsIGVmZmVjdGl2ZUFscGhhKSk7CiB9CiAKK3ZvaWQgVGV4dHVyZU1hcHBlckxheWVy
Ojpjb21wdXRlUGF0dGVyblRyYW5zZm9ybUlmTmVlZGVkKCkKK3sKKyAgICBpZiAoIW1fcGF0dGVy
blRyYW5zZm9ybURpcnR5KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhdHRlcm5UcmFuc2Zv
cm1EaXJ0eSA9IGZhbHNlOworICAgIG1fcGF0dGVyblRyYW5zZm9ybSA9CisgICAgICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4OjpyZWN0VG9SZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50Ojp6ZXJvKCks
IG1fc3RhdGUuY29udGVudHNUaWxlU2l6ZSksIG1fc3RhdGUuY29udGVudHNSZWN0KQorICAgICAg
ICAubXVsdGlwbHkoVHJhbnNmb3JtYXRpb25NYXRyaXgoKS50cmFuc2xhdGUobV9zdGF0ZS5jb250
ZW50c1RpbGVQaGFzZS54KCkgLyBtX3N0YXRlLmNvbnRlbnRzUmVjdC53aWR0aCgpLCBtX3N0YXRl
LmNvbnRlbnRzVGlsZVBoYXNlLnkoKSAvIG1fc3RhdGUuY29udGVudHNSZWN0LmhlaWdodCgpKSk7
Cit9CisKIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpwYWludFNlbGYoY29uc3QgVGV4dHVyZU1h
cHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAoIW1fc3RhdGUudmlzaWJsZSB8
fCAhbV9zdGF0ZS5jb250ZW50c1Zpc2libGUpCkBAIC0xMTAsMzAgKzEyMSw0MSBAQCB2b2lkIFRl
eHR1cmVNYXBwZXJMYXllcjo6cGFpbnRTZWxmKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlv
bnMmIG9wdGlvbnMpCiAgICAgdHJhbnNmb3JtLm11bHRpcGx5KG9wdGlvbnMudHJhbnNmb3JtKTsK
ICAgICB0cmFuc2Zvcm0ubXVsdGlwbHkobV9jdXJyZW50VHJhbnNmb3JtLmNvbWJpbmVkKCkpOwog
Ci0gICAgaWYgKG1fc3RhdGUuc29saWRDb2xvci5pc1ZhbGlkKCkgJiYgIW1fc3RhdGUuY29udGVu
dHNSZWN0LmlzRW1wdHkoKSkgeworICAgIGlmIChtX3N0YXRlLnNvbGlkQ29sb3IuaXNWYWxpZCgp
ICYmICFtX3N0YXRlLmNvbnRlbnRzUmVjdC5pc0VtcHR5KCkgJiYgbV9zdGF0ZS5zb2xpZENvbG9y
LmFscGhhKCkpIHsKICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3U29saWRDb2xv
cihtX3N0YXRlLmNvbnRlbnRzUmVjdCwgdHJhbnNmb3JtLCBibGVuZFdpdGhPcGFjaXR5KG1fc3Rh
dGUuc29saWRDb2xvciwgb3B0aW9ucy5vcGFjaXR5KSk7CiAgICAgICAgIGlmIChtX3N0YXRlLnNo
b3dEZWJ1Z0JvcmRlcnMpCiAgICAgICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdC
b3JkZXIobV9zdGF0ZS5kZWJ1Z0JvcmRlckNvbG9yLCBtX3N0YXRlLmRlYnVnQm9yZGVyV2lkdGgs
IGxheWVyUmVjdCgpLCB0cmFuc2Zvcm0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAg
b3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5zZXRXcmFwTW9kZShUZXh0dXJlTWFwcGVyOjpTdHJldGNo
V3JhcCk7CisgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5zZXRQYXR0ZXJuVHJhbnNmb3JtKFRy
YW5zZm9ybWF0aW9uTWF0cml4KCkpOworCisgICAgaWYgKCFtX3N0YXRlLmNvbnRlbnRzVGlsZVNp
emUuaXNFbXB0eSgpKSB7CisgICAgICAgIGNvbXB1dGVQYXR0ZXJuVHJhbnNmb3JtSWZOZWVkZWQo
KTsKKyAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5zZXRXcmFwTW9kZShUZXh0dXJlTWFw
cGVyOjpSZXBlYXRXcmFwKTsKKyAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5zZXRQYXR0
ZXJuVHJhbnNmb3JtKG1fcGF0dGVyblRyYW5zZm9ybSk7CisgICAgfQorCiAgICAgaWYgKG1fYmFj
a2luZ1N0b3JlKSB7CiAgICAgICAgIEFTU0VSVChtX3N0YXRlLmRyYXdzQ29udGVudCAmJiBtX3N0
YXRlLmNvbnRlbnRzVmlzaWJsZSAmJiAhbV9zdGF0ZS5zaXplLmlzRW1wdHkoKSk7Ci0gICAgICAg
IEFTU0VSVCghbGF5ZXJSZWN0KCkuaXNFbXB0eSgpKTsKLSAgICAgICAgbV9iYWNraW5nU3RvcmUt
PnBhaW50VG9UZXh0dXJlTWFwcGVyKG9wdGlvbnMudGV4dHVyZU1hcHBlciwgbGF5ZXJSZWN0KCks
IHRyYW5zZm9ybSwgb3B0aW9ucy5vcGFjaXR5KTsKKyAgICAgICAgRmxvYXRSZWN0IHRhcmdldFJl
Y3QgPSBtX3N0YXRlLnNob3VsZE1hcEJhY2tpbmdTdG9yZVRvQ29udGVudHNSZWN0ID8gbV9zdGF0
ZS5jb250ZW50c1JlY3QgOiBsYXllclJlY3QoKTsKKyAgICAgICAgQVNTRVJUKCF0YXJnZXRSZWN0
LmlzRW1wdHkoKSk7CisgICAgICAgIG1fYmFja2luZ1N0b3JlLT5wYWludFRvVGV4dHVyZU1hcHBl
cihvcHRpb25zLnRleHR1cmVNYXBwZXIsIHRhcmdldFJlY3QsIHRyYW5zZm9ybSwgb3B0aW9ucy5v
cGFjaXR5KTsKICAgICAgICAgaWYgKG1fc3RhdGUuc2hvd0RlYnVnQm9yZGVycykKLSAgICAgICAg
ICAgIG1fYmFja2luZ1N0b3JlLT5kcmF3Qm9yZGVyKG9wdGlvbnMudGV4dHVyZU1hcHBlciwgbV9z
dGF0ZS5kZWJ1Z0JvcmRlckNvbG9yLCBtX3N0YXRlLmRlYnVnQm9yZGVyV2lkdGgsIGxheWVyUmVj
dCgpLCB0cmFuc2Zvcm0pOworICAgICAgICAgICAgbV9iYWNraW5nU3RvcmUtPmRyYXdCb3JkZXIo
b3B0aW9ucy50ZXh0dXJlTWFwcGVyLCBtX3N0YXRlLmRlYnVnQm9yZGVyQ29sb3IsIG1fc3RhdGUu
ZGVidWdCb3JkZXJXaWR0aCwgdGFyZ2V0UmVjdCwgdHJhbnNmb3JtKTsKICAgICAgICAgLy8gT25s
eSBkcmF3IHJlcGFpbnQgY291bnQgZm9yIHRoZSBtYWluIGJhY2tpbmcgc3RvcmUuCiAgICAgICAg
IGlmIChtX3N0YXRlLnNob3dSZXBhaW50Q291bnRlcikKLSAgICAgICAgICAgIG1fYmFja2luZ1N0
b3JlLT5kcmF3UmVwYWludENvdW50ZXIob3B0aW9ucy50ZXh0dXJlTWFwcGVyLCBtX3N0YXRlLnJl
cGFpbnRDb3VudCwgbV9zdGF0ZS5kZWJ1Z0JvcmRlckNvbG9yLCBsYXllclJlY3QoKSwgdHJhbnNm
b3JtKTsKKyAgICAgICAgICAgIG1fYmFja2luZ1N0b3JlLT5kcmF3UmVwYWludENvdW50ZXIob3B0
aW9ucy50ZXh0dXJlTWFwcGVyLCBtX3N0YXRlLnJlcGFpbnRDb3VudCwgbV9zdGF0ZS5kZWJ1Z0Jv
cmRlckNvbG9yLCB0YXJnZXRSZWN0LCB0cmFuc2Zvcm0pOwogICAgIH0KIAotICAgIGlmIChtX2Nv
bnRlbnRzTGF5ZXIpIHsKLSAgICAgICAgQVNTRVJUKCFsYXllclJlY3QoKS5pc0VtcHR5KCkpOwot
ICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnBhaW50VG9UZXh0dXJlTWFwcGVyKG9wdGlvbnMudGV4
dHVyZU1hcHBlciwgbV9zdGF0ZS5jb250ZW50c1JlY3QsIHRyYW5zZm9ybSwgb3B0aW9ucy5vcGFj
aXR5KTsKLSAgICAgICAgaWYgKG1fc3RhdGUuc2hvd0RlYnVnQm9yZGVycykKLSAgICAgICAgICAg
IG1fY29udGVudHNMYXllci0+ZHJhd0JvcmRlcihvcHRpb25zLnRleHR1cmVNYXBwZXIsIG1fc3Rh
dGUuZGVidWdCb3JkZXJDb2xvciwgbV9zdGF0ZS5kZWJ1Z0JvcmRlcldpZHRoLCBtX3N0YXRlLmNv
bnRlbnRzUmVjdCwgdHJhbnNmb3JtKTsKLSAgICB9CisgICAgaWYgKCFtX2NvbnRlbnRzTGF5ZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVCghbGF5ZXJSZWN0KCkuaXNFbXB0eSgpKTsK
KyAgICBtX2NvbnRlbnRzTGF5ZXItPnBhaW50VG9UZXh0dXJlTWFwcGVyKG9wdGlvbnMudGV4dHVy
ZU1hcHBlciwgbV9zdGF0ZS5jb250ZW50c1JlY3QsIHRyYW5zZm9ybSwgb3B0aW9ucy5vcGFjaXR5
KTsKKyAgICBpZiAobV9zdGF0ZS5zaG93RGVidWdCb3JkZXJzKQorICAgICAgICBtX2NvbnRlbnRz
TGF5ZXItPmRyYXdCb3JkZXIob3B0aW9ucy50ZXh0dXJlTWFwcGVyLCBtX3N0YXRlLmRlYnVnQm9y
ZGVyQ29sb3IsIG1fc3RhdGUuZGVidWdCb3JkZXJXaWR0aCwgbV9zdGF0ZS5jb250ZW50c1JlY3Qs
IHRyYW5zZm9ybSk7CiB9CiAKIGludCBUZXh0dXJlTWFwcGVyTGF5ZXI6OmNvbXBhcmVHcmFwaGlj
c0xheWVyc1pWYWx1ZShjb25zdCB2b2lkKiBhLCBjb25zdCB2b2lkKiBiKQpAQCAtNTUxLDcgKzU3
MywyNiBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c2V0Q2hpbGRyZW5UcmFuc2Zvcm0oY29u
c3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIGNoaWxkcgogCiB2b2lkIFRleHR1cmVNYXBwZXJMYXll
cjo6c2V0Q29udGVudHNSZWN0KGNvbnN0IEludFJlY3QmIGNvbnRlbnRzUmVjdCkKIHsKKyAgICBp
ZiAoY29udGVudHNSZWN0ID09IG1fc3RhdGUuY29udGVudHNSZWN0KQorICAgICAgICByZXR1cm47
CiAgICAgbV9zdGF0ZS5jb250ZW50c1JlY3QgPSBjb250ZW50c1JlY3Q7CisgICAgbV9wYXR0ZXJu
VHJhbnNmb3JtRGlydHkgPSB0cnVlOworfQorCit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c2V0
Q29udGVudHNUaWxlU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIGlmIChzaXplID09
IG1fc3RhdGUuY29udGVudHNUaWxlU2l6ZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fc3RhdGUu
Y29udGVudHNUaWxlU2l6ZSA9IHNpemU7CisgICAgbV9wYXR0ZXJuVHJhbnNmb3JtRGlydHkgPSB0
cnVlOworfQorCit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c2V0Q29udGVudHNUaWxlUGhhc2Uo
Y29uc3QgSW50UG9pbnQmIHBoYXNlKQoreworICAgIGlmIChwaGFzZSA9PSBtX3N0YXRlLmNvbnRl
bnRzVGlsZVBoYXNlKQorICAgICAgICByZXR1cm47CisgICAgbV9zdGF0ZS5jb250ZW50c1RpbGVQ
aGFzZSA9IHBoYXNlOworICAgIG1fcGF0dGVyblRyYW5zZm9ybURpcnR5ID0gdHJ1ZTsKIH0KIAog
dm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldE1hc2tzVG9Cb3VuZHMoYm9vbCBtYXNrc1RvQm91
bmRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCmluZGV4IGFmMzQxM2U4ZWYzOTc3YzEyNjkwOTA4
ZjE2YmNkY2IzNjAwZTYyYmUuLjNiOGExNzEwZDEyNjJiZjI0YzE5NmJiZWQyNDZmMzIxOGQ4ODMw
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgog
ICAgICAgICAsIG1faWQoMCkKICAgICAgICAgLCBtX3Njcm9sbENsaWVudCgwKQogICAgICAgICAs
IG1faXNTY3JvbGxhYmxlKGZhbHNlKQorICAgICAgICAsIG1fcGF0dGVyblRyYW5zZm9ybURpcnR5
KGZhbHNlKQogICAgIHsgfQogCiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlckxheWVyKCk7CkBA
IC05Nyw2ICs5OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEJhY2tmYWNlVmlzaWJpbGl0eShi
b29sKTsKICAgICB2b2lkIHNldE9wYWNpdHkoZmxvYXQpOwogICAgIHZvaWQgc2V0U29saWRDb2xv
cihjb25zdCBDb2xvciYpOworICAgIHZvaWQgc2V0Q29udGVudHNUaWxlU2l6ZShjb25zdCBJbnRT
aXplJik7CisgICAgdm9pZCBzZXRDb250ZW50c1RpbGVQaGFzZShjb25zdCBJbnRQb2ludCYpOwog
I2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICB2b2lkIHNldEZpbHRlcnMoY29uc3QgRmlsdGVy
T3BlcmF0aW9ucyYpOwogI2VuZGlmCkBAIC0xMTgsNiArMTIxLDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0Rml4ZWRUb1ZpZXdwb3J0KGJvb2wpOwogICAgIGJvb2wgZml4ZWRUb1ZpZXdwb3J0KCkg
Y29uc3QgeyByZXR1cm4gbV9maXhlZFRvVmlld3BvcnQ7IH0KICAgICB2b2lkIHNldEJhY2tpbmdT
dG9yZShQYXNzUmVmUHRyPFRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmU+KTsKKyAgICB2b2lkIHNl
dFNob3VsZE1hcEJhY2tpbmdTdG9yZVRvQ29udGVudHNSZWN0KGJvb2wgbSkgeyBtX3N0YXRlLnNo
b3VsZE1hcEJhY2tpbmdTdG9yZVRvQ29udGVudHNSZWN0ID0gbTsgfQogCiAgICAgdm9pZCBzeW5j
QW5pbWF0aW9ucygpOwogICAgIGJvb2wgZGVzY2VuZGFudHNPclNlbGZIYXZlUnVubmluZ0FuaW1h
dGlvbnMoKSBjb25zdDsKQEAgLTE1Nyw2ICsxNjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFp
bnRTZWxmQW5kQ2hpbGRyZW4oY29uc3QgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYpOwogICAg
IHZvaWQgcGFpbnRTZWxmQW5kQ2hpbGRyZW5XaXRoUmVwbGljYShjb25zdCBUZXh0dXJlTWFwcGVy
UGFpbnRPcHRpb25zJik7CiAgICAgdm9pZCBhcHBseU1hc2soY29uc3QgVGV4dHVyZU1hcHBlclBh
aW50T3B0aW9ucyYpOworICAgIHZvaWQgY29tcHV0ZVBhdHRlcm5UcmFuc2Zvcm1JZk5lZWRlZCgp
OwogCiAgICAgLy8gR3JhcGhpY3NMYXllckFuaW1hdGlvbjo6Q2xpZW50CiAgICAgdmlydHVhbCB2
b2lkIHNldEFuaW1hdGVkVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JikgT1ZF
UlJJREU7CkBAIC0yMDUsNiArMjEwLDggQEAgcHJpdmF0ZToKICAgICAgICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggY2hpbGRyZW5UcmFuc2Zvcm07CiAgICAgICAgIGZsb2F0IG9wYWNpdHk7CiAgICAg
ICAgIEZsb2F0UmVjdCBjb250ZW50c1JlY3Q7CisgICAgICAgIEludFNpemUgY29udGVudHNUaWxl
U2l6ZTsKKyAgICAgICAgSW50UG9pbnQgY29udGVudHNUaWxlUGhhc2U7CiAgICAgICAgIFRleHR1
cmVNYXBwZXJMYXllciogbWFza0xheWVyOwogICAgICAgICBUZXh0dXJlTWFwcGVyTGF5ZXIqIHJl
cGxpY2FMYXllcjsKICAgICAgICAgQ29sb3Igc29saWRDb2xvcjsKQEAgLTIyNCw2ICsyMzEsNyBA
QCBwcml2YXRlOgogICAgICAgICBib29sIHZpc2libGUgOiAxOwogICAgICAgICBib29sIHNob3dE
ZWJ1Z0JvcmRlcnMgOiAxOwogICAgICAgICBib29sIHNob3dSZXBhaW50Q291bnRlciA6IDE7Cisg
ICAgICAgIGJvb2wgc2hvdWxkTWFwQmFja2luZ1N0b3JlVG9Db250ZW50c1JlY3QgOiAxOwogCiAg
ICAgICAgIFN0YXRlKCkKICAgICAgICAgICAgIDogb3BhY2l0eSgxKQpAQCAtMjQwLDYgKzI0OCw3
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAsIHZpc2libGUodHJ1ZSkKICAgICAgICAgICAgICwg
c2hvd0RlYnVnQm9yZGVycyhmYWxzZSkKICAgICAgICAgICAgICwgc2hvd1JlcGFpbnRDb3VudGVy
KGZhbHNlKQorICAgICAgICAgICAgLCBzaG91bGRNYXBCYWNraW5nU3RvcmVUb0NvbnRlbnRzUmVj
dChmYWxzZSkKICAgICAgICAgewogICAgICAgICB9CiAgICAgfTsKQEAgLTI1NCw2ICsyNjMsOCBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1Njcm9sbGFibGU7CiAgICAgRmxvYXRTaXplIG1fdXNl
clNjcm9sbE9mZnNldDsKICAgICBGbG9hdFNpemUgbV9hY2N1bXVsYXRlZFNjcm9sbE9mZnNldEZy
YWN0aW9uYWxQYXJ0OworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fcGF0dGVyblRyYW5zZm9y
bTsKKyAgICBib29sIG1fcGF0dGVyblRyYW5zZm9ybURpcnR5OwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRl
eCBmNmEyZTE0NTkwMTllOGMyN2FiNTY4ODkxOGMzODk4M2FmMjE3YWU0Li41ODZlNDdiZWNiMTYz
MDRmOGVhNWFlZWQ2MGY0YTM1Y2I5YzBhNzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtMzQwLDYgKzM0MCw0MCBA
QCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNSZWN0KGNvbnN0IElu
dFJlY3QmIHIpCiAgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwogfQogCit2b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUaWxlU2l6ZShjb25zdCBJbnRTaXplJiBzKQor
eworICAgIGlmIChjb250ZW50c1RpbGVTaXplKCkgPT0gcykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUaWxlU2l6ZShzKTsKKyAgICBtX2xheWVyU3Rh
dGUuY29udGVudHNUaWxlU2l6ZSA9IHM7CisgICAgbV9sYXllclN0YXRlLmNvbnRlbnRzVGlsaW5n
Q2hhbmdlZCA9IHRydWU7CisgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOworfQorCit2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUaWxlUGhhc2UoY29uc3QgSW50UG9p
bnQmIHApCit7CisgICAgaWYgKGNvbnRlbnRzVGlsZVBoYXNlKCkgPT0gcCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUaWxlUGhhc2UocCk7CisgICAg
bV9sYXllclN0YXRlLmNvbnRlbnRzVGlsZVBoYXNlID0gcDsKKyAgICBtX2xheWVyU3RhdGUuY29u
dGVudHNUaWxpbmdDaGFuZ2VkID0gdHJ1ZTsKKyAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7Cit9
CisKK3N0YXRpYyBib29sIHNfc2hvdWxkU3VwcG9ydENvbnRlbnRzVGlsaW5nID0gZmFsc2U7CisK
K3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG91bGRTdXBwb3J0Q29udGVudHNU
aWxpbmcoYm9vbCBzKQoreworICAgIHNfc2hvdWxkU3VwcG9ydENvbnRlbnRzVGlsaW5nID0gczsK
K30KKworYm9vbCBHcmFwaGljc0xheWVyOjpzdXBwb3J0c0NvbnRlbnRzVGlsaW5nKCkKK3sKKyAg
ICByZXR1cm4gc19zaG91bGRTdXBwb3J0Q29udGVudHNUaWxpbmc7Cit9CisKIHZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c05lZWRzRGlzcGxheSgpCiB7CiAjaWYgVVNF
KEdSQVBISUNTX1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggNDViZmIyNzNkMWRkNDQ3ZGFjMWE2ZDAwMThkMGMz
MDkwZjc0ZTBhMC4uOWM2M2MwODgwNzMyZTQ5YTFiNjdiYzhhZGE0Nzc4ZjZlNTYxN2ZmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
aApAQCAtODYsNiArODYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEJhY2tmYWNl
VmlzaWJpbGl0eShib29sKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0T3BhY2l0eShm
bG9hdCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzUmVjdChjb25zdCBJ
bnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVGlsZVBoYXNl
KGNvbnN0IEludFBvaW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRz
VGlsZVNpemUoY29uc3QgSW50U2l6ZSYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRD
b250ZW50c1RvSW1hZ2UoSW1hZ2UqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29u
dGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wpIE9WRVJSSURFOwpAQCAtMTQ1LDYgKzE0Nyw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHB1cmdlQmFja2luZ1N0b3JlcygpOwogICAgIGJvb2wgaGFzUGVu
ZGluZ1Zpc2libGVDaGFuZ2VzKCk7CiAKKyAgICBzdGF0aWMgdm9pZCBzZXRTaG91bGRTdXBwb3J0
Q29udGVudHNUaWxpbmcoYm9vbCk7CisKIHByaXZhdGU6CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZB
Q0UpCiAgICAgZW51bSBQZW5kaW5nQ2FudmFzT3BlcmF0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEdyYXBoaWNzU2NlbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKaW5kZXggYjIxZWVh
ZGU4YmZlMmE2MjdmYjgyOTM0ZDgxOGQ0MTk4YmE3NzkxYi4uY2E4ZmQzOWQ2OTczZTJiMGVhMGE1
NTI5NTZhYzAwMDJkODcxZDM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKQEAgLTMyMyw2ICszMjMsMTEgQEAgdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldExheWVyU3RhdGUoQ29vcmRpbmF0ZWRMYXllcklE
IGlkLCBjb25zdCBDb29yZGkKICAgICBpZiAobGF5ZXJTdGF0ZS5jb250ZW50c1JlY3RDaGFuZ2Vk
KQogICAgICAgICBsYXllci0+c2V0Q29udGVudHNSZWN0KGxheWVyU3RhdGUuY29udGVudHNSZWN0
KTsKIAorICAgIGlmIChsYXllclN0YXRlLmNvbnRlbnRzVGlsaW5nQ2hhbmdlZCkgeworICAgICAg
ICBsYXllci0+c2V0Q29udGVudHNUaWxlUGhhc2UobGF5ZXJTdGF0ZS5jb250ZW50c1RpbGVQaGFz
ZSk7CisgICAgICAgIGxheWVyLT5zZXRDb250ZW50c1RpbGVTaXplKGxheWVyU3RhdGUuY29udGVu
dHNUaWxlU2l6ZSk7CisgICAgfQorCiAgICAgaWYgKGxheWVyU3RhdGUub3BhY2l0eUNoYW5nZWQp
CiAgICAgICAgIGxheWVyLT5zZXRPcGFjaXR5KGxheWVyU3RhdGUub3BhY2l0eSk7CiAKQEAgLTU3
OSwxMSArNTg0LDE0IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphc3NpZ25JbWFn
ZUJhY2tpbmdUb0xheWVyKFRleHR1cmVNYXBwZXJMYXllciogbGF5CiAKICAgICBpZiAoaW1hZ2VJ
RCA9PSBJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgewogICAgICAgICBsYXllci0+
c2V0QmFja2luZ1N0b3JlKDApOworICAgICAgICBsYXllci0+c2V0U2hvdWxkTWFwQmFja2luZ1N0
b3JlVG9Db250ZW50c1JlY3QoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQorCiAgICAg
SW1hZ2VCYWNraW5nTWFwOjppdGVyYXRvciBpdCA9IG1faW1hZ2VCYWNraW5ncy5maW5kKGltYWdl
SUQpOwogICAgIEFTU0VSVChpdCAhPSBtX2ltYWdlQmFja2luZ3MuZW5kKCkpOwogICAgIGxheWVy
LT5zZXRCYWNraW5nU3RvcmUoaXQtPnZhbHVlLmdldCgpKTsKKy8vICAgIGxheWVyLT5zZXRTaG91
bGRNYXBCYWNraW5nU3RvcmVUb0NvbnRlbnRzUmVjdCh0cnVlKTsKIH0KIAogdm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzU2NlbmU6OnJlbW92ZVJlbGVhc2VkSW1hZ2VCYWNraW5nc0lmTmVlZGVkKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUu
aAppbmRleCBjN2ZmN2E0ODMxZDI3ZjYwMDE5YWEyNTVmNGRiMmU1ZDE3YjA0NjgyLi45M2UyNWNi
YTE5NzkzMTIyM2VmNGEzMWEwZjdkMzA0ZmIyOWEzZjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFw
aGljc1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oCkBAIC05Myw2ICs5Myw3IEBA
IHN0cnVjdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSB7CiAgICAgICAgICAgICBib29s
IGNhbnZhc1Nob3VsZFN3YXBCdWZmZXJzOiAxOwogICAgICAgICAgICAgYm9vbCBpc1Njcm9sbGFi
bGVDaGFuZ2VkOiAxOwogICAgICAgICAgICAgYm9vbCBjb21taXR0ZWRTY3JvbGxPZmZzZXRDaGFu
Z2VkOiAxOworICAgICAgICAgICAgYm9vbCBjb250ZW50c1RpbGluZ0NoYW5nZWQ6IDE7CiAgICAg
ICAgIH07CiAgICAgICAgIHVuc2lnbmVkIGNoYW5nZU1hc2s7CiAgICAgfTsKQEAgLTE0MSw2ICsx
NDIsOCBAQCBzdHJ1Y3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUgewogICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjaGls
ZHJlblRyYW5zZm9ybTsKICAgICBJbnRSZWN0IGNvbnRlbnRzUmVjdDsKKyAgICBJbnRQb2ludCBj
b250ZW50c1RpbGVQaGFzZTsKKyAgICBJbnRTaXplIGNvbnRlbnRzVGlsZVNpemU7CiAgICAgZmxv
YXQgb3BhY2l0eTsKICAgICBDb2xvciBzb2xpZENvbG9yOwogICAgIENvbG9yIGRlYnVnQm9yZGVy
Q29sb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCmluZGV4IGI0MmZlMWQ4ODg3Y2ZlZjAzMWM3MzMyMWFmN2M5ZGRkM2FmYjdhYmMuLmE5YmI4
N2IzN2ZhZmIwYWFmOTdiMGIxNWNjOTg5ZmE0MjBiMjhlZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xNDM5LDYgKzE0MzksOSBA
QCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRGlyZWN0bHlDb21wb3NpdGVkQmFja2dy
b3VuZEltYWdlKGJvb2wgaXNTaW1wbGVDbwogICAgIGlmICghR3JhcGhpY3NMYXllcjo6c3VwcG9y
dHNDb250ZW50c1RpbGluZygpKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoaXNEaXJlY3Rs
eUNvbXBvc2l0ZWRJbWFnZSgpKQorICAgICAgICByZXR1cm47CisKICAgICBjb25zdCBSZW5kZXJT
dHlsZSogc3R5bGUgPSByZW5kZXJlcigpLT5zdHlsZSgpOwogCiAgICAgaWYgKCFpc1NpbXBsZUNv
bnRhaW5lciB8fCAhc3R5bGUtPmhhc0JhY2tncm91bmRJbWFnZSgpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA2NjY1
NGY4NzdmMzExNzJkYjc0MjhhNjAyOTZkNWFiZTEyYjJhNmU3Li5jMDI3MzRhNzdhZTQ2ZGUyYWRl
MzJjYTJlYjM0ZTI3ZWRmY2NkMDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKQEAgLTg0OSw2ICs4NDksMTEgQEAgdm9pZCBB
cmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlPjo6ZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2QKICAgICBpZiAoc3RhdGUuY29udGVudHNSZWN0Q2hhbmdlZCkKICAg
ICAgICAgZW5jb2RlciA8PCBzdGF0ZS5jb250ZW50c1JlY3Q7CiAKKyAgICBpZiAoc3RhdGUuY29u
dGVudHNUaWxpbmdDaGFuZ2VkKSB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGUuY29udGVudHNU
aWxlU2l6ZTsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5jb250ZW50c1RpbGVQaGFzZTsKKyAg
ICB9CisKICAgICBpZiAoc3RhdGUub3BhY2l0eUNoYW5nZWQpCiAgICAgICAgIGVuY29kZXIgPDwg
c3RhdGUub3BhY2l0eTsKIApAQCAtOTI4LDYgKzkzMywxMyBAQCBib29sIEFyZ3VtZW50Q29kZXI8
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBk
ZWNvZAogICAgIGlmIChzdGF0ZS5jb250ZW50c1JlY3RDaGFuZ2VkICYmICFkZWNvZGVyLmRlY29k
ZShzdGF0ZS5jb250ZW50c1JlY3QpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAo
c3RhdGUuY29udGVudHNUaWxpbmdDaGFuZ2VkKSB7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoc3RhdGUuY29udGVudHNUaWxlU2l6ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGUuY29udGVudHNUaWxlUGhhc2UpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIGlmIChzdGF0ZS5vcGFjaXR5Q2hh
bmdlZCAmJiAhZGVjb2Rlci5kZWNvZGUoc3RhdGUub3BhY2l0eSkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggZDIzZDZkZDcyYTgyOGVlOGNlYzBmNDkxNmQ5ZTBmYjQx
YzBiNTRlNy4uYTc2ZDNlYTgyNTU1MzMxM2FhNmMxOGFhODZmMmExMzgxNjE0M2JjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhv
c3QuY3BwCkBAIC0xMTksNiArMTE5LDcgQEAgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpDb29y
ZGluYXRlZExheWVyVHJlZUhvc3QoV2ViUGFnZSogd2ViUGFnZSkKICAgICBtX3Jvb3RMYXllci0+
YWRkQ2hpbGQobV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLmdldCgpKTsKIAogICAgIENvb3Jk
aW5hdGVkU3VyZmFjZTo6c2V0RmFjdG9yeShjcmVhdGVDb29yZGluYXRlZFN1cmZhY2UpOworICAg
IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0U2hvdWxkU3VwcG9ydENvbnRlbnRzVGlsaW5n
KHRydWUpOwogCiAgICAgaWYgKG1fd2ViUGFnZS0+aGFzUGFnZU92ZXJsYXkoKSkKICAgICAgICAg
Y3JlYXRlUGFnZU92ZXJsYXlMYXllcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198850</attachid>
            <date>2013-04-19 06:36:06 -0700</date>
            <delta_ts>2013-04-19 09:00:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109588-20130419153534.patch</filename>
            <type>text/plain</type>
            <size>25615</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY0NGY5YTU1MTdjNDZh
OTNhNDAyNjAxYTMxNzMzNGVmYzZiYzQxMi4uMTQwOWI2ZjRiNTI4ZmM3ODA1YzZmMzU1MjIxZmQ4
NTEzMDNhYjczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEzLTA0LTE1ICBOb2Ft
IFJvc2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBbVGV4bWFwXSBJbXBsZW1l
bnRhdGlvbiBmb3IgcGF0dGVybiBjb21wb3NpdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIHBhdHRlcm4gY29tcG9zaXRpbmcgKGJhY2tn
cm91bmQgaW1hZ2VzKSBmb3IgQ29vcmRpbmF0ZWRHcmFwaGljcy9UZXh0dXJlTWFwcGVyR0wuCisg
ICAgICAgIFVzZSB0aGUgZXhpc3RpbmcgcGF0dGVyblRyYW5zZm9ybSBzaGFkZXIgdW5pZm9ybSwg
bXVsdGlwbHlpbmcgaXQgYnkgYSBtYXRyaXggY2FsY3VsYXRlZAorICAgICAgICB1c2luZyB0aGUg
Y29udGVudHNSZWN0LCB0aWxlU2l6ZSBhbmQgdGlsZVBoYXNlLgorCisgICAgICAgIENvdmVyZWQg
YnkgZXhpc3RpbmcgdGVzdHMgaW4gY29tcG9zaXRpbmcvcGF0dGVybnMuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6CisgICAgICAgIChHcmFwaGljc0xheWVy
KToKKyAgICAgICAgICAgIENvbmRpdGlvbmFsbHkgZW5hYmxlIHBhdHRlcm4gY29tcG9zaXRpbmcg
Zm9yIGNvb3JkaW5hdGVkIGdyYXBoaWNzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
cjo6VGV4dHVyZU1hcHBlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OnNldFBhdHRl
cm5UcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6c2V0V3JhcE1v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6d3JhcE1vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6cGF0dGVyblRyYW5zZm9ybSk6CisgICAgICAgICAg
ICBBZGQgd3JhcE1vZGUgYW5kIHBhdHRlcm5UcmFuc2Zvcm0gcHJvcGVydGllcyB0byB0aGUgVGV4
dHVyZU1hcHBlciBzdGF0ZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpk
cmF3VGV4dHVyZWRRdWFkV2l0aFByb2dyYW0pOgorICAgICAgICAgICAgUGFpbnQgd2l0aCBHTF9S
RVBFQVQgYW5kIGEgcGF0dGVybiB0cmFuc2Zvcm0gd2hlbiBuZWVkZWQuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6Y29tcHV0ZVBhdHRlcm5UcmFuc2Zvcm1JZk5l
ZWRlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXJMYXllcjo6cGFpbnRTZWxmKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXll
cjo6c2V0Q29udGVudHNSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXll
cjo6c2V0Q29udGVudHNUaWxlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
TGF5ZXI6OnNldENvbnRlbnRzVGlsZVBoYXNlKToKKyAgICAgICAgICAgIEFwcGx5IHRoZSBwYXR0
ZXJuVHJhbnNmb3JtIGZyb20gdGhlIHRpbGUgc2l6ZS9waGFzZS4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJMYXllcjo6VGV4dHVyZU1hcHBlckxheWVyKToKKyAgICAgICAgKFRl
eHR1cmVNYXBwZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6
OnNldFNob3VsZE1hcEJhY2tpbmdTdG9yZVRvQ29udGVudHNSZWN0KToKKyAgICAgICAgKFN0YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6U3RhdGU6OlN0YXRlKToK
KyAgICAgICAgICAgIEFsbG93IHRoZSBjbGllbnQgdG8gY29uZmlndXJlIHdoZXRoZXIgYSBsYXll
ciB1c2VzIGl0cyBib3VuZHMgb3IgaXRzCisgICAgICAgICAgICBjb250ZW50cyByZWN0IHRvIHBh
aW50IHRoZSBiYWNraW5nIHN0b3JlLgorICAgICAgICAgICAgVGhpcyBpcyBuZWVkZWQgbm93IHNp
bmNlIGxheWVycyB3aXRoIGJhY2tncm91bmQgaW1hZ2VzLCB1bmxpa2UgbGF5ZXJzCisgICAgICAg
ICAgICB3aXRoIHJlZ3VsYXIgaW1hZ2VzLCBtYXkgaGF2ZSBib3VuZHMgdGhhdCBhcmUgZ3JlYXRl
ciB0aGFuIHRoZSBjb250ZW50cworICAgICAgICAgICAgcmVjdC4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250
ZW50c1RpbGVTaXplKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RpbGVQaGFzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNob3VsZFN1cHBvcnRDb250ZW50
c1RpbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpzdXBwb3J0c0NvbnRl
bnRzVGlsaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAgIChDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRMYXllclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6YXNzaWduSW1hZ2VCYWNraW5nVG9MYXllcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NTdGF0ZS5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUpOgor
ICAgICAgICAgICAgTG9naWMgdG8gcGFzcyB0aGUgdGlsZVNpemUvdGlsZVBoYXNlIGZyb20gQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyCisgICAgICAgICAgICB0byBUZXh0dXJlTWFwcGVyTGF5ZXIu
CisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRGlyZWN0bHlDb21wb3NpdGVkQmFj
a2dyb3VuZEltYWdlKToKKyAgICAgICAgICAgIERvbid0IHJlc2V0IHRoZSBsYXllcidzIGltYWdl
IGNvbnRlbnRzIHdoZW4gdGhpcyBpcyBhIGRpcmVjdGx5IGNvbXBvc2l0ZWQgaW1hZ2UuCisKIDIw
MTMtMDQtMTAgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBB
bGxvdyBkaXJlY3QgY29tcG9zaXRpbmcgb2YgYmFja2dyb3VuZCBpbWFnZXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA5NmNhYjUzMzMzY2ZiYWFlNzU1YzcxMjQ0YjliYjVkMGRmNzM3NDNlLi5lZDhmMWFmOWNmNmY4
ODc5MzMwNDhkMWFlMzA4NWEwMjg5MWMxYThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTMtMDQtMTUgIE5vYW0gUm9zZW50aGFsICA8bm9hbUB3ZWJraXQub3JnPgorCisgICAgICAg
IFtUZXhtYXBdIEltcGxlbWVudGF0aW9uIGZvciBwYXR0ZXJuIGNvbXBvc2l0aW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk1ODgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZXJpYWxpemUgdGhlIHR3
byBuZXcgcHJvcGVydGllcyBmcm9tIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciB0byBDb29yZGlu
YXRlZEdyYXBoaWNzU2NlbmUuCisKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoQ29yZUlQ
Qzo6OjplbmNvZGUpOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNvZGUpOgorICAgICAgICAgICAg
RW5jb2RlL2RlY29kZSB0aGUgbmV3IHRpbGluZyBwcm9wZXJ0aWVzLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpDb29y
ZGluYXRlZExheWVyVHJlZUhvc3QpOgorICAgICAgICAgICAgRW5hYmxlIHBhdHRlcm4gY29tcG9z
aXRpbmcgZm9yIGNvb3JkaW5hdGVkIGdyYXBoaWNzLgorICAgICAgICAgICAgVGhpcyBpcyBuZWVk
ZWQgc2luY2Ugd2UgZG9uJ3Qgd2FudCB0byBlbmFibGUgcGF0dGVybiBjb21wb3NpdGluZyBmb3IK
KyAgICAgICAgICAgIFdlYktpdDEgeWV0LgorCiAyMDEzLTA0LTE1ICBCYWxhenMgS2VsZW1lbiAg
PGtiYWxhenNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbQ29vcmRHZnhdIEJhY2tncm91bmQgY29s
b3Igc2hvdWxkIG5vdCBiZSBwYXJ0IG9mIEdyYXBoaWNzTGF5ZXJTdGF0ZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IDE4NGI0MmNh
NzE4YTNlODM5ZWZkNzRkMGJmYzNiZmZiNTVmNzI2ZWUuLmM5NWZkNDFlYzEzNTcyZTBjOWY5OTI5
YWI2NDg1ODY5ZWI2YzQwNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmgKQEAgLTQ0MywxMSArNDQzLDE1IEBAIHB1YmxpYzoKICNlbmRp
ZgogICAgIH0KIAorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyAgICBzdGF0aWMgYm9v
bCBzdXBwb3J0c0NvbnRlbnRzVGlsaW5nKCk7CisjZWxzZQogICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzQ29udGVudHNUaWxpbmcoKQogICAgIHsKICAgICAgICAgLy8gRklYTUU6IEVuYWJsZSB0aGUg
ZmVhdHVyZSBvbiBkaWZmZXJlbnQgcG9ydHMuCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CisjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyLmNwcAppbmRleCA0ZGMyODk5N2M5YWU0ZDUzMDRiNjEwYzRjNzY2YTE3NWI1MWQ5YmRhLi4x
MmIwNGJhNDI0MGVhMTAwY2I5YmVkMDg1MmViMjkyNzE5YzcwMTE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIu
Y3BwCkBAIC0xNDMsNiArMTQzLDcgQEAgVGV4dHVyZU1hcHBlcjo6VGV4dHVyZU1hcHBlcihBY2Nl
bGVyYXRpb25Nb2RlIGFjY2VsZXJhdGlvbk1vZGUpCiAgICAgLCBtX3RleHR1cmVQb29sKGFkb3B0
UHRyKG5ldyBCaXRtYXBUZXh0dXJlUG9vbCgpKSkKICAgICAsIG1fYWNjZWxlcmF0aW9uTW9kZShh
Y2NlbGVyYXRpb25Nb2RlKQogICAgICwgbV9pc01hc2tNb2RlKGZhbHNlKQorICAgICwgbV93cmFw
TW9kZShTdHJldGNoV3JhcCkKIHsgfQogCiBUZXh0dXJlTWFwcGVyOjp+VGV4dHVyZU1hcHBlcigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXIuaAppbmRleCA3ZGVkY2IxNDVjZDNiM2I5NTc4NTYwYmMyMmQxMjBiYzg3ZDNm
YmMzLi4xMzgwNzFkOWJmMzFhMDI3MTYzYjI4ZWE1OGZkMjhhYWI4OTM4ODcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyLmgKQEAgLTExNSw2ICsxMTUsMTIgQEAgcHVibGljOgogICAgIGVudW0gUGFpbnRGbGFnIHsK
ICAgICAgICAgUGFpbnRpbmdNaXJyb3JlZCA9IDEgPDwgMCwKICAgICB9OworCisgICAgZW51bSBX
cmFwTW9kZSB7CisgICAgICAgIFN0cmV0Y2hXcmFwLAorICAgICAgICBSZXBlYXRXcmFwCisgICAg
fTsKKwogICAgIHR5cGVkZWYgdW5zaWduZWQgUGFpbnRGbGFnczsKIAogICAgIHN0YXRpYyBQYXNz
T3duUHRyPFRleHR1cmVNYXBwZXI+IGNyZWF0ZShBY2NlbGVyYXRpb25Nb2RlIG5ld01vZGUgPSBT
b2Z0d2FyZU1vZGUpOwpAQCAtMTYzLDEyICsxNjksMTcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVDYWNoZWRDdXN0b21GaWx0ZXJQcm9ncmFtKEN1c3RvbUZpbHRlclByb2dyYW0q
KSB7IH0KICNlbmRpZgogCisgICAgdm9pZCBzZXRQYXR0ZXJuVHJhbnNmb3JtKGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiBwKSB7IG1fcGF0dGVyblRyYW5zZm9ybSA9IHA7IH0KKyAgICB2b2lk
IHNldFdyYXBNb2RlKFdyYXBNb2RlIG0pIHsgbV93cmFwTW9kZSA9IG07IH0KKwogcHJvdGVjdGVk
OgogICAgIGV4cGxpY2l0IFRleHR1cmVNYXBwZXIoQWNjZWxlcmF0aW9uTW9kZSk7CiAKICAgICBH
cmFwaGljc0NvbnRleHQqIG1fY29udGV4dDsKIAogICAgIGJvb2wgaXNJbk1hc2tNb2RlKCkgY29u
c3QgeyByZXR1cm4gbV9pc01hc2tNb2RlOyB9CisgICAgV3JhcE1vZGUgd3JhcE1vZGUoKSBjb25z
dCB7IHJldHVybiBtX3dyYXBNb2RlOyB9CisgICAgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgm
IHBhdHRlcm5UcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX3BhdHRlcm5UcmFuc2Zvcm07IH0K
IAogcHJpdmF0ZToKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCkBAIC0xODQsNiArMTk1LDgg
QEAgcHJpdmF0ZToKICAgICBPd25QdHI8Qml0bWFwVGV4dHVyZVBvb2w+IG1fdGV4dHVyZVBvb2w7
CiAgICAgQWNjZWxlcmF0aW9uTW9kZSBtX2FjY2VsZXJhdGlvbk1vZGU7CiAgICAgYm9vbCBtX2lz
TWFza01vZGU7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9wYXR0ZXJuVHJhbnNmb3JtOwor
ICAgIFdyYXBNb2RlIG1fd3JhcE1vZGU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCmlu
ZGV4IDdhMzVjMmViODRkMWFkNDUyMjZiYTg0NjQ2MjJkOWMzZDk5YTJmZjQuLjg4NzU2OTQ1ODdh
OGNmM2JiNDliNmMzZjhmZTBhMTlhNTA1NmNjZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCkBA
IC01NDgsOCArNTQ4LDEyIEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZWRRdWFk
V2l0aFByb2dyYW0oVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0qIHByCiAgICAgR0MzRGVudW0g
dGFyZ2V0ID0gZmxhZ3MgJiBTaG91bGRVc2VBUkJUZXh0dXJlUmVjdCA/IEdDM0RlbnVtKEV4dGVu
c2lvbnMzRDo6VEVYVFVSRV9SRUNUQU5HTEVfQVJCKSA6IEdDM0RlbnVtKEdyYXBoaWNzQ29udGV4
dDNEOjpURVhUVVJFXzJEKTsKICAgICBtX2NvbnRleHQzRC0+YmluZFRleHR1cmUodGFyZ2V0LCB0
ZXh0dXJlKTsKICAgICBtX2NvbnRleHQzRC0+dW5pZm9ybTFpKHByb2dyYW0tPnNhbXBsZXJMb2Nh
dGlvbigpLCAwKTsKKyAgICBpZiAod3JhcE1vZGUoKSA9PSBSZXBlYXRXcmFwKSB7CisgICAgICAg
IG1fY29udGV4dDNELT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJE
LCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1MsIEdyYXBoaWNzQ29udGV4dDNEOjpS
RVBFQVQpOworICAgICAgICBtX2NvbnRleHQzRC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFw
aGljc0NvbnRleHQzRDo6UkVQRUFUKTsKKyAgICB9CiAKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBwYXR0ZXJuVHJhbnNmb3JtOworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHBhdHRlcm5UcmFu
c2Zvcm0gPSB0aGlzLT5wYXR0ZXJuVHJhbnNmb3JtKCk7CiAgICAgaWYgKGZsYWdzICYgU2hvdWxk
RmxpcFRleHR1cmUpCiAgICAgICAgIHBhdHRlcm5UcmFuc2Zvcm0uZmxpcFkoKTsKICAgICBpZiAo
ZmxhZ3MgJiBTaG91bGRVc2VBUkJUZXh0dXJlUmVjdCkKQEAgLTU2NCw2ICs1NjgsOCBAQCB2b2lk
IFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmVkUXVhZFdpdGhQcm9ncmFtKFRleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtKiBwcgogICAgICAgICBmbGFncyB8PSBTaG91bGRCbGVuZDsKIAogICAg
IGRyYXcocmVjdCwgbW9kZWxWaWV3TWF0cml4LCBwcm9ncmFtLCBHcmFwaGljc0NvbnRleHQzRDo6
VFJJQU5HTEVfRkFOLCBmbGFncyk7CisgICAgbV9jb250ZXh0M0QtPnRleFBhcmFtZXRlcmkoR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dS
QVBfUywgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOworICAgIG1fY29udGV4dDNE
LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV9XUkFQX1QsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdF
KTsKIH0KIAogQml0bWFwVGV4dHVyZUdMOjpCaXRtYXBUZXh0dXJlR0woVGV4dHVyZU1hcHBlckdM
KiB0ZXh0dXJlTWFwcGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRleCBiN2M1YzBi
ODkwNjc5YTZhYzUwZjRmNmU2MGQ5NGM1YmQyZjAzMmViLi5iY2QxYzVjNzk4MDAwNzUyOGNjY2Jm
ZGYyNjQ5YjFlNjY5NGVjY2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtOTks
NiArOTksMTcgQEAgc3RhdGljIENvbG9yIGJsZW5kV2l0aE9wYWNpdHkoY29uc3QgQ29sb3ImIGNv
bG9yLCBmbG9hdCBvcGFjaXR5KQogICAgIHJldHVybiBDb2xvcihjb2xvcldpdGhPdmVycmlkZUFs
cGhhKHJnYmEsIGVmZmVjdGl2ZUFscGhhKSk7CiB9CiAKK3ZvaWQgVGV4dHVyZU1hcHBlckxheWVy
Ojpjb21wdXRlUGF0dGVyblRyYW5zZm9ybUlmTmVlZGVkKCkKK3sKKyAgICBpZiAoIW1fcGF0dGVy
blRyYW5zZm9ybURpcnR5KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhdHRlcm5UcmFuc2Zv
cm1EaXJ0eSA9IGZhbHNlOworICAgIG1fcGF0dGVyblRyYW5zZm9ybSA9CisgICAgICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4OjpyZWN0VG9SZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50Ojp6ZXJvKCks
IG1fc3RhdGUuY29udGVudHNUaWxlU2l6ZSksIG1fc3RhdGUuY29udGVudHNSZWN0KQorICAgICAg
ICAubXVsdGlwbHkoVHJhbnNmb3JtYXRpb25NYXRyaXgoKS50cmFuc2xhdGUobV9zdGF0ZS5jb250
ZW50c1RpbGVQaGFzZS54KCkgLyBtX3N0YXRlLmNvbnRlbnRzUmVjdC53aWR0aCgpLCBtX3N0YXRl
LmNvbnRlbnRzVGlsZVBoYXNlLnkoKSAvIG1fc3RhdGUuY29udGVudHNSZWN0LmhlaWdodCgpKSk7
Cit9CisKIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpwYWludFNlbGYoY29uc3QgVGV4dHVyZU1h
cHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAoIW1fc3RhdGUudmlzaWJsZSB8
fCAhbV9zdGF0ZS5jb250ZW50c1Zpc2libGUpCkBAIC0xMTAsMzAgKzEyMSw0MSBAQCB2b2lkIFRl
eHR1cmVNYXBwZXJMYXllcjo6cGFpbnRTZWxmKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlv
bnMmIG9wdGlvbnMpCiAgICAgdHJhbnNmb3JtLm11bHRpcGx5KG9wdGlvbnMudHJhbnNmb3JtKTsK
ICAgICB0cmFuc2Zvcm0ubXVsdGlwbHkobV9jdXJyZW50VHJhbnNmb3JtLmNvbWJpbmVkKCkpOwog
Ci0gICAgaWYgKG1fc3RhdGUuc29saWRDb2xvci5pc1ZhbGlkKCkgJiYgIW1fc3RhdGUuY29udGVu
dHNSZWN0LmlzRW1wdHkoKSkgeworICAgIGlmIChtX3N0YXRlLnNvbGlkQ29sb3IuaXNWYWxpZCgp
ICYmICFtX3N0YXRlLmNvbnRlbnRzUmVjdC5pc0VtcHR5KCkgJiYgbV9zdGF0ZS5zb2xpZENvbG9y
LmFscGhhKCkpIHsKICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3U29saWRDb2xv
cihtX3N0YXRlLmNvbnRlbnRzUmVjdCwgdHJhbnNmb3JtLCBibGVuZFdpdGhPcGFjaXR5KG1fc3Rh
dGUuc29saWRDb2xvciwgb3B0aW9ucy5vcGFjaXR5KSk7CiAgICAgICAgIGlmIChtX3N0YXRlLnNo
b3dEZWJ1Z0JvcmRlcnMpCiAgICAgICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdC
b3JkZXIobV9zdGF0ZS5kZWJ1Z0JvcmRlckNvbG9yLCBtX3N0YXRlLmRlYnVnQm9yZGVyV2lkdGgs
IGxheWVyUmVjdCgpLCB0cmFuc2Zvcm0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAg
b3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5zZXRXcmFwTW9kZShUZXh0dXJlTWFwcGVyOjpTdHJldGNo
V3JhcCk7CisgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5zZXRQYXR0ZXJuVHJhbnNmb3JtKFRy
YW5zZm9ybWF0aW9uTWF0cml4KCkpOworCisgICAgaWYgKCFtX3N0YXRlLmNvbnRlbnRzVGlsZVNp
emUuaXNFbXB0eSgpKSB7CisgICAgICAgIGNvbXB1dGVQYXR0ZXJuVHJhbnNmb3JtSWZOZWVkZWQo
KTsKKyAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5zZXRXcmFwTW9kZShUZXh0dXJlTWFw
cGVyOjpSZXBlYXRXcmFwKTsKKyAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5zZXRQYXR0
ZXJuVHJhbnNmb3JtKG1fcGF0dGVyblRyYW5zZm9ybSk7CisgICAgfQorCiAgICAgaWYgKG1fYmFj
a2luZ1N0b3JlKSB7CiAgICAgICAgIEFTU0VSVChtX3N0YXRlLmRyYXdzQ29udGVudCAmJiBtX3N0
YXRlLmNvbnRlbnRzVmlzaWJsZSAmJiAhbV9zdGF0ZS5zaXplLmlzRW1wdHkoKSk7Ci0gICAgICAg
IEFTU0VSVCghbGF5ZXJSZWN0KCkuaXNFbXB0eSgpKTsKLSAgICAgICAgbV9iYWNraW5nU3RvcmUt
PnBhaW50VG9UZXh0dXJlTWFwcGVyKG9wdGlvbnMudGV4dHVyZU1hcHBlciwgbGF5ZXJSZWN0KCks
IHRyYW5zZm9ybSwgb3B0aW9ucy5vcGFjaXR5KTsKKyAgICAgICAgRmxvYXRSZWN0IHRhcmdldFJl
Y3QgPSBtX3N0YXRlLnNob3VsZE1hcEJhY2tpbmdTdG9yZVRvQ29udGVudHNSZWN0ID8gbV9zdGF0
ZS5jb250ZW50c1JlY3QgOiBsYXllclJlY3QoKTsKKyAgICAgICAgQVNTRVJUKCF0YXJnZXRSZWN0
LmlzRW1wdHkoKSk7CisgICAgICAgIG1fYmFja2luZ1N0b3JlLT5wYWludFRvVGV4dHVyZU1hcHBl
cihvcHRpb25zLnRleHR1cmVNYXBwZXIsIHRhcmdldFJlY3QsIHRyYW5zZm9ybSwgb3B0aW9ucy5v
cGFjaXR5KTsKICAgICAgICAgaWYgKG1fc3RhdGUuc2hvd0RlYnVnQm9yZGVycykKLSAgICAgICAg
ICAgIG1fYmFja2luZ1N0b3JlLT5kcmF3Qm9yZGVyKG9wdGlvbnMudGV4dHVyZU1hcHBlciwgbV9z
dGF0ZS5kZWJ1Z0JvcmRlckNvbG9yLCBtX3N0YXRlLmRlYnVnQm9yZGVyV2lkdGgsIGxheWVyUmVj
dCgpLCB0cmFuc2Zvcm0pOworICAgICAgICAgICAgbV9iYWNraW5nU3RvcmUtPmRyYXdCb3JkZXIo
b3B0aW9ucy50ZXh0dXJlTWFwcGVyLCBtX3N0YXRlLmRlYnVnQm9yZGVyQ29sb3IsIG1fc3RhdGUu
ZGVidWdCb3JkZXJXaWR0aCwgdGFyZ2V0UmVjdCwgdHJhbnNmb3JtKTsKICAgICAgICAgLy8gT25s
eSBkcmF3IHJlcGFpbnQgY291bnQgZm9yIHRoZSBtYWluIGJhY2tpbmcgc3RvcmUuCiAgICAgICAg
IGlmIChtX3N0YXRlLnNob3dSZXBhaW50Q291bnRlcikKLSAgICAgICAgICAgIG1fYmFja2luZ1N0
b3JlLT5kcmF3UmVwYWludENvdW50ZXIob3B0aW9ucy50ZXh0dXJlTWFwcGVyLCBtX3N0YXRlLnJl
cGFpbnRDb3VudCwgbV9zdGF0ZS5kZWJ1Z0JvcmRlckNvbG9yLCBsYXllclJlY3QoKSwgdHJhbnNm
b3JtKTsKKyAgICAgICAgICAgIG1fYmFja2luZ1N0b3JlLT5kcmF3UmVwYWludENvdW50ZXIob3B0
aW9ucy50ZXh0dXJlTWFwcGVyLCBtX3N0YXRlLnJlcGFpbnRDb3VudCwgbV9zdGF0ZS5kZWJ1Z0Jv
cmRlckNvbG9yLCB0YXJnZXRSZWN0LCB0cmFuc2Zvcm0pOwogICAgIH0KIAotICAgIGlmIChtX2Nv
bnRlbnRzTGF5ZXIpIHsKLSAgICAgICAgQVNTRVJUKCFsYXllclJlY3QoKS5pc0VtcHR5KCkpOwot
ICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnBhaW50VG9UZXh0dXJlTWFwcGVyKG9wdGlvbnMudGV4
dHVyZU1hcHBlciwgbV9zdGF0ZS5jb250ZW50c1JlY3QsIHRyYW5zZm9ybSwgb3B0aW9ucy5vcGFj
aXR5KTsKLSAgICAgICAgaWYgKG1fc3RhdGUuc2hvd0RlYnVnQm9yZGVycykKLSAgICAgICAgICAg
IG1fY29udGVudHNMYXllci0+ZHJhd0JvcmRlcihvcHRpb25zLnRleHR1cmVNYXBwZXIsIG1fc3Rh
dGUuZGVidWdCb3JkZXJDb2xvciwgbV9zdGF0ZS5kZWJ1Z0JvcmRlcldpZHRoLCBtX3N0YXRlLmNv
bnRlbnRzUmVjdCwgdHJhbnNmb3JtKTsKLSAgICB9CisgICAgaWYgKCFtX2NvbnRlbnRzTGF5ZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVCghbGF5ZXJSZWN0KCkuaXNFbXB0eSgpKTsK
KyAgICBtX2NvbnRlbnRzTGF5ZXItPnBhaW50VG9UZXh0dXJlTWFwcGVyKG9wdGlvbnMudGV4dHVy
ZU1hcHBlciwgbV9zdGF0ZS5jb250ZW50c1JlY3QsIHRyYW5zZm9ybSwgb3B0aW9ucy5vcGFjaXR5
KTsKKyAgICBpZiAobV9zdGF0ZS5zaG93RGVidWdCb3JkZXJzKQorICAgICAgICBtX2NvbnRlbnRz
TGF5ZXItPmRyYXdCb3JkZXIob3B0aW9ucy50ZXh0dXJlTWFwcGVyLCBtX3N0YXRlLmRlYnVnQm9y
ZGVyQ29sb3IsIG1fc3RhdGUuZGVidWdCb3JkZXJXaWR0aCwgbV9zdGF0ZS5jb250ZW50c1JlY3Qs
IHRyYW5zZm9ybSk7CiB9CiAKIGludCBUZXh0dXJlTWFwcGVyTGF5ZXI6OmNvbXBhcmVHcmFwaGlj
c0xheWVyc1pWYWx1ZShjb25zdCB2b2lkKiBhLCBjb25zdCB2b2lkKiBiKQpAQCAtNTUxLDcgKzU3
MywyNiBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c2V0Q2hpbGRyZW5UcmFuc2Zvcm0oY29u
c3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIGNoaWxkcgogCiB2b2lkIFRleHR1cmVNYXBwZXJMYXll
cjo6c2V0Q29udGVudHNSZWN0KGNvbnN0IEludFJlY3QmIGNvbnRlbnRzUmVjdCkKIHsKKyAgICBp
ZiAoY29udGVudHNSZWN0ID09IG1fc3RhdGUuY29udGVudHNSZWN0KQorICAgICAgICByZXR1cm47
CiAgICAgbV9zdGF0ZS5jb250ZW50c1JlY3QgPSBjb250ZW50c1JlY3Q7CisgICAgbV9wYXR0ZXJu
VHJhbnNmb3JtRGlydHkgPSB0cnVlOworfQorCit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c2V0
Q29udGVudHNUaWxlU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIGlmIChzaXplID09
IG1fc3RhdGUuY29udGVudHNUaWxlU2l6ZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fc3RhdGUu
Y29udGVudHNUaWxlU2l6ZSA9IHNpemU7CisgICAgbV9wYXR0ZXJuVHJhbnNmb3JtRGlydHkgPSB0
cnVlOworfQorCit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c2V0Q29udGVudHNUaWxlUGhhc2Uo
Y29uc3QgSW50UG9pbnQmIHBoYXNlKQoreworICAgIGlmIChwaGFzZSA9PSBtX3N0YXRlLmNvbnRl
bnRzVGlsZVBoYXNlKQorICAgICAgICByZXR1cm47CisgICAgbV9zdGF0ZS5jb250ZW50c1RpbGVQ
aGFzZSA9IHBoYXNlOworICAgIG1fcGF0dGVyblRyYW5zZm9ybURpcnR5ID0gdHJ1ZTsKIH0KIAog
dm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldE1hc2tzVG9Cb3VuZHMoYm9vbCBtYXNrc1RvQm91
bmRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCmluZGV4IGFmMzQxM2U4ZWYzOTc3YzEyNjkwOTA4
ZjE2YmNkY2IzNjAwZTYyYmUuLjNiOGExNzEwZDEyNjJiZjI0YzE5NmJiZWQyNDZmMzIxOGQ4ODMw
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgog
ICAgICAgICAsIG1faWQoMCkKICAgICAgICAgLCBtX3Njcm9sbENsaWVudCgwKQogICAgICAgICAs
IG1faXNTY3JvbGxhYmxlKGZhbHNlKQorICAgICAgICAsIG1fcGF0dGVyblRyYW5zZm9ybURpcnR5
KGZhbHNlKQogICAgIHsgfQogCiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlckxheWVyKCk7CkBA
IC05Nyw2ICs5OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEJhY2tmYWNlVmlzaWJpbGl0eShi
b29sKTsKICAgICB2b2lkIHNldE9wYWNpdHkoZmxvYXQpOwogICAgIHZvaWQgc2V0U29saWRDb2xv
cihjb25zdCBDb2xvciYpOworICAgIHZvaWQgc2V0Q29udGVudHNUaWxlU2l6ZShjb25zdCBJbnRT
aXplJik7CisgICAgdm9pZCBzZXRDb250ZW50c1RpbGVQaGFzZShjb25zdCBJbnRQb2ludCYpOwog
I2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICB2b2lkIHNldEZpbHRlcnMoY29uc3QgRmlsdGVy
T3BlcmF0aW9ucyYpOwogI2VuZGlmCkBAIC0xMTgsNiArMTIxLDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0Rml4ZWRUb1ZpZXdwb3J0KGJvb2wpOwogICAgIGJvb2wgZml4ZWRUb1ZpZXdwb3J0KCkg
Y29uc3QgeyByZXR1cm4gbV9maXhlZFRvVmlld3BvcnQ7IH0KICAgICB2b2lkIHNldEJhY2tpbmdT
dG9yZShQYXNzUmVmUHRyPFRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmU+KTsKKyAgICB2b2lkIHNl
dFNob3VsZE1hcEJhY2tpbmdTdG9yZVRvQ29udGVudHNSZWN0KGJvb2wgbSkgeyBtX3N0YXRlLnNo
b3VsZE1hcEJhY2tpbmdTdG9yZVRvQ29udGVudHNSZWN0ID0gbTsgfQogCiAgICAgdm9pZCBzeW5j
QW5pbWF0aW9ucygpOwogICAgIGJvb2wgZGVzY2VuZGFudHNPclNlbGZIYXZlUnVubmluZ0FuaW1h
dGlvbnMoKSBjb25zdDsKQEAgLTE1Nyw2ICsxNjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFp
bnRTZWxmQW5kQ2hpbGRyZW4oY29uc3QgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYpOwogICAg
IHZvaWQgcGFpbnRTZWxmQW5kQ2hpbGRyZW5XaXRoUmVwbGljYShjb25zdCBUZXh0dXJlTWFwcGVy
UGFpbnRPcHRpb25zJik7CiAgICAgdm9pZCBhcHBseU1hc2soY29uc3QgVGV4dHVyZU1hcHBlclBh
aW50T3B0aW9ucyYpOworICAgIHZvaWQgY29tcHV0ZVBhdHRlcm5UcmFuc2Zvcm1JZk5lZWRlZCgp
OwogCiAgICAgLy8gR3JhcGhpY3NMYXllckFuaW1hdGlvbjo6Q2xpZW50CiAgICAgdmlydHVhbCB2
b2lkIHNldEFuaW1hdGVkVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JikgT1ZF
UlJJREU7CkBAIC0yMDUsNiArMjEwLDggQEAgcHJpdmF0ZToKICAgICAgICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggY2hpbGRyZW5UcmFuc2Zvcm07CiAgICAgICAgIGZsb2F0IG9wYWNpdHk7CiAgICAg
ICAgIEZsb2F0UmVjdCBjb250ZW50c1JlY3Q7CisgICAgICAgIEludFNpemUgY29udGVudHNUaWxl
U2l6ZTsKKyAgICAgICAgSW50UG9pbnQgY29udGVudHNUaWxlUGhhc2U7CiAgICAgICAgIFRleHR1
cmVNYXBwZXJMYXllciogbWFza0xheWVyOwogICAgICAgICBUZXh0dXJlTWFwcGVyTGF5ZXIqIHJl
cGxpY2FMYXllcjsKICAgICAgICAgQ29sb3Igc29saWRDb2xvcjsKQEAgLTIyNCw2ICsyMzEsNyBA
QCBwcml2YXRlOgogICAgICAgICBib29sIHZpc2libGUgOiAxOwogICAgICAgICBib29sIHNob3dE
ZWJ1Z0JvcmRlcnMgOiAxOwogICAgICAgICBib29sIHNob3dSZXBhaW50Q291bnRlciA6IDE7Cisg
ICAgICAgIGJvb2wgc2hvdWxkTWFwQmFja2luZ1N0b3JlVG9Db250ZW50c1JlY3QgOiAxOwogCiAg
ICAgICAgIFN0YXRlKCkKICAgICAgICAgICAgIDogb3BhY2l0eSgxKQpAQCAtMjQwLDYgKzI0OCw3
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAsIHZpc2libGUodHJ1ZSkKICAgICAgICAgICAgICwg
c2hvd0RlYnVnQm9yZGVycyhmYWxzZSkKICAgICAgICAgICAgICwgc2hvd1JlcGFpbnRDb3VudGVy
KGZhbHNlKQorICAgICAgICAgICAgLCBzaG91bGRNYXBCYWNraW5nU3RvcmVUb0NvbnRlbnRzUmVj
dChmYWxzZSkKICAgICAgICAgewogICAgICAgICB9CiAgICAgfTsKQEAgLTI1NCw2ICsyNjMsOCBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1Njcm9sbGFibGU7CiAgICAgRmxvYXRTaXplIG1fdXNl
clNjcm9sbE9mZnNldDsKICAgICBGbG9hdFNpemUgbV9hY2N1bXVsYXRlZFNjcm9sbE9mZnNldEZy
YWN0aW9uYWxQYXJ0OworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fcGF0dGVyblRyYW5zZm9y
bTsKKyAgICBib29sIG1fcGF0dGVyblRyYW5zZm9ybURpcnR5OwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRl
eCBmNmEyZTE0NTkwMTllOGMyN2FiNTY4ODkxOGMzODk4M2FmMjE3YWU0Li41ODZlNDdiZWNiMTYz
MDRmOGVhNWFlZWQ2MGY0YTM1Y2I5YzBhNzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtMzQwLDYgKzM0MCw0MCBA
QCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNSZWN0KGNvbnN0IElu
dFJlY3QmIHIpCiAgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwogfQogCit2b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUaWxlU2l6ZShjb25zdCBJbnRTaXplJiBzKQor
eworICAgIGlmIChjb250ZW50c1RpbGVTaXplKCkgPT0gcykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUaWxlU2l6ZShzKTsKKyAgICBtX2xheWVyU3Rh
dGUuY29udGVudHNUaWxlU2l6ZSA9IHM7CisgICAgbV9sYXllclN0YXRlLmNvbnRlbnRzVGlsaW5n
Q2hhbmdlZCA9IHRydWU7CisgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOworfQorCit2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUaWxlUGhhc2UoY29uc3QgSW50UG9p
bnQmIHApCit7CisgICAgaWYgKGNvbnRlbnRzVGlsZVBoYXNlKCkgPT0gcCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUaWxlUGhhc2UocCk7CisgICAg
bV9sYXllclN0YXRlLmNvbnRlbnRzVGlsZVBoYXNlID0gcDsKKyAgICBtX2xheWVyU3RhdGUuY29u
dGVudHNUaWxpbmdDaGFuZ2VkID0gdHJ1ZTsKKyAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7Cit9
CisKK3N0YXRpYyBib29sIHNfc2hvdWxkU3VwcG9ydENvbnRlbnRzVGlsaW5nID0gZmFsc2U7CisK
K3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG91bGRTdXBwb3J0Q29udGVudHNU
aWxpbmcoYm9vbCBzKQoreworICAgIHNfc2hvdWxkU3VwcG9ydENvbnRlbnRzVGlsaW5nID0gczsK
K30KKworYm9vbCBHcmFwaGljc0xheWVyOjpzdXBwb3J0c0NvbnRlbnRzVGlsaW5nKCkKK3sKKyAg
ICByZXR1cm4gc19zaG91bGRTdXBwb3J0Q29udGVudHNUaWxpbmc7Cit9CisKIHZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c05lZWRzRGlzcGxheSgpCiB7CiAjaWYgVVNF
KEdSQVBISUNTX1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggNDViZmIyNzNkMWRkNDQ3ZGFjMWE2ZDAwMThkMGMz
MDkwZjc0ZTBhMC4uOWM2M2MwODgwNzMyZTQ5YTFiNjdiYzhhZGE0Nzc4ZjZlNTYxN2ZmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
aApAQCAtODYsNiArODYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEJhY2tmYWNl
VmlzaWJpbGl0eShib29sKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0T3BhY2l0eShm
bG9hdCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzUmVjdChjb25zdCBJ
bnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVGlsZVBoYXNl
KGNvbnN0IEludFBvaW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRz
VGlsZVNpemUoY29uc3QgSW50U2l6ZSYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRD
b250ZW50c1RvSW1hZ2UoSW1hZ2UqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29u
dGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wpIE9WRVJSSURFOwpAQCAtMTQ1LDYgKzE0Nyw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHB1cmdlQmFja2luZ1N0b3JlcygpOwogICAgIGJvb2wgaGFzUGVu
ZGluZ1Zpc2libGVDaGFuZ2VzKCk7CiAKKyAgICBzdGF0aWMgdm9pZCBzZXRTaG91bGRTdXBwb3J0
Q29udGVudHNUaWxpbmcoYm9vbCk7CisKIHByaXZhdGU6CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZB
Q0UpCiAgICAgZW51bSBQZW5kaW5nQ2FudmFzT3BlcmF0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEdyYXBoaWNzU2NlbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKaW5kZXggYjIxZWVh
ZGU4YmZlMmE2MjdmYjgyOTM0ZDgxOGQ0MTk4YmE3NzkxYi4uNDFmZmI3NmU2YmQwMjQyY2NiYTIz
Mzg2MzhiNWVhYTQ3MTllMTNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKQEAgLTMyMyw2ICszMjMsMTEgQEAgdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldExheWVyU3RhdGUoQ29vcmRpbmF0ZWRMYXllcklE
IGlkLCBjb25zdCBDb29yZGkKICAgICBpZiAobGF5ZXJTdGF0ZS5jb250ZW50c1JlY3RDaGFuZ2Vk
KQogICAgICAgICBsYXllci0+c2V0Q29udGVudHNSZWN0KGxheWVyU3RhdGUuY29udGVudHNSZWN0
KTsKIAorICAgIGlmIChsYXllclN0YXRlLmNvbnRlbnRzVGlsaW5nQ2hhbmdlZCkgeworICAgICAg
ICBsYXllci0+c2V0Q29udGVudHNUaWxlUGhhc2UobGF5ZXJTdGF0ZS5jb250ZW50c1RpbGVQaGFz
ZSk7CisgICAgICAgIGxheWVyLT5zZXRDb250ZW50c1RpbGVTaXplKGxheWVyU3RhdGUuY29udGVu
dHNUaWxlU2l6ZSk7CisgICAgfQorCiAgICAgaWYgKGxheWVyU3RhdGUub3BhY2l0eUNoYW5nZWQp
CiAgICAgICAgIGxheWVyLT5zZXRPcGFjaXR5KGxheWVyU3RhdGUub3BhY2l0eSk7CiAKQEAgLTU3
OSwxMSArNTg0LDE0IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphc3NpZ25JbWFn
ZUJhY2tpbmdUb0xheWVyKFRleHR1cmVNYXBwZXJMYXllciogbGF5CiAKICAgICBpZiAoaW1hZ2VJ
RCA9PSBJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgewogICAgICAgICBsYXllci0+
c2V0QmFja2luZ1N0b3JlKDApOworICAgICAgICBsYXllci0+c2V0U2hvdWxkTWFwQmFja2luZ1N0
b3JlVG9Db250ZW50c1JlY3QoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQorCiAgICAg
SW1hZ2VCYWNraW5nTWFwOjppdGVyYXRvciBpdCA9IG1faW1hZ2VCYWNraW5ncy5maW5kKGltYWdl
SUQpOwogICAgIEFTU0VSVChpdCAhPSBtX2ltYWdlQmFja2luZ3MuZW5kKCkpOwogICAgIGxheWVy
LT5zZXRCYWNraW5nU3RvcmUoaXQtPnZhbHVlLmdldCgpKTsKKyAgICBsYXllci0+c2V0U2hvdWxk
TWFwQmFja2luZ1N0b3JlVG9Db250ZW50c1JlY3QodHJ1ZSk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lOjpyZW1vdmVSZWxlYXNlZEltYWdlQmFja2luZ3NJZk5lZWRlZCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmgK
aW5kZXggYzdmZjdhNDgzMWQyN2Y2MDAxOWFhMjU1ZjRkYjJlNWQxN2IwNDY4Mi4uOTNlMjVjYmEx
OTc5MzEyMjNlZjRhMzFhMGY3ZDMwNGZiMjlhM2YwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaApAQCAtOTMsNiArOTMsNyBAQCBz
dHJ1Y3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUgewogICAgICAgICAgICAgYm9vbCBj
YW52YXNTaG91bGRTd2FwQnVmZmVyczogMTsKICAgICAgICAgICAgIGJvb2wgaXNTY3JvbGxhYmxl
Q2hhbmdlZDogMTsKICAgICAgICAgICAgIGJvb2wgY29tbWl0dGVkU2Nyb2xsT2Zmc2V0Q2hhbmdl
ZDogMTsKKyAgICAgICAgICAgIGJvb2wgY29udGVudHNUaWxpbmdDaGFuZ2VkOiAxOwogICAgICAg
ICB9OwogICAgICAgICB1bnNpZ25lZCBjaGFuZ2VNYXNrOwogICAgIH07CkBAIC0xNDEsNiArMTQy
LDggQEAgc3RydWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlIHsKICAgICBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCB0cmFuc2Zvcm07CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggY2hpbGRy
ZW5UcmFuc2Zvcm07CiAgICAgSW50UmVjdCBjb250ZW50c1JlY3Q7CisgICAgSW50UG9pbnQgY29u
dGVudHNUaWxlUGhhc2U7CisgICAgSW50U2l6ZSBjb250ZW50c1RpbGVTaXplOwogICAgIGZsb2F0
IG9wYWNpdHk7CiAgICAgQ29sb3Igc29saWRDb2xvcjsKICAgICBDb2xvciBkZWJ1Z0JvcmRlckNv
bG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAppbmRleCAwYWE2NmFiZmI1ZTA1ZTlhODM1Njg4NzllNDBlNjU5MTM0MjA4YTcxLi5iODY4MWRl
ZDIxNTE0MTI4MzkyNmFlODgxZTQ5ZDhhZWEwODlhZDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTQzOSw2ICsxNDM5LDkgQEAg
dm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZURpcmVjdGx5Q29tcG9zaXRlZEJhY2tncm91
bmRJbWFnZShib29sIGlzU2ltcGxlQ28KICAgICBpZiAoIUdyYXBoaWNzTGF5ZXI6OnN1cHBvcnRz
Q29udGVudHNUaWxpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKGlzRGlyZWN0bHlD
b21wb3NpdGVkSW1hZ2UoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgY29uc3QgUmVuZGVyU3R5
bGUqIHN0eWxlID0gcmVuZGVyZXIoKS0+c3R5bGUoKTsKIAogICAgIGlmICghaXNTaW1wbGVDb250
YWluZXIgfHwgIXN0eWxlLT5oYXNCYWNrZ3JvdW5kSW1hZ2UoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGlj
c0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKaW5kZXggNjY2NTRm
ODc3ZjMxMTcyZGI3NDI4YTYwMjk2ZDVhYmUxMmIyYTZlNy4uYzAyNzM0YTc3YWU0NmRlMmFkZTMy
Y2EyZWIzNGUyN2VkZmNjZDAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCkBAIC04NDksNiArODQ5LDExIEBAIHZvaWQgQXJn
dW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT46OmVuY29kZShBcmd1bWVu
dEVuY29kZXImIGVuY29kCiAgICAgaWYgKHN0YXRlLmNvbnRlbnRzUmVjdENoYW5nZWQpCiAgICAg
ICAgIGVuY29kZXIgPDwgc3RhdGUuY29udGVudHNSZWN0OwogCisgICAgaWYgKHN0YXRlLmNvbnRl
bnRzVGlsaW5nQ2hhbmdlZCkgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmNvbnRlbnRzVGls
ZVNpemU7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGUuY29udGVudHNUaWxlUGhhc2U7CisgICAg
fQorCiAgICAgaWYgKHN0YXRlLm9wYWNpdHlDaGFuZ2VkKQogICAgICAgICBlbmNvZGVyIDw8IHN0
YXRlLm9wYWNpdHk7CiAKQEAgLTkyOCw2ICs5MzMsMTMgQEAgYm9vbCBBcmd1bWVudENvZGVyPENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVj
b2QKICAgICBpZiAoc3RhdGUuY29udGVudHNSZWN0Q2hhbmdlZCAmJiAhZGVjb2Rlci5kZWNvZGUo
c3RhdGUuY29udGVudHNSZWN0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKHN0
YXRlLmNvbnRlbnRzVGlsaW5nQ2hhbmdlZCkgeworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHN0YXRlLmNvbnRlbnRzVGlsZVNpemUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRlLmNvbnRlbnRzVGlsZVBoYXNlKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBpZiAoc3RhdGUub3BhY2l0eUNoYW5n
ZWQgJiYgIWRlY29kZXIuZGVjb2RlKHN0YXRlLm9wYWNpdHkpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExh
eWVyVHJlZUhvc3QuY3BwCmluZGV4IDMyMDQxNWQyMzAzZGJhOTIyYzYzZGI5ZmFmZTVhMjY2Mjk0
MDU5MTUuLjMyZDk0ODIyZjk1ZjA2ODQ4NWU1YTg2NWRiZDRiMDUwOGQyODZkZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
LmNwcApAQCAtMTA4LDYgKzEwOCwxMCBAQCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OkNvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdChXZWJQYWdlKiB3ZWJQYWdlKQogCiAgICAgQ29vcmRpbmF0ZWRT
dXJmYWNlOjpzZXRGYWN0b3J5KGNyZWF0ZUNvb3JkaW5hdGVkU3VyZmFjZSk7CiAKKyAgICAvLyBU
aGlzIGlzIGEgdGVtcG9yYXJ5IHdheSB0byBlbmFibGUgdGhpcyBvbmx5IGluIHRoZSBHTCBjYXNl
LCB1bnRpbCBUZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIgaXMgcmVtb3ZlZC4KKyAgICAvLyBTZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDg2OQorICAgIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0U2hvdWxkU3VwcG9ydENvbnRlbnRzVGlsaW5nKHRydWUp
OworCiAgICAgaWYgKG1fd2ViUGFnZS0+aGFzUGFnZU92ZXJsYXkoKSkKICAgICAgICAgY3JlYXRl
UGFnZU92ZXJsYXlMYXllcigpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>