<?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>102013</bug_id>
          
          <creation_ts>2012-11-12 17:01:47 -0800</creation_ts>
          <short_desc>Replace unnecessary ArgumentDecoder member functions with decode overloads</short_desc>
          <delta_ts>2013-01-29 19:30:50 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>abecsi</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>menard</cc>
    
    <cc>noam</cc>
    
    <cc>ossy</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>764985</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-11-12 17:01:47 -0800</bug_when>
    <thetext>Replace unnecessary ArgumentDecoder member functions with decode overloads</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765014</commentid>
    <comment_count>1</comment_count>
      <attachid>173767</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-11-12 17:19:31 -0800</bug_when>
    <thetext>Created attachment 173767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765029</commentid>
    <comment_count>2</comment_count>
      <attachid>173767</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-12 17:32:40 -0800</bug_when>
    <thetext>Comment on attachment 173767
Patch

Attachment 173767 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14821342</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765043</commentid>
    <comment_count>3</comment_count>
      <attachid>173767</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-12 17:43:53 -0800</bug_when>
    <thetext>Comment on attachment 173767
Patch

Attachment 173767 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14803950</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765083</commentid>
    <comment_count>4</comment_count>
      <attachid>173767</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-12 18:11:45 -0800</bug_when>
    <thetext>Comment on attachment 173767
Patch

Attachment 173767 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14822231</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808073</commentid>
    <comment_count>5</comment_count>
      <attachid>173767</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-01-15 23:18:26 -0800</bug_when>
    <thetext>Comment on attachment 173767
Patch

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

&gt; Source/WebKit2/Platform/win/SharedMemoryWin.cpp:101
&gt; +    if (!decoder-&gt;decode(32(sourcePID))

I think you meant decode(size)

&gt; Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:205
&gt; +    if (!decoder-&gt;decode(32(size))

ditto

&gt; Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:283
&gt; +            if (!decoder-&gt;decode(32(parametersSize))

ditto

&gt; Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:299
&gt; +                    if (!decoder-&gt;decode(32(arrayParameterSize))

ditto

&gt; Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:313
&gt; +                    if (!decoder-&gt;decode(32(numberParameterSize))

ditto

&gt; Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:425
&gt; +    if (!decoder-&gt;decode(32(operationsSize))

ditto

&gt; Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:582
&gt; +        if (!decoder-&gt;decode(32(numberOfSteps))

ditto

&gt; Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:666
&gt; +    if (!decoder-&gt;decode(32(fillMode))

ditto

&gt; Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:688
&gt; +    if (!decoder-&gt;decode(32(keyframesSize))

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808075</commentid>
    <comment_count>6</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-01-15 23:19:20 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 173767 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173767&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Platform/win/SharedMemoryWin.cpp:101
&gt; &gt; +    if (!decoder-&gt;decode(32(sourcePID))
&gt; 
&gt; I think you meant decode(size)
decode(size) -&gt; decode(*)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819678</commentid>
    <comment_count>7</comment_count>
      <attachid>185374</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-01-29 18:52:19 -0800</bug_when>
    <thetext>Created attachment 185374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819706</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-01-29 19:30:50 -0800</bug_when>
    <thetext>Committed r141209: &lt;http://trac.webkit.org/changeset/141209&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173767</attachid>
            <date>2012-11-12 17:19:31 -0800</date>
            <delta_ts>2013-01-29 18:52:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102013-20121112171733.patch</filename>
            <type>text/plain</type>
            <size>33765</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTVlZWRmOTMyMzMyYTNm
ZDA2YjNlYWJkZTFjNDE4N2IwZjhmOWQwNS4uZjQ0MjFkNmQ3ZTA0NGQ1YWVkMzQ0M2FiYzhjMjFk
YTcxMTk2MTc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTExLTEyICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSB1bm5l
Y2Vzc2FyeSBBcmd1bWVudERlY29kZXIgbWVtYmVyIGZ1bmN0aW9ucyB3aXRoIGRlY29kZSBvdmVy
bG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MjAxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
cGxhY2UgdGhlIHZhcmlvdXMgZGVjb2RlIGZ1bmN0aW9ucyB0aGF0IGhhZCB0aGUgdHlwZSBpbiB0
aGUgbmFtZSB3aXRoIG92ZXJsb2Fkcy4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJn
dW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNvZGUpOgorICAgICAgICAq
IFBsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9D
b3JlSVBDL0FyZ3VtZW50RGVjb2Rlci5jcHA6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXI6OmRlY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KToKKyAgICAgICAgKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0Fy
Z3VtZW50RGVjb2Rlci5oOgorICAgICAgICAoQXJndW1lbnREZWNvZGVyKToKKyAgICAgICAgKENv
cmVJUEM6OkFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlRW51bSk6CisgICAgICAgICogUGxhdGZvcm0v
Q29yZUlQQy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246OmRp
c3BhdGNoU3luY01lc3NhZ2UpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZURl
Y29kZXIuY3BwOgorICAgICAgICAoQ29yZUlQQzo6TWVzc2FnZURlY29kZXI6Ok1lc3NhZ2VEZWNv
ZGVyKToKKyAgICAgICAgKiBQbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGU6OmRlY29kZSk6CisgICAgICAgICogUGxh
dGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1l
bW9yeTo6SGFuZGxlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChDb3Jl
SVBDOjo6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpEaWN0aW9uYXJ5UG9wdXBJbmZvOjpkZWNvZGUpOgorICAgICAg
ICAqIFNoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVz
c2FnZURlY29kZXI6OmJhc2VEZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9jZi9Bcmd1bWVudENv
ZGVyc0NGLmNwcDoKKyAgICAgICAgKENvcmVJUEM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L21hYy9Bcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKENvcmVJUEM6OmRlY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL21hYy9LZXljaGFpbkF0dHJpYnV0ZS5jcHA6CisgICAgICAgIChDb3Jl
SVBDOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5t
bToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpTZWNJdGVtUmVxdWVzdERhdGE6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2VjSXRlbVJl
c3BvbnNlRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1NlY0tleWNoYWluSXRl
bVJlcXVlc3REYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2VjS2V5Y2hhaW5JdGVtUmVxdWVz
dERhdGE6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXNw
b25zZURhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURh
dGE6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL3F0L0FyZ3VtZW50Q29kZXJzUXQuY3BwOgor
ICAgICAgICAoQ29yZUlQQzo6OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9xdC9RdE5ldHdv
cmtSZXBseURhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpRdE5ldHdvcmtSZXBseURhdGE6OmRl
Y29kZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RlY29kZXJBZGFwdGVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6RGVjb2RlckFkYXB0ZXI6OmRlY29kZUJvb2wpOgorICAgICAgICAo
V2ViS2l0OjpEZWNvZGVyQWRhcHRlcjo6ZGVjb2RlVUludDE2KToKKyAgICAgICAgKFdlYktpdDo6
RGVjb2RlckFkYXB0ZXI6OmRlY29kZVVJbnQzMik6CisgICAgICAgIChXZWJLaXQ6OkRlY29kZXJB
ZGFwdGVyOjpkZWNvZGVVSW50NjQpOgorICAgICAgICAoV2ViS2l0OjpEZWNvZGVyQWRhcHRlcjo6
ZGVjb2RlSW50MzIpOgorICAgICAgICAoV2ViS2l0OjpEZWNvZGVyQWRhcHRlcjo6ZGVjb2RlSW50
NjQpOgorICAgICAgICAoV2ViS2l0OjpEZWNvZGVyQWRhcHRlcjo6ZGVjb2RlRmxvYXQpOgorICAg
ICAgICAoV2ViS2l0OjpEZWNvZGVyQWRhcHRlcjo6ZGVjb2RlRG91YmxlKToKKwogMjAxMi0xMS0w
OSAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBD
b29yZGluYXRlZCBHcmFwaGljczogUmVuYW1lIHRpbGVSZWN0IGZyb20gdGFyZ2V0UmVjdC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5jcHAK
aW5kZXggMGYyNWFmOWMwNGExMTY3MjYwNTU4YmIwNzliMzBlNWRiYmFjMzc3MC4uNTQxMmE1NDhm
ZTg3MzE0MjIwZjk0YTM0OTY5OGU2Y2RmYjZhMzc4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5jcHAKQEAgLTEzOCw4ICsxMzgsNyBA
QCBib29sIEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVj
b2RlciwgU3RyaW5nJiByZXN1bHQpCiAgICAgfQogCiAgICAgYm9vbCBpczhCaXQ7Ci0KLSAgICBp
ZiAoIWRlY29kZXItPmRlY29kZUJvb2woaXM4Qml0KSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29k
ZShpczhCaXQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoaXM4Qml0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5o
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4
IDNiMTg0Zjg4ODMyZWFmZTQxMDU3Y2NmY2E4MDQ0MDIyYTg3N2RlNWYuLmY0NjU4YTllMTQ3MGRk
N2RhZDI5MWFmOTZiMmUzNWFhNWVjZTYzZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXJzLmgKQEAgLTEwNiw3ICsxMDYsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgVmVjdG9yQXJndW1lbnRDb2RlcjxmYWxzZSwgVD4gewogICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFZlY3RvcjxUPiYg
dmVjdG9yKQogICAgIHsKICAgICAgICAgdWludDY0X3Qgc2l6ZTsKLSAgICAgICAgaWYgKCFkZWNv
ZGVyLT5kZWNvZGVVSW50NjQoc2l6ZSkpCisgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHNp
emUpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIFZlY3RvcjxUPiB0bXA7
CkBAIC0xMzQsNyArMTM0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFZlY3RvckFy
Z3VtZW50Q29kZXI8dHJ1ZSwgVD4gewogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERl
Y29kZXIqIGRlY29kZXIsIFZlY3RvcjxUPiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgdWludDY0
X3Qgc2l6ZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50NjQoc2l6ZSkpCisgICAg
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHNpemUpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgICAgIC8vIFNpbmNlIHdlIGtub3cgdGhlIHRvdGFsIHNpemUgb2YgdGhlIGVsZW1l
bnRzLCB3ZSBjYW4gYWxsb2NhdGUgdGhlIHZlY3RvciBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudERlY29kZXIuY3BwIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudERlY29kZXIuY3BwCmluZGV4IDY4MTg1ODAwODE4
NDNhZjcxN2E0NTA0NGU2ZDNmYjlmMmJmMjE4MTAuLmJkZjk3ODYxYWY5ZDgzNTJmNWJmM2FmNjM5
NWY0ZTdmOGIwYTNjMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvQXJndW1lbnREZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0FyZ3VtZW50RGVjb2Rlci5jcHAKQEAgLTExNiw3ICsxMTYsNyBAQCBib29sIEFyZ3VtZW50
RGVjb2Rlcjo6ZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXpl
LCB1bnNpZ25lZAogYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29kZVZhcmlhYmxlTGVuZ3RoQnl0
ZUFycmF5KERhdGFSZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2UpCiB7CiAgICAgdWludDY0X3Qgc2l6
ZTsKLSAgICBpZiAoIWRlY29kZVVJbnQ2NChzaXplKSkKKyAgICBpZiAoIWRlY29kZShzaXplKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIGlmICghYWxpZ25CdWZmZXJQb3NpdGlv
bigxLCBzaXplKSkKQEAgLTEyOSw3ICsxMjksNyBAQCBib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVj
b2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoRGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlQm9vbChi
b29sJiByZXN1bHQpCitib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlKGJvb2wmIHJlc3VsdCkK
IHsKICAgICBpZiAoIWFsaWduQnVmZmVyUG9zaXRpb24oc2l6ZW9mKHJlc3VsdCksIHNpemVvZihy
ZXN1bHQpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTM5LDcgKzEzOSw3IEBAIGJvb2wg
QXJndW1lbnREZWNvZGVyOjpkZWNvZGVCb29sKGJvb2wmIHJlc3VsdCkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29kZVVJbnQxNih1aW50MTZfdCYgcmVz
dWx0KQorYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29kZSh1aW50MTZfdCYgcmVzdWx0KQogewog
ICAgIGlmICghYWxpZ25CdWZmZXJQb3NpdGlvbihzaXplb2YocmVzdWx0KSwgc2l6ZW9mKHJlc3Vs
dCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNDksNyArMTQ5LDcgQEAgYm9vbCBBcmd1
bWVudERlY29kZXI6OmRlY29kZVVJbnQxNih1aW50MTZfdCYgcmVzdWx0KQogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlVUludDMyKHVpbnQzMl90JiBy
ZXN1bHQpCitib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlKHVpbnQzMl90JiByZXN1bHQpCiB7
CiAgICAgaWYgKCFhbGlnbkJ1ZmZlclBvc2l0aW9uKHNpemVvZihyZXN1bHQpLCBzaXplb2YocmVz
dWx0KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE1OSw3ICsxNTksNyBAQCBib29sIEFy
Z3VtZW50RGVjb2Rlcjo6ZGVjb2RlVUludDMyKHVpbnQzMl90JiByZXN1bHQpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGVVSW50NjQodWludDY0X3Qm
IHJlc3VsdCkKK2Jvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGUodWludDY0X3QmIHJlc3VsdCkK
IHsKICAgICBpZiAoIWFsaWduQnVmZmVyUG9zaXRpb24oc2l6ZW9mKHJlc3VsdCksIHNpemVvZihy
ZXN1bHQpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTY5LDcgKzE2OSw3IEBAIGJvb2wg
QXJndW1lbnREZWNvZGVyOjpkZWNvZGVVSW50NjQodWludDY0X3QmIHJlc3VsdCkKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29kZUludDMyKGludDMyX3Qm
IHJlc3VsdCkKK2Jvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGUoaW50MzJfdCYgcmVzdWx0KQog
ewogICAgIGlmICghYWxpZ25CdWZmZXJQb3NpdGlvbihzaXplb2YocmVzdWx0KSwgc2l6ZW9mKHJl
c3VsdCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNzksNyArMTc5LDcgQEAgYm9vbCBB
cmd1bWVudERlY29kZXI6OmRlY29kZUludDMyKGludDMyX3QmIHJlc3VsdCkKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29kZUludDY0KGludDY0X3QmIHJl
c3VsdCkKK2Jvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGUoaW50NjRfdCYgcmVzdWx0KQogewog
ICAgIGlmICghYWxpZ25CdWZmZXJQb3NpdGlvbihzaXplb2YocmVzdWx0KSwgc2l6ZW9mKHJlc3Vs
dCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xODksNyArMTg5LDcgQEAgYm9vbCBBcmd1
bWVudERlY29kZXI6OmRlY29kZUludDY0KGludDY0X3QmIHJlc3VsdCkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29kZUZsb2F0KGZsb2F0JiByZXN1bHQp
Citib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlKGZsb2F0JiByZXN1bHQpCiB7CiAgICAgaWYg
KCFhbGlnbkJ1ZmZlclBvc2l0aW9uKHNpemVvZihyZXN1bHQpLCBzaXplb2YocmVzdWx0KSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE5OSw3ICsxOTksNyBAQCBib29sIEFyZ3VtZW50RGVj
b2Rlcjo6ZGVjb2RlRmxvYXQoZmxvYXQmIHJlc3VsdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBBcmd1bWVudERlY29kZXI6OmRlY29kZURvdWJsZShkb3VibGUmIHJlc3VsdCkKK2Jvb2wg
QXJndW1lbnREZWNvZGVyOjpkZWNvZGUoZG91YmxlJiByZXN1bHQpCiB7CiAgICAgaWYgKCFhbGln
bkJ1ZmZlclBvc2l0aW9uKHNpemVvZihyZXN1bHQpLCBzaXplb2YocmVzdWx0KSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvQXJndW1lbnREZWNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Fy
Z3VtZW50RGVjb2Rlci5oCmluZGV4IGMxZDRiNmUwNWQ2ZjhmNzlhNjQ3Nzk1Nzk4MjlkOGZkMGI0
MTBiNGYuLjQwYmE0YWUyYzA1ZmUxYjE3YTNhNDBmODgwNDIyZmE4NTYwMWFjZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnREZWNvZGVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudERlY29kZXIuaApAQCAt
NTIsMjEgKzUyLDIxIEBAIHB1YmxpYzoKICAgICAvLyBUaGUgZGF0YSBpbiB0aGUgZGF0YSByZWZl
cmVuY2UgaGVyZSB3aWxsIG9ubHkgYmUgdmFsaWQgZm9yIHRoZSBsaWZldGltZSBvZiB0aGUgQXJn
dW1lbnREZWNvZGVyIG9iamVjdC4KICAgICBib29sIGRlY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFy
cmF5KERhdGFSZWZlcmVuY2UmKTsKIAotICAgIGJvb2wgZGVjb2RlQm9vbChib29sJik7Ci0gICAg
Ym9vbCBkZWNvZGVVSW50MTYodWludDE2X3QmKTsKLSAgICBib29sIGRlY29kZVVJbnQzMih1aW50
MzJfdCYpOwotICAgIGJvb2wgZGVjb2RlVUludDY0KHVpbnQ2NF90Jik7Ci0gICAgYm9vbCBkZWNv
ZGVJbnQzMihpbnQzMl90Jik7Ci0gICAgYm9vbCBkZWNvZGVJbnQ2NChpbnQ2NF90Jik7Ci0gICAg
Ym9vbCBkZWNvZGVGbG9hdChmbG9hdCYpOwotICAgIGJvb2wgZGVjb2RlRG91YmxlKGRvdWJsZSYp
OworICAgIGJvb2wgZGVjb2RlKGJvb2wmKTsKKyAgICBib29sIGRlY29kZSh1aW50MTZfdCYpOwor
ICAgIGJvb2wgZGVjb2RlKHVpbnQzMl90Jik7CisgICAgYm9vbCBkZWNvZGUodWludDY0X3QmKTsK
KyAgICBib29sIGRlY29kZShpbnQzMl90Jik7CisgICAgYm9vbCBkZWNvZGUoaW50NjRfdCYpOwor
ICAgIGJvb2wgZGVjb2RlKGZsb2F0Jik7CisgICAgYm9vbCBkZWNvZGUoZG91YmxlJik7CiAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIGRlY29kZUVudW0oVCYgcmVzdWx0KQogICAgIHsK
ICAgICAgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFQpIDw9IHNpemVvZih1aW50NjRfdCksIGVu
dW1fdHlwZV9tdXN0X25vdF9iZV9sYXJnZXJfdGhhbl82NF9iaXRzKTsKIAogICAgICAgICB1aW50
NjRfdCB2YWx1ZTsKLSAgICAgICAgaWYgKCFkZWNvZGVVSW50NjQodmFsdWUpKQorICAgICAgICBp
ZiAoIWRlY29kZSh2YWx1ZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAog
ICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxUPih2YWx1ZSk7CkBAIC0xMTcsNDYgKzExNyw2
IEBAIHByaXZhdGU6CiAgICAgRGVxdWU8QXR0YWNobWVudD4gbV9hdHRhY2htZW50czsKIH07CiAK
LXRlbXBsYXRlPD4gaW5saW5lIGJvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGUoYm9vbCYgbikK
LXsKLSAgICByZXR1cm4gZGVjb2RlQm9vbChuKTsKLX0KLQotdGVtcGxhdGU8PiBpbmxpbmUgYm9v
bCBBcmd1bWVudERlY29kZXI6OmRlY29kZSh1aW50MTZfdCYgbikKLXsKLSAgICByZXR1cm4gZGVj
b2RlVUludDE2KG4pOwotfQotCi10ZW1wbGF0ZTw+IGlubGluZSBib29sIEFyZ3VtZW50RGVjb2Rl
cjo6ZGVjb2RlKHVpbnQzMl90JiBuKQotewotICAgIHJldHVybiBkZWNvZGVVSW50MzIobik7Ci19
Ci0KLXRlbXBsYXRlPD4gaW5saW5lIGJvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGUodWludDY0
X3QmIG4pCi17Ci0gICAgcmV0dXJuIGRlY29kZVVJbnQ2NChuKTsKLX0KLQotdGVtcGxhdGU8PiBp
bmxpbmUgYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29kZShpbnQzMl90JiBuKQotewotICAgIHJl
dHVybiBkZWNvZGVJbnQzMihuKTsKLX0KLQotdGVtcGxhdGU8PiBpbmxpbmUgYm9vbCBBcmd1bWVu
dERlY29kZXI6OmRlY29kZShpbnQ2NF90JiBuKQotewotICAgIHJldHVybiBkZWNvZGVJbnQ2NChu
KTsKLX0KLQotdGVtcGxhdGU8PiBpbmxpbmUgYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29kZShm
bG9hdCYgbikKLXsKLSAgICByZXR1cm4gZGVjb2RlRmxvYXQobik7Ci19Ci0KLXRlbXBsYXRlPD4g
aW5saW5lIGJvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGUoZG91YmxlJiBuKQotewotICAgIHJl
dHVybiBkZWNvZGVEb3VibGUobik7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIENvcmVJUEMKIAogI2Vu
ZGlmIC8vIEFyZ3VtZW50RGVjb2Rlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQy9Db25uZWN0aW9uLmNwcAppbmRleCBmMDIyMGEwZmZkZThmMmUxNWM1ZTE5M2FmOWY2OTUz
ZTg0ODUyM2FlLi43NGE5YTJlODkyZDc1YzgwZGI3ZmY0ZmE5MGU5OWQ3MzI3MTgzZDI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKQEAgLTYy
Miw3ICs2MjIsNyBAQCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXImIGRlY29kZQogICAgIEFTU0VSVChtZXNzYWdl
SUQuaXNTeW5jKCkpOwogCiAgICAgdWludDY0X3Qgc3luY1JlcXVlc3RJRCA9IDA7Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZVVJbnQ2NChzeW5jUmVxdWVzdElEKSB8fCAhc3luY1JlcXVlc3RJRCkg
eworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3luY1JlcXVlc3RJRCkgfHwgIXN5bmNSZXF1ZXN0
SUQpIHsKICAgICAgICAgLy8gV2UgcmVjZWl2ZWQgYW4gaW52YWxpZCBzeW5jIG1lc3NhZ2UuCiAg
ICAgICAgIGRlY29kZXIubWFya0ludmFsaWQoKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRGVjb2Rlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VEZWNvZGVyLmNwcAppbmRleCA0
MTZjZjFlZGJhZWY1MWI5YWIwZmNjNWVlMzhkYWI5Nzg3NDRjNzVmLi43N2EzMDYwOThhZTUxZDUz
ODA5MmU5ODlhNWY3Nzg0ZmFmM2ZhOWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL01lc3NhZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL01lc3NhZ2VEZWNvZGVyLmNwcApAQCAtNTYsNyArNTYsNyBAQCBNZXNzYWdl
RGVjb2Rlcjo6TWVzc2FnZURlY29kZXIoY29uc3QgRGF0YVJlZmVyZW5jZSYgYnVmZmVyLCBEZXF1
ZTxBdHRhY2htZW50PiYgYQogICAgIGlmICghZGVjb2RlKG1fbWVzc2FnZU5hbWUpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBkZWNvZGVVSW50NjQobV9kZXN0aW5hdGlvbklEKTsKKyAgICBkZWNv
ZGUobV9kZXN0aW5hdGlvbklEKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgQ29yZUlQQwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL1NoYXJlZE1lbW9yeU1hYy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcAppbmRleCA2MmVk
Mjk3ZjRlNjFmODVlYTc4MjU2MGE1ZDE1MWI0M2Y3YjY1MmFjLi5mMThjNTM0MDI3YzA4MDQwMzhh
YTVkZDMxODAzODVlODdkMjhjYWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9t
YWMvU2hhcmVkTWVtb3J5TWFjLmNwcApAQCAtNjgsNyArNjgsNyBAQCBib29sIFNoYXJlZE1lbW9y
eTo6SGFuZGxlOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBIYW5k
bGUmIGhhbgogICAgIEFTU0VSVCghaGFuZGxlLm1fc2l6ZSk7CiAKICAgICB1aW50NjRfdCBzaXpl
OwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlVUludDY0KHNpemUpKQorICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKHNpemUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBDb3JlSVBDOjpN
YWNoUG9ydCBtYWNoUG9ydDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dp
bi9TaGFyZWRNZW1vcnlXaW4uY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1NoYXJl
ZE1lbW9yeVdpbi5jcHAKaW5kZXggZjU5ZGJhNTA0YzYwYmQzMGU5ZTg4YmQ5NjM2ZTJkYTBjMjY1
NjIzMS4uMDdhODI4MjgzODE5ODlmOGIyMmY0ZmQ4NzJlZDQ5YmMyMzc3ODNiNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHAKQEAgLTkwLDE1
ICs5MCwxNSBAQCBib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpkZWNvZGUoQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBkZWNvZGVyLCBIYW5kbGUmIGhhbgogICAgIEFTU0VSVF9BUkcoaGFuZGxl
LCAhaGFuZGxlLm1fc2l6ZSk7CiAKICAgICB1aW50NjRfdCBzaXplOwotICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlVUludDY0KHNpemUpKQorICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHNpemUpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICB1aW50NjRfdCBzb3VyY2VIYW5kbGU7Ci0gICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50NjQoc291cmNlSGFuZGxlKSkKKyAgICBpZiAoIWRlY29k
ZXItPmRlY29kZShzb3VyY2VIYW5kbGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICB1
aW50MzJfdCBzb3VyY2VQSUQ7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50MzIoc291cmNl
UElEKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZSgzMihzb3VyY2VQSUQpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBIQU5ETEUgZHVwbGljYXRlZEhhbmRsZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGJk
YjkwNjVjNzU3ODk5NzNjNTQ1YWZhMWMzNzJlMWIwYjNhMDc5YjkuLmE0YjU4MjAxOGFkNzNhYzAy
NzAyZWQ4N2FhYjZjNTAzNWJlMGVjNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMjAyLDcgKzIwMiw3IEBAIHZvaWQg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlciwKIGJvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVy
YXRpb25zPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViQ29yZTo6RmlsdGVy
T3BlcmF0aW9ucyYgZmlsdGVycykKIHsKICAgICB1aW50MzJfdCBzaXplOwotICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlVUludDMyKHNpemUpKQorICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKDMyKHNp
emUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBWZWN0b3I8UmVmUHRyPEZpbHRlck9w
ZXJhdGlvbj4gPiYgb3BlcmF0aW9ucyA9IGZpbHRlcnMub3BlcmF0aW9ucygpOwpAQCAtMjE5LDcg
KzIxOSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zPjo6
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwKICAgICAgICAgY2FzZSBGaWx0ZXJPcGVy
YXRpb246OlNBVFVSQVRFOgogICAgICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6SFVFX1JPVEFU
RTogewogICAgICAgICAgICAgZG91YmxlIHZhbHVlOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGVEb3VibGUodmFsdWUpKQorICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
dmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGZpbHRl
ciA9IEJhc2ljQ29sb3JNYXRyaXhGaWx0ZXJPcGVyYXRpb246OmNyZWF0ZSh2YWx1ZSwgdHlwZSk7
CiAgICAgICAgICAgICBicmVhazsKQEAgLTIyOSw3ICsyMjksNyBAQCBib29sIEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRl
Y29kZXIsCiAgICAgICAgIGNhc2UgRmlsdGVyT3BlcmF0aW9uOjpDT05UUkFTVDoKICAgICAgICAg
Y2FzZSBGaWx0ZXJPcGVyYXRpb246Ok9QQUNJVFk6IHsKICAgICAgICAgICAgIGRvdWJsZSB2YWx1
ZTsKLSAgICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRG91YmxlKHZhbHVlKSkKKyAgICAg
ICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgICAgICBmaWx0ZXIgPSBCYXNpY0NvbXBvbmVudFRyYW5zZmVyRmls
dGVyT3BlcmF0aW9uOjpjcmVhdGUodmFsdWUsIHR5cGUpOwogICAgICAgICAgICAgYnJlYWs7CkBA
IC0yNDcsNyArMjQ3LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJh
dGlvbnM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLAogICAgICAgICAgICAgQ29s
b3IgY29sb3I7CiAgICAgICAgICAgICBpZiAoIUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNv
ZGUoZGVjb2RlciwgbG9jYXRpb24pKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlSW50MzIoc3RkRGV2aWF0aW9uKSkKKyAgICAg
ICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHN0ZERldmlhdGlvbikpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgaWYgKCFBcmd1bWVudENvZGVyPENvbG9yPjo6
ZGVjb2RlKGRlY29kZXIsIGNvbG9yKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC0yODAsNyArMjgwLDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJh
dGlvbnM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLAogICAgICAgICAgICAgUmVm
UHRyPEN1c3RvbUZpbHRlclByb2dyYW0+IHByb2dyYW0gPSBXZWJDdXN0b21GaWx0ZXJQcm9ncmFt
OjpjcmVhdGUodmVydGV4U2hhZGVyU3RyaW5nLCBmcmFnbWVudFNoYWRlclN0cmluZywgcHJvZ3Jh
bVR5cGUsIG1peFNldHRpbmdzLCBtZXNoVHlwZSk7CiAKICAgICAgICAgICAgIHVpbnQzMl90IHBh
cmFtZXRlcnNTaXplOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50MzIocGFy
YW1ldGVyc1NpemUpKQorICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoMzIocGFyYW1l
dGVyc1NpemUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAg
Q3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCBwYXJhbWV0ZXJzKHBhcmFtZXRlcnNTaXplKTsKQEAg
LTI5Niw3ICsyOTYsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0
aW9ucz46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsCiAgICAgICAgICAgICAgICAg
Y2FzZSBDdXN0b21GaWx0ZXJQYXJhbWV0ZXI6OkFSUkFZOiB7CiAgICAgICAgICAgICAgICAgICAg
IFJlZlB0cjxDdXN0b21GaWx0ZXJBcnJheVBhcmFtZXRlcj4gYXJyYXlQYXJhbWV0ZXIgPSBDdXN0
b21GaWx0ZXJBcnJheVBhcmFtZXRlcjo6Y3JlYXRlKG5hbWUpOwogICAgICAgICAgICAgICAgICAg
ICB1aW50MzJfdCBhcnJheVBhcmFtZXRlclNpemU7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlVUludDMyKGFycmF5UGFyYW1ldGVyU2l6ZSkpCisgICAgICAgICAgICAg
ICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKDMyKGFycmF5UGFyYW1ldGVyU2l6ZSkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIGRv
dWJsZSBhcnJheVBhcmFtZXRlclZhbHVlOwogICAgICAgICAgICAgICAgICAgICBmb3IgKHNpemVf
dCBqID0gMDsgaiA8IGFycmF5UGFyYW1ldGVyU2l6ZTsgKytqKSB7CkBAIC0zMTAsNyArMzEwLDcg
QEAgYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM+OjpkZWNvZGUo
QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLAogICAgICAgICAgICAgICAgIGNhc2UgQ3VzdG9tRmls
dGVyUGFyYW1ldGVyOjpOVU1CRVI6IHsKICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPEN1c3Rv
bUZpbHRlck51bWJlclBhcmFtZXRlcj4gbnVtYmVyUGFyYW1ldGVyID0gQ3VzdG9tRmlsdGVyTnVt
YmVyUGFyYW1ldGVyOjpjcmVhdGUobmFtZSk7CiAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90
IG51bWJlclBhcmFtZXRlclNpemU7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlVUludDMyKG51bWJlclBhcmFtZXRlclNpemUpKQorICAgICAgICAgICAgICAgICAgICBp
ZiAoIWRlY29kZXItPmRlY29kZSgzMihudW1iZXJQYXJhbWV0ZXJTaXplKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgZG91YmxlIG51
bWJlclBhcmFtZXRlclZhbHVlOwogICAgICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBqID0g
MDsgaiA8IG51bWJlclBhcmFtZXRlclNpemU7ICsraikgewpAQCAtNDIyLDcgKzQyMiw3IEBAIHZv
aWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1PcGVyYXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlciwgY29uc3QKIGJvb2wgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1PcGVyYXRp
b25zPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgVHJhbnNmb3JtT3BlcmF0aW9u
cyYgdHJhbnNmb3JtT3BlcmF0aW9ucykKIHsKICAgICB1aW50MzJfdCBvcGVyYXRpb25zU2l6ZTsK
LSAgICBpZiAoIWRlY29kZXItPmRlY29kZVVJbnQzMihvcGVyYXRpb25zU2l6ZSkpCisgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUoMzIob3BlcmF0aW9uc1NpemUpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9wZXJhdGlvbnNTaXplOyArK2kpIHsK
QEAgLTU2NCwxMyArNTY0LDEzIEBAIGJvb2wgZGVjb2RlVGltaW5nRnVuY3Rpb24oQXJndW1lbnRE
ZWNvZGVyKiBkZWNvZGVyLCBSZWZQdHI8VGltaW5nRnVuY3Rpb24+JiB0aW1pCiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIGNhc2UgVGltaW5nRnVuY3Rpb246OkN1YmljQmV6aWVyRnVuY3Rpb246
IHsKICAgICAgICAgZG91YmxlIHgxLCB5MSwgeDIsIHkyOwotICAgICAgICBpZiAoIWRlY29kZXIt
PmRlY29kZURvdWJsZSh4MSkpCisgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHgxKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVEb3Vi
bGUoeTEpKQorICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZSh5MSkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRG91YmxlKHgyKSkKKyAg
ICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoeDIpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZURvdWJsZSh5MikpCisgICAgICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKHkyKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAg
ICB0aW1pbmdGdW5jdGlvbiA9IEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb246OmNyZWF0ZSh4MSwg
eTEsIHgyLCB5Mik7CkBAIC01NzksOSArNTc5LDkgQEAgYm9vbCBkZWNvZGVUaW1pbmdGdW5jdGlv
bihBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4mIHRpbWkK
ICAgICBjYXNlIFRpbWluZ0Z1bmN0aW9uOjpTdGVwc0Z1bmN0aW9uOiB7CiAgICAgICAgIHVpbnQz
Ml90IG51bWJlck9mU3RlcHM7CiAgICAgICAgIGJvb2wgc3RlcEF0U3RhcnQ7Ci0gICAgICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlVUludDMyKG51bWJlck9mU3RlcHMpKQorICAgICAgICBpZiAoIWRl
Y29kZXItPmRlY29kZSgzMihudW1iZXJPZlN0ZXBzKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVCb29sKHN0ZXBBdFN0YXJ0KSkKKyAgICAg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc3RlcEF0U3RhcnQpKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgICAgIHRpbWluZ0Z1bmN0aW9uID0gU3RlcHNUaW1pbmdGdW5jdGlvbjo6
Y3JlYXRlKG51bWJlck9mU3RlcHMsIHN0ZXBBdFN0YXJ0KTsKQEAgLTY1NSwxOSArNjU1LDE5IEBA
IGJvb2wgQXJndW1lbnRDb2RlcjxHcmFwaGljc0xheWVyQW5pbWF0aW9uPjo6ZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgR3JhCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAo
IWRlY29kZXItPmRlY29kZUVudW0oc3RhdGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGVEb3VibGUoc3RhcnRUaW1lKSkKKyAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShzdGFydFRpbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNv
ZGVyLT5kZWNvZGVEb3VibGUocGF1c2VUaW1lKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShw
YXVzZVRpbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGVCb29sKGxpc3RzTWF0Y2gpKQorICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGxpc3RzTWF0Y2gp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKGRp
cmVjdGlvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29k
ZVVJbnQzMihmaWxsTW9kZSkpCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoMzIoZmlsbE1vZGUp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVEb3VibGUo
ZHVyYXRpb24pKQorICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGR1cmF0aW9uKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRG91YmxlKGl0ZXJhdGlvbkNv
dW50KSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShpdGVyYXRpb25Db3VudCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZVRpbWluZ0Z1bmN0aW9uKGRlY29kZXIsIHRp
bWluZ0Z1bmN0aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNjg1LDcgKzY4NSw3IEBA
IGJvb2wgQXJndW1lbnRDb2RlcjxHcmFwaGljc0xheWVyQW5pbWF0aW9uPjo6ZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgR3JhCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBLZXlm
cmFtZVZhbHVlTGlzdCBrZXlmcmFtZXMocHJvcGVydHkpOwogICAgIHVuc2lnbmVkIGtleWZyYW1l
c1NpemU7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50MzIoa2V5ZnJhbWVzU2l6ZSkpCisg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoMzIoa2V5ZnJhbWVzU2l6ZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwga2V5ZnJhbWVzU2l6ZTsgKytp
KSB7CiAgICAgICAgIGZsb2F0IGtleVRpbWU7CkBAIC02OTgsNyArNjk4LDcgQEAgYm9vbCBBcmd1
bWVudENvZGVyPEdyYXBoaWNzTGF5ZXJBbmltYXRpb24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVy
KiBkZWNvZGVyLCBHcmEKICAgICAgICAgc3dpdGNoIChwcm9wZXJ0eSkgewogICAgICAgICBjYXNl
IEFuaW1hdGVkUHJvcGVydHlPcGFjaXR5OiB7CiAgICAgICAgICAgICBmbG9hdCB2YWx1ZTsKLSAg
ICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRmxvYXQodmFsdWUpKQorICAgICAgICAgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUodmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgICAgIGtleWZyYW1lcy5pbnNlcnQobmV3IEZsb2F0QW5pbWF0aW9uVmFsdWUo
a2V5VGltZSwgdmFsdWUsIHRpbWluZ0Z1bmN0aW9uKSk7CiAgICAgICAgICAgICBicmVhazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcAppbmRleCBmMTRl
ZWEzYzcwOWMzYTdlNmUwMDdkMjJjOGE4ZDE4ZTQ3NWRjZjMzLi5mNDMyNDIwOWM1YTA2ZjIyODZm
OTVlMjRkNjgzM2QyNzY2MDcxMjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RGljdGlvbmFyeVBvcHVwSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rp
b25hcnlQb3B1cEluZm8uY3BwCkBAIC01OCw3ICs1OCw3IEBAIGJvb2wgRGljdGlvbmFyeVBvcHVw
SW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgRGljdGlvbmFy
eVBvCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGJvb2wgaGFkT3B0aW9uczsKLSAg
ICBpZiAoIWRlY29kZXItPmRlY29kZUJvb2woaGFkT3B0aW9ucykpCisgICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGUoaGFkT3B0aW9ucykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoaGFk
T3B0aW9ucykgewogICAgICAgICBpZiAoIUNvcmVJUEM6OmRlY29kZShkZWNvZGVyLCByZXN1bHQu
b3B0aW9ucykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VD
b2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCmluZGV4
IDc2MjM2MzU5YTllZWI2ODA4MDM3OTY3ZWEyZGJhNzdlZWEzZjc4MTYuLmIzMzcyMzQwNTYzMDYx
MjliMDE5Zjc5MTE1Y2E0M2NhNmU5NjE3MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2Vy
TWVzc2FnZUNvZGVycy5oCkBAIC0zODMsMTMgKzM4MywxMyBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgaWYgKHJlbmRlcmVyLT50eXBlKCkgIT0g
QVBJT2JqZWN0OjpUeXBlUmVuZGVyT2JqZWN0KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlQm9vbChpc1JlZmxlY3Rpb24pKQor
ICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaXNSZWZsZWN0aW9uKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZUJv
b2woaXNDbGlwcGluZykpCisgICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShpc0NsaXBw
aW5nKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIWRl
Y29kZXItPmRlY29kZUJvb2woaXNDbGlwcGVkKSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKGlzQ2xpcHBlZCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50MzIoY29tcG9zaXRpbmdMYXllclR5cGVBc1VJ
bnQzMikpCisgICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShjb21wb3NpdGluZ0xheWVy
VHlwZUFzVUludDMyKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAg
ICBpZiAoIWRlY29kZXItPmRlY29kZShhYnNvbHV0ZUJvdW5kaW5nQm94KSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2Yv
QXJndW1lbnRDb2RlcnNDRi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2YvQXJndW1lbnRD
b2RlcnNDRi5jcHAKaW5kZXggMWYwMWRlNGU5MDQ3ODE5MTUxYmQ0NjlmNGNmMzdkMjczZWU1YjVk
Ni4uODc2MWVkYTRjYWY5NmI1NWY1MjgwMWU0MTE4Yjc3YTlmN2U4NjRlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcApAQCAtMjU5LDcgKzI1OSw3
IEBAIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgQ0ZBcnJheVJlZiBhcnJh
eSkKIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUmV0YWluUHRyPENGQXJy
YXlSZWY+JiByZXN1bHQpCiB7CiAgICAgdWludDY0X3Qgc2l6ZTsKLSAgICBpZiAoIWRlY29kZXIt
PmRlY29kZVVJbnQ2NChzaXplKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShzaXplKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmV0YWluUHRyPENGTXV0YWJsZUFycmF5UmVmPiBh
cnJheShBZG9wdENGLCBDRkFycmF5Q3JlYXRlTXV0YWJsZSgwLCAwLCAma0NGVHlwZUFycmF5Q2Fs
bEJhY2tzKSk7CkBAIC0zMTcsNyArMzE3LDcgQEAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyLCBDRkRhdGVSZWYgZGF0ZSkKIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rlciog
ZGVjb2RlciwgUmV0YWluUHRyPENGRGF0ZVJlZj4mIHJlc3VsdCkKIHsKICAgICBkb3VibGUgYWJz
b2x1dGVUaW1lOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRG91YmxlKGFic29sdXRlVGltZSkp
CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoYWJzb2x1dGVUaW1lKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgcmVzdWx0LmFkb3B0Q0YoQ0ZEYXRlQ3JlYXRlKDAsIGFic29sdXRlVGlt
ZSkpOwpAQCAtMzUxLDcgKzM1MSw3IEBAIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlciwgQ0ZEaWN0aW9uYXJ5UmVmIGRpY3Rpb25hcnkpCiBib29sIGRlY29kZShBcmd1bWVudERl
Y29kZXIqIGRlY29kZXIsIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+JiByZXN1bHQpCiB7CiAg
ICAgdWludDY0X3Qgc2l6ZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZVVJbnQ2NChzaXplKSkK
KyAgICBpZiAoIWRlY29kZXItPmRlY29kZShzaXplKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgUmV0YWluUHRyPENGTXV0YWJsZURpY3Rpb25hcnlSZWY+IGRpY3Rpb25hcnkoQWRvcHRD
RiwgQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZSgwLCAwLCAma0NGVHlwZURpY3Rpb25hcnlLZXlD
YWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CkBAIC01MDcsNyAr
NTA3LDcgQEAgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBSZXRhaW5QdHI8
Q0ZVUkxSZWY+JiByZXN1bHQpCiB7CiAgICAgUmV0YWluUHRyPENGVVJMUmVmPiBiYXNlVVJMOwog
ICAgIGJvb2wgaGFzQmFzZVVSTDsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZUJvb2woaGFzQmFz
ZVVSTCkpCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaGFzQmFzZVVSTCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICBpZiAoaGFzQmFzZVVSTCkgewogICAgICAgICBpZiAoIWRlY29kZShk
ZWNvZGVyLCBiYXNlVVJMKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
QXJndW1lbnRDb2RlcnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0FyZ3VtZW50
Q29kZXJzTWFjLm1tCmluZGV4IGMwODE3ZDU1NmM4NzQ5ZDg0Y2RiMDE4NzNiYWQ5NzUyOTE5ZjAw
MTMuLmIwNGU0ZjM5ODY2ODBhY2U4MDkzNDgxMmFiMzlmM2I2ZGVhZjU1ZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Bcmd1bWVudENvZGVyc01hYy5tbQpAQCAtMzI3LDcgKzMy
Nyw3IEBAIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgTlNEaWN0aW9uYXJ5
ICpkaWN0aW9uYXJ5KQogYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBSZXRh
aW5QdHI8TlNEaWN0aW9uYXJ5PiYgcmVzdWx0KQogewogICAgIHVpbnQ2NF90IHNpemU7Ci0gICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50NjQoc2l6ZSkpCisgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGUoc2l6ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJldGFpblB0cjxOU011dGFi
bGVEaWN0aW9uYXJ5PiBkaWN0aW9uYXJ5KEFkb3B0TlMsIFtbTlNNdXRhYmxlRGljdGlvbmFyeSBh
bGxvY10gaW5pdFdpdGhDYXBhY2l0eTpzaXplXSk7CkBAIC00MTcsNyArNDE3LDcgQEAgdm9pZCBl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBOU0FycmF5ICphcnJheSkKIGJvb2wgZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUmV0YWluUHRyPE5TQXJyYXk+JiByZXN1bHQp
CiB7CiAgICAgdWludDY0X3Qgc2l6ZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZVVJbnQ2NChz
aXplKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShzaXplKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBhcnJheSA9IGFkb3B0TlMoW1tO
U011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpzaXplXSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0tleWNoYWluQXR0cmlidXRlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvS2V5Y2hhaW5BdHRyaWJ1dGUuY3BwCmluZGV4IDY3MmYxNWU1
ZDZkMDZiOTY0MWVmZTdlZjA3N2JlYzgzNWJmOTQ3Y2QuLjE4YmQ3ZDNmNmNmMmY3NGRkNmU1ZDRi
NzQ3MDJlNTYxZGRlZTNkY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
S2V5Y2hhaW5BdHRyaWJ1dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvS2V5
Y2hhaW5BdHRyaWJ1dGUuY3BwCkBAIC02MiwxMyArNjIsMTMgQEAgdm9pZCBlbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJLaXQ6OktleWNoYWluQXR0cmli
dXRlJgogYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJL
aXQ6OktleWNoYWluQXR0cmlidXRlJiBhdHRyaWJ1dGUpCiB7CiAgICAgdWludDMyX3QgdGFnOwot
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlVUludDMyKHRhZykpCisgICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGUodGFnKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYXR0cmlidXRlLnRhZyA9
IHRhZzsKIAogICAgIGJvb2wgZXhwZWN0RGF0YTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZUJv
b2woZXhwZWN0RGF0YSkpCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZXhwZWN0RGF0YSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBpZiAoZXhwZWN0RGF0YSAmJiAhQ29yZUlQ
Qzo6ZGVjb2RlKGRlY29kZXIsIGF0dHJpYnV0ZS5kYXRhKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbQppbmRleCBkMDAwNThkOGM5M2NkNjBk
ZDE3ODRlOGI2NWU4ZWZjMDZlY2EzMjJmLi44MTlhMWNmNzU4OTZjNWY1YWM1MTFlYTYyZTJhNzE5
MWUzMjI3MzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hF
eHRlbnNpb25NYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TYW5kYm94RXh0
ZW5zaW9uTWFjLm1tCkBAIC0xMzcsNyArMTM3LDcgQEAgdm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGVBcnJheTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY28K
IGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6OmRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGRlY29kZXIsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5JiBoYW5k
bGVzKQogewogICAgIHVpbnQ2NF90IHNpemU7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50
NjQoc2l6ZSkpCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc2l6ZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICBoYW5kbGVzLmFsbG9jYXRlKHNpemUpOwogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgc2l6ZTsgaSsrKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL1NlY0l0ZW1SZXF1ZXN0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Nl
Y0l0ZW1SZXF1ZXN0RGF0YS5jcHAKaW5kZXggNzk3ZTEzMDgwNzIyNTIzYzgxZWMwMmVjODAwN2Yy
MGJiMTI1MDkyNi4uYmU5ZjJhMGYyOTcxNjM0Y2M2MDYxMmE4Yjg1NGY3ZWEzZDE4Zjg2YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlcXVlc3REYXRhLmNwcApA
QCAtNjksNyArNjksNyBAQCBib29sIFNlY0l0ZW1SZXF1ZXN0RGF0YTo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgU2VjSXRlbVJlcXVlcwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgCiAgICAgYm9vbCBleHBlY3RBdHRyaWJ1dGVzOwotICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlQm9vbChleHBlY3RBdHRyaWJ1dGVzKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29k
ZShleHBlY3RBdHRyaWJ1dGVzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIGlm
IChleHBlY3RBdHRyaWJ1dGVzICYmICFDb3JlSVBDOjpkZWNvZGUoZGVjb2Rlciwgc2VjSXRlbVJl
cXVlc3REYXRhLm1fYXR0cmlidXRlc1RvTWF0Y2gpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5jcHAKaW5kZXggODlkY2E3OTYzMjU0NzI3OWU5
NDFjMGZhMTEwYTNkMTQ3YTM3YTliMi4uOTNkYmUyYjE0ZDY3NmRmNzU4Mjc2ODc2MjZlNWIxM2Nm
NmQxN2VhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVz
cG9uc2VEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXNw
b25zZURhdGEuY3BwCkBAIC01MiwxMyArNTIsMTMgQEAgdm9pZCBTZWNJdGVtUmVzcG9uc2VEYXRh
OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogYm9vbCBT
ZWNJdGVtUmVzcG9uc2VEYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNv
ZGVyLCBTZWNJdGVtUmVzcG9uc2VEYXRhJiBzZWNJdGVtUmVzcG9uc2VEYXRhKQogewogICAgIGlu
dDY0X3QgcmVzdWx0Q29kZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZUludDY0KHJlc3VsdENv
ZGUpKQorICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdENvZGUpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgc2VjSXRlbVJlc3BvbnNlRGF0YS5tX3Jlc3VsdENvZGUgPSAoT1NTdGF0
dXMpcmVzdWx0Q29kZTsKICAgICBzZWNJdGVtUmVzcG9uc2VEYXRhLm1fcmVzdWx0T2JqZWN0ID0g
MDsKIAogICAgIGJvb2wgZXhwZWN0UmVzdWx0T2JqZWN0OwotICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlQm9vbChleHBlY3RSZXN1bHRPYmplY3QpKQorICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGV4
cGVjdFJlc3VsdE9iamVjdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChleHBl
Y3RSZXN1bHRPYmplY3QgJiYgIUNvcmVJUEM6OmRlY29kZShkZWNvZGVyLCBzZWNJdGVtUmVzcG9u
c2VEYXRhLm1fcmVzdWx0T2JqZWN0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YS5jcHAKaW5kZXggNGY2ZDI5YTUxNWE3
YjFiM2RiZmUzMjE4NDRiY2M2NGNiODA1MjE1NS4uMzI5MTUyOTlkMzBkYzdkZGI4ZDAyMWJiN2E2
NmFmMGM0YzVlNjVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNL
ZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9TZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YS5jcHAKQEAgLTE0NSwxNCArMTQ1LDE0IEBAIGJv
b2wgU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGE6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGRlY29kZXIsIFNlY0tlCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGJvb2wg
aGFzS2V5Y2hhaW5JdGVtOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlQm9vbChoYXNLZXljaGFp
bkl0ZW0pKQorICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGhhc0tleWNoYWluSXRlbSkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChoYXNLZXljaGFpbkl0ZW0gJiYgIUNvcmVJUEM6
OmRlY29kZShkZWNvZGVyLCBzZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YS5tX2tleWNoYWluSXRl
bSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICB1aW50MzJfdCBhdHRyaWJ1dGVD
b3VudDsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZVVJbnQzMihhdHRyaWJ1dGVDb3VudCkpCisg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoYXR0cmlidXRlQ291bnQpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgCiAgICAgQVNTRVJUKHNlY0tleWNoYWluSXRlbVJlcXVlc3REYXRhLm1fa2V5
Y2hhaW5BdHRyaWJ1dGVzLmlzRW1wdHkoKSk7CkBAIC0xNjYsNyArMTY2LDcgQEAgYm9vbCBTZWNL
ZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
ZGVjb2RlciwgU2VjS2UKICAgICB9CiAgICAgCiAgICAgdWludDY0X3QgaXRlbUNsYXNzOwotICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlVUludDY0KGl0ZW1DbGFzcykpCisgICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGUoaXRlbUNsYXNzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIHNl
Y0tleWNoYWluSXRlbVJlcXVlc3REYXRhLm1faXRlbUNsYXNzID0gc3RhdGljX2Nhc3Q8U2VjSXRl
bUNsYXNzPihpdGVtQ2xhc3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9TZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9TZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEuY3BwCmluZGV4IDFkZWE2M2JlYTJmOTY1
ZGVmOGJmZjBiM2NhOWVlMzdhM2Y5ZmQyNTAuLjZiOTJmZGUzYzU3NzU3ZTc5NTNlZWVhNzY3MDc2
NGU1MTk4ODllZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5
Y2hhaW5JdGVtUmVzcG9uc2VEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1NlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YS5jcHAKQEAgLTgzLDEzICs4MywxMyBAQCB2b2lk
IFNlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlcikgY29ucwogYm9vbCBTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGE6OmRl
Y29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFNlY0tleWNoYWluSXRlbVJl
c3BvbnNlRGF0YSYgc2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRhKQogewogICAgIGludDY0X3Qg
cmVzdWx0Q29kZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZUludDY0KHJlc3VsdENvZGUpKQor
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdENvZGUpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgdWludDMyX3QgaXRlbUNsYXNzOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlVUlu
dDMyKGl0ZW1DbGFzcykpCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaXRlbUNsYXNzKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHVpbnQzMl90IGF0dHJpYnV0ZUNvdW50OwotICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlVUludDMyKGF0dHJpYnV0ZUNvdW50KSkKKyAgICBpZiAoIWRlY29k
ZXItPmRlY29kZShhdHRyaWJ1dGVDb3VudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IHNlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YS5tX3Jlc3VsdENvZGUgPSAoT1NTdGF0dXMpcmVz
dWx0Q29kZTsKQEAgLTEwNSwxNCArMTA1LDE0IEBAIGJvb2wgU2VjS2V5Y2hhaW5JdGVtUmVzcG9u
c2VEYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBTZWNLCiAg
ICAgfQogCiAgICAgYm9vbCBleHBlY3REYXRhOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlQm9v
bChleHBlY3REYXRhKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShleHBlY3REYXRhKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKGV4cGVjdERhdGEgJiYgIUNvcmVJUEM6OmRl
Y29kZShkZWNvZGVyLCBzZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEubV9kYXRhKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBleHBlY3RJdGVtOwotICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlQm9vbChleHBlY3RJdGVtKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShleHBl
Y3RJdGVtKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKGV4cGVjdEl0ZW0gJiYg
IUNvcmVJUEM6OmRlY29kZShkZWNvZGVyLCBzZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEubV9r
ZXljaGFpbkl0ZW0pKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L0FyZ3Vt
ZW50Q29kZXJzUXQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L0FyZ3VtZW50Q29kZXJz
UXQuY3BwCmluZGV4IDllYzE5ZDMyYTU2YzY0ODVmYjQzMjhhZmM2MDc4YTIwODY2MWFlMTYuLjMx
YzkxMTA0YzQyOTY4YjIyYmJjNTRlYTc0ZjUxZjc5MjRiODlhNzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9xdC9Bcmd1bWVudENvZGVyc1F0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvcXQvQXJndW1lbnRDb2RlcnNRdC5jcHAKQEAgLTczLDcgKzczLDcgQEAgYm9v
bCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkRyYWdEYXRhPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciogZGVjb2RlciwgRHJhZ0RhdGEKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBo
YXNQbGF0Zm9ybURhdGE7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVCb29sKGhhc1BsYXRmb3Jt
RGF0YSkpCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaGFzUGxhdGZvcm1EYXRhKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUU1pbWVEYXRhKiBtaW1lRGF0YSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvUXROZXR3b3JrUmVwbHlEYXRhLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9RdE5ldHdvcmtSZXBseURhdGEuY3BwCmluZGV4IGIxMWRj
MmY2M2ZjY2UyMDMxOWU3MWM5OWNhMmZiOGE5MGU0ZTg5ZDAuLmFmY2VhZGQ0ZGUyZjMzOGNiMGUx
ZmY3NzRkNjI1NDg2ZmI0NTEwZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9x
dC9RdE5ldHdvcmtSZXBseURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9R
dE5ldHdvcmtSZXBseURhdGEuY3BwCkBAIC01Niw3ICs1Niw3IEBAIGJvb2wgUXROZXR3b3JrUmVw
bHlEYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBRdE5ldHdv
cmtSZXBsCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXItPmRlY29kZShk
ZXN0aW5hdGlvbi5tX2NvbnRlbnRUeXBlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlVUludDY0KGRlc3RpbmF0aW9uLm1fY29udGVudExlbmd0aCkpCisg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZGVzdGluYXRpb24ubV9jb250ZW50TGVuZ3RoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGRlc3RpbmF0aW9u
Lm1fcmVwbHlVdWlkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RlY29kZXJBZGFwdGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EZWNvZGVyQWRhcHRlci5jcHAKaW5kZXggNDE3OWM5
ODJjNTUyMTFkMjRmMTNmZGNkMmYwOTE4OTI2YjAxMjI3MS4uZWYzOGE2Zjc3ZjA4ZWM2ZjdlNzBm
MDllNjM1NjAyMGQ3NDIyOGI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RlY29kZXJBZGFwdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRGVjb2RlckFkYXB0ZXIuY3BwCkBAIC01NCw0MiArNTQsNDIgQEAgYm9vbCBE
ZWNvZGVyQWRhcHRlcjo6ZGVjb2RlQnl0ZXMoVmVjdG9yPHVpbnQ4X3Q+JiBieXRlcykKIAogYm9v
bCBEZWNvZGVyQWRhcHRlcjo6ZGVjb2RlQm9vbChib29sJiB2YWx1ZSkKIHsKLSAgICByZXR1cm4g
bV9kZWNvZGVyLT5kZWNvZGVCb29sKHZhbHVlKTsKKyAgICByZXR1cm4gbV9kZWNvZGVyLT5kZWNv
ZGUodmFsdWUpOwogfQogCiBib29sIERlY29kZXJBZGFwdGVyOjpkZWNvZGVVSW50MTYodWludDE2
X3QmIHZhbHVlKQogewotICAgIHJldHVybiBtX2RlY29kZXItPmRlY29kZVVJbnQxNih2YWx1ZSk7
CisgICAgcmV0dXJuIG1fZGVjb2Rlci0+ZGVjb2RlKHZhbHVlKTsKIH0KIAogYm9vbCBEZWNvZGVy
QWRhcHRlcjo6ZGVjb2RlVUludDMyKHVpbnQzMl90JiB2YWx1ZSkKIHsKLSAgICByZXR1cm4gbV9k
ZWNvZGVyLT5kZWNvZGVVSW50MzIodmFsdWUpOworICAgIHJldHVybiBtX2RlY29kZXItPmRlY29k
ZSh2YWx1ZSk7CiB9CiAKIGJvb2wgRGVjb2RlckFkYXB0ZXI6OmRlY29kZVVJbnQ2NCh1aW50NjRf
dCYgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIG1fZGVjb2Rlci0+ZGVjb2RlVUludDY0KHZhbHVlKTsK
KyAgICByZXR1cm4gbV9kZWNvZGVyLT5kZWNvZGUodmFsdWUpOwogfQogCiBib29sIERlY29kZXJB
ZGFwdGVyOjpkZWNvZGVJbnQzMihpbnQzMl90JiB2YWx1ZSkKIHsKLSAgICByZXR1cm4gbV9kZWNv
ZGVyLT5kZWNvZGVJbnQzMih2YWx1ZSk7CisgICAgcmV0dXJuIG1fZGVjb2Rlci0+ZGVjb2RlKHZh
bHVlKTsKIH0KIAogYm9vbCBEZWNvZGVyQWRhcHRlcjo6ZGVjb2RlSW50NjQoaW50NjRfdCYgdmFs
dWUpCiB7Ci0gICAgcmV0dXJuIG1fZGVjb2Rlci0+ZGVjb2RlSW50NjQodmFsdWUpOworICAgIHJl
dHVybiBtX2RlY29kZXItPmRlY29kZSh2YWx1ZSk7CiB9CiAKIGJvb2wgRGVjb2RlckFkYXB0ZXI6
OmRlY29kZUZsb2F0KGZsb2F0JiB2YWx1ZSkKIHsKLSAgICByZXR1cm4gbV9kZWNvZGVyLT5kZWNv
ZGVGbG9hdCh2YWx1ZSk7CisgICAgcmV0dXJuIG1fZGVjb2Rlci0+ZGVjb2RlKHZhbHVlKTsKIH0K
IAogYm9vbCBEZWNvZGVyQWRhcHRlcjo6ZGVjb2RlRG91YmxlKGRvdWJsZSYgdmFsdWUpCiB7Ci0g
ICAgcmV0dXJuIG1fZGVjb2Rlci0+ZGVjb2RlRG91YmxlKHZhbHVlKTsKKyAgICByZXR1cm4gbV9k
ZWNvZGVyLT5kZWNvZGUodmFsdWUpOwogfQogCiBib29sIERlY29kZXJBZGFwdGVyOjpkZWNvZGVT
dHJpbmcoU3RyaW5nJiB2YWx1ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185374</attachid>
            <date>2013-01-29 18:52:19 -0800</date>
            <delta_ts>2013-01-29 19:20:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102013-20130129184905.patch</filename>
            <type>text/plain</type>
            <size>28873</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MTIwNSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYxIEBACisyMDEzLTAxLTI5ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVwbGFjZSB1bm5lY2Vzc2FyeSBBcmd1
bWVudERlY29kZXIgbWVtYmVyIGZ1bmN0aW9ucyB3aXRoIGRlY29kZSBvdmVybG9hZHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjAxMworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vQ29y
ZUlQQy9Bcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChDb3JlSVBDOjo6OmRlY29kZSk6Cisg
ICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFBs
YXRmb3JtL0NvcmVJUEMvQXJndW1lbnREZWNvZGVyLmNwcDoKKyAgICAgICAgKENvcmVJUEM6OkFy
Z3VtZW50RGVjb2Rlcjo6ZGVjb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkpOgorICAgICAgICAo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyOjpkZWNvZGUpOgorICAgICAgICAqIFBsYXRmb3JtL0Nv
cmVJUEMvQXJndW1lbnREZWNvZGVyLmg6CisgICAgICAgIChBcmd1bWVudERlY29kZXIpOgorICAg
ICAgICAoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyOjpkZWNvZGVFbnVtKToKKyAgICAgICAgKENv
cmVJUEMpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHA6CisgICAg
ICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpkaXNwYXRjaFN5bmNNZXNzYWdlKToKKyAgICAgICAg
KiBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyOjpNZXNzYWdlRGVjb2Rlcik6CisgICAgICAgICogUGxhdGZvcm0vbWFj
L1NoYXJlZE1lbW9yeU1hYy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFu
ZGxlOjpkZWNvZGUpOgorICAgICAgICAqIFBsYXRmb3JtL3dpbi9TaGFyZWRNZW1vcnlXaW4uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1l
bnRDb2RlcnMuY3BwOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNvZGUpOgorICAgICAgICAoQ29y
ZUlQQzo6ZGVjb2RlVGltaW5nRnVuY3Rpb24pOgorICAgICAgICAqIFNoYXJlZC9EaWN0aW9uYXJ5
UG9wdXBJbmZvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGljdGlvbmFyeVBvcHVwSW5mbzo6ZGVj
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lc3NhZ2VEZWNvZGVyOjpiYXNlRGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
Y2YvQXJndW1lbnRDb2RlcnNDRi5jcHA6CisgICAgICAgIChDb3JlSVBDOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMubW06CisgICAgICAgIChDb3JlSVBD
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoQ29kZXJzLm1t
OgorICAgICAgICAoV2ViS2l0OjpPYmpDT2JqZWN0R3JhcGhEZWNvZGVyOjpiYXNlRGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9tYWMvU2VjSXRlbVJlcXVlc3REYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2Vj
SXRlbVJlcXVlc3REYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRlbVJl
c3BvbnNlRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNlY0l0ZW1SZXNwb25zZURhdGE6OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL3F0L0FyZ3VtZW50Q29kZXJzUXQuY3BwOgorICAgICAg
ICAoQ29yZUlQQzo6OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9xdC9RdE5ldHdvcmtSZXBs
eURhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpRdE5ldHdvcmtSZXBseURhdGE6OmRlY29kZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RlY29kZXJBZGFwdGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6RGVjb2RlckFkYXB0ZXI6OmRlY29kZUJvb2wpOgorICAgICAgICAoV2ViS2l0
OjpEZWNvZGVyQWRhcHRlcjo6ZGVjb2RlVUludDE2KToKKyAgICAgICAgKFdlYktpdDo6RGVjb2Rl
ckFkYXB0ZXI6OmRlY29kZVVJbnQzMik6CisgICAgICAgIChXZWJLaXQ6OkRlY29kZXJBZGFwdGVy
OjpkZWNvZGVVSW50NjQpOgorICAgICAgICAoV2ViS2l0OjpEZWNvZGVyQWRhcHRlcjo6ZGVjb2Rl
SW50MzIpOgorICAgICAgICAoV2ViS2l0OjpEZWNvZGVyQWRhcHRlcjo6ZGVjb2RlSW50NjQpOgor
ICAgICAgICAoV2ViS2l0OjpEZWNvZGVyQWRhcHRlcjo6ZGVjb2RlRmxvYXQpOgorICAgICAgICAo
V2ViS2l0OjpEZWNvZGVyQWRhcHRlcjo6ZGVjb2RlRG91YmxlKToKKwogMjAxMy0wMS0yOSAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtXSzJdIEFk
anVzdCBtaXNzaW5nIE1lc3NhZ2VJRCByZW1vdmFscyB0byBmaXggYnVpbGQgYnJlYWtzCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXJz
LmNwcAkocmV2aXNpb24gMTQxMTg5KQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9Bcmd1bWVudENvZGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzOSw3ICsxMzksNyBAQCBi
b29sIEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZGVjb2RlKEFyZ3VtCiAKICAgICBib29sIGlzOEJp
dDsKIAotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlQm9vbChpczhCaXQpKQorICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKGlzOEJpdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChp
czhCaXQpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29k
ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1
bWVudENvZGVycy5oCShyZXZpc2lvbiAxNDExODkpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL0FyZ3VtZW50Q29kZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNiw3ICsxMDYs
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgVmVjdG9yQXJndW1lCiAgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgVmVjdG9yPFQ+JiB2ZWN0b3Ip
CiAgICAgewogICAgICAgICB1aW50NjRfdCBzaXplOwotICAgICAgICBpZiAoIWRlY29kZXItPmRl
Y29kZVVJbnQ2NChzaXplKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc2l6ZSkpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgVmVjdG9yPFQ+IHRtcDsKQEAgLTEz
NCw3ICsxMzQsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgVmVjdG9yQXJndW1lCiAg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgVmVjdG9yPFQ+
JiB2ZWN0b3IpCiAgICAgewogICAgICAgICB1aW50NjRfdCBzaXplOwotICAgICAgICBpZiAoIWRl
Y29kZXItPmRlY29kZVVJbnQ2NChzaXplKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
c2l6ZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgLy8gU2luY2Ugd2Ug
a25vdyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZWxlbWVudHMsIHdlIGNhbiBhbGxvY2F0ZSB0aGUg
dmVjdG9yIGluCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50
RGVjb2Rlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9Bcmd1bWVudERlY29kZXIuY3BwCShyZXZpc2lvbiAxNDExODkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExNiw3ICsxMTYsNyBAQCBib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlRml4ZWRMZW5ndGhE
CiBib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoRGF0
YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSkKIHsKICAgICB1aW50NjRfdCBzaXplOwotICAgIGlm
ICghZGVjb2RlVUludDY0KHNpemUpKQorICAgIGlmICghZGVjb2RlKHNpemUpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgaWYgKCFhbGlnbkJ1ZmZlclBvc2l0aW9uKDEsIHNpemUp
KQpAQCAtMTI5LDcgKzEyOSw3IEBAIGJvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGVWYXJpYWJs
ZUxlbmcKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29k
ZUJvb2woYm9vbCYgcmVzdWx0KQorYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29kZShib29sJiBy
ZXN1bHQpCiB7CiAgICAgaWYgKCFhbGlnbkJ1ZmZlclBvc2l0aW9uKHNpemVvZihyZXN1bHQpLCBz
aXplb2YocmVzdWx0KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEzOSw3ICsxMzksNyBA
QCBib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlQm9vbChib29sJiByCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGVVSW50OCh1aW50OF90JiByZXN1
bHQpCitib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlKHVpbnQ4X3QmIHJlc3VsdCkKIHsKICAg
ICBpZiAoIWFsaWduQnVmZmVyUG9zaXRpb24oc2l6ZW9mKHJlc3VsdCksIHNpemVvZihyZXN1bHQp
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTQ5LDcgKzE0OSw3IEBAIGJvb2wgQXJndW1l
bnREZWNvZGVyOjpkZWNvZGVVSW50OCh1aW50OF8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBBcmd1bWVudERlY29kZXI6OmRlY29kZVVJbnQxNih1aW50MTZfdCYgcmVzdWx0KQorYm9vbCBB
cmd1bWVudERlY29kZXI6OmRlY29kZSh1aW50MTZfdCYgcmVzdWx0KQogewogICAgIGlmICghYWxp
Z25CdWZmZXJQb3NpdGlvbihzaXplb2YocmVzdWx0KSwgc2l6ZW9mKHJlc3VsdCkpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0xNTksNyArMTU5LDcgQEAgYm9vbCBBcmd1bWVudERlY29kZXI6
OmRlY29kZVVJbnQxNih1aW50MQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEFyZ3VtZW50
RGVjb2Rlcjo6ZGVjb2RlVUludDMyKHVpbnQzMl90JiByZXN1bHQpCitib29sIEFyZ3VtZW50RGVj
b2Rlcjo6ZGVjb2RlKHVpbnQzMl90JiByZXN1bHQpCiB7CiAgICAgaWYgKCFhbGlnbkJ1ZmZlclBv
c2l0aW9uKHNpemVvZihyZXN1bHQpLCBzaXplb2YocmVzdWx0KSkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTE2OSw3ICsxNjksNyBAQCBib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlVUlu
dDMyKHVpbnQzCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgQXJndW1lbnREZWNvZGVyOjpk
ZWNvZGVVSW50NjQodWludDY0X3QmIHJlc3VsdCkKK2Jvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNv
ZGUodWludDY0X3QmIHJlc3VsdCkKIHsKICAgICBpZiAoIWFsaWduQnVmZmVyUG9zaXRpb24oc2l6
ZW9mKHJlc3VsdCksIHNpemVvZihyZXN1bHQpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MTc5LDcgKzE3OSw3IEBAIGJvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGVVSW50NjQodWludDYK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29kZUludDMy
KGludDMyX3QmIHJlc3VsdCkKK2Jvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGUoaW50MzJfdCYg
cmVzdWx0KQogewogICAgIGlmICghYWxpZ25CdWZmZXJQb3NpdGlvbihzaXplb2YocmVzdWx0KSwg
c2l6ZW9mKHJlc3VsdCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xODksNyArMTg5LDcg
QEAgYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29kZUludDMyKGludDMyXwogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlSW50NjQoaW50NjRfdCYgcmVz
dWx0KQorYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29kZShpbnQ2NF90JiByZXN1bHQpCiB7CiAg
ICAgaWYgKCFhbGlnbkJ1ZmZlclBvc2l0aW9uKHNpemVvZihyZXN1bHQpLCBzaXplb2YocmVzdWx0
KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE5OSw3ICsxOTksNyBAQCBib29sIEFyZ3Vt
ZW50RGVjb2Rlcjo6ZGVjb2RlSW50NjQoaW50NjRfCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGVGbG9hdChmbG9hdCYgcmVzdWx0KQorYm9vbCBBcmd1
bWVudERlY29kZXI6OmRlY29kZShmbG9hdCYgcmVzdWx0KQogewogICAgIGlmICghYWxpZ25CdWZm
ZXJQb3NpdGlvbihzaXplb2YocmVzdWx0KSwgc2l6ZW9mKHJlc3VsdCkpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC0yMDksNyArMjA5LDcgQEAgYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29k
ZUZsb2F0KGZsb2F0JgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEFyZ3VtZW50RGVjb2Rl
cjo6ZGVjb2RlRG91YmxlKGRvdWJsZSYgcmVzdWx0KQorYm9vbCBBcmd1bWVudERlY29kZXI6OmRl
Y29kZShkb3VibGUmIHJlc3VsdCkKIHsKICAgICBpZiAoIWFsaWduQnVmZmVyUG9zaXRpb24oc2l6
ZW9mKHJlc3VsdCksIHNpemVvZihyZXN1bHQpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRl
eDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudERlY29kZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rl
ci5oCShyZXZpc2lvbiAxNDExODkpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L0FyZ3VtZW50RGVjb2Rlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MiwyMiArNTIsMjIgQEAgcHVi
bGljOgogICAgIC8vIFRoZSBkYXRhIGluIHRoZSBkYXRhIHJlZmVyZW5jZSBoZXJlIHdpbGwgb25s
eSBiZSB2YWxpZCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBBcmd1bWVudERlY29kZXIgb2JqZWN0
LgogICAgIGJvb2wgZGVjb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoRGF0YVJlZmVyZW5jZSYp
OwogCi0gICAgYm9vbCBkZWNvZGVCb29sKGJvb2wmKTsKLSAgICBib29sIGRlY29kZVVJbnQ4KHVp
bnQ4X3QmKTsKLSAgICBib29sIGRlY29kZVVJbnQxNih1aW50MTZfdCYpOwotICAgIGJvb2wgZGVj
b2RlVUludDMyKHVpbnQzMl90Jik7Ci0gICAgYm9vbCBkZWNvZGVVSW50NjQodWludDY0X3QmKTsK
LSAgICBib29sIGRlY29kZUludDMyKGludDMyX3QmKTsKLSAgICBib29sIGRlY29kZUludDY0KGlu
dDY0X3QmKTsKLSAgICBib29sIGRlY29kZUZsb2F0KGZsb2F0Jik7Ci0gICAgYm9vbCBkZWNvZGVE
b3VibGUoZG91YmxlJik7CisgICAgYm9vbCBkZWNvZGUoYm9vbCYpOworICAgIGJvb2wgZGVjb2Rl
KHVpbnQ4X3QmKTsKKyAgICBib29sIGRlY29kZSh1aW50MTZfdCYpOworICAgIGJvb2wgZGVjb2Rl
KHVpbnQzMl90Jik7CisgICAgYm9vbCBkZWNvZGUodWludDY0X3QmKTsKKyAgICBib29sIGRlY29k
ZShpbnQzMl90Jik7CisgICAgYm9vbCBkZWNvZGUoaW50NjRfdCYpOworICAgIGJvb2wgZGVjb2Rl
KGZsb2F0Jik7CisgICAgYm9vbCBkZWNvZGUoZG91YmxlJik7CiAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBib29sIGRlY29kZUVudW0oVCYgcmVzdWx0KQogICAgIHsKICAgICAgICAgQ09NUElM
RV9BU1NFUlQoc2l6ZW9mKFQpIDw9IHNpemVvZih1aW50NjRfdCksIGVudW1fdHlwZV9tdXN0X25v
dF9iZV9sYXJnZXJfdGhhbl82NF9iaXRzKTsKIAogICAgICAgICB1aW50NjRfdCB2YWx1ZTsKLSAg
ICAgICAgaWYgKCFkZWNvZGVVSW50NjQodmFsdWUpKQorICAgICAgICBpZiAoIWRlY29kZSh2YWx1
ZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAogICAgICAgICByZXN1bHQg
PSBzdGF0aWNfY2FzdDxUPih2YWx1ZSk7CkBAIC0xMTgsNTEgKzExOCw2IEBAIHByaXZhdGU6CiAg
ICAgRGVxdWU8QXR0YWNobWVudD4gbV9hdHRhY2htZW50czsKIH07CiAKLXRlbXBsYXRlPD4gaW5s
aW5lIGJvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGUoYm9vbCYgbikKLXsKLSAgICByZXR1cm4g
ZGVjb2RlQm9vbChuKTsKLX0KLQotdGVtcGxhdGU8PiBpbmxpbmUgYm9vbCBBcmd1bWVudERlY29k
ZXI6OmRlY29kZSh1aW50OF90JiBuKQotewotICAgIHJldHVybiBkZWNvZGVVSW50OChuKTsKLX0K
LQotdGVtcGxhdGU8PiBpbmxpbmUgYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29kZSh1aW50MTZf
dCYgbikKLXsKLSAgICByZXR1cm4gZGVjb2RlVUludDE2KG4pOwotfQotCi10ZW1wbGF0ZTw+IGlu
bGluZSBib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlKHVpbnQzMl90JiBuKQotewotICAgIHJl
dHVybiBkZWNvZGVVSW50MzIobik7Ci19Ci0KLXRlbXBsYXRlPD4gaW5saW5lIGJvb2wgQXJndW1l
bnREZWNvZGVyOjpkZWNvZGUodWludDY0X3QmIG4pCi17Ci0gICAgcmV0dXJuIGRlY29kZVVJbnQ2
NChuKTsKLX0KLQotdGVtcGxhdGU8PiBpbmxpbmUgYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29k
ZShpbnQzMl90JiBuKQotewotICAgIHJldHVybiBkZWNvZGVJbnQzMihuKTsKLX0KLQotdGVtcGxh
dGU8PiBpbmxpbmUgYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29kZShpbnQ2NF90JiBuKQotewot
ICAgIHJldHVybiBkZWNvZGVJbnQ2NChuKTsKLX0KLQotdGVtcGxhdGU8PiBpbmxpbmUgYm9vbCBB
cmd1bWVudERlY29kZXI6OmRlY29kZShmbG9hdCYgbikKLXsKLSAgICByZXR1cm4gZGVjb2RlRmxv
YXQobik7Ci19Ci0KLXRlbXBsYXRlPD4gaW5saW5lIGJvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNv
ZGUoZG91YmxlJiBuKQotewotICAgIHJldHVybiBkZWNvZGVEb3VibGUobik7Ci19Ci0KIH0gLy8g
bmFtZXNwYWNlIENvcmVJUEMKIAogI2VuZGlmIC8vIEFyZ3VtZW50RGVjb2Rlcl9oCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAJKHJldmlz
aW9uIDE0MTE4OSkKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlv
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4Nyw3ICs2ODcsNyBAQCB2b2lkIENvbm5lY3Rpb246
OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzCiAgICAgQVNTRVJUKGRlY29kZXIuaXNTeW5jTWVzc2Fn
ZSgpKTsKIAogICAgIHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQgPSAwOwotICAgIGlmICghZGVjb2Rl
ci5kZWNvZGVVSW50NjQoc3luY1JlcXVlc3RJRCkgfHwgIXN5bmNSZXF1ZXN0SUQpIHsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHN5bmNSZXF1ZXN0SUQpIHx8ICFzeW5jUmVxdWVzdElEKSB7CiAg
ICAgICAgIC8vIFdlIHJlY2VpdmVkIGFuIGludmFsaWQgc3luYyBtZXNzYWdlLgogICAgICAgICBk
ZWNvZGVyLm1hcmtJbnZhbGlkKCk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZURlY29kZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZURlY29kZXIuY3BwCShyZXZpc2lv
biAxNDExODkpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VEZWNv
ZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQCBNZXNzYWdlRGVjb2Rlcjo6
fk1lc3NhZ2VEZWNvZGVyKCkKIE1lc3NhZ2VEZWNvZGVyOjpNZXNzYWdlRGVjb2Rlcihjb25zdCBE
YXRhUmVmZXJlbmNlJiBidWZmZXIsIERlcXVlPEF0dGFjaG1lbnQ+JiBhdHRhY2htZW50cykKICAg
ICA6IEFyZ3VtZW50RGVjb2RlcihidWZmZXIuZGF0YSgpLCBidWZmZXIuc2l6ZSgpLCBhdHRhY2ht
ZW50cykKIHsKLSAgICBpZiAoIWRlY29kZVVJbnQ4KG1fbWVzc2FnZUZsYWdzKSkKKyAgICBpZiAo
IWRlY29kZShtX21lc3NhZ2VGbGFncykpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghZGVj
b2RlKG1fbWVzc2FnZVJlY2VpdmVyTmFtZSkpCkBAIC02MCw3ICs2MCw3IEBAIE1lc3NhZ2VEZWNv
ZGVyOjpNZXNzYWdlRGVjb2Rlcihjb25zdCBEYXQKICAgICBpZiAoIWRlY29kZShtX21lc3NhZ2VO
YW1lKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZGVjb2RlVUludDY0KG1fZGVzdGluYXRpb25J
RCk7CisgICAgZGVjb2RlKG1fZGVzdGluYXRpb25JRCk7CiB9CiAKIGJvb2wgTWVzc2FnZURlY29k
ZXI6OmlzU3luY01lc3NhZ2UoKSBjb25zdApJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
bWFjL1NoYXJlZE1lbW9yeU1hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vbWFjL1NoYXJlZE1lbW9yeU1hYy5jcHAJKHJldmlzaW9uIDE0MTE4OSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02OCw3ICs2OCw3IEBAIGJvb2wgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmRlY29kZShDb3Jl
SVAKICAgICBBU1NFUlQoIWhhbmRsZS5tX3NpemUpOwogCiAgICAgdWludDY0X3Qgc2l6ZTsKLSAg
ICBpZiAoIWRlY29kZXItPmRlY29kZVVJbnQ2NChzaXplKSkKKyAgICBpZiAoIWRlY29kZXItPmRl
Y29kZShzaXplKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQ29yZUlQQzo6TWFjaFBv
cnQgbWFjaFBvcnQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS93aW4vU2hhcmVkTWVt
b3J5V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS93aW4vU2hh
cmVkTWVtb3J5V2luLmNwcAkocmV2aXNpb24gMTQxMTg5KQorKysgU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkwLDE1ICs5
MCwxNSBAQCBib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpkZWNvZGUoQ29yZUlQCiAgICAgQVNT
RVJUX0FSRyhoYW5kbGUsICFoYW5kbGUubV9zaXplKTsKIAogICAgIHVpbnQ2NF90IHNpemU7Ci0g
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50NjQoc2l6ZSkpCisgICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGUoc2l6ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHVpbnQ2NF90IHNvdXJj
ZUhhbmRsZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZVVJbnQ2NChzb3VyY2VIYW5kbGUpKQor
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHNvdXJjZUhhbmRsZSkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIHVpbnQzMl90IHNvdXJjZVBJRDsKLSAgICBpZiAoIWRlY29kZXItPmRlY29k
ZVVJbnQzMihzb3VyY2VQSUQpKQorICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHNvdXJjZVBJRCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEhBTkRMRSBkdXBsaWNhdGVkSGFuZGxlOwpJ
bmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcAko
cmV2aXNpb24gMTQxMTg5KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1
cEluZm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIGJvb2wgRGljdGlvbmFy
eVBvcHVwSW5mbzo6ZGVjb2RlKENvcmVJUEMKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIFBM
QVRGT1JNKE1BQykKICAgICBib29sIGhhZE9wdGlvbnM7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGVCb29sKGhhZE9wdGlvbnMpKQorICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGhhZE9wdGlvbnMp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGhhZE9wdGlvbnMpIHsKICAgICAgICAg
aWYgKCFDb3JlSVBDOjpkZWNvZGUoZGVjb2RlciwgcmVzdWx0Lm9wdGlvbnMpKQpJbmRleDogU291
cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgJKHJldmlzaW9uIDE0MTE4OSkK
KysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zOTksMTMgKzM5OSwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgaWYgKHJlbmRlcmVyLT50eXBlKCkgIT0gQVBJT2JqZWN0OjpU
eXBlUmVuZGVyT2JqZWN0KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlQm9vbChpc1JlZmxlY3Rpb24pKQorICAgICAgICAgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUoaXNSZWZsZWN0aW9uKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZUJvb2woaXNDbGlwcGlu
ZykpCisgICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShpc0NsaXBwaW5nKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29k
ZUJvb2woaXNDbGlwcGVkKSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGlzQ2xp
cHBlZCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGVVSW50MzIoY29tcG9zaXRpbmdMYXllclR5cGVBc1VJbnQzMikpCisgICAg
ICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShjb21wb3NpdGluZ0xheWVyVHlwZUFzVUludDMy
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBpZiAoIWRlY29k
ZXItPmRlY29kZShhYnNvbHV0ZUJvdW5kaW5nQm94KSkKICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NB
cmd1bWVudENvZGVycy5jcHAJKHJldmlzaW9uIDE0MTE4OSkKKysrIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVy
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMCw3ICsyMDAsNyBAQCB2b2lkIEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0CiBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rmls
dGVyT3BlcmF0aW9ucz46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYkNvcmU6
OkZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCiB7CiAgICAgdWludDMyX3Qgc2l6ZTsKLSAgICBp
ZiAoIWRlY29kZXItPmRlY29kZVVJbnQzMihzaXplKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29k
ZShzaXplKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgVmVjdG9yPFJlZlB0cjxGaWx0
ZXJPcGVyYXRpb24+ID4mIG9wZXJhdGlvbnMgPSBmaWx0ZXJzLm9wZXJhdGlvbnMoKTsKQEAgLTIx
Nyw3ICsyMTcsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0CiAg
ICAgICAgIGNhc2UgRmlsdGVyT3BlcmF0aW9uOjpTQVRVUkFURToKICAgICAgICAgY2FzZSBGaWx0
ZXJPcGVyYXRpb246OkhVRV9ST1RBVEU6IHsKICAgICAgICAgICAgIGRvdWJsZSB2YWx1ZTsKLSAg
ICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRG91YmxlKHZhbHVlKSkKKyAgICAgICAgICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgICAgICBmaWx0ZXIgPSBCYXNpY0NvbG9yTWF0cml4RmlsdGVyT3BlcmF0aW9u
OjpjcmVhdGUodmFsdWUsIHR5cGUpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yMjcsNyArMjI3
LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdAogICAgICAgICBj
YXNlIEZpbHRlck9wZXJhdGlvbjo6Q09OVFJBU1Q6CiAgICAgICAgIGNhc2UgRmlsdGVyT3BlcmF0
aW9uOjpPUEFDSVRZOiB7CiAgICAgICAgICAgICBkb3VibGUgdmFsdWU7Ci0gICAgICAgICAgICBp
ZiAoIWRlY29kZXItPmRlY29kZURvdWJsZSh2YWx1ZSkpCisgICAgICAgICAgICBpZiAoIWRlY29k
ZXItPmRlY29kZSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgZmlsdGVyID0gQmFzaWNDb21wb25lbnRUcmFuc2ZlckZpbHRlck9wZXJhdGlvbjo6Y3Jl
YXRlKHZhbHVlLCB0eXBlKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjQ1LDcgKzI0NSw3IEBA
IGJvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXQKICAgICAgICAgICAgIENv
bG9yIGNvbG9yOwogICAgICAgICAgICAgaWYgKCFBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVj
b2RlKGRlY29kZXIsIGxvY2F0aW9uKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZUludDMyKHN0ZERldmlhdGlvbikpCisgICAg
ICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShzdGREZXZpYXRpb24pKQogICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGlmICghQXJndW1lbnRDb2RlcjxDb2xvcj46
OmRlY29kZShkZWNvZGVyLCBjb2xvcikpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtMjY4LDcgKzI2OCw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVy
YXQKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgICAgIHVpbnQzMl90
IHBhcmFtZXRlcnNTaXplOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50MzIo
cGFyYW1ldGVyc1NpemUpKQorICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1l
dGVyc1NpemUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAg
Q3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCBwYXJhbWV0ZXJzKHBhcmFtZXRlcnNTaXplKTsKQEAg
LTI4NCw3ICsyODQsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0
CiAgICAgICAgICAgICAgICAgY2FzZSBDdXN0b21GaWx0ZXJQYXJhbWV0ZXI6OkFSUkFZOiB7CiAg
ICAgICAgICAgICAgICAgICAgIFJlZlB0cjxDdXN0b21GaWx0ZXJBcnJheVBhcmFtZXRlcj4gYXJy
YXlQYXJhbWV0ZXIgPSBDdXN0b21GaWx0ZXJBcnJheVBhcmFtZXRlcjo6Y3JlYXRlKG5hbWUpOwog
ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBhcnJheVBhcmFtZXRlclNpemU7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlVUludDMyKGFycmF5UGFyYW1ldGVyU2l6
ZSkpCisgICAgICAgICAgICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGFycmF5UGFyYW1l
dGVyU2l6ZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
ICAgICAgICAgICAgIGRvdWJsZSBhcnJheVBhcmFtZXRlclZhbHVlOwogICAgICAgICAgICAgICAg
ICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGFycmF5UGFyYW1ldGVyU2l6ZTsgKytqKSB7CkBA
IC0yOTgsNyArMjk4LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJh
dAogICAgICAgICAgICAgICAgIGNhc2UgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyOjpOVU1CRVI6IHsK
ICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPEN1c3RvbUZpbHRlck51bWJlclBhcmFtZXRlcj4g
bnVtYmVyUGFyYW1ldGVyID0gQ3VzdG9tRmlsdGVyTnVtYmVyUGFyYW1ldGVyOjpjcmVhdGUobmFt
ZSk7CiAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG51bWJlclBhcmFtZXRlclNpemU7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlVUludDMyKG51bWJlclBhcmFt
ZXRlclNpemUpKQorICAgICAgICAgICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShudW1i
ZXJQYXJhbWV0ZXJTaXplKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgICAgICAgICAgICAgZG91YmxlIG51bWJlclBhcmFtZXRlclZhbHVlOwogICAgICAg
ICAgICAgICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IG51bWJlclBhcmFtZXRlclNpemU7
ICsraikgewpAQCAtNDQzLDcgKzQ0Myw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1P
cGVyYXRpb25zPjoKIGJvb2wgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1PcGVyYXRpb25zPjo6ZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgVHJhbnNmb3JtT3BlcmF0aW9ucyYgdHJhbnNm
b3JtT3BlcmF0aW9ucykKIHsKICAgICB1aW50MzJfdCBvcGVyYXRpb25zU2l6ZTsKLSAgICBpZiAo
IWRlY29kZXItPmRlY29kZVVJbnQzMihvcGVyYXRpb25zU2l6ZSkpCisgICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGUob3BlcmF0aW9uc1NpemUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG9wZXJhdGlvbnNTaXplOyArK2kpIHsKQEAgLTU5NiwxMyAr
NTk2LDEzIEBAIGJvb2wgZGVjb2RlVGltaW5nRnVuY3Rpb24oQXJndW1lbnREZWNvZGUKICAgICAg
ICAgICAgIHRpbWluZ0Z1bmN0aW9uID0gQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbjo6Y3JlYXRl
KGJlemllclByZXNldCk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQotICAg
ICAgICBpZiAoIWRlY29kZXItPmRlY29kZURvdWJsZSh4MSkpCisgICAgICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKHgxKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGVEb3VibGUoeTEpKQorICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZSh5
MSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlRG91YmxlKHgyKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoeDIpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZURvdWJsZSh5
MikpCisgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHkyKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgICAgICB0aW1pbmdGdW5jdGlvbiA9IEN1YmljQmV6aWVyVGltaW5nRnVu
Y3Rpb246OmNyZWF0ZSh4MSwgeTEsIHgyLCB5Mik7CkBAIC02MTEsOSArNjExLDkgQEAgYm9vbCBk
ZWNvZGVUaW1pbmdGdW5jdGlvbihBcmd1bWVudERlY29kZQogICAgIGNhc2UgVGltaW5nRnVuY3Rp
b246OlN0ZXBzRnVuY3Rpb246IHsKICAgICAgICAgdWludDMyX3QgbnVtYmVyT2ZTdGVwczsKICAg
ICAgICAgYm9vbCBzdGVwQXRTdGFydDsKLSAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50
MzIobnVtYmVyT2ZTdGVwcykpCisgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKG51bWJlck9m
U3RlcHMpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIWRlY29kZXIt
PmRlY29kZUJvb2woc3RlcEF0U3RhcnQpKQorICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShz
dGVwQXRTdGFydCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgdGltaW5n
RnVuY3Rpb24gPSBTdGVwc1RpbWluZ0Z1bmN0aW9uOjpjcmVhdGUobnVtYmVyT2ZTdGVwcywgc3Rl
cEF0U3RhcnQpOwpAQCAtNjg3LDE5ICs2ODcsMTkgQEAgYm9vbCBBcmd1bWVudENvZGVyPEdyYXBo
aWNzTGF5ZXJBbmltYXRpbwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGVFbnVtKHN0YXRlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlRG91YmxlKHN0YXJ0VGltZSkpCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
c3RhcnRUaW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlRG91YmxlKHBhdXNlVGltZSkpCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGF1c2VUaW1l
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlQm9vbChs
aXN0c01hdGNoKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShsaXN0c01hdGNoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRW51bShkaXJlY3Rpb24p
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50MzIo
ZmlsbE1vZGUpKQorICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGZpbGxNb2RlKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRG91YmxlKGR1cmF0aW9uKSkK
KyAgICBpZiAoIWRlY29kZXItPmRlY29kZShkdXJhdGlvbikpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZURvdWJsZShpdGVyYXRpb25Db3VudCkpCisgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUoaXRlcmF0aW9uQ291bnQpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKCFkZWNvZGVUaW1pbmdGdW5jdGlvbihkZWNvZGVyLCB0aW1pbmdGdW5jdGlv
bikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTcxNyw3ICs3MTcsNyBAQCBib29sIEFyZ3Vt
ZW50Q29kZXI8R3JhcGhpY3NMYXllckFuaW1hdGlvCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICBLZXlmcmFtZVZhbHVlTGlzdCBrZXlmcmFtZXMocHJvcGVydHkpOwogICAgIHVuc2lnbmVkIGtl
eWZyYW1lc1NpemU7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50MzIoa2V5ZnJhbWVzU2l6
ZSkpCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoa2V5ZnJhbWVzU2l6ZSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwga2V5ZnJhbWVzU2l6ZTsg
KytpKSB7CiAgICAgICAgIGZsb2F0IGtleVRpbWU7CkBAIC03MzAsNyArNzMwLDcgQEAgYm9vbCBB
cmd1bWVudENvZGVyPEdyYXBoaWNzTGF5ZXJBbmltYXRpbwogICAgICAgICBzd2l0Y2ggKHByb3Bl
cnR5KSB7CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHk6IHsKICAgICAgICAg
ICAgIGZsb2F0IHZhbHVlOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVGbG9hdCh2
YWx1ZSkpCisgICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZSh2YWx1ZSkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAga2V5ZnJhbWVzLmluc2VydChuZXcg
RmxvYXRBbmltYXRpb25WYWx1ZShrZXlUaW1lLCB2YWx1ZSwgdGltaW5nRnVuY3Rpb24pKTsKICAg
ICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0FyZ3VtZW50
Q29kZXJzQ0YuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9jZi9Bcmd1
bWVudENvZGVyc0NGLmNwcAkocmV2aXNpb24gMTQxMTg5KQorKysgU291cmNlL1dlYktpdDIvU2hh
cmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTksNyArMjU5
LDcgQEAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBDRgogYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4mIHJlc3Vs
dCkKIHsKICAgICB1aW50NjRfdCBzaXplOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlVUludDY0
KHNpemUpKQorICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHNpemUpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlQXJyYXlSZWY+IGFycmF5KEFkb3B0Q0Ys
IENGQXJyYXlDcmVhdGVNdXRhYmxlKDAsIDAsICZrQ0ZUeXBlQXJyYXlDYWxsQmFja3MpKTsKQEAg
LTMxNyw3ICszMTcsNyBAQCB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIENG
CiBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFJldGFpblB0cjxDRkRhdGVS
ZWY+JiByZXN1bHQpCiB7CiAgICAgZG91YmxlIGFic29sdXRlVGltZTsKLSAgICBpZiAoIWRlY29k
ZXItPmRlY29kZURvdWJsZShhYnNvbHV0ZVRpbWUpKQorICAgIGlmICghZGVjb2Rlci0+ZGVjb2Rl
KGFic29sdXRlVGltZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJlc3VsdC5hZG9w
dENGKENGRGF0ZUNyZWF0ZSgwLCBhYnNvbHV0ZVRpbWUpKTsKQEAgLTM1MSw3ICszNTEsNyBAQCB2
b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIENGCiBib29sIGRlY29kZShBcmd1
bWVudERlY29kZXIqIGRlY29kZXIsIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+JiByZXN1bHQp
CiB7CiAgICAgdWludDY0X3Qgc2l6ZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZVVJbnQ2NChz
aXplKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShzaXplKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgUmV0YWluUHRyPENGTXV0YWJsZURpY3Rpb25hcnlSZWY+IGRpY3Rpb25hcnko
QWRvcHRDRiwgQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZSgwLCAwLCAma0NGVHlwZURpY3Rpb25h
cnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CkBAIC01
MDcsNyArNTA3LDcgQEAgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBSZQog
ewogICAgIFJldGFpblB0cjxDRlVSTFJlZj4gYmFzZVVSTDsKICAgICBib29sIGhhc0Jhc2VVUkw7
Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVCb29sKGhhc0Jhc2VVUkwpKQorICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKGhhc0Jhc2VVUkwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KGhhc0Jhc2VVUkwpIHsKICAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgYmFzZVVSTCkpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMubW0J
KHJldmlzaW9uIDE0MTE4OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRD
b2RlcnNNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMyNyw3ICszMjcsNyBAQCB2b2lkIGVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIE5TCiBib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXIqIGRlY29kZXIsIFJldGFpblB0cjxOU0RpY3Rpb25hcnk+JiByZXN1bHQpCiB7CiAgICAgdWlu
dDY0X3Qgc2l6ZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZVVJbnQ2NChzaXplKSkKKyAgICBp
ZiAoIWRlY29kZXItPmRlY29kZShzaXplKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
UmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+IGRpY3Rpb25hcnkoQWRvcHROUywgW1tOU011
dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OnNpemVdKTsKQEAgLTQxNyw3
ICs0MTcsNyBAQCB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIE5TCiBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFJldGFpblB0cjxOU0FycmF5PiYgcmVz
dWx0KQogewogICAgIHVpbnQ2NF90IHNpemU7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50
NjQoc2l6ZSkpCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc2l6ZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gYXJyYXkgPSBhZG9wdE5T
KFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6c2l6ZV0pOwpJbmRleDog
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGhDb2RlcnMubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGhDb2RlcnMu
bW0JKHJldmlzaW9uIDE0MTE4OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvT2JqQ09i
amVjdEdyYXBoQ29kZXJzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNzgsNyArMTc4LDcgQEAgcHVi
bGljOgogICAgICAgICB9CiAgICAgICAgIGNhc2UgTlNBcnJheVR5cGU6IHsKICAgICAgICAgICAg
IHVpbnQ2NF90IHNpemU7Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZVVJbnQ2NChz
aXplKSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHNpemUpKQogICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFy
cmF5PiBhcnJheSA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBh
Y2l0eTpzaXplXSk7CkBAIC0xOTYsNyArMTk2LDcgQEAgcHVibGljOgogICAgICAgICB9CiAgICAg
ICAgIGNhc2UgTlNEaWN0aW9uYXJ5VHlwZTogewogICAgICAgICAgICAgdWludDY0X3Qgc2l6ZTsK
LSAgICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlVUludDY0KHNpemUpKQorICAgICAgICAg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc2l6ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gZGljdGlv
bmFyeSA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFj
aXR5OnNpemVdKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2FuZGJveEV4dGVu
c2lvbk1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRi
b3hFeHRlbnNpb25NYWMubW0JKHJldmlzaW9uIDE0MTE4OSkKKysrIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTM3LDcg
KzEzNyw3IEBAIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6OmVuY28KIGJvb2wg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGRlY29kZXIsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5JiBoYW5kbGVzKQog
ewogICAgIHVpbnQ2NF90IHNpemU7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50NjQoc2l6
ZSkpCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc2l6ZSkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBoYW5kbGVzLmFsbG9jYXRlKHNpemUpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgc2l6ZTsgaSsrKSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1S
ZXF1ZXN0RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9T
ZWNJdGVtUmVxdWVzdERhdGEuY3BwCShyZXZpc2lvbiAxNDExODkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXF1ZXN0RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5
LDcgKzY5LDcgQEAgYm9vbCBTZWNJdGVtUmVxdWVzdERhdGE6OmRlY29kZShDb3JlSVBDOgogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgYm9vbCBleHBlY3RBdHRyaWJ1dGVzOwotICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlQm9vbChleHBlY3RBdHRyaWJ1dGVzKSkKKyAgICBpZiAoIWRl
Y29kZXItPmRlY29kZShleHBlY3RBdHRyaWJ1dGVzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIAogICAgIGlmIChleHBlY3RBdHRyaWJ1dGVzICYmICFDb3JlSVBDOjpkZWNvZGUoZGVjb2Rl
ciwgc2VjSXRlbVJlcXVlc3REYXRhLm1fYXR0cmlidXRlc1RvTWF0Y2gpKQpJbmRleDogU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXNwb25zZURhdGEuY3BwCShyZXZp
c2lvbiAxNDExODkpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXNwb25z
ZURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MiwxMyArNTIsMTMgQEAgdm9pZCBTZWNJdGVt
UmVzcG9uc2VEYXRhOjplbmNvZGUoQ29yZUlQQwogYm9vbCBTZWNJdGVtUmVzcG9uc2VEYXRhOjpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBTZWNJdGVtUmVzcG9uc2VE
YXRhJiBzZWNJdGVtUmVzcG9uc2VEYXRhKQogewogICAgIGludDY0X3QgcmVzdWx0Q29kZTsKLSAg
ICBpZiAoIWRlY29kZXItPmRlY29kZUludDY0KHJlc3VsdENvZGUpKQorICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKHJlc3VsdENvZGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgc2VjSXRl
bVJlc3BvbnNlRGF0YS5tX3Jlc3VsdENvZGUgPSAoT1NTdGF0dXMpcmVzdWx0Q29kZTsKICAgICBz
ZWNJdGVtUmVzcG9uc2VEYXRhLm1fcmVzdWx0T2JqZWN0ID0gMDsKIAogICAgIGJvb2wgZXhwZWN0
UmVzdWx0T2JqZWN0OwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlQm9vbChleHBlY3RSZXN1bHRP
YmplY3QpKQorICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGV4cGVjdFJlc3VsdE9iamVjdCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChleHBlY3RSZXN1bHRPYmplY3QgJiYgIUNv
cmVJUEM6OmRlY29kZShkZWNvZGVyLCBzZWNJdGVtUmVzcG9uc2VEYXRhLm1fcmVzdWx0T2JqZWN0
KSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9Bcmd1bWVudENvZGVyc1F0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvQXJndW1lbnRDb2RlcnNRdC5j
cHAJKHJldmlzaW9uIDE0MTE4OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9Bcmd1bWVu
dENvZGVyc1F0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQCBib29sIEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6RHJhZ0RhdGE+OjpkCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIGJvb2wgaGFzUGxhdGZvcm1EYXRhOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlQm9vbCho
YXNQbGF0Zm9ybURhdGEpKQorICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGhhc1BsYXRmb3JtRGF0
YSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFFNaW1lRGF0YSogbWltZURhdGEgPSAw
OwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L1F0TmV0d29ya1JlcGx5RGF0YS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L1F0TmV0d29ya1JlcGx5RGF0
YS5jcHAJKHJldmlzaW9uIDE0MTE4OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9RdE5l
dHdvcmtSZXBseURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIGJvb2wg
UXROZXR3b3JrUmVwbHlEYXRhOjpkZWNvZGUoQ29yZUlQQzoKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGRlc3RpbmF0aW9uLm1fY29udGVudFR5cGUpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50NjQoZGVz
dGluYXRpb24ubV9jb250ZW50TGVuZ3RoKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShkZXN0
aW5hdGlvbi5tX2NvbnRlbnRMZW5ndGgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUoZGVzdGluYXRpb24ubV9yZXBseVV1aWQpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRGVjb2Rl
ckFkYXB0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EZWNvZGVyQWRhcHRlci5jcHAJKHJldmlzaW9uIDE0MTE4OSkKKysrIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EZWNvZGVyQWRhcHRlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU0LDQyICs1NCw0MiBAQCBib29sIERlY29kZXJBZGFwdGVyOjpkZWNvZGVCeXRlcyhWZWN0
b3I8CiAKIGJvb2wgRGVjb2RlckFkYXB0ZXI6OmRlY29kZUJvb2woYm9vbCYgdmFsdWUpCiB7Ci0g
ICAgcmV0dXJuIG1fZGVjb2Rlci0+ZGVjb2RlQm9vbCh2YWx1ZSk7CisgICAgcmV0dXJuIG1fZGVj
b2Rlci0+ZGVjb2RlKHZhbHVlKTsKIH0KIAogYm9vbCBEZWNvZGVyQWRhcHRlcjo6ZGVjb2RlVUlu
dDE2KHVpbnQxNl90JiB2YWx1ZSkKIHsKLSAgICByZXR1cm4gbV9kZWNvZGVyLT5kZWNvZGVVSW50
MTYodmFsdWUpOworICAgIHJldHVybiBtX2RlY29kZXItPmRlY29kZSh2YWx1ZSk7CiB9CiAKIGJv
b2wgRGVjb2RlckFkYXB0ZXI6OmRlY29kZVVJbnQzMih1aW50MzJfdCYgdmFsdWUpCiB7Ci0gICAg
cmV0dXJuIG1fZGVjb2Rlci0+ZGVjb2RlVUludDMyKHZhbHVlKTsKKyAgICByZXR1cm4gbV9kZWNv
ZGVyLT5kZWNvZGUodmFsdWUpOwogfQogCiBib29sIERlY29kZXJBZGFwdGVyOjpkZWNvZGVVSW50
NjQodWludDY0X3QmIHZhbHVlKQogewotICAgIHJldHVybiBtX2RlY29kZXItPmRlY29kZVVJbnQ2
NCh2YWx1ZSk7CisgICAgcmV0dXJuIG1fZGVjb2Rlci0+ZGVjb2RlKHZhbHVlKTsKIH0KIAogYm9v
bCBEZWNvZGVyQWRhcHRlcjo6ZGVjb2RlSW50MzIoaW50MzJfdCYgdmFsdWUpCiB7Ci0gICAgcmV0
dXJuIG1fZGVjb2Rlci0+ZGVjb2RlSW50MzIodmFsdWUpOworICAgIHJldHVybiBtX2RlY29kZXIt
PmRlY29kZSh2YWx1ZSk7CiB9CiAKIGJvb2wgRGVjb2RlckFkYXB0ZXI6OmRlY29kZUludDY0KGlu
dDY0X3QmIHZhbHVlKQogewotICAgIHJldHVybiBtX2RlY29kZXItPmRlY29kZUludDY0KHZhbHVl
KTsKKyAgICByZXR1cm4gbV9kZWNvZGVyLT5kZWNvZGUodmFsdWUpOwogfQogCiBib29sIERlY29k
ZXJBZGFwdGVyOjpkZWNvZGVGbG9hdChmbG9hdCYgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIG1fZGVj
b2Rlci0+ZGVjb2RlRmxvYXQodmFsdWUpOworICAgIHJldHVybiBtX2RlY29kZXItPmRlY29kZSh2
YWx1ZSk7CiB9CiAKIGJvb2wgRGVjb2RlckFkYXB0ZXI6OmRlY29kZURvdWJsZShkb3VibGUmIHZh
bHVlKQogewotICAgIHJldHVybiBtX2RlY29kZXItPmRlY29kZURvdWJsZSh2YWx1ZSk7CisgICAg
cmV0dXJuIG1fZGVjb2Rlci0+ZGVjb2RlKHZhbHVlKTsKIH0KIAogYm9vbCBEZWNvZGVyQWRhcHRl
cjo6ZGVjb2RlU3RyaW5nKFN0cmluZyYgdmFsdWUpCg==
</data>
<flag name="review"
          id="204407"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>