<?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>129806</bug_id>
          
          <creation_ts>2014-03-06 09:46:12 -0800</creation_ts>
          <short_desc>Clarify how we deal with &quot;special&quot; registers</short_desc>
          <delta_ts>2014-03-07 14:17:05 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>129822</dependson>
          <blocked>112840</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>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>987730</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-03-06 09:46:12 -0800</bug_when>
    <thetext>What is &quot;special&quot; anyway?  Nobody knows!  This bug aims to fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987731</commentid>
    <comment_count>1</comment_count>
      <attachid>226001</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-03-06 09:51:25 -0800</bug_when>
    <thetext>Created attachment 226001
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987732</commentid>
    <comment_count>2</comment_count>
      <attachid>226002</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-03-06 09:53:12 -0800</bug_when>
    <thetext>Created attachment 226002
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987736</commentid>
    <comment_count>3</comment_count>
      <attachid>226002</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-03-06 09:58:23 -0800</bug_when>
    <thetext>Comment on attachment 226002
the patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:16
&gt; +        you also have to wrory about the LR register, which we&apos;d want to say is &quot;not real&quot; but it&apos;s

*worry*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987746</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-03-06 10:27:50 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/165196</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987829</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-06 13:13:58 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 129822</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988344</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-03-07 14:17:05 -0800</bug_when>
    <thetext>Committed r165293: &lt;http://trac.webkit.org/changeset/165293&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226001</attachid>
            <date>2014-03-06 09:51:25 -0800</date>
            <delta_ts>2014-03-06 09:53:12 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>15535</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY1MTk0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBA
CisyMDE0LTAzLTA2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Q2xhcmlmeSBob3cgd2UgZGVhbCB3aXRoICJzcGVjaWFsIiByZWdpc3RlcnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTgwNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgUHJldmlvdXNseSB3
ZSBoYWQgdHdvIGRpZmZlcmVudCBwbGFjZXMgdGhhdCBkZWZpbmVkIHdoYXQgInN0YWNrIiByZWdp
c3RlcnMgYXJlLCBhIHRoaW5nCisgICAgICAgIGNhbGxlZCAic3BlY2lhbFJlZ2lzdGVycyIgdGhh
dCBoYWQgdW5jbGVhciBtZWFuaW5nLCBhbmQgYSByZWFsbHkgd2VpcmQgImZpcnN0UmVhbFJlZ2lz
dGVyIi8KKyAgICAgICAgInNlY29uZFJlYWxSZWdpc3RlciIvIm5leHRSZWdpc3RlciIgaWRpb20g
aW4gTWFjcm9Bc3NlbWJsZXIgdGhhdCBhcHBlYXJlZCB0byBvbmx5IGJlIHVzZWQgYnkKKyAgICAg
ICAgb25lIHBsYWNlIGFuZCBoYWQgYSBiYWtlZC1pbiBub3Rpb24gb2Ygd2hhdCBpdCBtZWFudCBm
b3IgYSByZWdpc3RlciB0byBiZSAicmVhbCIgb3Igbm90LgorICAgICAgICAKKyAgICAgICAgSXQn
cyBub3QgY29vbCB0byB1c2Ugd29yZHMgbGlrZSAicmVhbCIgYW5kICJzcGVjaWFsIiB0byBkZXNj
cmliZSByZWdpc3RlcnMsIGVzcGVjaWFsbHkgaWYgeW91CisgICAgICAgIGZhaWwgdG8gcXVhbGlm
eSB3aGF0IHRoYXQgbWVhbnMuIFRoaXMgb3JpZ2luYWxseSBtYWRlIHNlbnNlIG9uIFg4NiAtICJy
ZWFsIiByZWdpc3RlcnMgd2VyZQorICAgICAgICB0aGUgb25lcyB0aGF0IHdlcmVuJ3QgInN0YWNr
IHJlbGF0ZWQiIChzbyAicmVhbCIgd2FzIHRoZSBvcHBvc2l0ZSBvZiAic3RhY2siKS4gQnV0IG9u
IEFSTTY0LAorICAgICAgICB5b3UgYWxzbyBoYXZlIHRvIHdyb3J5IGFib3V0IHRoZSBMUiByZWdp
c3Rlciwgd2hpY2ggd2UnZCB3YW50IHRvIHNheSBpcyAibm90IHJlYWwiIGJ1dCBpdCdzCisgICAg
ICAgIGFsc28gbm90IGEgInN0YWNrIiByZWdpc3Rlci4gVGhpcyBnb3Qgc3VwZXIgY29uZnVzaW5n
LgorICAgICAgICAKKyAgICAgICAgU28sIHRoaXMgcGF0Y2ggcmVtb3ZlcyBhbnkgbWVudGlvbiBv
ZiAicmVhbCIgcmVnaXN0ZXJzLCBjb25zb2xpZGF0ZXMgdGhlIGtub3dsZWRnZSBvZiB3aGF0IGlz
CisgICAgICAgIGEgInN0YWNrIiByZWdpc3RlciwgYW5kIHVzZXMgdGhlIHdvcmQgInNwZWNpYWwi
IGluIG9ubHkgb25lIHBsYWNlIGFuZCBkZWZpbmVzIGl0IGNsZWFybHk6CisgICAgICAgIGl0J3Mg
YW55IHN0YWNrIHJlZ2lzdGVyLCBhbnkgcmVzZXJ2ZWQgaGFyZHdhcmUgcmVnaXN0ZXIgKGxpa2Ug
TFIpLCBvciBhbnkgcnVudGltZSByZWdpc3RlcgorICAgICAgICAobGlrZSBKU1ZBTFVFNjQncyB0
YWcgcmVnaXN0ZXJzKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgY2xlYW5zIHVwIHRoZSBjb2Rl
IGFuZCBmaXhlcyB3aGF0IHNlZW1zIGxpa2UgaXQgd2FzIHByb2JhYmx5IGEgaGFybWxlc3MgQVJN
NjQgYnVnOiB0aGUKKyAgICAgICAgUmVnIGFuZCBSZWdpc3RlclNldCBkYXRhIHN0cnVjdHVyZXMg
d291bGQgc29tZXRpbWVzIHRoaW5rIHRoYXQgRlAgd2FzIFEwLiBTb21laG93IHRoaXMKKyAgICAg
ICAgbWFnaWNhbGx5IGRpZG4ndCBicmVhayBhbnl0aGluZyBiZWNhdXNlIHlvdSBuZXZlciBuZWVk
IHRvIHNhdmUvcmVzdG9yZSBlaXRoZXIgRlAgb3IgUTAsIGJ1dAorICAgICAgICBpdCB3YXMgc3Rp
bGwgc3VwZXIgd2VpcmQuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaDoK
KyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6Omxhc3RSZWdpc3Rlcik6CisgICAgICAgICog
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
OjpuZXh0UmVnaXN0ZXIpOgorICAgICAgICAqIGZ0bC9GVExMb2NhdGlvbi5jcHA6CisgICAgICAg
IChKU0M6OkZUTDo6TG9jYXRpb246OnJlc3RvcmVJbnRvKToKKyAgICAgICAgKiBmdGwvRlRMU2F2
ZVJlc3RvcmUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OnNhdmVBbGxSZWdpc3RlcnMpOgorICAg
ICAgICAoSlNDOjpGVEw6OnJlc3RvcmVBbGxSZWdpc3RlcnMpOgorICAgICAgICAqIGZ0bC9GVExT
bG93UGF0aENhbGwuY3BwOgorICAgICAgICAqIGppdC9SZWdpc3RlclNldC5jcHA6CisgICAgICAg
IChKU0M6OlJlZ2lzdGVyU2V0OjpyZXNlcnZlZEhhcmR3YXJlUmVnaXN0ZXJzKToKKyAgICAgICAg
KEpTQzo6UmVnaXN0ZXJTZXQ6OnJ1bnRpbWVSZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjpSZWdp
c3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycyk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyU2V0Ojpj
YWxsZWVTYXZlUmVnaXN0ZXJzKToKKyAgICAgICAgKiBqaXQvUmVnaXN0ZXJTZXQuaDoKKwogMjAx
NC0wMy0wNiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIGZpeCBidWlsZC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
QVJNNjRBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgJKHJldmlzaW9uIDE2NTE5MCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDc4
LDcgKzQ3OCw3IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIEFSTTY0UmVnaXN0ZXJzOjpGUFJlZ2lz
dGVySUQgRlBSZWdpc3RlcklEOwogICAgIAogICAgIHN0YXRpYyBSZWdpc3RlcklEIGZpcnN0UmVn
aXN0ZXIoKSB7IHJldHVybiBBUk02NFJlZ2lzdGVyczo6eDA7IH0KLSAgICBzdGF0aWMgUmVnaXN0
ZXJJRCBsYXN0UmVnaXN0ZXIoKSB7IHJldHVybiBBUk02NFJlZ2lzdGVyczo6eDI4OyB9CisgICAg
c3RhdGljIFJlZ2lzdGVySUQgbGFzdFJlZ2lzdGVyKCkgeyByZXR1cm4gQVJNNjRSZWdpc3RlcnM6
OnNwOyB9CiAgICAgCiAgICAgc3RhdGljIEZQUmVnaXN0ZXJJRCBmaXJzdEZQUmVnaXN0ZXIoKSB7
IHJldHVybiBBUk02NFJlZ2lzdGVyczo6cTA7IH0KICAgICBzdGF0aWMgRlBSZWdpc3RlcklEIGxh
c3RGUFJlZ2lzdGVyKCkgeyByZXR1cm4gQVJNNjRSZWdpc3RlcnM6OnEzMTsgfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAkocmV2
aXNpb24gMTY1MTkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOCwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02OSwzMCAr
NjksOSBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIE1hY3JvQXNzZW1ibGVyIDogcHVibGljIE1h
Y3JvQXNzZW1ibGVyQmFzZSB7CiBwdWJsaWM6CiAKLSAgICBzdGF0aWMgYm9vbCBpc1N0YWNrUmVs
YXRlZChSZWdpc3RlcklEIHJlZykKLSAgICB7Ci0gICAgICAgIHJldHVybiByZWcgPT0gc3RhY2tQ
b2ludGVyUmVnaXN0ZXIgfHwgcmVnID09IGZyYW1lUG9pbnRlclJlZ2lzdGVyOwotICAgIH0KLSAg
ICAKLSAgICBzdGF0aWMgUmVnaXN0ZXJJRCBmaXJzdFJlYWxSZWdpc3RlcigpCi0gICAgewotICAg
ICAgICBSZWdpc3RlcklEIGZpcnN0UmVnaXN0ZXIgPSBNYWNyb0Fzc2VtYmxlcjo6Zmlyc3RSZWdp
c3RlcigpOwotICAgICAgICB3aGlsZSAoTWFjcm9Bc3NlbWJsZXI6OmlzU3RhY2tSZWxhdGVkKGZp
cnN0UmVnaXN0ZXIpKQotICAgICAgICAgICAgZmlyc3RSZWdpc3RlciA9IHN0YXRpY19jYXN0PFJl
Z2lzdGVySUQ+KGZpcnN0UmVnaXN0ZXIgKyAxKTsKLSAgICAgICAgcmV0dXJuIGZpcnN0UmVnaXN0
ZXI7Ci0gICAgfQotICAgIAogICAgIHN0YXRpYyBSZWdpc3RlcklEIG5leHRSZWdpc3RlcihSZWdp
c3RlcklEIHJlZykKICAgICB7Ci0gICAgICAgIFJlZ2lzdGVySUQgcmVzdWx0ID0gc3RhdGljX2Nh
c3Q8UmVnaXN0ZXJJRD4ocmVnICsgMSk7Ci0gICAgICAgIHdoaWxlIChNYWNyb0Fzc2VtYmxlcjo6
aXNTdGFja1JlbGF0ZWQocmVzdWx0KSkKLSAgICAgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0
PFJlZ2lzdGVySUQ+KHJlc3VsdCArIDEpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0K
LSAgICAKLSAgICBzdGF0aWMgUmVnaXN0ZXJJRCBzZWNvbmRSZWFsUmVnaXN0ZXIoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIG5leHRSZWdpc3RlcihmaXJzdFJlYWxSZWdpc3RlcigpKTsKKyAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlZ2lzdGVySUQ+KHJlZyArIDEpOwogICAgIH0KICAgICAK
ICAgICBzdGF0aWMgRlBSZWdpc3RlcklEIG5leHRGUFJlZ2lzdGVyKEZQUmVnaXN0ZXJJRCByZWcp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvY2F0aW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvY2F0aW9uLmNwcAkocmV2aXNp
b24gMTY1MTkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb2NhdGlvbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAog
I2luY2x1ZGUgIkZUTFNhdmVSZXN0b3JlLmgiCisjaW5jbHVkZSAiUmVnaXN0ZXJTZXQuaCIKICNp
bmNsdWRlIDx3dGYvQ29tbWFQcmludGVyLmg+CiAjaW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KICNp
bmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KQEAgLTE1Nyw3ICsxNTgsNyBAQCBGUFJSZWcgTG9jYXRp
b246OmZwcigpIGNvbnN0CiAKIHZvaWQgTG9jYXRpb246OnJlc3RvcmVJbnRvKE1hY3JvQXNzZW1i
bGVyJiBqaXQsIGNoYXIqIHNhdmVkUmVnaXN0ZXJzLCBHUFJSZWcgcmVzdWx0LCB1bnNpZ25lZCBu
dW1GcmFtZXNUb1BvcCkgY29uc3QKIHsKLSAgICBpZiAoaW52b2x2ZXNHUFIoKSAmJiBNYWNyb0Fz
c2VtYmxlcjo6aXNTdGFja1JlbGF0ZWQoZ3ByKCkpKSB7CisgICAgaWYgKGludm9sdmVzR1BSKCkg
JiYgUmVnaXN0ZXJTZXQ6OnN0YWNrUmVnaXN0ZXJzKCkuZ2V0KGdwcigpKSkgewogICAgICAgICAv
LyBNYWtlIHRoZSByZXN1bHQgR1BSIGNvbnRhaW4gdGhlIGFwcHJvcHJpYXRlIHN0YWNrIHJlZ2lz
dGVyLgogICAgICAgICBpZiAobnVtRnJhbWVzVG9Qb3ApIHsKICAgICAgICAgICAgIGppdC5tb3Zl
KE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgcmVzdWx0KTsKQEAgLTE3NCw3
ICsxNzUsNyBAQCB2b2lkIExvY2F0aW9uOjpyZXN0b3JlSW50byhNYWNyb0Fzc2VtYmxlCiAgICAg
fQogICAgIAogICAgIGlmIChpc0dQUigpKSB7Ci0gICAgICAgIGlmIChNYWNyb0Fzc2VtYmxlcjo6
aXNTdGFja1JlbGF0ZWQoZ3ByKCkpKSB7CisgICAgICAgIGlmIChSZWdpc3RlclNldDo6c3RhY2tS
ZWdpc3RlcnMoKS5nZXQoZ3ByKCkpKSB7CiAgICAgICAgICAgICAvLyBBbHJlYWR5IHJlc3RvcmVk
IGludG8gcmVzdWx0LgogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGppdC5sb2FkNjQoc2F2
ZWRSZWdpc3RlcnMgKyBvZmZzZXRPZkdQUihncHIoKSksIHJlc3VsdCk7CkBAIC0xOTcsNyArMTk4
LDcgQEAgdm9pZCBMb2NhdGlvbjo6cmVzdG9yZUludG8oTWFjcm9Bc3NlbWJsZQogICAgICAgICBy
ZXR1cm47CiAgICAgICAgIAogICAgIGNhc2UgSW5kaXJlY3Q6Ci0gICAgICAgIGlmIChNYWNyb0Fz
c2VtYmxlcjo6aXNTdGFja1JlbGF0ZWQoZ3ByKCkpKSB7CisgICAgICAgIGlmIChSZWdpc3RlclNl
dDo6c3RhY2tSZWdpc3RlcnMoKS5nZXQoZ3ByKCkpKSB7CiAgICAgICAgICAgICAvLyBUaGUgc3Rh
Y2sgcmVnaXN0ZXIgaXMgYWxyZWFkeSByZWNvdmVyZWQgaW50byByZXN1bHQuCiAgICAgICAgICAg
ICBqaXQubG9hZDY0KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdCwgb2Zmc2V0KCkpLCBy
ZXN1bHQpOwogICAgICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExTYXZlUmVzdG9yZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExTYXZlUmVzdG9yZS5jcHAJKHJldmlzaW9uIDE2NTE5MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMU2F2ZVJlc3RvcmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiRlBSSW5mby5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKICNp
bmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyU2V0LmgiCiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIApAQCAtNjksMzggKzcwLDc3IEBAIHNpemVf
dCBvZmZzZXRPZlJlZyhSZWcgcmVnKQogICAgIHJldHVybiBvZmZzZXRPZkZQUihyZWcuZnByKCkp
OwogfQogCituYW1lc3BhY2UgeworCitzdHJ1Y3QgUmVncyB7CisgICAgUmVncygpCisgICAgewor
ICAgICAgICBzcGVjaWFsID0gUmVnaXN0ZXJTZXQ6OnN0YWNrUmVnaXN0ZXJzKCk7CisgICAgICAg
IHNwZWNpYWwubWVyZ2UoUmVnaXN0ZXJTZXQ6OnJlc2VydmVkSGFyZHdhcmVSZWdpc3RlcnMoKSk7
CisgICAgICAgIAorICAgICAgICBmaXJzdCA9IE1hY3JvQXNzZW1ibGVyOjpmaXJzdFJlZ2lzdGVy
KCk7CisgICAgICAgIHdoaWxlIChzcGVjaWFsLmdldChmaXJzdCkpCisgICAgICAgICAgICBmaXJz
dCA9IE1hY3JvQXNzZW1ibGVyOjpuZXh0UmVnaXN0ZXIoZmlyc3QpOworICAgICAgICBzZWNvbmQg
PSBNYWNyb0Fzc2VtYmxlcjo6bmV4dFJlZ2lzdGVyKGZpcnN0KTsKKyAgICAgICAgd2hpbGUgKHNw
ZWNpYWwuZ2V0KHNlY29uZCkpCisgICAgICAgICAgICBzZWNvbmQgPSBNYWNyb0Fzc2VtYmxlcjo6
bmV4dFJlZ2lzdGVyKHNlY29uZCk7CisgICAgfQorICAgIAorICAgIFJlZ2lzdGVyU2V0IHNwZWNp
YWw7CisgICAgR1BSUmVnIGZpcnN0OworICAgIEdQUlJlZyBzZWNvbmQ7Cit9OworCit9IC8vIGFu
b255bW91cyBuYW1lc3BhY2UKKwogdm9pZCBzYXZlQWxsUmVnaXN0ZXJzKE1hY3JvQXNzZW1ibGVy
JiBqaXQsIGNoYXIqIHNjcmF0Y2hNZW1vcnkpCiB7CisgICAgUmVncyByZWdzOworICAgIAogICAg
IC8vIEdldCB0aGUgZmlyc3QgcmVnaXN0ZXIgb3V0IG9mIHRoZSB3YXksIHNvIHRoYXQgd2UgY2Fu
IHVzZSBpdCBhcyBhIHBvaW50ZXIuCi0gICAgaml0LnBva2U2NChNYWNyb0Fzc2VtYmxlcjo6Zmly
c3RSZWFsUmVnaXN0ZXIoKSwgMCk7Ci0gICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW1QdHIoc2NyYXRjaE1lbW9yeSksIE1hY3JvQXNzZW1ibGVyOjpmaXJzdFJlYWxSZWdpc3Rl
cigpKTsKKyAgICBqaXQucG9rZTY0KHJlZ3MuZmlyc3QsIDApOworICAgIGppdC5tb3ZlKE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHNjcmF0Y2hNZW1vcnkpLCByZWdzLmZpcnN0KTsKICAg
ICAKICAgICAvLyBHZXQgYWxsIG9mIHRoZSBvdGhlciBHUFJzIG91dCBvZiB0aGUgd2F5LgotICAg
IGZvciAoTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgcmVnID0gTWFjcm9Bc3NlbWJsZXI6OnNl
Y29uZFJlYWxSZWdpc3RlcigpOyByZWcgPD0gTWFjcm9Bc3NlbWJsZXI6Omxhc3RSZWdpc3Rlcigp
OyByZWcgPSBNYWNyb0Fzc2VtYmxlcjo6bmV4dFJlZ2lzdGVyKHJlZykpCi0gICAgICAgIGppdC5z
dG9yZTY0KHJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OmZpcnN0
UmVhbFJlZ2lzdGVyKCksIG9mZnNldE9mR1BSKHJlZykpKTsKKyAgICBmb3IgKE1hY3JvQXNzZW1i
bGVyOjpSZWdpc3RlcklEIHJlZyA9IHJlZ3Muc2Vjb25kOyByZWcgPD0gTWFjcm9Bc3NlbWJsZXI6
Omxhc3RSZWdpc3RlcigpOyByZWcgPSBNYWNyb0Fzc2VtYmxlcjo6bmV4dFJlZ2lzdGVyKHJlZykp
IHsKKyAgICAgICAgaWYgKHJlZ3Muc3BlY2lhbC5nZXQocmVnKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBqaXQuc3RvcmU2NChyZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJl
Z3MuZmlyc3QsIG9mZnNldE9mR1BSKHJlZykpKTsKKyAgICB9CiAgICAgCiAgICAgLy8gUmVzdG9y
ZSB0aGUgZmlyc3QgcmVnaXN0ZXIgaW50byB0aGUgc2Vjb25kIG9uZSBhbmQgc2F2ZSBpdC4KLSAg
ICBqaXQucGVlazY0KE1hY3JvQXNzZW1ibGVyOjpzZWNvbmRSZWFsUmVnaXN0ZXIoKSwgMCk7Ci0g
ICAgaml0LnN0b3JlNjQoTWFjcm9Bc3NlbWJsZXI6OnNlY29uZFJlYWxSZWdpc3RlcigpLCBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6Zmlyc3RSZWFsUmVnaXN0ZXIoKSwg
b2Zmc2V0T2ZHUFIoTWFjcm9Bc3NlbWJsZXI6OmZpcnN0UmVhbFJlZ2lzdGVyKCkpKSk7CisgICAg
aml0LnBlZWs2NChyZWdzLnNlY29uZCwgMCk7CisgICAgaml0LnN0b3JlNjQocmVncy5zZWNvbmQs
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlZ3MuZmlyc3QsIG9mZnNldE9mR1BSKHJlZ3MuZmly
c3QpKSk7CiAgICAgCiAgICAgLy8gRmluYWxseSBzYXZlIGFsbCBGUFIncy4KLSAgICBmb3IgKE1h
Y3JvQXNzZW1ibGVyOjpGUFJlZ2lzdGVySUQgcmVnID0gTWFjcm9Bc3NlbWJsZXI6OmZpcnN0RlBS
ZWdpc3RlcigpOyByZWcgPD0gTWFjcm9Bc3NlbWJsZXI6Omxhc3RGUFJlZ2lzdGVyKCk7IHJlZyA9
IE1hY3JvQXNzZW1ibGVyOjpuZXh0RlBSZWdpc3RlcihyZWcpKQotICAgICAgICBqaXQuc3RvcmVE
b3VibGUocmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6Zmlyc3RS
ZWFsUmVnaXN0ZXIoKSwgb2Zmc2V0T2ZGUFIocmVnKSkpOworICAgIGZvciAoTWFjcm9Bc3NlbWJs
ZXI6OkZQUmVnaXN0ZXJJRCByZWcgPSBNYWNyb0Fzc2VtYmxlcjo6Zmlyc3RGUFJlZ2lzdGVyKCk7
IHJlZyA8PSBNYWNyb0Fzc2VtYmxlcjo6bGFzdEZQUmVnaXN0ZXIoKTsgcmVnID0gTWFjcm9Bc3Nl
bWJsZXI6Om5leHRGUFJlZ2lzdGVyKHJlZykpIHsKKyAgICAgICAgaWYgKHJlZ3Muc3BlY2lhbC5n
ZXQocmVnKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBqaXQuc3RvcmVEb3VibGUo
cmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyZWdzLmZpcnN0LCBvZmZzZXRPZkZQUihyZWcp
KSk7CisgICAgfQogfQogCiB2b2lkIHJlc3RvcmVBbGxSZWdpc3RlcnMoTWFjcm9Bc3NlbWJsZXIm
IGppdCwgY2hhciogc2NyYXRjaE1lbW9yeSkKIHsKKyAgICBSZWdzIHJlZ3M7CisgICAgCiAgICAg
Ly8gR2l2ZSBvdXJzZWx2ZXMgYSBwb2ludGVyIHRvIHRoZSBzY3JhdGNoIG1lbW9yeS4KLSAgICBq
aXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihzY3JhdGNoTWVtb3J5KSwgTWFj
cm9Bc3NlbWJsZXI6OmZpcnN0UmVhbFJlZ2lzdGVyKCkpOworICAgIGppdC5tb3ZlKE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHNjcmF0Y2hNZW1vcnkpLCByZWdzLmZpcnN0KTsKICAgICAK
ICAgICAvLyBSZXN0b3JlIGFsbCBGUFIncy4KLSAgICBmb3IgKE1hY3JvQXNzZW1ibGVyOjpGUFJl
Z2lzdGVySUQgcmVnID0gTWFjcm9Bc3NlbWJsZXI6OmZpcnN0RlBSZWdpc3RlcigpOyByZWcgPD0g
TWFjcm9Bc3NlbWJsZXI6Omxhc3RGUFJlZ2lzdGVyKCk7IHJlZyA9IE1hY3JvQXNzZW1ibGVyOjpu
ZXh0RlBSZWdpc3RlcihyZWcpKQotICAgICAgICBqaXQubG9hZERvdWJsZShNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6Zmlyc3RSZWFsUmVnaXN0ZXIoKSwgb2Zmc2V0T2ZG
UFIocmVnKSksIHJlZyk7Ci0gICAgCi0gICAgZm9yIChNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJ
RCByZWcgPSBNYWNyb0Fzc2VtYmxlcjo6c2Vjb25kUmVhbFJlZ2lzdGVyKCk7IHJlZyA8PSBNYWNy
b0Fzc2VtYmxlcjo6bGFzdFJlZ2lzdGVyKCk7IHJlZyA9IE1hY3JvQXNzZW1ibGVyOjpuZXh0UmVn
aXN0ZXIocmVnKSkKLSAgICAgICAgaml0LmxvYWQ2NChNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhN
YWNyb0Fzc2VtYmxlcjo6Zmlyc3RSZWFsUmVnaXN0ZXIoKSwgb2Zmc2V0T2ZHUFIocmVnKSksIHJl
Zyk7CisgICAgZm9yIChNYWNyb0Fzc2VtYmxlcjo6RlBSZWdpc3RlcklEIHJlZyA9IE1hY3JvQXNz
ZW1ibGVyOjpmaXJzdEZQUmVnaXN0ZXIoKTsgcmVnIDw9IE1hY3JvQXNzZW1ibGVyOjpsYXN0RlBS
ZWdpc3RlcigpOyByZWcgPSBNYWNyb0Fzc2VtYmxlcjo6bmV4dEZQUmVnaXN0ZXIocmVnKSkgewor
ICAgICAgICBpZiAocmVncy5zcGVjaWFsLmdldChyZWcpKQorICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIGppdC5sb2FkRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlZ3MuZmly
c3QsIG9mZnNldE9mRlBSKHJlZykpLCByZWcpOworICAgIH0KKyAgICAKKyAgICBmb3IgKE1hY3Jv
QXNzZW1ibGVyOjpSZWdpc3RlcklEIHJlZyA9IHJlZ3Muc2Vjb25kOyByZWcgPD0gTWFjcm9Bc3Nl
bWJsZXI6Omxhc3RSZWdpc3RlcigpOyByZWcgPSBNYWNyb0Fzc2VtYmxlcjo6bmV4dFJlZ2lzdGVy
KHJlZykpIHsKKyAgICAgICAgaWYgKHJlZ3Muc3BlY2lhbC5nZXQocmVnKSkKKyAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICBqaXQubG9hZDY0KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJl
Z3MuZmlyc3QsIG9mZnNldE9mR1BSKHJlZykpLCByZWcpOworICAgIH0KICAgICAKLSAgICBqaXQu
bG9hZDY0KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmaXJzdFJlYWxS
ZWdpc3RlcigpLCBvZmZzZXRPZkdQUihNYWNyb0Fzc2VtYmxlcjo6Zmlyc3RSZWFsUmVnaXN0ZXIo
KSkpLCBNYWNyb0Fzc2VtYmxlcjo6Zmlyc3RSZWFsUmVnaXN0ZXIoKSk7CisgICAgaml0LmxvYWQ2
NChNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyZWdzLmZpcnN0LCBvZmZzZXRPZkdQUihyZWdzLmZp
cnN0KSksIHJlZ3MuZmlyc3QpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuY3BwCShyZXZp
c2lvbiAxNjUxOTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2Fs
bC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDggKzUyLDkgQEAgcHVibGljOgogICAgICAgICAs
IG1fbnVtQXJncyhudW1BcmdzKQogICAgICAgICAsIG1fcmV0dXJuUmVnaXN0ZXIocmV0dXJuUmVn
aXN0ZXIpCiAgICAgewotICAgICAgICAvLyBXZSBkb24ndCBjYXJlIHRoYXQgeW91J3JlIHVzaW5n
IGNhbGxlZS1zYXZlIG9yIHN0YWNrIHJlZ2lzdGVycy4KKyAgICAgICAgLy8gV2UgZG9uJ3QgY2Fy
ZSB0aGF0IHlvdSdyZSB1c2luZyBjYWxsZWUtc2F2ZSwgc3RhY2ssIG9yIGhhcmR3YXJlIHJlZ2lz
dGVycy4KICAgICAgICAgbV91c2VkUmVnaXN0ZXJzLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OnN0YWNr
UmVnaXN0ZXJzKCkpOworICAgICAgICBtX3VzZWRSZWdpc3RlcnMuZXhjbHVkZShSZWdpc3RlclNl
dDo6cmVzZXJ2ZWRIYXJkd2FyZVJlZ2lzdGVycygpKTsKICAgICAgICAgbV91c2VkUmVnaXN0ZXJz
LmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSk7CiAgICAgICAgIAog
ICAgICAgICAvLyBUaGUgcmV0dXJuIHJlZ2lzdGVyIGRvZXNuJ3QgbmVlZCB0byBiZSBzYXZlZC4K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwCShyZXZpc2lv
biAxNjUxOTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDIsMTggKzQyLDMxIEBAIFJlZ2lzdGVyU2V0IFJlZ2lzdGVyU2V0
OjpzdGFja1JlZ2lzdGVycygKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1SZWdpc3RlclNldCBS
ZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygpCitSZWdpc3RlclNldCBSZWdpc3RlclNldDo6
cmVzZXJ2ZWRIYXJkd2FyZVJlZ2lzdGVycygpCit7CisgICAgUmVnaXN0ZXJTZXQgcmVzdWx0Owor
I2lmIENQVShBUk02NCkKKyAgICByZXN1bHQuc2V0KEFSTTY0UmVnaXN0ZXJzOjpscik7CisjZW5k
aWYKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitSZWdpc3RlclNldCBSZWdpc3RlclNldDo6cnVu
dGltZVJlZ2lzdGVycygpCiB7CiAgICAgUmVnaXN0ZXJTZXQgcmVzdWx0OwotICAgIHJlc3VsdC5t
ZXJnZShzdGFja1JlZ2lzdGVycygpKTsKLSAgICByZXN1bHQuc2V0KEdQUkluZm86OmNhbGxGcmFt
ZVJlZ2lzdGVyKTsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6
dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKICAgICByZXN1bHQuc2V0KEdQUkluZm86OnRhZ01hc2tS
ZWdpc3Rlcik7CiAjZW5kaWYKLSNpZiBDUFUoQVJNNjQpCi0gICAgcmVzdWx0LnNldChBUk02NFJl
Z2lzdGVyczo6bHIpOwotI2VuZGlmCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworUmVnaXN0ZXJT
ZXQgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKQoreworICAgIFJlZ2lzdGVyU2V0IHJl
c3VsdDsKKyAgICByZXN1bHQubWVyZ2Uoc3RhY2tSZWdpc3RlcnMoKSk7CisgICAgcmVzdWx0Lm1l
cmdlKHJlc2VydmVkSGFyZHdhcmVSZWdpc3RlcnMoKSk7CisgICAgcmVzdWx0Lm1lcmdlKHJ1bnRp
bWVSZWdpc3RlcnMoKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtNjksNyArODIsOSBA
QCBSZWdpc3RlclNldCBSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzCiAgICAgcmVzdWx0LnNl
dChYODZSZWdpc3RlcnM6OnIxNSk7CiAjZWxpZiBDUFUoQVJNNjQpCiAgICAgLy8gV2UgZG9uJ3Qg
aW5jbHVkZSBMUiBpbiB0aGUgc2V0IG9mIGNhbGxlZS1zYXZlIHJlZ2lzdGVycyBldmVuIHRob3Vn
aCBpdCB0ZWNobmljYWxseSBiZWxvbmdzCi0gICAgLy8gdGhlcmUuIEJ1dCwgdGhlIHdheSB3ZSB1
c2UgdGhpcyBsaXN0LCBpdCBtYWtlcyBubyBzZW5zZSB0byBoYXZlIGl0IHRoZXJlLgorICAgIC8v
IHRoZXJlLiBUaGlzIGlzIGJlY2F1c2Ugd2UgdXNlIHRoaXMgc2V0IHRvIGRlc2NyaWJlIHRoZSBz
ZXQgb2YgcmVnaXN0ZXJzIHRoYXQgbmVlZCB0byBiZSBzYXZlZAorICAgIC8vIGJleW9uZCB3aGF0
IHlvdSB3b3VsZCBzYXZlIGJ5IHRoZSBwbGF0Zm9ybS1hZ25vc3RpYyAicHJlc2VydmUgcmV0dXJu
IGFkZHJlc3MiIGFuZCAicmVzdG9yZQorICAgIC8vIHJldHVybiBhZGRyZXNzIiBvcGVyYXRpb25z
IGluIENDYWxsSGVscGVycy4KICAgICBmb3IgKAogICAgICAgICBBUk02NFJlZ2lzdGVyczo6UmVn
aXN0ZXJJRCByZWcgPSBBUk02NFJlZ2lzdGVyczo6eDE5OwogICAgICAgICByZWcgPD0gQVJNNjRS
ZWdpc3RlcnM6OngyODsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJT
ZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0
LmgJKHJldmlzaW9uIDE2NTE5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0
ZXJTZXQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsOSBAQCBwdWJsaWM6CiAgICAgUmVn
aXN0ZXJTZXQoKSB7IH0KICAgICAKICAgICBzdGF0aWMgUmVnaXN0ZXJTZXQgc3RhY2tSZWdpc3Rl
cnMoKTsKLSAgICBzdGF0aWMgUmVnaXN0ZXJTZXQgc3BlY2lhbFJlZ2lzdGVycygpOworICAgIHN0
YXRpYyBSZWdpc3RlclNldCByZXNlcnZlZEhhcmR3YXJlUmVnaXN0ZXJzKCk7CisgICAgc3RhdGlj
IFJlZ2lzdGVyU2V0IHJ1bnRpbWVSZWdpc3RlcnMoKTsKKyAgICBzdGF0aWMgUmVnaXN0ZXJTZXQg
c3BlY2lhbFJlZ2lzdGVycygpOyAvLyBUaGUgdW5pb24gb2Ygc3RhY2ssIHJlc2VydmVkIGhhcmR3
YXJlLCBhbmQgcnVudGltZSByZWdpc3RlcnMuCiAgICAgc3RhdGljIFJlZ2lzdGVyU2V0IGNhbGxl
ZVNhdmVSZWdpc3RlcnMoKTsKICAgICBzdGF0aWMgUmVnaXN0ZXJTZXQgYWxsR1BScygpOwogICAg
IHN0YXRpYyBSZWdpc3RlclNldCBhbGxGUFJzKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226002</attachid>
            <date>2014-03-06 09:53:12 -0800</date>
            <delta_ts>2014-03-06 09:58:23 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>15439</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY1MTk0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBA
CisyMDE0LTAzLTA2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Q2xhcmlmeSBob3cgd2UgZGVhbCB3aXRoICJzcGVjaWFsIiByZWdpc3RlcnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTgwNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgUHJldmlvdXNseSB3
ZSBoYWQgdHdvIGRpZmZlcmVudCBwbGFjZXMgdGhhdCBkZWZpbmVkIHdoYXQgInN0YWNrIiByZWdp
c3RlcnMgYXJlLCBhIHRoaW5nCisgICAgICAgIGNhbGxlZCAic3BlY2lhbFJlZ2lzdGVycyIgdGhh
dCBoYWQgdW5jbGVhciBtZWFuaW5nLCBhbmQgYSByZWFsbHkgd2VpcmQgImZpcnN0UmVhbFJlZ2lz
dGVyIi8KKyAgICAgICAgInNlY29uZFJlYWxSZWdpc3RlciIvIm5leHRSZWdpc3RlciIgaWRpb20g
aW4gTWFjcm9Bc3NlbWJsZXIgdGhhdCBhcHBlYXJlZCB0byBvbmx5IGJlIHVzZWQgYnkKKyAgICAg
ICAgb25lIHBsYWNlIGFuZCBoYWQgYSBiYWtlZC1pbiBub3Rpb24gb2Ygd2hhdCBpdCBtZWFudCBm
b3IgYSByZWdpc3RlciB0byBiZSAicmVhbCIgb3Igbm90LgorICAgICAgICAKKyAgICAgICAgSXQn
cyBub3QgY29vbCB0byB1c2Ugd29yZHMgbGlrZSAicmVhbCIgYW5kICJzcGVjaWFsIiB0byBkZXNj
cmliZSByZWdpc3RlcnMsIGVzcGVjaWFsbHkgaWYgeW91CisgICAgICAgIGZhaWwgdG8gcXVhbGlm
eSB3aGF0IHRoYXQgbWVhbnMuIFRoaXMgb3JpZ2luYWxseSBtYWRlIHNlbnNlIG9uIFg4NiAtICJy
ZWFsIiByZWdpc3RlcnMgd2VyZQorICAgICAgICB0aGUgb25lcyB0aGF0IHdlcmVuJ3QgInN0YWNr
IHJlbGF0ZWQiIChzbyAicmVhbCIgd2FzIHRoZSBvcHBvc2l0ZSBvZiAic3RhY2siKS4gQnV0IG9u
IEFSTTY0LAorICAgICAgICB5b3UgYWxzbyBoYXZlIHRvIHdyb3J5IGFib3V0IHRoZSBMUiByZWdp
c3Rlciwgd2hpY2ggd2UnZCB3YW50IHRvIHNheSBpcyAibm90IHJlYWwiIGJ1dCBpdCdzCisgICAg
ICAgIGFsc28gbm90IGEgInN0YWNrIiByZWdpc3Rlci4gVGhpcyBnb3Qgc3VwZXIgY29uZnVzaW5n
LgorICAgICAgICAKKyAgICAgICAgU28sIHRoaXMgcGF0Y2ggcmVtb3ZlcyBhbnkgbWVudGlvbiBv
ZiAicmVhbCIgcmVnaXN0ZXJzLCBjb25zb2xpZGF0ZXMgdGhlIGtub3dsZWRnZSBvZiB3aGF0IGlz
CisgICAgICAgIGEgInN0YWNrIiByZWdpc3RlciwgYW5kIHVzZXMgdGhlIHdvcmQgc3BlY2lhbCBv
bmx5IGluIHBsYWNlcyB3aGVyZSBpdCdzIGNsZWFybHkgZGVmaW5lZCBhbmQKKyAgICAgICAgd2hl
cmUgbm8gYmV0dGVyIHdvcmQgY29tZXMgdG8gbWluZC4KKyAgICAgICAgCisgICAgICAgIFRoaXMg
Y2xlYW5zIHVwIHRoZSBjb2RlIGFuZCBmaXhlcyB3aGF0IHNlZW1zIGxpa2UgaXQgd2FzIHByb2Jh
Ymx5IGEgaGFybWxlc3MgQVJNNjQgYnVnOiB0aGUKKyAgICAgICAgUmVnIGFuZCBSZWdpc3RlclNl
dCBkYXRhIHN0cnVjdHVyZXMgd291bGQgc29tZXRpbWVzIHRoaW5rIHRoYXQgRlAgd2FzIFEwLiBT
b21laG93IHRoaXMKKyAgICAgICAgbWFnaWNhbGx5IGRpZG4ndCBicmVhayBhbnl0aGluZyBiZWNh
dXNlIHlvdSBuZXZlciBuZWVkIHRvIHNhdmUvcmVzdG9yZSBlaXRoZXIgRlAgb3IgUTAsIGJ1dAor
ICAgICAgICBpdCB3YXMgc3RpbGwgc3VwZXIgd2VpcmQuCisKKyAgICAgICAgKiBhc3NlbWJsZXIv
QVJNNjRBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6Omxhc3RSZWdp
c3Rlcik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyOjpuZXh0UmVnaXN0ZXIpOgorICAgICAgICAqIGZ0bC9GVExMb2Nh
dGlvbi5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6TG9jYXRpb246OnJlc3RvcmVJbnRvKToKKyAg
ICAgICAgKiBmdGwvRlRMU2F2ZVJlc3RvcmUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OnNhdmVB
bGxSZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjpGVEw6OnJlc3RvcmVBbGxSZWdpc3RlcnMpOgor
ICAgICAgICAqIGZ0bC9GVExTbG93UGF0aENhbGwuY3BwOgorICAgICAgICAqIGppdC9SZWdpc3Rl
clNldC5jcHA6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyU2V0OjpyZXNlcnZlZEhhcmR3YXJlUmVn
aXN0ZXJzKToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJTZXQ6OnJ1bnRpbWVSZWdpc3RlcnMpOgor
ICAgICAgICAoSlNDOjpSZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycyk6CisgICAgICAgIChK
U0M6OlJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKToKKyAgICAgICAgKiBqaXQvUmVn
aXN0ZXJTZXQuaDoKKwogMjAxNC0wMy0wNiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCBidWlsZC4KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgJKHJldmlzaW9uIDE2NTE5
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtNDc4LDcgKzQ3OCw3IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIEFSTTY0
UmVnaXN0ZXJzOjpGUFJlZ2lzdGVySUQgRlBSZWdpc3RlcklEOwogICAgIAogICAgIHN0YXRpYyBS
ZWdpc3RlcklEIGZpcnN0UmVnaXN0ZXIoKSB7IHJldHVybiBBUk02NFJlZ2lzdGVyczo6eDA7IH0K
LSAgICBzdGF0aWMgUmVnaXN0ZXJJRCBsYXN0UmVnaXN0ZXIoKSB7IHJldHVybiBBUk02NFJlZ2lz
dGVyczo6eDI4OyB9CisgICAgc3RhdGljIFJlZ2lzdGVySUQgbGFzdFJlZ2lzdGVyKCkgeyByZXR1
cm4gQVJNNjRSZWdpc3RlcnM6OnNwOyB9CiAgICAgCiAgICAgc3RhdGljIEZQUmVnaXN0ZXJJRCBm
aXJzdEZQUmVnaXN0ZXIoKSB7IHJldHVybiBBUk02NFJlZ2lzdGVyczo6cTA7IH0KICAgICBzdGF0
aWMgRlBSZWdpc3RlcklEIGxhc3RGUFJlZ2lzdGVyKCkgeyByZXR1cm4gQVJNNjRSZWdpc3RlcnM6
OnEzMTsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXIuaAkocmV2aXNpb24gMTY1MTkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTIsIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC02OSwzMCArNjksOSBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIE1hY3JvQXNz
ZW1ibGVyIDogcHVibGljIE1hY3JvQXNzZW1ibGVyQmFzZSB7CiBwdWJsaWM6CiAKLSAgICBzdGF0
aWMgYm9vbCBpc1N0YWNrUmVsYXRlZChSZWdpc3RlcklEIHJlZykKLSAgICB7Ci0gICAgICAgIHJl
dHVybiByZWcgPT0gc3RhY2tQb2ludGVyUmVnaXN0ZXIgfHwgcmVnID09IGZyYW1lUG9pbnRlclJl
Z2lzdGVyOwotICAgIH0KLSAgICAKLSAgICBzdGF0aWMgUmVnaXN0ZXJJRCBmaXJzdFJlYWxSZWdp
c3RlcigpCi0gICAgewotICAgICAgICBSZWdpc3RlcklEIGZpcnN0UmVnaXN0ZXIgPSBNYWNyb0Fz
c2VtYmxlcjo6Zmlyc3RSZWdpc3RlcigpOwotICAgICAgICB3aGlsZSAoTWFjcm9Bc3NlbWJsZXI6
OmlzU3RhY2tSZWxhdGVkKGZpcnN0UmVnaXN0ZXIpKQotICAgICAgICAgICAgZmlyc3RSZWdpc3Rl
ciA9IHN0YXRpY19jYXN0PFJlZ2lzdGVySUQ+KGZpcnN0UmVnaXN0ZXIgKyAxKTsKLSAgICAgICAg
cmV0dXJuIGZpcnN0UmVnaXN0ZXI7Ci0gICAgfQotICAgIAogICAgIHN0YXRpYyBSZWdpc3RlcklE
IG5leHRSZWdpc3RlcihSZWdpc3RlcklEIHJlZykKICAgICB7Ci0gICAgICAgIFJlZ2lzdGVySUQg
cmVzdWx0ID0gc3RhdGljX2Nhc3Q8UmVnaXN0ZXJJRD4ocmVnICsgMSk7Ci0gICAgICAgIHdoaWxl
IChNYWNyb0Fzc2VtYmxlcjo6aXNTdGFja1JlbGF0ZWQocmVzdWx0KSkKLSAgICAgICAgICAgIHJl
c3VsdCA9IHN0YXRpY19jYXN0PFJlZ2lzdGVySUQ+KHJlc3VsdCArIDEpOwotICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgIH0KLSAgICAKLSAgICBzdGF0aWMgUmVnaXN0ZXJJRCBzZWNvbmRSZWFs
UmVnaXN0ZXIoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5leHRSZWdpc3RlcihmaXJzdFJlYWxS
ZWdpc3RlcigpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlZ2lzdGVySUQ+KHJlZyAr
IDEpOwogICAgIH0KICAgICAKICAgICBzdGF0aWMgRlBSZWdpc3RlcklEIG5leHRGUFJlZ2lzdGVy
KEZQUmVnaXN0ZXJJRCByZWcpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
Y2F0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
Y2F0aW9uLmNwcAkocmV2aXNpb24gMTY1MTkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb2NhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBF
TkFCTEUoRlRMX0pJVCkKIAogI2luY2x1ZGUgIkZUTFNhdmVSZXN0b3JlLmgiCisjaW5jbHVkZSAi
UmVnaXN0ZXJTZXQuaCIKICNpbmNsdWRlIDx3dGYvQ29tbWFQcmludGVyLmg+CiAjaW5jbHVkZSA8
d3RmL0RhdGFMb2cuaD4KICNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KQEAgLTE1Nyw3ICsxNTgs
NyBAQCBGUFJSZWcgTG9jYXRpb246OmZwcigpIGNvbnN0CiAKIHZvaWQgTG9jYXRpb246OnJlc3Rv
cmVJbnRvKE1hY3JvQXNzZW1ibGVyJiBqaXQsIGNoYXIqIHNhdmVkUmVnaXN0ZXJzLCBHUFJSZWcg
cmVzdWx0LCB1bnNpZ25lZCBudW1GcmFtZXNUb1BvcCkgY29uc3QKIHsKLSAgICBpZiAoaW52b2x2
ZXNHUFIoKSAmJiBNYWNyb0Fzc2VtYmxlcjo6aXNTdGFja1JlbGF0ZWQoZ3ByKCkpKSB7CisgICAg
aWYgKGludm9sdmVzR1BSKCkgJiYgUmVnaXN0ZXJTZXQ6OnN0YWNrUmVnaXN0ZXJzKCkuZ2V0KGdw
cigpKSkgewogICAgICAgICAvLyBNYWtlIHRoZSByZXN1bHQgR1BSIGNvbnRhaW4gdGhlIGFwcHJv
cHJpYXRlIHN0YWNrIHJlZ2lzdGVyLgogICAgICAgICBpZiAobnVtRnJhbWVzVG9Qb3ApIHsKICAg
ICAgICAgICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3Rlciwg
cmVzdWx0KTsKQEAgLTE3NCw3ICsxNzUsNyBAQCB2b2lkIExvY2F0aW9uOjpyZXN0b3JlSW50byhN
YWNyb0Fzc2VtYmxlCiAgICAgfQogICAgIAogICAgIGlmIChpc0dQUigpKSB7Ci0gICAgICAgIGlm
IChNYWNyb0Fzc2VtYmxlcjo6aXNTdGFja1JlbGF0ZWQoZ3ByKCkpKSB7CisgICAgICAgIGlmIChS
ZWdpc3RlclNldDo6c3RhY2tSZWdpc3RlcnMoKS5nZXQoZ3ByKCkpKSB7CiAgICAgICAgICAgICAv
LyBBbHJlYWR5IHJlc3RvcmVkIGludG8gcmVzdWx0LgogICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgIGppdC5sb2FkNjQoc2F2ZWRSZWdpc3RlcnMgKyBvZmZzZXRPZkdQUihncHIoKSksIHJlc3Vs
dCk7CkBAIC0xOTcsNyArMTk4LDcgQEAgdm9pZCBMb2NhdGlvbjo6cmVzdG9yZUludG8oTWFjcm9B
c3NlbWJsZQogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIGNhc2UgSW5kaXJlY3Q6Ci0g
ICAgICAgIGlmIChNYWNyb0Fzc2VtYmxlcjo6aXNTdGFja1JlbGF0ZWQoZ3ByKCkpKSB7CisgICAg
ICAgIGlmIChSZWdpc3RlclNldDo6c3RhY2tSZWdpc3RlcnMoKS5nZXQoZ3ByKCkpKSB7CiAgICAg
ICAgICAgICAvLyBUaGUgc3RhY2sgcmVnaXN0ZXIgaXMgYWxyZWFkeSByZWNvdmVyZWQgaW50byBy
ZXN1bHQuCiAgICAgICAgICAgICBqaXQubG9hZDY0KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJl
c3VsdCwgb2Zmc2V0KCkpLCByZXN1bHQpOwogICAgICAgICAgICAgcmV0dXJuOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTYXZlUmVzdG9yZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTYXZlUmVzdG9yZS5jcHAJKHJldmlzaW9uIDE2
NTE5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2F2ZVJlc3RvcmUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRlBSSW5mby5oIgogI2luY2x1
ZGUgIkdQUkluZm8uaCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgorI2luY2x1ZGUgIlJl
Z2lzdGVyU2V0LmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIApAQCAtNjks
MzggKzcwLDc3IEBAIHNpemVfdCBvZmZzZXRPZlJlZyhSZWcgcmVnKQogICAgIHJldHVybiBvZmZz
ZXRPZkZQUihyZWcuZnByKCkpOwogfQogCituYW1lc3BhY2UgeworCitzdHJ1Y3QgUmVncyB7Cisg
ICAgUmVncygpCisgICAgeworICAgICAgICBzcGVjaWFsID0gUmVnaXN0ZXJTZXQ6OnN0YWNrUmVn
aXN0ZXJzKCk7CisgICAgICAgIHNwZWNpYWwubWVyZ2UoUmVnaXN0ZXJTZXQ6OnJlc2VydmVkSGFy
ZHdhcmVSZWdpc3RlcnMoKSk7CisgICAgICAgIAorICAgICAgICBmaXJzdCA9IE1hY3JvQXNzZW1i
bGVyOjpmaXJzdFJlZ2lzdGVyKCk7CisgICAgICAgIHdoaWxlIChzcGVjaWFsLmdldChmaXJzdCkp
CisgICAgICAgICAgICBmaXJzdCA9IE1hY3JvQXNzZW1ibGVyOjpuZXh0UmVnaXN0ZXIoZmlyc3Qp
OworICAgICAgICBzZWNvbmQgPSBNYWNyb0Fzc2VtYmxlcjo6bmV4dFJlZ2lzdGVyKGZpcnN0KTsK
KyAgICAgICAgd2hpbGUgKHNwZWNpYWwuZ2V0KHNlY29uZCkpCisgICAgICAgICAgICBzZWNvbmQg
PSBNYWNyb0Fzc2VtYmxlcjo6bmV4dFJlZ2lzdGVyKHNlY29uZCk7CisgICAgfQorICAgIAorICAg
IFJlZ2lzdGVyU2V0IHNwZWNpYWw7CisgICAgR1BSUmVnIGZpcnN0OworICAgIEdQUlJlZyBzZWNv
bmQ7Cit9OworCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKwogdm9pZCBzYXZlQWxsUmVnaXN0
ZXJzKE1hY3JvQXNzZW1ibGVyJiBqaXQsIGNoYXIqIHNjcmF0Y2hNZW1vcnkpCiB7CisgICAgUmVn
cyByZWdzOworICAgIAogICAgIC8vIEdldCB0aGUgZmlyc3QgcmVnaXN0ZXIgb3V0IG9mIHRoZSB3
YXksIHNvIHRoYXQgd2UgY2FuIHVzZSBpdCBhcyBhIHBvaW50ZXIuCi0gICAgaml0LnBva2U2NChN
YWNyb0Fzc2VtYmxlcjo6Zmlyc3RSZWFsUmVnaXN0ZXIoKSwgMCk7Ci0gICAgaml0Lm1vdmUoTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoc2NyYXRjaE1lbW9yeSksIE1hY3JvQXNzZW1ibGVy
OjpmaXJzdFJlYWxSZWdpc3RlcigpKTsKKyAgICBqaXQucG9rZTY0KHJlZ3MuZmlyc3QsIDApOwor
ICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHNjcmF0Y2hNZW1vcnkp
LCByZWdzLmZpcnN0KTsKICAgICAKICAgICAvLyBHZXQgYWxsIG9mIHRoZSBvdGhlciBHUFJzIG91
dCBvZiB0aGUgd2F5LgotICAgIGZvciAoTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgcmVnID0g
TWFjcm9Bc3NlbWJsZXI6OnNlY29uZFJlYWxSZWdpc3RlcigpOyByZWcgPD0gTWFjcm9Bc3NlbWJs
ZXI6Omxhc3RSZWdpc3RlcigpOyByZWcgPSBNYWNyb0Fzc2VtYmxlcjo6bmV4dFJlZ2lzdGVyKHJl
ZykpCi0gICAgICAgIGppdC5zdG9yZTY0KHJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFj
cm9Bc3NlbWJsZXI6OmZpcnN0UmVhbFJlZ2lzdGVyKCksIG9mZnNldE9mR1BSKHJlZykpKTsKKyAg
ICBmb3IgKE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIHJlZyA9IHJlZ3Muc2Vjb25kOyByZWcg
PD0gTWFjcm9Bc3NlbWJsZXI6Omxhc3RSZWdpc3RlcigpOyByZWcgPSBNYWNyb0Fzc2VtYmxlcjo6
bmV4dFJlZ2lzdGVyKHJlZykpIHsKKyAgICAgICAgaWYgKHJlZ3Muc3BlY2lhbC5nZXQocmVnKSkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBqaXQuc3RvcmU2NChyZWcsIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKHJlZ3MuZmlyc3QsIG9mZnNldE9mR1BSKHJlZykpKTsKKyAgICB9CiAg
ICAgCiAgICAgLy8gUmVzdG9yZSB0aGUgZmlyc3QgcmVnaXN0ZXIgaW50byB0aGUgc2Vjb25kIG9u
ZSBhbmQgc2F2ZSBpdC4KLSAgICBqaXQucGVlazY0KE1hY3JvQXNzZW1ibGVyOjpzZWNvbmRSZWFs
UmVnaXN0ZXIoKSwgMCk7Ci0gICAgaml0LnN0b3JlNjQoTWFjcm9Bc3NlbWJsZXI6OnNlY29uZFJl
YWxSZWdpc3RlcigpLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6Zmly
c3RSZWFsUmVnaXN0ZXIoKSwgb2Zmc2V0T2ZHUFIoTWFjcm9Bc3NlbWJsZXI6OmZpcnN0UmVhbFJl
Z2lzdGVyKCkpKSk7CisgICAgaml0LnBlZWs2NChyZWdzLnNlY29uZCwgMCk7CisgICAgaml0LnN0
b3JlNjQocmVncy5zZWNvbmQsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlZ3MuZmlyc3QsIG9m
ZnNldE9mR1BSKHJlZ3MuZmlyc3QpKSk7CiAgICAgCiAgICAgLy8gRmluYWxseSBzYXZlIGFsbCBG
UFIncy4KLSAgICBmb3IgKE1hY3JvQXNzZW1ibGVyOjpGUFJlZ2lzdGVySUQgcmVnID0gTWFjcm9B
c3NlbWJsZXI6OmZpcnN0RlBSZWdpc3RlcigpOyByZWcgPD0gTWFjcm9Bc3NlbWJsZXI6Omxhc3RG
UFJlZ2lzdGVyKCk7IHJlZyA9IE1hY3JvQXNzZW1ibGVyOjpuZXh0RlBSZWdpc3RlcihyZWcpKQot
ICAgICAgICBqaXQuc3RvcmVEb3VibGUocmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNy
b0Fzc2VtYmxlcjo6Zmlyc3RSZWFsUmVnaXN0ZXIoKSwgb2Zmc2V0T2ZGUFIocmVnKSkpOworICAg
IGZvciAoTWFjcm9Bc3NlbWJsZXI6OkZQUmVnaXN0ZXJJRCByZWcgPSBNYWNyb0Fzc2VtYmxlcjo6
Zmlyc3RGUFJlZ2lzdGVyKCk7IHJlZyA8PSBNYWNyb0Fzc2VtYmxlcjo6bGFzdEZQUmVnaXN0ZXIo
KTsgcmVnID0gTWFjcm9Bc3NlbWJsZXI6Om5leHRGUFJlZ2lzdGVyKHJlZykpIHsKKyAgICAgICAg
aWYgKHJlZ3Muc3BlY2lhbC5nZXQocmVnKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICBqaXQuc3RvcmVEb3VibGUocmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyZWdzLmZpcnN0
LCBvZmZzZXRPZkZQUihyZWcpKSk7CisgICAgfQogfQogCiB2b2lkIHJlc3RvcmVBbGxSZWdpc3Rl
cnMoTWFjcm9Bc3NlbWJsZXImIGppdCwgY2hhciogc2NyYXRjaE1lbW9yeSkKIHsKKyAgICBSZWdz
IHJlZ3M7CisgICAgCiAgICAgLy8gR2l2ZSBvdXJzZWx2ZXMgYSBwb2ludGVyIHRvIHRoZSBzY3Jh
dGNoIG1lbW9yeS4KLSAgICBqaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihz
Y3JhdGNoTWVtb3J5KSwgTWFjcm9Bc3NlbWJsZXI6OmZpcnN0UmVhbFJlZ2lzdGVyKCkpOworICAg
IGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHNjcmF0Y2hNZW1vcnkpLCBy
ZWdzLmZpcnN0KTsKICAgICAKICAgICAvLyBSZXN0b3JlIGFsbCBGUFIncy4KLSAgICBmb3IgKE1h
Y3JvQXNzZW1ibGVyOjpGUFJlZ2lzdGVySUQgcmVnID0gTWFjcm9Bc3NlbWJsZXI6OmZpcnN0RlBS
ZWdpc3RlcigpOyByZWcgPD0gTWFjcm9Bc3NlbWJsZXI6Omxhc3RGUFJlZ2lzdGVyKCk7IHJlZyA9
IE1hY3JvQXNzZW1ibGVyOjpuZXh0RlBSZWdpc3RlcihyZWcpKQotICAgICAgICBqaXQubG9hZERv
dWJsZShNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6Zmlyc3RSZWFsUmVn
aXN0ZXIoKSwgb2Zmc2V0T2ZGUFIocmVnKSksIHJlZyk7Ci0gICAgCi0gICAgZm9yIChNYWNyb0Fz
c2VtYmxlcjo6UmVnaXN0ZXJJRCByZWcgPSBNYWNyb0Fzc2VtYmxlcjo6c2Vjb25kUmVhbFJlZ2lz
dGVyKCk7IHJlZyA8PSBNYWNyb0Fzc2VtYmxlcjo6bGFzdFJlZ2lzdGVyKCk7IHJlZyA9IE1hY3Jv
QXNzZW1ibGVyOjpuZXh0UmVnaXN0ZXIocmVnKSkKLSAgICAgICAgaml0LmxvYWQ2NChNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6Zmlyc3RSZWFsUmVnaXN0ZXIoKSwgb2Zm
c2V0T2ZHUFIocmVnKSksIHJlZyk7CisgICAgZm9yIChNYWNyb0Fzc2VtYmxlcjo6RlBSZWdpc3Rl
cklEIHJlZyA9IE1hY3JvQXNzZW1ibGVyOjpmaXJzdEZQUmVnaXN0ZXIoKTsgcmVnIDw9IE1hY3Jv
QXNzZW1ibGVyOjpsYXN0RlBSZWdpc3RlcigpOyByZWcgPSBNYWNyb0Fzc2VtYmxlcjo6bmV4dEZQ
UmVnaXN0ZXIocmVnKSkgeworICAgICAgICBpZiAocmVncy5zcGVjaWFsLmdldChyZWcpKQorICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIGppdC5sb2FkRG91YmxlKE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKHJlZ3MuZmlyc3QsIG9mZnNldE9mRlBSKHJlZykpLCByZWcpOworICAgIH0KKyAg
ICAKKyAgICBmb3IgKE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIHJlZyA9IHJlZ3Muc2Vjb25k
OyByZWcgPD0gTWFjcm9Bc3NlbWJsZXI6Omxhc3RSZWdpc3RlcigpOyByZWcgPSBNYWNyb0Fzc2Vt
Ymxlcjo6bmV4dFJlZ2lzdGVyKHJlZykpIHsKKyAgICAgICAgaWYgKHJlZ3Muc3BlY2lhbC5nZXQo
cmVnKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBqaXQubG9hZDY0KE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKHJlZ3MuZmlyc3QsIG9mZnNldE9mR1BSKHJlZykpLCByZWcpOworICAg
IH0KICAgICAKLSAgICBqaXQubG9hZDY0KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNz
ZW1ibGVyOjpmaXJzdFJlYWxSZWdpc3RlcigpLCBvZmZzZXRPZkdQUihNYWNyb0Fzc2VtYmxlcjo6
Zmlyc3RSZWFsUmVnaXN0ZXIoKSkpLCBNYWNyb0Fzc2VtYmxlcjo6Zmlyc3RSZWFsUmVnaXN0ZXIo
KSk7CisgICAgaml0LmxvYWQ2NChNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyZWdzLmZpcnN0LCBv
ZmZzZXRPZkdQUihyZWdzLmZpcnN0KSksIHJlZ3MuZmlyc3QpOwogfQogCiB9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6RlRMCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRo
Q2FsbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93
UGF0aENhbGwuY3BwCShyZXZpc2lvbiAxNjUxOTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDggKzUyLDkgQEAg
cHVibGljOgogICAgICAgICAsIG1fbnVtQXJncyhudW1BcmdzKQogICAgICAgICAsIG1fcmV0dXJu
UmVnaXN0ZXIocmV0dXJuUmVnaXN0ZXIpCiAgICAgewotICAgICAgICAvLyBXZSBkb24ndCBjYXJl
IHRoYXQgeW91J3JlIHVzaW5nIGNhbGxlZS1zYXZlIG9yIHN0YWNrIHJlZ2lzdGVycy4KKyAgICAg
ICAgLy8gV2UgZG9uJ3QgY2FyZSB0aGF0IHlvdSdyZSB1c2luZyBjYWxsZWUtc2F2ZSwgc3RhY2ss
IG9yIGhhcmR3YXJlIHJlZ2lzdGVycy4KICAgICAgICAgbV91c2VkUmVnaXN0ZXJzLmV4Y2x1ZGUo
UmVnaXN0ZXJTZXQ6OnN0YWNrUmVnaXN0ZXJzKCkpOworICAgICAgICBtX3VzZWRSZWdpc3RlcnMu
ZXhjbHVkZShSZWdpc3RlclNldDo6cmVzZXJ2ZWRIYXJkd2FyZVJlZ2lzdGVycygpKTsKICAgICAg
ICAgbV91c2VkUmVnaXN0ZXJzLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3Rl
cnMoKSk7CiAgICAgICAgIAogICAgICAgICAvLyBUaGUgcmV0dXJuIHJlZ2lzdGVyIGRvZXNuJ3Qg
bmVlZCB0byBiZSBzYXZlZC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0
ZXJTZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0
ZXJTZXQuY3BwCShyZXZpc2lvbiAxNjUxOTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1JlZ2lzdGVyU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsMTggKzQyLDMxIEBAIFJlZ2lz
dGVyU2V0IFJlZ2lzdGVyU2V0OjpzdGFja1JlZ2lzdGVycygKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1SZWdpc3RlclNldCBSZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygpCitSZWdpc3Rl
clNldCBSZWdpc3RlclNldDo6cmVzZXJ2ZWRIYXJkd2FyZVJlZ2lzdGVycygpCit7CisgICAgUmVn
aXN0ZXJTZXQgcmVzdWx0OworI2lmIENQVShBUk02NCkKKyAgICByZXN1bHQuc2V0KEFSTTY0UmVn
aXN0ZXJzOjpscik7CisjZW5kaWYKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitSZWdpc3RlclNl
dCBSZWdpc3RlclNldDo6cnVudGltZVJlZ2lzdGVycygpCiB7CiAgICAgUmVnaXN0ZXJTZXQgcmVz
dWx0OwotICAgIHJlc3VsdC5tZXJnZShzdGFja1JlZ2lzdGVycygpKTsKLSAgICByZXN1bHQuc2V0
KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIHJl
c3VsdC5zZXQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKICAgICByZXN1bHQuc2V0
KEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcik7CiAjZW5kaWYKLSNpZiBDUFUoQVJNNjQpCi0gICAg
cmVzdWx0LnNldChBUk02NFJlZ2lzdGVyczo6bHIpOwotI2VuZGlmCisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKworUmVnaXN0ZXJTZXQgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKQorewor
ICAgIFJlZ2lzdGVyU2V0IHJlc3VsdDsKKyAgICByZXN1bHQubWVyZ2Uoc3RhY2tSZWdpc3RlcnMo
KSk7CisgICAgcmVzdWx0Lm1lcmdlKHJlc2VydmVkSGFyZHdhcmVSZWdpc3RlcnMoKSk7CisgICAg
cmVzdWx0Lm1lcmdlKHJ1bnRpbWVSZWdpc3RlcnMoKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IApAQCAtNjksNyArODIsOSBAQCBSZWdpc3RlclNldCBSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJl
Z2lzCiAgICAgcmVzdWx0LnNldChYODZSZWdpc3RlcnM6OnIxNSk7CiAjZWxpZiBDUFUoQVJNNjQp
CiAgICAgLy8gV2UgZG9uJ3QgaW5jbHVkZSBMUiBpbiB0aGUgc2V0IG9mIGNhbGxlZS1zYXZlIHJl
Z2lzdGVycyBldmVuIHRob3VnaCBpdCB0ZWNobmljYWxseSBiZWxvbmdzCi0gICAgLy8gdGhlcmUu
IEJ1dCwgdGhlIHdheSB3ZSB1c2UgdGhpcyBsaXN0LCBpdCBtYWtlcyBubyBzZW5zZSB0byBoYXZl
IGl0IHRoZXJlLgorICAgIC8vIHRoZXJlLiBUaGlzIGlzIGJlY2F1c2Ugd2UgdXNlIHRoaXMgc2V0
IHRvIGRlc2NyaWJlIHRoZSBzZXQgb2YgcmVnaXN0ZXJzIHRoYXQgbmVlZCB0byBiZSBzYXZlZAor
ICAgIC8vIGJleW9uZCB3aGF0IHlvdSB3b3VsZCBzYXZlIGJ5IHRoZSBwbGF0Zm9ybS1hZ25vc3Rp
YyAicHJlc2VydmUgcmV0dXJuIGFkZHJlc3MiIGFuZCAicmVzdG9yZQorICAgIC8vIHJldHVybiBh
ZGRyZXNzIiBvcGVyYXRpb25zIGluIENDYWxsSGVscGVycy4KICAgICBmb3IgKAogICAgICAgICBB
Uk02NFJlZ2lzdGVyczo6UmVnaXN0ZXJJRCByZWcgPSBBUk02NFJlZ2lzdGVyczo6eDE5OwogICAg
ICAgICByZWcgPD0gQVJNNjRSZWdpc3RlcnM6OngyODsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvUmVnaXN0ZXJTZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1JlZ2lzdGVyU2V0LmgJKHJldmlzaW9uIDE2NTE5MCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsOSBA
QCBwdWJsaWM6CiAgICAgUmVnaXN0ZXJTZXQoKSB7IH0KICAgICAKICAgICBzdGF0aWMgUmVnaXN0
ZXJTZXQgc3RhY2tSZWdpc3RlcnMoKTsKLSAgICBzdGF0aWMgUmVnaXN0ZXJTZXQgc3BlY2lhbFJl
Z2lzdGVycygpOworICAgIHN0YXRpYyBSZWdpc3RlclNldCByZXNlcnZlZEhhcmR3YXJlUmVnaXN0
ZXJzKCk7CisgICAgc3RhdGljIFJlZ2lzdGVyU2V0IHJ1bnRpbWVSZWdpc3RlcnMoKTsKKyAgICBz
dGF0aWMgUmVnaXN0ZXJTZXQgc3BlY2lhbFJlZ2lzdGVycygpOyAvLyBUaGUgdW5pb24gb2Ygc3Rh
Y2ssIHJlc2VydmVkIGhhcmR3YXJlLCBhbmQgcnVudGltZSByZWdpc3RlcnMuCiAgICAgc3RhdGlj
IFJlZ2lzdGVyU2V0IGNhbGxlZVNhdmVSZWdpc3RlcnMoKTsKICAgICBzdGF0aWMgUmVnaXN0ZXJT
ZXQgYWxsR1BScygpOwogICAgIHN0YXRpYyBSZWdpc3RlclNldCBhbGxGUFJzKCk7Cg==
</data>
<flag name="review"
          id="250192"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>