<?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>74333</bug_id>
          
          <creation_ts>2011-12-12 14:24:36 -0800</creation_ts>
          <short_desc>Remove JSString vptr optimizations</short_desc>
          <delta_ts>2011-12-18 12:22:11 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</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>74332</dependson>
          <blocked>74331</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>gustavo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>519462</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-12-12 14:24:36 -0800</bug_when>
    <thetext>We want to remove our dependence on the vptr being in the object prior to de-virtualizing all of the destructors.  We&apos;ll use the ClassInfo* that is now in JSCell instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519499</commentid>
    <comment_count>1</comment_count>
      <attachid>118856</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-12-12 14:47:06 -0800</bug_when>
    <thetext>Created attachment 118856
Remove JSString vptr optimizations

No changelog, see bug 74331.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519507</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-12 14:49:56 -0800</bug_when>
    <thetext>Attachment 118856 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/JavaScriptCore.exp&apos;,...&quot; exit_code: 1

Source/JavaScriptCore/jit/JITOpcodes.cpp:52:  string_failureCases2 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 1 in 18 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>519530</commentid>
    <comment_count>3</comment_count>
      <attachid>118856</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-12-12 14:57:39 -0800</bug_when>
    <thetext>Comment on attachment 118856
Remove JSString vptr optimizations

I&apos;m starting to think that the comments you&apos;re putting in bugzilla would make good ChangeLog comments, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519560</commentid>
    <comment_count>4</comment_count>
      <attachid>118856</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-12-12 15:15:48 -0800</bug_when>
    <thetext>Comment on attachment 118856
Remove JSString vptr optimizations

Attachment 118856 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10847094</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519650</commentid>
    <comment_count>5</comment_count>
      <attachid>118856</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-12-12 16:17:20 -0800</bug_when>
    <thetext>Comment on attachment 118856
Remove JSString vptr optimizations

Attachment 118856 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/10847113</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519827</commentid>
    <comment_count>6</comment_count>
      <attachid>118856</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-12 20:00:36 -0800</bug_when>
    <thetext>Comment on attachment 118856
Remove JSString vptr optimizations

Attachment 118856 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10848214</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118856</attachid>
            <date>2011-12-12 14:47:06 -0800</date>
            <delta_ts>2011-12-12 20:00:36 -0800</delta_ts>
            <desc>Remove JSString vptr optimizations</desc>
            <filename>0002-Removed-JSString-vptr-optimizations-in-favor-of-usin.patch</filename>
            <type>text/plain</type>
            <size>25635</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">RnJvbSA4NGU5MDllZTVlZTIxMWQ2MGM1OTJlNzkwNWE0NmNhOGE4NjlhMjMxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIEhhaG5lbmJlcmcgPG1oYWhuZW5iZXJnQGFwcGxlLmNv
bT4KRGF0ZTogTW9uLCA1IERlYyAyMDExIDE2OjQwOjMxIC0wODAwClN1YmplY3Q6IFtQQVRDSCAw
Mi8xOF0gUmVtb3ZlZCBKU1N0cmluZyB2cHRyIG9wdGltaXphdGlvbnMgaW4gZmF2b3Igb2YgdXNp
bmcKIEpTU3RyaW5nJ3MgQ2xhc3NJbmZvCgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5leHAgICAgICAgICAgIHwgICAgMSAtCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuY3BwICAgICAgICB8ICAgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgIHwgICAgNiArKystLS0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwICAgICAgICAgICAgICAgIHwgICAgMiArLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcCAgICAgICAgICAgfCAgIDExICsr
KysrLS0tLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suaCAgICAgICAg
ICAgICB8ICAgIDYgKystLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRv
ci5oICAgICAgICAgICB8ICAgIDYgKysrLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VElubGluZU1ldGhvZHMuaCAgICAgICB8ICAgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2Rlcy5jcHAgICAgICAgICAgIHwgICAgNiArKystLS0KIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwICAgIHwgICAgNCArKy0tCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcCAgICAgICAgICAgICB8ICAgMTEgKysrKyst
LS0tLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVua0pJVC5oICAg
IHwgICAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlv
bi5jcHAgfCAgICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCAg
ICAgICAgICAgICB8ICAgIDYgKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmNwcCAgICAgICB8ICAgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsRGF0YS5jcHAgICAgIHwgICAxMiArLS0tLS0tLS0tLS0KIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oICAgICAgIHwgICAgMSAtCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAgICAgICAgICB8ICAgIDIgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmggICAgICAgICAgIHwgICAgMiAr
LQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oICAgICAgICAgfCAg
ICA2ICsrLS0tLQogMjAgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgNTIgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmV4cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggYjdl
OTM2NC4uOGM2ZDQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
CkBAIC0xMzYsNyArMTM2LDYgQEAgX19aTjNKU0MxMkRhdGVJbnN0YW5jZUMxRVBOU185RXhlY1N0
YXRlRVBOU185U3RydWN0dXJlRQogX19aTjNKU0MxMkpTR2xvYmFsRGF0YTEwQ2xpZW50RGF0YUQy
RXYKIF9fWk4zSlNDMTJKU0dsb2JhbERhdGExMWpzQXJyYXlWUHRyRQogX19aTjNKU0MxMkpTR2xv
YmFsRGF0YTEyY3JlYXRlTGVha2VkRU5TXzE1VGhyZWFkU3RhY2tUeXBlRU5TXzhIZWFwU2l6ZUUK
LV9fWk4zSlNDMTJKU0dsb2JhbERhdGExMmpzU3RyaW5nVlB0ckUKIF9fWk4zSlNDMTJKU0dsb2Jh
bERhdGExMnN0b3BTYW1wbGluZ0V2CiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhMTNzdGFydFNhbXBs
aW5nRXYKIF9fWk4zSlNDMTJKU0dsb2JhbERhdGExNGR1bXBTYW1wbGVEYXRhRVBOU185RXhlY1N0
YXRlRQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXgg
MzJlMzhlMS4uZmMxYzdhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJh
dGlvbnMuY3BwCkBAIC0yNzYsNyArMjc2LDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1
ZSBnZXRCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogYmFzZSwgdWludDMyX3QgaW4KICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc0FycmF5KGJhc2UpLT5nZXRJbmRleChpbmRl
eCkpOwogCiAgICAgLy8gRklYTUU6IHRoZSBKSVRzdHViIHVzZWQgdG8gcmVsaW5rIHRoaXMgdG8g
YW4gb3B0aW1pemVkIGZvcm0hCi0gICAgaWYgKGlzSlNTdHJpbmcoZ2xvYmFsRGF0YSwgYmFzZSkg
JiYgYXNTdHJpbmcoYmFzZSktPmNhbkdldEluZGV4KGluZGV4KSkKKyAgICBpZiAoaXNKU1N0cmlu
ZyhiYXNlKSAmJiBhc1N0cmluZyhiYXNlKS0+Y2FuR2V0SW5kZXgoaW5kZXgpKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzU3RyaW5nKGJhc2UpLT5nZXRJbmRleChleGVjLCBpbmRl
eCkpOwogCiAgICAgLy8gRklYTUU6IHRoZSBKSVRzdHViIHVzZWQgdG8gcmVsaW5rIHRoaXMgdG8g
YW4gb3B0aW1pemVkIGZvcm0hCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCA0YmYzM2I5Li43M2QzYWUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTMxMjks
NyArMzEyOSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBhbHJlYWR5UHJpbWl0aXZlOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBhbHJlYWR5UHJpbWl0aXZlLmFwcGVuZChtX2ppdC5icmFu
Y2hUZXN0UHRyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCBvcDFHUFIsIEdQUkluZm86OnRhZ01h
c2tSZWdpc3RlcikpOwotICAgICAgICAgICAgYWxyZWFkeVByaW1pdGl2ZS5hcHBlbmQobV9qaXQu
YnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
b3AxR1BSKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgp
LT5qc1N0cmluZ1ZQdHIpKSk7CisgICAgICAgICAgICBhbHJlYWR5UHJpbWl0aXZlLmFwcGVuZCht
X2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhvcDFHUFIsIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbVB0cigmSlNTdHJpbmc6OnNfaW5mbykpKTsKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKICAgICAgICAgICAgIGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uVG9QcmltaXRpdmUsIHJlc3VsdEdQUiwgb3AxR1BSKTsKQEAg
LTMyMzksNyArMzIzOSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9k
ZSkKICAgICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIGlmICghaXNPYmplY3RQcmVkaWN0aW9uKG1fc3RhdGUuZm9yTm9k
ZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpKQotICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hl
Y2soSlNWYWx1ZVJlZ3ModGhpc1ZhbHVlR1BSKSwgbm9kZS5jaGlsZDEoKSwgbV9qaXQuYnJhbmNo
UHRyKEpJVENvbXBpbGVyOjpFcXVhbCwgSklUQ29tcGlsZXI6OkFkZHJlc3ModGhpc1ZhbHVlR1BS
KSwgSklUQ29tcGlsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5qc1N0cmlu
Z1ZQdHIpKSk7CisgICAgICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlUmVncyh0
aGlzVmFsdWVHUFIpLCBub2RlLmNoaWxkMSgpLCBtX2ppdC5icmFuY2hQdHIoSklUQ29tcGlsZXI6
OkVxdWFsLCBKSVRDb21waWxlcjo6QWRkcmVzcyh0aGlzVmFsdWVHUFIsIEpTQ2VsbDo6Y2xhc3NJ
bmZvT2Zmc2V0KCkpLCBKSVRDb21waWxlcjo6VHJ1c3RlZEltbVB0cigmSlNTdHJpbmc6OnNfaW5m
bykpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9qaXQubW92ZSh0aGlzVmFsdWVHUFIs
IHJlc3VsdEdQUik7CiAgICAgICAgICAgICAKQEAgLTM0NjUsNyArMzQ2NSw3IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgR1BSUmVnIHJlc3VsdEdQ
UiA9IHJlc3VsdC5ncHIoKTsKICAgICAgICAgCiAgICAgICAgIGlmICghaXNTdHJpbmdQcmVkaWN0
aW9uKG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpKQotICAgICAgICAgICAg
c3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlUmVncyhiYXNlR1BSKSwgbm9kZS5jaGlsZDEoKSwgbV9q
aXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MoYmFzZUdQUiksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1faml0Lmdsb2Jh
bERhdGEoKS0+anNTdHJpbmdWUHRyKSkpOworICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhK
U1ZhbHVlUmVncyhiYXNlR1BSKSwgbm9kZS5jaGlsZDEoKSwgbV9qaXQuYnJhbmNoUHRyKE1hY3Jv
QXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlND
ZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZK
U1N0cmluZzo6c19pbmZvKSkpOwogICAgICAgICAKICAgICAgICAgbV9qaXQubG9hZDMyKE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VHUFIsIEpTU3RyaW5nOjpvZmZzZXRPZkxlbmd0aCgpKSwg
cmVzdWx0R1BSKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCAwNmMwYWZk
ZC4uNDVkNWNlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTMxOSw3ICsz
MTksNyBAQCBIZWFwOjpIZWFwKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgSGVhcFNpemUgaGVh
cFNpemUpCiAgICAgLCBtX2FjdGl2aXR5Q2FsbGJhY2soRGVmYXVsdEdDQWN0aXZpdHlDYWxsYmFj
azo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9tYWNoaW5lVGhyZWFkcyh0aGlzKQogICAgICwgbV9z
aGFyZWREYXRhKGdsb2JhbERhdGEpCi0gICAgLCBtX3Nsb3RWaXNpdG9yKG1fc2hhcmVkRGF0YSwg
Z2xvYmFsRGF0YS0+anNBcnJheVZQdHIsIGdsb2JhbERhdGEtPmpzRmluYWxPYmplY3RWUHRyLCBn
bG9iYWxEYXRhLT5qc1N0cmluZ1ZQdHIpCisgICAgLCBtX3Nsb3RWaXNpdG9yKG1fc2hhcmVkRGF0
YSwgZ2xvYmFsRGF0YS0+anNBcnJheVZQdHIsIGdsb2JhbERhdGEtPmpzRmluYWxPYmplY3RWUHRy
KQogICAgICwgbV9oYW5kbGVIZWFwKGdsb2JhbERhdGEpCiAgICAgLCBtX2lzU2FmZVRvQ29sbGVj
dChmYWxzZSkKICAgICAsIG1fZ2xvYmFsRGF0YShnbG9iYWxEYXRhKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL01hcmtTdGFjay5jcHAKaW5kZXggM2Y0ZmRhNy4uN2ZhMjIxYSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suY3BwCkBAIC0yMTksNyArMjE5LDcgQEAgdm9p
ZCBNYXJrU3RhY2tBcnJheTo6c3RlYWxTb21lQ2VsbHNGcm9tKE1hcmtTdGFja0FycmF5JiBvdGhl
cikKIHZvaWQgTWFya1N0YWNrVGhyZWFkU2hhcmVkRGF0YTo6bWFya2luZ1RocmVhZE1haW4oKQog
ewogICAgIFdURjo6cmVnaXN0ZXJHQ1RocmVhZCgpOwotICAgIFNsb3RWaXNpdG9yIHNsb3RWaXNp
dG9yKCp0aGlzLCBtX2dsb2JhbERhdGEtPmpzQXJyYXlWUHRyLCBtX2dsb2JhbERhdGEtPmpzRmlu
YWxPYmplY3RWUHRyLCBtX2dsb2JhbERhdGEtPmpzU3RyaW5nVlB0cik7CisgICAgU2xvdFZpc2l0
b3Igc2xvdFZpc2l0b3IoKnRoaXMsIG1fZ2xvYmFsRGF0YS0+anNBcnJheVZQdHIsIG1fZ2xvYmFs
RGF0YS0+anNGaW5hbE9iamVjdFZQdHIpOwogICAgIFBhcmFsbGVsTW9kZUVuYWJsZXIgZW5hYmxl
cihzbG90VmlzaXRvcik7CiAgICAgc2xvdFZpc2l0b3IuZHJhaW5Gcm9tU2hhcmVkKFNsb3RWaXNp
dG9yOjpTbGF2ZURyYWluKTsKIH0KQEAgLTI5NCw3ICsyOTQsNyBAQCB2b2lkIE1hcmtTdGFjazo6
YXBwZW5kKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cykKICAgICAgICAgaW50
ZXJuYWxBcHBlbmQocm9vdHNbaV0pOwogfQogCi1BTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIHZp
c2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IEpTQ2VsbCogY2VsbCwgdm9p
ZCoganNGaW5hbE9iamVjdFZQdHIsIHZvaWQqIGpzQXJyYXlWUHRyLCB2b2lkKiBqc1N0cmluZ1ZQ
dHIpCitBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3Im
IHZpc2l0b3IsIGNvbnN0IEpTQ2VsbCogY2VsbCwgdm9pZCoganNGaW5hbE9iamVjdFZQdHIsIHZv
aWQqIGpzQXJyYXlWUHRyKQogewogI2lmIEVOQUJMRShTSU1QTEVfSEVBUF9QUk9GSUxJTkcpCiAg
ICAgbV92aXNpdGVkVHlwZUNvdW50cy5jb3VudChjZWxsKTsKQEAgLTMwMiw3ICszMDIsNyBAQCBB
TFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0
b3IsIGNvbnN0IEpTQ2VsbCogY2VsbAogCiAgICAgQVNTRVJUKEhlYXA6OmlzTWFya2VkKGNlbGwp
KTsKIAotICAgIGlmIChjZWxsLT52cHRyKCkgPT0ganNTdHJpbmdWUHRyKSB7CisgICAgaWYgKGNl
bGwtPmNsYXNzSW5mbygpID09ICZKU1N0cmluZzo6c19pbmZvKSB7CiAgICAgICAgIEpTU3RyaW5n
Ojp2aXNpdENoaWxkcmVuKGNvbnN0X2Nhc3Q8SlNDZWxsKj4oY2VsbCksIHZpc2l0b3IpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMzQwLDE0ICszNDAsMTMgQEAgdm9pZCBTbG90VmlzaXRv
cjo6ZHJhaW4oKQogICAgIAogICAgIHZvaWQqIGpzRmluYWxPYmplY3RWUHRyID0gbV9qc0ZpbmFs
T2JqZWN0VlB0cjsKICAgICB2b2lkKiBqc0FycmF5VlB0ciA9IG1fanNBcnJheVZQdHI7Ci0gICAg
dm9pZCoganNTdHJpbmdWUHRyID0gbV9qc1N0cmluZ1ZQdHI7CiAKICNpZiBFTkFCTEUoUEFSQUxM
RUxfR0MpCiAgICAgaWYgKEhldXJpc3RpY3M6Om51bWJlck9mR0NNYXJrZXJzID4gMSkgewogICAg
ICAgICB3aGlsZSAoIW1fc3RhY2suaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBtX3N0YWNrLnJl
ZmlsbCgpOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBjb3VudGRvd24gPSBIZXVyaXN0aWNz
OjptaW5pbXVtTnVtYmVyT2ZTY2Fuc0JldHdlZW5SZWJhbGFuY2U7IG1fc3RhY2suY2FuUmVtb3Zl
TGFzdCgpICYmIGNvdW50ZG93bi0tOykKLSAgICAgICAgICAgICAgICB2aXNpdENoaWxkcmVuKCp0
aGlzLCBtX3N0YWNrLnJlbW92ZUxhc3QoKSwganNGaW5hbE9iamVjdFZQdHIsIGpzQXJyYXlWUHRy
LCBqc1N0cmluZ1ZQdHIpOworICAgICAgICAgICAgICAgIHZpc2l0Q2hpbGRyZW4oKnRoaXMsIG1f
c3RhY2sucmVtb3ZlTGFzdCgpLCBqc0ZpbmFsT2JqZWN0VlB0ciwganNBcnJheVZQdHIpOwogICAg
ICAgICAgICAgZG9uYXRlS25vd25QYXJhbGxlbCgpOwogICAgICAgICB9CiAgICAgICAgIApAQCAt
MzU5LDcgKzM1OCw3IEBAIHZvaWQgU2xvdFZpc2l0b3I6OmRyYWluKCkKICAgICB3aGlsZSAoIW1f
c3RhY2suaXNFbXB0eSgpKSB7CiAgICAgICAgIG1fc3RhY2sucmVmaWxsKCk7CiAgICAgICAgIHdo
aWxlIChtX3N0YWNrLmNhblJlbW92ZUxhc3QoKSkKLSAgICAgICAgICAgIHZpc2l0Q2hpbGRyZW4o
KnRoaXMsIG1fc3RhY2sucmVtb3ZlTGFzdCgpLCBqc0ZpbmFsT2JqZWN0VlB0ciwganNBcnJheVZQ
dHIsIGpzU3RyaW5nVlB0cik7CisgICAgICAgICAgICB2aXNpdENoaWxkcmVuKCp0aGlzLCBtX3N0
YWNrLnJlbW92ZUxhc3QoKSwganNGaW5hbE9iamVjdFZQdHIsIGpzQXJyYXlWUHRyKTsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmgKaW5kZXggYzUwODAxOS4u
OGUwZTAzZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNr
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmgKQEAgLTIwNCw3
ICsyMDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgZnJpZW5kIGNsYXNzIEhlYXBSb290
VmlzaXRvcjsgLy8gQWxsb3dlZCB0byBtYXJrIGEgSlNWYWx1ZSogb3IgSlNDZWxsKiogZGlyZWN0
bHkuCiAKICAgICBwdWJsaWM6Ci0gICAgICAgIE1hcmtTdGFjayhNYXJrU3RhY2tUaHJlYWRTaGFy
ZWREYXRhJiwgdm9pZCoganNBcnJheVZQdHIsIHZvaWQqIGpzRmluYWxPYmplY3RWUHRyLCB2b2lk
KiBqc1N0cmluZ1ZQdHIpOworICAgICAgICBNYXJrU3RhY2soTWFya1N0YWNrVGhyZWFkU2hhcmVk
RGF0YSYsIHZvaWQqIGpzQXJyYXlWUHRyLCB2b2lkKiBqc0ZpbmFsT2JqZWN0VlB0cik7CiAgICAg
ICAgIH5NYXJrU3RhY2soKTsKIAogICAgICAgICB2b2lkIGFwcGVuZChDb25zZXJ2YXRpdmVSb290
cyYpOwpAQCAtMjY5LDcgKzI2OSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYXJrU3Rh
Y2tBcnJheSBtX3N0YWNrOwogICAgICAgICB2b2lkKiBtX2pzQXJyYXlWUHRyOwogICAgICAgICB2
b2lkKiBtX2pzRmluYWxPYmplY3RWUHRyOwotICAgICAgICB2b2lkKiBtX2pzU3RyaW5nVlB0cjsK
ICAgICAgICAgSGFzaFNldDx2b2lkKj4gbV9vcGFxdWVSb290czsgLy8gSGFuZGxlLW93bmluZyBk
YXRhIHN0cnVjdHVyZXMgbm90IHZpc2libGUgdG8gdGhlIGdhcmJhZ2UgY29sbGVjdG9yLgogICAg
ICAgICAKICNpZiAhQVNTRVJUX0RJU0FCTEVECkBAIC0yODYsMTEgKzI4NSwxMCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgTWFya1N0YWNrVGhyZWFkU2hhcmVkRGF0YSYgbV9zaGFyZWQ7CiAg
ICAgfTsKIAotICAgIGlubGluZSBNYXJrU3RhY2s6Ok1hcmtTdGFjayhNYXJrU3RhY2tUaHJlYWRT
aGFyZWREYXRhJiBzaGFyZWQsIHZvaWQqIGpzQXJyYXlWUHRyLCB2b2lkKiBqc0ZpbmFsT2JqZWN0
VlB0ciwgdm9pZCoganNTdHJpbmdWUHRyKQorICAgIGlubGluZSBNYXJrU3RhY2s6Ok1hcmtTdGFj
ayhNYXJrU3RhY2tUaHJlYWRTaGFyZWREYXRhJiBzaGFyZWQsIHZvaWQqIGpzQXJyYXlWUHRyLCB2
b2lkKiBqc0ZpbmFsT2JqZWN0VlB0cikKICAgICAgICAgOiBtX3N0YWNrKHNoYXJlZC5tX3NlZ21l
bnRBbGxvY2F0b3IpCiAgICAgICAgICwgbV9qc0FycmF5VlB0cihqc0FycmF5VlB0cikKICAgICAg
ICAgLCBtX2pzRmluYWxPYmplY3RWUHRyKGpzRmluYWxPYmplY3RWUHRyKQotICAgICAgICAsIG1f
anNTdHJpbmdWUHRyKGpzU3RyaW5nVlB0cikKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgICAg
ICwgbV9pc0NoZWNraW5nRm9yRGVmYXVsdE1hcmtWaW9sYXRpb24oZmFsc2UpCiAgICAgICAgICwg
bV9pc0RyYWluaW5nKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvU2xvdFZpc2l0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9y
LmgKaW5kZXggYTQ2MTc4MS4uYWRhZGFkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU2xvdFZpc2l0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9T
bG90VmlzaXRvci5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIEhlYXA7CiBjbGFzcyBTbG90Vmlz
aXRvciA6IHB1YmxpYyBNYXJrU3RhY2sgewogICAgIGZyaWVuZCBjbGFzcyBIZWFwUm9vdFZpc2l0
b3I7CiBwdWJsaWM6Ci0gICAgU2xvdFZpc2l0b3IoTWFya1N0YWNrVGhyZWFkU2hhcmVkRGF0YSYs
IHZvaWQqIGpzQXJyYXlWUHRyLCB2b2lkKiBqc0ZpbmFsT2JqZWN0VlB0ciwgdm9pZCoganNTdHJp
bmdWUHRyKTsKKyAgICBTbG90VmlzaXRvcihNYXJrU3RhY2tUaHJlYWRTaGFyZWREYXRhJiwgdm9p
ZCoganNBcnJheVZQdHIsIHZvaWQqIGpzRmluYWxPYmplY3RWUHRyKTsKIAogICAgIHZvaWQgZG9u
YXRlKCkKICAgICB7CkBAIC03MSw4ICs3MSw4IEBAIHByaXZhdGU6CiAgICAgfQogfTsKIAotaW5s
aW5lIFNsb3RWaXNpdG9yOjpTbG90VmlzaXRvcihNYXJrU3RhY2tUaHJlYWRTaGFyZWREYXRhJiBz
aGFyZWQsIHZvaWQqIGpzQXJyYXlWUHRyLCB2b2lkKiBqc0ZpbmFsT2JqZWN0VlB0ciwgdm9pZCog
anNTdHJpbmdWUHRyKQotICAgIDogTWFya1N0YWNrKHNoYXJlZCwganNBcnJheVZQdHIsIGpzRmlu
YWxPYmplY3RWUHRyLCBqc1N0cmluZ1ZQdHIpCitpbmxpbmUgU2xvdFZpc2l0b3I6OlNsb3RWaXNp
dG9yKE1hcmtTdGFja1RocmVhZFNoYXJlZERhdGEmIHNoYXJlZCwgdm9pZCoganNBcnJheVZQdHIs
IHZvaWQqIGpzRmluYWxPYmplY3RWUHRyKQorICAgIDogTWFya1N0YWNrKHNoYXJlZCwganNBcnJh
eVZQdHIsIGpzRmluYWxPYmplY3RWUHRyKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oCmluZGV4IGJkY2NiMzEuLjY4Mzc5ZGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oCkBAIC04NCw3ICs4NCw3
IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBKSVQ6OmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRy
KFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhCiAKIEFMV0FZU19JTkxJTkUgdm9pZCBKSVQ6OmVt
aXRMb2FkQ2hhcmFjdGVyU3RyaW5nKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRzdCwgSnVt
cExpc3QmIGZhaWx1cmVzKQogewotICAgIGZhaWx1cmVzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1
YWwsIEFkZHJlc3Moc3JjKSwgVHJ1c3RlZEltbVB0cihtX2dsb2JhbERhdGEtPmpzU3RyaW5nVlB0
cikpKTsKKyAgICBmYWlsdXJlcy5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHNy
YywgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIFRydXN0ZWRJbW1QdHIoJkpTU3RyaW5nOjpz
X2luZm8pKSk7CiAgICAgZmFpbHVyZXMuYXBwZW5kKGJyYW5jaDMyKE5vdEVxdWFsLCBNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhzcmMsIFRodW5rSGVscGVyczo6anNTdHJpbmdMZW5ndGhPZmZzZXQo
KSksIFRydXN0ZWRJbW0zMigxKSkpOwogICAgIGxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3Moc3JjLCBUaHVua0hlbHBlcnM6OmpzU3RyaW5nVmFsdWVPZmZzZXQoKSksIGRzdCk7CiAgICAg
ZmFpbHVyZXMuYXBwZW5kKGJyYW5jaFRlc3QzMihaZXJvLCBkc3QpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IDcwNTRiNTMuLmY1YmUyNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtNDksNyArNDksNyBAQCBQYXNz
UmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+IEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElNYWNo
aW5lVHJhbXBvbGluZXMoSlNHbAogCiAgICAgLy8gQ2hlY2sgZWF4IGlzIGEgc3RyaW5nCiAgICAg
SnVtcCBzdHJpbmdfZmFpbHVyZUNhc2VzMSA9IGVtaXRKdW1wSWZOb3RKU0NlbGwocmVnVDApOwot
ICAgIEp1bXAgc3RyaW5nX2ZhaWx1cmVDYXNlczIgPSBicmFuY2hQdHIoTm90RXF1YWwsIEFkZHJl
c3MocmVnVDApLCBUcnVzdGVkSW1tUHRyKG1fZ2xvYmFsRGF0YS0+anNTdHJpbmdWUHRyKSk7Cisg
ICAgSnVtcCBzdHJpbmdfZmFpbHVyZUNhc2VzMiA9IGJyYW5jaFB0cihOb3RFcXVhbCwgQWRkcmVz
cyhyZWdUMCwgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIFRydXN0ZWRJbW1QdHIoJkpTU3Ry
aW5nOjpzX2luZm8pKTsKIAogICAgIC8vIENoZWNrcyBvdXQgb2theSEgLSBnZXQgdGhlIGxlbmd0
aCBmcm9tIHRoZSBVc3RyaW5nLgogICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZG
U0VUT0YoSlNTdHJpbmcsIG1fbGVuZ3RoKSksIHJlZ1QwKTsKQEAgLTU3OSw3ICs1NzksNyBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF90b19wcmltaXRpdmUoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHNyYywgcmVnVDApOwogICAgIAogICAg
IEp1bXAgaXNJbW0gPSBlbWl0SnVtcElmTm90SlNDZWxsKHJlZ1QwKTsKLSAgICBhZGRTbG93Q2Fz
ZShicmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDApLCBUcnVzdGVkSW1tUHRyKG1fZ2xv
YmFsRGF0YS0+anNTdHJpbmdWUHRyKSkpOworICAgIGFkZFNsb3dDYXNlKGJyYW5jaFB0cihOb3RF
cXVhbCwgQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIFRydXN0ZWRJ
bW1QdHIoJkpTU3RyaW5nOjpzX2luZm8pKSk7CiAgICAgaXNJbW0ubGluayh0aGlzKTsKIAogICAg
IGlmIChkc3QgIT0gc3JjKQpAQCAtMTIwMiw3ICsxMjAyLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
Y29udmVydF90aGlzKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdEdl
dFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMCk7
CiAKICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDApOwotICAgIGFkZFNsb3dD
YXNlKGJyYW5jaFB0cihFcXVhbCwgQWRkcmVzcyhyZWdUMCksIFRydXN0ZWRJbW1QdHIobV9nbG9i
YWxEYXRhLT5qc1N0cmluZ1ZQdHIpKSk7CisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoUHRyKEVxdWFs
LCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSwgVHJ1c3RlZEltbVB0
cigmSlNTdHJpbmc6OnNfaW5mbykpKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2NhbGxl
ZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCBjMGUwNzQ5Li4yYzcxNjg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApA
QCAtNTQsNyArNTQsNyBAQCBKSVQ6OkNvZGVSZWYgSklUOjpzdHJpbmdHZXRCeVZhbFN0dWJHZW5l
cmF0b3IoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQogewogICAgIEpTSW50ZXJmYWNlSklUIGpp
dDsKICAgICBKdW1wTGlzdCBmYWlsdXJlczsKLSAgICBmYWlsdXJlcy5hcHBlbmQoaml0LmJyYW5j
aFB0cihOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMCksIFRydXN0ZWRJbW1QdHIoZ2xvYmFsRGF0YS0+
anNTdHJpbmdWUHRyKSkpOworICAgIGZhaWx1cmVzLmFwcGVuZChqaXQuYnJhbmNoUHRyKE5vdEVx
dWFsLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSwgVHJ1c3RlZElt
bVB0cigmSlNTdHJpbmc6OnNfaW5mbykpKTsKIAogICAgIC8vIExvYWQgc3RyaW5nIGxlbmd0aCB0
byByZWdUMiwgYW5kIHN0YXJ0IHRoZSBwcm9jZXNzIG9mIGxvYWRpbmcgdGhlIGRhdGEgcG9pbnRl
ciBpbnRvIHJlZ1QwCiAgICAgaml0LmxvYWQzMihBZGRyZXNzKHJlZ1QwLCBUaHVua0hlbHBlcnM6
OmpzU3RyaW5nTGVuZ3RoT2Zmc2V0KCkpLCByZWdUMik7CkBAIC0xMzAsNyArMTMwLDcgQEAgdm9p
ZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBi
YXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCiAgICAgSnVtcCBub25DZWxsID0ganVtcCgpOwogICAg
IGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gYmFzZSBhcnJheSBjaGVjawotICAgIEp1bXAgbm90U3Ry
aW5nID0gYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwKSwgVHJ1c3RlZEltbVB0ciht
X2dsb2JhbERhdGEtPmpzU3RyaW5nVlB0cikpOworICAgIEp1bXAgbm90U3RyaW5nID0gYnJhbmNo
UHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSwg
VHJ1c3RlZEltbVB0cigmSlNTdHJpbmc6OnNfaW5mbykpOwogICAgIGVtaXROYWtlZENhbGwoQ29k
ZUxvY2F0aW9uTGFiZWwobV9nbG9iYWxEYXRhLT5nZXRDVElTdHViKHN0cmluZ0dldEJ5VmFsU3R1
YkdlbmVyYXRvcikuY29kZSgpKSk7CiAgICAgSnVtcCBmYWlsZWQgPSBicmFuY2hUZXN0UHRyKFpl
cm8sIHJlZ1QwKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCwgcmVnVDApOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAppbmRleCA0MTM2MTRlLi41NGU5YjZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcApAQCAtODgwLDcgKzg4MCw3IEBA
IE5FVkVSX0lOTElORSB2b2lkIEpJVFRodW5rczo6dHJ5Q2FjaGVHZXRCeUlEKENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBDb2RlQmxvY2sqIGNvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0g
ICAgaWYgKGlzSlNTdHJpbmcoZ2xvYmFsRGF0YSwgYmFzZVZhbHVlKSAmJiBwcm9wZXJ0eU5hbWUg
PT0gY2FsbEZyYW1lLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKSB7CisgICAgaWYgKGlzSlNTdHJp
bmcoYmFzZVZhbHVlKSAmJiBwcm9wZXJ0eU5hbWUgPT0gY2FsbEZyYW1lLT5wcm9wZXJ0eU5hbWVz
KCkubGVuZ3RoKSB7CiAgICAgICAgIC8vIFRoZSB0cmFkZW9mZiBvZiBjb21waWxpbmcgYW4gcGF0
Y2hlZCBpbmxpbmUgc3RyaW5nIGxlbmd0aCBhY2Nlc3Mgcm91dGluZSBkb2VzIG5vdCBzZWVtCiAg
ICAgICAgIC8vIHRvIHBheSBvZmYsIHNvIHdlIGN1cnJlbnRseSBvbmx5IGRvIHRoaXMgZm9yIGFy
cmF5cy4KICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGNvZGVCbG9jaywgcmV0
dXJuQWRkcmVzcywgZ2xvYmFsRGF0YS0+aml0U3R1YnMtPmN0aVN0cmluZ0xlbmd0aFRyYW1wb2xp
bmUoKSk7CkBAIC0yNDkyLDcgKzI0OTIsNyBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNvZGVk
SlNWYWx1ZSwgb3BfZ2V0X2J5X3ZhbCkKIAogICAgIGlmIChzdWJzY3JpcHQuaXNVSW50MzIoKSkg
ewogICAgICAgICB1aW50MzJfdCBpID0gc3Vic2NyaXB0LmFzVUludDMyKCk7Ci0gICAgICAgIGlm
IChpc0pTU3RyaW5nKGdsb2JhbERhdGEsIGJhc2VWYWx1ZSkgJiYgYXNTdHJpbmcoYmFzZVZhbHVl
KS0+Y2FuR2V0SW5kZXgoaSkpIHsKKyAgICAgICAgaWYgKGlzSlNTdHJpbmcoYmFzZVZhbHVlKSAm
JiBhc1N0cmluZyhiYXNlVmFsdWUpLT5jYW5HZXRJbmRleChpKSkgewogICAgICAgICAgICAgY3Rp
UGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksIFNUVUJfUkVU
VVJOX0FERFJFU1MsIEZ1bmN0aW9uUHRyKGN0aV9vcF9nZXRfYnlfdmFsX3N0cmluZykpOwogICAg
ICAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBhc1N0cmluZyhiYXNlVmFsdWUpLT5nZXRJbmRleChj
YWxsRnJhbWUsIGkpOwogICAgICAgICAgICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTigpOwpAQCAtMjUy
OCwxMSArMjUyOCwxMSBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwgb3Bf
Z2V0X2J5X3ZhbF9zdHJpbmcpCiAgICAgCiAgICAgaWYgKExJS0VMWShzdWJzY3JpcHQuaXNVSW50
MzIoKSkpIHsKICAgICAgICAgdWludDMyX3QgaSA9IHN1YnNjcmlwdC5hc1VJbnQzMigpOwotICAg
ICAgICBpZiAoaXNKU1N0cmluZyhnbG9iYWxEYXRhLCBiYXNlVmFsdWUpICYmIGFzU3RyaW5nKGJh
c2VWYWx1ZSktPmNhbkdldEluZGV4KGkpKQorICAgICAgICBpZiAoaXNKU1N0cmluZyhiYXNlVmFs
dWUpICYmIGFzU3RyaW5nKGJhc2VWYWx1ZSktPmNhbkdldEluZGV4KGkpKQogICAgICAgICAgICAg
cmVzdWx0ID0gYXNTdHJpbmcoYmFzZVZhbHVlKS0+Z2V0SW5kZXgoY2FsbEZyYW1lLCBpKTsKICAg
ICAgICAgZWxzZSB7CiAgICAgICAgICAgICByZXN1bHQgPSBiYXNlVmFsdWUuZ2V0KGNhbGxGcmFt
ZSwgaSk7Ci0gICAgICAgICAgICBpZiAoIWlzSlNTdHJpbmcoZ2xvYmFsRGF0YSwgYmFzZVZhbHVl
KSkKKyAgICAgICAgICAgIGlmICghaXNKU1N0cmluZyhiYXNlVmFsdWUpKQogICAgICAgICAgICAg
ICAgIGN0aVBhdGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhjYWxsRnJhbWUtPmNvZGVCbG9jaygpLCBT
VFVCX1JFVFVSTl9BRERSRVNTLCBGdW5jdGlvblB0cihjdGlfb3BfZ2V0X2J5X3ZhbCkpOwogICAg
ICAgICB9CiAgICAgfSBlbHNlIHsKQEAgLTI1NDksNyArMjU0OSw2IEBAIERFRklORV9TVFVCX0ZV
TkNUSU9OKEVuY29kZWRKU1ZhbHVlLCBvcF9nZXRfYnlfdmFsX2J5dGVfYXJyYXkpCiAgICAgU1RV
Ql9JTklUX1NUQUNLX0ZSQU1FKHN0YWNrRnJhbWUpOwogICAgIAogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gc3RhY2tGcmFtZS5jYWxsRnJhbWU7Ci0gICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxE
YXRhID0gc3RhY2tGcmFtZS5nbG9iYWxEYXRhOwogICAgIAogICAgIEpTVmFsdWUgYmFzZVZhbHVl
ID0gc3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKTsKICAgICBKU1ZhbHVlIHN1YnNjcmlwdCA9
IHN0YWNrRnJhbWUuYXJnc1sxXS5qc1ZhbHVlKCk7CkBAIC0zNDMzLDcgKzM0MzIsNyBAQCBERUZJ
TkVfU1RVQl9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwgb3BfaXNfc3RyaW5nKQogewogICAgIFNU
VUJfSU5JVF9TVEFDS19GUkFNRShzdGFja0ZyYW1lKTsKIAotICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNCb29sZWFuKGlzSlNTdHJpbmcoc3RhY2tGcmFtZS5nbG9iYWxEYXRhLCBzdGFja0Zy
YW1lLmFyZ3NbMF0uanNWYWx1ZSgpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNC
b29sZWFuKGlzSlNTdHJpbmcoc3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKSkpKTsKIH0KIAog
REVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUsIG9wX2lzX29iamVjdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVua0pJVC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRodW5rSklULmgKaW5kZXggZWNj
NDkxZS4uYWI3OGVhYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVj
aWFsaXplZFRodW5rSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFs
aXplZFRodW5rSklULmgKQEAgLTYwLDcgKzYwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IHZvaWQgbG9hZEpTU3RyaW5nQXJndW1lbnQoaW50IGFyZ3VtZW50LCBSZWdpc3RlcklEIGRzdCkK
ICAgICAgICAgewogICAgICAgICAgICAgbG9hZENlbGxBcmd1bWVudChhcmd1bWVudCwgZHN0KTsK
LSAgICAgICAgICAgIG1fZmFpbHVyZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgQWRkcmVz
cyhkc3QsIDApLCBUcnVzdGVkSW1tUHRyKG1fZ2xvYmFsRGF0YS0+anNTdHJpbmdWUHRyKSkpOwor
ICAgICAgICAgICAgbV9mYWlsdXJlcy5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNz
KGRzdCwgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIFRydXN0ZWRJbW1QdHIoJkpTU3RyaW5n
OjpzX2luZm8pKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHZvaWQgbG9hZEludDMy
QXJndW1lbnQoaW50IGFyZ3VtZW50LCBSZWdpc3RlcklEIGRzdCwgSnVtcCYgZmFpbFRhcmdldCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rp
b24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5j
cHAKaW5kZXggMTcxNDE2My4uYzY5MmMzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgY29uc3Qg
VVN0cmluZyBJbnRlcm5hbEZ1bmN0aW9uOjpkaXNwbGF5TmFtZShFeGVjU3RhdGUqIGV4ZWMpCiB7
CiAgICAgSlNWYWx1ZSBkaXNwbGF5TmFtZSA9IGdldERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCks
IGV4ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0eU5hbWVzLT5kaXNwbGF5TmFtZSk7CiAgICAgCi0g
ICAgaWYgKGRpc3BsYXlOYW1lICYmIGlzSlNTdHJpbmcoJmV4ZWMtPmdsb2JhbERhdGEoKSwgZGlz
cGxheU5hbWUpKQorICAgIGlmIChkaXNwbGF5TmFtZSAmJiBpc0pTU3RyaW5nKGRpc3BsYXlOYW1l
KSkKICAgICAgICAgcmV0dXJuIGFzU3RyaW5nKGRpc3BsYXlOYW1lKS0+dHJ5R2V0VmFsdWUoKTsK
ICAgICAKICAgICByZXR1cm4gVVN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NlbGwuaAppbmRleCBiYjU2N2I5Li4xNjM4MGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGwuaApAQCAtMTA4LDYgKzEwOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAg
ICAgIC8vIE9iamVjdCBvcGVyYXRpb25zLCB3aXRoIHRoZSB0b09iamVjdCBvcGVyYXRpb24gaW5j
bHVkZWQuCiAgICAgICAgIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3Q7CisgICAg
ICAgIGNvbnN0IENsYXNzSW5mbyogdW52YWxpZGF0ZWRDbGFzc0luZm8oKSBjb25zdDsKICAgICAg
ICAgY29uc3QgTWV0aG9kVGFibGUqIG1ldGhvZFRhYmxlKCkgY29uc3Q7CiAgICAgICAgIHN0YXRp
YyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBw
dXRCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSk7CkBAIC0xOTksNiArMjAwLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICByZXR1
cm4gbV9zdHJ1Y3R1cmUuZ2V0KCk7CiAgICAgfQogCisgICAgaW5saW5lIGNvbnN0IENsYXNzSW5m
byogSlNDZWxsOjp1bnZhbGlkYXRlZENsYXNzSW5mbygpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gbV9jbGFzc0luZm87CisgICAgfQorCiAgICAgaW5saW5lIHZvaWQgSlNDZWxsOjp2aXNp
dENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgewogICAg
ICAgICB2aXNpdG9yLmFwcGVuZCgmY2VsbC0+bV9zdHJ1Y3R1cmUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCAwODEyZjIxLi4xMDRiMjc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtMTM4
LDcgKzEzOCw3IEBAIGNvbnN0IFVTdHJpbmcgSlNGdW5jdGlvbjo6ZGlzcGxheU5hbWUoRXhlY1N0
YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUgZGlzcGxheU5hbWUgPSBnZXREaXJlY3QoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkucHJvcGVydHlOYW1lcy0+ZGlzcGxheU5h
bWUpOwogICAgIAotICAgIGlmIChkaXNwbGF5TmFtZSAmJiBpc0pTU3RyaW5nKCZleGVjLT5nbG9i
YWxEYXRhKCksIGRpc3BsYXlOYW1lKSkKKyAgICBpZiAoZGlzcGxheU5hbWUgJiYgaXNKU1N0cmlu
ZyhkaXNwbGF5TmFtZSkpCiAgICAgICAgIHJldHVybiBhc1N0cmluZyhkaXNwbGF5TmFtZSktPnRy
eUdldFZhbHVlKCk7CiAgICAgCiAgICAgcmV0dXJuIFVTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCmluZGV4IGE1MzVmYzIuLjA4YTVh
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0
YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNw
cApAQCAtMTEyLDcgKzExMiw2IEBAIGV4dGVybiBjb25zdCBIYXNoVGFibGUgc3RyaW5nQ29uc3Ry
dWN0b3JUYWJsZTsKIHZvaWQqIEpTR2xvYmFsRGF0YTo6anNGaW5hbE9iamVjdFZQdHI7CiB2b2lk
KiBKU0dsb2JhbERhdGE6OmpzQXJyYXlWUHRyOwogdm9pZCogSlNHbG9iYWxEYXRhOjpqc0J5dGVB
cnJheVZQdHI7Ci12b2lkKiBKU0dsb2JhbERhdGE6OmpzU3RyaW5nVlB0cjsKIHZvaWQqIEpTR2xv
YmFsRGF0YTo6anNGdW5jdGlvblZQdHI7CiAKICNpZiBDT01QSUxFUihHQ0MpCkBAIC0xNDUsMTEg
KzE0NCw2IEBAIHZvaWQgSlNHbG9iYWxEYXRhOjpzdG9yZVZQdHJzKCkKICAgICBDTE9CQkVSX01F
TU9SWSgpOwogICAgIEpTR2xvYmFsRGF0YTo6anNCeXRlQXJyYXlWUHRyID0ganNCeXRlQXJyYXkt
PnZwdHIoKTsKIAotICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihKU1N0cmluZykgPD0gc2l6ZW9m
KHN0b3JhZ2UpLCBzaXplb2ZfSlNTdHJpbmdfbXVzdF9iZV9sZXNzX3RoYW5fc3RvcmFnZSk7Ci0g
ICAgSlNDZWxsKiBqc1N0cmluZyA9IG5ldyAoc3RvcmFnZSkgSlNTdHJpbmcoSlNTdHJpbmc6OlZQ
dHJTdGVhbGluZ0hhY2spOwotICAgIENMT0JCRVJfTUVNT1JZKCk7Ci0gICAgSlNHbG9iYWxEYXRh
Ojpqc1N0cmluZ1ZQdHIgPSBqc1N0cmluZy0+dnB0cigpOwotCiAgICAgQ09NUElMRV9BU1NFUlQo
c2l6ZW9mKEpTRnVuY3Rpb24pIDw9IHNpemVvZihzdG9yYWdlKSwgc2l6ZW9mX0pTRnVuY3Rpb25f
bXVzdF9iZV9sZXNzX3RoYW5fc3RvcmFnZSk7CiAgICAgSlNDZWxsKiBqc0Z1bmN0aW9uID0gbmV3
IChzdG9yYWdlKSBKU0Z1bmN0aW9uKEpTQ2VsbDo6VlB0clN0ZWFsaW5nSGFjayk7CiAgICAgQ0xP
QkJFUl9NRU1PUlkoKTsKQEAgLTE1OSwxNCArMTUzLDEwIEBAIHZvaWQgSlNHbG9iYWxEYXRhOjpz
dG9yZVZQdHJzKCkKICAgICAvLyB3ZSB0aGluayBoYXMgYSB1bmlxdWUgdmlydHVhbCBwb2ludGVy
IGFjdHVhbGx5IGRvZXMuCiAgICAgaWYgKGpzRmluYWxPYmplY3RWUHRyID09IGpzQXJyYXlWUHRy
CiAgICAgICAgIHx8IGpzRmluYWxPYmplY3RWUHRyID09IGpzQnl0ZUFycmF5VlB0cgotICAgICAg
ICB8fCBqc0ZpbmFsT2JqZWN0VlB0ciA9PSBqc1N0cmluZ1ZQdHIKICAgICAgICAgfHwganNGaW5h
bE9iamVjdFZQdHIgPT0ganNGdW5jdGlvblZQdHIKICAgICAgICAgfHwganNBcnJheVZQdHIgPT0g
anNCeXRlQXJyYXlWUHRyCi0gICAgICAgIHx8IGpzQXJyYXlWUHRyID09IGpzU3RyaW5nVlB0cgog
ICAgICAgICB8fCBqc0FycmF5VlB0ciA9PSBqc0Z1bmN0aW9uVlB0cgotICAgICAgICB8fCBqc0J5
dGVBcnJheVZQdHIgPT0ganNTdHJpbmdWUHRyCi0gICAgICAgIHx8IGpzQnl0ZUFycmF5VlB0ciA9
PSBqc0Z1bmN0aW9uVlB0cgotICAgICAgICB8fCBqc1N0cmluZ1ZQdHIgPT0ganNGdW5jdGlvblZQ
dHIpCisgICAgICAgIHx8IGpzQnl0ZUFycmF5VlB0ciA9PSBqc0Z1bmN0aW9uVlB0cikKICAgICAg
ICAgQ1JBU0goKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxEYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bERhdGEuaAppbmRleCAxMzlkZDQyLi5iZWUzZDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbERhdGEuaApAQCAtMTk3LDcgKzE5Nyw2IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSB2b2lkKiBqc0ZpbmFsT2JqZWN0VlB0
cjsKICAgICAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEgdm9pZCoganNBcnJheVZQdHI7CiAgICAg
ICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIHZvaWQqIGpzQnl0ZUFycmF5VlB0cjsKLSAgICAgICAg
c3RhdGljIEpTX0VYUE9SVERBVEEgdm9pZCoganNTdHJpbmdWUHRyOwogICAgICAgICBzdGF0aWMg
SlNfRVhQT1JUREFUQSB2b2lkKiBqc0Z1bmN0aW9uVlB0cjsKIAogICAgICAgICBJZGVudGlmaWVy
VGFibGUqIGlkZW50aWZpZXJUYWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU3RyaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RyaW5nLmNwcAppbmRleCAwZTZhNDhhLi4zMmY5NTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIHZvaWQgSlNTdHJpbmc6
OlJvcGVCdWlsZGVyOjpleHBhbmQoKQogCiBKU1N0cmluZzo6fkpTU3RyaW5nKCkKIHsKLSAgICBB
U1NFUlQodnB0cigpID09IEpTR2xvYmFsRGF0YTo6anNTdHJpbmdWUHRyKTsKKyAgICBBU1NFUlQo
dW52YWxpZGF0ZWRDbGFzc0luZm8oKSA9PSAmSlNTdHJpbmc6OnNfaW5mbyk7CiB9CiAKIHZvaWQg
SlNTdHJpbmc6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRv
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCmluZGV4IDdjZjgzODIu
LjUyMzk4ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaApAQCAt
NDQ4LDcgKzQ0OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCi0gICAgaW5saW5lIGJvb2wgaXNKU1N0cmluZyhKU0dsb2JhbERhdGEqIGdsb2JhbERh
dGEsIEpTVmFsdWUgdikgeyByZXR1cm4gdi5pc0NlbGwoKSAmJiB2LmFzQ2VsbCgpLT52cHRyKCkg
PT0gZ2xvYmFsRGF0YS0+anNTdHJpbmdWUHRyOyB9CisgICAgaW5saW5lIGJvb2wgaXNKU1N0cmlu
ZyhKU1ZhbHVlIHYpIHsgcmV0dXJuIHYuaXNDZWxsKCkgJiYgdi5hc0NlbGwoKS0+Y2xhc3NJbmZv
KCkgPT0gJkpTU3RyaW5nOjpzX2luZm87IH0KIAogICAgIGlubGluZSBib29sIEpTQ2VsbDo6dG9C
b29sZWFuKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcGVyYXRpb25zLmgKaW5kZXggOTdkYWUzZS4uMzU5ODBiOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaApAQCAtMjMwLDggKzIzMCw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBpZiAodjEuaXNOdW1iZXIoKSAmJiB2Mi5pc051bWJl
cigpKQogICAgICAgICAgICAgcmV0dXJuIHYxLmFzTnVtYmVyKCkgPCB2Mi5hc051bWJlcigpOwog
Ci0gICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSA9ICZjYWxsRnJhbWUtPmdsb2JhbERh
dGEoKTsKLSAgICAgICAgaWYgKGlzSlNTdHJpbmcoZ2xvYmFsRGF0YSwgdjEpICYmIGlzSlNTdHJp
bmcoZ2xvYmFsRGF0YSwgdjIpKQorICAgICAgICBpZiAoaXNKU1N0cmluZyh2MSkgJiYgaXNKU1N0
cmluZyh2MikpCiAgICAgICAgICAgICByZXR1cm4gYXNTdHJpbmcodjEpLT52YWx1ZShjYWxsRnJh
bWUpIDwgYXNTdHJpbmcodjIpLT52YWx1ZShjYWxsRnJhbWUpOwogCiAgICAgICAgIGRvdWJsZSBu
MTsKQEAgLTI2NSw4ICsyNjQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgaWYgKHYxLmlz
TnVtYmVyKCkgJiYgdjIuaXNOdW1iZXIoKSkKICAgICAgICAgICAgIHJldHVybiB2MS5hc051bWJl
cigpIDw9IHYyLmFzTnVtYmVyKCk7CiAKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRh
ID0gJmNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpOwotICAgICAgICBpZiAoaXNKU1N0cmluZyhnbG9i
YWxEYXRhLCB2MSkgJiYgaXNKU1N0cmluZyhnbG9iYWxEYXRhLCB2MikpCisgICAgICAgIGlmIChp
c0pTU3RyaW5nKHYxKSAmJiBpc0pTU3RyaW5nKHYyKSkKICAgICAgICAgICAgIHJldHVybiAhKGFz
U3RyaW5nKHYyKS0+dmFsdWUoY2FsbEZyYW1lKSA8IGFzU3RyaW5nKHYxKS0+dmFsdWUoY2FsbEZy
YW1lKSk7CiAKICAgICAgICAgZG91YmxlIG4xOwotLSAKMS43LjQuNAoK
</data>
<flag name="review"
          id="118714"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="118736"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>