<?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>141730</bug_id>
          
          <creation_ts>2015-02-17 15:48:12 -0800</creation_ts>
          <short_desc>CrashTracer: DFG_CRASH beneath JSC::FTL::LowerDFGToLLVM::compileNode</short_desc>
          <delta_ts>2015-02-18 12:55:16 -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>528+ (Nightly build)</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1069968</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-02-17 15:48:12 -0800</bug_when>
    <thetext>at the default case of the switch in compileNode():

        switch (m_node-&gt;op()) {
        case Upsilon:
            compileUpsilon();
            break;
...
        default:
            DFG_CRASH(m_graph, m_node, &quot;Unrecognized node in FTL backend&quot;);  // Crash here
            break;
        }

Will change the DFG_CRASH to report the inconsistency and then fail the compile, but not crash the app.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069975</commentid>
    <comment_count>1</comment_count>
      <attachid>246777</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-02-17 16:09:07 -0800</bug_when>
    <thetext>Created attachment 246777
Patch

I tested this by manually turning of some cases in LowerDFGToLLVM::compileNode() as well as the various LowerDFGToLLVM::compileXXX().  I was able to run the JS regression tests without crashes, although some of the tests failed due to mismatched output.  Similarly, the WK tests ran normally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069976</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-17 16:10:28 -0800</bug_when>
    <thetext>Attachment 246777 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:1601:  Wrong number of spaces before statement. (expected: 24)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:1601:  Wrong number of spaces before statement. (expected: 24)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:2466:  Wrong number of spaces before statement. (expected: 24)  [whitespace/indent] [4]
Total errors found: 3 in 4 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>1069977</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-02-17 16:14:40 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 246777 [details] did not pass style-queue:
&gt; 
&gt; 
&gt; ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:1601:  Wrong number
&gt; of spaces before statement. (expected: 24)  [whitespace/indent] [4]
&gt; ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:1601:  Wrong number
&gt; of spaces before statement. (expected: 24)  [whitespace/indent] [4]
&gt; ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:2466:  Wrong number
&gt; of spaces before statement. (expected: 24)  [whitespace/indent] [4]
&gt; Total errors found: 3 in 4 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against
&gt; check-webkit-style.

No change to the existing indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069979</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-02-17 16:15:39 -0800</bug_when>
    <thetext>&lt;rdar://problem/19868347&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069981</commentid>
    <comment_count>5</comment_count>
      <attachid>246777</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-02-17 16:32:05 -0800</bug_when>
    <thetext>Comment on attachment 246777
Patch

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

Please find out what happens when we dataLog in the WebProcess.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:7037
&gt; +        dataLog(&quot;DFG ASSERTION FAILED: &quot;, assertion, &quot;\n&quot;);

This should say &quot;FTL&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069982</commentid>
    <comment_count>6</comment_count>
      <attachid>246778</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-02-17 16:41:13 -0800</bug_when>
    <thetext>Created attachment 246778
Fixed typo and changed &quot;DFG&quot; to &quot;FTL&quot; as suggested</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069984</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-17 16:43:24 -0800</bug_when>
    <thetext>Attachment 246778 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:1601:  Wrong number of spaces before statement. (expected: 24)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:1601:  Wrong number of spaces before statement. (expected: 24)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:2466:  Wrong number of spaces before statement. (expected: 24)  [whitespace/indent] [4]
Total errors found: 3 in 4 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>1069987</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-02-17 16:56:57 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 246777 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=246777&amp;action=review
&gt; 
&gt; Please find out what happens when we dataLog in the WebProcess.

By default, the errors go to stderr.  It appears that stderr for the WebProcess is thrown away as I can&apos;t find it in any of the standard places like Console and syslog.

I will look for a better place to send the logged information.

&gt; &gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:7037
&gt; &gt; +        dataLog(&quot;DFG ASSERTION FAILED: &quot;, assertion, &quot;\n&quot;);
&gt; 
&gt; This should say &quot;FTL&quot;.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069989</commentid>
    <comment_count>9</comment_count>
      <attachid>246778</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-02-17 17:31:46 -0800</bug_when>
    <thetext>Comment on attachment 246778
Fixed typo and changed &quot;DFG&quot; to &quot;FTL&quot; as suggested

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

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:7040
&gt; +#else
&gt; +        dataLog(&quot;FTL ASSERTION FAILED: &quot;, assertion, &quot;\n&quot;);
&gt; +        dataLog(file, &quot;(&quot;, line, &quot;) : &quot;, function, &quot;\n&quot;);
&gt; +        dataLog(&quot;While handling node &quot;, node, &quot;\n&quot;);
&gt; +#endif

Let&apos;s remove the else clause here since the web process will swallow this output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069997</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-02-17 18:38:24 -0800</bug_when>
    <thetext>Committed r180247: &lt;http://trac.webkit.org/changeset/180247&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069998</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-02-17 18:45:17 -0800</bug_when>
    <thetext>This patch broke the build:

/Volumes/Data/slave/yosemite-debug/build/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:7033:5: error: function &apos;loweringFailed&apos; could be declared with attribute &apos;noreturn&apos; [-Werror,-Wmissing-noreturn]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070003</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-02-17 18:52:30 -0800</bug_when>
    <thetext>Attempted a fix with &lt;http://trac.webkit.org/r180249&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070201</commentid>
    <comment_count>13</comment_count>
      <attachid>246778</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-18 12:55:16 -0800</bug_when>
    <thetext>Comment on attachment 246778
Fixed typo and changed &quot;DFG&quot; to &quot;FTL&quot; as suggested

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

&gt;&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:7040
&gt;&gt; +    void loweringFailed(Node* node, const char* file, int line, const char* function, const char* assertion)
&gt;&gt; +    {
&gt;&gt; +#ifndef NDEBUG
&gt;&gt; +        m_graph.handleAssertionFailure(node, file, line, function, (assertion));
&gt;&gt; +#else
&gt;&gt; +        dataLog(&quot;FTL ASSERTION FAILED: &quot;, assertion, &quot;\n&quot;);
&gt;&gt; +        dataLog(file, &quot;(&quot;, line, &quot;) : &quot;, function, &quot;\n&quot;);
&gt;&gt; +        dataLog(&quot;While handling node &quot;, node, &quot;\n&quot;);
&gt;&gt; +#endif
&gt; 
&gt; Let&apos;s remove the else clause here since the web process will swallow this output.

I&apos;m opposed to this change.

It appears that this indiscriminately changes release assertions to debug assertions, which is quite the opposite of what we have been doing in the DFG recently.

Also, this uses NDEBUG to detect behavior, rather than ASSERT_DISABLED.

Ideally, this change should just be rolled out of trunk.  If there is some good reason to have this, then we need to rationalize some things:

1) Should all DFG_ASSERT/DFG_CRASH macros throughout the compiler be replaced with this fail-silent behavior?  (I would disagree with that, strongly.)

2) Which of the DFG_ASSERT/DFG_CRASHes in the FTL lowering should actually be loweringFailed()?  Most of these are covered by FTLCapabilities.  I&apos;m strongly opposed to having a debug-only assert for guarding consistency between FTLCapabilities and FTLLower, especially given that we already run FTLCapabilities just before lowering.

3) Why are we using compile-time macros for this stuff?  The right solution is to use something like Options::crashOnFTLFailure(), which should be set to true.  Of course, if you ship WebKit, you could set it to false.  But it makes no sense to have it set to false for nightlies.

But, ideally, this change should just be rolled out of trunk.  It lowered our test coverage and doesn&apos;t fix any trunk bug, since trunk already runs FTLCapabilities before lowering.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246777</attachid>
            <date>2015-02-17 16:09:07 -0800</date>
            <delta_ts>2015-02-17 16:41:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>141730.patch</filename>
            <type>text/plain</type>
            <size>22882</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgwMjQ0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc3IEBA
CisyMDE1LTAyLTE3ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIENyYXNoVHJhY2VyOiBERkdfQ1JBU0ggYmVuZWF0aCBKU0M6OkZUTDo6TG93ZXJERkdUb0xM
Vk06OmNvbXBpbGVOb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDE3MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRlZCBhIG5ldyBmYWlsdXJlIGhhbmRsZXIsIGxvd2VyaW5nRmFpbGVkKCksIHRv
IExvd2VyREZHVG9MTFZNIHRoYXQgcmVwb3J0cyBmYWlsdXJlcworICAgICAgICB3aGlsZSBwcm9j
ZXNzaW5nIERGRyBsb3dlcmluZy4gIEZvciBkZWJ1ZyBidWlsZHMsIHRoZSBmYWlsdXJlcyBhcmUg
bG9nZ2VkIGlkZW50aWNhbAorICAgICAgICB0byB0aGUgd2F5IHRoZSBERkdfQ1JBU0goKSByZXBv
cnRzIHRoZW0uICBGb3IgcmVsZWFzZSBidWlsZHMsIHRoZSBmYWlsdXJlcyBhcmUgcmVwb3J0ZWQK
KyAgICAgICAgYW5kIHRoYXQgRlRMIGNvbXBpbGF0aW9uIGlzIHRlcm1pbmF0ZWQsIGJ1dCB0aGUg
cHJvY2VzcyBpcyBhbGxvd2VkIHRvIGNvbnRpbnVlLgorICAgICAgICBXcmFwcGVkIGNhbGxzIHRv
IGxvd2VyaW5nRmFpbGVkKCkgaW4gYSBtYWNybyBMT1dFUklOR19GQUlMRUQgc28gdGhlIGZ1bmN0
aW9uIGFuZAorICAgICAgICBsaW5lIG51bWJlciBhcmUgcmVwb3J0ZWQgYXQgdGhlIHBvaW50IG9m
IHRoZSBpbmNvbnNpc3RhbmN5LgorCisgICAgICAgIENvbnZlcnRlZCBpbnN0YW5jZXMgb2YgREZH
X0NSQVNIIHRvIExPV0VSSU5HX0ZBSUxFRC4KKworICAgICAgICAqIGRmZy9ERkdQbGFuLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21waWxlSW5UaHJlYWRJbXBsKTogQWRkZWQgbG93
ZXJERkdUb0xMVk0oKSBmYWlsdXJlIGNoZWNrIHRoYXQKKyAgICAgICAgd2lsbCBmYWlsIHRoZSBG
VEwgY29tcGlsZS4KKworICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06Okxvd2VyREZHVG9MTFZNKToKKyAgICAgICAg
QWRkZWQgbmV3IG1lbWJlciB2YXJpYWJsZSwgbV9sb3dlcmluZ1N1Y2NlZWRlZCwgdG8gc3RvcCBj
b21waWxhdGlvbiBvbiB0aGUgZmlyc3QKKyAgICAgICAgcmVwb3J0ZWQgZmFpbHVyZS4KKworICAg
ICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6TG93
ZXJERkdUb0xMVk06Omxvd2VyKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uaDoK
KyAgICAgICAgQWRkZWQgY2hlY2sgZm9yIGNvbXBpbGF0aW9uIGZhaWx1cmVzIGFuZCBub3cgcmVw
b3J0IHRob3NlIGZhaWx1cmVzIHZpYSBhIGJvb2xlYW4KKyAgICAgICAgcmV0dXJuIHZhbHVlLgor
CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6Y3JlYXRlUGhpVmFyaWFibGVzKToKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2Vy
REZHVG9MTFZNOjpjb21waWxlVXBzaWxvbik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdU
b0xMVk06OmNvbXBpbGVQaGkpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpj
b21waWxlRG91YmxlUmVwKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29t
cGlsZVZhbHVlUmVwKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGls
ZVZhbHVlVG9JbnQzMik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBp
bGVQdXRMb2NhbCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVB
cml0aEFkZE9yU3ViKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGls
ZUFyaXRoTXVsKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUFy
aXRoRGl2KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUFyaXRo
TW9kKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUFyaXRoTWlu
T3JNYXgpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQXJpdGhB
YnMpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQXJpdGhOZWdh
dGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQXJyYXlpZnlU
b1N0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVH
ZXRCeUlkKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUdldE15
QXJndW1lbnRCeVZhbCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBp
bGVHZXRBcnJheUxlbmd0aCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNv
bXBpbGVHZXRCeVZhbCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBp
bGVQdXRCeVZhbCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVB
cnJheVB1c2gpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQXJy
YXlQb3ApOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlTmV3QXJy
YXkpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlVG9TdHJpbmcp
OgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlTWFrZVJvcGUpOgor
ICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQ29tcGFyZUVxKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUNvbXBhcmVTdHJpY3RFcSk6
CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVTd2l0Y2gpOgorICAg
ICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21wYXJlKToKKyAgICAgICAgKEpTQzo6
RlRMOjpMb3dlckRGR1RvTExWTTo6Ym9vbGlmeSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJE
RkdUb0xMVk06Om9wcG9zaXRlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6
bG93SlNWYWx1ZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0
ZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmlzQXJyYXlUeXBlKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6ZXhpdFZhbHVlRm9yQXZhaWxhYmlsaXR5
KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6ZXhpdFZhbHVlRm9yTm9kZSk6
CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OnNldEludDUyKToKKyAgICAgICAg
Q2hhbmdlZCBERkdfQ1JBU0goKSB0byBMT1dFUklOR19GQUlMRUQoKS4gIFVwZGF0ZWQgcmVsYXRl
ZCBjb250cm9sIGZsb3cgYXMgYXBwcm9wcmlhdGUuCisKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dl
ckRGR1RvTExWTTo6bG93ZXJpbmdGYWlsZWQpOiBOZXcgZXJyb3IgcmVwb3J0aW5nIG1lbWJlciBm
dW5jdGlvbi4KKwogMjAxNS0wMi0xNyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgog
CiAgICAgICAgIFN0YWNrTGF5b3V0UGhhc2Ugc2hvdWxkIHVzZSBDb2RlQmxvY2s6OnVzZXNBcmd1
bWVudHMgcmF0aGVyIHRoYW4gRnVuY3Rpb25FeGVjdXRhYmxlOjp1c2VzQXJndW1lbnRzCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHJldmlzaW9uIDE4MDE4MykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM4Niw3ICszODYsMTAgQEAgUGxhbjo6Q29tcGlsYXRpb25QYXRoIFBsYW46OmNvbXBpbGVJblRo
cgogICAgICAgICB9CiAKICAgICAgICAgRlRMOjpTdGF0ZSBzdGF0ZShkZmcpOwotICAgICAgICBG
VEw6Omxvd2VyREZHVG9MTFZNKHN0YXRlKTsKKyAgICAgICAgaWYgKCFGVEw6Omxvd2VyREZHVG9M
TFZNKHN0YXRlKSkgeworICAgICAgICAgICAgRlRMOjpmYWlsKHN0YXRlKTsKKyAgICAgICAgICAg
IHJldHVybiBGVExQYXRoOworICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAocmVwb3J0
Q29tcGlsZVRpbWVzKCkpCiAgICAgICAgICAgICBtX3RpbWVCZWZvcmVGVEwgPSBtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0xMVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lvbiAxODAxODMpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
OTMsNiArOTMsNyBAQCBwdWJsaWM6CiAgICAgTG93ZXJERkdUb0xMVk0oU3RhdGUmIHN0YXRlKQog
ICAgICAgICA6IG1fZ3JhcGgoc3RhdGUuZ3JhcGgpCiAgICAgICAgICwgbV9mdGxTdGF0ZShzdGF0
ZSkKKyAgICAgICAgLCBtX2xvd2VyaW5nU3VjY2VlZGVkKHRydWUpCiAgICAgICAgICwgbV9oZWFw
cyhzdGF0ZS5jb250ZXh0KQogICAgICAgICAsIG1fb3V0KHN0YXRlLmNvbnRleHQpCiAgICAgICAg
ICwgbV9zdGF0ZShzdGF0ZS5ncmFwaCkKQEAgLTEwMiw4ICsxMDMsMTIgQEAgcHVibGljOgogICAg
ICAgICAsIG1fdGJhYVN0cnVjdEtpbmQobWRLaW5kSUQoc3RhdGUuY29udGV4dCwgInRiYWEuc3Ry
dWN0IikpCiAgICAgewogICAgIH0KLSAgICAKLSAgICB2b2lkIGxvd2VyKCkKKworCisjZGVmaW5l
IExPV0VSSU5HX0ZBSUxFRChub2RlLCByZWFzb24pICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICBsb3dlcmluZ0ZhaWxlZCgobm9kZSksIF9fRklMRV9fLCBfX0xJTkVfXywg
V1RGX1BSRVRUWV9GVU5DVElPTiwgKHJlYXNvbikpOworCisgICAgYm9vbCBsb3dlcigpCiAgICAg
ewogICAgICAgICBDU3RyaW5nIG5hbWU7CiAgICAgICAgIGlmICh2ZXJib3NlQ29tcGlsYXRpb25F
bmFibGVkKCkpIHsKQEAgLTI1MSwxNCArMjU2LDIyIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNh
c2UgRmx1c2hlZEpTVmFsdWU6CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBub2RlLCAiQmFkIGZs
dXNoIGZvcm1hdCBmb3IgYXJndW1lbnQiKTsKKyAgICAgICAgICAgICAgICBMT1dFUklOR19GQUlM
RUQobm9kZSwgIkJhZCBmbHVzaCBmb3JtYXQgZm9yIGFyZ3VtZW50Iik7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKworICAgICAgICBpZiAoIW1fbG93
ZXJpbmdTdWNjZWVkZWQpCisgICAgICAgICAgICByZXR1cm4gbV9sb3dlcmluZ1N1Y2NlZWRlZDsK
KwogICAgICAgICBtX291dC5qdW1wKGxvd0Jsb2NrKG1fZ3JhcGguYmxvY2soMCkpKTsKICAgICAg
ICAgCi0gICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBwcmVPcmRlcikKKyAgICAgICAg
Zm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IHByZU9yZGVyKSB7CiAgICAgICAgICAgICBjb21waWxl
QmxvY2soYmxvY2spOworCisgICAgICAgICAgICBpZiAoIW1fbG93ZXJpbmdTdWNjZWVkZWQpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIG1fbG93ZXJpbmdTdWNjZWVkZWQ7CisgICAgICAgIH0KICAg
ICAgICAgCiAgICAgICAgIGlmIChPcHRpb25zOjpkdW1wTExWTUlSKCkpCiAgICAgICAgICAgICBk
dW1wTW9kdWxlKG1fZnRsU3RhdGUubW9kdWxlKTsKQEAgLTI2Nyw2ICsyODAsOCBAQCBwdWJsaWM6
CiAgICAgICAgICAgICBtX2Z0bFN0YXRlLmR1bXBTdGF0ZSgiYWZ0ZXIgbG93ZXJpbmciKTsKICAg
ICAgICAgaWYgKHZhbGlkYXRpb25FbmFibGVkKCkpCiAgICAgICAgICAgICB2ZXJpZnlNb2R1bGUo
bV9mdGxTdGF0ZS5tb2R1bGUpOworCisgICAgICAgIHJldHVybiBtX2xvd2VyaW5nU3VjY2VlZGVk
OwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTI5OSw4ICszMTQsOCBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgICAgICAgICB0eXBlID0gbV9vdXQuaW50NjQ7CiAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIERGR19D
UkFTSChtX2dyYXBoLCBub2RlLCAiQmFkIFBoaSBub2RlIHJlc3VsdCB0eXBlIik7Ci0gICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBMT1dFUklOR19GQUlMRUQo
bm9kZSwgIkJhZCBQaGkgbm9kZSByZXN1bHQgdHlwZSIpOworICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIG1fcGhpcy5hZGQobm9k
ZSwgYnVpbGRBbGxvY2EobV9vdXQubV9idWlsZGVyLCB0eXBlKSk7CiAgICAgICAgICAgICB9CkBA
IC03OTYsMTAgKzgxMSwxMyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEtpbGxMb2NhbDoKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgREZHX0NSQVNI
KG1fZ3JhcGgsIG1fbm9kZSwgIlVucmVjb2duaXplZCBub2RlIGluIEZUTCBiYWNrZW5kIik7Cisg
ICAgICAgICAgICBMT1dFUklOR19GQUlMRUQobV9ub2RlLCAiVW5yZWNvZ25pemVkIG5vZGUgaW4g
RlRMIGJhY2tlbmQiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKKyAgICAgICAg
aWYgKCFtX2xvd2VyaW5nU3VjY2VlZGVkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCiAg
ICAgICAgIGlmICghbV9zdGF0ZS5pc1ZhbGlkKCkpIHsKICAgICAgICAgICAgIHNhZmVseUludmFs
aWRhdGVBZnRlclRlcm1pbmF0aW9uKCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC04
MzUsNyArODUzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fb3V0LnNldChsb3dKU1ZhbHVl
KG1fbm9kZS0+Y2hpbGQxKCkpLCBkZXN0aW5hdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJC
YWQgdXNlIGtpbmQiKTsKKyAgICAgICAgICAgIExPV0VSSU5HX0ZBSUxFRChtX25vZGUsICJCYWQg
dXNlIGtpbmQiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQpAQCAtODYx
LDcgKzg3OSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LmdldChz
b3VyY2UpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOworICAgICAgICAg
ICAgTE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICB9CkBAIC04OTksNyArOTE3LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBERkdf
Q1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIHVzZSBraW5kIik7CisgICAgICAgICAgICBMT1dF
UklOR19GQUlMRUQobV9ub2RlLCAiQmFkIHVzZSBraW5kIik7CiAgICAgICAgIH0KICAgICB9CiAg
ICAgCkBAIC05MjQsNyArOTQyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgICAgICAgICAg
CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2Rl
LCAiQmFkIHVzZSBraW5kIik7CisgICAgICAgICAgICBMT1dFUklOR19GQUlMRUQobV9ub2RlLCAi
QmFkIHVzZSBraW5kIik7CiAgICAgICAgIH0KICAgICB9CiAgICAgCkBAIC05ODcsNyArMTAwNSw3
IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0Ogot
ICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOwor
ICAgICAgICAgICAgTE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMDk0LDcgKzExMTIsNyBAQCBw
cml2YXRlOgogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJCYWQgZmx1c2ggZm9ybWF0Iik7Cisg
ICAgICAgICAgICBMT1dFUklOR19GQUlMRUQobV9ub2RlLCAiQmFkIGZsdXNoIGZvcm1hdCIpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjU0LDcgKzEyNzIsNyBA
QCBwcml2YXRlOgogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsKKyAg
ICAgICAgICAgIExPV0VSSU5HX0ZBSUxFRChtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQpAQCAtMTMyOCw3ICsxMzQ2LDcgQEAgcHJp
dmF0ZToKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAg
ICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIHVzZSBraW5kIik7CisgICAgICAg
ICAgICBMT1dFUklOR19GQUlMRUQobV9ub2RlLCAiQmFkIHVzZSBraW5kIik7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgIH0KQEAgLTE0MzEsNyArMTQ0OSw3IEBAIHByaXZhdGU6
CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAg
REZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOworICAgICAgICAgICAg
TE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICB9CkBAIC0xNTI5LDcgKzE1NDcsNyBAQCBwcml2YXRlOgogICAg
ICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIERGR19D
UkFTSChtX2dyYXBoLCBtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsKKyAgICAgICAgICAgIExPV0VS
SU5HX0ZBSUxFRChtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgfQpAQCAtMTU4MCw3ICsxNTk4LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
fQogICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBERkdfQ1JBU0go
bV9ncmFwaCwgbV9ub2RlLCAiQmFkIHVzZSBraW5kIik7CisgICAgICAgICAgICBMT1dFUklOR19G
QUlMRUQobV9ub2RlLCAiQmFkIHVzZSBraW5kIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgIH0KQEAgLTE2MDYsNyArMTYyNCw3IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAg
ICAgICAgICAgIAogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3Jh
cGgsIG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOworICAgICAgICAgICAgTE9XRVJJTkdfRkFJTEVE
KG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICB9CkBAIC0xNzMxLDcgKzE3NDksNyBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgICAg
ICAgICAKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBt
X25vZGUsICJCYWQgdXNlIGtpbmQiKTsKKyAgICAgICAgICAgIExPV0VSSU5HX0ZBSUxFRChtX25v
ZGUsICJCYWQgdXNlIGtpbmQiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
fQpAQCAtMTg2OSw4ICsxODg3LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHZtQ2FsbChtX291
dC5vcGVyYXRpb24ob3BlcmF0aW9uRW5zdXJlQXJyYXlTdG9yYWdlKSwgbV9jYWxsRnJhbWUsIGNl
bGwpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBE
RkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIGFycmF5IHR5cGUiKTsKLSAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgTE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJhZCBhcnJheSB0
eXBlIik7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAg
IHN0cnVjdHVyZUlEID0gbV9vdXQubG9hZDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVy
ZUlEKTsKQEAgLTE5MzgsNyArMTk1Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICAgICAg
ICAgIAogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1f
bm9kZSwgIkJhZCB1c2Uga2luZCIpOworICAgICAgICAgICAgTE9XRVJJTkdfRkFJTEVEKG1fbm9k
ZSwgIkJhZCB1c2Uga2luZCIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
fQpAQCAtMjA4OSw3ICsyMTA3LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8vIEZJWE1FOiBG
VEwgc2hvdWxkIHN1cHBvcnQgYWN0aXZhdGlvbnMuCiAgICAgICAgICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NTc2CiAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJVbmltcGxlbWVudGVkIik7CisgICAg
ICAgICAgICBMT1dFUklOR19GQUlMRUQobV9ub2RlLCAiVW5pbXBsZW1lbnRlZCIpOworICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBUeXBlZFBvaW50ZXIg
YmFzZTsKQEAgLTIxMzUsNyArMjE1NCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICBERkdfQ1JBU0go
bV9ncmFwaCwgbV9ub2RlLCAiQmFkIGFycmF5IHR5cGUiKTsKKyAgICAgICAgICAgIExPV0VSSU5H
X0ZBSUxFRChtX25vZGUsICJCYWQgYXJyYXkgdHlwZSIpOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgfQpAQCAtMjI4NSw3ICsyMzA0LDggQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0LmxvYWQzMihwb2ludGVyKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCBlbGVt
ZW50IHNpemUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIExPV0VSSU5HX0ZBSUxFRChtX25v
ZGUsICJCYWQgZWxlbWVudCBzaXplIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgIGlmIChlbGVtZW50U2l6ZSh0eXBlKSA8IDQpIHsKQEAgLTIzMjksMTQgKzIzNDks
MTUgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQubG9hZERv
dWJsZShwb2ludGVyKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg
ICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9k
ZSwgIkJhZCB0eXBlZCBhcnJheSB0eXBlIik7CisgICAgICAgICAgICAgICAgICAgIExPV0VSSU5H
X0ZBSUxFRChtX25vZGUsICJCYWQgdHlwZWQgYXJyYXkgdHlwZSIpOworICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgIHNldERvdWJsZShyZXN1bHQpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgs
IG1fbm9kZSwgIkJhZCBhcnJheSB0eXBlIik7CisgICAgICAgICAgICBMT1dFUklOR19GQUlMRUQo
bV9ub2RlLCAiQmFkIGFycmF5IHR5cGUiKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fSB9CiAgICAgfQpAQCAtMjQ0MCw5ICsyNDYxLDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAg
ICAgbV9vdXQuc3RvcmVEb3VibGUodmFsdWUsIGVsZW1lbnRQb2ludGVyKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKKwogICAgICAgICAg
ICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAi
QmFkIGFycmF5IHR5cGUiKTsKKyAgICAgICAgICAgICAgICBMT1dFUklOR19GQUlMRUQobV9ub2Rl
LCAiQmFkIGFycmF5IHR5cGUiKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKQEAgLTI1MzUsNyAr
MjU1Nyw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAg
ICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgTE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJhZCB1c2Uga2lu
ZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGVs
ZW1lbnRTaXplKHR5cGUpKSB7CkBAIC0yNTUyLDcgKzI1NzUsOCBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgICAgICAgICAgICAgcmVmVHlwZSA9IG1fb3V0LnJlZjMyOwogICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIGVsZW1lbnQgc2l6
ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgTE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJh
ZCBlbGVtZW50IHNpemUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0gZWxzZSAvKiAhaXNJbnQodHlwZSkg
Ki8gewogICAgICAgICAgICAgICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dEb3VibGUoY2hpbGQz
KTsKQEAgLTI1NjYsNyArMjU5MCw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAg
ICByZWZUeXBlID0gbV9vdXQucmVmRG91YmxlOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIHR5cGVkIGFycmF5IHR5cGUiKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIExPV0VSSU5HX0ZBSUxFRChtX25vZGUsICJCYWQgdHlwZWQg
YXJyYXkgdHlwZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIApAQCAtMjU5
MCw4ICsyNjE1LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25v
ZGUsICJCYWQgYXJyYXkgdHlwZSIpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBM
T1dFUklOR19GQUlMRUQobV9ub2RlLCAiQmFkIGFycmF5IHR5cGUiKTsKKyAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgIH0KICAgICAKQEAgLTI2NjIsNyArMjY4Nyw3IEBAIHByaXZh
dGU6CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCBhcnJheSB0eXBlIik7CisgICAgICAg
ICAgICBMT1dFUklOR19GQUlMRUQobV9ub2RlLCAiQmFkIGFycmF5IHR5cGUiKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTI3MjAsNyArMjc0NSw3IEBAIHByaXZh
dGU6CiAgICAgICAgIH0KIAogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgREZHX0NSQVNI
KG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCBhcnJheSB0eXBlIik7CisgICAgICAgICAgICBMT1dFUklO
R19GQUlMRUQobV9ub2RlLCAiQmFkIGFycmF5IHR5cGUiKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgIH0KQEAgLTI3NTcsOCArMjc4Miw4IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICAgICAgc3dpdGNoIChtX25vZGUtPmluZGV4aW5nVHlwZSgpKSB7CiAgICAgICAgICAgICAg
ICAgY2FzZSBBTExfQkxBTktfSU5ERVhJTkdfVFlQRVM6CiAgICAgICAgICAgICAgICAgY2FzZSBB
TExfVU5ERUNJREVEX0lOREVYSU5HX1RZUEVTOgotICAgICAgICAgICAgICAgICAgICBERkdfQ1JB
U0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIGluZGV4aW5nIHR5cGUiKTsKLSAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIExPV0VSSU5HX0ZBSUxFRChtX25vZGUs
ICJCYWQgaW5kZXhpbmcgdHlwZSIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGNhc2UgQUxMX0RPVUJMRV9JTkRFWElO
R19UWVBFUzoKICAgICAgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmVEb3VibGUoCkBAIC0yNzc1
LDggKzI4MDAsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAg
ICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkNvcnJ1cHQgaW5kZXhpbmcgdHlwZSIp
OwotICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgTE9XRVJJ
TkdfRkFJTEVEKG1fbm9kZSwgIkNvcnJ1cHQgaW5kZXhpbmcgdHlwZSIpOworICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgCkBAIC0zMDU3LDggKzMwODIsOCBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgICAg
ICAgICAKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBt
X25vZGUsICJCYWQgdXNlIGtpbmQiKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
TE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOworICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgfQogICAgIApAQCAtMzE0OSw4ICszMTc0LDggQEAgcHJpdmF0
ZToKICAgICAgICAgICAgICAgICBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uTWFrZVJvcGUzKSwg
bV9jYWxsRnJhbWUsIGtpZHNbMF0sIGtpZHNbMV0sIGtpZHNbMl0pKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1f
bm9kZSwgIkJhZCBudW1iZXIgb2YgY2hpbGRyZW4iKTsKLSAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgTE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJhZCBudW1iZXIgb2YgY2hpbGRyZW4i
KTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBtX291dC5qdW1wKGNv
bnRpbnVhdGlvbik7CiAgICAgICAgIApAQCAtMzU3MCw4ICszNTk1LDggQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIG5vblNwZWN1bGF0aXZlQ29tcGFyZShMTFZNSW50RVEsIG9wZXJhdGlvbkNvbXBh
cmVFcSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgCi0gICAgICAg
IERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJCYWQgdXNlIGtpbmRzIik7CisKKyAgICAgICAg
TE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJhZCB1c2Uga2luZHMiKTsKICAgICB9CiAgICAgCiAg
ICAgdm9pZCBjb21waWxlQ29tcGFyZUVxQ29uc3RhbnQoKQpAQCAtMzY2NCw3ICszNjg5LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAKLSAgICAg
ICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCB1c2Uga2luZHMiKTsKKyAgICAgICAg
TE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJhZCB1c2Uga2luZHMiKTsKICAgICB9CiAgICAgCiAg
ICAgdm9pZCBjb21waWxlQ29tcGFyZVN0cmljdEVxQ29uc3RhbnQoKQpAQCAtMzg1MCw4ICszODc1
LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwg
IkJhZCB1c2Uga2luZCIpOwotICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IExPV0VSSU5HX0ZBSUxFRChtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKHN3aXRjaE9uSW50cywgbGFzdE5leHQpOwpAQCAtMzg5Niw4ICszOTIxLDggQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCB1
c2Uga2luZCIpOwotICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIExPV0VS
SU5HX0ZBSUxFRChtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIExCYXNpY0Jsb2Nr
IGxlbmd0aElzMSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiU3dpdGNoL1N3aXRjaENoYXIgbGVu
Z3RoIGlzIDEiKSk7CkBAIC0zOTQ5LDcgKzM5NzQsNyBAQCBwcml2YXRlOgogICAgICAgICB9CiAg
ICAgICAgIAogICAgICAgICBjYXNlIFN3aXRjaFN0cmluZzogewotICAgICAgICAgICAgREZHX0NS
QVNIKG1fZ3JhcGgsIG1fbm9kZSwgIlVuaW1wbGVtZW50ZWQiKTsKKyAgICAgICAgICAgIExPV0VS
SU5HX0ZBSUxFRChtX25vZGUsICJVbmltcGxlbWVudGVkIik7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtMzk3Miw3ICszOTk3LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0g
ICAgICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCB1c2Uga2luZCIp
OworICAgICAgICAgICAgICAgIExPV0VSSU5HX0ZBSUxFRChtX25vZGUsICJCYWQgdXNlIGtpbmQi
KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAK
QEAgLTM5ODAsNyArNDAwNSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0gfQogICAgICAgICAKLSAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJh
ZCBzd2l0Y2gga2luZCIpOworICAgICAgICBMT1dFUklOR19GQUlMRUQobV9ub2RlLCAiQmFkIHN3
aXRjaCBraW5kIik7CiAgICAgfQogICAgIAogICAgIHZvaWQgY29tcGlsZVJldHVybigpCkBAIC00
OTUwLDcgKzQ5NzUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAgICAgICAgIAotICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIHVzZSBr
aW5kcyIpOworICAgICAgICBMT1dFUklOR19GQUlMRUQobV9ub2RlLCAiQmFkIHVzZSBraW5kcyIp
OwogICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBhcmVFcU9iamVjdE9yT3RoZXJUb09iamVjdChF
ZGdlIGxlZnRDaGlsZCwgRWRnZSByaWdodENoaWxkKQpAQCAtNTI2Myw3ICs1Mjg4LDcgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIHJldHVybiBtX291dC5waGkobV9vdXQuYm9vbGVhbiwgZmFzdFJl
c3VsdCwgc2xvd1Jlc3VsdCk7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsKKyAgICAgICAg
ICAgIExPV0VSSU5HX0ZBSUxFRChtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsKICAgICAgICAgICAg
IHJldHVybiAwOwogICAgICAgICB9CiAgICAgfQpAQCAtNTY0Miw3ICs1NjY3LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgY2FzZSBTdHJpY3RJbnQ1MjoKICAgICAgICAgICAgIHJldHVybiBJbnQ1MjsK
ICAgICAgICAgfQotICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIHVzZSBr
aW5kIik7CisgICAgICAgIExPV0VSSU5HX0ZBSUxFRChtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsK
ICAgICAgICAgcmV0dXJuIEludDUyOwogICAgIH0KICAgICAKQEAgLTU3ODYsNyArNTgxMSw3IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgICAg
IAotICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiVmFsdWUgbm90IGRlZmluZWQi
KTsKKyAgICAgICAgTE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIlZhbHVlIG5vdCBkZWZpbmVkIik7
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICAKQEAgLTYxMDEsNyArNjEyNiw4IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICBzcGVjdWxhdGVNaXNjKGVkZ2UpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9u
b2RlLCAiVW5zdXBwb3J0ZWQgc3BlY3VsYXRpb24gdXNlIGtpbmQiKTsKKyAgICAgICAgICAgIExP
V0VSSU5HX0ZBSUxFRChtX25vZGUsICJVbnN1cHBvcnRlZCBzcGVjdWxhdGlvbiB1c2Uga2luZCIp
OworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQogICAgIApAQCAtNjE2Miw3
ICs2MTg4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIAogICAgICAgICAgICAgc3dpdGNoIChh
cnJheU1vZGUuYXJyYXlDbGFzcygpKSB7CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpPcmlnaW5h
bEFycmF5OgotICAgICAgICAgICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJVbmV4
cGVjdGVkIG9yaWdpbmFsIGFycmF5Iik7CisgICAgICAgICAgICAgICAgTE9XRVJJTkdfRkFJTEVE
KG1fbm9kZSwgIlVuZXhwZWN0ZWQgb3JpZ2luYWwgYXJyYXkiKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gMDsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkFycmF5
OgpAQCAtNjE4Miw3ICs2MjA4LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgbV9v
dXQuY29uc3RJbnQ4KGFycmF5TW9kZS5zaGFwZU1hc2soKSkpOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgCi0gICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQ29ycnVw
dCBhcnJheSBjbGFzcyIpOworICAgICAgICAgICAgTE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkNv
cnJ1cHQgYXJyYXkgY2xhc3MiKTsKKyAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAg
ICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKQEAgLTY3MTYsNyArNjc0Myw3IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICByZXR1cm4gRXhpdFZhbHVlOjphcmd1bWVudHNPYmplY3RUaGF0V2Fz
Tm90Q3JlYXRlZCgpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBERkdfQ1JBU0gobV9n
cmFwaCwgbV9ub2RlLCAiSW52YWxpZCBmbHVzaCBmb3JtYXQiKTsKKyAgICAgICAgTE9XRVJJTkdf
RkFJTEVEKG1fbm9kZSwgIkludmFsaWQgZmx1c2ggZm9ybWF0Iik7CiAgICAgICAgIHJldHVybiBF
eGl0VmFsdWU6OmRlYWQoKTsKICAgICB9CiAgICAgCkBAIC02Nzg5LDcgKzY4MTYsNyBAQCBwcml2
YXRlOgogICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpCiAgICAgICAgICAgICByZXR1cm4gZXhp
dEFyZ3VtZW50KGFyZ3VtZW50cywgVmFsdWVGb3JtYXREb3VibGUsIHZhbHVlLnZhbHVlKCkpOwog
Ci0gICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsIHRvQ1N0cmluZygiQ2Fubm90IGZp
bmQgdmFsdWUgZm9yIG5vZGU6ICIsIG5vZGUpLmRhdGEoKSk7CisgICAgICAgIExPV0VSSU5HX0ZB
SUxFRChtX25vZGUsIHRvQ1N0cmluZygiQ2Fubm90IGZpbmQgdmFsdWUgZm9yIG5vZGU6ICIsIG5v
ZGUpLmRhdGEoKSk7CiAgICAgICAgIHJldHVybiBFeGl0VmFsdWU6OmRlYWQoKTsKICAgICB9CiAg
ICAgCkBAIC02ODQ3LDcgKzY4NzQsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAi
Q29ycnVwdCBpbnQ1MiBraW5kIik7CisgICAgICAgIExPV0VSSU5HX0ZBSUxFRChtX25vZGUsICJD
b3JydXB0IGludDUyIGtpbmQiKTsKICAgICB9CiAgICAgdm9pZCBzZXRKU1ZhbHVlKE5vZGUqIG5v
ZGUsIExWYWx1ZSB2YWx1ZSkKICAgICB7CkBAIC03MDAxLDcgKzcwMjgsMTkgQEAgcHJpdmF0ZToK
ICNlbmRpZgogICAgICAgICBtX291dC51bnJlYWNoYWJsZSgpOwogICAgIH0KLSAgICAKKworICAg
IHZvaWQgbG93ZXJpbmdGYWlsZWQoTm9kZSogbm9kZSwgY29uc3QgY2hhciogZmlsZSwgaW50IGxp
bmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBjb25zdCBjaGFyKiBhc3NlcnRpb24pCisgICAgewor
I2lmbmRlZiBOREVCVUcKKyAgICAgICAgbV9ncmFwaC5oYW5kbGVBc3NlcnRpb25GYWlsdXJlKG5v
ZGUsIGZpbGUsIGxpbmUsIGZ1bmN0aW9uLCAoYXNzZXJ0aW9uKSk7CisjZWxzZQorICAgICAgICBk
YXRhTG9nKCJERkcgQVNTRVJUSU9OIEZBSUxFRDogIiwgYXNzZXJ0aW9uLCAiXG4iKTsKKyAgICAg
ICAgZGF0YUxvZyhmaWxlLCAiKCIsIGxpbmUsICIpIDogIiwgZnVuY3Rpb24sICJcbiIpOworICAg
ICAgICBkYXRhTG9nKCJXaGlsZSBoYW5kbGluZyBub2RlICIsIG5vZGUpLCAiXG4iKTsKKyNlbmRp
ZgorICAgICAgICBtX2xvd2VyaW5nU3VjY2VlZGVkID0gZmFsc2U7CisgICAgfQorCiAgICAgQXZh
aWxhYmlsaXR5TWFwJiBhdmFpbGFiaWxpdHlNYXAoKSB7IHJldHVybiBtX2F2YWlsYWJpbGl0eUNh
bGN1bGF0b3IubV9hdmFpbGFiaWxpdHk7IH0KICAgICAKICAgICBWTSYgdm0oKSB7IHJldHVybiBt
X2dyYXBoLm1fdm07IH0KQEAgLTcwMDksNiArNzA0OCw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAg
R3JhcGgmIG1fZ3JhcGg7CiAgICAgU3RhdGUmIG1fZnRsU3RhdGU7CisgICAgYm9vbCBtX2xvd2Vy
aW5nU3VjY2VlZGVkOwogICAgIEFic3RyYWN0SGVhcFJlcG9zaXRvcnkgbV9oZWFwczsKICAgICBP
dXRwdXQgbV9vdXQ7CiAgICAgCkBAIC03MDU2LDEyICs3MDk2LDE0IEBAIHByaXZhdGU6CiAgICAg
dWludDMyX3QgbV9zdGFja21hcElEczsKICAgICB1bnNpZ25lZCBtX3RiYWFLaW5kOwogICAgIHVu
c2lnbmVkIG1fdGJhYVN0cnVjdEtpbmQ7CisKKyN1bmRlZiBMT1dFUklOR19GQUlMRUQKIH07CiAK
LXZvaWQgbG93ZXJERkdUb0xMVk0oU3RhdGUmIHN0YXRlKQorYm9vbCBsb3dlckRGR1RvTExWTShT
dGF0ZSYgc3RhdGUpCiB7CiAgICAgTG93ZXJERkdUb0xMVk0gbG93ZXJpbmcoc3RhdGUpOwotICAg
IGxvd2VyaW5nLmxvd2VyKCk7CisgICAgcmV0dXJuIGxvd2VyaW5nLmxvd2VyKCk7CiB9CiAKIH0g
fSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0xMVk0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9MTFZNLmgJKHJldmlzaW9uIDE4MDE4MykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uaAkod29ya2luZyBjb3B5KQpAQCAtMzMs
NyArMzMsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKLXZvaWQgbG93
ZXJERkdUb0xMVk0oU3RhdGUmKTsKK2Jvb2wgbG93ZXJERkdUb0xMVk0oU3RhdGUmKTsKIAogfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCg==
</data>
<flag name="review"
          id="271722"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246778</attachid>
            <date>2015-02-17 16:41:13 -0800</date>
            <delta_ts>2015-02-17 17:31:46 -0800</delta_ts>
            <desc>Fixed typo and changed &quot;DFG&quot; to &quot;FTL&quot; as suggested</desc>
            <filename>141730-2.patch</filename>
            <type>text/plain</type>
            <size>22881</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgwMjQ0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc3IEBA
CisyMDE1LTAyLTE3ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIENyYXNoVHJhY2VyOiBERkdfQ1JBU0ggYmVuZWF0aCBKU0M6OkZUTDo6TG93ZXJERkdUb0xM
Vk06OmNvbXBpbGVOb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDE3MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRlZCBhIG5ldyBmYWlsdXJlIGhhbmRsZXIsIGxvd2VyaW5nRmFpbGVkKCksIHRv
IExvd2VyREZHVG9MTFZNIHRoYXQgcmVwb3J0cyBmYWlsdXJlcworICAgICAgICB3aGlsZSBwcm9j
ZXNzaW5nIERGRyBsb3dlcmluZy4gIEZvciBkZWJ1ZyBidWlsZHMsIHRoZSBmYWlsdXJlcyBhcmUg
bG9nZ2VkIGlkZW50aWNhbAorICAgICAgICB0byB0aGUgd2F5IHRoZSBERkdfQ1JBU0goKSByZXBv
cnRzIHRoZW0uICBGb3IgcmVsZWFzZSBidWlsZHMsIHRoZSBmYWlsdXJlcyBhcmUgcmVwb3J0ZWQK
KyAgICAgICAgYW5kIHRoYXQgRlRMIGNvbXBpbGF0aW9uIGlzIHRlcm1pbmF0ZWQsIGJ1dCB0aGUg
cHJvY2VzcyBpcyBhbGxvd2VkIHRvIGNvbnRpbnVlLgorICAgICAgICBXcmFwcGVkIGNhbGxzIHRv
IGxvd2VyaW5nRmFpbGVkKCkgaW4gYSBtYWNybyBMT1dFUklOR19GQUlMRUQgc28gdGhlIGZ1bmN0
aW9uIGFuZAorICAgICAgICBsaW5lIG51bWJlciBhcmUgcmVwb3J0ZWQgYXQgdGhlIHBvaW50IG9m
IHRoZSBpbmNvbnNpc3RhbmN5LgorCisgICAgICAgIENvbnZlcnRlZCBpbnN0YW5jZXMgb2YgREZH
X0NSQVNIIHRvIExPV0VSSU5HX0ZBSUxFRC4KKworICAgICAgICAqIGRmZy9ERkdQbGFuLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21waWxlSW5UaHJlYWRJbXBsKTogQWRkZWQgbG93
ZXJERkdUb0xMVk0oKSBmYWlsdXJlIGNoZWNrIHRoYXQKKyAgICAgICAgd2lsbCBmYWlsIHRoZSBG
VEwgY29tcGlsZS4KKworICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06Okxvd2VyREZHVG9MTFZNKToKKyAgICAgICAg
QWRkZWQgbmV3IG1lbWJlciB2YXJpYWJsZSwgbV9sb3dlcmluZ1N1Y2NlZWRlZCwgdG8gc3RvcCBj
b21waWxhdGlvbiBvbiB0aGUgZmlyc3QKKyAgICAgICAgcmVwb3J0ZWQgZmFpbHVyZS4KKworICAg
ICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6TG93
ZXJERkdUb0xMVk06Omxvd2VyKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uaDoK
KyAgICAgICAgQWRkZWQgY2hlY2sgZm9yIGNvbXBpbGF0aW9uIGZhaWx1cmVzIGFuZCBub3cgcmVw
b3J0IHRob3NlIGZhaWx1cmVzIHZpYSBhIGJvb2xlYW4KKyAgICAgICAgcmV0dXJuIHZhbHVlLgor
CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6Y3JlYXRlUGhpVmFyaWFibGVzKToKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2Vy
REZHVG9MTFZNOjpjb21waWxlVXBzaWxvbik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdU
b0xMVk06OmNvbXBpbGVQaGkpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpj
b21waWxlRG91YmxlUmVwKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29t
cGlsZVZhbHVlUmVwKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGls
ZVZhbHVlVG9JbnQzMik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBp
bGVQdXRMb2NhbCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVB
cml0aEFkZE9yU3ViKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGls
ZUFyaXRoTXVsKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUFy
aXRoRGl2KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUFyaXRo
TW9kKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUFyaXRoTWlu
T3JNYXgpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQXJpdGhB
YnMpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQXJpdGhOZWdh
dGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQXJyYXlpZnlU
b1N0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVH
ZXRCeUlkKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUdldE15
QXJndW1lbnRCeVZhbCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBp
bGVHZXRBcnJheUxlbmd0aCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNv
bXBpbGVHZXRCeVZhbCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBp
bGVQdXRCeVZhbCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVB
cnJheVB1c2gpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQXJy
YXlQb3ApOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlTmV3QXJy
YXkpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlVG9TdHJpbmcp
OgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlTWFrZVJvcGUpOgor
ICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQ29tcGFyZUVxKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUNvbXBhcmVTdHJpY3RFcSk6
CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVTd2l0Y2gpOgorICAg
ICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21wYXJlKToKKyAgICAgICAgKEpTQzo6
RlRMOjpMb3dlckRGR1RvTExWTTo6Ym9vbGlmeSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJE
RkdUb0xMVk06Om9wcG9zaXRlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6
bG93SlNWYWx1ZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0
ZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmlzQXJyYXlUeXBlKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6ZXhpdFZhbHVlRm9yQXZhaWxhYmlsaXR5
KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6ZXhpdFZhbHVlRm9yTm9kZSk6
CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OnNldEludDUyKToKKyAgICAgICAg
Q2hhbmdlZCBERkdfQ1JBU0goKSB0byBMT1dFUklOR19GQUlMRUQoKS4gIFVwZGF0ZWQgcmVsYXRl
ZCBjb250cm9sIGZsb3cgYXMgYXBwcm9wcmlhdGUuCisKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dl
ckRGR1RvTExWTTo6bG93ZXJpbmdGYWlsZWQpOiBOZXcgZXJyb3IgcmVwb3J0aW5nIG1lbWJlciBm
dW5jdGlvbi4KKwogMjAxNS0wMi0xNyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgog
CiAgICAgICAgIFN0YWNrTGF5b3V0UGhhc2Ugc2hvdWxkIHVzZSBDb2RlQmxvY2s6OnVzZXNBcmd1
bWVudHMgcmF0aGVyIHRoYW4gRnVuY3Rpb25FeGVjdXRhYmxlOjp1c2VzQXJndW1lbnRzCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHJldmlzaW9uIDE4MDE4MykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM4Niw3ICszODYsMTAgQEAgUGxhbjo6Q29tcGlsYXRpb25QYXRoIFBsYW46OmNvbXBpbGVJblRo
cgogICAgICAgICB9CiAKICAgICAgICAgRlRMOjpTdGF0ZSBzdGF0ZShkZmcpOwotICAgICAgICBG
VEw6Omxvd2VyREZHVG9MTFZNKHN0YXRlKTsKKyAgICAgICAgaWYgKCFGVEw6Omxvd2VyREZHVG9M
TFZNKHN0YXRlKSkgeworICAgICAgICAgICAgRlRMOjpmYWlsKHN0YXRlKTsKKyAgICAgICAgICAg
IHJldHVybiBGVExQYXRoOworICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAocmVwb3J0
Q29tcGlsZVRpbWVzKCkpCiAgICAgICAgICAgICBtX3RpbWVCZWZvcmVGVEwgPSBtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0xMVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lvbiAxODAxODMpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
OTMsNiArOTMsNyBAQCBwdWJsaWM6CiAgICAgTG93ZXJERkdUb0xMVk0oU3RhdGUmIHN0YXRlKQog
ICAgICAgICA6IG1fZ3JhcGgoc3RhdGUuZ3JhcGgpCiAgICAgICAgICwgbV9mdGxTdGF0ZShzdGF0
ZSkKKyAgICAgICAgLCBtX2xvd2VyaW5nU3VjY2VlZGVkKHRydWUpCiAgICAgICAgICwgbV9oZWFw
cyhzdGF0ZS5jb250ZXh0KQogICAgICAgICAsIG1fb3V0KHN0YXRlLmNvbnRleHQpCiAgICAgICAg
ICwgbV9zdGF0ZShzdGF0ZS5ncmFwaCkKQEAgLTEwMiw4ICsxMDMsMTIgQEAgcHVibGljOgogICAg
ICAgICAsIG1fdGJhYVN0cnVjdEtpbmQobWRLaW5kSUQoc3RhdGUuY29udGV4dCwgInRiYWEuc3Ry
dWN0IikpCiAgICAgewogICAgIH0KLSAgICAKLSAgICB2b2lkIGxvd2VyKCkKKworCisjZGVmaW5l
IExPV0VSSU5HX0ZBSUxFRChub2RlLCByZWFzb24pICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICBsb3dlcmluZ0ZhaWxlZCgobm9kZSksIF9fRklMRV9fLCBfX0xJTkVfXywg
V1RGX1BSRVRUWV9GVU5DVElPTiwgKHJlYXNvbikpOworCisgICAgYm9vbCBsb3dlcigpCiAgICAg
ewogICAgICAgICBDU3RyaW5nIG5hbWU7CiAgICAgICAgIGlmICh2ZXJib3NlQ29tcGlsYXRpb25F
bmFibGVkKCkpIHsKQEAgLTI1MSwxNCArMjU2LDIyIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNh
c2UgRmx1c2hlZEpTVmFsdWU6CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBub2RlLCAiQmFkIGZs
dXNoIGZvcm1hdCBmb3IgYXJndW1lbnQiKTsKKyAgICAgICAgICAgICAgICBMT1dFUklOR19GQUlM
RUQobm9kZSwgIkJhZCBmbHVzaCBmb3JtYXQgZm9yIGFyZ3VtZW50Iik7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKworICAgICAgICBpZiAoIW1fbG93
ZXJpbmdTdWNjZWVkZWQpCisgICAgICAgICAgICByZXR1cm4gbV9sb3dlcmluZ1N1Y2NlZWRlZDsK
KwogICAgICAgICBtX291dC5qdW1wKGxvd0Jsb2NrKG1fZ3JhcGguYmxvY2soMCkpKTsKICAgICAg
ICAgCi0gICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBwcmVPcmRlcikKKyAgICAgICAg
Zm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IHByZU9yZGVyKSB7CiAgICAgICAgICAgICBjb21waWxl
QmxvY2soYmxvY2spOworCisgICAgICAgICAgICBpZiAoIW1fbG93ZXJpbmdTdWNjZWVkZWQpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIG1fbG93ZXJpbmdTdWNjZWVkZWQ7CisgICAgICAgIH0KICAg
ICAgICAgCiAgICAgICAgIGlmIChPcHRpb25zOjpkdW1wTExWTUlSKCkpCiAgICAgICAgICAgICBk
dW1wTW9kdWxlKG1fZnRsU3RhdGUubW9kdWxlKTsKQEAgLTI2Nyw2ICsyODAsOCBAQCBwdWJsaWM6
CiAgICAgICAgICAgICBtX2Z0bFN0YXRlLmR1bXBTdGF0ZSgiYWZ0ZXIgbG93ZXJpbmciKTsKICAg
ICAgICAgaWYgKHZhbGlkYXRpb25FbmFibGVkKCkpCiAgICAgICAgICAgICB2ZXJpZnlNb2R1bGUo
bV9mdGxTdGF0ZS5tb2R1bGUpOworCisgICAgICAgIHJldHVybiBtX2xvd2VyaW5nU3VjY2VlZGVk
OwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTI5OSw4ICszMTQsOCBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgICAgICAgICB0eXBlID0gbV9vdXQuaW50NjQ7CiAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIERGR19D
UkFTSChtX2dyYXBoLCBub2RlLCAiQmFkIFBoaSBub2RlIHJlc3VsdCB0eXBlIik7Ci0gICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBMT1dFUklOR19GQUlMRUQo
bm9kZSwgIkJhZCBQaGkgbm9kZSByZXN1bHQgdHlwZSIpOworICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIG1fcGhpcy5hZGQobm9k
ZSwgYnVpbGRBbGxvY2EobV9vdXQubV9idWlsZGVyLCB0eXBlKSk7CiAgICAgICAgICAgICB9CkBA
IC03OTYsMTAgKzgxMSwxMyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEtpbGxMb2NhbDoKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgREZHX0NSQVNI
KG1fZ3JhcGgsIG1fbm9kZSwgIlVucmVjb2duaXplZCBub2RlIGluIEZUTCBiYWNrZW5kIik7Cisg
ICAgICAgICAgICBMT1dFUklOR19GQUlMRUQobV9ub2RlLCAiVW5yZWNvZ25pemVkIG5vZGUgaW4g
RlRMIGJhY2tlbmQiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKKyAgICAgICAg
aWYgKCFtX2xvd2VyaW5nU3VjY2VlZGVkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCiAg
ICAgICAgIGlmICghbV9zdGF0ZS5pc1ZhbGlkKCkpIHsKICAgICAgICAgICAgIHNhZmVseUludmFs
aWRhdGVBZnRlclRlcm1pbmF0aW9uKCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC04
MzUsNyArODUzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fb3V0LnNldChsb3dKU1ZhbHVl
KG1fbm9kZS0+Y2hpbGQxKCkpLCBkZXN0aW5hdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJC
YWQgdXNlIGtpbmQiKTsKKyAgICAgICAgICAgIExPV0VSSU5HX0ZBSUxFRChtX25vZGUsICJCYWQg
dXNlIGtpbmQiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQpAQCAtODYx
LDcgKzg3OSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LmdldChz
b3VyY2UpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOworICAgICAgICAg
ICAgTE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICB9CkBAIC04OTksNyArOTE3LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBERkdf
Q1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIHVzZSBraW5kIik7CisgICAgICAgICAgICBMT1dF
UklOR19GQUlMRUQobV9ub2RlLCAiQmFkIHVzZSBraW5kIik7CiAgICAgICAgIH0KICAgICB9CiAg
ICAgCkBAIC05MjQsNyArOTQyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgICAgICAgICAg
CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2Rl
LCAiQmFkIHVzZSBraW5kIik7CisgICAgICAgICAgICBMT1dFUklOR19GQUlMRUQobV9ub2RlLCAi
QmFkIHVzZSBraW5kIik7CiAgICAgICAgIH0KICAgICB9CiAgICAgCkBAIC05ODcsNyArMTAwNSw3
IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0Ogot
ICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOwor
ICAgICAgICAgICAgTE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMDk0LDcgKzExMTIsNyBAQCBw
cml2YXRlOgogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJCYWQgZmx1c2ggZm9ybWF0Iik7Cisg
ICAgICAgICAgICBMT1dFUklOR19GQUlMRUQobV9ub2RlLCAiQmFkIGZsdXNoIGZvcm1hdCIpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjU0LDcgKzEyNzIsNyBA
QCBwcml2YXRlOgogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsKKyAg
ICAgICAgICAgIExPV0VSSU5HX0ZBSUxFRChtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQpAQCAtMTMyOCw3ICsxMzQ2LDcgQEAgcHJp
dmF0ZToKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAg
ICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIHVzZSBraW5kIik7CisgICAgICAg
ICAgICBMT1dFUklOR19GQUlMRUQobV9ub2RlLCAiQmFkIHVzZSBraW5kIik7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgIH0KQEAgLTE0MzEsNyArMTQ0OSw3IEBAIHByaXZhdGU6
CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAg
REZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOworICAgICAgICAgICAg
TE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICB9CkBAIC0xNTI5LDcgKzE1NDcsNyBAQCBwcml2YXRlOgogICAg
ICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIERGR19D
UkFTSChtX2dyYXBoLCBtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsKKyAgICAgICAgICAgIExPV0VS
SU5HX0ZBSUxFRChtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgfQpAQCAtMTU4MCw3ICsxNTk4LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
fQogICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBERkdfQ1JBU0go
bV9ncmFwaCwgbV9ub2RlLCAiQmFkIHVzZSBraW5kIik7CisgICAgICAgICAgICBMT1dFUklOR19G
QUlMRUQobV9ub2RlLCAiQmFkIHVzZSBraW5kIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgIH0KQEAgLTE2MDYsNyArMTYyNCw3IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAg
ICAgICAgICAgIAogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3Jh
cGgsIG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOworICAgICAgICAgICAgTE9XRVJJTkdfRkFJTEVE
KG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICB9CkBAIC0xNzMxLDcgKzE3NDksNyBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgICAg
ICAgICAKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBt
X25vZGUsICJCYWQgdXNlIGtpbmQiKTsKKyAgICAgICAgICAgIExPV0VSSU5HX0ZBSUxFRChtX25v
ZGUsICJCYWQgdXNlIGtpbmQiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
fQpAQCAtMTg2OSw4ICsxODg3LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHZtQ2FsbChtX291
dC5vcGVyYXRpb24ob3BlcmF0aW9uRW5zdXJlQXJyYXlTdG9yYWdlKSwgbV9jYWxsRnJhbWUsIGNl
bGwpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBE
RkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIGFycmF5IHR5cGUiKTsKLSAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgTE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJhZCBhcnJheSB0
eXBlIik7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAg
IHN0cnVjdHVyZUlEID0gbV9vdXQubG9hZDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVy
ZUlEKTsKQEAgLTE5MzgsNyArMTk1Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICAgICAg
ICAgIAogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1f
bm9kZSwgIkJhZCB1c2Uga2luZCIpOworICAgICAgICAgICAgTE9XRVJJTkdfRkFJTEVEKG1fbm9k
ZSwgIkJhZCB1c2Uga2luZCIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
fQpAQCAtMjA4OSw3ICsyMTA3LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8vIEZJWE1FOiBG
VEwgc2hvdWxkIHN1cHBvcnQgYWN0aXZhdGlvbnMuCiAgICAgICAgICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NTc2CiAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJVbmltcGxlbWVudGVkIik7CisgICAg
ICAgICAgICBMT1dFUklOR19GQUlMRUQobV9ub2RlLCAiVW5pbXBsZW1lbnRlZCIpOworICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBUeXBlZFBvaW50ZXIg
YmFzZTsKQEAgLTIxMzUsNyArMjE1NCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICBERkdfQ1JBU0go
bV9ncmFwaCwgbV9ub2RlLCAiQmFkIGFycmF5IHR5cGUiKTsKKyAgICAgICAgICAgIExPV0VSSU5H
X0ZBSUxFRChtX25vZGUsICJCYWQgYXJyYXkgdHlwZSIpOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgfQpAQCAtMjI4NSw3ICsyMzA0LDggQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0LmxvYWQzMihwb2ludGVyKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCBlbGVt
ZW50IHNpemUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIExPV0VSSU5HX0ZBSUxFRChtX25v
ZGUsICJCYWQgZWxlbWVudCBzaXplIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgIGlmIChlbGVtZW50U2l6ZSh0eXBlKSA8IDQpIHsKQEAgLTIzMjksMTQgKzIzNDks
MTUgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQubG9hZERv
dWJsZShwb2ludGVyKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg
ICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9k
ZSwgIkJhZCB0eXBlZCBhcnJheSB0eXBlIik7CisgICAgICAgICAgICAgICAgICAgIExPV0VSSU5H
X0ZBSUxFRChtX25vZGUsICJCYWQgdHlwZWQgYXJyYXkgdHlwZSIpOworICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgIHNldERvdWJsZShyZXN1bHQpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgs
IG1fbm9kZSwgIkJhZCBhcnJheSB0eXBlIik7CisgICAgICAgICAgICBMT1dFUklOR19GQUlMRUQo
bV9ub2RlLCAiQmFkIGFycmF5IHR5cGUiKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fSB9CiAgICAgfQpAQCAtMjQ0MCw5ICsyNDYxLDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAg
ICAgbV9vdXQuc3RvcmVEb3VibGUodmFsdWUsIGVsZW1lbnRQb2ludGVyKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKKwogICAgICAgICAg
ICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAi
QmFkIGFycmF5IHR5cGUiKTsKKyAgICAgICAgICAgICAgICBMT1dFUklOR19GQUlMRUQobV9ub2Rl
LCAiQmFkIGFycmF5IHR5cGUiKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKQEAgLTI1MzUsNyAr
MjU1Nyw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAg
ICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgTE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJhZCB1c2Uga2lu
ZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGVs
ZW1lbnRTaXplKHR5cGUpKSB7CkBAIC0yNTUyLDcgKzI1NzUsOCBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgICAgICAgICAgICAgcmVmVHlwZSA9IG1fb3V0LnJlZjMyOwogICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIGVsZW1lbnQgc2l6
ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgTE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJh
ZCBlbGVtZW50IHNpemUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0gZWxzZSAvKiAhaXNJbnQodHlwZSkg
Ki8gewogICAgICAgICAgICAgICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dEb3VibGUoY2hpbGQz
KTsKQEAgLTI1NjYsNyArMjU5MCw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAg
ICByZWZUeXBlID0gbV9vdXQucmVmRG91YmxlOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIHR5cGVkIGFycmF5IHR5cGUiKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIExPV0VSSU5HX0ZBSUxFRChtX25vZGUsICJCYWQgdHlwZWQg
YXJyYXkgdHlwZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIApAQCAtMjU5
MCw4ICsyNjE1LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25v
ZGUsICJCYWQgYXJyYXkgdHlwZSIpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBM
T1dFUklOR19GQUlMRUQobV9ub2RlLCAiQmFkIGFycmF5IHR5cGUiKTsKKyAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgIH0KICAgICAKQEAgLTI2NjIsNyArMjY4Nyw3IEBAIHByaXZh
dGU6CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCBhcnJheSB0eXBlIik7CisgICAgICAg
ICAgICBMT1dFUklOR19GQUlMRUQobV9ub2RlLCAiQmFkIGFycmF5IHR5cGUiKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTI3MjAsNyArMjc0NSw3IEBAIHByaXZh
dGU6CiAgICAgICAgIH0KIAogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgREZHX0NSQVNI
KG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCBhcnJheSB0eXBlIik7CisgICAgICAgICAgICBMT1dFUklO
R19GQUlMRUQobV9ub2RlLCAiQmFkIGFycmF5IHR5cGUiKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgIH0KQEAgLTI3NTcsOCArMjc4Miw4IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICAgICAgc3dpdGNoIChtX25vZGUtPmluZGV4aW5nVHlwZSgpKSB7CiAgICAgICAgICAgICAg
ICAgY2FzZSBBTExfQkxBTktfSU5ERVhJTkdfVFlQRVM6CiAgICAgICAgICAgICAgICAgY2FzZSBB
TExfVU5ERUNJREVEX0lOREVYSU5HX1RZUEVTOgotICAgICAgICAgICAgICAgICAgICBERkdfQ1JB
U0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIGluZGV4aW5nIHR5cGUiKTsKLSAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIExPV0VSSU5HX0ZBSUxFRChtX25vZGUs
ICJCYWQgaW5kZXhpbmcgdHlwZSIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGNhc2UgQUxMX0RPVUJMRV9JTkRFWElO
R19UWVBFUzoKICAgICAgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmVEb3VibGUoCkBAIC0yNzc1
LDggKzI4MDAsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAg
ICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkNvcnJ1cHQgaW5kZXhpbmcgdHlwZSIp
OwotICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgTE9XRVJJ
TkdfRkFJTEVEKG1fbm9kZSwgIkNvcnJ1cHQgaW5kZXhpbmcgdHlwZSIpOworICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgCkBAIC0zMDU3LDggKzMwODIsOCBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgICAg
ICAgICAKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBt
X25vZGUsICJCYWQgdXNlIGtpbmQiKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
TE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJhZCB1c2Uga2luZCIpOworICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgfQogICAgIApAQCAtMzE0OSw4ICszMTc0LDggQEAgcHJpdmF0
ZToKICAgICAgICAgICAgICAgICBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uTWFrZVJvcGUzKSwg
bV9jYWxsRnJhbWUsIGtpZHNbMF0sIGtpZHNbMV0sIGtpZHNbMl0pKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1f
bm9kZSwgIkJhZCBudW1iZXIgb2YgY2hpbGRyZW4iKTsKLSAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgTE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJhZCBudW1iZXIgb2YgY2hpbGRyZW4i
KTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBtX291dC5qdW1wKGNv
bnRpbnVhdGlvbik7CiAgICAgICAgIApAQCAtMzU3MCw4ICszNTk1LDggQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIG5vblNwZWN1bGF0aXZlQ29tcGFyZShMTFZNSW50RVEsIG9wZXJhdGlvbkNvbXBh
cmVFcSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgCi0gICAgICAg
IERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJCYWQgdXNlIGtpbmRzIik7CisKKyAgICAgICAg
TE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJhZCB1c2Uga2luZHMiKTsKICAgICB9CiAgICAgCiAg
ICAgdm9pZCBjb21waWxlQ29tcGFyZUVxQ29uc3RhbnQoKQpAQCAtMzY2NCw3ICszNjg5LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAKLSAgICAg
ICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCB1c2Uga2luZHMiKTsKKyAgICAgICAg
TE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkJhZCB1c2Uga2luZHMiKTsKICAgICB9CiAgICAgCiAg
ICAgdm9pZCBjb21waWxlQ29tcGFyZVN0cmljdEVxQ29uc3RhbnQoKQpAQCAtMzg1MCw4ICszODc1
LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwg
IkJhZCB1c2Uga2luZCIpOwotICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IExPV0VSSU5HX0ZBSUxFRChtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKHN3aXRjaE9uSW50cywgbGFzdE5leHQpOwpAQCAtMzg5Niw4ICszOTIxLDggQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCB1
c2Uga2luZCIpOwotICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIExPV0VS
SU5HX0ZBSUxFRChtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIExCYXNpY0Jsb2Nr
IGxlbmd0aElzMSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiU3dpdGNoL1N3aXRjaENoYXIgbGVu
Z3RoIGlzIDEiKSk7CkBAIC0zOTQ5LDcgKzM5NzQsNyBAQCBwcml2YXRlOgogICAgICAgICB9CiAg
ICAgICAgIAogICAgICAgICBjYXNlIFN3aXRjaFN0cmluZzogewotICAgICAgICAgICAgREZHX0NS
QVNIKG1fZ3JhcGgsIG1fbm9kZSwgIlVuaW1wbGVtZW50ZWQiKTsKKyAgICAgICAgICAgIExPV0VS
SU5HX0ZBSUxFRChtX25vZGUsICJVbmltcGxlbWVudGVkIik7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtMzk3Miw3ICszOTk3LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0g
ICAgICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCB1c2Uga2luZCIp
OworICAgICAgICAgICAgICAgIExPV0VSSU5HX0ZBSUxFRChtX25vZGUsICJCYWQgdXNlIGtpbmQi
KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAK
QEAgLTM5ODAsNyArNDAwNSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0gfQogICAgICAgICAKLSAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJh
ZCBzd2l0Y2gga2luZCIpOworICAgICAgICBMT1dFUklOR19GQUlMRUQobV9ub2RlLCAiQmFkIHN3
aXRjaCBraW5kIik7CiAgICAgfQogICAgIAogICAgIHZvaWQgY29tcGlsZVJldHVybigpCkBAIC00
OTUwLDcgKzQ5NzUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAgICAgICAgIAotICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIHVzZSBr
aW5kcyIpOworICAgICAgICBMT1dFUklOR19GQUlMRUQobV9ub2RlLCAiQmFkIHVzZSBraW5kcyIp
OwogICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBhcmVFcU9iamVjdE9yT3RoZXJUb09iamVjdChF
ZGdlIGxlZnRDaGlsZCwgRWRnZSByaWdodENoaWxkKQpAQCAtNTI2Myw3ICs1Mjg4LDcgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIHJldHVybiBtX291dC5waGkobV9vdXQuYm9vbGVhbiwgZmFzdFJl
c3VsdCwgc2xvd1Jlc3VsdCk7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsKKyAgICAgICAg
ICAgIExPV0VSSU5HX0ZBSUxFRChtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsKICAgICAgICAgICAg
IHJldHVybiAwOwogICAgICAgICB9CiAgICAgfQpAQCAtNTY0Miw3ICs1NjY3LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgY2FzZSBTdHJpY3RJbnQ1MjoKICAgICAgICAgICAgIHJldHVybiBJbnQ1MjsK
ICAgICAgICAgfQotICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIHVzZSBr
aW5kIik7CisgICAgICAgIExPV0VSSU5HX0ZBSUxFRChtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsK
ICAgICAgICAgcmV0dXJuIEludDUyOwogICAgIH0KICAgICAKQEAgLTU3ODYsNyArNTgxMSw3IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgICAg
IAotICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiVmFsdWUgbm90IGRlZmluZWQi
KTsKKyAgICAgICAgTE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIlZhbHVlIG5vdCBkZWZpbmVkIik7
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICAKQEAgLTYxMDEsNyArNjEyNiw4IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICBzcGVjdWxhdGVNaXNjKGVkZ2UpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9u
b2RlLCAiVW5zdXBwb3J0ZWQgc3BlY3VsYXRpb24gdXNlIGtpbmQiKTsKKyAgICAgICAgICAgIExP
V0VSSU5HX0ZBSUxFRChtX25vZGUsICJVbnN1cHBvcnRlZCBzcGVjdWxhdGlvbiB1c2Uga2luZCIp
OworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQogICAgIApAQCAtNjE2Miw3
ICs2MTg4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIAogICAgICAgICAgICAgc3dpdGNoIChh
cnJheU1vZGUuYXJyYXlDbGFzcygpKSB7CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpPcmlnaW5h
bEFycmF5OgotICAgICAgICAgICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJVbmV4
cGVjdGVkIG9yaWdpbmFsIGFycmF5Iik7CisgICAgICAgICAgICAgICAgTE9XRVJJTkdfRkFJTEVE
KG1fbm9kZSwgIlVuZXhwZWN0ZWQgb3JpZ2luYWwgYXJyYXkiKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gMDsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkFycmF5
OgpAQCAtNjE4Miw3ICs2MjA4LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgbV9v
dXQuY29uc3RJbnQ4KGFycmF5TW9kZS5zaGFwZU1hc2soKSkpOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgCi0gICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQ29ycnVw
dCBhcnJheSBjbGFzcyIpOworICAgICAgICAgICAgTE9XRVJJTkdfRkFJTEVEKG1fbm9kZSwgIkNv
cnJ1cHQgYXJyYXkgY2xhc3MiKTsKKyAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAg
ICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKQEAgLTY3MTYsNyArNjc0Myw3IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICByZXR1cm4gRXhpdFZhbHVlOjphcmd1bWVudHNPYmplY3RUaGF0V2Fz
Tm90Q3JlYXRlZCgpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBERkdfQ1JBU0gobV9n
cmFwaCwgbV9ub2RlLCAiSW52YWxpZCBmbHVzaCBmb3JtYXQiKTsKKyAgICAgICAgTE9XRVJJTkdf
RkFJTEVEKG1fbm9kZSwgIkludmFsaWQgZmx1c2ggZm9ybWF0Iik7CiAgICAgICAgIHJldHVybiBF
eGl0VmFsdWU6OmRlYWQoKTsKICAgICB9CiAgICAgCkBAIC02Nzg5LDcgKzY4MTYsNyBAQCBwcml2
YXRlOgogICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpCiAgICAgICAgICAgICByZXR1cm4gZXhp
dEFyZ3VtZW50KGFyZ3VtZW50cywgVmFsdWVGb3JtYXREb3VibGUsIHZhbHVlLnZhbHVlKCkpOwog
Ci0gICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsIHRvQ1N0cmluZygiQ2Fubm90IGZp
bmQgdmFsdWUgZm9yIG5vZGU6ICIsIG5vZGUpLmRhdGEoKSk7CisgICAgICAgIExPV0VSSU5HX0ZB
SUxFRChtX25vZGUsIHRvQ1N0cmluZygiQ2Fubm90IGZpbmQgdmFsdWUgZm9yIG5vZGU6ICIsIG5v
ZGUpLmRhdGEoKSk7CiAgICAgICAgIHJldHVybiBFeGl0VmFsdWU6OmRlYWQoKTsKICAgICB9CiAg
ICAgCkBAIC02ODQ3LDcgKzY4NzQsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAi
Q29ycnVwdCBpbnQ1MiBraW5kIik7CisgICAgICAgIExPV0VSSU5HX0ZBSUxFRChtX25vZGUsICJD
b3JydXB0IGludDUyIGtpbmQiKTsKICAgICB9CiAgICAgdm9pZCBzZXRKU1ZhbHVlKE5vZGUqIG5v
ZGUsIExWYWx1ZSB2YWx1ZSkKICAgICB7CkBAIC03MDAxLDcgKzcwMjgsMTkgQEAgcHJpdmF0ZToK
ICNlbmRpZgogICAgICAgICBtX291dC51bnJlYWNoYWJsZSgpOwogICAgIH0KLSAgICAKKworICAg
IHZvaWQgbG93ZXJpbmdGYWlsZWQoTm9kZSogbm9kZSwgY29uc3QgY2hhciogZmlsZSwgaW50IGxp
bmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBjb25zdCBjaGFyKiBhc3NlcnRpb24pCisgICAgewor
I2lmbmRlZiBOREVCVUcKKyAgICAgICAgbV9ncmFwaC5oYW5kbGVBc3NlcnRpb25GYWlsdXJlKG5v
ZGUsIGZpbGUsIGxpbmUsIGZ1bmN0aW9uLCAoYXNzZXJ0aW9uKSk7CisjZWxzZQorICAgICAgICBk
YXRhTG9nKCJGVEwgQVNTRVJUSU9OIEZBSUxFRDogIiwgYXNzZXJ0aW9uLCAiXG4iKTsKKyAgICAg
ICAgZGF0YUxvZyhmaWxlLCAiKCIsIGxpbmUsICIpIDogIiwgZnVuY3Rpb24sICJcbiIpOworICAg
ICAgICBkYXRhTG9nKCJXaGlsZSBoYW5kbGluZyBub2RlICIsIG5vZGUsICJcbiIpOworI2VuZGlm
CisgICAgICAgIG1fbG93ZXJpbmdTdWNjZWVkZWQgPSBmYWxzZTsKKyAgICB9CisKICAgICBBdmFp
bGFiaWxpdHlNYXAmIGF2YWlsYWJpbGl0eU1hcCgpIHsgcmV0dXJuIG1fYXZhaWxhYmlsaXR5Q2Fs
Y3VsYXRvci5tX2F2YWlsYWJpbGl0eTsgfQogICAgIAogICAgIFZNJiB2bSgpIHsgcmV0dXJuIG1f
Z3JhcGgubV92bTsgfQpAQCAtNzAwOSw2ICs3MDQ4LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICBH
cmFwaCYgbV9ncmFwaDsKICAgICBTdGF0ZSYgbV9mdGxTdGF0ZTsKKyAgICBib29sIG1fbG93ZXJp
bmdTdWNjZWVkZWQ7CiAgICAgQWJzdHJhY3RIZWFwUmVwb3NpdG9yeSBtX2hlYXBzOwogICAgIE91
dHB1dCBtX291dDsKICAgICAKQEAgLTcwNTYsMTIgKzcwOTYsMTQgQEAgcHJpdmF0ZToKICAgICB1
aW50MzJfdCBtX3N0YWNrbWFwSURzOwogICAgIHVuc2lnbmVkIG1fdGJhYUtpbmQ7CiAgICAgdW5z
aWduZWQgbV90YmFhU3RydWN0S2luZDsKKworI3VuZGVmIExPV0VSSU5HX0ZBSUxFRAogfTsKIAot
dm9pZCBsb3dlckRGR1RvTExWTShTdGF0ZSYgc3RhdGUpCitib29sIGxvd2VyREZHVG9MTFZNKFN0
YXRlJiBzdGF0ZSkKIHsKICAgICBMb3dlckRGR1RvTExWTSBsb3dlcmluZyhzdGF0ZSk7Ci0gICAg
bG93ZXJpbmcubG93ZXIoKTsKKyAgICByZXR1cm4gbG93ZXJpbmcubG93ZXIoKTsKIH0KIAogfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkZUTApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb3dlckRGR1RvTExWTS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0xMVk0uaAkocmV2aXNpb24gMTgwMTgzKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3
ICszMyw3IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIAotdm9pZCBsb3dl
ckRGR1RvTExWTShTdGF0ZSYpOworYm9vbCBsb3dlckRGR1RvTExWTShTdGF0ZSYpOwogCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6RlRMCiAK
</data>
<flag name="review"
          id="271723"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>