<?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>112147</bug_id>
          
          <creation_ts>2013-03-12 06:48:16 -0700</creation_ts>
          <short_desc>[Qt] Port TestRunner::findString to shared interface</short_desc>
          <delta_ts>2013-03-13 08:26:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>112144</dependson>
          <blocked>109677</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Hausmann">hausmann</reporter>
          <assigned_to name="Simon Hausmann">hausmann</assigned_to>
          <cc>jturcotte</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>853415</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-03-12 06:48:16 -0700</bug_when>
    <thetext>[Qt] Port TestRunner::findString to shared interface</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853418</commentid>
    <comment_count>1</comment_count>
      <attachid>192727</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-03-12 06:50:07 -0700</bug_when>
    <thetext>Created attachment 192727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853420</commentid>
    <comment_count>2</comment_count>
      <attachid>192728</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-03-12 06:51:28 -0700</bug_when>
    <thetext>Created attachment 192728
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853471</commentid>
    <comment_count>3</comment_count>
      <attachid>192738</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-03-12 08:08:02 -0700</bug_when>
    <thetext>Created attachment 192738
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854098</commentid>
    <comment_count>4</comment_count>
      <attachid>192738</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-03-13 00:37:24 -0700</bug_when>
    <thetext>Comment on attachment 192738
Patch

Wrong patch :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854235</commentid>
    <comment_count>5</comment_count>
      <attachid>192907</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-03-13 05:53:31 -0700</bug_when>
    <thetext>Created attachment 192907
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854250</commentid>
    <comment_count>6</comment_count>
      <attachid>192907</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-03-13 06:23:00 -0700</bug_when>
    <thetext>Comment on attachment 192907
Patch

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

&gt; Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp:388
&gt; +static DumpRenderTree *s_instance;

The compiler should do it but it might be worth explicitely initializing it to 0.

&gt; Tools/DumpRenderTree/qt/TestRunnerQt.cpp:748
&gt; +bool TestRunner::findString(JSContextRef context, JSStringRef string, JSObjectRef optionsArray)

EFL, GTK, chromium and BlackBerry all seem to do the FindOptions matching in TestRunner instead of DumpRenderTreeSupport.
It might be worth doing the same while we&apos;re there.

&gt; Tools/DumpRenderTree/qt/TestRunnerQt.cpp:750
&gt; +    DumpRenderTree* drt = DumpRenderTree::instance();

It seems like this could be moved right before or into the final return.

&gt; Tools/DumpRenderTree/qt/TestRunnerQt.cpp:766
&gt; +

Superfluous</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854273</commentid>
    <comment_count>7</comment_count>
      <attachid>192907</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-03-13 07:01:57 -0700</bug_when>
    <thetext>Comment on attachment 192907
Patch

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

&gt;&gt; Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp:388
&gt;&gt; +static DumpRenderTree *s_instance;
&gt; 
&gt; The compiler should do it but it might be worth explicitely initializing it to 0.

Done.

&gt;&gt; Tools/DumpRenderTree/qt/TestRunnerQt.cpp:748
&gt;&gt; +bool TestRunner::findString(JSContextRef context, JSStringRef string, JSObjectRef optionsArray)
&gt; 
&gt; EFL, GTK, chromium and BlackBerry all seem to do the FindOptions matching in TestRunner instead of DumpRenderTreeSupport.
&gt; It might be worth doing the same while we&apos;re there.

Okay.

&gt;&gt; Tools/DumpRenderTree/qt/TestRunnerQt.cpp:750
&gt;&gt; +    DumpRenderTree* drt = DumpRenderTree::instance();
&gt; 
&gt; It seems like this could be moved right before or into the final return.

Good idea! done.

&gt;&gt; Tools/DumpRenderTree/qt/TestRunnerQt.cpp:766
&gt;&gt; +
&gt; 
&gt; Superfluous

Oops :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854275</commentid>
    <comment_count>8</comment_count>
      <attachid>192917</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-03-13 07:06:21 -0700</bug_when>
    <thetext>Created attachment 192917
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854310</commentid>
    <comment_count>9</comment_count>
      <attachid>192917</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-03-13 08:23:04 -0700</bug_when>
    <thetext>Comment on attachment 192917
Patch

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

LGTM after all :)

&gt; Tools/DumpRenderTree/qt/TestRunnerQt.cpp:782
&gt; +

This can be removed, I didn&apos;t see it earlier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854314</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-03-13 08:26:48 -0700</bug_when>
    <thetext>Committed r145719: &lt;http://trac.webkit.org/changeset/145719&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192727</attachid>
            <date>2013-03-12 06:50:07 -0700</date>
            <delta_ts>2013-03-12 06:51:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112147-20130312144606.patch</filename>
            <type>text/plain</type>
            <size>18946</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NDk4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZThjZGFkZjljODVkODdkMjlkZDU0OWY1YzgwNjc0ZTZl
ZWY1Njc4Ny4uYTBjMWFiOTM1ZGUwYmQwZjViMjQzMTE3ZmQyYzc1YmMzNzI3ZjVlNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
NSBAQAorMjAxMy0wMy0xMiAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBkaWdpYS5j
b20+CisKKyAgICAgICAgW1F0XSBQcmVwYXJlIERSVCBmb3IgdHJhbnNpdGlvbiB0byBzaGFyZWQg
VGVzdFJ1bm5lciBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExMjE0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFByZXBhcmUgUXQncyBEUlQgZm9yIGEgdHJhbnNpdGlvbiBmcm9tIHRoZSBR
T2JqZWN0IGJhc2VkIFRlc3RSdW5uZXIgdG8KKyAgICAgICAgdGhlIEpTQyBDIEFQSSBiYXNlZCBv
bmUuCisKKyAgICAgICAgVGhpcyBpcyBpbXBwbGVtZW50ZWQgYnkgaW5zdGFudGlhdGluZyB0aGUg
UU9iamVjdCBiYXNlZCB0ZXN0UnVubmVyIGluCisgICAgICAgIHRoZSBnbG9iYWwgb2JqZWN0LCB0
aGVuIGluc3RhbnRpYXRpbmcgdGhlIEpTQyBDIGJhc2VkIFRlc3RSdW5uZXIKKyAgICAgICAgc2Vw
YXJhdGVseSBhbmQgcGxhY2luZyBpdCAiYmVoaW5kIiB0aGUgUU9iamVjdCBiYXNlZCB0ZXN0UnVu
bmVyIHRocm91Z2gKKyAgICAgICAgaW5qZWN0aW9uIGluIHRoZSBwcm90b3R5cGUgY2hhaW4uIFRo
aXMgYWxsb3dzIGZvciBwb3J0aW5nIG92ZXIgbWV0aG9kCisgICAgICAgIGJ5IG1ldGhvZCBieSBy
ZW1vdmluZyB0aGUgbWV0aG9kIGZyb20gdGhlIFFPYmplY3QgVGVzdFJ1bm5lclF0IGFuZAorICAg
ICAgICBpbXBsZW1lbnRpbmcgaXQgaW4gdGhlIEpTQyBDIGJhc2VkIFRlc3RSdW5uZXIuCisKKyAg
ICAgICAgSW4gb3JkZXIgZm9yIHRoaXMgdG8gbGluayBhbmQgcnVuIGR1bW15IGltcGxlbWVudGF0
aW9ucyBvZiBhbGwgdGhlCisgICAgICAgIG5lY2Vzc2FyeSBUZXN0UnVubmVyIGZ1bmN0aW9ucyBh
cmUgcHJvdmlkZWQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJl
ZS5wcm86CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVNYWluLmNw
cDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkR1bXBSZW5kZXJUcmVlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlQmVm
b3JlVGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEdW1wUmVuZGVyVHJlZTo6aW5pdEpTT2Jq
ZWN0cyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oOgor
ICAgICAgICAoRHVtcFJlbmRlclRyZWUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rl
c3RSdW5uZXJRdC5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjp+VGVzdFJ1bm5lcik6CisgICAg
ICAgIChUZXN0UnVubmVyOjphZGREaXNhbGxvd2VkVVJMKToKKyAgICAgICAgKFRlc3RSdW5uZXI6
OnF1ZXVlTG9hZCk6CisgICAgICAgIChUZXN0UnVubmVyOjpyZW1vdmVBbGxWaXNpdGVkTGlua3Mp
OgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0QWNjZXB0c0VkaXRpbmcpOgorICAgICAgICAoVGVz
dFJ1bm5lcjo6c2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGljayk6CisgICAgICAgIChU
ZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleSk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRBbHdh
eXNBY2NlcHRDb29raWVzKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc1do
aXRlbGlzdEVudHJ5KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldFdlYlZpZXdFZGl0YWJsZSk6
CisgICAgICAgIChUZXN0UnVubmVyOjpjbGVhckFsbEFwcGxpY2F0aW9uQ2FjaGVzKToKKyAgICAg
ICAgKFRlc3RSdW5uZXI6OnNldFRleHREaXJlY3Rpb24pOgorICAgICAgICAoVGVzdFJ1bm5lcjo6
bm90aWZ5RG9uZSk6CisgICAgICAgIChUZXN0UnVubmVyOjpudW1iZXJPZlBlbmRpbmdHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0cyk6CisgICAgICAgIChUZXN0UnVubmVyOjpvdmVycmlkZVBy
ZWZlcmVuY2UpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6cGF0aFRvTG9jYWxSZXNvdXJjZSk6Cisg
ICAgICAgIChUZXN0UnVubmVyOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucyk6
CisgICAgICAgIChUZXN0UnVubmVyOjpzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKToKKyAg
ICAgICAgKFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcyk6CisgICAg
ICAgIChUZXN0UnVubmVyOjpmb2N1c1dlYlZpZXcpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0
QmFja2luZ1NjYWxlRmFjdG9yKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnJlbW92ZUNocm9tZUlu
cHV0RmllbGQpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6YWRkQ2hyb21lSW5wdXRGaWVsZCk6Cisg
ICAgICAgIChUZXN0UnVubmVyOjpvcmlnaW5zV2l0aExvY2FsU3RvcmFnZSk6CisgICAgICAgIChU
ZXN0UnVubmVyOjpkZWxldGVBbGxMb2NhbFN0b3JhZ2UpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6
ZGVsZXRlTG9jYWxTdG9yYWdlRm9yT3JpZ2luKToKKyAgICAgICAgKFRlc3RSdW5uZXI6Om9ic2Vy
dmVTdG9yYWdlVHJhY2tlck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c3lu
Y0xvY2FsU3RvcmFnZSk6CisgICAgICAgIChUZXN0UnVubmVyOjp3aW5kb3dDb3VudCk6CisgICAg
ICAgIChUZXN0UnVubmVyOjpzZXRXYWl0VG9EdW1wKToKKyAgICAgICAgKFRlc3RSdW5uZXI6Ondh
aXRGb3JQb2xpY3lEZWxlZ2F0ZSk6CisgICAgICAgIChUZXN0UnVubmVyOjp3ZWJIaXN0b3J5SXRl
bUNvdW50KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNob3dXZWJJbnNwZWN0b3IpOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6Y2xvc2VXZWJJbnNwZWN0b3IpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6
ZXZhbHVhdGVJbldlYkluc3BlY3Rvcik6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRTZXJpYWxp
emVIVFRQTG9hZHMpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6YXBpVGVzdE5ld1dpbmRvd0RhdGFM
b2FkQmFzZVVSTCk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0
ZSk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXREYXRhYmFzZVF1b3RhKToKKyAgICAgICAgKFRl
c3RSdW5uZXI6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUpOgorICAg
ICAgICAoVGVzdFJ1bm5lcjo6cmVzZXRQYWdlVmlzaWJpbGl0eSk6CisgICAgICAgIChUZXN0UnVu
bmVyOjprZWVwV2ViSGlzdG9yeSk6CisgICAgICAgIChUZXN0UnVubmVyOjpnb0JhY2spOgorICAg
ICAgICAoVGVzdFJ1bm5lcjo6b3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlKToKKyAgICAgICAg
KFRlc3RSdW5uZXI6OmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4pOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6ZGlzcGxheSk6CisgICAgICAgIChUZXN0UnVubmVyOjpkaXNwYXRjaFBl
bmRpbmdMb2FkUmVxdWVzdHMpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6Y2xlYXJQZXJzaXN0ZW50
VXNlclN0eWxlU2hlZXQpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6Y2FsbFNob3VsZENsb3NlT25X
ZWJWaWV3KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmNvcHlEZWNvZGVkSG9zdE5hbWUpOgorICAg
ICAgICAoVGVzdFJ1bm5lcjo6Y2xlYXJCYWNrRm9yd2FyZExpc3QpOgorICAgICAgICAoVGVzdFJ1
bm5lcjo6Y2xlYXJBbGxEYXRhYmFzZXMpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6Y2xlYXJBcHBs
aWNhdGlvbkNhY2hlRm9yT3JpZ2luKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmFwaVRlc3RHb1Rv
Q3VycmVudEJhY2tGb3J3YXJkSXRlbSk6CisgICAgICAgIChUZXN0UnVubmVyOjphdXRoZW50aWNh
dGVTZXNzaW9uKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmFib3J0TW9kYWwpOgorICAgICAgICAo
VGVzdFJ1bm5lcjo6c2V0U3RvcmFnZURhdGFiYXNlSWRsZUludGVydmFsKToKKyAgICAgICAgKFRl
c3RSdW5uZXI6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAg
KFRlc3RSdW5uZXI6OnNldFhTU0F1ZGl0b3JFbmFibGVkKToKKyAgICAgICAgKFRlc3RSdW5uZXI6
OnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRT
Y3JvbGxiYXJQb2xpY3kpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0SmF2YVNjcmlwdENhbkFj
Y2Vzc0NsaXBib2FyZCk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRBdXRvbWF0aWNMaW5rRGV0
ZWN0aW9uRW5hYmxlZCk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRVc2VyU3R5bGVTaGVldEVu
YWJsZWQpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbik6
CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRVc2VEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSk6
CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMpOgor
ICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAg
ICAgKFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAg
ICAgICAoVGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6CisgICAgICAgIChU
ZXN0UnVubmVyOjpzZXRQbHVnaW5zRW5hYmxlZCk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRQ
b3B1cEJsb2NraW5nRW5hYmxlZCk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRNb2NrU3BlZWNo
SW5wdXREdW1wUmVjdCk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRQZXJzaXN0ZW50VXNlclN0
eWxlU2hlZXRMb2NhdGlvbik6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRp
b25Qb3NpdGlvbik6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3Np
dGlvblVuYXZhaWxhYmxlRXJyb3IpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0TW9ja0Rldmlj
ZU9yaWVudGF0aW9uKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldE1haW5GcmFtZUlzRmlyc3RS
ZXNwb25kZXIpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0SWNvbkRhdGFiYXNlRW5hYmxlZCk6
CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24pOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6c2V0RGVmZXJzTG9hZGluZyk6CisgICAgICAgIChUZXN0UnVubmVyOjpz
ZXRDYWNoZU1vZGVsKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldEF1dGhvckFuZFVzZXJTdHls
ZXNFbmFibGVkKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldEFsbG93RmlsZUFjY2Vzc0Zyb21G
aWxlVVJMcyk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRBcHBDYWNoZU1heGltdW1TaXplKToK
KyAgICAgICAgKFRlc3RSdW5uZXI6OnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxz
KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSk6
CisgICAgICAgIChUZXN0UnVubmVyOjpkZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbik6Cisg
ICAgICAgIChUZXN0UnVubmVyOjpncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24pOgorICAg
ICAgICAoVGVzdFJ1bm5lcjo6c2V0VmFsdWVGb3JVc2VyKToKKyAgICAgICAgKFRlc3RSdW5uZXI6
OnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldFBhZ2VW
aXNpYmlsaXR5KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3Vs
dCk6CisgICAgICAgIChUZXN0UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRy
eSk6CisgICAgICAgIChUZXN0UnVubmVyOjphZGRVc2VyU2NyaXB0KToKKyAgICAgICAgKFRlc3RS
dW5uZXI6OmlzQ29tbWFuZEVuYWJsZWQpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6ZXZhbHVhdGVT
Y3JpcHRJbklzb2xhdGVkV29ybGQpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6ZXZhbHVhdGVTY3Jp
cHRJbklzb2xhdGVkV29ybGRBbmRSZXR1cm5WYWx1ZSk6CisgICAgICAgIChUZXN0UnVubmVyOjpj
b3B5RW5jb2RlZEhvc3ROYW1lKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmFkZFVzZXJTdHlsZVNo
ZWV0KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmZpbmRTdHJpbmcpOgorICAgICAgICAoVGVzdFJ1
bm5lcjo6ZXhlY0NvbW1hbmQpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6bG9jYWxTdG9yYWdlRGlz
a1VzYWdlRm9yT3JpZ2luKToKKwogMjAxMy0wMy0xMSAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW01hY11bV0sxXSBBZGQgc3VwcG9ydCBmb3IgYWxlcnQoKSBp
biBNaW5pQnJvd3Nlci4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBS
ZW5kZXJUcmVlLnBybyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlLnBy
bwppbmRleCBhMmY4NTYzMmM2NGNjNWI3NTNmNzVjMDdkNzY1OGYxMTZiMTBkM2Y3Li4xODRlNTZk
YmVlMTBlMzVkZmNmNzk1ZGExNjBiYWFmZWZmNTBlNGY0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZS5wcm8KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvRHVtcFJlbmRlclRyZWUucHJvCkBAIC0yNyw2ICsyNyw3IEBAIEhFQURFUlMgKz0gXAog
ICAgICQkUFdELy4uL1dvcmtRdWV1ZS5oIFwKICAgICAkJFBXRC8uLi9EdW1wUmVuZGVyVHJlZS5o
IFwKICAgICAkJFBXRC8uLi9HQ0NvbnRyb2xsZXIuaCBcCisgICAgJCRQV0QvLi4vVGV4dFJ1bm5l
ci5oIFwKICAgICBEdW1wUmVuZGVyVHJlZVF0LmggXAogICAgIEV2ZW50U2VuZGVyUXQuaCBcCiAg
ICAgVGV4dElucHV0Q29udHJvbGxlclF0LmggXApAQCAtMzgsNiArMzksNyBAQCBTT1VSQ0VTICs9
IFwKICAgICAkJFBXRC8uLi9Xb3JrUXVldWUuY3BwIFwKICAgICAkJFBXRC8uLi9EdW1wUmVuZGVy
VHJlZUNvbW1vbi5jcHAgXAogICAgICQkUFdELy4uL0dDQ29udHJvbGxlci5jcHAgXAorICAgICQk
UFdELy4uL1Rlc3RSdW5uZXIuY3BwIFwKICAgICBEdW1wUmVuZGVyVHJlZVF0LmNwcCBcCiAgICAg
RXZlbnRTZW5kZXJRdC5jcHAgXAogICAgIFRleHRJbnB1dENvbnRyb2xsZXJRdC5jcHAgXApkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVNYWluLmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlTWFpbi5jcHAKaW5kZXggNTAy
NmQzY2E0MzY1MjBjODA0YWU0Nzk5NWQ0MWFlMDZiMTRlYmVmOS4uMDVmNjFjNzc5OTVmMzE3ZGE4
YjU5ZWVmYjNkMTBkYWNjYjYxYjUzYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvRHVtcFJlbmRlclRyZWVNYWluLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9E
dW1wUmVuZGVyVHJlZU1haW4uY3BwCkBAIC00Miw3ICs0Miw2IEBACiAKIAogI2luY2x1ZGUgPHd0
Zi9BbHdheXNJbmxpbmUuaD4KLSNpbmNsdWRlIDx3dGYvRXhwb3J0TWFjcm9zLmg+CiAKICNpZmRl
ZiBRX1dTX1gxMQogI2luY2x1ZGUgPHF4MTFpbmZvX3gxMS5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcAppbmRleCAyM2ZkMzVjMWM2ZmI1ZjE3OTMzYjY1
MzJiZDRjODc0MTcwMGU4Y2QyLi4xNzdhMDM4ZDg3MjUxMjE1MmM0MzQ2NDQ5MWQzZDE1MzYwNzQy
Y2MwIDEwMDc1NQotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcApA
QCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkluaXRXZWJDb3JlUXQuaCIKICNpbmNsdWRlICJJ
bml0V2ViS2l0UXQuaCIKICNpbmNsdWRlICJRdFRlc3RTdXBwb3J0LmgiCisjaW5jbHVkZSAiVGVz
dFJ1bm5lci5oIgogI2luY2x1ZGUgIlRlc3RSdW5uZXJRdC5oIgogI2luY2x1ZGUgIlRleHRJbnB1
dENvbnRyb2xsZXJRdC5oIgogI2luY2x1ZGUgInRlc3RwbHVnaW4uaCIKQEAgLTUyNCw2ICs1MjUs
OCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVz
dGluZyhjb25zdCBRVXJsJiB1cmwpCiAgICAgLy8gb2YgdGhlIERSVC4KICAgICBtX2NvbnRyb2xs
ZXItPnJlc2V0KCk7CiAKKyAgICBtX2pzY0NvbnRyb2xsZXIgPSBUZXN0UnVubmVyOjpjcmVhdGUo
dXJsLnRvU3RyaW5nKCkudG9TdGRTdHJpbmcoKSwgbV9leHBlY3RlZEhhc2gudG9TdGRTdHJpbmco
KSk7CisKICAgICAvLyByZXNldCBtb3VzZSBjbGlja3MgY291bnRlcgogICAgIG1fZXZlbnRTZW5k
ZXItPnJlc2V0Q2xpY2tDb3VudCgpOwogCkBAIC03NDYsNiArNzQ5LDE1IEBAIHZvaWQgRHVtcFJl
bmRlclRyZWU6OmluaXRKU09iamVjdHMoKQogICAgIGZyYW1lLT5hZGRUb0phdmFTY3JpcHRXaW5k
b3dPYmplY3QoUUxhdGluMVN0cmluZygidGV4dElucHV0Q29udHJvbGxlciIpLCBtX3RleHRJbnB1
dENvbnRyb2xsZXIpOwogICAgIG1fZ2NDb250cm9sbGVyLT5tYWtlV2luZG93T2JqZWN0KGNvbnRl
eHQsIHdpbmRvdywgMCk7CiAKKyAgICBpZiAobV9qc2NDb250cm9sbGVyKSB7CisgICAgICAgIEpT
T2JqZWN0UmVmIGR1bW15V2luZG93ID0gSlNPYmplY3RNYWtlKGNvbnRleHQsIDAsIDApOworICAg
ICAgICBtX2pzY0NvbnRyb2xsZXItPm1ha2VXaW5kb3dPYmplY3QoY29udGV4dCwgZHVtbXlXaW5k
b3csIDApOworICAgICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gdGVzdFJ1bm5lck5hbWUo
QWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJ0ZXN0UnVubmVyIikpOworICAg
ICAgICBKU1ZhbHVlUmVmIHdyYXBwZWRUZXN0UnVubmVyID0gSlNPYmplY3RHZXRQcm9wZXJ0eShj
b250ZXh0LCBkdW1teVdpbmRvdywgdGVzdFJ1bm5lck5hbWUuZ2V0KCksIDApOworICAgICAgICBK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gaGVscGVyU2NyaXB0KEFkb3B0LCBKU1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygidGVzdFJ1bm5lci5fX3Byb3RvX18gPSB0aGlzIikpOworICAgICAg
ICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIGhlbHBlclNjcmlwdC5nZXQoKSwgSlNWYWx1ZVRv
T2JqZWN0KGNvbnRleHQsIHdyYXBwZWRUZXN0UnVubmVyLCAwKSwgMCwgMCwgMCk7CisgICAgfQor
CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmluamVjdEludGVybmFsc09iamVjdChmcmFt
ZS0+aGFuZGxlKCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9E
dW1wUmVuZGVyVHJlZVF0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJl
ZVF0LmgKaW5kZXggZGM1NTAwYTQxNzcwOTAxOTc1NzkwNWVmOGYxNmM5ZDQ5NjgxMjc4MC4uNjFk
MDdjZDY3MTJkOGM0ODZjOTNhYmVlMTc3NTJiMDg0MzYxYTYxYiAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuaApAQCAtNDEsMTIgKzQxLDE0IEBACiAjZW5kaWYK
IAogI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgiCisjaW5jbHVkZSAiVGVzdFJ1
bm5lci5oIgogI2luY2x1ZGUgPHFncmFwaGljc3ZpZXcuaD4KICNpbmNsdWRlIDxxZ3JhcGhpY3N3
ZWJ2aWV3Lmg+CiAjaW5jbHVkZSA8cXdlYmZyYW1lLmg+CiAjaW5jbHVkZSA8cXdlYmluc3BlY3Rv
ci5oPgogI2luY2x1ZGUgPHF3ZWJwYWdlLmg+CiAjaW5jbHVkZSA8cXdlYnZpZXcuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKIFFUX0JFR0lOX05BTUVTUEFDRQogY2xhc3MgUVVybDsKQEAg
LTE0NCw2ICsxNDYsNyBAQCBwcml2YXRlOgogICAgIFFTdHJpbmcgZHVtcEJhY2tGb3J3YXJkTGlz
dChRV2ViUGFnZSogcGFnZSk7CiAgICAgUVN0cmluZyBkdW1wRnJhbWVTY3JvbGxQb3NpdGlvbihR
V2ViRnJhbWUqIGZyYW1lKTsKICAgICBUZXN0UnVubmVyUXQgKm1fY29udHJvbGxlcjsKKyAgICBS
ZWZQdHI8VGVzdFJ1bm5lcj4gbV9qc2NDb250cm9sbGVyOwogCiAgICAgYm9vbCBtX2R1bXBQaXhl
bHNGb3JDdXJyZW50VGVzdDsKICAgICBib29sIG1fZHVtcFBpeGVsc0ZvckFsbFRlc3RzOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKaW5kZXggZTVlODI0MzBlMTdkZTI5
NjE3OTMzNWQ0ZTY1NTg1ZDFiNGM3MjljMC4uZmQwMTg2MGU1ZjQyNGYzMjRkNmM0NGVhYjZkODU2
MzNjZjNhMDFmNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5l
clF0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCkBA
IC00OCw2ICs0OCwxMCBAQCBUZXN0UnVubmVyUXQ6OlRlc3RSdW5uZXJRdChXZWJDb3JlOjpEdW1w
UmVuZGVyVHJlZSogZHJ0KQogICAgIHJlc2V0KCk7CiB9CiAKK1Rlc3RSdW5uZXI6On5UZXN0UnVu
bmVyKCkKK3sKK30KKwogdm9pZCBUZXN0UnVubmVyUXQ6OnJlc2V0KCkKIHsKICAgICBtX2hhc0R1
bXBlZCA9IGZhbHNlOwpAQCAtOTI2LDMgKzkzMCw0ODggQEAgdm9pZCBUZXN0UnVubmVyUXQ6OnNl
dEF1ZGlvRGF0YShjb25zdCBRQnl0ZUFycmF5JiBhdWRpb0RhdGEpCiAKIGNvbnN0IHVuc2lnbmVk
IFRlc3RSdW5uZXJRdDo6bWF4Vmlld1dpZHRoID0gODAwOwogY29uc3QgdW5zaWduZWQgVGVzdFJ1
bm5lclF0OjptYXhWaWV3SGVpZ2h0ID0gNjAwOworCisvLyAtLS0gSlNDIEMgQVBJIHN0dWJzCisK
K3ZvaWQgVGVzdFJ1bm5lcjo6YWRkRGlzYWxsb3dlZFVSTChKU1N0cmluZ1JlZiB1cmwpCit7Cit9
CisKK3ZvaWQgVGVzdFJ1bm5lcjo6cXVldWVMb2FkKEpTU3RyaW5nUmVmIHVybCwgSlNTdHJpbmdS
ZWYgdGFyZ2V0KQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnJlbW92ZUFsbFZpc2l0ZWRMaW5r
cygpCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0QWNjZXB0c0VkaXRpbmcoYm9vbCkKK3sK
K30KKwordm9pZCBUZXN0UnVubmVyOjpzaW11bGF0ZUxlZ2FjeVdlYk5vdGlmaWNhdGlvbkNsaWNr
KEpTU3RyaW5nUmVmIHRpdGxlKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lz
S2V5KGJvb2wpCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0QWx3YXlzQWNjZXB0Q29va2ll
cyhib29sKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlz
dEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Q
cm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRp
b25TdWJkb21haW5zKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNldFdlYlZpZXdFZGl0YWJs
ZShib29sKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OmNsZWFyQWxsQXBwbGljYXRpb25DYWNo
ZXMoKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNldFRleHREaXJlY3Rpb24oSlNTdHJpbmdS
ZWYpCit7Cit9CisKKworCit2b2lkIFRlc3RSdW5uZXI6Om5vdGlmeURvbmUoKQoreworfQorCitp
bnQgVGVzdFJ1bm5lcjo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dHMoKQoreworICAgIHJldHVybiAwOworfQorCit2b2lkIFRlc3RSdW5uZXI6Om92ZXJyaWRlUHJl
ZmVyZW5jZShKU1N0cmluZ1JlZiBrZXksIEpTU3RyaW5nUmVmIHZhbHVlKQoreworfQorCitKU1N0
cmluZ1JlZiBUZXN0UnVubmVyOjpwYXRoVG9Mb2NhbFJlc291cmNlKEpTQ29udGV4dFJlZiwgSlNT
dHJpbmdSZWYgdXJsKQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygwKTsgLy8gIyMjIFRha2UgaW1wbCBmcm9tIFdUUgorfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6
cmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKQoreworfQorCit2b2lkIFRlc3RS
dW5uZXI6OnNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2soSlNWYWx1ZVJlZiBub3RpZmljYXRp
b24pCit7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjpjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRh
YmFzZXMoKQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6Zm9jdXNXZWJWaWV3KCkKK3sKK30K
Kwordm9pZCBUZXN0UnVubmVyOjpzZXRCYWNraW5nU2NhbGVGYWN0b3IoZG91YmxlKQoreworfQor
CisKK3ZvaWQgVGVzdFJ1bm5lcjo6cmVtb3ZlQ2hyb21lSW5wdXRGaWVsZCgpCit7Cit9CisKKwor
dm9pZCBUZXN0UnVubmVyOjphZGRDaHJvbWVJbnB1dEZpZWxkKCkKK3sKK30KKworCitKU1ZhbHVl
UmVmIFRlc3RSdW5uZXI6Om9yaWdpbnNXaXRoTG9jYWxTdG9yYWdlKEpTQ29udGV4dFJlZiBjb250
ZXh0KQoreworICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bGwoY29udGV4dCk7Cit9CisKK3ZvaWQg
VGVzdFJ1bm5lcjo6ZGVsZXRlQWxsTG9jYWxTdG9yYWdlKCkKK3sKK30KKwordm9pZCBUZXN0UnVu
bmVyOjpkZWxldGVMb2NhbFN0b3JhZ2VGb3JPcmlnaW4oSlNTdHJpbmdSZWYgb3JpZ2luSWRlbnRp
ZmllcikKK3sKK30KKworCit2b2lkIFRlc3RSdW5uZXI6Om9ic2VydmVTdG9yYWdlVHJhY2tlck5v
dGlmaWNhdGlvbnModW5zaWduZWQgbnVtYmVyKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnN5
bmNMb2NhbFN0b3JhZ2UoKQoreworfQorCisKK2ludCBUZXN0UnVubmVyOjp3aW5kb3dDb3VudCgp
Cit7CisgICAgcmV0dXJuIDA7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjpzZXRXYWl0VG9EdW1w
KGJvb2wpCit7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjp3YWl0Rm9yUG9saWN5RGVsZWdhdGUo
KQoreworfQorCitzaXplX3QgVGVzdFJ1bm5lcjo6d2ViSGlzdG9yeUl0ZW1Db3VudCgpCit7Cisg
ICAgcmV0dXJuIDA7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjpzaG93V2ViSW5zcGVjdG9yKCkK
K3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpjbG9zZVdlYkluc3BlY3RvcigpCit7Cit9CisKK3Zv
aWQgVGVzdFJ1bm5lcjo6ZXZhbHVhdGVJbldlYkluc3BlY3Rvcihsb25nIGNhbGxJZCwgSlNTdHJp
bmdSZWYgc2NyaXB0KQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VyaWFsaXplSFRU
UExvYWRzKGJvb2wpCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6YXBpVGVzdE5ld1dpbmRvd0Rh
dGFMb2FkQmFzZVVSTChKU1N0cmluZ1JlZiB1dGY4RGF0YSwgSlNTdHJpbmdSZWYgYmFzZVVSTCkK
K3sKK30KKworCit2b2lkIFRlc3RSdW5uZXI6OnNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2wg
c2V0RGVsZWdhdGUsIGJvb2wgcGVybWlzc2l2ZSkKK3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpz
ZXREYXRhYmFzZVF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkKK3sKK30KKwordm9pZCBU
ZXN0UnVubmVyOjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJvb2wg
Zm9yYmlkZGVuLCBKU1N0cmluZ1JlZiBzY2hlbWUpCit7Cit9CisKKwordm9pZCBUZXN0UnVubmVy
OjpyZXNldFBhZ2VWaXNpYmlsaXR5KCkKK3sKK30KKworCit2b2lkIFRlc3RSdW5uZXI6OmtlZXBX
ZWJIaXN0b3J5KCkKK3sKK30KKworCit2b2lkIFRlc3RSdW5uZXI6OmdvQmFjaygpCit7Cit9CisK
K0pTVmFsdWVSZWYgVGVzdFJ1bm5lcjo6b3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlKEpTQ29u
dGV4dFJlZiBjb250ZXh0KQoreworICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bGwoY29udGV4dCk7
Cit9CisKK2xvbmcgbG9uZyBUZXN0UnVubmVyOjphcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9y
T3JpZ2luKEpTU3RyaW5nUmVmIG5hbWUpCit7CisgICAgcmV0dXJuIDA7Cit9CisKKwordm9pZCBU
ZXN0UnVubmVyOjpkaXNwbGF5KCkKK3sKK30KKworCit2b2lkIFRlc3RSdW5uZXI6OmRpc3BhdGNo
UGVuZGluZ0xvYWRSZXF1ZXN0cygpCit7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjpjbGVhclBl
cnNpc3RlbnRVc2VyU3R5bGVTaGVldCgpCit7Cit9CisKK2Jvb2wgVGVzdFJ1bm5lcjo6Y2FsbFNo
b3VsZENsb3NlT25XZWJWaWV3KCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0pTU3RyaW5n
UmVmIFRlc3RSdW5uZXI6OmNvcHlEZWNvZGVkSG9zdE5hbWUoSlNTdHJpbmdSZWYgbmFtZSkKK3sK
KyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoMCk7Cit9CisKKwordm9p
ZCBUZXN0UnVubmVyOjpjbGVhckJhY2tGb3J3YXJkTGlzdCgpCit7Cit9CisKKwordm9pZCBUZXN0
UnVubmVyOjpjbGVhckFsbERhdGFiYXNlcygpCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xl
YXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2luKEpTU3RyaW5nUmVmIG5hbWUpCit7Cit9CisKKwor
dm9pZCBUZXN0UnVubmVyOjphcGlUZXN0R29Ub0N1cnJlbnRCYWNrRm9yd2FyZEl0ZW0oKQorewor
fQorCit2b2lkIFRlc3RSdW5uZXI6OmF1dGhlbnRpY2F0ZVNlc3Npb24oSlNTdHJpbmdSZWYgdXJs
LCBKU1N0cmluZ1JlZiB1c2VybmFtZSwgSlNTdHJpbmdSZWYgcGFzc3dvcmQpCit7Cit9CisKKwor
dm9pZCBUZXN0UnVubmVyOjphYm9ydE1vZGFsKCkKK3sKK30KKworCit2b2lkIFRlc3RSdW5uZXI6
OnNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJbnRlcnZhbChkb3VibGUpCit7Cit9CisKKwordm9pZCBU
ZXN0UnVubmVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKQorewor
fQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0WFNTQXVkaXRvckVuYWJsZWQoYm9vbCBmbGFnKQor
eworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChib29s
KQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNldFNjcm9sbGJhclBvbGljeShKU1N0cmluZ1Jl
ZiBvcmllbnRhdGlvbiwgSlNTdHJpbmdSZWYgcG9saWN5KQoreworfQorCisKK3ZvaWQgVGVzdFJ1
bm5lcjo6c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChib29sIGZsYWcpCit7Cit9CisK
K3ZvaWQgVGVzdFJ1bm5lcjo6c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQoYm9vbCBm
bGFnKQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0VXNlclN0eWxlU2hlZXRFbmFibGVk
KGJvb2wgZmxhZykKK3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpzZXRVc2VyU3R5bGVTaGVldExv
Y2F0aW9uKEpTU3RyaW5nUmVmIHBhdGgpCit7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjpzZXRV
c2VEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZShib29sIGZsYWcpCit7Cit9CisKKwordm9pZCBU
ZXN0UnVubmVyOjpzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoYm9vbCkKK3sKK30KKwor
Cit2b2lkIFRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKQorewor
fQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZChib29sKQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChib29sKQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0UGx1Z2luc0VuYWJsZWQo
Ym9vbCkKK3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChi
b29sKQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja1NwZWVjaElucHV0RHVtcFJl
Y3QoYm9vbCBmbGFnKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNldFBlcnNpc3RlbnRVc2Vy
U3R5bGVTaGVldExvY2F0aW9uKEpTU3RyaW5nUmVmIHBhdGgpCit7Cit9CisKKwordm9pZCBUZXN0
UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJs
ZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlLCBkb3Vi
bGUgYWx0aXR1ZGUsIGJvb2wgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1
ZGVBY2N1cmFjeSwgYm9vbCBwcm92aWRlc0hlYWRpbmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIHBy
b3ZpZGVzU3BlZWQsIGRvdWJsZSBzcGVlZCkKK3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpzZXRN
b2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoSlNTdHJpbmdSZWYgbWVzc2Fn
ZSkKK3sKK30KKworCit2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihi
b29sIGNhblByb3ZpZGVBbHBoYSwgZG91YmxlIGFscGhhLCBib29sIGNhblByb3ZpZGVCZXRhLCBk
b3VibGUgYmV0YSwgYm9vbCBjYW5Qcm92aWRlR2FtbWEsIGRvdWJsZSBnYW1tYSkKK3sKK30KKwor
Cit2b2lkIFRlc3RSdW5uZXI6OnNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXIoYm9vbCBmbGFn
KQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0SWNvbkRhdGFiYXNlRW5hYmxlZChib29s
KQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGJv
b2wgYWxsb3cpCit7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjpzZXREZWZlcnNMb2FkaW5nKGJv
b2wpCit7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjpzZXRDYWNoZU1vZGVsKGludCkKK3sKK30K
KworCit2b2lkIFRlc3RSdW5uZXI6OnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKGJvb2wp
Cit7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjpzZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVS
THMoYm9vbCkKK3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpzZXRBcHBDYWNoZU1heGltdW1TaXpl
KHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkKK3sKK30KKworCit2b2lkIFRlc3RSdW5uZXI6OnNl
dEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wpCit7Cit9CisKKwordm9pZCBU
ZXN0UnVubmVyOjpzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBs
b25nKQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6ZGVueVdlYk5vdGlmaWNhdGlvblBlcm1p
c3Npb24oSlNTdHJpbmdSZWYgb3JpZ2luKQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6Z3Jh
bnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKEpTU3RyaW5nUmVmIG9yaWdpbikKK3sKK30KKwor
Cit2b2lkIFRlc3RSdW5uZXI6OnNldFZhbHVlRm9yVXNlcihKU0NvbnRleHRSZWYsIEpTVmFsdWVS
ZWYgbm9kZU9iamVjdCwgSlNTdHJpbmdSZWYgdmFsdWUpCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5l
cjo6c2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoSlNTdHJpbmdSZWYpCit7Cit9CisKKwordm9pZCBU
ZXN0UnVubmVyOjpzZXRQYWdlVmlzaWJpbGl0eShjb25zdCBjaGFyICopCit7Cit9CisKKwordm9p
ZCBUZXN0UnVubmVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoSlNTdHJpbmdSZWYgcmVzdWx0
LCBkb3VibGUgY29uZmlkZW5jZSwgSlNTdHJpbmdSZWYgbGFuZ3VhZ2UpCit7Cit9CisKKwordm9p
ZCBUZXN0UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1Jl
ZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5n
UmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKK3sK
K30KKwordm9pZCBUZXN0UnVubmVyOjphZGRVc2VyU2NyaXB0KEpTU3RyaW5nUmVmIHNvdXJjZSwg
Ym9vbCBydW5BdFN0YXJ0LCBib29sIGFsbEZyYW1lcykKK3sKK30KKworCitib29sIFRlc3RSdW5u
ZXI6OmlzQ29tbWFuZEVuYWJsZWQoSlNTdHJpbmdSZWYgbmFtZSkKK3sKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjpldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3Js
ZCh1bnNpZ25lZCB3b3JsZElELCBKU09iamVjdFJlZiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nUmVm
IHNjcmlwdCkKK3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpldmFsdWF0ZVNjcmlwdEluSXNvbGF0
ZWRXb3JsZEFuZFJldHVyblZhbHVlKHVuc2lnbmVkIHdvcmxkSUQsIEpTT2JqZWN0UmVmIGdsb2Jh
bE9iamVjdCwgSlNTdHJpbmdSZWYgc2NyaXB0KQoreworfQorCisKK0pTU3RyaW5nUmVmIFRlc3RS
dW5uZXI6OmNvcHlFbmNvZGVkSG9zdE5hbWUoSlNTdHJpbmdSZWYgbmFtZSkKK3sKKyAgICByZXR1
cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoMCk7Cit9CisKKwordm9pZCBUZXN0UnVu
bmVyOjphZGRVc2VyU3R5bGVTaGVldChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgYWxsRnJhbWVz
KQoreworfQorCisKK2Jvb2wgVGVzdFJ1bm5lcjo6ZmluZFN0cmluZyhKU0NvbnRleHRSZWYsIEpT
U3RyaW5nUmVmLCBKU09iamVjdFJlZiBvcHRpb25zQXJyYXkpCit7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6ZXhlY0NvbW1hbmQoSlNTdHJpbmdSZWYgbmFtZSwg
SlNTdHJpbmdSZWYgdmFsdWUpCit7Cit9CisKKworbG9uZyBsb25nIFRlc3RSdW5uZXI6OmxvY2Fs
U3RvcmFnZURpc2tVc2FnZUZvck9yaWdpbihKU1N0cmluZ1JlZiBvcmlnaW5JZGVudGlmaWVyKQor
eworICAgIHJldHVybiAwOworfQorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192728</attachid>
            <date>2013-03-12 06:51:28 -0700</date>
            <delta_ts>2013-03-12 08:07:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112147-20130312144726.patch</filename>
            <type>text/plain</type>
            <size>14257</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NDk4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTBjMWFiOTM1ZGUwYmQwZjViMjQzMTE3ZmQyYzc1YmMz
NzI3ZjVlNS4uMmZmNWQ1YmM3NWQ3OWY5NWRhZWM3MGIzN2FkYjIyMTA2NmYzZDJiNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ1
IEBACiAyMDEzLTAzLTEyICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQGRpZ2lhLmNv
bT4KIAorICAgICAgICBbUXRdIFBvcnQgVGVzdFJ1bm5lcjo6ZmluZFN0cmluZyB0byBzaGFyZWQg
aW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTIxNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIGlzIGEgc3RyYWlnaHQtZm9yd2FyZCBwb3J0IHRoYXQganVzdCByZXF1aXJlcyBjb252
ZXJ0aW5nIGEgSlMKKyAgICAgICAgYXJyYXkgdG8gYSBRU3RyaW5nTGlzdCAoc29tZXRoaW5nIHBy
ZXZpb3VzbHkgZG9uZSBhdXRvbWF0aWNhbGx5IGluIHRoZQorICAgICAgICBRT2JqZWN0IGJyaWRn
ZSkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIHJlbW92ZXMgRHVtcFJlbmRlclRyZWUgYW5k
IHNvbWUgb3RoZXIgaGVscGVyIGNsYXNzZXMgZnJvbQorICAgICAgICB0aGUgV2ViQ29yZSBuYW1l
c3BhY2UsIHRvIHdoaWNoIHRoZXkgZG8gbm90IHJlYWxseSBiZWxvbmcuCisKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZU1haW4uY3BwOgorICAgICAgICAobWFpbik6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHA6CisgICAg
ICAgIChEdW1wUmVuZGVyVHJlZTo6RHVtcFJlbmRlclRyZWUpOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWU6On5EdW1wUmVuZGVyVHJlZSk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZTo6aW5zdGFu
Y2UpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWU6OnNldFNob3VsZFRpbWVvdXQpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuaDoKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmNw
cDoKKyAgICAgICAgKEV2ZW50U2VuZGVyOjpjb250ZXh0Q2xpY2spOgorICAgICAgICAoRXZlbnRT
ZW5kZXI6OnNlbmRFdmVudCk6CisgICAgICAgIChFdmVudFNlbmRlcjo6cG9zdEV2ZW50KToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0Lmg6CisgICAgICAgIChFdmVu
dFNlbmRlcjo6aXNHcmFwaGljc0Jhc2VkKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9U
ZXN0UnVubmVyUXQuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lclF0OjpUZXN0UnVubmVyUXQpOgor
ICAgICAgICAoVGVzdFJ1bm5lcjo6ZmluZFN0cmluZyk6CisgICAgICAgIChUZXN0UnVubmVyUXQ6
OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbik6CisgICAgICAgIChUZXN0UnVubmVyUXQ6OnNldEdl
b2xvY2F0aW9uUGVybWlzc2lvbik6CisgICAgICAgIChUZXN0UnVubmVyUXQ6Om51bWJlck9mUGVu
ZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKToKKyAgICAgICAgKFRlc3RSdW5uZXJR
dDo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKToKKyAgICAgICAg
KFRlc3RSdW5uZXJRdDo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24pOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oOgorICAgICAgICAoVGVzdFJ1bm5lclF0KToK
KworMjAxMy0wMy0xMiAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBkaWdpYS5jb20+
CisKICAgICAgICAgW1F0XSBQcmVwYXJlIERSVCBmb3IgdHJhbnNpdGlvbiB0byBzaGFyZWQgVGVz
dFJ1bm5lciBpbnRlcmZhY2UKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMjE0NAogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9E
dW1wUmVuZGVyVHJlZU1haW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRl
clRyZWVNYWluLmNwcAppbmRleCAwNWY2MWM3Nzk5NWYzMTdkYThiNTllZWZiM2QxMGRhY2NiNjFi
NTNjLi42Yjg2ZTlkODdmODc4MzkzZTQ3MjYyNzljY2Q4NDgzYTI1NzMxODJmIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZU1haW4uY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlTWFpbi5jcHAKQEAgLTEzNSw3ICsx
MzUsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIC8vIFJlbW92ZSB0
aGUgZmlyc3QgYXJndW1lbnRzLCBpdCBpcyBhcHBsaWNhdGlvbiBuYW1lIGl0c2VsZgogICAgIGFy
Z3MucmVtb3ZlQXQoMCk7CiAKLSAgICBXZWJDb3JlOjpEdW1wUmVuZGVyVHJlZSBkdW1wZXI7Cisg
ICAgRHVtcFJlbmRlclRyZWUgZHVtcGVyOwogCiAgICAgaW50IGluZGV4ID0gYXJncy5pbmRleE9m
KFFMYXRpbjFTdHJpbmcoIi0tc3Rkb3V0IikpOwogICAgIGlmIChpbmRleCAhPSAtMSkgewpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcAppbmRleCAxNzdhMDM4
ZDg3MjUxMjE1MmM0MzQ2NDQ5MWQzZDE1MzYwNzQyY2MwLi45ZmU0MWEwNjNhNzRhZjQ4N2M2Zjlm
NTljNzUyMjI0MDE5NTI0ZmYzIDEwMDc1NQotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9E
dW1wUmVuZGVyVHJlZVF0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVu
ZGVyVHJlZVF0LmNwcApAQCAtNzMsNyArNzMsNyBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2Vu
ZGlmCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBj
b25zdCBpbnQgZGF0YWJhc2VEZWZhdWx0UXVvdGEgPSA1ICogMTAyNCAqIDEwMjQ7CiAKQEAgLTM4
NCw2ICszODQsOCBAQCBXZWJWaWV3R3JhcGhpY3NCYXNlZDo6V2ViVmlld0dyYXBoaWNzQmFzZWQo
UVdpZGdldCogcGFyZW50KQogICAgIHNjZW5lKCktPmFkZEl0ZW0obV9pdGVtKTsKIH0KIAorc3Rh
dGljIER1bXBSZW5kZXJUcmVlICpzX2luc3RhbmNlOworCiBEdW1wUmVuZGVyVHJlZTo6RHVtcFJl
bmRlclRyZWUoKQogICAgIDogbV9kdW1wUGl4ZWxzRm9yQWxsVGVzdHMoZmFsc2UpCiAgICAgLCBt
X3N0ZGluKDApCkBAIC0zOTIsNiArMzk0LDkgQEAgRHVtcFJlbmRlclRyZWU6OkR1bXBSZW5kZXJU
cmVlKCkKICAgICAsIG1fZ3JhcGhpY3NCYXNlZChmYWxzZSkKICAgICAsIG1fcGVyc2lzdGVudFN0
b3JhZ2VQYXRoKFFTdHJpbmcoZ2V0ZW52KCJEVU1QUkVOREVSVFJFRV9URU1QIikpKQogeworICAg
IEFTU0VSVCghc19pbnN0YW5jZSk7CisgICAgc19pbnN0YW5jZSA9IHRoaXM7CisKICAgICBRQnl0
ZUFycmF5IHZpZXdNb2RlID0gZ2V0ZW52KCJRVF9EUlRfV0VCVklFV19NT0RFIik7CiAgICAgaWYg
KHZpZXdNb2RlID09ICJncmFwaGljcyIpCiAgICAgICAgIHNldEdyYXBoaWNzQmFzZWQodHJ1ZSk7
CkBAIC00ODQsNiArNDg5LDEyIEBAIER1bXBSZW5kZXJUcmVlOjp+RHVtcFJlbmRlclRyZWUoKQog
ICAgICAgICBmY2xvc2Uoc3RkZXJyKTsKICAgICBkZWxldGUgbV9tYWluVmlldzsKICAgICBkZWxl
dGUgbV9zdGRpbjsKKyAgICBzX2luc3RhbmNlID0gMDsKK30KKworRHVtcFJlbmRlclRyZWUqIER1
bXBSZW5kZXJUcmVlOjppbnN0YW5jZSgpCit7CisgICAgcmV0dXJuIHNfaW5zdGFuY2U7CiB9CiAK
IHN0YXRpYyB2b2lkIGNsZWFySGlzdG9yeShRV2ViUGFnZSogcGFnZSkKQEAgLTExOTEsNSArMTIw
MiwzIEBAIHZvaWQgRHVtcFJlbmRlclRyZWU6OnNldFNob3VsZFRpbWVvdXQoYm9vbCBmbGFnKQog
ewogICAgIG1fY29udHJvbGxlci0+c2V0U2hvdWxkVGltZW91dChmbGFnKTsKIH0KLQotfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oCmluZGV4IDYxZDA3Y2Q2NzEy
ZDhjNDg2YzkzYWJlZTE3NzUyYjA4NDM2MWE2MWIuLjEzZDllNjU0OWJjZjkzODc1ZWU2ZWZiYWRh
YmUwNjU0YjM3ZDk0ZDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBS
ZW5kZXJUcmVlUXQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJl
ZVF0LmgKQEAgLTY0LDggKzY0LDYgQEAgY2xhc3MgRXZlbnRTZW5kZXI7CiBjbGFzcyBUZXh0SW5w
dXRDb250cm9sbGVyOwogY2xhc3MgR0NDb250cm9sbGVyOwogCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KIGNsYXNzIFdlYlBhZ2U7CiBjbGFzcyBOZXR3b3JrQWNjZXNzTWFuYWdlcjsKIApAQCAtNzYs
NiArNzQsOCBAQCBwdWJsaWM6CiAgICAgRHVtcFJlbmRlclRyZWUoKTsKICAgICB2aXJ0dWFsIH5E
dW1wUmVuZGVyVHJlZSgpOwogCisgICAgc3RhdGljIER1bXBSZW5kZXJUcmVlKiBpbnN0YW5jZSgp
OworCiAgICAgLy8gSW5pdGlhbGl6ZSBpbiBzaW5nbGUtZmlsZSBtb2RlLgogICAgIHZvaWQgb3Bl
bihjb25zdCBRVXJsJiB1cmwpOwogCkBAIC0yMzgsNiArMjM4LDQgQEAgcHJpdmF0ZToKICAgICBR
R3JhcGhpY3NXZWJWaWV3KiBtX2l0ZW07CiB9OwogCi19Ci0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRXZlbnRTZW5kZXJRdC5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmNwcAppbmRleCA4MGJlMTMxNzg4ZDJiOWIyMDhmNTNm
OGRkNjU1Nzc0NDFhOGNhZDEyLi5iZjY0NTA4ZWY4YzU1YTcwYzlkZWU0NTM0Y2JhMDYxYjUzODM5
ZjZlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmNwcApAQCAtNDI0
LDcgKzQyNCw3IEBAIFFTdHJpbmdMaXN0IEV2ZW50U2VuZGVyOjpjb250ZXh0Q2xpY2soKQogICAg
ICAgICBRR3JhcGhpY3NTY2VuZUNvbnRleHRNZW51RXZlbnQgY3R4RXZlbnQoUUV2ZW50OjpHcmFw
aGljc1NjZW5lQ29udGV4dE1lbnUpOwogICAgICAgICBjdHhFdmVudC5zZXRSZWFzb24oUUdyYXBo
aWNzU2NlbmVDb250ZXh0TWVudUV2ZW50OjpNb3VzZSk7CiAgICAgICAgIGN0eEV2ZW50LnNldFBv
cyhtX21vdXNlUG9zKTsKLSAgICAgICAgV2ViQ29yZTo6V2ViVmlld0dyYXBoaWNzQmFzZWQqIHZp
ZXcgPSBxb2JqZWN0X2Nhc3Q8V2ViQ29yZTo6V2ViVmlld0dyYXBoaWNzQmFzZWQqPihtX3BhZ2Ut
PnZpZXcoKSk7CisgICAgICAgIFdlYlZpZXdHcmFwaGljc0Jhc2VkKiB2aWV3ID0gcW9iamVjdF9j
YXN0PFdlYlZpZXdHcmFwaGljc0Jhc2VkKj4obV9wYWdlLT52aWV3KCkpOwogICAgICAgICBpZiAo
dmlldykKICAgICAgICAgICAgIHNlbmRFdmVudCh2aWV3LT5ncmFwaGljc1ZpZXcoKSwgJmN0eEV2
ZW50KTsKICAgICB9IGVsc2UgewpAQCAtNzQ1LDcgKzc0NSw3IEBAIFFHcmFwaGljc1NjZW5lV2hl
ZWxFdmVudCogRXZlbnRTZW5kZXI6OmNyZWF0ZUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KFFFdmVu
dDo6VHlwCiAKIHZvaWQgRXZlbnRTZW5kZXI6OnNlbmRFdmVudChRT2JqZWN0KiByZWNlaXZlciwg
UUV2ZW50KiBldmVudCkKIHsKLSAgICBpZiAoV2ViQ29yZTo6V2ViVmlld0dyYXBoaWNzQmFzZWQq
IHZpZXcgPSBxb2JqZWN0X2Nhc3Q8V2ViQ29yZTo6V2ViVmlld0dyYXBoaWNzQmFzZWQqPihyZWNl
aXZlcikpCisgICAgaWYgKFdlYlZpZXdHcmFwaGljc0Jhc2VkKiB2aWV3ID0gcW9iamVjdF9jYXN0
PFdlYlZpZXdHcmFwaGljc0Jhc2VkKj4ocmVjZWl2ZXIpKQogICAgICAgICB2aWV3LT5zY2VuZSgp
LT5zZW5kRXZlbnQodmlldy0+Z3JhcGhpY3NWaWV3KCksIGV2ZW50KTsKICAgICBlbHNlCiAgICAg
ICAgIFFBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KHJlY2VpdmVyLCBldmVudCk7CkBAIC03NTUsNyAr
NzU1LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6cG9zdEV2ZW50KFFPYmplY3QqIHJlY2VpdmVyLCBR
RXZlbnQqIGV2ZW50KQogewogICAgIC8vIFFHcmFwaGljc1NjZW5lIGRvZXMgbm90IGhhdmUgYSBw
b3N0RXZlbnQgbWV0aG9kLCBzbyBzZW5kIHRoZSBldmVudCBpbiB0aGlzIGNhc2UKICAgICAvLyBh
bmQgZGVsZXRlIGl0IGFmdGVyIHRoYXQuCi0gICAgaWYgKFdlYkNvcmU6OldlYlZpZXdHcmFwaGlj
c0Jhc2VkKiB2aWV3ID0gcW9iamVjdF9jYXN0PFdlYkNvcmU6OldlYlZpZXdHcmFwaGljc0Jhc2Vk
Kj4ocmVjZWl2ZXIpKSB7CisgICAgaWYgKFdlYlZpZXdHcmFwaGljc0Jhc2VkKiB2aWV3ID0gcW9i
amVjdF9jYXN0PFdlYlZpZXdHcmFwaGljc0Jhc2VkKj4ocmVjZWl2ZXIpKSB7CiAgICAgICAgIHZp
ZXctPnNjZW5lKCktPnNlbmRFdmVudCh2aWV3LT5ncmFwaGljc1ZpZXcoKSwgZXZlbnQpOwogICAg
ICAgICBkZWxldGUgZXZlbnQ7CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9FdmVu
dFNlbmRlclF0LmgKaW5kZXggN2U0YzYwYTk3OGU1YmZhNTdlYjE3OGVlZGU1MzdmOTBhYmI5ZmVi
My4uYWQxM2NhZGI2ZDIwMjUyNjNjNDlhNzU5ZmQ0YTczYjEzZjkxMTQxOSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRXZlbnRTZW5kZXJRdC5oCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuaApAQCAtOTYsNyArOTYsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCB0aW1lckV2ZW50KFFUaW1lckV2ZW50Kik7CiAKIHByaXZhdGU6Ci0gICAgYm9v
bCBpc0dyYXBoaWNzQmFzZWQoKSBjb25zdCB7IHJldHVybiBxb2JqZWN0X2Nhc3Q8V2ViQ29yZTo6
V2ViVmlld0dyYXBoaWNzQmFzZWQqPihtX3BhZ2UtPnZpZXcoKSk7IH0KKyAgICBib29sIGlzR3Jh
cGhpY3NCYXNlZCgpIGNvbnN0IHsgcmV0dXJuIHFvYmplY3RfY2FzdDxXZWJWaWV3R3JhcGhpY3NC
YXNlZCo+KG1fcGFnZS0+dmlldygpKTsgfQogICAgIFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCog
Y3JlYXRlR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQoUUV2ZW50OjpUeXBlLCBjb25zdCBRUG9pbnQm
IHBvcywgY29uc3QgUVBvaW50JiBzY3JlZW5Qb3MsIFF0OjpNb3VzZUJ1dHRvbiwgUXQ6Ok1vdXNl
QnV0dG9ucywgUXQ6OktleWJvYXJkTW9kaWZpZXJzKTsKICAgICBRR3JhcGhpY3NTY2VuZVdoZWVs
RXZlbnQqIGNyZWF0ZUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KFFFdmVudDo6VHlwZSwgY29uc3Qg
UVBvaW50JiBwb3MsIGNvbnN0IFFQb2ludCYgc2NyZWVuUG9zLCBpbnQgZGVsdGEsIFF0OjpLZXli
b2FyZE1vZGlmaWVycywgUXQ6Ok9yaWVudGF0aW9uKTsKICAgICB2b2lkIHNlbmRFdmVudChRT2Jq
ZWN0KiByZWNlaXZlciwgUUV2ZW50KiBldmVudCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVz
dFJ1bm5lclF0LmNwcAppbmRleCBmZDAxODYwZTVmNDI0ZjMyNGQ2YzQ0ZWFiNmQ4NTYzM2NmM2Ew
MWY0Li5mMTczZTM2YWNhYzIxMTU0Y2RiNDMzZWE5NTNiMmIzYzhjMGExMTVkIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKQEAgLTM0LDEyICszNCwxMyBAQAogI2lu
Y2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiV29ya1F1
ZXVlLmgiCiAjaW5jbHVkZSAiV29ya1F1ZXVlSXRlbVF0LmgiCisjaW5jbHVkZSA8SlNTdHJpbmdS
ZWZRdC5oPgogI2luY2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UURpcj4KICNp
bmNsdWRlIDxRTG9jYWxlPgogI2luY2x1ZGUgPHF3ZWJzZXR0aW5ncy5oPgogCi1UZXN0UnVubmVy
UXQ6OlRlc3RSdW5uZXJRdChXZWJDb3JlOjpEdW1wUmVuZGVyVHJlZSogZHJ0KQorVGVzdFJ1bm5l
clF0OjpUZXN0UnVubmVyUXQoRHVtcFJlbmRlclRyZWUqIGRydCkKICAgICA6IFFPYmplY3QoKQog
ICAgICwgbV9kcnQoZHJ0KQogICAgICwgbV9zaG91bGRUaW1lb3V0KHRydWUpCkBAIC03NDQsMTEg
Kzc0NSwzMSBAQCBib29sIFRlc3RSdW5uZXJRdDo6aXNDb21tYW5kRW5hYmxlZChjb25zdCBRU3Ry
aW5nJiBuYW1lKSBjb25zdAogICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6aXND
b21tYW5kRW5hYmxlZChtX2RydC0+cGFnZUFkYXB0ZXIoKSwgbmFtZSk7CiB9CiAKLWJvb2wgVGVz
dFJ1bm5lclF0OjpmaW5kU3RyaW5nKGNvbnN0IFFTdHJpbmcmIHN0cmluZywgY29uc3QgUVN0cmlu
Z0xpc3QmIG9wdGlvbkFycmF5KQorYm9vbCBUZXN0UnVubmVyOjpmaW5kU3RyaW5nKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU1N0cmluZ1JlZiBzdHJpbmcsIEpTT2JqZWN0UmVmIG9wdGlvbnNBcnJh
eSkKIHsKLSAgICByZXR1cm4gRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmZpbmRTdHJpbmcobV9k
cnQtPnBhZ2VBZGFwdGVyKCksIHN0cmluZywgb3B0aW9uQXJyYXkpOworICAgIER1bXBSZW5kZXJU
cmVlKiBkcnQgPSBEdW1wUmVuZGVyVHJlZTo6aW5zdGFuY2UoKTsKKworICAgIFFTdHJpbmdMaXN0
IG9wdGlvbnM7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGxlbmd0aFByb3BlcnR5TmFt
ZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImxlbmd0aCIpKTsKKyAgICBK
U1ZhbHVlUmVmIGxlbmd0aFZhbHVlID0gSlNPYmplY3RHZXRQcm9wZXJ0eShjb250ZXh0LCBvcHRp
b25zQXJyYXksIGxlbmd0aFByb3BlcnR5TmFtZS5nZXQoKSwgMCk7CisgICAgaWYgKCFKU1ZhbHVl
SXNOdW1iZXIoY29udGV4dCwgbGVuZ3RoVmFsdWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBpbnQgbGVuZ3RoID0gc3RhdGljX2Nhc3Q8aW50PihKU1ZhbHVlVG9OdW1iZXIoY29udGV4
dCwgbGVuZ3RoVmFsdWUsIDApKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgKytp
KSB7CisgICAgICAgIEpTVmFsdWVSZWYgdmFsdWUgPSBKU09iamVjdEdldFByb3BlcnR5QXRJbmRl
eChjb250ZXh0LCBvcHRpb25zQXJyYXksIGksIDApOworICAgICAgICBpZiAoIUpTVmFsdWVJc1N0
cmluZyhjb250ZXh0LCB2YWx1ZSkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gb3B0aW9uTmFtZShBZG9wdCwgSlNWYWx1ZVRvU3RyaW5n
Q29weShjb250ZXh0LCB2YWx1ZSwgMCkpOworICAgICAgICBvcHRpb25zIDw8IEpTU3RyaW5nQ29w
eVFTdHJpbmcob3B0aW9uTmFtZS5nZXQoKSk7CisKKyAgICB9CisKKyAgICByZXR1cm4gRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OmZpbmRTdHJpbmcoZHJ0LT5wYWdlQWRhcHRlcigpLCBKU1N0cmlu
Z0NvcHlRU3RyaW5nKHN0cmluZyksIG9wdGlvbnMpOwogfQogCisKIHZvaWQgVGVzdFJ1bm5lclF0
OjphdXRoZW50aWNhdGVTZXNzaW9uKGNvbnN0IFFTdHJpbmcmLCBjb25zdCBRU3RyaW5nJiwgY29u
c3QgUVN0cmluZyYpCiB7CiAgICAgLy8gRklYTUU6IElmIHRoZXJlIGlzIGEgY29uY2VwdCBwZXIt
c2Vzc2lvbiAocGVyLXByb2Nlc3MpIGNyZWRlbnRpYWwgc3RvcmFnZSwgdGhlIGNyZWRlbnRpYWxz
IHNob3VsZCBiZSBhZGRlZCB0byBpdCBmb3IgbGF0ZXIgdXNlLgpAQCAtNzY0LDI0ICs3ODUsMjQg
QEAgdm9pZCBUZXN0UnVubmVyUXQ6OnNldEljb25EYXRhYmFzZUVuYWJsZWQoYm9vbCBlbmFibGUp
CiAKIHZvaWQgVGVzdFJ1bm5lclF0OjpzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24oYm9vbCBjYW5Q
cm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwgYm9vbCBjYW5Qcm92aWRlQmV0YSwgZG91YmxlIGJl
dGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBkb3VibGUgZ2FtbWEpCiB7Ci0gICAgUUxpc3Q8V2Vi
Q29yZTo6V2ViUGFnZSo+IHBhZ2VzID0gbV9kcnQtPmdldEFsbFBhZ2VzKCk7Ci0gICAgZm9yZWFj
aCAoV2ViQ29yZTo6V2ViUGFnZSogcGFnZSwgcGFnZXMpCisgICAgUUxpc3Q8V2ViUGFnZSo+IHBh
Z2VzID0gbV9kcnQtPmdldEFsbFBhZ2VzKCk7CisgICAgZm9yZWFjaCAoV2ViUGFnZSogcGFnZSwg
cGFnZXMpCiAgICAgICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrRGV2aWNlT3Jp
ZW50YXRpb24ocGFnZS0+aGFuZGxlKCksIGNhblByb3ZpZGVBbHBoYSwgYWxwaGEsIGNhblByb3Zp
ZGVCZXRhLCBiZXRhLCBjYW5Qcm92aWRlR2FtbWEsIGdhbW1hKTsKIH0KIAogdm9pZCBUZXN0UnVu
bmVyUXQ6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihib29sIGFsbG93KQogewogICAgIHNldEdl
b2xvY2F0aW9uUGVybWlzc2lvbkNvbW1vbihhbGxvdyk7Ci0gICAgUUxpc3Q8V2ViQ29yZTo6V2Vi
UGFnZSo+IHBhZ2VzID0gbV9kcnQtPmdldEFsbFBhZ2VzKCk7Ci0gICAgZm9yZWFjaCAoV2ViQ29y
ZTo6V2ViUGFnZSogcGFnZSwgcGFnZXMpCisgICAgUUxpc3Q8V2ViUGFnZSo+IHBhZ2VzID0gbV9k
cnQtPmdldEFsbFBhZ2VzKCk7CisgICAgZm9yZWFjaCAoV2ViUGFnZSogcGFnZSwgcGFnZXMpCiAg
ICAgICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNz
aW9uKHBhZ2UtPmhhbmRsZSgpLCBhbGxvdyk7CiB9CiAKIGludCBUZXN0UnVubmVyUXQ6Om51bWJl
ck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKCkKIHsKICAgICBpbnQgcGVu
ZGluZ1Blcm1pc3Npb25Db3VudCA9IDA7Ci0gICAgUUxpc3Q8V2ViQ29yZTo6V2ViUGFnZSo+IHBh
Z2VzID0gbV9kcnQtPmdldEFsbFBhZ2VzKCk7Ci0gICAgZm9yZWFjaCAoV2ViQ29yZTo6V2ViUGFn
ZSogcGFnZSwgcGFnZXMpCisgICAgUUxpc3Q8V2ViUGFnZSo+IHBhZ2VzID0gbV9kcnQtPmdldEFs
bFBhZ2VzKCk7CisgICAgZm9yZWFjaCAoV2ViUGFnZSogcGFnZSwgcGFnZXMpCiAgICAgICAgIHBl
bmRpbmdQZXJtaXNzaW9uQ291bnQgKz0gRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6Om51bWJlck9m
UGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKHBhZ2UtPmhhbmRsZSgpKTsKIAog
ICAgIHJldHVybiBwZW5kaW5nUGVybWlzc2lvbkNvdW50OwpAQCAtNzk1LDE1ICs4MTYsMTUgQEAg
dm9pZCBUZXN0UnVubmVyUXQ6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbkNvbW1vbihib29sIGFs
bG93KQogCiB2b2lkIFRlc3RSdW5uZXJRdDo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2
YWlsYWJsZUVycm9yKGNvbnN0IFFTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgUUxpc3Q8V2ViQ29y
ZTo6V2ViUGFnZSo+IHBhZ2VzID0gbV9kcnQtPmdldEFsbFBhZ2VzKCk7Ci0gICAgZm9yZWFjaCAo
V2ViQ29yZTo6V2ViUGFnZSogcGFnZSwgcGFnZXMpCisgICAgUUxpc3Q8V2ViUGFnZSo+IHBhZ2Vz
ID0gbV9kcnQtPmdldEFsbFBhZ2VzKCk7CisgICAgZm9yZWFjaCAoV2ViUGFnZSogcGFnZSwgcGFn
ZXMpCiAgICAgICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRpb25Q
b3NpdGlvblVuYXZhaWxhYmxlRXJyb3IocGFnZS0+aGFuZGxlKCksIG1lc3NhZ2UpOwogfQogCiB2
b2lkIFRlc3RSdW5uZXJRdDo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0
dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCiB7Ci0gICAgUUxpc3Q8V2Vi
Q29yZTo6V2ViUGFnZSo+IHBhZ2VzID0gbV9kcnQtPmdldEFsbFBhZ2VzKCk7Ci0gICAgZm9yZWFj
aCAoV2ViQ29yZTo6V2ViUGFnZSogcGFnZSwgcGFnZXMpCisgICAgUUxpc3Q8V2ViUGFnZSo+IHBh
Z2VzID0gbV9kcnQtPmdldEFsbFBhZ2VzKCk7CisgICAgZm9yZWFjaCAoV2ViUGFnZSogcGFnZSwg
cGFnZXMpCiAgICAgICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRp
b25Qb3NpdGlvbihwYWdlLT5oYW5kbGUoKSwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kp
OwogfQogCkBAIC0xMzk5LDEyICsxNDIwLDYgQEAgdm9pZCBUZXN0UnVubmVyOjphZGRVc2VyU3R5
bGVTaGVldChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgYWxsRnJhbWVzKQogfQogCiAKLWJvb2wg
VGVzdFJ1bm5lcjo6ZmluZFN0cmluZyhKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmLCBKU09iamVj
dFJlZiBvcHRpb25zQXJyYXkpCi17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi0KIHZvaWQgVGVz
dFJ1bm5lcjo6ZXhlY0NvbW1hbmQoSlNTdHJpbmdSZWYgbmFtZSwgSlNTdHJpbmdSZWYgdmFsdWUp
CiB7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oCmluZGV4IDY1YmJiODJh
MmNiNDEzZTcyMTk3MzhiZmE3ZTU4MzA3Y2JjY2RjMGUuLmMxY2EzNzZjYzE4MGM3Y2E5YzMyMzU1
ZTU2YmQ2Mjc1Yzc5OTZjNGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rl
c3RSdW5uZXJRdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5o
CkBAIC00OSwxNiArNDksMTQgQEAKIAogY2xhc3MgUVdlYkZyYW1lOwogY2xhc3MgRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ7Ci1uYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEdW1wUmVuZGVyVHJl
ZTsKLX0KIAogY2xhc3MgVGVzdFJ1bm5lclF0IDogcHVibGljIFFPYmplY3QgewogICAgIFFfT0JK
RUNUCiAgICAgUV9QUk9QRVJUWShpbnQgd2ViSGlzdG9yeUl0ZW1Db3VudCBSRUFEIHdlYkhpc3Rv
cnlJdGVtQ291bnQpCiAgICAgUV9QUk9QRVJUWShib29sIGdsb2JhbEZsYWcgUkVBRCBnbG9iYWxG
bGFnIFdSSVRFIHNldEdsb2JhbEZsYWcpCiBwdWJsaWM6Ci0gICAgVGVzdFJ1bm5lclF0KFdlYkNv
cmU6OkR1bXBSZW5kZXJUcmVlKik7CisgICAgVGVzdFJ1bm5lclF0KER1bXBSZW5kZXJUcmVlKik7
CiAKICAgICBib29sIHNob3VsZERpc2FsbG93SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVv
dGEoKSBjb25zdCB7IHJldHVybiBtX2Rpc2FsbG93SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hl
UXVvdGE7IH0KICAgICBib29sIHNob3VsZER1bXBBc1RleHQoKSBjb25zdCB7IHJldHVybiBtX3Rl
eHREdW1wOyB9CkBAIC0xODIsNyArMTgwLDYgQEAgcHVibGljIFFfU0xPVFM6CiAgICAgdm9pZCBz
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgZXhlY0Nv
bW1hbmQoY29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3QgUVN0cmluZyYgdmFsdWUgPSBRU3RyaW5n
KCkpOwogICAgIGJvb2wgaXNDb21tYW5kRW5hYmxlZChjb25zdCBRU3RyaW5nJiBuYW1lKSBjb25z
dDsKLSAgICBib29sIGZpbmRTdHJpbmcoY29uc3QgUVN0cmluZyYsIGNvbnN0IFFTdHJpbmdMaXN0
JiBvcHRpb25BcnJheSk7CiAKICAgICB2b2lkIGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5
KGNvbnN0IFFTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRpb25Q
cm90b2NvbCwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGlu
YXRpb25TdWJkb21haW5zKTsKICAgICB2b2lkIHJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVu
dHJ5KGNvbnN0IFFTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRp
b25Qcm90b2NvbCwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVz
dGluYXRpb25TdWJkb21haW5zKTsKQEAgLTI5OSw3ICsyOTYsNyBAQCBwcml2YXRlOgogICAgIFFV
cmwgbV91c2VyU3R5bGVTaGVldExvY2F0aW9uOwogICAgIFFCYXNpY1RpbWVyIG1fdGltZW91dFRp
bWVyOwogICAgIFFXZWJGcmFtZSogbV90b3BMb2FkaW5nRnJhbWU7Ci0gICAgV2ViQ29yZTo6RHVt
cFJlbmRlclRyZWUqIG1fZHJ0OworICAgIER1bXBSZW5kZXJUcmVlKiBtX2RydDsKICAgICBRV2Vi
SGlzdG9yeSogbV93ZWJIaXN0b3J5OwogICAgIGJvb2wgbV9pZ25vcmVEZXNrdG9wTm90aWZpY2F0
aW9uOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192738</attachid>
            <date>2013-03-12 08:08:02 -0700</date>
            <delta_ts>2013-03-13 05:53:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112147-20130312160400.patch</filename>
            <type>text/plain</type>
            <size>18946</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NDk4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZThjZGFkZjljODVkODdkMjlkZDU0OWY1YzgwNjc0ZTZl
ZWY1Njc4Ny4uYTBjMWFiOTM1ZGUwYmQwZjViMjQzMTE3ZmQyYzc1YmMzNzI3ZjVlNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
NSBAQAorMjAxMy0wMy0xMiAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBkaWdpYS5j
b20+CisKKyAgICAgICAgW1F0XSBQcmVwYXJlIERSVCBmb3IgdHJhbnNpdGlvbiB0byBzaGFyZWQg
VGVzdFJ1bm5lciBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExMjE0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFByZXBhcmUgUXQncyBEUlQgZm9yIGEgdHJhbnNpdGlvbiBmcm9tIHRoZSBR
T2JqZWN0IGJhc2VkIFRlc3RSdW5uZXIgdG8KKyAgICAgICAgdGhlIEpTQyBDIEFQSSBiYXNlZCBv
bmUuCisKKyAgICAgICAgVGhpcyBpcyBpbXBwbGVtZW50ZWQgYnkgaW5zdGFudGlhdGluZyB0aGUg
UU9iamVjdCBiYXNlZCB0ZXN0UnVubmVyIGluCisgICAgICAgIHRoZSBnbG9iYWwgb2JqZWN0LCB0
aGVuIGluc3RhbnRpYXRpbmcgdGhlIEpTQyBDIGJhc2VkIFRlc3RSdW5uZXIKKyAgICAgICAgc2Vw
YXJhdGVseSBhbmQgcGxhY2luZyBpdCAiYmVoaW5kIiB0aGUgUU9iamVjdCBiYXNlZCB0ZXN0UnVu
bmVyIHRocm91Z2gKKyAgICAgICAgaW5qZWN0aW9uIGluIHRoZSBwcm90b3R5cGUgY2hhaW4uIFRo
aXMgYWxsb3dzIGZvciBwb3J0aW5nIG92ZXIgbWV0aG9kCisgICAgICAgIGJ5IG1ldGhvZCBieSBy
ZW1vdmluZyB0aGUgbWV0aG9kIGZyb20gdGhlIFFPYmplY3QgVGVzdFJ1bm5lclF0IGFuZAorICAg
ICAgICBpbXBsZW1lbnRpbmcgaXQgaW4gdGhlIEpTQyBDIGJhc2VkIFRlc3RSdW5uZXIuCisKKyAg
ICAgICAgSW4gb3JkZXIgZm9yIHRoaXMgdG8gbGluayBhbmQgcnVuIGR1bW15IGltcGxlbWVudGF0
aW9ucyBvZiBhbGwgdGhlCisgICAgICAgIG5lY2Vzc2FyeSBUZXN0UnVubmVyIGZ1bmN0aW9ucyBh
cmUgcHJvdmlkZWQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJl
ZS5wcm86CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVNYWluLmNw
cDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkR1bXBSZW5kZXJUcmVlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlQmVm
b3JlVGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEdW1wUmVuZGVyVHJlZTo6aW5pdEpTT2Jq
ZWN0cyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oOgor
ICAgICAgICAoRHVtcFJlbmRlclRyZWUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rl
c3RSdW5uZXJRdC5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjp+VGVzdFJ1bm5lcik6CisgICAg
ICAgIChUZXN0UnVubmVyOjphZGREaXNhbGxvd2VkVVJMKToKKyAgICAgICAgKFRlc3RSdW5uZXI6
OnF1ZXVlTG9hZCk6CisgICAgICAgIChUZXN0UnVubmVyOjpyZW1vdmVBbGxWaXNpdGVkTGlua3Mp
OgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0QWNjZXB0c0VkaXRpbmcpOgorICAgICAgICAoVGVz
dFJ1bm5lcjo6c2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGljayk6CisgICAgICAgIChU
ZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleSk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRBbHdh
eXNBY2NlcHRDb29raWVzKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc1do
aXRlbGlzdEVudHJ5KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldFdlYlZpZXdFZGl0YWJsZSk6
CisgICAgICAgIChUZXN0UnVubmVyOjpjbGVhckFsbEFwcGxpY2F0aW9uQ2FjaGVzKToKKyAgICAg
ICAgKFRlc3RSdW5uZXI6OnNldFRleHREaXJlY3Rpb24pOgorICAgICAgICAoVGVzdFJ1bm5lcjo6
bm90aWZ5RG9uZSk6CisgICAgICAgIChUZXN0UnVubmVyOjpudW1iZXJPZlBlbmRpbmdHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0cyk6CisgICAgICAgIChUZXN0UnVubmVyOjpvdmVycmlkZVBy
ZWZlcmVuY2UpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6cGF0aFRvTG9jYWxSZXNvdXJjZSk6Cisg
ICAgICAgIChUZXN0UnVubmVyOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucyk6
CisgICAgICAgIChUZXN0UnVubmVyOjpzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKToKKyAg
ICAgICAgKFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcyk6CisgICAg
ICAgIChUZXN0UnVubmVyOjpmb2N1c1dlYlZpZXcpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0
QmFja2luZ1NjYWxlRmFjdG9yKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnJlbW92ZUNocm9tZUlu
cHV0RmllbGQpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6YWRkQ2hyb21lSW5wdXRGaWVsZCk6Cisg
ICAgICAgIChUZXN0UnVubmVyOjpvcmlnaW5zV2l0aExvY2FsU3RvcmFnZSk6CisgICAgICAgIChU
ZXN0UnVubmVyOjpkZWxldGVBbGxMb2NhbFN0b3JhZ2UpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6
ZGVsZXRlTG9jYWxTdG9yYWdlRm9yT3JpZ2luKToKKyAgICAgICAgKFRlc3RSdW5uZXI6Om9ic2Vy
dmVTdG9yYWdlVHJhY2tlck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c3lu
Y0xvY2FsU3RvcmFnZSk6CisgICAgICAgIChUZXN0UnVubmVyOjp3aW5kb3dDb3VudCk6CisgICAg
ICAgIChUZXN0UnVubmVyOjpzZXRXYWl0VG9EdW1wKToKKyAgICAgICAgKFRlc3RSdW5uZXI6Ondh
aXRGb3JQb2xpY3lEZWxlZ2F0ZSk6CisgICAgICAgIChUZXN0UnVubmVyOjp3ZWJIaXN0b3J5SXRl
bUNvdW50KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNob3dXZWJJbnNwZWN0b3IpOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6Y2xvc2VXZWJJbnNwZWN0b3IpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6
ZXZhbHVhdGVJbldlYkluc3BlY3Rvcik6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRTZXJpYWxp
emVIVFRQTG9hZHMpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6YXBpVGVzdE5ld1dpbmRvd0RhdGFM
b2FkQmFzZVVSTCk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0
ZSk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXREYXRhYmFzZVF1b3RhKToKKyAgICAgICAgKFRl
c3RSdW5uZXI6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUpOgorICAg
ICAgICAoVGVzdFJ1bm5lcjo6cmVzZXRQYWdlVmlzaWJpbGl0eSk6CisgICAgICAgIChUZXN0UnVu
bmVyOjprZWVwV2ViSGlzdG9yeSk6CisgICAgICAgIChUZXN0UnVubmVyOjpnb0JhY2spOgorICAg
ICAgICAoVGVzdFJ1bm5lcjo6b3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlKToKKyAgICAgICAg
KFRlc3RSdW5uZXI6OmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4pOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6ZGlzcGxheSk6CisgICAgICAgIChUZXN0UnVubmVyOjpkaXNwYXRjaFBl
bmRpbmdMb2FkUmVxdWVzdHMpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6Y2xlYXJQZXJzaXN0ZW50
VXNlclN0eWxlU2hlZXQpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6Y2FsbFNob3VsZENsb3NlT25X
ZWJWaWV3KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmNvcHlEZWNvZGVkSG9zdE5hbWUpOgorICAg
ICAgICAoVGVzdFJ1bm5lcjo6Y2xlYXJCYWNrRm9yd2FyZExpc3QpOgorICAgICAgICAoVGVzdFJ1
bm5lcjo6Y2xlYXJBbGxEYXRhYmFzZXMpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6Y2xlYXJBcHBs
aWNhdGlvbkNhY2hlRm9yT3JpZ2luKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmFwaVRlc3RHb1Rv
Q3VycmVudEJhY2tGb3J3YXJkSXRlbSk6CisgICAgICAgIChUZXN0UnVubmVyOjphdXRoZW50aWNh
dGVTZXNzaW9uKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmFib3J0TW9kYWwpOgorICAgICAgICAo
VGVzdFJ1bm5lcjo6c2V0U3RvcmFnZURhdGFiYXNlSWRsZUludGVydmFsKToKKyAgICAgICAgKFRl
c3RSdW5uZXI6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAg
KFRlc3RSdW5uZXI6OnNldFhTU0F1ZGl0b3JFbmFibGVkKToKKyAgICAgICAgKFRlc3RSdW5uZXI6
OnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRT
Y3JvbGxiYXJQb2xpY3kpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0SmF2YVNjcmlwdENhbkFj
Y2Vzc0NsaXBib2FyZCk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRBdXRvbWF0aWNMaW5rRGV0
ZWN0aW9uRW5hYmxlZCk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRVc2VyU3R5bGVTaGVldEVu
YWJsZWQpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbik6
CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRVc2VEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSk6
CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMpOgor
ICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAg
ICAgKFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAg
ICAgICAoVGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6CisgICAgICAgIChU
ZXN0UnVubmVyOjpzZXRQbHVnaW5zRW5hYmxlZCk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRQ
b3B1cEJsb2NraW5nRW5hYmxlZCk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRNb2NrU3BlZWNo
SW5wdXREdW1wUmVjdCk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRQZXJzaXN0ZW50VXNlclN0
eWxlU2hlZXRMb2NhdGlvbik6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRp
b25Qb3NpdGlvbik6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3Np
dGlvblVuYXZhaWxhYmxlRXJyb3IpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0TW9ja0Rldmlj
ZU9yaWVudGF0aW9uKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldE1haW5GcmFtZUlzRmlyc3RS
ZXNwb25kZXIpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0SWNvbkRhdGFiYXNlRW5hYmxlZCk6
CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24pOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6c2V0RGVmZXJzTG9hZGluZyk6CisgICAgICAgIChUZXN0UnVubmVyOjpz
ZXRDYWNoZU1vZGVsKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldEF1dGhvckFuZFVzZXJTdHls
ZXNFbmFibGVkKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldEFsbG93RmlsZUFjY2Vzc0Zyb21G
aWxlVVJMcyk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRBcHBDYWNoZU1heGltdW1TaXplKToK
KyAgICAgICAgKFRlc3RSdW5uZXI6OnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxz
KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSk6
CisgICAgICAgIChUZXN0UnVubmVyOjpkZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbik6Cisg
ICAgICAgIChUZXN0UnVubmVyOjpncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24pOgorICAg
ICAgICAoVGVzdFJ1bm5lcjo6c2V0VmFsdWVGb3JVc2VyKToKKyAgICAgICAgKFRlc3RSdW5uZXI6
OnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldFBhZ2VW
aXNpYmlsaXR5KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3Vs
dCk6CisgICAgICAgIChUZXN0UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRy
eSk6CisgICAgICAgIChUZXN0UnVubmVyOjphZGRVc2VyU2NyaXB0KToKKyAgICAgICAgKFRlc3RS
dW5uZXI6OmlzQ29tbWFuZEVuYWJsZWQpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6ZXZhbHVhdGVT
Y3JpcHRJbklzb2xhdGVkV29ybGQpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6ZXZhbHVhdGVTY3Jp
cHRJbklzb2xhdGVkV29ybGRBbmRSZXR1cm5WYWx1ZSk6CisgICAgICAgIChUZXN0UnVubmVyOjpj
b3B5RW5jb2RlZEhvc3ROYW1lKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmFkZFVzZXJTdHlsZVNo
ZWV0KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmZpbmRTdHJpbmcpOgorICAgICAgICAoVGVzdFJ1
bm5lcjo6ZXhlY0NvbW1hbmQpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6bG9jYWxTdG9yYWdlRGlz
a1VzYWdlRm9yT3JpZ2luKToKKwogMjAxMy0wMy0xMSAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW01hY11bV0sxXSBBZGQgc3VwcG9ydCBmb3IgYWxlcnQoKSBp
biBNaW5pQnJvd3Nlci4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBS
ZW5kZXJUcmVlLnBybyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlLnBy
bwppbmRleCBhMmY4NTYzMmM2NGNjNWI3NTNmNzVjMDdkNzY1OGYxMTZiMTBkM2Y3Li4xODRlNTZk
YmVlMTBlMzVkZmNmNzk1ZGExNjBiYWFmZWZmNTBlNGY0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZS5wcm8KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvRHVtcFJlbmRlclRyZWUucHJvCkBAIC0yNyw2ICsyNyw3IEBAIEhFQURFUlMgKz0gXAog
ICAgICQkUFdELy4uL1dvcmtRdWV1ZS5oIFwKICAgICAkJFBXRC8uLi9EdW1wUmVuZGVyVHJlZS5o
IFwKICAgICAkJFBXRC8uLi9HQ0NvbnRyb2xsZXIuaCBcCisgICAgJCRQV0QvLi4vVGV4dFJ1bm5l
ci5oIFwKICAgICBEdW1wUmVuZGVyVHJlZVF0LmggXAogICAgIEV2ZW50U2VuZGVyUXQuaCBcCiAg
ICAgVGV4dElucHV0Q29udHJvbGxlclF0LmggXApAQCAtMzgsNiArMzksNyBAQCBTT1VSQ0VTICs9
IFwKICAgICAkJFBXRC8uLi9Xb3JrUXVldWUuY3BwIFwKICAgICAkJFBXRC8uLi9EdW1wUmVuZGVy
VHJlZUNvbW1vbi5jcHAgXAogICAgICQkUFdELy4uL0dDQ29udHJvbGxlci5jcHAgXAorICAgICQk
UFdELy4uL1Rlc3RSdW5uZXIuY3BwIFwKICAgICBEdW1wUmVuZGVyVHJlZVF0LmNwcCBcCiAgICAg
RXZlbnRTZW5kZXJRdC5jcHAgXAogICAgIFRleHRJbnB1dENvbnRyb2xsZXJRdC5jcHAgXApkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVNYWluLmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlTWFpbi5jcHAKaW5kZXggNTAy
NmQzY2E0MzY1MjBjODA0YWU0Nzk5NWQ0MWFlMDZiMTRlYmVmOS4uMDVmNjFjNzc5OTVmMzE3ZGE4
YjU5ZWVmYjNkMTBkYWNjYjYxYjUzYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvRHVtcFJlbmRlclRyZWVNYWluLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9E
dW1wUmVuZGVyVHJlZU1haW4uY3BwCkBAIC00Miw3ICs0Miw2IEBACiAKIAogI2luY2x1ZGUgPHd0
Zi9BbHdheXNJbmxpbmUuaD4KLSNpbmNsdWRlIDx3dGYvRXhwb3J0TWFjcm9zLmg+CiAKICNpZmRl
ZiBRX1dTX1gxMQogI2luY2x1ZGUgPHF4MTFpbmZvX3gxMS5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcAppbmRleCAyM2ZkMzVjMWM2ZmI1ZjE3OTMzYjY1
MzJiZDRjODc0MTcwMGU4Y2QyLi4xNzdhMDM4ZDg3MjUxMjE1MmM0MzQ2NDQ5MWQzZDE1MzYwNzQy
Y2MwIDEwMDc1NQotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcApA
QCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkluaXRXZWJDb3JlUXQuaCIKICNpbmNsdWRlICJJ
bml0V2ViS2l0UXQuaCIKICNpbmNsdWRlICJRdFRlc3RTdXBwb3J0LmgiCisjaW5jbHVkZSAiVGVz
dFJ1bm5lci5oIgogI2luY2x1ZGUgIlRlc3RSdW5uZXJRdC5oIgogI2luY2x1ZGUgIlRleHRJbnB1
dENvbnRyb2xsZXJRdC5oIgogI2luY2x1ZGUgInRlc3RwbHVnaW4uaCIKQEAgLTUyNCw2ICs1MjUs
OCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVz
dGluZyhjb25zdCBRVXJsJiB1cmwpCiAgICAgLy8gb2YgdGhlIERSVC4KICAgICBtX2NvbnRyb2xs
ZXItPnJlc2V0KCk7CiAKKyAgICBtX2pzY0NvbnRyb2xsZXIgPSBUZXN0UnVubmVyOjpjcmVhdGUo
dXJsLnRvU3RyaW5nKCkudG9TdGRTdHJpbmcoKSwgbV9leHBlY3RlZEhhc2gudG9TdGRTdHJpbmco
KSk7CisKICAgICAvLyByZXNldCBtb3VzZSBjbGlja3MgY291bnRlcgogICAgIG1fZXZlbnRTZW5k
ZXItPnJlc2V0Q2xpY2tDb3VudCgpOwogCkBAIC03NDYsNiArNzQ5LDE1IEBAIHZvaWQgRHVtcFJl
bmRlclRyZWU6OmluaXRKU09iamVjdHMoKQogICAgIGZyYW1lLT5hZGRUb0phdmFTY3JpcHRXaW5k
b3dPYmplY3QoUUxhdGluMVN0cmluZygidGV4dElucHV0Q29udHJvbGxlciIpLCBtX3RleHRJbnB1
dENvbnRyb2xsZXIpOwogICAgIG1fZ2NDb250cm9sbGVyLT5tYWtlV2luZG93T2JqZWN0KGNvbnRl
eHQsIHdpbmRvdywgMCk7CiAKKyAgICBpZiAobV9qc2NDb250cm9sbGVyKSB7CisgICAgICAgIEpT
T2JqZWN0UmVmIGR1bW15V2luZG93ID0gSlNPYmplY3RNYWtlKGNvbnRleHQsIDAsIDApOworICAg
ICAgICBtX2pzY0NvbnRyb2xsZXItPm1ha2VXaW5kb3dPYmplY3QoY29udGV4dCwgZHVtbXlXaW5k
b3csIDApOworICAgICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gdGVzdFJ1bm5lck5hbWUo
QWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJ0ZXN0UnVubmVyIikpOworICAg
ICAgICBKU1ZhbHVlUmVmIHdyYXBwZWRUZXN0UnVubmVyID0gSlNPYmplY3RHZXRQcm9wZXJ0eShj
b250ZXh0LCBkdW1teVdpbmRvdywgdGVzdFJ1bm5lck5hbWUuZ2V0KCksIDApOworICAgICAgICBK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gaGVscGVyU2NyaXB0KEFkb3B0LCBKU1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygidGVzdFJ1bm5lci5fX3Byb3RvX18gPSB0aGlzIikpOworICAgICAg
ICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIGhlbHBlclNjcmlwdC5nZXQoKSwgSlNWYWx1ZVRv
T2JqZWN0KGNvbnRleHQsIHdyYXBwZWRUZXN0UnVubmVyLCAwKSwgMCwgMCwgMCk7CisgICAgfQor
CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmluamVjdEludGVybmFsc09iamVjdChmcmFt
ZS0+aGFuZGxlKCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9E
dW1wUmVuZGVyVHJlZVF0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJl
ZVF0LmgKaW5kZXggZGM1NTAwYTQxNzcwOTAxOTc1NzkwNWVmOGYxNmM5ZDQ5NjgxMjc4MC4uNjFk
MDdjZDY3MTJkOGM0ODZjOTNhYmVlMTc3NTJiMDg0MzYxYTYxYiAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuaApAQCAtNDEsMTIgKzQxLDE0IEBACiAjZW5kaWYK
IAogI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgiCisjaW5jbHVkZSAiVGVzdFJ1
bm5lci5oIgogI2luY2x1ZGUgPHFncmFwaGljc3ZpZXcuaD4KICNpbmNsdWRlIDxxZ3JhcGhpY3N3
ZWJ2aWV3Lmg+CiAjaW5jbHVkZSA8cXdlYmZyYW1lLmg+CiAjaW5jbHVkZSA8cXdlYmluc3BlY3Rv
ci5oPgogI2luY2x1ZGUgPHF3ZWJwYWdlLmg+CiAjaW5jbHVkZSA8cXdlYnZpZXcuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKIFFUX0JFR0lOX05BTUVTUEFDRQogY2xhc3MgUVVybDsKQEAg
LTE0NCw2ICsxNDYsNyBAQCBwcml2YXRlOgogICAgIFFTdHJpbmcgZHVtcEJhY2tGb3J3YXJkTGlz
dChRV2ViUGFnZSogcGFnZSk7CiAgICAgUVN0cmluZyBkdW1wRnJhbWVTY3JvbGxQb3NpdGlvbihR
V2ViRnJhbWUqIGZyYW1lKTsKICAgICBUZXN0UnVubmVyUXQgKm1fY29udHJvbGxlcjsKKyAgICBS
ZWZQdHI8VGVzdFJ1bm5lcj4gbV9qc2NDb250cm9sbGVyOwogCiAgICAgYm9vbCBtX2R1bXBQaXhl
bHNGb3JDdXJyZW50VGVzdDsKICAgICBib29sIG1fZHVtcFBpeGVsc0ZvckFsbFRlc3RzOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKaW5kZXggZTVlODI0MzBlMTdkZTI5
NjE3OTMzNWQ0ZTY1NTg1ZDFiNGM3MjljMC4uZmQwMTg2MGU1ZjQyNGYzMjRkNmM0NGVhYjZkODU2
MzNjZjNhMDFmNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5l
clF0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCkBA
IC00OCw2ICs0OCwxMCBAQCBUZXN0UnVubmVyUXQ6OlRlc3RSdW5uZXJRdChXZWJDb3JlOjpEdW1w
UmVuZGVyVHJlZSogZHJ0KQogICAgIHJlc2V0KCk7CiB9CiAKK1Rlc3RSdW5uZXI6On5UZXN0UnVu
bmVyKCkKK3sKK30KKwogdm9pZCBUZXN0UnVubmVyUXQ6OnJlc2V0KCkKIHsKICAgICBtX2hhc0R1
bXBlZCA9IGZhbHNlOwpAQCAtOTI2LDMgKzkzMCw0ODggQEAgdm9pZCBUZXN0UnVubmVyUXQ6OnNl
dEF1ZGlvRGF0YShjb25zdCBRQnl0ZUFycmF5JiBhdWRpb0RhdGEpCiAKIGNvbnN0IHVuc2lnbmVk
IFRlc3RSdW5uZXJRdDo6bWF4Vmlld1dpZHRoID0gODAwOwogY29uc3QgdW5zaWduZWQgVGVzdFJ1
bm5lclF0OjptYXhWaWV3SGVpZ2h0ID0gNjAwOworCisvLyAtLS0gSlNDIEMgQVBJIHN0dWJzCisK
K3ZvaWQgVGVzdFJ1bm5lcjo6YWRkRGlzYWxsb3dlZFVSTChKU1N0cmluZ1JlZiB1cmwpCit7Cit9
CisKK3ZvaWQgVGVzdFJ1bm5lcjo6cXVldWVMb2FkKEpTU3RyaW5nUmVmIHVybCwgSlNTdHJpbmdS
ZWYgdGFyZ2V0KQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnJlbW92ZUFsbFZpc2l0ZWRMaW5r
cygpCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0QWNjZXB0c0VkaXRpbmcoYm9vbCkKK3sK
K30KKwordm9pZCBUZXN0UnVubmVyOjpzaW11bGF0ZUxlZ2FjeVdlYk5vdGlmaWNhdGlvbkNsaWNr
KEpTU3RyaW5nUmVmIHRpdGxlKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lz
S2V5KGJvb2wpCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0QWx3YXlzQWNjZXB0Q29va2ll
cyhib29sKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlz
dEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Q
cm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRp
b25TdWJkb21haW5zKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNldFdlYlZpZXdFZGl0YWJs
ZShib29sKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OmNsZWFyQWxsQXBwbGljYXRpb25DYWNo
ZXMoKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNldFRleHREaXJlY3Rpb24oSlNTdHJpbmdS
ZWYpCit7Cit9CisKKworCit2b2lkIFRlc3RSdW5uZXI6Om5vdGlmeURvbmUoKQoreworfQorCitp
bnQgVGVzdFJ1bm5lcjo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dHMoKQoreworICAgIHJldHVybiAwOworfQorCit2b2lkIFRlc3RSdW5uZXI6Om92ZXJyaWRlUHJl
ZmVyZW5jZShKU1N0cmluZ1JlZiBrZXksIEpTU3RyaW5nUmVmIHZhbHVlKQoreworfQorCitKU1N0
cmluZ1JlZiBUZXN0UnVubmVyOjpwYXRoVG9Mb2NhbFJlc291cmNlKEpTQ29udGV4dFJlZiwgSlNT
dHJpbmdSZWYgdXJsKQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygwKTsgLy8gIyMjIFRha2UgaW1wbCBmcm9tIFdUUgorfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6
cmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKQoreworfQorCit2b2lkIFRlc3RS
dW5uZXI6OnNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2soSlNWYWx1ZVJlZiBub3RpZmljYXRp
b24pCit7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjpjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRh
YmFzZXMoKQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6Zm9jdXNXZWJWaWV3KCkKK3sKK30K
Kwordm9pZCBUZXN0UnVubmVyOjpzZXRCYWNraW5nU2NhbGVGYWN0b3IoZG91YmxlKQoreworfQor
CisKK3ZvaWQgVGVzdFJ1bm5lcjo6cmVtb3ZlQ2hyb21lSW5wdXRGaWVsZCgpCit7Cit9CisKKwor
dm9pZCBUZXN0UnVubmVyOjphZGRDaHJvbWVJbnB1dEZpZWxkKCkKK3sKK30KKworCitKU1ZhbHVl
UmVmIFRlc3RSdW5uZXI6Om9yaWdpbnNXaXRoTG9jYWxTdG9yYWdlKEpTQ29udGV4dFJlZiBjb250
ZXh0KQoreworICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bGwoY29udGV4dCk7Cit9CisKK3ZvaWQg
VGVzdFJ1bm5lcjo6ZGVsZXRlQWxsTG9jYWxTdG9yYWdlKCkKK3sKK30KKwordm9pZCBUZXN0UnVu
bmVyOjpkZWxldGVMb2NhbFN0b3JhZ2VGb3JPcmlnaW4oSlNTdHJpbmdSZWYgb3JpZ2luSWRlbnRp
ZmllcikKK3sKK30KKworCit2b2lkIFRlc3RSdW5uZXI6Om9ic2VydmVTdG9yYWdlVHJhY2tlck5v
dGlmaWNhdGlvbnModW5zaWduZWQgbnVtYmVyKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnN5
bmNMb2NhbFN0b3JhZ2UoKQoreworfQorCisKK2ludCBUZXN0UnVubmVyOjp3aW5kb3dDb3VudCgp
Cit7CisgICAgcmV0dXJuIDA7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjpzZXRXYWl0VG9EdW1w
KGJvb2wpCit7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjp3YWl0Rm9yUG9saWN5RGVsZWdhdGUo
KQoreworfQorCitzaXplX3QgVGVzdFJ1bm5lcjo6d2ViSGlzdG9yeUl0ZW1Db3VudCgpCit7Cisg
ICAgcmV0dXJuIDA7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjpzaG93V2ViSW5zcGVjdG9yKCkK
K3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpjbG9zZVdlYkluc3BlY3RvcigpCit7Cit9CisKK3Zv
aWQgVGVzdFJ1bm5lcjo6ZXZhbHVhdGVJbldlYkluc3BlY3Rvcihsb25nIGNhbGxJZCwgSlNTdHJp
bmdSZWYgc2NyaXB0KQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VyaWFsaXplSFRU
UExvYWRzKGJvb2wpCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6YXBpVGVzdE5ld1dpbmRvd0Rh
dGFMb2FkQmFzZVVSTChKU1N0cmluZ1JlZiB1dGY4RGF0YSwgSlNTdHJpbmdSZWYgYmFzZVVSTCkK
K3sKK30KKworCit2b2lkIFRlc3RSdW5uZXI6OnNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2wg
c2V0RGVsZWdhdGUsIGJvb2wgcGVybWlzc2l2ZSkKK3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpz
ZXREYXRhYmFzZVF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkKK3sKK30KKwordm9pZCBU
ZXN0UnVubmVyOjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJvb2wg
Zm9yYmlkZGVuLCBKU1N0cmluZ1JlZiBzY2hlbWUpCit7Cit9CisKKwordm9pZCBUZXN0UnVubmVy
OjpyZXNldFBhZ2VWaXNpYmlsaXR5KCkKK3sKK30KKworCit2b2lkIFRlc3RSdW5uZXI6OmtlZXBX
ZWJIaXN0b3J5KCkKK3sKK30KKworCit2b2lkIFRlc3RSdW5uZXI6OmdvQmFjaygpCit7Cit9CisK
K0pTVmFsdWVSZWYgVGVzdFJ1bm5lcjo6b3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlKEpTQ29u
dGV4dFJlZiBjb250ZXh0KQoreworICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bGwoY29udGV4dCk7
Cit9CisKK2xvbmcgbG9uZyBUZXN0UnVubmVyOjphcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9y
T3JpZ2luKEpTU3RyaW5nUmVmIG5hbWUpCit7CisgICAgcmV0dXJuIDA7Cit9CisKKwordm9pZCBU
ZXN0UnVubmVyOjpkaXNwbGF5KCkKK3sKK30KKworCit2b2lkIFRlc3RSdW5uZXI6OmRpc3BhdGNo
UGVuZGluZ0xvYWRSZXF1ZXN0cygpCit7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjpjbGVhclBl
cnNpc3RlbnRVc2VyU3R5bGVTaGVldCgpCit7Cit9CisKK2Jvb2wgVGVzdFJ1bm5lcjo6Y2FsbFNo
b3VsZENsb3NlT25XZWJWaWV3KCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0pTU3RyaW5n
UmVmIFRlc3RSdW5uZXI6OmNvcHlEZWNvZGVkSG9zdE5hbWUoSlNTdHJpbmdSZWYgbmFtZSkKK3sK
KyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoMCk7Cit9CisKKwordm9p
ZCBUZXN0UnVubmVyOjpjbGVhckJhY2tGb3J3YXJkTGlzdCgpCit7Cit9CisKKwordm9pZCBUZXN0
UnVubmVyOjpjbGVhckFsbERhdGFiYXNlcygpCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xl
YXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2luKEpTU3RyaW5nUmVmIG5hbWUpCit7Cit9CisKKwor
dm9pZCBUZXN0UnVubmVyOjphcGlUZXN0R29Ub0N1cnJlbnRCYWNrRm9yd2FyZEl0ZW0oKQorewor
fQorCit2b2lkIFRlc3RSdW5uZXI6OmF1dGhlbnRpY2F0ZVNlc3Npb24oSlNTdHJpbmdSZWYgdXJs
LCBKU1N0cmluZ1JlZiB1c2VybmFtZSwgSlNTdHJpbmdSZWYgcGFzc3dvcmQpCit7Cit9CisKKwor
dm9pZCBUZXN0UnVubmVyOjphYm9ydE1vZGFsKCkKK3sKK30KKworCit2b2lkIFRlc3RSdW5uZXI6
OnNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJbnRlcnZhbChkb3VibGUpCit7Cit9CisKKwordm9pZCBU
ZXN0UnVubmVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKQorewor
fQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0WFNTQXVkaXRvckVuYWJsZWQoYm9vbCBmbGFnKQor
eworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChib29s
KQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNldFNjcm9sbGJhclBvbGljeShKU1N0cmluZ1Jl
ZiBvcmllbnRhdGlvbiwgSlNTdHJpbmdSZWYgcG9saWN5KQoreworfQorCisKK3ZvaWQgVGVzdFJ1
bm5lcjo6c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChib29sIGZsYWcpCit7Cit9CisK
K3ZvaWQgVGVzdFJ1bm5lcjo6c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQoYm9vbCBm
bGFnKQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0VXNlclN0eWxlU2hlZXRFbmFibGVk
KGJvb2wgZmxhZykKK3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpzZXRVc2VyU3R5bGVTaGVldExv
Y2F0aW9uKEpTU3RyaW5nUmVmIHBhdGgpCit7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjpzZXRV
c2VEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZShib29sIGZsYWcpCit7Cit9CisKKwordm9pZCBU
ZXN0UnVubmVyOjpzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoYm9vbCkKK3sKK30KKwor
Cit2b2lkIFRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKQorewor
fQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZChib29sKQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChib29sKQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0UGx1Z2luc0VuYWJsZWQo
Ym9vbCkKK3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChi
b29sKQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja1NwZWVjaElucHV0RHVtcFJl
Y3QoYm9vbCBmbGFnKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNldFBlcnNpc3RlbnRVc2Vy
U3R5bGVTaGVldExvY2F0aW9uKEpTU3RyaW5nUmVmIHBhdGgpCit7Cit9CisKKwordm9pZCBUZXN0
UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJs
ZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlLCBkb3Vi
bGUgYWx0aXR1ZGUsIGJvb2wgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1
ZGVBY2N1cmFjeSwgYm9vbCBwcm92aWRlc0hlYWRpbmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIHBy
b3ZpZGVzU3BlZWQsIGRvdWJsZSBzcGVlZCkKK3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpzZXRN
b2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoSlNTdHJpbmdSZWYgbWVzc2Fn
ZSkKK3sKK30KKworCit2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihi
b29sIGNhblByb3ZpZGVBbHBoYSwgZG91YmxlIGFscGhhLCBib29sIGNhblByb3ZpZGVCZXRhLCBk
b3VibGUgYmV0YSwgYm9vbCBjYW5Qcm92aWRlR2FtbWEsIGRvdWJsZSBnYW1tYSkKK3sKK30KKwor
Cit2b2lkIFRlc3RSdW5uZXI6OnNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXIoYm9vbCBmbGFn
KQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0SWNvbkRhdGFiYXNlRW5hYmxlZChib29s
KQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGJv
b2wgYWxsb3cpCit7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjpzZXREZWZlcnNMb2FkaW5nKGJv
b2wpCit7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjpzZXRDYWNoZU1vZGVsKGludCkKK3sKK30K
KworCit2b2lkIFRlc3RSdW5uZXI6OnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKGJvb2wp
Cit7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjpzZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVS
THMoYm9vbCkKK3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpzZXRBcHBDYWNoZU1heGltdW1TaXpl
KHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkKK3sKK30KKworCit2b2lkIFRlc3RSdW5uZXI6OnNl
dEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wpCit7Cit9CisKKwordm9pZCBU
ZXN0UnVubmVyOjpzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBs
b25nKQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6ZGVueVdlYk5vdGlmaWNhdGlvblBlcm1p
c3Npb24oSlNTdHJpbmdSZWYgb3JpZ2luKQoreworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6Z3Jh
bnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKEpTU3RyaW5nUmVmIG9yaWdpbikKK3sKK30KKwor
Cit2b2lkIFRlc3RSdW5uZXI6OnNldFZhbHVlRm9yVXNlcihKU0NvbnRleHRSZWYsIEpTVmFsdWVS
ZWYgbm9kZU9iamVjdCwgSlNTdHJpbmdSZWYgdmFsdWUpCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5l
cjo6c2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoSlNTdHJpbmdSZWYpCit7Cit9CisKKwordm9pZCBU
ZXN0UnVubmVyOjpzZXRQYWdlVmlzaWJpbGl0eShjb25zdCBjaGFyICopCit7Cit9CisKKwordm9p
ZCBUZXN0UnVubmVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoSlNTdHJpbmdSZWYgcmVzdWx0
LCBkb3VibGUgY29uZmlkZW5jZSwgSlNTdHJpbmdSZWYgbGFuZ3VhZ2UpCit7Cit9CisKKwordm9p
ZCBUZXN0UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1Jl
ZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5n
UmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKK3sK
K30KKwordm9pZCBUZXN0UnVubmVyOjphZGRVc2VyU2NyaXB0KEpTU3RyaW5nUmVmIHNvdXJjZSwg
Ym9vbCBydW5BdFN0YXJ0LCBib29sIGFsbEZyYW1lcykKK3sKK30KKworCitib29sIFRlc3RSdW5u
ZXI6OmlzQ29tbWFuZEVuYWJsZWQoSlNTdHJpbmdSZWYgbmFtZSkKK3sKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKKwordm9pZCBUZXN0UnVubmVyOjpldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3Js
ZCh1bnNpZ25lZCB3b3JsZElELCBKU09iamVjdFJlZiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nUmVm
IHNjcmlwdCkKK3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpldmFsdWF0ZVNjcmlwdEluSXNvbGF0
ZWRXb3JsZEFuZFJldHVyblZhbHVlKHVuc2lnbmVkIHdvcmxkSUQsIEpTT2JqZWN0UmVmIGdsb2Jh
bE9iamVjdCwgSlNTdHJpbmdSZWYgc2NyaXB0KQoreworfQorCisKK0pTU3RyaW5nUmVmIFRlc3RS
dW5uZXI6OmNvcHlFbmNvZGVkSG9zdE5hbWUoSlNTdHJpbmdSZWYgbmFtZSkKK3sKKyAgICByZXR1
cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoMCk7Cit9CisKKwordm9pZCBUZXN0UnVu
bmVyOjphZGRVc2VyU3R5bGVTaGVldChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgYWxsRnJhbWVz
KQoreworfQorCisKK2Jvb2wgVGVzdFJ1bm5lcjo6ZmluZFN0cmluZyhKU0NvbnRleHRSZWYsIEpT
U3RyaW5nUmVmLCBKU09iamVjdFJlZiBvcHRpb25zQXJyYXkpCit7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCisKK3ZvaWQgVGVzdFJ1bm5lcjo6ZXhlY0NvbW1hbmQoSlNTdHJpbmdSZWYgbmFtZSwg
SlNTdHJpbmdSZWYgdmFsdWUpCit7Cit9CisKKworbG9uZyBsb25nIFRlc3RSdW5uZXI6OmxvY2Fs
U3RvcmFnZURpc2tVc2FnZUZvck9yaWdpbihKU1N0cmluZ1JlZiBvcmlnaW5JZGVudGlmaWVyKQor
eworICAgIHJldHVybiAwOworfQorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192907</attachid>
            <date>2013-03-13 05:53:31 -0700</date>
            <delta_ts>2013-03-13 07:06:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112147-20130313134931.patch</filename>
            <type>text/plain</type>
            <size>14256</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NzA4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzNlNzgzMWM1NDQxMzJiOWZmZWNmOTkxZWU0YzgzOGRk
ODllY2ZhMC4uZDNkODA4MzVlOGIzOGMyODI4ZTk1Y2U0YmQ5OTUyZmIzYjQ2NjM2NiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ1
IEBACiAyMDEzLTAzLTEyICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQGRpZ2lhLmNv
bT4KIAorICAgICAgICBbUXRdIFBvcnQgVGVzdFJ1bm5lcjo6ZmluZFN0cmluZyB0byBzaGFyZWQg
aW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTIxNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIGlzIGEgc3RyYWlnaHQtZm9yd2FyZCBwb3J0IHRoYXQganVzdCByZXF1aXJlcyBjb252
ZXJ0aW5nIGEgSlMKKyAgICAgICAgYXJyYXkgdG8gYSBRU3RyaW5nTGlzdCAoc29tZXRoaW5nIHBy
ZXZpb3VzbHkgZG9uZSBhdXRvbWF0aWNhbGx5IGluIHRoZQorICAgICAgICBRT2JqZWN0IGJyaWRn
ZSkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIHJlbW92ZXMgRHVtcFJlbmRlclRyZWUgYW5k
IHNvbWUgb3RoZXIgaGVscGVyIGNsYXNzZXMgZnJvbQorICAgICAgICB0aGUgV2ViQ29yZSBuYW1l
c3BhY2UsIHRvIHdoaWNoIHRoZXkgZG8gbm90IHJlYWxseSBiZWxvbmcuCisKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZU1haW4uY3BwOgorICAgICAgICAobWFpbik6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHA6CisgICAg
ICAgIChEdW1wUmVuZGVyVHJlZTo6RHVtcFJlbmRlclRyZWUpOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWU6On5EdW1wUmVuZGVyVHJlZSk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZTo6aW5zdGFu
Y2UpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWU6OnNldFNob3VsZFRpbWVvdXQpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuaDoKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmNw
cDoKKyAgICAgICAgKEV2ZW50U2VuZGVyOjpjb250ZXh0Q2xpY2spOgorICAgICAgICAoRXZlbnRT
ZW5kZXI6OnNlbmRFdmVudCk6CisgICAgICAgIChFdmVudFNlbmRlcjo6cG9zdEV2ZW50KToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0Lmg6CisgICAgICAgIChFdmVu
dFNlbmRlcjo6aXNHcmFwaGljc0Jhc2VkKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9U
ZXN0UnVubmVyUXQuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lclF0OjpUZXN0UnVubmVyUXQpOgor
ICAgICAgICAoVGVzdFJ1bm5lcjo6ZmluZFN0cmluZyk6CisgICAgICAgIChUZXN0UnVubmVyUXQ6
OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbik6CisgICAgICAgIChUZXN0UnVubmVyUXQ6OnNldEdl
b2xvY2F0aW9uUGVybWlzc2lvbik6CisgICAgICAgIChUZXN0UnVubmVyUXQ6Om51bWJlck9mUGVu
ZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKToKKyAgICAgICAgKFRlc3RSdW5uZXJR
dDo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKToKKyAgICAgICAg
KFRlc3RSdW5uZXJRdDo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24pOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oOgorICAgICAgICAoVGVzdFJ1bm5lclF0KToK
KworMjAxMy0wMy0xMiAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBkaWdpYS5jb20+
CisKICAgICAgICAgW1F0XSBQcmVwYXJlIERSVCBmb3IgdHJhbnNpdGlvbiB0byBzaGFyZWQgVGVz
dFJ1bm5lciBpbnRlcmZhY2UKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMjE0NAogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9E
dW1wUmVuZGVyVHJlZU1haW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRl
clRyZWVNYWluLmNwcAppbmRleCAwNWY2MWM3Nzk5NWYzMTdkYThiNTllZWZiM2QxMGRhY2NiNjFi
NTNjLi42Yjg2ZTlkODdmODc4MzkzZTQ3MjYyNzljY2Q4NDgzYTI1NzMxODJmIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZU1haW4uY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlTWFpbi5jcHAKQEAgLTEzNSw3ICsx
MzUsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIC8vIFJlbW92ZSB0
aGUgZmlyc3QgYXJndW1lbnRzLCBpdCBpcyBhcHBsaWNhdGlvbiBuYW1lIGl0c2VsZgogICAgIGFy
Z3MucmVtb3ZlQXQoMCk7CiAKLSAgICBXZWJDb3JlOjpEdW1wUmVuZGVyVHJlZSBkdW1wZXI7Cisg
ICAgRHVtcFJlbmRlclRyZWUgZHVtcGVyOwogCiAgICAgaW50IGluZGV4ID0gYXJncy5pbmRleE9m
KFFMYXRpbjFTdHJpbmcoIi0tc3Rkb3V0IikpOwogICAgIGlmIChpbmRleCAhPSAtMSkgewpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcAppbmRleCA3YWVjZjFm
MWFlNzQzODE3NDdhOTVmNjBmOTM3N2UyMmJhNTRjMGYzLi43ZTBmZjBkODYwNmQ1N2U3ZmUyZGU4
NDQwMDZkMTJlYzhkY2NjMGI5IDEwMDc1NQotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9E
dW1wUmVuZGVyVHJlZVF0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVu
ZGVyVHJlZVF0LmNwcApAQCAtNzQsNyArNzQsNyBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2Vu
ZGlmCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBj
b25zdCBpbnQgZGF0YWJhc2VEZWZhdWx0UXVvdGEgPSA1ICogMTAyNCAqIDEwMjQ7CiAKQEAgLTM4
NSw2ICszODUsOCBAQCBXZWJWaWV3R3JhcGhpY3NCYXNlZDo6V2ViVmlld0dyYXBoaWNzQmFzZWQo
UVdpZGdldCogcGFyZW50KQogICAgIHNjZW5lKCktPmFkZEl0ZW0obV9pdGVtKTsKIH0KIAorc3Rh
dGljIER1bXBSZW5kZXJUcmVlICpzX2luc3RhbmNlOworCiBEdW1wUmVuZGVyVHJlZTo6RHVtcFJl
bmRlclRyZWUoKQogICAgIDogbV9kdW1wUGl4ZWxzRm9yQWxsVGVzdHMoZmFsc2UpCiAgICAgLCBt
X3N0ZGluKDApCkBAIC0zOTMsNiArMzk1LDkgQEAgRHVtcFJlbmRlclRyZWU6OkR1bXBSZW5kZXJU
cmVlKCkKICAgICAsIG1fZ3JhcGhpY3NCYXNlZChmYWxzZSkKICAgICAsIG1fcGVyc2lzdGVudFN0
b3JhZ2VQYXRoKFFTdHJpbmcoZ2V0ZW52KCJEVU1QUkVOREVSVFJFRV9URU1QIikpKQogeworICAg
IEFTU0VSVCghc19pbnN0YW5jZSk7CisgICAgc19pbnN0YW5jZSA9IHRoaXM7CisKICAgICBRQnl0
ZUFycmF5IHZpZXdNb2RlID0gZ2V0ZW52KCJRVF9EUlRfV0VCVklFV19NT0RFIik7CiAgICAgaWYg
KHZpZXdNb2RlID09ICJncmFwaGljcyIpCiAgICAgICAgIHNldEdyYXBoaWNzQmFzZWQodHJ1ZSk7
CkBAIC00ODUsNiArNDkwLDEyIEBAIER1bXBSZW5kZXJUcmVlOjp+RHVtcFJlbmRlclRyZWUoKQog
ICAgICAgICBmY2xvc2Uoc3RkZXJyKTsKICAgICBkZWxldGUgbV9tYWluVmlldzsKICAgICBkZWxl
dGUgbV9zdGRpbjsKKyAgICBzX2luc3RhbmNlID0gMDsKK30KKworRHVtcFJlbmRlclRyZWUqIER1
bXBSZW5kZXJUcmVlOjppbnN0YW5jZSgpCit7CisgICAgcmV0dXJuIHNfaW5zdGFuY2U7CiB9CiAK
IHN0YXRpYyB2b2lkIGNsZWFySGlzdG9yeShRV2ViUGFnZSogcGFnZSkKQEAgLTEyMTcsNSArMTIy
OCwzIEBAIHZvaWQgRHVtcFJlbmRlclRyZWU6OnNldFNob3VsZFRpbWVvdXQoYm9vbCBmbGFnKQog
ewogICAgIG1fY29udHJvbGxlci0+c2V0U2hvdWxkVGltZW91dChmbGFnKTsKIH0KLQotfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oCmluZGV4IDYxZDA3Y2Q2NzEy
ZDhjNDg2YzkzYWJlZTE3NzUyYjA4NDM2MWE2MWIuLjEzZDllNjU0OWJjZjkzODc1ZWU2ZWZiYWRh
YmUwNjU0YjM3ZDk0ZDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBS
ZW5kZXJUcmVlUXQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJl
ZVF0LmgKQEAgLTY0LDggKzY0LDYgQEAgY2xhc3MgRXZlbnRTZW5kZXI7CiBjbGFzcyBUZXh0SW5w
dXRDb250cm9sbGVyOwogY2xhc3MgR0NDb250cm9sbGVyOwogCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KIGNsYXNzIFdlYlBhZ2U7CiBjbGFzcyBOZXR3b3JrQWNjZXNzTWFuYWdlcjsKIApAQCAtNzYs
NiArNzQsOCBAQCBwdWJsaWM6CiAgICAgRHVtcFJlbmRlclRyZWUoKTsKICAgICB2aXJ0dWFsIH5E
dW1wUmVuZGVyVHJlZSgpOwogCisgICAgc3RhdGljIER1bXBSZW5kZXJUcmVlKiBpbnN0YW5jZSgp
OworCiAgICAgLy8gSW5pdGlhbGl6ZSBpbiBzaW5nbGUtZmlsZSBtb2RlLgogICAgIHZvaWQgb3Bl
bihjb25zdCBRVXJsJiB1cmwpOwogCkBAIC0yMzgsNiArMjM4LDQgQEAgcHJpdmF0ZToKICAgICBR
R3JhcGhpY3NXZWJWaWV3KiBtX2l0ZW07CiB9OwogCi19Ci0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRXZlbnRTZW5kZXJRdC5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmNwcAppbmRleCA4MGJlMTMxNzg4ZDJiOWIyMDhmNTNm
OGRkNjU1Nzc0NDFhOGNhZDEyLi5iZjY0NTA4ZWY4YzU1YTcwYzlkZWU0NTM0Y2JhMDYxYjUzODM5
ZjZlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmNwcApAQCAtNDI0
LDcgKzQyNCw3IEBAIFFTdHJpbmdMaXN0IEV2ZW50U2VuZGVyOjpjb250ZXh0Q2xpY2soKQogICAg
ICAgICBRR3JhcGhpY3NTY2VuZUNvbnRleHRNZW51RXZlbnQgY3R4RXZlbnQoUUV2ZW50OjpHcmFw
aGljc1NjZW5lQ29udGV4dE1lbnUpOwogICAgICAgICBjdHhFdmVudC5zZXRSZWFzb24oUUdyYXBo
aWNzU2NlbmVDb250ZXh0TWVudUV2ZW50OjpNb3VzZSk7CiAgICAgICAgIGN0eEV2ZW50LnNldFBv
cyhtX21vdXNlUG9zKTsKLSAgICAgICAgV2ViQ29yZTo6V2ViVmlld0dyYXBoaWNzQmFzZWQqIHZp
ZXcgPSBxb2JqZWN0X2Nhc3Q8V2ViQ29yZTo6V2ViVmlld0dyYXBoaWNzQmFzZWQqPihtX3BhZ2Ut
PnZpZXcoKSk7CisgICAgICAgIFdlYlZpZXdHcmFwaGljc0Jhc2VkKiB2aWV3ID0gcW9iamVjdF9j
YXN0PFdlYlZpZXdHcmFwaGljc0Jhc2VkKj4obV9wYWdlLT52aWV3KCkpOwogICAgICAgICBpZiAo
dmlldykKICAgICAgICAgICAgIHNlbmRFdmVudCh2aWV3LT5ncmFwaGljc1ZpZXcoKSwgJmN0eEV2
ZW50KTsKICAgICB9IGVsc2UgewpAQCAtNzQ1LDcgKzc0NSw3IEBAIFFHcmFwaGljc1NjZW5lV2hl
ZWxFdmVudCogRXZlbnRTZW5kZXI6OmNyZWF0ZUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KFFFdmVu
dDo6VHlwCiAKIHZvaWQgRXZlbnRTZW5kZXI6OnNlbmRFdmVudChRT2JqZWN0KiByZWNlaXZlciwg
UUV2ZW50KiBldmVudCkKIHsKLSAgICBpZiAoV2ViQ29yZTo6V2ViVmlld0dyYXBoaWNzQmFzZWQq
IHZpZXcgPSBxb2JqZWN0X2Nhc3Q8V2ViQ29yZTo6V2ViVmlld0dyYXBoaWNzQmFzZWQqPihyZWNl
aXZlcikpCisgICAgaWYgKFdlYlZpZXdHcmFwaGljc0Jhc2VkKiB2aWV3ID0gcW9iamVjdF9jYXN0
PFdlYlZpZXdHcmFwaGljc0Jhc2VkKj4ocmVjZWl2ZXIpKQogICAgICAgICB2aWV3LT5zY2VuZSgp
LT5zZW5kRXZlbnQodmlldy0+Z3JhcGhpY3NWaWV3KCksIGV2ZW50KTsKICAgICBlbHNlCiAgICAg
ICAgIFFBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KHJlY2VpdmVyLCBldmVudCk7CkBAIC03NTUsNyAr
NzU1LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6cG9zdEV2ZW50KFFPYmplY3QqIHJlY2VpdmVyLCBR
RXZlbnQqIGV2ZW50KQogewogICAgIC8vIFFHcmFwaGljc1NjZW5lIGRvZXMgbm90IGhhdmUgYSBw
b3N0RXZlbnQgbWV0aG9kLCBzbyBzZW5kIHRoZSBldmVudCBpbiB0aGlzIGNhc2UKICAgICAvLyBh
bmQgZGVsZXRlIGl0IGFmdGVyIHRoYXQuCi0gICAgaWYgKFdlYkNvcmU6OldlYlZpZXdHcmFwaGlj
c0Jhc2VkKiB2aWV3ID0gcW9iamVjdF9jYXN0PFdlYkNvcmU6OldlYlZpZXdHcmFwaGljc0Jhc2Vk
Kj4ocmVjZWl2ZXIpKSB7CisgICAgaWYgKFdlYlZpZXdHcmFwaGljc0Jhc2VkKiB2aWV3ID0gcW9i
amVjdF9jYXN0PFdlYlZpZXdHcmFwaGljc0Jhc2VkKj4ocmVjZWl2ZXIpKSB7CiAgICAgICAgIHZp
ZXctPnNjZW5lKCktPnNlbmRFdmVudCh2aWV3LT5ncmFwaGljc1ZpZXcoKSwgZXZlbnQpOwogICAg
ICAgICBkZWxldGUgZXZlbnQ7CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9FdmVu
dFNlbmRlclF0LmgKaW5kZXggN2U0YzYwYTk3OGU1YmZhNTdlYjE3OGVlZGU1MzdmOTBhYmI5ZmVi
My4uYWQxM2NhZGI2ZDIwMjUyNjNjNDlhNzU5ZmQ0YTczYjEzZjkxMTQxOSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRXZlbnRTZW5kZXJRdC5oCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuaApAQCAtOTYsNyArOTYsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCB0aW1lckV2ZW50KFFUaW1lckV2ZW50Kik7CiAKIHByaXZhdGU6Ci0gICAgYm9v
bCBpc0dyYXBoaWNzQmFzZWQoKSBjb25zdCB7IHJldHVybiBxb2JqZWN0X2Nhc3Q8V2ViQ29yZTo6
V2ViVmlld0dyYXBoaWNzQmFzZWQqPihtX3BhZ2UtPnZpZXcoKSk7IH0KKyAgICBib29sIGlzR3Jh
cGhpY3NCYXNlZCgpIGNvbnN0IHsgcmV0dXJuIHFvYmplY3RfY2FzdDxXZWJWaWV3R3JhcGhpY3NC
YXNlZCo+KG1fcGFnZS0+dmlldygpKTsgfQogICAgIFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCog
Y3JlYXRlR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQoUUV2ZW50OjpUeXBlLCBjb25zdCBRUG9pbnQm
IHBvcywgY29uc3QgUVBvaW50JiBzY3JlZW5Qb3MsIFF0OjpNb3VzZUJ1dHRvbiwgUXQ6Ok1vdXNl
QnV0dG9ucywgUXQ6OktleWJvYXJkTW9kaWZpZXJzKTsKICAgICBRR3JhcGhpY3NTY2VuZVdoZWVs
RXZlbnQqIGNyZWF0ZUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KFFFdmVudDo6VHlwZSwgY29uc3Qg
UVBvaW50JiBwb3MsIGNvbnN0IFFQb2ludCYgc2NyZWVuUG9zLCBpbnQgZGVsdGEsIFF0OjpLZXli
b2FyZE1vZGlmaWVycywgUXQ6Ok9yaWVudGF0aW9uKTsKICAgICB2b2lkIHNlbmRFdmVudChRT2Jq
ZWN0KiByZWNlaXZlciwgUUV2ZW50KiBldmVudCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVz
dFJ1bm5lclF0LmNwcAppbmRleCBmNTQxNzUyMTMzNGQ5NTVjOWU1MTE5MTVjMTk0YjkxMWZkMjc2
NTlhLi5iOWFhZjNkYjcxZTE1MDAyODVmNjczNTc5NGQ0YjgzNGRlYjZmM2Q5IDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKQEAgLTM0LDEyICszNCwxMyBAQAogI2lu
Y2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiV29ya1F1
ZXVlLmgiCiAjaW5jbHVkZSAiV29ya1F1ZXVlSXRlbVF0LmgiCisjaW5jbHVkZSA8SlNTdHJpbmdS
ZWZRdC5oPgogI2luY2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UURpcj4KICNp
bmNsdWRlIDxRTG9jYWxlPgogI2luY2x1ZGUgPHF3ZWJzZXR0aW5ncy5oPgogCi1UZXN0UnVubmVy
UXQ6OlRlc3RSdW5uZXJRdChXZWJDb3JlOjpEdW1wUmVuZGVyVHJlZSogZHJ0KQorVGVzdFJ1bm5l
clF0OjpUZXN0UnVubmVyUXQoRHVtcFJlbmRlclRyZWUqIGRydCkKICAgICA6IFFPYmplY3QoKQog
ICAgICwgbV9kcnQoZHJ0KQogICAgICwgbV9zaG91bGRUaW1lb3V0KHRydWUpCkBAIC03NDQsMTEg
Kzc0NSwzMSBAQCBib29sIFRlc3RSdW5uZXJRdDo6aXNDb21tYW5kRW5hYmxlZChjb25zdCBRU3Ry
aW5nJiBuYW1lKSBjb25zdAogICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6aXND
b21tYW5kRW5hYmxlZChtX2RydC0+cGFnZUFkYXB0ZXIoKSwgbmFtZSk7CiB9CiAKLWJvb2wgVGVz
dFJ1bm5lclF0OjpmaW5kU3RyaW5nKGNvbnN0IFFTdHJpbmcmIHN0cmluZywgY29uc3QgUVN0cmlu
Z0xpc3QmIG9wdGlvbkFycmF5KQorYm9vbCBUZXN0UnVubmVyOjpmaW5kU3RyaW5nKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU1N0cmluZ1JlZiBzdHJpbmcsIEpTT2JqZWN0UmVmIG9wdGlvbnNBcnJh
eSkKIHsKLSAgICByZXR1cm4gRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmZpbmRTdHJpbmcobV9k
cnQtPnBhZ2VBZGFwdGVyKCksIHN0cmluZywgb3B0aW9uQXJyYXkpOworICAgIER1bXBSZW5kZXJU
cmVlKiBkcnQgPSBEdW1wUmVuZGVyVHJlZTo6aW5zdGFuY2UoKTsKKworICAgIFFTdHJpbmdMaXN0
IG9wdGlvbnM7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGxlbmd0aFByb3BlcnR5TmFt
ZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImxlbmd0aCIpKTsKKyAgICBK
U1ZhbHVlUmVmIGxlbmd0aFZhbHVlID0gSlNPYmplY3RHZXRQcm9wZXJ0eShjb250ZXh0LCBvcHRp
b25zQXJyYXksIGxlbmd0aFByb3BlcnR5TmFtZS5nZXQoKSwgMCk7CisgICAgaWYgKCFKU1ZhbHVl
SXNOdW1iZXIoY29udGV4dCwgbGVuZ3RoVmFsdWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBpbnQgbGVuZ3RoID0gc3RhdGljX2Nhc3Q8aW50PihKU1ZhbHVlVG9OdW1iZXIoY29udGV4
dCwgbGVuZ3RoVmFsdWUsIDApKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgKytp
KSB7CisgICAgICAgIEpTVmFsdWVSZWYgdmFsdWUgPSBKU09iamVjdEdldFByb3BlcnR5QXRJbmRl
eChjb250ZXh0LCBvcHRpb25zQXJyYXksIGksIDApOworICAgICAgICBpZiAoIUpTVmFsdWVJc1N0
cmluZyhjb250ZXh0LCB2YWx1ZSkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gb3B0aW9uTmFtZShBZG9wdCwgSlNWYWx1ZVRvU3RyaW5n
Q29weShjb250ZXh0LCB2YWx1ZSwgMCkpOworICAgICAgICBvcHRpb25zIDw8IEpTU3RyaW5nQ29w
eVFTdHJpbmcob3B0aW9uTmFtZS5nZXQoKSk7CisKKyAgICB9CisKKyAgICByZXR1cm4gRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OmZpbmRTdHJpbmcoZHJ0LT5wYWdlQWRhcHRlcigpLCBKU1N0cmlu
Z0NvcHlRU3RyaW5nKHN0cmluZyksIG9wdGlvbnMpOwogfQogCisKIHZvaWQgVGVzdFJ1bm5lclF0
OjphdXRoZW50aWNhdGVTZXNzaW9uKGNvbnN0IFFTdHJpbmcmLCBjb25zdCBRU3RyaW5nJiwgY29u
c3QgUVN0cmluZyYpCiB7CiAgICAgLy8gRklYTUU6IElmIHRoZXJlIGlzIGEgY29uY2VwdCBwZXIt
c2Vzc2lvbiAocGVyLXByb2Nlc3MpIGNyZWRlbnRpYWwgc3RvcmFnZSwgdGhlIGNyZWRlbnRpYWxz
IHNob3VsZCBiZSBhZGRlZCB0byBpdCBmb3IgbGF0ZXIgdXNlLgpAQCAtNzY0LDI0ICs3ODUsMjQg
QEAgdm9pZCBUZXN0UnVubmVyUXQ6OnNldEljb25EYXRhYmFzZUVuYWJsZWQoYm9vbCBlbmFibGUp
CiAKIHZvaWQgVGVzdFJ1bm5lclF0OjpzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24oYm9vbCBjYW5Q
cm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwgYm9vbCBjYW5Qcm92aWRlQmV0YSwgZG91YmxlIGJl
dGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBkb3VibGUgZ2FtbWEpCiB7Ci0gICAgUUxpc3Q8V2Vi
Q29yZTo6V2ViUGFnZSo+IHBhZ2VzID0gbV9kcnQtPmdldEFsbFBhZ2VzKCk7Ci0gICAgZm9yZWFj
aCAoV2ViQ29yZTo6V2ViUGFnZSogcGFnZSwgcGFnZXMpCisgICAgUUxpc3Q8V2ViUGFnZSo+IHBh
Z2VzID0gbV9kcnQtPmdldEFsbFBhZ2VzKCk7CisgICAgZm9yZWFjaCAoV2ViUGFnZSogcGFnZSwg
cGFnZXMpCiAgICAgICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrRGV2aWNlT3Jp
ZW50YXRpb24ocGFnZS0+aGFuZGxlKCksIGNhblByb3ZpZGVBbHBoYSwgYWxwaGEsIGNhblByb3Zp
ZGVCZXRhLCBiZXRhLCBjYW5Qcm92aWRlR2FtbWEsIGdhbW1hKTsKIH0KIAogdm9pZCBUZXN0UnVu
bmVyUXQ6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihib29sIGFsbG93KQogewogICAgIHNldEdl
b2xvY2F0aW9uUGVybWlzc2lvbkNvbW1vbihhbGxvdyk7Ci0gICAgUUxpc3Q8V2ViQ29yZTo6V2Vi
UGFnZSo+IHBhZ2VzID0gbV9kcnQtPmdldEFsbFBhZ2VzKCk7Ci0gICAgZm9yZWFjaCAoV2ViQ29y
ZTo6V2ViUGFnZSogcGFnZSwgcGFnZXMpCisgICAgUUxpc3Q8V2ViUGFnZSo+IHBhZ2VzID0gbV9k
cnQtPmdldEFsbFBhZ2VzKCk7CisgICAgZm9yZWFjaCAoV2ViUGFnZSogcGFnZSwgcGFnZXMpCiAg
ICAgICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNz
aW9uKHBhZ2UtPmhhbmRsZSgpLCBhbGxvdyk7CiB9CiAKIGludCBUZXN0UnVubmVyUXQ6Om51bWJl
ck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKCkKIHsKICAgICBpbnQgcGVu
ZGluZ1Blcm1pc3Npb25Db3VudCA9IDA7Ci0gICAgUUxpc3Q8V2ViQ29yZTo6V2ViUGFnZSo+IHBh
Z2VzID0gbV9kcnQtPmdldEFsbFBhZ2VzKCk7Ci0gICAgZm9yZWFjaCAoV2ViQ29yZTo6V2ViUGFn
ZSogcGFnZSwgcGFnZXMpCisgICAgUUxpc3Q8V2ViUGFnZSo+IHBhZ2VzID0gbV9kcnQtPmdldEFs
bFBhZ2VzKCk7CisgICAgZm9yZWFjaCAoV2ViUGFnZSogcGFnZSwgcGFnZXMpCiAgICAgICAgIHBl
bmRpbmdQZXJtaXNzaW9uQ291bnQgKz0gRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6Om51bWJlck9m
UGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKHBhZ2UtPmhhbmRsZSgpKTsKIAog
ICAgIHJldHVybiBwZW5kaW5nUGVybWlzc2lvbkNvdW50OwpAQCAtNzk1LDE1ICs4MTYsMTUgQEAg
dm9pZCBUZXN0UnVubmVyUXQ6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbkNvbW1vbihib29sIGFs
bG93KQogCiB2b2lkIFRlc3RSdW5uZXJRdDo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2
YWlsYWJsZUVycm9yKGNvbnN0IFFTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgUUxpc3Q8V2ViQ29y
ZTo6V2ViUGFnZSo+IHBhZ2VzID0gbV9kcnQtPmdldEFsbFBhZ2VzKCk7Ci0gICAgZm9yZWFjaCAo
V2ViQ29yZTo6V2ViUGFnZSogcGFnZSwgcGFnZXMpCisgICAgUUxpc3Q8V2ViUGFnZSo+IHBhZ2Vz
ID0gbV9kcnQtPmdldEFsbFBhZ2VzKCk7CisgICAgZm9yZWFjaCAoV2ViUGFnZSogcGFnZSwgcGFn
ZXMpCiAgICAgICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRpb25Q
b3NpdGlvblVuYXZhaWxhYmxlRXJyb3IocGFnZS0+aGFuZGxlKCksIG1lc3NhZ2UpOwogfQogCiB2
b2lkIFRlc3RSdW5uZXJRdDo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0
dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCiB7Ci0gICAgUUxpc3Q8V2Vi
Q29yZTo6V2ViUGFnZSo+IHBhZ2VzID0gbV9kcnQtPmdldEFsbFBhZ2VzKCk7Ci0gICAgZm9yZWFj
aCAoV2ViQ29yZTo6V2ViUGFnZSogcGFnZSwgcGFnZXMpCisgICAgUUxpc3Q8V2ViUGFnZSo+IHBh
Z2VzID0gbV9kcnQtPmdldEFsbFBhZ2VzKCk7CisgICAgZm9yZWFjaCAoV2ViUGFnZSogcGFnZSwg
cGFnZXMpCiAgICAgICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRp
b25Qb3NpdGlvbihwYWdlLT5oYW5kbGUoKSwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kp
OwogfQogCkBAIC0xMzQwLDExICsxMzYxLDYgQEAgdm9pZCBUZXN0UnVubmVyOjphZGRVc2VyU3R5
bGVTaGVldChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgYWxsRnJhbWVzKQogewogfQogCi1ib29s
IFRlc3RSdW5uZXI6OmZpbmRTdHJpbmcoSlNDb250ZXh0UmVmLCBKU1N0cmluZ1JlZiwgSlNPYmpl
Y3RSZWYgb3B0aW9uc0FycmF5KQotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQogdm9pZCBUZXN0
UnVubmVyOjpleGVjQ29tbWFuZChKU1N0cmluZ1JlZiBuYW1lLCBKU1N0cmluZ1JlZiB2YWx1ZSkK
IHsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5o
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmgKaW5kZXggNjViYmI4MmEy
Y2I0MTNlNzIxOTczOGJmYTdlNTgzMDdjYmNjZGMwZS4uYzFjYTM3NmNjMTgwYzdjYTljMzIzNTVl
NTZiZDYyNzVjNzk5NmM0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVz
dFJ1bm5lclF0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmgK
QEAgLTQ5LDE2ICs0OSwxNCBAQAogCiBjbGFzcyBRV2ViRnJhbWU7CiBjbGFzcyBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdDsKLW5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIER1bXBSZW5kZXJUcmVl
OwotfQogCiBjbGFzcyBUZXN0UnVubmVyUXQgOiBwdWJsaWMgUU9iamVjdCB7CiAgICAgUV9PQkpF
Q1QKICAgICBRX1BST1BFUlRZKGludCB3ZWJIaXN0b3J5SXRlbUNvdW50IFJFQUQgd2ViSGlzdG9y
eUl0ZW1Db3VudCkKICAgICBRX1BST1BFUlRZKGJvb2wgZ2xvYmFsRmxhZyBSRUFEIGdsb2JhbEZs
YWcgV1JJVEUgc2V0R2xvYmFsRmxhZykKIHB1YmxpYzoKLSAgICBUZXN0UnVubmVyUXQoV2ViQ29y
ZTo6RHVtcFJlbmRlclRyZWUqKTsKKyAgICBUZXN0UnVubmVyUXQoRHVtcFJlbmRlclRyZWUqKTsK
IAogICAgIGJvb2wgc2hvdWxkRGlzYWxsb3dJbmNyZWFzZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90
YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzYWxsb3dJbmNyZWFzZUZvckFwcGxpY2F0aW9uQ2FjaGVR
dW90YTsgfQogICAgIGJvb2wgc2hvdWxkRHVtcEFzVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4
dER1bXA7IH0KQEAgLTE4Miw3ICsxODAsNiBAQCBwdWJsaWMgUV9TTE9UUzoKICAgICB2b2lkIHNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBleGVjQ29t
bWFuZChjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRU3RyaW5nJiB2YWx1ZSA9IFFTdHJpbmco
KSk7CiAgICAgYm9vbCBpc0NvbW1hbmRFbmFibGVkKGNvbnN0IFFTdHJpbmcmIG5hbWUpIGNvbnN0
OwotICAgIGJvb2wgZmluZFN0cmluZyhjb25zdCBRU3RyaW5nJiwgY29uc3QgUVN0cmluZ0xpc3Qm
IG9wdGlvbkFycmF5KTsKIAogICAgIHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnko
Y29uc3QgUVN0cmluZyYgc291cmNlT3JpZ2luLCBjb25zdCBRU3RyaW5nJiBkZXN0aW5hdGlvblBy
b3RvY29sLCBjb25zdCBRU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5h
dGlvblN1YmRvbWFpbnMpOwogICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50
cnkoY29uc3QgUVN0cmluZyYgc291cmNlT3JpZ2luLCBjb25zdCBRU3RyaW5nJiBkZXN0aW5hdGlv
blByb3RvY29sLCBjb25zdCBRU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0
aW5hdGlvblN1YmRvbWFpbnMpOwpAQCAtMjk5LDcgKzI5Niw3IEBAIHByaXZhdGU6CiAgICAgUVVy
bCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb247CiAgICAgUUJhc2ljVGltZXIgbV90aW1lb3V0VGlt
ZXI7CiAgICAgUVdlYkZyYW1lKiBtX3RvcExvYWRpbmdGcmFtZTsKLSAgICBXZWJDb3JlOjpEdW1w
UmVuZGVyVHJlZSogbV9kcnQ7CisgICAgRHVtcFJlbmRlclRyZWUqIG1fZHJ0OwogICAgIFFXZWJI
aXN0b3J5KiBtX3dlYkhpc3Rvcnk7CiAgICAgYm9vbCBtX2lnbm9yZURlc2t0b3BOb3RpZmljYXRp
b247CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192917</attachid>
            <date>2013-03-13 07:06:21 -0700</date>
            <delta_ts>2013-03-13 08:23:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112147-20130313150221.patch</filename>
            <type>text/plain</type>
            <size>23392</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDBlNGU2NzJhODlk
YjgxODA5NmJkNWFkMWI4MDBhMWU4YzVjYzRjZjcuLjNmNjQ5MjhjNmQyMDIxMDE3NmVmZjliMjQ5
ZDk0MzUyODAwZDA1NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTMtMDMt
MTMgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5AZGlnaWEuY29tPgorCisgICAgICAg
IFtRdF0gUG9ydCBUZXN0UnVubmVyOjpmaW5kU3RyaW5nIHRvIHNoYXJlZCBpbnRlcmZhY2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjE0NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgZmlu
ZCBvcHRpb25zIHVzZWQgYnkgdGhlIERSVC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1FXZWJQYWdl
QWRhcHRlci5jcHA6CisgICAgICAgIChRV2ViUGFnZUFkYXB0ZXI6OmZpbmRUZXh0KToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9RV2ViUGFnZUFkYXB0ZXIuaDoKKyAgICAgICAgKiBXaWRnZXRB
cGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAqIFdpZGdldEFwaS9xd2VicGFnZS5oOgorCiAyMDEz
LTAzLTExICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJlbmFtZSBEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlIHRvIERlZmluaXRlbHlQcm9j
ZXNzaW5nTmV3VXNlckdlc3R1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggNTlmMzcxMDgy
MGFkMzE3NzNmNGQxMzJmN2VjNGRiMzJlN2YzM2Y5ZC4uMWQxNzIwY2E0ZjQ0NmJjNGJlODIxOTAy
OGIwNGIxNTQzNTgyNmMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTM0OCwzMiArMzQ4
LDYgQEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6aXNDb21tYW5kRW5hYmxlZChRV2Vi
UGFnZUFkYXB0ZXIgKmFkYXB0ZXIsIGNvbnN0IFEKICAgICByZXR1cm4gYWRhcHRlci0+cGFnZS0+
Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5lZGl0b3IoKS0+Y29tbWFu
ZChuYW1lKS5pc0VuYWJsZWQoKTsKIH0KIAotYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6
ZmluZFN0cmluZyhRV2ViUGFnZUFkYXB0ZXIgKmFkYXB0ZXIsIGNvbnN0IFFTdHJpbmcmIHN0cmlu
ZywgY29uc3QgUVN0cmluZ0xpc3QmIG9wdGlvbkFycmF5KQotewotICAgIC8vIDEuIFBhcnNlIHRo
ZSBvcHRpb25zIGZyb20gdGhlIGFycmF5Ci0gICAgV2ViQ29yZTo6RmluZE9wdGlvbnMgb3B0aW9u
cyA9IDA7Ci0gICAgY29uc3QgaW50IG9wdGlvbkNvdW50ID0gb3B0aW9uQXJyYXkuc2l6ZSgpOwot
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3B0aW9uQ291bnQ7ICsraSkgewotICAgICAgICBjb25z
dCBRU3RyaW5nJiBvcHRpb24gPSBvcHRpb25BcnJheS5hdChpKTsKLSAgICAgICAgaWYgKG9wdGlv
biA9PSBRTGF0aW4xU3RyaW5nKCJDYXNlSW5zZW5zaXRpdmUiKSkKLSAgICAgICAgICAgIG9wdGlv
bnMgfD0gV2ViQ29yZTo6Q2FzZUluc2Vuc2l0aXZlOwotICAgICAgICBlbHNlIGlmIChvcHRpb24g
PT0gUUxhdGluMVN0cmluZygiQXRXb3JkU3RhcnRzIikpCi0gICAgICAgICAgICBvcHRpb25zIHw9
IFdlYkNvcmU6OkF0V29yZFN0YXJ0czsKLSAgICAgICAgZWxzZSBpZiAob3B0aW9uID09IFFMYXRp
bjFTdHJpbmcoIlRyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0YXJ0IikpCi0gICAgICAgICAgICBv
cHRpb25zIHw9IFdlYkNvcmU6OlRyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0YXJ0OwotICAgICAg
ICBlbHNlIGlmIChvcHRpb24gPT0gUUxhdGluMVN0cmluZygiQmFja3dhcmRzIikpCi0gICAgICAg
ICAgICBvcHRpb25zIHw9IFdlYkNvcmU6OkJhY2t3YXJkczsKLSAgICAgICAgZWxzZSBpZiAob3B0
aW9uID09IFFMYXRpbjFTdHJpbmcoIldyYXBBcm91bmQiKSkKLSAgICAgICAgICAgIG9wdGlvbnMg
fD0gV2ViQ29yZTo6V3JhcEFyb3VuZDsKLSAgICAgICAgZWxzZSBpZiAob3B0aW9uID09IFFMYXRp
bjFTdHJpbmcoIlN0YXJ0SW5TZWxlY3Rpb24iKSkKLSAgICAgICAgICAgIG9wdGlvbnMgfD0gV2Vi
Q29yZTo6U3RhcnRJblNlbGVjdGlvbjsKLSAgICB9Ci0KLSAgICAvLyAyLiBmaW5kIHRoZSBzdHJp
bmcKLSAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUgPSBhZGFwdGVyLT5wYWdlLT5mb2N1c0NvbnRy
b2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7Ci0gICAgcmV0dXJuIGZyYW1lICYmIGZyYW1l
LT5lZGl0b3IoKS0+ZmluZFN0cmluZyhzdHJpbmcsIG9wdGlvbnMpOwotfQotCiBRVmFyaWFudExp
c3QgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNlbGVjdGVkUmFuZ2UoUVdlYlBhZ2VBZGFwdGVy
ICphZGFwdGVyKQogewogICAgIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IGFkYXB0ZXItPnBhZ2Ut
PmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaCBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
aAppbmRleCA3MGZmODVlNzA3Y2ZkMDlkZDgwYjliZjNhN2NjZGE1M2UzYTM1YzRiLi4xZTkzNThh
NjdkZGY5YjVjMTY2ODBhMTVlOWQ0YmU0ZWRiYjdmYzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCkBA
IC05Myw3ICs5Myw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIGV4ZWN1dGVDb3JlQ29t
bWFuZEJ5TmFtZShRV2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBR
U3RyaW5nJiB2YWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgaXNDb21tYW5kRW5hYmxlZChRV2ViUGFn
ZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5nJiBuYW1lKTsKLSAgICBzdGF0aWMgYm9vbCBmaW5kU3Ry
aW5nKFFXZWJQYWdlQWRhcHRlciosIGNvbnN0IFFTdHJpbmcmLCBjb25zdCBRU3RyaW5nTGlzdCYg
b3B0aW9uQXJyYXkpOwogICAgIHN0YXRpYyB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZChRV2ViUGFnZUFkYXB0ZXIqLCBib29sIGVuYWJsZWQpOwogICAgIHN0YXRpYyB2b2lkIHNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiwgYm9vbCBlbmFi
bGVkKTsKICAgICBzdGF0aWMgUVZhcmlhbnRMaXN0IHNlbGVjdGVkUmFuZ2UoUVdlYlBhZ2VBZGFw
dGVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJQ
YWdlQWRhcHRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJQYWdl
QWRhcHRlci5jcHAKaW5kZXggNWYwY2EyMzZhOWJjMzllOTQ2YmZlYmRiZGY0MWJjMTc3Y2FhMjMz
Zi4uYzdhYmM0ODQ0NDY3NzgwMzU0ODBhZThmNjJmMTYzNDM3NjAyYjA0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RV2ViUGFnZUFkYXB0ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVdlYlBhZ2VBZGFwdGVyLmNwcApAQCAt
MzE0LDE2ICszMTQsMzIgQEAgdm9pZCBRV2ViUGFnZUFkYXB0ZXI6OnNldENvbnRlbnRFZGl0YWJs
ZShib29sIGVkaXRhYmxlKQogCiBib29sIFFXZWJQYWdlQWRhcHRlcjo6ZmluZFRleHQoY29uc3Qg
UVN0cmluZyYgc3ViU3RyaW5nLCBGaW5kRmxhZyBvcHRpb25zKQogewotICAgIDo6VGV4dENhc2VT
ZW5zaXRpdml0eSBjYXNlU2Vuc2l0aXZpdHkgPSA6OlRleHRDYXNlSW5zZW5zaXRpdmU7Ci0gICAg
aWYgKG9wdGlvbnMgJiBGaW5kQ2FzZVNlbnNpdGl2ZWx5KQotICAgICAgICBjYXNlU2Vuc2l0aXZp
dHkgPSA6OlRleHRDYXNlU2Vuc2l0aXZlOworICAgIDo6V2ViQ29yZTo6RmluZE9wdGlvbnMgd2Vi
Q29yZUZpbmRPcHRpb25zID0gMDsKKworICAgIGlmICghKG9wdGlvbnMgJiBGaW5kQ2FzZVNlbnNp
dGl2ZWx5KSkKKyAgICAgICAgd2ViQ29yZUZpbmRPcHRpb25zIHw9IFdlYkNvcmU6OkNhc2VJbnNl
bnNpdGl2ZTsKKworICAgIGlmIChvcHRpb25zICYgRmluZEJhY2t3YXJkKQorICAgICAgICB3ZWJD
b3JlRmluZE9wdGlvbnMgfD0gV2ViQ29yZTo6QmFja3dhcmRzOworCisgICAgaWYgKG9wdGlvbnMg
JiBGaW5kV3JhcHNBcm91bmREb2N1bWVudCkKKyAgICAgICAgd2ViQ29yZUZpbmRPcHRpb25zIHw9
IFdlYkNvcmU6OldyYXBBcm91bmQ7CisKKyAgICBpZiAob3B0aW9ucyAmIEZpbmRBdFdvcmRCZWdp
bm5pbmdzT25seSkKKyAgICAgICAgd2ViQ29yZUZpbmRPcHRpb25zIHw9IFdlYkNvcmU6OkF0V29y
ZFN0YXJ0czsKKworICAgIGlmIChvcHRpb25zICYgVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkQmVn
aW5uaW5nKQorICAgICAgICB3ZWJDb3JlRmluZE9wdGlvbnMgfD0gV2ViQ29yZTo6VHJlYXRNZWRp
YWxDYXBpdGFsQXNXb3JkU3RhcnQ7CisKKyAgICBpZiAob3B0aW9ucyAmIEZpbmRCZWdpbnNJblNl
bGVjdGlvbikKKyAgICAgICAgd2ViQ29yZUZpbmRPcHRpb25zIHw9IFdlYkNvcmU6OlN0YXJ0SW5T
ZWxlY3Rpb247CiAKICAgICBpZiAob3B0aW9ucyAmIEhpZ2hsaWdodEFsbE9jY3VycmVuY2VzKSB7
CiAgICAgICAgIGlmIChzdWJTdHJpbmcuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBwYWdlLT51
bm1hcmtBbGxUZXh0TWF0Y2hlcygpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIHBhZ2UtPm1hcmtBbGxNYXRjaGVzRm9yVGV4dChzdWJTdHJpbmcs
IGNhc2VTZW5zaXRpdml0eSwgdHJ1ZSwgMCk7CisgICAgICAgIHJldHVybiBwYWdlLT5tYXJrQWxs
TWF0Y2hlc0ZvclRleHQoc3ViU3RyaW5nLCB3ZWJDb3JlRmluZE9wdGlvbnMsIC8qc2hvdWxkSGln
aGxpZ2h0Ki8gdHJ1ZSwgLypsaW1pdCovIDApOwogICAgIH0KIAogICAgIGlmIChzdWJTdHJpbmcu
aXNFbXB0eSgpKSB7CkBAIC0zMzQsMTMgKzM1MCw4IEBAIGJvb2wgUVdlYlBhZ2VBZGFwdGVyOjpm
aW5kVGV4dChjb25zdCBRU3RyaW5nJiBzdWJTdHJpbmcsIEZpbmRGbGFnIG9wdGlvbnMpCiAgICAg
ICAgICAgICBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dFdpdGhXcmFwKGZhbHNl
KTsKICAgICAgICAgfQogICAgIH0KLSAgICA6OkZpbmREaXJlY3Rpb24gZGlyZWN0aW9uID0gOjpG
aW5kRGlyZWN0aW9uRm9yd2FyZDsKLSAgICBpZiAob3B0aW9ucyAmIEZpbmRCYWNrd2FyZCkKLSAg
ICAgICAgZGlyZWN0aW9uID0gOjpGaW5kRGlyZWN0aW9uQmFja3dhcmQ7Ci0KLSAgICBjb25zdCBi
b29sIHNob3VsZFdyYXAgPSBvcHRpb25zICYgRmluZFdyYXBzQXJvdW5kRG9jdW1lbnQ7CiAKLSAg
ICByZXR1cm4gcGFnZS0+ZmluZFN0cmluZyhzdWJTdHJpbmcsIGNhc2VTZW5zaXRpdml0eSwgZGly
ZWN0aW9uLCBzaG91bGRXcmFwKTsKKyAgICByZXR1cm4gcGFnZS0+ZmluZFN0cmluZyhzdWJTdHJp
bmcsIHdlYkNvcmVGaW5kT3B0aW9ucyk7CiB9CiAKIHZvaWQgUVdlYlBhZ2VBZGFwdGVyOjphZGp1
c3RQb2ludEZvckNsaWNraW5nKFFNb3VzZUV2ZW50KiBldikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVdlYlBhZ2VBZGFwdGVyLmggYi9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJQYWdlQWRhcHRlci5oCmluZGV4IDdiZTQwZDZkODQ5YmUw
ZGE4ZTQ5YWI5MzBiNmI2Zjk1ZDkwMzI1MGEuLmNmOTA0NzI0YTU2YTBiODcxMTcyMmViNmY2MTJj
YjQ2YTUzYzVjMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
UVdlYlBhZ2VBZGFwdGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9R
V2ViUGFnZUFkYXB0ZXIuaApAQCAtMTExLDcgKzExMSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIEZp
bmRCYWNrd2FyZCA9IDEsCiAgICAgICAgIEZpbmRDYXNlU2Vuc2l0aXZlbHkgPSAyLAogICAgICAg
ICBGaW5kV3JhcHNBcm91bmREb2N1bWVudCA9IDQsCi0gICAgICAgIEhpZ2hsaWdodEFsbE9jY3Vy
cmVuY2VzID0gOAorICAgICAgICBIaWdobGlnaHRBbGxPY2N1cnJlbmNlcyA9IDgsCisgICAgICAg
IEZpbmRBdFdvcmRCZWdpbm5pbmdzT25seSA9IDE2LAorICAgICAgICBUcmVhdE1lZGlhbENhcGl0
YWxBc1dvcmRCZWdpbm5pbmcgPSAzMiwKKyAgICAgICAgRmluZEJlZ2luc0luU2VsZWN0aW9uID0g
NjQKICAgICB9OwogCiAgICAgLy8gdmFsaWQgdmFsdWVzIG1hdGNoaW5nIHRob3NlIGZyb20gU2Ny
b2xsVHlwZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkvcXdlYnBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkvcXdlYnBhZ2UuY3BwCmluZGV4IGEx
ZmU0OWUxMzc5MjQxMGMyZTM5ZTEzMzdjM2RlMWQzYzQzZmYyMWYuLmQ3ZjQyMDdmZGVlNzY4OTNk
OGRmM2Y2YWFjNmJmZjQzMjM4YTY4OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2lk
Z2V0QXBpL3F3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dpZGdldEFwaS9xd2Vi
cGFnZS5jcHAKQEAgLTEwNTEsNiArMTA1MSwxMyBAQCBRV2ViSW5zcGVjdG9yKiBRV2ViUGFnZVBy
aXZhdGU6OmdldE9yQ3JlYXRlSW5zcGVjdG9yKCkKICAgIHdhcyByZWFjaGVkIGFuZCB0aGUgdGV4
dCB3YXMgbm90IGZvdW5kLgogICAgXHZhbHVlIEhpZ2hsaWdodEFsbE9jY3VycmVuY2VzIEhpZ2hs
aWdodHMgYWxsIGV4aXN0aW5nIG9jY3VycmVuY2VzIG9mIGEgc3BlY2lmaWMgc3RyaW5nLgogICAg
ICAgIChUaGlzIHZhbHVlIHdhcyBpbnRyb2R1Y2VkIGluIDQuNi4pCisgICBcdmFsdWUgRmluZEF0
V29yZEJlZ2lubmluZ3NPbmx5IFNlYXJjaGVzIGZvciB0aGUgc3ViLXN0cmluZyBvbmx5IGF0IHRo
ZSBiZWdpbm5pbmdzIG9mIHdvcmRzLgorICAgICAgIChUaGlzIHZhbHVlIHdhcyBpbnRyb2R1Y2Vk
IGluIDUuMi4pCisgICBcdmFsdWUgVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkQmVnaW5uaW5nIFRy
ZWF0cyBhIGNhcGl0YWwgbGV0dGVyIG9jY3VycmluZyBhbnl3aGVyZSBpbiB0aGUgbWlkZGxlIG9m
IGEgd29yZAorICAgYXMgdGhlIGJlZ2lubmluZyBvZiBhIG5ldyB3b3JkLgorICAgICAgIChUaGlz
IHZhbHVlIHdhcyBpbnRyb2R1Y2VkIGluIDUuMi4pCisgICBcdmFsdWUgRmluZEJlZ2luc0luU2Vs
ZWN0aW9uIEJlZ2luIHNlYXJjaGluZyBpbnNpZGUgdGhlIHRleHQgc2VsZWN0aW9uIGZpcnN0Lgor
ICAgICAgIChUaGlzIHZhbHVlIHdhcyBpbnRyb2R1Y2VkIGluIDUuMi4pCiAqLwogCiAvKiEKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3F3ZWJwYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dpZGdldEFwaS9xd2VicGFnZS5oCmluZGV4IDZhYTMwM2I1Y2Q5OTdjYTQ1YTFm
M2UyMzFmZDVjNmEyYWU0OTZmYTMuLjlhMmI0ZmNiNzgyNzdlODhkNDViNDBjZTJlMmM0Njg3MGVl
YzE4MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3F3ZWJwYWdlLmgK
KysrIGIvU291cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkvcXdlYnBhZ2UuaApAQCAtMTg3LDcgKzE4
NywxMCBAQCBwdWJsaWM6CiAgICAgICAgIEZpbmRCYWNrd2FyZCA9IDEsCiAgICAgICAgIEZpbmRD
YXNlU2Vuc2l0aXZlbHkgPSAyLAogICAgICAgICBGaW5kV3JhcHNBcm91bmREb2N1bWVudCA9IDQs
Ci0gICAgICAgIEhpZ2hsaWdodEFsbE9jY3VycmVuY2VzID0gOAorICAgICAgICBIaWdobGlnaHRB
bGxPY2N1cnJlbmNlcyA9IDgsCisgICAgICAgIEZpbmRBdFdvcmRCZWdpbm5pbmdzT25seSA9IDE2
LAorICAgICAgICBUcmVhdE1lZGlhbENhcGl0YWxBc1dvcmRCZWdpbm5pbmcgPSAzMiwKKyAgICAg
ICAgRmluZEJlZ2luc0luU2VsZWN0aW9uID0gNjQKICAgICB9OwogICAgIFFfREVDTEFSRV9GTEFH
UyhGaW5kRmxhZ3MsIEZpbmRGbGFnKQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggMzNlNzgzMWM1NDQxMzJiOWZmZWNmOTkxZWU0YzgzOGRkODll
Y2ZhMC4uMjJjYjQzMTZlNzhkZTEzZjdlOTBlMDZjYzE2NjU1MzliYzRkYTliNCAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQxIEBA
CiAyMDEzLTAzLTEyICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQGRpZ2lhLmNvbT4K
IAorICAgICAgICBbUXRdIFBvcnQgVGVzdFJ1bm5lcjo6ZmluZFN0cmluZyB0byBzaGFyZWQgaW50
ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTIxNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGFsc28gcmVtb3ZlcyBEdW1wUmVuZGVyVHJlZSBhbmQgc29tZSBvdGhlciBoZWxw
ZXIgY2xhc3NlcyBmcm9tCisgICAgICAgIHRoZSBXZWJDb3JlIG5hbWVzcGFjZSwgdG8gd2hpY2gg
dGhleSBkbyBub3QgcmVhbGx5IGJlbG9uZy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0
L0R1bXBSZW5kZXJUcmVlTWFpbi5jcHA6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJU
cmVlOjpEdW1wUmVuZGVyVHJlZSk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZTo6fkR1bXBSZW5k
ZXJUcmVlKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlOjppbnN0YW5jZSk6CisgICAgICAgIChE
dW1wUmVuZGVyVHJlZTo6c2V0U2hvdWxkVGltZW91dCk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oOgorICAgICAgICAoRHVtcFJlbmRlclRyZWUpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuY3BwOgorICAgICAgICAoRXZl
bnRTZW5kZXI6OmNvbnRleHRDbGljayk6CisgICAgICAgIChFdmVudFNlbmRlcjo6c2VuZEV2ZW50
KToKKyAgICAgICAgKEV2ZW50U2VuZGVyOjpwb3N0RXZlbnQpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuaDoKKyAgICAgICAgKEV2ZW50U2VuZGVyOjppc0dyYXBo
aWNzQmFzZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHA6
CisgICAgICAgIChUZXN0UnVubmVyUXQ6OlRlc3RSdW5uZXJRdCk6CisgICAgICAgIChUZXN0UnVu
bmVyOjpmaW5kU3RyaW5nKToKKyAgICAgICAgKFRlc3RSdW5uZXJRdDo6c2V0TW9ja0RldmljZU9y
aWVudGF0aW9uKToKKyAgICAgICAgKFRlc3RSdW5uZXJRdDo6c2V0R2VvbG9jYXRpb25QZXJtaXNz
aW9uKToKKyAgICAgICAgKFRlc3RSdW5uZXJRdDo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdHMpOgorICAgICAgICAoVGVzdFJ1bm5lclF0OjpzZXRNb2NrR2VvbG9j
YXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IpOgorICAgICAgICAoVGVzdFJ1bm5lclF0Ojpz
ZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQv
VGVzdFJ1bm5lclF0Lmg6CisgICAgICAgIChUZXN0UnVubmVyUXQpOgorCisyMDEzLTAzLTEyICBT
aW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQGRpZ2lhLmNvbT4KKwogICAgICAgICBbUXRd
IFByZXBhcmUgRFJUIGZvciB0cmFuc2l0aW9uIHRvIHNoYXJlZCBUZXN0UnVubmVyIGludGVyZmFj
ZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyMTQ0
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlTWFp
bi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZU1haW4uY3BwCmlu
ZGV4IDA1ZjYxYzc3OTk1ZjMxN2RhOGI1OWVlZmIzZDEwZGFjY2I2MWI1M2MuLjZiODZlOWQ4N2Y4
NzgzOTNlNDcyNjI3OWNjZDg0ODNhMjU3MzE4MmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlTWFpbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvRHVtcFJlbmRlclRyZWVNYWluLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIGludCBtYWlu
KGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgLy8gUmVtb3ZlIHRoZSBmaXJzdCBhcmd1bWVu
dHMsIGl0IGlzIGFwcGxpY2F0aW9uIG5hbWUgaXRzZWxmCiAgICAgYXJncy5yZW1vdmVBdCgwKTsK
IAotICAgIFdlYkNvcmU6OkR1bXBSZW5kZXJUcmVlIGR1bXBlcjsKKyAgICBEdW1wUmVuZGVyVHJl
ZSBkdW1wZXI7CiAKICAgICBpbnQgaW5kZXggPSBhcmdzLmluZGV4T2YoUUxhdGluMVN0cmluZygi
LS1zdGRvdXQiKSk7CiAgICAgaWYgKGluZGV4ICE9IC0xKSB7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCmluZGV4IDdhZWNmMWYxYWU3NDM4MTc0N2E5NWY2
MGY5Mzc3ZTIyYmE1NGMwZjMuLjE5OGJhYThjNzBiOWFmNTU0OGQ4ZmJhY2RkMGI4MWNhMDYyYWJi
YTAgMTAwNzU1Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCkBA
IC03NCw3ICs3NCw3IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjZW5kaWYKIAotbmFtZXNwYWNl
IFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIGNvbnN0IGludCBkYXRhYmFz
ZURlZmF1bHRRdW90YSA9IDUgKiAxMDI0ICogMTAyNDsKIApAQCAtMzg1LDYgKzM4NSw4IEBAIFdl
YlZpZXdHcmFwaGljc0Jhc2VkOjpXZWJWaWV3R3JhcGhpY3NCYXNlZChRV2lkZ2V0KiBwYXJlbnQp
CiAgICAgc2NlbmUoKS0+YWRkSXRlbShtX2l0ZW0pOwogfQogCitzdGF0aWMgRHVtcFJlbmRlclRy
ZWUgKnNfaW5zdGFuY2UgPSAwOworCiBEdW1wUmVuZGVyVHJlZTo6RHVtcFJlbmRlclRyZWUoKQog
ICAgIDogbV9kdW1wUGl4ZWxzRm9yQWxsVGVzdHMoZmFsc2UpCiAgICAgLCBtX3N0ZGluKDApCkBA
IC0zOTMsNiArMzk1LDkgQEAgRHVtcFJlbmRlclRyZWU6OkR1bXBSZW5kZXJUcmVlKCkKICAgICAs
IG1fZ3JhcGhpY3NCYXNlZChmYWxzZSkKICAgICAsIG1fcGVyc2lzdGVudFN0b3JhZ2VQYXRoKFFT
dHJpbmcoZ2V0ZW52KCJEVU1QUkVOREVSVFJFRV9URU1QIikpKQogeworICAgIEFTU0VSVCghc19p
bnN0YW5jZSk7CisgICAgc19pbnN0YW5jZSA9IHRoaXM7CisKICAgICBRQnl0ZUFycmF5IHZpZXdN
b2RlID0gZ2V0ZW52KCJRVF9EUlRfV0VCVklFV19NT0RFIik7CiAgICAgaWYgKHZpZXdNb2RlID09
ICJncmFwaGljcyIpCiAgICAgICAgIHNldEdyYXBoaWNzQmFzZWQodHJ1ZSk7CkBAIC00ODUsNiAr
NDkwLDEyIEBAIER1bXBSZW5kZXJUcmVlOjp+RHVtcFJlbmRlclRyZWUoKQogICAgICAgICBmY2xv
c2Uoc3RkZXJyKTsKICAgICBkZWxldGUgbV9tYWluVmlldzsKICAgICBkZWxldGUgbV9zdGRpbjsK
KyAgICBzX2luc3RhbmNlID0gMDsKK30KKworRHVtcFJlbmRlclRyZWUqIER1bXBSZW5kZXJUcmVl
OjppbnN0YW5jZSgpCit7CisgICAgcmV0dXJuIHNfaW5zdGFuY2U7CiB9CiAKIHN0YXRpYyB2b2lk
IGNsZWFySGlzdG9yeShRV2ViUGFnZSogcGFnZSkKQEAgLTEyMTcsNSArMTIyOCwzIEBAIHZvaWQg
RHVtcFJlbmRlclRyZWU6OnNldFNob3VsZFRpbWVvdXQoYm9vbCBmbGFnKQogewogICAgIG1fY29u
dHJvbGxlci0+c2V0U2hvdWxkVGltZW91dChmbGFnKTsKIH0KLQotfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oCmluZGV4IDYxZDA3Y2Q2NzEyZDhjNDg2YzkzYWJl
ZTE3NzUyYjA4NDM2MWE2MWIuLjEzZDllNjU0OWJjZjkzODc1ZWU2ZWZiYWRhYmUwNjU0YjM3ZDk0
ZDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQu
aAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmgKQEAgLTY0
LDggKzY0LDYgQEAgY2xhc3MgRXZlbnRTZW5kZXI7CiBjbGFzcyBUZXh0SW5wdXRDb250cm9sbGVy
OwogY2xhc3MgR0NDb250cm9sbGVyOwogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KIGNsYXNzIFdl
YlBhZ2U7CiBjbGFzcyBOZXR3b3JrQWNjZXNzTWFuYWdlcjsKIApAQCAtNzYsNiArNzQsOCBAQCBw
dWJsaWM6CiAgICAgRHVtcFJlbmRlclRyZWUoKTsKICAgICB2aXJ0dWFsIH5EdW1wUmVuZGVyVHJl
ZSgpOwogCisgICAgc3RhdGljIER1bXBSZW5kZXJUcmVlKiBpbnN0YW5jZSgpOworCiAgICAgLy8g
SW5pdGlhbGl6ZSBpbiBzaW5nbGUtZmlsZSBtb2RlLgogICAgIHZvaWQgb3Blbihjb25zdCBRVXJs
JiB1cmwpOwogCkBAIC0yMzgsNiArMjM4LDQgQEAgcHJpdmF0ZToKICAgICBRR3JhcGhpY3NXZWJW
aWV3KiBtX2l0ZW07CiB9OwogCi19Ci0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvRXZlbnRTZW5kZXJRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9F
dmVudFNlbmRlclF0LmNwcAppbmRleCA4MGJlMTMxNzg4ZDJiOWIyMDhmNTNmOGRkNjU1Nzc0NDFh
OGNhZDEyLi5iZjY0NTA4ZWY4YzU1YTcwYzlkZWU0NTM0Y2JhMDYxYjUzODM5ZjZlIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmNwcApAQCAtNDI0LDcgKzQyNCw3IEBA
IFFTdHJpbmdMaXN0IEV2ZW50U2VuZGVyOjpjb250ZXh0Q2xpY2soKQogICAgICAgICBRR3JhcGhp
Y3NTY2VuZUNvbnRleHRNZW51RXZlbnQgY3R4RXZlbnQoUUV2ZW50OjpHcmFwaGljc1NjZW5lQ29u
dGV4dE1lbnUpOwogICAgICAgICBjdHhFdmVudC5zZXRSZWFzb24oUUdyYXBoaWNzU2NlbmVDb250
ZXh0TWVudUV2ZW50OjpNb3VzZSk7CiAgICAgICAgIGN0eEV2ZW50LnNldFBvcyhtX21vdXNlUG9z
KTsKLSAgICAgICAgV2ViQ29yZTo6V2ViVmlld0dyYXBoaWNzQmFzZWQqIHZpZXcgPSBxb2JqZWN0
X2Nhc3Q8V2ViQ29yZTo6V2ViVmlld0dyYXBoaWNzQmFzZWQqPihtX3BhZ2UtPnZpZXcoKSk7Cisg
ICAgICAgIFdlYlZpZXdHcmFwaGljc0Jhc2VkKiB2aWV3ID0gcW9iamVjdF9jYXN0PFdlYlZpZXdH
cmFwaGljc0Jhc2VkKj4obV9wYWdlLT52aWV3KCkpOwogICAgICAgICBpZiAodmlldykKICAgICAg
ICAgICAgIHNlbmRFdmVudCh2aWV3LT5ncmFwaGljc1ZpZXcoKSwgJmN0eEV2ZW50KTsKICAgICB9
IGVsc2UgewpAQCAtNzQ1LDcgKzc0NSw3IEBAIFFHcmFwaGljc1NjZW5lV2hlZWxFdmVudCogRXZl
bnRTZW5kZXI6OmNyZWF0ZUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KFFFdmVudDo6VHlwCiAKIHZv
aWQgRXZlbnRTZW5kZXI6OnNlbmRFdmVudChRT2JqZWN0KiByZWNlaXZlciwgUUV2ZW50KiBldmVu
dCkKIHsKLSAgICBpZiAoV2ViQ29yZTo6V2ViVmlld0dyYXBoaWNzQmFzZWQqIHZpZXcgPSBxb2Jq
ZWN0X2Nhc3Q8V2ViQ29yZTo6V2ViVmlld0dyYXBoaWNzQmFzZWQqPihyZWNlaXZlcikpCisgICAg
aWYgKFdlYlZpZXdHcmFwaGljc0Jhc2VkKiB2aWV3ID0gcW9iamVjdF9jYXN0PFdlYlZpZXdHcmFw
aGljc0Jhc2VkKj4ocmVjZWl2ZXIpKQogICAgICAgICB2aWV3LT5zY2VuZSgpLT5zZW5kRXZlbnQo
dmlldy0+Z3JhcGhpY3NWaWV3KCksIGV2ZW50KTsKICAgICBlbHNlCiAgICAgICAgIFFBcHBsaWNh
dGlvbjo6c2VuZEV2ZW50KHJlY2VpdmVyLCBldmVudCk7CkBAIC03NTUsNyArNzU1LDcgQEAgdm9p
ZCBFdmVudFNlbmRlcjo6cG9zdEV2ZW50KFFPYmplY3QqIHJlY2VpdmVyLCBRRXZlbnQqIGV2ZW50
KQogewogICAgIC8vIFFHcmFwaGljc1NjZW5lIGRvZXMgbm90IGhhdmUgYSBwb3N0RXZlbnQgbWV0
aG9kLCBzbyBzZW5kIHRoZSBldmVudCBpbiB0aGlzIGNhc2UKICAgICAvLyBhbmQgZGVsZXRlIGl0
IGFmdGVyIHRoYXQuCi0gICAgaWYgKFdlYkNvcmU6OldlYlZpZXdHcmFwaGljc0Jhc2VkKiB2aWV3
ID0gcW9iamVjdF9jYXN0PFdlYkNvcmU6OldlYlZpZXdHcmFwaGljc0Jhc2VkKj4ocmVjZWl2ZXIp
KSB7CisgICAgaWYgKFdlYlZpZXdHcmFwaGljc0Jhc2VkKiB2aWV3ID0gcW9iamVjdF9jYXN0PFdl
YlZpZXdHcmFwaGljc0Jhc2VkKj4ocmVjZWl2ZXIpKSB7CiAgICAgICAgIHZpZXctPnNjZW5lKCkt
PnNlbmRFdmVudCh2aWV3LT5ncmFwaGljc1ZpZXcoKSwgZXZlbnQpOwogICAgICAgICBkZWxldGUg
ZXZlbnQ7CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9F
dmVudFNlbmRlclF0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmgK
aW5kZXggN2U0YzYwYTk3OGU1YmZhNTdlYjE3OGVlZGU1MzdmOTBhYmI5ZmViMy4uYWQxM2NhZGI2
ZDIwMjUyNjNjNDlhNzU5ZmQ0YTczYjEzZjkxMTQxOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvRXZlbnRTZW5kZXJRdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0V2ZW50U2VuZGVyUXQuaApAQCAtOTYsNyArOTYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCB0
aW1lckV2ZW50KFFUaW1lckV2ZW50Kik7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBpc0dyYXBoaWNz
QmFzZWQoKSBjb25zdCB7IHJldHVybiBxb2JqZWN0X2Nhc3Q8V2ViQ29yZTo6V2ViVmlld0dyYXBo
aWNzQmFzZWQqPihtX3BhZ2UtPnZpZXcoKSk7IH0KKyAgICBib29sIGlzR3JhcGhpY3NCYXNlZCgp
IGNvbnN0IHsgcmV0dXJuIHFvYmplY3RfY2FzdDxXZWJWaWV3R3JhcGhpY3NCYXNlZCo+KG1fcGFn
ZS0+dmlldygpKTsgfQogICAgIFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCogY3JlYXRlR3JhcGhp
Y3NTY2VuZU1vdXNlRXZlbnQoUUV2ZW50OjpUeXBlLCBjb25zdCBRUG9pbnQmIHBvcywgY29uc3Qg
UVBvaW50JiBzY3JlZW5Qb3MsIFF0OjpNb3VzZUJ1dHRvbiwgUXQ6Ok1vdXNlQnV0dG9ucywgUXQ6
OktleWJvYXJkTW9kaWZpZXJzKTsKICAgICBRR3JhcGhpY3NTY2VuZVdoZWVsRXZlbnQqIGNyZWF0
ZUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KFFFdmVudDo6VHlwZSwgY29uc3QgUVBvaW50JiBwb3Ms
IGNvbnN0IFFQb2ludCYgc2NyZWVuUG9zLCBpbnQgZGVsdGEsIFF0OjpLZXlib2FyZE1vZGlmaWVy
cywgUXQ6Ok9yaWVudGF0aW9uKTsKICAgICB2b2lkIHNlbmRFdmVudChRT2JqZWN0KiByZWNlaXZl
ciwgUUV2ZW50KiBldmVudCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9U
ZXN0UnVubmVyUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNw
cAppbmRleCBmNTQxNzUyMTMzNGQ5NTVjOWU1MTE5MTVjMTk0YjkxMWZkMjc2NTlhLi5lZGJhY2Iz
Y2FjNzA5M2EzMWEzMTBmOWI4ZGU1M2FjMDdiMzAxMjZmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3F0L1Rlc3RSdW5uZXJRdC5jcHAKQEAgLTM0LDEyICszNCwxMyBAQAogI2luY2x1ZGUgIk5vdGlm
aWNhdGlvblByZXNlbnRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiV29ya1F1ZXVlLmgiCiAjaW5j
bHVkZSAiV29ya1F1ZXVlSXRlbVF0LmgiCisjaW5jbHVkZSA8SlNTdHJpbmdSZWZRdC5oPgogI2lu
Y2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UURpcj4KICNpbmNsdWRlIDxRTG9j
YWxlPgogI2luY2x1ZGUgPHF3ZWJzZXR0aW5ncy5oPgogCi1UZXN0UnVubmVyUXQ6OlRlc3RSdW5u
ZXJRdChXZWJDb3JlOjpEdW1wUmVuZGVyVHJlZSogZHJ0KQorVGVzdFJ1bm5lclF0OjpUZXN0UnVu
bmVyUXQoRHVtcFJlbmRlclRyZWUqIGRydCkKICAgICA6IFFPYmplY3QoKQogICAgICwgbV9kcnQo
ZHJ0KQogICAgICwgbV9zaG91bGRUaW1lb3V0KHRydWUpCkBAIC03NDQsMTEgKzc0NSw0MSBAQCBi
b29sIFRlc3RSdW5uZXJRdDo6aXNDb21tYW5kRW5hYmxlZChjb25zdCBRU3RyaW5nJiBuYW1lKSBj
b25zdAogICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6aXNDb21tYW5kRW5hYmxl
ZChtX2RydC0+cGFnZUFkYXB0ZXIoKSwgbmFtZSk7CiB9CiAKLWJvb2wgVGVzdFJ1bm5lclF0Ojpm
aW5kU3RyaW5nKGNvbnN0IFFTdHJpbmcmIHN0cmluZywgY29uc3QgUVN0cmluZ0xpc3QmIG9wdGlv
bkFycmF5KQotewotICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZmluZFN0cmlu
ZyhtX2RydC0+cGFnZUFkYXB0ZXIoKSwgc3RyaW5nLCBvcHRpb25BcnJheSk7Citib29sIFRlc3RS
dW5uZXI6OmZpbmRTdHJpbmcoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5nUmVmIHN0cmlu
ZywgSlNPYmplY3RSZWYgb3B0aW9uc0FycmF5KQoreworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBsZW5ndGhQcm9wZXJ0eU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKCJsZW5ndGgiKSk7CisgICAgSlNWYWx1ZVJlZiBsZW5ndGhWYWx1ZSA9IEpTT2JqZWN0R2V0
UHJvcGVydHkoY29udGV4dCwgb3B0aW9uc0FycmF5LCBsZW5ndGhQcm9wZXJ0eU5hbWUuZ2V0KCks
IDApOworICAgIGlmICghSlNWYWx1ZUlzTnVtYmVyKGNvbnRleHQsIGxlbmd0aFZhbHVlKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgUVdlYlBhZ2U6OkZpbmRGbGFncyBmaW5kRmxhZ3Mg
PSBRV2ViUGFnZTo6RmluZENhc2VTZW5zaXRpdmVseTsKKworICAgIGludCBsZW5ndGggPSBzdGF0
aWNfY2FzdDxpbnQ+KEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBsZW5ndGhWYWx1ZSwgMCkpOwor
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgSlNWYWx1ZVJl
ZiB2YWx1ZSA9IEpTT2JqZWN0R2V0UHJvcGVydHlBdEluZGV4KGNvbnRleHQsIG9wdGlvbnNBcnJh
eSwgaSwgMCk7CisgICAgICAgIGlmICghSlNWYWx1ZUlzU3RyaW5nKGNvbnRleHQsIHZhbHVlKSkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBvcHRpb25OYW1lKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIHZhbHVlLCAw
KSk7CisgICAgICAgIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG9wdGlvbk5hbWUu
Z2V0KCksICJDYXNlSW5zZW5zaXRpdmUiKSkKKyAgICAgICAgICAgIGZpbmRGbGFncyAmPSB+UVdl
YlBhZ2U6OkZpbmRDYXNlU2Vuc2l0aXZlbHk7CisgICAgICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNF
cXVhbFRvVVRGOENTdHJpbmcob3B0aW9uTmFtZS5nZXQoKSwgIkF0V29yZFN0YXJ0cyIpKQorICAg
ICAgICAgICAgZmluZEZsYWdzIHw9IFFXZWJQYWdlOjpGaW5kQXRXb3JkQmVnaW5uaW5nc09ubHk7
CisgICAgICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcob3B0aW9uTmFt
ZS5nZXQoKSwgIlRyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0YXJ0IikpCisgICAgICAgICAgICBm
aW5kRmxhZ3MgfD0gIFFXZWJQYWdlOjpUcmVhdE1lZGlhbENhcGl0YWxBc1dvcmRCZWdpbm5pbmc7
CisgICAgICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcob3B0aW9uTmFt
ZS5nZXQoKSwgIkJhY2t3YXJkcyIpKQorICAgICAgICAgICAgZmluZEZsYWdzIHw9ICBRV2ViUGFn
ZTo6RmluZEJhY2t3YXJkOworICAgICAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG9wdGlvbk5hbWUuZ2V0KCksICJXcmFwQXJvdW5kIikpCisgICAgICAgICAgICBmaW5k
RmxhZ3MgfD0gIFFXZWJQYWdlOjpGaW5kV3JhcHNBcm91bmREb2N1bWVudDsKKyAgICAgICAgZWxz
ZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhvcHRpb25OYW1lLmdldCgpLCAiU3Rh
cnRJblNlbGVjdGlvbiIpKQorICAgICAgICAgICAgZmluZEZsYWdzIHw9ICBRV2ViUGFnZTo6Rmlu
ZEJlZ2luc0luU2VsZWN0aW9uOworICAgIH0KKworICAgIER1bXBSZW5kZXJUcmVlKiBkcnQgPSBE
dW1wUmVuZGVyVHJlZTo6aW5zdGFuY2UoKTsKKyAgICByZXR1cm4gZHJ0LT53ZWJQYWdlKCktPmZp
bmRUZXh0KEpTU3RyaW5nQ29weVFTdHJpbmcoc3RyaW5nKSwgZmluZEZsYWdzKTsKIH0KIAorCiB2
b2lkIFRlc3RSdW5uZXJRdDo6YXV0aGVudGljYXRlU2Vzc2lvbihjb25zdCBRU3RyaW5nJiwgY29u
c3QgUVN0cmluZyYsIGNvbnN0IFFTdHJpbmcmKQogewogICAgIC8vIEZJWE1FOiBJZiB0aGVyZSBp
cyBhIGNvbmNlcHQgcGVyLXNlc3Npb24gKHBlci1wcm9jZXNzKSBjcmVkZW50aWFsIHN0b3JhZ2Us
IHRoZSBjcmVkZW50aWFscyBzaG91bGQgYmUgYWRkZWQgdG8gaXQgZm9yIGxhdGVyIHVzZS4KQEAg
LTc2NCwyNCArNzk1LDI0IEBAIHZvaWQgVGVzdFJ1bm5lclF0OjpzZXRJY29uRGF0YWJhc2VFbmFi
bGVkKGJvb2wgZW5hYmxlKQogCiB2b2lkIFRlc3RSdW5uZXJRdDo6c2V0TW9ja0RldmljZU9yaWVu
dGF0aW9uKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvb2wgY2FuUHJvdmlk
ZUJldGEsIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwgZG91YmxlIGdhbW1hKQog
ewotICAgIFFMaXN0PFdlYkNvcmU6OldlYlBhZ2UqPiBwYWdlcyA9IG1fZHJ0LT5nZXRBbGxQYWdl
cygpOwotICAgIGZvcmVhY2ggKFdlYkNvcmU6OldlYlBhZ2UqIHBhZ2UsIHBhZ2VzKQorICAgIFFM
aXN0PFdlYlBhZ2UqPiBwYWdlcyA9IG1fZHJ0LT5nZXRBbGxQYWdlcygpOworICAgIGZvcmVhY2gg
KFdlYlBhZ2UqIHBhZ2UsIHBhZ2VzKQogICAgICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6
c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKHBhZ2UtPmhhbmRsZSgpLCBjYW5Qcm92aWRlQWxwaGEs
IGFscGhhLCBjYW5Qcm92aWRlQmV0YSwgYmV0YSwgY2FuUHJvdmlkZUdhbW1hLCBnYW1tYSk7CiB9
CiAKIHZvaWQgVGVzdFJ1bm5lclF0OjpzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24oYm9vbCBhbGxv
dykKIHsKICAgICBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb25Db21tb24oYWxsb3cpOwotICAgIFFM
aXN0PFdlYkNvcmU6OldlYlBhZ2UqPiBwYWdlcyA9IG1fZHJ0LT5nZXRBbGxQYWdlcygpOwotICAg
IGZvcmVhY2ggKFdlYkNvcmU6OldlYlBhZ2UqIHBhZ2UsIHBhZ2VzKQorICAgIFFMaXN0PFdlYlBh
Z2UqPiBwYWdlcyA9IG1fZHJ0LT5nZXRBbGxQYWdlcygpOworICAgIGZvcmVhY2ggKFdlYlBhZ2Uq
IHBhZ2UsIHBhZ2VzKQogICAgICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0TW9ja0dl
b2xvY2F0aW9uUGVybWlzc2lvbihwYWdlLT5oYW5kbGUoKSwgYWxsb3cpOwogfQogCiBpbnQgVGVz
dFJ1bm5lclF0OjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cygp
CiB7CiAgICAgaW50IHBlbmRpbmdQZXJtaXNzaW9uQ291bnQgPSAwOwotICAgIFFMaXN0PFdlYkNv
cmU6OldlYlBhZ2UqPiBwYWdlcyA9IG1fZHJ0LT5nZXRBbGxQYWdlcygpOwotICAgIGZvcmVhY2gg
KFdlYkNvcmU6OldlYlBhZ2UqIHBhZ2UsIHBhZ2VzKQorICAgIFFMaXN0PFdlYlBhZ2UqPiBwYWdl
cyA9IG1fZHJ0LT5nZXRBbGxQYWdlcygpOworICAgIGZvcmVhY2ggKFdlYlBhZ2UqIHBhZ2UsIHBh
Z2VzKQogICAgICAgICBwZW5kaW5nUGVybWlzc2lvbkNvdW50ICs9IER1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0OjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyhwYWdl
LT5oYW5kbGUoKSk7CiAKICAgICByZXR1cm4gcGVuZGluZ1Blcm1pc3Npb25Db3VudDsKQEAgLTc5
NSwxNSArODI2LDE1IEBAIHZvaWQgVGVzdFJ1bm5lclF0OjpzZXRHZW9sb2NhdGlvblBlcm1pc3Np
b25Db21tb24oYm9vbCBhbGxvdykKIAogdm9pZCBUZXN0UnVubmVyUXQ6OnNldE1vY2tHZW9sb2Nh
dGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihjb25zdCBRU3RyaW5nJiBtZXNzYWdlKQogewot
ICAgIFFMaXN0PFdlYkNvcmU6OldlYlBhZ2UqPiBwYWdlcyA9IG1fZHJ0LT5nZXRBbGxQYWdlcygp
OwotICAgIGZvcmVhY2ggKFdlYkNvcmU6OldlYlBhZ2UqIHBhZ2UsIHBhZ2VzKQorICAgIFFMaXN0
PFdlYlBhZ2UqPiBwYWdlcyA9IG1fZHJ0LT5nZXRBbGxQYWdlcygpOworICAgIGZvcmVhY2ggKFdl
YlBhZ2UqIHBhZ2UsIHBhZ2VzKQogICAgICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0
TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKHBhZ2UtPmhhbmRsZSgpLCBt
ZXNzYWdlKTsKIH0KIAogdm9pZCBUZXN0UnVubmVyUXQ6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0
aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQog
ewotICAgIFFMaXN0PFdlYkNvcmU6OldlYlBhZ2UqPiBwYWdlcyA9IG1fZHJ0LT5nZXRBbGxQYWdl
cygpOwotICAgIGZvcmVhY2ggKFdlYkNvcmU6OldlYlBhZ2UqIHBhZ2UsIHBhZ2VzKQorICAgIFFM
aXN0PFdlYlBhZ2UqPiBwYWdlcyA9IG1fZHJ0LT5nZXRBbGxQYWdlcygpOworICAgIGZvcmVhY2gg
KFdlYlBhZ2UqIHBhZ2UsIHBhZ2VzKQogICAgICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6
c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24ocGFnZS0+aGFuZGxlKCksIGxhdGl0dWRlLCBsb25n
aXR1ZGUsIGFjY3VyYWN5KTsKIH0KIApAQCAtMTM0MCwxMSArMTM3MSw2IEBAIHZvaWQgVGVzdFJ1
bm5lcjo6YWRkVXNlclN0eWxlU2hlZXQoSlNTdHJpbmdSZWYgc291cmNlLCBib29sIGFsbEZyYW1l
cykKIHsKIH0KIAotYm9vbCBUZXN0UnVubmVyOjpmaW5kU3RyaW5nKEpTQ29udGV4dFJlZiwgSlNT
dHJpbmdSZWYsIEpTT2JqZWN0UmVmIG9wdGlvbnNBcnJheSkKLXsKLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6ZXhlY0NvbW1hbmQoSlNTdHJpbmdSZWYgbmFtZSwgSlNT
dHJpbmdSZWYgdmFsdWUpCiB7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9x
dC9UZXN0UnVubmVyUXQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5o
CmluZGV4IDY1YmJiODJhMmNiNDEzZTcyMTk3MzhiZmE3ZTU4MzA3Y2JjY2RjMGUuLmMxY2EzNzZj
YzE4MGM3Y2E5YzMyMzU1ZTU2YmQ2Mjc1Yzc5OTZjNGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L1Rlc3RSdW5uZXJRdC5oCkBAIC00OSwxNiArNDksMTQgQEAKIAogY2xhc3MgUVdlYkZyYW1lOwog
Y2xhc3MgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ7Ci1uYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBEdW1wUmVuZGVyVHJlZTsKLX0KIAogY2xhc3MgVGVzdFJ1bm5lclF0IDogcHVibGljIFFPYmpl
Y3QgewogICAgIFFfT0JKRUNUCiAgICAgUV9QUk9QRVJUWShpbnQgd2ViSGlzdG9yeUl0ZW1Db3Vu
dCBSRUFEIHdlYkhpc3RvcnlJdGVtQ291bnQpCiAgICAgUV9QUk9QRVJUWShib29sIGdsb2JhbEZs
YWcgUkVBRCBnbG9iYWxGbGFnIFdSSVRFIHNldEdsb2JhbEZsYWcpCiBwdWJsaWM6Ci0gICAgVGVz
dFJ1bm5lclF0KFdlYkNvcmU6OkR1bXBSZW5kZXJUcmVlKik7CisgICAgVGVzdFJ1bm5lclF0KER1
bXBSZW5kZXJUcmVlKik7CiAKICAgICBib29sIHNob3VsZERpc2FsbG93SW5jcmVhc2VGb3JBcHBs
aWNhdGlvbkNhY2hlUXVvdGEoKSBjb25zdCB7IHJldHVybiBtX2Rpc2FsbG93SW5jcmVhc2VGb3JB
cHBsaWNhdGlvbkNhY2hlUXVvdGE7IH0KICAgICBib29sIHNob3VsZER1bXBBc1RleHQoKSBjb25z
dCB7IHJldHVybiBtX3RleHREdW1wOyB9CkBAIC0xODIsNyArMTgwLDYgQEAgcHVibGljIFFfU0xP
VFM6CiAgICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wpOwog
ICAgIHZvaWQgZXhlY0NvbW1hbmQoY29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3QgUVN0cmluZyYg
dmFsdWUgPSBRU3RyaW5nKCkpOwogICAgIGJvb2wgaXNDb21tYW5kRW5hYmxlZChjb25zdCBRU3Ry
aW5nJiBuYW1lKSBjb25zdDsKLSAgICBib29sIGZpbmRTdHJpbmcoY29uc3QgUVN0cmluZyYsIGNv
bnN0IFFTdHJpbmdMaXN0JiBvcHRpb25BcnJheSk7CiAKICAgICB2b2lkIGFkZE9yaWdpbkFjY2Vz
c1doaXRlbGlzdEVudHJ5KGNvbnN0IFFTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29uc3QgUVN0cmlu
ZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRpb25Ib3N0LCBi
b29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKICAgICB2b2lkIHJlbW92ZU9yaWdpbkFj
Y2Vzc1doaXRlbGlzdEVudHJ5KGNvbnN0IFFTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29uc3QgUVN0
cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRpb25Ib3N0
LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKQEAgLTI5OSw3ICsyOTYsNyBAQCBw
cml2YXRlOgogICAgIFFVcmwgbV91c2VyU3R5bGVTaGVldExvY2F0aW9uOwogICAgIFFCYXNpY1Rp
bWVyIG1fdGltZW91dFRpbWVyOwogICAgIFFXZWJGcmFtZSogbV90b3BMb2FkaW5nRnJhbWU7Ci0g
ICAgV2ViQ29yZTo6RHVtcFJlbmRlclRyZWUqIG1fZHJ0OworICAgIER1bXBSZW5kZXJUcmVlKiBt
X2RydDsKICAgICBRV2ViSGlzdG9yeSogbV93ZWJIaXN0b3J5OwogICAgIGJvb2wgbV9pZ25vcmVE
ZXNrdG9wTm90aWZpY2F0aW9uOwogCg==
</data>
<flag name="review"
          id="214295"
          type_id="1"
          status="+"
          setter="jturcotte"
    />
          </attachment>
      

    </bug>

</bugzilla>