<?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>155741</bug_id>
          
          <creation_ts>2016-03-21 18:02:50 -0700</creation_ts>
          <short_desc>We should not disable inlining when the debugger is enabled</short_desc>
          <delta_ts>2016-03-23 16:23:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>155812</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>bburg</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>oliver</cc>
    
    <cc>sukolsak</cc>
    
    <cc>timothy</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1176898</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-21 18:02:50 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177082</commentid>
    <comment_count>1</comment_count>
      <attachid>274674</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-22 12:20:50 -0700</bug_when>
    <thetext>Created attachment 274674
WIP

We probably need to do something similar for stepping mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177095</commentid>
    <comment_count>2</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-22 12:40:14 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created attachment 274674 [details]
&gt; WIP
&gt; 
&gt; We probably need to do something similar for stepping mode.

Actually I don&apos;t think we do. Setting the SteppingMode seems to target
all code blocks and jettison all optimized code blocks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177262</commentid>
    <comment_count>3</comment_count>
      <attachid>274723</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-22 19:40:48 -0700</bug_when>
    <thetext>Created attachment 274723
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177320</commentid>
    <comment_count>4</comment_count>
      <attachid>274723</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-23 02:15:45 -0700</bug_when>
    <thetext>Comment on attachment 274723
patch

Clearing flags on attachment: 274723

Committed r198582: &lt;http://trac.webkit.org/changeset/198582&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177321</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-23 02:15:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177384</commentid>
    <comment_count>6</comment_count>
      <attachid>274723</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-03-23 10:29:41 -0700</bug_when>
    <thetext>Comment on attachment 274723
patch

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

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:-451
&gt; -            else if (m_hasDebuggerEnabled &amp;&amp; operand == m_codeBlock-&gt;scopeRegister())
&gt; -                flush(operand);

I think we still need to flush the scope register.

If A calls B, and both A and B are DFG-compiled, and B is not inlined, and I break in B, the debugger allows me to walk the stack and inspect A&apos;s local variables. But if the scope register is not flushed, I might crash when I try to inspect A, reading a garbage scope pointer from the stack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177391</commentid>
    <comment_count>7</comment_count>
      <attachid>274723</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-23 10:55:07 -0700</bug_when>
    <thetext>Comment on attachment 274723
patch

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

&gt; Source/JavaScriptCore/debugger/Debugger.cpp:268
&gt; +        line += 1;
&gt; +        column = column ? column + 1 : Breakpoint::unspecifiedColumn;

Would be nice to comment why these +1. It used to have a comment.

&gt; Source/JavaScriptCore/debugger/Debugger.cpp:-266
&gt; -    // Inspector breakpoint line and column values are zero-based but the executable
&gt; -    // and CodeBlock line and column values are one-based.

This was the comment it used ot have.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177433</commentid>
    <comment_count>8</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-23 13:02:01 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 274723 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=274723&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:-451
&gt; &gt; -            else if (m_hasDebuggerEnabled &amp;&amp; operand == m_codeBlock-&gt;scopeRegister())
&gt; &gt; -                flush(operand);
&gt; 
&gt; I think we still need to flush the scope register.
&gt; 
&gt; If A calls B, and both A and B are DFG-compiled, and B is not inlined, and I
&gt; break in B, the debugger allows me to walk the stack and inspect A&apos;s local
&gt; variables. But if the scope register is not flushed, I might crash when I
&gt; try to inspect A, reading a garbage scope pointer from the stack.

Good call. I will bring these changes back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177435</commentid>
    <comment_count>9</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-23 13:05:45 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 274723 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=274723&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/debugger/Debugger.cpp:268
&gt; &gt; +        line += 1;
&gt; &gt; +        column = column ? column + 1 : Breakpoint::unspecifiedColumn;
&gt; 
&gt; Would be nice to comment why these +1. It used to have a comment.
&gt; 
&gt; &gt; Source/JavaScriptCore/debugger/Debugger.cpp:-266
&gt; &gt; -    // Inspector breakpoint line and column values are zero-based but the executable
&gt; &gt; -    // and CodeBlock line and column values are one-based.
&gt; 
&gt; This was the comment it used ot have.

Nice catch. I&apos;ll add those back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177503</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-23 15:29:03 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 155812</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177526</commentid>
    <comment_count>11</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-23 16:23:22 -0700</bug_when>
    <thetext>Lets start by having a high fidelity profiling mode first. Then we can revisit this again.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274674</attachid>
            <date>2016-03-22 12:20:50 -0700</date>
            <delta_ts>2016-03-22 19:40:48 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>6348</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAkocmV2
aXNpb24gMTk4NTA2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsOSArMjMsMTEgQEAKICNpbmNsdWRlICJEZWJ1Z2dl
ci5oIgogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiREZHQ29tbW9uRGF0YS5o
IgogI2luY2x1ZGUgIkRlYnVnZ2VyQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNp
bmNsdWRlICJIZWFwSXRlcmF0aW9uU2NvcGUuaCIKKyNpbmNsdWRlICJJbmxpbmVDYWxsRnJhbWUu
aCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgpAQCAtMjQ4LDQwICsyNTAsNjYgQEAgdm9pZCBE
ZWJ1Z2dlcjo6ZGlkRXZhbHVhdGVTY3JpcHQoZG91YmxlIAogCiB2b2lkIERlYnVnZ2VyOjp0b2dn
bGVCcmVha3BvaW50KENvZGVCbG9jayogY29kZUJsb2NrLCBCcmVha3BvaW50JiBicmVha3BvaW50
LCBCcmVha3BvaW50U3RhdGUgZW5hYmxlZE9yTm90KQogewotICAgIFNjcmlwdEV4ZWN1dGFibGUq
IGV4ZWN1dGFibGUgPSBjb2RlQmxvY2stPm93bmVyU2NyaXB0RXhlY3V0YWJsZSgpOworICAgIGF1
dG8gc2hvdWxkU2V0QnJlYWtwb2ludCA9IFsmXSAoQ29kZUJsb2NrKiBjb2RlQmxvY2spIC0+IGJv
b2wgeworICAgICAgICBTY3JpcHRFeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gY29kZUJsb2NrLT5v
d25lclNjcmlwdEV4ZWN1dGFibGUoKTsKIAotICAgIFNvdXJjZUlEIHNvdXJjZUlEID0gc3RhdGlj
X2Nhc3Q8U291cmNlSUQ+KGV4ZWN1dGFibGUtPnNvdXJjZUlEKCkpOwotICAgIGlmIChicmVha3Bv
aW50LnNvdXJjZUlEICE9IHNvdXJjZUlEKQotICAgICAgICByZXR1cm47CisgICAgICAgIFNvdXJj
ZUlEIHNvdXJjZUlEID0gc3RhdGljX2Nhc3Q8U291cmNlSUQ+KGV4ZWN1dGFibGUtPnNvdXJjZUlE
KCkpOworICAgICAgICBpZiAoYnJlYWtwb2ludC5zb3VyY2VJRCAhPSBzb3VyY2VJRCkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICB1bnNpZ25lZCBsaW5lID0gYnJlYWtwb2lu
dC5saW5lOworICAgICAgICB1bnNpZ25lZCBjb2x1bW4gPSBicmVha3BvaW50LmNvbHVtbjsKKyAg
ICAgICAgCisgICAgICAgIHVuc2lnbmVkIHN0YXJ0TGluZSA9IGV4ZWN1dGFibGUtPmZpcnN0TGlu
ZSgpOworICAgICAgICB1bnNpZ25lZCBzdGFydENvbHVtbiA9IGV4ZWN1dGFibGUtPnN0YXJ0Q29s
dW1uKCk7CisgICAgICAgIHVuc2lnbmVkIGVuZExpbmUgPSBleGVjdXRhYmxlLT5sYXN0TGluZSgp
OworICAgICAgICB1bnNpZ25lZCBlbmRDb2x1bW4gPSBleGVjdXRhYmxlLT5lbmRDb2x1bW4oKTsK
KyAgICAgICAgbGluZSArPSAxOworICAgICAgICBjb2x1bW4gPSBjb2x1bW4gPyBjb2x1bW4gKyAx
IDogQnJlYWtwb2ludDo6dW5zcGVjaWZpZWRDb2x1bW47CisKKyAgICAgICAgaWYgKGxpbmUgPCBz
dGFydExpbmUgfHwgbGluZSA+IGVuZExpbmUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIGlmIChjb2x1bW4gIT0gQnJlYWtwb2ludDo6dW5zcGVjaWZpZWRDb2x1bW4pIHsKKyAg
ICAgICAgICAgIGlmIChsaW5lID09IHN0YXJ0TGluZSAmJiBjb2x1bW4gPCBzdGFydENvbHVtbikK
KyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAobGluZSA9PSBl
bmRMaW5lICYmIGNvbHVtbiA+IGVuZENvbHVtbikKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIH0KIAotICAgIHVuc2lnbmVkIGxpbmUgPSBicmVha3BvaW50LmxpbmU7Ci0g
ICAgdW5zaWduZWQgY29sdW1uID0gYnJlYWtwb2ludC5jb2x1bW47CisgICAgICAgIGlmICghY29k
ZUJsb2NrLT5oYXNPcERlYnVnRm9yTGluZUFuZENvbHVtbihsaW5lLCBjb2x1bW4pKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgdW5zaWduZWQgc3RhcnRMaW5lID0gZXhlY3V0YWJs
ZS0+Zmlyc3RMaW5lKCk7Ci0gICAgdW5zaWduZWQgc3RhcnRDb2x1bW4gPSBleGVjdXRhYmxlLT5z
dGFydENvbHVtbigpOwotICAgIHVuc2lnbmVkIGVuZExpbmUgPSBleGVjdXRhYmxlLT5sYXN0TGlu
ZSgpOwotICAgIHVuc2lnbmVkIGVuZENvbHVtbiA9IGV4ZWN1dGFibGUtPmVuZENvbHVtbigpOwot
Ci0gICAgLy8gSW5zcGVjdG9yIGJyZWFrcG9pbnQgbGluZSBhbmQgY29sdW1uIHZhbHVlcyBhcmUg
emVyby1iYXNlZCBidXQgdGhlIGV4ZWN1dGFibGUKLSAgICAvLyBhbmQgQ29kZUJsb2NrIGxpbmUg
YW5kIGNvbHVtbiB2YWx1ZXMgYXJlIG9uZS1iYXNlZC4KLSAgICBsaW5lICs9IDE7Ci0gICAgY29s
dW1uID0gY29sdW1uID8gY29sdW1uICsgMSA6IEJyZWFrcG9pbnQ6OnVuc3BlY2lmaWVkQ29sdW1u
OworICAgICAgICBkYXRhTG9nKCJNYXRjaGVkIGNvZGVibG9jazogIiwgY29kZUJsb2NrLT5pbmZl
cnJlZE5hbWUoKSwgIlxuIik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH07CisKKyAgICBp
ZiAoc2hvdWxkU2V0QnJlYWtwb2ludChjb2RlQmxvY2spKSB7CisgICAgICAgIGlmIChlbmFibGVk
T3JOb3QgPT0gQnJlYWtwb2ludEVuYWJsZWQpCisgICAgICAgICAgICBjb2RlQmxvY2stPmFkZEJy
ZWFrcG9pbnQoMSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvZGVCbG9jay0+cmVtb3Zl
QnJlYWtwb2ludCgxKTsKIAotICAgIGlmIChsaW5lIDwgc3RhcnRMaW5lIHx8IGxpbmUgPiBlbmRM
aW5lKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKGNvbHVtbiAhPSBCcmVha3BvaW50Ojp1bnNw
ZWNpZmllZENvbHVtbikgewotICAgICAgICBpZiAobGluZSA9PSBzdGFydExpbmUgJiYgY29sdW1u
IDwgc3RhcnRDb2x1bW4pCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChsaW5lID09
IGVuZExpbmUgJiYgY29sdW1uID4gZW5kQ29sdW1uKQotICAgICAgICAgICAgcmV0dXJuOwotICAg
IH0KLSAgICBpZiAoIWNvZGVCbG9jay0+aGFzT3BEZWJ1Z0ZvckxpbmVBbmRDb2x1bW4obGluZSwg
Y29sdW1uKSkKICAgICAgICAgcmV0dXJuOworICAgIH0gCiAKLSAgICBpZiAoZW5hYmxlZE9yTm90
ID09IEJyZWFrcG9pbnRFbmFibGVkKQotICAgICAgICBjb2RlQmxvY2stPmFkZEJyZWFrcG9pbnQo
MSk7Ci0gICAgZWxzZQotICAgICAgICBjb2RlQmxvY2stPnJlbW92ZUJyZWFrcG9pbnQoMSk7Cisg
ICAgLy8gU2VlIGlmIGFueSBpbmxpbmVlcyBtYXRjaC4KKyNpZiBFTkFCTEUoREZHX0pJVCkKKyAg
ICBpZiAoZW5hYmxlZE9yTm90ICE9IEJyZWFrcG9pbnRFbmFibGVkKQorICAgICAgICByZXR1cm47
CisgICAgaWYgKCFKSVRDb2RlOjppc09wdGltaXppbmdKSVQoY29kZUJsb2NrLT5qaXRUeXBlKCkp
KQorICAgICAgICByZXR1cm47CisgICAgSW5saW5lQ2FsbEZyYW1lU2V0KiBzZXQgPSBjb2RlQmxv
Y2stPmppdENvZGUoKS0+ZGZnQ29tbW9uKCktPmlubGluZUNhbGxGcmFtZXMuZ2V0KCk7CisgICAg
aWYgKCFzZXQpCisgICAgICAgIHJldHVybjsKKyAgICBmb3IgKElubGluZUNhbGxGcmFtZSogaW5s
aW5lRnJhbWUgOiAqc2V0KSB7CisgICAgICAgIGlmIChzaG91bGRTZXRCcmVha3BvaW50KGlubGlu
ZUZyYW1lLT5iYXNlbGluZUNvZGVCbG9jay5nZXQoKSkpIHsKKyAgICAgICAgICAgIGRhdGFMb2co
IkpldHRpc29uaW5nIHBhcmVudCBjb2RlIGJsb2NrIGJlY2F1c2Ugb2YgaW5saW5lZVxuIik7Cisg
ICAgICAgICAgICBkYXRhTG9nKCJQYXJlbnQ6ICIsIGNvZGVCbG9jay0+aW5mZXJyZWROYW1lKCks
ICIgSW5saW5lZTogIiwgaW5saW5lRnJhbWUtPmJhc2VsaW5lQ29kZUJsb2NrLT5pbmZlcnJlZE5h
bWUoKSwgIlxuIik7CisgICAgICAgICAgICBjb2RlQmxvY2stPmpldHRpc29uKFByb2ZpbGVyOjpK
ZXR0aXNvbkR1ZVRvRGVidWdnZXJCcmVha3BvaW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgRGVidWdnZXI6OmFwcGx5QnJlYWtwb2lu
dHMoQ29kZUJsb2NrKiBjb2RlQmxvY2spCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTk4NTA2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ0Nyw4ICs0NDcsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgQXJndW1lbnRQb3NpdGlv
biogYXJndW1lbnRQb3NpdGlvbiA9IGZpbmRBcmd1bWVudFBvc2l0aW9uRm9yTG9jYWwob3BlcmFu
ZCk7CiAgICAgICAgICAgICBpZiAoYXJndW1lbnRQb3NpdGlvbikKICAgICAgICAgICAgICAgICBm
bHVzaERpcmVjdChvcGVyYW5kLCBhcmd1bWVudFBvc2l0aW9uKTsKLSAgICAgICAgICAgIGVsc2Ug
aWYgKG1faGFzRGVidWdnZXJFbmFibGVkICYmIG9wZXJhbmQgPT0gbV9jb2RlQmxvY2stPnNjb3Bl
UmVnaXN0ZXIoKSkKLSAgICAgICAgICAgICAgICBmbHVzaChvcGVyYW5kKTsKKyAgICAgICAgICAg
IC8vZWxzZSBpZiAobV9oYXNEZWJ1Z2dlckVuYWJsZWQgJiYgb3BlcmFuZCA9PSBtX2NvZGVCbG9j
ay0+c2NvcGVSZWdpc3RlcigpKQorICAgICAgICAgICAgLy8gICAgZmx1c2gob3BlcmFuZCk7CiAg
ICAgICAgIH0KIAogICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlQWNjZXNzRGF0
YSA9IG5ld1ZhcmlhYmxlQWNjZXNzRGF0YShvcGVyYW5kKTsKQEAgLTU5Niw4ICs1OTYsOCBAQCBw
cml2YXRlOgogICAgICAgICAgICAgbnVtQXJndW1lbnRzID0gaW5saW5lU3RhY2tFbnRyeS0+bV9j
b2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBhcmd1bWVu
dCA9IG51bUFyZ3VtZW50czsgYXJndW1lbnQtLSA+IDE7KQogICAgICAgICAgICAgZmx1c2hEaXJl
Y3QoaW5saW5lU3RhY2tFbnRyeS0+cmVtYXBPcGVyYW5kKHZpcnR1YWxSZWdpc3RlckZvckFyZ3Vt
ZW50KGFyZ3VtZW50KSkpOwotICAgICAgICBpZiAobV9oYXNEZWJ1Z2dlckVuYWJsZWQpCi0gICAg
ICAgICAgICBmbHVzaChtX2NvZGVCbG9jay0+c2NvcGVSZWdpc3RlcigpKTsKKyAgICAgICAgLy9p
ZiAobV9oYXNEZWJ1Z2dlckVuYWJsZWQpCisgICAgICAgIC8vICAgIGZsdXNoKG1fY29kZUJsb2Nr
LT5zY29wZVJlZ2lzdGVyKCkpOwogICAgIH0KIAogICAgIHZvaWQgZmx1c2hGb3JUZXJtaW5hbCgp
CkBAIC0xMjk0LDExICsxMjk0LDExIEBAIHVuc2lnbmVkIEJ5dGVDb2RlUGFyc2VyOjppbmxpbmlu
Z0Nvc3QoQ2EKICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgZGF0YUxvZygiQ29uc2lkZXJpbmcg
aW5saW5pbmcgIiwgY2FsbGVlLCAiIGludG8gIiwgY3VycmVudENvZGVPcmlnaW4oKSwgIlxuIik7
CiAgICAgCi0gICAgaWYgKG1faGFzRGVidWdnZXJFbmFibGVkKSB7Ci0gICAgICAgIGlmICh2ZXJi
b3NlKQotICAgICAgICAgICAgZGF0YUxvZygiICAgIEZhaWxpbmcgYmVjYXVzZSB0aGUgZGVidWdn
ZXIgaXMgaW4gdXNlLlxuIik7Ci0gICAgICAgIHJldHVybiBVSU5UX01BWDsKLSAgICB9CisgICAg
Ly9pZiAobV9oYXNEZWJ1Z2dlckVuYWJsZWQpIHsKKyAgICAvLyAgICBpZiAodmVyYm9zZSkKKyAg
ICAvLyAgICAgICAgZGF0YUxvZygiICAgIEZhaWxpbmcgYmVjYXVzZSB0aGUgZGVidWdnZXIgaXMg
aW4gdXNlLlxuIik7CisgICAgLy8gICAgcmV0dXJuIFVJTlRfTUFYOworICAgIC8vfQogCiAgICAg
RnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gY2FsbGVlLmZ1bmN0aW9uRXhlY3V0YWJs
ZSgpOwogICAgIGlmICghZXhlY3V0YWJsZSkgewpAQCAtMzUxOCw3ICszNTE4LDcgQEAgYm9vbCBC
eXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogICAgICAgICAvLyA9PT0gTWlzYyBv
cGVyYXRpb25zID09PQogCiAgICAgICAgIGNhc2Ugb3BfZGVidWc6Ci0gICAgICAgICAgICBhZGRU
b0dyYXBoKEJyZWFrcG9pbnQpOworICAgICAgICAgICAgLy9hZGRUb0dyYXBoKEJyZWFrcG9pbnQp
OwogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfZGVidWcpOwogCiAgICAgICAgIGNhc2Ugb3Bf
cHJvZmlsZV93aWxsX2NhbGw6IHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274723</attachid>
            <date>2016-03-22 19:40:48 -0700</date>
            <delta_ts>2016-03-23 02:15:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>14896</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk4NTczKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDE2LTAzLTIyICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFdlIHNob3VsZCBub3QgZGlzYWJsZSBpbmxpbmluZyB3aGVuIHRoZSBkZWJ1Z2dlciBpcyBlbmFi
bGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU3
NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBj
YW4gZW5hYmxlIGlubGluaW5nIHdoZW4gdGhlIGRlYnVnZ2VyIGlzIGVuYWJsZWQgYXMgbG9uZwor
ICAgICAgICBhcyB3ZSBtYWtlIHN1cmUgd2Ugc3RpbGwgamV0dGlzb24gdGhlIHByb3BlciBDb2Rl
QmxvY2tzIHdoZW4KKyAgICAgICAgYSBicmVha3BvaW50IGlzIHNldC4gVGhpcyBtZWFucyB0aGF0
IGZvciBhbnkgb3B0aW1pemVkIENvZGVCbG9jaywKKyAgICAgICAgd2UgbXVzdCBhc2sgaWYgYW55
IG9mIGl0cyBpbmxpbmVlcyBjb250YWluIHRoZSBicmVha3BvaW50IHRoYXQKKyAgICAgICAgaXMg
YmVpbmcgc2V0LiBJZiBhbnkgaW5saW5lZXMgZG8gY29udGFpbiB0aGUgYnJlYWtwb2ludCwgd2Ug
bXVzdAorICAgICAgICBqZXR0aXNvbiB0aGUgbWFjaGluZSBjb2RlIGJsb2NrIHRoYXQgdGhleSBh
cmUgYSBwYXJ0IG9mLgorCisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuY3BwOgorICAgICAg
ICAoSlNDOjpEZWJ1Z2dlcjo6dG9nZ2xlQnJlYWtwb2ludCk6CisgICAgICAgIChKU0M6OkRlYnVn
Z2VyOjphcHBseUJyZWFrcG9pbnRzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpCeXRlQ29kZVBhcnNlcik6
CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnNldExvY2FsKToKKyAgICAgICAg
KEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6Zmx1c2gpOgorICAgICAgICAoSlNDOjpERkc6OkJ5
dGVDb2RlUGFyc2VyOjpmbHVzaEZvclRlcm1pbmFsKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRl
Q29kZVBhcnNlcjo6aW5saW5pbmdDb3N0KToKKyAgICAgICAgKiBkZmcvREZHR3JhcGguY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjpHcmFwaCk6CisgICAgICAgIChKU0M6OkRGRzo6R3Jh
cGg6On5HcmFwaCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmg6CisgICAgICAgIChKU0M6OkRG
Rzo6R3JhcGg6Omhhc0RlYnVnZ2VyRW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RG
R1N0YWNrTGF5b3V0UGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlN0YWNrTGF5b3V0UGhh
c2U6OnJ1bik6CisgICAgICAgICogZnRsL0ZUTENvbXBpbGUuY3BwOgorICAgICAgICAoSlNDOjpG
VEw6OmNvbXBpbGUpOgorCiAyMDE2LTAzLTIyICBDYWl0bGluIFBvdHRlciAgPGNhaXRwQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0pTQ10gY29ycmVjdGx5IGhhbmRsZSBpbmRleGVkIHByb3BlcnRp
ZXMgaW4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAkocmV2aXNpb24gMTk4NTcyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjMsOSArMjMsMTEgQEAKICNpbmNsdWRlICJEZWJ1Z2dlci5oIgogCiAjaW5jbHVkZSAi
Q29kZUJsb2NrLmgiCisjaW5jbHVkZSAiREZHQ29tbW9uRGF0YS5oIgogI2luY2x1ZGUgIkRlYnVn
Z2VyQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJIZWFwSXRlcmF0
aW9uU2NvcGUuaCIKKyNpbmNsdWRlICJJbmxpbmVDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJJbnRl
cnByZXRlci5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNG
dW5jdGlvbi5oIgpAQCAtMjQ4LDQwICsyNTAsNjQgQEAgdm9pZCBEZWJ1Z2dlcjo6ZGlkRXZhbHVh
dGVTY3JpcHQoZG91YmxlIAogCiB2b2lkIERlYnVnZ2VyOjp0b2dnbGVCcmVha3BvaW50KENvZGVC
bG9jayogY29kZUJsb2NrLCBCcmVha3BvaW50JiBicmVha3BvaW50LCBCcmVha3BvaW50U3RhdGUg
ZW5hYmxlZE9yTm90KQogewotICAgIFNjcmlwdEV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBjb2Rl
QmxvY2stPm93bmVyU2NyaXB0RXhlY3V0YWJsZSgpOworICAgIGF1dG8gaXNCcmVha3BvaW50SW5D
b2RlQmxvY2sgPSBbJl0gKENvZGVCbG9jayogY29kZUJsb2NrKSAtPiBib29sIHsKKyAgICAgICAg
U2NyaXB0RXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IGNvZGVCbG9jay0+b3duZXJTY3JpcHRFeGVj
dXRhYmxlKCk7CiAKLSAgICBTb3VyY2VJRCBzb3VyY2VJRCA9IHN0YXRpY19jYXN0PFNvdXJjZUlE
PihleGVjdXRhYmxlLT5zb3VyY2VJRCgpKTsKLSAgICBpZiAoYnJlYWtwb2ludC5zb3VyY2VJRCAh
PSBzb3VyY2VJRCkKLSAgICAgICAgcmV0dXJuOworICAgICAgICBTb3VyY2VJRCBzb3VyY2VJRCA9
IHN0YXRpY19jYXN0PFNvdXJjZUlEPihleGVjdXRhYmxlLT5zb3VyY2VJRCgpKTsKKyAgICAgICAg
aWYgKGJyZWFrcG9pbnQuc291cmNlSUQgIT0gc291cmNlSUQpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAgICAgdW5zaWduZWQgbGluZSA9IGJyZWFrcG9pbnQubGluZTsKKyAgICAg
ICAgdW5zaWduZWQgY29sdW1uID0gYnJlYWtwb2ludC5jb2x1bW47CisgICAgICAgIAorICAgICAg
ICB1bnNpZ25lZCBzdGFydExpbmUgPSBleGVjdXRhYmxlLT5maXJzdExpbmUoKTsKKyAgICAgICAg
dW5zaWduZWQgc3RhcnRDb2x1bW4gPSBleGVjdXRhYmxlLT5zdGFydENvbHVtbigpOworICAgICAg
ICB1bnNpZ25lZCBlbmRMaW5lID0gZXhlY3V0YWJsZS0+bGFzdExpbmUoKTsKKyAgICAgICAgdW5z
aWduZWQgZW5kQ29sdW1uID0gZXhlY3V0YWJsZS0+ZW5kQ29sdW1uKCk7CisgICAgICAgIGxpbmUg
Kz0gMTsKKyAgICAgICAgY29sdW1uID0gY29sdW1uID8gY29sdW1uICsgMSA6IEJyZWFrcG9pbnQ6
OnVuc3BlY2lmaWVkQ29sdW1uOworCisgICAgICAgIGlmIChsaW5lIDwgc3RhcnRMaW5lIHx8IGxp
bmUgPiBlbmRMaW5lKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoY29s
dW1uICE9IEJyZWFrcG9pbnQ6OnVuc3BlY2lmaWVkQ29sdW1uKSB7CisgICAgICAgICAgICBpZiAo
bGluZSA9PSBzdGFydExpbmUgJiYgY29sdW1uIDwgc3RhcnRDb2x1bW4pCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKGxpbmUgPT0gZW5kTGluZSAmJiBjb2x1
bW4gPiBlbmRDb2x1bW4pCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9
CiAKLSAgICB1bnNpZ25lZCBsaW5lID0gYnJlYWtwb2ludC5saW5lOwotICAgIHVuc2lnbmVkIGNv
bHVtbiA9IGJyZWFrcG9pbnQuY29sdW1uOworICAgICAgICBpZiAoIWNvZGVCbG9jay0+aGFzT3BE
ZWJ1Z0ZvckxpbmVBbmRDb2x1bW4obGluZSwgY29sdW1uKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIHVuc2lnbmVkIHN0YXJ0TGluZSA9IGV4ZWN1dGFibGUtPmZpcnN0TGluZSgp
OwotICAgIHVuc2lnbmVkIHN0YXJ0Q29sdW1uID0gZXhlY3V0YWJsZS0+c3RhcnRDb2x1bW4oKTsK
LSAgICB1bnNpZ25lZCBlbmRMaW5lID0gZXhlY3V0YWJsZS0+bGFzdExpbmUoKTsKLSAgICB1bnNp
Z25lZCBlbmRDb2x1bW4gPSBleGVjdXRhYmxlLT5lbmRDb2x1bW4oKTsKLQotICAgIC8vIEluc3Bl
Y3RvciBicmVha3BvaW50IGxpbmUgYW5kIGNvbHVtbiB2YWx1ZXMgYXJlIHplcm8tYmFzZWQgYnV0
IHRoZSBleGVjdXRhYmxlCi0gICAgLy8gYW5kIENvZGVCbG9jayBsaW5lIGFuZCBjb2x1bW4gdmFs
dWVzIGFyZSBvbmUtYmFzZWQuCi0gICAgbGluZSArPSAxOwotICAgIGNvbHVtbiA9IGNvbHVtbiA/
IGNvbHVtbiArIDEgOiBCcmVha3BvaW50Ojp1bnNwZWNpZmllZENvbHVtbjsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfTsKIAotICAgIGlmIChsaW5lIDwgc3RhcnRMaW5lIHx8IGxpbmUgPiBl
bmRMaW5lKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKGNvbHVtbiAhPSBCcmVha3BvaW50Ojp1
bnNwZWNpZmllZENvbHVtbikgewotICAgICAgICBpZiAobGluZSA9PSBzdGFydExpbmUgJiYgY29s
dW1uIDwgc3RhcnRDb2x1bW4pCisgICAgaWYgKGlzQnJlYWtwb2ludEluQ29kZUJsb2NrKGNvZGVC
bG9jaykpIHsKKyAgICAgICAgaWYgKGVuYWJsZWRPck5vdCA9PSBCcmVha3BvaW50RW5hYmxlZCkK
KyAgICAgICAgICAgIGNvZGVCbG9jay0+YWRkQnJlYWtwb2ludCgxKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgY29kZUJsb2NrLT5yZW1vdmVCcmVha3BvaW50KDEpOworCisgICAgICAgIHJl
dHVybjsKKyAgICB9IAorCisjaWYgRU5BQkxFKERGR19KSVQpCisgICAgaWYgKGVuYWJsZWRPck5v
dCA9PSBCcmVha3BvaW50RW5hYmxlZCkgeworICAgICAgICAvLyBTZWUgaWYgYW55IG9mIG91ciBp
bmxpbmVlcyBjb250YWluIHRoZSBicmVha3BvaW50LiBXZSBvbmx5IGNhcmUgYWJvdXQgdGhpcwor
ICAgICAgICAvLyB3aGVuIHdlIHNldCBhIGJyZWFrcG9pbnQuCisgICAgICAgIGlmICghSklUQ29k
ZTo6aXNPcHRpbWl6aW5nSklUKGNvZGVCbG9jay0+aml0VHlwZSgpKSkKICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgaWYgKGxpbmUgPT0gZW5kTGluZSAmJiBjb2x1bW4gPiBlbmRDb2x1bW4p
CisgICAgICAgIElubGluZUNhbGxGcmFtZVNldCogaW5saW5lQ2FsbEZyYW1lU2V0ID0gY29kZUJs
b2NrLT5qaXRDb2RlKCktPmRmZ0NvbW1vbigpLT5pbmxpbmVDYWxsRnJhbWVzLmdldCgpOworICAg
ICAgICBpZiAoIWlubGluZUNhbGxGcmFtZVNldCkKICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgZm9yIChJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA6ICppbmxpbmVDYWxsRnJh
bWVTZXQpIHsKKyAgICAgICAgICAgIGlmIChpc0JyZWFrcG9pbnRJbkNvZGVCbG9jayhpbmxpbmVD
YWxsRnJhbWUtPmJhc2VsaW5lQ29kZUJsb2NrLmdldCgpKSkgeworICAgICAgICAgICAgICAgIGNv
ZGVCbG9jay0+amV0dGlzb24oUHJvZmlsZXI6OkpldHRpc29uRHVlVG9EZWJ1Z2dlckJyZWFrcG9p
bnQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CiAg
ICAgfQotICAgIGlmICghY29kZUJsb2NrLT5oYXNPcERlYnVnRm9yTGluZUFuZENvbHVtbihsaW5l
LCBjb2x1bW4pKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoZW5hYmxlZE9yTm90ID09IEJy
ZWFrcG9pbnRFbmFibGVkKQotICAgICAgICBjb2RlQmxvY2stPmFkZEJyZWFrcG9pbnQoMSk7Ci0g
ICAgZWxzZQotICAgICAgICBjb2RlQmxvY2stPnJlbW92ZUJyZWFrcG9pbnQoMSk7CisjZW5kaWYg
Ly8gRU5BQkxFKERGR19KSVQpCiB9CiAKIHZvaWQgRGVidWdnZXI6OmFwcGx5QnJlYWtwb2ludHMo
Q29kZUJsb2NrKiBjb2RlQmxvY2spCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTk4NTcyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE1MCw3ICsxNTAsNiBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9udW1QYXNzZWRWYXJBcmdzKDAp
CiAgICAgICAgICwgbV9pbmxpbmVTdGFja1RvcCgwKQogICAgICAgICAsIG1fY3VycmVudEluc3Ry
dWN0aW9uKDApCi0gICAgICAgICwgbV9oYXNEZWJ1Z2dlckVuYWJsZWQoZ3JhcGguaGFzRGVidWdn
ZXJFbmFibGVkKCkpCiAgICAgewogICAgICAgICBBU1NFUlQobV9wcm9maWxlZEJsb2NrKTsKICAg
ICB9CkBAIC00NDcsOCArNDQ2LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIEFyZ3VtZW50UG9z
aXRpb24qIGFyZ3VtZW50UG9zaXRpb24gPSBmaW5kQXJndW1lbnRQb3NpdGlvbkZvckxvY2FsKG9w
ZXJhbmQpOwogICAgICAgICAgICAgaWYgKGFyZ3VtZW50UG9zaXRpb24pCiAgICAgICAgICAgICAg
ICAgZmx1c2hEaXJlY3Qob3BlcmFuZCwgYXJndW1lbnRQb3NpdGlvbik7Ci0gICAgICAgICAgICBl
bHNlIGlmIChtX2hhc0RlYnVnZ2VyRW5hYmxlZCAmJiBvcGVyYW5kID09IG1fY29kZUJsb2NrLT5z
Y29wZVJlZ2lzdGVyKCkpCi0gICAgICAgICAgICAgICAgZmx1c2gob3BlcmFuZCk7CiAgICAgICAg
IH0KIAogICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlQWNjZXNzRGF0YSA9IG5l
d1ZhcmlhYmxlQWNjZXNzRGF0YShvcGVyYW5kKTsKQEAgLTU4Niw3ICs1ODMsNiBAQCBwcml2YXRl
OgogICAgIHsKICAgICAgICAgaW50IG51bUFyZ3VtZW50czsKICAgICAgICAgaWYgKElubGluZUNh
bGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lID0gaW5saW5lU3RhY2tFbnRyeS0+bV9pbmxpbmVDYWxs
RnJhbWUpIHsKLSAgICAgICAgICAgIEFTU0VSVCghbV9oYXNEZWJ1Z2dlckVuYWJsZWQpOwogICAg
ICAgICAgICAgbnVtQXJndW1lbnRzID0gaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHMuc2l6ZSgp
OwogICAgICAgICAgICAgaWYgKGlubGluZUNhbGxGcmFtZS0+aXNDbG9zdXJlQ2FsbCkKICAgICAg
ICAgICAgICAgICBmbHVzaERpcmVjdChpbmxpbmVTdGFja0VudHJ5LT5yZW1hcE9wZXJhbmQoVmly
dHVhbFJlZ2lzdGVyKEpTU3RhY2s6OkNhbGxlZSkpKTsKQEAgLTU5Niw4ICs1OTIsNiBAQCBwcml2
YXRlOgogICAgICAgICAgICAgbnVtQXJndW1lbnRzID0gaW5saW5lU3RhY2tFbnRyeS0+bV9jb2Rl
QmxvY2stPm51bVBhcmFtZXRlcnMoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBhcmd1bWVudCA9
IG51bUFyZ3VtZW50czsgYXJndW1lbnQtLSA+IDE7KQogICAgICAgICAgICAgZmx1c2hEaXJlY3Qo
aW5saW5lU3RhY2tFbnRyeS0+cmVtYXBPcGVyYW5kKHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50
KGFyZ3VtZW50KSkpOwotICAgICAgICBpZiAobV9oYXNEZWJ1Z2dlckVuYWJsZWQpCi0gICAgICAg
ICAgICBmbHVzaChtX2NvZGVCbG9jay0+c2NvcGVSZWdpc3RlcigpKTsKICAgICB9CiAKICAgICB2
b2lkIGZsdXNoRm9yVGVybWluYWwoKQpAQCAtMTEyMSw3ICsxMTE1LDYgQEAgcHJpdmF0ZToKICAg
ICBTdHViSW5mb01hcCBtX2RmZ1N0dWJJbmZvczsKICAgICAKICAgICBJbnN0cnVjdGlvbiogbV9j
dXJyZW50SW5zdHJ1Y3Rpb247Ci0gICAgYm9vbCBtX2hhc0RlYnVnZ2VyRW5hYmxlZDsKIH07CiAK
ICNkZWZpbmUgTkVYVF9PUENPREUobmFtZSkgXApAQCAtMTI5NCwxMiArMTI4Nyw2IEBAIHVuc2ln
bmVkIEJ5dGVDb2RlUGFyc2VyOjppbmxpbmluZ0Nvc3QoQ2EKICAgICBpZiAodmVyYm9zZSkKICAg
ICAgICAgZGF0YUxvZygiQ29uc2lkZXJpbmcgaW5saW5pbmcgIiwgY2FsbGVlLCAiIGludG8gIiwg
Y3VycmVudENvZGVPcmlnaW4oKSwgIlxuIik7CiAgICAgCi0gICAgaWYgKG1faGFzRGVidWdnZXJF
bmFibGVkKSB7Ci0gICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgZGF0YUxvZygiICAg
IEZhaWxpbmcgYmVjYXVzZSB0aGUgZGVidWdnZXIgaXMgaW4gdXNlLlxuIik7Ci0gICAgICAgIHJl
dHVybiBVSU5UX01BWDsKLSAgICB9Ci0KICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFi
bGUgPSBjYWxsZWUuZnVuY3Rpb25FeGVjdXRhYmxlKCk7CiAgICAgaWYgKCFleGVjdXRhYmxlKSB7
CiAgICAgICAgIGlmICh2ZXJib3NlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdH
cmFwaC5jcHAJKHJldmlzaW9uIDE5ODU3MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw5ICs3Nyw2IEBAIEdyYXBoOjpHcmFw
aChWTSYgdm0sIFBsYW4mIHBsYW4sIExvbmdMaXYKICAgICAsIG1fcmVmQ291bnRTdGF0ZShFdmVy
eXRoaW5nSXNMaXZlKQogewogICAgIEFTU0VSVChtX3Byb2ZpbGVkQmxvY2spOwotICAgIAotICAg
IG1faGFzRGVidWdnZXJFbmFibGVkID0gbV9wcm9maWxlZEJsb2NrLT5nbG9iYWxPYmplY3QoKS0+
aGFzRGVidWdnZXIoKQotICAgICAgICB8fCBPcHRpb25zOjpmb3JjZURlYnVnZ2VyQnl0ZWNvZGVH
ZW5lcmF0aW9uKCk7CiB9CiAKIEdyYXBoOjp+R3JhcGgoKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdHcmFwaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHR3JhcGguaAkocmV2aXNpb24gMTk4NTcyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHcmFwaC5oCSh3b3JraW5nIGNvcHkpCkBAIC03OTcsOCArNzk3LDYgQEAgcHVi
bGljOgogICAgICAgICBCYXNpY0Jsb2NrKiwgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNv
bnN0IGNoYXIqIGZ1bmN0aW9uLAogICAgICAgICBjb25zdCBjaGFyKiBhc3NlcnRpb24pOwogCi0g
ICAgYm9vbCBoYXNEZWJ1Z2dlckVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2hhc0RlYnVnZ2Vy
RW5hYmxlZDsgfQotCiAgICAgdm9pZCBlbnN1cmVEb21pbmF0b3JzKCk7CiAgICAgdm9pZCBlbnN1
cmVQcmVQb3N0TnVtYmVyaW5nKCk7CiAgICAgdm9pZCBlbnN1cmVOYXR1cmFsTG9vcHMoKTsKQEAg
LTg5Niw3ICs4OTQsNiBAQCBwdWJsaWM6CiAgICAgVW5pZmljYXRpb25TdGF0ZSBtX3VuaWZpY2F0
aW9uU3RhdGU7CiAgICAgUGxhblN0YWdlIG1fcGxhblN0YWdlIHsgUGxhblN0YWdlOjpJbml0aWFs
IH07CiAgICAgUmVmQ291bnRTdGF0ZSBtX3JlZkNvdW50U3RhdGU7Ci0gICAgYm9vbCBtX2hhc0Rl
YnVnZ2VyRW5hYmxlZDsKICAgICBib29sIG1faGFzRXhjZXB0aW9uSGFuZGxlcnMgeyBmYWxzZSB9
OwogcHJpdmF0ZToKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdGFja0xh
eW91dFBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1N0YWNrTGF5b3V0UGhhc2UuY3BwCShyZXZpc2lvbiAxOTg1NzIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1N0YWNrTGF5b3V0UGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NzMsMTAgKzE3Myw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGRhdGEtPm1hY2hpbmVMb2NhbCA9
IGFzc2lnbihhbGxvY2F0aW9uLCBkYXRhLT5sb2NhbCk7CiAgICAgICAgIH0KICAgICAgICAgCi0g
ICAgICAgIGlmIChMSUtFTFkoIW1fZ3JhcGguaGFzRGVidWdnZXJFbmFibGVkKCkpKQotICAgICAg
ICAgICAgY29kZUJsb2NrKCktPnNldFNjb3BlUmVnaXN0ZXIoVmlydHVhbFJlZ2lzdGVyKCkpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb2RlQmxvY2soKS0+c2V0U2NvcGVSZWdpc3Rlcihh
c3NpZ24oYWxsb2NhdGlvbiwgY29kZUJsb2NrKCktPnNjb3BlUmVnaXN0ZXIoKSkpOworICAgICAg
ICBjb2RlQmxvY2soKS0+c2V0U2NvcGVSZWdpc3RlcihWaXJ0dWFsUmVnaXN0ZXIoKSk7CiAKICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9ncmFwaC5tX2lubGluZVZhcmlhYmxlRGF0YS5zaXpl
KCk7IGktLTspIHsKICAgICAgICAgICAgIElubGluZVZhcmlhYmxlRGF0YSBkYXRhID0gbV9ncmFw
aC5tX2lubGluZVZhcmlhYmxlRGF0YVtpXTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQ29tcGlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDb21waWxlLmNwcAkocmV2aXNpb24gMTk4NTcyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExDb21waWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDkgKzEwMiw2IEBA
IHZvaWQgY29tcGlsZShTdGF0ZSYgc3RhdGUsIFNhZmVwb2ludDo6UmUKICAgICAgICAgICAgIGlu
bGluZUNhbGxGcmFtZS0+Y2FsbGVlUmVjb3ZlcnkgPQogICAgICAgICAgICAgICAgIGlubGluZUNh
bGxGcmFtZS0+Y2FsbGVlUmVjb3Zlcnkud2l0aExvY2Fsc09mZnNldChsb2NhbHNPZmZzZXQpOwog
ICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGdyYXBoLmhhc0RlYnVnZ2VyRW5hYmxlZCgpKQotICAg
ICAgICAgICAgY29kZUJsb2NrLT5zZXRTY29wZVJlZ2lzdGVyKGNvZGVCbG9jay0+c2NvcGVSZWdp
c3RlcigpICsgbG9jYWxzT2Zmc2V0KTsKICAgICB9CiAgICAgZm9yIChPU1JFeGl0RGVzY3JpcHRv
ciYgZGVzY3JpcHRvciA6IHN0YXRlLmppdENvZGUtPm9zckV4aXREZXNjcmlwdG9ycykgewogICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSBkZXNjcmlwdG9yLm1fdmFsdWVzLnNpemUoKTsgaS0tOykK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE5ODU3MikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE2LTAzLTIyICBTYWFtIGJhcmF0aSAgPHNi
YXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFdlIHNob3VsZCBub3QgZGlzYWJsZSBpbmxpbmlu
ZyB3aGVuIHRoZSBkZWJ1Z2dlciBpcyBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU3NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LXdp
dGgtaW5saW5pbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWtwb2ludC13aXRoLWlubGluaW5nLmh0bWw6IEFkZGVkLgorCiAyMDE2LTAzLTIy
ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgUG9z
dC1yZXZpZXcgdGVzdCB1cGRhdGUgYWZ0ZXIgcjE5ODU2MApJbmRleDogTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtd2l0aC1pbmxpbmluZy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtd2l0
aC1pbmxpbmluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC13aXRoLWlubGluaW5nLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDcgQEAKK0RlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGlu
ZTpjb2x1bW4gaW4gPHNjcmlwdD4KKworRm91bmQgPHNjcmlwdD4KK1J1bm5pbmcgdGVzdElubGlu
aW5nKCkgd2l0aG91dCBhIGJyZWFrcG9pbnQgdG8gZ2V0IGl0IERGRyBvciBGVEwgY29tcGlsZWQg
d2l0aCBmb28oKSBpbmxpbmVkLgorUnVubmluZyB0ZXN0SW5saW5pbmcoKSBhZ2FpbiB3aXRoIGEg
YnJlYWtwb2ludCBzZXQgYXQgZm9vKCkuCitXZSBwYXVzZWQgYWxsIDEwIHRpbWVzIGFzIGV4cGVj
dGVkIQorCkluZGV4OiBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC13
aXRoLWlubGluaW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2JyZWFrcG9pbnQtd2l0aC1pbmxpbmluZy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtd2l0aC1pbmxpbmluZy5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjIgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKy8vIFB1dCB0aGlzIGhlcmUgaW5zdGVhZCBvZiBvbiA8
Ym9keSBvbmxvYWQ+IHRvIHByZXZlbnQgYW4gZXh0cmEgRGVidWdnZXIuc2NyaXB0UGFyc2VkIGV2
ZW50Lgord2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IC8vIFRoaXMgdGVzdCBzZXRzIGEgYnJlYWtwb2ludCBvbiBsaW5lOmNvbHVtbiBpbiB0aGUgPHNj
cmlwdD4gYmVsb3cuCisgICAgLy8gV2UgZmlyc3Qgd2FybSB0aGUgZnVuY3Rpb24gdXAgdG8gZ2V0
IGZvbyBpbmxpbmVkLiBUaGVuIHdlIHNldCBhIGJyZWFrcG9pbnQKKyAgICAvLyBhbmQgbWFrZSBz
dXJlIHRoYXQgd2UgaGl0IGl0LgorCisgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQo
IkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKKworICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFu
ZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQor
ICAgIHsKKyAgICAgICAgaWYgKC9icmVha3BvaW50LXdpdGgtaW5saW5pbmdcLmh0bWwkLy50ZXN0
KG1lc3NhZ2VPYmplY3QucGFyYW1zLnVybCkgJiYgbWVzc2FnZU9iamVjdC5wYXJhbXMuc3RhcnRM
aW5lID4gMTApIHsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZvdW5kIDxzY3JpcHQ+
Iik7CisgICAgICAgICAgICB2YXIgc2NyaXB0SWRlbnRpZmllciA9IG1lc3NhZ2VPYmplY3QucGFy
YW1zLnNjcmlwdElkOworICAgICAgICAgICAgdmFyIGxpbmVOdW1iZXIgPSBtZXNzYWdlT2JqZWN0
LnBhcmFtcy5zdGFydExpbmUgKyAyOworICAgICAgICAgICAgdmFyIGNvbHVtbk51bWJlciA9IDQ7
CisgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSB7c2NyaXB0SWQ6IHNjcmlwdElkZW50aWZpZXIs
IGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogY29sdW1uTnVtYmVyfTsKKwor
ICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiUnVubmluZyB0ZXN0SW5saW5pbmcoKSB3aXRo
b3V0IGEgYnJlYWtwb2ludCB0byBnZXQgaXQgREZHIG9yIEZUTCBjb21waWxlZCB3aXRoIGZvbygp
IGlubGluZWQuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5k
KCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJ0ZXN0SW5saW5pbmcoMTAwMDAwKSJ9
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIHtsb2NhdGlvbjogbG9jYXRpb259LCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiUnVubmluZyB0
ZXN0SW5saW5pbmcoKSBhZ2FpbiB3aXRoIGEgYnJlYWtwb2ludCBzZXQgYXQgZm9vKCkuIik7Cisg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJSdW50aW1l
LmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJ0ZXN0SW5saW5pbmcoMTApIn0pOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQg
aXRlcnMgPSAwOworICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRGVidWdnZXIu
cGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQorICAgIHsKKyAgICAgICAgSW5zcGVj
dG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnJlc3VtZSIsIHt9KTsKKworICAgICAg
ICBpdGVycysrOworICAgICAgICBpZiAoaXRlcnMgPT09IDEwKSB7CisgICAgICAgICAgICBQcm90
b2NvbFRlc3QubG9nKCJXZSBwYXVzZWQgYWxsIDEwIHRpbWVzIGFzIGV4cGVjdGVkISIpOworICAg
ICAgICAgICAgUHJvdG9jb2xUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICB9CisgICAgfQor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQg
b24gbGluZTpjb2x1bW4gaW4gJmx0O3NjcmlwdCZndDs8L3A+Cis8c2NyaXB0PiAgICAgICAgICAv
LyBMaW5lIDAKK2Z1bmN0aW9uIGZvbyhpKSB7IC8vIExpbmUgMTsKKyAgICByZXR1cm4gaSoyOyAg
IC8vIExpbmUgMjsKK30KK2Z1bmN0aW9uIHRlc3RJbmxpbmluZyhpdGVycykgeworICAgIGZvciAo
bGV0IGkgPSAwOyBpIDwgaXRlcnM7IGkrKykKKyAgICAgICAgZm9vKGkpOworfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>