<?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>102133</bug_id>
          
          <creation_ts>2012-11-13 13:58:23 -0800</creation_ts>
          <short_desc>Coordinated Graphics: Rename m_CoordinatedGraphicsLayerClient to m_coordinator</short_desc>
          <delta_ts>2012-11-14 13:56:59 -0800</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>102187</dependson>
    
    <dependson>102193</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Noam Rosenthal">noam</assigned_to>
          <cc>d-r</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>ossy</cc>
    
    <cc>tmpsantos</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>766025</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-13 13:58:23 -0800</bug_when>
    <thetext>Coordinated Graphics: Rename m_CoordinatedGraphicsLayerClient to m_coordinator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766030</commentid>
    <comment_count>1</comment_count>
      <attachid>173982</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-13 14:02:30 -0800</bug_when>
    <thetext>Created attachment 173982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766085</commentid>
    <comment_count>2</comment_count>
      <attachid>173997</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-13 15:00:38 -0800</bug_when>
    <thetext>Created attachment 173997
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766089</commentid>
    <comment_count>3</comment_count>
      <attachid>173999</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-13 15:02:23 -0800</bug_when>
    <thetext>Created attachment 173999
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766140</commentid>
    <comment_count>4</comment_count>
      <attachid>174017</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-13 15:58:21 -0800</bug_when>
    <thetext>Created attachment 174017
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766361</commentid>
    <comment_count>5</comment_count>
      <attachid>174017</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 20:47:34 -0800</bug_when>
    <thetext>Comment on attachment 174017
Patch for landing

Clearing flags on attachment: 174017

Committed r134531: &lt;http://trac.webkit.org/changeset/134531&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766362</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 20:47:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766505</commentid>
    <comment_count>7</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-11-13 23:45:06 -0800</bug_when>
    <thetext>Looks like this patch caused a regression on our bots:

http://build.webkit.org/builders/EFL%20Linux%2064-bit%20Debug%20WK2/builds/5858

A lot of inspector/ layout tests are failing here:

1   0x7f578e188c4f
2   0x7f57908b24a0
3   0x7f579154d949 WebCore::CoordinatedGraphicsLayer::removeTile(int)
4   0x7f57915518c7 WebKit::CoordinatedTile::~CoordinatedTile()
5   0x7f5791551916 WebKit::CoordinatedTile::~CoordinatedTile()
6   0x7f5791552404 WTF::RefCounted&lt;WebCore::Tile&gt;::deref()
7   0x7f578d6e567f void WTF::derefIfNotNull&lt;WebCore::Tile&gt;(WebCore::Tile*)
8   0x7f578d6e4d89 WTF::RefPtr&lt;WebCore::Tile&gt;::~RefPtr()
9   0x7f578d6e55e4 WTF::KeyValuePair&lt;WebCore::IntPoint, WTF::RefPtr&lt;WebCore::Tile&gt; &gt;::~KeyValuePair()
10  0x7f578d6e55a9 WTF::HashTable&lt;WebCore::IntPoint, WTF::KeyValuePair&lt;WebCore::IntPoint, WTF::RefPtr&lt;WebCore::Tile&gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WebCore::IntPoint, WTF::RefPtr&lt;WebCore::Tile&gt; &gt; &gt;, WTF::IntPointHash, WTF::HashMapValueTraits&lt;WTF::HashTraits&lt;WebCore::IntPoint&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::Tile&gt; &gt; &gt;, WTF::HashTraits&lt;WebCore::IntPoint&gt; &gt;::deallocateTable(WTF::KeyValuePair&lt;WebCore::IntPoint, WTF::RefPtr&lt;WebCore::Tile&gt; &gt;*, int)
11  0x7f578d6e4c90 WTF::HashTable&lt;WebCore::IntPoint, WTF::KeyValuePair&lt;WebCore::IntPoint, WTF::RefPtr&lt;WebCore::Tile&gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WebCore::IntPoint, WTF::RefPtr&lt;WebCore::Tile&gt; &gt; &gt;, WTF::IntPointHash, WTF::HashMapValueTraits&lt;WTF::HashTraits&lt;WebCore::IntPoint&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::Tile&gt; &gt; &gt;, WTF::HashTraits&lt;WebCore::IntPoint&gt; &gt;::~HashTable()
12  0x7f578d6e4a92 WTF::HashMap&lt;WebCore::IntPoint, WTF::RefPtr&lt;WebCore::Tile&gt;, WTF::IntPointHash, WTF::HashTraits&lt;WebCore::IntPoint&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::Tile&gt; &gt; &gt;::~HashMap()
13  0x7f578d6e227e WebCore::TiledBackingStore::~TiledBackingStore()
14  0x7f579154fad8 void WTF::deleteOwnedPtr&lt;WebCore::TiledBackingStore&gt;(WebCore::TiledBackingStore*)
15  0x7f579154f4b9 WTF::OwnPtr&lt;WebCore::TiledBackingStore&gt;::~OwnPtr()
16  0x7f579154bca1 WebCore::CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer()
17  0x7f579154bd16 WebCore::CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer()
18  0x7f5791444d48 void WTF::deleteOwnedPtr&lt;WebCore::GraphicsLayer&gt;(WebCore::GraphicsLayer*)
19  0x7f57914438b1 WTF::OwnPtr&lt;WebCore::GraphicsLayer&gt;::~OwnPtr()
20  0x7f579155270b WebKit::LayerTreeCoordinator::~LayerTreeCoordinator()
21  0x7f5791552794 WebKit::LayerTreeCoordinator::~LayerTreeCoordinator()
22  0x7f579151bf2c WTF::RefCounted&lt;WebKit::LayerTreeHost&gt;::deref()
23  0x7f579151b8a7 void WTF::derefIfNotNull&lt;WebKit::LayerTreeHost&gt;(WebKit::LayerTreeHost*)
24  0x7f579151b55f WTF::RefPtr&lt;WebKit::LayerTreeHost&gt;::~RefPtr()
25  0x7f57915180ca WebKit::DrawingAreaImpl::~DrawingAreaImpl()
26  0x7f5791518144 WebKit::DrawingAreaImpl::~DrawingAreaImpl()
27  0x7f57915423a9 void WTF::deleteOwnedPtr&lt;WebKit::DrawingArea&gt;(WebKit::DrawingArea*)
28  0x7f5791543088 WTF::OwnPtr&lt;WebKit::DrawingArea&gt;::clear()
29  0x7f57915409e2 WTF::OwnPtr&lt;WebKit::DrawingArea&gt;::operator=(std::nullptr_t)
30  0x7f5791533afa WebKit::WebPage::close()
31  0x7f57915f95fd void CoreIPC::callMemberFunction&lt;WebKit::WebPage, void (WebKit::WebPage::*)()&gt;(CoreIPC::Arguments0 const&amp;, WebKit::WebPage*, void</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766549</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-11-14 00:20:22 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 174017 [details])
&gt; Clearing flags on attachment: 174017
&gt; 
&gt; Committed r134531: &lt;http://trac.webkit.org/changeset/134531&gt;

It made 71 tests crash on the Qt WK2 pixel tester bot - https://bugs.webkit.org/show_bug.cgi?id=102187</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766594</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 01:09:54 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 102193</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767151</commentid>
    <comment_count>10</comment_count>
      <attachid>174217</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-14 11:58:25 -0800</bug_when>
    <thetext>Created attachment 174217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767250</commentid>
    <comment_count>11</comment_count>
      <attachid>174217</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-14 13:41:00 -0800</bug_when>
    <thetext>Comment on attachment 174217
Patch

OK, I&apos;ll make sure the bots like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767275</commentid>
    <comment_count>12</comment_count>
      <attachid>174217</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 13:56:54 -0800</bug_when>
    <thetext>Comment on attachment 174217
Patch

Clearing flags on attachment: 174217

Committed r134663: &lt;http://trac.webkit.org/changeset/134663&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767277</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 13:56:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173982</attachid>
            <date>2012-11-13 14:02:30 -0800</date>
            <delta_ts>2012-11-13 15:00:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102133-20121113140039.patch</filename>
            <type>text/plain</type>
            <size>19773</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODc3YmNjNWEzZmRjNThl
YzdmNGNhZGZjYzQzNzIwYjI5ODg1ZTZmNS4uOTc2MGQyYTc1OTQ5MGEwOTZlYTQyMTU1NWNiNTEz
YTg4ODRmODgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTExLTEzICBObydh
bSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CisKKyAgICAgICAgQ29vcmRp
bmF0ZWQgR3JhcGhpY3M6IFJlbmFtZSBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCB0
byBtX2Nvb3JkaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDIxMzMKKworICAgICAgICBSZW5hbWVkIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyQ2xpZW50IHRvIG1fY29vcmRpbmF0b3IuCisgICAgICAgIEFsc28sIHRoZXJlIGlzIG5vIG5l
ZWQgZm9yIGNhbGxpbmcgc2V0Q29vcmRpbmF0b3IgZXZlcnkgdGltZSB0aGUgdHJlZSBjaGFuZ2Vz
LAorICAgICAgICBzaW5jZSB3ZSBjYW4gY2FsbCBpdCBvbmNlIHdoZW4gdGhlIGxheWVyIGlzIGNy
ZWF0ZWQsIG5vdyB0aGF0IExheWVyVHJlZUNvb3JkaW5hdG9yCisgICAgICAgIGlzIHRoZSBHcmFw
aGljc0xheWVyRmFjdG9yeS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6On5Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRBYm92ZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkQmVsb3cpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZXBsYWNlQ2hpbGQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1Rv
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRN
YXNrTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpz
ZXRSZXBsaWNhdGVkQnlMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNGaWx0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0xheWVyU3RhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jQW5pbWF0aW9ucyk6CisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDYW52YXMpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjplbnN1cmVJbWFnZUJhY2tpbmdT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVk
QmFja2luZ1N0b3JlVXBkYXRlc0FsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZVZpc2libGVSZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YmVnaW5Db250ZW50VXBkYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Y3JlYXRlVGlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZVRpbGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZW1vdmVUaWxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6cHVyZ2VCYWNr
aW5nU3RvcmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
c2V0Q29vcmRpbmF0b3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Okxh
eWVyVHJlZUNvb3JkaW5hdG9yOjp+TGF5ZXJUcmVlQ29vcmRpbmF0b3IpOgorICAgICAgICAoV2Vi
S2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6TGF5ZXJUcmVlQ29vcmRpbmF0b3IpOgorICAgICAg
ICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6cGFpbnRDb250ZW50cyk6CisKIDIwMTIt
MTEtMTIgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBT
dG9yZSBuYW1lIGNoYW5nZXMgaW4gdGhlIGxheWVyIHRyYW5zYWN0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9tYWMvR3JhcGhpY3NTdXJm
YWNlTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL21h
Yy9HcmFwaGljc1N1cmZhY2VNYWMuY3BwCmluZGV4IDg1OTdlYjRlMjc0Yjk4Nzg4NWRkOWY0NTM3
MDAyNmFhZjQ4ZjNjY2EuLmFiODM2MTQ1YjM0YmI3MWYxNTZmODJmOTBhN2MzZmZjZWM3MGY3ODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL21h
Yy9HcmFwaGljc1N1cmZhY2VNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL21hYy9HcmFwaGljc1N1cmZhY2VNYWMuY3BwCkBAIC0zMjMsNyArMzIz
LDcgQEAgdm9pZCBHcmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtUGFpbnRUb1RleHR1cmVNYXBwZXIo
VGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwKIHsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBhZGp1c3RlZFRyYW5zZm9ybSA9IHRyYW5zZm9ybTsKICAgICBhZGp1c3RlZFRyYW5zZm9ybS5t
dWx0aXBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cmVjdFRvUmVjdChGbG9hdFJlY3QoRmxvYXRQ
b2ludDo6emVybygpLCBtX3NpemUpLCB0YXJnZXRSZWN0KSk7Ci0gICAgc3RhdGljX2Nhc3Q8VGV4
dHVyZU1hcHBlckdMKj4odGV4dHVyZU1hcHBlciktPmRyYXdUZXh0dXJlUmVjdGFuZ2xlQVJCKG1f
cHJpdmF0ZS0+ZnJvbnRCdWZmZXJUZXh0dXJlSUQoKSwgMCwgbV9zaXplLCB0YXJnZXRSZWN0LCBh
ZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzayk7CisgICAgc3RhdGljX2Nhc3Q8VGV4dHVy
ZU1hcHBlckdMKj4odGV4dHVyZU1hcHBlciktPmRyYXdUZXh0dXJlUmVjdGFuZ2xlQVJCKG1fcHJp
dmF0ZS0+ZnJvbnRCdWZmZXJUZXh0dXJlSUQoKSwgVGV4dHVyZU1hcHBlckdMOjpTdXBwb3J0c0Js
ZW5kaW5nLCBtX3NpemUsIHRhcmdldFJlY3QsIGFkanVzdGVkVHJhbnNmb3JtLCBvcGFjaXR5LCBt
YXNrKTsKIH0KIAogdWludDMyX3QgR3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybUZyb250QnVmZmVy
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDk5YmJjNjY2Nzg0MzNhNTBjNGM3NDdmYzgzZGQ4YWI1
MDQ1M2JlMGYuLmE2MDE4ZmI0MTMwOWE5OWZmM2U5MDNiMzEyMTM0NTUwODY2ZTU3MzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKICAgICAs
IG1fc2hvdWxkU3luY0FuaW1hdGlvbnModHJ1ZSkKICAgICAsIG1fZml4ZWRUb1ZpZXdwb3J0KGZh
bHNlKQogICAgICwgbV9jYW52YXNOZWVkc0Rpc3BsYXkoZmFsc2UpCi0gICAgLCBtX0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllckNsaWVudCgwKQorICAgICwgbV9jb29yZGluYXRvcigwKQogICAgICwg
bV9jb250ZW50c1NjYWxlKDEpCiAgICAgLCBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIoMCkKICAgICAs
IG1fYW5pbWF0aW9uU3RhcnRlZFRpbWVyKHRoaXMsICZDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OmFuaW1hdGlvblN0YXJ0ZWRUaW1lckZpcmVkKQpAQCAtMTIyLDkgKzEyMiw5IEBAIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6fkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcigpCiB7CiAgICAgbGF5
ZXJCeUlETWFwKCkucmVtb3ZlKGlkKCkpOwogCi0gICAgaWYgKG1fQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyQ2xpZW50KSB7CisgICAgaWYgKG1fY29vcmRpbmF0b3IpIHsKICAgICAgICAgcHVyZ2VC
YWNraW5nU3RvcmVzKCk7Ci0gICAgICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50
LT5kZXRhY2hMYXllcih0aGlzKTsKKyAgICAgICAgbV9jb29yZGluYXRvci0+ZGV0YWNoTGF5ZXIo
dGhpcyk7CiAgICAgfQogICAgIHdpbGxCZURlc3Ryb3llZCgpOwogfQpAQCAtMTM2LDcgKzEzNiw2
IEBAIGJvb2wgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDaGlsZHJlbihjb25zdCBWZWN0
b3I8R3JhcGhpY3NMYXllcio+JiBjaGlsZHJlCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY2hpbGRyZW4uc2l6ZSgpOyArK2kpIHsKICAgICAgICAg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBjaGlsZCA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKGNoaWxkcmVuW2ldKTsKLSAgICAgICAgY2hpbGQtPnNldENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllckNsaWVudChtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk7CiAgICAgICAgIGNo
aWxkLT5kaWRDaGFuZ2VMYXllclN0YXRlKCk7CiAgICAgfQogICAgIGRpZENoYW5nZUNoaWxkcmVu
KCk7CkBAIC0xNDYsNyArMTQ1LDYgQEAgYm9vbCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNl
dENoaWxkcmVuKGNvbnN0IFZlY3RvcjxHcmFwaGljc0xheWVyKj4mIGNoaWxkcmUKIHZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjphZGRDaGlsZChHcmFwaGljc0xheWVyKiBsYXllcikKIHsK
ICAgICBHcmFwaGljc0xheWVyOjphZGRDaGlsZChsYXllcik7Ci0gICAgdG9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIobGF5ZXIpLT5zZXRDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQobV9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQpOwogICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKGxheWVyKS0+ZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwogICAgIGRpZENoYW5nZUNoaWxk
cmVuKCk7CiB9CkBAIC0xNTQsNyArMTUyLDYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OmFkZENoaWxkKEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmFkZENoaWxkQXRJbmRleChHcmFwaGljc0xheWVyKiBsYXllciwgaW50IGluZGV4
KQogewogICAgIEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkQXRJbmRleChsYXllciwgaW5kZXgpOwot
ICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKS0+c2V0Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyQ2xpZW50KG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KTsKICAgICB0
b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihsYXllciktPmRpZENoYW5nZUxheWVyU3RhdGUoKTsK
ICAgICBkaWRDaGFuZ2VDaGlsZHJlbigpOwogfQpAQCAtMTYyLDcgKzE1OSw2IEBAIHZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjphZGRDaGlsZEF0SW5kZXgoR3JhcGhpY3NMYXllciogbGF5
ZXIsIGludCBpbmRleCkKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjphZGRDaGlsZEFi
b3ZlKEdyYXBoaWNzTGF5ZXIqIGxheWVyLCBHcmFwaGljc0xheWVyKiBzaWJsaW5nKQogewogICAg
IEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkQWJvdmUobGF5ZXIsIHNpYmxpbmcpOwotICAgIHRvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKS0+c2V0Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
Q2xpZW50KG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KTsKICAgICB0b0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcihsYXllciktPmRpZENoYW5nZUxheWVyU3RhdGUoKTsKICAgICBkaWRD
aGFuZ2VDaGlsZHJlbigpOwogfQpAQCAtMTcwLDcgKzE2Niw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjphZGRDaGlsZEFib3ZlKEdyYXBoaWNzTGF5ZXIqIGxheWVyLCBHcmFwaGlj
c0xheWVyCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRCZWxvdyhHcmFw
aGljc0xheWVyKiBsYXllciwgR3JhcGhpY3NMYXllciogc2libGluZykKIHsKICAgICBHcmFwaGlj
c0xheWVyOjphZGRDaGlsZEJlbG93KGxheWVyLCBzaWJsaW5nKTsKLSAgICB0b0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcihsYXllciktPnNldENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCht
X0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk7CiAgICAgdG9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIobGF5ZXIpLT5kaWRDaGFuZ2VMYXllclN0YXRlKCk7CiAgICAgZGlkQ2hhbmdlQ2hp
bGRyZW4oKTsKIH0KQEAgLTE4Miw3ICsxNzcsNiBAQCBib29sIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6cmVwbGFjZUNoaWxkKEdyYXBoaWNzTGF5ZXIqIG9sZENoaWxkLCBHcmFwaGljc0xheQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZGlkQ2hhbmdlQ2hpbGRyZW4oKTsKICAgICB0b0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcihvbGRDaGlsZCktPmRpZENoYW5nZUxheWVyU3RhdGUoKTsK
LSAgICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihuZXdDaGlsZCktPnNldENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllckNsaWVudChtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk7CiAg
ICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobmV3Q2hpbGQpLT5kaWRDaGFuZ2VMYXllclN0
YXRlKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zNTAsMTUgKzM0NCwxNSBAQCB2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkK
ICAgICBpZiAoaW1hZ2UgPT0gbV9pbWFnZSkKICAgICAgICAgcmV0dXJuOwogICAgIGludDY0X3Qg
bmV3SUQgPSAwOwotICAgIGlmIChtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCkgewor
ICAgIGlmIChtX2Nvb3JkaW5hdG9yKSB7CiAgICAgICAgIC8vIFdlIGFkb3B0IGZpcnN0LCBpbiBj
YXNlIHRoaXMgaXMgdGhlIHNhbWUgZnJhbWUgLSB0aGF0IHdheSB3ZSBhdm9pZCBkZXN0cm95aW5n
IGFuZCByZWNyZWF0aW5nIHRoZSBpbWFnZS4KLSAgICAgICAgbmV3SUQgPSBtX0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllckNsaWVudC0+YWRvcHRJbWFnZUJhY2tpbmdTdG9yZShpbWFnZSk7Ci0gICAg
ICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5yZWxlYXNlSW1hZ2VCYWNraW5n
U3RvcmUobV9sYXllckluZm8uaW1hZ2VCYWNraW5nU3RvcmVJRCk7CisgICAgICAgIG5ld0lEID0g
bV9jb29yZGluYXRvci0+YWRvcHRJbWFnZUJhY2tpbmdTdG9yZShpbWFnZSk7CisgICAgICAgIG1f
Y29vcmRpbmF0b3ItPnJlbGVhc2VJbWFnZUJhY2tpbmdTdG9yZShtX2xheWVySW5mby5pbWFnZUJh
Y2tpbmdTdG9yZUlEKTsKICAgICAgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwogICAgICAgICBp
ZiAobV9sYXllckluZm8uaW1hZ2VCYWNraW5nU3RvcmVJRCAmJiBuZXdJRCA9PSBtX2xheWVySW5m
by5pbWFnZUJhY2tpbmdTdG9yZUlEKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0gZWxzZSB7
Ci0gICAgICAgIC8vIElmIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50IGlzIG5vdCBz
ZXQgeWV0IHRoZXJlIHNob3VsZCBiZSBubyBiYWNraW5nIHN0b3JlIElELgorICAgICAgICAvLyBJ
ZiBtX2Nvb3JkaW5hdG9yIGlzIG5vdCBzZXQgeWV0IHRoZXJlIHNob3VsZCBiZSBubyBiYWNraW5n
IHN0b3JlIElELgogICAgICAgICBBU1NFUlQoIW1fbGF5ZXJJbmZvLmltYWdlQmFja2luZ1N0b3Jl
SUQpOwogICAgICAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7CiAgICAgfQpAQCAtMzgwLDcgKzM3
NCw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRNYXNrTGF5ZXIoR3JhcGhp
Y3NMYXllciogbGF5ZXIpCiAKICAgICBsYXllci0+c2V0U2l6ZShzaXplKCkpOwogICAgIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllciogQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyID0gdG9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIobGF5ZXIpOwotICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllci0+
c2V0Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyQ2xpZW50KTsKICAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXItPnNldE1hc2tUYXJnZXQo
dGhpcyk7CiAgICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLT5kaWRDaGFuZ2VMYXllclN0YXRl
KCk7CiAgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwpAQCAtNDA2LDkgKzM5OSw2IEBAIHZvaWQg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRSZXBsaWNhdGVkQnlMYXllcihHcmFwaGljc0xh
eWVyKiBsYXllcikKICAgICBpZiAobGF5ZXIgPT0gcmVwbGljYUxheWVyKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGlmIChsYXllcikKLSAgICAgICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIobGF5ZXIpLT5zZXRDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQobV9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXJDbGllbnQpOwotCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0UmVwbGljYXRl
ZEJ5TGF5ZXIobGF5ZXIpOwogICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKIH0KQEAgLTQzOCw3
ICs0MjgsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3NpdGlu
Z1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAgICBpZiAoQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKiByZXBsaWNhID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIocmVwbGljYUxheWVy
KCkpKQogICAgICAgICByZXBsaWNhLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJP
bmx5KCk7CiAKLSAgICBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudC0+c3luY0ZpeGVk
TGF5ZXJzKCk7CisgICAgbV9jb29yZGluYXRvci0+c3luY0ZpeGVkTGF5ZXJzKCk7CiAKICAgICBm
bHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAKQEAgLTQ2MCw3ICs0NTAs
NyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0NoaWxkcmVuKCkKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGNoaWxkcmVuKCkuc2l6ZSgpOyArK2kpCiAgICAgICAgIGNo
aWxkSURzLmFwcGVuZCh0b1dlYkxheWVySUQoY2hpbGRyZW4oKVtpXSkpOwogCi0gICAgbV9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPnN5bmNMYXllckNoaWxkcmVuKG1faWQsIGNoaWxk
SURzKTsKKyAgICBtX2Nvb3JkaW5hdG9yLT5zeW5jTGF5ZXJDaGlsZHJlbihtX2lkLCBjaGlsZElE
cyk7CiB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCkBAIC00NjksNyArNDU5LDcgQEAgdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNGaWx0ZXJzKCkKICAgICBpZiAoIW1fc2hv
dWxkU3luY0ZpbHRlcnMpCiAgICAgICAgIHJldHVybjsKICAgICBtX3Nob3VsZFN5bmNGaWx0ZXJz
ID0gZmFsc2U7Ci0gICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPnN5bmNMYXll
ckZpbHRlcnMobV9pZCwgZmlsdGVycygpKTsKKyAgICBtX2Nvb3JkaW5hdG9yLT5zeW5jTGF5ZXJG
aWx0ZXJzKG1faWQsIGZpbHRlcnMoKSk7CiB9CiAjZW5kaWYKIApAQCAtNDk1LDcgKzQ4NSw3IEBA
IHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jTGF5ZXJTdGF0ZSgpCiAgICAgbV9s
YXllckluZm8ucmVwbGljYSA9IHRvV2ViTGF5ZXJJRChyZXBsaWNhTGF5ZXIoKSk7CiAgICAgbV9s
YXllckluZm8uc2l6ZSA9IHNpemUoKTsKICAgICBtX2xheWVySW5mby50cmFuc2Zvcm0gPSB0cmFu
c2Zvcm0oKTsKLSAgICBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudC0+c3luY0xheWVy
U3RhdGUobV9pZCwgbV9sYXllckluZm8pOworICAgIG1fY29vcmRpbmF0b3ItPnN5bmNMYXllclN0
YXRlKG1faWQsIG1fbGF5ZXJJbmZvKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnN5bmNBbmltYXRpb25zKCkKQEAgLTUwNSw3ICs0OTUsNyBAQCB2b2lkIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6c3luY0FuaW1hdGlvbnMoKQogCiAgICAgbV9zaG91bGRTeW5jQW5pbWF0
aW9ucyA9IGZhbHNlOwogCi0gICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPnNl
dExheWVyQW5pbWF0aW9ucyhtX2lkLCBtX2FuaW1hdGlvbnMpOworICAgIG1fY29vcmRpbmF0b3It
PnNldExheWVyQW5pbWF0aW9ucyhtX2lkLCBtX2FuaW1hdGlvbnMpOwogfQogCiB2b2lkIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0NhbnZhcygpCkBAIC01MjAsNyArNTEwLDcgQEAgdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDYW52YXMoKQogICAgIHVpbnQzMl90IGZy
b250QnVmZmVyID0gbV9jYW52YXNQbGF0Zm9ybUxheWVyLT5jb3B5VG9HcmFwaGljc1N1cmZhY2Uo
KTsKICAgICBHcmFwaGljc1N1cmZhY2VUb2tlbiB0b2tlbiA9IG1fY2FudmFzUGxhdGZvcm1MYXll
ci0+Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKTsKIAotICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyQ2xpZW50LT5zeW5jQ2FudmFzKG1faWQsIEludFNpemUoc2l6ZSgpLndpZHRoKCksIHNpemUo
KS5oZWlnaHQoKSksIHRva2VuLCBmcm9udEJ1ZmZlcik7CisgICAgbV9jb29yZGluYXRvci0+c3lu
Y0NhbnZhcyhtX2lkLCBJbnRTaXplKHNpemUoKS53aWR0aCgpLCBzaXplKCkuaGVpZ2h0KCkpLCB0
b2tlbiwgZnJvbnRCdWZmZXIpOwogI2VuZGlmCiAgICAgbV9jYW52YXNOZWVkc0Rpc3BsYXkgPSBm
YWxzZTsKIH0KQEAgLTUzMCw3ICs1MjAsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6ZW5zdXJlSW1hZ2VCYWNraW5nU3RvcmUoKQogICAgIGlmICghbV9pbWFnZSkKICAgICAgICAg
cmV0dXJuOwogICAgIGlmICghbV9sYXllckluZm8uaW1hZ2VCYWNraW5nU3RvcmVJRCkKLSAgICAg
ICAgbV9sYXllckluZm8uaW1hZ2VCYWNraW5nU3RvcmVJRCA9IG1fQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyQ2xpZW50LT5hZG9wdEltYWdlQmFja2luZ1N0b3JlKG1faW1hZ2UuZ2V0KCkpOworICAg
ICAgICBtX2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9yZUlEID0gbV9jb29yZGluYXRvci0+YWRv
cHRJbWFnZUJhY2tpbmdTdG9yZShtX2ltYWdlLmdldCgpKTsKIH0KIAogdm9pZCBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKQpA
QCAtNjE3LDcgKzYwNyw3IEBAIGJvb2wgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJh
Y2tpbmdTdG9yZVVwZGF0ZXNBbGxvd2VkKCkgY29uc3QKIHsKICAgICBpZiAoIW1faW5VcGRhdGVN
b2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIG1fQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyQ2xpZW50LT5sYXllclRyZWVUaWxlVXBkYXRlc0FsbG93ZWQoKTsKKyAgICByZXR1
cm4gbV9jb29yZGluYXRvci0+bGF5ZXJUcmVlVGlsZVVwZGF0ZXNBbGxvd2VkKCk7CiB9CiAKIElu
dFJlY3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZUNvbnRlbnRz
UmVjdCgpCkBAIC02NDIsNyArNjMyLDcgQEAgSW50UmVjdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnRpbGVkQmFja2luZ1N0b3JlVmlzaWJsZVJlY3QoKQogICAgIC8vIFJldHVybiBhIHByb2pl
Y3Rpb24gb2YgdGhlIHZpc2libGUgcmVjdCAoc3VyZmFjZSBjb29yZGluYXRlcykgb250byB0aGUg
bGF5ZXIncyBwbGFuZSAobGF5ZXIgY29vcmRpbmF0ZXMpLgogICAgIC8vIFRoZSByZXN1bHRpbmcg
cXVhZCBtaWdodCBiZSBzcXVld2VkIGFuZCB0aGUgdmlzaWJsZSByZWN0IGlzIHRoZSBib3VuZGlu
ZyBib3ggb2YgdGhpcyBxdWFkLAogICAgIC8vIHNvIGl0IG1pZ2h0IHNwcmVhZCBmdXJ0aGVyIHRo
YW4gdGhlIHJlYWwgdmlzaWJsZSBhcmVhIChhbmQgdGhlbiBldmVuIG1vcmUgYW1wbGlmaWVkIGJ5
IHRoZSBjb3ZlciByZWN0IG11bHRpcGxpZXIpLgotICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0
KG1fbGF5ZXJUcmFuc2Zvcm0uY29tYmluZWQoKS5pbnZlcnNlKCkuY2xhbXBlZEJvdW5kc09mUHJv
amVjdGVkUXVhZChGbG9hdFF1YWQoRmxvYXRSZWN0KG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
Q2xpZW50LT52aXNpYmxlQ29udGVudHNSZWN0KCkpKSkpOworICAgIHJldHVybiBlbmNsb3NpbmdJ
bnRSZWN0KG1fbGF5ZXJUcmFuc2Zvcm0uY29tYmluZWQoKS5pbnZlcnNlKCkuY2xhbXBlZEJvdW5k
c09mUHJvamVjdGVkUXVhZChGbG9hdFF1YWQoRmxvYXRSZWN0KG1fY29vcmRpbmF0b3ItPnZpc2li
bGVDb250ZW50c1JlY3QoKSkpKSk7CiB9CiAKIENvbG9yIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6dGlsZWRCYWNraW5nU3RvcmVCYWNrZ3JvdW5kQ29sb3IoKSBjb25zdApAQCAtNjUyLDIyICs2
NDIsMjIgQEAgQ29sb3IgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9y
ZUJhY2tncm91bmRDb2xvcigpIGNvbnN0CiAKIFBhc3NPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0PiBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmJlZ2luQ29udGVudFVwZGF0ZShjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBzaXplLCBpbnQmIGF0bGFzLCBXZWJDb3JlOjpJbnRQb2ludCYg
b2Zmc2V0KQogewotICAgIHJldHVybiBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudC0+
YmVnaW5Db250ZW50VXBkYXRlKHNpemUsIGNvbnRlbnRzT3BhcXVlKCkgPyAwIDogU2hhcmVhYmxl
Qml0bWFwOjpTdXBwb3J0c0FscGhhLCBhdGxhcywgb2Zmc2V0KTsKKyAgICByZXR1cm4gbV9jb29y
ZGluYXRvci0+YmVnaW5Db250ZW50VXBkYXRlKHNpemUsIGNvbnRlbnRzT3BhcXVlKCkgPyAwIDog
U2hhcmVhYmxlQml0bWFwOjpTdXBwb3J0c0FscGhhLCBhdGxhcywgb2Zmc2V0KTsKIH0KIAogdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZVRpbGUoaW50IHRpbGVJRCwgY29uc3Qg
U3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHRp
bGVSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNraW5nU2l6ZSkKIHsKLSAgICBtX0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudC0+Y3JlYXRlVGlsZShpZCgpLCB0aWxlSUQsIHVw
ZGF0ZUluZm8sIHRpbGVSZWN0LCBiYWNraW5nU2l6ZSk7CisgICAgbV9jb29yZGluYXRvci0+Y3Jl
YXRlVGlsZShpZCgpLCB0aWxlSUQsIHVwZGF0ZUluZm8sIHRpbGVSZWN0LCBiYWNraW5nU2l6ZSk7
CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp1cGRhdGVUaWxlKGludCB0aWxl
SUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZvLCBjb25zdCBJbnRSZWN0JiB0
aWxlUmVjdCkKIHsKLSAgICBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudC0+dXBkYXRl
VGlsZShpZCgpLCB0aWxlSUQsIHVwZGF0ZUluZm8sIHRpbGVSZWN0KTsKKyAgICBtX2Nvb3JkaW5h
dG9yLT51cGRhdGVUaWxlKGlkKCksIHRpbGVJRCwgdXBkYXRlSW5mbywgdGlsZVJlY3QpOwogfQog
CiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6cmVtb3ZlVGlsZShpbnQgdGlsZUlEKQog
ewotICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5yZW1vdmVUaWxlKGlkKCks
IHRpbGVJRCk7CisgICAgbV9jb29yZGluYXRvci0+cmVtb3ZlVGlsZShpZCgpLCB0aWxlSUQpOwog
fQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dXBkYXRlQ29udGVudEJ1ZmZlcnMo
KQpAQCAtNjk5LDcgKzY4OSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpwdXJn
ZUJhY2tpbmdTdG9yZXMoKQogICAgIG1fcHJldmlvdXNCYWNraW5nU3RvcmUuY2xlYXIoKTsKIAog
ICAgIGlmIChtX2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9yZUlEKSB7Ci0gICAgICAgIG1fQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5yZWxlYXNlSW1hZ2VCYWNraW5nU3RvcmUobV9s
YXllckluZm8uaW1hZ2VCYWNraW5nU3RvcmVJRCk7CisgICAgICAgIG1fY29vcmRpbmF0b3ItPnJl
bGVhc2VJbWFnZUJhY2tpbmdTdG9yZShtX2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9yZUlEKTsK
ICAgICAgICAgbV9sYXllckluZm8uaW1hZ2VCYWNraW5nU3RvcmVJRCA9IDA7CiAgICAgfQogCkBA
IC03MDcsMjggKzY5Nyw5IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpwdXJnZUJh
Y2tpbmdTdG9yZXMoKQogICAgIGRpZENoYW5nZUNoaWxkcmVuKCk7CiB9CiAKLXZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQoV2Vi
S2l0OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKK3ZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb29yZGluYXRvcihXZWJLaXQ6OkNvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllckNsaWVudCogY29vcmRpbmF0b3IpCiB7Ci0gICAgaWYgKG1fQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyQ2xpZW50ID09IGNsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYg
KENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogcmVwbGljYSA9IHRvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKHJlcGxpY2FMYXllcigpKSkKLSAgICAgICAgcmVwbGljYS0+c2V0Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyQ2xpZW50KGNsaWVudCk7Ci0gICAgaWYgKENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllciogbWFzayA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG1hc2tMYXllcigpKSkKLSAg
ICAgICAgbWFzay0+c2V0Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KGNsaWVudCk7Ci0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytpKSB7Ci0gICAg
ICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIgPSB0b0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcih0aGlzLT5jaGlsZHJlbigpW2ldKTsKLSAgICAgICAgbGF5ZXItPnNldENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllckNsaWVudChjbGllbnQpOwotICAgIH0KLQotICAgIC8vIFdlIGhhdmUg
dG8gcmVsZWFzZSByZXNvdXJjZXMgb24gdGhlIFVJIHByb2Nlc3MgaGVyZSBpZiB0aGUgcmVtb3Rl
IGNsaWVudCBoYXMgY2hhbmdlZCBvciBpcyByZW1vdmVkLgotICAgIGlmIChtX0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllckNsaWVudCkgewotICAgICAgICBwdXJnZUJhY2tpbmdTdG9yZXMoKTsKLSAg
ICAgICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPmRldGFjaExheWVyKHRoaXMp
OwotICAgIH0KLSAgICBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCA9IGNsaWVudDsK
LSAgICBpZiAoY2xpZW50KQotICAgICAgICBjbGllbnQtPmF0dGFjaExheWVyKHRoaXMpOworICAg
IG1fY29vcmRpbmF0b3IgPSBjb29yZGluYXRvcjsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmFkanVzdFZpc2libGVSZWN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggMmE5NDM2OTFmMGE0YWIz
ZWM1YzU5Y2E1ZGUzZTE4NDFlNDFkMWM4Zi4uY2JkOGQzMTBjZjNhMzc1NjU1MGYyOWJlODVjMjdk
ZmFmZDllM2VkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTE1MSw3ICsxNTEsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHJlbW92ZVRpbGUoaW50IHRpbGVJRCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBQ
YXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gYmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IEludFNp
emUmLCBpbnQmIGF0bGFzSUQsIEludFBvaW50JikgT1ZFUlJJREU7CiAKLSAgICB2b2lkIHNldENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudChXZWJLaXQ6OkNvb3JkaW5hdGVkR3JhcGhpY3NM
YXllckNsaWVudCopOworICAgIHZvaWQgc2V0Q29vcmRpbmF0b3IoV2ViS2l0OjpDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXJDbGllbnQqKTsKIAogICAgIHZvaWQgYWRqdXN0VmlzaWJsZVJlY3QoKTsK
ICAgICB2b2lkIHB1cmdlQmFja2luZ1N0b3JlcygpOwpAQCAtMjEwLDcgKzIxMCw3IEBAIHByaXZh
dGU6CiAgICAgZmxvYXQgbV9lZmZlY3RpdmVPcGFjaXR5OwogICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IG1fZWZmZWN0aXZlVHJhbnNmb3JtOwogCi0gICAgV2ViS2l0OjpDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXJDbGllbnQqIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50OworICAgIFdl
YktpdDo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KiBtX2Nvb3JkaW5hdG9yOwogICAg
IE93blB0cjxUaWxlZEJhY2tpbmdTdG9yZT4gbV9tYWluQmFja2luZ1N0b3JlOwogICAgIE93blB0
cjxUaWxlZEJhY2tpbmdTdG9yZT4gbV9wcmV2aW91c0JhY2tpbmdTdG9yZTsKICAgICBmbG9hdCBt
X2NvbnRlbnRzU2NhbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvci5jcHAKaW5kZXggNDMzYmNlOWFkNTA2Mzc2ZmVmNzU4OTI5Zjc4YTVlOWYz
MDU3MDhkMC4uYTJjMDRmYzQzYzMwNGMyNjkxOGQ2MmI2NmNkNTY3Y2Y5ZWJmNzUxNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcApA
QCAtNjYsNyArNjYsNyBAQCBMYXllclRyZWVDb29yZGluYXRvcjo6fkxheWVyVHJlZUNvb3JkaW5h
dG9yKCkKIAogICAgIEhhc2hTZXQ8V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKj46
Oml0ZXJhdG9yIGVuZCA9IHJlZ2lzdGVyZWRMYXllcnMuZW5kKCk7CiAgICAgZm9yIChIYXNoU2V0
PFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcio+OjppdGVyYXRvciBpdCA9IHJlZ2lz
dGVyZWRMYXllcnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQotICAgICAgICAoKml0KS0+c2V0
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KDApOworICAgICAgICAoKml0KS0+c2V0Q29v
cmRpbmF0b3IoMCk7CiB9CiAKIExheWVyVHJlZUNvb3JkaW5hdG9yOjpMYXllclRyZWVDb29yZGlu
YXRvcihXZWJQYWdlKiB3ZWJQYWdlKQpAQCAtOTgsNyArOTgsNiBAQCBMYXllclRyZWVDb29yZGlu
YXRvcjo6TGF5ZXJUcmVlQ29vcmRpbmF0b3IoV2ViUGFnZSogd2ViUGFnZSkKICAgICBtX2xheWVy
VHJlZUNvbnRleHQud2ViTGF5ZXJJRCA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKHdlYlJv
b3RMYXllciktPmlkKCk7CiAKICAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXIgPSBHcmFw
aGljc0xheWVyOjpjcmVhdGUodGhpcywgdGhpcyk7Ci0gICAgdG9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIobV9yb290TGF5ZXIuZ2V0KCkpLT5zZXRDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGll
bnQodGhpcyk7CiAjaWZuZGVmIE5ERUJVRwogICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXll
ci0+c2V0TmFtZSgiTGF5ZXJUcmVlQ29vcmRpbmF0b3Igbm9uLWNvbXBvc2l0ZWQgY29udGVudCIp
OwogI2VuZGlmCkBAIC01ODUsNyArNTg0LDggQEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6
cGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBncmFwaGljc0wKIFBh
c3NPd25QdHI8R3JhcGhpY3NMYXllcj4gTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZUdyYXBo
aWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogewogICAgIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllciogbmV3TGF5ZXIgPSBuZXcgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGNs
aWVudCk7Ci0gICAgbmV3TGF5ZXItPnNldENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCh0
aGlzKTsKKyAgICBuZXdMYXllci0+c2V0Q29vcmRpbmF0b3IodGhpcyk7CisgICAgYXR0YWNoTGF5
ZXIobmV3TGF5ZXIpOwogICAgIHJldHVybiBhZG9wdFB0cihuZXdMYXllcik7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173997</attachid>
            <date>2012-11-13 15:00:38 -0800</date>
            <delta_ts>2012-11-13 15:02:15 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-102133-20121113145849.patch</filename>
            <type>text/plain</type>
            <size>18624</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzQzNTAxNDkwYjlkNWU1
NTIzYjNjODEwZTU2ZTAxNDI5OGJiMGYyOS4uN2E2MTUzNzMyY2EzMmRkZTE1ODJlNzcwNDc1YmE4
NDc2Njk0NzU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTExLTEzICBObydh
bSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CisKKyAgICAgICAgQ29vcmRp
bmF0ZWQgR3JhcGhpY3M6IFJlbmFtZSBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCB0
byBtX2Nvb3JkaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDIxMzMKKworICAgICAgICBSZW5hbWVkIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyQ2xpZW50IHRvIG1fY29vcmRpbmF0b3IuCisgICAgICAgIEFsc28sIHRoZXJlIGlzIG5vIG5l
ZWQgZm9yIGNhbGxpbmcgc2V0Q29vcmRpbmF0b3IgZXZlcnkgdGltZSB0aGUgdHJlZSBjaGFuZ2Vz
LAorICAgICAgICBzaW5jZSB3ZSBjYW4gY2FsbCBpdCBvbmNlIHdoZW4gdGhlIGxheWVyIGlzIGNy
ZWF0ZWQsIG5vdyB0aGF0IExheWVyVHJlZUNvb3JkaW5hdG9yCisgICAgICAgIGlzIHRoZSBHcmFw
aGljc0xheWVyRmFjdG9yeS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6On5Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRBYm92ZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkQmVsb3cpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZXBsYWNlQ2hpbGQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1Rv
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRN
YXNrTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpz
ZXRSZXBsaWNhdGVkQnlMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNGaWx0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0xheWVyU3RhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jQW5pbWF0aW9ucyk6CisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDYW52YXMpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjplbnN1cmVJbWFnZUJhY2tpbmdT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVk
QmFja2luZ1N0b3JlVXBkYXRlc0FsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZVZpc2libGVSZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YmVnaW5Db250ZW50VXBkYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Y3JlYXRlVGlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZVRpbGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZW1vdmVUaWxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6cHVyZ2VCYWNr
aW5nU3RvcmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
c2V0Q29vcmRpbmF0b3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Okxh
eWVyVHJlZUNvb3JkaW5hdG9yOjp+TGF5ZXJUcmVlQ29vcmRpbmF0b3IpOgorICAgICAgICAoV2Vi
S2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6TGF5ZXJUcmVlQ29vcmRpbmF0b3IpOgorICAgICAg
ICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6cGFpbnRDb250ZW50cyk6CisKIDIwMTIt
MTEtMTMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFNwbGl0
IE5ldHdvcmtSZXF1ZXN0IHVwIGludG8gYSByZXF1ZXN0IGNsYXNzIGFuZCBhIGxvYWRpbmcgY2xh
c3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9tYWMvR3JhcGhpY3NTdXJmYWNlTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL21hYy9HcmFwaGljc1N1cmZhY2VNYWMuY3BwCmluZGV4IDg1OTdlYjRl
Mjc0Yjk4Nzg4NWRkOWY0NTM3MDAyNmFhZjQ4ZjNjY2EuLmFiODM2MTQ1YjM0YmI3MWYxNTZmODJm
OTBhN2MzZmZjZWM3MGY3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL21hYy9HcmFwaGljc1N1cmZhY2VNYWMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL21hYy9HcmFwaGljc1N1cmZhY2VNYWMu
Y3BwCkBAIC0zMjMsNyArMzIzLDcgQEAgdm9pZCBHcmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtUGFp
bnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwKIHsKICAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBhZGp1c3RlZFRyYW5zZm9ybSA9IHRyYW5zZm9ybTsKICAgICBh
ZGp1c3RlZFRyYW5zZm9ybS5tdWx0aXBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cmVjdFRvUmVj
dChGbG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBtX3NpemUpLCB0YXJnZXRSZWN0KSk7Ci0g
ICAgc3RhdGljX2Nhc3Q8VGV4dHVyZU1hcHBlckdMKj4odGV4dHVyZU1hcHBlciktPmRyYXdUZXh0
dXJlUmVjdGFuZ2xlQVJCKG1fcHJpdmF0ZS0+ZnJvbnRCdWZmZXJUZXh0dXJlSUQoKSwgMCwgbV9z
aXplLCB0YXJnZXRSZWN0LCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzayk7CisgICAg
c3RhdGljX2Nhc3Q8VGV4dHVyZU1hcHBlckdMKj4odGV4dHVyZU1hcHBlciktPmRyYXdUZXh0dXJl
UmVjdGFuZ2xlQVJCKG1fcHJpdmF0ZS0+ZnJvbnRCdWZmZXJUZXh0dXJlSUQoKSwgVGV4dHVyZU1h
cHBlckdMOjpTdXBwb3J0c0JsZW5kaW5nLCBtX3NpemUsIHRhcmdldFJlY3QsIGFkanVzdGVkVHJh
bnNmb3JtLCBvcGFjaXR5LCBtYXNrKTsKIH0KIAogdWludDMyX3QgR3JhcGhpY3NTdXJmYWNlOjpw
bGF0Zm9ybUZyb250QnVmZmVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDZlYjJmYTQ1ZDQyY2U4
MDEwZmFjYTk2MzJlMjMyODM0ZTE2MDczYjkuLmM0YTIwYTM0NDNlNTQ4NzlmZTJmYmYxOTFlYjA5
ZGJhZWMxN2EyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtMTE2LDcgKzExNiw3IEBAIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGll
bnQqIGNsaWVudCkKICAgICAsIG1fc2hvdWxkU3luY0FuaW1hdGlvbnModHJ1ZSkKICAgICAsIG1f
Zml4ZWRUb1ZpZXdwb3J0KGZhbHNlKQogICAgICwgbV9jYW52YXNOZWVkc0Rpc3BsYXkoZmFsc2Up
Ci0gICAgLCBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCgwKQorICAgICwgbV9jb29y
ZGluYXRvcigwKQogICAgICwgbV9jb250ZW50c1NjYWxlKDEpCiAgICAgLCBtX2NvbXBvc2l0ZWRO
YXRpdmVJbWFnZVB0cigwKQogICAgICwgbV9jYW52YXNQbGF0Zm9ybUxheWVyKDApCkBAIC0xMzEs
OSArMTMxLDkgQEAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp+Q29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKCkKIHsKICAgICBsYXllckJ5SURNYXAoKS5yZW1vdmUoaWQoKSk7CiAKLSAgICBpZiAo
bV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQpIHsKKyAgICBpZiAobV9jb29yZGluYXRv
cikgewogICAgICAgICBwdXJnZUJhY2tpbmdTdG9yZXMoKTsKLSAgICAgICAgbV9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXJDbGllbnQtPmRldGFjaExheWVyKHRoaXMpOworICAgICAgICBtX2Nvb3Jk
aW5hdG9yLT5kZXRhY2hMYXllcih0aGlzKTsKICAgICB9CiAgICAgd2lsbEJlRGVzdHJveWVkKCk7
CiB9CkBAIC0xNDUsNyArMTQ1LDYgQEAgYm9vbCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNl
dENoaWxkcmVuKGNvbnN0IFZlY3RvcjxHcmFwaGljc0xheWVyKj4mIGNoaWxkcmUKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjaGlsZHJlbi5zaXpl
KCk7ICsraSkgewogICAgICAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGNoaWxkID0gdG9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoY2hpbGRyZW5baV0pOwotICAgICAgICBjaGlsZC0+c2V0
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
Q2xpZW50KTsKICAgICAgICAgY2hpbGQtPmRpZENoYW5nZUxheWVyU3RhdGUoKTsKICAgICB9CiAg
ICAgZGlkQ2hhbmdlQ2hpbGRyZW4oKTsKQEAgLTE1NSw3ICsxNTQsNiBAQCBib29sIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c2V0Q2hpbGRyZW4oY29uc3QgVmVjdG9yPEdyYXBoaWNzTGF5ZXIq
PiYgY2hpbGRyZQogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkKEdyYXBo
aWNzTGF5ZXIqIGxheWVyKQogewogICAgIEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkKGxheWVyKTsK
LSAgICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihsYXllciktPnNldENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllckNsaWVudChtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk7CiAgICAg
dG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobGF5ZXIpLT5kaWRDaGFuZ2VMYXllclN0YXRlKCk7
CiAgICAgZGlkQ2hhbmdlQ2hpbGRyZW4oKTsKIH0KQEAgLTE2Myw3ICsxNjEsNiBAQCB2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGQoR3JhcGhpY3NMYXllciogbGF5ZXIpCiB2
b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRBdEluZGV4KEdyYXBoaWNzTGF5
ZXIqIGxheWVyLCBpbnQgaW5kZXgpCiB7CiAgICAgR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRBdElu
ZGV4KGxheWVyLCBpbmRleCk7Ci0gICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobGF5ZXIp
LT5zZXRDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQobV9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXJDbGllbnQpOwogICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKS0+ZGlk
Q2hhbmdlTGF5ZXJTdGF0ZSgpOwogICAgIGRpZENoYW5nZUNoaWxkcmVuKCk7CiB9CkBAIC0xNzEs
NyArMTY4LDYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkQXRJbmRl
eChHcmFwaGljc0xheWVyKiBsYXllciwgaW50IGluZGV4KQogdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmFkZENoaWxkQWJvdmUoR3JhcGhpY3NMYXllciogbGF5ZXIsIEdyYXBoaWNzTGF5
ZXIqIHNpYmxpbmcpCiB7CiAgICAgR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRBYm92ZShsYXllciwg
c2libGluZyk7Ci0gICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobGF5ZXIpLT5zZXRDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQobV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGll
bnQpOwogICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKS0+ZGlkQ2hhbmdlTGF5
ZXJTdGF0ZSgpOwogICAgIGRpZENoYW5nZUNoaWxkcmVuKCk7CiB9CkBAIC0xNzksNyArMTc1LDYg
QEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkQWJvdmUoR3JhcGhpY3NM
YXllciogbGF5ZXIsIEdyYXBoaWNzTGF5ZXIKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjphZGRDaGlsZEJlbG93KEdyYXBoaWNzTGF5ZXIqIGxheWVyLCBHcmFwaGljc0xheWVyKiBzaWJs
aW5nKQogewogICAgIEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkQmVsb3cobGF5ZXIsIHNpYmxpbmcp
OwotICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKS0+c2V0Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyQ2xpZW50KG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KTsKICAg
ICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihsYXllciktPmRpZENoYW5nZUxheWVyU3RhdGUo
KTsKICAgICBkaWRDaGFuZ2VDaGlsZHJlbigpOwogfQpAQCAtMTkxLDcgKzE4Niw2IEBAIGJvb2wg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZXBsYWNlQ2hpbGQoR3JhcGhpY3NMYXllciogb2xk
Q2hpbGQsIEdyYXBoaWNzTGF5CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBkaWRDaGFuZ2VD
aGlsZHJlbigpOwogICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG9sZENoaWxkKS0+ZGlk
Q2hhbmdlTGF5ZXJTdGF0ZSgpOwotICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG5ld0No
aWxkKS0+c2V0Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KG1fQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyQ2xpZW50KTsKICAgICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihuZXdDaGls
ZCktPmRpZENoYW5nZUxheWVyU3RhdGUoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTM4Niw3
ICszODAsNiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0TWFza0xheWVyKEdy
YXBoaWNzTGF5ZXIqIGxheWVyKQogCiAgICAgbGF5ZXItPnNldFNpemUoc2l6ZSgpKTsKICAgICBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciA9IHRvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKTsKLSAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXItPnNldENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudChtX0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllckNsaWVudCk7CiAgICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLT5zZXRNYXNrVGFy
Z2V0KHRoaXMpOwogICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllci0+ZGlkQ2hhbmdlTGF5ZXJT
dGF0ZSgpOwogICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKQEAgLTQxMCw5ICs0MDMsNiBAQCB2
b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0UmVwbGljYXRlZEJ5TGF5ZXIoR3JhcGhp
Y3NMYXllciogbGF5ZXIpCiAgICAgaWYgKGxheWVyID09IHJlcGxpY2FMYXllcigpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAobGF5ZXIpCi0gICAgICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKGxheWVyKS0+c2V0Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KG1fQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KTsKLQogICAgIEdyYXBoaWNzTGF5ZXI6OnNldFJlcGxp
Y2F0ZWRCeUxheWVyKGxheWVyKTsKICAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7CiB9CkBAIC00
NDIsNyArNDMyLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9z
aXRpbmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAgICAgaWYgKENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllciogcmVwbGljYSA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKHJlcGxpY2FM
YXllcigpKSkKICAgICAgICAgcmVwbGljYS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xh
eWVyT25seSgpOwogCi0gICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPnN5bmNG
aXhlZExheWVycygpOworICAgIG1fY29vcmRpbmF0b3ItPnN5bmNGaXhlZExheWVycygpOwogCiAg
ICAgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogCkBAIC00NjQsNyAr
NDU0LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDaGlsZHJlbigpCiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytpKQogICAgICAg
ICBjaGlsZElEcy5hcHBlbmQodG9XZWJMYXllcklEKGNoaWxkcmVuKClbaV0pKTsKIAotICAgIG1f
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5zeW5jTGF5ZXJDaGlsZHJlbihtX2lkLCBj
aGlsZElEcyk7CisgICAgbV9jb29yZGluYXRvci0+c3luY0xheWVyQ2hpbGRyZW4obV9pZCwgY2hp
bGRJRHMpOwogfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQpAQCAtNDczLDcgKzQ2Myw3IEBA
IHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jRmlsdGVycygpCiAgICAgaWYgKCFt
X3Nob3VsZFN5bmNGaWx0ZXJzKQogICAgICAgICByZXR1cm47CiAgICAgbV9zaG91bGRTeW5jRmls
dGVycyA9IGZhbHNlOwotICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5zeW5j
TGF5ZXJGaWx0ZXJzKG1faWQsIGZpbHRlcnMoKSk7CisgICAgbV9jb29yZGluYXRvci0+c3luY0xh
eWVyRmlsdGVycyhtX2lkLCBmaWx0ZXJzKCkpOwogfQogI2VuZGlmCiAKQEAgLTQ4OSw3ICs0Nzks
NyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0ltYWdlQmFja2luZygpCiAg
ICAgICAgIEFTU0VSVCghbV9tYWluQmFja2luZ1N0b3JlKTsKICAgICAgICAgQVNTRVJUKG1fY29t
cG9zaXRlZEltYWdlKTsKIAotICAgICAgICBtX2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9yZUlE
ID0gbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPmFkb3B0SW1hZ2VCYWNraW5nU3Rv
cmUobV9jb21wb3NpdGVkSW1hZ2UuZ2V0KCkpOworICAgICAgICBtX2xheWVySW5mby5pbWFnZUJh
Y2tpbmdTdG9yZUlEID0gbV9jb29yZGluYXRvci0+YWRvcHRJbWFnZUJhY2tpbmdTdG9yZShtX2Nv
bXBvc2l0ZWRJbWFnZS5nZXQoKSk7CiAgICAgfQogCiAgICAgLy8gVGhpcyBtZXRob2QgY2hhbmdl
cyBtX2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9yZUlELgpAQCAtNTE4LDcgKzUwOCw3IEBAIHZv
aWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jTGF5ZXJTdGF0ZSgpCiAgICAgbV9sYXll
ckluZm8ucmVwbGljYSA9IHRvV2ViTGF5ZXJJRChyZXBsaWNhTGF5ZXIoKSk7CiAgICAgbV9sYXll
ckluZm8uc2l6ZSA9IHNpemUoKTsKICAgICBtX2xheWVySW5mby50cmFuc2Zvcm0gPSB0cmFuc2Zv
cm0oKTsKLSAgICBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudC0+c3luY0xheWVyU3Rh
dGUobV9pZCwgbV9sYXllckluZm8pOworICAgIG1fY29vcmRpbmF0b3ItPnN5bmNMYXllclN0YXRl
KG1faWQsIG1fbGF5ZXJJbmZvKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OnN5bmNBbmltYXRpb25zKCkKQEAgLTUyOCw3ICs1MTgsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6c3luY0FuaW1hdGlvbnMoKQogCiAgICAgbV9zaG91bGRTeW5jQW5pbWF0aW9u
cyA9IGZhbHNlOwogCi0gICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPnNldExh
eWVyQW5pbWF0aW9ucyhtX2lkLCBtX2FuaW1hdGlvbnMpOworICAgIG1fY29vcmRpbmF0b3ItPnNl
dExheWVyQW5pbWF0aW9ucyhtX2lkLCBtX2FuaW1hdGlvbnMpOwogfQogCiB2b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c3luY0NhbnZhcygpCkBAIC01NDMsNyArNTMzLDcgQEAgdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDYW52YXMoKQogICAgIHVpbnQzMl90IGZyb250
QnVmZmVyID0gbV9jYW52YXNQbGF0Zm9ybUxheWVyLT5jb3B5VG9HcmFwaGljc1N1cmZhY2UoKTsK
ICAgICBHcmFwaGljc1N1cmZhY2VUb2tlbiB0b2tlbiA9IG1fY2FudmFzUGxhdGZvcm1MYXllci0+
Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKTsKIAotICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
Q2xpZW50LT5zeW5jQ2FudmFzKG1faWQsIEludFNpemUoc2l6ZSgpLndpZHRoKCksIHNpemUoKS5o
ZWlnaHQoKSksIHRva2VuLCBmcm9udEJ1ZmZlcik7CisgICAgbV9jb29yZGluYXRvci0+c3luY0Nh
bnZhcyhtX2lkLCBJbnRTaXplKHNpemUoKS53aWR0aCgpLCBzaXplKCkuaGVpZ2h0KCkpLCB0b2tl
biwgZnJvbnRCdWZmZXIpOwogI2VuZGlmCiAgICAgbV9jYW52YXNOZWVkc0Rpc3BsYXkgPSBmYWxz
ZTsKIH0KQEAgLTU2Nyw4ICs1NTcsOCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
cmVsZWFzZUltYWdlQmFja2luZ0lmTmVlZGVkKCkKICAgICBpZiAoIW1fbGF5ZXJJbmZvLmltYWdl
QmFja2luZ1N0b3JlSUQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVChtX0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllckNsaWVudCk7Ci0gICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJD
bGllbnQtPnJlbGVhc2VJbWFnZUJhY2tpbmdTdG9yZShtX2xheWVySW5mby5pbWFnZUJhY2tpbmdT
dG9yZUlEKTsKKyAgICBBU1NFUlQobV9jb29yZGluYXRvcik7CisgICAgbV9jb29yZGluYXRvci0+
cmVsZWFzZUltYWdlQmFja2luZ1N0b3JlKG1fbGF5ZXJJbmZvLmltYWdlQmFja2luZ1N0b3JlSUQp
OwogICAgIG1fbGF5ZXJJbmZvLmltYWdlQmFja2luZ1N0b3JlSUQgPSAwOwogfQogCkBAIC02NDEs
NyArNjMxLDcgQEAgYm9vbCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0
b3JlVXBkYXRlc0FsbG93ZWQoKSBjb25zdAogewogICAgIGlmICghbV9pblVwZGF0ZU1vZGUpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXJDbGllbnQtPmxheWVyVHJlZVRpbGVVcGRhdGVzQWxsb3dlZCgpOworICAgIHJldHVybiBtX2Nv
b3JkaW5hdG9yLT5sYXllclRyZWVUaWxlVXBkYXRlc0FsbG93ZWQoKTsKIH0KIAogSW50UmVjdCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlQ29udGVudHNSZWN0KCkK
QEAgLTY2Niw3ICs2NTYsNyBAQCBJbnRSZWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dGls
ZWRCYWNraW5nU3RvcmVWaXNpYmxlUmVjdCgpCiAgICAgLy8gUmV0dXJuIGEgcHJvamVjdGlvbiBv
ZiB0aGUgdmlzaWJsZSByZWN0IChzdXJmYWNlIGNvb3JkaW5hdGVzKSBvbnRvIHRoZSBsYXllcidz
IHBsYW5lIChsYXllciBjb29yZGluYXRlcykuCiAgICAgLy8gVGhlIHJlc3VsdGluZyBxdWFkIG1p
Z2h0IGJlIHNxdWV3ZWQgYW5kIHRoZSB2aXNpYmxlIHJlY3QgaXMgdGhlIGJvdW5kaW5nIGJveCBv
ZiB0aGlzIHF1YWQsCiAgICAgLy8gc28gaXQgbWlnaHQgc3ByZWFkIGZ1cnRoZXIgdGhhbiB0aGUg
cmVhbCB2aXNpYmxlIGFyZWEgKGFuZCB0aGVuIGV2ZW4gbW9yZSBhbXBsaWZpZWQgYnkgdGhlIGNv
dmVyIHJlY3QgbXVsdGlwbGllcikuCi0gICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QobV9sYXll
clRyYW5zZm9ybS5jb21iaW5lZCgpLmludmVyc2UoKS5jbGFtcGVkQm91bmRzT2ZQcm9qZWN0ZWRR
dWFkKEZsb2F0UXVhZChGbG9hdFJlY3QobV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQt
PnZpc2libGVDb250ZW50c1JlY3QoKSkpKSk7CisgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3Qo
bV9sYXllclRyYW5zZm9ybS5jb21iaW5lZCgpLmludmVyc2UoKS5jbGFtcGVkQm91bmRzT2ZQcm9q
ZWN0ZWRRdWFkKEZsb2F0UXVhZChGbG9hdFJlY3QobV9jb29yZGluYXRvci0+dmlzaWJsZUNvbnRl
bnRzUmVjdCgpKSkpKTsKIH0KIAogQ29sb3IgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxl
ZEJhY2tpbmdTdG9yZUJhY2tncm91bmRDb2xvcigpIGNvbnN0CkBAIC02NzYsMjIgKzY2NiwyMiBA
QCBDb2xvciBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlQmFja2dy
b3VuZENvbG9yKCkgY29uc3QKIAogUGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+
IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIHNpemUsIGludCYgYXRsYXMsIFdlYkNvcmU6OkludFBvaW50JiBvZmZzZXQp
CiB7Ci0gICAgcmV0dXJuIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5iZWdpbkNv
bnRlbnRVcGRhdGUoc2l6ZSwgY29udGVudHNPcGFxdWUoKSA/IDAgOiBTaGFyZWFibGVCaXRtYXA6
OlN1cHBvcnRzQWxwaGEsIGF0bGFzLCBvZmZzZXQpOworICAgIHJldHVybiBtX2Nvb3JkaW5hdG9y
LT5iZWdpbkNvbnRlbnRVcGRhdGUoc2l6ZSwgY29udGVudHNPcGFxdWUoKSA/IDAgOiBTaGFyZWFi
bGVCaXRtYXA6OlN1cHBvcnRzQWxwaGEsIGF0bGFzLCBvZmZzZXQpOwogfQogCiB2b2lkIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6Y3JlYXRlVGlsZShpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNl
VXBkYXRlSW5mbyYgdXBkYXRlSW5mbywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGlsZVJlY3Qp
CiB7Ci0gICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPmNyZWF0ZVRpbGUoaWQo
KSwgdGlsZUlELCB1cGRhdGVJbmZvLCB0aWxlUmVjdCk7CisgICAgbV9jb29yZGluYXRvci0+Y3Jl
YXRlVGlsZShpZCgpLCB0aWxlSUQsIHVwZGF0ZUluZm8sIHRpbGVSZWN0KTsKIH0KIAogdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZVRpbGUoaW50IHRpbGVJRCwgY29uc3QgU3Vy
ZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0IEludFJlY3QmIHRpbGVSZWN0KQogewot
ICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT51cGRhdGVUaWxlKGlkKCksIHRp
bGVJRCwgdXBkYXRlSW5mbywgdGlsZVJlY3QpOworICAgIG1fY29vcmRpbmF0b3ItPnVwZGF0ZVRp
bGUoaWQoKSwgdGlsZUlELCB1cGRhdGVJbmZvLCB0aWxlUmVjdCk7CiB9CiAKIHZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpyZW1vdmVUaWxlKGludCB0aWxlSUQpCiB7Ci0gICAgbV9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPnJlbW92ZVRpbGUoaWQoKSwgdGlsZUlEKTsKKyAg
ICBtX2Nvb3JkaW5hdG9yLT5yZW1vdmVUaWxlKGlkKCksIHRpbGVJRCk7CiB9CiAKIHZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjp1cGRhdGVDb250ZW50QnVmZmVycygpCkBAIC03MjgsMjgg
KzcxOCw5IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpwdXJnZUJhY2tpbmdTdG9y
ZXMoKQogICAgIGRpZENoYW5nZUNoaWxkcmVuKCk7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjpzZXRDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQoV2ViS2l0OjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjpzZXRDb29yZGluYXRvcihXZWJLaXQ6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ckNsaWVudCogY29vcmRpbmF0b3IpCiB7Ci0gICAgaWYgKG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyQ2xpZW50ID09IGNsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllciogcmVwbGljYSA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKHJl
cGxpY2FMYXllcigpKSkKLSAgICAgICAgcmVwbGljYS0+c2V0Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyQ2xpZW50KGNsaWVudCk7Ci0gICAgaWYgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbWFz
ayA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG1hc2tMYXllcigpKSkKLSAgICAgICAgbWFz
ay0+c2V0Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KGNsaWVudCk7Ci0gICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcih0
aGlzLT5jaGlsZHJlbigpW2ldKTsKLSAgICAgICAgbGF5ZXItPnNldENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllckNsaWVudChjbGllbnQpOwotICAgIH0KLQotICAgIC8vIFdlIGhhdmUgdG8gcmVsZWFz
ZSByZXNvdXJjZXMgb24gdGhlIFVJIHByb2Nlc3MgaGVyZSBpZiB0aGUgcmVtb3RlIGNsaWVudCBo
YXMgY2hhbmdlZCBvciBpcyByZW1vdmVkLgotICAgIGlmIChtX0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllckNsaWVudCkgewotICAgICAgICBwdXJnZUJhY2tpbmdTdG9yZXMoKTsKLSAgICAgICAgbV9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPmRldGFjaExheWVyKHRoaXMpOwotICAgIH0K
LSAgICBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCA9IGNsaWVudDsKLSAgICBpZiAo
Y2xpZW50KQotICAgICAgICBjbGllbnQtPmF0dGFjaExheWVyKHRoaXMpOworICAgIG1fY29vcmRp
bmF0b3IgPSBjb29yZGluYXRvcjsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OmFkanVzdFZpc2libGVSZWN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggYTQ2ZjI3N2ViOTFkYTYyYzg0Y2JmZTI2
OTM4YmRiYTljNzIyZGNlZC4uZTc4ZjNiMGVhNjVmNjBkY2U0MGMyZmRiOWI2Y2I2ZTUzMDljN2U3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyLmgKQEAgLTE1MSw3ICsxNTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHJlbW92ZVRpbGUoaW50IHRpbGVJRCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBQYXNzT3duUHRy
PEdyYXBoaWNzQ29udGV4dD4gYmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IEludFNpemUmLCBpbnQm
IGF0bGFzSUQsIEludFBvaW50JikgT1ZFUlJJREU7CiAKLSAgICB2b2lkIHNldENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllckNsaWVudChXZWJLaXQ6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVu
dCopOworICAgIHZvaWQgc2V0Q29vcmRpbmF0b3IoV2ViS2l0OjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXJDbGllbnQqKTsKIAogICAgIHZvaWQgYWRqdXN0VmlzaWJsZVJlY3QoKTsKICAgICB2b2lk
IHB1cmdlQmFja2luZ1N0b3JlcygpOwpAQCAtMjEzLDcgKzIxMyw3IEBAIHByaXZhdGU6CiAgICAg
ZmxvYXQgbV9lZmZlY3RpdmVPcGFjaXR5OwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fZWZm
ZWN0aXZlVHJhbnNmb3JtOwogCi0gICAgV2ViS2l0OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJD
bGllbnQqIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50OworICAgIFdlYktpdDo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KiBtX2Nvb3JkaW5hdG9yOwogICAgIE93blB0cjxU
aWxlZEJhY2tpbmdTdG9yZT4gbV9tYWluQmFja2luZ1N0b3JlOwogICAgIE93blB0cjxUaWxlZEJh
Y2tpbmdTdG9yZT4gbV9wcmV2aW91c0JhY2tpbmdTdG9yZTsKICAgICBmbG9hdCBtX2NvbnRlbnRz
U2NhbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGlu
YXRvci5jcHAKaW5kZXggMmZjNGM3YTdlMDM4NmIzZTY4MDE1OTRiNTkyNzcwMDJmYzRjZjRhOS4u
NTdjZWMxMWQ1NTcxNDIzNDJjN2I3MWRhMjdiY2E4MGU0ZTQxODJjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJU
cmVlQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcApAQCAtNjYsNyAr
NjYsNyBAQCBMYXllclRyZWVDb29yZGluYXRvcjo6fkxheWVyVHJlZUNvb3JkaW5hdG9yKCkKIAog
ICAgIEhhc2hTZXQ8V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKj46Oml0ZXJhdG9y
IGVuZCA9IHJlZ2lzdGVyZWRMYXllcnMuZW5kKCk7CiAgICAgZm9yIChIYXNoU2V0PFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcio+OjppdGVyYXRvciBpdCA9IHJlZ2lzdGVyZWRMYXll
cnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQotICAgICAgICAoKml0KS0+c2V0Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyQ2xpZW50KDApOworICAgICAgICAoKml0KS0+c2V0Q29vcmRpbmF0b3Io
MCk7CiB9CiAKIExheWVyVHJlZUNvb3JkaW5hdG9yOjpMYXllclRyZWVDb29yZGluYXRvcihXZWJQ
YWdlKiB3ZWJQYWdlKQpAQCAtOTgsNyArOTgsNiBAQCBMYXllclRyZWVDb29yZGluYXRvcjo6TGF5
ZXJUcmVlQ29vcmRpbmF0b3IoV2ViUGFnZSogd2ViUGFnZSkKICAgICBtX2xheWVyVHJlZUNvbnRl
eHQud2ViTGF5ZXJJRCA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKHdlYlJvb3RMYXllcikt
PmlkKCk7CiAKICAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXIgPSBHcmFwaGljc0xheWVy
OjpjcmVhdGUodGhpcywgdGhpcyk7Ci0gICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobV9y
b290TGF5ZXIuZ2V0KCkpLT5zZXRDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQodGhpcyk7
CiAjaWZuZGVmIE5ERUJVRwogICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0TmFt
ZSgiTGF5ZXJUcmVlQ29vcmRpbmF0b3Igbm9uLWNvbXBvc2l0ZWQgY29udGVudCIpOwogI2VuZGlm
CkBAIC01ODUsNyArNTg0LDggQEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6cGFpbnRDb250
ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBncmFwaGljc0wKIFBhc3NPd25QdHI8
R3JhcGhpY3NMYXllcj4gTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIo
R3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogewogICAgIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllciogbmV3TGF5ZXIgPSBuZXcgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGNsaWVudCk7Ci0g
ICAgbmV3TGF5ZXItPnNldENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCh0aGlzKTsKKyAg
ICBuZXdMYXllci0+c2V0Q29vcmRpbmF0b3IodGhpcyk7CisgICAgYXR0YWNoTGF5ZXIobmV3TGF5
ZXIpOwogICAgIHJldHVybiBhZG9wdFB0cihuZXdMYXllcik7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173999</attachid>
            <date>2012-11-13 15:02:23 -0800</date>
            <delta_ts>2012-11-13 15:58:17 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-102133-20121113150031.patch</filename>
            <type>text/plain</type>
            <size>18624</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzQzNTAxNDkwYjlkNWU1
NTIzYjNjODEwZTU2ZTAxNDI5OGJiMGYyOS4uN2E2MTUzNzMyY2EzMmRkZTE1ODJlNzcwNDc1YmE4
NDc2Njk0NzU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTExLTEzICBObydh
bSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CisKKyAgICAgICAgQ29vcmRp
bmF0ZWQgR3JhcGhpY3M6IFJlbmFtZSBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCB0
byBtX2Nvb3JkaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDIxMzMKKworICAgICAgICBSZW5hbWVkIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyQ2xpZW50IHRvIG1fY29vcmRpbmF0b3IuCisgICAgICAgIEFsc28sIHRoZXJlIGlzIG5vIG5l
ZWQgZm9yIGNhbGxpbmcgc2V0Q29vcmRpbmF0b3IgZXZlcnkgdGltZSB0aGUgdHJlZSBjaGFuZ2Vz
LAorICAgICAgICBzaW5jZSB3ZSBjYW4gY2FsbCBpdCBvbmNlIHdoZW4gdGhlIGxheWVyIGlzIGNy
ZWF0ZWQsIG5vdyB0aGF0IExheWVyVHJlZUNvb3JkaW5hdG9yCisgICAgICAgIGlzIHRoZSBHcmFw
aGljc0xheWVyRmFjdG9yeS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6On5Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRBYm92ZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkQmVsb3cpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZXBsYWNlQ2hpbGQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1Rv
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRN
YXNrTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpz
ZXRSZXBsaWNhdGVkQnlMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNGaWx0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0xheWVyU3RhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jQW5pbWF0aW9ucyk6CisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDYW52YXMpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjplbnN1cmVJbWFnZUJhY2tpbmdT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVk
QmFja2luZ1N0b3JlVXBkYXRlc0FsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZVZpc2libGVSZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YmVnaW5Db250ZW50VXBkYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Y3JlYXRlVGlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZVRpbGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZW1vdmVUaWxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6cHVyZ2VCYWNr
aW5nU3RvcmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
c2V0Q29vcmRpbmF0b3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Okxh
eWVyVHJlZUNvb3JkaW5hdG9yOjp+TGF5ZXJUcmVlQ29vcmRpbmF0b3IpOgorICAgICAgICAoV2Vi
S2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6TGF5ZXJUcmVlQ29vcmRpbmF0b3IpOgorICAgICAg
ICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6cGFpbnRDb250ZW50cyk6CisKIDIwMTIt
MTEtMTMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFNwbGl0
IE5ldHdvcmtSZXF1ZXN0IHVwIGludG8gYSByZXF1ZXN0IGNsYXNzIGFuZCBhIGxvYWRpbmcgY2xh
c3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9tYWMvR3JhcGhpY3NTdXJmYWNlTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL21hYy9HcmFwaGljc1N1cmZhY2VNYWMuY3BwCmluZGV4IDg1OTdlYjRl
Mjc0Yjk4Nzg4NWRkOWY0NTM3MDAyNmFhZjQ4ZjNjY2EuLmFiODM2MTQ1YjM0YmI3MWYxNTZmODJm
OTBhN2MzZmZjZWM3MGY3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL21hYy9HcmFwaGljc1N1cmZhY2VNYWMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL21hYy9HcmFwaGljc1N1cmZhY2VNYWMu
Y3BwCkBAIC0zMjMsNyArMzIzLDcgQEAgdm9pZCBHcmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtUGFp
bnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwKIHsKICAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBhZGp1c3RlZFRyYW5zZm9ybSA9IHRyYW5zZm9ybTsKICAgICBh
ZGp1c3RlZFRyYW5zZm9ybS5tdWx0aXBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cmVjdFRvUmVj
dChGbG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBtX3NpemUpLCB0YXJnZXRSZWN0KSk7Ci0g
ICAgc3RhdGljX2Nhc3Q8VGV4dHVyZU1hcHBlckdMKj4odGV4dHVyZU1hcHBlciktPmRyYXdUZXh0
dXJlUmVjdGFuZ2xlQVJCKG1fcHJpdmF0ZS0+ZnJvbnRCdWZmZXJUZXh0dXJlSUQoKSwgMCwgbV9z
aXplLCB0YXJnZXRSZWN0LCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzayk7CisgICAg
c3RhdGljX2Nhc3Q8VGV4dHVyZU1hcHBlckdMKj4odGV4dHVyZU1hcHBlciktPmRyYXdUZXh0dXJl
UmVjdGFuZ2xlQVJCKG1fcHJpdmF0ZS0+ZnJvbnRCdWZmZXJUZXh0dXJlSUQoKSwgVGV4dHVyZU1h
cHBlckdMOjpTdXBwb3J0c0JsZW5kaW5nLCBtX3NpemUsIHRhcmdldFJlY3QsIGFkanVzdGVkVHJh
bnNmb3JtLCBvcGFjaXR5LCBtYXNrKTsKIH0KIAogdWludDMyX3QgR3JhcGhpY3NTdXJmYWNlOjpw
bGF0Zm9ybUZyb250QnVmZmVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDZlYjJmYTQ1ZDQyY2U4
MDEwZmFjYTk2MzJlMjMyODM0ZTE2MDczYjkuLmM0YTIwYTM0NDNlNTQ4NzlmZTJmYmYxOTFlYjA5
ZGJhZWMxN2EyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtMTE2LDcgKzExNiw3IEBAIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGll
bnQqIGNsaWVudCkKICAgICAsIG1fc2hvdWxkU3luY0FuaW1hdGlvbnModHJ1ZSkKICAgICAsIG1f
Zml4ZWRUb1ZpZXdwb3J0KGZhbHNlKQogICAgICwgbV9jYW52YXNOZWVkc0Rpc3BsYXkoZmFsc2Up
Ci0gICAgLCBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCgwKQorICAgICwgbV9jb29y
ZGluYXRvcigwKQogICAgICwgbV9jb250ZW50c1NjYWxlKDEpCiAgICAgLCBtX2NvbXBvc2l0ZWRO
YXRpdmVJbWFnZVB0cigwKQogICAgICwgbV9jYW52YXNQbGF0Zm9ybUxheWVyKDApCkBAIC0xMzEs
OSArMTMxLDkgQEAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp+Q29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKCkKIHsKICAgICBsYXllckJ5SURNYXAoKS5yZW1vdmUoaWQoKSk7CiAKLSAgICBpZiAo
bV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQpIHsKKyAgICBpZiAobV9jb29yZGluYXRv
cikgewogICAgICAgICBwdXJnZUJhY2tpbmdTdG9yZXMoKTsKLSAgICAgICAgbV9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXJDbGllbnQtPmRldGFjaExheWVyKHRoaXMpOworICAgICAgICBtX2Nvb3Jk
aW5hdG9yLT5kZXRhY2hMYXllcih0aGlzKTsKICAgICB9CiAgICAgd2lsbEJlRGVzdHJveWVkKCk7
CiB9CkBAIC0xNDUsNyArMTQ1LDYgQEAgYm9vbCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNl
dENoaWxkcmVuKGNvbnN0IFZlY3RvcjxHcmFwaGljc0xheWVyKj4mIGNoaWxkcmUKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjaGlsZHJlbi5zaXpl
KCk7ICsraSkgewogICAgICAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGNoaWxkID0gdG9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoY2hpbGRyZW5baV0pOwotICAgICAgICBjaGlsZC0+c2V0
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
Q2xpZW50KTsKICAgICAgICAgY2hpbGQtPmRpZENoYW5nZUxheWVyU3RhdGUoKTsKICAgICB9CiAg
ICAgZGlkQ2hhbmdlQ2hpbGRyZW4oKTsKQEAgLTE1NSw3ICsxNTQsNiBAQCBib29sIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c2V0Q2hpbGRyZW4oY29uc3QgVmVjdG9yPEdyYXBoaWNzTGF5ZXIq
PiYgY2hpbGRyZQogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkKEdyYXBo
aWNzTGF5ZXIqIGxheWVyKQogewogICAgIEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkKGxheWVyKTsK
LSAgICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihsYXllciktPnNldENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllckNsaWVudChtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk7CiAgICAg
dG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobGF5ZXIpLT5kaWRDaGFuZ2VMYXllclN0YXRlKCk7
CiAgICAgZGlkQ2hhbmdlQ2hpbGRyZW4oKTsKIH0KQEAgLTE2Myw3ICsxNjEsNiBAQCB2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGQoR3JhcGhpY3NMYXllciogbGF5ZXIpCiB2
b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRBdEluZGV4KEdyYXBoaWNzTGF5
ZXIqIGxheWVyLCBpbnQgaW5kZXgpCiB7CiAgICAgR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRBdElu
ZGV4KGxheWVyLCBpbmRleCk7Ci0gICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobGF5ZXIp
LT5zZXRDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQobV9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXJDbGllbnQpOwogICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKS0+ZGlk
Q2hhbmdlTGF5ZXJTdGF0ZSgpOwogICAgIGRpZENoYW5nZUNoaWxkcmVuKCk7CiB9CkBAIC0xNzEs
NyArMTY4LDYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkQXRJbmRl
eChHcmFwaGljc0xheWVyKiBsYXllciwgaW50IGluZGV4KQogdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmFkZENoaWxkQWJvdmUoR3JhcGhpY3NMYXllciogbGF5ZXIsIEdyYXBoaWNzTGF5
ZXIqIHNpYmxpbmcpCiB7CiAgICAgR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRBYm92ZShsYXllciwg
c2libGluZyk7Ci0gICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobGF5ZXIpLT5zZXRDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQobV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGll
bnQpOwogICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKS0+ZGlkQ2hhbmdlTGF5
ZXJTdGF0ZSgpOwogICAgIGRpZENoYW5nZUNoaWxkcmVuKCk7CiB9CkBAIC0xNzksNyArMTc1LDYg
QEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkQWJvdmUoR3JhcGhpY3NM
YXllciogbGF5ZXIsIEdyYXBoaWNzTGF5ZXIKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjphZGRDaGlsZEJlbG93KEdyYXBoaWNzTGF5ZXIqIGxheWVyLCBHcmFwaGljc0xheWVyKiBzaWJs
aW5nKQogewogICAgIEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkQmVsb3cobGF5ZXIsIHNpYmxpbmcp
OwotICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKS0+c2V0Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyQ2xpZW50KG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KTsKICAg
ICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihsYXllciktPmRpZENoYW5nZUxheWVyU3RhdGUo
KTsKICAgICBkaWRDaGFuZ2VDaGlsZHJlbigpOwogfQpAQCAtMTkxLDcgKzE4Niw2IEBAIGJvb2wg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZXBsYWNlQ2hpbGQoR3JhcGhpY3NMYXllciogb2xk
Q2hpbGQsIEdyYXBoaWNzTGF5CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBkaWRDaGFuZ2VD
aGlsZHJlbigpOwogICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG9sZENoaWxkKS0+ZGlk
Q2hhbmdlTGF5ZXJTdGF0ZSgpOwotICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG5ld0No
aWxkKS0+c2V0Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KG1fQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyQ2xpZW50KTsKICAgICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihuZXdDaGls
ZCktPmRpZENoYW5nZUxheWVyU3RhdGUoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTM4Niw3
ICszODAsNiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0TWFza0xheWVyKEdy
YXBoaWNzTGF5ZXIqIGxheWVyKQogCiAgICAgbGF5ZXItPnNldFNpemUoc2l6ZSgpKTsKICAgICBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciA9IHRvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKTsKLSAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXItPnNldENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudChtX0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllckNsaWVudCk7CiAgICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLT5zZXRNYXNrVGFy
Z2V0KHRoaXMpOwogICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllci0+ZGlkQ2hhbmdlTGF5ZXJT
dGF0ZSgpOwogICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKQEAgLTQxMCw5ICs0MDMsNiBAQCB2
b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0UmVwbGljYXRlZEJ5TGF5ZXIoR3JhcGhp
Y3NMYXllciogbGF5ZXIpCiAgICAgaWYgKGxheWVyID09IHJlcGxpY2FMYXllcigpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAobGF5ZXIpCi0gICAgICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKGxheWVyKS0+c2V0Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KG1fQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KTsKLQogICAgIEdyYXBoaWNzTGF5ZXI6OnNldFJlcGxp
Y2F0ZWRCeUxheWVyKGxheWVyKTsKICAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7CiB9CkBAIC00
NDIsNyArNDMyLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9z
aXRpbmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAgICAgaWYgKENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllciogcmVwbGljYSA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKHJlcGxpY2FM
YXllcigpKSkKICAgICAgICAgcmVwbGljYS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xh
eWVyT25seSgpOwogCi0gICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPnN5bmNG
aXhlZExheWVycygpOworICAgIG1fY29vcmRpbmF0b3ItPnN5bmNGaXhlZExheWVycygpOwogCiAg
ICAgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogCkBAIC00NjQsNyAr
NDU0LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDaGlsZHJlbigpCiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytpKQogICAgICAg
ICBjaGlsZElEcy5hcHBlbmQodG9XZWJMYXllcklEKGNoaWxkcmVuKClbaV0pKTsKIAotICAgIG1f
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5zeW5jTGF5ZXJDaGlsZHJlbihtX2lkLCBj
aGlsZElEcyk7CisgICAgbV9jb29yZGluYXRvci0+c3luY0xheWVyQ2hpbGRyZW4obV9pZCwgY2hp
bGRJRHMpOwogfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQpAQCAtNDczLDcgKzQ2Myw3IEBA
IHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jRmlsdGVycygpCiAgICAgaWYgKCFt
X3Nob3VsZFN5bmNGaWx0ZXJzKQogICAgICAgICByZXR1cm47CiAgICAgbV9zaG91bGRTeW5jRmls
dGVycyA9IGZhbHNlOwotICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5zeW5j
TGF5ZXJGaWx0ZXJzKG1faWQsIGZpbHRlcnMoKSk7CisgICAgbV9jb29yZGluYXRvci0+c3luY0xh
eWVyRmlsdGVycyhtX2lkLCBmaWx0ZXJzKCkpOwogfQogI2VuZGlmCiAKQEAgLTQ4OSw3ICs0Nzks
NyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0ltYWdlQmFja2luZygpCiAg
ICAgICAgIEFTU0VSVCghbV9tYWluQmFja2luZ1N0b3JlKTsKICAgICAgICAgQVNTRVJUKG1fY29t
cG9zaXRlZEltYWdlKTsKIAotICAgICAgICBtX2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9yZUlE
ID0gbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPmFkb3B0SW1hZ2VCYWNraW5nU3Rv
cmUobV9jb21wb3NpdGVkSW1hZ2UuZ2V0KCkpOworICAgICAgICBtX2xheWVySW5mby5pbWFnZUJh
Y2tpbmdTdG9yZUlEID0gbV9jb29yZGluYXRvci0+YWRvcHRJbWFnZUJhY2tpbmdTdG9yZShtX2Nv
bXBvc2l0ZWRJbWFnZS5nZXQoKSk7CiAgICAgfQogCiAgICAgLy8gVGhpcyBtZXRob2QgY2hhbmdl
cyBtX2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9yZUlELgpAQCAtNTE4LDcgKzUwOCw3IEBAIHZv
aWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jTGF5ZXJTdGF0ZSgpCiAgICAgbV9sYXll
ckluZm8ucmVwbGljYSA9IHRvV2ViTGF5ZXJJRChyZXBsaWNhTGF5ZXIoKSk7CiAgICAgbV9sYXll
ckluZm8uc2l6ZSA9IHNpemUoKTsKICAgICBtX2xheWVySW5mby50cmFuc2Zvcm0gPSB0cmFuc2Zv
cm0oKTsKLSAgICBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudC0+c3luY0xheWVyU3Rh
dGUobV9pZCwgbV9sYXllckluZm8pOworICAgIG1fY29vcmRpbmF0b3ItPnN5bmNMYXllclN0YXRl
KG1faWQsIG1fbGF5ZXJJbmZvKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OnN5bmNBbmltYXRpb25zKCkKQEAgLTUyOCw3ICs1MTgsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6c3luY0FuaW1hdGlvbnMoKQogCiAgICAgbV9zaG91bGRTeW5jQW5pbWF0aW9u
cyA9IGZhbHNlOwogCi0gICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPnNldExh
eWVyQW5pbWF0aW9ucyhtX2lkLCBtX2FuaW1hdGlvbnMpOworICAgIG1fY29vcmRpbmF0b3ItPnNl
dExheWVyQW5pbWF0aW9ucyhtX2lkLCBtX2FuaW1hdGlvbnMpOwogfQogCiB2b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c3luY0NhbnZhcygpCkBAIC01NDMsNyArNTMzLDcgQEAgdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDYW52YXMoKQogICAgIHVpbnQzMl90IGZyb250
QnVmZmVyID0gbV9jYW52YXNQbGF0Zm9ybUxheWVyLT5jb3B5VG9HcmFwaGljc1N1cmZhY2UoKTsK
ICAgICBHcmFwaGljc1N1cmZhY2VUb2tlbiB0b2tlbiA9IG1fY2FudmFzUGxhdGZvcm1MYXllci0+
Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKTsKIAotICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
Q2xpZW50LT5zeW5jQ2FudmFzKG1faWQsIEludFNpemUoc2l6ZSgpLndpZHRoKCksIHNpemUoKS5o
ZWlnaHQoKSksIHRva2VuLCBmcm9udEJ1ZmZlcik7CisgICAgbV9jb29yZGluYXRvci0+c3luY0Nh
bnZhcyhtX2lkLCBJbnRTaXplKHNpemUoKS53aWR0aCgpLCBzaXplKCkuaGVpZ2h0KCkpLCB0b2tl
biwgZnJvbnRCdWZmZXIpOwogI2VuZGlmCiAgICAgbV9jYW52YXNOZWVkc0Rpc3BsYXkgPSBmYWxz
ZTsKIH0KQEAgLTU2Nyw4ICs1NTcsOCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
cmVsZWFzZUltYWdlQmFja2luZ0lmTmVlZGVkKCkKICAgICBpZiAoIW1fbGF5ZXJJbmZvLmltYWdl
QmFja2luZ1N0b3JlSUQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVChtX0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllckNsaWVudCk7Ci0gICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJD
bGllbnQtPnJlbGVhc2VJbWFnZUJhY2tpbmdTdG9yZShtX2xheWVySW5mby5pbWFnZUJhY2tpbmdT
dG9yZUlEKTsKKyAgICBBU1NFUlQobV9jb29yZGluYXRvcik7CisgICAgbV9jb29yZGluYXRvci0+
cmVsZWFzZUltYWdlQmFja2luZ1N0b3JlKG1fbGF5ZXJJbmZvLmltYWdlQmFja2luZ1N0b3JlSUQp
OwogICAgIG1fbGF5ZXJJbmZvLmltYWdlQmFja2luZ1N0b3JlSUQgPSAwOwogfQogCkBAIC02NDEs
NyArNjMxLDcgQEAgYm9vbCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0
b3JlVXBkYXRlc0FsbG93ZWQoKSBjb25zdAogewogICAgIGlmICghbV9pblVwZGF0ZU1vZGUpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXJDbGllbnQtPmxheWVyVHJlZVRpbGVVcGRhdGVzQWxsb3dlZCgpOworICAgIHJldHVybiBtX2Nv
b3JkaW5hdG9yLT5sYXllclRyZWVUaWxlVXBkYXRlc0FsbG93ZWQoKTsKIH0KIAogSW50UmVjdCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlQ29udGVudHNSZWN0KCkK
QEAgLTY2Niw3ICs2NTYsNyBAQCBJbnRSZWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dGls
ZWRCYWNraW5nU3RvcmVWaXNpYmxlUmVjdCgpCiAgICAgLy8gUmV0dXJuIGEgcHJvamVjdGlvbiBv
ZiB0aGUgdmlzaWJsZSByZWN0IChzdXJmYWNlIGNvb3JkaW5hdGVzKSBvbnRvIHRoZSBsYXllcidz
IHBsYW5lIChsYXllciBjb29yZGluYXRlcykuCiAgICAgLy8gVGhlIHJlc3VsdGluZyBxdWFkIG1p
Z2h0IGJlIHNxdWV3ZWQgYW5kIHRoZSB2aXNpYmxlIHJlY3QgaXMgdGhlIGJvdW5kaW5nIGJveCBv
ZiB0aGlzIHF1YWQsCiAgICAgLy8gc28gaXQgbWlnaHQgc3ByZWFkIGZ1cnRoZXIgdGhhbiB0aGUg
cmVhbCB2aXNpYmxlIGFyZWEgKGFuZCB0aGVuIGV2ZW4gbW9yZSBhbXBsaWZpZWQgYnkgdGhlIGNv
dmVyIHJlY3QgbXVsdGlwbGllcikuCi0gICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QobV9sYXll
clRyYW5zZm9ybS5jb21iaW5lZCgpLmludmVyc2UoKS5jbGFtcGVkQm91bmRzT2ZQcm9qZWN0ZWRR
dWFkKEZsb2F0UXVhZChGbG9hdFJlY3QobV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQt
PnZpc2libGVDb250ZW50c1JlY3QoKSkpKSk7CisgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3Qo
bV9sYXllclRyYW5zZm9ybS5jb21iaW5lZCgpLmludmVyc2UoKS5jbGFtcGVkQm91bmRzT2ZQcm9q
ZWN0ZWRRdWFkKEZsb2F0UXVhZChGbG9hdFJlY3QobV9jb29yZGluYXRvci0+dmlzaWJsZUNvbnRl
bnRzUmVjdCgpKSkpKTsKIH0KIAogQ29sb3IgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxl
ZEJhY2tpbmdTdG9yZUJhY2tncm91bmRDb2xvcigpIGNvbnN0CkBAIC02NzYsMjIgKzY2NiwyMiBA
QCBDb2xvciBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlQmFja2dy
b3VuZENvbG9yKCkgY29uc3QKIAogUGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+
IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIHNpemUsIGludCYgYXRsYXMsIFdlYkNvcmU6OkludFBvaW50JiBvZmZzZXQp
CiB7Ci0gICAgcmV0dXJuIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5iZWdpbkNv
bnRlbnRVcGRhdGUoc2l6ZSwgY29udGVudHNPcGFxdWUoKSA/IDAgOiBTaGFyZWFibGVCaXRtYXA6
OlN1cHBvcnRzQWxwaGEsIGF0bGFzLCBvZmZzZXQpOworICAgIHJldHVybiBtX2Nvb3JkaW5hdG9y
LT5iZWdpbkNvbnRlbnRVcGRhdGUoc2l6ZSwgY29udGVudHNPcGFxdWUoKSA/IDAgOiBTaGFyZWFi
bGVCaXRtYXA6OlN1cHBvcnRzQWxwaGEsIGF0bGFzLCBvZmZzZXQpOwogfQogCiB2b2lkIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6Y3JlYXRlVGlsZShpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNl
VXBkYXRlSW5mbyYgdXBkYXRlSW5mbywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGlsZVJlY3Qp
CiB7Ci0gICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPmNyZWF0ZVRpbGUoaWQo
KSwgdGlsZUlELCB1cGRhdGVJbmZvLCB0aWxlUmVjdCk7CisgICAgbV9jb29yZGluYXRvci0+Y3Jl
YXRlVGlsZShpZCgpLCB0aWxlSUQsIHVwZGF0ZUluZm8sIHRpbGVSZWN0KTsKIH0KIAogdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZVRpbGUoaW50IHRpbGVJRCwgY29uc3QgU3Vy
ZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0IEludFJlY3QmIHRpbGVSZWN0KQogewot
ICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT51cGRhdGVUaWxlKGlkKCksIHRp
bGVJRCwgdXBkYXRlSW5mbywgdGlsZVJlY3QpOworICAgIG1fY29vcmRpbmF0b3ItPnVwZGF0ZVRp
bGUoaWQoKSwgdGlsZUlELCB1cGRhdGVJbmZvLCB0aWxlUmVjdCk7CiB9CiAKIHZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpyZW1vdmVUaWxlKGludCB0aWxlSUQpCiB7Ci0gICAgbV9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPnJlbW92ZVRpbGUoaWQoKSwgdGlsZUlEKTsKKyAg
ICBtX2Nvb3JkaW5hdG9yLT5yZW1vdmVUaWxlKGlkKCksIHRpbGVJRCk7CiB9CiAKIHZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjp1cGRhdGVDb250ZW50QnVmZmVycygpCkBAIC03MjgsMjgg
KzcxOCw5IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpwdXJnZUJhY2tpbmdTdG9y
ZXMoKQogICAgIGRpZENoYW5nZUNoaWxkcmVuKCk7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjpzZXRDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQoV2ViS2l0OjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjpzZXRDb29yZGluYXRvcihXZWJLaXQ6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ckNsaWVudCogY29vcmRpbmF0b3IpCiB7Ci0gICAgaWYgKG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyQ2xpZW50ID09IGNsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllciogcmVwbGljYSA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKHJl
cGxpY2FMYXllcigpKSkKLSAgICAgICAgcmVwbGljYS0+c2V0Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyQ2xpZW50KGNsaWVudCk7Ci0gICAgaWYgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbWFz
ayA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG1hc2tMYXllcigpKSkKLSAgICAgICAgbWFz
ay0+c2V0Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KGNsaWVudCk7Ci0gICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcih0
aGlzLT5jaGlsZHJlbigpW2ldKTsKLSAgICAgICAgbGF5ZXItPnNldENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllckNsaWVudChjbGllbnQpOwotICAgIH0KLQotICAgIC8vIFdlIGhhdmUgdG8gcmVsZWFz
ZSByZXNvdXJjZXMgb24gdGhlIFVJIHByb2Nlc3MgaGVyZSBpZiB0aGUgcmVtb3RlIGNsaWVudCBo
YXMgY2hhbmdlZCBvciBpcyByZW1vdmVkLgotICAgIGlmIChtX0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllckNsaWVudCkgewotICAgICAgICBwdXJnZUJhY2tpbmdTdG9yZXMoKTsKLSAgICAgICAgbV9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPmRldGFjaExheWVyKHRoaXMpOwotICAgIH0K
LSAgICBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCA9IGNsaWVudDsKLSAgICBpZiAo
Y2xpZW50KQotICAgICAgICBjbGllbnQtPmF0dGFjaExheWVyKHRoaXMpOworICAgIG1fY29vcmRp
bmF0b3IgPSBjb29yZGluYXRvcjsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OmFkanVzdFZpc2libGVSZWN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggYTQ2ZjI3N2ViOTFkYTYyYzg0Y2JmZTI2
OTM4YmRiYTljNzIyZGNlZC4uZTc4ZjNiMGVhNjVmNjBkY2U0MGMyZmRiOWI2Y2I2ZTUzMDljN2U3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyLmgKQEAgLTE1MSw3ICsxNTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHJlbW92ZVRpbGUoaW50IHRpbGVJRCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBQYXNzT3duUHRy
PEdyYXBoaWNzQ29udGV4dD4gYmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IEludFNpemUmLCBpbnQm
IGF0bGFzSUQsIEludFBvaW50JikgT1ZFUlJJREU7CiAKLSAgICB2b2lkIHNldENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllckNsaWVudChXZWJLaXQ6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVu
dCopOworICAgIHZvaWQgc2V0Q29vcmRpbmF0b3IoV2ViS2l0OjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXJDbGllbnQqKTsKIAogICAgIHZvaWQgYWRqdXN0VmlzaWJsZVJlY3QoKTsKICAgICB2b2lk
IHB1cmdlQmFja2luZ1N0b3JlcygpOwpAQCAtMjEzLDcgKzIxMyw3IEBAIHByaXZhdGU6CiAgICAg
ZmxvYXQgbV9lZmZlY3RpdmVPcGFjaXR5OwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fZWZm
ZWN0aXZlVHJhbnNmb3JtOwogCi0gICAgV2ViS2l0OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJD
bGllbnQqIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50OworICAgIFdlYktpdDo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KiBtX2Nvb3JkaW5hdG9yOwogICAgIE93blB0cjxU
aWxlZEJhY2tpbmdTdG9yZT4gbV9tYWluQmFja2luZ1N0b3JlOwogICAgIE93blB0cjxUaWxlZEJh
Y2tpbmdTdG9yZT4gbV9wcmV2aW91c0JhY2tpbmdTdG9yZTsKICAgICBmbG9hdCBtX2NvbnRlbnRz
U2NhbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGlu
YXRvci5jcHAKaW5kZXggMmZjNGM3YTdlMDM4NmIzZTY4MDE1OTRiNTkyNzcwMDJmYzRjZjRhOS4u
NTdjZWMxMWQ1NTcxNDIzNDJjN2I3MWRhMjdiY2E4MGU0ZTQxODJjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJU
cmVlQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcApAQCAtNjYsNyAr
NjYsNyBAQCBMYXllclRyZWVDb29yZGluYXRvcjo6fkxheWVyVHJlZUNvb3JkaW5hdG9yKCkKIAog
ICAgIEhhc2hTZXQ8V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKj46Oml0ZXJhdG9y
IGVuZCA9IHJlZ2lzdGVyZWRMYXllcnMuZW5kKCk7CiAgICAgZm9yIChIYXNoU2V0PFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcio+OjppdGVyYXRvciBpdCA9IHJlZ2lzdGVyZWRMYXll
cnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQotICAgICAgICAoKml0KS0+c2V0Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyQ2xpZW50KDApOworICAgICAgICAoKml0KS0+c2V0Q29vcmRpbmF0b3Io
MCk7CiB9CiAKIExheWVyVHJlZUNvb3JkaW5hdG9yOjpMYXllclRyZWVDb29yZGluYXRvcihXZWJQ
YWdlKiB3ZWJQYWdlKQpAQCAtOTgsNyArOTgsNiBAQCBMYXllclRyZWVDb29yZGluYXRvcjo6TGF5
ZXJUcmVlQ29vcmRpbmF0b3IoV2ViUGFnZSogd2ViUGFnZSkKICAgICBtX2xheWVyVHJlZUNvbnRl
eHQud2ViTGF5ZXJJRCA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKHdlYlJvb3RMYXllcikt
PmlkKCk7CiAKICAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXIgPSBHcmFwaGljc0xheWVy
OjpjcmVhdGUodGhpcywgdGhpcyk7Ci0gICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobV9y
b290TGF5ZXIuZ2V0KCkpLT5zZXRDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQodGhpcyk7
CiAjaWZuZGVmIE5ERUJVRwogICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0TmFt
ZSgiTGF5ZXJUcmVlQ29vcmRpbmF0b3Igbm9uLWNvbXBvc2l0ZWQgY29udGVudCIpOwogI2VuZGlm
CkBAIC01ODUsNyArNTg0LDggQEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6cGFpbnRDb250
ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBncmFwaGljc0wKIFBhc3NPd25QdHI8
R3JhcGhpY3NMYXllcj4gTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIo
R3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogewogICAgIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllciogbmV3TGF5ZXIgPSBuZXcgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGNsaWVudCk7Ci0g
ICAgbmV3TGF5ZXItPnNldENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCh0aGlzKTsKKyAg
ICBuZXdMYXllci0+c2V0Q29vcmRpbmF0b3IodGhpcyk7CisgICAgYXR0YWNoTGF5ZXIobmV3TGF5
ZXIpOwogICAgIHJldHVybiBhZG9wdFB0cihuZXdMYXllcik7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174017</attachid>
            <date>2012-11-13 15:58:21 -0800</date>
            <delta_ts>2012-11-14 11:58:20 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-102133-20121113155634.patch</filename>
            <type>text/plain</type>
            <size>17542</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTI5MmQ3YWRkMzZlNzg0
ODFiNjZmYWY5NTg5N2VlNjYyZjY3NzVlZi4uNmZlODk2Zjc0MTBlNjE2MWVhOWMyZWFjNzJiZDJm
NzAwOWJhYzlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTExLTEzICBObydh
bSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CisKKyAgICAgICAgQ29vcmRp
bmF0ZWQgR3JhcGhpY3M6IFJlbmFtZSBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCB0
byBtX2Nvb3JkaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDIxMzMKKworICAgICAgICBSZW5hbWVkIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyQ2xpZW50IHRvIG1fY29vcmRpbmF0b3IuCisgICAgICAgIEFsc28sIHRoZXJlIGlzIG5vIG5l
ZWQgZm9yIGNhbGxpbmcgc2V0Q29vcmRpbmF0b3IgZXZlcnkgdGltZSB0aGUgdHJlZSBjaGFuZ2Vz
LAorICAgICAgICBzaW5jZSB3ZSBjYW4gY2FsbCBpdCBvbmNlIHdoZW4gdGhlIGxheWVyIGlzIGNy
ZWF0ZWQsIG5vdyB0aGF0IExheWVyVHJlZUNvb3JkaW5hdG9yCisgICAgICAgIGlzIHRoZSBHcmFw
aGljc0xheWVyRmFjdG9yeS4KKworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbi4KKworICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6On5Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDaGlsZHJlbik6CisgICAg
ICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRBdEluZGV4KToK
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRBYm92
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxk
QmVsb3cpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZXBs
YWNlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpz
ZXRDb250ZW50c1RvSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyOjpzZXRNYXNrTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjpzZXRSZXBsaWNhdGVkQnlMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDaGlsZHJlbik6CisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNGaWx0ZXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0xheWVyU3RhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jQW5pbWF0aW9u
cyk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDYW52
YXMpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjplbnN1cmVJ
bWFnZUJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlVXBkYXRlc0FsbG93ZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZVZpc2libGVSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YmVnaW5Db250
ZW50VXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
Y3JlYXRlVGlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OnVwZGF0ZVRpbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpyZW1vdmVUaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6cHVyZ2VCYWNraW5nU3RvcmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6c2V0Q29vcmRpbmF0b3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgorICAgICAg
ICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjp+TGF5ZXJUcmVlQ29vcmRpbmF0b3IpOgor
ICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6TGF5ZXJUcmVlQ29vcmRpbmF0
b3IpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6cGFpbnRDb250ZW50
cyk6CisKIDIwMTItMTEtMTMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW1vdGVHcmFwaGljc0xheWVyIGRlc3RydWN0b3Igc2hvdWxkIGNhbGwgR3Jh
cGhpY3NMYXllcjo6d2lsbEJlRGVzdHJveWVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCA2ZWIyZmE0NWQ0MmNl
ODAxMGZhY2E5NjMyZTIzMjgzNGUxNjA3M2I5Li5jNGEyMGEzNDQzZTU0ODc5ZmUyZmJmMTkxZWIw
OWRiYWVjMTdhMjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTExNiw3ICsxMTYsNyBAQCBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xp
ZW50KiBjbGllbnQpCiAgICAgLCBtX3Nob3VsZFN5bmNBbmltYXRpb25zKHRydWUpCiAgICAgLCBt
X2ZpeGVkVG9WaWV3cG9ydChmYWxzZSkKICAgICAsIG1fY2FudmFzTmVlZHNEaXNwbGF5KGZhbHNl
KQotICAgICwgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQoMCkKKyAgICAsIG1fY29v
cmRpbmF0b3IoMCkKICAgICAsIG1fY29udGVudHNTY2FsZSgxKQogICAgICwgbV9jb21wb3NpdGVk
TmF0aXZlSW1hZ2VQdHIoMCkKICAgICAsIG1fY2FudmFzUGxhdGZvcm1MYXllcigwKQpAQCAtMTMx
LDkgKzEzMSw5IEBAIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6fkNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcigpCiB7CiAgICAgbGF5ZXJCeUlETWFwKCkucmVtb3ZlKGlkKCkpOwogCi0gICAgaWYg
KG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KSB7CisgICAgaWYgKG1fY29vcmRpbmF0
b3IpIHsKICAgICAgICAgcHVyZ2VCYWNraW5nU3RvcmVzKCk7Ci0gICAgICAgIG1fQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5kZXRhY2hMYXllcih0aGlzKTsKKyAgICAgICAgbV9jb29y
ZGluYXRvci0+ZGV0YWNoTGF5ZXIodGhpcyk7CiAgICAgfQogICAgIHdpbGxCZURlc3Ryb3llZCgp
OwogfQpAQCAtMTQ1LDcgKzE0NSw2IEBAIGJvb2wgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpz
ZXRDaGlsZHJlbihjb25zdCBWZWN0b3I8R3JhcGhpY3NMYXllcio+JiBjaGlsZHJlCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY2hpbGRyZW4uc2l6
ZSgpOyArK2kpIHsKICAgICAgICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBjaGlsZCA9IHRv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGNoaWxkcmVuW2ldKTsKLSAgICAgICAgY2hpbGQtPnNl
dENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudChtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ckNsaWVudCk7CiAgICAgICAgIGNoaWxkLT5kaWRDaGFuZ2VMYXllclN0YXRlKCk7CiAgICAgfQog
ICAgIGRpZENoYW5nZUNoaWxkcmVuKCk7CkBAIC0xNTUsNyArMTU0LDYgQEAgYm9vbCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OnNldENoaWxkcmVuKGNvbnN0IFZlY3RvcjxHcmFwaGljc0xheWVy
Kj4mIGNoaWxkcmUKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjphZGRDaGlsZChHcmFw
aGljc0xheWVyKiBsYXllcikKIHsKICAgICBHcmFwaGljc0xheWVyOjphZGRDaGlsZChsYXllcik7
Ci0gICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobGF5ZXIpLT5zZXRDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXJDbGllbnQobV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQpOwogICAg
IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKS0+ZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgp
OwogICAgIGRpZENoYW5nZUNoaWxkcmVuKCk7CiB9CkBAIC0xNjMsNyArMTYxLDYgQEAgdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkKEdyYXBoaWNzTGF5ZXIqIGxheWVyKQog
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkQXRJbmRleChHcmFwaGljc0xh
eWVyKiBsYXllciwgaW50IGluZGV4KQogewogICAgIEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkQXRJ
bmRleChsYXllciwgaW5kZXgpOwotICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVy
KS0+c2V0Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KG1fQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyQ2xpZW50KTsKICAgICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihsYXllciktPmRp
ZENoYW5nZUxheWVyU3RhdGUoKTsKICAgICBkaWRDaGFuZ2VDaGlsZHJlbigpOwogfQpAQCAtMTcx
LDcgKzE2OCw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjphZGRDaGlsZEF0SW5k
ZXgoR3JhcGhpY3NMYXllciogbGF5ZXIsIGludCBpbmRleCkKIHZvaWQgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjphZGRDaGlsZEFib3ZlKEdyYXBoaWNzTGF5ZXIqIGxheWVyLCBHcmFwaGljc0xh
eWVyKiBzaWJsaW5nKQogewogICAgIEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkQWJvdmUobGF5ZXIs
IHNpYmxpbmcpOwotICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKS0+c2V0Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xp
ZW50KTsKICAgICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihsYXllciktPmRpZENoYW5nZUxh
eWVyU3RhdGUoKTsKICAgICBkaWRDaGFuZ2VDaGlsZHJlbigpOwogfQpAQCAtMTc5LDcgKzE3NSw2
IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjphZGRDaGlsZEFib3ZlKEdyYXBoaWNz
TGF5ZXIqIGxheWVyLCBHcmFwaGljc0xheWVyCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6YWRkQ2hpbGRCZWxvdyhHcmFwaGljc0xheWVyKiBsYXllciwgR3JhcGhpY3NMYXllciogc2li
bGluZykKIHsKICAgICBHcmFwaGljc0xheWVyOjphZGRDaGlsZEJlbG93KGxheWVyLCBzaWJsaW5n
KTsKLSAgICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihsYXllciktPnNldENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllckNsaWVudChtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk7CiAg
ICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobGF5ZXIpLT5kaWRDaGFuZ2VMYXllclN0YXRl
KCk7CiAgICAgZGlkQ2hhbmdlQ2hpbGRyZW4oKTsKIH0KQEAgLTE5MSw3ICsxODYsNiBAQCBib29s
IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6cmVwbGFjZUNoaWxkKEdyYXBoaWNzTGF5ZXIqIG9s
ZENoaWxkLCBHcmFwaGljc0xheQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZGlkQ2hhbmdl
Q2hpbGRyZW4oKTsKICAgICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihvbGRDaGlsZCktPmRp
ZENoYW5nZUxheWVyU3RhdGUoKTsKLSAgICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihuZXdD
aGlsZCktPnNldENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudChtX0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllckNsaWVudCk7CiAgICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobmV3Q2hp
bGQpLT5kaWRDaGFuZ2VMYXllclN0YXRlKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zODYs
NyArMzgwLDYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldE1hc2tMYXllcihH
cmFwaGljc0xheWVyKiBsYXllcikKIAogICAgIGxheWVyLT5zZXRTaXplKHNpemUoKSk7CiAgICAg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIgPSB0b0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcihsYXllcik7Ci0gICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLT5zZXRDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQobV9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXJDbGllbnQpOwogICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllci0+c2V0TWFza1Rh
cmdldCh0aGlzKTsKICAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXItPmRpZENoYW5nZUxheWVy
U3RhdGUoKTsKICAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7CkBAIC00MTAsOSArNDAzLDYgQEAg
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFJlcGxpY2F0ZWRCeUxheWVyKEdyYXBo
aWNzTGF5ZXIqIGxheWVyKQogICAgIGlmIChsYXllciA9PSByZXBsaWNhTGF5ZXIoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgaWYgKGxheWVyKQotICAgICAgICB0b0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcihsYXllciktPnNldENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudChtX0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk7Ci0KICAgICBHcmFwaGljc0xheWVyOjpzZXRSZXBs
aWNhdGVkQnlMYXllcihsYXllcik7CiAgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwogfQpAQCAt
NDQyLDcgKzQzMiw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpmbHVzaENvbXBv
c2l0aW5nU3RhdGUoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogICAgIGlmIChDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIqIHJlcGxpY2EgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihyZXBsaWNh
TGF5ZXIoKSkpCiAgICAgICAgIHJlcGxpY2EtPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNM
YXllck9ubHkoKTsKIAotICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5zeW5j
Rml4ZWRMYXllcnMoKTsKKyAgICBtX2Nvb3JkaW5hdG9yLT5zeW5jRml4ZWRMYXllcnMoKTsKIAog
ICAgIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKIApAQCAtNDY0LDcg
KzQ1NCw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jQ2hpbGRyZW4oKQog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7ICsraSkKICAgICAg
ICAgY2hpbGRJRHMuYXBwZW5kKHRvV2ViTGF5ZXJJRChjaGlsZHJlbigpW2ldKSk7CiAKLSAgICBt
X0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudC0+c3luY0xheWVyQ2hpbGRyZW4obV9pZCwg
Y2hpbGRJRHMpOworICAgIG1fY29vcmRpbmF0b3ItPnN5bmNMYXllckNoaWxkcmVuKG1faWQsIGNo
aWxkSURzKTsKIH0KIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKQEAgLTQ3Myw3ICs0NjMsNyBA
QCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0ZpbHRlcnMoKQogICAgIGlmICgh
bV9zaG91bGRTeW5jRmlsdGVycykKICAgICAgICAgcmV0dXJuOwogICAgIG1fc2hvdWxkU3luY0Zp
bHRlcnMgPSBmYWxzZTsKLSAgICBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudC0+c3lu
Y0xheWVyRmlsdGVycyhtX2lkLCBmaWx0ZXJzKCkpOworICAgIG1fY29vcmRpbmF0b3ItPnN5bmNM
YXllckZpbHRlcnMobV9pZCwgZmlsdGVycygpKTsKIH0KICNlbmRpZgogCkBAIC00ODksNyArNDc5
LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNJbWFnZUJhY2tpbmcoKQog
ICAgICAgICBBU1NFUlQoIW1fbWFpbkJhY2tpbmdTdG9yZSk7CiAgICAgICAgIEFTU0VSVChtX2Nv
bXBvc2l0ZWRJbWFnZSk7CiAKLSAgICAgICAgbV9sYXllckluZm8uaW1hZ2VCYWNraW5nU3RvcmVJ
RCA9IG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5hZG9wdEltYWdlQmFja2luZ1N0
b3JlKG1fY29tcG9zaXRlZEltYWdlLmdldCgpKTsKKyAgICAgICAgbV9sYXllckluZm8uaW1hZ2VC
YWNraW5nU3RvcmVJRCA9IG1fY29vcmRpbmF0b3ItPmFkb3B0SW1hZ2VCYWNraW5nU3RvcmUobV9j
b21wb3NpdGVkSW1hZ2UuZ2V0KCkpOwogICAgIH0KIAogICAgIC8vIFRoaXMgbWV0aG9kIGNoYW5n
ZXMgbV9sYXllckluZm8uaW1hZ2VCYWNraW5nU3RvcmVJRC4KQEAgLTUxOCw3ICs1MDgsNyBAQCB2
b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0xheWVyU3RhdGUoKQogICAgIG1fbGF5
ZXJJbmZvLnJlcGxpY2EgPSB0b1dlYkxheWVySUQocmVwbGljYUxheWVyKCkpOwogICAgIG1fbGF5
ZXJJbmZvLnNpemUgPSBzaXplKCk7CiAgICAgbV9sYXllckluZm8udHJhbnNmb3JtID0gdHJhbnNm
b3JtKCk7Ci0gICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPnN5bmNMYXllclN0
YXRlKG1faWQsIG1fbGF5ZXJJbmZvKTsKKyAgICBtX2Nvb3JkaW5hdG9yLT5zeW5jTGF5ZXJTdGF0
ZShtX2lkLCBtX2xheWVySW5mbyk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzeW5jQW5pbWF0aW9ucygpCkBAIC01MjgsNyArNTE4LDcgQEAgdm9pZCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OnN5bmNBbmltYXRpb25zKCkKIAogICAgIG1fc2hvdWxkU3luY0FuaW1hdGlv
bnMgPSBmYWxzZTsKIAotICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5zZXRM
YXllckFuaW1hdGlvbnMobV9pZCwgbV9hbmltYXRpb25zKTsKKyAgICBtX2Nvb3JkaW5hdG9yLT5z
ZXRMYXllckFuaW1hdGlvbnMobV9pZCwgbV9hbmltYXRpb25zKTsKIH0KIAogdm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDYW52YXMoKQpAQCAtNTQzLDcgKzUzMyw3IEBAIHZvaWQg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jQ2FudmFzKCkKICAgICB1aW50MzJfdCBmcm9u
dEJ1ZmZlciA9IG1fY2FudmFzUGxhdGZvcm1MYXllci0+Y29weVRvR3JhcGhpY3NTdXJmYWNlKCk7
CiAgICAgR3JhcGhpY3NTdXJmYWNlVG9rZW4gdG9rZW4gPSBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIt
PmdyYXBoaWNzU3VyZmFjZVRva2VuKCk7CiAKLSAgICBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ckNsaWVudC0+c3luY0NhbnZhcyhtX2lkLCBJbnRTaXplKHNpemUoKS53aWR0aCgpLCBzaXplKCku
aGVpZ2h0KCkpLCB0b2tlbiwgZnJvbnRCdWZmZXIpOworICAgIG1fY29vcmRpbmF0b3ItPnN5bmND
YW52YXMobV9pZCwgSW50U2l6ZShzaXplKCkud2lkdGgoKSwgc2l6ZSgpLmhlaWdodCgpKSwgdG9r
ZW4sIGZyb250QnVmZmVyKTsKICNlbmRpZgogICAgIG1fY2FudmFzTmVlZHNEaXNwbGF5ID0gZmFs
c2U7CiB9CkBAIC01NjcsOCArNTU3LDggQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OnJlbGVhc2VJbWFnZUJhY2tpbmdJZk5lZWRlZCgpCiAgICAgaWYgKCFtX2xheWVySW5mby5pbWFn
ZUJhY2tpbmdTdG9yZUlEKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQobV9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQpOwotICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
Q2xpZW50LT5yZWxlYXNlSW1hZ2VCYWNraW5nU3RvcmUobV9sYXllckluZm8uaW1hZ2VCYWNraW5n
U3RvcmVJRCk7CisgICAgQVNTRVJUKG1fY29vcmRpbmF0b3IpOworICAgIG1fY29vcmRpbmF0b3It
PnJlbGVhc2VJbWFnZUJhY2tpbmdTdG9yZShtX2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9yZUlE
KTsKICAgICBtX2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9yZUlEID0gMDsKIH0KIApAQCAtNjQx
LDcgKzYzMSw3IEBAIGJvb2wgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdT
dG9yZVVwZGF0ZXNBbGxvd2VkKCkgY29uc3QKIHsKICAgICBpZiAoIW1faW5VcGRhdGVNb2RlKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyQ2xpZW50LT5sYXllclRyZWVUaWxlVXBkYXRlc0FsbG93ZWQoKTsKKyAgICByZXR1cm4gbV9j
b29yZGluYXRvci0+bGF5ZXJUcmVlVGlsZVVwZGF0ZXNBbGxvd2VkKCk7CiB9CiAKIEludFJlY3Qg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZUNvbnRlbnRzUmVjdCgp
CkBAIC02NjYsNyArNjU2LDcgQEAgSW50UmVjdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRp
bGVkQmFja2luZ1N0b3JlVmlzaWJsZVJlY3QoKQogICAgIC8vIFJldHVybiBhIHByb2plY3Rpb24g
b2YgdGhlIHZpc2libGUgcmVjdCAoc3VyZmFjZSBjb29yZGluYXRlcykgb250byB0aGUgbGF5ZXIn
cyBwbGFuZSAobGF5ZXIgY29vcmRpbmF0ZXMpLgogICAgIC8vIFRoZSByZXN1bHRpbmcgcXVhZCBt
aWdodCBiZSBzcXVld2VkIGFuZCB0aGUgdmlzaWJsZSByZWN0IGlzIHRoZSBib3VuZGluZyBib3gg
b2YgdGhpcyBxdWFkLAogICAgIC8vIHNvIGl0IG1pZ2h0IHNwcmVhZCBmdXJ0aGVyIHRoYW4gdGhl
IHJlYWwgdmlzaWJsZSBhcmVhIChhbmQgdGhlbiBldmVuIG1vcmUgYW1wbGlmaWVkIGJ5IHRoZSBj
b3ZlciByZWN0IG11bHRpcGxpZXIpLgotICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KG1fbGF5
ZXJUcmFuc2Zvcm0uY29tYmluZWQoKS5pbnZlcnNlKCkuY2xhbXBlZEJvdW5kc09mUHJvamVjdGVk
UXVhZChGbG9hdFF1YWQoRmxvYXRSZWN0KG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50
LT52aXNpYmxlQ29udGVudHNSZWN0KCkpKSkpOworICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0
KG1fbGF5ZXJUcmFuc2Zvcm0uY29tYmluZWQoKS5pbnZlcnNlKCkuY2xhbXBlZEJvdW5kc09mUHJv
amVjdGVkUXVhZChGbG9hdFF1YWQoRmxvYXRSZWN0KG1fY29vcmRpbmF0b3ItPnZpc2libGVDb250
ZW50c1JlY3QoKSkpKSk7CiB9CiAKIENvbG9yIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dGls
ZWRCYWNraW5nU3RvcmVCYWNrZ3JvdW5kQ29sb3IoKSBjb25zdApAQCAtNjc2LDIyICs2NjYsMjIg
QEAgQ29sb3IgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZUJhY2tn
cm91bmRDb2xvcigpIGNvbnN0CiAKIFBhc3NPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
PiBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmJlZ2luQ29udGVudFVwZGF0ZShjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBzaXplLCBpbnQmIGF0bGFzLCBXZWJDb3JlOjpJbnRQb2ludCYgb2Zmc2V0
KQogewotICAgIHJldHVybiBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudC0+YmVnaW5D
b250ZW50VXBkYXRlKHNpemUsIGNvbnRlbnRzT3BhcXVlKCkgPyAwIDogU2hhcmVhYmxlQml0bWFw
OjpTdXBwb3J0c0FscGhhLCBhdGxhcywgb2Zmc2V0KTsKKyAgICByZXR1cm4gbV9jb29yZGluYXRv
ci0+YmVnaW5Db250ZW50VXBkYXRlKHNpemUsIGNvbnRlbnRzT3BhcXVlKCkgPyAwIDogU2hhcmVh
YmxlQml0bWFwOjpTdXBwb3J0c0FscGhhLCBhdGxhcywgb2Zmc2V0KTsKIH0KIAogdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZVRpbGUoaW50IHRpbGVJRCwgY29uc3QgU3VyZmFj
ZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHRpbGVSZWN0
KQogewotICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5jcmVhdGVUaWxlKGlk
KCksIHRpbGVJRCwgdXBkYXRlSW5mbywgdGlsZVJlY3QpOworICAgIG1fY29vcmRpbmF0b3ItPmNy
ZWF0ZVRpbGUoaWQoKSwgdGlsZUlELCB1cGRhdGVJbmZvLCB0aWxlUmVjdCk7CiB9CiAKIHZvaWQg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp1cGRhdGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFN1
cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZvLCBjb25zdCBJbnRSZWN0JiB0aWxlUmVjdCkKIHsK
LSAgICBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudC0+dXBkYXRlVGlsZShpZCgpLCB0
aWxlSUQsIHVwZGF0ZUluZm8sIHRpbGVSZWN0KTsKKyAgICBtX2Nvb3JkaW5hdG9yLT51cGRhdGVU
aWxlKGlkKCksIHRpbGVJRCwgdXBkYXRlSW5mbywgdGlsZVJlY3QpOwogfQogCiB2b2lkIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6cmVtb3ZlVGlsZShpbnQgdGlsZUlEKQogewotICAgIG1fQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5yZW1vdmVUaWxlKGlkKCksIHRpbGVJRCk7Cisg
ICAgbV9jb29yZGluYXRvci0+cmVtb3ZlVGlsZShpZCgpLCB0aWxlSUQpOwogfQogCiB2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dXBkYXRlQ29udGVudEJ1ZmZlcnMoKQpAQCAtNzI4LDI4
ICs3MTgsOSBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6cHVyZ2VCYWNraW5nU3Rv
cmVzKCkKICAgICBkaWRDaGFuZ2VDaGlsZHJlbigpOwogfQogCi12b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6c2V0Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KFdlYktpdDo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCit2b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6c2V0Q29vcmRpbmF0b3IoV2ViS2l0OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXJDbGllbnQqIGNvb3JkaW5hdG9yKQogewotICAgIGlmIChtX0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllckNsaWVudCA9PSBjbGllbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIqIHJlcGxpY2EgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihy
ZXBsaWNhTGF5ZXIoKSkpCi0gICAgICAgIHJlcGxpY2EtPnNldENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllckNsaWVudChjbGllbnQpOwotICAgIGlmIChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIG1h
c2sgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihtYXNrTGF5ZXIoKSkpCi0gICAgICAgIG1h
c2stPnNldENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudChjbGllbnQpOwotICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7ICsraSkgewotICAgICAgICBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIo
dGhpcy0+Y2hpbGRyZW4oKVtpXSk7Ci0gICAgICAgIGxheWVyLT5zZXRDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXJDbGllbnQoY2xpZW50KTsKLSAgICB9Ci0KLSAgICAvLyBXZSBoYXZlIHRvIHJlbGVh
c2UgcmVzb3VyY2VzIG9uIHRoZSBVSSBwcm9jZXNzIGhlcmUgaWYgdGhlIHJlbW90ZSBjbGllbnQg
aGFzIGNoYW5nZWQgb3IgaXMgcmVtb3ZlZC4KLSAgICBpZiAobV9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXJDbGllbnQpIHsKLSAgICAgICAgcHVyZ2VCYWNraW5nU3RvcmVzKCk7Ci0gICAgICAgIG1f
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5kZXRhY2hMYXllcih0aGlzKTsKLSAgICB9
Ci0gICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQgPSBjbGllbnQ7Ci0gICAgaWYg
KGNsaWVudCkKLSAgICAgICAgY2xpZW50LT5hdHRhY2hMYXllcih0aGlzKTsKKyAgICBtX2Nvb3Jk
aW5hdG9yID0gY29vcmRpbmF0b3I7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjphZGp1c3RWaXNpYmxlUmVjdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IGE0NmYyNzdlYjkxZGE2MmM4NGNiZmUy
NjkzOGJkYmE5YzcyMmRjZWQuLmU3OGYzYjBlYTY1ZjYwZGNlNDBjMmZkYjliNmNiNmU1MzA5Yzdl
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5oCkBAIC0xNTEsNyArMTUxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVUaWxlKGludCB0aWxlSUQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgUGFzc093blB0
cjxHcmFwaGljc0NvbnRleHQ+IGJlZ2luQ29udGVudFVwZGF0ZShjb25zdCBJbnRTaXplJiwgaW50
JiBhdGxhc0lELCBJbnRQb2ludCYpIE9WRVJSSURFOwogCi0gICAgdm9pZCBzZXRDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXJDbGllbnQoV2ViS2l0OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGll
bnQqKTsKKyAgICB2b2lkIHNldENvb3JkaW5hdG9yKFdlYktpdDo6Q29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyQ2xpZW50Kik7CiAKICAgICB2b2lkIGFkanVzdFZpc2libGVSZWN0KCk7CiAgICAgdm9p
ZCBwdXJnZUJhY2tpbmdTdG9yZXMoKTsKQEAgLTIxMyw3ICsyMTMsNyBAQCBwcml2YXRlOgogICAg
IGZsb2F0IG1fZWZmZWN0aXZlT3BhY2l0eTsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX2Vm
ZmVjdGl2ZVRyYW5zZm9ybTsKIAotICAgIFdlYktpdDo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
Q2xpZW50KiBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudDsKKyAgICBXZWJLaXQ6OkNv
b3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCogbV9jb29yZGluYXRvcjsKICAgICBPd25QdHI8
VGlsZWRCYWNraW5nU3RvcmU+IG1fbWFpbkJhY2tpbmdTdG9yZTsKICAgICBPd25QdHI8VGlsZWRC
YWNraW5nU3RvcmU+IG1fcHJldmlvdXNCYWNraW5nU3RvcmU7CiAgICAgZmxvYXQgbV9jb250ZW50
c1NjYWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRp
bmF0b3IuY3BwCmluZGV4IDJmYzRjN2E3ZTAzODZiM2U2ODAxNTk0YjU5Mjc3MDAyZmM0Y2Y0YTku
LjU3Y2VjMTFkNTU3MTQyMzQyYzdiNzFkYTI3YmNhODBlNGU0MTgyY2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKQEAgLTY2LDcg
KzY2LDcgQEAgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6On5MYXllclRyZWVDb29yZGluYXRvcigpCiAK
ICAgICBIYXNoU2V0PFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcio+OjppdGVyYXRv
ciBlbmQgPSByZWdpc3RlcmVkTGF5ZXJzLmVuZCgpOwogICAgIGZvciAoSGFzaFNldDxXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqPjo6aXRlcmF0b3IgaXQgPSByZWdpc3RlcmVkTGF5
ZXJzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgKCppdCktPnNldENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllckNsaWVudCgwKTsKKyAgICAgICAgKCppdCktPnNldENvb3JkaW5hdG9y
KDApOwogfQogCiBMYXllclRyZWVDb29yZGluYXRvcjo6TGF5ZXJUcmVlQ29vcmRpbmF0b3IoV2Vi
UGFnZSogd2ViUGFnZSkKQEAgLTk4LDcgKzk4LDYgQEAgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6Okxh
eWVyVHJlZUNvb3JkaW5hdG9yKFdlYlBhZ2UqIHdlYlBhZ2UpCiAgICAgbV9sYXllclRyZWVDb250
ZXh0LndlYkxheWVySUQgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcih3ZWJSb290TGF5ZXIp
LT5pZCgpOwogCiAgICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyID0gR3JhcGhpY3NMYXll
cjo6Y3JlYXRlKHRoaXMsIHRoaXMpOwotICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG1f
cm9vdExheWVyLmdldCgpKS0+c2V0Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KHRoaXMp
OwogI2lmbmRlZiBOREVCVUcKICAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnNldE5h
bWUoIkxheWVyVHJlZUNvb3JkaW5hdG9yIG5vbi1jb21wb3NpdGVkIGNvbnRlbnQiKTsKICNlbmRp
ZgpAQCAtNTg1LDcgKzU4NCw4IEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnBhaW50Q29u
dGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogZ3JhcGhpY3NMCiBQYXNzT3duUHRy
PEdyYXBoaWNzTGF5ZXI+IExheWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVhdGVHcmFwaGljc0xheWVy
KEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKIHsKICAgICBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIqIG5ld0xheWVyID0gbmV3IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihjbGllbnQpOwot
ICAgIG5ld0xheWVyLT5zZXRDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQodGhpcyk7Cisg
ICAgbmV3TGF5ZXItPnNldENvb3JkaW5hdG9yKHRoaXMpOworICAgIGF0dGFjaExheWVyKG5ld0xh
eWVyKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3TGF5ZXIpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174217</attachid>
            <date>2012-11-14 11:58:25 -0800</date>
            <delta_ts>2012-11-14 13:56:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102133-20121114115625.patch</filename>
            <type>text/plain</type>
            <size>19700</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTI5MmQ3YWRkMzZlNzg0
ODFiNjZmYWY5NTg5N2VlNjYyZjY3NzVlZi4uNTY3Njk2MDFiMmRmZGFhNjYzOGU4ODg2ZGMwODE4
MWYyNDE3ZjU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTExLTEzICBObydh
bSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CisKKyAgICAgICAgQ29vcmRp
bmF0ZWQgR3JhcGhpY3M6IFJlbmFtZSBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCB0
byBtX2Nvb3JkaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDIxMzMKKworICAgICAgICBSZW5hbWVkIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyQ2xpZW50IHRvIG1fY29vcmRpbmF0b3IuCisgICAgICAgIEFsc28sIHRoZXJlIGlzIG5vIG5l
ZWQgZm9yIGNhbGxpbmcgc2V0Q29vcmRpbmF0b3IgZXZlcnkgdGltZSB0aGUgdHJlZSBjaGFuZ2Vz
LAorICAgICAgICBzaW5jZSB3ZSBjYW4gY2FsbCBpdCBvbmNlIHdoZW4gdGhlIGxheWVyIGlzIGNy
ZWF0ZWQsIG5vdyB0aGF0IExheWVyVHJlZUNvb3JkaW5hdG9yCisgICAgICAgIGlzIHRoZSBHcmFw
aGljc0xheWVyRmFjdG9yeS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKQor
CisgICAgICAgIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Q29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6fkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjphZGRDaGlsZEF0SW5kZXgpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjphZGRDaGlsZEFib3ZlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRCZWxvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlcGxhY2VDaGlsZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9J
bWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldE1h
c2tMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNl
dFJlcGxpY2F0ZWRCeUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0NoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0ZpbHRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jTGF5ZXJTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNBbmltYXRpb25zKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0NhbnZhcyk6CisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmVuc3VyZUltYWdlQmFja2luZ1N0
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dGlsZWRC
YWNraW5nU3RvcmVVcGRhdGVzQWxsb3dlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlVmlzaWJsZVJlY3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpiZWdpbkNvbnRlbnRVcGRhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpjcmVhdGVUaWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dXBkYXRlVGlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlbW92ZVRpbGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpwdXJnZUJhY2tp
bmdTdG9yZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpz
ZXRDb29yZGluYXRvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAgIChDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlQ29vcmRpbmF0b3I6On5MYXllclRyZWVDb29yZGluYXRvcik6CisgICAgICAgIChXZWJL
aXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpMYXllclRyZWVDb29yZGluYXRvcik6CisgICAgICAg
IChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpwYWludENvbnRlbnRzKToKKwogMjAxMi0x
MS0xMyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bW90ZUdyYXBoaWNzTGF5ZXIgZGVzdHJ1Y3RvciBzaG91bGQgY2FsbCBHcmFwaGljc0xheWVyOjp3
aWxsQmVEZXN0cm95ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDZlYjJmYTQ1ZDQyY2U4MDEwZmFjYTk2MzJl
MjMyODM0ZTE2MDczYjkuLjVhNTBmNjgyNGQ5ZWIyYjI5MmViNjc3ZDllZWYyNmQ1MTBhMTgzZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyLmNwcApAQCAtMTE2LDcgKzExNiw3IEBAIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkK
ICAgICAsIG1fc2hvdWxkU3luY0FuaW1hdGlvbnModHJ1ZSkKICAgICAsIG1fZml4ZWRUb1ZpZXdw
b3J0KGZhbHNlKQogICAgICwgbV9jYW52YXNOZWVkc0Rpc3BsYXkoZmFsc2UpCi0gICAgLCBtX0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCgwKQorICAgICwgbV9jb29yZGluYXRvcigwKQog
ICAgICwgbV9jb250ZW50c1NjYWxlKDEpCiAgICAgLCBtX2NvbXBvc2l0ZWROYXRpdmVJbWFnZVB0
cigwKQogICAgICwgbV9jYW52YXNQbGF0Zm9ybUxheWVyKDApCkBAIC0xMzEsOSArMTMxLDkgQEAg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp+Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKCkKIHsK
ICAgICBsYXllckJ5SURNYXAoKS5yZW1vdmUoaWQoKSk7CiAKLSAgICBpZiAobV9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXJDbGllbnQpIHsKKyAgICBpZiAobV9jb29yZGluYXRvcikgewogICAgICAg
ICBwdXJnZUJhY2tpbmdTdG9yZXMoKTsKLSAgICAgICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXJDbGllbnQtPmRldGFjaExheWVyKHRoaXMpOworICAgICAgICBtX2Nvb3JkaW5hdG9yLT5kZXRh
Y2hMYXllcih0aGlzKTsKICAgICB9CiAgICAgd2lsbEJlRGVzdHJveWVkKCk7CiB9CkBAIC0xNDUs
NyArMTQ1LDYgQEAgYm9vbCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENoaWxkcmVuKGNv
bnN0IFZlY3RvcjxHcmFwaGljc0xheWVyKj4mIGNoaWxkcmUKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjaGlsZHJlbi5zaXplKCk7ICsraSkgewog
ICAgICAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGNoaWxkID0gdG9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIoY2hpbGRyZW5baV0pOwotICAgICAgICBjaGlsZC0+c2V0Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyQ2xpZW50KG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KTsKICAg
ICAgICAgY2hpbGQtPmRpZENoYW5nZUxheWVyU3RhdGUoKTsKICAgICB9CiAgICAgZGlkQ2hhbmdl
Q2hpbGRyZW4oKTsKQEAgLTE1NSw3ICsxNTQsNiBAQCBib29sIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6c2V0Q2hpbGRyZW4oY29uc3QgVmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiYgY2hpbGRyZQog
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkKEdyYXBoaWNzTGF5ZXIqIGxh
eWVyKQogewogICAgIEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkKGxheWVyKTsKLSAgICB0b0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcihsYXllciktPnNldENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNs
aWVudChtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk7CiAgICAgdG9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIobGF5ZXIpLT5kaWRDaGFuZ2VMYXllclN0YXRlKCk7CiAgICAgZGlkQ2hh
bmdlQ2hpbGRyZW4oKTsKIH0KQEAgLTE2Myw3ICsxNjEsNiBAQCB2b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6YWRkQ2hpbGQoR3JhcGhpY3NMYXllciogbGF5ZXIpCiB2b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRBdEluZGV4KEdyYXBoaWNzTGF5ZXIqIGxheWVyLCBp
bnQgaW5kZXgpCiB7CiAgICAgR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRBdEluZGV4KGxheWVyLCBp
bmRleCk7Ci0gICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobGF5ZXIpLT5zZXRDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQobV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQp
OwogICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKS0+ZGlkQ2hhbmdlTGF5ZXJT
dGF0ZSgpOwogICAgIGRpZENoYW5nZUNoaWxkcmVuKCk7CiB9CkBAIC0xNzEsNyArMTY4LDYgQEAg
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkQXRJbmRleChHcmFwaGljc0xh
eWVyKiBsYXllciwgaW50IGluZGV4KQogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFk
ZENoaWxkQWJvdmUoR3JhcGhpY3NMYXllciogbGF5ZXIsIEdyYXBoaWNzTGF5ZXIqIHNpYmxpbmcp
CiB7CiAgICAgR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRBYm92ZShsYXllciwgc2libGluZyk7Ci0g
ICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobGF5ZXIpLT5zZXRDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXJDbGllbnQobV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQpOwogICAgIHRv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKS0+ZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwog
ICAgIGRpZENoYW5nZUNoaWxkcmVuKCk7CiB9CkBAIC0xNzksNyArMTc1LDYgQEAgdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkQWJvdmUoR3JhcGhpY3NMYXllciogbGF5ZXIs
IEdyYXBoaWNzTGF5ZXIKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjphZGRDaGlsZEJl
bG93KEdyYXBoaWNzTGF5ZXIqIGxheWVyLCBHcmFwaGljc0xheWVyKiBzaWJsaW5nKQogewogICAg
IEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkQmVsb3cobGF5ZXIsIHNpYmxpbmcpOwotICAgIHRvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKS0+c2V0Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
Q2xpZW50KG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KTsKICAgICB0b0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcihsYXllciktPmRpZENoYW5nZUxheWVyU3RhdGUoKTsKICAgICBkaWRD
aGFuZ2VDaGlsZHJlbigpOwogfQpAQCAtMTkxLDcgKzE4Niw2IEBAIGJvb2wgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjpyZXBsYWNlQ2hpbGQoR3JhcGhpY3NMYXllciogb2xkQ2hpbGQsIEdyYXBo
aWNzTGF5CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBkaWRDaGFuZ2VDaGlsZHJlbigpOwog
ICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG9sZENoaWxkKS0+ZGlkQ2hhbmdlTGF5ZXJT
dGF0ZSgpOwotICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG5ld0NoaWxkKS0+c2V0Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xp
ZW50KTsKICAgICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihuZXdDaGlsZCktPmRpZENoYW5n
ZUxheWVyU3RhdGUoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTM4Niw3ICszODAsNiBAQCB2
b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0TWFza0xheWVyKEdyYXBoaWNzTGF5ZXIq
IGxheWVyKQogCiAgICAgbGF5ZXItPnNldFNpemUoc2l6ZSgpKTsKICAgICBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIqIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciA9IHRvQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyKGxheWVyKTsKLSAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXItPnNldENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllckNsaWVudChtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVu
dCk7CiAgICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLT5zZXRNYXNrVGFyZ2V0KHRoaXMpOwog
ICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllci0+ZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwogICAg
IGRpZENoYW5nZUxheWVyU3RhdGUoKTsKQEAgLTQxMCw5ICs0MDMsNiBAQCB2b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c2V0UmVwbGljYXRlZEJ5TGF5ZXIoR3JhcGhpY3NMYXllciogbGF5
ZXIpCiAgICAgaWYgKGxheWVyID09IHJlcGxpY2FMYXllcigpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAobGF5ZXIpCi0gICAgICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVy
KS0+c2V0Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KG1fQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyQ2xpZW50KTsKLQogICAgIEdyYXBoaWNzTGF5ZXI6OnNldFJlcGxpY2F0ZWRCeUxheWVy
KGxheWVyKTsKICAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7CiB9CkBAIC00NDIsNyArNDMyLDcg
QEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShj
b25zdCBGbG9hdFJlY3QmIHJlY3QpCiAgICAgaWYgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciog
cmVwbGljYSA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKHJlcGxpY2FMYXllcigpKSkKICAg
ICAgICAgcmVwbGljYS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwog
Ci0gICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPnN5bmNGaXhlZExheWVycygp
OworICAgIG1fY29vcmRpbmF0b3ItPnN5bmNGaXhlZExheWVycygpOwogCiAgICAgZmx1c2hDb21w
b3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogCkBAIC00NjQsNyArNDU0LDcgQEAgdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDaGlsZHJlbigpCiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytpKQogICAgICAgICBjaGlsZElEcy5h
cHBlbmQodG9XZWJMYXllcklEKGNoaWxkcmVuKClbaV0pKTsKIAotICAgIG1fQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyQ2xpZW50LT5zeW5jTGF5ZXJDaGlsZHJlbihtX2lkLCBjaGlsZElEcyk7Cisg
ICAgbV9jb29yZGluYXRvci0+c3luY0xheWVyQ2hpbGRyZW4obV9pZCwgY2hpbGRJRHMpOwogfQog
CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQpAQCAtNDczLDcgKzQ2Myw3IEBAIHZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jRmlsdGVycygpCiAgICAgaWYgKCFtX3Nob3VsZFN5bmNG
aWx0ZXJzKQogICAgICAgICByZXR1cm47CiAgICAgbV9zaG91bGRTeW5jRmlsdGVycyA9IGZhbHNl
OwotICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5zeW5jTGF5ZXJGaWx0ZXJz
KG1faWQsIGZpbHRlcnMoKSk7CisgICAgbV9jb29yZGluYXRvci0+c3luY0xheWVyRmlsdGVycyht
X2lkLCBmaWx0ZXJzKCkpOwogfQogI2VuZGlmCiAKQEAgLTQ4OSw3ICs0NzksNyBAQCB2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0ltYWdlQmFja2luZygpCiAgICAgICAgIEFTU0VS
VCghbV9tYWluQmFja2luZ1N0b3JlKTsKICAgICAgICAgQVNTRVJUKG1fY29tcG9zaXRlZEltYWdl
KTsKIAotICAgICAgICBtX2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9yZUlEID0gbV9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPmFkb3B0SW1hZ2VCYWNraW5nU3RvcmUobV9jb21wb3Np
dGVkSW1hZ2UuZ2V0KCkpOworICAgICAgICBtX2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9yZUlE
ID0gbV9jb29yZGluYXRvci0+YWRvcHRJbWFnZUJhY2tpbmdTdG9yZShtX2NvbXBvc2l0ZWRJbWFn
ZS5nZXQoKSk7CiAgICAgfQogCiAgICAgLy8gVGhpcyBtZXRob2QgY2hhbmdlcyBtX2xheWVySW5m
by5pbWFnZUJhY2tpbmdTdG9yZUlELgpAQCAtNTE4LDcgKzUwOCw3IEBAIHZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpzeW5jTGF5ZXJTdGF0ZSgpCiAgICAgbV9sYXllckluZm8ucmVwbGlj
YSA9IHRvV2ViTGF5ZXJJRChyZXBsaWNhTGF5ZXIoKSk7CiAgICAgbV9sYXllckluZm8uc2l6ZSA9
IHNpemUoKTsKICAgICBtX2xheWVySW5mby50cmFuc2Zvcm0gPSB0cmFuc2Zvcm0oKTsKLSAgICBt
X0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudC0+c3luY0xheWVyU3RhdGUobV9pZCwgbV9s
YXllckluZm8pOworICAgIG1fY29vcmRpbmF0b3ItPnN5bmNMYXllclN0YXRlKG1faWQsIG1fbGF5
ZXJJbmZvKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNBbmltYXRp
b25zKCkKQEAgLTUyOCw3ICs1MTgsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
c3luY0FuaW1hdGlvbnMoKQogCiAgICAgbV9zaG91bGRTeW5jQW5pbWF0aW9ucyA9IGZhbHNlOwog
Ci0gICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPnNldExheWVyQW5pbWF0aW9u
cyhtX2lkLCBtX2FuaW1hdGlvbnMpOworICAgIG1fY29vcmRpbmF0b3ItPnNldExheWVyQW5pbWF0
aW9ucyhtX2lkLCBtX2FuaW1hdGlvbnMpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6c3luY0NhbnZhcygpCkBAIC01NDMsNyArNTMzLDcgQEAgdm9pZCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OnN5bmNDYW52YXMoKQogICAgIHVpbnQzMl90IGZyb250QnVmZmVyID0gbV9j
YW52YXNQbGF0Zm9ybUxheWVyLT5jb3B5VG9HcmFwaGljc1N1cmZhY2UoKTsKICAgICBHcmFwaGlj
c1N1cmZhY2VUb2tlbiB0b2tlbiA9IG1fY2FudmFzUGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJm
YWNlVG9rZW4oKTsKIAotICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5zeW5j
Q2FudmFzKG1faWQsIEludFNpemUoc2l6ZSgpLndpZHRoKCksIHNpemUoKS5oZWlnaHQoKSksIHRv
a2VuLCBmcm9udEJ1ZmZlcik7CisgICAgbV9jb29yZGluYXRvci0+c3luY0NhbnZhcyhtX2lkLCBJ
bnRTaXplKHNpemUoKS53aWR0aCgpLCBzaXplKCkuaGVpZ2h0KCkpLCB0b2tlbiwgZnJvbnRCdWZm
ZXIpOwogI2VuZGlmCiAgICAgbV9jYW52YXNOZWVkc0Rpc3BsYXkgPSBmYWxzZTsKIH0KQEAgLTU2
Nyw4ICs1NTcsOCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6cmVsZWFzZUltYWdl
QmFja2luZ0lmTmVlZGVkKCkKICAgICBpZiAoIW1fbGF5ZXJJbmZvLmltYWdlQmFja2luZ1N0b3Jl
SUQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVChtX0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllckNsaWVudCk7Ci0gICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPnJlbGVh
c2VJbWFnZUJhY2tpbmdTdG9yZShtX2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9yZUlEKTsKKyAg
ICBBU1NFUlQobV9jb29yZGluYXRvcik7CisgICAgbV9jb29yZGluYXRvci0+cmVsZWFzZUltYWdl
QmFja2luZ1N0b3JlKG1fbGF5ZXJJbmZvLmltYWdlQmFja2luZ1N0b3JlSUQpOwogICAgIG1fbGF5
ZXJJbmZvLmltYWdlQmFja2luZ1N0b3JlSUQgPSAwOwogfQogCkBAIC02NDEsNyArNjMxLDcgQEAg
Ym9vbCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlVXBkYXRlc0Fs
bG93ZWQoKSBjb25zdAogewogICAgIGlmICghbV9pblVwZGF0ZU1vZGUpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICByZXR1cm4gbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPmxh
eWVyVHJlZVRpbGVVcGRhdGVzQWxsb3dlZCgpOworICAgIHJldHVybiBtX2Nvb3JkaW5hdG9yLT5s
YXllclRyZWVUaWxlVXBkYXRlc0FsbG93ZWQoKTsKIH0KIAogSW50UmVjdCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlQ29udGVudHNSZWN0KCkKQEAgLTY2Niw3ICs2
NTYsNyBAQCBJbnRSZWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dGlsZWRCYWNraW5nU3Rv
cmVWaXNpYmxlUmVjdCgpCiAgICAgLy8gUmV0dXJuIGEgcHJvamVjdGlvbiBvZiB0aGUgdmlzaWJs
ZSByZWN0IChzdXJmYWNlIGNvb3JkaW5hdGVzKSBvbnRvIHRoZSBsYXllcidzIHBsYW5lIChsYXll
ciBjb29yZGluYXRlcykuCiAgICAgLy8gVGhlIHJlc3VsdGluZyBxdWFkIG1pZ2h0IGJlIHNxdWV3
ZWQgYW5kIHRoZSB2aXNpYmxlIHJlY3QgaXMgdGhlIGJvdW5kaW5nIGJveCBvZiB0aGlzIHF1YWQs
CiAgICAgLy8gc28gaXQgbWlnaHQgc3ByZWFkIGZ1cnRoZXIgdGhhbiB0aGUgcmVhbCB2aXNpYmxl
IGFyZWEgKGFuZCB0aGVuIGV2ZW4gbW9yZSBhbXBsaWZpZWQgYnkgdGhlIGNvdmVyIHJlY3QgbXVs
dGlwbGllcikuCi0gICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QobV9sYXllclRyYW5zZm9ybS5j
b21iaW5lZCgpLmludmVyc2UoKS5jbGFtcGVkQm91bmRzT2ZQcm9qZWN0ZWRRdWFkKEZsb2F0UXVh
ZChGbG9hdFJlY3QobV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPnZpc2libGVDb250
ZW50c1JlY3QoKSkpKSk7CisgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QobV9sYXllclRyYW5z
Zm9ybS5jb21iaW5lZCgpLmludmVyc2UoKS5jbGFtcGVkQm91bmRzT2ZQcm9qZWN0ZWRRdWFkKEZs
b2F0UXVhZChGbG9hdFJlY3QobV9jb29yZGluYXRvci0+dmlzaWJsZUNvbnRlbnRzUmVjdCgpKSkp
KTsKIH0KIAogQ29sb3IgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9y
ZUJhY2tncm91bmRDb2xvcigpIGNvbnN0CkBAIC02NzYsMjIgKzY2NiwyOCBAQCBDb2xvciBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlQmFja2dyb3VuZENvbG9yKCkg
Y29uc3QKIAogUGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+IENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6YmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IHNpemUsIGludCYgYXRsYXMsIFdlYkNvcmU6OkludFBvaW50JiBvZmZzZXQpCiB7Ci0gICAgcmV0
dXJuIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5iZWdpbkNvbnRlbnRVcGRhdGUo
c2l6ZSwgY29udGVudHNPcGFxdWUoKSA/IDAgOiBTaGFyZWFibGVCaXRtYXA6OlN1cHBvcnRzQWxw
aGEsIGF0bGFzLCBvZmZzZXQpOworICAgIGlmICghbV9jb29yZGluYXRvcikKKyAgICAgICAgcmV0
dXJuIFBhc3NPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PigpOworCisgICAgcmV0dXJu
IG1fY29vcmRpbmF0b3ItPmJlZ2luQ29udGVudFVwZGF0ZShzaXplLCBjb250ZW50c09wYXF1ZSgp
ID8gMCA6IFNoYXJlYWJsZUJpdG1hcDo6U3VwcG9ydHNBbHBoYSwgYXRsYXMsIG9mZnNldCk7CiB9
CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpjcmVhdGVUaWxlKGludCB0aWxlSUQs
IGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZvLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiB0aWxlUmVjdCkKIHsKLSAgICBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudC0+
Y3JlYXRlVGlsZShpZCgpLCB0aWxlSUQsIHVwZGF0ZUluZm8sIHRpbGVSZWN0KTsKKyAgICBpZiAo
bV9jb29yZGluYXRvcikKKyAgICAgICAgbV9jb29yZGluYXRvci0+Y3JlYXRlVGlsZShpZCgpLCB0
aWxlSUQsIHVwZGF0ZUluZm8sIHRpbGVSZWN0KTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OnVwZGF0ZVRpbGUoaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8m
IHVwZGF0ZUluZm8sIGNvbnN0IEludFJlY3QmIHRpbGVSZWN0KQogewotICAgIG1fQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyQ2xpZW50LT51cGRhdGVUaWxlKGlkKCksIHRpbGVJRCwgdXBkYXRlSW5m
bywgdGlsZVJlY3QpOworICAgIGlmIChtX2Nvb3JkaW5hdG9yKQorICAgICAgICBtX2Nvb3JkaW5h
dG9yLT51cGRhdGVUaWxlKGlkKCksIHRpbGVJRCwgdXBkYXRlSW5mbywgdGlsZVJlY3QpOwogfQog
CiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6cmVtb3ZlVGlsZShpbnQgdGlsZUlEKQog
ewotICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5yZW1vdmVUaWxlKGlkKCks
IHRpbGVJRCk7CisgICAgaWYgKG1fY29vcmRpbmF0b3IpCisgICAgICAgIG1fY29vcmRpbmF0b3It
PnJlbW92ZVRpbGUoaWQoKSwgdGlsZUlEKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnVwZGF0ZUNvbnRlbnRCdWZmZXJzKCkKQEAgLTcyOCwyOCArNzI0LDkgQEAgdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnB1cmdlQmFja2luZ1N0b3JlcygpCiAgICAgZGlkQ2hh
bmdlQ2hpbGRyZW4oKTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudChXZWJLaXQ6OkNvb3JkaW5hdGVkR3JhcGhpY3NM
YXllckNsaWVudCogY2xpZW50KQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENv
b3JkaW5hdG9yKFdlYktpdDo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KiBjb29yZGlu
YXRvcikKIHsKLSAgICBpZiAobV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQgPT0gY2xp
ZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
KiByZXBsaWNhID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIocmVwbGljYUxheWVyKCkpKQot
ICAgICAgICByZXBsaWNhLT5zZXRDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQoY2xpZW50
KTsKLSAgICBpZiAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBtYXNrID0gdG9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIobWFza0xheWVyKCkpKQotICAgICAgICBtYXNrLT5zZXRDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXJDbGllbnQoY2xpZW50KTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGNoaWxkcmVuKCkuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKiBsYXllciA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKHRoaXMtPmNoaWxkcmVuKClb
aV0pOwotICAgICAgICBsYXllci0+c2V0Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KGNs
aWVudCk7Ci0gICAgfQotCi0gICAgLy8gV2UgaGF2ZSB0byByZWxlYXNlIHJlc291cmNlcyBvbiB0
aGUgVUkgcHJvY2VzcyBoZXJlIGlmIHRoZSByZW1vdGUgY2xpZW50IGhhcyBjaGFuZ2VkIG9yIGlz
IHJlbW92ZWQuCi0gICAgaWYgKG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KSB7Ci0g
ICAgICAgIHB1cmdlQmFja2luZ1N0b3JlcygpOwotICAgICAgICBtX0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllckNsaWVudC0+ZGV0YWNoTGF5ZXIodGhpcyk7Ci0gICAgfQotICAgIG1fQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyQ2xpZW50ID0gY2xpZW50OwotICAgIGlmIChjbGllbnQpCi0gICAgICAg
IGNsaWVudC0+YXR0YWNoTGF5ZXIodGhpcyk7CisgICAgbV9jb29yZGluYXRvciA9IGNvb3JkaW5h
dG9yOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YWRqdXN0VmlzaWJsZVJl
Y3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuaAppbmRleCBhNDZmMjc3ZWI5MWRhNjJjODRjYmZlMjY5MzhiZGJhOWM3MjJkY2Vk
Li41MWMzM2ZjNWFkOWE4ZWY3N2RlZGRkMjNiYjMwY2MxZDgyZmMyODE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAt
NjksNyArNjksNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJBbmltYXRp
b25zKFdlYkxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJBbmltYXRpb25zJikg
PSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGF0dGFjaExheWVyKFdlYkNvcmU6OkNvb3JkaW5hdGVk
R3JhcGhpY3NMYXllciopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoTGF5ZXIoV2ViQ29y
ZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzeW5j
Rml4ZWRMYXllcnMoKSA9IDA7CiAgICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dD4gYmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBT
aGFyZWFibGVCaXRtYXA6OkZsYWdzLCBpbnQmIGF0bGFzSUQsIFdlYkNvcmU6OkludFBvaW50Jikg
PSAwOwpAQCAtMTUxLDcgKzE1MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
VGlsZShpbnQgdGlsZUlEKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8R3JhcGhp
Y3NDb250ZXh0PiBiZWdpbkNvbnRlbnRVcGRhdGUoY29uc3QgSW50U2l6ZSYsIGludCYgYXRsYXNJ
RCwgSW50UG9pbnQmKSBPVkVSUklERTsKIAotICAgIHZvaWQgc2V0Q29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyQ2xpZW50KFdlYktpdDo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50Kik7Cisg
ICAgdm9pZCBzZXRDb29yZGluYXRvcihXZWJLaXQ6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNs
aWVudCopOwogCiAgICAgdm9pZCBhZGp1c3RWaXNpYmxlUmVjdCgpOwogICAgIHZvaWQgcHVyZ2VC
YWNraW5nU3RvcmVzKCk7CkBAIC0yMTMsNyArMjEyLDcgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBt
X2VmZmVjdGl2ZU9wYWNpdHk7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9lZmZlY3RpdmVU
cmFuc2Zvcm07CiAKLSAgICBXZWJLaXQ6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCog
bV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQ7CisgICAgV2ViS2l0OjpDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXJDbGllbnQqIG1fY29vcmRpbmF0b3I7CiAgICAgT3duUHRyPFRpbGVkQmFj
a2luZ1N0b3JlPiBtX21haW5CYWNraW5nU3RvcmU7CiAgICAgT3duUHRyPFRpbGVkQmFja2luZ1N0
b3JlPiBtX3ByZXZpb3VzQmFja2luZ1N0b3JlOwogICAgIGZsb2F0IG1fY29udGVudHNTY2FsZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNw
cAppbmRleCAyZmM0YzdhN2UwMzg2YjNlNjgwMTU5NGI1OTI3NzAwMmZjNGNmNGE5Li5iYjllYjNi
NWI3ODUwYjcwZjUyNThlOGRhZjZjNWRmYTlmNjQwN2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29y
ZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCkBAIC02Niw3ICs2Niw3IEBA
IExheWVyVHJlZUNvb3JkaW5hdG9yOjp+TGF5ZXJUcmVlQ29vcmRpbmF0b3IoKQogCiAgICAgSGFz
aFNldDxXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqPjo6aXRlcmF0b3IgZW5kID0g
cmVnaXN0ZXJlZExheWVycy5lbmQoKTsKICAgICBmb3IgKEhhc2hTZXQ8V2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyKj46Oml0ZXJhdG9yIGl0ID0gcmVnaXN0ZXJlZExheWVycy5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgICgqaXQpLT5zZXRDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXJDbGllbnQoMCk7CisgICAgICAgICgqaXQpLT5zZXRDb29yZGluYXRvcigwKTsKIH0K
IAogTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OkxheWVyVHJlZUNvb3JkaW5hdG9yKFdlYlBhZ2UqIHdl
YlBhZ2UpCkBAIC05OCw3ICs5OCw2IEBAIExheWVyVHJlZUNvb3JkaW5hdG9yOjpMYXllclRyZWVD
b29yZGluYXRvcihXZWJQYWdlKiB3ZWJQYWdlKQogICAgIG1fbGF5ZXJUcmVlQ29udGV4dC53ZWJM
YXllcklEID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIod2ViUm9vdExheWVyKS0+aWQoKTsK
IAogICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0
ZSh0aGlzLCB0aGlzKTsKLSAgICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihtX3Jvb3RMYXll
ci5nZXQoKSktPnNldENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCh0aGlzKTsKICNpZm5k
ZWYgTkRFQlVHCiAgICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zZXROYW1lKCJMYXll
clRyZWVDb29yZGluYXRvciBub24tY29tcG9zaXRlZCBjb250ZW50Iik7CiAjZW5kaWYKQEAgLTMy
OCwxNSArMzI3LDYgQEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6c3luY0xheWVyRmlsdGVy
cyhXZWJMYXllcklEIGlkLCBjb25zdCBGaWx0ZXJPcGVyYXRpb24KIH0KICNlbmRpZgogCi12b2lk
IExheWVyVHJlZUNvb3JkaW5hdG9yOjphdHRhY2hMYXllcihDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIqIGxheWVyKQotewotICAgIEFTU0VSVCghbV9yZWdpc3RlcmVkTGF5ZXJzLmNvbnRhaW5zKGxh
eWVyKSk7Ci0gICAgbV9yZWdpc3RlcmVkTGF5ZXJzLmFkZChsYXllcik7Ci0KLSAgICBsYXllci0+
c2V0Q29udGVudHNTY2FsZShtX2NvbnRlbnRzU2NhbGUpOwotICAgIGxheWVyLT5hZGp1c3RWaXNp
YmxlUmVjdCgpOwotfQotCiB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpkZXRhY2hMYXllcihD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogewogICAgIG1fcmVnaXN0ZXJlZExheWVy
cy5yZW1vdmUobGF5ZXIpOwpAQCAtNTg0LDkgKzU3NCwxMiBAQCB2b2lkIExheWVyVHJlZUNvb3Jk
aW5hdG9yOjpwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIGdyYXBo
aWNzTAogCiBQYXNzT3duUHRyPEdyYXBoaWNzTGF5ZXI+IExheWVyVHJlZUNvb3JkaW5hdG9yOjpj
cmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKIHsKLSAgICBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIG5ld0xheWVyID0gbmV3IENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcihjbGllbnQpOwotICAgIG5ld0xheWVyLT5zZXRDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXJDbGllbnQodGhpcyk7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ld0xheWVyKTsKKyAgICBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbmV3IENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cihjbGllbnQpOworICAgIGxheWVyLT5zZXRDb29yZGluYXRvcih0aGlzKTsKKyAgICBtX3JlZ2lz
dGVyZWRMYXllcnMuYWRkKGxheWVyKTsKKyAgICBsYXllci0+c2V0Q29udGVudHNTY2FsZShtX2Nv
bnRlbnRzU2NhbGUpOworICAgIGxheWVyLT5hZGp1c3RWaXNpYmxlUmVjdCgpOworICAgIHJldHVy
biBhZG9wdFB0cihsYXllcik7CiB9CiAKIGJvb2wgTGF5ZXJUcmVlSG9zdDo6c3VwcG9ydHNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVDb29yZGluYXRvci5oCmluZGV4IDQwMTdlMWZjNDAwNjAzMzRjODk1ZTg1YWM5NTg1Y2M4
OTJkNWQ2N2QuLjFhOWUxNzlhYzg4OWUyNmQwM2JmYjFjNjY4MWViNzU5MWRjMDc3MjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaApAQCAt
OTAsNyArOTAsNiBAQCBwdWJsaWM6CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiAgICAgdmly
dHVhbCB2b2lkIHN5bmNDYW52YXMoV2ViTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
Y2FudmFzU2l6ZSwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4mLCB1aW50MzJf
dCBmcm9udEJ1ZmZlcikgT1ZFUlJJREU7CiAjZW5kaWYKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
TGF5ZXIoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2
b2lkIGRldGFjaExheWVyKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllciopOwogICAg
IHZpcnR1YWwgdm9pZCBzeW5jRml4ZWRMYXllcnMoKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>