<?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>198957</bug_id>
          
          <creation_ts>2019-06-18 00:27:48 -0700</creation_ts>
          <short_desc>Add WTF::crossThreadCopy(T&amp;&amp;) to utilize String::isolatedCopy() &amp;&amp;</short_desc>
          <delta_ts>2019-06-19 17:52:12 -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>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=133968</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>achristensen</cc>
    
    <cc>basuke</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1545567</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-06-18 00:27:48 -0700</bug_when>
    <thetext>Add WTF::crossThreadCopy(T&amp;&amp;) to utilize String::isolatedCopy() &amp;&amp;

&amp;&amp;-qualified String::isolatedCopy() has a optimization which
just does WTFMove if it isSafeToSendToAnotherThread which means
the object hasOneRef.
https://trac.webkit.org/browser/webkit/trunk/Source/WTF/wtf/text/WTFString.cpp?rev=246531#L640

WTF::crossThreadCopy is using only &amp;-qualified isolatedCopy.
To use the optimization, add WTF::crossThreadCopy(T&amp;&amp;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545568</commentid>
    <comment_count>1</comment_count>
      <attachid>372330</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-06-18 00:29:37 -0700</bug_when>
    <thetext>Created attachment 372330
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545569</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-06-18 00:33:05 -0700</bug_when>
    <thetext>Attachment 372330 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WTF/CrossThreadCopier.cpp:28:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Tools/TestWebKitAPI/Tests/WTF/CrossThreadCopier.cpp:28:  You should not add a blank line before implementation file&apos;s own header.  [build/include_order] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545580</commentid>
    <comment_count>3</comment_count>
      <attachid>372332</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-06-18 02:28:08 -0700</bug_when>
    <thetext>Created attachment 372332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545823</commentid>
    <comment_count>4</comment_count>
      <attachid>372332</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-06-18 14:49:00 -0700</bug_when>
    <thetext>Comment on attachment 372332
Patch

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

Great optimization.  r=me

&gt; Tools/TestWebKitAPI/Tests/WTF/CrossThreadCopier.cpp:48
&gt; +    // moved-out RefPtr becomes nullptr

This comment isn&apos;t needed.
Could you also add a test that has two references to original, moves one into crossThreadCopy, and verifies that an isolated copy is indeed made?

&gt; Tools/TestWebKitAPI/Tests/WTF/CrossThreadCopier.cpp:66
&gt; +    // moved-out RefPtr becomes nullptr

Ditto, unnecessary comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545926</commentid>
    <comment_count>5</comment_count>
      <attachid>372332</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-06-18 18:25:54 -0700</bug_when>
    <thetext>Comment on attachment 372332
Patch

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

To actually improve WebKit, we have more tasks:
1. Replace crossThreadCopy(something) → crossThreadCopy(WTFMove(something)) if possible
2. Add &amp;&amp;-qualified isolatedCopy method to some classes.
Volunteers are welcome.

&gt;&gt; Tools/TestWebKitAPI/Tests/WTF/CrossThreadCopier.cpp:48
&gt;&gt; +    // moved-out RefPtr becomes nullptr
&gt; 
&gt; This comment isn&apos;t needed.
&gt; Could you also add a test that has two references to original, moves one into crossThreadCopy, and verifies that an isolated copy is indeed made?

It&apos;s a good idea. Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545947</commentid>
    <comment_count>6</comment_count>
      <attachid>372332</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-06-18 20:24:27 -0700</bug_when>
    <thetext>Comment on attachment 372332
Patch

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

&gt; Source/WTF/wtf/CrossThreadCopier.h:158
&gt; +    static Type copy(Type&amp;&amp; source)

I can use a forwarding reference for this by fixing CrossThreadTask issue. Will fix.

Just for the record, here is the compilation error of CrossThreadTask I met.

&gt; [4/808] Building CXX object Tools\TestWebKitAPI\CMakeFiles\TestWTFLib.dir\Tests\WTF\CrossThreadTask.cpp.obj
&gt; FAILED: Tools/TestWebKitAPI/CMakeFiles/TestWTFLib.dir/Tests/WTF/CrossThreadTask.cpp.obj
&gt; C:\PROGRA~1\LLVM\bin\clang-cl.exe  /nologo -TP -DBUILDING_TestWTF -DBUILDING_WITH_CMAKE=1 -DGTEST_CREATE_SHARED_LIBRARY=0 -DGTEST_HAS_PTHREAD=0 -DGTEST_HAS_RTTI=0 -DHAVE_CONFIG_H=1 -DNOMINMAX -DTestWTFLib_EXPORTS -DUNICODE -DWINVER=0x601 -DWTF_PLATFORM_WIN_CAIRO=1 -D_CRT_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0 -D_UNICODE -D_WIN32_WINNT=0x601 -D_WINDOWS -D_WINSOCKAPI_=&quot;&quot; -I. -I..\..\Tools\TestWebKitAPI -I..\..\Source\ThirdParty\gtest\include -IWTF\Headers -IDerivedSources -I..\..\Source\ThirdParty -I..\..\WebKitLibraries\win\include /W4 -fdiagnostics-color=always -fcolor-diagnostics -Wno-parentheses-equality -Wno-noexcept-type -Qunused-arguments -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-unknown-argument -Wno-nonportable-include-path -Wno-unknown-pragmas -Wno-macro-redefined -Wno-undef /DWIN32 /D_WINDOWS  /GR- /EHsc- -fno-strict-aliasing /MD /Zi /Ob0 /Od /RTC1   /wd4018 /wd4068 /wd4099 /wd4100 /wd4127 /wd4138 /wd4146 /wd4180 /wd4189 /wd4201 /wd4206 /wd4244 /wd4251 /wd4267 /wd4275 /wd4288 /wd4291 /wd4305 /wd4309 /wd4344 /wd4355 /wd4389 /wd4396 /wd4456 /wd4457 /wd4458 /wd4459 /wd4481 /wd4503 /wd4505 /wd4510 /wd4512 /wd4530 /wd4610 /wd4611 /wd4646 /wd4702 /wd4706 /wd4722 /wd4800 /wd4819 /wd4951 /wd4952 /wd4996 /wd6011 /wd6031 /wd6211 /wd6246 /wd6255 /wd6387 /Zi /GS /EHa- /EHc- /EHs- /fp:except- /analyze- /bigobj /std:c++17 /utf-8 /validate-charset -fmsc-version=1911 /showIncludes /FoTools\TestWebKitAPI\CMakeFiles\TestWTFLib.dir\Tests\WTF\CrossThreadTask.cpp.obj /FdTools\TestWebKitAPI\CMakeFiles\TestWTFLib.dir\ -c ..\..\Tools\TestWebKitAPI\Tests\WTF\CrossThreadTask.cpp
&gt; In file included from ..\..\Tools\TestWebKitAPI\Tests\WTF\CrossThreadTask.cpp:28:
&gt; WTF\Headers\wtf/CrossThreadTask.h(70,65): error: no matching function for call to &apos;crossThreadCopy&apos;
&gt;     return CrossThreadTask([method, arguments = std::make_tuple(crossThreadCopy&lt;Arguments&gt;(arguments)...)]() mutable {
&gt;                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
&gt; ..\..\Tools\TestWebKitAPI\Tests\WTF\CrossThreadTask.cpp(111,21): note: in instantiation of function template specialization &apos;WTF::createCrossThreadTask&lt;const TestWebKitAPI::LifetimeLogger &amp;, const TestWebKitAPI::LifetimeLogger &amp;, const TestWebKitAPI::LifetimeLogger &amp;, TestWebKitAPI::LifetimeLogger, TestWebKitAPI::LifetimeLogger, TestWebKitAPI::LifetimeLogger&gt;&apos; requested here
&gt;         auto task = createCrossThreadTask(testFunction, logger1, logger2, logger3);
&gt;                     ^
&gt; WTF\Headers\wtf/CrossThreadCopier.h(166,27): note: candidate function template not viable: 1st argument (&apos;const TestWebKitAPI::LifetimeLogger&apos;) would lose const qualifier
&gt; template&lt;typename T&gt; auto crossThreadCopy(T&amp;&amp; source)
&gt;                           ^
&gt; 1 error generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545948</commentid>
    <comment_count>7</comment_count>
      <attachid>372422</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-06-18 20:28:18 -0700</bug_when>
    <thetext>Created attachment 372422
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546331</commentid>
    <comment_count>8</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-06-19 17:51:59 -0700</bug_when>
    <thetext>Committed r246623: &lt;https://trac.webkit.org/changeset/246623&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546332</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-19 17:52:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/51922449&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372330</attachid>
            <date>2019-06-18 00:29:37 -0700</date>
            <delta_ts>2019-06-18 00:34:53 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>wip.diff</filename>
            <type>text/plain</type>
            <size>4872</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkQ29waWVyLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9Dcm9zc1RocmVhZENvcGllci5oCmluZGV4IDYzMzg3OGFlOTM4Li5jNTMzNzNhODYw
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZENvcGllci5oCkBAIC0zMSw2ICszMSw3IEBACiAKICNw
cmFnbWEgb25jZQogCisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CkBAIC03Nyw5ICs3OCw5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDcm9zc1Ro
cmVhZENvcGllckJhc2U8dHJ1ZSwgZmFsc2UsIFQ+IDogcHVibGljIENyb3NzCiAKIC8vIENsYXNz
ZXMgdGhhdCBoYXZlIGFuIGlzb2xhdGVkQ29weSgpIG1ldGhvZCBnZXQgYSBkZWZhdWx0IHNwZWNp
YWxpemF0aW9uLgogdGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFz
ZTxmYWxzZSwgZmFsc2UsIFQ+IHsKLSAgICBzdGF0aWMgVCBjb3B5KGNvbnN0IFQmIHZhbHVlKQor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IHN0YXRpYyBhdXRvIGNvcHkoVSYmIHZhbHVlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHZhbHVlLmlzb2xhdGVkQ29weSgpOworICAgICAgICByZXR1cm4g
c3RkOjpmb3J3YXJkPFU+KHZhbHVlKS5pc29sYXRlZENvcHkoKTsKICAgICB9CiB9OwogCkBAIC0x
NTMsMTIgKzE1NCwyNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRD
b3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgT3B0aW9uYWw8VD4+IHsKICAgICAgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CiAgICAgICAgIHJldHVybiBDcm9zc1RocmVhZENvcGllcjxUPjo6Y29w
eSgqc291cmNlKTsKICAgICB9CisKKyAgICBzdGF0aWMgVHlwZSBjb3B5KFR5cGUmJiBzb3VyY2Up
CisgICAgeworICAgICAgICBpZiAoIXNvdXJjZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisgICAgICAgIHJldHVybiBDcm9zc1RocmVhZENvcGllcjxUPjo6Y29weShXVEZNb3Zl
KCpzb3VyY2UpKTsKKyAgICB9CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUIGNyb3NzVGhy
ZWFkQ29weShjb25zdCBUJiBzb3VyY2UpCiB7CiAgICAgcmV0dXJuIENyb3NzVGhyZWFkQ29waWVy
PFQ+Ojpjb3B5KHNvdXJjZSk7CiB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGF1dG8gY3Jvc3NU
aHJlYWRDb3B5KFQmJiBzb3VyY2UpCit7CisgICAgcmV0dXJuIENyb3NzVGhyZWFkQ29waWVyPHN0
ZDo6cmVtb3ZlX3JlZmVyZW5jZV90PFQ+Pjo6Y29weShzdGQ6OmZvcndhcmQ8VD4oc291cmNlKSk7
Cit9CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXVEYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50
eHQKaW5kZXggN2FkYjYwOGVlYWEuLjYxOWU3OGQzOWZkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VM
aXN0cy50eHQKQEAgLTMwLDYgKzMwLDcgQEAgc2V0KFRlc3RXVEZfU09VUkNFUwogICAgIFRlc3Rz
L1dURi9DaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwCiAgICAgVGVzdHMvV1RGL0NvbmN1
cnJlbnRQdHJIYXNoU2V0LmNwcAogICAgIFRlc3RzL1dURi9Db25kaXRpb24uY3BwCisgICAgVGVz
dHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAogICAgIFRlc3RzL1dURi9Dcm9zc1RocmVhZFRh
c2suY3BwCiAgICAgVGVzdHMvV1RGL0RhdGVNYXRoLmNwcAogICAgIFRlc3RzL1dURi9EZXF1ZS5j
cHAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFk
Q29waWVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29w
aWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjZjMmIzNjhj
ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9z
c1RocmVhZENvcGllci5jcHAKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBTb255IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4KKyNp
bmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFdURl9Dcm9zc1RocmVhZENvcGll
ciwgQ29weVN0cmluZykKK3sKKyAgICBTdHJpbmcgb3JpZ2luYWwgPSAiMTIzNCI7CisgICAgYXV0
byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKKyAgICBFWFBFQ1RfVFJVRShvcmln
aW5hbC5pbXBsKCktPmhhc09uZVJlZigpKTsKKyAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+
aGFzT25lUmVmKCkpOworICAgIEVYUEVDVF9GQUxTRShvcmlnaW5hbC5pbXBsKCkgPT0gY29weS5p
bXBsKCkpOworfQorCitURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTm90Q29weVN0cmluZykK
K3sKKyAgICBTdHJpbmcgb3JpZ2luYWwgPSAiMTIzNCI7CisgICAgYXV0byBjb3B5ID0gY3Jvc3NU
aHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKKyAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwo
KS0+aGFzT25lUmVmKCkpOworICAgIC8vIG1vdmVkLW91dCBSZWZQdHIgYmVjb21lcyBudWxscHRy
CisgICAgRVhQRUNUX0VRKG51bGxwdHIsIG9yaWdpbmFsLmltcGwoKSk7Cit9CisKK1RFU1QoV1RG
X0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5T3B0aW9uYWxTdHJpbmcpCit7CisgICAgT3B0aW9uYWw8
U3RyaW5nPiBvcmlnaW5hbCA9ICIxMjM0IjsKKyAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENv
cHkob3JpZ2luYWwpOworICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLT5pbXBsKCktPmhhc09uZVJl
ZigpKTsKKyAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09uZVJlZigpKTsKKyAgICBF
WFBFQ1RfRkFMU0Uob3JpZ2luYWwtPmltcGwoKSA9PSBjb3B5LT5pbXBsKCkpOworfQorCitURVNU
KFdURl9Dcm9zc1RocmVhZENvcGllciwgTm90Q29weU9wdGlvbmFsU3RyaW5nKQoreworICAgIE9w
dGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgPSAiMTIzNCI7CisgICAgYXV0byBjb3B5ID0gY3Jvc3NU
aHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKKyAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBs
KCktPmhhc09uZVJlZigpKTsKKyAgICAvLyBtb3ZlZC1vdXQgUmVmUHRyIGJlY29tZXMgbnVsbHB0
cgorICAgIEVYUEVDVF9FUShudWxscHRyLCBvcmlnaW5hbC0+aW1wbCgpKTsKK30KKworCisKK30g
Ly8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372332</attachid>
            <date>2019-06-18 02:28:08 -0700</date>
            <delta_ts>2019-06-18 20:28:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198957-20190618182806.patch</filename>
            <type>text/plain</type>
            <size>9084</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDI2MDQ5MzYyMDMwZmZmZDY4NDQ4MjZj
YWYwYTUxNTE5Njg1OTEzMmIuLjFjZWMzYWYxMjUzNzk1ZTMwYzgxYTk1NWUxNjI4YTYwMjkyNjRi
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMDYtMTggIEZ1amlpIEhpcm9ub3JpICA8SGly
b25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgQWRkIFdURjo6Y3Jvc3NUaHJlYWRDb3B5
KFQmJikgdG8gdXRpbGl6ZSBTdHJpbmc6Omlzb2xhdGVkQ29weSgpICYmCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg5NTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAmJi1xdWFsaWZpZWQgU3RyaW5nOjpp
c29sYXRlZENvcHkoKSBoYXMgYSBvcHRpbWl6YXRpb24gcGF0aCB3aGljaAorICAgICAgICBkb2Vz
IGp1c3QgV1RGTW92ZSBpZiBpdCBpc1NhZmVUb1NlbmRUb0Fub3RoZXJUaHJlYWQgd2hpY2ggbWVh
bnMKKyAgICAgICAgdGhlIG9iamVjdCBoYXNPbmVSZWYuCisKKyAgICAgICAgSG93ZXZlciwgV1RG
Ojpjcm9zc1RocmVhZENvcHkgd2FzIHVzaW5nIG9ubHkgJi1xdWFsaWZpZWQKKyAgICAgICAgaXNv
bGF0ZWRDb3B5LiBUbyB1c2UgdGhlIG9wdGltaXphdGlvbiwgYWRkZWQKKyAgICAgICAgV1RGOjpj
cm9zc1RocmVhZENvcHkoVCYmKSBvdmVybG9hZGluZy4KKworICAgICAgICAqIHd0Zi9Dcm9zc1Ro
cmVhZENvcGllci5oOgorICAgICAgICAoV1RGOjpjcm9zc1RocmVhZENvcHkpOiBBZGRlZCBhIG92
ZXJsb2FkIG9mIChUJiYpLgorCiAyMDE5LTA2LTE3ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBTT0F1dGhvcml6YXRpb24gZnJvbSBXZWJLaXRBZGRp
dGlvbnMgdG8gV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZENv
cGllci5oIGIvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaAppbmRleCA2MzM4Nzhh
ZTkzODg2OWRiM2IzMTU0NzEwMjA4OTdiY2EwNzlmMGM2Li5jNTMzNzNhODYwNzM1MzA3NTc1NTFj
OWYzZTE3NTFlZDBmNmNiMjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVh
ZENvcGllci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkQ29waWVyLmgKQEAgLTMx
LDYgKzMxLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTc3LDkgKzc4LDkgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTx0cnVlLCBmYWxzZSwgVD4gOiBwdWJsaWMg
Q3Jvc3MKIAogLy8gQ2xhc3NlcyB0aGF0IGhhdmUgYW4gaXNvbGF0ZWRDb3B5KCkgbWV0aG9kIGdl
dCBhIGRlZmF1bHQgc3BlY2lhbGl6YXRpb24uCiB0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3QgQ3Jv
c3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgVD4gewotICAgIHN0YXRpYyBUIGNvcHko
Y29uc3QgVCYgdmFsdWUpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gc3RhdGljIGF1dG8gY29w
eShVJiYgdmFsdWUpCiAgICAgewotICAgICAgICByZXR1cm4gdmFsdWUuaXNvbGF0ZWRDb3B5KCk7
CisgICAgICAgIHJldHVybiBzdGQ6OmZvcndhcmQ8VT4odmFsdWUpLmlzb2xhdGVkQ29weSgpOwog
ICAgIH0KIH07CiAKQEAgLTE1MywxMiArMTU0LDI0IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0
cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBPcHRpb25hbDxUPj4gewog
ICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICAgICAgcmV0dXJuIENyb3NzVGhy
ZWFkQ29waWVyPFQ+Ojpjb3B5KCpzb3VyY2UpOwogICAgIH0KKworICAgIHN0YXRpYyBUeXBlIGNv
cHkoVHlwZSYmIHNvdXJjZSkKKyAgICB7CisgICAgICAgIGlmICghc291cmNlKQorICAgICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIENyb3NzVGhyZWFkQ29waWVy
PFQ+Ojpjb3B5KFdURk1vdmUoKnNvdXJjZSkpOworICAgIH0KIH07CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IFQgY3Jvc3NUaHJlYWRDb3B5KGNvbnN0IFQmIHNvdXJjZSkKIHsKICAgICByZXR1cm4g
Q3Jvc3NUaHJlYWRDb3BpZXI8VD46OmNvcHkoc291cmNlKTsKIH0KKwordGVtcGxhdGU8dHlwZW5h
bWUgVD4gYXV0byBjcm9zc1RocmVhZENvcHkoVCYmIHNvdXJjZSkKK3sKKyAgICByZXR1cm4gQ3Jv
c3NUaHJlYWRDb3BpZXI8c3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8VD4+Ojpjb3B5KHN0ZDo6Zm9y
d2FyZDxUPihzb3VyY2UpKTsKK30KICAgICAKIH0gLy8gbmFtZXNwYWNlIFdURgogCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDljY2NjMjQ2N2Vk
ZWI4OTJhYzRiNWIxM2E2M2YzNjM4NzQxZjdmNS4uNzkwMmY3NjU2YjQxZGU2ZjJiZTY3NTlhNWM4
YzJkMWQwYTk0ZGYyNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTA2LTE4ICBGdWppaSBIaXJvbm9yaSAgPEhp
cm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIEFkZCBXVEY6OmNyb3NzVGhyZWFkQ29w
eShUJiYpIHRvIHV0aWxpemUgU3RyaW5nOjppc29sYXRlZENvcHkoKSAmJgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4OTU3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Ny
b3NzVGhyZWFkQ29waWVyLmNwcDogQWRkZWQuCisKIDIwMTktMDYtMTggIERhbiBCZXJuc3RlaW4g
IDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgd29ya2Fyb3VuZCBmb3IgYnVnIDE5
ODkwNCBmcm9tIHJ1bi13ZWJraXQtYXJjaGl2ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQK
aW5kZXggN2FkYjYwOGVlYWE2MTFiNjZiMWVkNTA3NGE1OTE3ZDBhMGRmODU0OC4uNjE5ZTc4ZDM5
ZmRkZDEwY2RlNWI5Nzc4MjIwYTI0N2UyMGVmNmEwYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlz
dHMudHh0CkBAIC0zMCw2ICszMCw3IEBAIHNldChUZXN0V1RGX1NPVVJDRVMKICAgICBUZXN0cy9X
VEYvQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcAogICAgIFRlc3RzL1dURi9Db25jdXJy
ZW50UHRySGFzaFNldC5jcHAKICAgICBUZXN0cy9XVEYvQ29uZGl0aW9uLmNwcAorICAgIFRlc3Rz
L1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKICAgICBUZXN0cy9XVEYvQ3Jvc3NUaHJlYWRUYXNr
LmNwcAogICAgIFRlc3RzL1dURi9EYXRlTWF0aC5jcHAKICAgICBUZXN0cy9XVEYvRGVxdWUuY3Bw
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg2NDcyOWE5OWRiNDMzNTU2NTBiYTQxN2M5OWY0
NjhkMzIxNDk3NTAuLjUxMDBmNDQzYjVhYzg3NTdhYzgwOWNlYmEzMWE0Y2NjNzVlMTkyODMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDY5LDYgKzE0NjksNyBAQAogCQkyNkY1MkVCMDE4
Mjg4RjBGMDAyM0Q0MTIgLyogZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSBnZW9sb2NhdGlvbldhdGNoUG9zaXRpb24uaHRtbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZGNTJFQjExODI4OEYwRjAwMjNENDEyIC8qIGdlb2xv
Y2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9IGdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRt
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZGNkUxRUYxQURDNzQ5QjAwREU2OTZC
IC8qIERGQU1pbmltaXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBERkFNaW5pbWl6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNzhERTY0
QjIyQjhENjExMDA0RTBFN0EgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyOTBBOUJCNTE3MzVERThBMDBENzFCQkMgLyogQ2xvc2VOZXdX
aW5kb3dJbk5hdmlnYXRpb25Qb2xpY3lEZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IENsb3NlTmV3V2luZG93SW5OYXZpZ2F0aW9uUG9saWN5RGVsZWdh
dGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5MEE5QkI4MTczNUY0MjMwMEQ3
MUJCQyAvKiBPcGVuTmV3V2luZG93Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBP
cGVuTmV3V2luZG93Lmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5MEY0Mjc0
MTcyQTFGREUwMDkzOUZGMCAvKiBjdXN0b20tcHJvdG9jb2wtc3luYy14aHIuaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJjdXN0b20tcHJvdG9jb2wtc3luYy14aHIuaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMzk3LDYgKzMzOTgsNyBAQAogCQkJCUE3QTk2
NkRBMTQwRUNDQzgwMDVFRjlCNCAvKiBDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwICov
LAogCQkJCTBGMzBDQjVCMUZDRTE3OTIwMDRCNTMyMyAvKiBDb25jdXJyZW50UHRySGFzaFNldC5j
cHAgKi8sCiAJCQkJMEZFQUUzNjcxQjdEMTlDQjAwQ0UxN0YyIC8qIENvbmRpdGlvbi5jcHAgKi8s
CisJCQkJMjc4REU2NEIyMkI4RDYxMTAwNEUwRTdBIC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCAq
LywKIAkJCQk1MTcxNEVCOTFEMDg3NDE2MDA0NzIzQzQgLyogQ3Jvc3NUaHJlYWRUYXNrLmNwcCAq
LywKIAkJCQkyNkEyQzcyRTE1RTJFNzNDMDA1QjFBMTQgLyogQ1N0cmluZy5jcHAgKi8sCiAJCQkJ
N0FBMDIxQkExQUIwOUVBNzAwNTI5NTNGIC8qIERhdGVNYXRoLmNwcCAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41YTI4N2I4ZDIxN2ZlODgzZjdhMmY0ODRmNTJmZTM2Yjc1N2RjNWMwCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIu
Y3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgU29ueSBJbnRl
cmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgorCisjaW5jbHVkZSA8d3RmL09w
dGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKKworVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlTdHJpbmcp
Cit7CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgYXV0byBjb3B5ID0gY3Jv
c3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKKyAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC5pbXBsKCkt
Pmhhc09uZVJlZigpKTsKKyAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkp
OworICAgIEVYUEVDVF9GQUxTRShvcmlnaW5hbC5pbXBsKCkgPT0gY29weS5pbXBsKCkpOworfQor
CitURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTm90Q29weVN0cmluZykKK3sKKyAgICBTdHJp
bmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHko
V1RGTW92ZShvcmlnaW5hbCkpOworICAgIEVYUEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVS
ZWYoKSk7CisgICAgLy8gbW92ZWQtb3V0IFJlZlB0ciBiZWNvbWVzIG51bGxwdHIKKyAgICBFWFBF
Q1RfRVEobnVsbHB0ciwgb3JpZ2luYWwuaW1wbCgpKTsKK30KKworVEVTVChXVEZfQ3Jvc3NUaHJl
YWRDb3BpZXIsIENvcHlPcHRpb25hbFN0cmluZykKK3sKKyAgICBPcHRpb25hbDxTdHJpbmc+IG9y
aWdpbmFsIHsgIjEyMzQiIH07CisgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdp
bmFsKTsKKyAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7Cisg
ICAgRVhQRUNUX1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CisgICAgRVhQRUNUX0ZB
TFNFKG9yaWdpbmFsLT5pbXBsKCkgPT0gY29weS0+aW1wbCgpKTsKK30KKworVEVTVChXVEZfQ3Jv
c3NUaHJlYWRDb3BpZXIsIE5vdENvcHlPcHRpb25hbFN0cmluZykKK3sKKyAgICBPcHRpb25hbDxT
dHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRD
b3B5KFdURk1vdmUob3JpZ2luYWwpKTsKKyAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhh
c09uZVJlZigpKTsKKyAgICAvLyBtb3ZlZC1vdXQgUmVmUHRyIGJlY29tZXMgbnVsbHB0cgorICAg
IEVYUEVDVF9FUShudWxscHRyLCBvcmlnaW5hbC0+aW1wbCgpKTsKK30KKworCisKK30gLy8gbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372422</attachid>
            <date>2019-06-18 20:28:18 -0700</date>
            <delta_ts>2019-06-18 20:28:18 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-198957-20190619122816.patch</filename>
            <type>text/plain</type>
            <size>12351</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDI2MDQ5MzYyMDMwZmZmZDY4NDQ4MjZj
YWYwYTUxNTE5Njg1OTEzMmIuLmYxMDNhNmI5ZDJhMjlmYmZmNTQ5MTUwMjhmMWI5MDlmOTgyZTRh
ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMDYtMTggIEZ1amlpIEhpcm9ub3JpICA8SGly
b25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgQWRkIFdURjo6Y3Jvc3NUaHJlYWRDb3B5
KFQmJikgdG8gdXRpbGl6ZSBTdHJpbmc6Omlzb2xhdGVkQ29weSgpICYmCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg5NTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgICYmLXF1YWxpZmllZCBTdHJpbmc6
Omlzb2xhdGVkQ29weSgpIGhhcyBhIG9wdGltaXphdGlvbiBwYXRoIHdoaWNoCisgICAgICAgIGRv
ZXMganVzdCBXVEZNb3ZlIGlmIGl0IGlzU2FmZVRvU2VuZFRvQW5vdGhlclRocmVhZCB3aGljaCBt
ZWFucworICAgICAgICB0aGUgb2JqZWN0IGhhc09uZVJlZi4KKworICAgICAgICBIb3dldmVyLCBX
VEY6OmNyb3NzVGhyZWFkQ29weSB3YXMgdXNpbmcgb25seSAmLXF1YWxpZmllZAorICAgICAgICBp
c29sYXRlZENvcHkuIFRvIHVzZSB0aGUgb3B0aW1pemF0aW9uLCBhZGRlZAorICAgICAgICBXVEY6
OmNyb3NzVGhyZWFkQ29weShUJiYpIG92ZXJsb2FkaW5nLgorCisgICAgICAgICogd3RmL0Nyb3Nz
VGhyZWFkQ29waWVyLmg6CisgICAgICAgIChXVEY6OmNyb3NzVGhyZWFkQ29weSk6IEFkZGVkIGEg
b3ZlcmxvYWQgb2YgKFQmJikuCisgICAgICAgICogd3RmL0Nyb3NzVGhyZWFkVGFzay5oOgorICAg
ICAgICAoV1RGOjpjcmVhdGVDcm9zc1RocmVhZFRhc2spOiBSZW1vdmVkIGV4cGxpY2l0IHRlbXBs
YXRlIGFyZ3VtZW50cyBvZiBjcm9zc1RocmVhZENvcHkuCisKIDIwMTktMDYtMTcgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIFNPQXV0aG9yaXphdGlv
biBmcm9tIFdlYktpdEFkZGl0aW9ucyB0byBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0Nyb3NzVGhyZWFkQ29waWVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZENvcGll
ci5oCmluZGV4IDYzMzg3OGFlOTM4ODY5ZGIzYjMxNTQ3MTAyMDg5N2JjYTA3OWYwYzYuLjMwN2Nj
YWE2ZDZmZjhlN2I4NTZjY2M3NzYyZTAzYzQxODgxYjczOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0Nyb3NzVGhyZWFkQ29waWVyLmgKKysrIGIvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJl
YWRDb3BpZXIuaApAQCAtMzEsNiArMzEsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
PHR5cGVfdHJhaXRzPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNzcsOSArNzgsOSBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPHRydWUsIGZh
bHNlLCBUPiA6IHB1YmxpYyBDcm9zcwogCiAvLyBDbGFzc2VzIHRoYXQgaGF2ZSBhbiBpc29sYXRl
ZENvcHkoKSBtZXRob2QgZ2V0IGEgZGVmYXVsdCBzcGVjaWFsaXphdGlvbi4KIHRlbXBsYXRlPGNs
YXNzIFQ+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBUPiB7Ci0g
ICAgc3RhdGljIFQgY29weShjb25zdCBUJiB2YWx1ZSkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBV
PiBzdGF0aWMgYXV0byBjb3B5KFUmJiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiB2YWx1
ZS5pc29sYXRlZENvcHkoKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6Zm9yd2FyZDxVPih2YWx1ZSku
aXNvbGF0ZWRDb3B5KCk7CiAgICAgfQogfTsKIApAQCAtMTQ2LDE4ICsxNDcsMTcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgSywgdHlwZW5hbWUgVj4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxm
YWxzZSwgZmFsc2UsIEhhc2gKIAogLy8gRGVmYXVsdCBzcGVjaWFsaXphdGlvbiBmb3IgT3B0aW9u
YWwgb2YgQ3Jvc3NUaHJlYWRDb3B5YWJsZSBjbGFzcy4KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0
cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBPcHRpb25hbDxUPj4gewot
ICAgIHR5cGVkZWYgT3B0aW9uYWw8VD4gVHlwZTsKLSAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0
IFR5cGUmIHNvdXJjZSkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBzdGF0aWMgT3B0aW9uYWw8
VD4gY29weShVJiYgc291cmNlKQogICAgIHsKICAgICAgICAgaWYgKCFzb3VyY2UpCiAgICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgICAgICByZXR1cm4gQ3Jvc3NUaHJlYWRDb3Bp
ZXI8VD46OmNvcHkoKnNvdXJjZSk7CisgICAgICAgIHJldHVybiBDcm9zc1RocmVhZENvcGllcjxU
Pjo6Y29weShzdGQ6OmZvcndhcmQ8VT4oc291cmNlKS52YWx1ZSgpKTsKICAgICB9CiB9OwogCi10
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUIGNyb3NzVGhyZWFkQ29weShjb25zdCBUJiBzb3VyY2UpCit0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBhdXRvIGNyb3NzVGhyZWFkQ29weShUJiYgc291cmNlKQogewot
ICAgIHJldHVybiBDcm9zc1RocmVhZENvcGllcjxUPjo6Y29weShzb3VyY2UpOworICAgIHJldHVy
biBDcm9zc1RocmVhZENvcGllcjxzdGQ6OnJlbW92ZV9jdl90PHN0ZDo6cmVtb3ZlX3JlZmVyZW5j
ZV90PFQ+Pj46OmNvcHkoc3RkOjpmb3J3YXJkPFQ+KHNvdXJjZSkpOwogfQogICAgIAogfSAvLyBu
YW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZFRhc2su
aCBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFzay5oCmluZGV4IGVjNDM3NzQ4ZTY1ZDZl
YjZkYmM4ZDNlMmU0MGRhZmQyYjU0ZDcwZTguLjI5ODJlMGQ5Zjc2NTY1NjliOWU2ZTA3NWQxZjhi
MjIwZDRmYThmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFzay5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFzay5oCkBAIC02Nyw3ICs2Nyw3IEBA
IHZvaWQgY2FsbEZ1bmN0aW9uRm9yQ3Jvc3NUaHJlYWRUYXNrKEYgZnVuY3Rpb24sIEFyZ3NUdXBs
ZSYmIGFyZ3MpCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBQYXJhbWV0ZXJzLCB0eXBlbmFtZS4uLiBB
cmd1bWVudHM+CiBDcm9zc1RocmVhZFRhc2sgY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKHZvaWQgKCpt
ZXRob2QpKFBhcmFtZXRlcnMuLi4pLCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykKIHsK
LSAgICByZXR1cm4gQ3Jvc3NUaHJlYWRUYXNrKFttZXRob2QsIGFyZ3VtZW50cyA9IHN0ZDo6bWFr
ZV90dXBsZShjcm9zc1RocmVhZENvcHk8QXJndW1lbnRzPihhcmd1bWVudHMpLi4uKV0oKSBtdXRh
YmxlIHsKKyAgICByZXR1cm4gQ3Jvc3NUaHJlYWRUYXNrKFttZXRob2QsIGFyZ3VtZW50cyA9IHN0
ZDo6bWFrZV90dXBsZShjcm9zc1RocmVhZENvcHkoYXJndW1lbnRzKS4uLildKCkgbXV0YWJsZSB7
CiAgICAgICAgIGNhbGxGdW5jdGlvbkZvckNyb3NzVGhyZWFkVGFzayhtZXRob2QsIFdURk1vdmUo
YXJndW1lbnRzKSk7CiAgICAgfSk7CiB9CkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgY2FsbE1lbWJl
ckZ1bmN0aW9uRm9yQ3Jvc3NUaHJlYWRUYXNrKEMqIG9iamVjdCwgTUYgZnVuY3Rpb24sIEFyZ3NU
dXBsZSYmIGFyCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxz
dGQ6OmlzX2Jhc2Vfb2Y8VGhyZWFkU2FmZVJlZkNvdW50ZWQ8VD4sIFQ+Ojp2YWx1ZSwgaW50Pjo6
dHlwZSA9IDAsIHR5cGVuYW1lLi4uIFBhcmFtZXRlcnMsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4K
IENyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2soVCYgY2FsbGVlLCB2b2lkIChU
OjoqbWV0aG9kKShQYXJhbWV0ZXJzLi4uKSwgY29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMp
CiB7Ci0gICAgcmV0dXJuIENyb3NzVGhyZWFkVGFzayhbY2FsbGVlID0gbWFrZVJlZlB0cigmY2Fs
bGVlKSwgbWV0aG9kLCBhcmd1bWVudHMgPSBzdGQ6Om1ha2VfdHVwbGUoY3Jvc3NUaHJlYWRDb3B5
PEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLildKCkgbXV0YWJsZSB7CisgICAgcmV0dXJuIENyb3Nz
VGhyZWFkVGFzayhbY2FsbGVlID0gbWFrZVJlZlB0cigmY2FsbGVlKSwgbWV0aG9kLCBhcmd1bWVu
dHMgPSBzdGQ6Om1ha2VfdHVwbGUoY3Jvc3NUaHJlYWRDb3B5KGFyZ3VtZW50cykuLi4pXSgpIG11
dGFibGUgewogICAgICAgICBjYWxsTWVtYmVyRnVuY3Rpb25Gb3JDcm9zc1RocmVhZFRhc2soY2Fs
bGVlLmdldCgpLCBtZXRob2QsIFdURk1vdmUoYXJndW1lbnRzKSk7CiAgICAgfSk7CiB9CkBAIC05
NSw3ICs5NSw3IEBAIENyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2soVCYgY2Fs
bGVlLCB2b2lkIChUOjoqbWV0aG9kKShQYXJhbWV0ZXJzLi4uCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjwhc3RkOjppc19iYXNlX29mPFRocmVhZFNhZmVSZWZD
b3VudGVkPFQ+LCBUPjo6dmFsdWUsIGludD46OnR5cGUgPSAwLCB0eXBlbmFtZS4uLiBQYXJhbWV0
ZXJzLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiBDcm9zc1RocmVhZFRhc2sgY3JlYXRlQ3Jvc3NU
aHJlYWRUYXNrKFQmIGNhbGxlZSwgdm9pZCAoVDo6Km1ldGhvZCkoUGFyYW1ldGVycy4uLiksIGNv
bnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKQogewotICAgIHJldHVybiBDcm9zc1RocmVhZFRh
c2soW2NhbGxlZSA9ICZjYWxsZWUsIG1ldGhvZCwgYXJndW1lbnRzID0gc3RkOjptYWtlX3R1cGxl
KGNyb3NzVGhyZWFkQ29weTxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pXSgpIG11dGFibGUgewor
ICAgIHJldHVybiBDcm9zc1RocmVhZFRhc2soW2NhbGxlZSA9ICZjYWxsZWUsIG1ldGhvZCwgYXJn
dW1lbnRzID0gc3RkOjptYWtlX3R1cGxlKGNyb3NzVGhyZWFkQ29weShhcmd1bWVudHMpLi4uKV0o
KSBtdXRhYmxlIHsKICAgICAgICAgY2FsbE1lbWJlckZ1bmN0aW9uRm9yQ3Jvc3NUaHJlYWRUYXNr
KGNhbGxlZSwgbWV0aG9kLCBXVEZNb3ZlKGFyZ3VtZW50cykpOwogICAgIH0pOwogfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDA5Y2NjYzI0Njdl
ZGViODkyYWM0YjViMTNhNjNmMzYzODc0MWY3ZjUuLjBmODc5NTJlMjI5M2I1MmFmNjljMWM0NmI1
ZTU3NzQ3NzAzOGY5ZjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0wNi0xOCAgRnVqaWkgSGlyb25vcmkgIDxI
aXJvbm9yaS5GdWppaUBzb255LmNvbT4KKworICAgICAgICBBZGQgV1RGOjpjcm9zc1RocmVhZENv
cHkoVCYmKSB0byB1dGlsaXplIFN0cmluZzo6aXNvbGF0ZWRDb3B5KCkgJiYKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODk1NworCisgICAgICAgIFJl
dmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0Nyb3NzVGhyZWFkQ29waWVyLmNwcDogQWRkZWQuCisKIDIwMTktMDYtMTggIERhbiBCZXJuc3Rl
aW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgd29ya2Fyb3VuZCBmb3IgYnVn
IDE5ODkwNCBmcm9tIHJ1bi13ZWJraXQtYXJjaGl2ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50
eHQKaW5kZXggN2FkYjYwOGVlYWE2MTFiNjZiMWVkNTA3NGE1OTE3ZDBhMGRmODU0OC4uNjE5ZTc4
ZDM5ZmRkZDEwY2RlNWI5Nzc4MjIwYTI0N2UyMGVmNmEwYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtl
TGlzdHMudHh0CkBAIC0zMCw2ICszMCw3IEBAIHNldChUZXN0V1RGX1NPVVJDRVMKICAgICBUZXN0
cy9XVEYvQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcAogICAgIFRlc3RzL1dURi9Db25j
dXJyZW50UHRySGFzaFNldC5jcHAKICAgICBUZXN0cy9XVEYvQ29uZGl0aW9uLmNwcAorICAgIFRl
c3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKICAgICBUZXN0cy9XVEYvQ3Jvc3NUaHJlYWRU
YXNrLmNwcAogICAgIFRlc3RzL1dURi9EYXRlTWF0aC5jcHAKICAgICBUZXN0cy9XVEYvRGVxdWUu
Y3BwCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg2NDcyOWE5OWRiNDMzNTU2NTBiYTQxN2M5
OWY0NjhkMzIxNDk3NTAuLjUxMDBmNDQzYjVhYzg3NTdhYzgwOWNlYmEzMWE0Y2NjNzVlMTkyODMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDY5LDYgKzE0NjksNyBAQAogCQkyNkY1MkVC
MDE4Mjg4RjBGMDAyM0Q0MTIgLyogZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBnZW9sb2NhdGlvbldhdGNoUG9zaXRpb24uaHRtbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZGNTJFQjExODI4OEYwRjAwMjNENDEyIC8qIGdl
b2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuaHRtbDsgcGF0aCA9IGdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3ku
aHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZGNkUxRUYxQURDNzQ5QjAwREU2
OTZCIC8qIERGQU1pbmltaXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBERkFNaW5pbWl6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNzhE
RTY0QjIyQjhENjExMDA0RTBFN0EgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyOTBBOUJCNTE3MzVERThBMDBENzFCQkMgLyogQ2xvc2VO
ZXdXaW5kb3dJbk5hdmlnYXRpb25Qb2xpY3lEZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IENsb3NlTmV3V2luZG93SW5OYXZpZ2F0aW9uUG9saWN5RGVs
ZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5MEE5QkI4MTczNUY0MjMw
MEQ3MUJCQyAvKiBPcGVuTmV3V2luZG93Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSBPcGVuTmV3V2luZG93Lmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5MEY0
Mjc0MTcyQTFGREUwMDkzOUZGMCAvKiBjdXN0b20tcHJvdG9jb2wtc3luYy14aHIuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJjdXN0b20tcHJvdG9jb2wtc3luYy14aHIuaHRtbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMzk3LDYgKzMzOTgsNyBAQAogCQkJCUE3
QTk2NkRBMTQwRUNDQzgwMDVFRjlCNCAvKiBDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3Bw
ICovLAogCQkJCTBGMzBDQjVCMUZDRTE3OTIwMDRCNTMyMyAvKiBDb25jdXJyZW50UHRySGFzaFNl
dC5jcHAgKi8sCiAJCQkJMEZFQUUzNjcxQjdEMTlDQjAwQ0UxN0YyIC8qIENvbmRpdGlvbi5jcHAg
Ki8sCisJCQkJMjc4REU2NEIyMkI4RDYxMTAwNEUwRTdBIC8qIENyb3NzVGhyZWFkQ29waWVyLmNw
cCAqLywKIAkJCQk1MTcxNEVCOTFEMDg3NDE2MDA0NzIzQzQgLyogQ3Jvc3NUaHJlYWRUYXNrLmNw
cCAqLywKIAkJCQkyNkEyQzcyRTE1RTJFNzNDMDA1QjFBMTQgLyogQ1N0cmluZy5jcHAgKi8sCiAJ
CQkJN0FBMDIxQkExQUIwOUVBNzAwNTI5NTNGIC8qIERhdGVNYXRoLmNwcCAqLywKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43ODYzMmVjZmZkOWI4MmFlYWNmNjRlNjY5OThmMjI3ZmNiYzdiNzlkCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3Bp
ZXIuY3BwCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgU29ueSBJ
bnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgorCisjaW5jbHVkZSAiVGVz
dC5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoV1RGX0Nyb3NzVGhy
ZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcpCit7CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQi
IH07CisgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKKyAgICBFWFBF
Q1RfVFJVRShvcmlnaW5hbC5pbXBsKCktPmhhc09uZVJlZigpKTsKKyAgICBFWFBFQ1RfVFJVRShj
b3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOworICAgIEVYUEVDVF9GQUxTRShvcmlnaW5hbC5pbXBs
KCkgPT0gY29weS5pbXBsKCkpOworfQorCitURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92
ZVJWU3RyaW5nKQoreworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIGF1dG8g
Y29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CisgICAgRVhQRUNUX1RS
VUUoY29weS5pbXBsKCktPmhhc09uZVJlZigpKTsKKyAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC5p
bXBsKCkpOworfQorCitURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2
aW5nVHdvUmVmKQoreworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmlu
ZyBvcmlnaW5hbDIgeyBvcmlnaW5hbCB9OworICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29w
eShXVEZNb3ZlKG9yaWdpbmFsKSk7CisgICAgRVhQRUNUX0VRKG9yaWdpbmFsLmltcGwoKS0+cmVm
Q291bnQoKSwgMik7CisgICAgRVhQRUNUX0ZBTFNFKG9yaWdpbmFsLmltcGwoKSA9PSBjb3B5Lmlt
cGwoKSk7CisgICAgRVhQRUNUX1RSVUUoY29weS5pbXBsKCktPmhhc09uZVJlZigpKTsKK30KKwor
VEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQoreworICAg
IE9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBhdXRvIGNvcHkgPSBj
cm9zc1RocmVhZENvcHkob3JpZ2luYWwpOworICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLT5pbXBs
KCktPmhhc09uZVJlZigpKTsKKyAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09uZVJl
ZigpKTsKKyAgICBFWFBFQ1RfRkFMU0Uob3JpZ2luYWwtPmltcGwoKSA9PSBjb3B5LT5pbXBsKCkp
OworfQorCitURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcp
Cit7CisgICAgT3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIGF1dG8g
Y29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CisgICAgRVhQRUNUX1RS
VUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CisgICAgRVhQRUNUX05VTEwob3JpZ2luYWwt
PmltcGwoKSk7Cit9CisKK1RFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZPcHRpb25h
bFN0cmluZ0hhdmluZ1R3b1JlZikKK3sKKyAgICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiIH07Cisg
ICAgT3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7IHN0cmluZyB9OworICAgIGF1dG8gY29weSA9
IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CisgICAgRVhQRUNUX0VRKG9yaWdpbmFsLT5pbXBs
KCktPnJlZkNvdW50KCksIDIpOworICAgIEVYUEVDVF9GQUxTRShvcmlnaW5hbC0+aW1wbCgpID09
IGNvcHktPmltcGwoKSk7CisgICAgRVhQRUNUX1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYo
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
      

    </bug>

</bugzilla>