<?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>101473</bug_id>
          
          <creation_ts>2012-11-07 07:37:23 -0800</creation_ts>
          <short_desc>Optimize RGBA4444ToRGBA8 packing/unpacking functions with NEON intrinsics in GraphicsContext3D</short_desc>
          <delta_ts>2012-11-13 00:33:48 -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>WebGL</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gabor Rapcsanyi">rgabor</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>d-r</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>peter+ews</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zherczeg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>760689</commentid>
    <comment_count>0</comment_count>
    <who name="Gabor Rapcsanyi">rgabor</who>
    <bug_when>2012-11-07 07:37:23 -0800</bug_when>
    <thetext>This is the first but I would like to optimize the others as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760724</commentid>
    <comment_count>1</comment_count>
      <attachid>172810</attachid>
    <who name="Gabor Rapcsanyi">rgabor</who>
    <bug_when>2012-11-07 08:21:14 -0800</bug_when>
    <thetext>Created attachment 172810
patch

I tested on Pandaboard with Linaro 12.10 Ubuntu.

unpackOneRowOfRGBA4444ToRGBA8: 2.87x faster
packOneRowOfRGBA8ToUnsignedShort4444: 3.11x faster

With WebGl gl.texImage2D() it was 1.18x faster.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760729</commentid>
    <comment_count>2</comment_count>
      <attachid>172810</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-11-07 08:28:41 -0800</bug_when>
    <thetext>Comment on attachment 172810
patch

Attachment 172810 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14759398</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760762</commentid>
    <comment_count>3</comment_count>
      <attachid>172810</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-07 09:21:25 -0800</bug_when>
    <thetext>Comment on attachment 172810
patch

Attachment 172810 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14758395</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760778</commentid>
    <comment_count>4</comment_count>
      <attachid>172810</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-11-07 09:36:46 -0800</bug_when>
    <thetext>Comment on attachment 172810
patch

Attachment 172810 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14744817</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761706</commentid>
    <comment_count>5</comment_count>
      <attachid>173024</attachid>
    <who name="Gabor Rapcsanyi">rgabor</who>
    <bug_when>2012-11-08 05:59:28 -0800</bug_when>
    <thetext>Created attachment 173024
patch_v2

Include paths added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764218</commentid>
    <comment_count>6</comment_count>
      <attachid>173024</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-11-12 03:38:00 -0800</bug_when>
    <thetext>Comment on attachment 173024
patch_v2

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

&gt; Source/WebCore/WebCore.pri:56
&gt; +    $$SOURCE_DIR/platform/graphics/arm \

Since we have a gpu directory, I think a cpu/arm directory would be better. All ARM specific optimizations could go here eventually (instead of creating subdirectories, so the filter specific optimizations could be moved here later).

&gt; Source/WebCore/platform/graphics/arm/GraphicsContext3DNEON.h:44
&gt; +        uint8x8_t componentR = vqmovn_u16(vshrq_n_u16(eightPixels, 12));
&gt; +        uint8x8_t componentG = vqmovn_u16(vandq_u16(vshrq_n_u16(eightPixels, 8), constant));
&gt; +        uint8x8_t componentB = vqmovn_u16(vandq_u16(vshrq_n_u16(eightPixels, 4), constant));
&gt; +        uint8x8_t componentA = vqmovn_u16(vandq_u16(eightPixels, constant));

This takes 6 instructions. You can do it using only four, by deinterleaving the input bytes into two uint8x8 arrays, and use one &quot;&gt;&gt; 4&quot; or one &quot;&amp; 0xf0&quot; to extract the components.

&gt; Source/WebCore/platform/graphics/arm/GraphicsContext3DNEON.h:49
&gt; +        componentR = vorr_u8(vshl_n_u8(componentR, 4), componentR);
&gt; +        componentG = vorr_u8(vshl_n_u8(componentG, 4), componentG);
&gt; +        componentB = vorr_u8(vshl_n_u8(componentB, 4), componentB);
&gt; +        componentA = vorr_u8(vshl_n_u8(componentA, 4), componentA);

Hm even better idea:
componentR8 = component R4G4 &lt;&lt; 4
componentG8 = component R4G4 &amp; 0xf0
So you don&apos;t even nned to extract the components!
NEON is beautiful magic!

&gt; Source/WebCore/platform/graphics/arm/GraphicsContext3DNEON.h:74
&gt; +        uint8x8x2_t tmp = vzip_u8(componentBA, componentRG);
&gt; +        uint8x16_t result = vcombine_u8(tmp.val[0], tmp.val[1]);
&gt; +
&gt; +        vst1q_u16(destination, vreinterpretq_u16_u8(result));

You can simply use a deinterleaved write here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764466</commentid>
    <comment_count>7</comment_count>
      <attachid>173654</attachid>
    <who name="Gabor Rapcsanyi">rgabor</who>
    <bug_when>2012-11-12 08:55:33 -0800</bug_when>
    <thetext>Created attachment 173654
patch_v3

(In reply to comment #6)
&gt; (From update of attachment 173024 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173024&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/WebCore.pri:56
&gt; &gt; +    $$SOURCE_DIR/platform/graphics/arm \
&gt; 
&gt; Since we have a gpu directory, I think a cpu/arm directory would be better. All ARM specific optimizations could go here eventually (instead of creating subdirectories, so the filter specific optimizations could be moved here later).
&gt; 

Yes that makes sense. I put this arm directory into cpu.

&gt; &gt; Source/WebCore/platform/graphics/arm/GraphicsContext3DNEON.h:44
&gt; &gt; +        uint8x8_t componentR = vqmovn_u16(vshrq_n_u16(eightPixels, 12));
&gt; &gt; +        uint8x8_t componentG = vqmovn_u16(vandq_u16(vshrq_n_u16(eightPixels, 8), constant));
&gt; &gt; +        uint8x8_t componentB = vqmovn_u16(vandq_u16(vshrq_n_u16(eightPixels, 4), constant));
&gt; &gt; +        uint8x8_t componentA = vqmovn_u16(vandq_u16(eightPixels, constant));
&gt; 
&gt; This takes 6 instructions. You can do it using only four, by deinterleaving the input bytes into two uint8x8 arrays, and use one &quot;&gt;&gt; 4&quot; or one &quot;&amp; 0xf0&quot; to extract the components.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/arm/GraphicsContext3DNEON.h:49
&gt; &gt; +        componentR = vorr_u8(vshl_n_u8(componentR, 4), componentR);
&gt; &gt; +        componentG = vorr_u8(vshl_n_u8(componentG, 4), componentG);
&gt; &gt; +        componentB = vorr_u8(vshl_n_u8(componentB, 4), componentB);
&gt; &gt; +        componentA = vorr_u8(vshl_n_u8(componentA, 4), componentA);
&gt; 
&gt; Hm even better idea:
&gt; componentR8 = component R4G4 &lt;&lt; 4
&gt; componentG8 = component R4G4 &amp; 0xf0
&gt; So you don&apos;t even nned to extract the components!
&gt; NEON is beautiful magic!
&gt; 

I tried it but surprisingly it was slower a little bit than my solution. As I saw vld2_u8() is slower than vld1q_u16() so its not worth to change it.


&gt; &gt; Source/WebCore/platform/graphics/arm/GraphicsContext3DNEON.h:74
&gt; &gt; +        uint8x8x2_t tmp = vzip_u8(componentBA, componentRG);
&gt; &gt; +        uint8x16_t result = vcombine_u8(tmp.val[0], tmp.val[1]);
&gt; &gt; +
&gt; &gt; +        vst1q_u16(destination, vreinterpretq_u16_u8(result));
&gt; 
&gt; You can simply use a deinterleaved write here.

Good catch, I have changed it and now this function is 3.93x faster than the original.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764521</commentid>
    <comment_count>8</comment_count>
      <attachid>173654</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-11-12 09:55:51 -0800</bug_when>
    <thetext>Comment on attachment 173654
patch_v3

Nice. Few more things, and this patch is ready:

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

&gt; Source/WebCore/platform/graphics/cpu/arm/GraphicsContext3DNEON.h:2
&gt; + * Copyright (C) 2012 University of Szeged

You could also mention your name here.

&gt; Source/WebCore/platform/graphics/cpu/arm/GraphicsContext3DNEON.h:74
&gt; +        uint8x8x2_t RGBA;
&gt; +        RGBA.val[0] = vorr_u8(componentB, componentA);
&gt; +        RGBA.val[1] = vorr_u8(componentR, componentG);
&gt; +        vst2_u8(dst, RGBA);

For me the &quot;components&quot; and &quot;RGBA&quot; names are not exactly consistent. Perhaps you could use RGBA4 and RGBA8 instead of them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765292</commentid>
    <comment_count>9</comment_count>
      <attachid>173830</attachid>
    <who name="Gabor Rapcsanyi">rgabor</who>
    <bug_when>2012-11-12 23:14:35 -0800</bug_when>
    <thetext>Created attachment 173830
patch_v4

Corrected patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765297</commentid>
    <comment_count>10</comment_count>
      <attachid>173830</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-11-12 23:28:04 -0800</bug_when>
    <thetext>Comment on attachment 173830
patch_v4

Nice work! r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765346</commentid>
    <comment_count>11</comment_count>
      <attachid>173830</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 00:33:43 -0800</bug_when>
    <thetext>Comment on attachment 173830
patch_v4

Clearing flags on attachment: 173830

Committed r134378: &lt;http://trac.webkit.org/changeset/134378&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765347</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 00:33:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172810</attachid>
            <date>2012-11-07 08:21:14 -0800</date>
            <delta_ts>2012-11-08 05:59:28 -0800</delta_ts>
            <desc>patch</desc>
            <filename>graphics_neon.patch</filename>
            <type>text/plain</type>
            <size>11856</size>
            <attacher name="Gabor Rapcsanyi">rgabor</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMDNiMDNiMS4uZTk5ZjE3MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTQ4LDYgKzQ4LDcgQEAgU0VUKFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9hbmltYXRpb24iCiAgICAgIiR7V0VCQ09SRV9E
SVJ9L3BsYXRmb3JtL2F1ZGlvIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGlj
cyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvYXJtIgogICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzIgogICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybSIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxh
dGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enoiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdiZjEzZi4uZDI0OGNmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTExLTA3ICBHYWJvciBSYXBjc2FueWkg
IDxyZ2Fib3JAd2Via2l0Lm9yZz4KKworICAgICAgICBPcHRpbWl6ZSBSR0JBNDQ0NFRvUkdCQTgg
cGFja2luZy91bnBhY2tpbmcgZnVuY3Rpb25zIHdpdGggTkVPTiBpbnRyaW5zaWNzIGluIEdyYXBo
aWNzQ29udGV4dDNECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDE0NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXaXRoIE5FT04gaW50cmluc2ljcyB0aGUgcGFja2luZy91bnBhY2tpbmcgZnVuY3Rpb25z
IGNhbiBiZSBvcHRpbWl6ZWQgd2VsbC4KKyAgICAgICAgVGhpcyBwYXJ0aWN1bGFyIGZ1bmN0aW9u
IGlzIGFib3V0IDMgdGltZXMgZmFzdGVyIHdpdGggQVJNIE5FT04uIE9uIHRvcCBsZXZlbCB0ZXN0
cworICAgICAgICB0aGUgc3BlZWQgdXAgd2FzIDEuMTh4LgorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQu
cHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXJtL0dyYXBoaWNzQ29udGV4dDNETkVPTi5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6dW5wYWNrT25l
Um93T2ZSR0JBNDQ0NFRvUkdCQThORU9OKToKKyAgICAgICAgKFdlYkNvcmU6OnBhY2tPbmVSb3dP
ZlJHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NE5FT04pOgorCiAyMDEyLTExLTA3ICBBbmRyZXkgQWRh
aWtpbiAgPGFhbmRyZXlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtD
YW52YXNdIGNsb3N1cmUgY29tcGlsZXIgZml4ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CmluZGV4IGYwMDkwNDAuLjZhMWFkMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtNDI4NSw2ICs0Mjg1LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9IaXN0b2dyYW1TdXBwb3J0LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXJtL0dyYXBoaWNzQ29udGV4dDNETkVPTi5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA1NGFlZDEzLi4wZjNmMmY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKQEAgLTM5NTMsNiArMzk1Myw3IEBAIGVuYWJsZT8oV0VCR0wpIHsKIAogdXNl
PygzRF9HUkFQSElDUykgewogICAgIEhFQURFUlMgKz0gXAorICAgICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9hcm0vR3JhcGhpY3NDb250ZXh0M0RORU9OLmggXAogICAgICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9BTkdMRVdlYktpdEJyaWRnZS5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRXh0
ZW5zaW9uczNELmggXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBhMjljODZhLi41YzQ2MDZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC00MTQsNiArNDE0LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0UmVuZGVyaW5nTW9kZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9UZXh0
UnVuLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1R5cGVzZXR0aW5nRmVhdHVy
ZXMuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvYXJtL0dyYXBoaWNzQ29udGV4
dDNETkVPTi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
ckRhdGFDRy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29sb3JNYWMu
aCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJveHku
aCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJpCmluZGV4IDI5NThiZmQuLmNhOWVlMzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCkBA
IC01Myw2ICs1Myw3IEBAIElOQ0xVREVQQVRIICs9IFwKICAgICAkJFNPVVJDRV9ESVIvcGxhdGZv
cm0vYW5pbWF0aW9uIFwKICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vYXVkaW8gXAogICAgICQk
U09VUkNFX0RJUi9wbGF0Zm9ybS9ncmFwaGljcyBcCisgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3Jt
L2dyYXBoaWNzL2FybSBcCiAgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMgXAogICAgICQkU09VUkNFX0RJUi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybSBcCiAg
ICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2ViYjI2NS4u
MWVmY2ZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTA0NzAsNiArMTA0NzAsNyBAQAogCQk5MzMwOUU5RjA5OUVCNzhDMDA1
NkU1ODEgLyogU2hhcmVkVGltZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBTaGFyZWRUaW1lck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTMzMDlFQTAwOTlFQjc4QzAwNTZFNTgxIC8qIFNoYXJlZFRpbWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZFRpbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzMzA5RUExMDk5RUI3OEMwMDU2RTU4MSAvKiBUaW1lci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzMzM2NjdEMTY0QUE5MTkwMDY1QUJBMCAvKiBHcmFwaGljc0NvbnRleHQz
RE5FT04uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0
M0RORU9OLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMzU0QTNCMEIyNEY4Qzkw
MDNGNkRFQSAvKiBVSUV2ZW50V2l0aEtleVN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFVJRXZlbnRXaXRoS2V5U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzNBMTQyQjBCN0QxODg2MDBBNTNGRkQgLyogVGV4dEV2ZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRFdmVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzM0ExNDJDMEI3RDE4ODYwMEE1M0ZGRCAvKiBUZXh0
RXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFRleHRFdmVudC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzM2MCw2ICsxNzM2MSwxNCBAQAogCQkJdGFiV2lkdGgg
PSA0OwogCQkJdXNlc1RhYnMgPSAwOwogCQl9OworCQk5MzMzNjY3QzE2NEFBOTE5MDA2NUFCQTAg
LyogYXJtICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5
MzMzNjY3RDE2NEFBOTE5MDA2NUFCQTAgLyogR3JhcGhpY3NDb250ZXh0M0RORU9OLmggKi8sCisJ
CQkpOworCQkJcGF0aCA9IGFybTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJ
CTkzNjNCNjI5MEY4RThGRTAwMDgwMzgxMCAvKiBjZiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xOTkyNyw2ICsxOTkzNiw3IEBACiAJCUIyQTAxNTkxMEFG
NkNENTMwMDZCQ0UwRSAvKiBncmFwaGljcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJOTMzMzY2N0MxNjRBQTkxOTAwNjVBQkEwIC8qIGFybSAqLywKIAkJ
CQkwNzZGMEQwODEyQjgxOTI3MDBDMjZBQTQgLyogYXZmb3VuZGF0aW9uICovLAogCQkJCTQ5OUIz
RUMwMTI4Q0NDMTgwMEU3MjZDMiAvKiBjYSAqLywKIAkJCQlCMjc1MzUyOTBCMDUzODE0MDAyQ0U2
NEYgLyogY2cgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzRC5jcHAKaW5kZXggNWY2OTQyYi4uMzZlNzQ4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
LmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIFVTRSgzRF9HUkFQSElDUykKIAogI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RORU9OLmgi
CiAKICNpbmNsdWRlICJDaGVja2VkSW50LmgiCiAjaW5jbHVkZSAiRHJhd2luZ0J1ZmZlci5oIgpA
QCAtNTQxLDYgKzU0MiwxNiBAQCB2b2lkIHVucGFja09uZVJvd09mUkdCQTU1NTFUb1JHQkE4KGNv
bnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLAogCiB2b2lkIHVucGFj
a09uZVJvd09mUkdCQTQ0NDRUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3Qq
IGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBpbnQgcGl4ZWxzUGVyUm93KQogeworI2lmIEhBVkUoQVJN
X05FT05fSU5UUklOU0lDUykKKyAgICB1bnNpZ25lZCB0YWlsUGl4ZWxzID0gcGl4ZWxzUGVyUm93
ICUgODsKKyAgICB1bnNpZ25lZCBwaXhlbFNpemUgPSBwaXhlbHNQZXJSb3cgLSB0YWlsUGl4ZWxz
OworCisgICAgdW5wYWNrT25lUm93T2ZSR0JBNDQ0NFRvUkdCQThORU9OKHNvdXJjZSwgZGVzdGlu
YXRpb24sIHBpeGVsU2l6ZSk7CisKKyAgICBzb3VyY2UgKz0gcGl4ZWxTaXplOworICAgIGRlc3Rp
bmF0aW9uICs9IHBpeGVsU2l6ZSAqIDQ7CisgICAgcGl4ZWxzUGVyUm93ID0gdGFpbFBpeGVsczsK
KyNlbmRpZgogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyAr
K2kpIHsKICAgICAgICAgdWludDE2X3QgcGFja2VkVmFsdWUgPSBzb3VyY2VbMF07CiAgICAgICAg
IHVpbnQ4X3QgciA9IHBhY2tlZFZhbHVlID4+IDEyOwpAQCAtOTQ3LDYgKzk1OCwxNyBAQCB2b2lk
IHBhY2tPbmVSb3dPZlJHQkE4VG9SR0JBOFVubXVsdGlwbHkoY29uc3QgdWludDhfdCogc291cmNl
LCB1aW50OF90KiBkZXN0aW5hdAogCiB2b2lkIHBhY2tPbmVSb3dPZlJHQkE4VG9VbnNpZ25lZFNo
b3J0NDQ0NChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5z
aWduZWQgaW50IHBpeGVsc1BlclJvdykKIHsKKyNpZiBIQVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1Mp
CisgICAgdW5zaWduZWQgY29tcG9uZW50c1BlclJvdyA9IHBpeGVsc1BlclJvdyAqIDQ7CisgICAg
dW5zaWduZWQgdGFpbENvbXBvbmVudHMgPSBjb21wb25lbnRzUGVyUm93ICUgMzI7CisgICAgdW5z
aWduZWQgY29tcG9uZW50c1NpemUgPSBjb21wb25lbnRzUGVyUm93IC0gdGFpbENvbXBvbmVudHM7
CisKKyAgICBwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDQ0NDRORU9OKHNvdXJjZSwg
ZGVzdGluYXRpb24sIGNvbXBvbmVudHNTaXplKTsKKworICAgIHNvdXJjZSArPSBjb21wb25lbnRz
U2l6ZTsKKyAgICBkZXN0aW5hdGlvbiArPSBjb21wb25lbnRzU2l6ZSAvIDQ7CisgICAgcGl4ZWxz
UGVyUm93ID0gdGFpbENvbXBvbmVudHMgLyA0OworI2VuZGlmCiAgICAgZm9yICh1bnNpZ25lZCBp
bnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICAqZGVzdGluYXRpb24g
PSAoKChzb3VyY2VbMF0gJiAweEYwKSA8PCA4KQogICAgICAgICAgICAgICAgICAgICAgICAgfCAo
KHNvdXJjZVsxXSAmIDB4RjApIDw8IDQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hcm0vR3JhcGhpY3NDb250ZXh0M0RORU9OLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hcm0vR3JhcGhpY3NDb250ZXh0M0RORU9OLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWRiNGQxMwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FybS9HcmFwaGljc0NvbnRleHQzRE5FT04u
aApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFVuaXZlcnNpdHkg
b2YgU3plZ2VkCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBV
TklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVO
SVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBHcmFwaGljc0NvbnRleHQzRE5FT05faAorI2RlZmlu
ZSBHcmFwaGljc0NvbnRleHQzRE5FT05faAorCisjaWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNT
KQorCisjaW5jbHVkZSA8YXJtX25lb24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lk
IHVucGFja09uZVJvd09mUkdCQTQ0NDRUb1JHQkE4TkVPTihjb25zdCB1aW50MTZfdCogc291cmNl
LCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxTaXplKQoreworICAgIHVpbnQx
Nng4X3QgY29uc3RhbnQgPSB2ZHVwcV9uX3UxNigweDBGKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgcGl4ZWxTaXplOyBpICs9IDgpIHsKKyAgICAgICAgdWludDE2eDhfdCBlaWdodFBp
eGVscyA9IHZsZDFxX3UxNihzb3VyY2UgKyBpKTsKKworICAgICAgICB1aW50OHg4X3QgY29tcG9u
ZW50UiA9IHZxbW92bl91MTYodnNocnFfbl91MTYoZWlnaHRQaXhlbHMsIDEyKSk7CisgICAgICAg
IHVpbnQ4eDhfdCBjb21wb25lbnRHID0gdnFtb3ZuX3UxNih2YW5kcV91MTYodnNocnFfbl91MTYo
ZWlnaHRQaXhlbHMsIDgpLCBjb25zdGFudCkpOworICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50
QiA9IHZxbW92bl91MTYodmFuZHFfdTE2KHZzaHJxX25fdTE2KGVpZ2h0UGl4ZWxzLCA0KSwgY29u
c3RhbnQpKTsKKyAgICAgICAgdWludDh4OF90IGNvbXBvbmVudEEgPSB2cW1vdm5fdTE2KHZhbmRx
X3UxNihlaWdodFBpeGVscywgY29uc3RhbnQpKTsKKworICAgICAgICBjb21wb25lbnRSID0gdm9y
cl91OCh2c2hsX25fdTgoY29tcG9uZW50UiwgNCksIGNvbXBvbmVudFIpOworICAgICAgICBjb21w
b25lbnRHID0gdm9ycl91OCh2c2hsX25fdTgoY29tcG9uZW50RywgNCksIGNvbXBvbmVudEcpOwor
ICAgICAgICBjb21wb25lbnRCID0gdm9ycl91OCh2c2hsX25fdTgoY29tcG9uZW50QiwgNCksIGNv
bXBvbmVudEIpOworICAgICAgICBjb21wb25lbnRBID0gdm9ycl91OCh2c2hsX25fdTgoY29tcG9u
ZW50QSwgNCksIGNvbXBvbmVudEEpOworCisgICAgICAgIHVpbnQ4eDh4NF90IGRlc3RDb21wb25l
bnRzID0ge2NvbXBvbmVudFIsIGNvbXBvbmVudEcsIGNvbXBvbmVudEIsIGNvbXBvbmVudEF9Owor
ICAgICAgICB2c3Q0X3U4KGRlc3RpbmF0aW9uLCBkZXN0Q29tcG9uZW50cyk7CisgICAgICAgIGRl
c3RpbmF0aW9uICs9IDMyOworICAgIH0KK30KKwordm9pZCBwYWNrT25lUm93T2ZSR0JBOFRvVW5z
aWduZWRTaG9ydDQ0NDRORU9OKGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBjb21wb25lbnRzU2l6ZSkKK3sKKyAgICB1aW50OHg4X3QgY29uc3Rh
bnQgPSB2ZHVwX25fdTgoMHhGMCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvbXBv
bmVudHNTaXplOyBpICs9IDMyKSB7CisgICAgICAgIHVpbnQ4eDh4NF90IGNvbXBvbmVudHMgPSB2
bGQ0X3U4KHNvdXJjZSArIGkpOworCisgICAgICAgIHVpbnQ4eDhfdCBjb21wb25lbnRSID0gdmFu
ZF91OChjb21wb25lbnRzLnZhbFswXSwgY29uc3RhbnQpOworICAgICAgICB1aW50OHg4X3QgY29t
cG9uZW50RyA9IHZzaHJfbl91OCh2YW5kX3U4KGNvbXBvbmVudHMudmFsWzFdLCBjb25zdGFudCks
IDQpOworICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50QiA9IHZhbmRfdTgoY29tcG9uZW50cy52
YWxbMl0sIGNvbnN0YW50KTsKKyAgICAgICAgdWludDh4OF90IGNvbXBvbmVudEEgPSB2c2hyX25f
dTgodmFuZF91OChjb21wb25lbnRzLnZhbFszXSwgY29uc3RhbnQpLCA0KTsKKworICAgICAgICB1
aW50OHg4X3QgY29tcG9uZW50UkcgPSB2b3JyX3U4KGNvbXBvbmVudFIsIGNvbXBvbmVudEcpOwor
ICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50QkEgPSB2b3JyX3U4KGNvbXBvbmVudEIsIGNvbXBv
bmVudEEpOworCisgICAgICAgIHVpbnQ4eDh4Ml90IHRtcCA9IHZ6aXBfdTgoY29tcG9uZW50QkEs
IGNvbXBvbmVudFJHKTsKKyAgICAgICAgdWludDh4MTZfdCByZXN1bHQgPSB2Y29tYmluZV91OCh0
bXAudmFsWzBdLCB0bXAudmFsWzFdKTsKKworICAgICAgICB2c3QxcV91MTYoZGVzdGluYXRpb24s
IHZyZWludGVycHJldHFfdTE2X3U4KHJlc3VsdCkpOworICAgICAgICBkZXN0aW5hdGlvbiArPSA4
OworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSEFWRShB
Uk1fTkVPTl9JTlRSSU5TSUNTKQorCisjZW5kaWYgLy8gR3JhcGhpY3NDb250ZXh0M0RORU9OX2gK
</data>
<flag name="commit-queue"
          id="187269"
          type_id="3"
          status="-"
          setter="gtk-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173024</attachid>
            <date>2012-11-08 05:59:28 -0800</date>
            <delta_ts>2012-11-12 08:55:33 -0800</delta_ts>
            <desc>patch_v2</desc>
            <filename>graphics_neon2.patch</filename>
            <type>text/plain</type>
            <size>13125</size>
            <attacher name="Gabor Rapcsanyi">rgabor</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMzg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEyLTExLTA4ICBHYWJvciBS
YXBjc2FueWkgIDxyZ2Fib3JAd2Via2l0Lm9yZz4KKworICAgICAgICBPcHRpbWl6ZSBSR0JBNDQ0
NFRvUkdCQTggcGFja2luZy91bnBhY2tpbmcgZnVuY3Rpb25zIHdpdGggTkVPTiBpbnRyaW5zaWNz
IGluIEdyYXBoaWNzQ29udGV4dDNECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDE0NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXaXRoIE5FT04gaW50cmluc2ljcyB0aGUgcGFja2luZy91bnBhY2tpbmcg
ZnVuY3Rpb25zIGNhbiBiZSBvcHRpbWl6ZWQgd2VsbC4KKyAgICAgICAgVGhpcyBwYXJ0aWN1bGFy
IGZ1bmN0aW9uIGlzIGFib3V0IDMgdGltZXMgZmFzdGVyIHdpdGggQVJNIE5FT04uIE9uIHRvcCBs
ZXZlbCB0ZXN0cworICAgICAgICB0aGUgc3BlZWQgdXAgd2FzIDEuMTh4LgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAg
KiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
LnByaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXJtL0dyYXBoaWNzQ29udGV4
dDNETkVPTi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
dW5wYWNrT25lUm93T2ZSR0JBNDQ0NFRvUkdCQThORU9OKToKKyAgICAgICAgKFdlYkNvcmU6OnBh
Y2tPbmVSb3dPZlJHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NE5FT04pOgorCiAyMDEyLTExLTA4ICBL
eXVuZ1RhZSBLaW0gIDxrdGYua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVudXNlZCBwYXJh
bWV0ZXJzIG9uIEdyYXBoaWNzTGF5ZXJVcGRhdGVyLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQJKHJldmlzaW9uIDEzMzg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw3IEBAIFNFVChXZWJDb3JlX0lOQ0xVREVfRElSRUNU
T1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vYW5pbWF0aW9uIgogICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9hdWRpbyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0v
Z3JhcGhpY3MiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2FybSIKICAg
ICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycyIKICAgICAiJHtXRUJD
T1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0iCiAgICAgIiR7V0VCQ09SRV9E
SVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6IgpJbmRleDogU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0J
KHJldmlzaW9uIDEzMzg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1JJChz
cmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbiBcCiAJLUkkKHNyY2Rpcikv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzIFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hcm0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvYXJtIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUgXApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShy
ZXZpc2lvbiAxMzM4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3
b3JraW5nIGNvcHkpCkBAIC00Mjg1LDYgKzQyODUsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hpc3RvZ3JhbVN1cHBvcnQuaCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oIFwKKwlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hcm0vR3JhcGhpY3NDb250ZXh0M0RORU9OLmggXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkocmV2
aXNpb24gMTMzODg5KQorKysgU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkod29ya2luZyBjb3B5
KQpAQCAtMzk1Miw2ICszOTUyLDcgQEAgZW5hYmxlPyhXRUJHTCkgewogCiB1c2U/KDNEX0dSQVBI
SUNTKSB7CiAgICAgSEVBREVSUyArPSBcCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2FybS9H
cmFwaGljc0NvbnRleHQzRE5FT04uaCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0FOR0xF
V2ViS2l0QnJpZGdlLmggXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0Qu
aCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggXApJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTMzODg5KQorKysgU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC00MTQsNiArNDE0LDcgQEAKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9UZXh0UmVuZGVyaW5nTW9kZS5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL1R5cGVzZXR0aW5nRmVhdHVyZXMuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvYXJtL0dyYXBoaWNzQ29udGV4dDNETkVPTi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvQ29sb3JNYWMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL01lZGlhUGxheWVyUHJveHkuaCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQkocmV2aXNpb24gMTMz
ODg5KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTUz
LDYgKzUzLDcgQEAgSU5DTFVERVBBVEggKz0gXAogICAgICQkU09VUkNFX0RJUi9wbGF0Zm9ybS9h
bmltYXRpb24gXAogICAgICQkU09VUkNFX0RJUi9wbGF0Zm9ybS9hdWRpbyBcCiAgICAgJCRTT1VS
Q0VfRElSL3BsYXRmb3JtL2dyYXBoaWNzIFwKKyAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXJtIFwKICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycyBc
CiAgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtIFwKICAgICAk
JFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsIFwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCShyZXZpc2lvbiAxMzM4ODkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEw
OSw3IEBACiAgICAgICAnLi4vcGxhdGZvcm0vY2hyb21pdW0nLAogICAgICAgJy4uL3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQnLAogICAgICAgJy4uL3BsYXRmb3JtL2dyYXBoaWNzJywKKyAgICAg
ICcuLi9wbGF0Zm9ybS9ncmFwaGljcy9hcm0nLAogICAgICAgJy4uL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtJywKICAgICAgICcuLi9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYycsCiAg
ICAgICAnLi4vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycycsCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMzM4
ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTEwNDY3LDYgKzEwNDY3LDcgQEAKIAkJOTMzMDlFOUYwOTlFQjc4
QzAwNTZFNTgxIC8qIFNoYXJlZFRpbWVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gU2hhcmVkVGltZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzMzA5RUEwMDk5RUI3OEMwMDU2RTU4MSAvKiBTaGFyZWRUaW1lci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWRUaW1lci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzMwOUVBMTA5OUVCNzhDMDA1NkU1ODEgLyogVGltZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGltZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MzMzNjY3RDE2NEFBOTE5MDA2NUFCQTAgLyogR3JhcGhpY3NDb250
ZXh0M0RORU9OLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29u
dGV4dDNETkVPTi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzM1NEEzQjBCMjRG
OEM5MDAzRjZERUEgLyogVUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBVSUV2ZW50V2l0aEtleVN0YXRlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTMzQTE0MkIwQjdEMTg4NjAwQTUzRkZEIC8qIFRleHRFdmVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0RXZlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzNBMTQyQzBCN0QxODg2MDBBNTNGRkQgLyog
VGV4dEV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBUZXh0RXZlbnQuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTczNTYsNiArMTczNTcsMTQgQEAKIAkJCXRhYldp
ZHRoID0gNDsKIAkJCXVzZXNUYWJzID0gMDsKIAkJfTsKKwkJOTMzMzY2N0MxNjRBQTkxOTAwNjVB
QkEwIC8qIGFybSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJ
CQkJOTMzMzY2N0QxNjRBQTkxOTAwNjVBQkEwIC8qIEdyYXBoaWNzQ29udGV4dDNETkVPTi5oICov
LAorCQkJKTsKKwkJCXBhdGggPSBhcm07CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9
OwogCQk5MzYzQjYyOTBGOEU4RkUwMDA4MDM4MTAgLyogY2YgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTk5MjMsNiArMTk5MzIsNyBAQAogCQlCMkEwMTU5
MTBBRjZDRDUzMDA2QkNFMEUgLyogZ3JhcGhpY3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTkzMzM2NjdDMTY0QUE5MTkwMDY1QUJBMCAvKiBhcm0gKi8s
CiAJCQkJMDc2RjBEMDgxMkI4MTkyNzAwQzI2QUE0IC8qIGF2Zm91bmRhdGlvbiAqLywKIAkJCQk0
OTlCM0VDMDEyOENDQzE4MDBFNzI2QzIgLyogY2EgKi8sCiAJCQkJQjI3NTM1MjkwQjA1MzgxNDAw
MkNFNjRGIC8qIGNnICovLApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAkocmV2aXNpb24gMTMzODg5KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgVVNFKDNEX0dSQVBISUNTKQogCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQz
RE5FT04uaCIKIAogI2luY2x1ZGUgIkNoZWNrZWRJbnQuaCIKICNpbmNsdWRlICJEcmF3aW5nQnVm
ZmVyLmgiCkBAIC01NDEsNiArNTQyLDE2IEBAIHZvaWQgdW5wYWNrT25lUm93T2ZSR0JBNTU1MVRv
UkdCQTgoY29uc3QKIAogdm9pZCB1bnBhY2tPbmVSb3dPZlJHQkE0NDQ0VG9SR0JBOChjb25zdCB1
aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgaW50IHBpeGVs
c1BlclJvdykKIHsKKyNpZiBIQVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1MpCisgICAgdW5zaWduZWQg
dGFpbFBpeGVscyA9IHBpeGVsc1BlclJvdyAlIDg7CisgICAgdW5zaWduZWQgcGl4ZWxTaXplID0g
cGl4ZWxzUGVyUm93IC0gdGFpbFBpeGVsczsKKworICAgIHVucGFja09uZVJvd09mUkdCQTQ0NDRU
b1JHQkE4TkVPTihzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbFNpemUpOworCisgICAgc291cmNl
ICs9IHBpeGVsU2l6ZTsKKyAgICBkZXN0aW5hdGlvbiArPSBwaXhlbFNpemUgKiA0OworICAgIHBp
eGVsc1BlclJvdyA9IHRhaWxQaXhlbHM7CisjZW5kaWYKICAgICBmb3IgKHVuc2lnbmVkIGludCBp
ID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIHVpbnQxNl90IHBhY2tlZFZh
bHVlID0gc291cmNlWzBdOwogICAgICAgICB1aW50OF90IHIgPSBwYWNrZWRWYWx1ZSA+PiAxMjsK
QEAgLTk0Nyw2ICs5NTgsMTcgQEAgdm9pZCBwYWNrT25lUm93T2ZSR0JBOFRvUkdCQThVbm11bHRp
cGx5KAogCiB2b2lkIHBhY2tPbmVSb3dPZlJHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NChjb25zdCB1
aW50OF90KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgaW50IHBpeGVs
c1BlclJvdykKIHsKKyNpZiBIQVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1MpCisgICAgdW5zaWduZWQg
Y29tcG9uZW50c1BlclJvdyA9IHBpeGVsc1BlclJvdyAqIDQ7CisgICAgdW5zaWduZWQgdGFpbENv
bXBvbmVudHMgPSBjb21wb25lbnRzUGVyUm93ICUgMzI7CisgICAgdW5zaWduZWQgY29tcG9uZW50
c1NpemUgPSBjb21wb25lbnRzUGVyUm93IC0gdGFpbENvbXBvbmVudHM7CisKKyAgICBwYWNrT25l
Um93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDQ0NDRORU9OKHNvdXJjZSwgZGVzdGluYXRpb24sIGNv
bXBvbmVudHNTaXplKTsKKworICAgIHNvdXJjZSArPSBjb21wb25lbnRzU2l6ZTsKKyAgICBkZXN0
aW5hdGlvbiArPSBjb21wb25lbnRzU2l6ZSAvIDQ7CisgICAgcGl4ZWxzUGVyUm93ID0gdGFpbENv
bXBvbmVudHMgLyA0OworI2VuZGlmCiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBw
aXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICAqZGVzdGluYXRpb24gPSAoKChzb3VyY2VbMF0g
JiAweEYwKSA8PCA4KQogICAgICAgICAgICAgICAgICAgICAgICAgfCAoKHNvdXJjZVsxXSAmIDB4
RjApIDw8IDQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hcm0vR3Jh
cGhpY3NDb250ZXh0M0RORU9OLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXJtL0dyYXBoaWNzQ29udGV4dDNETkVPTi5oCShyZXZpc2lvbiAwKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXJtL0dyYXBoaWNzQ29udGV4dDNETkVP
Ti5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBHcmFwaGljc0NvbnRleHQz
RE5FT05faAorI2RlZmluZSBHcmFwaGljc0NvbnRleHQzRE5FT05faAorCisjaWYgSEFWRShBUk1f
TkVPTl9JTlRSSU5TSUNTKQorCisjaW5jbHVkZSA8YXJtX25lb24uaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCit2b2lkIHVucGFja09uZVJvd09mUkdCQTQ0NDRUb1JHQkE4TkVPTihjb25zdCB1
aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxTaXpl
KQoreworICAgIHVpbnQxNng4X3QgY29uc3RhbnQgPSB2ZHVwcV9uX3UxNigweDBGKTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxTaXplOyBpICs9IDgpIHsKKyAgICAgICAgdWlu
dDE2eDhfdCBlaWdodFBpeGVscyA9IHZsZDFxX3UxNihzb3VyY2UgKyBpKTsKKworICAgICAgICB1
aW50OHg4X3QgY29tcG9uZW50UiA9IHZxbW92bl91MTYodnNocnFfbl91MTYoZWlnaHRQaXhlbHMs
IDEyKSk7CisgICAgICAgIHVpbnQ4eDhfdCBjb21wb25lbnRHID0gdnFtb3ZuX3UxNih2YW5kcV91
MTYodnNocnFfbl91MTYoZWlnaHRQaXhlbHMsIDgpLCBjb25zdGFudCkpOworICAgICAgICB1aW50
OHg4X3QgY29tcG9uZW50QiA9IHZxbW92bl91MTYodmFuZHFfdTE2KHZzaHJxX25fdTE2KGVpZ2h0
UGl4ZWxzLCA0KSwgY29uc3RhbnQpKTsKKyAgICAgICAgdWludDh4OF90IGNvbXBvbmVudEEgPSB2
cW1vdm5fdTE2KHZhbmRxX3UxNihlaWdodFBpeGVscywgY29uc3RhbnQpKTsKKworICAgICAgICBj
b21wb25lbnRSID0gdm9ycl91OCh2c2hsX25fdTgoY29tcG9uZW50UiwgNCksIGNvbXBvbmVudFIp
OworICAgICAgICBjb21wb25lbnRHID0gdm9ycl91OCh2c2hsX25fdTgoY29tcG9uZW50RywgNCks
IGNvbXBvbmVudEcpOworICAgICAgICBjb21wb25lbnRCID0gdm9ycl91OCh2c2hsX25fdTgoY29t
cG9uZW50QiwgNCksIGNvbXBvbmVudEIpOworICAgICAgICBjb21wb25lbnRBID0gdm9ycl91OCh2
c2hsX25fdTgoY29tcG9uZW50QSwgNCksIGNvbXBvbmVudEEpOworCisgICAgICAgIHVpbnQ4eDh4
NF90IGRlc3RDb21wb25lbnRzID0ge2NvbXBvbmVudFIsIGNvbXBvbmVudEcsIGNvbXBvbmVudEIs
IGNvbXBvbmVudEF9OworICAgICAgICB2c3Q0X3U4KGRlc3RpbmF0aW9uLCBkZXN0Q29tcG9uZW50
cyk7CisgICAgICAgIGRlc3RpbmF0aW9uICs9IDMyOworICAgIH0KK30KKwordm9pZCBwYWNrT25l
Um93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDQ0NDRORU9OKGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwg
dWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBjb21wb25lbnRzU2l6ZSkKK3sKKyAgICB1
aW50OHg4X3QgY29uc3RhbnQgPSB2ZHVwX25fdTgoMHhGMCk7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IGNvbXBvbmVudHNTaXplOyBpICs9IDMyKSB7CisgICAgICAgIHVpbnQ4eDh4NF90
IGNvbXBvbmVudHMgPSB2bGQ0X3U4KHNvdXJjZSArIGkpOworCisgICAgICAgIHVpbnQ4eDhfdCBj
b21wb25lbnRSID0gdmFuZF91OChjb21wb25lbnRzLnZhbFswXSwgY29uc3RhbnQpOworICAgICAg
ICB1aW50OHg4X3QgY29tcG9uZW50RyA9IHZzaHJfbl91OCh2YW5kX3U4KGNvbXBvbmVudHMudmFs
WzFdLCBjb25zdGFudCksIDQpOworICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50QiA9IHZhbmRf
dTgoY29tcG9uZW50cy52YWxbMl0sIGNvbnN0YW50KTsKKyAgICAgICAgdWludDh4OF90IGNvbXBv
bmVudEEgPSB2c2hyX25fdTgodmFuZF91OChjb21wb25lbnRzLnZhbFszXSwgY29uc3RhbnQpLCA0
KTsKKworICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50UkcgPSB2b3JyX3U4KGNvbXBvbmVudFIs
IGNvbXBvbmVudEcpOworICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50QkEgPSB2b3JyX3U4KGNv
bXBvbmVudEIsIGNvbXBvbmVudEEpOworCisgICAgICAgIHVpbnQ4eDh4Ml90IHRtcCA9IHZ6aXBf
dTgoY29tcG9uZW50QkEsIGNvbXBvbmVudFJHKTsKKyAgICAgICAgdWludDh4MTZfdCByZXN1bHQg
PSB2Y29tYmluZV91OCh0bXAudmFsWzBdLCB0bXAudmFsWzFdKTsKKworICAgICAgICB2c3QxcV91
MTYoZGVzdGluYXRpb24sIHZyZWludGVycHJldHFfdTE2X3U4KHJlc3VsdCkpOworICAgICAgICBk
ZXN0aW5hdGlvbiArPSA4OworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQorCisjZW5kaWYgLy8gR3JhcGhpY3ND
b250ZXh0M0RORU9OX2gK
</data>
<flag name="review"
          id="187566"
          type_id="1"
          status="-"
          setter="zherczeg"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173654</attachid>
            <date>2012-11-12 08:55:33 -0800</date>
            <delta_ts>2012-11-12 23:14:35 -0800</delta_ts>
            <desc>patch_v3</desc>
            <filename>graphics_neon3.patch</filename>
            <type>text/plain</type>
            <size>13416</size>
            <attacher name="Gabor Rapcsanyi">rgabor</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDIzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEyLTExLTEyICBHYWJvciBS
YXBjc2FueWkgIDxyZ2Fib3JAd2Via2l0Lm9yZz4KKworICAgICAgICBPcHRpbWl6ZSBSR0JBNDQ0
NFRvUkdCQTggcGFja2luZy91bnBhY2tpbmcgZnVuY3Rpb25zIHdpdGggTkVPTiBpbnRyaW5zaWNz
IGluIEdyYXBoaWNzQ29udGV4dDNECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDE0NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXaXRoIE5FT04gaW50cmluc2ljcyB0aGUgcGFja2luZy91bnBhY2tpbmcg
ZnVuY3Rpb25zIGNhbiBiZSBvcHRpbWl6ZWQgd2VsbC4KKyAgICAgICAgVGhpcyBwYXJ0aWN1bGFy
IGZ1bmN0aW9uIGlzIGFib3V0IDMgdGltZXMgZmFzdGVyIHdpdGggQVJNIE5FT04uIE9uIHRvcCBs
ZXZlbCB0ZXN0cworICAgICAgICB0aGUgc3BlZWQgdXAgd2FzIDEuMTh4LgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNv
cmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBX
ZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3B1L2FybS9HcmFw
aGljc0NvbnRleHQzRE5FT04uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KEFSTSk6CisgICAgICAgIChXZWJDb3JlOjpBUk06OnVucGFja09uZVJvd09mUkdCQTQ0NDRUb1JH
QkE4TkVPTik6CisgICAgICAgIChXZWJDb3JlOjpBUk06OnBhY2tPbmVSb3dPZlJHQkE4VG9VbnNp
Z25lZFNob3J0NDQ0NE5FT04pOgorCiAyMDEyLTExLTEyICBUaWFuY2hlbmcgSmlhbmcgIDx0aWpp
YW5nQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIFVwZGF0ZSBCQjEwIGZvcm0gdGhl
bWUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTM0MjM4KQorKysgU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAg
U0VUKFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS9hbmltYXRpb24iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2F1ZGlvIgogICAg
ICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcyIKKyAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vZ3JhcGhpY3MvY3B1L2FybSIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9hcm0iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZi
dXp6IgpJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDEzNDIzOCkKKysrIFNvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBA
IHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2FuaW1hdGlvbiBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzIFwKKwkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJtIFwKIAkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzIFwKIAkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybSBc
CiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1IFwKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTM0MjM4KQorKysgU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtNDI2OCw2
ICs0MjY4LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9IaXN0b2dyYW1TdXBwb3J0LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0FOR0xFV2ViS2l0QnJpZGdlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQU5HTEVXZWJLaXRCcmlkZ2UuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3B1L2FybS9HcmFwaGljc0NvbnRleHQzRE5FT04uaCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db2xvci5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxMzQyMzgpCisrKyBT
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0zOTU3LDYgKzM5NTcs
NyBAQCBlbmFibGU/KFdFQkdMKSB7CiAKIHVzZT8oM0RfR1JBUEhJQ1MpIHsKICAgICBIRUFERVJT
ICs9IFwKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3B1L2FybS9HcmFwaGljc0NvbnRleHQz
RE5FT04uaCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgg
XAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaCBcCiAgICAgICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggXApJbmRleDogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQkocmV2aXNpb24gMTM0MjM4KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MTQsNiArNDE0LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9UZXh0UmVuZGVyaW5nTW9kZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9UZXh0UnVuLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1R5cGVzZXR0aW5n
RmVhdHVyZXMuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY3B1L2FybS9HcmFw
aGljc0NvbnRleHQzRE5FT04uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJEYXRhQ0cuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0NvbG9yTWFjLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBs
YXllclByb3h5LmgnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlzaW9uIDEzNDIzOCkKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBA
IElOQ0xVREVQQVRIICs9IFwKICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vYW5pbWF0aW9uIFwK
ICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vYXVkaW8gXAogICAgICQkU09VUkNFX0RJUi9wbGF0
Zm9ybS9ncmFwaGljcyBcCisgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2dyYXBoaWNzL2NwdS9h
cm0gXAogICAgICQkU09VUkNFX0RJUi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzIFwKICAgICAk
JFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0gXAogICAgICQkU09VUkNF
X0RJUi9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wgXApJbmRleDogU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXAvV2ViQ29yZS5neXAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXAvV2ViQ29yZS5neXAJKHJldmlzaW9uIDEzNDIzOCkKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsNiArMTExLDcgQEAK
ICAgICAgICcuLi9wbGF0Zm9ybS9ncmFwaGljcycsCiAgICAgICAnLi4vcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0nLAogICAgICAgJy4uL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjJywK
KyAgICAgICcuLi9wbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJtJywKICAgICAgICcuLi9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzJywKICAgICAgICcuLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L2FybScsCiAgICAgICAnLi4vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9za2lhJywKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDEzNDIzOCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTA0NzQsNiArMTA0NzQsNyBAQAogCQk5
MzMwOUU5RjA5OUVCNzhDMDA1NkU1ODEgLyogU2hhcmVkVGltZXJNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTaGFyZWRUaW1lck1hYy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMzMDlFQTAwOTlFQjc4QzAwNTZFNTgxIC8qIFNoYXJlZFRp
bWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZFRpbWVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMzA5RUExMDk5RUI3OEMwMDU2RTU4MSAvKiBU
aW1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaW1lci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMzJBQjNEMTY1MTVENzcwMEQ4MjdFQyAv
KiBHcmFwaGljc0NvbnRleHQzRE5FT04uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gR3JhcGhpY3NDb250ZXh0M0RORU9OLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzMzU0QTNCMEIyNEY4QzkwMDNGNkRFQSAvKiBVSUV2ZW50V2l0aEtleVN0YXRlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVJRXZlbnRXaXRoS2V5U3RhdGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzNBMTQyQjBCN0QxODg2MDBBNTNGRkQg
LyogVGV4dEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRl
eHRFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzM0ExNDJDMEI3RDE4
ODYwMEE1M0ZGRCAvKiBUZXh0RXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFRleHRF
dmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzM2Nyw2ICsxNzM2OCwy
MiBAQAogCQkJdGFiV2lkdGggPSA0OwogCQkJdXNlc1RhYnMgPSAwOwogCQl9OworCQk5MzMyQUIz
QjE2NTE1RDc3MDBEODI3RUMgLyogY3B1ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQk5MzMyQUIzQzE2NTE1RDc3MDBEODI3RUMgLyogYXJtICovLAorCQkJ
KTsKKwkJCXBhdGggPSBjcHU7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk5
MzMyQUIzQzE2NTE1RDc3MDBEODI3RUMgLyogYXJtICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5MzMyQUIzRDE2NTE1RDc3MDBEODI3RUMgLyogR3JhcGhp
Y3NDb250ZXh0M0RORU9OLmggKi8sCisJCQkpOworCQkJcGF0aCA9IGFybTsKKwkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTkzNjNCNjI5MEY4RThGRTAwMDgwMzgxMCAvKiBjZiAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xOTkzMyw2ICsx
OTk1MCw3IEBACiAJCUIyQTAxNTkxMEFGNkNENTMwMDZCQ0UwRSAvKiBncmFwaGljcyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOTMzMkFCM0IxNjUxNUQ3
NzAwRDgyN0VDIC8qIGNwdSAqLywKIAkJCQkwNzZGMEQwODEyQjgxOTI3MDBDMjZBQTQgLyogYXZm
b3VuZGF0aW9uICovLAogCQkJCTQ5OUIzRUMwMTI4Q0NDMTgwMEU3MjZDMiAvKiBjYSAqLywKIAkJ
CQlCMjc1MzUyOTBCMDUzODE0MDAyQ0U2NEYgLyogY2cgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwCShy
ZXZpc2lvbiAxMzQyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBV
U0UoM0RfR1JBUEhJQ1MpCiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgorI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dDNETkVPTi5oIgogCiAjaW5jbHVkZSAiQ2hlY2tlZEludC5oIgog
I2luY2x1ZGUgIkRyYXdpbmdCdWZmZXIuaCIKQEAgLTU0MSw2ICs1NDIsMTYgQEAgdm9pZCB1bnBh
Y2tPbmVSb3dPZlJHQkE1NTUxVG9SR0JBOChjb25zdAogCiB2b2lkIHVucGFja09uZVJvd09mUkdC
QTQ0NDRUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBpbnQgcGl4ZWxzUGVyUm93KQogeworI2lmIEhBVkUoQVJNX05FT05fSU5UUklO
U0lDUykKKyAgICB1bnNpZ25lZCB0YWlsUGl4ZWxzID0gcGl4ZWxzUGVyUm93ICUgODsKKyAgICB1
bnNpZ25lZCBwaXhlbFNpemUgPSBwaXhlbHNQZXJSb3cgLSB0YWlsUGl4ZWxzOworCisgICAgQVJN
Ojp1bnBhY2tPbmVSb3dPZlJHQkE0NDQ0VG9SR0JBOE5FT04oc291cmNlLCBkZXN0aW5hdGlvbiwg
cGl4ZWxTaXplKTsKKworICAgIHNvdXJjZSArPSBwaXhlbFNpemU7CisgICAgZGVzdGluYXRpb24g
Kz0gcGl4ZWxTaXplICogNDsKKyAgICBwaXhlbHNQZXJSb3cgPSB0YWlsUGl4ZWxzOworI2VuZGlm
CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewog
ICAgICAgICB1aW50MTZfdCBwYWNrZWRWYWx1ZSA9IHNvdXJjZVswXTsKICAgICAgICAgdWludDhf
dCByID0gcGFja2VkVmFsdWUgPj4gMTI7CkBAIC05NDcsNiArOTU4LDE3IEBAIHZvaWQgcGFja09u
ZVJvd09mUkdCQThUb1JHQkE4VW5tdWx0aXBseSgKIAogdm9pZCBwYWNrT25lUm93T2ZSR0JBOFRv
VW5zaWduZWRTaG9ydDQ0NDQoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIGludCBwaXhlbHNQZXJSb3cpCiB7CisjaWYgSEFWRShBUk1fTkVPTl9J
TlRSSU5TSUNTKQorICAgIHVuc2lnbmVkIGNvbXBvbmVudHNQZXJSb3cgPSBwaXhlbHNQZXJSb3cg
KiA0OworICAgIHVuc2lnbmVkIHRhaWxDb21wb25lbnRzID0gY29tcG9uZW50c1BlclJvdyAlIDMy
OworICAgIHVuc2lnbmVkIGNvbXBvbmVudHNTaXplID0gY29tcG9uZW50c1BlclJvdyAtIHRhaWxD
b21wb25lbnRzOworCisgICAgQVJNOjpwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDQ0
NDRORU9OKHNvdXJjZSwgZGVzdGluYXRpb24sIGNvbXBvbmVudHNTaXplKTsKKworICAgIHNvdXJj
ZSArPSBjb21wb25lbnRzU2l6ZTsKKyAgICBkZXN0aW5hdGlvbiArPSBjb21wb25lbnRzU2l6ZSAv
IDQ7CisgICAgcGl4ZWxzUGVyUm93ID0gdGFpbENvbXBvbmVudHMgLyA0OworI2VuZGlmCiAgICAg
Zm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAg
ICAqZGVzdGluYXRpb24gPSAoKChzb3VyY2VbMF0gJiAweEYwKSA8PCA4KQogICAgICAgICAgICAg
ICAgICAgICAgICAgfCAoKHNvdXJjZVsxXSAmIDB4RjApIDw8IDQpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJtL0dyYXBoaWNzQ29udGV4dDNETkVPTi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NwdS9hcm0vR3Jh
cGhpY3NDb250ZXh0M0RORU9OLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jcHUvYXJtL0dyYXBoaWNzQ29udGV4dDNETkVPTi5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFVuaXZlcnNpdHkg
b2YgU3plZ2VkCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBV
TklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVO
SVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBHcmFwaGljc0NvbnRleHQzRE5FT05faAorI2RlZmlu
ZSBHcmFwaGljc0NvbnRleHQzRE5FT05faAorCisjaWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNT
KQorCisjaW5jbHVkZSA8YXJtX25lb24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1l
c3BhY2UgQVJNIHsKKworQUxXQVlTX0lOTElORSB2b2lkIHVucGFja09uZVJvd09mUkdCQTQ0NDRU
b1JHQkE4TkVPTihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxTaXplKQoreworICAgIHVpbnQxNng4X3QgY29uc3RhbnQgPSB2ZHVwcV9u
X3UxNigweDBGKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxTaXplOyBpICs9
IDgpIHsKKyAgICAgICAgdWludDE2eDhfdCBlaWdodFBpeGVscyA9IHZsZDFxX3UxNihzb3VyY2Ug
KyBpKTsKKworICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50UiA9IHZxbW92bl91MTYodnNocnFf
bl91MTYoZWlnaHRQaXhlbHMsIDEyKSk7CisgICAgICAgIHVpbnQ4eDhfdCBjb21wb25lbnRHID0g
dnFtb3ZuX3UxNih2YW5kcV91MTYodnNocnFfbl91MTYoZWlnaHRQaXhlbHMsIDgpLCBjb25zdGFu
dCkpOworICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50QiA9IHZxbW92bl91MTYodmFuZHFfdTE2
KHZzaHJxX25fdTE2KGVpZ2h0UGl4ZWxzLCA0KSwgY29uc3RhbnQpKTsKKyAgICAgICAgdWludDh4
OF90IGNvbXBvbmVudEEgPSB2cW1vdm5fdTE2KHZhbmRxX3UxNihlaWdodFBpeGVscywgY29uc3Rh
bnQpKTsKKworICAgICAgICBjb21wb25lbnRSID0gdm9ycl91OCh2c2hsX25fdTgoY29tcG9uZW50
UiwgNCksIGNvbXBvbmVudFIpOworICAgICAgICBjb21wb25lbnRHID0gdm9ycl91OCh2c2hsX25f
dTgoY29tcG9uZW50RywgNCksIGNvbXBvbmVudEcpOworICAgICAgICBjb21wb25lbnRCID0gdm9y
cl91OCh2c2hsX25fdTgoY29tcG9uZW50QiwgNCksIGNvbXBvbmVudEIpOworICAgICAgICBjb21w
b25lbnRBID0gdm9ycl91OCh2c2hsX25fdTgoY29tcG9uZW50QSwgNCksIGNvbXBvbmVudEEpOwor
CisgICAgICAgIHVpbnQ4eDh4NF90IGRlc3RDb21wb25lbnRzID0ge2NvbXBvbmVudFIsIGNvbXBv
bmVudEcsIGNvbXBvbmVudEIsIGNvbXBvbmVudEF9OworICAgICAgICB2c3Q0X3U4KGRlc3RpbmF0
aW9uLCBkZXN0Q29tcG9uZW50cyk7CisgICAgICAgIGRlc3RpbmF0aW9uICs9IDMyOworICAgIH0K
K30KKworQUxXQVlTX0lOTElORSB2b2lkIHBhY2tPbmVSb3dPZlJHQkE4VG9VbnNpZ25lZFNob3J0
NDQ0NE5FT04oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVu
c2lnbmVkIGNvbXBvbmVudHNTaXplKQoreworICAgIHVpbnQ4X3QqIGRzdCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8dWludDhfdCo+KGRlc3RpbmF0aW9uKTsKKyAgICB1aW50OHg4X3QgY29uc3RhbnQgPSB2
ZHVwX25fdTgoMHhGMCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvbXBvbmVudHNT
aXplOyBpICs9IDMyKSB7CisgICAgICAgIHVpbnQ4eDh4NF90IGNvbXBvbmVudHMgPSB2bGQ0X3U4
KHNvdXJjZSArIGkpOworCisgICAgICAgIHVpbnQ4eDhfdCBjb21wb25lbnRSID0gdmFuZF91OChj
b21wb25lbnRzLnZhbFswXSwgY29uc3RhbnQpOworICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50
RyA9IHZzaHJfbl91OCh2YW5kX3U4KGNvbXBvbmVudHMudmFsWzFdLCBjb25zdGFudCksIDQpOwor
ICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50QiA9IHZhbmRfdTgoY29tcG9uZW50cy52YWxbMl0s
IGNvbnN0YW50KTsKKyAgICAgICAgdWludDh4OF90IGNvbXBvbmVudEEgPSB2c2hyX25fdTgodmFu
ZF91OChjb21wb25lbnRzLnZhbFszXSwgY29uc3RhbnQpLCA0KTsKKworICAgICAgICB1aW50OHg4
eDJfdCBSR0JBOworICAgICAgICBSR0JBLnZhbFswXSA9IHZvcnJfdTgoY29tcG9uZW50QiwgY29t
cG9uZW50QSk7CisgICAgICAgIFJHQkEudmFsWzFdID0gdm9ycl91OChjb21wb25lbnRSLCBjb21w
b25lbnRHKTsKKyAgICAgICAgdnN0Ml91OChkc3QsIFJHQkEpOworICAgICAgICBkc3QgKz0gMTY7
CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBBUk0KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQorCisjZW5kaWYgLy8gR3Jh
cGhpY3NDb250ZXh0M0RORU9OX2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173830</attachid>
            <date>2012-11-12 23:14:35 -0800</date>
            <delta_ts>2012-11-13 00:33:42 -0800</delta_ts>
            <desc>patch_v4</desc>
            <filename>graphics_neon4.patch</filename>
            <type>text/plain</type>
            <size>13437</size>
            <attacher name="Gabor Rapcsanyi">rgabor</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDIzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEyLTExLTEyICBHYWJvciBS
YXBjc2FueWkgIDxyZ2Fib3JAd2Via2l0Lm9yZz4KKworICAgICAgICBPcHRpbWl6ZSBSR0JBNDQ0
NFRvUkdCQTggcGFja2luZy91bnBhY2tpbmcgZnVuY3Rpb25zIHdpdGggTkVPTiBpbnRyaW5zaWNz
IGluIEdyYXBoaWNzQ29udGV4dDNECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDE0NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXaXRoIE5FT04gaW50cmluc2ljcyB0aGUgcGFja2luZy91bnBhY2tpbmcg
ZnVuY3Rpb25zIGNhbiBiZSBvcHRpbWl6ZWQgd2VsbC4KKyAgICAgICAgVGhpcyBwYXJ0aWN1bGFy
IGZ1bmN0aW9uIGlzIGFib3V0IDMgdGltZXMgZmFzdGVyIHdpdGggQVJNIE5FT04uIE9uIHRvcCBs
ZXZlbCB0ZXN0cworICAgICAgICB0aGUgc3BlZWQgdXAgd2FzIDEuMTh4LgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNv
cmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBX
ZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3B1L2FybS9HcmFw
aGljc0NvbnRleHQzRE5FT04uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KEFSTSk6CisgICAgICAgIChXZWJDb3JlOjpBUk06OnVucGFja09uZVJvd09mUkdCQTQ0NDRUb1JH
QkE4TkVPTik6CisgICAgICAgIChXZWJDb3JlOjpBUk06OnBhY2tPbmVSb3dPZlJHQkE4VG9VbnNp
Z25lZFNob3J0NDQ0NE5FT04pOgorCiAyMDEyLTExLTEyICBUaWFuY2hlbmcgSmlhbmcgIDx0aWpp
YW5nQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIFVwZGF0ZSBCQjEwIGZvcm0gdGhl
bWUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTM0MjM4KQorKysgU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAg
U0VUKFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS9hbmltYXRpb24iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2F1ZGlvIgogICAg
ICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcyIKKyAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vZ3JhcGhpY3MvY3B1L2FybSIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9hcm0iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZi
dXp6IgpJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDEzNDIzOCkKKysrIFNvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBA
IHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2FuaW1hdGlvbiBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzIFwKKwkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJtIFwKIAkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzIFwKIAkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybSBc
CiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1IFwKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTM0MjM4KQorKysgU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtNDI2OCw2
ICs0MjY4LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9IaXN0b2dyYW1TdXBwb3J0LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0FOR0xFV2ViS2l0QnJpZGdlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQU5HTEVXZWJLaXRCcmlkZ2UuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3B1L2FybS9HcmFwaGljc0NvbnRleHQzRE5FT04uaCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db2xvci5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxMzQyMzgpCisrKyBT
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0zOTU3LDYgKzM5NTcs
NyBAQCBlbmFibGU/KFdFQkdMKSB7CiAKIHVzZT8oM0RfR1JBUEhJQ1MpIHsKICAgICBIRUFERVJT
ICs9IFwKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3B1L2FybS9HcmFwaGljc0NvbnRleHQz
RE5FT04uaCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgg
XAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaCBcCiAgICAgICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggXApJbmRleDogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQkocmV2aXNpb24gMTM0MjM4KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MTQsNiArNDE0LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9UZXh0UmVuZGVyaW5nTW9kZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9UZXh0UnVuLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1R5cGVzZXR0aW5n
RmVhdHVyZXMuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY3B1L2FybS9HcmFw
aGljc0NvbnRleHQzRE5FT04uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJEYXRhQ0cuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0NvbG9yTWFjLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBs
YXllclByb3h5LmgnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlzaW9uIDEzNDIzOCkKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBA
IElOQ0xVREVQQVRIICs9IFwKICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vYW5pbWF0aW9uIFwK
ICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vYXVkaW8gXAogICAgICQkU09VUkNFX0RJUi9wbGF0
Zm9ybS9ncmFwaGljcyBcCisgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2dyYXBoaWNzL2NwdS9h
cm0gXAogICAgICQkU09VUkNFX0RJUi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzIFwKICAgICAk
JFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0gXAogICAgICQkU09VUkNF
X0RJUi9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wgXApJbmRleDogU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXAvV2ViQ29yZS5neXAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXAvV2ViQ29yZS5neXAJKHJldmlzaW9uIDEzNDIzOCkKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsNiArMTExLDcgQEAK
ICAgICAgICcuLi9wbGF0Zm9ybS9ncmFwaGljcycsCiAgICAgICAnLi4vcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0nLAogICAgICAgJy4uL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjJywK
KyAgICAgICcuLi9wbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJtJywKICAgICAgICcuLi9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzJywKICAgICAgICcuLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L2FybScsCiAgICAgICAnLi4vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9za2lhJywKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDEzNDIzOCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTA0NzQsNiArMTA0NzQsNyBAQAogCQk5
MzMwOUU5RjA5OUVCNzhDMDA1NkU1ODEgLyogU2hhcmVkVGltZXJNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTaGFyZWRUaW1lck1hYy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMzMDlFQTAwOTlFQjc4QzAwNTZFNTgxIC8qIFNoYXJlZFRp
bWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZFRpbWVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMzA5RUExMDk5RUI3OEMwMDU2RTU4MSAvKiBU
aW1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaW1lci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMzJBQjNEMTY1MTVENzcwMEQ4MjdFQyAv
KiBHcmFwaGljc0NvbnRleHQzRE5FT04uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gR3JhcGhpY3NDb250ZXh0M0RORU9OLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzMzU0QTNCMEIyNEY4QzkwMDNGNkRFQSAvKiBVSUV2ZW50V2l0aEtleVN0YXRlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVJRXZlbnRXaXRoS2V5U3RhdGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzNBMTQyQjBCN0QxODg2MDBBNTNGRkQg
LyogVGV4dEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRl
eHRFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzM0ExNDJDMEI3RDE4
ODYwMEE1M0ZGRCAvKiBUZXh0RXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFRleHRF
dmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzM2Nyw2ICsxNzM2OCwy
MiBAQAogCQkJdGFiV2lkdGggPSA0OwogCQkJdXNlc1RhYnMgPSAwOwogCQl9OworCQk5MzMyQUIz
QjE2NTE1RDc3MDBEODI3RUMgLyogY3B1ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQk5MzMyQUIzQzE2NTE1RDc3MDBEODI3RUMgLyogYXJtICovLAorCQkJ
KTsKKwkJCXBhdGggPSBjcHU7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk5
MzMyQUIzQzE2NTE1RDc3MDBEODI3RUMgLyogYXJtICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5MzMyQUIzRDE2NTE1RDc3MDBEODI3RUMgLyogR3JhcGhp
Y3NDb250ZXh0M0RORU9OLmggKi8sCisJCQkpOworCQkJcGF0aCA9IGFybTsKKwkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTkzNjNCNjI5MEY4RThGRTAwMDgwMzgxMCAvKiBjZiAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xOTkzMyw2ICsx
OTk1MCw3IEBACiAJCUIyQTAxNTkxMEFGNkNENTMwMDZCQ0UwRSAvKiBncmFwaGljcyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOTMzMkFCM0IxNjUxNUQ3
NzAwRDgyN0VDIC8qIGNwdSAqLywKIAkJCQkwNzZGMEQwODEyQjgxOTI3MDBDMjZBQTQgLyogYXZm
b3VuZGF0aW9uICovLAogCQkJCTQ5OUIzRUMwMTI4Q0NDMTgwMEU3MjZDMiAvKiBjYSAqLywKIAkJ
CQlCMjc1MzUyOTBCMDUzODE0MDAyQ0U2NEYgLyogY2cgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwCShy
ZXZpc2lvbiAxMzQyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBV
U0UoM0RfR1JBUEhJQ1MpCiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgorI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dDNETkVPTi5oIgogCiAjaW5jbHVkZSAiQ2hlY2tlZEludC5oIgog
I2luY2x1ZGUgIkRyYXdpbmdCdWZmZXIuaCIKQEAgLTU0MSw2ICs1NDIsMTYgQEAgdm9pZCB1bnBh
Y2tPbmVSb3dPZlJHQkE1NTUxVG9SR0JBOChjb25zdAogCiB2b2lkIHVucGFja09uZVJvd09mUkdC
QTQ0NDRUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBpbnQgcGl4ZWxzUGVyUm93KQogeworI2lmIEhBVkUoQVJNX05FT05fSU5UUklO
U0lDUykKKyAgICB1bnNpZ25lZCB0YWlsUGl4ZWxzID0gcGl4ZWxzUGVyUm93ICUgODsKKyAgICB1
bnNpZ25lZCBwaXhlbFNpemUgPSBwaXhlbHNQZXJSb3cgLSB0YWlsUGl4ZWxzOworCisgICAgQVJN
Ojp1bnBhY2tPbmVSb3dPZlJHQkE0NDQ0VG9SR0JBOE5FT04oc291cmNlLCBkZXN0aW5hdGlvbiwg
cGl4ZWxTaXplKTsKKworICAgIHNvdXJjZSArPSBwaXhlbFNpemU7CisgICAgZGVzdGluYXRpb24g
Kz0gcGl4ZWxTaXplICogNDsKKyAgICBwaXhlbHNQZXJSb3cgPSB0YWlsUGl4ZWxzOworI2VuZGlm
CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewog
ICAgICAgICB1aW50MTZfdCBwYWNrZWRWYWx1ZSA9IHNvdXJjZVswXTsKICAgICAgICAgdWludDhf
dCByID0gcGFja2VkVmFsdWUgPj4gMTI7CkBAIC05NDcsNiArOTU4LDE3IEBAIHZvaWQgcGFja09u
ZVJvd09mUkdCQThUb1JHQkE4VW5tdWx0aXBseSgKIAogdm9pZCBwYWNrT25lUm93T2ZSR0JBOFRv
VW5zaWduZWRTaG9ydDQ0NDQoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIGludCBwaXhlbHNQZXJSb3cpCiB7CisjaWYgSEFWRShBUk1fTkVPTl9J
TlRSSU5TSUNTKQorICAgIHVuc2lnbmVkIGNvbXBvbmVudHNQZXJSb3cgPSBwaXhlbHNQZXJSb3cg
KiA0OworICAgIHVuc2lnbmVkIHRhaWxDb21wb25lbnRzID0gY29tcG9uZW50c1BlclJvdyAlIDMy
OworICAgIHVuc2lnbmVkIGNvbXBvbmVudHNTaXplID0gY29tcG9uZW50c1BlclJvdyAtIHRhaWxD
b21wb25lbnRzOworCisgICAgQVJNOjpwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDQ0
NDRORU9OKHNvdXJjZSwgZGVzdGluYXRpb24sIGNvbXBvbmVudHNTaXplKTsKKworICAgIHNvdXJj
ZSArPSBjb21wb25lbnRzU2l6ZTsKKyAgICBkZXN0aW5hdGlvbiArPSBjb21wb25lbnRzU2l6ZSAv
IDQ7CisgICAgcGl4ZWxzUGVyUm93ID0gdGFpbENvbXBvbmVudHMgLyA0OworI2VuZGlmCiAgICAg
Zm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAg
ICAqZGVzdGluYXRpb24gPSAoKChzb3VyY2VbMF0gJiAweEYwKSA8PCA4KQogICAgICAgICAgICAg
ICAgICAgICAgICAgfCAoKHNvdXJjZVsxXSAmIDB4RjApIDw8IDQpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJtL0dyYXBoaWNzQ29udGV4dDNETkVPTi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NwdS9hcm0vR3Jh
cGhpY3NDb250ZXh0M0RORU9OLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jcHUvYXJtL0dyYXBoaWNzQ29udGV4dDNETkVPTi5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdhYm9yIFJhcGNz
YW55aSAocmdhYm9yQGluZi51LXN6ZWdlZC5odSksIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNa
RUdFRCBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pF
R0VEIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBHcmFwaGljc0NvbnRleHQzRE5FT05faAorI2RlZmluZSBHcmFwaGljc0NvbnRl
eHQzRE5FT05faAorCisjaWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQorCisjaW5jbHVkZSA8
YXJtX25lb24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgQVJNIHsKKwor
QUxXQVlTX0lOTElORSB2b2lkIHVucGFja09uZVJvd09mUkdCQTQ0NDRUb1JHQkE4TkVPTihjb25z
dCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxT
aXplKQoreworICAgIHVpbnQxNng4X3QgY29uc3RhbnQgPSB2ZHVwcV9uX3UxNigweDBGKTsKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxTaXplOyBpICs9IDgpIHsKKyAgICAgICAg
dWludDE2eDhfdCBlaWdodFBpeGVscyA9IHZsZDFxX3UxNihzb3VyY2UgKyBpKTsKKworICAgICAg
ICB1aW50OHg4X3QgY29tcG9uZW50UiA9IHZxbW92bl91MTYodnNocnFfbl91MTYoZWlnaHRQaXhl
bHMsIDEyKSk7CisgICAgICAgIHVpbnQ4eDhfdCBjb21wb25lbnRHID0gdnFtb3ZuX3UxNih2YW5k
cV91MTYodnNocnFfbl91MTYoZWlnaHRQaXhlbHMsIDgpLCBjb25zdGFudCkpOworICAgICAgICB1
aW50OHg4X3QgY29tcG9uZW50QiA9IHZxbW92bl91MTYodmFuZHFfdTE2KHZzaHJxX25fdTE2KGVp
Z2h0UGl4ZWxzLCA0KSwgY29uc3RhbnQpKTsKKyAgICAgICAgdWludDh4OF90IGNvbXBvbmVudEEg
PSB2cW1vdm5fdTE2KHZhbmRxX3UxNihlaWdodFBpeGVscywgY29uc3RhbnQpKTsKKworICAgICAg
ICBjb21wb25lbnRSID0gdm9ycl91OCh2c2hsX25fdTgoY29tcG9uZW50UiwgNCksIGNvbXBvbmVu
dFIpOworICAgICAgICBjb21wb25lbnRHID0gdm9ycl91OCh2c2hsX25fdTgoY29tcG9uZW50Rywg
NCksIGNvbXBvbmVudEcpOworICAgICAgICBjb21wb25lbnRCID0gdm9ycl91OCh2c2hsX25fdTgo
Y29tcG9uZW50QiwgNCksIGNvbXBvbmVudEIpOworICAgICAgICBjb21wb25lbnRBID0gdm9ycl91
OCh2c2hsX25fdTgoY29tcG9uZW50QSwgNCksIGNvbXBvbmVudEEpOworCisgICAgICAgIHVpbnQ4
eDh4NF90IGRlc3RDb21wb25lbnRzID0ge2NvbXBvbmVudFIsIGNvbXBvbmVudEcsIGNvbXBvbmVu
dEIsIGNvbXBvbmVudEF9OworICAgICAgICB2c3Q0X3U4KGRlc3RpbmF0aW9uLCBkZXN0Q29tcG9u
ZW50cyk7CisgICAgICAgIGRlc3RpbmF0aW9uICs9IDMyOworICAgIH0KK30KKworQUxXQVlTX0lO
TElORSB2b2lkIHBhY2tPbmVSb3dPZlJHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NE5FT04oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIGNvbXBvbmVu
dHNTaXplKQoreworICAgIHVpbnQ4X3QqIGRzdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+
KGRlc3RpbmF0aW9uKTsKKyAgICB1aW50OHg4X3QgY29uc3RhbnQgPSB2ZHVwX25fdTgoMHhGMCk7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvbXBvbmVudHNTaXplOyBpICs9IDMyKSB7
CisgICAgICAgIHVpbnQ4eDh4NF90IFJHQkE4ID0gdmxkNF91OChzb3VyY2UgKyBpKTsKKworICAg
ICAgICB1aW50OHg4X3QgY29tcG9uZW50UiA9IHZhbmRfdTgoUkdCQTgudmFsWzBdLCBjb25zdGFu
dCk7CisgICAgICAgIHVpbnQ4eDhfdCBjb21wb25lbnRHID0gdnNocl9uX3U4KHZhbmRfdTgoUkdC
QTgudmFsWzFdLCBjb25zdGFudCksIDQpOworICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50QiA9
IHZhbmRfdTgoUkdCQTgudmFsWzJdLCBjb25zdGFudCk7CisgICAgICAgIHVpbnQ4eDhfdCBjb21w
b25lbnRBID0gdnNocl9uX3U4KHZhbmRfdTgoUkdCQTgudmFsWzNdLCBjb25zdGFudCksIDQpOwor
CisgICAgICAgIHVpbnQ4eDh4Ml90IFJHQkE0OworICAgICAgICBSR0JBNC52YWxbMF0gPSB2b3Jy
X3U4KGNvbXBvbmVudEIsIGNvbXBvbmVudEEpOworICAgICAgICBSR0JBNC52YWxbMV0gPSB2b3Jy
X3U4KGNvbXBvbmVudFIsIGNvbXBvbmVudEcpOworICAgICAgICB2c3QyX3U4KGRzdCwgUkdCQTQp
OworICAgICAgICBkc3QgKz0gMTY7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBBUk0KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSEFWRShBUk1fTkVPTl9JTlRSSU5T
SUNTKQorCisjZW5kaWYgLy8gR3JhcGhpY3NDb250ZXh0M0RORU9OX2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>