<?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>78313</bug_id>
          
          <creation_ts>2012-02-09 18:58:34 -0800</creation_ts>
          <short_desc>Element::removeShadowRoot(), setShadowRoot() should be moved into ShadowTree</short_desc>
          <delta_ts>2012-02-28 00:06:16 -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>DOM</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>78069</dependson>
    
    <dependson>78455</dependson>
          <blocked>77931</blocked>
    
    <blocked>79197</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Shinya Kawanaka">shinyak</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>hayato</cc>
    
    <cc>morrita</cc>
    
    <cc>rolandsteiner</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>553722</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-09 18:58:34 -0800</bug_when>
    <thetext>Patch for Bug 78069 will emulate shadowRoot(), removeShadowRoot(), and setShadowRoot() using shadowRootList().
These API should be removed and replaced using ShadowRootList API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565425</commentid>
    <comment_count>1</comment_count>
      <attachid>128976</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-27 00:17:42 -0800</bug_when>
    <thetext>Created attachment 128976
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565436</commentid>
    <comment_count>2</comment_count>
      <attachid>128976</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-27 00:42:00 -0800</bug_when>
    <thetext>Comment on attachment 128976
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=128976&amp;action=review

Basically looks good. Could you polish a bit?

&gt; Source/WebCore/ChangeLog:9
&gt; +

Could you mention now ShadowTree is on its own heap?

&gt; Source/WebCore/dom/Element.cpp:125
&gt; +    if (hasShadowRoot())

Can be hasShadowTree()?

&gt; Source/WebCore/dom/Element.cpp:126
&gt; +        shadowTree()-&gt;removeAllShadowRoots();

It looks we can do removeAllShadowRoots() in the ShadowTree dtor then we can just delete the ShadowTree instance here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565454</commentid>
    <comment_count>3</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-27 01:25:08 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 128976 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=128976&amp;action=review
&gt; 
&gt; Basically looks good. Could you polish a bit?
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +
&gt; 
&gt; Could you mention now ShadowTree is on its own heap?
&gt; 
&gt; &gt; Source/WebCore/dom/Element.cpp:125
&gt; &gt; +    if (hasShadowRoot())
&gt; 
&gt; Can be hasShadowTree()?
&gt; 
&gt; &gt; Source/WebCore/dom/Element.cpp:126
&gt; &gt; +        shadowTree()-&gt;removeAllShadowRoots();
&gt; 
&gt; It looks we can do removeAllShadowRoots() in the ShadowTree dtor then we can just delete the ShadowTree instance here.

Unfortunately removeAllShadowRoots() now requires the element. So what I can do here is just to call rareData()-&gt;m_shadowTree.clear().

Currently our code assumes that a shadow root could be removed from an element now, and we have tests for it. However, since we should not have such API, we can remove that assumption. This will reduce the code and make it clear. I think it should be done in another bug though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565461</commentid>
    <comment_count>4</comment_count>
      <attachid>128982</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-27 01:30:37 -0800</bug_when>
    <thetext>Created attachment 128982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565478</commentid>
    <comment_count>5</comment_count>
      <attachid>128982</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-27 01:56:50 -0800</bug_when>
    <thetext>Comment on attachment 128982
Patch

&gt;Unfortunately removeAllShadowRoots() now requires the element. So what I can do here is just to call rareData()-&gt;m_shadowTree.clear().
&gt;
&gt;Currently our code assumes that a shadow root could be removed from an element now, and we have tests for it. However, since we should not have such API, we can remove that assumption. This will reduce the code and make it clear. I think it should be done in another bug though.

This looks reasonable. When we need the host element, there should be at least one shadow root.
If there is no shadow root. We won&apos;t need the reference the the host.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566383</commentid>
    <comment_count>6</comment_count>
      <attachid>129189</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-27 22:21:25 -0800</bug_when>
    <thetext>Created attachment 129189
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566409</commentid>
    <comment_count>7</comment_count>
      <attachid>129189</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-27 23:05:24 -0800</bug_when>
    <thetext>Comment on attachment 129189
Patch for landing

Attachment 129189 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11644419</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566410</commentid>
    <comment_count>8</comment_count>
      <attachid>129192</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-27 23:05:32 -0800</bug_when>
    <thetext>Created attachment 129192
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566443</commentid>
    <comment_count>9</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-28 00:06:16 -0800</bug_when>
    <thetext>Committed r109084: &lt;http://trac.webkit.org/changeset/109084&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128976</attachid>
            <date>2012-02-27 00:17:42 -0800</date>
            <delta_ts>2012-02-27 01:30:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78313-20120227171741.patch</filename>
            <type>text/plain</type>
            <size>16189</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4OTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFjZDAxNjY1OGM4OGVi
M2YzOGMzMmQ4NTAwZjUxMTVkODNmMzNiOS4uMTg5YWQ1YWEwODhlOTcxZWUwNzI1M2M4YWRkYTZh
ZTYyYzQzMmY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAyLTI3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBFbGVtZW50Ojpy
ZW1vdmVTaGFkb3dSb290KCkgYW5kIHNldFNoYWRvd1Jvb3QoKSBzaG91bGQgYmUgbW92ZWQgaW50
byBTaGFkb3dUcmVlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzgzMTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBFbGVtZW50OjpyZW1vdmVTaGFkb3dSb290KCkgYW5kIEVsZW1lbnQ6OnNldFNoYWRvd1Jv
b3QoKSBhcmUgbW92ZWQgaW50byBTaGFkb3dUcmVlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywg
bm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAg
ICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6fkVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2hhZG93VHJlZSk6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjplbnN1cmVTaGFkb3dUcmVlKToKKyAgICAgICAgICBFbnN1cmUgdGhl
IGV4aXN0ZW5jZSBvZiBTaGFkb3dUcmVlLiBUaGlzIGRvZXMgbm90IGVuc3VyZSBTaGFkb3dSb290
IGV4aXN0cy4KKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoRWxlbWVudCk6Cisg
ICAgICAgICogZG9tL0VsZW1lbnRSYXJlRGF0YS5oOgorICAgICAgICAgIE1ha2VzIFNoYWRvd1Ry
ZWUgb24gSGVhcC4KKyAgICAgICAgKEVsZW1lbnRSYXJlRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50UmFyZURhdGE6On5FbGVtZW50UmFyZURhdGEpOgorICAgICAgICAqIGRvbS9TaGFk
b3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmNyZWF0ZSk6CisgICAg
ICAgICogZG9tL1NoYWRvd1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVTaGFk
b3dSb290KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93VHJl
ZTo6YWRkU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dUcmVlOjpyZW1vdmVB
bGxTaGFkb3dSb290cyk6CisgICAgICAgICogZG9tL1NoYWRvd1RyZWUuaDoKKyAgICAgICAgKFNo
YWRvd1RyZWUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6cmVtb3ZlU2hhZG93Um9vdCk6CisKIDIwMTItMDItMjYgIEFkYW0g
QmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IGU5YjQ3MWQzNjk3MzQ0NTU1MDVlMTYxMzI5MDVjYWNiN2Q2ZjBlMmIuLmViZjFhOTQw
NTdlN2Y0OTJiMzE1YTAzM2I4MjMxYTk0YWMxMjYxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxMi0wMi0yNyAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgRWxlbWVudDo6cmVtb3ZlU2hhZG93Um9vdCgpIGFuZCBzZXRTaGFkb3dSb290
KCkgc2hvdWxkIGJlIG1vdmVkIGludG8gU2hhZG93VHJlZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICog
d2luL1dlYktpdDJDRkxpdGUuZGVmOgorCiAyMDEyLTAyLTI2ICBTaGlueWEgS2F3YW5ha2EgIDxz
aGlueWFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW5hbWUgU2hhZG93Um9vdExpc3QgdG8g
U2hhZG93VHJlZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggOGIyZDk2ODY5ODY4YmFiZjNkN2E1
NjNmNmU2NTIxOWQxNDBjYzllMi4uMzQ2YTc4ZTZmZDFjNmI4ZjkxMDlkYjZhYTk0MjY2NTQ1YjY3
YTM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE0Myw2ICsxNDMsNyBAQCBfX1pON1dlYkNv
cmUxMEZsb2F0UG9pbnRDMUVSS05TXzhJbnRQb2ludEUKIF9fWk43V2ViQ29yZTEwSlNEb2N1bWVu
dDZzX2luZm9FCiBfX1pON1dlYkNvcmUxME1vdXNlRXZlbnQ2Y3JlYXRlRVJLTjNXVEYxMkF0b21p
Y1N0cmluZ0VOUzFfMTBQYXNzUmVmUHRySU5TXzlET01XaW5kb3dFRUVSS05TXzE4UGxhdGZvcm1N
b3VzZUV2ZW50RWlOUzVfSU5TXzROb2RlRUVFCiBfX1pON1dlYkNvcmUxME1vdXNlRXZlbnRDMUVS
S04zV1RGMTJBdG9taWNTdHJpbmdFYmJOUzFfMTBQYXNzUmVmUHRySU5TXzlET01XaW5kb3dFRUVp
aWlpaWJiYmJ0TlM1X0lOU18xMUV2ZW50VGFyZ2V0RUVFTlM1X0lOU185Q2xpcGJvYXJkRUVFYgor
X19aTjdXZWJDb3JlMTBTaGFkb3dUcmVlMjByZW1vdmVBbGxTaGFkb3dSb290c0V2CiBfX1pON1dl
YkNvcmUxMFNjcm9sbFZpZXcxN3NldFVzZUZpeGVkTGF5b3V0RWIKIF9fWk43V2ViQ29yZTEwU2Ny
b2xsVmlldzE4c2V0Rml4ZWRMYXlvdXRTaXplRVJLTlNfN0ludFNpemVFCiBfX1pON1dlYkNvcmUx
MFNjcm9sbFZpZXcyMHNldENhbkhhdmVTY3JvbGxiYXJzRWIKQEAgLTkxNSw3ICs5MTYsNiBAQCBf
X1pON1dlYkNvcmU2V2lkZ2V0RDJFdgogX19aTjdXZWJDb3JlNnRvTm9kZUVOM0pTQzdKU1ZhbHVl
RQogX19aTjdXZWJDb3JlN0NvbnNvbGUyMXNob3VsZFByaW50RXhjZXB0aW9uc0V2CiBfX1pON1dl
YkNvcmU3Q29uc29sZTI0c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zRWIKLV9fWk43V2ViQ29yZTdF
bGVtZW50MTZyZW1vdmVTaGFkb3dSb290RXYKIF9fWk43V2ViQ29yZTdFbGVtZW50MjFib3VuZHNJ
blJvb3RWaWV3U3BhY2VFdgogX19aTjdXZWJDb3JlN0VsZW1lbnQ5aW5uZXJUZXh0RXYKIF9fWk43
V2ViQ29yZTdJbnRSZWN0NXNjYWxlRWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBiM2QyYTBh
MmRmNGQwMzRlNGU2YjMzZjBkNmE3NzA1NjA1YWE4ZWI4Li5mYzE0NmVjNGVkZGM5Njg0ZWQ1NjEx
MzBmNDI1ZmU1OTU3OWUwZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMjIsNyArMTIy
LDggQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3UKIAogRWxlbWVudDo6fkVsZW1lbnQoKQogewot
ICAgIHJlbW92ZVNoYWRvd1Jvb3QoKTsKKyAgICBpZiAoaGFzU2hhZG93Um9vdCgpKQorICAgICAg
ICBzaGFkb3dUcmVlKCktPnJlbW92ZUFsbFNoYWRvd1Jvb3RzKCk7CiAgICAgaWYgKG1fYXR0cmli
dXRlTWFwKQogICAgICAgICBtX2F0dHJpYnV0ZU1hcC0+ZGV0YWNoRnJvbUVsZW1lbnQoKTsKIH0K
QEAgLTExNTIsNDcgKzExNTMsMTYgQEAgU2hhZG93VHJlZSogRWxlbWVudDo6c2hhZG93VHJlZSgp
IGNvbnN0CiAgICAgaWYgKCFoYXNSYXJlRGF0YSgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAg
IHJldHVybiAmcmFyZURhdGEoKS0+bV9zaGFkb3dUcmVlOworICAgIHJldHVybiByYXJlRGF0YSgp
LT5tX3NoYWRvd1RyZWUuZ2V0KCk7CiB9CiAKLXN0YXRpYyBib29sIHZhbGlkYXRlU2hhZG93Um9v
dChEb2N1bWVudCogZG9jdW1lbnQsIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQorU2hhZG93VHJlZSogRWxlbWVudDo6ZW5zdXJlU2hhZG93VHJlZSgpCiB7Ci0gICAg
aWYgKCFzaGFkb3dSb290KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChzaGFkb3dS
b290LT5zaGFkb3dIb3N0KCkpIHsKLSAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAoc2hhZG93Um9vdC0+ZG9j
dW1lbnQoKSAhPSBkb2N1bWVudCkgewotICAgICAgICBlYyA9IFdST05HX0RPQ1VNRU5UX0VSUjsK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHJldHVybiB0cnVlOwotfQotCi12
b2lkIEVsZW1lbnQ6OnNldFNoYWRvd1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dSb290PiBzaGFkb3dS
b290LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIXZhbGlkYXRlU2hhZG93Um9vdChk
b2N1bWVudCgpLCBzaGFkb3dSb290LmdldCgpLCBlYykpCi0gICAgICAgIHJldHVybjsKLQotICAg
IGlmICghaGFzUmFyZURhdGEoKSkKLSAgICAgICAgZW5zdXJlUmFyZURhdGEoKTsKLQotICAgIHJl
bW92ZVNoYWRvd1Jvb3QoKTsKKyAgICBpZiAoU2hhZG93VHJlZSogdHJlZSA9IGVuc3VyZVJhcmVE
YXRhKCktPm1fc2hhZG93VHJlZS5nZXQoKSkKKyAgICAgICAgcmV0dXJuIHRyZWU7CiAKLSAgICBz
aGFkb3dSb290LT5zZXRTaGFkb3dIb3N0KHRoaXMpOwotICAgIHNoYWRvd1RyZWUoKS0+cHVzaFNo
YWRvd1Jvb3Qoc2hhZG93Um9vdC5nZXQoKSk7Ci0KLSAgICBpZiAoaW5Eb2N1bWVudCgpKQotICAg
ICAgICBzaGFkb3dSb290LT5pbnNlcnRlZEludG9Eb2N1bWVudCgpOwotICAgIGlmIChhdHRhY2hl
ZCgpKSB7Ci0gICAgICAgIHNoYWRvd1Jvb3QtPmxhenlBdHRhY2goKTsKLSAgICAgICAgZm9yIChO
b2RlKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJs
aW5nKCkpCi0gICAgICAgICAgICBjaGlsZC0+ZGV0YWNoKCk7Ci0gICAgfQorICAgIHJhcmVEYXRh
KCktPm1fc2hhZG93VHJlZSA9IGFkb3B0UHRyKG5ldyBTaGFkb3dUcmVlKCkpOworICAgIHJldHVy
biByYXJlRGF0YSgpLT5tX3NoYWRvd1RyZWUuZ2V0KCk7CiB9CiAKIFNoYWRvd1Jvb3QqIEVsZW1l
bnQ6OmVuc3VyZVNoYWRvd1Jvb3QoKQpAQCAtMTIwMywzMiArMTE3Myw2IEBAIFNoYWRvd1Jvb3Qq
IEVsZW1lbnQ6OmVuc3VyZVNoYWRvd1Jvb3QoKQogICAgIHJldHVybiBTaGFkb3dSb290OjpjcmVh
dGUodGhpcywgU2hhZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290KS5nZXQoKTsK
IH0KIAotdm9pZCBFbGVtZW50OjpyZW1vdmVTaGFkb3dSb290KCkKLXsKLSAgICBpZiAoIWhhc1No
YWRvd1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgd2hpbGUgKFJlZlB0cjxTaGFkb3dS
b290PiBvbGRSb290ID0gc2hhZG93VHJlZSgpLT5wb3BTaGFkb3dSb290KCkpIHsKLSAgICAgICAg
ZG9jdW1lbnQoKS0+cmVtb3ZlRm9jdXNlZE5vZGVPZlN1YnRyZWUob2xkUm9vdC5nZXQoKSk7Ci0K
LSAgICAgICAgaWYgKG9sZFJvb3QtPmF0dGFjaGVkKCkpCi0gICAgICAgICAgICBvbGRSb290LT5k
ZXRhY2goKTsKLQotICAgICAgICBvbGRSb290LT5zZXRTaGFkb3dIb3N0KDApOwotICAgICAgICBk
b2N1bWVudCgpLT5hZG9wdElmTmVlZGVkKG9sZFJvb3QuZ2V0KCkpOwotICAgICAgICBpZiAob2xk
Um9vdC0+aW5Eb2N1bWVudCgpKQotICAgICAgICAgICAgb2xkUm9vdC0+cmVtb3ZlZEZyb21Eb2N1
bWVudCgpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBvbGRSb290LT5yZW1vdmVkRnJvbVRy
ZWUodHJ1ZSk7Ci0gICAgICAgIGlmIChhdHRhY2hlZCgpKSB7Ci0gICAgICAgICAgICBmb3IgKE5v
ZGUqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxp
bmcoKSkgewotICAgICAgICAgICAgICAgIGlmICghY2hpbGQtPmF0dGFjaGVkKCkpCi0gICAgICAg
ICAgICAgICAgICAgIGNoaWxkLT5sYXp5QXR0YWNoKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICB9Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgRWxlbWVudDo6c2hhZG93UHNldWRv
SWQoKSBjb25zdAogewogICAgIHJldHVybiBoYXNSYXJlRGF0YSgpID8gcmFyZURhdGEoKS0+bV9z
aGFkb3dQc2V1ZG9JZCA6IG51bGxBdG9tOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggNGE5ZjE1YjJl
ZWRiNGY2NzQ1NjI4ZWQ5Y2ExMDcwYWYzYzAzNGJhZS4uYzIzMWNiZTcxOTljZWI4MzVhZTg2Y2Ey
ODBmYWM4ZDZmYzljMTZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0yNTUsMTIgKzI1NSwxMSBA
QCBwdWJsaWM6CiAKICAgICBib29sIGhhc1NoYWRvd1Jvb3QoKSBjb25zdDsKICAgICBTaGFkb3dU
cmVlKiBzaGFkb3dUcmVlKCkgY29uc3Q7CisgICAgU2hhZG93VHJlZSogZW5zdXJlU2hhZG93VHJl
ZSgpOwogCi0gICAgLy8gRklYTUU6IFRoZXNlIEFQSSB3aWxsIGJlIG1vdmVkIHRvIFNoYWRvd1Ry
ZWUuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzEz
Ci0gICAgdm9pZCBzZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8U2hhZG93Um9vdD4sIEV4Y2VwdGlv
bkNvZGUmKTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIEVsZW1lbnQ6OmVuc3VyZVNoYWRvd1Jvb3QK
KyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc2MDgKICAg
ICBTaGFkb3dSb290KiBlbnN1cmVTaGFkb3dSb290KCk7Ci0gICAgdm9pZCByZW1vdmVTaGFkb3dS
b290KCk7CiAKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQo
KSBjb25zdDsKICAgICB2b2lkIHNldFNoYWRvd1BzZXVkb0lkKGNvbnN0IEF0b21pY1N0cmluZyYs
IEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFJhcmVEYXRhLmgKaW5kZXggNDVkODlkNWExYjM2ODZkYzQ5YzgzYTVlOGIxYjNiMmIzYTNj
ZGE1Zi4uYWQ2MzM1Zjg0YTg0ZjE5MTY1YmIwYTI0YWRlODRhY2E0MzgxMjUyZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaApAQCAtNjQsMTEgKzY0LDExIEBAIHB1YmxpYzoKIAog
ICAgIExheW91dFNpemUgbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5nOwogICAgIFJlZlB0cjxSZW5k
ZXJTdHlsZT4gbV9jb21wdXRlZFN0eWxlOwotICAgIFNoYWRvd1RyZWUgbV9zaGFkb3dUcmVlOwog
ICAgIEF0b21pY1N0cmluZyBtX3NoYWRvd1BzZXVkb0lkOwogCiAgICAgT3duUHRyPERhdGFzZXRE
T01TdHJpbmdNYXA+IG1fZGF0YXNldERPTVN0cmluZ01hcDsKICAgICBPd25QdHI8Q2xhc3NMaXN0
PiBtX2NsYXNzTGlzdDsKKyAgICBPd25QdHI8U2hhZG93VHJlZT4gbV9zaGFkb3dUcmVlOwogCiAg
ICAgYm9vbCBtX3N0eWxlQWZmZWN0ZWRCeUVtcHR5OwogCkBAIC05NCw3ICs5NCw3IEBAIGlubGlu
ZSBFbGVtZW50UmFyZURhdGE6OkVsZW1lbnRSYXJlRGF0YSgpCiAKIGlubGluZSBFbGVtZW50UmFy
ZURhdGE6On5FbGVtZW50UmFyZURhdGEoKQogewotICAgIEFTU0VSVCghbV9zaGFkb3dUcmVlLmhh
c1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFtX3NoYWRvd1RyZWUgfHwgIW1fc2hhZG93VHJl
ZS0+aGFzU2hhZG93Um9vdCgpKTsKIH0KIAogaW5saW5lIHZvaWQgRWxlbWVudFJhcmVEYXRhOjpy
ZXNldENvbXB1dGVkU3R5bGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IGMxNmM4
NTlmNWFlYmI5MGVkMDc1NGI1YjZmYjdmMGU3NmY0NjU2Y2IuLmNiOWQ4YzMwY2Q4MGI5OTRkMjJm
MTI0ZWU1YTEwODFkZTc0NDI4NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTEy
Myw3ICsxMjMsNyBAQCBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IFNoYWRvd1Jvb3Q6OmNyZWF0ZShF
bGVtZW50KiBlbGVtZW50LCBTaGFkb3dSb290Q3JlYXRpb25QdQogICAgIFJlZlB0cjxTaGFkb3dS
b290PiBzaGFkb3dSb290ID0gYWRvcHRSZWYobmV3IFNoYWRvd1Jvb3QoZWxlbWVudC0+ZG9jdW1l
bnQoKSkpOwogCiAgICAgZWMgPSAwOwotICAgIGVsZW1lbnQtPnNldFNoYWRvd1Jvb3Qoc2hhZG93
Um9vdCwgZWMpOworICAgIGVsZW1lbnQtPmVuc3VyZVNoYWRvd1RyZWUoKS0+YWRkU2hhZG93Um9v
dChlbGVtZW50LCBzaGFkb3dSb290LCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4g
MDsKICAgICBBU1NFUlQoZWxlbWVudCA9PSBzaGFkb3dSb290LT5ob3N0KCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1RyZWUuY3BwCmluZGV4IGYxYzY4MjY1YTZmYjRhMDFjM2E4MGM2ZmZmZTY3NThjMjE2
YjliNzMuLjAxZDY0Y2I5N2Y4MmIxMzlkZmRmNWQ1ZjYxY2NhOWE5NzFjZjI5MTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93VHJlZS5jcHAKQEAgLTQ2LDI0ICs0Niw3OCBAQCBTaGFkb3dUcmVlOjp+U2hh
ZG93VHJlZSgpCiAgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOwogfQogCi12b2lkIFNoYWRv
d1RyZWU6OnB1c2hTaGFkb3dSb290KFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QpCitzdGF0aWMgYm9v
bCB2YWxpZGF0ZVNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50LCBTaGFkb3dSb290KiBzaGFk
b3dSb290LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBpZiAoIXNoYWRvd1Jvb3QpCisgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKHNoYWRvd1Jvb3QtPnNoYWRvd0hvc3QoKSkgewor
ICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKworICAgIGlmIChzaGFkb3dSb290LT5kb2N1bWVudCgpICE9IGRvY3VtZW50KSB7
CisgICAgICAgIGVjID0gV1JPTkdfRE9DVU1FTlRfRVJSOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgU2hhZG93VHJlZTo6YWRkU2hh
ZG93Um9vdChFbGVtZW50KiBob3N0LCBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IHNoYWRvd1Jvb3Qs
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEFTU0VSVChob3N0KTsKKyAgICBBU1NFUlQoc2hh
ZG93Um9vdCk7CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgaWYgKCFSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjptdWx0aXBsZVNoYWRvd1N1YnRyZWVzRW5hYmxlZCgpKQotICAgICAgICBBU1NF
UlQoIWhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkgfHwgUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6bXVsdGlwbGVTaGFkb3dTdWJ0cmVlc0VuYWJsZWQoKSk7CiAj
ZWxzZQogICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKICNlbmRpZgogCi0gICAgbV9zaGFk
b3dSb290cy5wdXNoKHNoYWRvd1Jvb3QpOworICAgIGlmICghdmFsaWRhdGVTaGFkb3dSb290KGhv
c3QtPmRvY3VtZW50KCksIHNoYWRvd1Jvb3QuZ2V0KCksIGVjKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgc2hhZG93Um9vdC0+c2V0U2hhZG93SG9zdChob3N0KTsKKworICAgIGlmIChob3N0LT5p
bkRvY3VtZW50KCkpCisgICAgICAgIHNoYWRvd1Jvb3QtPmluc2VydGVkSW50b0RvY3VtZW50KCk7
CisgICAgaWYgKGhvc3QtPmF0dGFjaGVkKCkpIHsKKyAgICAgICAgc2hhZG93Um9vdC0+bGF6eUF0
dGFjaCgpOworICAgICAgICBkZXRhY2goKTsKKyAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGhv
c3QtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCisg
ICAgICAgICAgICBjaGlsZC0+ZGV0YWNoKCk7CisgICAgfQorCisgICAgbV9zaGFkb3dSb290cy5w
dXNoKHNoYWRvd1Jvb3QuZ2V0KCkpOwogfQogCi1TaGFkb3dSb290KiBTaGFkb3dUcmVlOjpwb3BT
aGFkb3dSb290KCkKK3ZvaWQgU2hhZG93VHJlZTo6cmVtb3ZlQWxsU2hhZG93Um9vdHMoKQogewog
ICAgIGlmICghaGFzU2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuOworCisgICAgRWxlbWVudCogaG9zdCA9IHRoaXMtPmhvc3QoKTsKIAotICAgIHJldHVybiBt
X3NoYWRvd1Jvb3RzLnJlbW92ZUhlYWQoKTsKKyAgICB3aGlsZSAoUmVmUHRyPFNoYWRvd1Jvb3Q+
IG9sZFJvb3QgPSBtX3NoYWRvd1Jvb3RzLnJlbW92ZUhlYWQoKSkgeworICAgICAgICBob3N0LT5k
b2N1bWVudCgpLT5yZW1vdmVGb2N1c2VkTm9kZU9mU3VidHJlZShvbGRSb290LmdldCgpKTsKKwor
ICAgICAgICBpZiAob2xkUm9vdC0+YXR0YWNoZWQoKSkKKyAgICAgICAgICAgIG9sZFJvb3QtPmRl
dGFjaCgpOworCisgICAgICAgIG9sZFJvb3QtPnNldFNoYWRvd0hvc3QoMCk7CisgICAgICAgIGhv
c3QtPmRvY3VtZW50KCktPmFkb3B0SWZOZWVkZWQob2xkUm9vdC5nZXQoKSk7CisgICAgICAgIGlm
IChvbGRSb290LT5pbkRvY3VtZW50KCkpCisgICAgICAgICAgICBvbGRSb290LT5yZW1vdmVkRnJv
bURvY3VtZW50KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG9sZFJvb3QtPnJlbW92ZWRG
cm9tVHJlZSh0cnVlKTsKKyAgICB9CisKKyAgICBpZiAoaG9zdC0+YXR0YWNoZWQoKSkgeworICAg
ICAgICBmb3IgKE5vZGUqIGNoaWxkID0gaG9zdC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgaWYgKCFjaGlsZC0+YXR0YWNo
ZWQoKSkKKyAgICAgICAgICAgICAgICBjaGlsZC0+bGF6eUF0dGFjaCgpOworICAgICAgICB9Cisg
ICAgfQogfQogCiB2b2lkIFNoYWRvd1RyZWU6Omluc2VydGVkSW50b0RvY3VtZW50KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93VHJlZS5oCmluZGV4IDZlMzdhN2VkNTFmZjE4M2EyNWE4OWVlMzZlOTg4OWUwMjFh
ZWRhNzEuLmFlNDMwYzUyOWRjYTJlYjJkZmZkOWRhZGUyN2U2OGRjOGNjYzYzMDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1RyZWUuaApAQCAtMjcsNiArMjcsNyBAQAogI2lmbmRlZiBTaGFkb3dUcmVlX2gK
ICNkZWZpbmUgU2hhZG93VHJlZV9oCiAKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5j
bHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgPHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg+CiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC00OSw4ICs1MCw4IEBAIHB1YmxpYzoKICAg
ICBTaGFkb3dSb290KiB5b3VuZ2VzdFNoYWRvd1Jvb3QoKSBjb25zdDsKICAgICBTaGFkb3dSb290
KiBvbGRlc3RTaGFkb3dSb290KCkgY29uc3Q7CiAKLSAgICB2b2lkIHB1c2hTaGFkb3dSb290KFNo
YWRvd1Jvb3QqKTsKLSAgICBTaGFkb3dSb290KiBwb3BTaGFkb3dSb290KCk7CisgICAgdm9pZCBh
ZGRTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4sIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICB2b2lkIHJlbW92ZUFsbFNoYWRvd1Jvb3RzKCk7CiAKICAgICB2b2lk
IGluc2VydGVkSW50b0RvY3VtZW50KCk7CiAgICAgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNGUwMjkwMzIwZTI5NTg0NTQ1
YTc2YTExOGQ5MTZjYzE0ZGFhMzU0ZS4uYjQ4ZjU5NGY5N2E3ZTIxZGRiOTA4YTljN2VjYjBlMGJl
NmFkYzgyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMjQ4LDcgKzI0
OCw4IEBAIHZvaWQgSW50ZXJuYWxzOjpyZW1vdmVTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaG9zdC0+cmVt
b3ZlU2hhZG93Um9vdCgpOworICAgIGlmIChob3N0LT5oYXNTaGFkb3dSb290KCkpCisgICAgICAg
IGhvc3QtPnNoYWRvd1RyZWUoKS0+cmVtb3ZlQWxsU2hhZG93Um9vdHMoKTsKIH0KIAogdm9pZCBJ
bnRlcm5hbHM6OnNldE11bHRpcGxlU2hhZG93U3VidHJlZXNFbmFibGVkKGJvb2wgZW5hYmxlZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLmRlZgppbmRleCBhMmE2ZDNkYWVlOTUxNWQwM2ViZDI3NWRjZjU1YjY5
NmRmZTQzYjRhLi5hYjk5NjUzNTc2MDRiY2Q1MGMwZmI4N2M4N2E3NDNjMjZiMzRjOTNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktp
dDIvd2luL1dlYktpdDIuZGVmCkBAIC0xNzYsNyArMTc2LDcgQEAgRVhQT1JUUwogICAgICAgICA/
cGFnZUBEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZQYWdlQDJAWFoKICAgICAgICAgP3BhaW50Q29u
dHJvbFRpbnRzQEZyYW1lVmlld0BXZWJDb3JlQEBBQUVYWFoKICAgICAgICAgP3JhbmdlRnJvbUxv
Y2F0aW9uQW5kTGVuZ3RoQFRleHRJdGVyYXRvckBXZWJDb3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBW
UmFuZ2VAV2ViQ29yZUBAQFdURkBAUEFWRWxlbWVudEAyQEhIX05AWgotICAgICAgICA/cmVtb3Zl
U2hhZG93Um9vdEBFbGVtZW50QFdlYkNvcmVAQFFBRVhYWgorICAgICAgICA/cmVtb3ZlQWxsU2hh
ZG93Um9vdHNAU2hhZG93VHJlZUBXZWJDb3JlQEBRQUVYWFoKICAgICAgICAgP3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHRASlNET01HbG9iYWxPYmplY3RAV2ViQ29yZUBAUUJFUEFWU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEAyQFhaCiAgICAgICAgID9zY3JvbGxFbGVtZW50VG9SZWN0QEZyYW1lVmlld0BX
ZWJDb3JlQEBRQUVYUEFWRWxlbWVudEAyQEFCVkludFJlY3RAMkBAWgogICAgICAgICA/c2V0RE9N
RXhjZXB0aW9uQFdlYkNvcmVAQFlBWFBBVkV4ZWNTdGF0ZUBKU0NAQEhAWgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmIGIvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IGZmYjBjNzU3YjI5YjhjOTU0MGM3ZTVkZGEwM2MyNzk2
MTBlODM0YWEuLmI5MzkyZDg3OTM0MDI4ZjAyMzBmMTJiM2M1ZjQ5NDM2N2QxNzAwYjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTE2OSw3ICsxNjksNyBAQCBFWFBPUlRT
CiAgICAgICAgID9wYWdlQERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVlBhZ2VAMkBYWgogICAgICAg
ICA/cGFpbnRDb250cm9sVGludHNARnJhbWVWaWV3QFdlYkNvcmVAQEFBRVhYWgogICAgICAgICA/
cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGhAVGV4dEl0ZXJhdG9yQFdlYkNvcmVAQFNBP0FWPyRQ
YXNzUmVmUHRyQFZSYW5nZUBXZWJDb3JlQEBAV1RGQEBQQVZFbGVtZW50QDJASEhfTkBaCi0gICAg
ICAgID9yZW1vdmVTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUFFWFhaCisgICAgICAgID9y
ZW1vdmVBbGxTaGFkb3dSb290c0BTaGFkb3dUcmVlQFdlYkNvcmVAQFFBRVhYWgogICAgICAgICA/
c2NyaXB0RXhlY3V0aW9uQ29udGV4dEBKU0RPTUdsb2JhbE9iamVjdEBXZWJDb3JlQEBRQkVQQVZT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QDJAWFoKICAgICAgICAgP3Njcm9sbEVsZW1lbnRUb1JlY3RA
RnJhbWVWaWV3QFdlYkNvcmVAQFFBRVhQQVZFbGVtZW50QDJAQUJWSW50UmVjdEAyQEBaCiAgICAg
ICAgID9zZXRET01FeGNlcHRpb25AV2ViQ29yZUBAWUFYUEFWRXhlY1N0YXRlQEpTQ0BASEBaCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1dG90
b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCAyNGFjOGQwMjRhMGJlYmZjMmRjZjgzYmExNjAzOWY3
ZTNiZWZiN2Y5Li44NjM0OGFkZjAxZTAxMDBiZGUyNzE3YzU1NTNhMmQ4NTkyMTcwOGI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRv
dG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTQyLDYgKzQyLDcgQEAgX1pON1dlYkNvcmUxMHRvRG9j
dW1lbnRFTjNKU0M3SlNWYWx1ZUU7CiBfWk43V2ViQ29yZTEwQ2xpZW50UmVjdEMxRXY7CiBfWk43
V2ViQ29yZTEwQ2xpZW50UmVjdEMxRVJLTlNfN0ludFJlY3RFOwogX1pON1dlYkNvcmUxMFNoYWRv
d1Jvb3Q2Y3JlYXRlRVBOU183RWxlbWVudEVSaTsKK19aTjdXZWJDb3JlMTBTaGFkb3dUcmVlMjBy
ZW1vdmVBbGxTaGFkb3dSb290c0V2OwogX1pON1dlYkNvcmUxMUV2ZW50VGFyZ2V0MTd0b0dlbmVy
YXRlZFN0cmVhbUV2OwogX1pON1dlYkNvcmUxMUV2ZW50VGFyZ2V0OHRvU3RyZWFtRXY7CiBfWk43
V2ViQ29yZTEyVGV4dEl0ZXJhdG9yMjZyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aEVQTlNfN0Vs
ZW1lbnRFaWliOwpAQCAtNjYsNyArNjcsNiBAQCBfWk43V2ViQ29yZTZKU05vZGUxMHB1dFZpcnR1
YWxFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRQogX1pO
N1dlYkNvcmU2SlNOb2RlMjB2aXNpdENoaWxkcmVuVmlydHVhbEVSTjNKU0MxMVNsb3RWaXNpdG9y
RTsKIF9aTjdXZWJDb3JlNkpTTm9kZTZzX2luZm9FOwogX1pON1dlYkNvcmU2dG9Ob2RlRU4zSlND
N0pTVmFsdWVFOwotX1pON1dlYkNvcmU3RWxlbWVudDE2cmVtb3ZlU2hhZG93Um9vdEV2OwogX1pO
N1dlYkNvcmU3dG9SYW5nZUVOM0pTQzdKU1ZhbHVlRTsKIF9aTjdXZWJDb3JlOUpTRWxlbWVudDEw
cHV0VmlydHVhbEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFfN0pTVmFs
dWVFUk5TMV8xNVB1dFByb3BlcnR5U2xvdEU7CiBfWk43V2ViQ29yZTlKU0VsZW1lbnQ2c19pbmZv
RTsKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5MzQ3MTczMTU4YTQ3
M2JmZWVhZjk5MzI4MjI1ZTgzMDc1OTA3ODcyLi5iNDJmN2NlY2Q1MGNkYjcyNTAyYjM1YzRmMWM2
OWYxMzliZGJiZjA1IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMTItMDItMjcgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIEVsZW1lbnQ6OnJlbW92ZVNoYWRvd1Jvb3QoKSBhbmQgc2V0U2hh
ZG93Um9vdCgpIHNob3VsZCBiZSBtb3ZlZCBpbnRvIFNoYWRvd1RyZWUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODMxMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1i
b2xzLmZpbHRlcjoKKwogMjAxMi0wMi0yNiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmVuYW1lIFNoYWRvd1Jvb3RMaXN0IHRvIFNoYWRvd1RyZWUu
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128982</attachid>
            <date>2012-02-27 01:30:37 -0800</date>
            <delta_ts>2012-02-27 22:21:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78313-20120227183036.patch</filename>
            <type>text/plain</type>
            <size>16418</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4OTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2M0OGQ1N2Q1MGJjMjQy
NjRmNzJlMzQzN2VkNGEwYmU1MzE4NzdmNi4uYzE0NzlhYzc3M2ZiMjQyNTNmNTliZDNlMDNmZDFj
NzgzOTY2NjM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTAyLTI3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBFbGVtZW50Ojpy
ZW1vdmVTaGFkb3dSb290KCkgYW5kIHNldFNoYWRvd1Jvb3QoKSBzaG91bGQgYmUgbW92ZWQgaW50
byBTaGFkb3dUcmVlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzgzMTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIHBhdGNoIGlzIGZvciByZWZhY3RvcmluZyBTaGFkb3dUcmVlIHJlbGF0ZWQgY29k
ZS4KKyAgICAgICAgICAoMSkgRWxlbWVudDo6cmVtb3ZlU2hhZG93Um9vdCgpIGFuZCBFbGVtZW50
OjpzZXRTaGFkb3dSb290KCkgYXJlIG1vdmVkIGludG8gU2hhZG93VHJlZS4KKyAgICAgICAgICAo
MikgU2hhZG93VHJlZSBpcyBub3cgcHV0IG9uIGl0cyBvd24gaGVhcC4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIFdlYkNvcmUuZXhw
LmluOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6On5FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNoYWRvd1RyZWUpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZW5zdXJlU2hhZG93VHJlZSk6CisgICAgICAgICAg
RW5zdXJlIHRoZSBleGlzdGVuY2Ugb2YgU2hhZG93VHJlZS4gVGhpcyBkb2VzIG5vdCBlbnN1cmUg
U2hhZG93Um9vdCBleGlzdHMuCisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKEVs
ZW1lbnQpOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAgICBNYWtl
cyBTaGFkb3dUcmVlIG9uIEhlYXAuCisgICAgICAgIChFbGVtZW50UmFyZURhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjp+RWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAg
KiBkb20vU2hhZG93Um9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpjcmVh
dGUpOgorICAgICAgICAqIGRvbS9TaGFkb3dUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZh
bGlkYXRlU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1RyZWU6OmFkZFNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93VHJl
ZTo6cmVtb3ZlQWxsU2hhZG93Um9vdHMpOgorICAgICAgICAqIGRvbS9TaGFkb3dUcmVlLmg6Cisg
ICAgICAgIChTaGFkb3dUcmVlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlbW92ZVNoYWRvd1Jvb3QpOgorCiAyMDEyLTAy
LTI3ICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1NS
ZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggZjE2M2QyNzFiYTg3NzQ5ODQyMzlhZDlkNGQ1M2ZlZmViMmJmMTU5OS4uOWU5Mjk1
MGNkYTg1MjdhNmQ0ZGVmOGJmYTk5N2EzZDBiMjg5ZWZlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDEyLTAyLTI3ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBFbGVtZW50OjpyZW1vdmVTaGFkb3dSb290KCkgYW5kIHNldFNoYWRvd1Jv
b3QoKSBzaG91bGQgYmUgbW92ZWQgaW50byBTaGFkb3dUcmVlLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzMTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLmRlZjoKKyAgICAgICAg
KiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTItMDItMjYgIFlvdW5nVGFlY2sgU29uZyAg
PHlvdW5ndGFlY2suc29uZ0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIEFkZCBJ
bmplY3RlZEJ1bmRsZUVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggOGIyZDk2ODY5ODY4
YmFiZjNkN2E1NjNmNmU2NTIxOWQxNDBjYzllMi4uMzQ2YTc4ZTZmZDFjNmI4ZjkxMDlkYjZhYTk0
MjY2NTQ1YjY3YTM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE0Myw2ICsxNDMsNyBAQCBf
X1pON1dlYkNvcmUxMEZsb2F0UG9pbnRDMUVSS05TXzhJbnRQb2ludEUKIF9fWk43V2ViQ29yZTEw
SlNEb2N1bWVudDZzX2luZm9FCiBfX1pON1dlYkNvcmUxME1vdXNlRXZlbnQ2Y3JlYXRlRVJLTjNX
VEYxMkF0b21pY1N0cmluZ0VOUzFfMTBQYXNzUmVmUHRySU5TXzlET01XaW5kb3dFRUVSS05TXzE4
UGxhdGZvcm1Nb3VzZUV2ZW50RWlOUzVfSU5TXzROb2RlRUVFCiBfX1pON1dlYkNvcmUxME1vdXNl
RXZlbnRDMUVSS04zV1RGMTJBdG9taWNTdHJpbmdFYmJOUzFfMTBQYXNzUmVmUHRySU5TXzlET01X
aW5kb3dFRUVpaWlpaWJiYmJ0TlM1X0lOU18xMUV2ZW50VGFyZ2V0RUVFTlM1X0lOU185Q2xpcGJv
YXJkRUVFYgorX19aTjdXZWJDb3JlMTBTaGFkb3dUcmVlMjByZW1vdmVBbGxTaGFkb3dSb290c0V2
CiBfX1pON1dlYkNvcmUxMFNjcm9sbFZpZXcxN3NldFVzZUZpeGVkTGF5b3V0RWIKIF9fWk43V2Vi
Q29yZTEwU2Nyb2xsVmlldzE4c2V0Rml4ZWRMYXlvdXRTaXplRVJLTlNfN0ludFNpemVFCiBfX1pO
N1dlYkNvcmUxMFNjcm9sbFZpZXcyMHNldENhbkhhdmVTY3JvbGxiYXJzRWIKQEAgLTkxNSw3ICs5
MTYsNiBAQCBfX1pON1dlYkNvcmU2V2lkZ2V0RDJFdgogX19aTjdXZWJDb3JlNnRvTm9kZUVOM0pT
QzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlN0NvbnNvbGUyMXNob3VsZFByaW50RXhjZXB0aW9uc0V2
CiBfX1pON1dlYkNvcmU3Q29uc29sZTI0c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zRWIKLV9fWk43
V2ViQ29yZTdFbGVtZW50MTZyZW1vdmVTaGFkb3dSb290RXYKIF9fWk43V2ViQ29yZTdFbGVtZW50
MjFib3VuZHNJblJvb3RWaWV3U3BhY2VFdgogX19aTjdXZWJDb3JlN0VsZW1lbnQ5aW5uZXJUZXh0
RXYKIF9fWk43V2ViQ29yZTdJbnRSZWN0NXNjYWxlRWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRl
eCBiM2QyYTBhMmRmNGQwMzRlNGU2YjMzZjBkNmE3NzA1NjA1YWE4ZWI4Li40NTFkYjU4NmY4ODY1
ZDZlZGQ4MTE3NWZjOWRiOGY2OWQzYjAxOThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0x
MjIsNyArMTIyLDggQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBFbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3UKIAogRWxlbWVudDo6fkVsZW1l
bnQoKQogewotICAgIHJlbW92ZVNoYWRvd1Jvb3QoKTsKKyAgICBpZiAoc2hhZG93VHJlZSgpKQor
ICAgICAgICByYXJlRGF0YSgpLT5tX3NoYWRvd1RyZWUuY2xlYXIoKTsKICAgICBpZiAobV9hdHRy
aWJ1dGVNYXApCiAgICAgICAgIG1fYXR0cmlidXRlTWFwLT5kZXRhY2hGcm9tRWxlbWVudCgpOwog
fQpAQCAtMTE1Miw0NyArMTE1MywxNiBAQCBTaGFkb3dUcmVlKiBFbGVtZW50OjpzaGFkb3dUcmVl
KCkgY29uc3QKICAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0g
ICAgcmV0dXJuICZyYXJlRGF0YSgpLT5tX3NoYWRvd1RyZWU7CisgICAgcmV0dXJuIHJhcmVEYXRh
KCktPm1fc2hhZG93VHJlZS5nZXQoKTsKIH0KIAotc3RhdGljIGJvb2wgdmFsaWRhdGVTaGFkb3dS
b290KERvY3VtZW50KiBkb2N1bWVudCwgU2hhZG93Um9vdCogc2hhZG93Um9vdCwgRXhjZXB0aW9u
Q29kZSYgZWMpCitTaGFkb3dUcmVlKiBFbGVtZW50OjplbnN1cmVTaGFkb3dUcmVlKCkKIHsKLSAg
ICBpZiAoIXNoYWRvd1Jvb3QpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgaWYgKHNoYWRv
d1Jvb3QtPnNoYWRvd0hvc3QoKSkgewotICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VS
UjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KKyAgICBpZiAoU2hhZG93VHJlZSogdHJl
ZSA9IGVuc3VyZVJhcmVEYXRhKCktPm1fc2hhZG93VHJlZS5nZXQoKSkKKyAgICAgICAgcmV0dXJu
IHRyZWU7CiAKLSAgICBpZiAoc2hhZG93Um9vdC0+ZG9jdW1lbnQoKSAhPSBkb2N1bWVudCkgewot
ICAgICAgICBlYyA9IFdST05HX0RPQ1VNRU5UX0VSUjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLQotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIEVsZW1lbnQ6OnNldFNoYWRvd1Jv
b3QoUGFzc1JlZlB0cjxTaGFkb3dSb290PiBzaGFkb3dSb290LCBFeGNlcHRpb25Db2RlJiBlYykK
LXsKLSAgICBpZiAoIXZhbGlkYXRlU2hhZG93Um9vdChkb2N1bWVudCgpLCBzaGFkb3dSb290Lmdl
dCgpLCBlYykpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghaGFzUmFyZURhdGEoKSkKLSAg
ICAgICAgZW5zdXJlUmFyZURhdGEoKTsKLQotICAgIHJlbW92ZVNoYWRvd1Jvb3QoKTsKLQotICAg
IHNoYWRvd1Jvb3QtPnNldFNoYWRvd0hvc3QodGhpcyk7Ci0gICAgc2hhZG93VHJlZSgpLT5wdXNo
U2hhZG93Um9vdChzaGFkb3dSb290LmdldCgpKTsKLQotICAgIGlmIChpbkRvY3VtZW50KCkpCi0g
ICAgICAgIHNoYWRvd1Jvb3QtPmluc2VydGVkSW50b0RvY3VtZW50KCk7Ci0gICAgaWYgKGF0dGFj
aGVkKCkpIHsKLSAgICAgICAgc2hhZG93Um9vdC0+bGF6eUF0dGFjaCgpOwotICAgICAgICBmb3Ig
KE5vZGUqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNp
YmxpbmcoKSkKLSAgICAgICAgICAgIGNoaWxkLT5kZXRhY2goKTsKLSAgICB9CisgICAgcmFyZURh
dGEoKS0+bV9zaGFkb3dUcmVlID0gYWRvcHRQdHIobmV3IFNoYWRvd1RyZWUoKSk7CisgICAgcmV0
dXJuIHJhcmVEYXRhKCktPm1fc2hhZG93VHJlZS5nZXQoKTsKIH0KIAogU2hhZG93Um9vdCogRWxl
bWVudDo6ZW5zdXJlU2hhZG93Um9vdCgpCkBAIC0xMjAzLDMyICsxMTczLDYgQEAgU2hhZG93Um9v
dCogRWxlbWVudDo6ZW5zdXJlU2hhZG93Um9vdCgpCiAgICAgcmV0dXJuIFNoYWRvd1Jvb3Q6OmNy
ZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpLmdldCgp
OwogfQogCi12b2lkIEVsZW1lbnQ6OnJlbW92ZVNoYWRvd1Jvb3QoKQotewotICAgIGlmICghaGFz
U2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICB3aGlsZSAoUmVmUHRyPFNoYWRv
d1Jvb3Q+IG9sZFJvb3QgPSBzaGFkb3dUcmVlKCktPnBvcFNoYWRvd1Jvb3QoKSkgewotICAgICAg
ICBkb2N1bWVudCgpLT5yZW1vdmVGb2N1c2VkTm9kZU9mU3VidHJlZShvbGRSb290LmdldCgpKTsK
LQotICAgICAgICBpZiAob2xkUm9vdC0+YXR0YWNoZWQoKSkKLSAgICAgICAgICAgIG9sZFJvb3Qt
PmRldGFjaCgpOwotCi0gICAgICAgIG9sZFJvb3QtPnNldFNoYWRvd0hvc3QoMCk7Ci0gICAgICAg
IGRvY3VtZW50KCktPmFkb3B0SWZOZWVkZWQob2xkUm9vdC5nZXQoKSk7Ci0gICAgICAgIGlmIChv
bGRSb290LT5pbkRvY3VtZW50KCkpCi0gICAgICAgICAgICBvbGRSb290LT5yZW1vdmVkRnJvbURv
Y3VtZW50KCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG9sZFJvb3QtPnJlbW92ZWRGcm9t
VHJlZSh0cnVlKTsKLSAgICAgICAgaWYgKGF0dGFjaGVkKCkpIHsKLSAgICAgICAgICAgIGZvciAo
Tm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2li
bGluZygpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFjaGlsZC0+YXR0YWNoZWQoKSkKLSAgICAg
ICAgICAgICAgICAgICAgY2hpbGQtPmxhenlBdHRhY2goKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgIH0KLX0KLQogY29uc3QgQXRvbWljU3RyaW5nJiBFbGVtZW50OjpzaGFkb3dQc2V1
ZG9JZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyByYXJlRGF0YSgpLT5t
X3NoYWRvd1BzZXVkb0lkIDogbnVsbEF0b207CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA0YTlmMTVi
MmVlZGI0ZjY3NDU2MjhlZDljYTEwNzBhZjNjMDM0YmFlLi5jMjMxY2JlNzE5OWNlYjgzNWFlODZj
YTI4MGZhYzhkNmZjOWMxNmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTI1NSwxMiArMjU1LDEx
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzU2hhZG93Um9vdCgpIGNvbnN0OwogICAgIFNoYWRv
d1RyZWUqIHNoYWRvd1RyZWUoKSBjb25zdDsKKyAgICBTaGFkb3dUcmVlKiBlbnN1cmVTaGFkb3dU
cmVlKCk7CiAKLSAgICAvLyBGSVhNRTogVGhlc2UgQVBJIHdpbGwgYmUgbW92ZWQgdG8gU2hhZG93
VHJlZS4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzgz
MTMKLSAgICB2b2lkIHNldFNoYWRvd1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dSb290PiwgRXhjZXB0
aW9uQ29kZSYpOworICAgIC8vIEZJWE1FOiBSZW1vdmUgRWxlbWVudDo6ZW5zdXJlU2hhZG93Um9v
dAorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzYwOAog
ICAgIFNoYWRvd1Jvb3QqIGVuc3VyZVNoYWRvd1Jvb3QoKTsKLSAgICB2b2lkIHJlbW92ZVNoYWRv
d1Jvb3QoKTsKIAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9J
ZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0U2hhZG93UHNldWRvSWQoY29uc3QgQXRvbWljU3RyaW5n
JiwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50UmFyZURhdGEuaAppbmRleCA0NWQ4OWQ1YTFiMzY4NmRjNDljODNhNWU4YjFiM2IyYjNh
M2NkYTVmLi4xMWM4MjU3OTMyOTRmODI2NWVhNThjZTE1MzczZjQzZTYzYzIyMDlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCkBAIC02NCwxMSArNjQsMTEgQEAgcHVibGljOgog
CiAgICAgTGF5b3V0U2l6ZSBtX21pbmltdW1TaXplRm9yUmVzaXppbmc7CiAgICAgUmVmUHRyPFJl
bmRlclN0eWxlPiBtX2NvbXB1dGVkU3R5bGU7Ci0gICAgU2hhZG93VHJlZSBtX3NoYWRvd1RyZWU7
CiAgICAgQXRvbWljU3RyaW5nIG1fc2hhZG93UHNldWRvSWQ7CiAKICAgICBPd25QdHI8RGF0YXNl
dERPTVN0cmluZ01hcD4gbV9kYXRhc2V0RE9NU3RyaW5nTWFwOwogICAgIE93blB0cjxDbGFzc0xp
c3Q+IG1fY2xhc3NMaXN0OworICAgIE93blB0cjxTaGFkb3dUcmVlPiBtX3NoYWRvd1RyZWU7CiAK
ICAgICBib29sIG1fc3R5bGVBZmZlY3RlZEJ5RW1wdHk7CiAKQEAgLTk0LDcgKzk0LDcgQEAgaW5s
aW5lIEVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVEYXRhKCkKIAogaW5saW5lIEVsZW1lbnRS
YXJlRGF0YTo6fkVsZW1lbnRSYXJlRGF0YSgpCiB7Ci0gICAgQVNTRVJUKCFtX3NoYWRvd1RyZWUu
aGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIW1fc2hhZG93VHJlZSk7CiB9CiAKIGlubGlu
ZSB2b2lkIEVsZW1lbnRSYXJlRGF0YTo6cmVzZXRDb21wdXRlZFN0eWxlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290LmNwcAppbmRleCBjMTZjODU5ZjVhZWJiOTBlZDA3NTRiNWI2ZmI3ZjBlNzZmNDY1
NmNiLi5jYjlkOGMzMGNkODBiOTk0ZDIyZjEyNGVlNWExMDgxZGU3NDQyODRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgUGFzc1JlZlB0cjxTaGFkb3dS
b290PiBTaGFkb3dSb290OjpjcmVhdGUoRWxlbWVudCogZWxlbWVudCwgU2hhZG93Um9vdENyZWF0
aW9uUHUKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gc2hhZG93Um9vdCA9IGFkb3B0UmVmKG5ldyBT
aGFkb3dSb290KGVsZW1lbnQtPmRvY3VtZW50KCkpKTsKIAogICAgIGVjID0gMDsKLSAgICBlbGVt
ZW50LT5zZXRTaGFkb3dSb290KHNoYWRvd1Jvb3QsIGVjKTsKKyAgICBlbGVtZW50LT5lbnN1cmVT
aGFkb3dUcmVlKCktPmFkZFNoYWRvd1Jvb3QoZWxlbWVudCwgc2hhZG93Um9vdCwgZWMpOwogICAg
IGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAgICAgQVNTRVJUKGVsZW1lbnQgPT0gc2hhZG93
Um9vdC0+aG9zdCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmNwcAppbmRleCBmMWM2ODI2NWE2
ZmI0YTAxYzNhODBjNmZmZmU2NzU4YzIxNmI5YjczLi4yMTk2MTZmOWJmMTNhNGNmZjA5MjE5ODY2
ZGYzZjY1MTg3NTMyMjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJl
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuY3BwCkBAIC00MywyNyAr
NDMsODIgQEAgU2hhZG93VHJlZTo6U2hhZG93VHJlZSgpCiAKIFNoYWRvd1RyZWU6On5TaGFkb3dU
cmVlKCkKIHsKLSAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3QoKSk7CisgICAgaWYgKGhhc1NoYWRv
d1Jvb3QoKSkKKyAgICAgICAgcmVtb3ZlQWxsU2hhZG93Um9vdHMoKTsKIH0KIAotdm9pZCBTaGFk
b3dUcmVlOjpwdXNoU2hhZG93Um9vdChTaGFkb3dSb290KiBzaGFkb3dSb290KQorc3RhdGljIGJv
b2wgdmFsaWRhdGVTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCwgU2hhZG93Um9vdCogc2hh
ZG93Um9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgaWYgKCFzaGFkb3dSb290KQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChzaGFkb3dSb290LT5zaGFkb3dIb3N0KCkpIHsK
KyAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisKKyAgICBpZiAoc2hhZG93Um9vdC0+ZG9jdW1lbnQoKSAhPSBkb2N1bWVudCkg
eworICAgICAgICBlYyA9IFdST05HX0RPQ1VNRU5UX0VSUjsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFNoYWRvd1RyZWU6OmFkZFNo
YWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBzaGFkb3dSb290
LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBBU1NFUlQoaG9zdCk7CisgICAgQVNTRVJUKHNo
YWRvd1Jvb3QpOwogI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIGlmICghUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6bXVsdGlwbGVTaGFkb3dTdWJ0cmVlc0VuYWJsZWQoKSkKLSAgICAgICAgQVNT
RVJUKCFoYXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpIHx8IFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6Om11bHRpcGxlU2hhZG93U3VidHJlZXNFbmFibGVkKCkpOwog
I2Vsc2UKICAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3QoKSk7CiAjZW5kaWYKIAotICAgIG1fc2hh
ZG93Um9vdHMucHVzaChzaGFkb3dSb290KTsKKyAgICBpZiAoIXZhbGlkYXRlU2hhZG93Um9vdCho
b3N0LT5kb2N1bWVudCgpLCBzaGFkb3dSb290LmdldCgpLCBlYykpCisgICAgICAgIHJldHVybjsK
KworICAgIHNoYWRvd1Jvb3QtPnNldFNoYWRvd0hvc3QoaG9zdCk7CisKKyAgICBpZiAoaG9zdC0+
aW5Eb2N1bWVudCgpKQorICAgICAgICBzaGFkb3dSb290LT5pbnNlcnRlZEludG9Eb2N1bWVudCgp
OworICAgIGlmIChob3N0LT5hdHRhY2hlZCgpKSB7CisgICAgICAgIHNoYWRvd1Jvb3QtPmxhenlB
dHRhY2goKTsKKyAgICAgICAgZGV0YWNoKCk7CisgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBo
b3N0LT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQor
ICAgICAgICAgICAgY2hpbGQtPmRldGFjaCgpOworICAgIH0KKworICAgIG1fc2hhZG93Um9vdHMu
cHVzaChzaGFkb3dSb290LmdldCgpKTsKIH0KIAotU2hhZG93Um9vdCogU2hhZG93VHJlZTo6cG9w
U2hhZG93Um9vdCgpCit2b2lkIFNoYWRvd1RyZWU6OnJlbW92ZUFsbFNoYWRvd1Jvb3RzKCkKIHsK
ICAgICBpZiAoIWhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJl
dHVybjsKKworICAgIEVsZW1lbnQqIGhvc3QgPSB0aGlzLT5ob3N0KCk7CiAKLSAgICByZXR1cm4g
bV9zaGFkb3dSb290cy5yZW1vdmVIZWFkKCk7CisgICAgd2hpbGUgKFJlZlB0cjxTaGFkb3dSb290
PiBvbGRSb290ID0gbV9zaGFkb3dSb290cy5yZW1vdmVIZWFkKCkpIHsKKyAgICAgICAgaG9zdC0+
ZG9jdW1lbnQoKS0+cmVtb3ZlRm9jdXNlZE5vZGVPZlN1YnRyZWUob2xkUm9vdC5nZXQoKSk7CisK
KyAgICAgICAgaWYgKG9sZFJvb3QtPmF0dGFjaGVkKCkpCisgICAgICAgICAgICBvbGRSb290LT5k
ZXRhY2goKTsKKworICAgICAgICBvbGRSb290LT5zZXRTaGFkb3dIb3N0KDApOworICAgICAgICBo
b3N0LT5kb2N1bWVudCgpLT5hZG9wdElmTmVlZGVkKG9sZFJvb3QuZ2V0KCkpOworICAgICAgICBp
ZiAob2xkUm9vdC0+aW5Eb2N1bWVudCgpKQorICAgICAgICAgICAgb2xkUm9vdC0+cmVtb3ZlZEZy
b21Eb2N1bWVudCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBvbGRSb290LT5yZW1vdmVk
RnJvbVRyZWUodHJ1ZSk7CisgICAgfQorCisgICAgaWYgKGhvc3QtPmF0dGFjaGVkKCkpIHsKKyAg
ICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGhvc3QtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxk
ID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgICAgIGlmICghY2hpbGQtPmF0dGFj
aGVkKCkpCisgICAgICAgICAgICAgICAgY2hpbGQtPmxhenlBdHRhY2goKTsKKyAgICAgICAgfQor
ICAgIH0KIH0KIAogdm9pZCBTaGFkb3dUcmVlOjppbnNlcnRlZEludG9Eb2N1bWVudCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1RyZWUuaAppbmRleCA2ZTM3YTdlZDUxZmYxODNhMjVhODllZTM2ZTk4ODllMDIx
YWVkYTcxLi5hZTQzMGM1MjlkY2EyZWIyZGZmZDlkYWRlMjdlNjhkYzhjY2M2MzAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dUcmVlLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpZm5kZWYgU2hhZG93VHJlZV9o
CiAjZGVmaW5lIFNoYWRvd1RyZWVfaAogCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2lu
Y2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlIDx3dGYvRG91Ymx5TGlua2VkTGlzdC5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDksOCArNTAsOCBAQCBwdWJsaWM6CiAg
ICAgU2hhZG93Um9vdCogeW91bmdlc3RTaGFkb3dSb290KCkgY29uc3Q7CiAgICAgU2hhZG93Um9v
dCogb2xkZXN0U2hhZG93Um9vdCgpIGNvbnN0OwogCi0gICAgdm9pZCBwdXNoU2hhZG93Um9vdChT
aGFkb3dSb290Kik7Ci0gICAgU2hhZG93Um9vdCogcG9wU2hhZG93Um9vdCgpOworICAgIHZvaWQg
YWRkU2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+LCBFeGNl
cHRpb25Db2RlJik7CisgICAgdm9pZCByZW1vdmVBbGxTaGFkb3dSb290cygpOwogCiAgICAgdm9p
ZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwogICAgIHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDRlMDI5MDMyMGUyOTU4NDU0
NWE3NmExMThkOTE2Y2MxNGRhYTM1NGUuLmI0OGY1OTRmOTdhN2UyMWRkYjkwOGE5YzdlY2IwZTBi
ZTZhZGM4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTI0OCw3ICsy
NDgsOCBAQCB2b2lkIEludGVybmFsczo6cmVtb3ZlU2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBF
eGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGhvc3QtPnJl
bW92ZVNoYWRvd1Jvb3QoKTsKKyAgICBpZiAoaG9zdC0+aGFzU2hhZG93Um9vdCgpKQorICAgICAg
ICBob3N0LT5zaGFkb3dUcmVlKCktPnJlbW92ZUFsbFNoYWRvd1Jvb3RzKCk7CiB9CiAKIHZvaWQg
SW50ZXJuYWxzOjpzZXRNdWx0aXBsZVNoYWRvd1N1YnRyZWVzRW5hYmxlZChib29sIGVuYWJsZWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggYTJhNmQzZGFlZTk1MTVkMDNlYmQyNzVkY2Y1NWI2
OTZkZmU0M2I0YS4uYWI5OTY1MzU3NjA0YmNkNTBjMGZiODdjODdhNzQzYzI2YjM0YzkzZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMTc2LDcgKzE3Niw3IEBAIEVYUE9SVFMKICAgICAgICAg
P3BhZ2VARG9jdW1lbnRAV2ViQ29yZUBAUUJFUEFWUGFnZUAyQFhaCiAgICAgICAgID9wYWludENv
bnRyb2xUaW50c0BGcmFtZVZpZXdAV2ViQ29yZUBAQUFFWFhaCiAgICAgICAgID9yYW5nZUZyb21M
b2NhdGlvbkFuZExlbmd0aEBUZXh0SXRlcmF0b3JAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQdHJA
VlJhbmdlQFdlYkNvcmVAQEBXVEZAQFBBVkVsZW1lbnRAMkBISF9OQFoKLSAgICAgICAgP3JlbW92
ZVNoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQUVYWFoKKyAgICAgICAgP3JlbW92ZUFsbFNo
YWRvd1Jvb3RzQFNoYWRvd1RyZWVAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID9zY3JpcHRFeGVj
dXRpb25Db250ZXh0QEpTRE9NR2xvYmFsT2JqZWN0QFdlYkNvcmVAQFFCRVBBVlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRAMkBYWgogICAgICAgICA/c2Nyb2xsRWxlbWVudFRvUmVjdEBGcmFtZVZpZXdA
V2ViQ29yZUBAUUFFWFBBVkVsZW1lbnRAMkBBQlZJbnRSZWN0QDJAQFoKICAgICAgICAgP3NldERP
TUV4Y2VwdGlvbkBXZWJDb3JlQEBZQVhQQVZFeGVjU3RhdGVASlNDQEBIQFoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCBmZmIwYzc1N2IyOWI4Yzk1NDBjN2U1ZGRhMDNjMjc5
NjEwZTgzNGFhLi5iOTM5MmQ4NzkzNDAyOGYwMjMwZjEyYjNjNWY0OTQzNjdkMTcwMGIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNl
L1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCkBAIC0xNjksNyArMTY5LDcgQEAgRVhQT1JU
UwogICAgICAgICA/cGFnZUBEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZQYWdlQDJAWFoKICAgICAg
ICAgP3BhaW50Q29udHJvbFRpbnRzQEZyYW1lVmlld0BXZWJDb3JlQEBBQUVYWFoKICAgICAgICAg
P3JhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoQFRleHRJdGVyYXRvckBXZWJDb3JlQEBTQT9BVj8k
UGFzc1JlZlB0ckBWUmFuZ2VAV2ViQ29yZUBAQFdURkBAUEFWRWxlbWVudEAyQEhIX05AWgotICAg
ICAgICA/cmVtb3ZlU2hhZG93Um9vdEBFbGVtZW50QFdlYkNvcmVAQFFBRVhYWgorICAgICAgICA/
cmVtb3ZlQWxsU2hhZG93Um9vdHNAU2hhZG93VHJlZUBXZWJDb3JlQEBRQUVYWFoKICAgICAgICAg
P3NjcmlwdEV4ZWN1dGlvbkNvbnRleHRASlNET01HbG9iYWxPYmplY3RAV2ViQ29yZUBAUUJFUEFW
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEAyQFhaCiAgICAgICAgID9zY3JvbGxFbGVtZW50VG9SZWN0
QEZyYW1lVmlld0BXZWJDb3JlQEBRQUVYUEFWRWxlbWVudEAyQEFCVkludFJlY3RAMkBAWgogICAg
ICAgICA/c2V0RE9NRXhjZXB0aW9uQFdlYkNvcmVAQFlBWFBBVkV4ZWNTdGF0ZUBKU0NAQEhAWgpk
aWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlciBiL1NvdXJjZS9hdXRv
dG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggMjRhYzhkMDI0YTBiZWJmYzJkY2Y4M2JhMTYwMzlm
N2UzYmVmYjdmOS4uODYzNDhhZGYwMWUwMTAwYmRlMjcxN2M1NTUzYTJkODU5MjE3MDhiOSAxMDA2
NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgorKysgYi9Tb3VyY2UvYXV0
b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC00Miw2ICs0Miw3IEBAIF9aTjdXZWJDb3JlMTB0b0Rv
Y3VtZW50RU4zSlNDN0pTVmFsdWVFOwogX1pON1dlYkNvcmUxMENsaWVudFJlY3RDMUV2OwogX1pO
N1dlYkNvcmUxMENsaWVudFJlY3RDMUVSS05TXzdJbnRSZWN0RTsKIF9aTjdXZWJDb3JlMTBTaGFk
b3dSb290NmNyZWF0ZUVQTlNfN0VsZW1lbnRFUmk7CitfWk43V2ViQ29yZTEwU2hhZG93VHJlZTIw
cmVtb3ZlQWxsU2hhZG93Um9vdHNFdjsKIF9aTjdXZWJDb3JlMTFFdmVudFRhcmdldDE3dG9HZW5l
cmF0ZWRTdHJlYW1FdjsKIF9aTjdXZWJDb3JlMTFFdmVudFRhcmdldDh0b1N0cmVhbUV2OwogX1pO
N1dlYkNvcmUxMlRleHRJdGVyYXRvcjI2cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGhFUE5TXzdF
bGVtZW50RWlpYjsKQEAgLTY2LDcgKzY3LDYgQEAgX1pON1dlYkNvcmU2SlNOb2RlMTBwdXRWaXJ0
dWFsRVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1ZUUKIF9a
TjdXZWJDb3JlNkpTTm9kZTIwdmlzaXRDaGlsZHJlblZpcnR1YWxFUk4zSlNDMTFTbG90VmlzaXRv
ckU7CiBfWk43V2ViQ29yZTZKU05vZGU2c19pbmZvRTsKIF9aTjdXZWJDb3JlNnRvTm9kZUVOM0pT
QzdKU1ZhbHVlRTsKLV9aTjdXZWJDb3JlN0VsZW1lbnQxNnJlbW92ZVNoYWRvd1Jvb3RFdjsKIF9a
TjdXZWJDb3JlN3RvUmFuZ2VFTjNKU0M3SlNWYWx1ZUU7CiBfWk43V2ViQ29yZTlKU0VsZW1lbnQx
MHB1dFZpcnR1YWxFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1Zh
bHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFOwogX1pON1dlYkNvcmU5SlNFbGVtZW50NnNfaW5m
b0U7CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggOTM0NzE3MzE1OGE0
NzNiZmVlYWY5OTMyODIyNWU4MzA3NTkwNzg3Mi4uYjQyZjdjZWNkNTBjZGI3MjUwMmIzNWM0ZjFj
NjlmMTM5YmRiYmYwNSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEyIEBACisyMDEyLTAyLTI3ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBFbGVtZW50OjpyZW1vdmVTaGFkb3dSb290KCkgYW5kIHNldFNo
YWRvd1Jvb3QoKSBzaG91bGQgYmUgbW92ZWQgaW50byBTaGFkb3dUcmVlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzMTMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9hdXRvdG9vbHMvc3lt
Ym9scy5maWx0ZXI6CisKIDIwMTItMDItMjYgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJlbmFtZSBTaGFkb3dSb290TGlzdCB0byBTaGFkb3dUcmVl
Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129189</attachid>
            <date>2012-02-27 22:21:25 -0800</date>
            <delta_ts>2012-02-27 23:05:26 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-78313-20120228152123.patch</filename>
            <type>text/plain</type>
            <size>16592</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjUzNDMxZTcyM2I5ODBm
YjRjNmZkNzI5YmE3YzAzMmFiMDlmYjQ4YS4uZjkyZGEwZTI4N2RhM2FhODk1YjhiOTFmNWYxZGEx
M2E4NGUyYjViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTAyLTI3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBFbGVtZW50Ojpy
ZW1vdmVTaGFkb3dSb290KCkgYW5kIHNldFNoYWRvd1Jvb3QoKSBzaG91bGQgYmUgbW92ZWQgaW50
byBTaGFkb3dUcmVlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzgzMTMKKworICAgICAgICBSZXZpZXdlZCBieSBIYWppbWUgTW9yaXRhLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaXMgZm9yIHJlZmFjdG9yaW5nIFNoYWRvd1RyZWUgcmVsYXRlZCBjb2Rl
LgorICAgICAgICAgICgxKSBFbGVtZW50OjpyZW1vdmVTaGFkb3dSb290KCkgYW5kIEVsZW1lbnQ6
OnNldFNoYWRvd1Jvb3QoKSBhcmUgbW92ZWQgaW50byBTaGFkb3dUcmVlLgorICAgICAgICAgICgy
KSBTaGFkb3dUcmVlIGlzIG5vdyBwdXQgb24gaXRzIG93biBoZWFwLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cywgbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29yZS5leHAu
aW46CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6fkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2hhZG93VHJlZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjplbnN1cmVTaGFkb3dUcmVlKToKKyAgICAgICAgICBF
bnN1cmUgdGhlIGV4aXN0ZW5jZSBvZiBTaGFkb3dUcmVlLiBUaGlzIGRvZXMgbm90IGVuc3VyZSBT
aGFkb3dSb290IGV4aXN0cy4KKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoRWxl
bWVudCk6CisgICAgICAgICogZG9tL0VsZW1lbnRSYXJlRGF0YS5oOgorICAgICAgICAgIE1ha2Vz
IFNoYWRvd1RyZWUgb24gSGVhcC4KKyAgICAgICAgKEVsZW1lbnRSYXJlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6On5FbGVtZW50UmFyZURhdGEpOgorICAgICAgICAq
IGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmNyZWF0
ZSk6CisgICAgICAgICogZG9tL1NoYWRvd1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFs
aWRhdGVTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
U2hhZG93VHJlZTo6YWRkU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dUcmVl
OjpyZW1vdmVBbGxTaGFkb3dSb290cyk6CisgICAgICAgICogZG9tL1NoYWRvd1RyZWUuaDoKKyAg
ICAgICAgKFNoYWRvd1RyZWUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVtb3ZlU2hhZG93Um9vdCk6CisKIDIwMTItMDIt
MjcgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtD
aHJvbWl1bV0gVW5yZXZpZXdlZCBnYXJkZW5pbmcsIGZpeCBjb21waWxlIGVycm9yIGFmdGVyIHIx
MDkwNDMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCA0MjllYTg1Mzc5YWU1NDQxNDYwZTgwNWM0NjRjNTc3OTlkODdk
MjZkLi5hMjg1OTJlMWEyZjlmM2Q5NzIwMTk5NzMwZWFhOTAyYzEwMzYwZGU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDItMjcgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIEVsZW1lbnQ6OnJlbW92ZVNoYWRvd1Jvb3QoKSBhbmQg
c2V0U2hhZG93Um9vdCgpIHNob3VsZCBiZSBtb3ZlZCBpbnRvIFNoYWRvd1RyZWUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODMxMworCisgICAgICAg
IFJldmlld2VkIGJ5IEhhamltZSBNb3JpdGEuCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6
CisgICAgICAgICogd2luL1dlYktpdDJDRkxpdGUuZGVmOgorCiAyMDEyLTAyLTI3ICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTA5
MjQ5OTM+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk3MjUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KaW5kZXggOGIyZDk2ODY5ODY4YmFiZjNkN2E1NjNmNmU2NTIxOWQx
NDBjYzllMi4uMzQ2YTc4ZTZmZDFjNmI4ZjkxMDlkYjZhYTk0MjY2NTQ1YjY3YTM3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KQEAgLTE0Myw2ICsxNDMsNyBAQCBfX1pON1dlYkNvcmUxMEZsb2F0UG9p
bnRDMUVSS05TXzhJbnRQb2ludEUKIF9fWk43V2ViQ29yZTEwSlNEb2N1bWVudDZzX2luZm9FCiBf
X1pON1dlYkNvcmUxME1vdXNlRXZlbnQ2Y3JlYXRlRVJLTjNXVEYxMkF0b21pY1N0cmluZ0VOUzFf
MTBQYXNzUmVmUHRySU5TXzlET01XaW5kb3dFRUVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50RWlO
UzVfSU5TXzROb2RlRUVFCiBfX1pON1dlYkNvcmUxME1vdXNlRXZlbnRDMUVSS04zV1RGMTJBdG9t
aWNTdHJpbmdFYmJOUzFfMTBQYXNzUmVmUHRySU5TXzlET01XaW5kb3dFRUVpaWlpaWJiYmJ0TlM1
X0lOU18xMUV2ZW50VGFyZ2V0RUVFTlM1X0lOU185Q2xpcGJvYXJkRUVFYgorX19aTjdXZWJDb3Jl
MTBTaGFkb3dUcmVlMjByZW1vdmVBbGxTaGFkb3dSb290c0V2CiBfX1pON1dlYkNvcmUxMFNjcm9s
bFZpZXcxN3NldFVzZUZpeGVkTGF5b3V0RWIKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzE4c2V0
Rml4ZWRMYXlvdXRTaXplRVJLTlNfN0ludFNpemVFCiBfX1pON1dlYkNvcmUxMFNjcm9sbFZpZXcy
MHNldENhbkhhdmVTY3JvbGxiYXJzRWIKQEAgLTkxNSw3ICs5MTYsNiBAQCBfX1pON1dlYkNvcmU2
V2lkZ2V0RDJFdgogX19aTjdXZWJDb3JlNnRvTm9kZUVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJD
b3JlN0NvbnNvbGUyMXNob3VsZFByaW50RXhjZXB0aW9uc0V2CiBfX1pON1dlYkNvcmU3Q29uc29s
ZTI0c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zRWIKLV9fWk43V2ViQ29yZTdFbGVtZW50MTZyZW1v
dmVTaGFkb3dSb290RXYKIF9fWk43V2ViQ29yZTdFbGVtZW50MjFib3VuZHNJblJvb3RWaWV3U3Bh
Y2VFdgogX19aTjdXZWJDb3JlN0VsZW1lbnQ5aW5uZXJUZXh0RXYKIF9fWk43V2ViQ29yZTdJbnRS
ZWN0NXNjYWxlRWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA4OTZlYWJiNTY3ODM3MWEyODJl
ODdiOGY1MmM3ZTMxZGI5MjI1ZGE5Li41Y2Y3MGI1OTI2ZmQxMTBiNWZlMDI0YWJiMmEwZmYxYTNm
ZTc1NjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMjIsNyArMTIyLDggQEAgUGFzc1Jl
ZlB0cjxFbGVtZW50PiBFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQqIGRvY3UKIAogRWxlbWVudDo6fkVsZW1lbnQoKQogewotICAgIHJlbW92ZVNo
YWRvd1Jvb3QoKTsKKyAgICBpZiAoc2hhZG93VHJlZSgpKQorICAgICAgICByYXJlRGF0YSgpLT5t
X3NoYWRvd1RyZWUuY2xlYXIoKTsKICAgICBpZiAobV9hdHRyaWJ1dGVNYXApCiAgICAgICAgIG1f
YXR0cmlidXRlTWFwLT5kZXRhY2hGcm9tRWxlbWVudCgpOwogfQpAQCAtMTE2MSw0NyArMTE2Miwx
NiBAQCBTaGFkb3dUcmVlKiBFbGVtZW50OjpzaGFkb3dUcmVlKCkgY29uc3QKICAgICBpZiAoIWhh
c1JhcmVEYXRhKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuICZyYXJlRGF0YSgp
LT5tX3NoYWRvd1RyZWU7CisgICAgcmV0dXJuIHJhcmVEYXRhKCktPm1fc2hhZG93VHJlZS5nZXQo
KTsKIH0KIAotc3RhdGljIGJvb2wgdmFsaWRhdGVTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVu
dCwgU2hhZG93Um9vdCogc2hhZG93Um9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCitTaGFkb3dUcmVl
KiBFbGVtZW50OjplbnN1cmVTaGFkb3dUcmVlKCkKIHsKLSAgICBpZiAoIXNoYWRvd1Jvb3QpCi0g
ICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgaWYgKHNoYWRvd1Jvb3QtPnNoYWRvd0hvc3QoKSkg
ewotICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KKyAgICBpZiAoU2hhZG93VHJlZSogdHJlZSA9IGVuc3VyZVJhcmVEYXRhKCkt
Pm1fc2hhZG93VHJlZS5nZXQoKSkKKyAgICAgICAgcmV0dXJuIHRyZWU7CiAKLSAgICBpZiAoc2hh
ZG93Um9vdC0+ZG9jdW1lbnQoKSAhPSBkb2N1bWVudCkgewotICAgICAgICBlYyA9IFdST05HX0RP
Q1VNRU5UX0VSUjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHJldHVybiB0
cnVlOwotfQotCi12b2lkIEVsZW1lbnQ6OnNldFNoYWRvd1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dS
b290PiBzaGFkb3dSb290LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIXZhbGlkYXRl
U2hhZG93Um9vdChkb2N1bWVudCgpLCBzaGFkb3dSb290LmdldCgpLCBlYykpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGlmICghaGFzUmFyZURhdGEoKSkKLSAgICAgICAgZW5zdXJlUmFyZURhdGEo
KTsKLQotICAgIHJlbW92ZVNoYWRvd1Jvb3QoKTsKLQotICAgIHNoYWRvd1Jvb3QtPnNldFNoYWRv
d0hvc3QodGhpcyk7Ci0gICAgc2hhZG93VHJlZSgpLT5wdXNoU2hhZG93Um9vdChzaGFkb3dSb290
LmdldCgpKTsKLQotICAgIGlmIChpbkRvY3VtZW50KCkpCi0gICAgICAgIHNoYWRvd1Jvb3QtPmlu
c2VydGVkSW50b0RvY3VtZW50KCk7Ci0gICAgaWYgKGF0dGFjaGVkKCkpIHsKLSAgICAgICAgc2hh
ZG93Um9vdC0+bGF6eUF0dGFjaCgpOwotICAgICAgICBmb3IgKE5vZGUqIGNoaWxkID0gZmlyc3RD
aGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgICAg
IGNoaWxkLT5kZXRhY2goKTsKLSAgICB9CisgICAgcmFyZURhdGEoKS0+bV9zaGFkb3dUcmVlID0g
YWRvcHRQdHIobmV3IFNoYWRvd1RyZWUoKSk7CisgICAgcmV0dXJuIHJhcmVEYXRhKCktPm1fc2hh
ZG93VHJlZS5nZXQoKTsKIH0KIAogU2hhZG93Um9vdCogRWxlbWVudDo6ZW5zdXJlU2hhZG93Um9v
dCgpCkBAIC0xMjEyLDMyICsxMTgyLDYgQEAgU2hhZG93Um9vdCogRWxlbWVudDo6ZW5zdXJlU2hh
ZG93Um9vdCgpCiAgICAgcmV0dXJuIFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290
OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpLmdldCgpOwogfQogCi12b2lkIEVsZW1lbnQ6
OnJlbW92ZVNoYWRvd1Jvb3QoKQotewotICAgIGlmICghaGFzU2hhZG93Um9vdCgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICB3aGlsZSAoUmVmUHRyPFNoYWRvd1Jvb3Q+IG9sZFJvb3QgPSBzaGFk
b3dUcmVlKCktPnBvcFNoYWRvd1Jvb3QoKSkgewotICAgICAgICBkb2N1bWVudCgpLT5yZW1vdmVG
b2N1c2VkTm9kZU9mU3VidHJlZShvbGRSb290LmdldCgpKTsKLQotICAgICAgICBpZiAob2xkUm9v
dC0+YXR0YWNoZWQoKSkKLSAgICAgICAgICAgIG9sZFJvb3QtPmRldGFjaCgpOwotCi0gICAgICAg
IG9sZFJvb3QtPnNldFNoYWRvd0hvc3QoMCk7Ci0gICAgICAgIGRvY3VtZW50KCktPmFkb3B0SWZO
ZWVkZWQob2xkUm9vdC5nZXQoKSk7Ci0gICAgICAgIGlmIChvbGRSb290LT5pbkRvY3VtZW50KCkp
Ci0gICAgICAgICAgICBvbGRSb290LT5yZW1vdmVkRnJvbURvY3VtZW50KCk7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIG9sZFJvb3QtPnJlbW92ZWRGcm9tVHJlZSh0cnVlKTsKLSAgICAgICAg
aWYgKGF0dGFjaGVkKCkpIHsKLSAgICAgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBmaXJzdENo
aWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFjaGlsZC0+YXR0YWNoZWQoKSkKLSAgICAgICAgICAgICAgICAgICAgY2hpbGQt
PmxhenlBdHRhY2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLX0KLQogY29u
c3QgQXRvbWljU3RyaW5nJiBFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGhhc1JhcmVEYXRhKCkgPyByYXJlRGF0YSgpLT5tX3NoYWRvd1BzZXVkb0lkIDogbnVs
bEF0b207CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA0YTlmMTViMmVlZGI0ZjY3NDU2MjhlZDljYTEw
NzBhZjNjMDM0YmFlLi5jMjMxY2JlNzE5OWNlYjgzNWFlODZjYTI4MGZhYzhkNmZjOWMxNmI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmgKQEAgLTI1NSwxMiArMjU1LDExIEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgaGFzU2hhZG93Um9vdCgpIGNvbnN0OwogICAgIFNoYWRvd1RyZWUqIHNoYWRvd1RyZWUoKSBj
b25zdDsKKyAgICBTaGFkb3dUcmVlKiBlbnN1cmVTaGFkb3dUcmVlKCk7CiAKLSAgICAvLyBGSVhN
RTogVGhlc2UgQVBJIHdpbGwgYmUgbW92ZWQgdG8gU2hhZG93VHJlZS4KLSAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzMTMKLSAgICB2b2lkIHNldFNoYWRv
d1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dSb290PiwgRXhjZXB0aW9uQ29kZSYpOworICAgIC8vIEZJ
WE1FOiBSZW1vdmUgRWxlbWVudDo6ZW5zdXJlU2hhZG93Um9vdAorICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzYwOAogICAgIFNoYWRvd1Jvb3QqIGVuc3Vy
ZVNoYWRvd1Jvb3QoKTsKLSAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoKTsKIAogICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OwogICAgIHZvaWQg
c2V0U2hhZG93UHNldWRvSWQoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYgPSBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRl
eCA0NWQ4OWQ1YTFiMzY4NmRjNDljODNhNWU4YjFiM2IyYjNhM2NkYTVmLi4xMWM4MjU3OTMyOTRm
ODI2NWVhNThjZTE1MzczZjQzZTYzYzIyMDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJl
RGF0YS5oCkBAIC02NCwxMSArNjQsMTEgQEAgcHVibGljOgogCiAgICAgTGF5b3V0U2l6ZSBtX21p
bmltdW1TaXplRm9yUmVzaXppbmc7CiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX2NvbXB1dGVk
U3R5bGU7Ci0gICAgU2hhZG93VHJlZSBtX3NoYWRvd1RyZWU7CiAgICAgQXRvbWljU3RyaW5nIG1f
c2hhZG93UHNldWRvSWQ7CiAKICAgICBPd25QdHI8RGF0YXNldERPTVN0cmluZ01hcD4gbV9kYXRh
c2V0RE9NU3RyaW5nTWFwOwogICAgIE93blB0cjxDbGFzc0xpc3Q+IG1fY2xhc3NMaXN0OworICAg
IE93blB0cjxTaGFkb3dUcmVlPiBtX3NoYWRvd1RyZWU7CiAKICAgICBib29sIG1fc3R5bGVBZmZl
Y3RlZEJ5RW1wdHk7CiAKQEAgLTk0LDcgKzk0LDcgQEAgaW5saW5lIEVsZW1lbnRSYXJlRGF0YTo6
RWxlbWVudFJhcmVEYXRhKCkKIAogaW5saW5lIEVsZW1lbnRSYXJlRGF0YTo6fkVsZW1lbnRSYXJl
RGF0YSgpCiB7Ci0gICAgQVNTRVJUKCFtX3NoYWRvd1RyZWUuaGFzU2hhZG93Um9vdCgpKTsKKyAg
ICBBU1NFUlQoIW1fc2hhZG93VHJlZSk7CiB9CiAKIGlubGluZSB2b2lkIEVsZW1lbnRSYXJlRGF0
YTo6cmVzZXRDb21wdXRlZFN0eWxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCBj
MTZjODU5ZjVhZWJiOTBlZDA3NTRiNWI2ZmI3ZjBlNzZmNDY1NmNiLi5jYjlkOGMzMGNkODBiOTk0
ZDIyZjEyNGVlNWExMDgxZGU3NDQyODRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBA
IC0xMjMsNyArMTIzLDcgQEAgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBTaGFkb3dSb290OjpjcmVh
dGUoRWxlbWVudCogZWxlbWVudCwgU2hhZG93Um9vdENyZWF0aW9uUHUKICAgICBSZWZQdHI8U2hh
ZG93Um9vdD4gc2hhZG93Um9vdCA9IGFkb3B0UmVmKG5ldyBTaGFkb3dSb290KGVsZW1lbnQtPmRv
Y3VtZW50KCkpKTsKIAogICAgIGVjID0gMDsKLSAgICBlbGVtZW50LT5zZXRTaGFkb3dSb290KHNo
YWRvd1Jvb3QsIGVjKTsKKyAgICBlbGVtZW50LT5lbnN1cmVTaGFkb3dUcmVlKCktPmFkZFNoYWRv
d1Jvb3QoZWxlbWVudCwgc2hhZG93Um9vdCwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgQVNTRVJUKGVsZW1lbnQgPT0gc2hhZG93Um9vdC0+aG9zdCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dUcmVlLmNwcAppbmRleCBmMDQ2YzNmMDA1MmZmNGRlNGYzODExMDdiYTZhN2Mx
NzkxMTFmMjhlLi5mZWZjZGY2OTI0NzlmZDc0ODJhZGJiMDhkYTYyODhlMjRmZTc5MTI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1RyZWUuY3BwCkBAIC00NCwyOSArNDQsODQgQEAgU2hhZG93VHJlZTo6
U2hhZG93VHJlZSgpCiAKIFNoYWRvd1RyZWU6On5TaGFkb3dUcmVlKCkKIHsKLSAgICBBU1NFUlQo
IWhhc1NoYWRvd1Jvb3QoKSk7CisgICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmVt
b3ZlQWxsU2hhZG93Um9vdHMoKTsKK30KKworc3RhdGljIGJvb2wgdmFsaWRhdGVTaGFkb3dSb290
KERvY3VtZW50KiBkb2N1bWVudCwgU2hhZG93Um9vdCogc2hhZG93Um9vdCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgaWYgKCFzaGFkb3dSb290KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwor
ICAgIGlmIChzaGFkb3dSb290LT5zaGFkb3dIb3N0KCkpIHsKKyAgICAgICAgZWMgPSBISUVSQVJD
SFlfUkVRVUVTVF9FUlI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAo
c2hhZG93Um9vdC0+ZG9jdW1lbnQoKSAhPSBkb2N1bWVudCkgeworICAgICAgICBlYyA9IFdST05H
X0RPQ1VNRU5UX0VSUjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIFNoYWRvd1RyZWU6OnB1c2hTaGFkb3dSb290KFNoYWRvd1Jvb3Qq
IHNoYWRvd1Jvb3QpCit2b2lkIFNoYWRvd1RyZWU6OmFkZFNoYWRvd1Jvb3QoRWxlbWVudCogaG9z
dCwgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBzaGFkb3dSb290LCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKKyAgICBBU1NFUlQoaG9zdCk7CisgICAgQVNTRVJUKHNoYWRvd1Jvb3QpOwogI2lmIEVOQUJM
RShTSEFET1dfRE9NKQotICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6bXVsdGlwbGVT
aGFkb3dTdWJ0cmVlc0VuYWJsZWQoKSkKLSAgICAgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkp
OworICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpIHx8IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
Om11bHRpcGxlU2hhZG93U3VidHJlZXNFbmFibGVkKCkpOwogI2Vsc2UKICAgICBBU1NFUlQoIWhh
c1NoYWRvd1Jvb3QoKSk7CiAjZW5kaWYKIAotICAgIG1fc2hhZG93Um9vdHMucHVzaChzaGFkb3dS
b290KTsKKyAgICBpZiAoIXZhbGlkYXRlU2hhZG93Um9vdChob3N0LT5kb2N1bWVudCgpLCBzaGFk
b3dSb290LmdldCgpLCBlYykpCisgICAgICAgIHJldHVybjsKKworICAgIHNoYWRvd1Jvb3QtPnNl
dFNoYWRvd0hvc3QoaG9zdCk7CisKKyAgICBpZiAoaG9zdC0+aW5Eb2N1bWVudCgpKQorICAgICAg
ICBzaGFkb3dSb290LT5pbnNlcnRlZEludG9Eb2N1bWVudCgpOworICAgIGlmIChob3N0LT5hdHRh
Y2hlZCgpKSB7CisgICAgICAgIHNoYWRvd1Jvb3QtPmxhenlBdHRhY2goKTsKKyAgICAgICAgZGV0
YWNoKCk7CisgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBob3N0LT5maXJzdENoaWxkKCk7IGNo
aWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQorICAgICAgICAgICAgY2hpbGQtPmRl
dGFjaCgpOworICAgIH0KKworICAgIG1fc2hhZG93Um9vdHMucHVzaChzaGFkb3dSb290LmdldCgp
KTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFB1c2hTaGFkb3dSb290KGhvc3Qo
KSwgc2hhZG93Um9vdCk7CiB9CiAKLVNoYWRvd1Jvb3QqIFNoYWRvd1RyZWU6OnBvcFNoYWRvd1Jv
b3QoKQordm9pZCBTaGFkb3dUcmVlOjpyZW1vdmVBbGxTaGFkb3dSb290cygpCiB7CiAgICAgaWYg
KCFoYXNTaGFkb3dSb290KCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm47CisK
KyAgICBFbGVtZW50KiBob3N0ID0gdGhpcy0+aG9zdCgpOwogCiAgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsUG9wU2hhZG93Um9vdChob3N0KCksIG1fc2hhZG93Um9vdHMuaGVhZCgp
KTsKLSAgICByZXR1cm4gbV9zaGFkb3dSb290cy5yZW1vdmVIZWFkKCk7CisgICAgd2hpbGUgKFJl
ZlB0cjxTaGFkb3dSb290PiBvbGRSb290ID0gbV9zaGFkb3dSb290cy5yZW1vdmVIZWFkKCkpIHsK
KyAgICAgICAgaG9zdC0+ZG9jdW1lbnQoKS0+cmVtb3ZlRm9jdXNlZE5vZGVPZlN1YnRyZWUob2xk
Um9vdC5nZXQoKSk7CisKKyAgICAgICAgaWYgKG9sZFJvb3QtPmF0dGFjaGVkKCkpCisgICAgICAg
ICAgICBvbGRSb290LT5kZXRhY2goKTsKKworICAgICAgICBvbGRSb290LT5zZXRTaGFkb3dIb3N0
KDApOworICAgICAgICBob3N0LT5kb2N1bWVudCgpLT5hZG9wdElmTmVlZGVkKG9sZFJvb3QuZ2V0
KCkpOworICAgICAgICBpZiAob2xkUm9vdC0+aW5Eb2N1bWVudCgpKQorICAgICAgICAgICAgb2xk
Um9vdC0+cmVtb3ZlZEZyb21Eb2N1bWVudCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBv
bGRSb290LT5yZW1vdmVkRnJvbVRyZWUodHJ1ZSk7CisgICAgfQorCisgICAgaWYgKGhvc3QtPmF0
dGFjaGVkKCkpIHsKKyAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGhvc3QtPmZpcnN0Q2hpbGQo
KTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgICAgIGlm
ICghY2hpbGQtPmF0dGFjaGVkKCkpCisgICAgICAgICAgICAgICAgY2hpbGQtPmxhenlBdHRhY2go
KTsKKyAgICAgICAgfQorICAgIH0KIH0KIAogdm9pZCBTaGFkb3dUcmVlOjppbnNlcnRlZEludG9E
b2N1bWVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuaAppbmRleCA2ZTM3YTdlZDUxZmYxODNhMjVh
ODllZTM2ZTk4ODllMDIxYWVkYTcxLi5hZTQzMGM1MjlkY2EyZWIyZGZmZDlkYWRlMjdlNjhkYzhj
Y2M2MzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpZm5k
ZWYgU2hhZG93VHJlZV9oCiAjZGVmaW5lIFNoYWRvd1RyZWVfaAogCisjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlIDx3dGYvRG91Ymx5
TGlua2VkTGlzdC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDksOCArNTAs
OCBAQCBwdWJsaWM6CiAgICAgU2hhZG93Um9vdCogeW91bmdlc3RTaGFkb3dSb290KCkgY29uc3Q7
CiAgICAgU2hhZG93Um9vdCogb2xkZXN0U2hhZG93Um9vdCgpIGNvbnN0OwogCi0gICAgdm9pZCBw
dXNoU2hhZG93Um9vdChTaGFkb3dSb290Kik7Ci0gICAgU2hhZG93Um9vdCogcG9wU2hhZG93Um9v
dCgpOworICAgIHZvaWQgYWRkU2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBQYXNzUmVmUHRyPFNo
YWRvd1Jvb3Q+LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCByZW1vdmVBbGxTaGFkb3dSb290
cygpOwogCiAgICAgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwogICAgIHZvaWQgcmVtb3Zl
ZEZyb21Eb2N1bWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDRl
MDI5MDMyMGUyOTU4NDU0NWE3NmExMThkOTE2Y2MxNGRhYTM1NGUuLmI0OGY1OTRmOTdhN2UyMWRk
YjkwOGE5YzdlY2IwZTBiZTZhZGM4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKQEAgLTI0OCw3ICsyNDgsOCBAQCB2b2lkIEludGVybmFsczo6cmVtb3ZlU2hhZG93Um9vdChF
bGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGhvc3QtPnJlbW92ZVNoYWRvd1Jvb3QoKTsKKyAgICBpZiAoaG9zdC0+aGFzU2hhZG93
Um9vdCgpKQorICAgICAgICBob3N0LT5zaGFkb3dUcmVlKCktPnJlbW92ZUFsbFNoYWRvd1Jvb3Rz
KCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRNdWx0aXBsZVNoYWRvd1N1YnRyZWVzRW5hYmxl
ZChib29sIGVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5k
ZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggYTJhNmQzZGFlZTk1MTVk
MDNlYmQyNzVkY2Y1NWI2OTZkZmU0M2I0YS4uYWI5OTY1MzU3NjA0YmNkNTBjMGZiODdjODdhNzQz
YzI2YjM0YzkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisr
KyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMTc2LDcgKzE3Niw3IEBAIEVY
UE9SVFMKICAgICAgICAgP3BhZ2VARG9jdW1lbnRAV2ViQ29yZUBAUUJFUEFWUGFnZUAyQFhaCiAg
ICAgICAgID9wYWludENvbnRyb2xUaW50c0BGcmFtZVZpZXdAV2ViQ29yZUBAQUFFWFhaCiAgICAg
ICAgID9yYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aEBUZXh0SXRlcmF0b3JAV2ViQ29yZUBAU0E/
QVY/JFBhc3NSZWZQdHJAVlJhbmdlQFdlYkNvcmVAQEBXVEZAQFBBVkVsZW1lbnRAMkBISF9OQFoK
LSAgICAgICAgP3JlbW92ZVNoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQUVYWFoKKyAgICAg
ICAgP3JlbW92ZUFsbFNoYWRvd1Jvb3RzQFNoYWRvd1RyZWVAV2ViQ29yZUBAUUFFWFhaCiAgICAg
ICAgID9zY3JpcHRFeGVjdXRpb25Db250ZXh0QEpTRE9NR2xvYmFsT2JqZWN0QFdlYkNvcmVAQFFC
RVBBVlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRAMkBYWgogICAgICAgICA/c2Nyb2xsRWxlbWVudFRv
UmVjdEBGcmFtZVZpZXdAV2ViQ29yZUBAUUFFWFBBVkVsZW1lbnRAMkBBQlZJbnRSZWN0QDJAQFoK
ICAgICAgICAgP3NldERPTUV4Y2VwdGlvbkBXZWJDb3JlQEBZQVhQQVZFeGVjU3RhdGVASlNDQEBI
QFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCBmZmIwYzc1N2IyOWI4Yzk1
NDBjN2U1ZGRhMDNjMjc5NjEwZTgzNGFhLi5iOTM5MmQ4NzkzNDAyOGYwMjMwZjEyYjNjNWY0OTQz
NjdkMTcwMGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5k
ZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCkBAIC0xNjksNyAr
MTY5LDcgQEAgRVhQT1JUUwogICAgICAgICA/cGFnZUBEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZQ
YWdlQDJAWFoKICAgICAgICAgP3BhaW50Q29udHJvbFRpbnRzQEZyYW1lVmlld0BXZWJDb3JlQEBB
QUVYWFoKICAgICAgICAgP3JhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoQFRleHRJdGVyYXRvckBX
ZWJDb3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBWUmFuZ2VAV2ViQ29yZUBAQFdURkBAUEFWRWxlbWVu
dEAyQEhIX05AWgotICAgICAgICA/cmVtb3ZlU2hhZG93Um9vdEBFbGVtZW50QFdlYkNvcmVAQFFB
RVhYWgorICAgICAgICA/cmVtb3ZlQWxsU2hhZG93Um9vdHNAU2hhZG93VHJlZUBXZWJDb3JlQEBR
QUVYWFoKICAgICAgICAgP3NjcmlwdEV4ZWN1dGlvbkNvbnRleHRASlNET01HbG9iYWxPYmplY3RA
V2ViQ29yZUBAUUJFUEFWU2NyaXB0RXhlY3V0aW9uQ29udGV4dEAyQFhaCiAgICAgICAgID9zY3Jv
bGxFbGVtZW50VG9SZWN0QEZyYW1lVmlld0BXZWJDb3JlQEBRQUVYUEFWRWxlbWVudEAyQEFCVklu
dFJlY3RAMkBAWgogICAgICAgICA/c2V0RE9NRXhjZXB0aW9uQFdlYkNvcmVAQFlBWFBBVkV4ZWNT
dGF0ZUBKU0NAQEhAWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRl
ciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggMjRhYzhkMDI0YTBiZWJm
YzJkY2Y4M2JhMTYwMzlmN2UzYmVmYjdmOS4uODYzNDhhZGYwMWUwMTAwYmRlMjcxN2M1NTUzYTJk
ODU5MjE3MDhiOSAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgor
KysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC00Miw2ICs0Miw3IEBAIF9a
TjdXZWJDb3JlMTB0b0RvY3VtZW50RU4zSlNDN0pTVmFsdWVFOwogX1pON1dlYkNvcmUxMENsaWVu
dFJlY3RDMUV2OwogX1pON1dlYkNvcmUxMENsaWVudFJlY3RDMUVSS05TXzdJbnRSZWN0RTsKIF9a
TjdXZWJDb3JlMTBTaGFkb3dSb290NmNyZWF0ZUVQTlNfN0VsZW1lbnRFUmk7CitfWk43V2ViQ29y
ZTEwU2hhZG93VHJlZTIwcmVtb3ZlQWxsU2hhZG93Um9vdHNFdjsKIF9aTjdXZWJDb3JlMTFFdmVu
dFRhcmdldDE3dG9HZW5lcmF0ZWRTdHJlYW1FdjsKIF9aTjdXZWJDb3JlMTFFdmVudFRhcmdldDh0
b1N0cmVhbUV2OwogX1pON1dlYkNvcmUxMlRleHRJdGVyYXRvcjI2cmFuZ2VGcm9tTG9jYXRpb25B
bmRMZW5ndGhFUE5TXzdFbGVtZW50RWlpYjsKQEAgLTY2LDcgKzY3LDYgQEAgX1pON1dlYkNvcmU2
SlNOb2RlMTBwdXRWaXJ0dWFsRVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfMTBJZGVudGlmaWVyRU5T
MV83SlNWYWx1ZUUKIF9aTjdXZWJDb3JlNkpTTm9kZTIwdmlzaXRDaGlsZHJlblZpcnR1YWxFUk4z
SlNDMTFTbG90VmlzaXRvckU7CiBfWk43V2ViQ29yZTZKU05vZGU2c19pbmZvRTsKIF9aTjdXZWJD
b3JlNnRvTm9kZUVOM0pTQzdKU1ZhbHVlRTsKLV9aTjdXZWJDb3JlN0VsZW1lbnQxNnJlbW92ZVNo
YWRvd1Jvb3RFdjsKIF9aTjdXZWJDb3JlN3RvUmFuZ2VFTjNKU0M3SlNWYWx1ZUU7CiBfWk43V2Vi
Q29yZTlKU0VsZW1lbnQxMHB1dFZpcnR1YWxFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50
aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFOwogX1pON1dlYkNvcmU5
SlNFbGVtZW50NnNfaW5mb0U7CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5k
ZXggZTVhNWI1MTBkMWMyYWFkMWM2ZGM5MGFjZTQzNTMwNWFiYzhkYTQ0Yy4uNTE2ZTMyZDQ2NzUy
MWZlMWU1YjdlZDM3ZGNhNjgyOWVlYzY5MDIzMSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBi
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTAyLTI3ICBTaGlueWEgS2F3YW5ha2Eg
IDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBFbGVtZW50OjpyZW1vdmVTaGFkb3dS
b290KCkgYW5kIHNldFNoYWRvd1Jvb3QoKSBzaG91bGQgYmUgbW92ZWQgaW50byBTaGFkb3dUcmVl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzMTMK
KworICAgICAgICBSZXZpZXdlZCBieSBIYWppbWUgTW9yaXRhLgorCisgICAgICAgICogU291cmNl
L2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjoKKwogMjAxMi0wMi0yNyAgRGF2ZSBUdSAgPGR0dUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgVXBkYXRlIGZsYWtpbmVzcyBkYXNoYm9hcmQgdW5pdCB0
ZXN0Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129192</attachid>
            <date>2012-02-27 23:05:32 -0800</date>
            <delta_ts>2012-02-27 23:05:32 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-78313-20120228160530.patch</filename>
            <type>text/plain</type>
            <size>16825</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjUzNDMxZTcyM2I5ODBm
YjRjNmZkNzI5YmE3YzAzMmFiMDlmYjQ4YS4uZjkyZGEwZTI4N2RhM2FhODk1YjhiOTFmNWYxZGEx
M2E4NGUyYjViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTAyLTI3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBFbGVtZW50Ojpy
ZW1vdmVTaGFkb3dSb290KCkgYW5kIHNldFNoYWRvd1Jvb3QoKSBzaG91bGQgYmUgbW92ZWQgaW50
byBTaGFkb3dUcmVlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzgzMTMKKworICAgICAgICBSZXZpZXdlZCBieSBIYWppbWUgTW9yaXRhLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaXMgZm9yIHJlZmFjdG9yaW5nIFNoYWRvd1RyZWUgcmVsYXRlZCBjb2Rl
LgorICAgICAgICAgICgxKSBFbGVtZW50OjpyZW1vdmVTaGFkb3dSb290KCkgYW5kIEVsZW1lbnQ6
OnNldFNoYWRvd1Jvb3QoKSBhcmUgbW92ZWQgaW50byBTaGFkb3dUcmVlLgorICAgICAgICAgICgy
KSBTaGFkb3dUcmVlIGlzIG5vdyBwdXQgb24gaXRzIG93biBoZWFwLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cywgbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29yZS5leHAu
aW46CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6fkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2hhZG93VHJlZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjplbnN1cmVTaGFkb3dUcmVlKToKKyAgICAgICAgICBF
bnN1cmUgdGhlIGV4aXN0ZW5jZSBvZiBTaGFkb3dUcmVlLiBUaGlzIGRvZXMgbm90IGVuc3VyZSBT
aGFkb3dSb290IGV4aXN0cy4KKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoRWxl
bWVudCk6CisgICAgICAgICogZG9tL0VsZW1lbnRSYXJlRGF0YS5oOgorICAgICAgICAgIE1ha2Vz
IFNoYWRvd1RyZWUgb24gSGVhcC4KKyAgICAgICAgKEVsZW1lbnRSYXJlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6On5FbGVtZW50UmFyZURhdGEpOgorICAgICAgICAq
IGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmNyZWF0
ZSk6CisgICAgICAgICogZG9tL1NoYWRvd1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFs
aWRhdGVTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
U2hhZG93VHJlZTo6YWRkU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dUcmVl
OjpyZW1vdmVBbGxTaGFkb3dSb290cyk6CisgICAgICAgICogZG9tL1NoYWRvd1RyZWUuaDoKKyAg
ICAgICAgKFNoYWRvd1RyZWUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVtb3ZlU2hhZG93Um9vdCk6CisKIDIwMTItMDIt
MjcgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtD
aHJvbWl1bV0gVW5yZXZpZXdlZCBnYXJkZW5pbmcsIGZpeCBjb21waWxlIGVycm9yIGFmdGVyIHIx
MDkwNDMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCA0MjllYTg1Mzc5YWU1NDQxNDYwZTgwNWM0NjRjNTc3OTlkODdk
MjZkLi5hMjg1OTJlMWEyZjlmM2Q5NzIwMTk5NzMwZWFhOTAyYzEwMzYwZGU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDItMjcgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIEVsZW1lbnQ6OnJlbW92ZVNoYWRvd1Jvb3QoKSBhbmQg
c2V0U2hhZG93Um9vdCgpIHNob3VsZCBiZSBtb3ZlZCBpbnRvIFNoYWRvd1RyZWUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODMxMworCisgICAgICAg
IFJldmlld2VkIGJ5IEhhamltZSBNb3JpdGEuCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6
CisgICAgICAgICogd2luL1dlYktpdDJDRkxpdGUuZGVmOgorCiAyMDEyLTAyLTI3ICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTA5
MjQ5OTM+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk3MjUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KaW5kZXggOGIyZDk2ODY5ODY4YmFiZjNkN2E1NjNmNmU2NTIxOWQx
NDBjYzllMi4uMzQ2YTc4ZTZmZDFjNmI4ZjkxMDlkYjZhYTk0MjY2NTQ1YjY3YTM3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KQEAgLTE0Myw2ICsxNDMsNyBAQCBfX1pON1dlYkNvcmUxMEZsb2F0UG9p
bnRDMUVSS05TXzhJbnRQb2ludEUKIF9fWk43V2ViQ29yZTEwSlNEb2N1bWVudDZzX2luZm9FCiBf
X1pON1dlYkNvcmUxME1vdXNlRXZlbnQ2Y3JlYXRlRVJLTjNXVEYxMkF0b21pY1N0cmluZ0VOUzFf
MTBQYXNzUmVmUHRySU5TXzlET01XaW5kb3dFRUVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50RWlO
UzVfSU5TXzROb2RlRUVFCiBfX1pON1dlYkNvcmUxME1vdXNlRXZlbnRDMUVSS04zV1RGMTJBdG9t
aWNTdHJpbmdFYmJOUzFfMTBQYXNzUmVmUHRySU5TXzlET01XaW5kb3dFRUVpaWlpaWJiYmJ0TlM1
X0lOU18xMUV2ZW50VGFyZ2V0RUVFTlM1X0lOU185Q2xpcGJvYXJkRUVFYgorX19aTjdXZWJDb3Jl
MTBTaGFkb3dUcmVlMjByZW1vdmVBbGxTaGFkb3dSb290c0V2CiBfX1pON1dlYkNvcmUxMFNjcm9s
bFZpZXcxN3NldFVzZUZpeGVkTGF5b3V0RWIKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzE4c2V0
Rml4ZWRMYXlvdXRTaXplRVJLTlNfN0ludFNpemVFCiBfX1pON1dlYkNvcmUxMFNjcm9sbFZpZXcy
MHNldENhbkhhdmVTY3JvbGxiYXJzRWIKQEAgLTkxNSw3ICs5MTYsNiBAQCBfX1pON1dlYkNvcmU2
V2lkZ2V0RDJFdgogX19aTjdXZWJDb3JlNnRvTm9kZUVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJD
b3JlN0NvbnNvbGUyMXNob3VsZFByaW50RXhjZXB0aW9uc0V2CiBfX1pON1dlYkNvcmU3Q29uc29s
ZTI0c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zRWIKLV9fWk43V2ViQ29yZTdFbGVtZW50MTZyZW1v
dmVTaGFkb3dSb290RXYKIF9fWk43V2ViQ29yZTdFbGVtZW50MjFib3VuZHNJblJvb3RWaWV3U3Bh
Y2VFdgogX19aTjdXZWJDb3JlN0VsZW1lbnQ5aW5uZXJUZXh0RXYKIF9fWk43V2ViQ29yZTdJbnRS
ZWN0NXNjYWxlRWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA4OTZlYWJiNTY3ODM3MWEyODJl
ODdiOGY1MmM3ZTMxZGI5MjI1ZGE5Li41Y2Y3MGI1OTI2ZmQxMTBiNWZlMDI0YWJiMmEwZmYxYTNm
ZTc1NjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMjIsNyArMTIyLDggQEAgUGFzc1Jl
ZlB0cjxFbGVtZW50PiBFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQqIGRvY3UKIAogRWxlbWVudDo6fkVsZW1lbnQoKQogewotICAgIHJlbW92ZVNo
YWRvd1Jvb3QoKTsKKyAgICBpZiAoc2hhZG93VHJlZSgpKQorICAgICAgICByYXJlRGF0YSgpLT5t
X3NoYWRvd1RyZWUuY2xlYXIoKTsKICAgICBpZiAobV9hdHRyaWJ1dGVNYXApCiAgICAgICAgIG1f
YXR0cmlidXRlTWFwLT5kZXRhY2hGcm9tRWxlbWVudCgpOwogfQpAQCAtMTE2MSw0NyArMTE2Miwx
NiBAQCBTaGFkb3dUcmVlKiBFbGVtZW50OjpzaGFkb3dUcmVlKCkgY29uc3QKICAgICBpZiAoIWhh
c1JhcmVEYXRhKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuICZyYXJlRGF0YSgp
LT5tX3NoYWRvd1RyZWU7CisgICAgcmV0dXJuIHJhcmVEYXRhKCktPm1fc2hhZG93VHJlZS5nZXQo
KTsKIH0KIAotc3RhdGljIGJvb2wgdmFsaWRhdGVTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVu
dCwgU2hhZG93Um9vdCogc2hhZG93Um9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCitTaGFkb3dUcmVl
KiBFbGVtZW50OjplbnN1cmVTaGFkb3dUcmVlKCkKIHsKLSAgICBpZiAoIXNoYWRvd1Jvb3QpCi0g
ICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgaWYgKHNoYWRvd1Jvb3QtPnNoYWRvd0hvc3QoKSkg
ewotICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KKyAgICBpZiAoU2hhZG93VHJlZSogdHJlZSA9IGVuc3VyZVJhcmVEYXRhKCkt
Pm1fc2hhZG93VHJlZS5nZXQoKSkKKyAgICAgICAgcmV0dXJuIHRyZWU7CiAKLSAgICBpZiAoc2hh
ZG93Um9vdC0+ZG9jdW1lbnQoKSAhPSBkb2N1bWVudCkgewotICAgICAgICBlYyA9IFdST05HX0RP
Q1VNRU5UX0VSUjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHJldHVybiB0
cnVlOwotfQotCi12b2lkIEVsZW1lbnQ6OnNldFNoYWRvd1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dS
b290PiBzaGFkb3dSb290LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIXZhbGlkYXRl
U2hhZG93Um9vdChkb2N1bWVudCgpLCBzaGFkb3dSb290LmdldCgpLCBlYykpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGlmICghaGFzUmFyZURhdGEoKSkKLSAgICAgICAgZW5zdXJlUmFyZURhdGEo
KTsKLQotICAgIHJlbW92ZVNoYWRvd1Jvb3QoKTsKLQotICAgIHNoYWRvd1Jvb3QtPnNldFNoYWRv
d0hvc3QodGhpcyk7Ci0gICAgc2hhZG93VHJlZSgpLT5wdXNoU2hhZG93Um9vdChzaGFkb3dSb290
LmdldCgpKTsKLQotICAgIGlmIChpbkRvY3VtZW50KCkpCi0gICAgICAgIHNoYWRvd1Jvb3QtPmlu
c2VydGVkSW50b0RvY3VtZW50KCk7Ci0gICAgaWYgKGF0dGFjaGVkKCkpIHsKLSAgICAgICAgc2hh
ZG93Um9vdC0+bGF6eUF0dGFjaCgpOwotICAgICAgICBmb3IgKE5vZGUqIGNoaWxkID0gZmlyc3RD
aGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgICAg
IGNoaWxkLT5kZXRhY2goKTsKLSAgICB9CisgICAgcmFyZURhdGEoKS0+bV9zaGFkb3dUcmVlID0g
YWRvcHRQdHIobmV3IFNoYWRvd1RyZWUoKSk7CisgICAgcmV0dXJuIHJhcmVEYXRhKCktPm1fc2hh
ZG93VHJlZS5nZXQoKTsKIH0KIAogU2hhZG93Um9vdCogRWxlbWVudDo6ZW5zdXJlU2hhZG93Um9v
dCgpCkBAIC0xMjEyLDMyICsxMTgyLDYgQEAgU2hhZG93Um9vdCogRWxlbWVudDo6ZW5zdXJlU2hh
ZG93Um9vdCgpCiAgICAgcmV0dXJuIFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290
OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpLmdldCgpOwogfQogCi12b2lkIEVsZW1lbnQ6
OnJlbW92ZVNoYWRvd1Jvb3QoKQotewotICAgIGlmICghaGFzU2hhZG93Um9vdCgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICB3aGlsZSAoUmVmUHRyPFNoYWRvd1Jvb3Q+IG9sZFJvb3QgPSBzaGFk
b3dUcmVlKCktPnBvcFNoYWRvd1Jvb3QoKSkgewotICAgICAgICBkb2N1bWVudCgpLT5yZW1vdmVG
b2N1c2VkTm9kZU9mU3VidHJlZShvbGRSb290LmdldCgpKTsKLQotICAgICAgICBpZiAob2xkUm9v
dC0+YXR0YWNoZWQoKSkKLSAgICAgICAgICAgIG9sZFJvb3QtPmRldGFjaCgpOwotCi0gICAgICAg
IG9sZFJvb3QtPnNldFNoYWRvd0hvc3QoMCk7Ci0gICAgICAgIGRvY3VtZW50KCktPmFkb3B0SWZO
ZWVkZWQob2xkUm9vdC5nZXQoKSk7Ci0gICAgICAgIGlmIChvbGRSb290LT5pbkRvY3VtZW50KCkp
Ci0gICAgICAgICAgICBvbGRSb290LT5yZW1vdmVkRnJvbURvY3VtZW50KCk7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIG9sZFJvb3QtPnJlbW92ZWRGcm9tVHJlZSh0cnVlKTsKLSAgICAgICAg
aWYgKGF0dGFjaGVkKCkpIHsKLSAgICAgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBmaXJzdENo
aWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFjaGlsZC0+YXR0YWNoZWQoKSkKLSAgICAgICAgICAgICAgICAgICAgY2hpbGQt
PmxhenlBdHRhY2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLX0KLQogY29u
c3QgQXRvbWljU3RyaW5nJiBFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGhhc1JhcmVEYXRhKCkgPyByYXJlRGF0YSgpLT5tX3NoYWRvd1BzZXVkb0lkIDogbnVs
bEF0b207CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA0YTlmMTViMmVlZGI0ZjY3NDU2MjhlZDljYTEw
NzBhZjNjMDM0YmFlLi5jMjMxY2JlNzE5OWNlYjgzNWFlODZjYTI4MGZhYzhkNmZjOWMxNmI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmgKQEAgLTI1NSwxMiArMjU1LDExIEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgaGFzU2hhZG93Um9vdCgpIGNvbnN0OwogICAgIFNoYWRvd1RyZWUqIHNoYWRvd1RyZWUoKSBj
b25zdDsKKyAgICBTaGFkb3dUcmVlKiBlbnN1cmVTaGFkb3dUcmVlKCk7CiAKLSAgICAvLyBGSVhN
RTogVGhlc2UgQVBJIHdpbGwgYmUgbW92ZWQgdG8gU2hhZG93VHJlZS4KLSAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzMTMKLSAgICB2b2lkIHNldFNoYWRv
d1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dSb290PiwgRXhjZXB0aW9uQ29kZSYpOworICAgIC8vIEZJ
WE1FOiBSZW1vdmUgRWxlbWVudDo6ZW5zdXJlU2hhZG93Um9vdAorICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzYwOAogICAgIFNoYWRvd1Jvb3QqIGVuc3Vy
ZVNoYWRvd1Jvb3QoKTsKLSAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoKTsKIAogICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OwogICAgIHZvaWQg
c2V0U2hhZG93UHNldWRvSWQoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYgPSBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRl
eCA0NWQ4OWQ1YTFiMzY4NmRjNDljODNhNWU4YjFiM2IyYjNhM2NkYTVmLi4xMWM4MjU3OTMyOTRm
ODI2NWVhNThjZTE1MzczZjQzZTYzYzIyMDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJl
RGF0YS5oCkBAIC02NCwxMSArNjQsMTEgQEAgcHVibGljOgogCiAgICAgTGF5b3V0U2l6ZSBtX21p
bmltdW1TaXplRm9yUmVzaXppbmc7CiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX2NvbXB1dGVk
U3R5bGU7Ci0gICAgU2hhZG93VHJlZSBtX3NoYWRvd1RyZWU7CiAgICAgQXRvbWljU3RyaW5nIG1f
c2hhZG93UHNldWRvSWQ7CiAKICAgICBPd25QdHI8RGF0YXNldERPTVN0cmluZ01hcD4gbV9kYXRh
c2V0RE9NU3RyaW5nTWFwOwogICAgIE93blB0cjxDbGFzc0xpc3Q+IG1fY2xhc3NMaXN0OworICAg
IE93blB0cjxTaGFkb3dUcmVlPiBtX3NoYWRvd1RyZWU7CiAKICAgICBib29sIG1fc3R5bGVBZmZl
Y3RlZEJ5RW1wdHk7CiAKQEAgLTk0LDcgKzk0LDcgQEAgaW5saW5lIEVsZW1lbnRSYXJlRGF0YTo6
RWxlbWVudFJhcmVEYXRhKCkKIAogaW5saW5lIEVsZW1lbnRSYXJlRGF0YTo6fkVsZW1lbnRSYXJl
RGF0YSgpCiB7Ci0gICAgQVNTRVJUKCFtX3NoYWRvd1RyZWUuaGFzU2hhZG93Um9vdCgpKTsKKyAg
ICBBU1NFUlQoIW1fc2hhZG93VHJlZSk7CiB9CiAKIGlubGluZSB2b2lkIEVsZW1lbnRSYXJlRGF0
YTo6cmVzZXRDb21wdXRlZFN0eWxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCBj
MTZjODU5ZjVhZWJiOTBlZDA3NTRiNWI2ZmI3ZjBlNzZmNDY1NmNiLi5jYjlkOGMzMGNkODBiOTk0
ZDIyZjEyNGVlNWExMDgxZGU3NDQyODRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBA
IC0xMjMsNyArMTIzLDcgQEAgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBTaGFkb3dSb290OjpjcmVh
dGUoRWxlbWVudCogZWxlbWVudCwgU2hhZG93Um9vdENyZWF0aW9uUHUKICAgICBSZWZQdHI8U2hh
ZG93Um9vdD4gc2hhZG93Um9vdCA9IGFkb3B0UmVmKG5ldyBTaGFkb3dSb290KGVsZW1lbnQtPmRv
Y3VtZW50KCkpKTsKIAogICAgIGVjID0gMDsKLSAgICBlbGVtZW50LT5zZXRTaGFkb3dSb290KHNo
YWRvd1Jvb3QsIGVjKTsKKyAgICBlbGVtZW50LT5lbnN1cmVTaGFkb3dUcmVlKCktPmFkZFNoYWRv
d1Jvb3QoZWxlbWVudCwgc2hhZG93Um9vdCwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgQVNTRVJUKGVsZW1lbnQgPT0gc2hhZG93Um9vdC0+aG9zdCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dUcmVlLmNwcAppbmRleCBmMDQ2YzNmMDA1MmZmNGRlNGYzODExMDdiYTZhN2Mx
NzkxMTFmMjhlLi4zZWYyNTFiMWQ0NDRjZDE1ZmU0YTQ0MDhlOTMwNTc3NzM5ZjNlNzdhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1RyZWUuY3BwCkBAIC00NCwyOSArNDQsODQgQEAgU2hhZG93VHJlZTo6
U2hhZG93VHJlZSgpCiAKIFNoYWRvd1RyZWU6On5TaGFkb3dUcmVlKCkKIHsKLSAgICBBU1NFUlQo
IWhhc1NoYWRvd1Jvb3QoKSk7CisgICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmVt
b3ZlQWxsU2hhZG93Um9vdHMoKTsKIH0KIAotdm9pZCBTaGFkb3dUcmVlOjpwdXNoU2hhZG93Um9v
dChTaGFkb3dSb290KiBzaGFkb3dSb290KQorc3RhdGljIGJvb2wgdmFsaWRhdGVTaGFkb3dSb290
KERvY3VtZW50KiBkb2N1bWVudCwgU2hhZG93Um9vdCogc2hhZG93Um9vdCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CisgICAgaWYgKCFzaGFkb3dSb290KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwor
ICAgIGlmIChzaGFkb3dSb290LT5zaGFkb3dIb3N0KCkpIHsKKyAgICAgICAgZWMgPSBISUVSQVJD
SFlfUkVRVUVTVF9FUlI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAo
c2hhZG93Um9vdC0+ZG9jdW1lbnQoKSAhPSBkb2N1bWVudCkgeworICAgICAgICBlYyA9IFdST05H
X0RPQ1VNRU5UX0VSUjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVy
biB0cnVlOworfQorCit2b2lkIFNoYWRvd1RyZWU6OmFkZFNoYWRvd1Jvb3QoRWxlbWVudCogc2hh
ZG93SG9zdCwgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBzaGFkb3dSb290LCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyAgICBBU1NFUlQoc2hhZG93SG9zdCk7CisgICAgQVNTRVJUKHNoYWRvd1Jvb3Qp
OwogI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6bXVsdGlwbGVTaGFkb3dTdWJ0cmVlc0VuYWJsZWQoKSkKLSAgICAgICAgQVNTRVJUKCFoYXNT
aGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpIHx8IFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6Om11bHRpcGxlU2hhZG93U3VidHJlZXNFbmFibGVkKCkpOwogI2Vsc2UKICAg
ICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3QoKSk7CiAjZW5kaWYKIAotICAgIG1fc2hhZG93Um9vdHMu
cHVzaChzaGFkb3dSb290KTsKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFB1c2hT
aGFkb3dSb290KGhvc3QoKSwgc2hhZG93Um9vdCk7CisgICAgaWYgKCF2YWxpZGF0ZVNoYWRvd1Jv
b3Qoc2hhZG93SG9zdC0+ZG9jdW1lbnQoKSwgc2hhZG93Um9vdC5nZXQoKSwgZWMpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBzaGFkb3dSb290LT5zZXRTaGFkb3dIb3N0KHNoYWRvd0hvc3QpOwor
CisgICAgaWYgKHNoYWRvd0hvc3QtPmluRG9jdW1lbnQoKSkKKyAgICAgICAgc2hhZG93Um9vdC0+
aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKKyAgICBpZiAoc2hhZG93SG9zdC0+YXR0YWNoZWQoKSkg
eworICAgICAgICBzaGFkb3dSb290LT5sYXp5QXR0YWNoKCk7CisgICAgICAgIGRldGFjaCgpOwor
ICAgICAgICBmb3IgKE5vZGUqIGNoaWxkID0gc2hhZG93SG9zdC0+Zmlyc3RDaGlsZCgpOyBjaGls
ZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgICAgIGNoaWxkLT5kZXRh
Y2goKTsKKyAgICB9CisKKyAgICBtX3NoYWRvd1Jvb3RzLnB1c2goc2hhZG93Um9vdC5nZXQoKSk7
CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQdXNoU2hhZG93Um9vdChzaGFkb3dI
b3N0LCBzaGFkb3dSb290LmdldCgpKTsKIH0KIAotU2hhZG93Um9vdCogU2hhZG93VHJlZTo6cG9w
U2hhZG93Um9vdCgpCit2b2lkIFNoYWRvd1RyZWU6OnJlbW92ZUFsbFNoYWRvd1Jvb3RzKCkKIHsK
ICAgICBpZiAoIWhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJl
dHVybjsKKworICAgIEVsZW1lbnQqIHNoYWRvd0hvc3QgPSBob3N0KCk7CiAKLSAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxQb3BTaGFkb3dSb290KGhvc3QoKSwgbV9zaGFkb3dSb290
cy5oZWFkKCkpOwotICAgIHJldHVybiBtX3NoYWRvd1Jvb3RzLnJlbW92ZUhlYWQoKTsKKyAgICB3
aGlsZSAoUmVmUHRyPFNoYWRvd1Jvb3Q+IG9sZFJvb3QgPSBtX3NoYWRvd1Jvb3RzLnJlbW92ZUhl
YWQoKSkgeworICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQb3BTaGFkb3dS
b290KHNoYWRvd0hvc3QsIG9sZFJvb3QuZ2V0KCkpOworICAgICAgICBzaGFkb3dIb3N0LT5kb2N1
bWVudCgpLT5yZW1vdmVGb2N1c2VkTm9kZU9mU3VidHJlZShvbGRSb290LmdldCgpKTsKKworICAg
ICAgICBpZiAob2xkUm9vdC0+YXR0YWNoZWQoKSkKKyAgICAgICAgICAgIG9sZFJvb3QtPmRldGFj
aCgpOworCisgICAgICAgIG9sZFJvb3QtPnNldFNoYWRvd0hvc3QoMCk7CisgICAgICAgIHNoYWRv
d0hvc3QtPmRvY3VtZW50KCktPmFkb3B0SWZOZWVkZWQob2xkUm9vdC5nZXQoKSk7CisgICAgICAg
IGlmIChvbGRSb290LT5pbkRvY3VtZW50KCkpCisgICAgICAgICAgICBvbGRSb290LT5yZW1vdmVk
RnJvbURvY3VtZW50KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG9sZFJvb3QtPnJlbW92
ZWRGcm9tVHJlZSh0cnVlKTsKKyAgICB9CisKKyAgICBpZiAoc2hhZG93SG9zdC0+YXR0YWNoZWQo
KSkgeworICAgICAgICBmb3IgKE5vZGUqIGNoaWxkID0gc2hhZG93SG9zdC0+Zmlyc3RDaGlsZCgp
OyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgaWYg
KCFjaGlsZC0+YXR0YWNoZWQoKSkKKyAgICAgICAgICAgICAgICBjaGlsZC0+bGF6eUF0dGFjaCgp
OworICAgICAgICB9CisgICAgfQogfQogCiB2b2lkIFNoYWRvd1RyZWU6Omluc2VydGVkSW50b0Rv
Y3VtZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5oCmluZGV4IDZlMzdhN2VkNTFmZjE4M2EyNWE4
OWVlMzZlOTg4OWUwMjFhZWRhNzEuLjkyZTliMTNkOGQ3NzQxZWU1Y2I0MmY3MTQwYTdlZDFhYzYy
NGEwNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuaApAQCAtMjcsNiArMjcsNyBAQAogI2lmbmRl
ZiBTaGFkb3dUcmVlX2gKICNkZWZpbmUgU2hhZG93VHJlZV9oCiAKKyNpbmNsdWRlICJFeGNlcHRp
b25Db2RlLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgPHd0Zi9Eb3VibHlM
aW5rZWRMaXN0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC00OSw4ICs1MCw4
IEBAIHB1YmxpYzoKICAgICBTaGFkb3dSb290KiB5b3VuZ2VzdFNoYWRvd1Jvb3QoKSBjb25zdDsK
ICAgICBTaGFkb3dSb290KiBvbGRlc3RTaGFkb3dSb290KCkgY29uc3Q7CiAKLSAgICB2b2lkIHB1
c2hTaGFkb3dSb290KFNoYWRvd1Jvb3QqKTsKLSAgICBTaGFkb3dSb290KiBwb3BTaGFkb3dSb290
KCk7CisgICAgdm9pZCBhZGRTaGFkb3dSb290KEVsZW1lbnQqIHNoYWRvd0hvc3QsIFBhc3NSZWZQ
dHI8U2hhZG93Um9vdD4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHJlbW92ZUFsbFNoYWRv
d1Jvb3RzKCk7CiAKICAgICB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CiAgICAgdm9pZCBy
ZW1vdmVkRnJvbURvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5k
ZXggNGUwMjkwMzIwZTI5NTg0NTQ1YTc2YTExOGQ5MTZjYzE0ZGFhMzU0ZS4uYjQ4ZjU5NGY5N2E3
ZTIxZGRiOTA4YTljN2VjYjBlMGJlNmFkYzgyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcApAQCAtMjQ4LDcgKzI0OCw4IEBAIHZvaWQgSW50ZXJuYWxzOjpyZW1vdmVTaGFkb3dS
b290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgaG9zdC0+cmVtb3ZlU2hhZG93Um9vdCgpOworICAgIGlmIChob3N0LT5oYXNT
aGFkb3dSb290KCkpCisgICAgICAgIGhvc3QtPnNoYWRvd1RyZWUoKS0+cmVtb3ZlQWxsU2hhZG93
Um9vdHMoKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnNldE11bHRpcGxlU2hhZG93U3VidHJlZXNF
bmFibGVkKGJvb2wgZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgppbmRleCBhMmE2ZDNkYWVl
OTUxNWQwM2ViZDI3NWRjZjU1YjY5NmRmZTQzYjRhLi5hYjk5NjUzNTc2MDRiY2Q1MGMwZmI4N2M4
N2E3NDNjMjZiMzRjOTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5k
ZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCkBAIC0xNzYsNyArMTc2LDcg
QEAgRVhQT1JUUwogICAgICAgICA/cGFnZUBEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZQYWdlQDJA
WFoKICAgICAgICAgP3BhaW50Q29udHJvbFRpbnRzQEZyYW1lVmlld0BXZWJDb3JlQEBBQUVYWFoK
ICAgICAgICAgP3JhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoQFRleHRJdGVyYXRvckBXZWJDb3Jl
QEBTQT9BVj8kUGFzc1JlZlB0ckBWUmFuZ2VAV2ViQ29yZUBAQFdURkBAUEFWRWxlbWVudEAyQEhI
X05AWgotICAgICAgICA/cmVtb3ZlU2hhZG93Um9vdEBFbGVtZW50QFdlYkNvcmVAQFFBRVhYWgor
ICAgICAgICA/cmVtb3ZlQWxsU2hhZG93Um9vdHNAU2hhZG93VHJlZUBXZWJDb3JlQEBRQUVYWFoK
ICAgICAgICAgP3NjcmlwdEV4ZWN1dGlvbkNvbnRleHRASlNET01HbG9iYWxPYmplY3RAV2ViQ29y
ZUBAUUJFUEFWU2NyaXB0RXhlY3V0aW9uQ29udGV4dEAyQFhaCiAgICAgICAgID9zY3JvbGxFbGVt
ZW50VG9SZWN0QEZyYW1lVmlld0BXZWJDb3JlQEBRQUVYUEFWRWxlbWVudEAyQEFCVkludFJlY3RA
MkBAWgogICAgICAgICA/c2V0RE9NRXhjZXB0aW9uQFdlYkNvcmVAQFlBWFBBVkV4ZWNTdGF0ZUBK
U0NAQEhAWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVm
IGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IGZmYjBjNzU3YjI5
YjhjOTU0MGM3ZTVkZGEwM2MyNzk2MTBlODM0YWEuLmI5MzkyZDg3OTM0MDI4ZjAyMzBmMTJiM2M1
ZjQ5NDM2N2QxNzAwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZM
aXRlLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTE2
OSw3ICsxNjksNyBAQCBFWFBPUlRTCiAgICAgICAgID9wYWdlQERvY3VtZW50QFdlYkNvcmVAQFFC
RVBBVlBhZ2VAMkBYWgogICAgICAgICA/cGFpbnRDb250cm9sVGludHNARnJhbWVWaWV3QFdlYkNv
cmVAQEFBRVhYWgogICAgICAgICA/cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGhAVGV4dEl0ZXJh
dG9yQFdlYkNvcmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZSYW5nZUBXZWJDb3JlQEBAV1RGQEBQQVZF
bGVtZW50QDJASEhfTkBaCi0gICAgICAgID9yZW1vdmVTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29y
ZUBAUUFFWFhaCisgICAgICAgID9yZW1vdmVBbGxTaGFkb3dSb290c0BTaGFkb3dUcmVlQFdlYkNv
cmVAQFFBRVhYWgogICAgICAgICA/c2NyaXB0RXhlY3V0aW9uQ29udGV4dEBKU0RPTUdsb2JhbE9i
amVjdEBXZWJDb3JlQEBRQkVQQVZTY3JpcHRFeGVjdXRpb25Db250ZXh0QDJAWFoKICAgICAgICAg
P3Njcm9sbEVsZW1lbnRUb1JlY3RARnJhbWVWaWV3QFdlYkNvcmVAQFFBRVhQQVZFbGVtZW50QDJA
QUJWSW50UmVjdEAyQEBaCiAgICAgICAgID9zZXRET01FeGNlcHRpb25AV2ViQ29yZUBAWUFYUEFW
RXhlY1N0YXRlQEpTQ0BASEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMu
ZmlsdGVyIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCAyNGFjOGQwMjRh
MGJlYmZjMmRjZjgzYmExNjAzOWY3ZTNiZWZiN2Y5Li44NjM0OGFkZjAxZTAxMDBiZGUyNzE3YzU1
NTNhMmQ4NTkyMTcwOGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmls
dGVyCisrKyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTQyLDYgKzQyLDcg
QEAgX1pON1dlYkNvcmUxMHRvRG9jdW1lbnRFTjNKU0M3SlNWYWx1ZUU7CiBfWk43V2ViQ29yZTEw
Q2xpZW50UmVjdEMxRXY7CiBfWk43V2ViQ29yZTEwQ2xpZW50UmVjdEMxRVJLTlNfN0ludFJlY3RF
OwogX1pON1dlYkNvcmUxMFNoYWRvd1Jvb3Q2Y3JlYXRlRVBOU183RWxlbWVudEVSaTsKK19aTjdX
ZWJDb3JlMTBTaGFkb3dUcmVlMjByZW1vdmVBbGxTaGFkb3dSb290c0V2OwogX1pON1dlYkNvcmUx
MUV2ZW50VGFyZ2V0MTd0b0dlbmVyYXRlZFN0cmVhbUV2OwogX1pON1dlYkNvcmUxMUV2ZW50VGFy
Z2V0OHRvU3RyZWFtRXY7CiBfWk43V2ViQ29yZTEyVGV4dEl0ZXJhdG9yMjZyYW5nZUZyb21Mb2Nh
dGlvbkFuZExlbmd0aEVQTlNfN0VsZW1lbnRFaWliOwpAQCAtNjYsNyArNjcsNiBAQCBfWk43V2Vi
Q29yZTZKU05vZGUxMHB1dFZpcnR1YWxFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZp
ZXJFTlMxXzdKU1ZhbHVlRQogX1pON1dlYkNvcmU2SlNOb2RlMjB2aXNpdENoaWxkcmVuVmlydHVh
bEVSTjNKU0MxMVNsb3RWaXNpdG9yRTsKIF9aTjdXZWJDb3JlNkpTTm9kZTZzX2luZm9FOwogX1pO
N1dlYkNvcmU2dG9Ob2RlRU4zSlNDN0pTVmFsdWVFOwotX1pON1dlYkNvcmU3RWxlbWVudDE2cmVt
b3ZlU2hhZG93Um9vdEV2OwogX1pON1dlYkNvcmU3dG9SYW5nZUVOM0pTQzdKU1ZhbHVlRTsKIF9a
TjdXZWJDb3JlOUpTRWxlbWVudDEwcHV0VmlydHVhbEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEw
SWRlbnRpZmllckVOUzFfN0pTVmFsdWVFUk5TMV8xNVB1dFByb3BlcnR5U2xvdEU7CiBfWk43V2Vi
Q29yZTlKU0VsZW1lbnQ2c19pbmZvRTsKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxv
ZwppbmRleCBlNWE1YjUxMGQxYzJhYWQxYzZkYzkwYWNlNDM1MzA1YWJjOGRhNDRjLi41MTZlMzJk
NDY3NTIxZmUxZTViN2VkMzdkY2E2ODI5ZWVjNjkwMjMxIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cK
KysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDItMjcgIFNoaW55YSBLYXdh
bmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEVsZW1lbnQ6OnJlbW92ZVNo
YWRvd1Jvb3QoKSBhbmQgc2V0U2hhZG93Um9vdCgpIHNob3VsZCBiZSBtb3ZlZCBpbnRvIFNoYWRv
d1RyZWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
ODMxMworCisgICAgICAgIFJldmlld2VkIGJ5IEhhamltZSBNb3JpdGEuCisKKyAgICAgICAgKiBT
b3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOgorCiAyMDEyLTAyLTI3ICBEYXZlIFR1ICA8
ZHR1QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVcGRhdGUgZmxha2luZXNzIGRhc2hib2FyZCB1
bml0IHRlc3QuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>