<?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>103398</bug_id>
          
          <creation_ts>2012-11-27 04:41:12 -0800</creation_ts>
          <short_desc>OpenCL version of FEColorMatrix</short_desc>
          <delta_ts>2012-12-13 07:07:47 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>70099</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Tamas Czene">tczene</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dino</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zherczeg</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>776623</commentid>
    <comment_count>0</comment_count>
    <who name="Tamas Czene">tczene</who>
    <bug_when>2012-11-27 04:41:12 -0800</bug_when>
    <thetext>FEColorMatrix filter need to be implemented on OpenCL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777577</commentid>
    <comment_count>1</comment_count>
      <attachid>176413</attachid>
    <who name="Tamas Czene">tczene</who>
    <bug_when>2012-11-27 23:42:58 -0800</bug_when>
    <thetext>Created attachment 176413
draft patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788455</commentid>
    <comment_count>2</comment_count>
      <attachid>178807</attachid>
    <who name="Tamas Czene">tczene</who>
    <bug_when>2012-12-11 08:03:38 -0800</bug_when>
    <thetext>Created attachment 178807
proposed patch

Benchmark results:

Qt Linux:
GPU: NVIDIA GeForce GT 440
CUDA Cores 96

CPU: Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz
4 Core

Software: 3 fps
OpenCL GPU: 15 fps</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788535</commentid>
    <comment_count>3</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-12-11 09:51:26 -0800</bug_when>
    <thetext>Could you attach the source code of the benchmark as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789268</commentid>
    <comment_count>4</comment_count>
      <attachid>178983</attachid>
    <who name="Tamas Czene">tczene</who>
    <bug_when>2012-12-11 23:57:26 -0800</bug_when>
    <thetext>Created attachment 178983
svg file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790381</commentid>
    <comment_count>5</comment_count>
      <attachid>178807</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-12-13 00:53:16 -0800</bug_when>
    <thetext>Comment on attachment 178807
proposed patch

The patch looks good, only a few changes:

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

&gt; Source/WebCore/ChangeLog:4
&gt; +        OpenCL version of FEColorMatrix.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=103398

Where is the &quot;revewed by&quot; line?

&gt; Source/WebCore/platform/graphics/gpu/opencl/OpenCLFEColorMatrix.cpp:52
&gt; +    values[5]  * sourcePixel.x + values[6]  * sourcePixel.y + values[7]  * sourcePixel.z + values[8]  * sourcePixel.w + values[9],
&gt; +    values[10] * sourcePixel.x + values[11] * sourcePixel.y + values[12] * sourcePixel.z + values[13] * sourcePixel.w + values[14],
&gt; +    values[15] * sourcePixel.x + values[16] * sourcePixel.y + values[17] * sourcePixel.z + values[18] * sourcePixel.w + values[19])

+4 space indentation

&gt; Source/WebCore/platform/graphics/gpu/opencl/OpenCLFEColorMatrix.cpp:60
&gt; +    sourcePixel.x * components[3] + sourcePixel.y * components[4] + sourcePixel.z * components[5],  
&gt; +    sourcePixel.x * components[6] + sourcePixel.y * components[7] + sourcePixel.z * components[8],  
&gt; +    sourcePixel.w)

ditto.

&gt; Source/WebCore/platform/graphics/gpu/opencl/OpenCLFEColorMatrix.cpp:112
&gt; +        colorMatrix = 0;

return. 0 is an invalid value. And an ASSERT_NOT_REACHED()

&gt; Source/WebCore/platform/graphics/gpu/opencl/OpenCLFEColorMatrix.cpp:141
&gt; +    absolutePaintRect().x() - in-&gt;absolutePaintRect().location().x(),
&gt; +    absolutePaintRect().y() - in-&gt;absolutePaintRect().location().y());

Indentation again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790491</commentid>
    <comment_count>6</comment_count>
      <attachid>179248</attachid>
    <who name="Tamas Czene">tczene</who>
    <bug_when>2012-12-13 04:22:30 -0800</bug_when>
    <thetext>Created attachment 179248
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790558</commentid>
    <comment_count>7</comment_count>
      <attachid>179248</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-12-13 06:47:03 -0800</bug_when>
    <thetext>Comment on attachment 179248
proposed patch

r=me nice patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790577</commentid>
    <comment_count>8</comment_count>
      <attachid>179248</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-13 07:07:43 -0800</bug_when>
    <thetext>Comment on attachment 179248
proposed patch

Clearing flags on attachment: 179248

Committed r137591: &lt;http://trac.webkit.org/changeset/137591&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790578</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-13 07:07:47 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176413</attachid>
            <date>2012-11-27 23:42:58 -0800</date>
            <delta_ts>2012-12-11 08:03:38 -0800</delta_ts>
            <desc>draft patch</desc>
            <filename>draft.patch</filename>
            <type>text/plain</type>
            <size>12183</size>
            <attacher name="Tamas Czene">tczene</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCmluZGV4IGRlOWUzZTcuLmM3MGZhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNDA4Nyw2
ICs0MDg3LDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX09QRU5DTD0xKSB7CiAgICAgICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9vcGVuY2wvRmlsdGVyQ29udGV4dE9wZW5DTC5oCiAgICAg
U09VUkNFUyArPSBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9vcGVuY2wvRmlsdGVy
Q29udGV4dE9wZW5DTC5jcHAgXAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvb3BlbmNs
L09wZW5DTEZFQ29sb3JNYXRyaXguY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L29wZW5jbC9PcGVuQ0xGRVNvdXJjZUFscGhhLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9vcGVuY2wvT3BlbkNMRkVTb3VyY2VHcmFwaGljLmNwcCBcCiAgICAgICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2dwdS9vcGVuY2wvT3BlbkNMRkVUdXJidWxlbmNlLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRy
aXguaAppbmRleCA5OWI2NTBiLi5iNTRjNWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaApAQCAtNTMsNiAr
NTMsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHBsYXRmb3JtQXBwbHlTa2lhKCk7CiAg
ICAgdmlydHVhbCBTa0ltYWdlRmlsdGVyKiBjcmVhdGVJbWFnZUZpbHRlcihTa2lhSW1hZ2VGaWx0
ZXJCdWlsZGVyKik7CiAjZW5kaWYKKyNpZiBFTkFCTEUoT1BFTkNMKQorICAgIHZpcnR1YWwgYm9v
bCBwbGF0Zm9ybUFwcGx5T3BlbkNMKCk7CisjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgZHVtcCgp
OwogCiAgICAgdmlydHVhbCBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRT
dHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9vcGVuY2wvRmlsdGVyQ29udGV4dE9wZW5DTC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L29wZW5jbC9GaWx0ZXJDb250ZXh0T3Bl
bkNMLmgKaW5kZXggZDRmYmYzYS4uMGM4ZTMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L29wZW5jbC9GaWx0ZXJDb250ZXh0T3BlbkNMLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L29wZW5jbC9GaWx0ZXJDb250ZXh0
T3BlbkNMLmgKQEAgLTQ5LDEyICs0OSwxNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9jb21tYW5k
UXVldWUoMCkKICAgICAgICAgLCBtX3RyYW5zZm9ybUNvbG9yU3BhY2VQcm9ncmFtKDApCiAgICAg
ICAgICwgbV90cmFuc2Zvcm1Db2xvclNwYWNlS2VybmVsKDApCisgICAgICAgICwgbV9jb2xvck1h
dHJpeENvbXBpbGVTdGF0dXMob3BlbmNsTm90Q29tcGlsZWRZZXQpCisgICAgICAgICwgbV9jb2xv
ck1hdHJpeFByb2dyYW0oMCkKKyAgICAgICAgLCBtX21hdHJpeE9wZXJhdGlvbigwKQorICAgICAg
ICAsIG1fc2F0dXJhdGVPcGVyYXRpb24oMCkKKyAgICAgICAgLCBtX2h1ZXJvdGF0ZU9wZXJhdGlv
bigwKQorICAgICAgICAsIG1fbHVtaW5hbmNlT3BlcmF0aW9uKDApCiAgICAgICAgICwgbV90dXJi
dWxlbmNlQ29tcGlsZVN0YXR1cyhvcGVuY2xOb3RDb21waWxlZFlldCkKICAgICAgICAgLCBtX3R1
cmJ1bGVuY2VQcm9ncmFtKDApCiAgICAgICAgICwgbV90dXJidWxlbmNlT3BlcmF0aW9uKDApCiAg
ICAgewogICAgIH0KLQogICAgIC8vIFJldHVybnMgMCBpZiBpbml0aWFsaXphdGlvbiBmYWlsZWQu
CiAgICAgc3RhdGljIEZpbHRlckNvbnRleHRPcGVuQ0wqIGNvbnRleHQoKTsKIApAQCAtNjUsOCAr
NzAsMTEgQEAgcHVibGljOgogICAgIE9wZW5DTEhhbmRsZSBjcmVhdGVPcGVuQ0xJbWFnZShJbnRT
aXplKTsKICAgICB2b2lkIG9wZW5DTFRyYW5zZm9ybUNvbG9yU3BhY2UoT3BlbkNMSGFuZGxlJiwg
SW50UmVjdCwgQ29sb3JTcGFjZSwgQ29sb3JTcGFjZSk7CiAKKyAgICBpbmxpbmUgYm9vbCBjb21w
aWxlRkVDb2xvck1hdHJpeCgpOwogICAgIGlubGluZSBib29sIGNvbXBpbGVGRVR1cmJ1bGVuY2Uo
KTsKIAorICAgIGlubGluZSB2b2lkIGFwcGx5RkVDb2xvck1hdHJpeChPcGVuQ0xIYW5kbGUsIElu
dFNpemUsIE9wZW5DTEhhbmRsZSwgSW50UG9pbnQsIHZvaWQqLCBpbnQpOworICAgIGlubGluZSB2
b2lkIGFwcGx5RkVDb2xvck1hdHJpeEx1bWluYW5jZVRvQWxwaGEoT3BlbkNMSGFuZGxlLCBJbnRT
aXplLCBPcGVuQ0xIYW5kbGUsIEludFBvaW50KTsKICAgICBpbmxpbmUgdm9pZCBhcHBseUZFVHVy
YnVsZW5jZShPcGVuQ0xIYW5kbGUsIEludFNpemUsIGludCwgdm9pZCosIHZvaWQqLCB2b2lkKiwg
dm9pZCosIHZvaWQqLAogICAgICAgICB2b2lkKiwgaW50LCBpbnQsIGludCwgaW50LCBmbG9hdCwg
ZmxvYXQsIGJvb2wsIGludCwgaW50KTsKIApAQCAtMTQyLDYgKzE1MCwxMyBAQCBwcml2YXRlOgog
ICAgIGNsX3Byb2dyYW0gbV90cmFuc2Zvcm1Db2xvclNwYWNlUHJvZ3JhbTsKICAgICBjbF9rZXJu
ZWwgbV90cmFuc2Zvcm1Db2xvclNwYWNlS2VybmVsOwogCisgICAgT3BlbkNMQ29tcGlsZVN0YXR1
cyBtX2NvbG9yTWF0cml4Q29tcGlsZVN0YXR1czsKKyAgICBjbF9wcm9ncmFtIG1fY29sb3JNYXRy
aXhQcm9ncmFtOworICAgIGNsX2tlcm5lbCBtX21hdHJpeE9wZXJhdGlvbjsKKyAgICBjbF9rZXJu
ZWwgbV9zYXR1cmF0ZU9wZXJhdGlvbjsgCisgICAgY2xfa2VybmVsIG1faHVlcm90YXRlT3BlcmF0
aW9uOworICAgIGNsX2tlcm5lbCBtX2x1bWluYW5jZU9wZXJhdGlvbjsKKwogICAgIE9wZW5DTENv
bXBpbGVTdGF0dXMgbV90dXJidWxlbmNlQ29tcGlsZVN0YXR1czsKICAgICBjbF9wcm9ncmFtIG1f
dHVyYnVsZW5jZVByb2dyYW07CiAgICAgY2xfa2VybmVsIG1fdHVyYnVsZW5jZU9wZXJhdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9vcGVuY2wv
T3BlbkNMRkVDb2xvck1hdHJpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvb3BlbmNsL09wZW5DTEZFQ29sb3JNYXRyaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjczODQ1OTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvb3BlbmNsL09wZW5DTEZFQ29sb3JNYXRyaXguY3BwCkBA
IC0wLDAgKzEsMTc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFRhbWFzIEN6ZW5lIDx0
Y3plbmVAaW5mLnUtc3plZ2VkLmh1PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKEZJ
TFRFUlMpICYmIEVOQUJMRShPUEVOQ0wpCisjaW5jbHVkZSAiRkVDb2xvck1hdHJpeC5oIgorI2lu
Y2x1ZGUgIkZpbHRlckNvbnRleHRPcGVuQ0wuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dGF0aWMgY29uc3QgY2hhciogY29sb3JNYXRyaXhLZXJuZWxQcm9ncmFtID0KK1BST0dSQU1fU1RS
KAorICAgIGNvbnN0IHNhbXBsZXJfdCBzYW1wbGVyID0gQ0xLX05PUk1BTElaRURfQ09PUkRTX0ZB
TFNFIHwgQ0xLX0FERFJFU1NfQ0xBTVBfVE9FREdFIHwgQ0xLX0ZJTFRFUl9ORUFSRVNUOworICAg
IF9fY29uc3RhbnQgZmxvYXQgcGkgPSAzLjE0MTU5MjY1MzU4OTc5MzIzODQ2OworCisgICAgX19r
ZXJuZWwgdm9pZCBNYXRyaXgoX193cml0ZV9vbmx5IGltYWdlMmRfdCBkZXN0aW5hdGlvbiwgX19y
ZWFkX29ubHkgaW1hZ2UyZF90IHNvdXJjZSwgZmxvYXQgeCwgZmxvYXQgeSwgX19jb25zdGFudCBm
bG9hdCAqdmFsdWVzKQorICAgIHsKKyAgICAgICAgaW50MiBzb3VyY2VDb29yZCA9IChpbnQyKSAo
Z2V0X2dsb2JhbF9pZCgwKSArIHgsIGdldF9nbG9iYWxfaWQoMSkgKyB5KTsKKyAgICAgICAgZmxv
YXQ0IHNvdXJjZVBpeGVsID0gcmVhZF9pbWFnZWYoc291cmNlLCBzYW1wbGVyLCBzb3VyY2VDb29y
ZCk7CisKKyAgICAgICAgZmxvYXQ0IGRlc3RpbmF0aW9uUGl4ZWwgPSAoZmxvYXQ0KSh2YWx1ZXNb
MF0gICogc291cmNlUGl4ZWwueCArIHZhbHVlc1sxXSAgKiBzb3VyY2VQaXhlbC55ICsgdmFsdWVz
WzJdICAqIHNvdXJjZVBpeGVsLnogKyB2YWx1ZXNbM10gICogc291cmNlUGl4ZWwudyArIHZhbHVl
c1s0XSAqIDI1NSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZhbHVlc1s1XSAgKiBzb3VyY2VQaXhlbC54ICsgdmFsdWVzWzZdICAqIHNvdXJjZVBpeGVsLnkg
KyB2YWx1ZXNbN10gICogc291cmNlUGl4ZWwueiArIHZhbHVlc1s4XSAgKiBzb3VyY2VQaXhlbC53
ICsgdmFsdWVzWzldICogMjU1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdmFsdWVzWzEwXSAqIHNvdXJjZVBpeGVsLnggKyB2YWx1ZXNbMTFdICogc291cmNl
UGl4ZWwueSArIHZhbHVlc1sxMl0gKiBzb3VyY2VQaXhlbC56ICsgdmFsdWVzWzEzXSAqIHNvdXJj
ZVBpeGVsLncgKyB2YWx1ZXNbMTRdICogMjU1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmFsdWVzWzE1XSAqIHNvdXJjZVBpeGVsLnggKyB2YWx1ZXNbMTZd
ICogc291cmNlUGl4ZWwueSArIHZhbHVlc1sxN10gKiBzb3VyY2VQaXhlbC56ICsgdmFsdWVzWzE4
XSAqIHNvdXJjZVBpeGVsLncgKyB2YWx1ZXNbMTldICogMjU1KTsKKworICAgICAgICB3cml0ZV9p
bWFnZWYoZGVzdGluYXRpb24sIChpbnQyKShnZXRfZ2xvYmFsX2lkKDApLCBnZXRfZ2xvYmFsX2lk
KDEpKSwgZGVzdGluYXRpb25QaXhlbCk7CisgICAgfQorCisKKyAgICBfX2tlcm5lbCB2b2lkIFNh
dHVyYXRlKF9fd3JpdGVfb25seSBpbWFnZTJkX3QgZGVzdGluYXRpb24sIF9fcmVhZF9vbmx5IGlt
YWdlMmRfdCBzb3VyY2UsIGZsb2F0IHgsIGZsb2F0IHksIF9fY29uc3RhbnQgZmxvYXQgKnZhbHVl
cykKKyAgICB7CisgICAgICAgIGludDIgc291cmNlQ29vcmQgPSAoaW50MikgKGdldF9nbG9iYWxf
aWQoMCkgKyB4LCBnZXRfZ2xvYmFsX2lkKDEpICsgeSk7CisgICAgICAgIGZsb2F0NCBzb3VyY2VQ
aXhlbCA9IHJlYWRfaW1hZ2VmKHNvdXJjZSwgc2FtcGxlciwgc291cmNlQ29vcmQpOworCisgICAg
ICAgIGZsb2F0NCBkZXN0aW5hdGlvblBpeGVsID0gKGZsb2F0NCkoKDAuMjEzICsgMC43ODcgKiB2
YWx1ZXNbMF0pICogc291cmNlUGl4ZWwueCArICgwLjcxNSAtIDAuNzE1ICogdmFsdWVzWzBdKSAq
IHNvdXJjZVBpeGVsLnkgKyAoMC4wNzIgLSAwLjA3MiAqIHZhbHVlc1swXSkgKiBzb3VyY2VQaXhl
bC56LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLjIxMyAt
IDAuMjEzICogdmFsdWVzWzBdKSAqIHNvdXJjZVBpeGVsLnggKyAoMC43MTUgKyAwLjI4NSAqIHZh
bHVlc1swXSkgKiBzb3VyY2VQaXhlbC55ICsgKDAuMDcyIC0gMC4wNzIgKiB2YWx1ZXNbMF0pICog
c291cmNlUGl4ZWwueiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoMC4yMTMgLSAwLjIxMyAqIHZhbHVlc1swXSkgKiBzb3VyY2VQaXhlbC54ICsgKDAuNzE1IC0g
MC43MTUgKiB2YWx1ZXNbMF0pICogc291cmNlUGl4ZWwueSArICgwLjA3MiArIDAuOTI4ICogdmFs
dWVzWzBdKSAqIHNvdXJjZVBpeGVsLnosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc291cmNlUGl4ZWwudyk7CisKKyAgICAgICAgd3JpdGVfaW1hZ2VmKGRlc3Rp
bmF0aW9uLCAoaW50MikoZ2V0X2dsb2JhbF9pZCgwKSwgZ2V0X2dsb2JhbF9pZCgxKSksIGRlc3Rp
bmF0aW9uUGl4ZWwpOworICAgIH0KKworICAgIF9fa2VybmVsIHZvaWQgSHVlcm90YXRlKF9fd3Jp
dGVfb25seSBpbWFnZTJkX3QgZGVzdGluYXRpb24sIF9fcmVhZF9vbmx5IGltYWdlMmRfdCBzb3Vy
Y2UsIGZsb2F0IHgsIGZsb2F0IHksIF9fY29uc3RhbnQgZmxvYXQgKnZhbHVlcykKKyAgICB7Cisg
ICAgICAgIGludDIgc291cmNlQ29vcmQgPSAoaW50MikgKGdldF9nbG9iYWxfaWQoMCkgKyB4LCBn
ZXRfZ2xvYmFsX2lkKDEpICsgeSk7CisgICAgICAgIGZsb2F0NCBzb3VyY2VQaXhlbCA9IHJlYWRf
aW1hZ2VmKHNvdXJjZSwgc2FtcGxlciwgc291cmNlQ29vcmQpOworCisgICAgICAgIGZsb2F0IGNv
c0h1ZSA9IGNvcyh2YWx1ZXNbMF0gKiBwaSAvIDE4MCk7CisgICAgICAgIGZsb2F0IHNpbkh1ZSA9
IHNpbih2YWx1ZXNbMF0gKiBwaSAvIDE4MCk7CisKKyAgICAgICAgZmxvYXQ0IGRlc3RpbmF0aW9u
UGl4ZWwgPSAoZmxvYXQ0KShzb3VyY2VQaXhlbC54ICogKDAuMjEzICsgY29zSHVlICogMC43ODcg
LSBzaW5IdWUgKiAwLjIxMykgKyBzb3VyY2VQaXhlbC55ICogKDAuNzE1IC0gY29zSHVlICogMC43
MTUgLSBzaW5IdWUgKiAwLjcxNSkgKyBzb3VyY2VQaXhlbC56ICAqICgwLjA3MiAtIGNvc0h1ZSAq
IDAuMDcyICsgc2luSHVlICogMC45MjgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNvdXJjZVBpeGVsLnggKiAoMC4yMTMgLSBjb3NIdWUgKiAwLjIxMyArIHNp
bkh1ZSAqIDAuMTQzKSArIHNvdXJjZVBpeGVsLnkgKiAoMC43MTUgKyBjb3NIdWUgKiAwLjI4NSAr
IHNpbkh1ZSAqIDAuMTQwKSArIHNvdXJjZVBpeGVsLnogICogKDAuMDcyIC0gY29zSHVlICogMC4w
NzIgLSBzaW5IdWUgKiAwLjI4MyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc291cmNlUGl4ZWwueCAqICgwLjIxMyAtIGNvc0h1ZSAqIDAuMjEzIC0gc2luSHVl
ICogMC43ODcpICsgc291cmNlUGl4ZWwueSAqICgwLjcxNSAtIGNvc0h1ZSAqIDAuNzE1ICsgc2lu
SHVlICogMC43MTUpICsgc291cmNlUGl4ZWwueiAgKiAoMC4wNzIgKyBjb3NIdWUgKiAwLjkyOCAr
IHNpbkh1ZSAqIDAuMDcyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzb3VyY2VQaXhlbC53KTsKKworICAgICAgICB3cml0ZV9pbWFnZWYoZGVzdGluYXRpb24s
IChpbnQyKShnZXRfZ2xvYmFsX2lkKDApLCBnZXRfZ2xvYmFsX2lkKDEpKSwgZGVzdGluYXRpb25Q
aXhlbCk7CisgICAgfQorCisgICAgX19rZXJuZWwgdm9pZCBMdW1pbmFuY2UoX193cml0ZV9vbmx5
IGltYWdlMmRfdCBkZXN0aW5hdGlvbiwgX19yZWFkX29ubHkgaW1hZ2UyZF90IHNvdXJjZSwgZmxv
YXQgeCwgZmxvYXQgeSkKKyAgICB7CisgICAgICAgIGludDIgc291cmNlQ29vcmQgPSAoaW50Mikg
KGdldF9nbG9iYWxfaWQoMCkgKyB4LCBnZXRfZ2xvYmFsX2lkKDEpICsgeSk7CisgICAgICAgIGZs
b2F0NCBzb3VyY2VQaXhlbCA9IHJlYWRfaW1hZ2VmKHNvdXJjZSwgc2FtcGxlciwgc291cmNlQ29v
cmQpOworCisgICAgICAgIGZsb2F0NCBkZXN0aW5hdGlvblBpeGVsID0gKGZsb2F0NCkoMCwgMCwg
MCwgMC4yMTI1ICogc291cmNlUGl4ZWwueCArIDAuNzE1NCAqIHNvdXJjZVBpeGVsLnkgKyAwLjA3
MjEgKiBzb3VyY2VQaXhlbC56KTsKKworICAgICAgICB3cml0ZV9pbWFnZWYoZGVzdGluYXRpb24s
IChpbnQyKShnZXRfZ2xvYmFsX2lkKDApLCBnZXRfZ2xvYmFsX2lkKDEpKSwgc291cmNlUGl4ZWwp
OworICAgIH0KKyk7CisKK2lubGluZSBib29sIEZpbHRlckNvbnRleHRPcGVuQ0w6OmNvbXBpbGVG
RUNvbG9yTWF0cml4KCkKK3sKKyAgICBpZiAobV9jb2xvck1hdHJpeENvbXBpbGVTdGF0dXMgIT0g
b3BlbmNsTm90Q29tcGlsZWRZZXQpCisgICAgICAgIHJldHVybiBtX2NvbG9yTWF0cml4Q29tcGls
ZVN0YXR1cyA9PSBvcGVuY2xDb21waWxlU3VjY2Vzc2Z1bDsKKworICAgIG1fY29sb3JNYXRyaXhD
b21waWxlU3RhdHVzID0gb3BlbmNsQ29tcGlsZUZhaWxlZDsKKyAgICBtX2NvbG9yTWF0cml4UHJv
Z3JhbSA9IGNvbXBpbGVQcm9ncmFtKGNvbG9yTWF0cml4S2VybmVsUHJvZ3JhbSk7CisgICAgaWYg
KCFtX2NvbG9yTWF0cml4UHJvZ3JhbSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIG1fbWF0
cml4T3BlcmF0aW9uID0ga2VybmVsQnlOYW1lKG1fY29sb3JNYXRyaXhQcm9ncmFtLCAiTWF0cml4
Iik7CisgICAgaWYgKCFtX21hdHJpeE9wZXJhdGlvbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIG1fc2F0dXJhdGVPcGVyYXRpb24gPSBrZXJuZWxCeU5hbWUobV9jb2xvck1hdHJpeFByb2dy
YW0sICJTYXR1cmF0ZSIpOworICAgIGlmICghbV9zYXR1cmF0ZU9wZXJhdGlvbikKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIG1faHVlcm90YXRlT3BlcmF0aW9uID0ga2VybmVsQnlOYW1lKG1f
Y29sb3JNYXRyaXhQcm9ncmFtLCAiSHVlcm90YXRlIik7CisgICAgaWYgKCFtX2h1ZXJvdGF0ZU9w
ZXJhdGlvbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIG1fbHVtaW5hbmNlT3BlcmF0aW9u
ID0ga2VybmVsQnlOYW1lKG1fY29sb3JNYXRyaXhQcm9ncmFtLCAiTHVtaW5hbmNlIik7CisgICAg
aWYgKCFtX2x1bWluYW5jZU9wZXJhdGlvbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
bV9jb2xvck1hdHJpeENvbXBpbGVTdGF0dXMgPSBvcGVuY2xDb21waWxlU3VjY2Vzc2Z1bDsKKyAg
ICByZXR1cm4gb3BlbmNsQ29tcGlsZUZhaWxlZDsKK30KKworaW5saW5lIHZvaWQgRmlsdGVyQ29u
dGV4dE9wZW5DTDo6YXBwbHlGRUNvbG9yTWF0cml4KE9wZW5DTEhhbmRsZSBkZXN0aW5hdGlvbiwg
SW50U2l6ZSBkZXN0aW5hdGlvblNpemUsIE9wZW5DTEhhbmRsZSBzb3VyY2UsIEludFBvaW50IHJl
bGF0aXZlU291cmNlTG9jYXRpb24sIHZvaWQqIHZhbHVlcywgaW50IHR5cGUpCit7CisgICAgZmxv
YXQgeCA9IHJlbGF0aXZlU291cmNlTG9jYXRpb24ueCgpOworICAgIGZsb2F0IHkgPSByZWxhdGl2
ZVNvdXJjZUxvY2F0aW9uLnkoKTsKKworICAgIGNsX2tlcm5lbCBjb2xvck1hdHJpeDsKKworICAg
IHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgRkVDT0xPUk1BVFJJWF9UWVBFX01BVFJJWDoKKyAg
ICAgICAgY29sb3JNYXRyaXggPSBtX21hdHJpeE9wZXJhdGlvbjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBGRUNPTE9STUFUUklYX1RZUEVfU0FUVVJBVEU6CisgICAgICAgIGNvbG9yTWF0cml4
ID0gbV9zYXR1cmF0ZU9wZXJhdGlvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGRUNPTE9S
TUFUUklYX1RZUEVfSFVFUk9UQVRFOgorICAgICAgICBjb2xvck1hdHJpeCA9IG1faHVlcm90YXRl
T3BlcmF0aW9uOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBjb2xvck1h
dHJpeCA9IDA7CisgICAgfQorCisgICAgUnVuS2VybmVsIGtlcm5lbCh0aGlzLCBjb2xvck1hdHJp
eCwgZGVzdGluYXRpb25TaXplLndpZHRoKCksIGRlc3RpbmF0aW9uU2l6ZS5oZWlnaHQoKSk7Cisg
ICAga2VybmVsLmFkZEFyZ3VtZW50KGRlc3RpbmF0aW9uKTsKKyAgICBrZXJuZWwuYWRkQXJndW1l
bnQoc291cmNlKTsKKyAgICBrZXJuZWwuYWRkQXJndW1lbnQoeCk7CisgICAga2VybmVsLmFkZEFy
Z3VtZW50KHkpOworICAgIE9wZW5DTEhhbmRsZSBjbFZhbHVlcyA9IGtlcm5lbC5hZGRBcmd1bWVu
dCh2YWx1ZXMsc2l6ZW9mKGZsb2F0KSAqIDIwKTsKKyAgICBrZXJuZWwucnVuKCk7CisKKyAgICBj
bFZhbHVlcy5jbGVhcigpOworfQorCitpbmxpbmUgdm9pZCBGaWx0ZXJDb250ZXh0T3BlbkNMOjph
cHBseUZFQ29sb3JNYXRyaXhMdW1pbmFuY2VUb0FscGhhKE9wZW5DTEhhbmRsZSBkZXN0aW5hdGlv
biwgSW50U2l6ZSBkZXN0aW5hdGlvblNpemUsIE9wZW5DTEhhbmRsZSBzb3VyY2UsIEludFBvaW50
IHJlbGF0aXZlU291cmNlTG9jYXRpb24pCit7CisgICAgUnVuS2VybmVsIGtlcm5lbCh0aGlzLCBt
X2x1bWluYW5jZU9wZXJhdGlvbiwgZGVzdGluYXRpb25TaXplLndpZHRoKCksIGRlc3RpbmF0aW9u
U2l6ZS5oZWlnaHQoKSk7CisgICAga2VybmVsLmFkZEFyZ3VtZW50KGRlc3RpbmF0aW9uKTsKKyAg
ICBrZXJuZWwuYWRkQXJndW1lbnQoc291cmNlKTsKKyAgICBrZXJuZWwuYWRkQXJndW1lbnQocmVs
YXRpdmVTb3VyY2VMb2NhdGlvbi54KCkpOworICAgIGtlcm5lbC5hZGRBcmd1bWVudChyZWxhdGl2
ZVNvdXJjZUxvY2F0aW9uLnkoKSk7CisgICAga2VybmVsLnJ1bigpOworfQorCitib29sIEZFQ29s
b3JNYXRyaXg6OnBsYXRmb3JtQXBwbHlPcGVuQ0woKQoreworICAgIEZpbHRlckNvbnRleHRPcGVu
Q0wqIGNvbnRleHQgPSBGaWx0ZXJDb250ZXh0T3BlbkNMOjpjb250ZXh0KCk7CisgICAgaWYgKCFj
b250ZXh0IHx8ICFjb250ZXh0LT5jb21waWxlRkVDb2xvck1hdHJpeCgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBGaWx0ZXJFZmZlY3QqIGluID0gaW5wdXRFZmZlY3QoMCk7CisgICAg
T3BlbkNMSGFuZGxlIHNvdXJjZSA9IGluLT5vcGVuQ0xJbWFnZSgpOworICAgIE9wZW5DTEhhbmRs
ZSBkZXN0aW5hdGlvbiA9IGNyZWF0ZU9wZW5DTEltYWdlUmVzdWx0KCk7CisKKyAgICBJbnRQb2lu
dCByZWxhdGl2ZVNvdXJjZUxvY2F0aW9uKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpLmxvY2F0aW9u
KCkpOworICAgIHJlbGF0aXZlU291cmNlTG9jYXRpb24uc2V0WChhYnNvbHV0ZVBhaW50UmVjdCgp
LngoKSAtIHJlbGF0aXZlU291cmNlTG9jYXRpb24ueCgpKTsKKyAgICByZWxhdGl2ZVNvdXJjZUxv
Y2F0aW9uLnNldFkoYWJzb2x1dGVQYWludFJlY3QoKS55KCkgLSByZWxhdGl2ZVNvdXJjZUxvY2F0
aW9uLnkoKSk7CisKKyAgICBpZihtX3R5cGUgIT0gRkVDT0xPUk1BVFJJWF9UWVBFX0xVTUlOQU5D
RVRPQUxQSEEpCisgICAgICAgY29udGV4dC0+YXBwbHlGRUNvbG9yTWF0cml4KGRlc3RpbmF0aW9u
LCBhYnNvbHV0ZVBhaW50UmVjdCgpLnNpemUoKSwgc291cmNlLCByZWxhdGl2ZVNvdXJjZUxvY2F0
aW9uLCBtX3ZhbHVlcy5kYXRhKCksIG1fdHlwZSk7CisgICAgZWxzZSB7CisgICAgICAgY29udGV4
dC0+YXBwbHlGRUNvbG9yTWF0cml4THVtaW5hbmNlVG9BbHBoYShkZXN0aW5hdGlvbiwgYWJzb2x1
dGVQYWludFJlY3QoKS5zaXplKCksIHNvdXJjZSwgcmVsYXRpdmVTb3VyY2VMb2NhdGlvbik7Cisg
ICAgfQorICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoRklMVEVSUykgJiYgRU5BQkxFKE9QRU5DTCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178807</attachid>
            <date>2012-12-11 08:03:38 -0800</date>
            <delta_ts>2012-12-13 04:22:30 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>cm.patch</filename>
            <type>text/plain</type>
            <size>15837</size>
            <attacher name="Tamas Czene">tczene</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4MDljZjk2Li4yZDc0MjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTItMTItMTEgIFRhbWFzIEN6ZW5lICA8dGN6ZW5lQGluZi51LXN6ZWdlZC5odT4KKwor
ICAgICAgICBPcGVuQ0wgdmVyc2lvbiBvZiBGRUNvbG9yTWF0cml4LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMzk4CisKKyAgICAgICAgfjN4IHNw
ZWVkLXVwIChkZXBlbmRpbmcgb24gaGFyZHdhcmUgY29uZmlndXJhdGlvbikKKworICAgICAgICAq
IFRhcmdldC5wcmk6IEFkZGVkIGEgbmV3IGZpbGUgdG8gdGhlIGJ1aWxkIHN5c3RlbS4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwOiBSZW1vdmVk
IGNhbGN1bGF0ZVNhdHVyYXRlQ29tcG9uZW50cyBhbmQgY2FsY3VsYXRlSHVlUm90YXRlQ29tcG9u
ZW50cyBtZXRob2RzIGR1ZSB0byByZWRlc2lnbi4KKyAgICAgICAgKFdlYkNvcmU6OmVmZmVjdFR5
cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5o
OiBBZGRlZCBzdGF0aWMgaW5saW5lIG1ldGhvZHMgbWVudGlvbmVkIGFib3ZlIGJlY2F1c2UgdGhl
eSBhcmUgdXNlZCBhdCBPcGVuQ0xGRUNvbG9yTWF0cml4LmNwcCB0b28uIAorICAgICAgICAoRkVD
b2xvck1hdHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbG9yTWF0cml4OjpjYWxjdWxhdGVT
YXR1cmF0ZUNvbXBvbmVudHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGRUNvbG9yTWF0cml4OjpjYWxjdWxhdGVIdWVSb3RhdGVDb21wb25lbnRzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvb3BlbmNsL0ZpbHRlckNvbnRleHRPcGVuQ0wuaDogQWRk
ZWQgc2V2ZXJhbCBjbF9rZXJuZWwgYW5kIGNsX3Byb2dyYW0gYmVjYXVzZSB0aGV5IGFyZSByZXF1
aXJlZCBieSBDb2xvck1hdHJpeCdzIG9wZW5jbCB2ZXJzaW9uLgorICAgICAgICAoV2ViQ29yZTo6
RmlsdGVyQ29udGV4dE9wZW5DTDo6RmlsdGVyQ29udGV4dE9wZW5DTCk6CisgICAgICAgIChGaWx0
ZXJDb250ZXh0T3BlbkNMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvb3BlbmNs
L09wZW5DTEZFQ29sb3JNYXRyaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsdGVyQ29udGV4dE9wZW5DTDo6Y29tcGlsZUZFQ29sb3JNYXRyaXgp
OgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyQ29udGV4dE9wZW5DTDo6YXBwbHlGRUNvbG9yTWF0
cml4KToKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OnBsYXRmb3JtQXBwbHlPcGVu
Q0wpOgorCiAyMDEyLTEyLTExICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTM2OTQ4KTogaW5zcGVjdG9yL3N0eWxlcy9pbXBv
cnQtcHNldWRvY2xhc3MtY3Jhc2guaHRtbCBoaXRzIGFuIGFzc2VydGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5k
ZXggZTVkZDQ3My4uOTllYzUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC00MTExLDYgKzQxMTEsNyBAQCBj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfT1BFTkNMPTEpIHsKICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L29wZW5jbC9GaWx0ZXJDb250ZXh0T3BlbkNMLmgKICAgICBTT1VSQ0VTICs9IFwK
ICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L29wZW5jbC9GaWx0ZXJDb250ZXh0T3BlbkNM
LmNwcCBcCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9vcGVuY2wvT3BlbkNMRkVDb2xv
ck1hdHJpeC5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvb3BlbmNsL09wZW5D
TEZFU291cmNlQWxwaGEuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L29wZW5j
bC9PcGVuQ0xGRVNvdXJjZUdyYXBoaWMuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L29wZW5jbC9PcGVuQ0xGRVR1cmJ1bGVuY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcAppbmRl
eCBkZjc4YWZkLi5iZGY1NTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAKQEAgLTEwNSwzNCArMTA1
LDYgQEAgaW5saW5lIHZvaWQgbHVtaW5hbmNlKGZsb2F0JiByZWQsIGZsb2F0JiBncmVlbiwgZmxv
YXQmIGJsdWUsIGZsb2F0JiBhbHBoYSkKICAgICBibHVlID0gMDsKIH0KIAotaW5saW5lIHZvaWQg
Y2FsY3VsYXRlU2F0dXJhdGVDb21wb25lbnRzKGZsb2F0KiBjb21wb25lbnRzLCBmbG9hdCB2YWx1
ZSkKLXsKLSAgICBjb21wb25lbnRzWzBdID0gKDAuMjEzICsgMC43ODcgKiB2YWx1ZSk7Ci0gICAg
Y29tcG9uZW50c1sxXSA9ICgwLjcxNSAtIDAuNzE1ICogdmFsdWUpOwotICAgIGNvbXBvbmVudHNb
Ml0gPSAoMC4wNzIgLSAwLjA3MiAqIHZhbHVlKTsKLSAgICBjb21wb25lbnRzWzNdID0gKDAuMjEz
IC0gMC4yMTMgKiB2YWx1ZSk7Ci0gICAgY29tcG9uZW50c1s0XSA9ICgwLjcxNSArIDAuMjg1ICog
dmFsdWUpOwotICAgIGNvbXBvbmVudHNbNV0gPSAoMC4wNzIgLSAwLjA3MiAqIHZhbHVlKTsKLSAg
ICBjb21wb25lbnRzWzZdID0gKDAuMjEzIC0gMC4yMTMgKiB2YWx1ZSk7Ci0gICAgY29tcG9uZW50
c1s3XSA9ICgwLjcxNSAtIDAuNzE1ICogdmFsdWUpOwotICAgIGNvbXBvbmVudHNbOF0gPSAoMC4w
NzIgKyAwLjkyOCAqIHZhbHVlKTsKLX0KLQotaW5saW5lIHZvaWQgY2FsY3VsYXRlSHVlUm90YXRl
Q29tcG9uZW50cyhmbG9hdCogY29tcG9uZW50cywgZmxvYXQgdmFsdWUpCi17Ci0gICAgZmxvYXQg
Y29zSHVlID0gY29zKHZhbHVlICogcGlGbG9hdCAvIDE4MCk7Ci0gICAgZmxvYXQgc2luSHVlID0g
c2luKHZhbHVlICogcGlGbG9hdCAvIDE4MCk7Ci0gICAgY29tcG9uZW50c1swXSA9IDAuMjEzICsg
Y29zSHVlICogMC43ODcgLSBzaW5IdWUgKiAwLjIxMzsKLSAgICBjb21wb25lbnRzWzFdID0gMC43
MTUgLSBjb3NIdWUgKiAwLjcxNSAtIHNpbkh1ZSAqIDAuNzE1OwotICAgIGNvbXBvbmVudHNbMl0g
PSAwLjA3MiAtIGNvc0h1ZSAqIDAuMDcyICsgc2luSHVlICogMC45Mjg7Ci0gICAgY29tcG9uZW50
c1szXSA9IDAuMjEzIC0gY29zSHVlICogMC4yMTMgKyBzaW5IdWUgKiAwLjE0MzsKLSAgICBjb21w
b25lbnRzWzRdID0gMC43MTUgKyBjb3NIdWUgKiAwLjI4NSArIHNpbkh1ZSAqIDAuMTQwOwotICAg
IGNvbXBvbmVudHNbNV0gPSAwLjA3MiAtIGNvc0h1ZSAqIDAuMDcyIC0gc2luSHVlICogMC4yODM7
Ci0gICAgY29tcG9uZW50c1s2XSA9IDAuMjEzIC0gY29zSHVlICogMC4yMTMgLSBzaW5IdWUgKiAw
Ljc4NzsKLSAgICBjb21wb25lbnRzWzddID0gMC43MTUgLSBjb3NIdWUgKiAwLjcxNSArIHNpbkh1
ZSAqIDAuNzE1OwotICAgIGNvbXBvbmVudHNbOF0gPSAwLjA3MiArIGNvc0h1ZSAqIDAuOTI4ICsg
c2luSHVlICogMC4wNzI7Ci19Ci0KIHRlbXBsYXRlPENvbG9yTWF0cml4VHlwZSBmaWx0ZXJUeXBl
Pgogdm9pZCBlZmZlY3RUeXBlKFVpbnQ4Q2xhbXBlZEFycmF5KiBwaXhlbEFycmF5LCBjb25zdCBW
ZWN0b3I8ZmxvYXQ+JiB2YWx1ZXMpCiB7CkBAIC0xNDAsOSArMTEyLDkgQEAgdm9pZCBlZmZlY3RU
eXBlKFVpbnQ4Q2xhbXBlZEFycmF5KiBwaXhlbEFycmF5LCBjb25zdCBWZWN0b3I8ZmxvYXQ+JiB2
YWx1ZXMpCiAgICAgZmxvYXQgY29tcG9uZW50c1s5XTsKIAogICAgIGlmIChmaWx0ZXJUeXBlID09
IEZFQ09MT1JNQVRSSVhfVFlQRV9TQVRVUkFURSkKLSAgICAgICAgY2FsY3VsYXRlU2F0dXJhdGVD
b21wb25lbnRzKGNvbXBvbmVudHMsIHZhbHVlc1swXSk7CisgICAgICAgIEZFQ29sb3JNYXRyaXg6
OmNhbGN1bGF0ZVNhdHVyYXRlQ29tcG9uZW50cyhjb21wb25lbnRzLCB2YWx1ZXNbMF0pOwogICAg
IGVsc2UgaWYgKGZpbHRlclR5cGUgPT0gRkVDT0xPUk1BVFJJWF9UWVBFX0hVRVJPVEFURSkKLSAg
ICAgICAgY2FsY3VsYXRlSHVlUm90YXRlQ29tcG9uZW50cyhjb21wb25lbnRzLCB2YWx1ZXNbMF0p
OworICAgICAgICBGRUNvbG9yTWF0cml4OjpjYWxjdWxhdGVIdWVSb3RhdGVDb21wb25lbnRzKGNv
bXBvbmVudHMsIHZhbHVlc1swXSk7CiAKICAgICBmb3IgKHVuc2lnbmVkIHBpeGVsQnl0ZU9mZnNl
dCA9IDA7IHBpeGVsQnl0ZU9mZnNldCA8IHBpeGVsQXJyYXlMZW5ndGg7IHBpeGVsQnl0ZU9mZnNl
dCArPSA0KSB7CiAgICAgICAgIGZsb2F0IHJlZCA9IHBpeGVsQXJyYXktPml0ZW0ocGl4ZWxCeXRl
T2Zmc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb2xvck1hdHJpeC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbG9yTWF0cml4LmgKaW5kZXggOTliNjUwYi4uNzZiMjZjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9y
TWF0cml4LmgKQEAgLTUzLDEwICs1MywxNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHBs
YXRmb3JtQXBwbHlTa2lhKCk7CiAgICAgdmlydHVhbCBTa0ltYWdlRmlsdGVyKiBjcmVhdGVJbWFn
ZUZpbHRlcihTa2lhSW1hZ2VGaWx0ZXJCdWlsZGVyKik7CiAjZW5kaWYKKyNpZiBFTkFCTEUoT1BF
TkNMKQorICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUFwcGx5T3BlbkNMKCk7CisjZW5kaWYKICAg
ICB2aXJ0dWFsIHZvaWQgZHVtcCgpOwogCiAgICAgdmlydHVhbCBUZXh0U3RyZWFtJiBleHRlcm5h
bFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdDsKIAorICAg
IHN0YXRpYyBpbmxpbmUgdm9pZCBjYWxjdWxhdGVTYXR1cmF0ZUNvbXBvbmVudHMoZmxvYXQqIGNv
bXBvbmVudHMsIGZsb2F0IHZhbHVlKTsKKyAgICBzdGF0aWMgaW5saW5lIHZvaWQgY2FsY3VsYXRl
SHVlUm90YXRlQ29tcG9uZW50cyhmbG9hdCogY29tcG9uZW50cywgZmxvYXQgdmFsdWUpOworCiBw
cml2YXRlOgogICAgIEZFQ29sb3JNYXRyaXgoRmlsdGVyKiwgQ29sb3JNYXRyaXhUeXBlLCBjb25z
dCBWZWN0b3I8ZmxvYXQ+Jik7CiAKQEAgLTY0LDYgKzcwLDM1IEBAIHByaXZhdGU6CiAgICAgVmVj
dG9yPGZsb2F0PiBtX3ZhbHVlczsKIH07CiAKK2lubGluZSB2b2lkIEZFQ29sb3JNYXRyaXg6OmNh
bGN1bGF0ZVNhdHVyYXRlQ29tcG9uZW50cyhmbG9hdCogY29tcG9uZW50cywgZmxvYXQgdmFsdWUp
Cit7CisgICAgY29tcG9uZW50c1swXSA9ICgwLjIxMyArIDAuNzg3ICogdmFsdWUpOworICAgIGNv
bXBvbmVudHNbMV0gPSAoMC43MTUgLSAwLjcxNSAqIHZhbHVlKTsKKyAgICBjb21wb25lbnRzWzJd
ID0gKDAuMDcyIC0gMC4wNzIgKiB2YWx1ZSk7CisgICAgY29tcG9uZW50c1szXSA9ICgwLjIxMyAt
IDAuMjEzICogdmFsdWUpOworICAgIGNvbXBvbmVudHNbNF0gPSAoMC43MTUgKyAwLjI4NSAqIHZh
bHVlKTsKKyAgICBjb21wb25lbnRzWzVdID0gKDAuMDcyIC0gMC4wNzIgKiB2YWx1ZSk7CisgICAg
Y29tcG9uZW50c1s2XSA9ICgwLjIxMyAtIDAuMjEzICogdmFsdWUpOworICAgIGNvbXBvbmVudHNb
N10gPSAoMC43MTUgLSAwLjcxNSAqIHZhbHVlKTsKKyAgICBjb21wb25lbnRzWzhdID0gKDAuMDcy
ICsgMC45MjggKiB2YWx1ZSk7Cit9CisKK2lubGluZSB2b2lkIEZFQ29sb3JNYXRyaXg6OmNhbGN1
bGF0ZUh1ZVJvdGF0ZUNvbXBvbmVudHMoZmxvYXQqIGNvbXBvbmVudHMsIGZsb2F0IHZhbHVlKQor
eworICAgIGZsb2F0IGNvc0h1ZSA9IGNvcyh2YWx1ZSAqIHBpRmxvYXQgLyAxODApOworICAgIGZs
b2F0IHNpbkh1ZSA9IHNpbih2YWx1ZSAqIHBpRmxvYXQgLyAxODApOworICAgIGNvbXBvbmVudHNb
MF0gPSAwLjIxMyArIGNvc0h1ZSAqIDAuNzg3IC0gc2luSHVlICogMC4yMTM7CisgICAgY29tcG9u
ZW50c1sxXSA9IDAuNzE1IC0gY29zSHVlICogMC43MTUgLSBzaW5IdWUgKiAwLjcxNTsKKyAgICBj
b21wb25lbnRzWzJdID0gMC4wNzIgLSBjb3NIdWUgKiAwLjA3MiArIHNpbkh1ZSAqIDAuOTI4Owor
ICAgIGNvbXBvbmVudHNbM10gPSAwLjIxMyAtIGNvc0h1ZSAqIDAuMjEzICsgc2luSHVlICogMC4x
NDM7CisgICAgY29tcG9uZW50c1s0XSA9IDAuNzE1ICsgY29zSHVlICogMC4yODUgKyBzaW5IdWUg
KiAwLjE0MDsKKyAgICBjb21wb25lbnRzWzVdID0gMC4wNzIgLSBjb3NIdWUgKiAwLjA3MiAtIHNp
bkh1ZSAqIDAuMjgzOworICAgIGNvbXBvbmVudHNbNl0gPSAwLjIxMyAtIGNvc0h1ZSAqIDAuMjEz
IC0gc2luSHVlICogMC43ODc7CisgICAgY29tcG9uZW50c1s3XSA9IDAuNzE1IC0gY29zSHVlICog
MC43MTUgKyBzaW5IdWUgKiAwLjcxNTsKKyAgICBjb21wb25lbnRzWzhdID0gMC4wNzIgKyBjb3NI
dWUgKiAwLjkyOCArIHNpbkh1ZSAqIDAuMDcyOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShGSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L29wZW5jbC9GaWx0ZXJDb250ZXh0T3BlbkNMLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvb3BlbmNsL0ZpbHRlckNvbnRleHRP
cGVuQ0wuaAppbmRleCBkNGZiZjNhLi4yOThmM2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvb3BlbmNsL0ZpbHRlckNvbnRleHRPcGVuQ0wuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvb3BlbmNsL0ZpbHRlckNvbnRl
eHRPcGVuQ0wuaApAQCAtNDksNiArNDksMTEgQEAgcHVibGljOgogICAgICAgICAsIG1fY29tbWFu
ZFF1ZXVlKDApCiAgICAgICAgICwgbV90cmFuc2Zvcm1Db2xvclNwYWNlUHJvZ3JhbSgwKQogICAg
ICAgICAsIG1fdHJhbnNmb3JtQ29sb3JTcGFjZUtlcm5lbCgwKQorICAgICAgICAsIG1fY29sb3JN
YXRyaXhDb21waWxlU3RhdHVzKG9wZW5jbE5vdENvbXBpbGVkWWV0KQorICAgICAgICAsIG1fY29s
b3JNYXRyaXhQcm9ncmFtKDApCisgICAgICAgICwgbV9tYXRyaXhPcGVyYXRpb24oMCkKKyAgICAg
ICAgLCBtX3NhdHVyYXRlQW5kSHVlUm90YXRlT3BlcmF0aW9uKDApCisgICAgICAgICwgbV9sdW1p
bmFuY2VPcGVyYXRpb24oMCkKICAgICAgICAgLCBtX3R1cmJ1bGVuY2VDb21waWxlU3RhdHVzKG9w
ZW5jbE5vdENvbXBpbGVkWWV0KQogICAgICAgICAsIG1fdHVyYnVsZW5jZVByb2dyYW0oMCkKICAg
ICAgICAgLCBtX3R1cmJ1bGVuY2VPcGVyYXRpb24oMCkKQEAgLTY1LDggKzcwLDEwIEBAIHB1Ymxp
YzoKICAgICBPcGVuQ0xIYW5kbGUgY3JlYXRlT3BlbkNMSW1hZ2UoSW50U2l6ZSk7CiAgICAgdm9p
ZCBvcGVuQ0xUcmFuc2Zvcm1Db2xvclNwYWNlKE9wZW5DTEhhbmRsZSYsIEludFJlY3QsIENvbG9y
U3BhY2UsIENvbG9yU3BhY2UpOwogCisgICAgaW5saW5lIGJvb2wgY29tcGlsZUZFQ29sb3JNYXRy
aXgoKTsKICAgICBpbmxpbmUgYm9vbCBjb21waWxlRkVUdXJidWxlbmNlKCk7CiAKKyAgICBpbmxp
bmUgdm9pZCBhcHBseUZFQ29sb3JNYXRyaXgoT3BlbkNMSGFuZGxlLCBJbnRTaXplLCBPcGVuQ0xI
YW5kbGUsIEludFBvaW50LCB2b2lkKiwgaW50KTsKICAgICBpbmxpbmUgdm9pZCBhcHBseUZFVHVy
YnVsZW5jZShPcGVuQ0xIYW5kbGUsIEludFNpemUsIGludCwgdm9pZCosIHZvaWQqLCB2b2lkKiwg
dm9pZCosIHZvaWQqLAogICAgICAgICB2b2lkKiwgaW50LCBpbnQsIGludCwgaW50LCBmbG9hdCwg
ZmxvYXQsIGJvb2wsIGludCwgaW50KTsKIApAQCAtMTQyLDYgKzE0OSwxMiBAQCBwcml2YXRlOgog
ICAgIGNsX3Byb2dyYW0gbV90cmFuc2Zvcm1Db2xvclNwYWNlUHJvZ3JhbTsKICAgICBjbF9rZXJu
ZWwgbV90cmFuc2Zvcm1Db2xvclNwYWNlS2VybmVsOwogCisgICAgT3BlbkNMQ29tcGlsZVN0YXR1
cyBtX2NvbG9yTWF0cml4Q29tcGlsZVN0YXR1czsKKyAgICBjbF9wcm9ncmFtIG1fY29sb3JNYXRy
aXhQcm9ncmFtOworICAgIGNsX2tlcm5lbCBtX21hdHJpeE9wZXJhdGlvbjsKKyAgICBjbF9rZXJu
ZWwgbV9zYXR1cmF0ZUFuZEh1ZVJvdGF0ZU9wZXJhdGlvbjsgCisgICAgY2xfa2VybmVsIG1fbHVt
aW5hbmNlT3BlcmF0aW9uOworCiAgICAgT3BlbkNMQ29tcGlsZVN0YXR1cyBtX3R1cmJ1bGVuY2VD
b21waWxlU3RhdHVzOwogICAgIGNsX3Byb2dyYW0gbV90dXJidWxlbmNlUHJvZ3JhbTsKICAgICBj
bF9rZXJuZWwgbV90dXJidWxlbmNlT3BlcmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L29wZW5jbC9PcGVuQ0xGRUNvbG9yTWF0cml4LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9vcGVuY2wvT3BlbkNMRkVDb2xv
ck1hdHJpeC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQ1YjFiNGE0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L29wZW5jbC9PcGVuQ0xGRUNvbG9yTWF0cml4LmNwcApAQCAtMCwwICsxLDE1NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorICogQ29weXJpZ2h0IChD
KSAyMDEyIFRhbWFzIEN6ZW5lIDx0Y3plbmVAaW5mLnUtc3plZ2VkLmh1PgorICogQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFVOSVZFUlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
VU5JVkVSU0lUWSBPRiBTWkVHRUQgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoRklM
VEVSUykgJiYgRU5BQkxFKE9QRU5DTCkKKyNpbmNsdWRlICJGRUNvbG9yTWF0cml4LmgiCisKKyNp
bmNsdWRlICJGaWx0ZXJDb250ZXh0T3BlbkNMLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
I2RlZmluZSBDT0xPUl9NQVRSSVhfS0VSTkVMKC4uLikgXAorICAgICAgICBpbnQyIHNvdXJjZUNv
b3JkID0gKGludDIpIChnZXRfZ2xvYmFsX2lkKDApICsgeCwgZ2V0X2dsb2JhbF9pZCgxKSArIHkp
OyBcCisgICAgICAgIGZsb2F0NCBzb3VyY2VQaXhlbCA9IHJlYWRfaW1hZ2VmKHNvdXJjZSwgc2Ft
cGxlciwgc291cmNlQ29vcmQpOyBcCisgICAgICAgIGZsb2F0NCBkZXN0aW5hdGlvblBpeGVsID0g
KGZsb2F0NCkgKF9fVkFfQVJHU19fKTsgXAorICAgICAgICB3cml0ZV9pbWFnZWYoZGVzdGluYXRp
b24sIChpbnQyKSAoZ2V0X2dsb2JhbF9pZCgwKSwgZ2V0X2dsb2JhbF9pZCgxKSksIGRlc3RpbmF0
aW9uUGl4ZWwpOworCitzdGF0aWMgY29uc3QgY2hhciogY29sb3JNYXRyaXhLZXJuZWxQcm9ncmFt
ID0KK1BST0dSQU0oCitjb25zdCBzYW1wbGVyX3Qgc2FtcGxlciA9IENMS19OT1JNQUxJWkVEX0NP
T1JEU19GQUxTRSB8IENMS19BRERSRVNTX0NMQU1QX1RPX0VER0UgfCBDTEtfRklMVEVSX05FQVJF
U1Q7CisKK19fa2VybmVsIHZvaWQgbWF0cml4KF9fd3JpdGVfb25seSBpbWFnZTJkX3QgZGVzdGlu
YXRpb24sIF9fcmVhZF9vbmx5IGltYWdlMmRfdCBzb3VyY2UsIGZsb2F0IHgsIGZsb2F0IHksIF9f
Y29uc3RhbnQgZmxvYXQgKnZhbHVlcykKK3sKKyAgICBDT0xPUl9NQVRSSVhfS0VSTkVMKHZhbHVl
c1swXSAgKiBzb3VyY2VQaXhlbC54ICsgdmFsdWVzWzFdICAqIHNvdXJjZVBpeGVsLnkgKyB2YWx1
ZXNbMl0gICogc291cmNlUGl4ZWwueiArIHZhbHVlc1szXSAgKiBzb3VyY2VQaXhlbC53ICsgdmFs
dWVzWzRdLAorICAgIHZhbHVlc1s1XSAgKiBzb3VyY2VQaXhlbC54ICsgdmFsdWVzWzZdICAqIHNv
dXJjZVBpeGVsLnkgKyB2YWx1ZXNbN10gICogc291cmNlUGl4ZWwueiArIHZhbHVlc1s4XSAgKiBz
b3VyY2VQaXhlbC53ICsgdmFsdWVzWzldLAorICAgIHZhbHVlc1sxMF0gKiBzb3VyY2VQaXhlbC54
ICsgdmFsdWVzWzExXSAqIHNvdXJjZVBpeGVsLnkgKyB2YWx1ZXNbMTJdICogc291cmNlUGl4ZWwu
eiArIHZhbHVlc1sxM10gKiBzb3VyY2VQaXhlbC53ICsgdmFsdWVzWzE0XSwKKyAgICB2YWx1ZXNb
MTVdICogc291cmNlUGl4ZWwueCArIHZhbHVlc1sxNl0gKiBzb3VyY2VQaXhlbC55ICsgdmFsdWVz
WzE3XSAqIHNvdXJjZVBpeGVsLnogKyB2YWx1ZXNbMThdICogc291cmNlUGl4ZWwudyArIHZhbHVl
c1sxOV0pCit9CisKK19fa2VybmVsIHZvaWQgc2F0dXJhdGVBbmRIdWVSb3RhdGUoX193cml0ZV9v
bmx5IGltYWdlMmRfdCBkZXN0aW5hdGlvbiwgX19yZWFkX29ubHkgaW1hZ2UyZF90IHNvdXJjZSwg
ZmxvYXQgeCwgZmxvYXQgeSwgX19jb25zdGFudCBmbG9hdCAqY29tcG9uZW50cykgCit7IAorICAg
IENPTE9SX01BVFJJWF9LRVJORUwoc291cmNlUGl4ZWwueCAqIGNvbXBvbmVudHNbMF0gKyBzb3Vy
Y2VQaXhlbC55ICogY29tcG9uZW50c1sxXSArIHNvdXJjZVBpeGVsLnogKiBjb21wb25lbnRzWzJd
LCAKKyAgICBzb3VyY2VQaXhlbC54ICogY29tcG9uZW50c1szXSArIHNvdXJjZVBpeGVsLnkgKiBj
b21wb25lbnRzWzRdICsgc291cmNlUGl4ZWwueiAqIGNvbXBvbmVudHNbNV0sICAKKyAgICBzb3Vy
Y2VQaXhlbC54ICogY29tcG9uZW50c1s2XSArIHNvdXJjZVBpeGVsLnkgKiBjb21wb25lbnRzWzdd
ICsgc291cmNlUGl4ZWwueiAqIGNvbXBvbmVudHNbOF0sICAKKyAgICBzb3VyY2VQaXhlbC53KQor
fSAKKworX19rZXJuZWwgdm9pZCBsdW1pbmFuY2UoX193cml0ZV9vbmx5IGltYWdlMmRfdCBkZXN0
aW5hdGlvbiwgX19yZWFkX29ubHkgaW1hZ2UyZF90IHNvdXJjZSwgZmxvYXQgeCwgZmxvYXQgeSkg
Cit7IAorICAgIENPTE9SX01BVFJJWF9LRVJORUwoMCwgMCwgMCwgMC4yMTI1ICogc291cmNlUGl4
ZWwueCArIDAuNzE1NCAqIHNvdXJjZVBpeGVsLnkgKyAwLjA3MjEgKiBzb3VyY2VQaXhlbC56KQor
fQorKTsKKworaW5saW5lIGJvb2wgRmlsdGVyQ29udGV4dE9wZW5DTDo6Y29tcGlsZUZFQ29sb3JN
YXRyaXgoKQoreworICAgIGlmIChtX2NvbG9yTWF0cml4Q29tcGlsZVN0YXR1cyAhPSBvcGVuY2xO
b3RDb21waWxlZFlldCkKKyAgICAgICAgcmV0dXJuIG1fY29sb3JNYXRyaXhDb21waWxlU3RhdHVz
ID09IG9wZW5jbENvbXBpbGVTdWNjZXNzZnVsOworCisgICAgbV9jb2xvck1hdHJpeENvbXBpbGVT
dGF0dXMgPSBvcGVuY2xDb21waWxlRmFpbGVkOworICAgIG1fY29sb3JNYXRyaXhQcm9ncmFtID0g
Y29tcGlsZVByb2dyYW0oY29sb3JNYXRyaXhLZXJuZWxQcm9ncmFtKTsKKyAgICBpZiAoIW1fY29s
b3JNYXRyaXhQcm9ncmFtKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX21hdHJpeE9w
ZXJhdGlvbiA9IGtlcm5lbEJ5TmFtZShtX2NvbG9yTWF0cml4UHJvZ3JhbSwgIm1hdHJpeCIpOwor
ICAgIGlmICghbV9tYXRyaXhPcGVyYXRpb24pCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBt
X3NhdHVyYXRlQW5kSHVlUm90YXRlT3BlcmF0aW9uID0ga2VybmVsQnlOYW1lKG1fY29sb3JNYXRy
aXhQcm9ncmFtLCAic2F0dXJhdGVBbmRIdWVSb3RhdGUiKTsKKyAgICBpZiAoIW1fc2F0dXJhdGVB
bmRIdWVSb3RhdGVPcGVyYXRpb24pCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBtX2x1bWlu
YW5jZU9wZXJhdGlvbiA9IGtlcm5lbEJ5TmFtZShtX2NvbG9yTWF0cml4UHJvZ3JhbSwgImx1bWlu
YW5jZSIpOworICAgIGlmICghbV9sdW1pbmFuY2VPcGVyYXRpb24pCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIG1fY29sb3JNYXRyaXhDb21waWxlU3RhdHVzID0gb3BlbmNsQ29tcGlsZVN1
Y2Nlc3NmdWw7CisgICAgcmV0dXJuIG9wZW5jbENvbXBpbGVTdWNjZXNzZnVsOworfQorCitpbmxp
bmUgdm9pZCBGaWx0ZXJDb250ZXh0T3BlbkNMOjphcHBseUZFQ29sb3JNYXRyaXgoT3BlbkNMSGFu
ZGxlIGRlc3RpbmF0aW9uLCBJbnRTaXplIGRlc3RpbmF0aW9uU2l6ZSwgT3BlbkNMSGFuZGxlIHNv
dXJjZSwgSW50UG9pbnQgcmVsYXRpdmVTb3VyY2VMb2NhdGlvbiwgdm9pZCogdmFsdWVzLCBpbnQg
dHlwZSkKK3sKKyAgICBjbF9rZXJuZWwgY29sb3JNYXRyaXg7CisgICAgT3BlbkNMSGFuZGxlIGNs
VmFsdWVzOworCisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBGRUNPTE9STUFUUklYX1RZ
UEVfTUFUUklYOgorICAgICAgICBjb2xvck1hdHJpeCA9IG1fbWF0cml4T3BlcmF0aW9uOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEZFQ09MT1JNQVRSSVhfVFlQRV9TQVRVUkFURToKKyAgICAg
ICAgY29sb3JNYXRyaXggPSBtX3NhdHVyYXRlQW5kSHVlUm90YXRlT3BlcmF0aW9uOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEZFQ09MT1JNQVRSSVhfVFlQRV9IVUVST1RBVEU6CisgICAgICAg
IGNvbG9yTWF0cml4ID0gbV9zYXR1cmF0ZUFuZEh1ZVJvdGF0ZU9wZXJhdGlvbjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBGRUNPTE9STUFUUklYX1RZUEVfTFVNSU5BTkNFVE9BTFBIQToKKyAg
ICAgICAgY29sb3JNYXRyaXggPSBtX2x1bWluYW5jZU9wZXJhdGlvbjsKKyAgICAgICAgYnJlYWs7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgY29sb3JNYXRyaXggPSAwOworICAgIH0KKworICAgIFJ1
bktlcm5lbCBrZXJuZWwodGhpcywgY29sb3JNYXRyaXgsIGRlc3RpbmF0aW9uU2l6ZS53aWR0aCgp
LCBkZXN0aW5hdGlvblNpemUuaGVpZ2h0KCkpOworICAgIGtlcm5lbC5hZGRBcmd1bWVudChkZXN0
aW5hdGlvbik7CisgICAga2VybmVsLmFkZEFyZ3VtZW50KHNvdXJjZSk7CisgICAga2VybmVsLmFk
ZEFyZ3VtZW50KHJlbGF0aXZlU291cmNlTG9jYXRpb24ueCgpKTsKKyAgICBrZXJuZWwuYWRkQXJn
dW1lbnQocmVsYXRpdmVTb3VyY2VMb2NhdGlvbi55KCkpOworICAgIGlmICh0eXBlID09IEZFQ09M
T1JNQVRSSVhfVFlQRV9NQVRSSVgpCisgICAgICAgIGNsVmFsdWVzID0ga2VybmVsLmFkZEFyZ3Vt
ZW50KHZhbHVlcywgc2l6ZW9mKGZsb2F0KSAqIDIwKTsKKyAgICBlbHNlIGlmICh0eXBlID09IEZF
Q09MT1JNQVRSSVhfVFlQRV9TQVRVUkFURSB8fCB0eXBlID09IEZFQ09MT1JNQVRSSVhfVFlQRV9I
VUVST1RBVEUpCisgICAgICAgIGNsVmFsdWVzID0ga2VybmVsLmFkZEFyZ3VtZW50KHZhbHVlcywg
c2l6ZW9mKGZsb2F0KSAqIDkpOworICAgIGtlcm5lbC5ydW4oKTsKKworICAgIGNsVmFsdWVzLmNs
ZWFyKCk7Cit9CisKK2Jvb2wgRkVDb2xvck1hdHJpeDo6cGxhdGZvcm1BcHBseU9wZW5DTCgpCit7
CisgICAgRmlsdGVyQ29udGV4dE9wZW5DTCogY29udGV4dCA9IEZpbHRlckNvbnRleHRPcGVuQ0w6
OmNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPmNvbXBpbGVGRUNvbG9y
TWF0cml4KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEZpbHRlckVmZmVjdCogaW4g
PSBpbnB1dEVmZmVjdCgwKTsKKyAgICBPcGVuQ0xIYW5kbGUgc291cmNlID0gaW4tPm9wZW5DTElt
YWdlKCk7CisgICAgT3BlbkNMSGFuZGxlIGRlc3RpbmF0aW9uID0gY3JlYXRlT3BlbkNMSW1hZ2VS
ZXN1bHQoKTsKKworICAgIEludFBvaW50IHJlbGF0aXZlU291cmNlTG9jYXRpb24oCisgICAgYWJz
b2x1dGVQYWludFJlY3QoKS54KCkgLSBpbi0+YWJzb2x1dGVQYWludFJlY3QoKS5sb2NhdGlvbigp
LngoKSwKKyAgICBhYnNvbHV0ZVBhaW50UmVjdCgpLnkoKSAtIGluLT5hYnNvbHV0ZVBhaW50UmVj
dCgpLmxvY2F0aW9uKCkueSgpKTsKKworICAgIGZsb2F0IGNvbXBvbmVudHNbOV07CisgICAgaWYg
KEZFQ09MT1JNQVRSSVhfVFlQRV9TQVRVUkFURSA9PSBtX3R5cGUpCisgICAgICAgIGNhbGN1bGF0
ZVNhdHVyYXRlQ29tcG9uZW50cyhjb21wb25lbnRzLCBtX3ZhbHVlc1swXSk7CisgICAgZWxzZSBp
ZiAoRkVDT0xPUk1BVFJJWF9UWVBFX0hVRVJPVEFURSA9PSBtX3R5cGUpCisgICAgICAgIGNhbGN1
bGF0ZUh1ZVJvdGF0ZUNvbXBvbmVudHMoY29tcG9uZW50cywgbV92YWx1ZXNbMF0pOworCisgICAg
Y29udGV4dC0+YXBwbHlGRUNvbG9yTWF0cml4KGRlc3RpbmF0aW9uLCBhYnNvbHV0ZVBhaW50UmVj
dCgpLnNpemUoKSwgc291cmNlLCByZWxhdGl2ZVNvdXJjZUxvY2F0aW9uLCAoRkVDT0xPUk1BVFJJ
WF9UWVBFX01BVFJJWCA9PSBtX3R5cGUpID8gbV92YWx1ZXMuZGF0YSgpIDogY29tcG9uZW50cywg
bV90eXBlKTsKKworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoRklMVEVSUykgJiYgRU5BQkxFKE9QRU5DTCkK
</data>
<flag name="review"
          id="195448"
          type_id="1"
          status="-"
          setter="zherczeg"
    />
    <flag name="commit-queue"
          id="195449"
          type_id="3"
          status="-"
          setter="zherczeg"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>178983</attachid>
            <date>2012-12-11 23:57:26 -0800</date>
            <delta_ts>2012-12-11 23:57:26 -0800</delta_ts>
            <desc>svg file</desc>
            <filename>cm.svg</filename>
            <type>image/svg+xml</type>
            <size>1404</size>
            <attacher name="Tamas Czene">tczene</attacher>
            
              <data encoding="base64">PHN2ZyB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB2ZXJzaW9uPSIxLjEiIGJhc2VQcm9maWxl
PSJiYXNpYyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgoKPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBp
ZD0iZ3JhZGllbnQiIGdyYWRpZW50VW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeDE9IjAiIHkxPSIwIiB4Mj0iMSIgeTI9IjEiPgogICAgICAgICAg
ICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IndoaXRlIiAvPgogICAgICAgICAgICA8c3Rv
cCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9ImJsdWUiIC8+CjwvbGluZWFyR3JhZGllbnQ+Cgo8Zmls
dGVyIGlkPSJHYXVzc2lhbkJsdXIiPgogIDxmZUNvbG9yTWF0cml4IGlkPSJnYXVzcyIgdHlwZT0i
c2F0dXJhdGUiIC8+CiAgPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjEgMCAw
IDAgMCAgMCAxIDAgMCAwICAwIDAgMSAwIDAgIDAgMCAwIDEgMCIvPgogIDxmZUNvbG9yTWF0cml4
IHR5cGU9Imh1ZVJvdGF0ZSIgdmFsdWVzPSIxIi8+CiAgPGZlQ29sb3JNYXRyaXggdHlwZT0iaHVl
Um90YXRlIiB2YWx1ZXM9IjExIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cgo8ZyBmaWx0ZXI9InVybCgj
R2F1c3NpYW5CbHVyKSI+CiAgPHJlY3Qgd2lkdGg9IjEyMDAiIGhlaWdodD0iMTAwMCIgeD0iMCIg
eT0iMCIgc3R5bGU9ImZpbGw6dXJsKCNncmFkaWVudCk7Ii8+CjwvZz4KCgo8dGV4dCBpZD0idHh0
IiB4PSI1MCIgeT0iMTAwIiBzdHJva2U9ImJsYWNrIj4wIGZwczwvdGV4dD4KCgo8c2NyaXB0PiAK
PCFbQ0RBVEFbCgoKdmFyIHJvdW5kID0gTWF0aC5yb3VuZDsKCnZhciBnYXVzc0ZpbHRlciA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdnYXVzcycpOwp2YXIgZnBzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3R4dCcpOwoKdmFyIHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCk7CnZhciBmcmFtZUNv
dW50ZXIgPSAwOwp2YXIgYW5pbWF0aW9uQ291bnRlciA9IDE7CgpmdW5jdGlvbiBhbmltKCkgewog
ICAgYW5pbWF0aW9uQ291bnRlcis9MC41OwogICAgaWYgKGFuaW1hdGlvbkNvdW50ZXIgPiA1MCkK
ICAgICAgICBhbmltYXRpb25Db3VudGVyID0gMDsKICAgIAogICAgZ2F1c3NGaWx0ZXIuc2V0QXR0
cmlidXRlKCJ2YWx1ZXMiLCBhbmltYXRpb25Db3VudGVyKTsKICAgIAogICAgZnJhbWVDb3VudGVy
Kys7CiAgICBmcHMudGV4dENvbnRlbnQgPSAocm91bmQoZnJhbWVDb3VudGVyICogMTAwMDAwIC8g
KG5ldyBEYXRlKCkgLSBzdGFydERhdGUpKSAvIDEwMCkgKyAiIGZwcyI7Cn0KCnNldEludGVydmFs
KGFuaW0sMSk7CgovL11dPgo8L3NjcmlwdD4KCgo8L3N2Zz4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179248</attachid>
            <date>2012-12-13 04:22:30 -0800</date>
            <delta_ts>2012-12-13 07:07:43 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>cm.patch</filename>
            <type>text/plain</type>
            <size>15816</size>
            <attacher name="Tamas Czene">tczene</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyNjQ5NWNhLi5lNGVhYzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTItMTItMTMgIFRhbWFzIEN6ZW5lICA8dGN6ZW5lQGluZi51LXN6ZWdlZC5odT4KKwor
ICAgICAgICBPcGVuQ0wgdmVyc2lvbiBvZiBGRUNvbG9yTWF0cml4LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMzk4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgfjN4IHNwZWVkLXVwIChkZXBlbmRpbmcg
b24gaGFyZHdhcmUgY29uZmlndXJhdGlvbikKKworICAgICAgICAqIFRhcmdldC5wcmk6IEFkZGVk
IGEgbmV3IGZpbGUgdG8gdGhlIGJ1aWxkIHN5c3RlbS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwOiBjYWxjdWxhdGVTYXR1cmF0ZUNvbXBvbmVu
dHMgYW5kIGNhbGN1bGF0ZUh1ZVJvdGF0ZUNvbXBvbmVudHMgbWV0aG9kZXMgYXJlIG1vdmVkIHRv
IHRoZSBoZWFkZXIsIHNpbmNlIHRoZXkgYXJlIHVzZWQgYnkgT3BlbkNMIGFzIHdlbGwKKyAgICAg
ICAgKFdlYkNvcmU6OmVmZmVjdFR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb2xvck1hdHJpeC5oOgorICAgICAgICAoRkVDb2xvck1hdHJpeCk6CisgICAgICAg
IChXZWJDb3JlOjpGRUNvbG9yTWF0cml4OjpjYWxjdWxhdGVTYXR1cmF0ZUNvbXBvbmVudHMpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbG9yTWF0cml4OjpjYWxj
dWxhdGVIdWVSb3RhdGVDb21wb25lbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvb3BlbmNsL0ZpbHRlckNvbnRleHRPcGVuQ0wuaDogUmVxdWlyZWQgZmllbGRzIGZvciB0aGUg
Q29sb3JNYXRyaXgga2VybmVscyB3ZXJlIGFkZGVkCisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJD
b250ZXh0T3BlbkNMOjpGaWx0ZXJDb250ZXh0T3BlbkNMKToKKyAgICAgICAgKEZpbHRlckNvbnRl
eHRPcGVuQ0wpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9vcGVuY2wvT3BlbkNM
RkVDb2xvck1hdHJpeC5jcHA6IHRoZSBjb3JlIGltcGxlbWVudGF0aW9uIGdvZXMgaGVyZQorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJDb250ZXh0T3BlbkNMOjpj
b21waWxlRkVDb2xvck1hdHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJDb250ZXh0T3Bl
bkNMOjphcHBseUZFQ29sb3JNYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6RkVDb2xvck1hdHJp
eDo6cGxhdGZvcm1BcHBseU9wZW5DTCk6CisKIDIwMTItMTItMTIgIEpvbiBMZWUgIDxqb25sZWVA
YXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIGluIFBsdWdJbk9yaWdpbkhhc2ggd2l0aCBlbXB0
eSBNSU1FIHR5cGUgKDEwNDg4MikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDUxYTE0ZjMuLmFhOTA1MWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQpAQCAtNDEwNyw2ICs0MTA3LDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X09QRU5DTD0xKSB7CiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9vcGVuY2wvRmlsdGVy
Q29udGV4dE9wZW5DTC5oCiAgICAgU09VUkNFUyArPSBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9vcGVuY2wvRmlsdGVyQ29udGV4dE9wZW5DTC5jcHAgXAorICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9ncHUvb3BlbmNsL09wZW5DTEZFQ29sb3JNYXRyaXguY3BwIFwKICAgICAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L29wZW5jbC9PcGVuQ0xGRVNvdXJjZUFscGhhLmNwcCBcCiAg
ICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9vcGVuY2wvT3BlbkNMRkVTb3VyY2VHcmFwaGlj
LmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9vcGVuY2wvT3BlbkNMRkVUdXJi
dWxlbmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAKaW5kZXggZGY3OGFmZC4uYmRmNTU1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9y
TWF0cml4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29sb3JNYXRyaXguY3BwCkBAIC0xMDUsMzQgKzEwNSw2IEBAIGlubGluZSB2b2lkIGx1bWlu
YW5jZShmbG9hdCYgcmVkLCBmbG9hdCYgZ3JlZW4sIGZsb2F0JiBibHVlLCBmbG9hdCYgYWxwaGEp
CiAgICAgYmx1ZSA9IDA7CiB9CiAKLWlubGluZSB2b2lkIGNhbGN1bGF0ZVNhdHVyYXRlQ29tcG9u
ZW50cyhmbG9hdCogY29tcG9uZW50cywgZmxvYXQgdmFsdWUpCi17Ci0gICAgY29tcG9uZW50c1sw
XSA9ICgwLjIxMyArIDAuNzg3ICogdmFsdWUpOwotICAgIGNvbXBvbmVudHNbMV0gPSAoMC43MTUg
LSAwLjcxNSAqIHZhbHVlKTsKLSAgICBjb21wb25lbnRzWzJdID0gKDAuMDcyIC0gMC4wNzIgKiB2
YWx1ZSk7Ci0gICAgY29tcG9uZW50c1szXSA9ICgwLjIxMyAtIDAuMjEzICogdmFsdWUpOwotICAg
IGNvbXBvbmVudHNbNF0gPSAoMC43MTUgKyAwLjI4NSAqIHZhbHVlKTsKLSAgICBjb21wb25lbnRz
WzVdID0gKDAuMDcyIC0gMC4wNzIgKiB2YWx1ZSk7Ci0gICAgY29tcG9uZW50c1s2XSA9ICgwLjIx
MyAtIDAuMjEzICogdmFsdWUpOwotICAgIGNvbXBvbmVudHNbN10gPSAoMC43MTUgLSAwLjcxNSAq
IHZhbHVlKTsKLSAgICBjb21wb25lbnRzWzhdID0gKDAuMDcyICsgMC45MjggKiB2YWx1ZSk7Ci19
Ci0KLWlubGluZSB2b2lkIGNhbGN1bGF0ZUh1ZVJvdGF0ZUNvbXBvbmVudHMoZmxvYXQqIGNvbXBv
bmVudHMsIGZsb2F0IHZhbHVlKQotewotICAgIGZsb2F0IGNvc0h1ZSA9IGNvcyh2YWx1ZSAqIHBp
RmxvYXQgLyAxODApOwotICAgIGZsb2F0IHNpbkh1ZSA9IHNpbih2YWx1ZSAqIHBpRmxvYXQgLyAx
ODApOwotICAgIGNvbXBvbmVudHNbMF0gPSAwLjIxMyArIGNvc0h1ZSAqIDAuNzg3IC0gc2luSHVl
ICogMC4yMTM7Ci0gICAgY29tcG9uZW50c1sxXSA9IDAuNzE1IC0gY29zSHVlICogMC43MTUgLSBz
aW5IdWUgKiAwLjcxNTsKLSAgICBjb21wb25lbnRzWzJdID0gMC4wNzIgLSBjb3NIdWUgKiAwLjA3
MiArIHNpbkh1ZSAqIDAuOTI4OwotICAgIGNvbXBvbmVudHNbM10gPSAwLjIxMyAtIGNvc0h1ZSAq
IDAuMjEzICsgc2luSHVlICogMC4xNDM7Ci0gICAgY29tcG9uZW50c1s0XSA9IDAuNzE1ICsgY29z
SHVlICogMC4yODUgKyBzaW5IdWUgKiAwLjE0MDsKLSAgICBjb21wb25lbnRzWzVdID0gMC4wNzIg
LSBjb3NIdWUgKiAwLjA3MiAtIHNpbkh1ZSAqIDAuMjgzOwotICAgIGNvbXBvbmVudHNbNl0gPSAw
LjIxMyAtIGNvc0h1ZSAqIDAuMjEzIC0gc2luSHVlICogMC43ODc7Ci0gICAgY29tcG9uZW50c1s3
XSA9IDAuNzE1IC0gY29zSHVlICogMC43MTUgKyBzaW5IdWUgKiAwLjcxNTsKLSAgICBjb21wb25l
bnRzWzhdID0gMC4wNzIgKyBjb3NIdWUgKiAwLjkyOCArIHNpbkh1ZSAqIDAuMDcyOwotfQotCiB0
ZW1wbGF0ZTxDb2xvck1hdHJpeFR5cGUgZmlsdGVyVHlwZT4KIHZvaWQgZWZmZWN0VHlwZShVaW50
OENsYW1wZWRBcnJheSogcGl4ZWxBcnJheSwgY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWVzKQog
ewpAQCAtMTQwLDkgKzExMiw5IEBAIHZvaWQgZWZmZWN0VHlwZShVaW50OENsYW1wZWRBcnJheSog
cGl4ZWxBcnJheSwgY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWVzKQogICAgIGZsb2F0IGNvbXBv
bmVudHNbOV07CiAKICAgICBpZiAoZmlsdGVyVHlwZSA9PSBGRUNPTE9STUFUUklYX1RZUEVfU0FU
VVJBVEUpCi0gICAgICAgIGNhbGN1bGF0ZVNhdHVyYXRlQ29tcG9uZW50cyhjb21wb25lbnRzLCB2
YWx1ZXNbMF0pOworICAgICAgICBGRUNvbG9yTWF0cml4OjpjYWxjdWxhdGVTYXR1cmF0ZUNvbXBv
bmVudHMoY29tcG9uZW50cywgdmFsdWVzWzBdKTsKICAgICBlbHNlIGlmIChmaWx0ZXJUeXBlID09
IEZFQ09MT1JNQVRSSVhfVFlQRV9IVUVST1RBVEUpCi0gICAgICAgIGNhbGN1bGF0ZUh1ZVJvdGF0
ZUNvbXBvbmVudHMoY29tcG9uZW50cywgdmFsdWVzWzBdKTsKKyAgICAgICAgRkVDb2xvck1hdHJp
eDo6Y2FsY3VsYXRlSHVlUm90YXRlQ29tcG9uZW50cyhjb21wb25lbnRzLCB2YWx1ZXNbMF0pOwog
CiAgICAgZm9yICh1bnNpZ25lZCBwaXhlbEJ5dGVPZmZzZXQgPSAwOyBwaXhlbEJ5dGVPZmZzZXQg
PCBwaXhlbEFycmF5TGVuZ3RoOyBwaXhlbEJ5dGVPZmZzZXQgKz0gNCkgewogICAgICAgICBmbG9h
dCByZWQgPSBwaXhlbEFycmF5LT5pdGVtKHBpeGVsQnl0ZU9mZnNldCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5o
CmluZGV4IDk5YjY1MGIuLjc2YjI2YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCkBAIC01MywxMCArNTMs
MTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUFwcGx5U2tpYSgpOwogICAg
IHZpcnR1YWwgU2tJbWFnZUZpbHRlciogY3JlYXRlSW1hZ2VGaWx0ZXIoU2tpYUltYWdlRmlsdGVy
QnVpbGRlciopOwogI2VuZGlmCisjaWYgRU5BQkxFKE9QRU5DTCkKKyAgICB2aXJ0dWFsIGJvb2wg
cGxhdGZvcm1BcHBseU9wZW5DTCgpOworI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGR1bXAoKTsK
IAogICAgIHZpcnR1YWwgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3Ry
ZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Q7CiAKKyAgICBzdGF0aWMgaW5saW5lIHZvaWQgY2Fs
Y3VsYXRlU2F0dXJhdGVDb21wb25lbnRzKGZsb2F0KiBjb21wb25lbnRzLCBmbG9hdCB2YWx1ZSk7
CisgICAgc3RhdGljIGlubGluZSB2b2lkIGNhbGN1bGF0ZUh1ZVJvdGF0ZUNvbXBvbmVudHMoZmxv
YXQqIGNvbXBvbmVudHMsIGZsb2F0IHZhbHVlKTsKKwogcHJpdmF0ZToKICAgICBGRUNvbG9yTWF0
cml4KEZpbHRlciosIENvbG9yTWF0cml4VHlwZSwgY29uc3QgVmVjdG9yPGZsb2F0PiYpOwogCkBA
IC02NCw2ICs3MCwzNSBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxmbG9hdD4gbV92YWx1ZXM7CiB9
OwogCitpbmxpbmUgdm9pZCBGRUNvbG9yTWF0cml4OjpjYWxjdWxhdGVTYXR1cmF0ZUNvbXBvbmVu
dHMoZmxvYXQqIGNvbXBvbmVudHMsIGZsb2F0IHZhbHVlKQoreworICAgIGNvbXBvbmVudHNbMF0g
PSAoMC4yMTMgKyAwLjc4NyAqIHZhbHVlKTsKKyAgICBjb21wb25lbnRzWzFdID0gKDAuNzE1IC0g
MC43MTUgKiB2YWx1ZSk7CisgICAgY29tcG9uZW50c1syXSA9ICgwLjA3MiAtIDAuMDcyICogdmFs
dWUpOworICAgIGNvbXBvbmVudHNbM10gPSAoMC4yMTMgLSAwLjIxMyAqIHZhbHVlKTsKKyAgICBj
b21wb25lbnRzWzRdID0gKDAuNzE1ICsgMC4yODUgKiB2YWx1ZSk7CisgICAgY29tcG9uZW50c1s1
XSA9ICgwLjA3MiAtIDAuMDcyICogdmFsdWUpOworICAgIGNvbXBvbmVudHNbNl0gPSAoMC4yMTMg
LSAwLjIxMyAqIHZhbHVlKTsKKyAgICBjb21wb25lbnRzWzddID0gKDAuNzE1IC0gMC43MTUgKiB2
YWx1ZSk7CisgICAgY29tcG9uZW50c1s4XSA9ICgwLjA3MiArIDAuOTI4ICogdmFsdWUpOworfQor
CitpbmxpbmUgdm9pZCBGRUNvbG9yTWF0cml4OjpjYWxjdWxhdGVIdWVSb3RhdGVDb21wb25lbnRz
KGZsb2F0KiBjb21wb25lbnRzLCBmbG9hdCB2YWx1ZSkKK3sKKyAgICBmbG9hdCBjb3NIdWUgPSBj
b3ModmFsdWUgKiBwaUZsb2F0IC8gMTgwKTsKKyAgICBmbG9hdCBzaW5IdWUgPSBzaW4odmFsdWUg
KiBwaUZsb2F0IC8gMTgwKTsKKyAgICBjb21wb25lbnRzWzBdID0gMC4yMTMgKyBjb3NIdWUgKiAw
Ljc4NyAtIHNpbkh1ZSAqIDAuMjEzOworICAgIGNvbXBvbmVudHNbMV0gPSAwLjcxNSAtIGNvc0h1
ZSAqIDAuNzE1IC0gc2luSHVlICogMC43MTU7CisgICAgY29tcG9uZW50c1syXSA9IDAuMDcyIC0g
Y29zSHVlICogMC4wNzIgKyBzaW5IdWUgKiAwLjkyODsKKyAgICBjb21wb25lbnRzWzNdID0gMC4y
MTMgLSBjb3NIdWUgKiAwLjIxMyArIHNpbkh1ZSAqIDAuMTQzOworICAgIGNvbXBvbmVudHNbNF0g
PSAwLjcxNSArIGNvc0h1ZSAqIDAuMjg1ICsgc2luSHVlICogMC4xNDA7CisgICAgY29tcG9uZW50
c1s1XSA9IDAuMDcyIC0gY29zSHVlICogMC4wNzIgLSBzaW5IdWUgKiAwLjI4MzsKKyAgICBjb21w
b25lbnRzWzZdID0gMC4yMTMgLSBjb3NIdWUgKiAwLjIxMyAtIHNpbkh1ZSAqIDAuNzg3OworICAg
IGNvbXBvbmVudHNbN10gPSAwLjcxNSAtIGNvc0h1ZSAqIDAuNzE1ICsgc2luSHVlICogMC43MTU7
CisgICAgY29tcG9uZW50c1s4XSA9IDAuMDcyICsgY29zSHVlICogMC45MjggKyBzaW5IdWUgKiAw
LjA3MjsKK30KKworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
RklMVEVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9vcGVuY2wvRmlsdGVyQ29udGV4dE9wZW5DTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L29wZW5jbC9GaWx0ZXJDb250ZXh0T3BlbkNMLmgKaW5kZXggZDRmYmYzYS4u
Mjk4ZjNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L29wZW5jbC9GaWx0ZXJDb250ZXh0T3BlbkNMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L29wZW5jbC9GaWx0ZXJDb250ZXh0T3BlbkNMLmgKQEAgLTQ5LDYgKzQ5
LDExIEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2NvbW1hbmRRdWV1ZSgwKQogICAgICAgICAsIG1f
dHJhbnNmb3JtQ29sb3JTcGFjZVByb2dyYW0oMCkKICAgICAgICAgLCBtX3RyYW5zZm9ybUNvbG9y
U3BhY2VLZXJuZWwoMCkKKyAgICAgICAgLCBtX2NvbG9yTWF0cml4Q29tcGlsZVN0YXR1cyhvcGVu
Y2xOb3RDb21waWxlZFlldCkKKyAgICAgICAgLCBtX2NvbG9yTWF0cml4UHJvZ3JhbSgwKQorICAg
ICAgICAsIG1fbWF0cml4T3BlcmF0aW9uKDApCisgICAgICAgICwgbV9zYXR1cmF0ZUFuZEh1ZVJv
dGF0ZU9wZXJhdGlvbigwKQorICAgICAgICAsIG1fbHVtaW5hbmNlT3BlcmF0aW9uKDApCiAgICAg
ICAgICwgbV90dXJidWxlbmNlQ29tcGlsZVN0YXR1cyhvcGVuY2xOb3RDb21waWxlZFlldCkKICAg
ICAgICAgLCBtX3R1cmJ1bGVuY2VQcm9ncmFtKDApCiAgICAgICAgICwgbV90dXJidWxlbmNlT3Bl
cmF0aW9uKDApCkBAIC02NSw4ICs3MCwxMCBAQCBwdWJsaWM6CiAgICAgT3BlbkNMSGFuZGxlIGNy
ZWF0ZU9wZW5DTEltYWdlKEludFNpemUpOwogICAgIHZvaWQgb3BlbkNMVHJhbnNmb3JtQ29sb3JT
cGFjZShPcGVuQ0xIYW5kbGUmLCBJbnRSZWN0LCBDb2xvclNwYWNlLCBDb2xvclNwYWNlKTsKIAor
ICAgIGlubGluZSBib29sIGNvbXBpbGVGRUNvbG9yTWF0cml4KCk7CiAgICAgaW5saW5lIGJvb2wg
Y29tcGlsZUZFVHVyYnVsZW5jZSgpOwogCisgICAgaW5saW5lIHZvaWQgYXBwbHlGRUNvbG9yTWF0
cml4KE9wZW5DTEhhbmRsZSwgSW50U2l6ZSwgT3BlbkNMSGFuZGxlLCBJbnRQb2ludCwgdm9pZCos
IGludCk7CiAgICAgaW5saW5lIHZvaWQgYXBwbHlGRVR1cmJ1bGVuY2UoT3BlbkNMSGFuZGxlLCBJ
bnRTaXplLCBpbnQsIHZvaWQqLCB2b2lkKiwgdm9pZCosIHZvaWQqLCB2b2lkKiwKICAgICAgICAg
dm9pZCosIGludCwgaW50LCBpbnQsIGludCwgZmxvYXQsIGZsb2F0LCBib29sLCBpbnQsIGludCk7
CiAKQEAgLTE0Miw2ICsxNDksMTIgQEAgcHJpdmF0ZToKICAgICBjbF9wcm9ncmFtIG1fdHJhbnNm
b3JtQ29sb3JTcGFjZVByb2dyYW07CiAgICAgY2xfa2VybmVsIG1fdHJhbnNmb3JtQ29sb3JTcGFj
ZUtlcm5lbDsKIAorICAgIE9wZW5DTENvbXBpbGVTdGF0dXMgbV9jb2xvck1hdHJpeENvbXBpbGVT
dGF0dXM7CisgICAgY2xfcHJvZ3JhbSBtX2NvbG9yTWF0cml4UHJvZ3JhbTsKKyAgICBjbF9rZXJu
ZWwgbV9tYXRyaXhPcGVyYXRpb247CisgICAgY2xfa2VybmVsIG1fc2F0dXJhdGVBbmRIdWVSb3Rh
dGVPcGVyYXRpb247IAorICAgIGNsX2tlcm5lbCBtX2x1bWluYW5jZU9wZXJhdGlvbjsKKwogICAg
IE9wZW5DTENvbXBpbGVTdGF0dXMgbV90dXJidWxlbmNlQ29tcGlsZVN0YXR1czsKICAgICBjbF9w
cm9ncmFtIG1fdHVyYnVsZW5jZVByb2dyYW07CiAgICAgY2xfa2VybmVsIG1fdHVyYnVsZW5jZU9w
ZXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9vcGVuY2wvT3BlbkNMRkVDb2xvck1hdHJpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvb3BlbmNsL09wZW5DTEZFQ29sb3JNYXRyaXguY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljMWM2YTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvb3BlbmNsL09wZW5DTEZFQ29sb3JNYXRy
aXguY3BwCkBAIC0wLDAgKzEsMTU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFVuaXZl
cnNpdHkgb2YgU3plZ2VkCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgVGFtYXMgQ3plbmUgPHRjemVu
ZUBpbmYudS1zemVnZWQuaHU+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVU5JVkVSU0lUWSBPRiBTWkVHRUQgYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBVTklWRVJTSVRZIE9GIFNaRUdFRCBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShGSUxURVJTKSAmJiBFTkFCTEUoT1BFTkNMKQor
I2luY2x1ZGUgIkZFQ29sb3JNYXRyaXguaCIKKworI2luY2x1ZGUgIkZpbHRlckNvbnRleHRPcGVu
Q0wuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjZGVmaW5lIENPTE9SX01BVFJJWF9LRVJO
RUwoLi4uKSBcCisgICAgICAgIGludDIgc291cmNlQ29vcmQgPSAoaW50MikgKGdldF9nbG9iYWxf
aWQoMCkgKyB4LCBnZXRfZ2xvYmFsX2lkKDEpICsgeSk7IFwKKyAgICAgICAgZmxvYXQ0IHNvdXJj
ZVBpeGVsID0gcmVhZF9pbWFnZWYoc291cmNlLCBzYW1wbGVyLCBzb3VyY2VDb29yZCk7IFwKKyAg
ICAgICAgZmxvYXQ0IGRlc3RpbmF0aW9uUGl4ZWwgPSAoZmxvYXQ0KSAoX19WQV9BUkdTX18pOyBc
CisgICAgICAgIHdyaXRlX2ltYWdlZihkZXN0aW5hdGlvbiwgKGludDIpIChnZXRfZ2xvYmFsX2lk
KDApLCBnZXRfZ2xvYmFsX2lkKDEpKSwgZGVzdGluYXRpb25QaXhlbCk7CisKK3N0YXRpYyBjb25z
dCBjaGFyKiBjb2xvck1hdHJpeEtlcm5lbFByb2dyYW0gPQorUFJPR1JBTSgKK2NvbnN0IHNhbXBs
ZXJfdCBzYW1wbGVyID0gQ0xLX05PUk1BTElaRURfQ09PUkRTX0ZBTFNFIHwgQ0xLX0FERFJFU1Nf
Q0xBTVBfVE9fRURHRSB8IENMS19GSUxURVJfTkVBUkVTVDsKKworX19rZXJuZWwgdm9pZCBtYXRy
aXgoX193cml0ZV9vbmx5IGltYWdlMmRfdCBkZXN0aW5hdGlvbiwgX19yZWFkX29ubHkgaW1hZ2Uy
ZF90IHNvdXJjZSwgZmxvYXQgeCwgZmxvYXQgeSwgX19jb25zdGFudCBmbG9hdCAqdmFsdWVzKQor
eworICAgIENPTE9SX01BVFJJWF9LRVJORUwodmFsdWVzWzBdICogc291cmNlUGl4ZWwueCArIHZh
bHVlc1sxXSAqIHNvdXJjZVBpeGVsLnkgKyB2YWx1ZXNbMl0gKiBzb3VyY2VQaXhlbC56ICsgdmFs
dWVzWzNdICogc291cmNlUGl4ZWwudyArIHZhbHVlc1s0XSwKKyAgICAgICAgdmFsdWVzWzVdICog
c291cmNlUGl4ZWwueCArIHZhbHVlc1s2XSAqIHNvdXJjZVBpeGVsLnkgKyB2YWx1ZXNbN10gKiBz
b3VyY2VQaXhlbC56ICsgdmFsdWVzWzhdICogc291cmNlUGl4ZWwudyArIHZhbHVlc1s5XSwKKyAg
ICAgICAgdmFsdWVzWzEwXSAqIHNvdXJjZVBpeGVsLnggKyB2YWx1ZXNbMTFdICogc291cmNlUGl4
ZWwueSArIHZhbHVlc1sxMl0gKiBzb3VyY2VQaXhlbC56ICsgdmFsdWVzWzEzXSAqIHNvdXJjZVBp
eGVsLncgKyB2YWx1ZXNbMTRdLAorICAgICAgICB2YWx1ZXNbMTVdICogc291cmNlUGl4ZWwueCAr
IHZhbHVlc1sxNl0gKiBzb3VyY2VQaXhlbC55ICsgdmFsdWVzWzE3XSAqIHNvdXJjZVBpeGVsLnog
KyB2YWx1ZXNbMThdICogc291cmNlUGl4ZWwudyArIHZhbHVlc1sxOV0pCit9CisKK19fa2VybmVs
IHZvaWQgc2F0dXJhdGVBbmRIdWVSb3RhdGUoX193cml0ZV9vbmx5IGltYWdlMmRfdCBkZXN0aW5h
dGlvbiwgX19yZWFkX29ubHkgaW1hZ2UyZF90IHNvdXJjZSwgZmxvYXQgeCwgZmxvYXQgeSwgX19j
b25zdGFudCBmbG9hdCAqY29tcG9uZW50cykKK3sKKyAgICBDT0xPUl9NQVRSSVhfS0VSTkVMKHNv
dXJjZVBpeGVsLnggKiBjb21wb25lbnRzWzBdICsgc291cmNlUGl4ZWwueSAqIGNvbXBvbmVudHNb
MV0gKyBzb3VyY2VQaXhlbC56ICogY29tcG9uZW50c1syXSwKKyAgICAgICAgc291cmNlUGl4ZWwu
eCAqIGNvbXBvbmVudHNbM10gKyBzb3VyY2VQaXhlbC55ICogY29tcG9uZW50c1s0XSArIHNvdXJj
ZVBpeGVsLnogKiBjb21wb25lbnRzWzVdLAorICAgICAgICBzb3VyY2VQaXhlbC54ICogY29tcG9u
ZW50c1s2XSArIHNvdXJjZVBpeGVsLnkgKiBjb21wb25lbnRzWzddICsgc291cmNlUGl4ZWwueiAq
IGNvbXBvbmVudHNbOF0sCisgICAgICAgIHNvdXJjZVBpeGVsLncpCit9CisKK19fa2VybmVsIHZv
aWQgbHVtaW5hbmNlKF9fd3JpdGVfb25seSBpbWFnZTJkX3QgZGVzdGluYXRpb24sIF9fcmVhZF9v
bmx5IGltYWdlMmRfdCBzb3VyY2UsIGZsb2F0IHgsIGZsb2F0IHkpCit7CisgICAgQ09MT1JfTUFU
UklYX0tFUk5FTCgwLCAwLCAwLCAwLjIxMjUgKiBzb3VyY2VQaXhlbC54ICsgMC43MTU0ICogc291
cmNlUGl4ZWwueSArIDAuMDcyMSAqIHNvdXJjZVBpeGVsLnopCit9CispOyAvLyBFbmQgb2YgT3Bl
bkNMIGtlcm5lbHMKKworaW5saW5lIGJvb2wgRmlsdGVyQ29udGV4dE9wZW5DTDo6Y29tcGlsZUZF
Q29sb3JNYXRyaXgoKQoreworICAgIGlmIChtX2NvbG9yTWF0cml4Q29tcGlsZVN0YXR1cyAhPSBv
cGVuY2xOb3RDb21waWxlZFlldCkKKyAgICAgICAgcmV0dXJuIG1fY29sb3JNYXRyaXhDb21waWxl
U3RhdHVzID09IG9wZW5jbENvbXBpbGVTdWNjZXNzZnVsOworCisgICAgbV9jb2xvck1hdHJpeENv
bXBpbGVTdGF0dXMgPSBvcGVuY2xDb21waWxlRmFpbGVkOworICAgIG1fY29sb3JNYXRyaXhQcm9n
cmFtID0gY29tcGlsZVByb2dyYW0oY29sb3JNYXRyaXhLZXJuZWxQcm9ncmFtKTsKKyAgICBpZiAo
IW1fY29sb3JNYXRyaXhQcm9ncmFtKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX21h
dHJpeE9wZXJhdGlvbiA9IGtlcm5lbEJ5TmFtZShtX2NvbG9yTWF0cml4UHJvZ3JhbSwgIm1hdHJp
eCIpOworICAgIGlmICghbV9tYXRyaXhPcGVyYXRpb24pCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBtX3NhdHVyYXRlQW5kSHVlUm90YXRlT3BlcmF0aW9uID0ga2VybmVsQnlOYW1lKG1fY29s
b3JNYXRyaXhQcm9ncmFtLCAic2F0dXJhdGVBbmRIdWVSb3RhdGUiKTsKKyAgICBpZiAoIW1fc2F0
dXJhdGVBbmRIdWVSb3RhdGVPcGVyYXRpb24pCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBt
X2x1bWluYW5jZU9wZXJhdGlvbiA9IGtlcm5lbEJ5TmFtZShtX2NvbG9yTWF0cml4UHJvZ3JhbSwg
Imx1bWluYW5jZSIpOworICAgIGlmICghbV9sdW1pbmFuY2VPcGVyYXRpb24pCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIG1fY29sb3JNYXRyaXhDb21waWxlU3RhdHVzID0gb3BlbmNsQ29t
cGlsZVN1Y2Nlc3NmdWw7CisgICAgcmV0dXJuIG9wZW5jbENvbXBpbGVTdWNjZXNzZnVsOworfQor
CitpbmxpbmUgdm9pZCBGaWx0ZXJDb250ZXh0T3BlbkNMOjphcHBseUZFQ29sb3JNYXRyaXgoT3Bl
bkNMSGFuZGxlIGRlc3RpbmF0aW9uLCBJbnRTaXplIGRlc3RpbmF0aW9uU2l6ZSwgT3BlbkNMSGFu
ZGxlIHNvdXJjZSwgSW50UG9pbnQgcmVsYXRpdmVTb3VyY2VMb2NhdGlvbiwgdm9pZCogdmFsdWVz
LCBpbnQgdHlwZSkKK3sKKyAgICBjbF9rZXJuZWwgY29sb3JNYXRyaXg7CisgICAgT3BlbkNMSGFu
ZGxlIGNsVmFsdWVzOworCisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBGRUNPTE9STUFU
UklYX1RZUEVfTUFUUklYOgorICAgICAgICBjb2xvck1hdHJpeCA9IG1fbWF0cml4T3BlcmF0aW9u
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZFQ09MT1JNQVRSSVhfVFlQRV9TQVRVUkFURToK
KyAgICAgICAgY29sb3JNYXRyaXggPSBtX3NhdHVyYXRlQW5kSHVlUm90YXRlT3BlcmF0aW9uOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEZFQ09MT1JNQVRSSVhfVFlQRV9IVUVST1RBVEU6Cisg
ICAgICAgIGNvbG9yTWF0cml4ID0gbV9zYXR1cmF0ZUFuZEh1ZVJvdGF0ZU9wZXJhdGlvbjsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBGRUNPTE9STUFUUklYX1RZUEVfTFVNSU5BTkNFVE9BTFBI
QToKKyAgICAgICAgY29sb3JNYXRyaXggPSBtX2x1bWluYW5jZU9wZXJhdGlvbjsKKyAgICAgICAg
YnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSdW5LZXJuZWwga2VybmVsKHRoaXMsIGNvbG9yTWF0
cml4LCBkZXN0aW5hdGlvblNpemUud2lkdGgoKSwgZGVzdGluYXRpb25TaXplLmhlaWdodCgpKTsK
KyAgICBrZXJuZWwuYWRkQXJndW1lbnQoZGVzdGluYXRpb24pOworICAgIGtlcm5lbC5hZGRBcmd1
bWVudChzb3VyY2UpOworICAgIGtlcm5lbC5hZGRBcmd1bWVudChyZWxhdGl2ZVNvdXJjZUxvY2F0
aW9uLngoKSk7CisgICAga2VybmVsLmFkZEFyZ3VtZW50KHJlbGF0aXZlU291cmNlTG9jYXRpb24u
eSgpKTsKKyAgICBpZiAodHlwZSA9PSBGRUNPTE9STUFUUklYX1RZUEVfTUFUUklYKQorICAgICAg
ICBjbFZhbHVlcyA9IGtlcm5lbC5hZGRBcmd1bWVudCh2YWx1ZXMsIHNpemVvZihmbG9hdCkgKiAy
MCk7CisgICAgZWxzZSBpZiAodHlwZSA9PSBGRUNPTE9STUFUUklYX1RZUEVfU0FUVVJBVEUgfHwg
dHlwZSA9PSBGRUNPTE9STUFUUklYX1RZUEVfSFVFUk9UQVRFKQorICAgICAgICBjbFZhbHVlcyA9
IGtlcm5lbC5hZGRBcmd1bWVudCh2YWx1ZXMsIHNpemVvZihmbG9hdCkgKiA5KTsKKyAgICBrZXJu
ZWwucnVuKCk7CisKKyAgICBjbFZhbHVlcy5jbGVhcigpOworfQorCitib29sIEZFQ29sb3JNYXRy
aXg6OnBsYXRmb3JtQXBwbHlPcGVuQ0woKQoreworICAgIEZpbHRlckNvbnRleHRPcGVuQ0wqIGNv
bnRleHQgPSBGaWx0ZXJDb250ZXh0T3BlbkNMOjpjb250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0
IHx8ICFjb250ZXh0LT5jb21waWxlRkVDb2xvck1hdHJpeCgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBGaWx0ZXJFZmZlY3QqIGluID0gaW5wdXRFZmZlY3QoMCk7CisgICAgT3BlbkNM
SGFuZGxlIHNvdXJjZSA9IGluLT5vcGVuQ0xJbWFnZSgpOworICAgIE9wZW5DTEhhbmRsZSBkZXN0
aW5hdGlvbiA9IGNyZWF0ZU9wZW5DTEltYWdlUmVzdWx0KCk7CisKKyAgICBJbnRQb2ludCByZWxh
dGl2ZVNvdXJjZUxvY2F0aW9uKAorICAgICAgICBhYnNvbHV0ZVBhaW50UmVjdCgpLngoKSAtIGlu
LT5hYnNvbHV0ZVBhaW50UmVjdCgpLmxvY2F0aW9uKCkueCgpLAorICAgICAgICBhYnNvbHV0ZVBh
aW50UmVjdCgpLnkoKSAtIGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpLmxvY2F0aW9uKCkueSgpKTsK
KworICAgIGZsb2F0IGNvbXBvbmVudHNbOV07CisgICAgaWYgKEZFQ09MT1JNQVRSSVhfVFlQRV9T
QVRVUkFURSA9PSBtX3R5cGUpCisgICAgICAgIGNhbGN1bGF0ZVNhdHVyYXRlQ29tcG9uZW50cyhj
b21wb25lbnRzLCBtX3ZhbHVlc1swXSk7CisgICAgZWxzZSBpZiAoRkVDT0xPUk1BVFJJWF9UWVBF
X0hVRVJPVEFURSA9PSBtX3R5cGUpCisgICAgICAgIGNhbGN1bGF0ZUh1ZVJvdGF0ZUNvbXBvbmVu
dHMoY29tcG9uZW50cywgbV92YWx1ZXNbMF0pOworCisgICAgY29udGV4dC0+YXBwbHlGRUNvbG9y
TWF0cml4KGRlc3RpbmF0aW9uLCBhYnNvbHV0ZVBhaW50UmVjdCgpLnNpemUoKSwgc291cmNlLCBy
ZWxhdGl2ZVNvdXJjZUxvY2F0aW9uLCAoRkVDT0xPUk1BVFJJWF9UWVBFX01BVFJJWCA9PSBtX3R5
cGUpID8gbV92YWx1ZXMuZGF0YSgpIDogY29tcG9uZW50cywgbV90eXBlKTsKKworICAgIHJldHVy
biB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
RklMVEVSUykgJiYgRU5BQkxFKE9QRU5DTCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>