<?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>19804</bug_id>
          
          <creation_ts>2008-06-28 17:52:25 -0700</creation_ts>
          <short_desc>optimize access to arrays without &quot;holes&quot;</short_desc>
          <delta_ts>2008-06-28 22:24:10 -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>Mac</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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>zwarich</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>84670</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-28 17:52:25 -0700</bug_when>
    <thetext>I can speed up SunSpider almost 2% by optimizing access to the parts of arrays before any &quot;missing values&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84671</commentid>
    <comment_count>1</comment_count>
      <attachid>21991</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-28 18:02:18 -0700</bug_when>
    <thetext>Created attachment 21991
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84672</commentid>
    <comment_count>2</comment_count>
      <attachid>21991</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-06-28 18:21:40 -0700</bug_when>
    <thetext>Comment on attachment 21991
patch

r=me

There are some typos in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84673</commentid>
    <comment_count>3</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-06-28 18:30:08 -0700</bug_when>
    <thetext>Sam pointed out in the channel that you forgot to remove the declaration for JSArray::inlineGetOwnPropertySlot, and that the getOwnPropertySlotSlowCase may be a better name for getSlowCase. Definitely remove the declaration before landing, but what do you think about his suggestion about the name change for getSlowCase?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84674</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-28 20:19:05 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Sam pointed out in the channel that you forgot to remove the declaration for
&gt; JSArray::inlineGetOwnPropertySlot, and that the getOwnPropertySlotSlowCase may
&gt; be a better name for getSlowCase. Definitely remove the declaration before
&gt; landing, but what do you think about his suggestion about the name change for
&gt; getSlowCase?

The longer name seems OK. I&apos;ll make both changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84678</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-28 22:24:10 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/34867</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21991</attachid>
            <date>2008-06-28 18:02:18 -0700</date>
            <delta_ts>2008-06-28 18:21:40 -0700</delta_ts>
            <desc>patch</desc>
            <filename>HolesPatch.txt</filename>
            <type>text/plain</type>
            <size>15816</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM0ODY0KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDUgQEAKKzIwMDgtMDYtMjggIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5ODA0CisgICAgICAgICAgb3B0aW1pemUgYWNjZXNzIHRvIGFycmF5cyB3aXRob3V0ICJob2xl
cyIKKworICAgICAgICBTdW5TcGlkZXIgc2F5cyAxLjglIGZhc3Rlci4KKworICAgICAgICAqIGtq
cy9KU0FycmF5LmNwcDoKKyAgICAgICAgKEtKUzo6SlNBcnJheTo6SlNBcnJheSk6IEluaXRpYWxp
emUgbV9mYXN0QWNjZXNzQ3V0b2ZmIHdoZW4gY3JlYXRpbmcKKyAgICAgICAgYXJyYXlzLiBBbHNv
IHVwZGF0ZWQgZm9yIG5ldyBsb2NhdGlvbiBvZiBtX3ZlY3Rvckxlbmd0aC4KKyAgICAgICAgKEtK
Uzo6SlNBcnJheTo6Z2V0SXRlbSk6IFVwZGF0ZWQgZm9yIG5ldyBsb2NhdGlvbiBvZiBtX3ZlY3Rv
ckxlbmd0aC4KKyAgICAgICAgKEtKUzo6SlNBcnJheTo6Z2V0U2xvd0Nhc2UpOiBBZGRlZC4gQnJv
a2Ugb3V0IHRoZSBub24taG90IHBhcnRzIG9mCisgICAgICAgIGdldE93blByb3BlcnR5U2xvdCB0
byBtYWtlIHRoZSBob3QgcGFydCBmYXN0ZXIuCisgICAgICAgIChLSlM6OkpTQXJyYXk6OmdldE93
blByb3BlcnR5U2xvdCk6IEFkZGVkIGEgbmV3IGZhc3RlciBjYXNlIGZvcgorICAgICAgICBpbmRp
Y2VzIGxvd2VyIHRoYW4gbV9mYXN0QWNjZXNzQ3V0b2ZmLiBXZSBjYW4gZG8gdGhlZXNlIHdpdGgg
bm8KKyAgICAgICAgYWRkaXRpb25hbCBjaGVja3Mgb3IgYnJhbmNoZXMuCisgICAgICAgIChLSlM6
OkpTQXJyYXk6OnB1dCk6IEFkZGVkIGEgbmV3IGZhc3RlciBjYXNlIGZvciBpbmRpY2VzIGxvd2Vy
IHRoYW4KKyAgICAgICAgbV9mYXN0QWNjZXNzQ3V0b2ZmLiBXZSBjYW4gZG8gdGhlZXNlIHdpdGgg
bm8gYWRkaXRpb25hbCBjaGVja3Mgb3IKKyAgICAgICAgYnJhbmNoZXMuIE1vdmVkIHRoZSBtYXhB
cnJheUluZGV4IGhhbmRsaW5nIG91dCBvZiB0aGlzIGZ1bmN0aW9uLgorICAgICAgICBBZGRlZCBj
b2RlIHRvIHNldCBtX2Zhc3RBY2Nlc3NDdXRvZmYgd2hlbiB0aGUgdmVyeSBsYXN0IGhvbGUgaW4K
KyAgICAgICAgYW4gYXJyYXkgaXMgZmlsbGVkOyB0aGlzIGlzIGhvdyB0aGUgY3V0b2ZmIGdldHMg
c2V0IGZvciBtb3N0IGFycmF5cy4KKyAgICAgICAgKEtKUzo6SlNBcnJheTo6cHV0U2xvd0Nhc2Up
OiBNb3ZlZCB0aGUgcmVzdCBvZiB0aGUgcHV0IGZ1bmN0aW9uIGxvZ2ljCisgICAgICAgIGluIGhl
cmUsIHRvIG1ha2UgdGhlIGhvdCBwYXJ0IG9mIHRoZSBwdXQgZnVuY3Rpb24gZmFzdGVyLgorICAg
ICAgICAoS0pTOjpKU0FycmF5OjpkZWxldGVQcm9wZXJ0eSk6IEFkZGVkIGNvZGUgdG8gbG93ZXIg
bV9mYXN0QWNjZXNzQ3V0b2ZmCisgICAgICAgIHdoZW4gYSBkZWxldGUgbWFrZXMgYSBuZXcgaG9s
ZSBpbiB0aGUgYXJyYXkuCisgICAgICAgIChLSlM6OkpTQXJyYXk6OmdldFByb3BlcnR5TmFtZXMp
OiBVcGRhdGVkIGZvciBuZXcgbG9jYXRpb24gb2YKKyAgICAgICAgbV92ZWN0b3JMZW5ndGguCisg
ICAgICAgIChLSlM6OkpTQXJyYXk6OmluY3JlYXNlVmVjdG9yTGVuZ3RoKTogRGl0dG8uCisgICAg
ICAgIChLSlM6OkpTQXJyYXk6OnNldExlbmd0aCk6IEFkZGVkIGNvZGUgdG8gbG93ZXIgbV9mYXN0
QWNjZXNzQ3V0b2ZmCisgICAgICAgIHdoZW4gc2V0TGVuZ3RoIG1ha2VzIHRoZSBhcnJheSBzbWFs
bGVyLgorICAgICAgICAoS0pTOjpKU0FycmF5OjptYXJrKTogVXBkYXRlZCBmb3IgbmV3IGxvY2F0
aW9uIG9mIG1fdmVjdG9yTGVuZ3RoLgorICAgICAgICAoS0pTOjpKU0FycmF5Ojpzb3J0KTogRGl0
dG8uIFNldCBtX2Zhc3RBY2Nlc3NDdXRvZmYgYWZ0ZXIgbW92aW5nCisgICAgICAgIGFsbCB0aGUg
aG9sZXMgdG8gdGhlIGVuZCBvZiB0aGUgYXJyYXkuCisgICAgICAgIChLSlM6OkpTQXJyYXk6OmNv
bXBhY3RGb3JTb3J0aW5nKTogRGl0dG8uCisgICAgICAgIChLSlM6OkpTQXJyYXk6OmNoZWNrQ29u
c2lzdGVuY3kpOiBBZGRlZCBjb25zaXN0ZW5jeSBjaGVja3MgZnJvCisgICAgICAgIG1fZmFzdEFj
Y2Vzc0N1dG9mZiBhbmQgdXBkYXRlZCBmb3IgdGhlIG5ldyBsb2NhdGlvbiBvZiBtX3ZlY3Rvckxl
bmd0aC4KKworICAgICAgICAqIGtqcy9KU0FycmF5Lmg6IEFkZGVkIGRlY2xhcmF0aW9ucyBmb3Ig
c2xvdyBjYXNlIGZ1bmN0aW9ucy4KKyAgICAgICAgUmVwbGFjZWQgbV92ZWN0b3JMZW5ndGggd2l0
aCBtX2Zhc3RBY2Nlc3NDdXRvZmYuCisKIDIwMDgtMDYtMjggIFNhbSBXZWluaWcgIDxzYW1Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6
IEphdmFTY3JpcHRDb3JlL2tqcy9KU0FycmF5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9ranMvSlNBcnJheS5jcHAJKHJldmlzaW9uIDM0ODU3KQorKysgSmF2YVNjcmlwdENvcmUv
a2pzL0pTQXJyYXkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFj
ZSBLSlMgewogdHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCBKU1ZhbHVlKj4gU3BhcnNlQXJyYXlW
YWx1ZU1hcDsKIAogc3RydWN0IEFycmF5U3RvcmFnZSB7CisgICAgdW5zaWduZWQgbV92ZWN0b3JM
ZW5ndGg7CiAgICAgdW5zaWduZWQgbV9udW1WYWx1ZXNJblZlY3RvcjsKICAgICBTcGFyc2VBcnJh
eVZhbHVlTWFwKiBtX3NwYXJzZVZhbHVlTWFwOwogICAgIHZvaWQqIGxhenlDcmVhdGlvbkRhdGE7
IC8vIEFuIEpTQXJyYXkgc3ViY2xhc3MgY2FuIHVzZSB0aGlzIHRvIGZpbGwgdGhlIHZlY3RvciBs
YXppbHkuCkBAIC04Niw4ICs4Nyw5IEBAIEpTQXJyYXk6OkpTQXJyYXkoSlNPYmplY3QqIHByb3Rv
dHlwZSwgdW4KICAgICB1bnNpZ25lZCBpbml0aWFsQ2FwYWNpdHkgPSBtaW4oaW5pdGlhbExlbmd0
aCwgc3BhcnNlQXJyYXlDdXRvZmYpOwogCiAgICAgbV9sZW5ndGggPSBpbml0aWFsTGVuZ3RoOwot
ICAgIG1fdmVjdG9yTGVuZ3RoID0gaW5pdGlhbENhcGFjaXR5OworICAgIG1fZmFzdEFjY2Vzc0N1
dG9mZiA9IDA7CiAgICAgbV9zdG9yYWdlID0gc3RhdGljX2Nhc3Q8QXJyYXlTdG9yYWdlKj4oZmFz
dFplcm9lZE1hbGxvYyhzdG9yYWdlU2l6ZShpbml0aWFsQ2FwYWNpdHkpKSk7CisgICAgbV9zdG9y
YWdlLT5tX3ZlY3Rvckxlbmd0aCA9IGluaXRpYWxDYXBhY2l0eTsKIAogICAgIEhlYXA6OmhlYXAo
dGhpcyktPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChpbml0aWFsQ2FwYWNpdHkgKiBzaXplb2YoSlNW
YWx1ZSopKTsKIApAQCAtMTAwLDEwICsxMDIsMTEgQEAgSlNBcnJheTo6SlNBcnJheShKU09iamVj
dCogcHJvdG90eXBlLCBjbwogICAgIHVuc2lnbmVkIGxlbmd0aCA9IGxpc3Quc2l6ZSgpOwogCiAg
ICAgbV9sZW5ndGggPSBsZW5ndGg7Ci0gICAgbV92ZWN0b3JMZW5ndGggPSBsZW5ndGg7CisgICAg
bV9mYXN0QWNjZXNzQ3V0b2ZmID0gbGVuZ3RoOwogCiAgICAgQXJyYXlTdG9yYWdlKiBzdG9yYWdl
ID0gc3RhdGljX2Nhc3Q8QXJyYXlTdG9yYWdlKj4oZmFzdE1hbGxvYyhzdG9yYWdlU2l6ZShsZW5n
dGgpKSk7CiAKKyAgICBzdG9yYWdlLT5tX3ZlY3Rvckxlbmd0aCA9IGxlbmd0aDsKICAgICBzdG9y
YWdlLT5tX251bVZhbHVlc0luVmVjdG9yID0gbGVuZ3RoOwogICAgIHN0b3JhZ2UtPm1fc3BhcnNl
VmFsdWVNYXAgPSAwOwogCkBAIC0xMzQsNyArMTM3LDcgQEAgSlNWYWx1ZSogSlNBcnJheTo6Z2V0
SXRlbSh1bnNpZ25lZCBpKSBjbwogCiAgICAgQXJyYXlTdG9yYWdlKiBzdG9yYWdlID0gbV9zdG9y
YWdlOwogCi0gICAgaWYgKGkgPCBtX3ZlY3Rvckxlbmd0aCkgeworICAgIGlmIChpIDwgc3RvcmFn
ZS0+bV92ZWN0b3JMZW5ndGgpIHsKICAgICAgICAgSlNWYWx1ZSogdmFsdWUgPSBzdG9yYWdlLT5t
X3ZlY3RvcltpXTsKICAgICAgICAgcmV0dXJuIHZhbHVlID8gdmFsdWUgOiBqc1VuZGVmaW5lZCgp
OwogICAgIH0KQEAgLTE1MiwxNyArMTU1LDE3IEBAIEpTVmFsdWUqIEpTQXJyYXk6Omxlbmd0aEdl
dHRlcihFeGVjU3RhdGUKICAgICByZXR1cm4ganNOdW1iZXIoZXhlYywgc3RhdGljX2Nhc3Q8SlNB
cnJheSo+KHNsb3Quc2xvdEJhc2UoKSktPm1fbGVuZ3RoKTsKIH0KIAotQUxXQVlTX0lOTElORSBi
b29sIEpTQXJyYXk6OmlubGluZUdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIGksIFByb3BlcnR5U2xvdCYgc2xvdCkKK05FVkVSX0lOTElORSBib29sIEpTQXJyYXk6
OmdldFNsb3dDYXNlKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgUHJvcGVydHlTbG90JiBz
bG90KQogewogICAgIEFycmF5U3RvcmFnZSogc3RvcmFnZSA9IG1fc3RvcmFnZTsKIAotICAgIGlm
IChVTkxJS0VMWShpID49IG1fbGVuZ3RoKSkgeworICAgIGlmIChpID49IG1fbGVuZ3RoKSB7CiAg
ICAgICAgIGlmIChpID4gbWF4QXJyYXlJbmRleCkKICAgICAgICAgICAgIHJldHVybiBnZXRPd25Q
cm9wZXJ0eVNsb3QoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSwgc2xvdCk7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAoaSA8IG1fdmVjdG9yTGVuZ3RoKSB7
CisgICAgaWYgKGkgPCBzdG9yYWdlLT5tX3ZlY3Rvckxlbmd0aCkgewogICAgICAgICBKU1ZhbHVl
KiYgdmFsdWVTbG90ID0gc3RvcmFnZS0+bV92ZWN0b3JbaV07CiAgICAgICAgIGlmICh2YWx1ZVNs
b3QpIHsKICAgICAgICAgICAgIHNsb3Quc2V0VmFsdWVTbG90KCZ2YWx1ZVNsb3QpOwpAQCAtMTkx
LDE0ICsxOTQsMTkgQEAgYm9vbCBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YQog
ICAgIGJvb2wgaXNBcnJheUluZGV4OwogICAgIHVuc2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUudG9B
cnJheUluZGV4KCZpc0FycmF5SW5kZXgpOwogICAgIGlmIChpc0FycmF5SW5kZXgpCi0gICAgICAg
IHJldHVybiBpbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgaSwgc2xvdCk7CisgICAgICAg
IHJldHVybiBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgaSwgc2xvdCk7CiAKICAg
ICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOwogfQogCiBib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIGksIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gaW5s
aW5lR2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIGksIHNsb3QpOworICAgIGlmIChpIDwgbV9mYXN0
QWNjZXNzQ3V0b2ZmKSB7CisgICAgICAgIHNsb3Quc2V0VmFsdWVTbG90KCZtX3N0b3JhZ2UtPm1f
dmVjdG9yW2ldKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGdl
dFNsb3dDYXNlKGV4ZWMsIGksIHNsb3QpOwogfQogCiAvLyBFQ01BIDE1LjQuNS4xCkBAIC0yMjgs
MjkgKzIzNiw0NiBAQCB2b2lkIEpTQXJyYXk6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnCiB7
CiAgICAgY2hlY2tDb25zaXN0ZW5jeSgpOwogCisgICAgaWYgKGkgPCBtX2Zhc3RBY2Nlc3NDdXRv
ZmYpIHsKKyAgICAgICAgbV9zdG9yYWdlLT5tX3ZlY3RvcltpXSA9IHZhbHVlOworICAgICAgICBj
aGVja0NvbnNpc3RlbmN5KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICB1bnNpZ25l
ZCBsZW5ndGggPSBtX2xlbmd0aDsKLSAgICBpZiAoaSA+PSBsZW5ndGgpIHsKLSAgICAgICAgaWYg
KGkgPiBtYXhBcnJheUluZGV4KSB7Ci0gICAgICAgICAgICBwdXQoZXhlYywgSWRlbnRpZmllcjo6
ZnJvbShleGVjLCBpKSwgdmFsdWUpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Cisg
ICAgaWYgKGkgPj0gbGVuZ3RoICYmIGkgPD0gbWF4QXJyYXlJbmRleCkgewogICAgICAgICBsZW5n
dGggPSBpICsgMTsKICAgICAgICAgbV9sZW5ndGggPSBsZW5ndGg7CiAgICAgfQogCi0gICAgQXJy
YXlTdG9yYWdlKiBzdG9yYWdlID0gbV9zdG9yYWdlOwotCi0gICAgaWYgKGkgPCBtX3ZlY3Rvckxl
bmd0aCkgewotICAgICAgICBKU1ZhbHVlKiYgdmFsdWVTbG90ID0gc3RvcmFnZS0+bV92ZWN0b3Jb
aV07Ci0gICAgICAgIHN0b3JhZ2UtPm1fbnVtVmFsdWVzSW5WZWN0b3IgKz0gIXZhbHVlU2xvdDsK
KyAgICBpZiAoaSA8IG1fc3RvcmFnZS0+bV92ZWN0b3JMZW5ndGgpIHsKKyAgICAgICAgSlNWYWx1
ZSomIHZhbHVlU2xvdCA9IG1fc3RvcmFnZS0+bV92ZWN0b3JbaV07CisgICAgICAgIGlmICh2YWx1
ZVNsb3QpIHsKKyAgICAgICAgICAgIHZhbHVlU2xvdCA9IHZhbHVlOworICAgICAgICAgICAgY2hl
Y2tDb25zaXN0ZW5jeSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgICAg
IHZhbHVlU2xvdCA9IHZhbHVlOworICAgICAgICBpZiAoKyttX3N0b3JhZ2UtPm1fbnVtVmFsdWVz
SW5WZWN0b3IgPT0gbV9sZW5ndGgpCisgICAgICAgICAgICBtX2Zhc3RBY2Nlc3NDdXRvZmYgPSBt
X2xlbmd0aDsKICAgICAgICAgY2hlY2tDb25zaXN0ZW5jeSgpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCisgICAgcHV0U2xvd0Nhc2UoZXhlYywgaSwgdmFsdWUpOworfQorCitORVZFUl9JTkxJ
TkUgdm9pZCBKU0FycmF5OjpwdXRTbG93Q2FzZShFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGks
IEpTVmFsdWUqIHZhbHVlKQoreworICAgIEFycmF5U3RvcmFnZSogc3RvcmFnZSA9IG1fc3RvcmFn
ZTsKICAgICBTcGFyc2VBcnJheVZhbHVlTWFwKiBtYXAgPSBzdG9yYWdlLT5tX3NwYXJzZVZhbHVl
TWFwOwogCiAgICAgaWYgKGkgPj0gc3BhcnNlQXJyYXlDdXRvZmYpIHsKKyAgICAgICAgaWYgKGkg
PiBtYXhBcnJheUluZGV4KSB7CisgICAgICAgICAgICBwdXQoZXhlYywgSWRlbnRpZmllcjo6ZnJv
bShleGVjLCBpKSwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAg
ICAgICAgLy8gV2UgbWlzcyBzb21lIGNhc2VzIHdoZXJlIHdlIGNvdWxkIGNvbXBhY3QgdGhlIHN0
b3JhZ2UsIHN1Y2ggYXMgYSBsYXJnZSBhcnJheSB0aGF0IGlzIGJlaW5nIGZpbGxlZCBmcm9tIHRo
ZSBlbmQKICAgICAgICAgLy8gKHdoaWNoIHdpbGwgb25seSBiZSBjb21wYWN0ZWQgYXMgd2UgcmVh
Y2ggaW5kaWNlcyB0aGF0IGFyZSBsZXNzIHRoYW4gY3V0b2ZmKSAtIGJ1dCB0aGlzIG1ha2VzIHRo
ZSBjaGVjayBtdWNoIGZhc3Rlci4KICAgICAgICAgaWYgKCFpc0RlbnNlRW5vdWdoRm9yVmVjdG9y
KGkgKyAxLCBzdG9yYWdlLT5tX251bVZhbHVlc0luVmVjdG9yICsgMSkpIHsKQEAgLTI3Nyw3ICsz
MDIsNyBAQCB2b2lkIEpTQXJyYXk6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnCiAgICAgLy8g
RGVjaWRlIGhvdyBtYW55IHZhbHVlcyBpdCB3b3VsZCBiZSBiZXN0IHRvIG1vdmUgZnJvbSB0aGUg
bWFwLgogICAgIHVuc2lnbmVkIG5ld051bVZhbHVlc0luVmVjdG9yID0gc3RvcmFnZS0+bV9udW1W
YWx1ZXNJblZlY3RvciArIDE7CiAgICAgdW5zaWduZWQgbmV3VmVjdG9yTGVuZ3RoID0gaW5jcmVh
c2VkVmVjdG9yTGVuZ3RoKGkgKyAxKTsKLSAgICBmb3IgKHVuc2lnbmVkIGogPSBtYXgobV92ZWN0
b3JMZW5ndGgsIHNwYXJzZUFycmF5Q3V0b2ZmKTsgaiA8IG5ld1ZlY3Rvckxlbmd0aDsgKytqKQor
ICAgIGZvciAodW5zaWduZWQgaiA9IG1heChzdG9yYWdlLT5tX3ZlY3Rvckxlbmd0aCwgc3BhcnNl
QXJyYXlDdXRvZmYpOyBqIDwgbmV3VmVjdG9yTGVuZ3RoOyArK2opCiAgICAgICAgIG5ld051bVZh
bHVlc0luVmVjdG9yICs9IG1hcC0+Y29udGFpbnMoaik7CiAgICAgaWYgKGkgPj0gc3BhcnNlQXJy
YXlDdXRvZmYpCiAgICAgICAgIG5ld051bVZhbHVlc0luVmVjdG9yIC09IG1hcC0+Y29udGFpbnMo
aSk7CkBAIC0yOTYsNyArMzIxLDcgQEAgdm9pZCBKU0FycmF5OjpwdXQoRXhlY1N0YXRlKiBleGVj
LCB1bnNpZwogCiAgICAgc3RvcmFnZSA9IHN0YXRpY19jYXN0PEFycmF5U3RvcmFnZSo+KGZhc3RS
ZWFsbG9jKHN0b3JhZ2UsIHN0b3JhZ2VTaXplKG5ld1ZlY3Rvckxlbmd0aCkpKTsKIAotICAgIHVu
c2lnbmVkIHZlY3Rvckxlbmd0aCA9IG1fdmVjdG9yTGVuZ3RoOworICAgIHVuc2lnbmVkIHZlY3Rv
ckxlbmd0aCA9IHN0b3JhZ2UtPm1fdmVjdG9yTGVuZ3RoOwogICAgIGlmIChuZXdOdW1WYWx1ZXNJ
blZlY3RvciA9PSBzdG9yYWdlLT5tX251bVZhbHVlc0luVmVjdG9yICsgMSkgewogICAgICAgICBm
b3IgKHVuc2lnbmVkIGogPSB2ZWN0b3JMZW5ndGg7IGogPCBuZXdWZWN0b3JMZW5ndGg7ICsraikK
ICAgICAgICAgICAgIHN0b3JhZ2UtPm1fdmVjdG9yW2pdID0gMDsKQEAgLTMxMSw3ICszMzYsNyBA
QCB2b2lkIEpTQXJyYXk6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnCiAKICAgICBzdG9yYWdl
LT5tX3ZlY3RvcltpXSA9IHZhbHVlOwogCi0gICAgbV92ZWN0b3JMZW5ndGggPSBuZXdWZWN0b3JM
ZW5ndGg7CisgICAgc3RvcmFnZS0+bV92ZWN0b3JMZW5ndGggPSBuZXdWZWN0b3JMZW5ndGg7CiAg
ICAgc3RvcmFnZS0+bV9udW1WYWx1ZXNJblZlY3RvciA9IG5ld051bVZhbHVlc0luVmVjdG9yOwog
CiAgICAgbV9zdG9yYWdlID0gc3RvcmFnZTsKQEAgLTMzOCwxMyArMzYzLDE4IEBAIGJvb2wgSlNB
cnJheTo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiAKIAogICAgIEFycmF5U3RvcmFnZSogc3Rv
cmFnZSA9IG1fc3RvcmFnZTsKIAotICAgIGlmIChpIDwgbV92ZWN0b3JMZW5ndGgpIHsKKyAgICBp
ZiAoaSA8IHN0b3JhZ2UtPm1fdmVjdG9yTGVuZ3RoKSB7CiAgICAgICAgIEpTVmFsdWUqJiB2YWx1
ZVNsb3QgPSBzdG9yYWdlLT5tX3ZlY3RvcltpXTsKLSAgICAgICAgYm9vbCBoYWRWYWx1ZSA9IHZh
bHVlU2xvdDsKKyAgICAgICAgaWYgKCF2YWx1ZVNsb3QpIHsKKyAgICAgICAgICAgIGNoZWNrQ29u
c2lzdGVuY3koKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQogICAgICAg
ICB2YWx1ZVNsb3QgPSAwOwotICAgICAgICBzdG9yYWdlLT5tX251bVZhbHVlc0luVmVjdG9yIC09
IGhhZFZhbHVlOworICAgICAgICAtLXN0b3JhZ2UtPm1fbnVtVmFsdWVzSW5WZWN0b3I7CisgICAg
ICAgIGlmIChtX2Zhc3RBY2Nlc3NDdXRvZmYgPiBpKQorICAgICAgICAgICAgbV9mYXN0QWNjZXNz
Q3V0b2ZmID0gaTsKICAgICAgICAgY2hlY2tDb25zaXN0ZW5jeSgpOwotICAgICAgICByZXR1cm4g
aGFkVmFsdWU7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGlmIChTcGFyc2VB
cnJheVZhbHVlTWFwKiBtYXAgPSBzdG9yYWdlLT5tX3NwYXJzZVZhbHVlTWFwKSB7CkBAIC0zNzQs
NyArNDA0LDcgQEAgdm9pZCBKU0FycmF5OjpnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZQogCiAg
ICAgQXJyYXlTdG9yYWdlKiBzdG9yYWdlID0gbV9zdG9yYWdlOwogCi0gICAgdW5zaWduZWQgdXNl
ZFZlY3Rvckxlbmd0aCA9IG1pbihtX2xlbmd0aCwgbV92ZWN0b3JMZW5ndGgpOworICAgIHVuc2ln
bmVkIHVzZWRWZWN0b3JMZW5ndGggPSBtaW4obV9sZW5ndGgsIHN0b3JhZ2UtPm1fdmVjdG9yTGVu
Z3RoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdXNlZFZlY3Rvckxlbmd0aDsgKytp
KSB7CiAgICAgICAgIGlmIChzdG9yYWdlLT5tX3ZlY3RvcltpXSkKICAgICAgICAgICAgIHByb3Bl
cnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb20oZXhlYywgaSkpOwpAQCAtMzk2LDcgKzQyNiw3
IEBAIGJvb2wgSlNBcnJheTo6aW5jcmVhc2VWZWN0b3JMZW5ndGgodW5zaWcKIAogICAgIEFycmF5
U3RvcmFnZSogc3RvcmFnZSA9IG1fc3RvcmFnZTsKIAotICAgIHVuc2lnbmVkIHZlY3Rvckxlbmd0
aCA9IG1fdmVjdG9yTGVuZ3RoOworICAgIHVuc2lnbmVkIHZlY3Rvckxlbmd0aCA9IHN0b3JhZ2Ut
Pm1fdmVjdG9yTGVuZ3RoOwogICAgIEFTU0VSVChuZXdMZW5ndGggPiB2ZWN0b3JMZW5ndGgpOwog
ICAgIHVuc2lnbmVkIG5ld1ZlY3Rvckxlbmd0aCA9IGluY3JlYXNlZFZlY3Rvckxlbmd0aChuZXdM
ZW5ndGgpOwogCkBAIC00MDQsNyArNDM0LDcgQEAgYm9vbCBKU0FycmF5OjppbmNyZWFzZVZlY3Rv
ckxlbmd0aCh1bnNpZwogICAgIGlmICghc3RvcmFnZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgbV92ZWN0b3JMZW5ndGggPSBuZXdWZWN0b3JMZW5ndGg7CisgICAgc3RvcmFnZS0+bV92
ZWN0b3JMZW5ndGggPSBuZXdWZWN0b3JMZW5ndGg7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSB2
ZWN0b3JMZW5ndGg7IGkgPCBuZXdWZWN0b3JMZW5ndGg7ICsraSkKICAgICAgICAgc3RvcmFnZS0+
bV92ZWN0b3JbaV0gPSAwOwpAQCAtNDIyLDcgKzQ1MiwxMCBAQCB2b2lkIEpTQXJyYXk6OnNldExl
bmd0aCh1bnNpZ25lZCBuZXdMZW5nCiAgICAgdW5zaWduZWQgbGVuZ3RoID0gbV9sZW5ndGg7CiAK
ICAgICBpZiAobmV3TGVuZ3RoIDwgbGVuZ3RoKSB7Ci0gICAgICAgIHVuc2lnbmVkIHVzZWRWZWN0
b3JMZW5ndGggPSBtaW4obGVuZ3RoLCBtX3ZlY3Rvckxlbmd0aCk7CisgICAgICAgIGlmIChtX2Zh
c3RBY2Nlc3NDdXRvZmYgPiBuZXdMZW5ndGgpCisgICAgICAgICAgICBtX2Zhc3RBY2Nlc3NDdXRv
ZmYgPSBuZXdMZW5ndGg7CisKKyAgICAgICAgdW5zaWduZWQgdXNlZFZlY3Rvckxlbmd0aCA9IG1p
bihsZW5ndGgsIHN0b3JhZ2UtPm1fdmVjdG9yTGVuZ3RoKTsKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gbmV3TGVuZ3RoOyBpIDwgdXNlZFZlY3Rvckxlbmd0aDsgKytpKSB7CiAgICAgICAgICAg
ICBKU1ZhbHVlKiYgdmFsdWVTbG90ID0gc3RvcmFnZS0+bV92ZWN0b3JbaV07CiAgICAgICAgICAg
ICBib29sIGhhZFZhbHVlID0gdmFsdWVTbG90OwpAQCAtNDU1LDcgKzQ4OCw3IEBAIHZvaWQgSlNB
cnJheTo6bWFyaygpCiAKICAgICBBcnJheVN0b3JhZ2UqIHN0b3JhZ2UgPSBtX3N0b3JhZ2U7CiAK
LSAgICB1bnNpZ25lZCB1c2VkVmVjdG9yTGVuZ3RoID0gbWluKG1fbGVuZ3RoLCBtX3ZlY3Rvckxl
bmd0aCk7CisgICAgdW5zaWduZWQgdXNlZFZlY3Rvckxlbmd0aCA9IG1pbihtX2xlbmd0aCwgc3Rv
cmFnZS0+bV92ZWN0b3JMZW5ndGgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB1c2Vk
VmVjdG9yTGVuZ3RoOyArK2kpIHsKICAgICAgICAgSlNWYWx1ZSogdmFsdWUgPSBzdG9yYWdlLT5t
X3ZlY3RvcltpXTsKICAgICAgICAgaWYgKHZhbHVlICYmICF2YWx1ZS0+bWFya2VkKCkpCkBAIC02
MjUsNyArNjU4LDcgQEAgdm9pZCBKU0FycmF5Ojpzb3J0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYQog
ICAgIGlmICghbV9sZW5ndGgpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVuc2lnbmVkIHVzZWRW
ZWN0b3JMZW5ndGggPSBtaW4obV9sZW5ndGgsIG1fdmVjdG9yTGVuZ3RoKTsKKyAgICB1bnNpZ25l
ZCB1c2VkVmVjdG9yTGVuZ3RoID0gbWluKG1fbGVuZ3RoLCBtX3N0b3JhZ2UtPm1fdmVjdG9yTGVu
Z3RoKTsKIAogICAgIEFWTFRyZWU8QVZMVHJlZUFic3RyYWN0b3JGb3JBcnJheUNvbXBhcmUsIDQ0
PiB0cmVlOyAvLyBEZXB0aCA0NCBpcyBlbm91Z2ggZm9yIDJeMzEgaXRlbXMKICAgICB0cmVlLmFi
c3RyYWN0b3IoKS5tX2V4ZWMgPSBleGVjOwpAQCAtNjcwLDcgKzcwMyw3IEBAIHZvaWQgSlNBcnJh
eTo6c29ydChFeGVjU3RhdGUqIGV4ZWMsIEpTVmEKIAogICAgIGlmIChTcGFyc2VBcnJheVZhbHVl
TWFwKiBtYXAgPSBtX3N0b3JhZ2UtPm1fc3BhcnNlVmFsdWVNYXApIHsKICAgICAgICAgbmV3VXNl
ZFZlY3Rvckxlbmd0aCArPSBtYXAtPnNpemUoKTsKLSAgICAgICAgaWYgKG5ld1VzZWRWZWN0b3JM
ZW5ndGggPiBtX3ZlY3Rvckxlbmd0aCkgeworICAgICAgICBpZiAobmV3VXNlZFZlY3Rvckxlbmd0
aCA+IG1fc3RvcmFnZS0+bV92ZWN0b3JMZW5ndGgpIHsKICAgICAgICAgICAgIGlmICghaW5jcmVh
c2VWZWN0b3JMZW5ndGgobmV3VXNlZFZlY3Rvckxlbmd0aCkpIHsKICAgICAgICAgICAgICAgICBl
eGVjLT5zZXRFeGNlcHRpb24oRXJyb3I6OmNyZWF0ZShleGVjLCBHZW5lcmFsRXJyb3IsICJPdXQg
b2YgbWVtb3J5IikpOwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTcwOSw2ICs3NDIsNyBA
QCB2b2lkIEpTQXJyYXk6OnNvcnQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhCiAgICAgZm9yICh1bnNp
Z25lZCBpID0gbmV3VXNlZFZlY3Rvckxlbmd0aDsgaSA8IHVzZWRWZWN0b3JMZW5ndGg7ICsraSkK
ICAgICAgICAgbV9zdG9yYWdlLT5tX3ZlY3RvcltpXSA9IDA7CiAKKyAgICBtX2Zhc3RBY2Nlc3ND
dXRvZmYgPSBuZXdVc2VkVmVjdG9yTGVuZ3RoOwogICAgIG1fc3RvcmFnZS0+bV9udW1WYWx1ZXNJ
blZlY3RvciA9IG5ld1VzZWRWZWN0b3JMZW5ndGg7CiAKICAgICBjaGVja0NvbnNpc3RlbmN5KFNv
cnRDb25zaXN0ZW5jeUNoZWNrKTsKQEAgLTcyMCw3ICs3NTQsNyBAQCB1bnNpZ25lZCBKU0FycmF5
Ojpjb21wYWN0Rm9yU29ydGluZygpCiAKICAgICBBcnJheVN0b3JhZ2UqIHN0b3JhZ2UgPSBtX3N0
b3JhZ2U7CiAKLSAgICB1bnNpZ25lZCB1c2VkVmVjdG9yTGVuZ3RoID0gbWluKG1fbGVuZ3RoLCBt
X3ZlY3Rvckxlbmd0aCk7CisgICAgdW5zaWduZWQgdXNlZFZlY3Rvckxlbmd0aCA9IG1pbihtX2xl
bmd0aCwgc3RvcmFnZS0+bV92ZWN0b3JMZW5ndGgpOwogCiAgICAgdW5zaWduZWQgbnVtRGVmaW5l
ZCA9IDA7CiAgICAgdW5zaWduZWQgbnVtVW5kZWZpbmVkID0gMDsKQEAgLTc0Myw3ICs3NzcsNyBA
QCB1bnNpZ25lZCBKU0FycmF5Ojpjb21wYWN0Rm9yU29ydGluZygpCiAKICAgICBpZiAoU3BhcnNl
QXJyYXlWYWx1ZU1hcCogbWFwID0gc3RvcmFnZS0+bV9zcGFyc2VWYWx1ZU1hcCkgewogICAgICAg
ICBuZXdVc2VkVmVjdG9yTGVuZ3RoICs9IG1hcC0+c2l6ZSgpOwotICAgICAgICBpZiAobmV3VXNl
ZFZlY3Rvckxlbmd0aCA+IG1fdmVjdG9yTGVuZ3RoKSB7CisgICAgICAgIGlmIChuZXdVc2VkVmVj
dG9yTGVuZ3RoID4gc3RvcmFnZS0+bV92ZWN0b3JMZW5ndGgpIHsKICAgICAgICAgICAgIGlmICgh
aW5jcmVhc2VWZWN0b3JMZW5ndGgobmV3VXNlZFZlY3Rvckxlbmd0aCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgICAgICAgICBzdG9yYWdlID0gbV9zdG9yYWdlOwpAQCAtNzYyLDYg
Kzc5Niw3IEBAIHVuc2lnbmVkIEpTQXJyYXk6OmNvbXBhY3RGb3JTb3J0aW5nKCkKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSBuZXdVc2VkVmVjdG9yTGVuZ3RoOyBpIDwgdXNlZFZlY3Rvckxlbmd0aDsg
KytpKQogICAgICAgICBzdG9yYWdlLT5tX3ZlY3RvcltpXSA9IDA7CiAKKyAgICBtX2Zhc3RBY2Nl
c3NDdXRvZmYgPSBuZXdVc2VkVmVjdG9yTGVuZ3RoOwogICAgIHN0b3JhZ2UtPm1fbnVtVmFsdWVz
SW5WZWN0b3IgPSBuZXdVc2VkVmVjdG9yTGVuZ3RoOwogCiAgICAgY2hlY2tDb25zaXN0ZW5jeShT
b3J0Q29uc2lzdGVuY3lDaGVjayk7CkBAIC03ODcsMTQgKzgyMiwxOCBAQCB2b2lkIEpTQXJyYXk6
OmNoZWNrQ29uc2lzdGVuY3koQ29uc2lzdGVuCiAgICAgaWYgKHR5cGUgPT0gU29ydENvbnNpc3Rl
bmN5Q2hlY2spCiAgICAgICAgIEFTU0VSVCghbV9zdG9yYWdlLT5tX3NwYXJzZVZhbHVlTWFwKTsK
IAorICAgIEFTU0VSVChtX2Zhc3RBY2Nlc3NDdXRvZmYgPD0gbV9sZW5ndGgpOworICAgIEFTU0VS
VChtX2Zhc3RBY2Nlc3NDdXRvZmYgPD0gbV9zdG9yYWdlLT5tX251bVZhbHVlc0luVmVjdG9yKTsK
KwogICAgIHVuc2lnbmVkIG51bVZhbHVlc0luVmVjdG9yID0gMDsKLSAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbV92ZWN0b3JMZW5ndGg7ICsraSkgeworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBtX3N0b3JhZ2UtPm1fdmVjdG9yTGVuZ3RoOyArK2kpIHsKICAgICAgICAgaWYgKEpT
VmFsdWUqIHZhbHVlID0gbV9zdG9yYWdlLT5tX3ZlY3RvcltpXSkgewogICAgICAgICAgICAgQVNT
RVJUKGkgPCBtX2xlbmd0aCk7CiAgICAgICAgICAgICBpZiAodHlwZSAhPSBEZXN0cnVjdG9yQ29u
c2lzdGVuY3lDaGVjaykKICAgICAgICAgICAgICAgICB2YWx1ZS0+dHlwZSgpOyAvLyBMaWtlbHkg
dG8gY3Jhc2ggaWYgdGhlIG9iamVjdCB3YXMgZGVhbGxvY2F0ZWQuCiAgICAgICAgICAgICArK251
bVZhbHVlc0luVmVjdG9yOwogICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQVNTRVJUKGkg
Pj0gbV9mYXN0QWNjZXNzQ3V0b2ZmKTsKICAgICAgICAgICAgIGlmICh0eXBlID09IFNvcnRDb25z
aXN0ZW5jeUNoZWNrKQogICAgICAgICAgICAgICAgIEFTU0VSVChpID49IG1fc3RvcmFnZS0+bV9u
dW1WYWx1ZXNJblZlY3Rvcik7CiAgICAgICAgIH0KQEAgLTgwNiw3ICs4NDUsNyBAQCB2b2lkIEpT
QXJyYXk6OmNoZWNrQ29uc2lzdGVuY3koQ29uc2lzdGVuCiAgICAgICAgIGZvciAoU3BhcnNlQXJy
YXlWYWx1ZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3N0b3JhZ2UtPm1fc3BhcnNlVmFsdWVNYXAtPmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICAgICAgdW5zaWduZWQgaW5kZXggPSBp
dC0+Zmlyc3Q7CiAgICAgICAgICAgICBBU1NFUlQoaW5kZXggPCBtX2xlbmd0aCk7Ci0gICAgICAg
ICAgICBBU1NFUlQoaW5kZXggPj0gbV92ZWN0b3JMZW5ndGgpOworICAgICAgICAgICAgQVNTRVJU
KGluZGV4ID49IG1fc3RvcmFnZS0+bV92ZWN0b3JMZW5ndGgpOwogICAgICAgICAgICAgQVNTRVJU
KGluZGV4IDw9IG1heEFycmF5SW5kZXgpOwogICAgICAgICAgICAgQVNTRVJUKGl0LT5zZWNvbmQp
OwogICAgICAgICAgICAgaWYgKHR5cGUgIT0gRGVzdHJ1Y3RvckNvbnNpc3RlbmN5Q2hlY2spCklu
ZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvSlNBcnJheS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRDb3JlL2tqcy9KU0FycmF5LmgJKHJldmlzaW9uIDM0ODU3KQorKysgSmF2YVNjcmlwdENvcmUv
a2pzL0pTQXJyYXkuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsOSBAQCBuYW1lc3BhY2Ug
S0pTIHsKICAgICBzdGF0aWMgSlNWYWx1ZSogbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKICAgICBib29sIGlubGluZUdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwogCisgICAgYm9vbCBnZXRTbG93Q2FzZShFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgIHZvaWQgcHV0U2xvd0Nhc2UoRXhlY1N0YXRl
KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKik7CisKICAgICBib29sIGluY3JlYXNl
VmVjdG9yTGVuZ3RoKHVuc2lnbmVkIG5ld0xlbmd0aCk7CiAgICAgCiAgICAgdW5zaWduZWQgY29t
cGFjdEZvclNvcnRpbmcoKTsKQEAgLTczLDcgKzc2LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAg
dm9pZCBjaGVja0NvbnNpc3RlbmN5KENvbnNpc3RlbmN5Q2hlY2tUeXBlID0gTm9ybWFsQ29uc2lz
dGVuY3lDaGVjayk7CiAKICAgICB1bnNpZ25lZCBtX2xlbmd0aDsKLSAgICB1bnNpZ25lZCBtX3Zl
Y3Rvckxlbmd0aDsKKyAgICB1bnNpZ25lZCBtX2Zhc3RBY2Nlc3NDdXRvZmY7CiAgICAgQXJyYXlT
dG9yYWdlKiBtX3N0b3JhZ2U7CiAgIH07CiAK
</data>
<flag name="review"
          id="9671"
          type_id="1"
          status="+"
          setter="zwarich"
    />
          </attachment>
      

    </bug>

</bugzilla>