<?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>136800</bug_id>
          
          <creation_ts>2014-09-12 23:09:59 -0700</creation_ts>
          <short_desc>Merge JSGlobalObject::reset() into ::init()</short_desc>
          <delta_ts>2014-09-13 09:26:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>136724</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mmirman</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1035046</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-09-12 23:09:59 -0700</bug_when>
    <thetext>JSGlobalObject::init() is the only caller of JSGlobalObject::reset().  There is a FIXME comment to merge them together.  This also makes sense in preparation to add a JSCallee to the JSGlobalObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035048</commentid>
    <comment_count>1</comment_count>
      <attachid>238081</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-09-12 23:15:05 -0700</bug_when>
    <thetext>Created attachment 238081
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035069</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-09-13 09:26:23 -0700</bug_when>
    <thetext>Committed r173601: &lt;http://trac.webkit.org/changeset/173601&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238081</attachid>
            <date>2014-09-12 23:15:05 -0700</date>
            <delta_ts>2014-09-13 08:49:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>136800.patch</filename>
            <type>text/plain</type>
            <size>19124</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTczNjAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDE0LTA5LTEyICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIE1lcmdlIEpTR2xvYmFsT2JqZWN0OjpyZXNldCgpIGludG8gOjppbml0KCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjgwMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIHRoZSBjb250ZW50
cyBvZiByZXNldCgpIGludG8gaW5pdCgpLgorICAgICAgICBOb3RlIHRoYXQgdGhlIGRpZmYgc2hv
d3MgbW9yZSBjaGFuZ2VzLgorCisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KTogTW92ZWQgYm9keSBvZiByZXNl
dCgpIGludG8gaW5pdC4KKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnB1dCk6CisgICAg
ICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgIChK
U0M6OkpTR2xvYmFsT2JqZWN0OjphZGRHbG9iYWxWYXIpOgorICAgICAgICAoSlNDOjpKU0dsb2Jh
bE9iamVjdDo6YWRkRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpsYXN0SW5Qcm90b3R5cGVDaGFp
bik6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpyZXNldCk6IERlbGV0ZWQuCisgICAg
ICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorCiAyMDE0LTA5LTEyICBNaWNoYWVsIFNh
Ym9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBKU0NhbGxlZSB0byBwcm9n
cmFtIGFuZCBldmFsIENhbGxGcmFtZXMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9uIDE3MzYwMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjE1LDcwICsyMTUsOSBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0KCkKICAgICBt
X2NvbnNvbGVDbGllbnQgPSBtX2luc3BlY3RvckNvbnRyb2xsZXItPmNvbnNvbGVDbGllbnQoKTsK
ICNlbmRpZgogCi0gICAgcmVzZXQocHJvdG90eXBlKCkpOwotfQotCi12b2lkIEpTR2xvYmFsT2Jq
ZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBK
U0dsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGNlbGwp
OwotICAgIEFTU0VSVCghSGVhcDo6aGVhcCh2YWx1ZSkgfHwgSGVhcDo6aGVhcCh2YWx1ZSkgPT0g
SGVhcDo6aGVhcCh0aGlzT2JqZWN0KSk7Ci0KLSAgICBpZiAoc3ltYm9sVGFibGVQdXQodGhpc09i
amVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdC5pc1N0cmljdE1vZGUoKSkpCi0g
ICAgICAgIHJldHVybjsKLSAgICBCYXNlOjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KLWJvb2wgSlNHbG9iYWxPYmplY3Q6OmRlZmluZU93blBy
b3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHBy
b3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBib29sIHNo
b3VsZFRocm93KQotewotICAgIEpTR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpT
R2xvYmFsT2JqZWN0Kj4ob2JqZWN0KTsKLSAgICBQcm9wZXJ0eVNsb3Qgc2xvdCh0aGlzT2JqZWN0
KTsKLSAgICAvLyBzaWxlbnRseSBpZ25vcmUgYXR0ZW1wdHMgdG8gYWRkIGFjY2Vzc29ycyBhbGlh
c2luZyB2YXJzLgotICAgIGlmIChkZXNjcmlwdG9yLmlzQWNjZXNzb3JEZXNjcmlwdG9yKCkgJiYg
c3ltYm9sVGFibGVHZXQodGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eSh0aGlzT2Jq
ZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKLX0KLQot
SlNHbG9iYWxPYmplY3Q6Ok5ld0dsb2JhbFZhciBKU0dsb2JhbE9iamVjdDo6YWRkR2xvYmFsVmFy
KGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBDb25zdGFudE1vZGUgY29uc3RhbnRNb2RlKQotewot
ICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKHN5bWJvbFRhYmxlKCktPm1fbG9jayk7Ci0g
ICAgaW50IGluZGV4ID0gc3ltYm9sVGFibGUoKS0+c2l6ZShsb2NrZXIpOwotICAgIFN5bWJvbFRh
YmxlRW50cnkgbmV3RW50cnkoaW5kZXgsIChjb25zdGFudE1vZGUgPT0gSXNDb25zdGFudCkgPyBS
ZWFkT25seSA6IDApOwotICAgIGlmIChjb25zdGFudE1vZGUgPT0gSXNWYXJpYWJsZSkKLSAgICAg
ICAgbmV3RW50cnkucHJlcGFyZVRvV2F0Y2goc3ltYm9sVGFibGUoKSk7Ci0gICAgU3ltYm9sVGFi
bGU6Ok1hcDo6QWRkUmVzdWx0IHJlc3VsdCA9IHN5bWJvbFRhYmxlKCktPmFkZChsb2NrZXIsIGlk
ZW50LmltcGwoKSwgbmV3RW50cnkpOwotICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAg
ICAgYWRkUmVnaXN0ZXJzKDEpOwotICAgIGVsc2UKLSAgICAgICAgaW5kZXggPSByZXN1bHQuaXRl
cmF0b3ItPnZhbHVlLmdldEluZGV4KCk7Ci0gICAgTmV3R2xvYmFsVmFyIHZhcjsKLSAgICB2YXIu
cmVnaXN0ZXJOdW1iZXIgPSBpbmRleDsKLSAgICB2YXIuc2V0ID0gcmVzdWx0Lml0ZXJhdG9yLT52
YWx1ZS53YXRjaHBvaW50U2V0KCk7Ci0gICAgcmV0dXJuIHZhcjsKLX0KLQotdm9pZCBKU0dsb2Jh
bE9iamVjdDo6YWRkRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
LSAgICByZW1vdmVEaXJlY3Qodm0sIHByb3BlcnR5TmFtZSk7IC8vIE5ld2x5IGRlY2xhcmVkIGZ1
bmN0aW9ucyBvdmVyd3JpdGUgZXhpc3RpbmcgcHJvcGVydGllcy4KLSAgICBOZXdHbG9iYWxWYXIg
dmFyID0gYWRkR2xvYmFsVmFyKHByb3BlcnR5TmFtZSwgSXNWYXJpYWJsZSk7Ci0gICAgcmVnaXN0
ZXJBdCh2YXIucmVnaXN0ZXJOdW1iZXIpLnNldChleGVjLT52bSgpLCB0aGlzLCB2YWx1ZSk7Ci0g
ICAgaWYgKHZhci5zZXQpCi0gICAgICAgIHZhci5zZXQtPm5vdGlmeVdyaXRlKHZtLCB2YWx1ZSwg
VmFyaWFibGVXcml0ZUZpcmVEZXRhaWwodGhpcywgcHJvcGVydHlOYW1lKSk7Ci19Ci0KLXN0YXRp
YyBpbmxpbmUgSlNPYmplY3QqIGxhc3RJblByb3RvdHlwZUNoYWluKEpTT2JqZWN0KiBvYmplY3Qp
Ci17Ci0gICAgSlNPYmplY3QqIG8gPSBvYmplY3Q7Ci0gICAgd2hpbGUgKG8tPnByb3RvdHlwZSgp
LmlzT2JqZWN0KCkpCi0gICAgICAgIG8gPSBhc09iamVjdChvLT5wcm90b3R5cGUoKSk7Ci0gICAg
cmV0dXJuIG87Ci19Ci0KLXZvaWQgSlNHbG9iYWxPYmplY3Q6OnJlc2V0KEpTVmFsdWUgcHJvdG90
eXBlKQotewogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IEpTR2xvYmFsT2JqZWN0OjpnbG9iYWxFeGVj
KCk7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLQorICAgIAogICAgIG1fZnVuY3Rpb25Qcm90
b3R5cGUuc2V0KHZtLCB0aGlzLCBGdW5jdGlvblByb3RvdHlwZTo6Y3JlYXRlKHZtLCBGdW5jdGlv
blByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBqc051bGwoKSkpKTsgLy8gVGhl
IHJlYWwgcHJvdG90eXBlIHdpbGwgYmUgc2V0IG9uY2UgT2JqZWN0UHJvdG90eXBlIGlzIGNyZWF0
ZWQuCiAgICAgbV9jYWxsZWVTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBKU0NhbGxlZTo6Y3JlYXRl
U3RydWN0dXJlKHZtLCB0aGlzLCBqc051bGwoKSkpOwogICAgIG1fZnVuY3Rpb25TdHJ1Y3R1cmUu
c2V0KHZtLCB0aGlzLCBKU0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVu
Y3Rpb25Qcm90b3R5cGUuZ2V0KCkpKTsKQEAgLTMxOCwxNSArMjU3LDE1IEBAIHZvaWQgSlNHbG9i
YWxPYmplY3Q6OnJlc2V0KEpTVmFsdWUgcHJvdG8KICAgICBtX3R5cGVkQXJyYXlzW3RvSW5kZXgo
VHlwZUZsb2F0MzIpXS5zdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBKU0Zsb2F0MzJBcnJheTo6Y3Jl
YXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX3R5cGVkQXJyYXlzW3RvSW5kZXgoVHlwZUZsb2F0MzIp
XS5wcm90b3R5cGUuZ2V0KCkpKTsKICAgICBtX3R5cGVkQXJyYXlzW3RvSW5kZXgoVHlwZUZsb2F0
NjQpXS5zdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBKU0Zsb2F0NjRBcnJheTo6Y3JlYXRlU3RydWN0
dXJlKHZtLCB0aGlzLCBtX3R5cGVkQXJyYXlzW3RvSW5kZXgoVHlwZUZsb2F0NjQpXS5wcm90b3R5
cGUuZ2V0KCkpKTsKICAgICBtX3R5cGVkQXJyYXlzW3RvSW5kZXgoVHlwZURhdGFWaWV3KV0uc3Ry
dWN0dXJlLnNldCh2bSwgdGhpcywgSlNEYXRhVmlldzo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlz
LCBtX3R5cGVkQXJyYXlzW3RvSW5kZXgoVHlwZURhdGFWaWV3KV0ucHJvdG90eXBlLmdldCgpKSk7
Ci0KKyAgICAKICAgICBtX25hbWVTY29wZVN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIEpTTmFtZVNj
b3BlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIGpzTnVsbCgpKSk7CiAgICAgbV9sZXhpY2Fs
RW52aXJvbm1lbnRTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBKU0xleGljYWxFbnZpcm9ubWVudDo6
Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzKSk7CiAgICAgbV9zdHJpY3RFdmFsQWN0aXZhdGlvblN0
cnVjdHVyZS5zZXQodm0sIHRoaXMsIFN0cmljdEV2YWxBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1
cmUodm0sIHRoaXMsIGpzTnVsbCgpKSk7CiAgICAgbV9kZWJ1Z2dlclNjb3BlU3RydWN0dXJlLnNl
dChtX3ZtLCB0aGlzLCBEZWJ1Z2dlclNjb3BlOjpjcmVhdGVTdHJ1Y3R1cmUobV92bSwgdGhpcykp
OwogICAgIG1fd2l0aFNjb3BlU3RydWN0dXJlLnNldCh2bSwgdGhpcywgSlNXaXRoU2NvcGU6OmNy
ZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywganNOdWxsKCkpKTsKLQorICAgIAogICAgIG1fbnVsbFBy
b3RvdHlwZU9iamVjdFN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIEpTRmluYWxPYmplY3Q6OmNyZWF0
ZVN0cnVjdHVyZSh2bSwgdGhpcywganNOdWxsKCksIEpTRmluYWxPYmplY3Q6OmRlZmF1bHRJbmxp
bmVDYXBhY2l0eSgpKSk7Ci0KKyAgICAKICAgICBtX2NhbGxiYWNrRnVuY3Rpb25TdHJ1Y3R1cmUu
c2V0KHZtLCB0aGlzLCBKU0NhbGxiYWNrRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhp
cywgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSkpOwogICAgIG1fYXJndW1lbnRzU3RydWN0dXJl
LnNldCh2bSwgdGhpcywgQXJndW1lbnRzOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2Jq
ZWN0UHJvdG90eXBlLmdldCgpKSk7CiAgICAgbV9jYWxsYmFja0NvbnN0cnVjdG9yU3RydWN0dXJl
LnNldCh2bSwgdGhpcywgSlNDYWxsYmFja0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0s
IHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSk7CkBAIC0zMzUsNyArMjc0LDcgQEAgdm9p
ZCBKU0dsb2JhbE9iamVjdDo6cmVzZXQoSlNWYWx1ZSBwcm90bwogICAgIG1fb2JqY0NhbGxiYWNr
RnVuY3Rpb25TdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBPYmpDQ2FsbGJhY2tGdW5jdGlvbjo6Y3Jl
YXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSk7CiAgICAg
bV9vYmpjV3JhcHBlck9iamVjdFN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIEpTQ2FsbGJhY2tPYmpl
Y3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVj
dFByb3RvdHlwZS5nZXQoKSkpOwogI2VuZGlmCi0KKyAgICAKICAgICBtX2FycmF5UHJvdG90eXBl
LnNldCh2bSwgdGhpcywgQXJyYXlQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgQXJyYXlQcm90
b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkp
KSk7CiAgICAgCiAgICAgbV9vcmlnaW5hbEFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdTaGFwZVtV
bmRlY2lkZWRTaGFwZSA+PiBJbmRleGluZ1NoYXBlU2hpZnRdLnNldCh2bSwgdGhpcywgSlNBcnJh
eTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2FycmF5UHJvdG90eXBlLmdldCgpLCBBcnJh
eVdpdGhVbmRlY2lkZWQpKTsKQEAgLTM0OCw0NCArMjg3LDQ0IEBAIHZvaWQgSlNHbG9iYWxPYmpl
Y3Q6OnJlc2V0KEpTVmFsdWUgcHJvdG8KICAgICAgICAgbV9hcnJheVN0cnVjdHVyZUZvckluZGV4
aW5nU2hhcGVEdXJpbmdBbGxvY2F0aW9uW2ldID0gbV9vcmlnaW5hbEFycmF5U3RydWN0dXJlRm9y
SW5kZXhpbmdTaGFwZVtpXTsKICAgICAKICAgICBtX3JlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVy
ZS5zZXQodm0sIHRoaXMsIFJlZ0V4cE1hdGNoZXNBcnJheTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0
aGlzLCBtX2FycmF5UHJvdG90eXBlLmdldCgpKSk7Ci0KKyAgICAKICAgICBSZWdFeHAqIGVtcHR5
UmVnZXggPSBSZWdFeHA6OmNyZWF0ZSh2bSwgIiIsIE5vRmxhZ3MpOwogICAgIAogICAgIG1fcmVn
RXhwUHJvdG90eXBlLnNldCh2bSwgdGhpcywgUmVnRXhwUHJvdG90eXBlOjpjcmVhdGUodm0sIFJl
Z0V4cFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlw
ZS5nZXQoKSksIGVtcHR5UmVnZXgpKTsKICAgICBtX3JlZ0V4cFN0cnVjdHVyZS5zZXQodm0sIHRo
aXMsIFJlZ0V4cE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX3JlZ0V4cFByb3Rv
dHlwZS5nZXQoKSkpOwotCisgICAgCiAjaWYgRU5BQkxFKFBST01JU0VTKQogICAgIG1fcHJvbWlz
ZVByb3RvdHlwZS5zZXQodm0sIHRoaXMsIEpTUHJvbWlzZVByb3RvdHlwZTo6Y3JlYXRlKGV4ZWMs
IHRoaXMsIEpTUHJvbWlzZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29i
amVjdFByb3RvdHlwZS5nZXQoKSkpKTsKICAgICBtX3Byb21pc2VTdHJ1Y3R1cmUuc2V0KHZtLCB0
aGlzLCBKU1Byb21pc2U6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9wcm9taXNlUHJvdG90
eXBlLmdldCgpKSk7CiAjZW5kaWYgLy8gRU5BQkxFKFBST01JU0VTKQotCisgICAgCiAjZGVmaW5l
IENSRUFURV9QUk9UT1RZUEVfRk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUs
IHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lKSBcCi0gICAgbV8gIyMgbG93ZXJOYW1l
ICMjIFByb3RvdHlwZS5zZXQodm0sIHRoaXMsIGNhcGl0YWxOYW1lIyNQcm90b3R5cGU6OmNyZWF0
ZSh2bSwgdGhpcywgY2FwaXRhbE5hbWUjI1Byb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0
aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsgXAotICAgIG1fICMjIHByb3Blck5hbWUg
IyMgU3RydWN0dXJlLnNldCh2bSwgdGhpcywgaW5zdGFuY2VUeXBlOjpjcmVhdGVTdHJ1Y3R1cmUo
dm0sIHRoaXMsIG1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5cGUuZ2V0KCkpKTsKLQorbV8gIyMg
bG93ZXJOYW1lICMjIFByb3RvdHlwZS5zZXQodm0sIHRoaXMsIGNhcGl0YWxOYW1lIyNQcm90b3R5
cGU6OmNyZWF0ZSh2bSwgdGhpcywgY2FwaXRhbE5hbWUjI1Byb3RvdHlwZTo6Y3JlYXRlU3RydWN0
dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsgXAorbV8gIyMgcHJvcGVy
TmFtZSAjIyBTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBpbnN0YW5jZVR5cGU6OmNyZWF0ZVN0cnVj
dHVyZSh2bSwgdGhpcywgbV8gIyMgbG93ZXJOYW1lICMjIFByb3RvdHlwZS5nZXQoKSkpOworICAg
IAogICAgIEZPUl9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUoQ1JFQVRFX1BST1RPVFlQRV9GT1Jf
U0lNUExFX1RZUEUpCi0KKyAgICAKICN1bmRlZiBDUkVBVEVfUFJPVE9UWVBFX0ZPUl9TSU1QTEVf
VFlQRQotCisgICAgCiAgICAgLy8gQ29uc3RydWN0b3JzCi0KKyAgICAKICAgICBPYmplY3RDb25z
dHJ1Y3Rvciogb2JqZWN0Q29uc3RydWN0b3IgPSBPYmplY3RDb25zdHJ1Y3Rvcjo6Y3JlYXRlKHZt
LCBPYmplY3RDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2Z1bmN0aW9u
UHJvdG90eXBlLmdldCgpKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpOwogICAgIG1fb2JqZWN0
Q29uc3RydWN0b3Iuc2V0KHZtLCB0aGlzLCBvYmplY3RDb25zdHJ1Y3Rvcik7CiAgICAgSlNDZWxs
KiBmdW5jdGlvbkNvbnN0cnVjdG9yID0gRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlKHZtLCBG
dW5jdGlvbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Q
cm90b3R5cGUuZ2V0KCkpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKTsKICAgICBKU0NlbGwq
IGFycmF5Q29uc3RydWN0b3IgPSBBcnJheUNvbnN0cnVjdG9yOjpjcmVhdGUodm0sIEFycmF5Q29u
c3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5n
ZXQoKSksIG1fYXJyYXlQcm90b3R5cGUuZ2V0KCkpOwotCisgICAgCiAgICAgbV9yZWdFeHBDb25z
dHJ1Y3Rvci5zZXQodm0sIHRoaXMsIFJlZ0V4cENvbnN0cnVjdG9yOjpjcmVhdGUodm0sIFJlZ0V4
cENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5
cGUuZ2V0KCkpLCBtX3JlZ0V4cFByb3RvdHlwZS5nZXQoKSkpOwotCisgICAgCiAjZGVmaW5lIENS
RUFURV9DT05TVFJVQ1RPUl9GT1JfU0lNUExFX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwg
cHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKLSAgICBjYXBpdGFsTmFtZSAjIyBD
b25zdHJ1Y3RvciogbG93ZXJOYW1lICMjIENvbnN0cnVjdG9yID0gY2FwaXRhbE5hbWUgIyMgQ29u
c3RydWN0b3I6OmNyZWF0ZSh2bSwgY2FwaXRhbE5hbWUgIyMgQ29uc3RydWN0b3I6OmNyZWF0ZVN0
cnVjdHVyZSh2bSwgdGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fICMjIGxvd2Vy
TmFtZSAjIyBQcm90b3R5cGUuZ2V0KCkpOyBcCi0gICAgbV8gIyMgbG93ZXJOYW1lICMjIFByb3Rv
dHlwZS0+cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmNv
bnN0cnVjdG9yLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0b3IsIERvbnRFbnVtKTsgXAorY2FwaXRh
bE5hbWUgIyMgQ29uc3RydWN0b3IqIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3RvciA9IGNhcGl0YWxO
YW1lICMjIENvbnN0cnVjdG9yOjpjcmVhdGUodm0sIGNhcGl0YWxOYW1lICMjIENvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBt
XyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlLmdldCgpKTsgXAorbV8gIyMgbG93ZXJOYW1lICMj
IFByb3RvdHlwZS0+cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmNvbnN0cnVjdG9yLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0b3IsIERvbnRFbnVtKTsgXAog
CiAgICAgRk9SX0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRShDUkVBVEVfQ09OU1RSVUNUT1JfRk9S
X1NJTVBMRV9UWVBFKQotCisgICAgCiAjdW5kZWYgQ1JFQVRFX0NPTlNUUlVDVE9SX0ZPUl9TSU1Q
TEVfVFlQRQotCisgICAgCiAgICAgbV9lcnJvckNvbnN0cnVjdG9yLnNldCh2bSwgdGhpcywgZXJy
b3JDb25zdHJ1Y3Rvcik7Ci0KKyAgICAKICAgICBTdHJ1Y3R1cmUqIG5hdGl2ZUVycm9yUHJvdG90
eXBlU3RydWN0dXJlID0gTmF0aXZlRXJyb3JQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwg
dGhpcywgbV9lcnJvclByb3RvdHlwZS5nZXQoKSk7CiAgICAgU3RydWN0dXJlKiBuYXRpdmVFcnJv
clN0cnVjdHVyZSA9IE5hdGl2ZUVycm9yQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSh2bSwg
dGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSk7CiAgICAgbV9ldmFsRXJyb3JDb25zdHJ1
Y3Rvci5zZXQodm0sIHRoaXMsIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I6OmNyZWF0ZSh2bSwgdGhp
cywgbmF0aXZlRXJyb3JTdHJ1Y3R1cmUsIG5hdGl2ZUVycm9yUHJvdG90eXBlU3RydWN0dXJlLCBB
U0NJSUxpdGVyYWwoIkV2YWxFcnJvciIpKSk7CkBAIC0zOTcsNyArMzM2LDcgQEAgdm9pZCBKU0ds
b2JhbE9iamVjdDo6cmVzZXQoSlNWYWx1ZSBwcm90bwogI2lmIEVOQUJMRShQUk9NSVNFUykKICAg
ICBtX3Byb21pc2VDb25zdHJ1Y3Rvci5zZXQodm0sIHRoaXMsIEpTUHJvbWlzZUNvbnN0cnVjdG9y
OjpjcmVhdGUodm0sIEpTUHJvbWlzZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRo
aXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtX3Byb21pc2VQcm90b3R5cGUuZ2V0KCkp
KTsKICNlbmRpZgotCisgICAgCiAgICAgbV9vYmplY3RQcm90b3R5cGUtPnB1dERpcmVjdFdpdGhv
dXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3Rvciwgb2JqZWN0Q29u
c3RydWN0b3IsIERvbnRFbnVtKTsKICAgICBtX2Z1bmN0aW9uUHJvdG90eXBlLT5wdXREaXJlY3RX
aXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIGZ1bmN0
aW9uQ29uc3RydWN0b3IsIERvbnRFbnVtKTsKICAgICBtX2FycmF5UHJvdG90eXBlLT5wdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIGFy
cmF5Q29uc3RydWN0b3IsIERvbnRFbnVtKTsKQEAgLTQwNSw3ICszNDQsNyBAQCB2b2lkIEpTR2xv
YmFsT2JqZWN0OjpyZXNldChKU1ZhbHVlIHByb3RvCiAjaWYgRU5BQkxFKFBST01JU0VTKQogICAg
IG1fcHJvbWlzZVByb3RvdHlwZS0+cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBtX3Byb21pc2VDb25zdHJ1Y3Rvci5nZXQoKSwgRG9u
dEVudW0pOwogI2VuZGlmCi0KKyAgICAKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+T2JqZWN0LCBvYmplY3RDb25zdHJ1Y3RvciwgRG9udEVudW0p
OwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5G
dW5jdGlvbiwgZnVuY3Rpb25Db25zdHJ1Y3RvciwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdFdp
dGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5BcnJheSwgYXJyYXlDb25zdHJ1
Y3RvciwgRG9udEVudW0pOwpAQCAtNDE5LDEzICszNTgsMTMgQEAgdm9pZCBKU0dsb2JhbE9iamVj
dDo6cmVzZXQoSlNWYWx1ZSBwcm90bwogI2lmIEVOQUJMRShQUk9NSVNFUykKICAgICBwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+UHJvbWlzZSwgbV9wcm9t
aXNlQ29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtKTsKICNlbmRpZgotCi0KKyAgICAKKyAgICAK
ICNkZWZpbmUgUFVUX0NPTlNUUlVDVE9SX0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93
ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAotICAgIHB1dERpcmVj
dFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dlck5h
bWUgIyMgQ29uc3RydWN0b3IsIERvbnRFbnVtKTsgXAorcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3Rv
ciwgRG9udEVudW0pOyBcCiAKICAgICBGT1JfRUFDSF9TSU1QTEVfQlVJTFRJTl9UWVBFX1dJVEhf
Q09OU1RSVUNUT1IoUFVUX0NPTlNUUlVDVE9SX0ZPUl9TSU1QTEVfVFlQRSkKLQorICAgIAogI3Vu
ZGVmIFBVVF9DT05TVFJVQ1RPUl9GT1JfU0lNUExFX1RZUEUKICAgICBQcm90b3R5cGVNYXAmIHBy
b3RvdHlwZU1hcCA9IHZtLnByb3RvdHlwZU1hcDsKICAgICBTdHJ1Y3R1cmUqIGl0ZXJhdG9yUmVz
dWx0U3RydWN0dXJlID0gcHJvdG90eXBlTWFwLmVtcHR5T2JqZWN0U3RydWN0dXJlRm9yUHJvdG90
eXBlKG1fb2JqZWN0UHJvdG90eXBlLmdldCgpLCBKU0ZpbmFsT2JqZWN0OjpkZWZhdWx0SW5saW5l
Q2FwYWNpdHkoKSk7CkBAIC00MzMsMTAgKzM3MiwxMCBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojpy
ZXNldChKU1ZhbHVlIHByb3RvCiAgICAgaXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmUgPSBTdHJ1Y3R1
cmU6OmFkZFByb3BlcnR5VHJhbnNpdGlvbih2bSwgaXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmUsIHZt
LnByb3BlcnR5TmFtZXMtPmRvbmUsIDAsIG9mZnNldCk7CiAgICAgaXRlcmF0b3JSZXN1bHRTdHJ1
Y3R1cmUgPSBTdHJ1Y3R1cmU6OmFkZFByb3BlcnR5VHJhbnNpdGlvbih2bSwgaXRlcmF0b3JSZXN1
bHRTdHJ1Y3R1cmUsIHZtLnByb3BlcnR5TmFtZXMtPnZhbHVlLCAwLCBvZmZzZXQpOwogICAgIG1f
aXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBpdGVyYXRvclJlc3VsdFN0cnVj
dHVyZSk7Ci0KKyAgICAKICAgICBtX2V2YWxGdW5jdGlvbi5zZXQodm0sIHRoaXMsIEpTRnVuY3Rp
b246OmNyZWF0ZSh2bSwgdGhpcywgMSwgdm0ucHJvcGVydHlOYW1lcy0+ZXZhbC5zdHJpbmcoKSwg
Z2xvYmFsRnVuY0V2YWwpKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0u
cHJvcGVydHlOYW1lcy0+ZXZhbCwgbV9ldmFsRnVuY3Rpb24uZ2V0KCksIERvbnRFbnVtKTsKLQor
ICAgIAogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5KU09OLCBKU09OT2JqZWN0OjpjcmVhdGUodm0sIEpTT05PYmplY3Q6OmNyZWF0ZVN0cnVjdHVy
ZSh2bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSwgRG9udEVudW0pOwogICAgIHB1
dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5NYXRoLCBNYXRo
T2JqZWN0OjpjcmVhdGUodm0sIHRoaXMsIE1hdGhPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwg
dGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSwgRG9udEVudW0pOwogICAgIApAQCAtNDUx
LDcgKzM5MCw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnJlc2V0KEpTVmFsdWUgcHJvdG8KICAg
ICB0eXBlZEFycmF5Q29uc3RydWN0b3JzW3RvSW5kZXgoVHlwZUZsb2F0MzIpXSA9IEpTRmxvYXQz
MkFycmF5Q29uc3RydWN0b3I6OmNyZWF0ZSh2bSwgSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV90
eXBlZEFycmF5c1t0b0luZGV4KFR5cGVGbG9hdDMyKV0ucHJvdG90eXBlLmdldCgpLCBBU0NJSUxp
dGVyYWwoIkZsb2F0MzJBcnJheSIpKTsKICAgICB0eXBlZEFycmF5Q29uc3RydWN0b3JzW3RvSW5k
ZXgoVHlwZUZsb2F0NjQpXSA9IEpTRmxvYXQ2NEFycmF5Q29uc3RydWN0b3I6OmNyZWF0ZSh2bSwg
SlNGbG9hdDY0QXJyYXlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2Z1
bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV90eXBlZEFycmF5c1t0b0luZGV4KFR5cGVGbG9hdDY0
KV0ucHJvdG90eXBlLmdldCgpLCBBU0NJSUxpdGVyYWwoIkZsb2F0NjRBcnJheSIpKTsKICAgICB0
eXBlZEFycmF5Q29uc3RydWN0b3JzW3RvSW5kZXgoVHlwZURhdGFWaWV3KV0gPSBKU0RhdGFWaWV3
Q29uc3RydWN0b3I6OmNyZWF0ZSh2bSwgSlNEYXRhVmlld0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtX3R5cGVkQXJyYXlz
W3RvSW5kZXgoVHlwZURhdGFWaWV3KV0ucHJvdG90eXBlLmdldCgpLCBBU0NJSUxpdGVyYWwoIkRh
dGFWaWV3IikpOwotCisgICAgCiAgICAgZm9yICh1bnNpZ25lZCB0eXBlZEFycmF5SW5kZXggPSBO
VU1CRVJfT0ZfVFlQRURfQVJSQVlfVFlQRVM7IHR5cGVkQXJyYXlJbmRleC0tOykgewogICAgICAg
ICBtX3R5cGVkQXJyYXlzW3R5cGVkQXJyYXlJbmRleF0ucHJvdG90eXBlLT5wdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIHR5cGVkQXJy
YXlDb25zdHJ1Y3RvcnNbdHlwZWRBcnJheUluZGV4XSwgRG9udEVudW0pOwogICAgICAgICBwdXRE
aXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgSWRlbnRpZmllcihleGVjLCB0eXBlZEFycmF5Q29u
c3RydWN0b3JzW3R5cGVkQXJyYXlJbmRleF0tPm5hbWUoZXhlYykpLCB0eXBlZEFycmF5Q29uc3Ry
dWN0b3JzW3R5cGVkQXJyYXlJbmRleF0sIERvbnRFbnVtKTsKQEAgLTQ3MywyMiArNDEyLDc4IEBA
IHZvaWQgSlNHbG9iYWxPYmplY3Q6OnJlc2V0KEpTVmFsdWUgcHJvdG8KICAgICBtX3NwZWNpYWxQ
b2ludGVyc1tTcGVjaWFsOjpBcHBseUZ1bmN0aW9uXSA9IG1fYXBwbHlGdW5jdGlvbi5nZXQoKTsK
ICAgICBtX3NwZWNpYWxQb2ludGVyc1tTcGVjaWFsOjpPYmplY3RDb25zdHJ1Y3Rvcl0gPSBvYmpl
Y3RDb25zdHJ1Y3RvcjsKICAgICBtX3NwZWNpYWxQb2ludGVyc1tTcGVjaWFsOjpBcnJheUNvbnN0
cnVjdG9yXSA9IGFycmF5Q29uc3RydWN0b3I7Ci0KKyAgICAKICAgICBDb25zb2xlUHJvdG90eXBl
KiBjb25zb2xlUHJvdG90eXBlID0gQ29uc29sZVByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBD
b25zb2xlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90
eXBlLmdldCgpKSk7CiAgICAgbV9jb25zb2xlU3RydWN0dXJlLnNldCh2bSwgdGhpcywgSlNDb25z
b2xlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIGNvbnNvbGVQcm90b3R5cGUpKTsKICAgICBK
U0NvbnNvbGUqIGNvbnNvbGVPYmplY3QgPSBKU0NvbnNvbGU6OmNyZWF0ZSh2bSwgbV9jb25zb2xl
U3RydWN0dXJlLmdldCgpKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgSWRl
bnRpZmllcihleGVjLCAiY29uc29sZSIpLCBjb25zb2xlT2JqZWN0LCBEb250RW51bSk7Ci0KKyAg
ICAKICAgICBpZiAobV9leHBlcmltZW50c0VuYWJsZWQpIHsKICAgICAgICAgTmFtZVByb3RvdHlw
ZSogcHJpdmF0ZU5hbWVQcm90b3R5cGUgPSBOYW1lUHJvdG90eXBlOjpjcmVhdGUoZXhlYywgTmFt
ZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5n
ZXQoKSkpOwogICAgICAgICBtX3ByaXZhdGVOYW1lU3RydWN0dXJlLnNldCh2bSwgdGhpcywgTmFt
ZUluc3RhbmNlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIHByaXZhdGVOYW1lUHJvdG90eXBl
KSk7Ci0KKyAgICAgICAgCiAgICAgICAgIEpTQ2VsbCogcHJpdmF0ZU5hbWVDb25zdHJ1Y3RvciA9
IE5hbWVDb25zdHJ1Y3Rvcjo6Y3JlYXRlKHZtLCBOYW1lQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZSh2bSwgdGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIHByaXZhdGVOYW1lUHJv
dG90eXBlKTsKICAgICAgICAgcHJpdmF0ZU5hbWVQcm90b3R5cGUtPnB1dERpcmVjdFdpdGhvdXRU
cmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgcHJpdmF0ZU5hbWVD
b25zdHJ1Y3RvciwgRG9udEVudW0pOwogICAgICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgSWRlbnRpZmllcihleGVjLCAiTmFtZSIpLCBwcml2YXRlTmFtZUNvbnN0cnVjdG9yLCBE
b250RW51bSk7CiAgICAgfQorICAgIAorICAgIHJlc2V0UHJvdG90eXBlKHZtLCBwcm90b3R5cGUo
KSk7Cit9CiAKLSAgICByZXNldFByb3RvdHlwZSh2bSwgcHJvdG90eXBlKTsKK3ZvaWQgSlNHbG9i
YWxPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQorewor
ICAgIEpTR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4o
Y2VsbCk7CisgICAgQVNTRVJUKCFIZWFwOjpoZWFwKHZhbHVlKSB8fCBIZWFwOjpoZWFwKHZhbHVl
KSA9PSBIZWFwOjpoZWFwKHRoaXNPYmplY3QpKTsKKworICAgIGlmIChzeW1ib2xUYWJsZVB1dCh0
aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90LmlzU3RyaWN0TW9kZSgp
KSkKKyAgICAgICAgcmV0dXJuOworICAgIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKK30KKworYm9vbCBKU0dsb2JhbE9iamVjdDo6ZGVmaW5l
T3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIGJv
b2wgc2hvdWxkVGhyb3cpCit7CisgICAgSlNHbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBqc0Nh
c3Q8SlNHbG9iYWxPYmplY3QqPihvYmplY3QpOworICAgIFByb3BlcnR5U2xvdCBzbG90KHRoaXNP
YmplY3QpOworICAgIC8vIHNpbGVudGx5IGlnbm9yZSBhdHRlbXB0cyB0byBhZGQgYWNjZXNzb3Jz
IGFsaWFzaW5nIHZhcnMuCisgICAgaWYgKGRlc2NyaXB0b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3Io
KSAmJiBzeW1ib2xUYWJsZUdldCh0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KHRo
aXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwor
fQorCitKU0dsb2JhbE9iamVjdDo6TmV3R2xvYmFsVmFyIEpTR2xvYmFsT2JqZWN0OjphZGRHbG9i
YWxWYXIoY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIENvbnN0YW50TW9kZSBjb25zdGFudE1vZGUp
Cit7CisgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoc3ltYm9sVGFibGUoKS0+bV9sb2Nr
KTsKKyAgICBpbnQgaW5kZXggPSBzeW1ib2xUYWJsZSgpLT5zaXplKGxvY2tlcik7CisgICAgU3lt
Ym9sVGFibGVFbnRyeSBuZXdFbnRyeShpbmRleCwgKGNvbnN0YW50TW9kZSA9PSBJc0NvbnN0YW50
KSA/IFJlYWRPbmx5IDogMCk7CisgICAgaWYgKGNvbnN0YW50TW9kZSA9PSBJc1ZhcmlhYmxlKQor
ICAgICAgICBuZXdFbnRyeS5wcmVwYXJlVG9XYXRjaChzeW1ib2xUYWJsZSgpKTsKKyAgICBTeW1i
b2xUYWJsZTo6TWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gc3ltYm9sVGFibGUoKS0+YWRkKGxvY2tl
ciwgaWRlbnQuaW1wbCgpLCBuZXdFbnRyeSk7CisgICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KQor
ICAgICAgICBhZGRSZWdpc3RlcnMoMSk7CisgICAgZWxzZQorICAgICAgICBpbmRleCA9IHJlc3Vs
dC5pdGVyYXRvci0+dmFsdWUuZ2V0SW5kZXgoKTsKKyAgICBOZXdHbG9iYWxWYXIgdmFyOworICAg
IHZhci5yZWdpc3Rlck51bWJlciA9IGluZGV4OworICAgIHZhci5zZXQgPSByZXN1bHQuaXRlcmF0
b3ItPnZhbHVlLndhdGNocG9pbnRTZXQoKTsKKyAgICByZXR1cm4gdmFyOworfQorCit2b2lkIEpT
R2xvYmFsT2JqZWN0OjphZGRGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBWTSYgdm0gPSBleGVjLT52
bSgpOworICAgIHJlbW92ZURpcmVjdCh2bSwgcHJvcGVydHlOYW1lKTsgLy8gTmV3bHkgZGVjbGFy
ZWQgZnVuY3Rpb25zIG92ZXJ3cml0ZSBleGlzdGluZyBwcm9wZXJ0aWVzLgorICAgIE5ld0dsb2Jh
bFZhciB2YXIgPSBhZGRHbG9iYWxWYXIocHJvcGVydHlOYW1lLCBJc1ZhcmlhYmxlKTsKKyAgICBy
ZWdpc3RlckF0KHZhci5yZWdpc3Rlck51bWJlcikuc2V0KGV4ZWMtPnZtKCksIHRoaXMsIHZhbHVl
KTsKKyAgICBpZiAodmFyLnNldCkKKyAgICAgICAgdmFyLnNldC0+bm90aWZ5V3JpdGUodm0sIHZh
bHVlLCBWYXJpYWJsZVdyaXRlRmlyZURldGFpbCh0aGlzLCBwcm9wZXJ0eU5hbWUpKTsKK30KKwor
c3RhdGljIGlubGluZSBKU09iamVjdCogbGFzdEluUHJvdG90eXBlQ2hhaW4oSlNPYmplY3QqIG9i
amVjdCkKK3sKKyAgICBKU09iamVjdCogbyA9IG9iamVjdDsKKyAgICB3aGlsZSAoby0+cHJvdG90
eXBlKCkuaXNPYmplY3QoKSkKKyAgICAgICAgbyA9IGFzT2JqZWN0KG8tPnByb3RvdHlwZSgpKTsK
KyAgICByZXR1cm4gbzsKIH0KIAogLy8gUHJpdmF0ZSBuYW1lc3BhY2UgZm9yIGhlbHBlcnMgZm9y
IEpTR2xvYmFsT2JqZWN0OjpoYXZlQUJhZFRpbWUoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCShyZXZpc2lvbiAxNzM2MDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC02MDMsOSArNjAzLDcgQEAgcHJpdmF0ZToKIAogICAgIEpTX0VYUE9SVF9QUklWQVRF
IHZvaWQgc2V0R2xvYmFsVGhpcyhWTSYsIEpTT2JqZWN0KiBnbG9iYWxUaGlzKTsKIAotICAgIC8v
IEZJWE1FOiBGb2xkIHJlc2V0IGludG8gaW5pdC4KICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lk
IGluaXQoKTsKLSAgICB2b2lkIHJlc2V0KEpTVmFsdWUgcHJvdG90eXBlKTsKIAogICAgIHZvaWQg
Y3JlYXRlVGhyb3dUeXBlRXJyb3IoVk0mKTsKIAo=
</data>
<flag name="review"
          id="262842"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>