<?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>70883</bug_id>
          
          <creation_ts>2011-10-26 01:22:20 -0700</creation_ts>
          <short_desc>[EFL] Use template functions instead of memory allocation of C functions</short_desc>
          <delta_ts>2011-11-04 21:35:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>68209</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>g.czajkowski</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>leandro</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>490654</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-10-26 01:22:20 -0700</bug_when>
    <thetext>This is a fourth step in order to be more compliant with WebKit coding style. Use memory template functions instead of malloc, calloc and realloc directly. It makes efl port is more close to C++ coding style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492293</commentid>
    <comment_count>1</comment_count>
      <attachid>112826</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-10-28 00:50:25 -0700</bug_when>
    <thetext>Created attachment 112826
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492313</commentid>
    <comment_count>2</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2011-10-28 01:46:37 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=112826&amp;action=review

&gt; Source/WebKit/efl/ChangeLog:3
&gt; +        [EFL}  Use template functions instead of memory allocation of C functions.

} -&gt; ]

&gt; Source/WebKit/efl/ewk/ewk_memory_allocation.h:27
&gt; +

These  templates should be documented as internal ones. See please documentation of private functions in WebKit-EFL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492394</commentid>
    <comment_count>3</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-10-28 05:23:30 -0700</bug_when>
    <thetext>Looking at the patch, I don&apos;t see a real benefit in doing this.

The biggest gain I see here is that one will not need to type &quot;static_cast&quot; all that much. However, it will require everyone to use a weird idiom that, to me, neither looks closer to C++ nor is standard C (which also means newcomers to the code will certainly feel needlessly confused).

An improvement I can think of that is related to this is increasing the use of smart pointers in many functions in ewk, as well as just using new+delete when one is not returning pointers to API users.

The code as it stands should not go in IMHO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492400</commentid>
    <comment_count>4</comment_count>
      <attachid>112826</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-10-28 05:40:09 -0700</bug_when>
    <thetext>Comment on attachment 112826
Patch

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

&gt; Source/WebKit/efl/ewk/ewk_memory_allocation.h:28
&gt; +template &lt;typename struct_type&gt; struct_type* eMalloc(size_t amount = 1)

Shouldn&apos;t these be inlined?

I would just call it enew or so, ie. keep it simple. And call the calling like enew0() like gtk is doing g_new0(). In GTK the realloc method is called g_renew().

&gt; Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp:256
&gt; +    request = eMalloc&lt;Ewk_Tiled_Backing_Store_Pre_Render_Request&gt;(1);

There is no point in writing the 1 here.

eMalloc&lt;Ewk_Tiled_Backing_Store_Pre_Render_Request&gt;()

does the same</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492416</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-10-28 06:35:33 -0700</bug_when>
    <thetext>You are already using glib right? can&apos;t you use the g_new etc?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492429</commentid>
    <comment_count>6</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-10-28 06:54:57 -0700</bug_when>
    <thetext>glib support is optional, and I don&apos;t think it should be required in order to make room for this change. I still favour smart pointers + new/delete wherever possible instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492431</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-10-28 06:55:55 -0700</bug_when>
    <thetext>Sure smart pointers are really the way to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495105</commentid>
    <comment_count>8</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-11-02 17:51:16 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Sure smart pointers are really the way to go.

Hello Kenneth and Kubo,

Sorry for late reply, Recently, I had urgent work. I also think smart pointer is way to go. This is a temporary solution, and I think again this is not to have big benefit. If you agree with my opinion, I&apos;d like to set &quot;RESOLVED LATER&quot; to this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495119</commentid>
    <comment_count>9</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-11-02 18:11:02 -0700</bug_when>
    <thetext>I&apos;d just close it as invalid, unless you intend to retitle the bug report and use it to do something different and unrelated to the original intent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496629</commentid>
    <comment_count>10</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-11-04 21:35:55 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; I&apos;d just close it as invalid, unless you intend to retitle the bug report and use it to do something different and unrelated to the original intent.

Ok, let&apos;s try to make smart pointer. I close this bug as resolved invalid.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112826</attachid>
            <date>2011-10-28 00:50:25 -0700</date>
            <delta_ts>2011-10-28 05:40:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70883-20111028165024.patch</filename>
            <type>text/plain</type>
            <size>20779</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg0MjYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCAzNDdmODJjZjU2
OWUxZDk5MTkxNWQ5NmRmYWQyMTMyOTQwNTgyNjE4Li44NjBjODZjZWM4MDhhMDM1ZmY1YmNlNDVm
NjI2OTdjMDczZmMwOWQwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEt
MTAtMjYgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAg
ICBbRUZMfSAgVXNlIHRlbXBsYXRlIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIG1lbW9yeSBhbGxvY2F0
aW9uIG9mIEMgZnVuY3Rpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzA4ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIGlzIGEgZm91cnRoIHN0ZXAgaW4gb3JkZXIgdG8gYmUgbW9yZSBjb21w
bGlhbnQgd2l0aCBXZWJLaXQgY29kaW5nIHN0eWxlLgorICAgICAgICBVc2UgbWVtb3J5IG1hY3Jv
cyBpbnN0ZWFkIG9mIG1hbGxvYywgY2FsbG9jIGFuZCByZWFsbG9jIGRpcmVjdGx5LiBJdCBtYWtl
cyBlZmwgcG9ydAorICAgICAgICBpcyBtb3JlIGNsb3NlIHRvIEMrKyBjb2Rpbmcgc3R5bGUuCisK
KyAgICAgICAgKiBld2svZXdrX2F1dGhfc291cC5jcHA6CisgICAgICAgICogZXdrL2V3a19jb250
ZXh0bWVudS5jcHA6CisgICAgICAgICogZXdrL2V3a19mcmFtZS5jcHA6CisgICAgICAgICogZXdr
L2V3a19qcy5jcHA6CisgICAgICAgICogZXdrL2V3a19tZW1vcnlfYWxsb2NhdGlvbi5oOiBBZGRl
ZC4KKyAgICAgICAgKiBld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuY3BwOgorICAgICAgICAq
IGV3ay9ld2tfdGlsZWRfbW9kZWwuY3BwOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6Cisg
ICAgICAgICogZXdrL2V3a193aW5kb3dfZmVhdHVyZXMuY3BwOgorCiAyMDExLTEwLTI1ICBLd2Fu
Z0h5dWsgS2ltICA8aHl1a2kua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEZpeCBvY2N1cnJl
bmNlIG9mIHVucGFpbnRlZCB0aWxlcyB3aGlsZSBzY3JvbGxpbmcgYW5kIHpvb21pbmcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2F1dGhfc291cC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2F1dGhfc291cC5jcHAKaW5kZXggOTY1NjNjMGM0MzdkZjdiNzcz
MDY3OTU3NTcyMGM2NmEzYWJlNTVjOC4uZjgyMmRmNTNkODhhMmJhNTEzYWFmZTk5YjExZWE4YzYz
OGQ5ODY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19hdXRoX3NvdXAu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfYXV0aF9zb3VwLmNwcApAQCAtMjQs
NiArMjQsNyBAQAogI2luY2x1ZGUgIkVXZWJLaXQuaCIKICNpbmNsdWRlICJld2tfYXV0aC5oIgog
I2luY2x1ZGUgImV3a19sb2dnaW5nLmgiCisjaW5jbHVkZSAiZXdrX21lbW9yeV9hbGxvY2F0aW9u
LmgiCiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KICNpbmNsdWRlIDxnbGliLmg+CiAjaW5jbHVk
ZSA8bGlic291cC9zb3VwLmg+CkBAIC05NCw3ICs5NSw3IEBAIHN0YXRpYyB2b2lkIHNlc3Npb25f
YXV0aGVudGljYXRlKFNvdXBTZXNzaW9uKiBzZXNzaW9uLCBTb3VwTWVzc2FnZSogbWVzc2FnZSwg
U291CiAgICAgaWYgKCFld2tfYXV0aF9zaG93X2RpYWxvZ19jYWxsYmFjaykKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYXV0aGVudGljYXRpb25EYXRhID0gc3RhdGljX2Nhc3Q8RXdrX0F1dGhfRGF0
YSo+KGNhbGxvYygxLCBzaXplb2YoRXdrX0F1dGhfRGF0YSkpKTsKKyAgICBhdXRoZW50aWNhdGlv
bkRhdGEgPSBlQ2FsbG9jPEV3a19BdXRoX0RhdGE+KDEpOwogCiAgICAgaWYgKCFhdXRoZW50aWNh
dGlvbkRhdGEpIHsKICAgICAgICAgQ1JJVElDQUwoImNvdWxkIG5vdCBhbGxvY2F0ZSBFd2tfQXV0
aF9EYXRhIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRt
ZW51LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwCmluZGV4
IDFlNGI2ZmI3ZjM2ZTBiMjgxYmQ3NjJlYWQ3YjZmNzE5YWZjZDdmZDAuLjE2NTExOGU4MDhhY2U4
M2JmNmNmZGQ4NGViNjc0YzBkMzI1MWYxOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfY29udGV4dG1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
Y29udGV4dG1lbnUuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnVD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVJdGVtLmgiCiAjaW5jbHVkZSAiRVdl
YktpdC5oIgorI2luY2x1ZGUgImV3a19tZW1vcnlfYWxsb2NhdGlvbi5oIgogI2luY2x1ZGUgImV3
a19wcml2YXRlLmgiCiAKICNpbmNsdWRlIDxFaW5hLmg+CkBAIC0xMDMsNyArMTA0LDcgQEAgRXdr
X0NvbnRleHRfTWVudV9JdGVtKiBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KEV3a19Db250ZXh0
X01lbnVfSXRlbV9UeXBlIHR5cGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBhY3Rpb24sIEV3a19Db250ZXh0
X01lbnUqIHN1Ym1lbnUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciogdGl0bGUsIEVpbmFfQm9vbCBjaGVja2VkLCBFaW5hX0Jvb2wg
ZW5hYmxlZCkKIHsKLSAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0gPSBzdGF0aWNfY2Fz
dDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihtYWxsb2Moc2l6ZW9mKCppdGVtKSkpOworICAgIEV3
a19Db250ZXh0X01lbnVfSXRlbSogaXRlbSA9IGVNYWxsb2M8RXdrX0NvbnRleHRfTWVudV9JdGVt
PigxKTsKICAgICBpZiAoIWl0ZW0pCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0yMjgsNyArMjI5
LDcgQEAgRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3Qq
IHZpZXcsIFdlYkNvcmU6OkNvbnRleHRNZW51Q28KICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwodmlldywgMCk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGNv
bnRyb2xsZXIsIDApOwogCi0gICAgbWVudSA9IHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnUq
PihtYWxsb2Moc2l6ZW9mKCptZW51KSkpOworICAgIG1lbnUgPSBlTWFsbG9jPEV3a19Db250ZXh0
X01lbnU+OwogICAgIGlmICghbWVudSkgewogICAgICAgICBDUklUSUNBTCgiQ291bGQgbm90IGFs
bG9jYXRlIGNvbnRleHQgbWVudSBtZW1vcnkuIik7CiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAppbmRleCA2N2RlM2JmNmQ2NTIyNzEwNTFiZjcwYmVlNWJi
ZDhmNTA4YjYxMmNlLi43ZDE5MjdkNDNmMjBjNzBmZWVhOTM1YjVjY2Q5N2UyNGFkMzNiYTk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1
ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN1YnN0aXR1dGVEYXRhLmgiCiAjaW5jbHVk
ZSAiV2luZG93c0tleWJvYXJkQ29kZXMuaCIKKyNpbmNsdWRlICJld2tfbWVtb3J5X2FsbG9jYXRp
b24uaCIKICNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgogCiAjaW5jbHVkZSA8RWluYS5oPgpAQCAt
MTY2LDcgKzE2Nyw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfZnJhbWVfc21hcnRfYWRkKEV2YXNfT2Jq
ZWN0KiBld2tGcmFtZSkKICAgICBFV0tfRlJBTUVfU0RfR0VUKGV3a0ZyYW1lLCBzbWFydERhdGEp
OwogCiAgICAgaWYgKCFzbWFydERhdGEpIHsKLSAgICAgICAgc21hcnREYXRhID0gc3RhdGljX2Nh
c3Q8RXdrX0ZyYW1lX1NtYXJ0X0RhdGEqPihjYWxsb2MoMSwgc2l6ZW9mKEV3a19GcmFtZV9TbWFy
dF9EYXRhKSkpOworICAgICAgICBzbWFydERhdGEgPSBlQ2FsbG9jPEV3a19GcmFtZV9TbWFydF9E
YXRhPigxKTsKICAgICAgICAgaWYgKCFzbWFydERhdGEpIHsKICAgICAgICAgICAgIENSSVRJQ0FM
KCJjb3VsZCBub3QgYWxsb2NhdGUgRXdrX0ZyYW1lX1NtYXJ0X0RhdGEiKTsKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTI4NSw4ICsyODYsNyBAQCBFdmFzX09iamVjdCogZXdrX2ZyYW1lX3ZpZXdf
Z2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKIEVpbmFfSXRlcmF0b3IqIGV3a19mcmFt
ZV9jaGlsZHJlbl9pdGVyYXRvcl9uZXcoRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogewogICAgIEVX
S19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBzbWFydERhdGEsIDApOwotICAgIEVp
bmFfSXRlcmF0b3JfRXdrX0ZyYW1lKiBpdGVyYXRvciA9IHN0YXRpY19jYXN0PEVpbmFfSXRlcmF0
b3JfRXdrX0ZyYW1lKj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FsbG9j
KDEsIHNpemVvZihFaW5hX0l0ZXJhdG9yX0V3a19GcmFtZSkpKTsKKyAgICBFaW5hX0l0ZXJhdG9y
X0V3a19GcmFtZSogaXRlcmF0b3IgPSBlQ2FsbG9jPEVpbmFfSXRlcmF0b3JfRXdrX0ZyYW1lPigx
KTsKICAgICBpZiAoIWl0ZXJhdG9yKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtNjU5LDcgKzY1
OSw3IEBAIEV3a19IaXRfVGVzdCogZXdrX2ZyYW1lX2hpdF90ZXN0X25ldyhjb25zdCBFdmFzX09i
amVjdCogZXdrRnJhbWUsIGludCB4LCBpbnQgeSkKICAgICBpZiAoIXJlc3VsdC5pbm5lck5vZGUo
KSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBFd2tfSGl0X1Rlc3QqIGhpdFRlc3QgPSBzdGF0
aWNfY2FzdDxFd2tfSGl0X1Rlc3QqPihjYWxsb2MoMSwgc2l6ZW9mKEV3a19IaXRfVGVzdCkpKTsK
KyAgICBFd2tfSGl0X1Rlc3QqIGhpdFRlc3QgPSBlQ2FsbG9jPEV3a19IaXRfVGVzdD4oMSk7CiAg
ICAgaWYgKCFoaXRUZXN0KSB7CiAgICAgICAgIENSSVRJQ0FMKCJDb3VsZCBub3QgYWxsb2NhdGUg
bWVtb3J5IGZvciBoaXQgdGVzdC4iKTsKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2pzLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfanMuY3BwCmluZGV4IGQyYzlhOTM3Y2JhOGRlZTQ5ZjNjYjc3MDI2Y2Y4ZmNjNzUwOGEyZTEu
LmZkN2YwOTdiMjVlNmJjOTQ5OTg5ZTg4NjRjOGJkNGFjZWFiNGZiNjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfanMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfanMuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgc3RhdGljIGJvb2wgZXdrX2pzX3Byb3Bl
cnR5X2dldChOUE9iamVjdCogbnBPYmplY3QsIE5QSWRlbnRpZmllciBuYW1lLCBOUFZhcmlhbnQK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIHZhbHVlID0gc3RhdGljX2Nhc3Q8
RXdrX0pTX1ZhcmlhbnQqPihtYWxsb2Moc2l6ZW9mKEV3a19KU19WYXJpYW50KSkpOworICAgIHZh
bHVlID0gZU1hbGxvYzxFd2tfSlNfVmFyaWFudD4oMSk7CiAgICAgaWYgKCF2YWx1ZSkgewogICAg
ICAgICBFUlIoIkNvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGV3a19qc192YXJpYW50Iik7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE2MCw3ICsxNjAsNyBAQCBzdGF0aWMgYm9vbCBl
d2tfanNfcHJvcGVydHlfc2V0KE5QT2JqZWN0KiBucE9iamVjdCwgTlBJZGVudGlmaWVyIG5hbWUs
IGNvbnN0IE5QVgogICAgICAgICByZXR1cm4gZmFpbDsKICAgICB9CiAKLSAgICB2YWx1ZSA9IHN0
YXRpY19jYXN0PEV3a19KU19WYXJpYW50Kj4obWFsbG9jKHNpemVvZihFd2tfSlNfVmFyaWFudCkp
KTsKKyAgICB2YWx1ZSA9IGVNYWxsb2M8RXdrX0pTX1ZhcmlhbnQ+KDEpOwogICAgIGlmICghdmFs
dWUpIHsKICAgICAgICAgRVJSKCJDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciBld2tfanNf
dmFyaWFudCIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMjEsNyArMjIxLDcgQEAgc3Rh
dGljIGJvb2wgZXdrX2pzX3Byb3BlcnRpZXNfZW51bWVyYXRlKE5QT2JqZWN0KiBucE9iamVjdCwg
TlBJZGVudGlmaWVyKiogdmFsdWUKICAgICBFSU5BX01BR0lDX0NIRUNLX09SX1JFVFVSTihvYmpl
Y3QsIGZhbHNlKTsKIAogICAgICpjb3VudCA9IGVpbmFfaGFzaF9wb3B1bGF0aW9uKG9iamVjdC0+
cHJvcGVydGllcyk7Ci0gICAgKnZhbHVlID0gc3RhdGljX2Nhc3Q8TlBJZGVudGlmaWVyKj4obWFs
bG9jKHNpemVvZihOUElkZW50aWZpZXIpICogKmNvdW50KSk7CisgICAgKnZhbHVlID0gZU1hbGxv
YzxOUElkZW50aWZpZXI+KDEpOwogICAgIGlmICghKnZhbHVlKSB7CiAgICAgICAgIEVSUigiQ291
bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgTlBJZGVudGlmaWVyIik7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTI2OCw3ICsyNjgsNyBAQCBzdGF0aWMgYm9vbCBld2tfanNfbWV0aG9kX2lu
dm9rZShOUE9iamVjdCogbnBPYmplY3QsIE5QSWRlbnRpZmllciBuYW1lLCBjb25zdCBOUAogICAg
IGlmICghbWV0aG9kKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBhcmdzID0gc3RhdGlj
X2Nhc3Q8RXdrX0pTX1ZhcmlhbnQqPihtYWxsb2Moc2l6ZW9mKEV3a19KU19WYXJpYW50KSAgKm5w
QXJnQ291bnQpKTsKKyAgICBhcmdzID0gZU1hbGxvYzxFd2tfSlNfVmFyaWFudD4obnBBcmdDb3Vu
dCk7CiAgICAgaWYgKCFhcmdzKSB7CiAgICAgICAgIEVSUigiQ291bGQgbm90IGFsbG9jYXRlIG1l
bW9yeSBmb3IgZXdrX2pzX3ZhcmlhbnQiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzMz
LDcgKzMzMyw3IEBAIEV3a19KU19DbGFzcyogZXdrX2pzX2NsYXNzX25ldyhjb25zdCBFd2tfSlNf
Q2xhc3NfTWV0YSoganNNZXRhQ2xhc3MpCiAKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwoanNNZXRhQ2xhc3MsIDApOwogCi0gICAgY2xzID0gc3RhdGljX2Nhc3Q8RXdrX0pTX0Ns
YXNzKj4obWFsbG9jKHNpemVvZihFd2tfSlNfQ2xhc3MpKSk7CisgICAgY2xzID0gZU1hbGxvYzxF
d2tfSlNfQ2xhc3M+KDEpOwogICAgIGlmICghY2xzKSB7CiAgICAgICAgIEVSUigiQ291bGQgbm90
IGFsbG9jYXRlIG1lbW9yeSBmb3IgZXdrX2pzX2NsYXNzIik7CiAgICAgICAgIHJldHVybiAwOwpA
QCAtNDA0LDcgKzQwNCw3IEBAIHN0YXRpYyBFd2tfSlNfT2JqZWN0KiBld2tfanNfbnBvYmplY3Rf
dG9fb2JqZWN0KE5QT2JqZWN0KiBucE9iamVjdCkKICAgICBpZiAoIV9OUE5fRW51bWVyYXRlKDAs
IG5wT2JqZWN0LCAmdmFsdWVzLCAmbnBfcHJvcHNfY291bnQpKQogICAgICAgICByZXR1cm4gMDsK
IAotICAgIGNscyA9IHN0YXRpY19jYXN0PEV3a19KU19DbGFzcyo+KG1hbGxvYyhzaXplb2YoRXdr
X0pTX0NsYXNzKSkpOworICAgIGNscyA9IGVNYWxsb2M8RXdrX0pTX0NsYXNzPigxKTsKICAgICBp
ZiAoIWNscykgewogICAgICAgICBFUlIoIkNvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGV3
a19qc19jbGFzcyIpOwogICAgICAgICByZXR1cm4gMDsKQEAgLTQyMiw3ICs0MjIsNyBAQCBzdGF0
aWMgRXdrX0pTX09iamVjdCogZXdrX2pzX25wb2JqZWN0X3RvX29iamVjdChOUE9iamVjdCogbnBP
YmplY3QpCiAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IG5wX3Byb3BzX2NvdW50OyBpKysp
IHsKICAgICAgICAgaWYgKF9OUE5fSGFzUHJvcGVydHkoMCwgbnBPYmplY3QsIHZhbHVlc1tpXSkp
IHsKICAgICAgICAgICAgIE5QVmFyaWFudCB2YXI7Ci0gICAgICAgICAgICBFd2tfSlNfUHJvcGVy
dHkqIHByb3AgPSBzdGF0aWNfY2FzdDxFd2tfSlNfUHJvcGVydHkqPihjYWxsb2Moc2l6ZW9mKEV3
a19KU19Qcm9wZXJ0eSksIDEpKTsKKyAgICAgICAgICAgIEV3a19KU19Qcm9wZXJ0eSogcHJvcCA9
IGVDYWxsb2M8RXdrX0pTX1Byb3BlcnR5PigxKTsKICAgICAgICAgICAgIGlmICghcHJvcCkgewog
ICAgICAgICAgICAgICAgIEVSUigiQ291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgZXdrX2pz
X3Byb3BlcnR5Iik7CiAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKQEAgLTQzNiw3ICs0MzYs
NyBAQCBzdGF0aWMgRXdrX0pTX09iamVjdCogZXdrX2pzX25wb2JqZWN0X3RvX29iamVjdChOUE9i
amVjdCogbnBPYmplY3QpCiAgICAgfQogCiAgICAgLy8gQ2FuJ3QgdXNlIGV3a19qc19vYmplY3Rf
bmV3KGNscykgYmVjYXVzZSBpdCBleHBlY3RzIGNscy0+bWV0YSB0byBleGlzdC4KLSAgICBvYmpl
Y3QgPSBzdGF0aWNfY2FzdDxFd2tfSlNfT2JqZWN0Kj4obWFsbG9jKHNpemVvZihFd2tfSlNfT2Jq
ZWN0KSkpOworICAgIG9iamVjdCA9IGVNYWxsb2M8RXdrX0pTX09iamVjdD4oMSk7CiAgICAgaWYg
KCFvYmplY3QpIHsKICAgICAgICAgRVJSKCJDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciBl
d2tfanNfb2JqZWN0Iik7CiAgICAgICAgIGdvdG8gZXJyb3I7CkBAIC01MDMsNyArNTAzLDcgQEAg
c3RhdGljIEVpbmFfQm9vbCBld2tfanNfbnB2YXJpYW50X3RvX3ZhcmlhbnQoRXdrX0pTX1Zhcmlh
bnQqIGRhdGEsIGNvbnN0IE5QVmFyaWEKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOUFZhcmlh
bnRUeXBlX1N0cmluZzoKICAgICAgICAgc3ogPSBOUFZBUklBTlRfVE9fU1RSSU5HKCpyZXN1bHQp
LlVURjhMZW5ndGg7Ci0gICAgICAgIGRhdGEtPnZhbHVlLnMgPSBzdGF0aWNfY2FzdDxjaGFyKj4o
bWFsbG9jKHNpemVvZihjaGFyKSAqIChzeiArIDEpKSk7CisgICAgICAgIGRhdGEtPnZhbHVlLnMg
PSBlTWFsbG9jPGNoYXI+KHN6ICsgMSk7CiAgICAgICAgIGlmICghZGF0YS0+dmFsdWUucykKICAg
ICAgICAgICAgIHJldHVybiBFSU5BX0ZBTFNFOwogICAgICAgICBtZW1jcHkoZGF0YS0+dmFsdWUu
cywgTlBWQVJJQU5UX1RPX1NUUklORygqcmVzdWx0KS5VVEY4Q2hhcmFjdGVycywgc3opOwpAQCAt
NTMxLDcgKzUzMSw3IEBAIEV3a19KU19PYmplY3QqIGV3a19qc19vYmplY3RfbmV3KGNvbnN0IEV3
a19KU19DbGFzc19NZXRhKiBqc01ldGFDbGFzcykKIAogICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChqc01ldGFDbGFzcywgMCk7CiAKLSAgICBvYmplY3QgPSBzdGF0aWNfY2FzdDxF
d2tfSlNfT2JqZWN0Kj4obWFsbG9jKHNpemVvZihFd2tfSlNfT2JqZWN0KSkpOworICAgIG9iamVj
dCA9IGVNYWxsb2M8RXdrX0pTX09iamVjdD4oMSk7CiAgICAgaWYgKCFvYmplY3QpIHsKICAgICAg
ICAgRVJSKCJDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciBld2tfanNfb2JqZWN0Iik7CiAg
ICAgICAgIHJldHVybiAwOwpAQCAtNTUxLDcgKzU1MSw3IEBAIEV3a19KU19PYmplY3QqIGV3a19q
c19vYmplY3RfbmV3KGNvbnN0IEV3a19KU19DbGFzc19NZXRhKiBqc01ldGFDbGFzcykKICAgICBm
b3IgKGludCBpID0gMDsgb2JqZWN0LT5jbHMtPm1ldGEtPnByb3BlcnRpZXMgJiYgb2JqZWN0LT5j
bHMtPm1ldGEtPnByb3BlcnRpZXNbaV0ubmFtZTsgaSsrKSB7CiAgICAgICAgIEV3a19KU19Qcm9w
ZXJ0eSBwcm9wID0gb2JqZWN0LT5jbHMtPm1ldGEtPnByb3BlcnRpZXNbaV07CiAgICAgICAgIGNv
bnN0IGNoYXIqIGtleSA9IG9iamVjdC0+Y2xzLT5tZXRhLT5wcm9wZXJ0aWVzW2ldLm5hbWU7Ci0g
ICAgICAgIEV3a19KU19WYXJpYW50KiB2YWx1ZSA9IHN0YXRpY19jYXN0PEV3a19KU19WYXJpYW50
Kj4obWFsbG9jKHNpemVvZihFd2tfSlNfVmFyaWFudCkpKTsKKyAgICAgICAgRXdrX0pTX1Zhcmlh
bnQqIHZhbHVlID0gZU1hbGxvYzxFd2tfSlNfVmFyaWFudD4oMSk7CiAgICAgICAgIGlmICghdmFs
dWUpIHsKICAgICAgICAgICAgIEVSUigiQ291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgZXdr
X2pzX3ZhcmlhbnQiKTsKICAgICAgICAgICAgIGdvdG8gZXJyb3I7CkBAIC02MzcsNyArNjM3LDcg
QEAgRWluYV9Cb29sIGV3a19qc19vYmplY3RfaW52b2tlKEV3a19KU19PYmplY3QqIGpzT2JqZWN0
LCBFd2tfSlNfVmFyaWFudCogYXJncywgaW4KICAgICBpZiAoYXJnQ291bnQpCiAgICAgICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChhcmdzLCBFSU5BX0ZBTFNFKTsKIAotICAgIG5w
X2FyZ3MgPSBzdGF0aWNfY2FzdDxOUFZhcmlhbnQqPihtYWxsb2Moc2l6ZW9mKE5QVmFyaWFudCkg
ICphcmdDb3VudCkpOworICAgIG5wX2FyZ3MgPSBlTWFsbG9jPE5QVmFyaWFudD4oYXJnQ291bnQp
OwogICAgIGlmICghbnBfYXJncykgewogICAgICAgICBFUlIoIkNvdWxkIG5vdCBhbGxvY2F0ZSBt
ZW1vcnkgdG8gbWV0aG9kIGFyZ3VtZW50cyIpOwogICAgICAgICByZXR1cm4gRUlOQV9GQUxTRTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbWFpbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX21haW4uY3BwCmluZGV4IGM1MmMwMmIwOWY5MTUzNmEzMjI4MTg4
NmRlYjNmYmIzNWJlMDNlYjAuLjI2MTE5ZWQ3OWYzOWIyZjA4MjExOWY4MTRlZTFjZmJkNGQ3N2Fi
ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbWFpbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19tYWluLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGF0
aWMgaW50IF9ld2tJbml0Q291bnQgPSAwOwogICogXHZhciAgICAgX2V3a19sb2dfZG9tCiAgKiBA
YnJpZWYgICB0aGUgbG9nIGRvbWFpbiBpZGVudGlmaWVyIHRoYXQgaXMgdXNlZCB3aXRoIEVJTkEn
cyBtYWNyb3MKICAqLwotaW50IF9ld2tfbG9nX2RvbSA9IC0xOworaW50IF9ld2tfbG9nX2RvbSA9
IDE7CiAKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a19pbml0X2JvZHkodm9pZCk7CiAKQEAgLTc2LDYg
Kzc2LDcgQEAgaW50IGV3a19pbml0KHZvaWQpCiAgICAgICAgIGdvdG8gZXJyb3JfZWluYTsKIAog
ICAgIF9ld2tfbG9nX2RvbSA9IGVpbmFfbG9nX2RvbWFpbl9yZWdpc3RlcigiZXdlYmtpdCIsIEVJ
TkFfQ09MT1JfT1JBTkdFKTsKKyAgICBwcmludGYoIjw8IF9ld2tfbG9nX2RvbSA6ICVkIFxuIiwg
X2V3a19sb2dfZG9tKTsKICAgICBpZiAoX2V3a19sb2dfZG9tIDwgMCkgewogICAgICAgICBFSU5B
X0xPR19DUklUKCJjb3VsZCBub3QgcmVnaXN0ZXIgbG9nIGRvbWFpbiAnZXdlYmtpdCciKTsKICAg
ICAgICAgZ290byBlcnJvcl9sb2dfZG9tYWluOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19tZW1vcnlfYWxsb2NhdGlvbi5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19tZW1vcnlfYWxsb2NhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzYmEwNmY1MWYzNzIwMmU0YmEzZGU1
Yzc4YTNhZmU0YjMxZjU5ODMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX21lbW9yeV9hbGxvY2F0aW9uLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAgICBDb3B5
cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcy4KKworICAgIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisvKioKKyAqIEBmaWxlICAg
IGV3a19tZW1vcnlfYWxsb2NhdGlvbi5oCisgKiBAYnJpZWYgICBUZW1wbGF0ZSBmb3IgbWVtb3J5
IGFsbG9jYXRpb24gb2YgV2ViS2l0LUVGTC4KKyAqLworCisjaWZuZGVmIGV3a19tZW1vcnlfYWxs
b2NhdGlvbl9oCisjZGVmaW5lIGV3a19tZW1vcnlfYWxsb2NhdGlvbl9oCisKK3RlbXBsYXRlIDx0
eXBlbmFtZSBzdHJ1Y3RfdHlwZT4gc3RydWN0X3R5cGUqIGVNYWxsb2Moc2l6ZV90IGFtb3VudCA9
IDEpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHN0cnVjdF90eXBlKj4obWFsbG9jKGFtb3Vu
dCAqIHNpemVvZihzdHJ1Y3RfdHlwZSkpKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIHN0cnVj
dF90eXBlPiBzdHJ1Y3RfdHlwZSogZUNhbGxvYyhzaXplX3QgYW1vdW50ID0gMSkKK3sKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8c3RydWN0X3R5cGUqPihjYWxsb2MoYW1vdW50LCBzaXplb2Yoc3Ry
dWN0X3R5cGUpKSk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBzdHJ1Y3RfdHlwZT4gc3RydWN0
X3R5cGUqIGVSZWFsbG9jKHZvaWQqIFQsIHNpemVfdCBhbW91bnQgPSAxKQoreworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxzdHJ1Y3RfdHlwZSo+KHJlYWxsb2MoVCwgYW1vdW50ICogc2l6ZW9mKHN0
cnVjdF90eXBlKSkpOworfQorCisjZW5kaWYgLy8gZXdrX21lbW9yeV9hbGxvY2F0aW9uX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuY3BwCmlu
ZGV4IDcwOWUzZWMyMmNlYmE1Y2ZiZDk0ODk4OGY5YTdmYTkzMjRhMWYzYjAuLjhkMDRjNGU3NWU3
ZTQyODk3MmZlNmQxZWI0Mzc0OWQ3ODg5YTAxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImV3a190aWxlZF9iYWNraW5nX3N0b3JlLmgiCiAK
KyNpbmNsdWRlICJld2tfbWVtb3J5X2FsbG9jYXRpb24uaCIKICNpbmNsdWRlICJld2tfdGlsZWRf
bWF0cml4LmgiCiAjaW5jbHVkZSAiZXdrX3RpbGVkX3ByaXZhdGUuaCIKICNpbmNsdWRlIDxFY29y
ZS5oPgpAQCAtMjUyLDcgKzI1Myw3IEBAIHN0YXRpYyBpbmxpbmUgRWluYV9Cb29sIF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfYWRkKEV3a19UaWxlCiB7CiAgICAg
RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfUHJlX1JlbmRlcl9SZXF1ZXN0KiByZXF1ZXN0OwogCi0g
ICAgcmVxdWVzdCA9IHN0YXRpY19jYXN0PEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX1ByZV9SZW5k
ZXJfUmVxdWVzdCo+KG1hbGxvYyhzaXplb2YoKnJlcXVlc3QpKSk7CisgICAgcmVxdWVzdCA9IGVN
YWxsb2M8RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfUHJlX1JlbmRlcl9SZXF1ZXN0PigxKTsKICAg
ICBpZiAoIXJlcXVlc3QpCiAgICAgICAgIHJldHVybiBFSU5BX0ZBTFNFOwogCkBAIC00NzgsNyAr
NDc5LDcgQEAgc3RhdGljIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9pdGVtX2FkZChFd2tfVGlsZWQKIAogICAgIERCRygiZXdrVGlsZSVwIiwg
cHJpdi0+c2VsZik7CiAKLSAgICBpdGVtID0gc3RhdGljX2Nhc3Q8RXdrX1RpbGVkX0JhY2tpbmdf
U3RvcmVfSXRlbSo+KG1hbGxvYyhzaXplb2YoKml0ZW0pKSk7CisgICAgaXRlbSA9IGVNYWxsb2M8
RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbT4oMSk7CiAgICAgaWYgKCFpdGVtKQogICAgICAg
ICByZXR1cm4gMDsKIApAQCAtNjkzLDcgKzY5NCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9zbWFydF9hZGQoRXZhc19PYmplY3QqIGV3a1RpbGUpCiAKICAgICBEQkco
ImV3a1RpbGU9JXAiLCBld2tUaWxlKTsKIAotICAgIHByaXYgPSBzdGF0aWNfY2FzdDxFd2tfVGls
ZWRfQmFja2luZ19TdG9yZV9EYXRhKj4oY2FsbG9jKDEsIHNpemVvZigqcHJpdikpKTsKKyAgICBw
cml2ID0gZUNhbGxvYzxFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhPigxKTsKICAgICBpZiAo
IXByaXYpCiAgICAgICAgIHJldHVybjsKIApAQCAtODMxLDcgKzgzMiw3IEBAIHN0YXRpYyB2b2lk
IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9yZWNhbGNfcmVuZGVyZXJzKEV3a19UaWxlZF9CYWNr
aW5nX1N0b3JlX0RhCiAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Jvd3Nf
cmFuZ2VfZGVsKHByaXYsIHN0YXJ0LCBlbmQpOwogICAgIH0KIAotICAgIHZvaWQqIG5ld0l0ZW1z
ID0gcmVhbGxvYyhwcml2LT52aWV3Lml0ZW1zLCBzaXplb2YoRWluYV9Jbmxpc3QqKSAqIHJvd3Mp
OworICAgIHZvaWQqIG5ld0l0ZW1zID0gZVJlYWxsb2M8RWluYV9Jbmxpc3Q+KHByaXYtPnZpZXcu
aXRlbXMsIHJvd3MpOwogICAgIGlmICghbmV3SXRlbXMpCiAgICAgICAgIHJldHVybjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tb2RlbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21vZGVsLmNwcAppbmRleCBkZDVmMGQ1YTgwY2E1
NDM0NDIwNDJkZGQ5YTc2YWM2M2MwYTI0NzUxLi4zNTcxMWFiMzBmMzZhZjJlYTA5ZjM1ZWIxYmI3
Y2JlZTYyZjQzMWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVk
X21vZGVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21vZGVsLmNw
cApAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImV3a190
aWxlZF9tb2RlbC5oIgogCisjaW5jbHVkZSAiZXdrX21lbW9yeV9hbGxvY2F0aW9uLmgiCiAjaW5j
bHVkZSAiZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuaCIKICNpbmNsdWRlICJld2tfdGlsZWRfcHJp
dmF0ZS5oIgogI2luY2x1ZGUgPEVjb3JlX0V2YXMuaD4KQEAgLTI2MSw3ICsyNjIsNyBAQCBFd2tf
VGlsZSogZXdrX3RpbGVfbmV3KEV2YXMqIGV2YXMsIEV2YXNfQ29vcmQgd2lkdGgsIEV2YXNfQ29v
cmQgaGVpZ2h0LCBmbG9hdCB6bwogCiAgICAgREJHKCJzaXplOiAlZHglZCAoJWQpLCB6b29tOiAl
ZiwgY3NwYWNlPSVkIiwgd2lkdGgsIGhlaWdodCwgYXJlYSwgKGRvdWJsZSl6b29tLCBjb2xvclNw
YWNlKTsKIAotICAgIHRpbGUgPSBzdGF0aWNfY2FzdDxFd2tfVGlsZSo+KG1hbGxvYyhzaXplb2Yo
RXdrX1RpbGUpKSk7CisgICAgdGlsZSA9IGVNYWxsb2M8RXdrX1RpbGU+KDEpOwogICAgIGlmICgh
dGlsZSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTUyMyw3ICs1MjQsNyBAQCBFd2tfVGlsZV9V
bnVzZWRfQ2FjaGUqIGV3a190aWxlX3VudXNlZF9jYWNoZV9uZXcoc2l6ZV90IG1heCkKIHsKICAg
ICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZTsKIAotICAgIHRpbGVVbnVz
ZWRDYWNoZSA9IHN0YXRpY19jYXN0PEV3a19UaWxlX1VudXNlZF9DYWNoZSo+KGNhbGxvYygxLCBz
aXplb2YoRXdrX1RpbGVfVW51c2VkX0NhY2hlKSkpOworICAgIHRpbGVVbnVzZWRDYWNoZSA9IGVD
YWxsb2M8RXdrX1RpbGVfVW51c2VkX0NhY2hlPigxKTsKICAgICBpZiAoIXRpbGVVbnVzZWRDYWNo
ZSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTgwNCw3ICs4MDUsNyBAQCBFaW5hX0Jvb2wgZXdr
X3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfcHV0KEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVu
dXNlZENhY2hlLAogICAgICAgICByZXR1cm4gRUlOQV9GQUxTRTsKICAgICB9CiAKLSAgICB1bnVz
ZWRDYWNoZUVudHJ5ID0gc3RhdGljX2Nhc3Q8RXdrX1RpbGVfVW51c2VkX0NhY2hlX0VudHJ5Kj4o
bWFsbG9jKHNpemVvZihFd2tfVGlsZV9VbnVzZWRfQ2FjaGVfRW50cnkpKSk7CisgICAgdW51c2Vk
Q2FjaGVFbnRyeSA9IGVNYWxsb2M8RXdrX1RpbGVfVW51c2VkX0NhY2hlX0VudHJ5PigxKTsKICAg
ICBpZiAoIXVudXNlZENhY2hlRW50cnkpCiAgICAgICAgIHJldHVybiBFSU5BX0ZBTFNFOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCBiMzliZDQwYjBjYWZjYWMxNmNmM2M5OGZk
OGU4ZGMzMWM3Y2Y1Zjg1Li5jNGEwNjM1MDAzODdjZDY1MjNlNmI2NWEwZDk3ZDU3ODVkNWRiOGY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNs
dWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1
ZGUgImNfaW5zdGFuY2UuaCIKKyNpbmNsdWRlICJld2tfbWVtb3J5X2FsbG9jYXRpb24uaCIKICNp
bmNsdWRlICJld2tfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19wcm90b2NvbF9oYW5kbGVyLmgi
CiAKQEAgLTI3Nyw3ICsyNzgsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfY2hhbmdl
ZChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3
a192aWV3X3JlcGFpbnRzX3Jlc2l6ZShFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYsIHNpemVf
dCBzaXplKQogewotICAgIHZvaWQqIHRtcCA9IHJlYWxsb2MocHJpdi0+cmVwYWludHMuYXJyYXks
IHNpemUgKiBzaXplb2YoRWluYV9SZWN0YW5nbGUpKTsKKyAgICB2b2lkKiB0bXAgPSBlUmVhbGxv
YzxFaW5hX1JlY3RhbmdsZT4ocHJpdi0+cmVwYWludHMuYXJyYXksIHNpemUpOwogICAgIGlmICgh
dG1wKSB7CiAgICAgICAgIENSSVRJQ0FMKCJjb3VsZCBub3QgcmVhbGxvYyByZXBhaW50cyBhcnJh
eSB0byAlenUgZWxlbWVudHMuIiwgc2l6ZSk7CiAgICAgICAgIHJldHVybiBFSU5BX0ZBTFNFOwpA
QCAtMzIzLDcgKzMyNCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19yZXBhaW50c19mbHVzaChF
d2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYpCiAKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3
X3Njcm9sbHNfcmVzaXplKEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdiwgc2l6ZV90IHNpemUp
CiB7Ci0gICAgdm9pZCogdG1wID0gcmVhbGxvYyhwcml2LT5zY3JvbGxzLmFycmF5LCBzaXplICog
c2l6ZW9mKEV3a19TY3JvbGxfUmVxdWVzdCkpOworICAgIHZvaWQqIHRtcCA9IGVSZWFsbG9jPEV3
a19TY3JvbGxfUmVxdWVzdD4ocHJpdi0+c2Nyb2xscy5hcnJheSwgc2l6ZSk7CiAgICAgaWYgKCF0
bXApIHsKICAgICAgICAgQ1JJVElDQUwoImNvdWxkIG5vdCByZWFsbG9jIHNjcm9sbHMgYXJyYXkg
dG8gJXp1IGVsZW1lbnRzLiIsIHNpemUpOwogICAgICAgICByZXR1cm4gRUlOQV9GQUxTRTsKQEAg
LTU5Miw4ICs1OTMsNyBAQCBzdGF0aWMgRXZhc19TbWFydF9DbGFzcyBfcGFyZW50X3NjID0gRVZB
U19TTUFSVF9DTEFTU19JTklUX05VTEw7CiAKIHN0YXRpYyBFd2tfVmlld19Qcml2YXRlX0RhdGEq
IF9ld2tfdmlld19wcml2X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiB7Ci0g
ICAgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBwcml2ID0KLSAgICAgICAgc3RhdGljX2Nhc3Q8RXdr
X1ZpZXdfUHJpdmF0ZV9EYXRhKj4oY2FsbG9jKDEsIHNpemVvZihFd2tfVmlld19Qcml2YXRlX0Rh
dGEpKSk7CisgICAgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBwcml2ID0gZUNhbGxvYzxFd2tfVmll
d19Qcml2YXRlX0RhdGE+KDEpOwogICAgIEF0b21pY1N0cmluZyBzdHJpbmc7CiAgICAgV2ViQ29y
ZTo6S1VSTCB1cmw7CiAKQEAgLTc2OCw3ICs3NjgsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdf
c21hcnRfYWRkKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIEVXS19WSUVXX1NEX0dFVChld2tW
aWV3LCBzbWFydERhdGEpOwogCiAgICAgaWYgKCFzbWFydERhdGEpIHsKLSAgICAgICAgc21hcnRE
YXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGNhbGxvYygxLCBzaXplb2Yo
RXdrX1ZpZXdfU21hcnRfRGF0YSkpKTsKKyAgICAgICAgc21hcnREYXRhID0gZUNhbGxvYzxFd2tf
Vmlld19TbWFydF9EYXRhPigxKTsKICAgICAgICAgaWYgKCFzbWFydERhdGEpIHsKICAgICAgICAg
ICAgIENSSVRJQ0FMKCJjb3VsZCBub3QgYWxsb2NhdGUgRXdrX1ZpZXdfU21hcnRfRGF0YSIpOwog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjU2MSw3ICsyNTYxLDcgQEAgRXdrX1ZpZXdfUGFpbnRf
Q29udGV4dCogZXdrX3ZpZXdfcGFpbnRfY29udGV4dF9uZXcoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRh
KiBwcml2LAogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChwcml2LT5tYWluRnJh
bWUsIDApOwogICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldyA9IHByaXYtPm1haW5GcmFtZS0+
dmlldygpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTCh2aWV3LCAwKTsKLSAg
ICBFd2tfVmlld19QYWludF9Db250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdf
UGFpbnRfQ29udGV4dCo+KG1hbGxvYyhzaXplb2YoKmNvbnRleHQpKSk7CisgICAgRXdrX1ZpZXdf
UGFpbnRfQ29udGV4dCogY29udGV4dCA9IGVNYWxsb2M8RXdrX1ZpZXdfUGFpbnRfQ29udGV4dD4o
MSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGNvbnRleHQsIDApOwogCiAg
ICAgY29udGV4dC0+Z3JhcGhpY0NvbnRleHQgPSBuZXcgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
KGNyKTsKQEAgLTM0MzgsNyArMzQzOCw3IEBAIHZvaWQgZXdrX3ZpZXdfcG9wdXBfbmV3KEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCwKICAgICAv
LyBwb3B1bGF0ZSBpdGVtcwogICAgIGNvbnN0IGludCBzaXplID0gY2xpZW50LT5saXN0U2l6ZSgp
OwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgIEV3a19NZW51
X0l0ZW0qIGl0ZW0gPSBzdGF0aWNfY2FzdDxFd2tfTWVudV9JdGVtKj4obWFsbG9jKHNpemVvZigq
aXRlbSkpKTsKKyAgICAgICAgRXdrX01lbnVfSXRlbSogaXRlbSA9IGVNYWxsb2M8RXdrX01lbnVf
SXRlbT4oMSk7CiAgICAgICAgIGlmIChjbGllbnQtPml0ZW1Jc1NlcGFyYXRvcihpKSkKICAgICAg
ICAgICAgIGl0ZW0tPnR5cGUgPSBFV0tfTUVOVV9TRVBBUkFUT1I7CiAgICAgICAgIGVsc2UgaWYg
KGNsaWVudC0+aXRlbUlzTGFiZWwoaSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3dpbmRvd19mZWF0dXJlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3dp
bmRvd19mZWF0dXJlcy5jcHAKaW5kZXggMDljZjI3Yjg0ODZjNmFlMjg2OGFiZjIwZDQ0MjUwYTFm
NWM5NjEwMC4uYmI0MzIwOWFlNjJkMmZlMzJjNTQwNzhmNGNjODZkMWVhY2U5NWQ0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a193aW5kb3dfZmVhdHVyZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfd2luZG93X2ZlYXR1cmVzLmNwcApAQCAtMjIsNiAr
MjIsNyBAQAogI2luY2x1ZGUgImV3a193aW5kb3dfZmVhdHVyZXMuaCIKIAogI2luY2x1ZGUgIldp
bmRvd0ZlYXR1cmVzLmgiCisjaW5jbHVkZSAiZXdrX21lbW9yeV9hbGxvY2F0aW9uLmgiCiAjaW5j
bHVkZSAiZXdrX3ByaXZhdGUuaCIKIAogI2luY2x1ZGUgPEVpbmEuaD4KQEAgLTEwOSw3ICsxMTAs
NyBAQCB2b2lkIGV3a193aW5kb3dfZmVhdHVyZXNfaW50X3Byb3BlcnR5X2dldChjb25zdCBFd2tf
V2luZG93X0ZlYXR1cmVzKiB3aW5kb3dGZWF0dQogICovCiBFd2tfV2luZG93X0ZlYXR1cmVzKiBl
d2tfd2luZG93X2ZlYXR1cmVzX25ld19mcm9tX2NvcmUoY29uc3QgV2ViQ29yZTo6V2luZG93RmVh
dHVyZXMqIGNvcmUpCiB7Ci0gICAgRXdrX1dpbmRvd19GZWF0dXJlcyogd2luZG93X2ZlYXR1cmVz
ID0gc3RhdGljX2Nhc3Q8RXdrX1dpbmRvd19GZWF0dXJlcyo+KG1hbGxvYyhzaXplb2YoKndpbmRv
d19mZWF0dXJlcykpKTsKKyAgICBFd2tfV2luZG93X0ZlYXR1cmVzKiB3aW5kb3dfZmVhdHVyZXMg
PSBlTWFsbG9jPEV3a19XaW5kb3dfRmVhdHVyZXM+KDEpOwogICAgIGlmICghd2luZG93X2ZlYXR1
cmVzKSB7CiAgICAgICAgIENSSVRJQ0FMKCJDb3VsZCBub3QgYWxsb2NhdGUgRXdrX1dpbmRvd19G
ZWF0dXJlcy4iKTsKICAgICAgICAgcmV0dXJuIDA7Cg==
</data>
<flag name="review"
          id="110996"
          type_id="1"
          status="-"
          setter="kenneth"
    />
          </attachment>
      

    </bug>

</bugzilla>