<?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>35138</bug_id>
          
          <creation_ts>2010-02-18 21:04:39 -0800</creation_ts>
          <short_desc>Improve interpreter getter performance</short_desc>
          <delta_ts>2010-02-18 22:23:34 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>191814</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-02-18 21:04:39 -0800</bug_when>
    <thetext>Improve interpreter getter performance</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191815</commentid>
    <comment_count>1</comment_count>
      <attachid>49055</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-02-18 21:11:18 -0800</bug_when>
    <thetext>Created attachment 49055
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191817</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-18 21:15:20 -0800</bug_when>
    <thetext>Attachment 49055 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
JavaScriptCore/interpreter/Interpreter.cpp:2166:  Missing spaces around &amp;&amp;  [whitespace/operators] [3]
JavaScriptCore/interpreter/Interpreter.cpp:2285:  Missing spaces around &amp;&amp;  [whitespace/operators] [3]
JavaScriptCore/interpreter/Interpreter.cpp:2348:  Missing spaces around &amp;&amp;  [whitespace/operators] [3]
Total errors found: 3 in 9 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>191822</commentid>
    <comment_count>3</comment_count>
      <attachid>49055</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-02-18 22:20:46 -0800</bug_when>
    <thetext>Comment on attachment 49055
Patch

pls to be removing bonus parens:

    if ((!slot.isCacheable())) {

r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191824</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-02-18 22:23:34 -0800</bug_when>
    <thetext>Committed r55002: &lt;http://trac.webkit.org/changeset/55002&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49055</attachid>
            <date>2010-02-18 21:11:18 -0800</date>
            <delta_ts>2010-02-18 22:20:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-35138-20100218211116.patch</filename>
            <type>text/plain</type>
            <size>26718</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBlMmYzY2U3Li4xYzJjNGYzIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEg
QEAKKzIwMTAtMDItMTggIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXByb3ZlIGludGVycHJl
dGVyIGdldHRlciBwZXJmb3JtYW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzUxMzgKKworICAgICAgICBJbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBv
ZiBnZXR0ZXIgZGlzcGF0Y2ggYnkgbWFraW5nIGl0IHBvc3NpYmxlCisgICAgICAgIGZvciB0aGUg
aW50ZXJwcmV0ZXIgdG8gY2FjaGUgdGhlIEdldHRlclNldHRlciBvYmplY3QgbG9va3VwLgorCisg
ICAgICAgIFRvIGRvIHRoaXMgd2Ugc2ltcGx5IG5lZWQgdG8gbWFrZSBQcm9wZXJ0eVNsb3QgYXdh
cmUgb2YgZ2V0dGVycworICAgICAgICBhcyBhIHBvdGVudGlhbGx5IGNhY2hlYWJsZSBwcm9wZXJ0
eSwgYW5kIHJlY29yZCB0aGUgYmFzZSBhbmQgdGhpcworICAgICAgICBvYmplY3RzIGZvciBhIGdl
dHRlciBhY2Nlc3MuICBUaGlzIGFsbG93cyB1cyB0byB1c2UgbW9yZS1vci1sZXNzCisgICAgICAg
IGlkZW50aWNhbCBjb2RlIHRvIHRoYXQgdXNlZCBieSB0aGUgbm9ybWFsIGdldF9ieV9pZCBjYWNo
aW5nLCB3aXRoCisgICAgICAgIHRoZSBkaXNwYXRjaCBiZWluZyB0aGUgb25seSBhY3R1YWwgZGlm
ZmVyZW5jZS4KKworICAgICAgICBJJ20gaG9sZGluZyBvZmYgb2YgaW1wbGVtZW50aW5nIHRoaXMg
aW4gdGhlIEpJVCB1bnRpbCBJIGRvIHNvbWUKKyAgICAgICAgY2xlYW51cCB0byB0cnkgYW5kIG1h
a2luZyBjb2RpbmcgaW4gdGhlIEpJVCBub3QgYmUgYXMgaG9ycmlibGUKKyAgICAgICAgYXMgaXQg
aXMgY3VycmVudGx5LgorCisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAg
ICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkZXJl
ZlN0cnVjdHVyZXMpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnJlZlN0cnVjdHVyZXMpOgor
ICAgICAgICAqIGJ5dGVjb2RlL09wY29kZS5oOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVy
cHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnJlc29sdmVHbG9iYWwpOgor
ICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6dHJ5Q2FjaGVHZXRCeUlEKToKKyAgICAgICAgKEpT
Qzo6SW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKToKKyAgICAgICAgKiBqaXQvSklULmNwcDoK
KyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAgICAgKiBq
aXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OnRyeUNhY2hlR2V0QnlJ
RCk6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50
aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmZpbGxHZXR0ZXJQcm9w
ZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90LmNwcDoKKyAgICAgICAg
KEpTQzo6UHJvcGVydHlTbG90OjpmdW5jdGlvbkdldHRlcik6CisgICAgICAgICogcnVudGltZS9Q
cm9wZXJ0eVNsb3QuaDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlTbG90Ojppc0dldHRlcik6Cisg
ICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6aXNDYWNoZWFibGUpOgorICAgICAgICAoSlNDOjpQ
cm9wZXJ0eVNsb3Q6OmlzQ2FjaGVhYmxlVmFsdWUpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eVNs
b3Q6OnNldFZhbHVlU2xvdCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6c2V0R2V0dGVy
U2xvdCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6c2V0Q2FjaGVhYmxlR2V0dGVyU2xv
dCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6Y2xlYXJPZmZzZXQpOgorICAgICAgICAo
SlNDOjpQcm9wZXJ0eVNsb3Q6OnRoaXNWYWx1ZSk6CisKIDIwMTAtMDItMTcgIFhhbiBMb3BleiAg
PHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25o
YS4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDBlYzE4ODguLjY4ZGVi
YjIgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysr
IGIvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtNzY1LDYgKzc2NSwy
NiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFZlY3RvcjxJ
bnN0cnVjdGlvbj46OmNvbnN0X2l0ZXJhdG9yJgogICAgICAgICAgICAgcHJpbnRHZXRCeUlkT3Ao
ZXhlYywgbG9jYXRpb24sIGl0LCAiZ2V0X2J5X2lkX2NoYWluIik7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQorICAgICAgICBjYXNlIG9wX2dldF9ieV9pZF9nZXR0ZXJfc2VsZjogewor
ICAgICAgICAgICAgcHJpbnRHZXRCeUlkT3AoZXhlYywgbG9jYXRpb24sIGl0LCAiZ2V0X2J5X2lk
X2dldHRlcl9zZWxmIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBj
YXNlIG9wX2dldF9ieV9pZF9nZXR0ZXJfc2VsZl9saXN0OiB7CisgICAgICAgICAgICBwcmludEdl
dEJ5SWRPcChleGVjLCBsb2NhdGlvbiwgaXQsICJnZXRfYnlfaWRfZ2V0dGVyX3NlbGZfbGlzdCIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBvcF9nZXRfYnlf
aWRfZ2V0dGVyX3Byb3RvOiB7CisgICAgICAgICAgICBwcmludEdldEJ5SWRPcChleGVjLCBsb2Nh
dGlvbiwgaXQsICJnZXRfYnlfaWRfZ2V0dGVyX3Byb3RvIik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBjYXNlIG9wX2dldF9ieV9pZF9nZXR0ZXJfcHJvdG9fbGlzdDog
eworICAgICAgICAgICAgcHJpbnRHZXRCeUlkT3AoZXhlYywgbG9jYXRpb24sIGl0LCAiZ2V0X2J5
X2lkX2dldHRlcl9wcm90b19saXN0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICBjYXNlIG9wX2dldF9ieV9pZF9nZXR0ZXJfY2hhaW46IHsKKyAgICAgICAgICAgIHBy
aW50R2V0QnlJZE9wKGV4ZWMsIGxvY2F0aW9uLCBpdCwgImdldF9ieV9pZF9nZXR0ZXJfY2hhaW4i
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2J5
X2lkX2dlbmVyaWM6IHsKICAgICAgICAgICAgIHByaW50R2V0QnlJZE9wKGV4ZWMsIGxvY2F0aW9u
LCBpdCwgImdldF9ieV9pZF9nZW5lcmljIik7CiAgICAgICAgICAgICBicmVhazsKQEAgLTEzNTUs
MTYgKzEzNzUsMTYgQEAgdm9pZCBDb2RlQmxvY2s6OmRlcmVmU3RydWN0dXJlcyhJbnN0cnVjdGlv
biogdlBDKSBjb25zdAogewogICAgIEludGVycHJldGVyKiBpbnRlcnByZXRlciA9IG1fZ2xvYmFs
RGF0YS0+aW50ZXJwcmV0ZXI7CiAKLSAgICBpZiAodlBDWzBdLnUub3Bjb2RlID09IGludGVycHJl
dGVyLT5nZXRPcGNvZGUob3BfZ2V0X2J5X2lkX3NlbGYpKSB7CisgICAgaWYgKHZQQ1swXS51Lm9w
Y29kZSA9PSBpbnRlcnByZXRlci0+Z2V0T3Bjb2RlKG9wX2dldF9ieV9pZF9zZWxmKSB8fCB2UENb
MF0udS5vcGNvZGUgPT0gaW50ZXJwcmV0ZXItPmdldE9wY29kZShvcF9nZXRfYnlfaWRfZ2V0dGVy
X3NlbGYpKSB7CiAgICAgICAgIHZQQ1s0XS51LnN0cnVjdHVyZS0+ZGVyZWYoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KLSAgICBpZiAodlBDWzBdLnUub3Bjb2RlID09IGludGVycHJldGVyLT5n
ZXRPcGNvZGUob3BfZ2V0X2J5X2lkX3Byb3RvKSkgeworICAgIGlmICh2UENbMF0udS5vcGNvZGUg
PT0gaW50ZXJwcmV0ZXItPmdldE9wY29kZShvcF9nZXRfYnlfaWRfcHJvdG8pIHx8IHZQQ1swXS51
Lm9wY29kZSA9PSBpbnRlcnByZXRlci0+Z2V0T3Bjb2RlKG9wX2dldF9ieV9pZF9nZXR0ZXJfcHJv
dG8pKSB7CiAgICAgICAgIHZQQ1s0XS51LnN0cnVjdHVyZS0+ZGVyZWYoKTsKICAgICAgICAgdlBD
WzVdLnUuc3RydWN0dXJlLT5kZXJlZigpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGlm
ICh2UENbMF0udS5vcGNvZGUgPT0gaW50ZXJwcmV0ZXItPmdldE9wY29kZShvcF9nZXRfYnlfaWRf
Y2hhaW4pKSB7CisgICAgaWYgKHZQQ1swXS51Lm9wY29kZSA9PSBpbnRlcnByZXRlci0+Z2V0T3Bj
b2RlKG9wX2dldF9ieV9pZF9jaGFpbikgfHwgdlBDWzBdLnUub3Bjb2RlID09IGludGVycHJldGVy
LT5nZXRPcGNvZGUob3BfZ2V0X2J5X2lkX2dldHRlcl9jaGFpbikpIHsKICAgICAgICAgdlBDWzRd
LnUuc3RydWN0dXJlLT5kZXJlZigpOwogICAgICAgICB2UENbNV0udS5zdHJ1Y3R1cmVDaGFpbi0+
ZGVyZWYoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTM4NSw3ICsxNDA1LDkgQEAgdm9pZCBDb2Rl
QmxvY2s6OmRlcmVmU3RydWN0dXJlcyhJbnN0cnVjdGlvbiogdlBDKSBjb25zdAogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGlmICgodlBDWzBdLnUub3Bjb2RlID09IGludGVycHJldGVyLT5n
ZXRPcGNvZGUob3BfZ2V0X2J5X2lkX3Byb3RvX2xpc3QpKQotICAgICAgICB8fCAodlBDWzBdLnUu
b3Bjb2RlID09IGludGVycHJldGVyLT5nZXRPcGNvZGUob3BfZ2V0X2J5X2lkX3NlbGZfbGlzdCkp
KSB7CisgICAgICAgIHx8ICh2UENbMF0udS5vcGNvZGUgPT0gaW50ZXJwcmV0ZXItPmdldE9wY29k
ZShvcF9nZXRfYnlfaWRfc2VsZl9saXN0KSkKKyAgICAgICAgfHwgKHZQQ1swXS51Lm9wY29kZSA9
PSBpbnRlcnByZXRlci0+Z2V0T3Bjb2RlKG9wX2dldF9ieV9pZF9nZXR0ZXJfcHJvdG9fbGlzdCkp
CisgICAgICAgIHx8ICh2UENbMF0udS5vcGNvZGUgPT0gaW50ZXJwcmV0ZXItPmdldE9wY29kZShv
cF9nZXRfYnlfaWRfZ2V0dGVyX3NlbGZfbGlzdCkpKSB7CiAgICAgICAgIFBvbHltb3JwaGljQWNj
ZXNzU3RydWN0dXJlTGlzdCogcG9seW1vcnBoaWNTdHJ1Y3R1cmVzID0gdlBDWzRdLnUucG9seW1v
cnBoaWNTdHJ1Y3R1cmVzOwogICAgICAgICBwb2x5bW9ycGhpY1N0cnVjdHVyZXMtPmRlcmVmU3Ry
dWN0dXJlcyh2UENbNV0udS5vcGVyYW5kKTsKICAgICAgICAgZGVsZXRlIHBvbHltb3JwaGljU3Ry
dWN0dXJlczsKQEAgLTE0MDAsMTYgKzE0MjIsMTYgQEAgdm9pZCBDb2RlQmxvY2s6OnJlZlN0cnVj
dHVyZXMoSW5zdHJ1Y3Rpb24qIHZQQykgY29uc3QKIHsKICAgICBJbnRlcnByZXRlciogaW50ZXJw
cmV0ZXIgPSBtX2dsb2JhbERhdGEtPmludGVycHJldGVyOwogCi0gICAgaWYgKHZQQ1swXS51Lm9w
Y29kZSA9PSBpbnRlcnByZXRlci0+Z2V0T3Bjb2RlKG9wX2dldF9ieV9pZF9zZWxmKSkgeworICAg
IGlmICh2UENbMF0udS5vcGNvZGUgPT0gaW50ZXJwcmV0ZXItPmdldE9wY29kZShvcF9nZXRfYnlf
aWRfc2VsZikgfHwgdlBDWzBdLnUub3Bjb2RlID09IGludGVycHJldGVyLT5nZXRPcGNvZGUob3Bf
Z2V0X2J5X2lkX2dldHRlcl9zZWxmKSkgewogICAgICAgICB2UENbNF0udS5zdHJ1Y3R1cmUtPnJl
ZigpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGlmICh2UENbMF0udS5vcGNvZGUgPT0g
aW50ZXJwcmV0ZXItPmdldE9wY29kZShvcF9nZXRfYnlfaWRfcHJvdG8pKSB7CisgICAgaWYgKHZQ
Q1swXS51Lm9wY29kZSA9PSBpbnRlcnByZXRlci0+Z2V0T3Bjb2RlKG9wX2dldF9ieV9pZF9wcm90
bykgfHwgdlBDWzBdLnUub3Bjb2RlID09IGludGVycHJldGVyLT5nZXRPcGNvZGUob3BfZ2V0X2J5
X2lkX2dldHRlcl9wcm90bykpIHsKICAgICAgICAgdlBDWzRdLnUuc3RydWN0dXJlLT5yZWYoKTsK
ICAgICAgICAgdlBDWzVdLnUuc3RydWN0dXJlLT5yZWYoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KLSAgICBpZiAodlBDWzBdLnUub3Bjb2RlID09IGludGVycHJldGVyLT5nZXRPcGNvZGUob3Bf
Z2V0X2J5X2lkX2NoYWluKSkgeworICAgIGlmICh2UENbMF0udS5vcGNvZGUgPT0gaW50ZXJwcmV0
ZXItPmdldE9wY29kZShvcF9nZXRfYnlfaWRfY2hhaW4pIHx8IHZQQ1swXS51Lm9wY29kZSA9PSBp
bnRlcnByZXRlci0+Z2V0T3Bjb2RlKG9wX2dldF9ieV9pZF9nZXR0ZXJfY2hhaW4pKSB7CiAgICAg
ICAgIHZQQ1s0XS51LnN0cnVjdHVyZS0+cmVmKCk7CiAgICAgICAgIHZQQ1s1XS51LnN0cnVjdHVy
ZUNoYWluLT5yZWYoKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvT3Bjb2RlLmggYi9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaApp
bmRleCBkOWIyMTUzLi41NjU1NWYzIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9PcGNvZGUuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaApAQCAtMTA0
LDYgKzEwNCwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgbWFjcm8ob3BfZ2V0X2J5X2lk
X3Byb3RvLCA4KSBcCiAgICAgICAgIG1hY3JvKG9wX2dldF9ieV9pZF9wcm90b19saXN0LCA4KSBc
CiAgICAgICAgIG1hY3JvKG9wX2dldF9ieV9pZF9jaGFpbiwgOCkgXAorICAgICAgICBtYWNybyhv
cF9nZXRfYnlfaWRfZ2V0dGVyX3NlbGYsIDgpIFwKKyAgICAgICAgbWFjcm8ob3BfZ2V0X2J5X2lk
X2dldHRlcl9zZWxmX2xpc3QsIDgpIFwKKyAgICAgICAgbWFjcm8ob3BfZ2V0X2J5X2lkX2dldHRl
cl9wcm90bywgOCkgXAorICAgICAgICBtYWNybyhvcF9nZXRfYnlfaWRfZ2V0dGVyX3Byb3RvX2xp
c3QsIDgpIFwKKyAgICAgICAgbWFjcm8ob3BfZ2V0X2J5X2lkX2dldHRlcl9jaGFpbiwgOCkgXAog
ICAgICAgICBtYWNybyhvcF9nZXRfYnlfaWRfZ2VuZXJpYywgOCkgXAogICAgICAgICBtYWNybyhv
cF9nZXRfYXJyYXlfbGVuZ3RoLCA4KSBcCiAgICAgICAgIG1hY3JvKG9wX2dldF9zdHJpbmdfbGVu
Z3RoLCA4KSBcCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5jcHAgYi9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKaW5k
ZXggZGZlMWE1Yy4uNjU2ZjJiYyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVy
cHJldGVyLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkRlYnVnZ2VyQ2FsbEZyYW1l
LmgiCiAjaW5jbHVkZSAiRXZhbENvZGVDYWNoZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBl
cnMuaCIKKyNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJHbG9iYWxFdmFsRnVu
Y3Rpb24uaCIKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJKU0FycmF5Lmgi
CkBAIC0xNjksNyArMTcwLDcgQEAgTkVWRVJfSU5MSU5FIGJvb2wgSW50ZXJwcmV0ZXI6OnJlc29s
dmVHbG9iYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RydWN0aW9uKgogICAgIFByb3BlcnR5
U2xvdCBzbG90KGdsb2JhbE9iamVjdCk7CiAgICAgaWYgKGdsb2JhbE9iamVjdC0+Z2V0UHJvcGVy
dHlTbG90KGNhbGxGcmFtZSwgaWRlbnQsIHNsb3QpKSB7CiAgICAgICAgIEpTVmFsdWUgcmVzdWx0
ID0gc2xvdC5nZXRWYWx1ZShjYWxsRnJhbWUsIGlkZW50KTsKLSAgICAgICAgaWYgKHNsb3QuaXND
YWNoZWFibGUoKSAmJiAhZ2xvYmFsT2JqZWN0LT5zdHJ1Y3R1cmUoKS0+aXNVbmNhY2hlYWJsZURp
Y3Rpb25hcnkoKSAmJiBzbG90LnNsb3RCYXNlKCkgPT0gZ2xvYmFsT2JqZWN0KSB7CisgICAgICAg
IGlmIChzbG90LmlzQ2FjaGVhYmxlVmFsdWUoKSAmJiAhZ2xvYmFsT2JqZWN0LT5zdHJ1Y3R1cmUo
KS0+aXNVbmNhY2hlYWJsZURpY3Rpb25hcnkoKSAmJiBzbG90LnNsb3RCYXNlKCkgPT0gZ2xvYmFs
T2JqZWN0KSB7CiAgICAgICAgICAgICBpZiAodlBDWzRdLnUuc3RydWN0dXJlKQogICAgICAgICAg
ICAgICAgIHZQQ1s0XS51LnN0cnVjdHVyZS0+ZGVyZWYoKTsKICAgICAgICAgICAgIGdsb2JhbE9i
amVjdC0+c3RydWN0dXJlKCktPnJlZigpOwpAQCAtMTAwMCw3ICsxMDAxLDcgQEAgTkVWRVJfSU5M
SU5FIHZvaWQgSW50ZXJwcmV0ZXI6OnRyeUNhY2hlR2V0QnlJRChDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgQ29kZUJsb2NrKgogICAgIH0KIAogICAgIC8vIFVuY2FjaGVhYmxlOiBnaXZlIHVwLgotICAg
IGlmICghc2xvdC5pc0NhY2hlYWJsZSgpKSB7CisgICAgaWYgKCghc2xvdC5pc0NhY2hlYWJsZSgp
KSkgewogICAgICAgICB2UENbMF0gPSBnZXRPcGNvZGUob3BfZ2V0X2J5X2lkX2dlbmVyaWMpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTAyOSw3ICsxMDMwLDcgQEAgTkVWRVJfSU5MSU5F
IHZvaWQgSW50ZXJwcmV0ZXI6OnRyeUNhY2hlR2V0QnlJRChDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
Q29kZUJsb2NrKgogICAgIC8vIENhY2hlIGhpdDogU3BlY2lhbGl6ZSBpbnN0cnVjdGlvbiBhbmQg
cmVmIFN0cnVjdHVyZXMuCiAKICAgICBpZiAoc2xvdC5zbG90QmFzZSgpID09IGJhc2VWYWx1ZSkg
ewotICAgICAgICB2UENbMF0gPSBnZXRPcGNvZGUob3BfZ2V0X2J5X2lkX3NlbGYpOworICAgICAg
ICB2UENbMF0gPSBzbG90LmlzR2V0dGVyKCkgPyBnZXRPcGNvZGUob3BfZ2V0X2J5X2lkX2dldHRl
cl9zZWxmKSA6IGdldE9wY29kZShvcF9nZXRfYnlfaWRfc2VsZik7CiAgICAgICAgIHZQQ1s1XSA9
IHNsb3QuY2FjaGVkT2Zmc2V0KCk7CiAKICAgICAgICAgY29kZUJsb2NrLT5yZWZTdHJ1Y3R1cmVz
KHZQQyk7CkBAIC0xMDU2LDcgKzEwNTcsNyBAQCBORVZFUl9JTkxJTkUgdm9pZCBJbnRlcnByZXRl
cjo6dHJ5Q2FjaGVHZXRCeUlEKENhbGxGcmFtZSogY2FsbEZyYW1lLCBDb2RlQmxvY2sqCiAKICAg
ICAgICAgQVNTRVJUKCFiYXNlT2JqZWN0LT5zdHJ1Y3R1cmUoKS0+aXNVbmNhY2hlYWJsZURpY3Rp
b25hcnkoKSk7CiAKLSAgICAgICAgdlBDWzBdID0gZ2V0T3Bjb2RlKG9wX2dldF9ieV9pZF9wcm90
byk7CisgICAgICAgIHZQQ1swXSA9IHNsb3QuaXNHZXR0ZXIoKSA/IGdldE9wY29kZShvcF9nZXRf
YnlfaWRfZ2V0dGVyX3Byb3RvKSA6IGdldE9wY29kZShvcF9nZXRfYnlfaWRfcHJvdG8pOwogICAg
ICAgICB2UENbNV0gPSBiYXNlT2JqZWN0LT5zdHJ1Y3R1cmUoKTsKICAgICAgICAgdlBDWzZdID0g
b2Zmc2V0OwogCkBAIC0xMDcxLDcgKzEwNzIsNyBAQCBORVZFUl9JTkxJTkUgdm9pZCBJbnRlcnBy
ZXRlcjo6dHJ5Q2FjaGVHZXRCeUlEKENhbGxGcmFtZSogY2FsbEZyYW1lLCBDb2RlQmxvY2sqCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB2UENbMF0gPSBnZXRPcGNvZGUob3BfZ2V0X2J5
X2lkX2NoYWluKTsKKyAgICB2UENbMF0gPSBzbG90LmlzR2V0dGVyKCkgPyBnZXRPcGNvZGUob3Bf
Z2V0X2J5X2lkX2dldHRlcl9jaGFpbikgOiBnZXRPcGNvZGUob3BfZ2V0X2J5X2lkX2NoYWluKTsK
ICAgICB2UENbNF0gPSBzdHJ1Y3R1cmU7CiAgICAgdlBDWzVdID0gc3RydWN0dXJlLT5wcm90b3R5
cGVDaGFpbihjYWxsRnJhbWUpOwogICAgIHZQQ1s2XSA9IGNvdW50OwpAQCAtMjE2MSw2ICsyMTYy
LDUxIEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKEV4ZWN1dGlvbkZsYWcg
ZmxhZywgUmVnaXN0ZXJGaWxlKiByZWdpc3RlckZpCiAgICAgICAgIHVuY2FjaGVHZXRCeUlEKGNh
bGxGcmFtZS0+Y29kZUJsb2NrKCksIHZQQyk7CiAgICAgICAgIE5FWFRfSU5TVFJVQ1RJT04oKTsK
ICAgICB9CisjaWYgSEFWRShDT01QVVRFRF9HT1RPKQorICAgIGdvdG8gKigmJnNraXBfaWRfZ2V0
dGVyX3Byb3RvKTsKKyNlbmRpZgorICAgIERFRklORV9PUENPREUob3BfZ2V0X2J5X2lkX2dldHRl
cl9wcm90bykgeworICAgICAgICAvKiBvcF9nZXRfYnlfaWRfZ2V0dGVyX3Byb3RvIGRzdChyKSBi
YXNlKHIpIHByb3BlcnR5KGlkKSBzdHJ1Y3R1cmUoc0lEKSBwcm90b3R5cGVTdHJ1Y3R1cmUoc0lE
KSBvZmZzZXQobikgbm9wKG4pCisgICAgICAgICAKKyAgICAgICAgIENhY2hlZCBwcm9wZXJ0eSBh
Y2Nlc3M6IEF0dGVtcHRzIHRvIGdldCBhIGNhY2hlZCBnZXR0ZXIgcHJvcGVydHkgZnJvbSB0aGUK
KyAgICAgICAgIHZhbHVlIGJhc2UncyBwcm90b3R5cGUuIElmIHRoZSBjYWNoZSBtaXNzZXMsIG9w
X2dldF9ieV9pZF9nZXR0ZXJfcHJvdG8KKyAgICAgICAgIHJldmVydHMgdG8gb3BfZ2V0X2J5X2lk
LgorICAgICAgICAgKi8KKyAgICAgICAgaW50IGJhc2UgPSB2UENbMl0udS5vcGVyYW5kOworICAg
ICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IGNhbGxGcmFtZS0+cihiYXNlKS5qc1ZhbHVlKCk7Cisg
ICAgICAgIAorICAgICAgICBpZiAoTElLRUxZKGJhc2VWYWx1ZS5pc0NlbGwoKSkpIHsKKyAgICAg
ICAgICAgIEpTQ2VsbCogYmFzZUNlbGwgPSBhc0NlbGwoYmFzZVZhbHVlKTsKKyAgICAgICAgICAg
IFN0cnVjdHVyZSogc3RydWN0dXJlID0gdlBDWzRdLnUuc3RydWN0dXJlOworICAgICAgICAgICAg
CisgICAgICAgICAgICBpZiAoTElLRUxZKGJhc2VDZWxsLT5zdHJ1Y3R1cmUoKSA9PSBzdHJ1Y3R1
cmUpKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZS0+cHJvdG90eXBlRm9yTG9v
a3VwKGNhbGxGcmFtZSkuaXNPYmplY3QoKSk7CisgICAgICAgICAgICAgICAgSlNPYmplY3QqIHBy
b3RvT2JqZWN0ID0gYXNPYmplY3Qoc3RydWN0dXJlLT5wcm90b3R5cGVGb3JMb29rdXAoY2FsbEZy
YW1lKSk7CisgICAgICAgICAgICAgICAgU3RydWN0dXJlKiBwcm90b3R5cGVTdHJ1Y3R1cmUgPSB2
UENbNV0udS5zdHJ1Y3R1cmU7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYg
KExJS0VMWShwcm90b09iamVjdC0+c3RydWN0dXJlKCkgPT0gcHJvdG90eXBlU3RydWN0dXJlKSkg
eworICAgICAgICAgICAgICAgICAgICBpbnQgZHN0ID0gdlBDWzFdLnUub3BlcmFuZDsKKyAgICAg
ICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IHZQQ1s2XS51Lm9wZXJhbmQ7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChHZXR0ZXJTZXR0ZXIqIGdldHRlclNldHRlciA9IGFzR2V0dGVyU2V0dGVy
KHByb3RvT2JqZWN0LT5nZXREaXJlY3RPZmZzZXQob2Zmc2V0KS5hc0NlbGwoKSkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBnZXR0ZXIgPSBnZXR0ZXJTZXR0ZXItPmdldHRl
cigpOworICAgICAgICAgICAgICAgICAgICAgICAgQ2FsbERhdGEgY2FsbERhdGE7CisgICAgICAg
ICAgICAgICAgICAgICAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldHRlci0+Z2V0Q2FsbERhdGEo
Y2FsbERhdGEpOworICAgICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBjYWxs
KGNhbGxGcmFtZSwgZ2V0dGVyLCBjYWxsVHlwZSwgY2FsbERhdGEsIGFzT2JqZWN0KGJhc2VDZWxs
KSwgQXJnTGlzdCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIENIRUNLX0ZPUl9FWENFUFRJ
T04oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxGcmFtZS0+cihkc3QpID0gcmVzdWx0
OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGNh
bGxGcmFtZS0+cihkc3QpID0ganNVbmRlZmluZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgdlBD
ICs9IE9QQ09ERV9MRU5HVEgob3BfZ2V0X2J5X2lkX2dldHRlcl9wcm90byk7CisgICAgICAgICAg
ICAgICAgICAgIE5FWFRfSU5TVFJVQ1RJT04oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdW5jYWNoZUdldEJ5SUQoY2FsbEZyYW1lLT5jb2Rl
QmxvY2soKSwgdlBDKTsKKyAgICAgICAgTkVYVF9JTlNUUlVDVElPTigpOworICAgIH0KKyNpZiBI
QVZFKENPTVBVVEVEX0dPVE8pCisgICAgc2tpcF9pZF9nZXR0ZXJfcHJvdG86CisjZW5kaWYKICAg
ICBERUZJTkVfT1BDT0RFKG9wX2dldF9ieV9pZF9zZWxmX2xpc3QpIHsKICAgICAgICAgLy8gUG9s
eW1vcnBoaWMgc2VsZiBhY2Nlc3MgY2FjaGluZyBjdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgd2hl
biBKSVR0aW5nLgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTIxNzUsNiArMjIy
MSwyMCBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpwcml2YXRlRXhlY3V0ZShFeGVjdXRpb25GbGFn
IGZsYWcsIFJlZ2lzdGVyRmlsZSogcmVnaXN0ZXJGaQogICAgICAgICB2UEMgKz0gT1BDT0RFX0xF
TkdUSChvcF9nZXRfYnlfaWRfcHJvdG9fbGlzdCk7CiAgICAgICAgIE5FWFRfSU5TVFJVQ1RJT04o
KTsKICAgICB9CisgICAgREVGSU5FX09QQ09ERShvcF9nZXRfYnlfaWRfZ2V0dGVyX3NlbGZfbGlz
dCkgeworICAgICAgICAvLyBQb2x5bW9ycGhpYyBzZWxmIGFjY2VzcyBjYWNoaW5nIGN1cnJlbnRs
eSBvbmx5IHN1cHBvcnRlZCB3aGVuIEpJVHRpbmcuCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAvLyBUaGlzIGNhc2Ugb2YgdGhlIHN3aXRjaCBtdXN0IG5vdCBiZSBlbXB0
eSwgZWxzZSAob3BfZ2V0X2J5X2lkX3NlbGZfbGlzdCA9PSBvcF9nZXRfYnlfaWRfY2hhaW4pIQor
ICAgICAgICB2UEMgKz0gT1BDT0RFX0xFTkdUSChvcF9nZXRfYnlfaWRfc2VsZl9saXN0KTsKKyAg
ICAgICAgTkVYVF9JTlNUUlVDVElPTigpOworICAgIH0KKyAgICBERUZJTkVfT1BDT0RFKG9wX2dl
dF9ieV9pZF9nZXR0ZXJfcHJvdG9fbGlzdCkgeworICAgICAgICAvLyBQb2x5bW9ycGhpYyBwcm90
b3R5cGUgYWNjZXNzIGNhY2hpbmcgY3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIHdoZW4gSklUdGlu
Zy4KKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIC8vIFRoaXMgY2FzZSBv
ZiB0aGUgc3dpdGNoIG11c3Qgbm90IGJlIGVtcHR5LCBlbHNlIChvcF9nZXRfYnlfaWRfcHJvdG9f
bGlzdCA9PSBvcF9nZXRfYnlfaWRfY2hhaW4pIQorICAgICAgICB2UEMgKz0gT1BDT0RFX0xFTkdU
SChvcF9nZXRfYnlfaWRfcHJvdG9fbGlzdCk7CisgICAgICAgIE5FWFRfSU5TVFJVQ1RJT04oKTsK
KyAgICB9CiAgICAgREVGSU5FX09QQ09ERShvcF9nZXRfYnlfaWRfY2hhaW4pIHsKICAgICAgICAg
Lyogb3BfZ2V0X2J5X2lkX2NoYWluIGRzdChyKSBiYXNlKHIpIHByb3BlcnR5KGlkKSBzdHJ1Y3R1
cmUoc0lEKSBzdHJ1Y3R1cmVDaGFpbihjaGFpbikgY291bnQobikgb2Zmc2V0KG4pCiAKQEAgLTIy
MjEsNiArMjI4MSw0OSBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpwcml2YXRlRXhlY3V0ZShFeGVj
dXRpb25GbGFnIGZsYWcsIFJlZ2lzdGVyRmlsZSogcmVnaXN0ZXJGaQogICAgICAgICB1bmNhY2hl
R2V0QnlJRChjYWxsRnJhbWUtPmNvZGVCbG9jaygpLCB2UEMpOwogICAgICAgICBORVhUX0lOU1RS
VUNUSU9OKCk7CiAgICAgfQorI2lmIEhBVkUoQ09NUFVURURfR09UTykKKyAgICBnb3RvICooJiZz
a2lwX2lkX2dldHRlcl9zZWxmKTsKKyNlbmRpZgorICAgIERFRklORV9PUENPREUob3BfZ2V0X2J5
X2lkX2dldHRlcl9zZWxmKSB7CisgICAgICAgIC8qIG9wX2dldF9ieV9pZF9zZWxmIGRzdChyKSBi
YXNlKHIpIHByb3BlcnR5KGlkKSBzdHJ1Y3R1cmUoc0lEKSBvZmZzZXQobikgbm9wKG4pIG5vcChu
KQorICAgICAgICAgCisgICAgICAgICBDYWNoZWQgcHJvcGVydHkgYWNjZXNzOiBBdHRlbXB0cyB0
byBnZXQgYSBjYWNoZWQgcHJvcGVydHkgZnJvbSB0aGUKKyAgICAgICAgIHZhbHVlIGJhc2UuIElm
IHRoZSBjYWNoZSBtaXNzZXMsIG9wX2dldF9ieV9pZF9nZXR0ZXJfc2VsZiByZXZlcnRzIHRvCisg
ICAgICAgICBvcF9nZXRfYnlfaWQuCisgICAgICAgICAqLworICAgICAgICBpbnQgYmFzZSA9IHZQ
Q1syXS51Lm9wZXJhbmQ7CisgICAgICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gY2FsbEZyYW1lLT5y
KGJhc2UpLmpzVmFsdWUoKTsKKyAgICAgICAgCisgICAgICAgIGlmIChMSUtFTFkoYmFzZVZhbHVl
LmlzQ2VsbCgpKSkgeworICAgICAgICAgICAgSlNDZWxsKiBiYXNlQ2VsbCA9IGFzQ2VsbChiYXNl
VmFsdWUpOworICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSB2UENbNF0udS5zdHJ1
Y3R1cmU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChMSUtFTFkoYmFzZUNlbGwtPnN0
cnVjdHVyZSgpID09IHN0cnVjdHVyZSkpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoYmFzZUNl
bGwtPmlzT2JqZWN0KCkpOworICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBiYXNlT2JqZWN0ID0g
YXNPYmplY3QoYmFzZUNlbGwpOworICAgICAgICAgICAgICAgIGludCBkc3QgPSB2UENbMV0udS5v
cGVyYW5kOworICAgICAgICAgICAgICAgIGludCBvZmZzZXQgPSB2UENbNV0udS5vcGVyYW5kOwor
CisgICAgICAgICAgICAgICAgaWYgKEdldHRlclNldHRlciogZ2V0dGVyU2V0dGVyID0gYXNHZXR0
ZXJTZXR0ZXIoYmFzZU9iamVjdC0+Z2V0RGlyZWN0T2Zmc2V0KG9mZnNldCkuYXNDZWxsKCkpKSB7
CisgICAgICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBnZXR0ZXIgPSBnZXR0ZXJTZXR0ZXItPmdl
dHRlcigpOworICAgICAgICAgICAgICAgICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKKyAgICAgICAg
ICAgICAgICAgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXR0ZXItPmdldENhbGxEYXRhKGNhbGxE
YXRhKTsKKyAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBjYWxsKGNhbGxGcmFt
ZSwgZ2V0dGVyLCBjYWxsVHlwZSwgY2FsbERhdGEsIGJhc2VPYmplY3QsIEFyZ0xpc3QoKSk7Cisg
ICAgICAgICAgICAgICAgICAgIENIRUNLX0ZPUl9FWENFUFRJT04oKTsKKyAgICAgICAgICAgICAg
ICAgICAgY2FsbEZyYW1lLT5yKGRzdCkgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgICAgIGNhbGxGcmFtZS0+cihkc3QpID0ganNVbmRlZmluZWQoKTsK
KworICAgICAgICAgICAgICAgIHZQQyArPSBPUENPREVfTEVOR1RIKG9wX2dldF9ieV9pZF9nZXR0
ZXJfc2VsZik7CisgICAgICAgICAgICAgICAgTkVYVF9JTlNUUlVDVElPTigpOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgIHVuY2FjaGVHZXRCeUlEKGNhbGxGcmFtZS0+Y29kZUJs
b2NrKCksIHZQQyk7CisgICAgICAgIE5FWFRfSU5TVFJVQ1RJT04oKTsKKyAgICB9CisjaWYgSEFW
RShDT01QVVRFRF9HT1RPKQorICAgIHNraXBfaWRfZ2V0dGVyX3NlbGY6CisjZW5kaWYKICAgICBE
RUZJTkVfT1BDT0RFKG9wX2dldF9ieV9pZF9nZW5lcmljKSB7CiAgICAgICAgIC8qIG9wX2dldF9i
eV9pZF9nZW5lcmljIGRzdChyKSBiYXNlKHIpIHByb3BlcnR5KGlkKSBub3Aoc0lEKSBub3Aobikg
bm9wKG4pIG5vcChuKQogCkBAIC0yMjQxLDYgKzIzNDQsNjEgQEAgSlNWYWx1ZSBJbnRlcnByZXRl
cjo6cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aW9uRmxhZyBmbGFnLCBSZWdpc3RlckZpbGUqIHJlZ2lz
dGVyRmkKICAgICAgICAgdlBDICs9IE9QQ09ERV9MRU5HVEgob3BfZ2V0X2J5X2lkX2dlbmVyaWMp
OwogICAgICAgICBORVhUX0lOU1RSVUNUSU9OKCk7CiAgICAgfQorI2lmIEhBVkUoQ09NUFVURURf
R09UTykKKyAgICBnb3RvICooJiZza2lwX2lkX2dldHRlcl9jaGFpbik7CisjZW5kaWYKKyAgICBE
RUZJTkVfT1BDT0RFKG9wX2dldF9ieV9pZF9nZXR0ZXJfY2hhaW4pIHsKKyAgICAgICAgLyogb3Bf
Z2V0X2J5X2lkX2dldHRlcl9jaGFpbiBkc3QocikgYmFzZShyKSBwcm9wZXJ0eShpZCkgc3RydWN0
dXJlKHNJRCkgc3RydWN0dXJlQ2hhaW4oY2hhaW4pIGNvdW50KG4pIG9mZnNldChuKQorICAgICAg
ICAgCisgICAgICAgICBDYWNoZWQgcHJvcGVydHkgYWNjZXNzOiBBdHRlbXB0cyB0byBnZXQgYSBj
YWNoZWQgcHJvcGVydHkgZnJvbSB0aGUKKyAgICAgICAgIHZhbHVlIGJhc2UncyBwcm90b3R5cGUg
Y2hhaW4uIElmIHRoZSBjYWNoZSBtaXNzZXMsIG9wX2dldF9ieV9pZF9nZXR0ZXJfY2hhaW4KKyAg
ICAgICAgIHJldmVydHMgdG8gb3BfZ2V0X2J5X2lkLgorICAgICAgICAgKi8KKyAgICAgICAgaW50
IGJhc2UgPSB2UENbMl0udS5vcGVyYW5kOworICAgICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IGNh
bGxGcmFtZS0+cihiYXNlKS5qc1ZhbHVlKCk7CisgICAgICAgIAorICAgICAgICBpZiAoTElLRUxZ
KGJhc2VWYWx1ZS5pc0NlbGwoKSkpIHsKKyAgICAgICAgICAgIEpTQ2VsbCogYmFzZUNlbGwgPSBh
c0NlbGwoYmFzZVZhbHVlKTsKKyAgICAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gdlBD
WzRdLnUuc3RydWN0dXJlOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoTElLRUxZKGJh
c2VDZWxsLT5zdHJ1Y3R1cmUoKSA9PSBzdHJ1Y3R1cmUpKSB7CisgICAgICAgICAgICAgICAgUmVm
UHRyPFN0cnVjdHVyZT4qIGl0ID0gdlBDWzVdLnUuc3RydWN0dXJlQ2hhaW4tPmhlYWQoKTsKKyAg
ICAgICAgICAgICAgICBzaXplX3QgY291bnQgPSB2UENbNl0udS5vcGVyYW5kOworICAgICAgICAg
ICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+KiBlbmQgPSBpdCArIGNvdW50OworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgICAg
IEpTT2JqZWN0KiBiYXNlT2JqZWN0ID0gYXNPYmplY3QoYmFzZUNlbGwtPnN0cnVjdHVyZSgpLT5w
cm90b3R5cGVGb3JMb29rdXAoY2FsbEZyYW1lKSk7CisgICAgICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgICAgICBpZiAoVU5MSUtFTFkoYmFzZU9iamVjdC0+c3RydWN0dXJlKCkgIT0g
KCppdCkuZ2V0KCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoKytpdCA9PSBlbmQpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGludCBkc3QgPSB2UENbMV0udS5vcGVyYW5kOworICAgICAgICAg
ICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IHZQQ1s3XS51Lm9wZXJhbmQ7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoR2V0dGVyU2V0dGVyKiBnZXR0ZXJTZXR0ZXIgPSBhc0dldHRlclNl
dHRlcihiYXNlT2JqZWN0LT5nZXREaXJlY3RPZmZzZXQob2Zmc2V0KS5hc0NlbGwoKSkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBKU09iamVjdCogZ2V0dGVyID0gZ2V0dGVyU2V0dGVy
LT5nZXR0ZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxsRGF0YSBjYWxsRGF0
YTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldHRl
ci0+Z2V0Q2FsbERhdGEoY2FsbERhdGEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpT
VmFsdWUgcmVzdWx0ID0gY2FsbChjYWxsRnJhbWUsIGdldHRlciwgY2FsbFR5cGUsIGNhbGxEYXRh
LCBhc09iamVjdChiYXNlQ2VsbCksIEFyZ0xpc3QoKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTigpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNhbGxGcmFtZS0+cihkc3QpID0gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbEZyYW1lLT5yKGRzdCkgPSBqc1Vu
ZGVmaW5lZCgpOworICAgICAgICAgICAgICAgICAgICAgICAgdlBDICs9IE9QQ09ERV9MRU5HVEgo
b3BfZ2V0X2J5X2lkX2dldHRlcl9jaGFpbik7CisgICAgICAgICAgICAgICAgICAgICAgICBORVhU
X0lOU1RSVUNUSU9OKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBiYXNlQ2VsbCwgc28gdGhhdCBuZXh0
IHRpbWUgYXJvdW5kIHRoZSBsb29wIHdlJ2xsIHBpY2sgdXAgdGhlIHByb3RvdHlwZSdzIHByb3Rv
dHlwZS4KKyAgICAgICAgICAgICAgICAgICAgYmFzZUNlbGwgPSBiYXNlT2JqZWN0OworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB1bmNhY2hlR2V0
QnlJRChjYWxsRnJhbWUtPmNvZGVCbG9jaygpLCB2UEMpOworICAgICAgICBORVhUX0lOU1RSVUNU
SU9OKCk7CisgICAgfQorI2lmIEhBVkUoQ09NUFVURURfR09UTykKKyAgICBza2lwX2lkX2dldHRl
cl9jaGFpbjoKKyNlbmRpZgogICAgIERFRklORV9PUENPREUob3BfZ2V0X2FycmF5X2xlbmd0aCkg
ewogICAgICAgICAvKiBvcF9nZXRfYXJyYXlfbGVuZ3RoIGRzdChyKSBiYXNlKHIpIHByb3BlcnR5
KGlkKSBub3Aoc0lEKSBub3Aobikgbm9wKG4pIG5vcChuKQogCmRpZmYgLS1naXQgYS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmNwcCBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IGE4
NDZmYjkuLjc4YzUxNTMgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisr
KyBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC0zMjIsNiArMzIyLDExIEBAIHZvaWQg
SklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgY2FzZSBvcF9nZXRfYnlfaWRf
cHJvdG9fbGlzdDoKICAgICAgICAgY2FzZSBvcF9nZXRfYnlfaWRfc2VsZjoKICAgICAgICAgY2Fz
ZSBvcF9nZXRfYnlfaWRfc2VsZl9saXN0OgorICAgICAgICBjYXNlIG9wX2dldF9ieV9pZF9nZXR0
ZXJfY2hhaW46CisgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX2dldHRlcl9wcm90bzoKKyAgICAg
ICAgY2FzZSBvcF9nZXRfYnlfaWRfZ2V0dGVyX3Byb3RvX2xpc3Q6CisgICAgICAgIGNhc2Ugb3Bf
Z2V0X2J5X2lkX2dldHRlcl9zZWxmOgorICAgICAgICBjYXNlIG9wX2dldF9ieV9pZF9nZXR0ZXJf
c2VsZl9saXN0OgogICAgICAgICBjYXNlIG9wX2dldF9zdHJpbmdfbGVuZ3RoOgogICAgICAgICBj
YXNlIG9wX3B1dF9ieV9pZF9nZW5lcmljOgogICAgICAgICBjYXNlIG9wX3B1dF9ieV9pZF9yZXBs
YWNlOgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcCBiL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKaW5kZXggOTYzNjk5NS4uYmY0MzBhNiAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnMuY3BwCkBAIC04NTYsMTAgKzg1NiwxMSBAQCBORVZFUl9JTkxJTkUgdm9p
ZCBKSVRUaHVua3M6OnRyeUNhY2hlR2V0QnlJRChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29kZUJs
b2NrKiBjbwogICAgIH0KIAogICAgIC8vIFVuY2FjaGVhYmxlOiBnaXZlIHVwLgotICAgIGlmICgh
c2xvdC5pc0NhY2hlYWJsZSgpKSB7CisgICAgaWYgKCFzbG90LmlzQ2FjaGVhYmxlVmFsdWUoKSkg
ewogICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoY29kZUJsb2NrLCByZXR1cm5B
ZGRyZXNzLCBGdW5jdGlvblB0cihjdGlfb3BfZ2V0X2J5X2lkX2dlbmVyaWMpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KKyAgICBBU1NFUlQoIXNsb3QuaXNHZXR0ZXIoKSk7CiAKICAgICBKU0Nl
bGwqIGJhc2VDZWxsID0gYXNDZWxsKGJhc2VWYWx1ZSk7CiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUgPSBiYXNlQ2VsbC0+c3RydWN0dXJlKCk7CkBAIC0xMjg5LDcgKzEyOTAsNyBAQCBERUZJTkVf
U1RVQl9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwgb3BfZ2V0X2J5X2lkX21ldGhvZF9jaGVjaykK
ICAgICAvLyBJZiB3ZSBzdWNjZXNzZnVsbHkgZ290IHNvbWV0aGluZywgdGhlbiB0aGUgYmFzZSBm
cm9tIHdoaWNoIGl0IGlzIGJlaW5nIGFjY2Vzc2VkIG11c3QKICAgICAvLyBiZSBhbiBvYmplY3Qu
ICAoQXNzZXJ0aW9uIHRvIGVuc3VyZSBhc09iamVjdCgpIGNhbGwgYmVsb3cgaXMgc2FmZSwgd2hp
Y2ggY29tZXMgYWZ0ZXIKICAgICAvLyBhbiBpc0NhY2hlYWJsZSgpIGNoY2Vjay4KLSAgICBBU1NF
UlQoIXNsb3QuaXNDYWNoZWFibGUoKSB8fCBzbG90LnNsb3RCYXNlKCkuaXNPYmplY3QoKSk7Cisg
ICAgQVNTRVJUKCFzbG90LmlzQ2FjaGVhYmxlVmFsdWUoKSB8fCBzbG90LnNsb3RCYXNlKCkuaXNP
YmplY3QoKSk7CiAKICAgICAvLyBDaGVjayB0aGF0OgogICAgIC8vICAgKiBXZSdyZSBkZWFsaW5n
IHdpdGggYSBKU0NlbGwsCkBAIC0xMzAwLDcgKzEzMDEsNyBAQCBERUZJTkVfU1RVQl9GVU5DVElP
TihFbmNvZGVkSlNWYWx1ZSwgb3BfZ2V0X2J5X2lkX21ldGhvZF9jaGVjaykKICAgICBKU0NlbGwq
IHNwZWNpZmljOwogICAgIEpTT2JqZWN0KiBzbG90QmFzZU9iamVjdDsKICAgICBpZiAoYmFzZVZh
bHVlLmlzQ2VsbCgpCi0gICAgICAgICYmIHNsb3QuaXNDYWNoZWFibGUoKQorICAgICAgICAmJiBz
bG90LmlzQ2FjaGVhYmxlVmFsdWUoKQogICAgICAgICAmJiAhKHN0cnVjdHVyZSA9IGFzQ2VsbChi
YXNlVmFsdWUpLT5zdHJ1Y3R1cmUoKSktPmlzVW5jYWNoZWFibGVEaWN0aW9uYXJ5KCkKICAgICAg
ICAgJiYgKHNsb3RCYXNlT2JqZWN0ID0gYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSktPmdldFBy
b3BlcnR5U3BlY2lmaWNWYWx1ZShjYWxsRnJhbWUsIGlkZW50LCBzcGVjaWZpYykKICAgICAgICAg
JiYgc3BlY2lmaWMKQEAgLTEzNzQsNyArMTM3NSw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKEVu
Y29kZWRKU1ZhbHVlLCBvcF9nZXRfYnlfaWRfc2VsZl9mYWlsKQogICAgIENIRUNLX0ZPUl9FWENF
UFRJT04oKTsKIAogICAgIGlmIChiYXNlVmFsdWUuaXNDZWxsKCkKLSAgICAgICAgJiYgc2xvdC5p
c0NhY2hlYWJsZSgpCisgICAgICAgICYmIHNsb3QuaXNDYWNoZWFibGVWYWx1ZSgpCiAgICAgICAg
ICYmICFhc0NlbGwoYmFzZVZhbHVlKS0+c3RydWN0dXJlKCktPmlzVW5jYWNoZWFibGVEaWN0aW9u
YXJ5KCkKICAgICAgICAgJiYgc2xvdC5zbG90QmFzZSgpID09IGJhc2VWYWx1ZSkgewogCkBAIC0x
NDQ3LDcgKzE0NDgsNyBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwgb3Bf
Z2V0X2J5X2lkX3Byb3RvX2xpc3QpCiAKICAgICBDSEVDS19GT1JfRVhDRVBUSU9OKCk7CiAKLSAg
ICBpZiAoIWJhc2VWYWx1ZS5pc0NlbGwoKSB8fCAhc2xvdC5pc0NhY2hlYWJsZSgpIHx8IGFzQ2Vs
bChiYXNlVmFsdWUpLT5zdHJ1Y3R1cmUoKS0+aXNEaWN0aW9uYXJ5KCkpIHsKKyAgICBpZiAoIWJh
c2VWYWx1ZS5pc0NlbGwoKSB8fCAhc2xvdC5pc0NhY2hlYWJsZVZhbHVlKCkgfHwgYXNDZWxsKGJh
c2VWYWx1ZSktPnN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkgewogICAgICAgICBjdGlQYXRj
aENhbGxCeVJldHVybkFkZHJlc3MoY2FsbEZyYW1lLT5jb2RlQmxvY2soKSwgU1RVQl9SRVRVUk5f
QUREUkVTUywgRnVuY3Rpb25QdHIoY3RpX29wX2dldF9ieV9pZF9wcm90b19mYWlsKSk7CiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICB9CkBAIC0yMzAzLDcgKzIz
MDQsNyBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwgb3BfcmVzb2x2ZV9n
bG9iYWwpCiAgICAgUHJvcGVydHlTbG90IHNsb3QoZ2xvYmFsT2JqZWN0KTsKICAgICBpZiAoZ2xv
YmFsT2JqZWN0LT5nZXRQcm9wZXJ0eVNsb3QoY2FsbEZyYW1lLCBpZGVudCwgc2xvdCkpIHsKICAg
ICAgICAgSlNWYWx1ZSByZXN1bHQgPSBzbG90LmdldFZhbHVlKGNhbGxGcmFtZSwgaWRlbnQpOwot
ICAgICAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZSgpICYmICFnbG9iYWxPYmplY3QtPnN0cnVjdHVy
ZSgpLT5pc1VuY2FjaGVhYmxlRGljdGlvbmFyeSgpICYmIHNsb3Quc2xvdEJhc2UoKSA9PSBnbG9i
YWxPYmplY3QpIHsKKyAgICAgICAgaWYgKHNsb3QuaXNDYWNoZWFibGVWYWx1ZSgpICYmICFnbG9i
YWxPYmplY3QtPnN0cnVjdHVyZSgpLT5pc1VuY2FjaGVhYmxlRGljdGlvbmFyeSgpICYmIHNsb3Qu
c2xvdEJhc2UoKSA9PSBnbG9iYWxPYmplY3QpIHsKICAgICAgICAgICAgIEdsb2JhbFJlc29sdmVJ
bmZvJiBnbG9iYWxSZXNvbHZlSW5mbyA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmdsb2JhbFJl
c29sdmVJbmZvKGdsb2JhbFJlc29sdmVJbmZvSW5kZXgpOwogICAgICAgICAgICAgaWYgKGdsb2Jh
bFJlc29sdmVJbmZvLnN0cnVjdHVyZSkKICAgICAgICAgICAgICAgICBnbG9iYWxSZXNvbHZlSW5m
by5zdHJ1Y3R1cmUtPmRlcmVmKCk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4
IGQ5NTAwYWEuLjYxZDNiYjEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC01
MTYsOSArNTE2LDEyIEBAIHZvaWQgSlNPYmplY3Q6OnB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRy
YW5zaXRpb24oRXhlY1N0YXRlKiBleGVjLCBJbnRlcm5hbEZ1bmN0CiAKIE5FVkVSX0lOTElORSB2
b2lkIEpTT2JqZWN0OjpmaWxsR2V0dGVyUHJvcGVydHlTbG90KFByb3BlcnR5U2xvdCYgc2xvdCwg
SlNWYWx1ZSogbG9jYXRpb24pCiB7Ci0gICAgaWYgKEpTT2JqZWN0KiBnZXR0ZXJGdW5jdGlvbiA9
IGFzR2V0dGVyU2V0dGVyKCpsb2NhdGlvbiktPmdldHRlcigpKQotICAgICAgICBzbG90LnNldEdl
dHRlclNsb3QoZ2V0dGVyRnVuY3Rpb24pOwotICAgIGVsc2UKKyAgICBpZiAoSlNPYmplY3QqIGdl
dHRlckZ1bmN0aW9uID0gYXNHZXR0ZXJTZXR0ZXIoKmxvY2F0aW9uKS0+Z2V0dGVyKCkpIHsKKyAg
ICAgICAgaWYgKCFzdHJ1Y3R1cmUoKS0+aXNEaWN0aW9uYXJ5KCkpCisgICAgICAgICAgICBzbG90
LnNldENhY2hlYWJsZUdldHRlclNsb3QodGhpcywgZ2V0dGVyRnVuY3Rpb24sIG9mZnNldEZvckxv
Y2F0aW9uKGxvY2F0aW9uKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNsb3Quc2V0R2V0
dGVyU2xvdChnZXR0ZXJGdW5jdGlvbik7CisgICAgfSBlbHNlCiAgICAgICAgIHNsb3Quc2V0VW5k
ZWZpbmVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVy
dHlTbG90LmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcAppbmRl
eCBhMGEyZjQ4Li44YjZjZWI5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3BlcnR5U2xvdC5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3Qu
Y3BwCkBAIC0zNSwxMCArMzUsMTAgQEAgSlNWYWx1ZSBQcm9wZXJ0eVNsb3Q6OmZ1bmN0aW9uR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFAKICAgICBDYWxs
RGF0YSBjYWxsRGF0YTsKICAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IHNsb3QubV9kYXRhLmdldHRl
ckZ1bmMtPmdldENhbGxEYXRhKGNhbGxEYXRhKTsKICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5
cGVIb3N0KQotICAgICAgICByZXR1cm4gY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uKGV4ZWMsIHNs
b3QubV9kYXRhLmdldHRlckZ1bmMsIHNsb3Quc2xvdEJhc2UoKSwgZXhlYy0+ZW1wdHlMaXN0KCkp
OworICAgICAgICByZXR1cm4gY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uKGV4ZWMsIHNsb3QubV9k
YXRhLmdldHRlckZ1bmMsIHNsb3QudGhpc1ZhbHVlKCksIGV4ZWMtPmVtcHR5TGlzdCgpKTsKICAg
ICBBU1NFUlQoY2FsbFR5cGUgPT0gQ2FsbFR5cGVKUyk7CiAgICAgLy8gRklYTUU6IENhbiB0aGlz
IGJlIGRvbmUgbW9yZSBlZmZpY2llbnRseSB1c2luZyB0aGUgY2FsbERhdGE/Ci0gICAgcmV0dXJu
IGFzRnVuY3Rpb24oc2xvdC5tX2RhdGEuZ2V0dGVyRnVuYyktPmNhbGwoZXhlYywgc2xvdC5zbG90
QmFzZSgpLCBleGVjLT5lbXB0eUxpc3QoKSk7CisgICAgcmV0dXJuIGFzRnVuY3Rpb24oc2xvdC5t
X2RhdGEuZ2V0dGVyRnVuYyktPmNhbGwoZXhlYywgc2xvdC50aGlzVmFsdWUoKSwgZXhlYy0+ZW1w
dHlMaXN0KCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3BlcnR5U2xvdC5oCmluZGV4IDE1ZDkwMzQuLmEzNjRlNDIgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm9wZXJ0eVNsb3QuaApAQCAtNzEsNyArNzEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgIHJldHVybiBtX2dldFZhbHVlKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJv
cGVydHlOYW1lKSwgKnRoaXMpOwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBpc0NhY2hlYWJs
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0ICE9IFdURjo6bm90Rm91bmQ7IH0KKyAgICAgICAg
Ym9vbCBpc0dldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1faXNHZXR0ZXI7IH0KKyAgICAgICAgYm9v
bCBpc0NhY2hlYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNDYWNoZWFibGU7IH0KKyAgICAgICAg
Ym9vbCBpc0NhY2hlYWJsZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9pc0NhY2hlYWJsZSAmJiAh
bV9pc0dldHRlcjsgfQogICAgICAgICBzaXplX3QgY2FjaGVkT2Zmc2V0KCkgY29uc3QKICAgICAg
ICAgewogICAgICAgICAgICAgQVNTRVJUKGlzQ2FjaGVhYmxlKCkpOwpAQCAtMTAyLDYgKzEwNCw4
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgbV9zbG90QmFzZSA9IHNsb3RCYXNlOwog
ICAgICAgICAgICAgbV9kYXRhLnZhbHVlU2xvdCA9IHZhbHVlU2xvdDsKICAgICAgICAgICAgIG1f
b2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICAgICAgbV9pc0NhY2hlYWJsZSA9IHRydWU7CisgICAg
ICAgICAgICBtX2lzR2V0dGVyID0gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAg
IHZvaWQgc2V0VmFsdWUoSlNWYWx1ZSB2YWx1ZSkKQEAgLTEzOSwxNCArMTQzLDI4IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICAgICAgbV9zbG90QmFzZSA9IHNsb3RCYXNlOwogICAgICAgICAg
ICAgbV9kYXRhLmluZGV4ID0gaW5kZXg7CiAgICAgICAgIH0KLSAgICAgICAgCisKICAgICAgICAg
dm9pZCBzZXRHZXR0ZXJTbG90KEpTT2JqZWN0KiBnZXR0ZXJGdW5jKQogICAgICAgICB7CiAgICAg
ICAgICAgICBBU1NFUlQoZ2V0dGVyRnVuYyk7CisgICAgICAgICAgICBtX3RoaXNWYWx1ZSA9IG1f
c2xvdEJhc2U7CiAgICAgICAgICAgICBtX2dldFZhbHVlID0gZnVuY3Rpb25HZXR0ZXI7CiAgICAg
ICAgICAgICBtX2RhdGEuZ2V0dGVyRnVuYyA9IGdldHRlckZ1bmM7CisgICAgICAgICAgICBtX2lz
R2V0dGVyID0gdHJ1ZTsKICAgICAgICAgfQotICAgICAgICAKKworICAgICAgICB2b2lkIHNldENh
Y2hlYWJsZUdldHRlclNsb3QoSlNWYWx1ZSBzbG90QmFzZSwgSlNPYmplY3QqIGdldHRlckZ1bmMs
IHVuc2lnbmVkIG9mZnNldCkKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKGdldHRlckZ1
bmMpOworICAgICAgICAgICAgbV9nZXRWYWx1ZSA9IGZ1bmN0aW9uR2V0dGVyOworICAgICAgICAg
ICAgbV90aGlzVmFsdWUgPSBtX3Nsb3RCYXNlOworICAgICAgICAgICAgbV9zbG90QmFzZSA9IHNs
b3RCYXNlOworICAgICAgICAgICAgbV9kYXRhLmdldHRlckZ1bmMgPSBnZXR0ZXJGdW5jOworICAg
ICAgICAgICAgbV9vZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgICAgICBtX2lzQ2FjaGVhYmxlID0g
dHJ1ZTsKKyAgICAgICAgICAgIG1faXNHZXR0ZXIgPSB0cnVlOworICAgICAgICB9CisKICAgICAg
ICAgdm9pZCBzZXRVbmRlZmluZWQoKQogICAgICAgICB7CiAgICAgICAgICAgICBzZXRWYWx1ZShq
c1VuZGVmaW5lZCgpKTsKQEAgLTE4MiwxMSArMjAwLDE0IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICB7CiAgICAgICAgICAgICAvLyBDbGVhciBvZmZzZXQgZXZlbiBpbiByZWxlYXNlIGJ1aWxk
cywgaW4gY2FzZSB0aGlzIFByb3BlcnR5U2xvdCBoYXMgYmVlbiB1c2VkIGJlZm9yZS4KICAgICAg
ICAgICAgIC8vIChGb3Igb3RoZXIgZGF0YSBtZW1iZXJzLCB3ZSBkb24ndCBuZWVkIHRvIGNsZWFy
IGFueXRoaW5nIGJlY2F1c2UgcmV1c2Ugd291bGQgbWVhbmluZ2Z1bGx5IG92ZXJ3cml0ZSB0aGVt
LikKLSAgICAgICAgICAgIG1fb2Zmc2V0ID0gV1RGOjpub3RGb3VuZDsKKyAgICAgICAgICAgIG1f
b2Zmc2V0ID0gMDsKKyAgICAgICAgICAgIG1faXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICAgICAg
ICAgIG1faXNHZXR0ZXIgPSBmYWxzZTsKICAgICAgICAgfQogCiAgICAgICAgIHVuc2lnbmVkIGlu
ZGV4KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmluZGV4OyB9CiAKKyAgICAgICAgSlNWYWx1ZSB0
aGlzVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3RoaXNWYWx1ZTsgfQogICAgIHByaXZhdGU6CiAg
ICAgICAgIHN0YXRpYyBKU1ZhbHVlIGZ1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKIApAQCAtMjAxLDggKzIyMiwxMSBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgfSBtX2RhdGE7CiAKICAgICAgICAgSlNWYWx1ZSBtX3Zh
bHVlOworICAgICAgICBKU1ZhbHVlIG1fdGhpc1ZhbHVlOwogCiAgICAgICAgIHNpemVfdCBtX29m
ZnNldDsKKyAgICAgICAgYm9vbCBtX2lzQ2FjaGVhYmxlIDogMTsKKyAgICAgICAgYm9vbCBtX2lz
R2V0dGVyIDogMTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
</data>
<flag name="review"
          id="31815"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>