<?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>6241</bug_id>
          
          <creation_ts>2005-12-25 17:13:25 -0800</creation_ts>
          <short_desc>Remove WebFrame&apos;s parent frame pointer, instead rely on WebCore&apos;s parent concept</short_desc>
          <delta_ts>2005-12-26 15:07:12 -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>WebKit API</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>26640</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-12-25 17:13:25 -0800</bug_when>
    <thetext>WebKit has a redundant frame tree which is not necessarily entirely consistent with the WebCore tree it 
duplicates. As part of removing it and pushing code down, WebFrame should no longer keep a direct 
parent pointer and should count on the one from WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26641</commentid>
    <comment_count>1</comment_count>
      <attachid>5280</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-12-25 17:56:38 -0800</bug_when>
    <thetext>Created attachment 5280
change to do it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26642</commentid>
    <comment_count>2</comment_count>
      <attachid>5280</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2005-12-25 21:45:55 -0800</bug_when>
    <thetext>Comment on attachment 5280
change to do it

Looks good.

I think these lines

	 for (i = [_private-&gt;children count]-1; i &gt;=0; i--) {
	     [[_private-&gt;children objectAtIndex:i] _detachFromParent];
-	     [_private-&gt;children removeObjectAtIndex:i];
	 }

now have braces that don&apos;t belong.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5280</attachid>
            <date>2005-12-25 17:56:38 -0800</date>
            <delta_ts>2005-12-25 21:45:55 -0800</delta_ts>
            <desc>change to do it</desc>
            <filename>parent-frame-via-webcore.patch.txt</filename>
            <type>text/plain</type>
            <size>15820</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL0NoYW5nZUxvZyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40MQpkaWZmIC1wIC11IC1y
MS40MSBXZWJDb3JlL0NoYW5nZUxvZwotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJMjUgRGVjIDIwMDUg
MTg6Mjg6MjIgLTAwMDAJMS40MQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJMjYgRGVjIDIwMDUgMDE6
Mjg6NTMgLTAwMDAKQEAgLTEsMyArMSwxNSBAQAorMjAwNS0xMi0yNSAgTWFjaWVqIFN0YWNob3dp
YWsgIDxtanNAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIC0gUmVtb3ZlIFdlYkZyYW1lJ3MgcGFyZW50IGZyYW1lIHBvaW50ZXIsIGlu
c3RlYWQgcmVseSBvbiBXZWJDb3JlJ3MgcGFyZW50IGNvbmNlcHQKKyAgICAgICAgaHR0cDovL2J1
Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD02MjQxCisKKyAgICAgICAgKiBr
d3EvV2ViQ29yZUJyaWRnZS5oOgorICAgICAgICAqIGt3cS9XZWJDb3JlQnJpZGdlLm1tOgorICAg
ICAgICAoLVtXZWJDb3JlQnJpZGdlIHBhcmVudF0pOiBOZXcgbWV0aG9kLCByZWxpZXMgb24gdGhl
IEtIVE1MUGFydCdzCisJcGFyZW50IHBvaW50ZXIuCisKIDIwMDUtMTItMjQgIE1pdHogUGV0dGVs
ICA8b3BlbmRhcndpbi5vcmdAbWl0enBldHRlbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
ZXNlaWRlbC4KSW5kZXg6IFdlYkNvcmUva3dxL1dlYkNvcmVCcmlkZ2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvV2ViQ29yZUJyaWRnZS5oLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjM1NQpkaWZmIC1wIC11IC1yMS4zNTUgV2ViQ29yZS9rd3EvV2ViQ29yZUJy
aWRnZS5oCi0tLSBXZWJDb3JlL2t3cS9XZWJDb3JlQnJpZGdlLmgJMjAgRGVjIDIwMDUgMTc6MDU6
NTMgLTAwMDAJMS4zNTUKKysrIFdlYkNvcmUva3dxL1dlYkNvcmVCcmlkZ2UuaAkyNiBEZWMgMjAw
NSAwMToyOTozMiAtMDAwMApAQCAtMjA3LDYgKzIwNyw3IEBAIHR5cGVkZWYgZW51bQogLSAoS1dR
S0hUTUxQYXJ0ICopcGFydDsKIAogLSAodm9pZClzZXRQYXJlbnQ6KFdlYkNvcmVCcmlkZ2UgKilw
YXJlbnQ7CistIChXZWJDb3JlQnJpZGdlICopcGFyZW50OwogCiAtICh2b2lkKXByb3Zpc2lvbmFs
TG9hZFN0YXJ0ZWQ7CiAKSW5kZXg6IFdlYkNvcmUva3dxL1dlYkNvcmVCcmlkZ2UubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL1dlYkNvcmVCcmlkZ2UubW0sdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuNDQ1CmRpZmYgLXAgLXUgLXIxLjQ0NSBXZWJDb3JlL2t3cS9X
ZWJDb3JlQnJpZGdlLm1tCi0tLSBXZWJDb3JlL2t3cS9XZWJDb3JlQnJpZGdlLm1tCTIyIERlYyAy
MDA1IDA0OjExOjM5IC0wMDAwCTEuNDQ1CisrKyBXZWJDb3JlL2t3cS9XZWJDb3JlQnJpZGdlLm1t
CTI2IERlYyAyMDA1IDAxOjI5OjU4IC0wMDAwCkBAIC0zMzQsNiArMzM0LDE0IEBAIHN0YXRpYyBi
b29sIGluaXRpYWxpemVkS0pTID0gRkFMU0U7CiAgICAgX3BhcnQtPnNldFBhcmVudChbcGFyZW50
IHBhcnRdKTsKIH0KIAorLSAoV2ViQ29yZUJyaWRnZSAqKXBhcmVudAoreworICAgIEtXUUtIVE1M
UGFydCAqcGFyZW50UGFydCA9IEtXUShfcGFydC0+cGFyZW50UGFydCgpKTsKKyAgICBpZiAoIXBh
cmVudFBhcnQpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgcmV0dXJuIHBhcmVudFBhcnQtPmJy
aWRnZSgpOworfQorCiAtICh2b2lkKXByb3Zpc2lvbmFsTG9hZFN0YXJ0ZWQKIHsKICAgICBfcGFy
dC0+cHJvdmlzaW9uYWxMb2FkU3RhcnRlZCgpOwpJbmRleDogV2ViS2l0L0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViS2l0L0NoYW5nZUxvZyx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS4zNDI3CmRpZmYgLXAgLXUgLXIxLjM0MjcgV2ViS2l0L0NoYW5nZUxvZwotLS0g
V2ViS2l0L0NoYW5nZUxvZwkyNSBEZWMgMjAwNSAxMTowNDo1NSAtMDAwMAkxLjM0MjcKKysrIFdl
YktpdC9DaGFuZ2VMb2cJMjYgRGVjIDIwMDUgMDE6Mzk6MTYgLTAwMDAKQEAgLTEsMyArMSwzNiBA
QAorMjAwNS0xMi0yNSAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gUmVtb3ZlIFdlYkZy
YW1lJ3MgcGFyZW50IGZyYW1lIHBvaW50ZXIsIGluc3RlYWQgcmVseSBvbiBXZWJDb3JlJ3MgcGFy
ZW50IGNvbmNlcHQKKyAgICAgICAgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3df
YnVnLmNnaT9pZD02MjQxCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC5zdWJwcm9qL1dlYkJy
aWRnZS5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0LnN1YnByb2ovV2ViQnJpZGdlLm06Cisg
ICAgICAgICgtW1dlYkJyaWRnZSBjYW5UYXJnZXRMb2FkSW5GcmFtZTpdKTogVXNlIGJyaWRnZSBw
YXJlbnQgbWV0aG9kIGluc3RlYWQgb2YgbmVlZGxlc3NseQorCWFza2luZyBmb3IgcGFyZW50IHZp
YSBXZWJGcmFtZQorICAgICAgICAoLVtXZWJCcmlkZ2UgZnJhbWVEZXRhY2hlZF0pOiBEb24ndCBj
YWxsIF9yZW1vdmVDaGlsZCBvbiB0aGUgcGFyZW50IGZyYW1lIGFueSBtb3JlCisJYmVjYXVzZSBX
ZWJGYW1lJ3MgX2RldGFjaEZyb21QYXJlbnQgdGFrZXMgY2FyZSBvZiB0aGF0IG5vdy4KKyAgICAg
ICAgKiBXZWJWaWV3LnN1YnByb2ovV2ViRnJhbWUubToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2Ny
ZWF0ZUl0ZW1UcmVlV2l0aFRhcmdldEZyYW1lOmNsaXBwZWRBdFRhcmdldDpdKTogRml4IHN0cmF5
IHNwYWNlcworICAgICAgICAoLVtXZWJGcmFtZSBfZGV0YWNoQ2hpbGRyZW5dKTogRG9uJ3QgcmVt
b3ZlIGNoaWxkcmVuIGFzIHdlIGxvb3AgYW55IG1vcmUsIHRoZXkKKwljYW4gcmVtb3ZlIHRoZW1z
ZWx2ZXMuCisgICAgICAgICgtW1dlYkZyYW1lIF9kZXRhY2hGcm9tUGFyZW50XSk6IFJlbW92ZSBz
ZWxmIGZyb20gcGFyZW50OyBkb24ndCBuaWwgb3V0IGJyaWRnZQorCXVudGlsIHdlIGFyZSBkb25l
IHdpdGggaXQuCisgICAgICAgICgtW1dlYkZyYW1lIF90cmFuc2l0aW9uVG9Db21taXR0ZWQ6XSk6
IFJlbW92ZSBzb21lIGV4dHJhIGJyYWNlcy4KKyAgICAgICAgKC1bV2ViRnJhbWUgX2dvVG9JdGVt
OndpdGhMb2FkVHlwZTpdKTogVXNlIHBhcmVudEZyYW1lIG1ldGhvZCBpbiBhc3NlcnQgaW5zdGVh
ZCBvZiBwYXJlbnQKKwlmaWVsZCBkaXJlY3RseS4KKyAgICAgICAgKC1bV2ViRnJhbWUgX2FkZENo
aWxkOl0pOiBEb24ndCBwb2tlIGF0IHBhcmVudCBmcmFtZSBwb2ludGVyIGluIF9wcml2YXRlCisJ
c2luY2UgaXQgaXMgbm90IHRoZXJlIGFueSBtb3JlLgorICAgICAgICAoLVtXZWJGcmFtZSBfcmVt
b3ZlQ2hpbGQ6XSk6IFJlbW92ZSBleHRyYSBicmFjZXMgYW5kIGRvbid0IGNsZWFyIHBhcmVudCBw
b2ludGVyCisJZXhwbGljaXRseSBhbnkgbW9yZS4KKyAgICAgICAgKC1bV2ViRnJhbWUgX2FkZEZy
YW1lUGF0aFRvU3RyaW5nOl0pOiBHZXQgcGFyZW50RnJhbWUgZnJvbSBtZXRob2QsIG5vdCBmaWVs
ZC4KKyAgICAgICAgKC1bV2ViRnJhbWUgX2xvYWREYXRhU291cmNlOndpdGhMb2FkVHlwZTpmb3Jt
U3RhdGU6XSk6IFJlbW92ZSBleHRyYSBicmFjZXMuCisgICAgICAgICgtW1dlYkZyYW1lIF9uZXh0
RnJhbWVXaXRoV3JhcDpdKTogR2V0IHBhcmVudCBpbiB0aGUgcHJvcGVyIHdheSBhbmQgY2xlYW4g
dXAgdGhlCisJY29kaW5nIHN0eWxlLgorICAgICAgICAoLVtXZWJGcmFtZSBfcHJldmlvdXNGcmFt
ZVdpdGhXcmFwOl0pOiBEaXR0by4KKyAgICAgICAgKC1bV2ViRnJhbWUgcGFyZW50RnJhbWVdKTog
R2V0IHBhcmVudCBmcm9tIHRoZSBicmlkZ2UuCisKIDIwMDUtMTItMjQgIE1hY2llaiBTdGFjaG93
aWFrICA8bWpzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZi4KSW5kZXg6
IFdlYktpdC9XZWJDb3JlU3VwcG9ydC5zdWJwcm9qL1dlYkJyaWRnZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9XZWJLaXQvV2ViQ29yZVN1cHBvcnQuc3VicHJvai9XZWJCcmlkZ2Uu
aCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yOQpkaWZmIC1wIC11IC1yMS4yOSBXZWJLaXQvV2Vi
Q29yZVN1cHBvcnQuc3VicHJvai9XZWJCcmlkZ2UuaAotLS0gV2ViS2l0L1dlYkNvcmVTdXBwb3J0
LnN1YnByb2ovV2ViQnJpZGdlLmgJNSBKdW4gMjAwNSAxNzo1NDozOSAtMDAwMAkxLjI5CisrKyBX
ZWJLaXQvV2ViQ29yZVN1cHBvcnQuc3VicHJvai9XZWJCcmlkZ2UuaAkyNiBEZWMgMjAwNSAwMToz
OToyMCAtMDAwMApAQCAtMzQsNiArMzQsNyBAQAogCiBAaW50ZXJmYWNlIFdlYkJyaWRnZSA6IFdl
YkNvcmVCcmlkZ2UgPFdlYkNvcmVCcmlkZ2U+CiB7CisgICAgV2ViQnJpZGdlICpfcGFyZW50QnJp
ZGdlOwogICAgIFdlYkZyYW1lICpfZnJhbWU7CiAgICAgV2ViQ29yZUtleWJvYXJkVUlNb2RlIF9r
ZXlib2FyZFVJTW9kZTsKICAgICBCT09MIF9rZXlib2FyZFVJTW9kZUFjY2Vzc2VkOwpJbmRleDog
V2ViS2l0L1dlYkNvcmVTdXBwb3J0LnN1YnByb2ovV2ViQnJpZGdlLm0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9yb290L1dlYktpdC9XZWJDb3JlU3VwcG9ydC5zdWJwcm9qL1dlYkJyaWRnZS5t
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM4MApkaWZmIC1wIC11IC1yMS4zODAgV2ViS2l0L1dl
YkNvcmVTdXBwb3J0LnN1YnByb2ovV2ViQnJpZGdlLm0KLS0tIFdlYktpdC9XZWJDb3JlU3VwcG9y
dC5zdWJwcm9qL1dlYkJyaWRnZS5tCTIwIERlYyAyMDA1IDIwOjQxOjUyIC0wMDAwCTEuMzgwCisr
KyBXZWJLaXQvV2ViQ29yZVN1cHBvcnQuc3VicHJvai9XZWJCcmlkZ2UubQkyNiBEZWMgMjAwNSAw
MTozOTo0NCAtMDAwMApAQCAtNjk0LDkgKzY5NCw4IEBAIE5TU3RyaW5nICpXZWJQbHVnaW5Db250
YWluZXJLZXkgPSAgIEAiV2UKICAgICAvLyA8cmRhcjovL3Byb2JsZW0vMzcxNTc4NT4gbXVsdGlw
bGUgZnJhbWUgaW5qZWN0aW9uIHZ1bG5lcmFiaWxpdHkgcmVwb3J0ZWQgYnkgU2VjdW5pYSwgYWZm
ZWN0cyBhbG1vc3QgYWxsIGJyb3dzZXJzCiAgICAgCiAgICAgLy8gZG9uJ3QgbWVzcyB3aXRoIG5h
dmlnYXRpb24gcHVyZWx5IHdpdGhpbiB0aGUgc2FtZSBmcmFtZQotICAgIGlmIChbW3NlbGYgd2Vi
RnJhbWVdIHdlYlZpZXddID09IFt0YXJnZXRGcmFtZSB3ZWJWaWV3XSkgeworICAgIGlmIChbW3Nl
bGYgd2ViRnJhbWVdIHdlYlZpZXddID09IFt0YXJnZXRGcmFtZSB3ZWJWaWV3XSkKIAlyZXR1cm4g
WUVTOwotICAgIH0KIAogICAgIC8vIE5vcm1hbGx5LCBkb21haW4gc2hvdWxkIGJlIGNhbGxlZCBv
biB0aGUgRE9NRG9jdW1lbnQgc2luY2UgaXQgaXMgYSBET00gbWV0aG9kLCBidXQgdGhpcyBmaXgg
aXMgbmVlZGVkIGZvcgogICAgIC8vIEphZ3VhciBhcyB3ZWxsIHdoZXJlIHRoZSBET00gQVBJIGRv
ZXNuJ3QgZXhpc3QuCkBAIC03MDYsMTcgKzcwNSwxNSBAQCBOU1N0cmluZyAqV2ViUGx1Z2luQ29u
dGFpbmVyS2V5ID0gICBAIldlCiAgICAgICAgIHJldHVybiBZRVM7CiAgICAgfQogICAgIAotICAg
IFdlYkZyYW1lICpwYXJlbnRGcmFtZSA9IFt0YXJnZXRGcmFtZSBwYXJlbnRGcmFtZV07Ci0gICAg
aWYgKHBhcmVudEZyYW1lID09IG5pbCkgewotICAgICAgICAvLyBBbGxvdyBpZiB0YXJnZXQgaXMg
YW4gZW50aXJlIHdpbmRvdy4KKyAgICBXZWJCcmlkZ2UgKnBhcmVudEJyaWRnZSA9IChXZWJCcmlk
Z2UgKilbW3RhcmdldEZyYW1lIF9icmlkZ2VdIHBhcmVudF07CisgICAgLy8gQWxsb3cgaWYgdGFy
Z2V0IGlzIGFuIGVudGlyZSB3aW5kb3cuCisgICAgaWYgKCFwYXJlbnRCcmlkZ2UpCiAgICAgICAg
IHJldHVybiBZRVM7Ci0gICAgfQogICAgIAotICAgIE5TU3RyaW5nICpwYXJlbnREb21haW4gPSBb
W3BhcmVudEZyYW1lIF9icmlkZ2VdIGRvbWFpbl07Ci0gICAgaWYgKHBhcmVudERvbWFpbiAhPSBu
aWwgJiYgW3RoaXNEb21haW4gX3dlYmtpdF9pc0Nhc2VJbnNlbnNpdGl2ZUVxdWFsVG9TdHJpbmc6
cGFyZW50RG9tYWluXSkgewotICAgICAgICAvLyBBbGxvdyBpZiB0aGUgZG9tYWluIG9mIHRoZSBw
YXJlbnQgb2YgdGhlIHRhcmdldGVkIGZyYW1lIGVxdWFscyB0aGlzIGRvbWFpbi4KKyAgICBOU1N0
cmluZyAqcGFyZW50RG9tYWluID0gW3BhcmVudEJyaWRnZSBkb21haW5dOworICAgIC8vIEFsbG93
IGlmIHRoZSBkb21haW4gb2YgdGhlIHBhcmVudCBvZiB0aGUgdGFyZ2V0ZWQgZnJhbWUgZXF1YWxz
IHRoaXMgZG9tYWluLgorICAgIGlmIChwYXJlbnREb21haW4gJiYgW3RoaXNEb21haW4gX3dlYmtp
dF9pc0Nhc2VJbnNlbnNpdGl2ZUVxdWFsVG9TdHJpbmc6cGFyZW50RG9tYWluXSkKICAgICAgICAg
cmV0dXJuIFlFUzsKLSAgICB9CiAKICAgICByZXR1cm4gTk87CiB9CkBAIC0xMzI5LDEzICsxMzI2
LDggQEAgc3RhdGljIGlkIDxXZWJGb3JtRGVsZWdhdGU+IGZvcm1EZWxlZ2F0ZQogCiAtICh2b2lk
KWZyYW1lRGV0YWNoZWQKIHsKLSAgICAvLyBQdXQgX2ZyYW1lIGludG8gYSBsb2NhbCB2YXJpYWJs
ZSBiZWNhdXNlIF9kZXRhY2hGcm9tUGFyZW50Ci0gICAgLy8gd2lsbCBkaXNjb25uZWN0IHRoZSBi
cmlkZ2UgZnJvbSB0aGUgZnJhbWUgYW5kIG1ha2UgX2ZyYW1lIG5pbC4KLSAgICBXZWJGcmFtZSAq
ZnJhbWUgPSBfZnJhbWU7Ci0KLSAgICBbZnJhbWUgc3RvcExvYWRpbmddOwotICAgIFtmcmFtZSBf
ZGV0YWNoRnJvbVBhcmVudF07Ci0gICAgW1tmcmFtZSBwYXJlbnRGcmFtZV0gX3JlbW92ZUNoaWxk
OmZyYW1lXTsKKyAgICBbX2ZyYW1lIHN0b3BMb2FkaW5nXTsKKyAgICBbX2ZyYW1lIF9kZXRhY2hG
cm9tUGFyZW50XTsKIH0KIAogLSAodm9pZClzZXRIYXNCb3JkZXI6KEJPT0wpaGFzQm9yZGVyCklu
ZGV4OiBXZWJLaXQvV2ViVmlldy5zdWJwcm9qL1dlYkZyYW1lLm0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYktpdC9XZWJWaWV3LnN1YnByb2ovV2ViRnJhbWUubSx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS4yNjMKZGlmZiAtcCAtdSAtcjEuMjYzIFdlYktpdC9XZWJWaWV3LnN1YnBy
b2ovV2ViRnJhbWUubQotLS0gV2ViS2l0L1dlYlZpZXcuc3VicHJvai9XZWJGcmFtZS5tCTI1IERl
YyAyMDA1IDExOjA1OjA0IC0wMDAwCTEuMjYzCisrKyBXZWJLaXQvV2ViVmlldy5zdWJwcm9qL1dl
YkZyYW1lLm0JMjYgRGVjIDIwMDUgMDE6NDA6NDYgLTAwMDAKQEAgLTIwMiw3ICsyMDIsNiBAQCBO
U1N0cmluZyAqV2ViUGFnZUNhY2hlRG9jdW1lbnRWaWV3S2V5ID0gCiAgICAgV2ViVmlldyAqd2Vi
VmlldzsKICAgICBXZWJGcmFtZVN0YXRlIHN0YXRlOwogICAgIFdlYkZyYW1lTG9hZFR5cGUgbG9h
ZFR5cGU7Ci0gICAgV2ViRnJhbWUgKnBhcmVudDsKICAgICBOU011dGFibGVBcnJheSAqY2hpbGRy
ZW47CiAgICAgV2ViSGlzdG9yeUl0ZW0gKmN1cnJlbnRJdGVtOwkvLyBCRiBpdGVtIGZvciBvdXIg
Y3VycmVudCBjb250ZW50CiAgICAgV2ViSGlzdG9yeUl0ZW0gKnByb3Zpc2lvbmFsSXRlbTsJLy8g
QkYgaXRlbSBmb3Igd2hlcmUgd2UncmUgdHJ5aW5nIHRvIGdvCkBAIC01MTMsNyArNTEyLDcgQEAg
TlNTdHJpbmcgKldlYlBhZ2VDYWNoZURvY3VtZW50Vmlld0tleSA9IAogKi8KIC0gKFdlYkhpc3Rv
cnlJdGVtICopX2NyZWF0ZUl0ZW1UcmVlV2l0aFRhcmdldEZyYW1lOihXZWJGcmFtZSAqKXRhcmdl
dEZyYW1lIGNsaXBwZWRBdFRhcmdldDooQk9PTClkb0NsaXAKIHsKLSAgICBXZWJIaXN0b3J5SXRl
bSAqYmZJdGVtID0gW3NlbGYgX2NyZWF0ZUl0ZW06IFtzZWxmIHBhcmVudEZyYW1lXT9ZRVM6Tk9d
OworICAgIFdlYkhpc3RvcnlJdGVtICpiZkl0ZW0gPSBbc2VsZiBfY3JlYXRlSXRlbTpbc2VsZiBw
YXJlbnRGcmFtZV0gPyBZRVMgOiBOT107CiAKICAgICBbc2VsZiBfc2F2ZVNjcm9sbFBvc2l0aW9u
QW5kVmlld1N0YXRlVG9JdGVtOltfcHJpdmF0ZSBwcmV2aW91c0l0ZW1dXTsKICAgICBpZiAoIShk
b0NsaXAgJiYgc2VsZiA9PSB0YXJnZXRGcmFtZSkpIHsKQEAgLTU3OCwxNCArNTc3LDEwIEBAIE5T
U3RyaW5nICpXZWJQYWdlQ2FjaGVEb2N1bWVudFZpZXdLZXkgPSAKIAogLSAodm9pZClfZGV0YWNo
Q2hpbGRyZW4KIHsKLSAgICAvLyBOb3RlIHdlIGhhdmUgdG8gYmUgY2FyZWZ1bCB0byByZW1vdmUg
dGhlIGtpZHMgYXMgd2UgZGV0YWNoIGVhY2ggb25lLAotICAgIC8vIHNpbmNlIGRldGFjaGluZyBz
dG9wcyBsb2FkaW5nLCB3aGljaCBjaGVja3MgbG9hZENvbXBsZXRlLCB3aGljaCBydW5zIHRoZSB3
aG9sZQotICAgIC8vIGZyYW1lIHRyZWUsIGF0IHdoaWNoIHBvaW50IHdlIGRvbid0IHdhbnQgdG8g
dHJpcCBvbiBhbHJlYWR5IGRldGFjaGVkIGtpZHMuCiAgICAgaWYgKF9wcml2YXRlLT5jaGlsZHJl
bikgewogICAgICAgICBpbnQgaTsKICAgICAgICAgZm9yIChpID0gW19wcml2YXRlLT5jaGlsZHJl
biBjb3VudF0tMTsgaSA+PTA7IGktLSkgewogICAgICAgICAgICAgW1tfcHJpdmF0ZS0+Y2hpbGRy
ZW4gb2JqZWN0QXRJbmRleDppXSBfZGV0YWNoRnJvbVBhcmVudF07Ci0gICAgICAgICAgICBbX3By
aXZhdGUtPmNoaWxkcmVuIHJlbW92ZU9iamVjdEF0SW5kZXg6aV07CiAgICAgICAgIH0KICAgICAg
ICAgW19wcml2YXRlLT5jaGlsZHJlbiByZWxlYXNlXTsKICAgICAgICAgX3ByaXZhdGUtPmNoaWxk
cmVuID0gbmlsOwpAQCAtNjA4LDcgKzYwMyw2IEBAIE5TU3RyaW5nICpXZWJQYWdlQ2FjaGVEb2N1
bWVudFZpZXdLZXkgPSAKIC0gKHZvaWQpX2RldGFjaEZyb21QYXJlbnQKIHsKICAgICBXZWJCcmlk
Z2UgKmJyaWRnZSA9IF9wcml2YXRlLT5icmlkZ2U7Ci0gICAgX3ByaXZhdGUtPmJyaWRnZSA9IG5p
bDsKIAogICAgIFtzZWxmIHN0b3BMb2FkaW5nXTsKICAgICBbc2VsZiBfc2F2ZVNjcm9sbFBvc2l0
aW9uQW5kVmlld1N0YXRlVG9JdGVtOltfcHJpdmF0ZSBjdXJyZW50SXRlbV1dOwpAQCAtNjI1LDEw
ICs2MTksMTIgQEAgTlNTdHJpbmcgKldlYlBhZ2VDYWNoZURvY3VtZW50Vmlld0tleSA9IAogCiAg
ICAgW3NlbGYgX3NldERhdGFTb3VyY2U6bmlsXTsKICAgICBbX3ByaXZhdGUgc2V0V2ViRnJhbWVW
aWV3Om5pbF07CisgICAgW1tzZWxmIHBhcmVudEZyYW1lXSBfcmVtb3ZlQ2hpbGQ6c2VsZl07CiAK
ICAgICBbYnJpZGdlIGNsb3NlXTsKICAgICAKICAgICBbYnJpZGdlIHJlbGVhc2VdOworICAgIF9w
cml2YXRlLT5icmlkZ2UgPSBuaWw7CiB9CiAKIC0gKHZvaWQpX3NldERhdGFTb3VyY2U6KFdlYkRh
dGFTb3VyY2UgKilkcwpAQCAtODcyLDkgKzg2OCw4IEBAIE5TU3RyaW5nICpXZWJQYWdlQ2FjaGVE
b2N1bWVudFZpZXdLZXkgPSAKICAgICAgICAgICAgICAgICAgICAgV2ViSGlzdG9yeUl0ZW0gKnBh
cmVudEl0ZW0gPSBbcGFyZW50RnJhbWUtPl9wcml2YXRlIGN1cnJlbnRJdGVtXTsKICAgICAgICAg
ICAgICAgICAgICAgLy8gVGhlIG9ubHkgY2FzZSB3aGVyZSBwYXJlbnRJdGVtPT1uaWwgc2hvdWxk
IGJlIHdoZW4gYSBwYXJlbnQgZnJhbWUgbG9hZGVkIGFuCiAgICAgICAgICAgICAgICAgICAgIC8v
IGVtcHR5IFVSTCwgd2hpY2ggZG9lc24ndCBzZXQgdXAgYSBjdXJyZW50IGl0ZW0gaW4gdGhhdCBw
YXJlbnQuCi0gICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnRJdGVtKSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChwYXJlbnRJdGVtKQogICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmVu
dEl0ZW0gYWRkQ2hpbGRJdGVtOltzZWxmIF9jcmVhdGVJdGVtOiBZRVNdXTsKLSAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAg
IC8vIFNlZSAzNTU2MTU5LiAgSXQncyBub3QgY2xlYXIgaWYgaXQncyB2YWxpZCB0byBiZSBpbiBX
ZWJGcmFtZUxvYWRUeXBlT25Mb2FkRXZlbnQKICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIGEg
dG9wLWxldmVsIGZyYW1lLCBidXQgdGhhdCB3YXMgYSBsaWtlbHkgZXhwbGFuYXRpb24gZm9yIHRo
b3NlIGNyYXNoZXMsCkBAIC0xNTI3LDkgKzE1MjIsOSBAQCBzdGF0aWMgQ0ZBYnNvbHV0ZVRpbWUg
X3RpbWVPZkxhc3RDb21wbGV0CiAKIC8vIE1haW4gZnVubmVsIGZvciBuYXZpZ2F0aW5nIHRvIGEg
cHJldmlvdXMgbG9jYXRpb24gKGJhY2svZm9yd2FyZCwgbm9uLXNlYXJjaCBzbmFwLWJhY2spCiAv
LyBUaGlzIGluY2x1ZGVzIHJlY3Vyc2lvbiB0byBoYW5kbGUgbG9hZGluZyBpbnRvIGZyYW1lc2V0
cyBwcm9wZXJseQotLSAodm9pZClfZ29Ub0l0ZW06IChXZWJIaXN0b3J5SXRlbSAqKWl0ZW0gd2l0
aExvYWRUeXBlOiAoV2ViRnJhbWVMb2FkVHlwZSl0eXBlCistICh2b2lkKV9nb1RvSXRlbTooV2Vi
SGlzdG9yeUl0ZW0gKilpdGVtIHdpdGhMb2FkVHlwZTooV2ViRnJhbWVMb2FkVHlwZSl0eXBlCiB7
Ci0gICAgQVNTRVJUKCFfcHJpdmF0ZS0+cGFyZW50KTsKKyAgICBBU1NFUlQoIVtzZWxmIHBhcmVu
dEZyYW1lXSk7CiAgICAgLy8gc2hvdWxkR29Ub0hpc3RvcnlJdGVtIGlzIGEgcHJpdmF0ZSBkZWxl
Z2F0ZSBtZXRob2QuIFRoaXMgaXMgbmVlZGVkIHRvIGZpeDoKICAgICAvLyA8cmRhcjovL3Byb2Js
ZW0vMzk1MTI4Mz4gY2FuIHZpZXcgcGFnZXMgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIHRo
YXQgc2hvdWxkIGJlIGRpc2FsbG93ZWQgYnkgUGFyZW50YWwgQ29udHJvbHMKICAgICAvLyBVbHRp
bWF0ZWx5LCBoaXN0b3J5IGl0ZW0gbmF2aWdhdGlvbnMgc2hvdWxkIGdvIHRocm91Z2ggdGhlIHBv
bGljeSBkZWxlZ2F0ZS4gVGhhdCdzIGNvdmVyZWQgaW46CkBAIC0yMjA1LDcgKzIyMDAsNiBAQCBz
dGF0aWMgQ0ZBYnNvbHV0ZVRpbWUgX3RpbWVPZkxhc3RDb21wbGV0CiAgICAgICAgIF9wcml2YXRl
LT5jaGlsZHJlbiA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdOwogICAgIFtfcHJpdmF0
ZS0+Y2hpbGRyZW4gYWRkT2JqZWN0OmNoaWxkXTsKIAotICAgIGNoaWxkLT5fcHJpdmF0ZS0+cGFy
ZW50ID0gc2VsZjsKICAgICBbW2NoaWxkIF9icmlkZ2VdIHNldFBhcmVudDpfcHJpdmF0ZS0+YnJp
ZGdlXTsKICAgICBbW2NoaWxkIGRhdGFTb3VyY2VdIF9zZXRPdmVycmlkZUVuY29kaW5nOltbc2Vs
ZiBkYXRhU291cmNlXSBfb3ZlcnJpZGVFbmNvZGluZ11dOyAgCiAgCkBAIC0yMjI1LDE2ICsyMjE5
LDEzIEBAIHN0YXRpYyBDRkFic29sdXRlVGltZSBfdGltZU9mTGFzdENvbXBsZXQKIHsKICAgICAv
LyBtb3ZlIGNvcnJlc3BvbmRpbmcgcHJldmlvdXMgYW5kIG5leHQgV2ViRnJhbWUgc2libGluZyBw
b2ludGVycyB0byB0aGVpciBuZXcgcG9zaXRpb25zCiAgICAgLy8gd2hlbiB3ZSByZW1vdmUgYSBj
aGlsZCB3ZSBtYXkgaGF2ZSB0byByZWF0dGFjaCB0aGUgcHJldmlvdXMgZnJhbWUncyBuZXh0IGZy
YW1lIGFuZCB2aXNhIHZlcnNhCi0gICAgaWYgKGNoaWxkLT5fcHJpdmF0ZS0+cHJldmlvdXNTaWJs
aW5nKSB7CisgICAgaWYgKGNoaWxkLT5fcHJpdmF0ZS0+cHJldmlvdXNTaWJsaW5nKQogICAgICAg
ICBjaGlsZC0+X3ByaXZhdGUtPnByZXZpb3VzU2libGluZy0+X3ByaXZhdGUtPm5leHRTaWJsaW5n
ID0gY2hpbGQtPl9wcml2YXRlLT5uZXh0U2libGluZzsKLSAgICB9CiAgICAgCi0gICAgaWYgKGNo
aWxkLT5fcHJpdmF0ZS0+bmV4dFNpYmxpbmcpIHsgCisgICAgaWYgKGNoaWxkLT5fcHJpdmF0ZS0+
bmV4dFNpYmxpbmcpCiAgICAgICAgIGNoaWxkLT5fcHJpdmF0ZS0+bmV4dFNpYmxpbmctPl9wcml2
YXRlLT5wcmV2aW91c1NpYmxpbmcgPSBjaGlsZC0+X3ByaXZhdGUtPnByZXZpb3VzU2libGluZzsg
Ci0gICAgfQogCiAgICAgW19wcml2YXRlLT5jaGlsZHJlbiByZW1vdmVPYmplY3Q6Y2hpbGRdOwot
ICAgIGNoaWxkLT5fcHJpdmF0ZS0+cGFyZW50ID0gbmlsOwogfQogCiAtICh2b2lkKV9hZGRGcmFt
ZVBhdGhUb1N0cmluZzooTlNNdXRhYmxlU3RyaW5nICopcGF0aApAQCAtMjI0NSw5ICsyMjM2LDcg
QEAgc3RhdGljIENGQWJzb2x1dGVUaW1lIF90aW1lT2ZMYXN0Q29tcGxldAogICAgICAgICBbcGF0
aCBhcHBlbmRTdHJpbmc6W19wcml2YXRlLT5uYW1lIHN1YnN0cmluZ1dpdGhSYW5nZTpvdXJQYXRo
UmFuZ2VdXTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyB3ZSBkb24ndCBoYXZlIGEgZ2VuZXJh
dGVkIG5hbWUgLSBqdXN0IGFkZCBvdXIgc2ltcGxlIG5hbWUgdG8gdGhlIGVuZAotICAgICAgICBp
ZiAoX3ByaXZhdGUtPnBhcmVudCkgewotICAgICAgICAgICAgW19wcml2YXRlLT5wYXJlbnQgX2Fk
ZEZyYW1lUGF0aFRvU3RyaW5nOnBhdGhdOwotICAgICAgICB9CisgICAgICAgIFtbc2VsZiBwYXJl
bnRGcmFtZV0gX2FkZEZyYW1lUGF0aFRvU3RyaW5nOnBhdGhdOwogICAgICAgICBbcGF0aCBhcHBl
bmRTdHJpbmc6QCIvIl07CiAgICAgICAgIGlmIChfcHJpdmF0ZS0+bmFtZSkgewogICAgICAgICAg
ICAgW3BhdGggYXBwZW5kU3RyaW5nOl9wcml2YXRlLT5uYW1lXTsKQEAgLTI0NDAsOSArMjQyOSw4
IEBAIHN0YXRpYyBDRkFic29sdXRlVGltZSBfdGltZU9mTGFzdENvbXBsZXQKICAgICBfcHJpdmF0
ZS0+cG9saWN5TG9hZFR5cGUgPSBsb2FkVHlwZTsKIAogICAgIFdlYkZyYW1lICpwYXJlbnRGcmFt
ZSA9IFtzZWxmIHBhcmVudEZyYW1lXTsKLSAgICBpZiAocGFyZW50RnJhbWUpIHsKKyAgICBpZiAo
cGFyZW50RnJhbWUpCiAgICAgICAgIFtuZXdEYXRhU291cmNlIF9zZXRPdmVycmlkZUVuY29kaW5n
OltbcGFyZW50RnJhbWUgZGF0YVNvdXJjZV0gX292ZXJyaWRlRW5jb2RpbmddXTsKLSAgICB9CiAg
ICAgW25ld0RhdGFTb3VyY2UgX3NldFdlYlZpZXc6W3NlbGYgd2ViVmlld11dOwogICAgIC8vIEZJ
WE1FOiBzaG91bGRuJ3QgdGhpcyBzZXQgdGhlIFdlYkZyYW1lIHRvbz8gd2hvIHNldHMgaXQ/CiAK
QEAgLTI1MDYsMjAgKzI0OTQsMTcgQEAgc3RhdGljIENGQWJzb2x1dGVUaW1lIF90aW1lT2ZMYXN0
Q29tcGxldAogLy8gUmV0dXJuIG5leHQgZnJhbWUgdG8gYmUgdHJhdmVyc2VkLCB2aXNpdGluZyBj
aGlsZHJlbiBhZnRlciBwYXJlbnQKIC0gKFdlYkZyYW1lICopX25leHRGcmFtZVdpdGhXcmFwOihC
T09MKXdyYXBGbGFnCiB7Ci0gICAgaWYgKF9wcml2YXRlLT5jaGlsZHJlbiAmJiBbX3ByaXZhdGUt
PmNoaWxkcmVuIGNvdW50XSkgeworICAgIGlmIChfcHJpdmF0ZS0+Y2hpbGRyZW4gJiYgW19wcml2
YXRlLT5jaGlsZHJlbiBjb3VudF0pCiAgICAgICAgIHJldHVybiBbX3ByaXZhdGUtPmNoaWxkcmVu
IG9iamVjdEF0SW5kZXg6MF07Ci0gICAgfSBlbHNlIGlmIChfcHJpdmF0ZS0+cGFyZW50KSB7Ci0g
ICAgICAgIFdlYkZyYW1lICpmcmFtZTsKLSAgICAgICAgZm9yIChmcmFtZSA9IHNlbGY7IGZyYW1l
LT5fcHJpdmF0ZS0+cGFyZW50OyBmcmFtZSA9IGZyYW1lLT5fcHJpdmF0ZS0+cGFyZW50KSB7Ci0g
ICAgICAgICAgICBXZWJGcmFtZSAqbmV4dFNpYmxpbmcgPSBmcmFtZS0+X3ByaXZhdGUtPm5leHRT
aWJsaW5nOwotICAgICAgICAgICAgaWYgKG5leHRTaWJsaW5nKSB7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIG5leHRTaWJsaW5nOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiB3cmFwRmxhZyA/IGZyYW1lIDogbmlsOyAgICAgICAgICAgICAgICAvLyBtYWRlIGl0IGFs
bCB0aGUgd2F5IHRvIHRoZSB0b3AKLSAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gd3JhcEZs
YWcgPyBzZWxmIDogbmlsOyAgICAgICAgICAgICAgICAvLyBzZWxmIGlzIHRoZSB0b3AgYW5kIHdl
IGhhdmUgbm8ga2lkcworCisgICAgV2ViRnJhbWUgKiBmcmFtZTsKKyAgICBmb3IgKGZyYW1lID0g
c2VsZjsgW2ZyYW1lIHBhcmVudEZyYW1lXTsgZnJhbWUgPSBbZnJhbWUgcGFyZW50RnJhbWVdKSB7
CisgICAgICAgIFdlYkZyYW1lICpuZXh0U2libGluZyA9IGZyYW1lLT5fcHJpdmF0ZS0+bmV4dFNp
Ymxpbmc7CisgICAgICAgIGlmIChuZXh0U2libGluZykKKyAgICAgICAgICAgIHJldHVybiBuZXh0
U2libGluZzsKICAgICB9CisgICAgCisgICAgcmV0dXJuIHdyYXBGbGFnID8gZnJhbWUgOiBuaWw7
ICAgICAgICAgICAgICAgIC8vIG1hZGUgaXQgYWxsIHRoZSB3YXkgdG8gdGhlIHRvcAogfQogCiAv
LyBSZXR1cm4gcHJldmlvdXMgZnJhbWUgdG8gYmUgdHJhdmVyc2VkLCBleGFjdCByZXZlcnNlIG9y
ZGVyIG9mIF9uZXh0RnJhbWUKQEAgLTI1MjksMTggKzI1MTQsMTggQEAgc3RhdGljIENGQWJzb2x1
dGVUaW1lIF90aW1lT2ZMYXN0Q29tcGxldAogICAgIGlmIChwcmV2U2libGluZykgewogICAgICAg
ICBXZWJGcmFtZSAqcHJldlNpYmxpbmdMYXN0Q2hpbGQgPSBbcHJldlNpYmxpbmcgX2xhc3RDaGls
ZF07CiAgICAgICAgIHJldHVybiBwcmV2U2libGluZ0xhc3RDaGlsZCA/IHByZXZTaWJsaW5nTGFz
dENoaWxkIDogcHJldlNpYmxpbmc7Ci0gICAgfSBlbHNlIGlmIChfcHJpdmF0ZS0+cGFyZW50KSB7
Ci0gICAgICAgIHJldHVybiBfcHJpdmF0ZS0+cGFyZW50OwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IC8vIG5vIHNpYmxpbmdzLCBubyBwYXJlbnQsIHNlbGY9PXRvcAotICAgICAgICBpZiAod3JhcEZs
YWcpIHsKLSAgICAgICAgICAgIFdlYkZyYW1lICpzZWxmTGFzdENoaWxkID0gW3NlbGYgX2xhc3RD
aGlsZF07Ci0gICAgICAgICAgICByZXR1cm4gc2VsZkxhc3RDaGlsZCA/IHNlbGZMYXN0Q2hpbGQg
OiBzZWxmOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gdG9wIHZpZXcgaXMgYWx3
YXlzIHRoZSBsYXN0IG9uZSBpbiB0aGlzIG9yZGVyaW5nLCBzbyBwcmV2IGlzIG5pbCB3aXRob3V0
IHdyYXAKLSAgICAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgICAgIH0KKyAgICB9IAorICAgIGlm
IChbc2VsZiBwYXJlbnRGcmFtZV0pCisgICAgICAgIHJldHVybiBbc2VsZiBwYXJlbnRGcmFtZV07
CisgICAgCisgICAgLy8gbm8gc2libGluZ3MsIG5vIHBhcmVudCwgc2VsZj09dG9wCisgICAgaWYg
KHdyYXBGbGFnKSB7CisgICAgICAgIFdlYkZyYW1lICpzZWxmTGFzdENoaWxkID0gW3NlbGYgX2xh
c3RDaGlsZF07CisgICAgICAgIHJldHVybiBzZWxmTGFzdENoaWxkID8gc2VsZkxhc3RDaGlsZCA6
IHNlbGY7CiAgICAgfQorCisgICAgLy8gdG9wIHZpZXcgaXMgYWx3YXlzIHRoZSBsYXN0IG9uZSBp
biB0aGlzIG9yZGVyaW5nLCBzbyBwcmV2IGlzIG5pbCB3aXRob3V0IHdyYXAKKyAgICByZXR1cm4g
bmlsOwogfQogCiAtICh2b2lkKV9zZXRTaG91bGRDcmVhdGVSZW5kZXJlcnM6KEJPT0wpZgpAQCAt
MzMxMCw3ICszMjk1LDcgQEAgc3RhdGljIENGQWJzb2x1dGVUaW1lIF90aW1lT2ZMYXN0Q29tcGxl
dAogCiAtIChXZWJGcmFtZSAqKXBhcmVudEZyYW1lCiB7Ci0gICAgcmV0dXJuIFtbX3ByaXZhdGUt
PnBhcmVudCByZXRhaW5dIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gW1tbKFdlYkJyaWRnZSAq
KVtbc2VsZiBfYnJpZGdlXSBwYXJlbnRdIHdlYkZyYW1lXSByZXRhaW5dIGF1dG9yZWxlYXNlXTsK
IH0KIAogLSAoTlNBcnJheSAqKWNoaWxkRnJhbWVzCg==
</data>
<flag name="review"
          id="1095"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>