<?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>187947</bug_id>
          
          <creation_ts>2018-07-24 01:19:14 -0700</creation_ts>
          <short_desc>JavaScript string corruption using RegExp with unicode character</short_desc>
          <delta_ts>2020-02-06 13:36:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>Safari 11</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>
          <dependson>205323</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Luca">lukeongaro+bugzilla</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>ap</cc>
    
    <cc>ashvayka</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>joepeck</cc>
    
    <cc>msaboff</cc>
    
    <cc>rendezvouscp</cc>
    
    <cc>saam</cc>
    
    <cc>sukolsak</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1444590</commentid>
    <comment_count>0</comment_count>
    <who name="Luca">lukeongaro+bugzilla</who>
    <bug_when>2018-07-24 01:19:14 -0700</bug_when>
    <thetext>When a 2-bytes unicode character is removed from a JavaScript string, a combination of using the string as an object key, and string concatenation can corrupt the string with null bytes.

Steps to Reproduce:

Running this snippet on Safari, verified at least on Version 11.1.1 (13605.2.8), reproduces the bug (see notes below):

https://gist.github.com/lucaong/a7d7a2eee869e2c7afe8b59fc0dfda2b

Here is a JSFiddle of the same snippet (read comment): https://jsfiddle.net/DukeLeNoir/mkrfw4g8/

Expected Results vs Actual Result:

The script would be expected to find both strings as keys in the object, and therefore alert &quot;All fine&quot; twice. That&apos;s indeed what happens on other browsers.

On Safari, the script instead alerts twice, the second time from a code path that should not occur. If the alert text is copied and pasted into a file and inspected with a hex dump tool (like xdd), the string is found to be corrupted with unexpected null bytes, explaining why it was not found as a key in the object.
Calling any String.prototype method on the corrupted string before using it to index the object &quot;fixes&quot; it (even without using the method return value). Other operations that &quot;fix&quot; the corrupted string are using it in a comparison, logging it with console.log, or accessing one of its characters with [].

This affects Safari Version 11.1.1 (13605.2.8) and Safari for iOS, but other versions are likely affected, as shown in this bug report for a popular JavaScript library, caused by the same root issue: https://github.com/olivernn/lunr.js/issues/279

The provided script seems to be the minimum needed to reproduce the bug: using shorter strings, skipping the character enumeration, or any other operation done in this short script seems to cause the bug to disappear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444856</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-07-24 15:22:50 -0700</bug_when>
    <thetext>&lt;rdar://problem/42558747&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445607</commentid>
    <comment_count>2</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2018-07-26 18:14:24 -0700</bug_when>
    <thetext>The code from the snippet above causes an assertion failure in Debug mode:

ASSERTION FAILED: is8Bit()
/webkit/WebKitBuild/Debug/usr/local/include/wtf/text/StringImpl.h(271) : const LChar *WTF::StringImpl::characters8() const
1   0x10c34a419 WTFCrash
2   0x10c34dd19 WTF::StringImpl::characters8() const
3   0x10d6976f4 JSC::JSRopeString::resolveRopeInternal8NoSubstring(unsigned char*) const
4   0x10d69758a JSC::JSRopeString::resolveRopeInternal8(unsigned char*) const
5   0x10d698c82 JSC::JSRopeString::resolveRopeToExistingAtomicString(JSC::ExecState*) const
6   0x10cc9436c JSC::JSString::toExistingAtomicString(JSC::ExecState*) const
7   0x10d36f12f JSC::LLInt::getByVal(JSC::VM&amp;, JSC::ExecState*, JSC::Instruction*, JSC::JSValue, JSC::JSValue)
8   0x10d36eeb5 llint_slow_path_get_by_val
9   0x10c439862 llint_entry
10  0x10c4355b2 vmEntryToJavaScript
11  0x10d28b50a JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
12  0x10d28aab1 JSC::Interpreter::executeProgram(JSC::SourceCode const&amp;, JSC::ExecState*, JSC::JSObject*)
13  0x10d543ad7 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
14  0x10c285010 runWithOptions(GlobalObject*, CommandLine&amp;, bool&amp;)
15  0x10c25c9cc jscmain(int, char**)::$_3::operator()(JSC::VM&amp;, GlobalObject*, bool&amp;) const
16  0x10c244174 int runJSC&lt;jscmain(int, char**)::$_3&gt;(CommandLine, bool, jscmain(int, char**)::$_3 const&amp;)
17  0x10c242c5f jscmain(int, char**)
18  0x10c242bbe main
19  0x7fff6dff4015 start
Segmentation fault: 11

Here is a smaller script that reproduces the same bug:

    var ab16bit = &apos;abcĀ&apos;.replace(/c.*/, &apos;&apos;);

    var map = {};
    map[ab16bit];

    var ropeAB = &apos;a&apos; + &apos;b&apos;;
    var ropeABC = ropeAB + &apos;c&apos;;

    map[ropeAB];
    map[ropeABC] = 42;
    console.log(JSON.stringify(map)); // Expected: {&quot;abc&quot;:42}. Actual: {&quot;a\u0000c&quot;:42}.

&quot;map[ab16bit]&quot; creates a 16-bit AtomicString &quot;ab&quot;. ropeAB and ropeABC are initially 8-bit JSRopeStrings. &quot;map[ropeAB]&quot; causes ropeAB to resolve into the 16-bit AtomicString &quot;ab&quot;. Because of https://webkit.org/b/133574, ropeAB becomes a 16-bit string. However, ropeABC, which points to ropeAB, is still an 8-bit JSRopeString. So, when it is forced to resolve, it copies only the first two bytes of ropeAB, which is &quot;a\0&quot;. Thus it returns &quot;a\0c&quot;.

One way to fix this seems to be that, when an 8-bit JSRopeString becomes 16-bit, it should set all its ancestor JSRopeStrings to be 16-bit. But I&apos;m not sure how.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445608</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-07-26 18:22:58 -0700</bug_when>
    <thetext>(In reply to Sukolsak Sakshuwong from comment #2)
&gt; The code from the snippet above causes an assertion failure in Debug mode:
&gt; 
&gt; ASSERTION FAILED: is8Bit()
&gt; /webkit/WebKitBuild/Debug/usr/local/include/wtf/text/StringImpl.h(271) :
&gt; const LChar *WTF::StringImpl::characters8() const
&gt; 1   0x10c34a419 WTFCrash
&gt; 2   0x10c34dd19 WTF::StringImpl::characters8() const
&gt; 3   0x10d6976f4 JSC::JSRopeString::resolveRopeInternal8NoSubstring(unsigned
&gt; char*) const
&gt; 4   0x10d69758a JSC::JSRopeString::resolveRopeInternal8(unsigned char*) const
&gt; 5   0x10d698c82
&gt; JSC::JSRopeString::resolveRopeToExistingAtomicString(JSC::ExecState*) const
&gt; 6   0x10cc9436c JSC::JSString::toExistingAtomicString(JSC::ExecState*) const
&gt; 7   0x10d36f12f JSC::LLInt::getByVal(JSC::VM&amp;, JSC::ExecState*,
&gt; JSC::Instruction*, JSC::JSValue, JSC::JSValue)
&gt; 8   0x10d36eeb5 llint_slow_path_get_by_val
&gt; 9   0x10c439862 llint_entry
&gt; 10  0x10c4355b2 vmEntryToJavaScript
&gt; 11  0x10d28b50a JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
&gt; 12  0x10d28aab1 JSC::Interpreter::executeProgram(JSC::SourceCode const&amp;,
&gt; JSC::ExecState*, JSC::JSObject*)
&gt; 13  0x10d543ad7 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&amp;,
&gt; JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
&gt; 14  0x10c285010 runWithOptions(GlobalObject*, CommandLine&amp;, bool&amp;)
&gt; 15  0x10c25c9cc jscmain(int, char**)::$_3::operator()(JSC::VM&amp;,
&gt; GlobalObject*, bool&amp;) const
&gt; 16  0x10c244174 int runJSC&lt;jscmain(int, char**)::$_3&gt;(CommandLine, bool,
&gt; jscmain(int, char**)::$_3 const&amp;)
&gt; 17  0x10c242c5f jscmain(int, char**)
&gt; 18  0x10c242bbe main
&gt; 19  0x7fff6dff4015 start
&gt; Segmentation fault: 11
&gt; 
&gt; Here is a smaller script that reproduces the same bug:
&gt; 
&gt;     var ab16bit = &apos;abcĀ&apos;.replace(/c.*/, &apos;&apos;);
&gt; 
&gt;     var map = {};
&gt;     map[ab16bit];
&gt; 
&gt;     var ropeAB = &apos;a&apos; + &apos;b&apos;;
&gt;     var ropeABC = ropeAB + &apos;c&apos;;
&gt; 
&gt;     map[ropeAB];
&gt;     map[ropeABC] = 42;
&gt;     console.log(JSON.stringify(map)); // Expected: {&quot;abc&quot;:42}. Actual:
&gt; {&quot;a\u0000c&quot;:42}.
&gt; 
&gt; &quot;map[ab16bit]&quot; creates a 16-bit AtomicString &quot;ab&quot;. ropeAB and ropeABC are
&gt; initially 8-bit JSRopeStrings. &quot;map[ropeAB]&quot; causes ropeAB to resolve into
&gt; the 16-bit AtomicString &quot;ab&quot;. Because of https://webkit.org/b/133574, ropeAB
&gt; becomes a 16-bit string. However, ropeABC, which points to ropeAB, is still
&gt; an 8-bit JSRopeString. So, when it is forced to resolve, it copies only the
&gt; first two bytes of ropeAB, which is &quot;a\0&quot;. Thus it returns &quot;a\0c&quot;.
&gt; 
&gt; One way to fix this seems to be that, when an 8-bit JSRopeString becomes
&gt; 16-bit, it should set all its ancestor JSRopeStrings to be 16-bit. But I&apos;m
&gt; not sure how.

I think the correct fix should be making AtomicString 8-bit if it can be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615642</commentid>
    <comment_count>4</comment_count>
      <attachid>389958</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-02-06 08:09:24 -0800</bug_when>
    <thetext>Created attachment 389958
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615742</commentid>
    <comment_count>5</comment_count>
      <attachid>389958</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-06 12:32:49 -0800</bug_when>
    <thetext>Comment on attachment 389958
Patch

rs=me. I think this is fixed in https://trac.webkit.org/changeset/253648/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615744</commentid>
    <comment_count>6</comment_count>
      <attachid>389982</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-02-06 12:40:04 -0800</bug_when>
    <thetext>Created attachment 389982
Patch

Set reviewer and link https://bugs.webkit.org/show_bug.cgi?id=205323 in ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615763</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-06 13:36:20 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 389982:

editing/spelling/spellcheck-async-remove-frame.html bug 158401 (authors: morrita@google.com, rniwa@webkit.org, and tony@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615765</commentid>
    <comment_count>8</comment_count>
      <attachid>389982</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-06 13:36:54 -0800</bug_when>
    <thetext>Comment on attachment 389982
Patch

Clearing flags on attachment: 389982

Committed r255975: &lt;https://trac.webkit.org/changeset/255975&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615766</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-06 13:36:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389958</attachid>
            <date>2020-02-06 08:09:24 -0800</date>
            <delta_ts>2020-02-06 12:40:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187947-20200206180923.patch</filename>
            <type>text/plain</type>
            <size>9353</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1OTEyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTRkZjAwOTNjMGMwYzA4NGQwMTcy
MDM0MzI1ODMzOGQ2NGQ1NmFhZi4uYTgyMzYxNDhmNWQ3ZGJmZGZlOTUxMGE5ZjViMzJjOTQwMjli
ZDEyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTAyLTA2ICBTdWtvbHNhayBTYWtzaHV3
b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPiBhbmQgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVz
aEBnbWFpbC5jb20+CisKKyAgICAgICAgSmF2YVNjcmlwdCBzdHJpbmcgY29ycnVwdGlvbiB1c2lu
ZyBSZWdFeHAgd2l0aCB1bmljb2RlIGNoYXJhY3RlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3OTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQmVzaWRlcyBhZGRpbmcgYSByZWdyZXNzaW9uIHRlc3Qs
IHRoaXMgcGF0Y2ggYnJpbmdzIGJhY2s6CisgICAgICAgIDEuIEFuIG91dC1vZi1vcmRlciBjaGFy
YWN0ZXIgY2xhc3MgcmFuZ2UgdGVzdC4KKyAgICAgICAgMi4gRGFuZ2xpbmcgYW5kIGNvbWJpbmVk
IHN1cnJvZ2F0ZXMgdGVzdHMgKGFzIHdlYmtpdC5vcmcvYi8xNTQ4NjMgaXMgbm93IHJlc29sdmVk
KS4KKworICAgICAgICAqIGpzL2RvbS9yZWdleHAtcmFuZ2Utb3V0LW9mLW9yZGVyLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL3JlZ2V4cC1yYW5nZS1vdXQtb2Yt
b3JkZXIuanM6CisgICAgICAgICoganMvcmVnZXhwLXVuaWNvZGUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGpzL3NjcmlwdC10ZXN0cy9yZWdleHAtZXh0ZW5kZWQtY2hhcmFjdGVycy1tYXRjaC5q
czoKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvcmVnZXhwLXVuaWNvZGUuanM6CisKIDIwMjAt
MDItMDYgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2Nv
YV0gVXNlIEFWQXNzZXRXcml0ZXJEZWxlZ2F0ZSB0byBpbXBsZW1lbnQgTWVkaWFSZWNvcmRlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3JlZ2V4cC1yYW5nZS1vdXQtb2Ytb3JkZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL3JlZ2V4cC1yYW5nZS1vdXQtb2Ytb3Jk
ZXItZXhwZWN0ZWQudHh0CmluZGV4IDhmMTI2ZTA0ZmE1ODZhZTgxOWZmNWY0YTdiMmZiYjdiZGU0
NjYwZGUuLjVhYTI3NWFhYjhiMDhjZDg3M2ZjYjI1YTk2ZGRkYWI1YmVlZjk2NWQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2pzL2RvbS9yZWdleHAtcmFuZ2Utb3V0LW9mLW9yZGVyLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vcmVnZXhwLXJhbmdlLW91dC1vZi1vcmRlci1l
eHBlY3RlZC50eHQKQEAgLTQsNiArNCw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIAog
UEFTUyAvXltzey0uW10oKV0kLyB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IEludmFsaWQg
cmVndWxhciBleHByZXNzaW9uOiByYW5nZSBvdXQgb2Ygb3JkZXIgaW4gY2hhcmFjdGVyIGNsYXNz
LgorUEFTUyBuZXcgUmVnRXhwKCJbxIEtxIBdIikgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9y
OiBJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogcmFuZ2Ugb3V0IG9mIG9yZGVyIGluIGNoYXJh
Y3RlciBjbGFzcy4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9yZWdleHAt
cmFuZ2Utb3V0LW9mLW9yZGVyLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9y
ZWdleHAtcmFuZ2Utb3V0LW9mLW9yZGVyLmpzCmluZGV4IDQ3ZjgyODgxZThlNDk2Nzg1MGZkOTg4
YjM0Y2EwMjlkODJhMTU1NjcuLmE1YmE0M2I3ZTgzZGZhNTk4YjlhYjFhNTY5MjRmYjVkOTFlM2Fk
ZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvcmVnZXhwLXJh
bmdlLW91dC1vZi1vcmRlci5qcworKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L3JlZ2V4cC1yYW5nZS1vdXQtb2Ytb3JkZXIuanMKQEAgLTQsNCArNCw1IEBAIGRlc2NyaXB0aW9u
KAogCiApOwogCi1zaG91bGRUaHJvdygnL15bXHN7LS5cW1xdXChcKV0kLycpOworc2hvdWxkVGhy
b3coJy9eW1xzey0uXFtcXVwoXCldJC8nLCAnIlN5bnRheEVycm9yOiBJbnZhbGlkIHJlZ3VsYXIg
ZXhwcmVzc2lvbjogcmFuZ2Ugb3V0IG9mIG9yZGVyIGluIGNoYXJhY3RlciBjbGFzcyInKTsKK3No
b3VsZFRocm93KCduZXcgUmVnRXhwKCJbXHUwMTAxLVx1MDEwMF0iKScsICciU3ludGF4RXJyb3I6
IEludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiByYW5nZSBvdXQgb2Ygb3JkZXIgaW4gY2hhcmFj
dGVyIGNsYXNzIicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVnZXhwLXVuaWNvZGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVnZXhwLXVuaWNvZGUtZXhwZWN0ZWQudHh0
CmluZGV4IDE3MjZlMGE2Y2U0NzFlZjY4NDUzMjEzODIxZGE2NDk3ZThjMGVjMTAuLjY0YWNhMGEz
MGI0YTdmZmM1NzI3OWQ4ZDA4N2E0ZmIwM2YzZjE1MmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2pzL3JlZ2V4cC11bmljb2RlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdl
eHAtdW5pY29kZS1leHBlY3RlZC50eHQKQEAgLTg2LDYgKzg2LDIxIEBAIFBBU1MgcmUxLnRlc3Qo
IvCQkIAiKSBpcyBmYWxzZQogUEFTUyByZTIudGVzdCgiQSIpIGlzIHRydWUKIFBBU1MgcmUyLnRl
c3QoIu+/vyIpIGlzIGZhbHNlCiBQQVNTIHJlMi50ZXN0KCLwko2FIikgaXMgdHJ1ZQorUEFTUyAv
W/CQsIHvv70j77+9XS91LmV4ZWMoIvCQsIEiKS50b1N0cmluZygpIGlzICLwkLCBIgorUEFTUyAv
W++/vfCQsIHvv71dL3UuZXhlYygi8JCwgSIpLnRvU3RyaW5nKCkgaXMgIvCQsIEiCitQQVNTIC9b
77+9I++/vfCQsIFdL3UuZXhlYygi8JCwgSIpLnRvU3RyaW5nKCkgaXMgIvCQsIEiCitQQVNTIC9b
77+98JCwge+/vV0vdS5leGVjKCLwkLCBIikudG9TdHJpbmcoKSBpcyAi8JCwgSIKK1BBU1MgL1vw
kLCB77+9I++/vV17Mn0vdS5leGVjKCLwkLCBIikgaXMgbnVsbAorUEFTUyAvW++/vfCQsIHvv71d
ezJ9L3UuZXhlYygi8JCwgSIpIGlzIG51bGwKK1BBU1MgL1vvv70j77+98JCwgV17Mn0vdS5leGVj
KCLwkLCBIikgaXMgbnVsbAorUEFTUyAvW++/vfCQsIHvv71dezJ9L3UuZXhlYygi8JCwgSIpIGlz
IG51bGwKK1BBU1MgL++/vXzvv7188JCwgS91LmV4ZWMoIvCQsIEiKS50b1N0cmluZygpIGlzICLw
kLCBIgorUEFTUyAv77+9fPCQsIF877+9L3UuZXhlYygi8JCwgSIpLnRvU3RyaW5nKCkgaXMgIvCQ
sIEiCitQQVNTIC/vv71877+9fPCQsIEvdS5leGVjKCLvv70iKS50b1N0cmluZygpIGlzICLvv70i
CitQQVNTIC/vv7188JCwgXzvv70vdS5leGVjKCLvv70iKS50b1N0cmluZygpIGlzICLvv70iCitQ
QVNTIC/vv73wkLCBL3UuZXhlYygi8JCwgSIpIGlzIG51bGwKK1BBU1MgL++/vfCQsIEvdS5leGVj
KCLvv70iKSBpcyBudWxsCitQQVNTICLvv73wkLCBIi5tYXRjaCgv77+98JCwgS91KVswXS5sZW5n
dGggaXMgMwogUEFTUyAv8J2MhnsyfS91LnRlc3QoIvCdjIbwnYyGIikgaXMgdHJ1ZQogUEFTUyAv
8J2MhnsyfS91LnRlc3QoIvCdjIbwnYyGIikgaXMgdHJ1ZQogUEFTUyAi8JCQhfCQkIXwkJCF8JCQ
hSIubWF0Y2goL/CQkIV7M30vdSlbMF0gaXMgIvCQkIXwkJCF8JCQhSIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9yZWdleHAtZXh0ZW5kZWQtY2hhcmFjdGVycy1tYXRj
aC5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9yZWdleHAtZXh0ZW5kZWQtY2hhcmFj
dGVycy1tYXRjaC5qcwppbmRleCBhZGRhM2M1Nzg5ZDA3OGI0YWM0MDc3OGQ4YTcyM2U2YmNjMjQx
ZmVlLi41Yjk4MjhlYzk1NDFlZTBmMzVjOWUzOTlkZTRiOWNmODAwMzI5MjQ3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvcmVnZXhwLWV4dGVuZGVkLWNoYXJhY3RlcnMt
bWF0Y2guanMKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3JlZ2V4cC1leHRlbmRl
ZC1jaGFyYWN0ZXJzLW1hdGNoLmpzCkBAIC0yLDggKzIsNiBAQCBkZXNjcmlwdGlvbigKICJUaGlz
IHRlc3QgY2hlY2tzIHJlZ3VsYXIgZXhwcmVzc2lvbnMgdXNpbmcgZXh0ZW5kZWQgKD4gMjU1KSBj
aGFyYWN0ZXJzIGFuZCBjaGFyYWN0ZXIgY2xhc3Nlcy4iCiApOwogCi0vLyBzaG91bGRUaHJvdygn
dmFyIHIgPSBuZXcgUmVnRXhwKCJbXHUwMTAxLVx1MDEwMF0iKTsgci5leGVjKCJhIiknLCAnbnVs
bCcpOwotCiBzaG91bGRCZSgnKG5ldyBSZWdFeHAoIltcdTAxMDAtXHUwMTAxXSIpKS5leGVjKCJh
IiknLCAnbnVsbCcpOwogc2hvdWxkQmUoJyhuZXcgUmVnRXhwKCJbXHUwMTAwXSIpKS5leGVjKCJh
IiknLCAnbnVsbCcpOwogc2hvdWxkQmUoJyhuZXcgUmVnRXhwKCJcdTAxMDAiKSkuZXhlYygiYSIp
JywgJ251bGwnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9yZWdl
eHAtdW5pY29kZS5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9yZWdleHAtdW5pY29k
ZS5qcwppbmRleCA3ZjNiOTQ3ZDQwNGExYmQzMmUxMTcwNmQzMzdiYWIyOTZjODRmODM2Li44ZmU3
YjdiZGZlNjI4ZDg4OWJkZDE5MDdlMGJmNDBmMjFlNzU2NjEzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9qcy9zY3JpcHQtdGVzdHMvcmVnZXhwLXVuaWNvZGUuanMKKysrIGIvTGF5b3V0VGVzdHMv
anMvc2NyaXB0LXRlc3RzL3JlZ2V4cC11bmljb2RlLmpzCkBAIC0xMDQsMjIgKzEwNCwyMSBAQCBz
aG91bGRCZUZhbHNlKCdyZTIudGVzdCgiXHVmZmZmIiknKTsKIHNob3VsZEJlVHJ1ZSgncmUyLnRl
c3QoIlx1ezEyMzQ1fSIpJyk7CiAKIC8vIE1ha2Ugc3VyZSB3ZSBwcm9wZXJseSBoYW5kbGUgZGFu
Z2xpbmcgc3Vycm9nYXRlcyBhbmQgY29tYmluZWQgc3Vycm9nYXRlcwotLy8gRklYTUU6IFRoZXNl
IHRlc3RzIGFyZSBkaXNhYmxlZCB1bnRpbCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU0ODYzIGlzIGZpeGVkCi0vLyBzaG91bGRCZSgnL1tcdXsxMGMwMX1cdUQ4MDMj
XHVEQzAxXS91LmV4ZWMoIlx1ezEwYzAxfSIpLnRvU3RyaW5nKCknLCAnIlx1ezEwYzAxfSInKTsK
LS8vIHNob3VsZEJlKCcvW1x1RDgwM1x1ezEwYzAxfVx1REMwMV0vdS5leGVjKCJcdXsxMGMwMX0i
KS50b1N0cmluZygpJywgJyJcdXsxMGMwMX0iJyk7Ci0vLyBzaG91bGRCZSgnL1tcdUQ4MDMjXHVE
QzAxXHV7MTBjMDF9XS91LmV4ZWMoIlx1ezEwYzAxfSIpLnRvU3RyaW5nKCknLCAnIlx1ezEwYzAx
fSInKTsKLS8vIHNob3VsZEJlKCcvW1x1RDgwM1x1RDgwM1x1REMwMVx1REMwMV0vdS5leGVjKCJc
dXsxMGMwMX0iKS50b1N0cmluZygpJywgJyJcdXsxMGMwMX0iJyk7Ci0vLyBzaG91bGRCZU51bGwo
Jy9bXHV7MTBjMDF9XHVEODAzI1x1REMwMV17Mn0vdS5leGVjKCJcdXsxMGMwMX0iKScpOwotLy8g
c2hvdWxkQmVOdWxsKCcvW1x1RDgwM1x1ezEwYzAxfVx1REMwMV17Mn0vdS5leGVjKCJcdXsxMGMw
MX0iKScpOwotLy8gc2hvdWxkQmVOdWxsKCcvW1x1RDgwMyNcdURDMDFcdXsxMGMwMX1dezJ9L3Uu
ZXhlYygiXHV7MTBjMDF9IiknKTsKLS8vIHNob3VsZEJlTnVsbCgnL1tcdUQ4MDNcdUQ4MDNcdURD
MDFcdURDMDFdezJ9L3UuZXhlYygiXHV7MTBjMDF9IiknKTsKLS8vIHNob3VsZEJlKCcvXHVEODAz
fFx1REMwMXxcdXsxMGMwMX0vdS5leGVjKCJcdXsxMGMwMX0iKS50b1N0cmluZygpJywgJyJcdXsx
MGMwMX0iJyk7Ci0vLyBzaG91bGRCZSgnL1x1RDgwM3xcdUQ4MDNcdURDMDF8XHVEQzAxL3UuZXhl
YygiXHV7MTBjMDF9IikudG9TdHJpbmcoKScsICciXHV7MTBjMDF9IicpOwotLy8gc2hvdWxkQmUo
Jy9cdUQ4MDN8XHVEQzAxfFx1ezEwYzAxfS91LmV4ZWMoIlx1e0Q4MDN9IikudG9TdHJpbmcoKScs
ICciXHV7RDgwM30iJyk7Ci0vLyBzaG91bGRCZSgnL1x1RDgwM3xcdUQ4MDNcdURDMDF8XHVEQzAx
L3UuZXhlYygiXHV7REMwMX0iKS50b1N0cmluZygpJywgJyJcdXtEQzAxfSInKTsKLS8vIHNob3Vs
ZEJlTnVsbCgnL1x1RDgwM1x1ezEwYzAxfS91LmV4ZWMoIlx1ezEwYzAxfSIpJyk7Ci0vLyBzaG91
bGRCZU51bGwoJy9cdUQ4MDNcdXsxMGMwMX0vdS5leGVjKCJcdUQ4MDMiKScpOwotLy8gc2hvdWxk
QmUoJyJcdUQ4MDNcdXsxMGMwMX0iLm1hdGNoKC9cdUQ4MDNcdXsxMGMwMX0vdSlbMF0ubGVuZ3Ro
JywgJzMnKTsKK3Nob3VsZEJlKCcvW1x1ezEwYzAxfVx1RDgwMyNcdURDMDFdL3UuZXhlYygiXHV7
MTBjMDF9IikudG9TdHJpbmcoKScsICciXHV7MTBjMDF9IicpOworc2hvdWxkQmUoJy9bXHVEODAz
XHV7MTBjMDF9XHVEQzAxXS91LmV4ZWMoIlx1ezEwYzAxfSIpLnRvU3RyaW5nKCknLCAnIlx1ezEw
YzAxfSInKTsKK3Nob3VsZEJlKCcvW1x1RDgwMyNcdURDMDFcdXsxMGMwMX1dL3UuZXhlYygiXHV7
MTBjMDF9IikudG9TdHJpbmcoKScsICciXHV7MTBjMDF9IicpOworc2hvdWxkQmUoJy9bXHVEODAz
XHVEODAzXHVEQzAxXHVEQzAxXS91LmV4ZWMoIlx1ezEwYzAxfSIpLnRvU3RyaW5nKCknLCAnIlx1
ezEwYzAxfSInKTsKK3Nob3VsZEJlTnVsbCgnL1tcdXsxMGMwMX1cdUQ4MDMjXHVEQzAxXXsyfS91
LmV4ZWMoIlx1ezEwYzAxfSIpJyk7CitzaG91bGRCZU51bGwoJy9bXHVEODAzXHV7MTBjMDF9XHVE
QzAxXXsyfS91LmV4ZWMoIlx1ezEwYzAxfSIpJyk7CitzaG91bGRCZU51bGwoJy9bXHVEODAzI1x1
REMwMVx1ezEwYzAxfV17Mn0vdS5leGVjKCJcdXsxMGMwMX0iKScpOworc2hvdWxkQmVOdWxsKCcv
W1x1RDgwM1x1RDgwM1x1REMwMVx1REMwMV17Mn0vdS5leGVjKCJcdXsxMGMwMX0iKScpOworc2hv
dWxkQmUoJy9cdUQ4MDN8XHVEQzAxfFx1ezEwYzAxfS91LmV4ZWMoIlx1ezEwYzAxfSIpLnRvU3Ry
aW5nKCknLCAnIlx1ezEwYzAxfSInKTsKK3Nob3VsZEJlKCcvXHVEODAzfFx1RDgwM1x1REMwMXxc
dURDMDEvdS5leGVjKCJcdXsxMGMwMX0iKS50b1N0cmluZygpJywgJyJcdXsxMGMwMX0iJyk7Citz
aG91bGRCZSgnL1x1RDgwM3xcdURDMDF8XHV7MTBjMDF9L3UuZXhlYygiXHV7RDgwM30iKS50b1N0
cmluZygpJywgJyJcdXtEODAzfSInKTsKK3Nob3VsZEJlKCcvXHVEODAzfFx1RDgwM1x1REMwMXxc
dURDMDEvdS5leGVjKCJcdXtEQzAxfSIpLnRvU3RyaW5nKCknLCAnIlx1e0RDMDF9IicpOworc2hv
dWxkQmVOdWxsKCcvXHVEODAzXHV7MTBjMDF9L3UuZXhlYygiXHV7MTBjMDF9IiknKTsKK3Nob3Vs
ZEJlTnVsbCgnL1x1RDgwM1x1ezEwYzAxfS91LmV4ZWMoIlx1RDgwMyIpJyk7CitzaG91bGRCZSgn
Ilx1RDgwM1x1ezEwYzAxfSIubWF0Y2goL1x1RDgwM1x1ezEwYzAxfS91KVswXS5sZW5ndGgnLCAn
MycpOwogCiAvLyBDaGVjayBxdWFudGlmaWVkIG1hdGNoZXMKIHNob3VsZEJlVHJ1ZSgnL1x1ezFk
MzA2fXsyfS91LnRlc3QoIlx1ezFkMzA2fVx1ezFkMzA2fSIpJyk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU4Mjg5NzAyNDA5MzU0ZTcx
ZGE2YTdmYmVkZjRlM2ZmZTliZTllMjguLmM4MzExZWFmNDk1YWIwZGU4NTFhNzI4ZjlmYjllZjkz
NzU2ZGQ2YTYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMDItMDYgIFN1a29sc2FrIFNha3NodXdvbmcg
IDxzdWtvbHNha0BnbWFpbC5jb20+IGFuZCBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdt
YWlsLmNvbT4KKworICAgICAgICBKYXZhU2NyaXB0IHN0cmluZyBjb3JydXB0aW9uIHVzaW5nIFJl
Z0V4cCB3aXRoIHVuaWNvZGUgY2hhcmFjdGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODc5NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBhZGRzIHJlZ3Jlc3Npb24gdGVzdCBmb3Ig
c3RyaW5nIGNvcnJ1cHRpb24gdGhhdCBvY2N1cmVkIGFmdGVyCisgICAgICAgIG5vbi1CTVAgY2hh
cmFjdGVyIHdhcyByZW1vdmVkIGJ5IFN0cmluZy5wcm90b3R5cGUucmVwbGFjZS4KKyAgICAgICAg
VGhlIGlzc3VlIHdhcyBmaXhlZCBiZXR3ZWVuIDI0MzU5OSBhbmQgMjU1Nzg1IHJldmlzaW9ucy4K
KworICAgICAgICBBbHNvLCB0aGlzIHBhdGNoIGJyaW5ncyBiYWNrOgorICAgICAgICAxLiBBbiBv
dXQtb2Ytb3JkZXIgY2hhcmFjdGVyIGNsYXNzIHJhbmdlIHRlc3QuCisgICAgICAgIDIuIERhbmds
aW5nIGFuZCBjb21iaW5lZCBzdXJyb2dhdGVzIHRlc3RzIChhcyB3ZWJraXQub3JnL2IvMTU0ODYz
IGlzIG5vdyByZXNvbHZlZCkuCisKKyAgICAgICAgKiBzdHJlc3MvcmVncmVzcy0xODc5NDcuanM6
IEFkZGVkLgorCiAyMDIwLTAyLTA1ICBKdXN0aW4gTWljaGF1ZCAgPGp1c3Rpbl9taWNoYXVkQGFw
cGxlLmNvbT4KIAogICAgICAgICBEZWxldGluZyBhIHByb3BlcnR5IHNob3VsZCBub3QgdHVybiBz
dHJ1Y3R1cmVzIGludG8gdW5jYWNoZWFibGUgZGljdGlvbmFyaWVzCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9yZWdyZXNzLTE4Nzk0Ny5qcyBiL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTg3
OTQ3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI5ZjhlNDlmYjJkYjhlODhiMjc1ODI0NzIxNjdiZTNkOGEzZTdj
NjYKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE4Nzk0Ny5qcwpA
QCAtMCwwICsxLDE2IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Cisg
IGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVl
OiAnICsgYWN0dWFsKTsKK30KKwordmFyIGFiMTZiaXQgPSAnYWJjxIAnLnJlcGxhY2UoL2MuKi8s
ICcnKTsKKwordmFyIG1hcCA9IHt9OworbWFwW2FiMTZiaXRdOworCit2YXIgcm9wZUFCID0gJ2En
ICsgJ2InOwordmFyIHJvcGVBQkMgPSByb3BlQUIgKyAnYyc7CisKK21hcFtyb3BlQUJdOworbWFw
W3JvcGVBQkNdID0gNDI7CitzaG91bGRCZShKU09OLnN0cmluZ2lmeShtYXApLCAneyJhYmMiOjQy
fScpOwo=
</data>
<flag name="review"
          id="405615"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
    <flag name="commit-queue"
          id="405616"
          type_id="3"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389982</attachid>
            <date>2020-02-06 12:40:04 -0800</date>
            <delta_ts>2020-02-06 13:36:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187947-20200206180924.patch</filename>
            <type>text/plain</type>
            <size>9366</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1OTEyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTRkZjAwOTNjMGMwYzA4NGQwMTcy
MDM0MzI1ODMzOGQ2NGQ1NmFhZi4uYTgyMzYxNDhmNWQ3ZGJmZGZlOTUxMGE5ZjViMzJjOTQwMjli
ZDEyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTAyLTA2ICBTdWtvbHNhayBTYWtzaHV3
b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPiBhbmQgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVz
aEBnbWFpbC5jb20+CisKKyAgICAgICAgSmF2YVNjcmlwdCBzdHJpbmcgY29ycnVwdGlvbiB1c2lu
ZyBSZWdFeHAgd2l0aCB1bmljb2RlIGNoYXJhY3RlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3OTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVz
dWtlIFN1enVraS4KKworICAgICAgICBCZXNpZGVzIGFkZGluZyBhIHJlZ3Jlc3Npb24gdGVzdCwg
dGhpcyBwYXRjaCBicmluZ3MgYmFjazoKKyAgICAgICAgMS4gQW4gb3V0LW9mLW9yZGVyIGNoYXJh
Y3RlciBjbGFzcyByYW5nZSB0ZXN0LgorICAgICAgICAyLiBEYW5nbGluZyBhbmQgY29tYmluZWQg
c3Vycm9nYXRlcyB0ZXN0cyAoYXMgd2Via2l0Lm9yZy9iLzE1NDg2MyBpcyBub3cgcmVzb2x2ZWQp
LgorCisgICAgICAgICoganMvZG9tL3JlZ2V4cC1yYW5nZS1vdXQtb2Ytb3JkZXItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvcmVnZXhwLXJhbmdlLW91dC1vZi1v
cmRlci5qczoKKyAgICAgICAgKiBqcy9yZWdleHAtdW5pY29kZS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICoganMvc2NyaXB0LXRlc3RzL3JlZ2V4cC1leHRlbmRlZC1jaGFyYWN0ZXJzLW1hdGNoLmpz
OgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9yZWdleHAtdW5pY29kZS5qczoKKwogMjAyMC0w
Mi0wNiAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29h
XSBVc2UgQVZBc3NldFdyaXRlckRlbGVnYXRlIHRvIGltcGxlbWVudCBNZWRpYVJlY29yZGVyCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vcmVnZXhwLXJhbmdlLW91dC1vZi1vcmRlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vcmVnZXhwLXJhbmdlLW91dC1vZi1vcmRl
ci1leHBlY3RlZC50eHQKaW5kZXggOGYxMjZlMDRmYTU4NmFlODE5ZmY1ZjRhN2IyZmJiN2JkZTQ2
NjBkZS4uNWFhMjc1YWFiOGIwOGNkODczZmNiMjVhOTZkZGRhYjViZWVmOTY1ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvanMvZG9tL3JlZ2V4cC1yYW5nZS1vdXQtb2Ytb3JkZXItZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9yZWdleHAtcmFuZ2Utb3V0LW9mLW9yZGVyLWV4
cGVjdGVkLnR4dApAQCAtNCw2ICs0LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogCiBQ
QVNTIC9eW3N7LS5bXSgpXSQvIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogSW52YWxpZCBy
ZWd1bGFyIGV4cHJlc3Npb246IHJhbmdlIG91dCBvZiBvcmRlciBpbiBjaGFyYWN0ZXIgY2xhc3Mu
CitQQVNTIG5ldyBSZWdFeHAoIlvEgS3EgF0iKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6
IEludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiByYW5nZSBvdXQgb2Ygb3JkZXIgaW4gY2hhcmFj
dGVyIGNsYXNzLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL3JlZ2V4cC1y
YW5nZS1vdXQtb2Ytb3JkZXIuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL3Jl
Z2V4cC1yYW5nZS1vdXQtb2Ytb3JkZXIuanMKaW5kZXggNDdmODI4ODFlOGU0OTY3ODUwZmQ5ODhi
MzRjYTAyOWQ4MmExNTU2Ny4uYTViYTQzYjdlODNkZmE1OThiOWFiMWE1NjkyNGZiNWQ5MWUzYWRm
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9yZWdleHAtcmFu
Z2Utb3V0LW9mLW9yZGVyLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
cmVnZXhwLXJhbmdlLW91dC1vZi1vcmRlci5qcwpAQCAtNCw0ICs0LDUgQEAgZGVzY3JpcHRpb24o
CiAKICk7CiAKLXNob3VsZFRocm93KCcvXltcc3stLlxbXF1cKFwpXSQvJyk7CitzaG91bGRUaHJv
dygnL15bXHN7LS5cW1xdXChcKV0kLycsICciU3ludGF4RXJyb3I6IEludmFsaWQgcmVndWxhciBl
eHByZXNzaW9uOiByYW5nZSBvdXQgb2Ygb3JkZXIgaW4gY2hhcmFjdGVyIGNsYXNzIicpOworc2hv
dWxkVGhyb3coJ25ldyBSZWdFeHAoIltcdTAxMDEtXHUwMTAwXSIpJywgJyJTeW50YXhFcnJvcjog
SW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IHJhbmdlIG91dCBvZiBvcmRlciBpbiBjaGFyYWN0
ZXIgY2xhc3MiJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdleHAtdW5pY29kZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdleHAtdW5pY29kZS1leHBlY3RlZC50eHQK
aW5kZXggMTcyNmUwYTZjZTQ3MWVmNjg0NTMyMTM4MjFkYTY0OTdlOGMwZWMxMC4uNjRhY2EwYTMw
YjRhN2ZmYzU3Mjc5ZDhkMDg3YTRmYjAzZjNmMTUyYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
anMvcmVnZXhwLXVuaWNvZGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ2V4
cC11bmljb2RlLWV4cGVjdGVkLnR4dApAQCAtODYsNiArODYsMjEgQEAgUEFTUyByZTEudGVzdCgi
8JCQgCIpIGlzIGZhbHNlCiBQQVNTIHJlMi50ZXN0KCJBIikgaXMgdHJ1ZQogUEFTUyByZTIudGVz
dCgi77+/IikgaXMgZmFsc2UKIFBBU1MgcmUyLnRlc3QoIvCSjYUiKSBpcyB0cnVlCitQQVNTIC9b
8JCwge+/vSPvv71dL3UuZXhlYygi8JCwgSIpLnRvU3RyaW5nKCkgaXMgIvCQsIEiCitQQVNTIC9b
77+98JCwge+/vV0vdS5leGVjKCLwkLCBIikudG9TdHJpbmcoKSBpcyAi8JCwgSIKK1BBU1MgL1vv
v70j77+98JCwgV0vdS5leGVjKCLwkLCBIikudG9TdHJpbmcoKSBpcyAi8JCwgSIKK1BBU1MgL1vv
v73wkLCB77+9XS91LmV4ZWMoIvCQsIEiKS50b1N0cmluZygpIGlzICLwkLCBIgorUEFTUyAvW/CQ
sIHvv70j77+9XXsyfS91LmV4ZWMoIvCQsIEiKSBpcyBudWxsCitQQVNTIC9b77+98JCwge+/vV17
Mn0vdS5leGVjKCLwkLCBIikgaXMgbnVsbAorUEFTUyAvW++/vSPvv73wkLCBXXsyfS91LmV4ZWMo
IvCQsIEiKSBpcyBudWxsCitQQVNTIC9b77+98JCwge+/vV17Mn0vdS5leGVjKCLwkLCBIikgaXMg
bnVsbAorUEFTUyAv77+9fO+/vXzwkLCBL3UuZXhlYygi8JCwgSIpLnRvU3RyaW5nKCkgaXMgIvCQ
sIEiCitQQVNTIC/vv7188JCwgXzvv70vdS5leGVjKCLwkLCBIikudG9TdHJpbmcoKSBpcyAi8JCw
gSIKK1BBU1MgL++/vXzvv7188JCwgS91LmV4ZWMoIu+/vSIpLnRvU3RyaW5nKCkgaXMgIu+/vSIK
K1BBU1MgL++/vXzwkLCBfO+/vS91LmV4ZWMoIu+/vSIpLnRvU3RyaW5nKCkgaXMgIu+/vSIKK1BB
U1MgL++/vfCQsIEvdS5leGVjKCLwkLCBIikgaXMgbnVsbAorUEFTUyAv77+98JCwgS91LmV4ZWMo
Iu+/vSIpIGlzIG51bGwKK1BBU1MgIu+/vfCQsIEiLm1hdGNoKC/vv73wkLCBL3UpWzBdLmxlbmd0
aCBpcyAzCiBQQVNTIC/wnYyGezJ9L3UudGVzdCgi8J2MhvCdjIYiKSBpcyB0cnVlCiBQQVNTIC/w
nYyGezJ9L3UudGVzdCgi8J2MhvCdjIYiKSBpcyB0cnVlCiBQQVNTICLwkJCF8JCQhfCQkIXwkJCF
Ii5tYXRjaCgv8JCQhXszfS91KVswXSBpcyAi8JCQhfCQkIXwkJCFIgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3JlZ2V4cC1leHRlbmRlZC1jaGFyYWN0ZXJzLW1hdGNo
LmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3JlZ2V4cC1leHRlbmRlZC1jaGFyYWN0
ZXJzLW1hdGNoLmpzCmluZGV4IGFkZGEzYzU3ODlkMDc4YjRhYzQwNzc4ZDhhNzIzZTZiY2MyNDFm
ZWUuLjViOTgyOGVjOTU0MWVlMGYzNWM5ZTM5OWRlNGI5Y2Y4MDAzMjkyNDcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9yZWdleHAtZXh0ZW5kZWQtY2hhcmFjdGVycy1t
YXRjaC5qcworKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvcmVnZXhwLWV4dGVuZGVk
LWNoYXJhY3RlcnMtbWF0Y2guanMKQEAgLTIsOCArMiw2IEBAIGRlc2NyaXB0aW9uKAogIlRoaXMg
dGVzdCBjaGVja3MgcmVndWxhciBleHByZXNzaW9ucyB1c2luZyBleHRlbmRlZCAoPiAyNTUpIGNo
YXJhY3RlcnMgYW5kIGNoYXJhY3RlciBjbGFzc2VzLiIKICk7CiAKLS8vIHNob3VsZFRocm93KCd2
YXIgciA9IG5ldyBSZWdFeHAoIltcdTAxMDEtXHUwMTAwXSIpOyByLmV4ZWMoImEiKScsICdudWxs
Jyk7Ci0KIHNob3VsZEJlKCcobmV3IFJlZ0V4cCgiW1x1MDEwMC1cdTAxMDFdIikpLmV4ZWMoImEi
KScsICdudWxsJyk7CiBzaG91bGRCZSgnKG5ldyBSZWdFeHAoIltcdTAxMDBdIikpLmV4ZWMoImEi
KScsICdudWxsJyk7CiBzaG91bGRCZSgnKG5ldyBSZWdFeHAoIlx1MDEwMCIpKS5leGVjKCJhIikn
LCAnbnVsbCcpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3JlZ2V4
cC11bmljb2RlLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3JlZ2V4cC11bmljb2Rl
LmpzCmluZGV4IDdmM2I5NDdkNDA0YTFiZDMyZTExNzA2ZDMzN2JhYjI5NmM4NGY4MzYuLjhmZTdi
N2JkZmU2MjhkODg5YmRkMTkwN2UwYmY0MGYyMWU3NTY2MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2pzL3NjcmlwdC10ZXN0cy9yZWdleHAtdW5pY29kZS5qcworKysgYi9MYXlvdXRUZXN0cy9q
cy9zY3JpcHQtdGVzdHMvcmVnZXhwLXVuaWNvZGUuanMKQEAgLTEwNCwyMiArMTA0LDIxIEBAIHNo
b3VsZEJlRmFsc2UoJ3JlMi50ZXN0KCJcdWZmZmYiKScpOwogc2hvdWxkQmVUcnVlKCdyZTIudGVz
dCgiXHV7MTIzNDV9IiknKTsKIAogLy8gTWFrZSBzdXJlIHdlIHByb3Blcmx5IGhhbmRsZSBkYW5n
bGluZyBzdXJyb2dhdGVzIGFuZCBjb21iaW5lZCBzdXJyb2dhdGVzCi0vLyBGSVhNRTogVGhlc2Ug
dGVzdHMgYXJlIGRpc2FibGVkIHVudGlsIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTQ4NjMgaXMgZml4ZWQKLS8vIHNob3VsZEJlKCcvW1x1ezEwYzAxfVx1RDgwMyNc
dURDMDFdL3UuZXhlYygiXHV7MTBjMDF9IikudG9TdHJpbmcoKScsICciXHV7MTBjMDF9IicpOwot
Ly8gc2hvdWxkQmUoJy9bXHVEODAzXHV7MTBjMDF9XHVEQzAxXS91LmV4ZWMoIlx1ezEwYzAxfSIp
LnRvU3RyaW5nKCknLCAnIlx1ezEwYzAxfSInKTsKLS8vIHNob3VsZEJlKCcvW1x1RDgwMyNcdURD
MDFcdXsxMGMwMX1dL3UuZXhlYygiXHV7MTBjMDF9IikudG9TdHJpbmcoKScsICciXHV7MTBjMDF9
IicpOwotLy8gc2hvdWxkQmUoJy9bXHVEODAzXHVEODAzXHVEQzAxXHVEQzAxXS91LmV4ZWMoIlx1
ezEwYzAxfSIpLnRvU3RyaW5nKCknLCAnIlx1ezEwYzAxfSInKTsKLS8vIHNob3VsZEJlTnVsbCgn
L1tcdXsxMGMwMX1cdUQ4MDMjXHVEQzAxXXsyfS91LmV4ZWMoIlx1ezEwYzAxfSIpJyk7Ci0vLyBz
aG91bGRCZU51bGwoJy9bXHVEODAzXHV7MTBjMDF9XHVEQzAxXXsyfS91LmV4ZWMoIlx1ezEwYzAx
fSIpJyk7Ci0vLyBzaG91bGRCZU51bGwoJy9bXHVEODAzI1x1REMwMVx1ezEwYzAxfV17Mn0vdS5l
eGVjKCJcdXsxMGMwMX0iKScpOwotLy8gc2hvdWxkQmVOdWxsKCcvW1x1RDgwM1x1RDgwM1x1REMw
MVx1REMwMV17Mn0vdS5leGVjKCJcdXsxMGMwMX0iKScpOwotLy8gc2hvdWxkQmUoJy9cdUQ4MDN8
XHVEQzAxfFx1ezEwYzAxfS91LmV4ZWMoIlx1ezEwYzAxfSIpLnRvU3RyaW5nKCknLCAnIlx1ezEw
YzAxfSInKTsKLS8vIHNob3VsZEJlKCcvXHVEODAzfFx1RDgwM1x1REMwMXxcdURDMDEvdS5leGVj
KCJcdXsxMGMwMX0iKS50b1N0cmluZygpJywgJyJcdXsxMGMwMX0iJyk7Ci0vLyBzaG91bGRCZSgn
L1x1RDgwM3xcdURDMDF8XHV7MTBjMDF9L3UuZXhlYygiXHV7RDgwM30iKS50b1N0cmluZygpJywg
JyJcdXtEODAzfSInKTsKLS8vIHNob3VsZEJlKCcvXHVEODAzfFx1RDgwM1x1REMwMXxcdURDMDEv
dS5leGVjKCJcdXtEQzAxfSIpLnRvU3RyaW5nKCknLCAnIlx1e0RDMDF9IicpOwotLy8gc2hvdWxk
QmVOdWxsKCcvXHVEODAzXHV7MTBjMDF9L3UuZXhlYygiXHV7MTBjMDF9IiknKTsKLS8vIHNob3Vs
ZEJlTnVsbCgnL1x1RDgwM1x1ezEwYzAxfS91LmV4ZWMoIlx1RDgwMyIpJyk7Ci0vLyBzaG91bGRC
ZSgnIlx1RDgwM1x1ezEwYzAxfSIubWF0Y2goL1x1RDgwM1x1ezEwYzAxfS91KVswXS5sZW5ndGgn
LCAnMycpOworc2hvdWxkQmUoJy9bXHV7MTBjMDF9XHVEODAzI1x1REMwMV0vdS5leGVjKCJcdXsx
MGMwMX0iKS50b1N0cmluZygpJywgJyJcdXsxMGMwMX0iJyk7CitzaG91bGRCZSgnL1tcdUQ4MDNc
dXsxMGMwMX1cdURDMDFdL3UuZXhlYygiXHV7MTBjMDF9IikudG9TdHJpbmcoKScsICciXHV7MTBj
MDF9IicpOworc2hvdWxkQmUoJy9bXHVEODAzI1x1REMwMVx1ezEwYzAxfV0vdS5leGVjKCJcdXsx
MGMwMX0iKS50b1N0cmluZygpJywgJyJcdXsxMGMwMX0iJyk7CitzaG91bGRCZSgnL1tcdUQ4MDNc
dUQ4MDNcdURDMDFcdURDMDFdL3UuZXhlYygiXHV7MTBjMDF9IikudG9TdHJpbmcoKScsICciXHV7
MTBjMDF9IicpOworc2hvdWxkQmVOdWxsKCcvW1x1ezEwYzAxfVx1RDgwMyNcdURDMDFdezJ9L3Uu
ZXhlYygiXHV7MTBjMDF9IiknKTsKK3Nob3VsZEJlTnVsbCgnL1tcdUQ4MDNcdXsxMGMwMX1cdURD
MDFdezJ9L3UuZXhlYygiXHV7MTBjMDF9IiknKTsKK3Nob3VsZEJlTnVsbCgnL1tcdUQ4MDMjXHVE
QzAxXHV7MTBjMDF9XXsyfS91LmV4ZWMoIlx1ezEwYzAxfSIpJyk7CitzaG91bGRCZU51bGwoJy9b
XHVEODAzXHVEODAzXHVEQzAxXHVEQzAxXXsyfS91LmV4ZWMoIlx1ezEwYzAxfSIpJyk7CitzaG91
bGRCZSgnL1x1RDgwM3xcdURDMDF8XHV7MTBjMDF9L3UuZXhlYygiXHV7MTBjMDF9IikudG9TdHJp
bmcoKScsICciXHV7MTBjMDF9IicpOworc2hvdWxkQmUoJy9cdUQ4MDN8XHVEODAzXHVEQzAxfFx1
REMwMS91LmV4ZWMoIlx1ezEwYzAxfSIpLnRvU3RyaW5nKCknLCAnIlx1ezEwYzAxfSInKTsKK3No
b3VsZEJlKCcvXHVEODAzfFx1REMwMXxcdXsxMGMwMX0vdS5leGVjKCJcdXtEODAzfSIpLnRvU3Ry
aW5nKCknLCAnIlx1e0Q4MDN9IicpOworc2hvdWxkQmUoJy9cdUQ4MDN8XHVEODAzXHVEQzAxfFx1
REMwMS91LmV4ZWMoIlx1e0RDMDF9IikudG9TdHJpbmcoKScsICciXHV7REMwMX0iJyk7CitzaG91
bGRCZU51bGwoJy9cdUQ4MDNcdXsxMGMwMX0vdS5leGVjKCJcdXsxMGMwMX0iKScpOworc2hvdWxk
QmVOdWxsKCcvXHVEODAzXHV7MTBjMDF9L3UuZXhlYygiXHVEODAzIiknKTsKK3Nob3VsZEJlKCci
XHVEODAzXHV7MTBjMDF9Ii5tYXRjaCgvXHVEODAzXHV7MTBjMDF9L3UpWzBdLmxlbmd0aCcsICcz
Jyk7CiAKIC8vIENoZWNrIHF1YW50aWZpZWQgbWF0Y2hlcwogc2hvdWxkQmVUcnVlKCcvXHV7MWQz
MDZ9ezJ9L3UudGVzdCgiXHV7MWQzMDZ9XHV7MWQzMDZ9IiknKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTgyODk3MDI0MDkzNTRlNzFk
YTZhN2ZiZWRmNGUzZmZlOWJlOWUyOC4uYzgzMTFlYWY0OTVhYjBkZTg1MWE3MjhmOWZiOWVmOTM3
NTZkZDZhNiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0wMi0wNiAgU3Vrb2xzYWsgU2Frc2h1d29uZyAg
PHN1a29sc2FrQGdtYWlsLmNvbT4gYW5kIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21h
aWwuY29tPgorCisgICAgICAgIEphdmFTY3JpcHQgc3RyaW5nIGNvcnJ1cHRpb24gdXNpbmcgUmVn
RXhwIHdpdGggdW5pY29kZSBjaGFyYWN0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4Nzk0NworCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBT
dXp1a2kuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWRkcyByZWdyZXNzaW9uIHRlc3QgZm9yIHN0
cmluZyBjb3JydXB0aW9uIHRoYXQgb2NjdXJlZCBhZnRlcgorICAgICAgICBub24tQk1QIGNoYXJh
Y3RlciB3YXMgcmVtb3ZlZCBieSBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UuCisgICAgICAgIFRo
ZSBpc3N1ZSB3YXMgZml4ZWQgaW4gaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI1
MzY0OC93ZWJraXQuCisKKyAgICAgICAgQWxzbywgdGhpcyBwYXRjaCBicmluZ3MgYmFjazoKKyAg
ICAgICAgMS4gQW4gb3V0LW9mLW9yZGVyIGNoYXJhY3RlciBjbGFzcyByYW5nZSB0ZXN0LgorICAg
ICAgICAyLiBEYW5nbGluZyBhbmQgY29tYmluZWQgc3Vycm9nYXRlcyB0ZXN0cyAoYXMgd2Via2l0
Lm9yZy9iLzE1NDg2MyBpcyBub3cgcmVzb2x2ZWQpLgorCisgICAgICAgICogc3RyZXNzL3JlZ3Jl
c3MtMTg3OTQ3LmpzOiBBZGRlZC4KKwogMjAyMC0wMi0wNSAgSnVzdGluIE1pY2hhdWQgIDxqdXN0
aW5fbWljaGF1ZEBhcHBsZS5jb20+CiAKICAgICAgICAgRGVsZXRpbmcgYSBwcm9wZXJ0eSBzaG91
bGQgbm90IHR1cm4gc3RydWN0dXJlcyBpbnRvIHVuY2FjaGVhYmxlIGRpY3Rpb25hcmllcwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xODc5NDcuanMgYi9KU1Rlc3RzL3N0cmVz
cy9yZWdyZXNzLTE4Nzk0Ny5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOWY4ZTQ5ZmIyZGI4ZTg4YjI3NTgyNDcy
MTY3YmUzZDhhM2U3YzY2Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvcmVncmVz
cy0xODc5NDcuanMKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBl
eHBlY3RlZCkgeworICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICB0aHJvdyBuZXcgRXJy
b3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK3ZhciBhYjE2Yml0ID0gJ2FiY8SAJy5y
ZXBsYWNlKC9jLiovLCAnJyk7CisKK3ZhciBtYXAgPSB7fTsKK21hcFthYjE2Yml0XTsKKwordmFy
IHJvcGVBQiA9ICdhJyArICdiJzsKK3ZhciByb3BlQUJDID0gcm9wZUFCICsgJ2MnOworCittYXBb
cm9wZUFCXTsKK21hcFtyb3BlQUJDXSA9IDQyOworc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobWFw
KSwgJ3siYWJjIjo0Mn0nKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>