<?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>146585</bug_id>
          
          <creation_ts>2015-07-03 04:44:04 -0700</creation_ts>
          <short_desc>Promise-returning functions should reject promises if the callee is not of the expected type</short_desc>
          <delta_ts>2015-07-06 01:11:33 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1106673</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-07-03 04:44:04 -0700</bug_when>
    <thetext>As part of https://bugs.webkit.org/show_bug.cgi?id=146060, most exceptions are caught to reject promise in case of promise-returning functions.
Promise should also be rejected if the callee is not of the expected JS wrapper class name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106675</commentid>
    <comment_count>1</comment_count>
      <attachid>256092</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-07-03 04:56:08 -0700</bug_when>
    <thetext>Created attachment 256092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106863</commentid>
    <comment_count>2</comment_count>
      <attachid>256092</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-07-04 09:38:02 -0700</bug_when>
    <thetext>Comment on attachment 256092
Patch

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

&gt; Source/WebCore/bindings/js/JSDOMPromise.h:63
&gt; +    JSDOMGlobalObject* globalObject = JSC::jsCast&lt;JSDOMGlobalObject*&gt;(state.lexicalGlobalObject());

Should be a reference. It can’t be null.

&gt; Source/WebCore/bindings/js/JSDOMPromise.h:64
&gt; +    JSC::JSPromiseDeferred* promiseDeferred = JSC::JSPromiseDeferred::create(&amp;state, globalObject);

Should be a reference. It can’t be null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107024</commentid>
    <comment_count>3</comment_count>
      <attachid>256092</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-07-05 23:39:55 -0700</bug_when>
    <thetext>Comment on attachment 256092
Patch

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

&gt;&gt; Source/WebCore/bindings/js/JSDOMPromise.h:63
&gt;&gt; +    JSDOMGlobalObject* globalObject = JSC::jsCast&lt;JSDOMGlobalObject*&gt;(state.lexicalGlobalObject());
&gt; 
&gt; Should be a reference. It can’t be null.

ok

&gt;&gt; Source/WebCore/bindings/js/JSDOMPromise.h:64
&gt;&gt; +    JSC::JSPromiseDeferred* promiseDeferred = JSC::JSPromiseDeferred::create(&amp;state, globalObject);
&gt; 
&gt; Should be a reference. It can’t be null.

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107030</commentid>
    <comment_count>4</comment_count>
      <attachid>256197</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-07-06 00:12:14 -0700</bug_when>
    <thetext>Created attachment 256197
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107039</commentid>
    <comment_count>5</comment_count>
      <attachid>256197</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-06 01:11:29 -0700</bug_when>
    <thetext>Comment on attachment 256197
Patch for landing

Clearing flags on attachment: 256197

Committed r186312: &lt;http://trac.webkit.org/changeset/186312&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107040</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-06 01:11:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256092</attachid>
            <date>2015-07-03 04:56:08 -0700</date>
            <delta_ts>2015-07-06 00:12:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146585-20150703135512.patch</filename>
            <type>text/plain</type>
            <size>14447</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDliYTczNGZlMmRhZDNh
MzU0MGYyMTFjZTYxOTg5ZmY1OTQ4NzE4Ny4uNTMxZTViOTgxZmI0YjVkOTdhNTY0YTJkOGRiMmQy
ZjliY2Y1ZWU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDE1LTA3LTAzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CiAKKyAgICAgICAgUHJvbWlz
ZS1yZXR1cm5pbmcgZnVuY3Rpb25zIHNob3VsZCByZWplY3QgcHJvbWlzZXMgaWYgdGhlIGNhbGxl
ZSBpcyBub3Qgb2YgdGhlIGV4cGVjdGVkIHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgYmluZGluZyBnZW5lcmF0b3IgdG8gcmVqZWN0
IHByb21pc2UgaW4gY2FzZSB0aGUgY2FzdGluZyBvZiB0aGUgdGhpc1ZhbHVlIGlzIG5vdCB3b3Jr
aW5nIHByb3Blcmx5CisgICAgICAgIChpLmUuIHRoZSBjYWxsZWUgaXMgbm90IHdyYXBwaW5nIGEg
RE9NIG9iamVjdCBvZiB0aGUgZXhwZWN0ZWQgY2xhc3MuCisKKyAgICAgICAgQ292ZXJlZCBieSBy
ZWJhc2VkIHRlc3QgYW5kIGJpbmRpbmcgZXhwZWN0YXRpb25zLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01Qcm9taXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpjYWxsUHJvbWlzZUZ1bmN0
aW9uKTogUmVtb3ZlZCB3cmFwcGVyIGNsYXNzIHBhcmFtZXRlci4KKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50
YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
OiBVcGRhdGVkIGJpbmRpbmcgZXhwZWN0YXRpb25zLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvblByb21pc2Up
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlz
ZUZ1bmN0aW9uV2l0aEZsb2F0QXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEZsb2F0QXJndW1lbnRQcm9t
aXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFBy
b21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEV4Y2VwdGlvblByb21pc2Up
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlz
ZUZ1bmN0aW9uV2l0aE9wdGlvbmFsSW50QXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aE9wdGlvbmFsSW50
QXJndW1lbnRQcm9taXNlKToKKworMjAxNS0wNy0wMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5m
YWJsZXRAY3JmLmNhbm9uLmZyPgorCiAgICAgICAgIFtTdHJlYW1zIEFQSV0gUmVtb3ZlIFJlYWRh
YmxlU3RyZWFtIGFuZCBSZWFkZXIgY2FuY2VsKCkgY3VzdG9tIGJpbmRpbmcKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjQ1OAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZS5oCmluZGV4IGQ1NjVhYjU3NmY5MjQ4OWI4NDg1
MDJlN2RhZTZkNDg5NjkxYmNhYWUuLjdmNWYzY2Y2Mzc3ODY0Nzg5YjE2MTU5ODE3NzI3ZTgxMDE1
MDVlN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlz
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZS5oCkBAIC01
OCwxMyArNTgsMTMgQEAgcHJpdmF0ZToKIAogdm9pZCByZWplY3RQcm9taXNlV2l0aEV4Y2VwdGlv
bklmQW55KEpTQzo6RXhlY1N0YXRlJiwgSlNET01HbG9iYWxPYmplY3QmLCBKU0M6OkpTUHJvbWlz
ZURlZmVycmVkJik7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEpTQ2xhc3NOYW1lPgotaW5saW5lIEpT
Qzo6SlNWYWx1ZSBjYWxsUHJvbWlzZUZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlND
bGFzc05hbWUmIHdyYXBwZXIsIEpTQzo6RW5jb2RlZEpTVmFsdWUgcHJvbWlzZUZ1bmN0aW9uKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDbGFzc05hbWUqLCBKU0M6OkpTUHJvbWlzZURlZmVycmVkKikpCitp
bmxpbmUgSlNDOjpKU1ZhbHVlIGNhbGxQcm9taXNlRnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUmIHN0
YXRlLCBKU0M6OkVuY29kZWRKU1ZhbHVlIHByb21pc2VGdW5jdGlvbihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNQcm9taXNlRGVmZXJyZWQqKSkKIHsKLSAgICBKU0M6OkpTUHJvbWlzZURlZmVycmVk
KiBwcm9taXNlRGVmZXJyZWQgPSBKU0M6OkpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoJnN0YXRl
LCB3cmFwcGVyLmdsb2JhbE9iamVjdCgpKTsKLSAgICBwcm9taXNlRnVuY3Rpb24oJnN0YXRlLCAm
d3JhcHBlciwgcHJvbWlzZURlZmVycmVkKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihzdGF0ZS5sZXhpY2FsR2xv
YmFsT2JqZWN0KCkpOworICAgIEpTQzo6SlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJl
ZCA9IEpTQzo6SlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCk7
CisgICAgcHJvbWlzZUZ1bmN0aW9uKCZzdGF0ZSwgcHJvbWlzZURlZmVycmVkKTsKIAotICAgIHJl
amVjdFByb21pc2VXaXRoRXhjZXB0aW9uSWZBbnkoc3RhdGUsICp3cmFwcGVyLmdsb2JhbE9iamVj
dCgpLCAqcHJvbWlzZURlZmVycmVkKTsKKyAgICByZWplY3RQcm9taXNlV2l0aEV4Y2VwdGlvbklm
QW55KHN0YXRlLCAqZ2xvYmFsT2JqZWN0LCAqcHJvbWlzZURlZmVycmVkKTsKICAgICBBU1NFUlQo
IXN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKICAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9t
aXNlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCmluZGV4IGMyNDVhMzU0MmIxNzcyNTA3ZWI5ZWE3NGJiNzNjZDg3MDE5YjQ4
YmMuLmVlNzU4YjZlYzE5MzZlOTM0NTcxM2RkNjU3NDI3MDNlNTcwNTQ5YzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0y
NzgzLDE1ICsyNzgzLDE0IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAg
ICBpZiAoSXNSZXR1cm5pbmdQcm9taXNlKCRmdW5jdGlvbikgJiYgISRpc0N1c3RvbSkgewogICAg
ICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTVByb21pc2UuaCIpOwogCi0gICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJzdGF0aWMgaW5saW5lIEVuY29kZWRKU1Zh
bHVlICR7ZnVuY3Rpb25OYW1lfVByb21pc2UoRXhlY1N0YXRlKiwgIiAuICRjbGFzc05hbWUgLiAi
KiwgSlNQcm9taXNlRGVmZXJyZWQqKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAic3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSAke2Z1bmN0aW9uTmFtZX1Qcm9t
aXNlKEV4ZWNTdGF0ZSosIEpTUHJvbWlzZURlZmVycmVkKik7XG4iKTsKICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgJHtmdW5j
dGlvbk5hbWV9KEV4ZWNTdGF0ZSogZXhlYylcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAie1xuIik7CiAKLSAgICAgICAgICAgICAgICBHZW5lcmF0ZUZ1bmN0aW9uQ2Fz
dGVkVGhpcygkaW50ZXJmYWNlLCAkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGZ1bmN0aW9u
KTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGNhbGxQcm9taXNlRnVuY3Rpb24oKmV4ZWMsICpjYXN0ZWRUaGlzLCAke2Z1bmN0
aW9uTmFtZX1Qcm9taXNlKSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGxQcm9taXNlRnVuY3Rpb24oKmV4ZWMs
ICR7ZnVuY3Rpb25OYW1lfVByb21pc2UpKTtcbiIpOwogCiAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ9XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
Ilxuc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSAke2Z1bmN0aW9uTmFtZX1Qcm9taXNlKEV4
ZWNTdGF0ZSogZXhlYywgIiAuICRjbGFzc05hbWUgLiAiKiBjYXN0ZWRUaGlzLCBKU1Byb21pc2VE
ZWZlcnJlZCogcHJvbWlzZURlZmVycmVkKVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJcbnN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgJHtmdW5jdGlvbk5hbWV9
UHJvbWlzZShFeGVjU3RhdGUqIGV4ZWMsIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJy
ZWQpXG4iKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCAke2Z1
bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjKVxuIik7CkBAIC0yODE1LDcgKzI4MTQsNyBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uRnVuY3Rpb25DYWxsKCRmdW5jdGlvbiwgJGZ1bmN0aW9uU3RyaW5nLCAiICAg
ICIsICRzdmdQcm9wZXJ0eVR5cGUsICRpbnRlcmZhY2VOYW1lKTsKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIEdlbmVyYXRlRnVuY3Rpb25D
YXN0ZWRUaGlzKCRpbnRlcmZhY2UsICRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkZnVuY3Rp
b24pIGlmIG5vdCAoSXNSZXR1cm5pbmdQcm9taXNlKCRmdW5jdGlvbikgJiYgISRpc0N1c3RvbSk7
CisgICAgICAgICAgICAgICAgR2VuZXJhdGVGdW5jdGlvbkNhc3RlZFRoaXMoJGludGVyZmFjZSwg
JGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRmdW5jdGlvbik7CiAKICAgICAgICAgICAgICAg
ICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNoZWNrU2VjdXJpdHkifSBh
bmQKICAgICAgICAgICAgICAgICAgICAgISRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiRG9Ob3RDaGVja1NlY3VyaXR5In0pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggNjVhZjZh
MGUyYTM0NDVkZWU0NjM2Yjg2NGY5ZThlMDY2MzNhNjczYy4uMTY2ZWRlNDM5ODhmMmJiNzg2ZDE2
YTI1ZmQ1YmViZjdjMzRiZDUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTQ0MzMsMzcgKzQ0MzMsMzcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFu
eShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIAotc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25Qcm9taXNlKEV4ZWNTdGF0ZSosIEpTVGVzdE9i
aiosIEpTUHJvbWlzZURlZmVycmVkKik7CitzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvblByb21pc2UoRXhlY1N0
YXRlKiwgSlNQcm9taXNlRGVmZXJyZWQqKTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGxQcm9taXNlRnVuY3Rpb24o
KmV4ZWMsIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvblByb21p
c2UpKTsKK30KKworc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25Qcm9taXNlKEV4ZWNTdGF0ZSogZXhlYywgSlNQ
cm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCkKK3sKICAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dUaGlzVHlwZUVycm9yKCpleGVjLCAiVGVzdE9i
aiIsICJ0ZXN0UHJvbWlzZUZ1bmN0aW9uIik7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
UyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShjYWxsUHJvbWlzZUZ1bmN0aW9uKCpleGVjLCAqY2FzdGVkVGhpcywganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uUHJvbWlzZSkpOwotfQotCi1zdGF0aWMg
aW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21p
c2VGdW5jdGlvblByb21pc2UoRXhlY1N0YXRlKiBleGVjLCBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMs
IEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQpCi17CiAgICAgYXV0byYgaW1wbCA9
IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpbXBsLnRlc3RQcm9taXNlRnVuY3Rpb24oRGVmZXJy
ZWRXcmFwcGVyKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBwcm9taXNlRGVmZXJy
ZWQpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1z
dGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVz
dFByb21pc2VGdW5jdGlvbldpdGhGbG9hdEFyZ3VtZW50UHJvbWlzZShFeGVjU3RhdGUqLCBKU1Rl
c3RPYmoqLCBKU1Byb21pc2VEZWZlcnJlZCopOworc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRmxvYXRB
cmd1bWVudFByb21pc2UoRXhlY1N0YXRlKiwgSlNQcm9taXNlRGVmZXJyZWQqKTsKIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlz
ZUZ1bmN0aW9uV2l0aEZsb2F0QXJndW1lbnQoRXhlY1N0YXRlKiBleGVjKQogeworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoY2FsbFByb21pc2VGdW5jdGlvbigqZXhlYywganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEZsb2F0QXJndW1lbnRQcm9taXNl
KSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEZsb2F0QXJndW1lbnRQcm9taXNlKEV4ZWNT
dGF0ZSogZXhlYywgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCkKK3sKICAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dUaGlzVHlwZUVycm9y
KCpleGVjLCAiVGVzdE9iaiIsICJ0ZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEZsb2F0QXJndW1lbnQi
KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6
aW5mbygpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGxQcm9taXNlRnVuY3Rpb24o
KmV4ZWMsICpjYXN0ZWRUaGlzLCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNl
RnVuY3Rpb25XaXRoRmxvYXRBcmd1bWVudFByb21pc2UpKTsKLX0KLQotc3RhdGljIGlubGluZSBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rp
b25XaXRoRmxvYXRBcmd1bWVudFByb21pc2UoRXhlY1N0YXRlKiBleGVjLCBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMsIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQpCi17CiAgICAgYXV0
byYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+YXJn
dW1lbnRDb3VudCgpIDwgMSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3Jl
YXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwpAQCAtNDQ3OCwxOSArNDQ3OCwxOSBA
QCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
VGVzdFByb21pc2VGdW5jdGlvbldpdGhGbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEV4Y2VwdGlvblByb21pc2Uo
RXhlY1N0YXRlKiwgSlNUZXN0T2JqKiwgSlNQcm9taXNlRGVmZXJyZWQqKTsKK3N0YXRpYyBpbmxp
bmUgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1
bmN0aW9uV2l0aEV4Y2VwdGlvblByb21pc2UoRXhlY1N0YXRlKiwgSlNQcm9taXNlRGVmZXJyZWQq
KTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiB7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYWxsUHJvbWlzZUZ1bmN0aW9uKCpleGVjLCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uUHJv
bWlzZSkpOworfQorCitzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb25Qcm9taXNlKEV4ZWNT
dGF0ZSogZXhlYywgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCkKK3sKICAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dUaGlzVHlwZUVycm9y
KCpleGVjLCAiVGVzdE9iaiIsICJ0ZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEV4Y2VwdGlvbiIpOwog
ICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZv
KCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FsbFByb21pc2VGdW5jdGlvbigqZXhl
YywgKmNhc3RlZFRoaXMsIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5j
dGlvbldpdGhFeGNlcHRpb25Qcm9taXNlKSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEV4
Y2VwdGlvblByb21pc2UoRXhlY1N0YXRlKiBleGVjLCBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMsIEpT
UHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQpCi17CiAgICAgYXV0byYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBpbXBsLnRl
c3RQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uKERlZmVycmVkV3JhcHBlcihleGVjLCBjYXN0
ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKSwgZWMpOwpAQCAtNDQ5OCwx
OSArNDQ5OCwxOSBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhFeAogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aE9wdGlv
bmFsSW50QXJndW1lbnRQcm9taXNlKEV4ZWNTdGF0ZSosIEpTVGVzdE9iaiosIEpTUHJvbWlzZURl
ZmVycmVkKik7CitzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50UHJvbWlz
ZShFeGVjU3RhdGUqLCBKU1Byb21pc2VEZWZlcnJlZCopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRo
T3B0aW9uYWxJbnRBcmd1bWVudChFeGVjU3RhdGUqIGV4ZWMpCiB7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShjYWxsUHJvbWlzZUZ1bmN0aW9uKCpleGVjLCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJbnRBcmd1bWVudFByb21pc2Up
KTsKK30KKworc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJbnRBcmd1bWVudFByb21pc2Uo
RXhlY1N0YXRlKiBleGVjLCBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkKQorewog
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1RoaXNUeXBl
RXJyb3IoKmV4ZWMsICJUZXN0T2JqIiwgInRlc3RQcm9taXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJ
bnRBcmd1bWVudCIpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywg
SlNUZXN0T2JqOjppbmZvKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FsbFByb21p
c2VGdW5jdGlvbigqZXhlYywgKmNhc3RlZFRoaXMsIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
VGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50UHJvbWlzZSkpOwotfQot
Ci1zdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
VGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50UHJvbWlzZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTVGVzdE9iaiogY2FzdGVkVGhpcywgSlNQcm9taXNlRGVmZXJyZWQqIHByb21p
c2VEZWZlcnJlZCkKLXsKICAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogCiAg
ICAgc2l6ZV90IGFyZ3NDb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYTQ0
Mzk3ODg5MTg3YjZlZjIwNjFhZGM3Y2NiMTFiNWNkZmY4OTFkLi5lNzFhYzZjMTllOGRkNWYzOTM0
ZmM5MTlmYzRjMDhiZTRiZDJjMzVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMDctMDMg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBQ
cm9taXNlLXJldHVybmluZyBmdW5jdGlvbnMgc2hvdWxkIHJlamVjdCBwcm9taXNlcyBpZiB0aGUg
Y2FsbGVlIGlzIG5vdCBvZiB0aGUgZXhwZWN0ZWQgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRh
dGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0OgorCiAyMDE1LTA3LTAyICBEb3VnIFJ1c3Nl
bGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBTZWxlY3Rpb24gY2hhbmdl
IGFzIGEgcmVzdWx0IG9mIGZvY3VzaW5nIGFuIGVsZW1lbnQgc2hvdWxkIGluY2x1ZGUgdGhhdCAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9u
L2JyYW5kLWNoZWNrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5j
ZS1pbXBsZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0CmluZGV4IGVmNDlmNGIx
ZDFlMDhiMzJhNWUwNDZlZjZjNzY4ZWRhMGFhOWY1NDIuLmJmNzJjMDA4NDhiMTAxMTQ5YTM5NGEx
MDExODA4MzRiY2JjOTE2MDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJl
bmNlLWltcGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJhbmQtY2hlY2tzLWV4cGVj
dGVkLnR4dApAQCAtNCw3ICs0LDcgQEAgUEFTUyBDYW4gZ2V0IHRoZSBSZWFkYWJsZVN0cmVhbUNv
bnRyb2xsZXIgY29uc3RydWN0b3IgaW5kaXJlY3RseQogRkFJTCBSZWFkYWJsZVN0cmVhbS5wcm90
b3R5cGUucGlwZVRocm91Z2ggd29ya3MgZ2VuZXJpY2FsbHkgb24gaXRzIHRoaXMgYW5kIGl0cyBh
cmd1bWVudHMgQ2FuIG9ubHkgY2FsbCBSZWFkYWJsZVN0cmVhbS5waXBlVGhyb3VnaCBvbiBpbnN0
YW5jZXMgb2YgUmVhZGFibGVTdHJlYW0KIFBBU1MgUmVhZGFibGVTdHJlYW1SZWFkZXIgZW5mb3Jj
ZXMgYSBicmFuZCBjaGVjayBvbiBpdHMgYXJndW1lbnQgCiBGQUlMIFJlYWRhYmxlU3RyZWFtUmVh
ZGVyLnByb3RvdHlwZS5jbG9zZWQgZW5mb3JjZXMgYSBicmFuZCBjaGVjayB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihvYmosIGdldHRlck5hbWUpLmdldCcpCi1GQUlMIFJlYWRhYmxlU3RyZWFtUmVhZGVyLnByb3Rv
dHlwZS5jYW5jZWwgZW5mb3JjZXMgYSBicmFuZCBjaGVjayBDYW4gb25seSBjYWxsIFJlYWRhYmxl
U3RyZWFtUmVhZGVyLmNhbmNlbCBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW1SZWFkZXIK
K1BBU1MgUmVhZGFibGVTdHJlYW1SZWFkZXIucHJvdG90eXBlLmNhbmNlbCBlbmZvcmNlcyBhIGJy
YW5kIGNoZWNrIAogRkFJTCBSZWFkYWJsZVN0cmVhbVJlYWRlci5wcm90b3R5cGUucmVhZCBlbmZv
cmNlcyBhIGJyYW5kIGNoZWNrIENhbiBvbmx5IGNhbGwgUmVhZGFibGVTdHJlYW1SZWFkZXIucmVh
ZCBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW1SZWFkZXIKIEZBSUwgUmVhZGFibGVTdHJl
YW1SZWFkZXIucHJvdG90eXBlLnJlYWQgZW5mb3JjZXMgYSBicmFuZCBjaGVjayBDYW4gb25seSBj
YWxsIFJlYWRhYmxlU3RyZWFtUmVhZGVyLnJlYWQgb24gaW5zdGFuY2VzIG9mIFJlYWRhYmxlU3Ry
ZWFtUmVhZGVyCiBQQVNTIFJlYWRhYmxlU3RyZWFtUmVhZGVyLnByb3RvdHlwZS5yZWxlYXNlTG9j
ayBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256197</attachid>
            <date>2015-07-06 00:12:14 -0700</date>
            <delta_ts>2015-07-06 01:11:29 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-146585-20150706091115.patch</filename>
            <type>text/plain</type>
            <size>14517</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzMyODNlMzE1MzQwYjJj
MjgwOTk3YjdmN2YwNTc4N2Y1NTFhNjBmMS4uNjI0OGYxNGI1NDg4ZTFlOWRiNWQ1YzYzMGEwNzc5
YWY5NzU3Njc0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE1LTA3LTA1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgUHJvbWlz
ZS1yZXR1cm5pbmcgZnVuY3Rpb25zIHNob3VsZCByZWplY3QgcHJvbWlzZXMgaWYgdGhlIGNhbGxl
ZSBpcyBub3Qgb2YgdGhlIGV4cGVjdGVkIHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU4NQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgorCisgICAgICAgIFVwZGF0ZWQgYmluZGluZyBnZW5lcmF0b3IgdG8gcmVqZWN0IHBy
b21pc2UgaW4gY2FzZSB0aGUgY2FzdGluZyBvZiB0aGUgdGhpc1ZhbHVlIGlzIG5vdCB3b3JraW5n
IHByb3Blcmx5CisgICAgICAgIChpLmUuIHRoZSBjYWxsZWUgaXMgbm90IHdyYXBwaW5nIGEgRE9N
IG9iamVjdCBvZiB0aGUgZXhwZWN0ZWQgY2xhc3MuCisKKyAgICAgICAgQ292ZXJlZCBieSByZWJh
c2VkIHRlc3QgYW5kIGJpbmRpbmcgZXhwZWN0YXRpb25zLgorCisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01Qcm9taXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpjYWxsUHJvbWlzZUZ1bmN0aW9u
KTogUmVtb3ZlZCB3cmFwcGVyIGNsYXNzIHBhcmFtZXRlci4KKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRp
b24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOiBV
cGRhdGVkIGJpbmRpbmcgZXhwZWN0YXRpb25zLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvblByb21pc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1
bmN0aW9uV2l0aEZsb2F0QXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEZsb2F0QXJndW1lbnRQcm9taXNl
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21p
c2VGdW5jdGlvbldpdGhFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEV4Y2VwdGlvblByb21pc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1
bmN0aW9uV2l0aE9wdGlvbmFsSW50QXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aE9wdGlvbmFsSW50QXJn
dW1lbnRQcm9taXNlKToKKwogMjAxNS0wNy0wNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTgwNTgyKTogYmFja2dyb3VuZC1h
dHRhY2htZW50OiBsb2NhbDsgZG9lcyBub3Qgc2Nyb2xsIHRoZSBiYWNrZ3JvdW5kIGltYWdlIHdo
ZW4gc2Nyb2xsaW5nIHRoZSB0aGUgZWxlbWVudCdzIGNvbnRlbnRzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NUHJvbWlzZS5oCmluZGV4IGQ1NjVhYjU3NmY5MjQ4OWI4NDg1MDJlN2Rh
ZTZkNDg5NjkxYmNhYWUuLmIxNWE4YWEwOTU4ZDFhZDFmOGRlMjBkMmE4OGYzYjJkMGI2MDMyZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZS5oCkBAIC01OCwxNSAr
NTgsMTUgQEAgcHJpdmF0ZToKIAogdm9pZCByZWplY3RQcm9taXNlV2l0aEV4Y2VwdGlvbklmQW55
KEpTQzo6RXhlY1N0YXRlJiwgSlNET01HbG9iYWxPYmplY3QmLCBKU0M6OkpTUHJvbWlzZURlZmVy
cmVkJik7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEpTQ2xhc3NOYW1lPgotaW5saW5lIEpTQzo6SlNW
YWx1ZSBjYWxsUHJvbWlzZUZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDbGFzc05h
bWUmIHdyYXBwZXIsIEpTQzo6RW5jb2RlZEpTVmFsdWUgcHJvbWlzZUZ1bmN0aW9uKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDbGFzc05hbWUqLCBKU0M6OkpTUHJvbWlzZURlZmVycmVkKikpCitpbmxpbmUg
SlNDOjpKU1ZhbHVlIGNhbGxQcm9taXNlRnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlIHByb21pc2VGdW5jdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNQcm9taXNlRGVmZXJyZWQqKSkKIHsKLSAgICBKU0M6OkpTUHJvbWlzZURlZmVycmVkKiBwcm9t
aXNlRGVmZXJyZWQgPSBKU0M6OkpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoJnN0YXRlLCB3cmFw
cGVyLmdsb2JhbE9iamVjdCgpKTsKLSAgICBwcm9taXNlRnVuY3Rpb24oJnN0YXRlLCAmd3JhcHBl
ciwgcHJvbWlzZURlZmVycmVkKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0
ID0gKkpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oc3RhdGUubGV4aWNhbEdsb2JhbE9i
amVjdCgpKTsKKyAgICBKU0M6OkpTUHJvbWlzZURlZmVycmVkJiBwcm9taXNlRGVmZXJyZWQgPSAq
SlNDOjpKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCk7Cisg
ICAgcHJvbWlzZUZ1bmN0aW9uKCZzdGF0ZSwgJnByb21pc2VEZWZlcnJlZCk7CiAKLSAgICByZWpl
Y3RQcm9taXNlV2l0aEV4Y2VwdGlvbklmQW55KHN0YXRlLCAqd3JhcHBlci5nbG9iYWxPYmplY3Qo
KSwgKnByb21pc2VEZWZlcnJlZCk7CisgICAgcmVqZWN0UHJvbWlzZVdpdGhFeGNlcHRpb25JZkFu
eShzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBwcm9taXNlRGVmZXJyZWQpOwogICAgIEFTU0VSVCghc3Rh
dGUuaGFkRXhjZXB0aW9uKCkpOwotICAgIHJldHVybiBwcm9taXNlRGVmZXJyZWQtPnByb21pc2Uo
KTsKKyAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLnByb21pc2UoKTsKIH0KIAogdGVtcGxhdGUg
PHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBFcnJvcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNzE1MDc5ZjUzYWM2ZTZk
NjRjMjBiNDM3NjViNzRmMTNjZjMyY2UyNi4uNDUyNzg0MDQ5OTExZDljNDc3Y2U4ZjFhNzU1OGIw
ODJhZDA4MTViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KQEAgLTI3OTksMTUgKzI3OTksMTQgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgICAgIGlmIChJc1JldHVybmluZ1Byb21pc2UoJGZ1bmN0aW9u
KSAmJiAhJGlzQ3VzdG9tKSB7CiAgICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpT
RE9NUHJvbWlzZS5oIik7CiAKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInN0
YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgJHtmdW5jdGlvbk5hbWV9UHJvbWlzZShFeGVjU3Rh
dGUqLCAiIC4gJGNsYXNzTmFtZSAuICIqLCBKU1Byb21pc2VEZWZlcnJlZCopO1xuIik7CisgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJzdGF0aWMgaW5saW5lIEVuY29kZWRKU1Zh
bHVlICR7ZnVuY3Rpb25OYW1lfVByb21pc2UoRXhlY1N0YXRlKiwgSlNQcm9taXNlRGVmZXJyZWQq
KTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCAke2Z1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjKVxuIik7CiAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKIAotICAgICAgICAgICAg
ICAgIEdlbmVyYXRlRnVuY3Rpb25DYXN0ZWRUaGlzKCRpbnRlcmZhY2UsICRpbnRlcmZhY2VOYW1l
LCAkY2xhc3NOYW1lLCAkZnVuY3Rpb24pOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FsbFByb21pc2VGdW5jdGlvbigqZXhl
YywgKmNhc3RlZFRoaXMsICR7ZnVuY3Rpb25OYW1lfVByb21pc2UpKTtcbiIpOworICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2Fs
bFByb21pc2VGdW5jdGlvbigqZXhlYywgJHtmdW5jdGlvbk5hbWV9UHJvbWlzZSkpO1xuIik7CiAK
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cbiIpOwotICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiXG5zdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlICR7
ZnVuY3Rpb25OYW1lfVByb21pc2UoRXhlY1N0YXRlKiBleGVjLCAiIC4gJGNsYXNzTmFtZSAuICIq
IGNhc3RlZFRoaXMsIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQpXG4iKTsKKyAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuc3RhdGljIGlubGluZSBFbmNvZGVk
SlNWYWx1ZSAke2Z1bmN0aW9uTmFtZX1Qcm9taXNlKEV4ZWNTdGF0ZSogZXhlYywgSlNQcm9taXNl
RGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZClcbiIpOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMICR7ZnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIGV4ZWMpXG4iKTsK
QEAgLTI4MzEsNyArMjgzMCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAg
ICAgICAgICAgICAgIEdlbmVyYXRlSW1wbGVtZW50YXRpb25GdW5jdGlvbkNhbGwoJGZ1bmN0aW9u
LCAkZnVuY3Rpb25TdHJpbmcsICIgICAgIiwgJHN2Z1Byb3BlcnR5VHlwZSwgJGludGVyZmFjZU5h
bWUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgR2VuZXJhdGVGdW5jdGlvbkNhc3RlZFRoaXMoJGludGVyZmFjZSwgJGludGVyZmFjZU5h
bWUsICRjbGFzc05hbWUsICRmdW5jdGlvbikgaWYgbm90IChJc1JldHVybmluZ1Byb21pc2UoJGZ1
bmN0aW9uKSAmJiAhJGlzQ3VzdG9tKTsKKyAgICAgICAgICAgICAgICBHZW5lcmF0ZUZ1bmN0aW9u
Q2FzdGVkVGhpcygkaW50ZXJmYWNlLCAkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGZ1bmN0
aW9uKTsKIAogICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ2hlY2tTZWN1cml0eSJ9IGFuZAogICAgICAgICAgICAgICAgICAgICAhJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEb05vdENoZWNrU2VjdXJpdHkifSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcAppbmRleCBiZmQyZGJjYjljNzI0NDU5ZGIxODZmZDI4ZGFiNzRiNmY4N2I1OWM3
Li42Zjc0ZGVhNDljYjhhYTc2OGI5MjM1MWJhOTRlNmRlNGFiMjViMTYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApA
QCAtNDUyMywzNyArNDUyMywzNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQW55KEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgaW5saW5lIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvblByb21p
c2UoRXhlY1N0YXRlKiwgSlNUZXN0T2JqKiwgSlNQcm9taXNlRGVmZXJyZWQqKTsKK3N0YXRpYyBp
bmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlz
ZUZ1bmN0aW9uUHJvbWlzZShFeGVjU3RhdGUqLCBKU1Byb21pc2VEZWZlcnJlZCopOwogRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9t
aXNlRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjKQogeworICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoY2FsbFByb21pc2VGdW5jdGlvbigqZXhlYywganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25U
ZXN0UHJvbWlzZUZ1bmN0aW9uUHJvbWlzZSkpOworfQorCitzdGF0aWMgaW5saW5lIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvblByb21p
c2UoRXhlY1N0YXRlKiBleGVjLCBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkKQor
ewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwog
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1RoaXNU
eXBlRXJyb3IoKmV4ZWMsICJUZXN0T2JqIiwgInRlc3RQcm9taXNlRnVuY3Rpb24iKTsKICAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGxQcm9taXNlRnVuY3Rpb24oKmV4ZWMsICpj
YXN0ZWRUaGlzLCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25Q
cm9taXNlKSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uUHJvbWlzZShFeGVjU3RhdGUqIGV4ZWMs
IEpTVGVzdE9iaiogY2FzdGVkVGhpcywgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJl
ZCkKLXsKICAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGltcGwudGVz
dFByb21pc2VGdW5jdGlvbihEZWZlcnJlZFdyYXBwZXIoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFs
T2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEZsb2F0QXJndW1lbnRQ
cm9taXNlKEV4ZWNTdGF0ZSosIEpTVGVzdE9iaiosIEpTUHJvbWlzZURlZmVycmVkKik7CitzdGF0
aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFBy
b21pc2VGdW5jdGlvbldpdGhGbG9hdEFyZ3VtZW50UHJvbWlzZShFeGVjU3RhdGUqLCBKU1Byb21p
c2VEZWZlcnJlZCopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRmxvYXRBcmd1bWVudChFeGVjU3Rh
dGUqIGV4ZWMpCiB7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYWxsUHJvbWlzZUZ1bmN0
aW9uKCpleGVjLCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25X
aXRoRmxvYXRBcmd1bWVudFByb21pc2UpKTsKK30KKworc3RhdGljIGlubGluZSBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRmxv
YXRBcmd1bWVudFByb21pc2UoRXhlY1N0YXRlKiBleGVjLCBKU1Byb21pc2VEZWZlcnJlZCogcHJv
bWlzZURlZmVycmVkKQorewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVl
KCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
Pih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJl
dHVybiB0aHJvd1RoaXNUeXBlRXJyb3IoKmV4ZWMsICJUZXN0T2JqIiwgInRlc3RQcm9taXNlRnVu
Y3Rpb25XaXRoRmxvYXRBcmd1bWVudCIpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
Y2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoY2FsbFByb21pc2VGdW5jdGlvbigqZXhlYywgKmNhc3RlZFRoaXMsIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhGbG9hdEFyZ3VtZW50UHJvbWlzZSkp
OwotfQotCi1zdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhGbG9hdEFyZ3VtZW50UHJvbWlzZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTVGVzdE9iaiogY2FzdGVkVGhpcywgSlNQcm9taXNlRGVmZXJyZWQqIHByb21p
c2VEZWZlcnJlZCkKLXsKICAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAg
IGlmIChVTkxJS0VMWShleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7
CkBAIC00NTY4LDE5ICs0NTY4LDE5IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEZsCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIGlubGluZSBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rp
b25XaXRoRXhjZXB0aW9uUHJvbWlzZShFeGVjU3RhdGUqLCBKU1Rlc3RPYmoqLCBKU1Byb21pc2VE
ZWZlcnJlZCopOworc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uUHJvbWlzZShFeGVjU3Rh
dGUqLCBKU1Byb21pc2VEZWZlcnJlZCopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9u
KEV4ZWNTdGF0ZSogZXhlYykKIHsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGxQcm9t
aXNlRnVuY3Rpb24oKmV4ZWMsIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VG
dW5jdGlvbldpdGhFeGNlcHRpb25Qcm9taXNlKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0
aEV4Y2VwdGlvblByb21pc2UoRXhlY1N0YXRlKiBleGVjLCBKU1Byb21pc2VEZWZlcnJlZCogcHJv
bWlzZURlZmVycmVkKQorewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVl
KCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
Pih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJl
dHVybiB0aHJvd1RoaXNUeXBlRXJyb3IoKmV4ZWMsICJUZXN0T2JqIiwgInRlc3RQcm9taXNlRnVu
Y3Rpb25XaXRoRXhjZXB0aW9uIik7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0
ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShj
YWxsUHJvbWlzZUZ1bmN0aW9uKCpleGVjLCAqY2FzdGVkVGhpcywganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEV4Y2VwdGlvblByb21pc2UpKTsKLX0KLQot
c3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRl
c3RQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uUHJvbWlzZShFeGVjU3RhdGUqIGV4ZWMsIEpT
VGVzdE9iaiogY2FzdGVkVGhpcywgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCkK
LXsKICAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwogICAgIGltcGwudGVzdFByb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb24oRGVm
ZXJyZWRXcmFwcGVyKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBwcm9taXNlRGVm
ZXJyZWQpLCBlYyk7CkBAIC00NTg4LDE5ICs0NTg4LDE5IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0
aEV4CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3Rh
dGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQ
cm9taXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJbnRBcmd1bWVudFByb21pc2UoRXhlY1N0YXRlKiwg
SlNUZXN0T2JqKiwgSlNQcm9taXNlRGVmZXJyZWQqKTsKK3N0YXRpYyBpbmxpbmUgRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aE9w
dGlvbmFsSW50QXJndW1lbnRQcm9taXNlKEV4ZWNTdGF0ZSosIEpTUHJvbWlzZURlZmVycmVkKik7
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
VGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50KEV4ZWNTdGF0ZSogZXhl
YykKIHsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGxQcm9taXNlRnVuY3Rpb24oKmV4
ZWMsIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRp
b25hbEludEFyZ3VtZW50UHJvbWlzZSkpOworfQorCitzdGF0aWMgaW5saW5lIEVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRp
b25hbEludEFyZ3VtZW50UHJvbWlzZShFeGVjU3RhdGUqIGV4ZWMsIEpTUHJvbWlzZURlZmVycmVk
KiBwcm9taXNlRGVmZXJyZWQpCit7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlz
VmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAg
ICAgcmV0dXJuIHRocm93VGhpc1R5cGVFcnJvcigqZXhlYywgIlRlc3RPYmoiLCAidGVzdFByb21p
c2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50Iik7CiAgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7Ci0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShjYWxsUHJvbWlzZUZ1bmN0aW9uKCpleGVjLCAqY2FzdGVkVGhpcywganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aE9wdGlvbmFsSW50
QXJndW1lbnRQcm9taXNlKSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aE9wdGlvbmFsSW50
QXJndW1lbnRQcm9taXNlKEV4ZWNTdGF0ZSogZXhlYywgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzLCBK
U1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkKQotewogICAgIGF1dG8mIGltcGwgPSBj
YXN0ZWRUaGlzLT5pbXBsKCk7CiAKICAgICBzaXplX3QgYXJnc0NvdW50ID0gZXhlYy0+YXJndW1l
bnRDb3VudCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDAwNDZhM2Y1ZWU1Mjc2ZmE5NWZjY2QzY2FhMDhkNzM5NzIwNmI4
ODMuLmUxY2Y4YjMxYTFjMjY4MThmMTBjODcxNzg5MWVkZDhiNTYzNzc3ZDkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wNy0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3Jm
LmNhbm9uLmZyPgorCisgICAgICAgIFByb21pc2UtcmV0dXJuaW5nIGZ1bmN0aW9ucyBzaG91bGQg
cmVqZWN0IHByb21pc2VzIGlmIHRoZSBjYWxsZWUgaXMgbm90IG9mIHRoZSBleHBlY3RlZCB0eXBl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1ODUK
KworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIHN0cmVhbXMv
cmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1leHBlY3RlZC50eHQ6CisKIDIw
MTUtMDctMDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAg
ICAgVXBkYXRlIHRvTGVuZ3RoIC8gdG9JbnRlZ2VyIG5hbWVzIGluIGNvbnRyb2wgcHJvZmlsZXIg
dGVzdCByZXN1bHRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1p
bXBsZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Ry
ZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4dApp
bmRleCBlZjQ5ZjRiMWQxZTA4YjMyYTVlMDQ2ZWY2Yzc2OGVkYTBhYTlmNTQyLi5iZjcyYzAwODQ4
YjEwMTE0OWEzOTRhMTAxMTgwODM0YmNiYzkxNjA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JyYW5k
LWNoZWNrcy1leHBlY3RlZC50eHQKQEAgLTQsNyArNCw3IEBAIFBBU1MgQ2FuIGdldCB0aGUgUmVh
ZGFibGVTdHJlYW1Db250cm9sbGVyIGNvbnN0cnVjdG9yIGluZGlyZWN0bHkKIEZBSUwgUmVhZGFi
bGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHdvcmtzIGdlbmVyaWNhbGx5IG9uIGl0cyB0
aGlzIGFuZCBpdHMgYXJndW1lbnRzIENhbiBvbmx5IGNhbGwgUmVhZGFibGVTdHJlYW0ucGlwZVRo
cm91Z2ggb24gaW5zdGFuY2VzIG9mIFJlYWRhYmxlU3RyZWFtCiBQQVNTIFJlYWRhYmxlU3RyZWFt
UmVhZGVyIGVuZm9yY2VzIGEgYnJhbmQgY2hlY2sgb24gaXRzIGFyZ3VtZW50IAogRkFJTCBSZWFk
YWJsZVN0cmVhbVJlYWRlci5wcm90b3R5cGUuY2xvc2VkIGVuZm9yY2VzIGEgYnJhbmQgY2hlY2sg
dW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ09iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3Iob2JqLCBnZXR0ZXJOYW1lKS5nZXQnKQotRkFJTCBSZWFkYWJsZVN0cmVh
bVJlYWRlci5wcm90b3R5cGUuY2FuY2VsIGVuZm9yY2VzIGEgYnJhbmQgY2hlY2sgQ2FuIG9ubHkg
Y2FsbCBSZWFkYWJsZVN0cmVhbVJlYWRlci5jYW5jZWwgb24gaW5zdGFuY2VzIG9mIFJlYWRhYmxl
U3RyZWFtUmVhZGVyCitQQVNTIFJlYWRhYmxlU3RyZWFtUmVhZGVyLnByb3RvdHlwZS5jYW5jZWwg
ZW5mb3JjZXMgYSBicmFuZCBjaGVjayAKIEZBSUwgUmVhZGFibGVTdHJlYW1SZWFkZXIucHJvdG90
eXBlLnJlYWQgZW5mb3JjZXMgYSBicmFuZCBjaGVjayBDYW4gb25seSBjYWxsIFJlYWRhYmxlU3Ry
ZWFtUmVhZGVyLnJlYWQgb24gaW5zdGFuY2VzIG9mIFJlYWRhYmxlU3RyZWFtUmVhZGVyCiBGQUlM
IFJlYWRhYmxlU3RyZWFtUmVhZGVyLnByb3RvdHlwZS5yZWFkIGVuZm9yY2VzIGEgYnJhbmQgY2hl
Y2sgQ2FuIG9ubHkgY2FsbCBSZWFkYWJsZVN0cmVhbVJlYWRlci5yZWFkIG9uIGluc3RhbmNlcyBv
ZiBSZWFkYWJsZVN0cmVhbVJlYWRlcgogUEFTUyBSZWFkYWJsZVN0cmVhbVJlYWRlci5wcm90b3R5
cGUucmVsZWFzZUxvY2sgZW5mb3JjZXMgYSBicmFuZCBjaGVjayAK
</data>

          </attachment>
      

    </bug>

</bugzilla>