<?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>121371</bug_id>
          
          <creation_ts>2013-09-14 15:14:29 -0700</creation_ts>
          <short_desc>It should be easy to add new nodes that do OSR forward rewiring in both DFG and FTL</short_desc>
          <delta_ts>2013-09-14 17:56:56 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>121064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>929307</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-14 15:14:29 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929313</commentid>
    <comment_count>1</comment_count>
      <attachid>211672</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-14 15:53:28 -0700</bug_when>
    <thetext>Created attachment 211672
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929315</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-14 15:55:57 -0700</bug_when>
    <thetext>Attachment 211672 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/dfg/DFGMinifiedNode.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGNodeType.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGVariableEventStream.cpp&apos;, u&apos;Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp&apos;]&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGNodeType.h:310:  Missing space before ( in switch(  [whitespace/parens] [5]
Total errors found: 1 in 5 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>929316</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-14 15:57:32 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 211672 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/dfg/DFGMinifiedNode.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGNodeType.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGVariableEventStream.cpp&apos;, u&apos;Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp&apos;]&quot; exit_code: 1
&gt; Source/JavaScriptCore/dfg/DFGNodeType.h:310:  Missing space before ( in switch(  [whitespace/parens] [5]

Fixed.

&gt; Total errors found: 1 in 5 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929318</commentid>
    <comment_count>4</comment_count>
      <attachid>211672</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-14 16:06:54 -0700</bug_when>
    <thetext>Comment on attachment 211672
the patch

I think I can do better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929326</commentid>
    <comment_count>5</comment_count>
      <attachid>211675</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-14 16:39:05 -0700</bug_when>
    <thetext>Created attachment 211675
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929337</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-14 17:56:56 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/155793</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211672</attachid>
            <date>2013-09-14 15:53:28 -0700</date>
            <delta_ts>2013-09-14 16:39:05 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>13224</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBA
CisyMDEzLTA5LTE0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SXQgc2hvdWxkIGJlIGVhc3kgdG8gYWRkIG5ldyBub2RlcyB0aGF0IGRvIE9TUiBmb3J3YXJkIHJl
d2lyaW5nIGluIGJvdGggREZHIGFuZCBGVEwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMTM3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorICAgICAgICAKKyAgICAgICAgRm9yd2FyZCByZXdpcmluZyBpcyBhIHRyaWNreSBw
YXJ0IG9mIE9TUiB0aGF0IGhhbmRsZXMgdGhlIGZvbGxvd2luZzoKKyAgICAgICAgCisgICAgICAg
ICAgICBhOiBTb21ldGhpbmcoLi4uKQorICAgICAgICAgICAgICAgU2V0TG9jYWwoQGEsIGxvY1gp
CisgICAgICAgICAgICBiOiBJbnQzMlRvRG91YmxlKEBhKQorICAgICAgICAgICAgYzogU29tZXRo
aW5nVGhhdEV4aXRzKEBiKQorICAgICAgICAgICAgICAgPG5vIGZ1cnRoZXIgdXNlcyBvZiBAYSBv
ciBAYj4KKworICAgICAgICBOb3RlIHRoYXQgYXQgQGMsIE9TUiB3aWxsIHRoaW5rIHRoYXQgbG9j
WC0+QGEsIGJ1dCBAYSB3aWxsIGJlIGRlYWQuIFNvIGl0IG11c3QgYmUKKyAgICAgICAgc21hcnQg
ZW5vdWdoIHRvIGZpbmQgQGIsIHdoaWNoIGNvbnRhaW5zIGFuIGVxdWl2YWxlbnQgdmFsdWUuIEl0
IG11c3QgZG8gdGhpcyBmb3IKKyAgICAgICAgYW55IGlkZW50aXR5IGZ1bmN0aW9ucyB3ZSBzdXBw
b3J0LiBDdXJyZW50bHkgd2Ugc3VwcG9ydCBmb3VyIHN1Y2ggZnVuY3Rpb25zLgorICAgICAgICAK
KyAgICAgICAgQ3VycmVudGx5IHRoZSBjb2RlIGZvciBkb2luZyB0aGlzIGlzIGJhc2ljYWxseSBk
dXBsaWNhdGVkIGJldHdlZW4gdGhlIERGRyBhbmQgdGhlCisgICAgICAgIEZUTC4gQWxzbyBib3Ro
IHZlcnNpb25zIG9mIHRoZSBjb2RlIGhhdmUgc29tZSByZWFsbHkgd2VpcmRseSB3cml0dGVuIGxv
Z2ljIGZvcgorICAgICAgICBwaWNraW5nIHRoZSAiYmVzdCIgaWRlbnRpdHkgZnVuY3Rpb24gdG8g
dXNlLgorICAgICAgICAKKyAgICAgICAgV2Ugc2hvdWxkIGZpeCB0aGlzIGJ5IHNpbXBseSBoYXZp
bmcgYSB3YXkgdG8gYXNrICJpcyB0aGlzIG5vZGUgYW4gaWRlbnRpdHkKKyAgICAgICAgZnVuY3Rp
b24sIGFuZCBpZiBzbywgdGhlbiBob3cgZ29vZCBpcyBpdD8iICBUaGVuIGJvdGggdGhlIERGRyBh
bmQgRlRMIGNvdWxkIHVzZQorICAgICAgICB0aGlzIGFuZCBoYXZlIG5vIGhhcmQtd2lyZWQga25v
d2xlZGdlIG9mIHRob3NlIGlkZW50aXR5IGZ1bmN0aW9ucy4KKyAgICAgICAgCisgICAgICAgIFdo
aWxlIHdlJ3JlIGF0IGl0LCB0aGlzIGFsc28gZmlsbHMgb3V0IHRoZSBiYWNrd2FyZC9mb3J3YXJk
IHJld2lyaW5nIGNvZGUgdG8gYmUKKyAgICAgICAgbW9yZSBjb21wbGV0ZS4gVGhpcyBtYWtlcyBt
ZSB3b25kZXIgaWYgd2Ugc2F5IHRoYXQgYW55dGhpbmcgd2l0aCBhIG5vbi16ZXJvCisgICAgICAg
IGZvcndhcmQgcmV3aXJpbmcgc2VsZWN0aW9uIHNjb3JlIHNob3VsZCBqdXN0IGF1dG9tYXRpY2Fs
bHkgYmUgY291bnRlZCBhcworICAgICAgICBwZXJtaXR0aW5nIGJhY2t3YXJkIHJld2lyaW5nLCBi
dXQgZm9yIG5vdyBJIGRvbid0IHdhbnQgdG8gYWxzbyBtYWtlIHRoYXQgY2hhbmdlLgorICAgICAg
ICBBbHNvIHRoZSBjb2RlIHN0aWxsIGN1cnJlbnRseSByZWxpZXMgb24gdGhlIHByb3BlcnR5IHRo
YXQgd2Ugb25seSBuZWVkIHRvIGRvIHRoaXMKKyAgICAgICAgc2VhcmNoIDEtZGVlcCBpbiBlYWNo
IGRpcmVjdGlvbiAtIGZvciBleGFtcGxlIHdlIHdvbid0IGhhdmUKKyAgICAgICAgU2V0TG9jYWwo
RG91YmxlQXNJbnQzMihVSW50MzJUb051bWJlcihAYSkpKS4KKworICAgICAgICAqIGRmZy9ERkdO
b2RlVHlwZS5oOgorICAgICAgICAoSlNDOjpERkc6OmZvcndhcmRSZXdpcmluZ1NlbGVjdGlvblNj
b3JlKToKKyAgICAgICAgKEpTQzo6REZHOjpuZWVkc09TUkZvcndhcmRSZXdpcmluZyk6CisgICAg
ICAgICogZGZnL0RGR1ZhcmlhYmxlRXZlbnRTdHJlYW0uY3BwOgorICAgICAgICAoSlNDOjpERkc6
OlZhcmlhYmxlRXZlbnRTdHJlYW06OnJlY29uc3RydWN0KToKKyAgICAgICAgKiBmdGwvRlRMTG93
ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjphZGRF
eGl0QXJndW1lbnRGb3JOb2RlKToKKwogMjAxMy0wOS0xNCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9A
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBJbnRlZ2VyQnJhbmNoL0ludGVnZXJDb21wYXJl
IHRvIEludDMyQnJhbmNoL0ludDMyQ29tcGFyZS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTWluaWZpZWROb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdNaW5pZmllZE5vZGUuaAkocmV2aXNpb24gMTU1NzQ0KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdNaW5pZmllZE5vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTAs
NyArNTAsNyBAQCBpbmxpbmUgYm9vbCBiZWxvbmdzSW5NaW5pZmllZEdyYXBoKE5vZGVUCiAgICAg
Y2FzZSBQaGFudG9tQXJndW1lbnRzOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0
OgotICAgICAgICBBU1NFUlQoIW5lZWRzT1NSQmFja3dhcmRSZXdpcmluZyh0eXBlKSAmJiAhbmVl
ZHNPU1JGb3J3YXJkUmV3aXJpbmcodHlwZSkpOworICAgICAgICBBU1NFUlQoIXBlcm1pdHNPU1JC
YWNrd2FyZFJld2lyaW5nKHR5cGUpICYmICFwZXJtaXRzT1NSRm9yd2FyZFJld2lyaW5nKHR5cGUp
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGVUeXBlLmgJKHJldmlzaW9uIDE1NTc0NCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzA1LDI0ICsz
MDUsNjQgQEAgaW5saW5lIE5vZGVGbGFncyBkZWZhdWx0RmxhZ3MoTm9kZVR5cGUgbwogICAgIH0K
IH0KIAotaW5saW5lIGJvb2wgbmVlZHNPU1JCYWNrd2FyZFJld2lyaW5nKE5vZGVUeXBlIG9wKQor
aW5saW5lIGJvb2wgcGVybWl0c09TUkJhY2t3YXJkUmV3aXJpbmcoTm9kZVR5cGUgb3ApCiB7Ci0g
ICAgcmV0dXJuIG9wID09IFVJbnQzMlRvTnVtYmVyOworICAgIHN3aXRjaChvcCkgeworICAgIGNh
c2UgSWRlbnRpdHk6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgVUludDMyVG9OdW1iZXI6CisgICAgY2FzZSBEb3Vi
bGVBc0ludDMyOgorICAgIGNhc2UgSW50MzJUb0RvdWJsZToKKyAgICBjYXNlIFZhbHVlVG9JbnQz
MjoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KIH0KIAotaW5saW5lIGJvb2wgbmVlZHNPU1JGb3J3YXJkUmV3aXJpbmcoTm9k
ZVR5cGUgb3ApCisvLyBSZXR1cm5zIHRoZSBwcmlvcml0eSB3aXRoIHdoaWNoIHdlIHNob3VsZCBz
ZWxlY3QgdGhlIGdpdmVuIG5vZGUgZm9yIGZvcndhcmQKKy8vIHJld2lyaW5nLiBIaWdoZXIgaXMg
YmV0dGVyLiBaZXJvIG1lYW5zIHRoYXQgdGhlIG5vZGUgaXMgbm90IHVzZWZ1bCBmb3IgcmV3aXJp
bmcuCisvLyBCeSBjb252ZW50aW9uLCB3ZSB1c2UgMTAwIHRvIG1lYW4gdGhhdCB0aGUgbm9kZSBp
cyB0b3RhbGx5IGVxdWl2YWxlbnQgdG8gaXRzCisvLyBpbnB1dCB3aXRoIG5vIGluZm9ybWF0aW9u
IGxvc3MuCitpbmxpbmUgdW5zaWduZWQgZm9yd2FyZFJld2lyaW5nU2VsZWN0aW9uU2NvcmUoTm9k
ZVR5cGUgb3ApCiB7CiAgICAgc3dpdGNoIChvcCkgeworICAgIGNhc2UgSWRlbnRpdHk6CisgICAg
ICAgIC8vIFdlIHNob3VsZG4ndCBzZWUgdGhlc2UgYnkgdGhlIHRpbWUgd2UgZ2V0IHRvIE9TUiBl
dmVuIHRob3VnaCBpdCBjbGVhcmx5CisgICAgICAgIC8vIGlzIGEgcGVyZmVjdCBpZGVudGl0eSBm
dW5jdGlvbi4KKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
cmV0dXJuIDEwMDsKKyAgICAgICAgCisgICAgY2FzZSBEb3VibGVBc0ludDMyOgorICAgICAgICAv
LyBUaGlzIHNwZWN1bGF0ZXMgdGhhdCB0aGUgaW5jb21pbmcgZG91YmxlIGlzIGNvbnZlcnRpYmxl
IHRvIGFuIGludDMyLiBTbworICAgICAgICAvLyBpdHMgcmVzdWx0IGlzIHRvdGFsbHkgZXF1aXZh
bGVudC4KKyAgICAgICAgcmV0dXJuIDEwMDsKKyAgICAgICAgCiAgICAgY2FzZSBJbnQzMlRvRG91
YmxlOgotICAgIGNhc2UgVmFsdWVUb0ludDMyOgorICAgICAgICAvLyBUaGlzIGNvbnZlcnRzIGFu
IGludDMyIHRvIGEgZG91YmxlLCBidXQgdGhhdCBsb3NlcyBhIGJpdCBvZiBpbmZvcm1hdGlvbi4K
KyAgICAgICAgLy8gT1RPSCBpdCdzIHN0aWxsIGFuIGVxdWl2YWxlbnQgbnVtYmVyLgorICAgICAg
ICByZXR1cm4gNzU7CisgICAgICAgIAogICAgIGNhc2UgVUludDMyVG9OdW1iZXI6Ci0gICAgY2Fz
ZSBEb3VibGVBc0ludDMyOgotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgLy8gSXQncyBj
b21wbGV0ZWx5IGZpbmUgdG8gdXNlIHRoaXMgZm9yIE9TUiBleGl0LCBzaW5jZSB0aGUgdWludDMy
IGlzbid0CisgICAgICAgIC8vIGFjdHVhbGx5IHJlcHJlc2VudGFibGUgaW4gYnl0ZWNvZGUuCisg
ICAgICAgIHJldHVybiAxMDA7CisKKyAgICBjYXNlIFZhbHVlVG9JbnQzMjoKKyAgICAgICAgLy8g
VGhpcyBsb3NlcyBpbmZvcm1hdGlvbi4gT25seSB1c2UgaXQgaWYgdGhlcmUgYXJlIG5vIGJldHRl
ciBhbHRlcm5hdGl2ZXMuCisgICAgICAgIHJldHVybiAyNTsKKyAgICAgICAgCiAgICAgZGVmYXVs
dDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gMDsKICAgICB9CiB9CiAK
K2lubGluZSBib29sIHBlcm1pdHNPU1JGb3J3YXJkUmV3aXJpbmcoTm9kZVR5cGUgb3ApCit7Cisg
ICAgcmV0dXJuIGZvcndhcmRSZXdpcmluZ1NlbGVjdGlvblNjb3JlKG9wKSA+IDA7Cit9CisKIH0g
fSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUV2ZW50U3RyZWFtLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnRT
dHJlYW0uY3BwCShyZXZpc2lvbiAxNTU3NDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1ZhcmlhYmxlRXZlbnRTdHJlYW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTMsMjggKzE5
MywyNiBAQCB2b2lkIFZhcmlhYmxlRXZlbnRTdHJlYW06OnJlY29uc3RydWN0KAogICAgICAgICBN
aW5pZmllZEdlbmVyYXRpb25JbmZvIGluZm8gPSBnZW5lcmF0aW9uSW5mb3MuZ2V0KHNvdXJjZS5p
ZCgpKTsKICAgICAgICAgaWYgKGluZm8uZm9ybWF0ID09IERhdGFGb3JtYXROb25lKSB7CiAgICAg
ICAgICAgICAvLyBUcnkgdG8gc2VlIGlmIHRoZXJlIGlzIGFuIGFsdGVybmF0ZSBub2RlIHRoYXQg
d291bGQgY29udGFpbiB0aGUgdmFsdWUgd2Ugd2FudC4KLSAgICAgICAgICAgIC8vIFRoZXJlIGFy
ZSBmb3VyIHBvc3NpYmlsaXRpZXM6CiAgICAgICAgICAgICAvLwotICAgICAgICAgICAgLy8gSW50
MzJUb0RvdWJsZTogV2UgY2FuIHVzZSB0aGlzIGluIHBsYWNlIG9mIHRoZSBvcmlnaW5hbCBub2Rl
LCBidXQKLSAgICAgICAgICAgIC8vICAgIHdlJ2QgcmF0aGVyIG5vdDsgc28gd2UgdXNlIGl0IG9u
bHkgaWYgaXQgaXMgdGhlIG9ubHkgcmVtYWluaW5nCi0gICAgICAgICAgICAvLyAgICBsaXZlIHZl
cnNpb24uCisgICAgICAgICAgICAvLyBCYWNrd2FyZCByZXdpcmluZyByZWZlcnMgdG86CiAgICAg
ICAgICAgICAvLwotICAgICAgICAgICAgLy8gVmFsdWVUb0ludDMyOiBJZiB0aGUgb25seSByZW1h
aW5pbmcgbGl2ZSB2ZXJzaW9uIG9mIHRoZSB2YWx1ZSBpcwotICAgICAgICAgICAgLy8gICAgVmFs
dWVUb0ludDMyLCB0aGVuIHdlIGNhbiB1c2UgaXQuCisgICAgICAgICAgICAvLyAgICAgYTogU29t
ZXRoaW5nKC4uLikKKyAgICAgICAgICAgIC8vICAgICBiOiBJZChAYSkgLy8gc29tZSBpZGVudGl0
eSBmdW5jdGlvbgorICAgICAgICAgICAgLy8gICAgIGM6IFNldExvY2FsKEBiKQogICAgICAgICAg
ICAgLy8KLSAgICAgICAgICAgIC8vIFVJbnQzMlRvTnVtYmVyOiBJZiB0aGUgb25seSBsaXZlIHZl
cnNpb24gb2YgdGhlIHZhbHVlIGlzIGEgVUludDMyVG9OdW1iZXIKLSAgICAgICAgICAgIC8vICAg
IHRoZW4gdGhlIG9ubHkgcmVtYWluaW5nIHVzZXMgYXJlIG9uZXMgdGhhdCB3YW50IGEgcHJvcGVy
bHkgZm9ybWVkIG51bWJlcgotICAgICAgICAgICAgLy8gICAgcmF0aGVyIHRoYW4gYSBVSW50MzIg
aW50ZXJtZWRpYXRlLgorICAgICAgICAgICAgLy8gV2hlcmUgd2UgZmluZCBAYiBiZWluZyBkZWFk
LCBidXQgQGEgaXMgc3RpbGwgYWxpdmUuCiAgICAgICAgICAgICAvLwotICAgICAgICAgICAgLy8g
RG91YmxlQXNJbnQzMjogU2FtZSBhcyBVSW50MzJUb051bWJlci4KKyAgICAgICAgICAgIC8vIEZv
cndhcmQgcmV3aXJpbmcgcmVmZXJzIHRvOgogICAgICAgICAgICAgLy8KLSAgICAgICAgICAgIC8v
IFRoZSByZXZlcnNlIG9mIHRoZSBhYm92ZTogVGhpcyBub2RlIGNvdWxkIGJlIGEgVUludDMyVG9O
dW1iZXIsIGJ1dCBpdHMKLSAgICAgICAgICAgIC8vICAgIGFsdGVybmF0aXZlIGlzIHN0aWxsIGFs
aXZlLiBUaGlzIG1lYW5zIHRoYXQgdGhlIG9ubHkgcmVtYWluaW5nIHVzZXMgb2YKLSAgICAgICAg
ICAgIC8vICAgIHRoZSBudW1iZXIgd291bGQgYmUgZmluZSB3aXRoIGEgVUludDMyIGludGVybWVk
aWF0ZS4KKyAgICAgICAgICAgIC8vICAgICBhOiBTb21ldGhpbmcoLi4uKQorICAgICAgICAgICAg
Ly8gICAgIGI6IFNldExvY2FsKEBhKQorICAgICAgICAgICAgLy8gICAgIGM6IElkKEBhKSAvLyBz
b21lIGlkZW50aXR5IGZ1bmN0aW9uCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gV2hl
cmUgd2UgZmluZCBAYSBiZWluZyBkZWFkLCBidXQgQGIgaXMgc3RpbGwgYWxpdmUuCiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIGJvb2wgZm91bmQgPSBmYWxzZTsKICAgICAgICAgICAgIAotICAg
ICAgICAgICAgaWYgKG5vZGUgJiYgbmVlZHNPU1JCYWNrd2FyZFJld2lyaW5nKG5vZGUtPm9wKCkp
KSB7CisgICAgICAgICAgICBpZiAobm9kZSAmJiBwZXJtaXRzT1NSQmFja3dhcmRSZXdpcmluZyhu
b2RlLT5vcCgpKSkgewogICAgICAgICAgICAgICAgIE1pbmlmaWVkSUQgaWQgPSBub2RlLT5jaGls
ZDEoKTsKICAgICAgICAgICAgICAgICBpZiAodHJ5VG9TZXRDb25zdGFudFJlY292ZXJ5KHZhbHVl
UmVjb3Zlcmllc1tpXSwgY29kZUJsb2NrLCBncmFwaC5hdChpZCkpKQogICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKQEAgLTIyNCwxMCArMjIyLDggQEAgdm9pZCBWYXJpYWJsZUV2ZW50U3Ry
ZWFtOjpyZWNvbnN0cnVjdCgKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAg
ICAgaWYgKCFmb3VuZCkgewotICAgICAgICAgICAgICAgIE1pbmlmaWVkSUQgaW50MzJUb0RvdWJs
ZUlEOwotICAgICAgICAgICAgICAgIE1pbmlmaWVkSUQgdmFsdWVUb0ludDMySUQ7Ci0gICAgICAg
ICAgICAgICAgTWluaWZpZWRJRCB1aW50MzJUb051bWJlcklEOwotICAgICAgICAgICAgICAgIE1p
bmlmaWVkSUQgZG91YmxlQXNJbnQzMklEOworICAgICAgICAgICAgICAgIE1pbmlmaWVkSUQgYmVz
dElEOworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJlc3RTY29yZSA9IDA7CiAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgSGFzaE1hcDxNaW5pZmllZElELCBNaW5pZmllZEdlbmVy
YXRpb25JbmZvPjo6aXRlcmF0b3IgaXRlciA9IGdlbmVyYXRpb25JbmZvcy5iZWdpbigpOwogICAg
ICAgICAgICAgICAgIEhhc2hNYXA8TWluaWZpZWRJRCwgTWluaWZpZWRHZW5lcmF0aW9uSW5mbz46
Oml0ZXJhdG9yIGVuZCA9IGdlbmVyYXRpb25JbmZvcy5lbmQoKTsKQEAgLTI0MiwzNyArMjM4LDE1
IEBAIHZvaWQgVmFyaWFibGVFdmVudFN0cmVhbTo6cmVjb25zdHJ1Y3QoCiAgICAgICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZXItPnZhbHVl
LmZvcm1hdCA9PSBEYXRhRm9ybWF0Tm9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgY2FzZSBJbnQzMlRvRG91YmxlOgotICAgICAgICAgICAgICAgICAgICAgICAg
aW50MzJUb0RvdWJsZUlEID0gaWQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgICAgICAgICAgY2FzZSBWYWx1ZVRvSW50MzI6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB2YWx1ZVRvSW50MzJJRCA9IGlkOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgVUludDMyVG9OdW1iZXI6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICB1aW50MzJUb051bWJlcklEID0gaWQ7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBEb3VibGVBc0ludDMyOgotICAgICAg
ICAgICAgICAgICAgICAgICAgZG91YmxlQXNJbnQzMklEID0gaWQ7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAg
ICAgICAgICAgICAgIEFTU0VSVCghbmVlZHNPU1JGb3J3YXJkUmV3aXJpbmcobm9kZS0+b3AoKSkp
OwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbXlTY29yZSA9IGZvcndhcmRSZXdpcmluZ1Nl
bGVjdGlvblNjb3JlKG5vZGUtPm9wKCkpOworICAgICAgICAgICAgICAgICAgICBpZiAobXlTY29y
ZSA8PSBiZXN0U2NvcmUpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgICAgICAgICAgICAgYmVzdElEID0gaWQ7CisgICAgICAgICAgICAgICAgICAgIGJlc3RTY29y
ZSA9IG15U2NvcmU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIE1pbmlmaWVkSUQgaWRUb1VzZTsKLSAgICAgICAgICAgICAgICBpZiAoISFkb3Vi
bGVBc0ludDMySUQpCi0gICAgICAgICAgICAgICAgICAgIGlkVG9Vc2UgPSBkb3VibGVBc0ludDMy
SUQ7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoISFpbnQzMlRvRG91YmxlSUQpCi0gICAgICAg
ICAgICAgICAgICAgIGlkVG9Vc2UgPSBpbnQzMlRvRG91YmxlSUQ7Ci0gICAgICAgICAgICAgICAg
ZWxzZSBpZiAoISF2YWx1ZVRvSW50MzJJRCkKLSAgICAgICAgICAgICAgICAgICAgaWRUb1VzZSA9
IHZhbHVlVG9JbnQzMklEOwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKCEhdWludDMyVG9OdW1i
ZXJJRCkKLSAgICAgICAgICAgICAgICAgICAgaWRUb1VzZSA9IHVpbnQzMlRvTnVtYmVySUQ7Ci0g
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKCEhaWRUb1VzZSkgewotICAgICAg
ICAgICAgICAgICAgICBpbmZvID0gZ2VuZXJhdGlvbkluZm9zLmdldChpZFRvVXNlKTsKKyAgICAg
ICAgICAgICAgICBpZiAoISFiZXN0SUQpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5mbyA9IGdl
bmVyYXRpb25JbmZvcy5nZXQoYmVzdElEKTsKICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGlu
Zm8uZm9ybWF0ICE9IERhdGFGb3JtYXROb25lKTsKICAgICAgICAgICAgICAgICAgICAgZm91bmQg
PSB0cnVlOwogICAgICAgICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lvbiAxNTU3NDQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzA4Nyw3ICszMDg3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKCFpc0xpdmUobm9k
ZSkpIHsKICAgICAgICAgICAgIGJvb2wgZm91bmQgPSBmYWxzZTsKICAgICAgICAgICAgIAotICAg
ICAgICAgICAgaWYgKG5lZWRzT1NSQmFja3dhcmRSZXdpcmluZyhub2RlLT5vcCgpKSkgeworICAg
ICAgICAgICAgaWYgKHBlcm1pdHNPU1JCYWNrd2FyZFJld2lyaW5nKG5vZGUtPm9wKCkpKSB7CiAg
ICAgICAgICAgICAgICAgbm9kZSA9IG5vZGUtPmNoaWxkMSgpLm5vZGUoKTsKICAgICAgICAgICAg
ICAgICBpZiAodHJ5VG9TZXRDb25zdGFudEV4aXRBcmd1bWVudChleGl0LCBpbmRleCwgbm9kZSkp
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTMwOTYsMTAgKzMwOTYsOCBAQCBwcml2
YXRlOgogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIWZvdW5k
KSB7Ci0gICAgICAgICAgICAgICAgTm9kZSogaW50MzJUb0RvdWJsZSA9IDA7Ci0gICAgICAgICAg
ICAgICAgTm9kZSogdmFsdWVUb0ludDMyID0gMDsKLSAgICAgICAgICAgICAgICBOb2RlKiB1aW50
MzJUb051bWJlciA9IDA7Ci0gICAgICAgICAgICAgICAgTm9kZSogZG91YmxlQXNJbnQzMiA9IDA7
CisgICAgICAgICAgICAgICAgTm9kZSogYmVzdE5vZGUgPSAwOworICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGJlc3RTY29yZSA9IDA7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
SGFzaFNldDxOb2RlKj46Oml0ZXJhdG9yIGl0ZXIgPSBtX2xpdmUuYmVnaW4oKTsKICAgICAgICAg
ICAgICAgICBIYXNoU2V0PE5vZGUqPjo6aXRlcmF0b3IgZW5kID0gbV9saXZlLmVuZCgpOwpAQCAt
MzExMSwzNiArMzEwOSwxOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgICAgICAgICAgIGlmIChjYW5kaWRhdGUtPmNoaWxkMSgpICE9IG5v
ZGUpCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAg
ICAgc3dpdGNoIChjYW5kaWRhdGUtPm9wKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBJ
bnQzMlRvRG91YmxlOgotICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJUb0RvdWJsZSA9IGNh
bmRpZGF0ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAg
ICAgICBjYXNlIFZhbHVlVG9JbnQzMjoKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlVG9J
bnQzMiA9IGNhbmRpZGF0ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgICAgICBjYXNlIFVJbnQzMlRvTnVtYmVyOgotICAgICAgICAgICAgICAgICAgICAg
ICAgdWludDMyVG9OdW1iZXIgPSBjYW5kaWRhdGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBEb3VibGVBc0ludDMyOgotICAgICAgICAg
ICAgICAgICAgICAgICAgdWludDMyVG9OdW1iZXIgPSBjYW5kaWRhdGU7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgICAgICAgICAgICAgIEFTU0VSVCghbmVlZHNPU1JGb3J3YXJkUmV3aXJpbmcoY2FuZGlkYXRl
LT5vcCgpKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBteVNjb3JlID0gZm9yd2FyZFJl
d2lyaW5nU2VsZWN0aW9uU2NvcmUoY2FuZGlkYXRlLT5vcCgpKTsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKG15U2NvcmUgPD0gYmVzdFNjb3JlKQorICAgICAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAgICAgICAgIGJlc3ROb2RlID0gY2FuZGlkYXRlOworICAgICAg
ICAgICAgICAgICAgICBiZXN0U2NvcmUgPSBteVNjb3JlOwogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoZG91YmxlQXNJbnQzMikKLSAgICAg
ICAgICAgICAgICAgICAgbm9kZSA9IGRvdWJsZUFzSW50MzI7Ci0gICAgICAgICAgICAgICAgZWxz
ZSBpZiAoaW50MzJUb0RvdWJsZSkKLSAgICAgICAgICAgICAgICAgICAgbm9kZSA9IGludDMyVG9E
b3VibGU7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAodmFsdWVUb0ludDMyKQotICAgICAgICAg
ICAgICAgICAgICBub2RlID0gdmFsdWVUb0ludDMyOwotICAgICAgICAgICAgICAgIGVsc2UgaWYg
KHVpbnQzMlRvTnVtYmVyKQotICAgICAgICAgICAgICAgICAgICBub2RlID0gdWludDMyVG9OdW1i
ZXI7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKGlzTGl2ZShub2RlKSkK
KyAgICAgICAgICAgICAgICBpZiAoYmVzdE5vZGUpIHsKKyAgICAgICAgICAgICAgICAgICAgQVNT
RVJUKGlzTGl2ZShiZXN0Tm9kZSkpOworICAgICAgICAgICAgICAgICAgICBub2RlID0gYmVzdE5v
ZGU7CiAgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmICghZm91bmQpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211675</attachid>
            <date>2013-09-14 16:39:05 -0700</date>
            <delta_ts>2013-09-14 17:34:22 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>14331</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc4IEBA
CisyMDEzLTA5LTE0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SXQgc2hvdWxkIGJlIGVhc3kgdG8gYWRkIG5ldyBub2RlcyB0aGF0IGRvIE9TUiBmb3J3YXJkIHJl
d2lyaW5nIGluIGJvdGggREZHIGFuZCBGVEwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMTM3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorICAgICAgICAKKyAgICAgICAgRm9yd2FyZCByZXdpcmluZyBpcyBhIHRyaWNreSBw
YXJ0IG9mIE9TUiB0aGF0IGhhbmRsZXMgdGhlIGZvbGxvd2luZzoKKyAgICAgICAgCisgICAgICAg
ICAgICBhOiBTb21ldGhpbmcoLi4uKQorICAgICAgICAgICAgICAgU2V0TG9jYWwoQGEsIGxvY1gp
CisgICAgICAgICAgICBiOiBJbnQzMlRvRG91YmxlKEBhKQorICAgICAgICAgICAgYzogU29tZXRo
aW5nVGhhdEV4aXRzKEBiKQorICAgICAgICAgICAgICAgPG5vIGZ1cnRoZXIgdXNlcyBvZiBAYSBv
ciBAYj4KKworICAgICAgICBOb3RlIHRoYXQgYXQgQGMsIE9TUiB3aWxsIHRoaW5rIHRoYXQgbG9j
WC0+QGEsIGJ1dCBAYSB3aWxsIGJlIGRlYWQuIFNvIGl0IG11c3QgYmUKKyAgICAgICAgc21hcnQg
ZW5vdWdoIHRvIGZpbmQgQGIsIHdoaWNoIGNvbnRhaW5zIGFuIGVxdWl2YWxlbnQgdmFsdWUuIEl0
IG11c3QgZG8gdGhpcyBmb3IKKyAgICAgICAgYW55IGlkZW50aXR5IGZ1bmN0aW9ucyB3ZSBzdXBw
b3J0LiBDdXJyZW50bHkgd2Ugc3VwcG9ydCBmb3VyIHN1Y2ggZnVuY3Rpb25zLgorICAgICAgICAK
KyAgICAgICAgQ3VycmVudGx5IHRoZSBjb2RlIGZvciBkb2luZyB0aGlzIGlzIGJhc2ljYWxseSBk
dXBsaWNhdGVkIGJldHdlZW4gdGhlIERGRyBhbmQgdGhlCisgICAgICAgIEZUTC4gQWxzbyBib3Ro
IHZlcnNpb25zIG9mIHRoZSBjb2RlIGhhdmUgc29tZSByZWFsbHkgd2VpcmRseSB3cml0dGVuIGxv
Z2ljIGZvcgorICAgICAgICBwaWNraW5nIHRoZSAiYmVzdCIgaWRlbnRpdHkgZnVuY3Rpb24gdG8g
dXNlLgorICAgICAgICAKKyAgICAgICAgV2Ugc2hvdWxkIGZpeCB0aGlzIGJ5IHNpbXBseSBoYXZp
bmcgYSB3YXkgdG8gYXNrICJpcyB0aGlzIG5vZGUgYW4gaWRlbnRpdHkKKyAgICAgICAgZnVuY3Rp
b24sIGFuZCBpZiBzbywgdGhlbiBob3cgZ29vZCBpcyBpdD8iICBUaGVuIGJvdGggdGhlIERGRyBh
bmQgRlRMIGNvdWxkIHVzZQorICAgICAgICB0aGlzIGFuZCBoYXZlIG5vIGhhcmQtd2lyZWQga25v
d2xlZGdlIG9mIHRob3NlIGlkZW50aXR5IGZ1bmN0aW9ucy4KKyAgICAgICAgCisgICAgICAgIFdo
aWxlIHdlJ3JlIGF0IGl0LCB0aGlzIGFsc28gY2hhbmdlcyBzb21lIHRlcm1pbm9sb2d5IGJlY2F1
c2UgSSBmb3VuZCB0aGUgdXNlIG9mCisgICAgICAgIHRoZSB3b3JkICJuZWVkcyIgY29uZnVzaW5n
LiBOb3RlIHRoYXQgdGhpcyByZXRhaW5zIHRoZSBzb21ld2hhdCBjb25mdXNpbmcgYmVoYXZpb3IK
KyAgICAgICAgdGhhdCB3ZSBkb24ndCBzZWFyY2ggYWxsIHBvc3NpYmxlIGZvcndhcmQvYmFja3dh
cmQgdXNlcy4gV2Ugb25seSBzZWFyY2ggb25lIHN0ZXAKKyAgICAgICAgaW4gZWFjaCBkaXJlY3Rp
b24uIFRoaXMgaXMgYmVjYXVzZSB3ZSBvbmx5IG5lZWQgdG8gaGFuZGxlIGNhc2VzIHRoYXQgRml4
dXBQaGFzZQorICAgICAgICBhbmQgdGhlIHBhcnNlciBpbnNlcnQuIEFsbCBvdGhlciBjb2RlIHRo
YXQgdHJpZXMgdG8gaW5zZXJ0IGludGVybWVkaWF0ZSBjb252ZXJzaW9uCisgICAgICAgIG5vZGVz
IHNob3VsZCBlbnN1cmUgdG8gUGhhbnRvbSB0aGUgb3JpZ2luYWwgbm9kZS4gRm9yIGV4YW1wbGUs
IHRoZSBmb2xsb3dpbmcKKyAgICAgICAgdHJhbnNmb3JtYXRpb24gaXMgaWxsZWdhbDoKKyAgICAg
ICAgCisgICAgICAgIEJlZm9yZToKKyAgICAgICAgICAgIHg6IFNvbWV0aGluZ1RoYXRFeGl0cyhA
YSkKKyAgICAgICAgCisgICAgICAgIEFmdGVyOgorICAgICAgICAgICAgdzogQ29udmVyc2lvbihA
YSkKKyAgICAgICAgICAgIHg6IFNvbWV0aGluZ1RoYXRFeGl0cyhAdykKKyAgICAgICAgCisgICAg
ICAgIFRoZSBjb3JyZWN0IGZvcm0gb2YgdGhhdCB0cmFuc2Zvcm1hdGlvbiBpcyBvbmUgb2YgdGhl
c2U6CisgICAgICAgIAorICAgICAgICBDb3JyZWN0ICMxOgorICAgICAgICAKKyAgICAgICAgICAg
IHY6IERvQWxsQ2hlY2tzKEBhKSAvLyBleGl0IGhlcmUKKyAgICAgICAgICAgIHc6IENvbnZlcnNp
b24oQGEpCisgICAgICAgICAgICB4OiBTb21ldGhpbmcoQHcpIC8vIG5vIGV4aXQKKyAgICAgICAg
CisgICAgICAgIENvcnJlY3QgIzI6CisgICAgICAgIAorICAgICAgICAgICAgdzogQ29udmVyc2lv
bihAYSkKKyAgICAgICAgICAgIHg6IFNvbWV0aGluZ1RoYXRFeGl0cyhAdykKKyAgICAgICAgICAg
IHk6IFBoYW50b20oQGEpCisgICAgICAgIAorICAgICAgICBDb3JyZWN0ICMzOgorICAgICAgICAK
KyAgICAgICAgICAgIHc6IENvbnZlcnNpb24oQGEpCisgICAgICAgICAgICB4OiBTb21ldGhpbmdU
aGF0RXhpdHMoQHcsIEBhKQorICAgICAgICAKKyAgICAgICAgTm90ZSB0aGF0IHdlIHVzZSAjMyBm
b3Igc29tZSBoZWFwIGFjY2Vzc2VzLCBidXQgb2YgY291cnNlIGl0IHJlcXVpcmVzIHRoYXQgdGhl
CisgICAgICAgIG5vZGUgeW91J3JlIHVzaW5nIGhhcyBhbiBleHRyYSBzbG90IGZvciBhICJkdW1t
eSIgdXNlIGNoaWxkLgorICAgICAgICAKKyAgICAgICAgQnJvYWRseSBzcGVha2luZyB0aG91Z2gs
IHN1Y2ggdHJhbnNmb3JtYXRpb25zIHNob3VsZCBiZSByZWxlZ2F0ZWQgdG8gc29tZXRoaW5nCisg
ICAgICAgIGJlbG93IERGRyBJUiwgbGlrZSBMTFZNIElSLgorCisgICAgICAgICogZGZnL0RGR05v
ZGVUeXBlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Zm9yd2FyZFJld2lyaW5nU2VsZWN0aW9uU2Nv
cmUpOgorICAgICAgICAoSlNDOjpERkc6Om5lZWRzT1NSRm9yd2FyZFJld2lyaW5nKToKKyAgICAg
ICAgKiBkZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
VmFyaWFibGVFdmVudFN0cmVhbTo6cmVjb25zdHJ1Y3QpOgorICAgICAgICAqIGZ0bC9GVExMb3dl
ckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmFkZEV4
aXRBcmd1bWVudEZvck5vZGUpOgorCiAyMDEzLTA5LTE0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIEludGVnZXJCcmFuY2gvSW50ZWdlckNvbXBhcmUg
dG8gSW50MzJCcmFuY2gvSW50MzJDb21wYXJlLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdNaW5pZmllZE5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR01pbmlmaWVkTm9kZS5oCShyZXZpc2lvbiAxNTU3NDQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR01pbmlmaWVkTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3
ICs1MCw3IEBAIGlubGluZSBib29sIGJlbG9uZ3NJbk1pbmlmaWVkR3JhcGgoTm9kZVQKICAgICBj
YXNlIFBoYW50b21Bcmd1bWVudHM6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1bHQ6
Ci0gICAgICAgIEFTU0VSVCghbmVlZHNPU1JCYWNrd2FyZFJld2lyaW5nKHR5cGUpICYmICFuZWVk
c09TUkZvcndhcmRSZXdpcmluZyh0eXBlKSk7CisgICAgICAgIEFTU0VSVCghcGVybWl0c09TUkJh
Y2t3YXJkUmV3aXJpbmcodHlwZSkgJiYgIXBlcm1pdHNPU1JGb3J3YXJkUmV3aXJpbmcodHlwZSkp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkocmV2aXNpb24gMTU1NzQ0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMDUsMjQgKzMw
NSw2NyBAQCBpbmxpbmUgTm9kZUZsYWdzIGRlZmF1bHRGbGFncyhOb2RlVHlwZSBvCiAgICAgfQog
fQogCi1pbmxpbmUgYm9vbCBuZWVkc09TUkJhY2t3YXJkUmV3aXJpbmcoTm9kZVR5cGUgb3ApCitp
bmxpbmUgYm9vbCBwZXJtaXRzT1NSQmFja3dhcmRSZXdpcmluZyhOb2RlVHlwZSBvcCkKIHsKLSAg
ICByZXR1cm4gb3AgPT0gVUludDMyVG9OdW1iZXI7CisgICAgc3dpdGNoIChvcCkgeworICAgIGNh
c2UgSWRlbnRpdHk6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgVUludDMyVG9OdW1iZXI6CisgICAgICAgIC8vIFRo
aXMgaXMgdGhlIG9ubHkgbm9kZSB3aGVyZSB3ZSBkbzoKKyAgICAgICAgLy8KKyAgICAgICAgLy8g
ICAgIGI6IFVJbnQzMlRvTnVtYmVyKEBhKQorICAgICAgICAvLyAgICAgYzogU2V0TG9jYWwoQGIp
CisgICAgICAgIC8vCisgICAgICAgIC8vIGFuZCB0aGVuIGFsc28gaGF2ZSBzb21lIHVzZXMgb2Yg
QGEgd2l0aG91dCBQaGFudG9tJ2luZyBAYi4KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KIH0KIAotaW5saW5lIGJvb2wgbmVl
ZHNPU1JGb3J3YXJkUmV3aXJpbmcoTm9kZVR5cGUgb3ApCisvLyBSZXR1cm5zIHRoZSBwcmlvcml0
eSB3aXRoIHdoaWNoIHdlIHNob3VsZCBzZWxlY3QgdGhlIGdpdmVuIG5vZGUgZm9yIGZvcndhcmQK
Ky8vIHJld2lyaW5nLiBIaWdoZXIgaXMgYmV0dGVyLiBaZXJvIG1lYW5zIHRoYXQgdGhlIG5vZGUg
aXMgbm90IHVzZWZ1bCBmb3IgcmV3aXJpbmcuCisvLyBCeSBjb252ZW50aW9uLCB3ZSB1c2UgMTAw
IHRvIG1lYW4gdGhhdCB0aGUgbm9kZSBpcyB0b3RhbGx5IGVxdWl2YWxlbnQgdG8gaXRzCisvLyBp
bnB1dCB3aXRoIG5vIGluZm9ybWF0aW9uIGxvc3MuCitpbmxpbmUgdW5zaWduZWQgZm9yd2FyZFJl
d2lyaW5nU2VsZWN0aW9uU2NvcmUoTm9kZVR5cGUgb3ApCiB7CiAgICAgc3dpdGNoIChvcCkgewor
ICAgIGNhc2UgSWRlbnRpdHk6CisgICAgICAgIC8vIFdlIHNob3VsZG4ndCBzZWUgdGhlc2UgYnkg
dGhlIHRpbWUgd2UgZ2V0IHRvIE9TUiBldmVuIHRob3VnaCBpdCBjbGVhcmx5CisgICAgICAgIC8v
IGlzIGEgcGVyZmVjdCBpZGVudGl0eSBmdW5jdGlvbi4KKyAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIDEwMDsKKyAgICAgICAgCisgICAgY2FzZSBE
b3VibGVBc0ludDMyOgorICAgICAgICAvLyBUaGlzIHNwZWN1bGF0ZXMgdGhhdCB0aGUgaW5jb21p
bmcgZG91YmxlIGlzIGNvbnZlcnRpYmxlIHRvIGFuIGludDMyLiBTbworICAgICAgICAvLyBpdHMg
cmVzdWx0IGlzIHRvdGFsbHkgZXF1aXZhbGVudC4KKyAgICAgICAgcmV0dXJuIDEwMDsKKyAgICAg
ICAgCiAgICAgY2FzZSBJbnQzMlRvRG91YmxlOgotICAgIGNhc2UgVmFsdWVUb0ludDMyOgorICAg
ICAgICAvLyBUaGlzIGNvbnZlcnRzIGFuIGludDMyIHRvIGEgZG91YmxlLCBidXQgdGhhdCBsb3Nl
cyBhIGJpdCBvZiBpbmZvcm1hdGlvbi4KKyAgICAgICAgLy8gT1RPSCBpdCdzIHN0aWxsIGFuIGVx
dWl2YWxlbnQgbnVtYmVyLgorICAgICAgICByZXR1cm4gNzU7CisgICAgICAgIAogICAgIGNhc2Ug
VUludDMyVG9OdW1iZXI6Ci0gICAgY2FzZSBEb3VibGVBc0ludDMyOgotICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgLy8gSXQncyBjb21wbGV0ZWx5IGZpbmUgdG8gdXNlIHRoaXMgZm9yIE9T
UiBleGl0LCBzaW5jZSB0aGUgdWludDMyIGlzbid0CisgICAgICAgIC8vIGFjdHVhbGx5IHJlcHJl
c2VudGFibGUgaW4gYnl0ZWNvZGUuCisgICAgICAgIHJldHVybiAxMDA7CisKKyAgICBjYXNlIFZh
bHVlVG9JbnQzMjoKKyAgICAgICAgLy8gVGhpcyBsb3NlcyBpbmZvcm1hdGlvbi4gT25seSB1c2Ug
aXQgaWYgdGhlcmUgYXJlIG5vIGJldHRlciBhbHRlcm5hdGl2ZXMuCisgICAgICAgIHJldHVybiAy
NTsKKyAgICAgICAgCiAgICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICByZXR1cm4gMDsKICAgICB9CiB9CiAKK2lubGluZSBib29sIHBlcm1pdHNPU1JGb3J3YXJkUmV3
aXJpbmcoTm9kZVR5cGUgb3ApCit7CisgICAgcmV0dXJuIGZvcndhcmRSZXdpcmluZ1NlbGVjdGlv
blNjb3JlKG9wKSA+IDA7Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAogI2VuZGlm
IC8vIEVOQUJMRShERkdfSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdW
YXJpYWJsZUV2ZW50U3RyZWFtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnRTdHJlYW0uY3BwCShyZXZpc2lvbiAxNTU3NDQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnRTdHJlYW0uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xOTMsMjggKzE5MywyNiBAQCB2b2lkIFZhcmlhYmxlRXZlbnRTdHJlYW06
OnJlY29uc3RydWN0KAogICAgICAgICBNaW5pZmllZEdlbmVyYXRpb25JbmZvIGluZm8gPSBnZW5l
cmF0aW9uSW5mb3MuZ2V0KHNvdXJjZS5pZCgpKTsKICAgICAgICAgaWYgKGluZm8uZm9ybWF0ID09
IERhdGFGb3JtYXROb25lKSB7CiAgICAgICAgICAgICAvLyBUcnkgdG8gc2VlIGlmIHRoZXJlIGlz
IGFuIGFsdGVybmF0ZSBub2RlIHRoYXQgd291bGQgY29udGFpbiB0aGUgdmFsdWUgd2Ugd2FudC4K
LSAgICAgICAgICAgIC8vIFRoZXJlIGFyZSBmb3VyIHBvc3NpYmlsaXRpZXM6CiAgICAgICAgICAg
ICAvLwotICAgICAgICAgICAgLy8gSW50MzJUb0RvdWJsZTogV2UgY2FuIHVzZSB0aGlzIGluIHBs
YWNlIG9mIHRoZSBvcmlnaW5hbCBub2RlLCBidXQKLSAgICAgICAgICAgIC8vICAgIHdlJ2QgcmF0
aGVyIG5vdDsgc28gd2UgdXNlIGl0IG9ubHkgaWYgaXQgaXMgdGhlIG9ubHkgcmVtYWluaW5nCi0g
ICAgICAgICAgICAvLyAgICBsaXZlIHZlcnNpb24uCisgICAgICAgICAgICAvLyBCYWNrd2FyZCBy
ZXdpcmluZyByZWZlcnMgdG86CiAgICAgICAgICAgICAvLwotICAgICAgICAgICAgLy8gVmFsdWVU
b0ludDMyOiBJZiB0aGUgb25seSByZW1haW5pbmcgbGl2ZSB2ZXJzaW9uIG9mIHRoZSB2YWx1ZSBp
cwotICAgICAgICAgICAgLy8gICAgVmFsdWVUb0ludDMyLCB0aGVuIHdlIGNhbiB1c2UgaXQuCisg
ICAgICAgICAgICAvLyAgICAgYTogU29tZXRoaW5nKC4uLikKKyAgICAgICAgICAgIC8vICAgICBi
OiBJZChAYSkgLy8gc29tZSBpZGVudGl0eSBmdW5jdGlvbgorICAgICAgICAgICAgLy8gICAgIGM6
IFNldExvY2FsKEBiKQogICAgICAgICAgICAgLy8KLSAgICAgICAgICAgIC8vIFVJbnQzMlRvTnVt
YmVyOiBJZiB0aGUgb25seSBsaXZlIHZlcnNpb24gb2YgdGhlIHZhbHVlIGlzIGEgVUludDMyVG9O
dW1iZXIKLSAgICAgICAgICAgIC8vICAgIHRoZW4gdGhlIG9ubHkgcmVtYWluaW5nIHVzZXMgYXJl
IG9uZXMgdGhhdCB3YW50IGEgcHJvcGVybHkgZm9ybWVkIG51bWJlcgotICAgICAgICAgICAgLy8g
ICAgcmF0aGVyIHRoYW4gYSBVSW50MzIgaW50ZXJtZWRpYXRlLgorICAgICAgICAgICAgLy8gV2hl
cmUgd2UgZmluZCBAYiBiZWluZyBkZWFkLCBidXQgQGEgaXMgc3RpbGwgYWxpdmUuCiAgICAgICAg
ICAgICAvLwotICAgICAgICAgICAgLy8gRG91YmxlQXNJbnQzMjogU2FtZSBhcyBVSW50MzJUb051
bWJlci4KKyAgICAgICAgICAgIC8vIEZvcndhcmQgcmV3aXJpbmcgcmVmZXJzIHRvOgogICAgICAg
ICAgICAgLy8KLSAgICAgICAgICAgIC8vIFRoZSByZXZlcnNlIG9mIHRoZSBhYm92ZTogVGhpcyBu
b2RlIGNvdWxkIGJlIGEgVUludDMyVG9OdW1iZXIsIGJ1dCBpdHMKLSAgICAgICAgICAgIC8vICAg
IGFsdGVybmF0aXZlIGlzIHN0aWxsIGFsaXZlLiBUaGlzIG1lYW5zIHRoYXQgdGhlIG9ubHkgcmVt
YWluaW5nIHVzZXMgb2YKLSAgICAgICAgICAgIC8vICAgIHRoZSBudW1iZXIgd291bGQgYmUgZmlu
ZSB3aXRoIGEgVUludDMyIGludGVybWVkaWF0ZS4KKyAgICAgICAgICAgIC8vICAgICBhOiBTb21l
dGhpbmcoLi4uKQorICAgICAgICAgICAgLy8gICAgIGI6IFNldExvY2FsKEBhKQorICAgICAgICAg
ICAgLy8gICAgIGM6IElkKEBhKSAvLyBzb21lIGlkZW50aXR5IGZ1bmN0aW9uCisgICAgICAgICAg
ICAvLworICAgICAgICAgICAgLy8gV2hlcmUgd2UgZmluZCBAYSBiZWluZyBkZWFkLCBidXQgQGIg
aXMgc3RpbGwgYWxpdmUuCiAgICAgICAgICAgICAKICAgICAgICAgICAgIGJvb2wgZm91bmQgPSBm
YWxzZTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKG5vZGUgJiYgbmVlZHNPU1JCYWNr
d2FyZFJld2lyaW5nKG5vZGUtPm9wKCkpKSB7CisgICAgICAgICAgICBpZiAobm9kZSAmJiBwZXJt
aXRzT1NSQmFja3dhcmRSZXdpcmluZyhub2RlLT5vcCgpKSkgewogICAgICAgICAgICAgICAgIE1p
bmlmaWVkSUQgaWQgPSBub2RlLT5jaGlsZDEoKTsKICAgICAgICAgICAgICAgICBpZiAodHJ5VG9T
ZXRDb25zdGFudFJlY292ZXJ5KHZhbHVlUmVjb3Zlcmllc1tpXSwgY29kZUJsb2NrLCBncmFwaC5h
dChpZCkpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTIyNCwxMCArMjIyLDgg
QEAgdm9pZCBWYXJpYWJsZUV2ZW50U3RyZWFtOjpyZWNvbnN0cnVjdCgKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFmb3VuZCkgewotICAgICAgICAgICAgICAg
IE1pbmlmaWVkSUQgaW50MzJUb0RvdWJsZUlEOwotICAgICAgICAgICAgICAgIE1pbmlmaWVkSUQg
dmFsdWVUb0ludDMySUQ7Ci0gICAgICAgICAgICAgICAgTWluaWZpZWRJRCB1aW50MzJUb051bWJl
cklEOwotICAgICAgICAgICAgICAgIE1pbmlmaWVkSUQgZG91YmxlQXNJbnQzMklEOworICAgICAg
ICAgICAgICAgIE1pbmlmaWVkSUQgYmVzdElEOworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJl
c3RTY29yZSA9IDA7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgSGFzaE1hcDxN
aW5pZmllZElELCBNaW5pZmllZEdlbmVyYXRpb25JbmZvPjo6aXRlcmF0b3IgaXRlciA9IGdlbmVy
YXRpb25JbmZvcy5iZWdpbigpOwogICAgICAgICAgICAgICAgIEhhc2hNYXA8TWluaWZpZWRJRCwg
TWluaWZpZWRHZW5lcmF0aW9uSW5mbz46Oml0ZXJhdG9yIGVuZCA9IGdlbmVyYXRpb25JbmZvcy5l
bmQoKTsKQEAgLTI0MiwzNyArMjM4LDE1IEBAIHZvaWQgVmFyaWFibGVFdmVudFN0cmVhbTo6cmVj
b25zdHJ1Y3QoCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKGl0ZXItPnZhbHVlLmZvcm1hdCA9PSBEYXRhRm9ybWF0Tm9uZSkKICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICBzd2l0Y2gg
KG5vZGUtPm9wKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBJbnQzMlRvRG91YmxlOgot
ICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJUb0RvdWJsZUlEID0gaWQ7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBWYWx1ZVRvSW50
MzI6Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVRvSW50MzJJRCA9IGlkOwotICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgVUludDMy
VG9OdW1iZXI6Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJUb051bWJlcklEID0gaWQ7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBEb3VibGVBc0ludDMyOgotICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlQXNJbnQzMklE
ID0gaWQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVCghbmVlZHNPU1JGb3J3
YXJkUmV3aXJpbmcobm9kZS0+b3AoKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbXlT
Y29yZSA9IGZvcndhcmRSZXdpcmluZ1NlbGVjdGlvblNjb3JlKG5vZGUtPm9wKCkpOworICAgICAg
ICAgICAgICAgICAgICBpZiAobXlTY29yZSA8PSBiZXN0U2NvcmUpCisgICAgICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgYmVzdElEID0gaWQ7CisgICAg
ICAgICAgICAgICAgICAgIGJlc3RTY29yZSA9IG15U2NvcmU7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIE1pbmlmaWVkSUQgaWRUb1VzZTsKLSAg
ICAgICAgICAgICAgICBpZiAoISFkb3VibGVBc0ludDMySUQpCi0gICAgICAgICAgICAgICAgICAg
IGlkVG9Vc2UgPSBkb3VibGVBc0ludDMySUQ7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoISFp
bnQzMlRvRG91YmxlSUQpCi0gICAgICAgICAgICAgICAgICAgIGlkVG9Vc2UgPSBpbnQzMlRvRG91
YmxlSUQ7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoISF2YWx1ZVRvSW50MzJJRCkKLSAgICAg
ICAgICAgICAgICAgICAgaWRUb1VzZSA9IHZhbHVlVG9JbnQzMklEOwotICAgICAgICAgICAgICAg
IGVsc2UgaWYgKCEhdWludDMyVG9OdW1iZXJJRCkKLSAgICAgICAgICAgICAgICAgICAgaWRUb1Vz
ZSA9IHVpbnQzMlRvTnVtYmVySUQ7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
aWYgKCEhaWRUb1VzZSkgewotICAgICAgICAgICAgICAgICAgICBpbmZvID0gZ2VuZXJhdGlvbklu
Zm9zLmdldChpZFRvVXNlKTsKKyAgICAgICAgICAgICAgICBpZiAoISFiZXN0SUQpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaW5mbyA9IGdlbmVyYXRpb25JbmZvcy5nZXQoYmVzdElEKTsKICAgICAg
ICAgICAgICAgICAgICAgQVNTRVJUKGluZm8uZm9ybWF0ICE9IERhdGFGb3JtYXROb25lKTsKICAg
ICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCShy
ZXZpc2lvbiAxNTU3NDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9MTFZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzA4Nyw3ICszMDg3LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgaWYgKCFpc0xpdmUobm9kZSkpIHsKICAgICAgICAgICAgIGJvb2wgZm91bmQgPSBm
YWxzZTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKG5lZWRzT1NSQmFja3dhcmRSZXdp
cmluZyhub2RlLT5vcCgpKSkgeworICAgICAgICAgICAgaWYgKHBlcm1pdHNPU1JCYWNrd2FyZFJl
d2lyaW5nKG5vZGUtPm9wKCkpKSB7CiAgICAgICAgICAgICAgICAgbm9kZSA9IG5vZGUtPmNoaWxk
MSgpLm5vZGUoKTsKICAgICAgICAgICAgICAgICBpZiAodHJ5VG9TZXRDb25zdGFudEV4aXRBcmd1
bWVudChleGl0LCBpbmRleCwgbm9kZSkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKQEAg
LTMwOTYsMTAgKzMwOTYsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQogICAgICAgICAgICAg
CiAgICAgICAgICAgICBpZiAoIWZvdW5kKSB7Ci0gICAgICAgICAgICAgICAgTm9kZSogaW50MzJU
b0RvdWJsZSA9IDA7Ci0gICAgICAgICAgICAgICAgTm9kZSogdmFsdWVUb0ludDMyID0gMDsKLSAg
ICAgICAgICAgICAgICBOb2RlKiB1aW50MzJUb051bWJlciA9IDA7Ci0gICAgICAgICAgICAgICAg
Tm9kZSogZG91YmxlQXNJbnQzMiA9IDA7CisgICAgICAgICAgICAgICAgTm9kZSogYmVzdE5vZGUg
PSAwOworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJlc3RTY29yZSA9IDA7CiAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgSGFzaFNldDxOb2RlKj46Oml0ZXJhdG9yIGl0ZXIgPSBt
X2xpdmUuYmVnaW4oKTsKICAgICAgICAgICAgICAgICBIYXNoU2V0PE5vZGUqPjo6aXRlcmF0b3Ig
ZW5kID0gbV9saXZlLmVuZCgpOwpAQCAtMzExMSwzNiArMzEwOSwxOCBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgIGlmIChj
YW5kaWRhdGUtPmNoaWxkMSgpICE9IG5vZGUpCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjYW5kaWRhdGUtPm9wKCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgY2FzZSBJbnQzMlRvRG91YmxlOgotICAgICAgICAgICAgICAgICAg
ICAgICAgaW50MzJUb0RvdWJsZSA9IGNhbmRpZGF0ZTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBjYXNlIFZhbHVlVG9JbnQzMjoKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHZhbHVlVG9JbnQzMiA9IGNhbmRpZGF0ZTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBjYXNlIFVJbnQzMlRvTnVtYmVy
OgotICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyVG9OdW1iZXIgPSBjYW5kaWRhdGU7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBE
b3VibGVBc0ludDMyOgotICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyVG9OdW1iZXIgPSBj
YW5kaWRhdGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVCghbmVlZHNPU1JG
b3J3YXJkUmV3aXJpbmcoY2FuZGlkYXRlLT5vcCgpKSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBteVNjb3JlID0gZm9yd2FyZFJld2lyaW5nU2VsZWN0aW9uU2NvcmUoY2FuZGlkYXRlLT5v
cCgpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG15U2NvcmUgPD0gYmVzdFNjb3JlKQorICAg
ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIGJlc3RO
b2RlID0gY2FuZGlkYXRlOworICAgICAgICAgICAgICAgICAgICBiZXN0U2NvcmUgPSBteVNjb3Jl
OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBp
ZiAoZG91YmxlQXNJbnQzMikKLSAgICAgICAgICAgICAgICAgICAgbm9kZSA9IGRvdWJsZUFzSW50
MzI7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoaW50MzJUb0RvdWJsZSkKLSAgICAgICAgICAg
ICAgICAgICAgbm9kZSA9IGludDMyVG9Eb3VibGU7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAo
dmFsdWVUb0ludDMyKQotICAgICAgICAgICAgICAgICAgICBub2RlID0gdmFsdWVUb0ludDMyOwot
ICAgICAgICAgICAgICAgIGVsc2UgaWYgKHVpbnQzMlRvTnVtYmVyKQotICAgICAgICAgICAgICAg
ICAgICBub2RlID0gdWludDMyVG9OdW1iZXI7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgaWYgKGlzTGl2ZShub2RlKSkKKyAgICAgICAgICAgICAgICBpZiAoYmVzdE5vZGUpIHsK
KyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGlzTGl2ZShiZXN0Tm9kZSkpOworICAgICAgICAg
ICAgICAgICAgICBub2RlID0gYmVzdE5vZGU7CiAgICAgICAgICAgICAgICAgICAgIGZvdW5kID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIGlmICghZm91bmQpIHsK
</data>
<flag name="review"
          id="233794"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>