<?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>93590</bug_id>
          
          <creation_ts>2012-08-09 01:05:10 -0700</creation_ts>
          <short_desc>Add NonImmediateBitmapImage to mark it is safe to decode asynchronously.</short_desc>
          <delta_ts>2014-02-05 10:52:10 -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>Images</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>UNCONFIRMED</bug_status>
          <resolution></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>93467</dependson>
    
    <dependson>94190</dependson>
          <blocked>90935</blocked>
    
    <blocked>90375</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hclam</cc>
    
    <cc>jamesr</cc>
    
    <cc>nick</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>skyul</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>691321</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-09 01:05:10 -0700</bug_when>
    <thetext>Because image decoding is used in various contexts in WebKit, it is simply
impossible to make all decoding asynchronous. Instead, we selectively use async
image decoders where possible and use the existing sequential image decoders otherwise.
RetainedModeBitmapImage wraps a BitmapImage and helps decide when it is safe and beneficial
to use async image decoders.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691337</commentid>
    <comment_count>1</comment_count>
      <attachid>157418</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-09 01:24:45 -0700</bug_when>
    <thetext>Created attachment 157418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691846</commentid>
    <comment_count>2</comment_count>
    <who name="Nick Carter">nick</who>
    <bug_when>2012-08-09 14:24:23 -0700</bug_when>
    <thetext>While I understand the intended analogy to retained/immediate graphics APIs, the &quot;RetainedMode&quot; designation doesn&apos;t seem to describe what actually happens. 

I&apos;d prefer this name indicate more clearly that the decode may happen in the future, and not complete before the draw operation.

I think the dichotomy that exists here is not between &quot;Immediate/Retained&quot;, but &quot;Immediate/Eventual&quot;.

Some ideas: FutureBitmapImage, DelayedBitmapImage, EventualBitmapImage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691956</commentid>
    <comment_count>3</comment_count>
      <attachid>157418</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-09 15:56:10 -0700</bug_when>
    <thetext>Comment on attachment 157418
Patch

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

&gt; Source/WebCore/platform/graphics/RetainedModeBitmapImage.cpp:1
&gt; +/*

I think a better name would be NonImmediateBitmapImage. It is unclear from the name what RetainedModeBitmapImage does.

&gt; Source/WebCore/platform/graphics/RetainedModeBitmapImage.cpp:40
&gt; +    , m_retainedModeCount(0)

This can be a simple boolean instead of counter.

&gt; Source/WebCore/platform/graphics/RetainedModeBitmapImage.cpp:46
&gt; +    RetainedModeSaver retainedModeSaver(this);

There&apos;s no need to have this because this method doesn&apos;t trigger image decoding.

&gt; Source/WebCore/platform/graphics/RetainedModeBitmapImage.cpp:106
&gt; +    RetainedModeSaver retainedModeSaver(this);

It will be more clear to only have this line in this method and draw().

&gt; Source/WebCore/platform/graphics/RetainedModeBitmapImage.cpp:148
&gt; +RetainedModeBitmapImage* toRetainedModeBitmapImage(Image* image)

Looks like there&apos;s no user of this function other than toRetainedModeBitmapImageIfPossible, I&apos;d combine them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692451</commentid>
    <comment_count>4</comment_count>
      <attachid>157704</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-10 04:47:42 -0700</bug_when>
    <thetext>Created attachment 157704
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692452</commentid>
    <comment_count>5</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-10 04:49:08 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Some ideas: FutureBitmapImage, DelayedBitmapImage, EventualBitmapImage.

I agree with you. Thanks for good suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692454</commentid>
    <comment_count>6</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-10 04:51:56 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I think a better name would be NonImmediateBitmapImage. It is unclear from the name what RetainedModeBitmapImage does.

Ok, I changed.

&gt; This can be a simple boolean instead of counter.

Absolutely!

&gt; There&apos;s no need to have this because this method doesn&apos;t trigger image decoding.

Yes.

&gt; It will be more clear to only have this line in this method and draw().

Now only NonImmediateBitmapImage::draw() and NonImmediateBitmapImage::nativeImageForCurrentFrame() have this line.

&gt; Looks like there&apos;s no user of this function other than toRetainedModeBitmapImageIfPossible, I&apos;d combine them.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696791</commentid>
    <comment_count>7</comment_count>
      <attachid>158722</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-15 23:47:49 -0700</bug_when>
    <thetext>Created attachment 158722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696792</commentid>
    <comment_count>8</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-15 23:48:23 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=158722) [details]
&gt; Patch

Rebased to the upstream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976829</commentid>
    <comment_count>9</comment_count>
      <attachid>158722</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-05 10:52:10 -0800</bug_when>
    <thetext>Comment on attachment 158722
Patch

Clearing review flag on patches from before 2014. If this patch is still relevant, please reset the r? flag.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157418</attachid>
            <date>2012-08-09 01:24:45 -0700</date>
            <delta_ts>2012-08-10 04:47:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93590-20120809172350.patch</filename>
            <type>text/plain</type>
            <size>26928</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E0NzM0MGRlZmIzZWU4
NDJkZjllNTQ0YTY1ZmRkYTk4ZmJhMTQ2NS4uYTVhZmEzNDU2YTQxNDE1MTNhYjc1NDk5MjFmYzc5
NWMwMTFjODkxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY5IEBACiAyMDEyLTA4LTA5ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIEFkZCBSZXRh
aW5lZE1vZGVCaXRtYXBJbWFnZSB0byBtYXJrIGl0IGlzIHNhZmUgdG8gZGVjb2RlIGFzeW5jaHJv
bm91c2x5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTM1OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBC
ZWNhdXNlIGltYWdlIGRlY29kaW5nIGlzIHVzZWQgaW4gdmFyaW91cyBjb250ZXh0cyBpbiBXZWJL
aXQsIGl0IGlzIHNpbXBseQorICAgICAgICBpbXBvc3NpYmxlIHRvIG1ha2UgYWxsIGRlY29kaW5n
IGFzeW5jaHJvbm91cy4gSW5zdGVhZCwgd2Ugc2VsZWN0aXZlbHkgdXNlIGFzeW5jCisgICAgICAg
IGltYWdlIGRlY29kZXJzIHdoZXJlIHBvc3NpYmxlIGFuZCB1c2UgdGhlIGV4aXN0aW5nIHNlcXVl
bnRpYWwgaW1hZ2UgZGVjb2RlcnMgb3RoZXJ3aXNlLgorICAgICAgICBSZXRhaW5lZE1vZGVCaXRt
YXBJbWFnZSB3cmFwcyBhIEJpdG1hcEltYWdlIGFuZCBoZWxwcyBkZWNpZGUgd2hlbiBpdCBpcyBz
YWZlIGFuZCBiZW5lZmljaWFsCisgICAgICAgIHRvIHVzZSBhc3luYyBpbWFnZSBkZWNvZGVycy4K
KworICAgICAgICBObyBuZXcgdGVzdHMgLSBleGlzdGluZyBpbWFnZSB0ZXN0cyBjb3ZlciB0aGVz
ZSBjYXNlcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0JpdG1hcEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpj
YWNoZUZyYW1lKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFw
SW1hZ2U6OnJldGFpbmVkTW9kZVJlbmRlcmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKEJpdG1hcEltYWdlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9SZXRhaW5lZE1vZGVCaXRtYXBJbWFnZS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXRhaW5lZE1vZGVCaXRtYXBJbWFnZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJldGFpbmVkTW9kZUJpdG1hcEltYWdlOjpSZXRh
aW5lZE1vZGVCaXRtYXBJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXRhaW5lZE1vZGVCaXRt
YXBJbWFnZTo6aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6UmV0
YWluZWRNb2RlQml0bWFwSW1hZ2U6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmV0YWluZWRN
b2RlQml0bWFwSW1hZ2U6OmdldEhvdFNwb3QpOgorICAgICAgICAoV2ViQ29yZTo6UmV0YWluZWRN
b2RlQml0bWFwSW1hZ2U6OmRhdGFDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJldGFpbmVk
TW9kZUJpdG1hcEltYWdlOjpmaWxlbmFtZUV4dGVuc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpS
ZXRhaW5lZE1vZGVCaXRtYXBJbWFnZTo6ZGVzdHJveURlY29kZWREYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OlJldGFpbmVkTW9kZUJpdG1hcEltYWdlOjpkZWNvZGVkU2l6ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXRhaW5lZE1vZGVCaXRtYXBJbWFnZTo6c3RhcnRBbmltYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6UmV0YWluZWRNb2RlQml0bWFwSW1hZ2U6OnN0b3BBbmltYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6UmV0YWluZWRNb2RlQml0bWFwSW1hZ2U6OnJlc2V0QW5pbWF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlJldGFpbmVkTW9kZUJpdG1hcEltYWdlOjpuYXRpdmVJbWFnZUZv
ckN1cnJlbnRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXRhaW5lZE1vZGVCaXRtYXBJbWFn
ZTo6Y3VycmVudEZyYW1lSGFzQWxwaGEpOgorICAgICAgICAoV2ViQ29yZTo6UmV0YWluZWRNb2Rl
Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6UmV0YWluZWRNb2RlQml0bWFw
SW1hZ2U6Om1heUZpbGxXaXRoU29saWRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZXRhaW5l
ZE1vZGVCaXRtYXBJbWFnZTo6c29saWRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZXRhaW5l
ZE1vZGVTYXZlcjo6UmV0YWluZWRNb2RlU2F2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmV0YWlu
ZWRNb2RlU2F2ZXI6On5SZXRhaW5lZE1vZGVTYXZlcik6CisgICAgICAgIChXZWJDb3JlOjp0b1Jl
dGFpbmVkTW9kZUJpdG1hcEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OnRvUmV0YWluZWRNb2Rl
Qml0bWFwSW1hZ2VJZlBvc3NpYmxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZXRh
aW5lZE1vZGVCaXRtYXBJbWFnZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoUmV0YWluZWRNb2RlQml0bWFwSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmV0YWluZWRN
b2RlQml0bWFwSW1hZ2U6On5SZXRhaW5lZE1vZGVCaXRtYXBJbWFnZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZXRhaW5lZE1vZGVCaXRtYXBJbWFnZTo6cmV0YWluZWRNb2RlUmVuZGVyaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJldGFpbmVkTW9kZUJpdG1hcEltYWdlOjpiZWdpblJldGFpbmVkTW9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXRhaW5lZE1vZGVCaXRtYXBJbWFnZTo6ZW5kUmV0YWlu
ZWRNb2RlKToKKyAgICAgICAgKFJldGFpbmVkTW9kZVNhdmVyKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50
UmVwbGFjZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3Qp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU1ZHSW1hZ2U6OnBhaW50KToKKworMjAxMi0wOC0wOSAgSHVhbmcgRG9u
Z3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKwogICAgICAgICBDaGFuZ2UgSW1hZ2VT
b3VyY2UgdG8gYmUgYXN5bmNocm9ub3VzLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTM0NjcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwMjM2NGQ3
NjA4M2VjMWM1OGViM2JhMTkyMmM5Mjc4ODZhMjM3OTViLi5hMTBmYzVlZjUyZjJkODdhNGE1NzU3
ODRmM2E3NDA4ZDMxYzEzOGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTgzMSw2ICsxODMx
LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BhdGhUcmF2
ZXJzYWxTdGF0ZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL1JlZ2lvbi5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZXRhaW5l
ZE1vZGVCaXRtYXBJbWFnZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Sb3VuZGVkUmVjdC5j
cHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9TZWdtZW50ZWRGb250RGF0YS5jcHAKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
aW5kZXggZDExZTk4NDkwZWZjNDI2NWFlNTY3NTRmYjI1YzMxZDFmNzQ4ZDkyZi4uOGQzNWI5OTY3
ZGFjNTNiMTY0YjMyMjY1NjgyMzNiOGQ0MDc4NjU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCkBAIC0zMjQyLDYgKzMyNDIsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rhc2hBcnJheS5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2VQdHIuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUmV0YWluZWRNb2RlQml0bWFwSW1hZ2UuY3BwIFwKKwlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9SZXRhaW5lZE1vZGVCaXRtYXBJbWFnZS5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGll
cy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCmluZGV4IDRlNmM2YmEwZmYxOTkyYzk0NDViM2Y1NzY4YmRkNTU1YTVm
YTgwZDcuLmEwODhlYjYwY2U4MTdkYjBmYzVmYTRkZjM5NGUxNTVmNjhkNWJiNTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQpAQCAtOTYyLDYgKzk2Miw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL1BhdGhUcmF2ZXJzYWxTdGF0ZS5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BhdHRl
cm4uY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24uY3BwIFwKKyAgICBwbGF0Zm9y
bS9ncmFwaGljcy9SZXRhaW5lZE1vZGVCaXRtYXBJbWFnZS5jcHAgXAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL1JvdW5kZWRSZWN0LmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvU2VnbWVudGVk
Rm9udERhdGEuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcCBcCkBA
IC0yMDk1LDYgKzIwOTYsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Q
YXR0ZXJuLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTGF5ZXIuaCBcCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1JldGFp
bmVkTW9kZUJpdG1hcEltYWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1JvdW5kZWRSZWN0
LmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTmF0aXZlSW1hZ2VRdC5oIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQppbmRleCBiMTUzZGQ1ZTc5ZTU5ODgwZDRkZTlmNDVhM2ZkZTA5NGZiYTMxNDhiLi5jZmZlMjBm
NzAzMmFiNmM5OGRhNzI3ZWZmNDk0YmQwZWJiYTZkMzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0z
NTQwLDYgKzM1NDAsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1BhdGhUcmF2
ZXJzYWxTdGF0ZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmNwcCcsCisgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvUmV0YWluZWRNb2RlQml0bWFwSW1hZ2UuY3BwJywKKyAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9SZXRhaW5lZE1vZGVCaXRtYXBJbWFnZS5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Sb3VuZGVkUmVjdC5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1NlZ21lbnRlZEZvbnREYXRhLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvU2VnbWVudGVkRm9udERhdGEuaCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDQ4MDFjYzE1MWMxOGFi
NzI4YzAwMDVlZTZiYTc4YjQ0N2M0ZTU0ODMuLjU0NTExZDFjMjliYTdjNjJmYjFkZGFmNDhmNGFm
NjhhNzQyMGUxNzUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCkBAIC0yOTU5NCw2ICsyOTU5NCwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJ
CTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcUmV0YWluZWRN
b2RlQml0bWFwSW1hZ2UuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcUmV0YWluZWRNb2RlQml0bWFwSW1h
Z2UuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXFJvdW5kZWRSZWN0LmNwcCIKIAkJCQkJPgogCQkJCTwvRmls
ZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBkNzkyMTE2MTE2ZDg0NjVkMWM5NjU4NWE5NWI0YjVkYjkwMjM5YjhmLi40MWJlNGRj
OWFhMjJiNzA4ZjYyZDMyYTgyNGJlOTNlMjIyZGQwNTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00ODM4LDYgKzQ4MzgsOCBA
QAogCQlCMjc1MzU3RTBCMDUzODE0MDAyQ0U2NEYgLyogSW50U2l6ZU1hYy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNzUzNTUxMEIwNTM4MTQwMDJD
RTY0RiAvKiBJbnRTaXplTWFjLm1tICovOyB9OwogCQlCMjc1MzU3RjBCMDUzODE0MDAyQ0U2NEYg
LyogUGF0aC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjc1MzU1MjBCMDUzODE0MDAyQ0U2NEYgLyogUGF0aC5jcHAgKi87IH07CiAJCUIyNzUzNTgw
MEIwNTM4MTQwMDJDRTY0RiAvKiBQYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU1MzBCMDUzODE0MDAyQ0U2NEYgLyogUGF0aC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTVCMzQ4MDkzMEVF
RjUwRDQwMEFDMUI0MSAvKiBSZXRhaW5lZE1vZGVCaXRtYXBJbWFnZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QjM0ODA5MTBFRUY1MEQ0MDBBQzFC
NDEgLyogUmV0YWluZWRNb2RlQml0bWFwSW1hZ2UuY3BwICovOyB9OworCQk1QjM0ODA5NDBFRUY1
MEQ0MDBBQzFCNDEgLyogUmV0YWluZWRNb2RlQml0bWFwSW1hZ2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVCMzQ4MDkyMEVFRjUwRDQwMEFDMUI0MSAv
KiBSZXRhaW5lZE1vZGVCaXRtYXBJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUE5OTk0MzI5MEI0MjMzODgwMEQ3QzgwMiAvKiBTeW5jaHJv
bm91c0ltYWdlU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE5OTk0MzI3MEI0MjMzODcwMEQ3QzgwMiAvKiBTeW5jaHJvbm91c0ltYWdlU291
cmNlLmNwcCAqLzsgfTsKIAkJQjM3NTM1NzEwQjA1MzgxNDAwMkNFNjRGIC8qIFN5bmNocm9ub3Vz
SW1hZ2VTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIzNzUzNTQzMEIwNTM4MTQwMDJDRTY0RiAvKiBTeW5jaHJvbm91c0ltYWdlU291cmNlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjI3NTM1
OEUwQjA1M0E2NjAwMkNFNjRGIC8qIEljb25NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU4RDBCMDUzQTY2MDAyQ0U2NEYgLyogSWNvbk1h
Yy5tbSAqLzsgfTsKQEAgLTEyMDc5LDYgKzEyMDgxLDggQEAKIAkJQjI3NTM1NTEwQjA1MzgxNDAw
MkNFNjRGIC8qIEludFNpemVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gSW50U2l6ZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3
NTM1NTIwQjA1MzgxNDAwMkNFNjRGIC8qIFBhdGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFBhdGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
Mjc1MzU1MzBCMDUzODE0MDAyQ0U2NEYgLyogUGF0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGF0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QjM0ODA5
MTBFRUY1MEQ0MDBBQzFCNDEgLyogUmV0YWluZWRNb2RlQml0bWFwSW1hZ2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJldGFpbmVkTW9kZUJpdG1hcEltYWdlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUIzNDgwOTIwRUVGNTBENDAwQUMxQjQx
IC8qIFJldGFpbmVkTW9kZUJpdG1hcEltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZXRhaW5lZE1vZGVCaXRtYXBJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBOTk5NDMyNzBCNDIzMzg3MDBEN0M4MDIgLyogU3luY2hyb25vdXNJbWFnZVNvdXJj
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3luY2hyb25vdXNJ
bWFnZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIzNzUzNTQzMEIw
NTM4MTQwMDJDRTY0RiAvKiBTeW5jaHJvbm91c0ltYWdlU291cmNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTeW5jaHJvbm91c0ltYWdlU291cmNlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUIyNzUzNThEMEIwNTNBNjYwMDJDRTY0RiAvKiBJY29uTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEljb25NYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTg1MSw2ICsxOTg1NSw4IEBACiAJCQkJMDU2
MkY5NjAxNTczRjg4RjAwMzFDQTE2IC8qIFBsYXRmb3JtTGF5ZXIuaCAqLywKIAkJCQlCQ0FCNDE3
RjEzRTM1NkU4MDBEOEFBRjMgLyogUmVnaW9uLmNwcCAqLywKIAkJCQlCQ0FCNDE4MDEzRTM1NkU4
MDBEOEFBRjMgLyogUmVnaW9uLmggKi8sCisJCQkJNUIzNDgwOTEwRUVGNTBENDAwQUMxQjQxIC8q
IFJldGFpbmVkTW9kZUJpdG1hcEltYWdlLmNwcCAqLywKKwkJCQk1QjM0ODA5MjBFRUY1MEQ0MDBB
QzFCNDEgLyogUmV0YWluZWRNb2RlQml0bWFwSW1hZ2UuaCAqLywKIAkJCQlBNzNGOTVGQzEyQzk3
QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovLAogCQkJCUE3M0Y5NUZEMTJDOTdCRkUw
MDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oICovLAogCQkJCTM3MUY0RkZCMEQyNUU3RjMwMEVDRTBE
NSAvKiBTZWdtZW50ZWRGb250RGF0YS5jcHAgKi8sCkBAIC0yNDY3Myw2ICsyNDY3OSw3IEBACiAJ
CQkJN0VFNjg0NkYxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVxdWVzdENGTmV0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk3RUU2ODQ3MDEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNw
b25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0Qzc2N0YwQ0U5MjNBMTAwN0VGM0NEIC8qIFJl
c291cmNlUmVzcG9uc2VCYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1QjM0ODA5NDBFRUY1MEQ0
MDBBQzFCNDEgLyogUmV0YWluZWRNb2RlQml0bWFwSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MEE1MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MEE3MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmJBY2N1bXVsYXRpb25CdWZmZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUZEMzE2MEE5MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmJDb252
b2x2ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IDc1MzIzMjVhMWZkZjBjYjA1ZWUyMjNhOTU4NWE0
MTQyNGNlOTQ0M2EuLjY5M2ZiMmU5YzgwOGY1MDMxY2VkNjBjMzkzOTNiNDY5NzJjYWQ3M2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAK
QEAgLTEzMyw3ICsxMzMsMTIgQEAgdm9pZCBCaXRtYXBJbWFnZTo6Y2FjaGVGcmFtZShzaXplX3Qg
aW5kZXgpCiAgICAgaWYgKG1fZnJhbWVzLnNpemUoKSA8IG51bUZyYW1lcykKICAgICAgICAgbV9m
cmFtZXMuZ3JvdyhudW1GcmFtZXMpOwogCi0gICAgbV9zb3VyY2UucmVxdWVzdEZyYW1lQXRJbmRl
eChpbmRleCk7CisgICAgbV9zb3VyY2UucmVxdWVzdEZyYW1lQXRJbmRleChpbmRleCwgcmV0YWlu
ZWRNb2RlUmVuZGVyaW5nKCkpOworfQorCitib29sIEJpdG1hcEltYWdlOjpyZXRhaW5lZE1vZGVS
ZW5kZXJpbmcoKSBjb25zdAoreworICAgIHJldHVybiBtX3JldGFpbmVkTW9kZUltYWdlLmdldCgp
ICYmIG1fcmV0YWluZWRNb2RlSW1hZ2UtPnJldGFpbmVkTW9kZVJlbmRlcmluZygpOwogfQogCiB2
b2lkIEJpdG1hcEltYWdlOjpkaWREZWNvZGVGcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBOYXRp
dmVJbWFnZVB0ciBuYXRpdmVJbWFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IDg5NmM5MmU3YzdkMzdmZmE2NTNiNmM5NmI2OGRhMTMy
MjdiMTEzOGMuLjMzZDM2MTFlNTZiYjNjMWY3YjE0MTQ2ZTc2Y2I4NmMxYzUwMzNmODQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtMzQs
NiArMzQsNyBAQAogI2luY2x1ZGUgIkltYWdlU291cmNlLmgiCiAjaW5jbHVkZSAiSW1hZ2VTb3Vy
Y2VPYnNlcnZlci5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlICJSZXRhaW5lZE1v
ZGVCaXRtYXBJbWFnZS5oIgogCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KQEAgLTEwMSwxMCArMTAyLDEyIEBAIHB1YmxpYzoKIC8vID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogY2xhc3MgQml0bWFwSW1hZ2Ug
OiBwdWJsaWMgSW1hZ2UsIHB1YmxpYyBJbWFnZVNvdXJjZU9ic2VydmVyIHsKKyAgICBmcmllbmQg
Y2xhc3MgUmV0YWluZWRNb2RlQml0bWFwSW1hZ2U7CiAgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRl
ZEltYWdlOwogICAgIGZyaWVuZCBjbGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTsKICAgICBm
cmllbmQgY2xhc3MgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U7CiAgICAgZnJpZW5kIGNsYXNzIEdy
YXBoaWNzQ29udGV4dDsKKyAgICBmcmllbmQgUmV0YWluZWRNb2RlQml0bWFwSW1hZ2UqIHRvUmV0
YWluZWRNb2RlQml0bWFwSW1hZ2UoSW1hZ2UqKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxCaXRtYXBJbWFnZT4gY3JlYXRlKE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlLCBJbWFn
ZU9ic2VydmVyKiBvYnNlcnZlciA9IDApCiAgICAgewpAQCAtMjc0LDYgKzI3Nyw4IEBAIHByb3Rl
Y3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgbWF5RmlsbFdpdGhTb2xpZENvbG9yKCk7CiAgICAgdmly
dHVhbCBDb2xvciBzb2xpZENvbG9yKCkgY29uc3Q7CiAgICAgCisgICAgYm9vbCByZXRhaW5lZE1v
ZGVSZW5kZXJpbmcoKSBjb25zdDsKKwogICAgIEltYWdlU291cmNlIG1fc291cmNlOwogICAgIG11
dGFibGUgSW50U2l6ZSBtX3NpemU7IC8vIFRoZSBzaXplIHRvIHVzZSBmb3IgdGhlIG92ZXJhbGwg
aW1hZ2UgKHdpbGwganVzdCBiZSB0aGUgc2l6ZSBvZiB0aGUgZmlyc3QgaW1hZ2UpLgogICAgIG11
dGFibGUgSW50U2l6ZSBtX3NpemVSZXNwZWN0aW5nT3JpZW50YXRpb247CkBAIC0yOTgsNiArMzAz
LDggQEAgcHJvdGVjdGVkOgogICAgIG11dGFibGUgdW5zaWduZWQgbV9kZWNvZGVkUHJvcGVydGll
c1NpemU7IC8vIFRoZSBzaXplIG9mIGRhdGEgZGVjb2RlZCBieSB0aGUgc291cmNlIHRvIGRldGVy
bWluZSBpbWFnZSBwcm9wZXJ0aWVzIChlLmcuIHNpemUsIGZyYW1lIGNvdW50LCBldGMpLgogICAg
IHNpemVfdCBtX2ZyYW1lQ291bnQ7CiAKKyAgICBSZWZQdHI8UmV0YWluZWRNb2RlQml0bWFwSW1h
Z2U+IG1fcmV0YWluZWRNb2RlSW1hZ2U7CisKICAgICBib29sIG1faXNTb2xpZENvbG9yIDogMTsg
Ly8gV2hldGhlciBvciBub3Qgd2UgYXJlIGEgMXgxIHNvbGlkIGltYWdlLgogICAgIGJvb2wgbV9j
aGVja2VkRm9yU29saWRDb2xvciA6IDE7IC8vIFdoZXRoZXIgd2UndmUgY2hlY2tlZCB0aGUgZnJh
bWUgZm9yIHNvbGlkIGNvbG9yLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9SZXRhaW5lZE1vZGVCaXRtYXBJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9SZXRhaW5lZE1vZGVCaXRtYXBJbWFnZS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDY3ODU3NWY2YTI4YmMwNTY1Y2Y2ZGFjMWU4ODFkNzk1ZmU5MGVlZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JldGFpbmVkTW9kZUJpdG1hcElt
YWdlLmNwcApAQCAtMCwwICsxLDE2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBDb21w
YW55IDEwMCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJSZXRhaW5lZE1vZGVCaXRtYXBJbWFnZS5oIgorCisjaW5jbHVkZSAi
Qml0bWFwSW1hZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFJldGFp
bmVkTW9kZUJpdG1hcEltYWdlPiBSZXRhaW5lZE1vZGVCaXRtYXBJbWFnZTo6Y3JlYXRlKEJpdG1h
cEltYWdlKiBiaXRtYXBJbWFnZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJldGFpbmVk
TW9kZUJpdG1hcEltYWdlKGJpdG1hcEltYWdlKSk7Cit9CisKK1JldGFpbmVkTW9kZUJpdG1hcElt
YWdlOjpSZXRhaW5lZE1vZGVCaXRtYXBJbWFnZShCaXRtYXBJbWFnZSogYml0bWFwSW1hZ2UpCisg
ICAgOiBtX2JpdG1hcEltYWdlKGJpdG1hcEltYWdlKQorICAgICwgbV9yZXRhaW5lZE1vZGVDb3Vu
dCgwKQoreworfQorCitib29sIFJldGFpbmVkTW9kZUJpdG1hcEltYWdlOjpoYXNTaW5nbGVTZWN1
cml0eU9yaWdpbigpIGNvbnN0Cit7CisgICAgUmV0YWluZWRNb2RlU2F2ZXIgcmV0YWluZWRNb2Rl
U2F2ZXIodGhpcyk7CisgICAgcmV0dXJuIG1fYml0bWFwSW1hZ2UtPmhhc1NpbmdsZVNlY3VyaXR5
T3JpZ2luKCk7Cit9CisKK0ludFNpemUgUmV0YWluZWRNb2RlQml0bWFwSW1hZ2U6OnNpemUoKSBj
b25zdAoreworICAgIFJldGFpbmVkTW9kZVNhdmVyIHJldGFpbmVkTW9kZVNhdmVyKHRoaXMpOwor
ICAgIHJldHVybiBtX2JpdG1hcEltYWdlLT5zaXplKCk7Cit9CisKK2Jvb2wgUmV0YWluZWRNb2Rl
Qml0bWFwSW1hZ2U6OmdldEhvdFNwb3QoSW50UG9pbnQmIHBvaW50KSBjb25zdAoreworICAgIFJl
dGFpbmVkTW9kZVNhdmVyIHJldGFpbmVkTW9kZVNhdmVyKHRoaXMpOworICAgIHJldHVybiBtX2Jp
dG1hcEltYWdlLT5nZXRIb3RTcG90KHBvaW50KTsKK30KKworYm9vbCBSZXRhaW5lZE1vZGVCaXRt
YXBJbWFnZTo6ZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCit7CisgICAgUmV0YWlu
ZWRNb2RlU2F2ZXIgcmV0YWluZWRNb2RlU2F2ZXIodGhpcyk7CisgICAgcmV0dXJuIG1fYml0bWFw
SW1hZ2UtPmRhdGFDaGFuZ2VkKGFsbERhdGFSZWNlaXZlZCk7Cit9CisKK1N0cmluZyBSZXRhaW5l
ZE1vZGVCaXRtYXBJbWFnZTo6ZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdAoreworICAgIFJldGFp
bmVkTW9kZVNhdmVyIHJldGFpbmVkTW9kZVNhdmVyKHRoaXMpOworICAgIHJldHVybiBtX2JpdG1h
cEltYWdlLT5maWxlbmFtZUV4dGVuc2lvbigpOworfQorCit2b2lkIFJldGFpbmVkTW9kZUJpdG1h
cEltYWdlOjpkZXN0cm95RGVjb2RlZERhdGEoYm9vbCBkZXN0cm95QWxsKQoreworICAgIFJldGFp
bmVkTW9kZVNhdmVyIHJldGFpbmVkTW9kZVNhdmVyKHRoaXMpOworICAgIG1fYml0bWFwSW1hZ2Ut
PmRlc3Ryb3lEZWNvZGVkRGF0YShkZXN0cm95QWxsKTsKK30KKwordW5zaWduZWQgUmV0YWluZWRN
b2RlQml0bWFwSW1hZ2U6OmRlY29kZWRTaXplKCkgY29uc3QKK3sKKyAgICBSZXRhaW5lZE1vZGVT
YXZlciByZXRhaW5lZE1vZGVTYXZlcih0aGlzKTsKKyAgICByZXR1cm4gbV9iaXRtYXBJbWFnZS0+
ZGVjb2RlZFNpemUoKTsKK30KKwordm9pZCBSZXRhaW5lZE1vZGVCaXRtYXBJbWFnZTo6c3RhcnRB
bmltYXRpb24oYm9vbCBjYXRjaFVwSWZOZWNlc3NhcnkpCit7CisgICAgUmV0YWluZWRNb2RlU2F2
ZXIgcmV0YWluZWRNb2RlU2F2ZXIodGhpcyk7CisgICAgbV9iaXRtYXBJbWFnZS0+c3RhcnRBbmlt
YXRpb24oY2F0Y2hVcElmTmVjZXNzYXJ5KTsKK30KKwordm9pZCBSZXRhaW5lZE1vZGVCaXRtYXBJ
bWFnZTo6c3RvcEFuaW1hdGlvbigpCit7CisgICAgUmV0YWluZWRNb2RlU2F2ZXIgcmV0YWluZWRN
b2RlU2F2ZXIodGhpcyk7CisgICAgbV9iaXRtYXBJbWFnZS0+c3RvcEFuaW1hdGlvbigpOworfQor
Cit2b2lkIFJldGFpbmVkTW9kZUJpdG1hcEltYWdlOjpyZXNldEFuaW1hdGlvbigpCit7CisgICAg
UmV0YWluZWRNb2RlU2F2ZXIgcmV0YWluZWRNb2RlU2F2ZXIodGhpcyk7CisgICAgbV9iaXRtYXBJ
bWFnZS0+cmVzZXRBbmltYXRpb24oKTsKK30KKworTmF0aXZlSW1hZ2VQdHIgUmV0YWluZWRNb2Rl
Qml0bWFwSW1hZ2U6Om5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkKK3sKKyAgICBSZXRhaW5l
ZE1vZGVTYXZlciByZXRhaW5lZE1vZGVTYXZlcih0aGlzKTsKKyAgICByZXR1cm4gbV9iaXRtYXBJ
bWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKK30KKworYm9vbCBSZXRhaW5lZE1v
ZGVCaXRtYXBJbWFnZTo6Y3VycmVudEZyYW1lSGFzQWxwaGEoKQoreworICAgIFJldGFpbmVkTW9k
ZVNhdmVyIHJldGFpbmVkTW9kZVNhdmVyKHRoaXMpOworICAgIHJldHVybiBtX2JpdG1hcEltYWdl
LT5jdXJyZW50RnJhbWVIYXNBbHBoYSgpOworfQorCit2b2lkIFJldGFpbmVkTW9kZUJpdG1hcElt
YWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNl
LCBDb21wb3NpdGVPcGVyYXRvciBvcCkKK3sKKyAgICBSZXRhaW5lZE1vZGVTYXZlciByZXRhaW5l
ZE1vZGVTYXZlcih0aGlzKTsKKyAgICBtX2JpdG1hcEltYWdlLT5kcmF3KGNvbnRleHQsIGRzdFJl
Y3QsIHNyY1JlY3QsIHN0eWxlQ29sb3JTcGFjZSwgb3ApOworfQorCitib29sIFJldGFpbmVkTW9k
ZUJpdG1hcEltYWdlOjptYXlGaWxsV2l0aFNvbGlkQ29sb3IoKQoreworICAgIFJldGFpbmVkTW9k
ZVNhdmVyIHJldGFpbmVkTW9kZVNhdmVyKHRoaXMpOworICAgIHJldHVybiBtX2JpdG1hcEltYWdl
LT5tYXlGaWxsV2l0aFNvbGlkQ29sb3IoKTsKK30KKworQ29sb3IgUmV0YWluZWRNb2RlQml0bWFw
SW1hZ2U6OnNvbGlkQ29sb3IoKSBjb25zdAoreworICAgIFJldGFpbmVkTW9kZVNhdmVyIHJldGFp
bmVkTW9kZVNhdmVyKHRoaXMpOworICAgIHJldHVybiBtX2JpdG1hcEltYWdlLT5zb2xpZENvbG9y
KCk7Cit9CisKK1JldGFpbmVkTW9kZVNhdmVyOjpSZXRhaW5lZE1vZGVTYXZlcihjb25zdCBSZXRh
aW5lZE1vZGVCaXRtYXBJbWFnZSogaW1hZ2UsIGJvb2wgcmV0YWluZWQpCisgICAgOiBtX2ltYWdl
KGltYWdlKQorICAgICwgbV9yZXRhaW5lZChyZXRhaW5lZCkKK3sKKyAgICBpZiAobV9yZXRhaW5l
ZCkKKyAgICAgICAgbV9pbWFnZS0+YmVnaW5SZXRhaW5lZE1vZGUoKTsKK30KKworUmV0YWluZWRN
b2RlU2F2ZXI6On5SZXRhaW5lZE1vZGVTYXZlcigpCit7CisgICAgaWYgKG1fcmV0YWluZWQpCisg
ICAgICAgIG1faW1hZ2UtPmVuZFJldGFpbmVkTW9kZSgpOworfQorCitSZXRhaW5lZE1vZGVCaXRt
YXBJbWFnZSogdG9SZXRhaW5lZE1vZGVCaXRtYXBJbWFnZShJbWFnZSogaW1hZ2UpCit7CisgICAg
QVNTRVJUKGltYWdlLT5pc0JpdG1hcEltYWdlKCkpOworCisgICAgQml0bWFwSW1hZ2UqIGJpdG1h
cEltYWdlID0gc3RhdGljX2Nhc3Q8Qml0bWFwSW1hZ2UqPihpbWFnZSk7CisgICAgaWYgKCFiaXRt
YXBJbWFnZS0+bV9yZXRhaW5lZE1vZGVJbWFnZS5nZXQoKSkKKyAgICAgICAgYml0bWFwSW1hZ2Ut
Pm1fcmV0YWluZWRNb2RlSW1hZ2UgPSBSZXRhaW5lZE1vZGVCaXRtYXBJbWFnZTo6Y3JlYXRlKGJp
dG1hcEltYWdlKTsKKworICAgIHJldHVybiBiaXRtYXBJbWFnZS0+bV9yZXRhaW5lZE1vZGVJbWFn
ZS5nZXQoKTsKK30KKworSW1hZ2UqIHRvUmV0YWluZWRNb2RlQml0bWFwSW1hZ2VJZlBvc3NpYmxl
KEltYWdlKiBpbWFnZSkKK3sKKyAgICBpZiAoaW1hZ2UgJiYgaW1hZ2UtPmlzQml0bWFwSW1hZ2Uo
KSkKKyAgICAgICAgcmV0dXJuIHRvUmV0YWluZWRNb2RlQml0bWFwSW1hZ2UoaW1hZ2UpOworICAg
IHJldHVybiBpbWFnZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUmV0YWluZWRNb2RlQml0bWFwSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1JldGFpbmVkTW9kZUJpdG1hcEltYWdlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU4
NGRhZDQ3YjU3YzYyYmFhOTJlZmRhZWZiODhiNWQ3YmE0YzczMQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JldGFpbmVkTW9kZUJpdG1hcEltYWdl
LmgKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQ29tcGFueSAx
MDAgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJldGFpbmVkTW9k
ZUJpdG1hcEltYWdlX2gKKyNkZWZpbmUgUmV0YWluZWRNb2RlQml0bWFwSW1hZ2VfaAorCisjaW5j
bHVkZSAiSW1hZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBCaXRtYXBJbWFn
ZTsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKK2NsYXNzIFJldGFpbmVkTW9kZVNhdmVyOworCisv
LyBSZXRhaW5lZE1vZGVCaXRtYXBJbWFnZSBpcyB1c2VkIGluIG9yZGVyIHRvIG1hcmsgaXQgaXMg
c2FmZSB0byBkZWNvZGUgYXN5bmNocm9ub3VzbHkuCisvLyBDbGllbnRzIG9ubHkgdXNlIHRoaXMg
Y2xhc3Mgd2hlbiB0aGV5IGNhbGwgbmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSBhbmQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UodG9SZXRhaW5lZE1vZGVCaXRtYXBJbWFnZUlmUG9zc2li
bGUoaW1hZ2UpKS4KKy8vIEFsdGhvdWdoIGNsaWVudHMgY2FuIGNhbGwgb25seSBuYXRpdmVJbWFn
ZUZvckN1cnJlbnRGcmFtZSgpLCBSZXRhaW5lZE1vZGVCaXRtYXBJbWFnZSBvdmVycmlkZXMgYWxs
IHZpcnR1YWwgbWV0aG9kcyBvZiBJbWFnZSwKKy8vIGJlY2F1c2UgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3SW1hZ2UoKSBjYW4gY2FsbCBvdGhlciB2aXJ0dWFsIG1ldGhvZHMuCisvLyBGb3IgaW5zdGFu
Y2UsIGluIGN1cnJlbnQgY29kZSwgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKSBjYWxscyBz
aXplKCksIHdoaWNoIGlzIGEgdmlydHVhbCBtZXRob2RzIG9mIEltYWdlLgorY2xhc3MgUmV0YWlu
ZWRNb2RlQml0bWFwSW1hZ2UgOiBwdWJsaWMgSW1hZ2UgeworICAgIGZyaWVuZCBjbGFzcyBHcmFw
aGljc0NvbnRleHQ7CisgICAgZnJpZW5kIGNsYXNzIFJldGFpbmVkTW9kZVNhdmVyOworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJldGFpbmVkTW9kZUJpdG1hcEltYWdlPiBjcmVhdGUo
Qml0bWFwSW1hZ2UqKTsKKworICAgIHZpcnR1YWwgflJldGFpbmVkTW9kZUJpdG1hcEltYWdlKCkg
eyB9CisKKyAgICB2aXJ0dWFsIE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudEZy
YW1lKCk7CisKKyAgICBpbmxpbmUgYm9vbCByZXRhaW5lZE1vZGVSZW5kZXJpbmcoKSBjb25zdCB7
IHJldHVybiBtX3JldGFpbmVkTW9kZUNvdW50OyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQg
UmV0YWluZWRNb2RlQml0bWFwSW1hZ2UoQml0bWFwSW1hZ2UqKTsKKworICAgIHZpcnR1YWwgYm9v
bCBjdXJyZW50RnJhbWVIYXNBbHBoYSgpOworCisgICAgdmlydHVhbCBib29sIGhhc1NpbmdsZVNl
Y3VyaXR5T3JpZ2luKCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIEludFNpemUgc2l6ZSgpIGNvbnN0
OworICAgIHZpcnR1YWwgYm9vbCBnZXRIb3RTcG90KEludFBvaW50JikgY29uc3Q7CisKKyAgICB2
aXJ0dWFsIGJvb2wgZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpOworICAgIHZpcnR1
YWwgU3RyaW5nIGZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIHZvaWQg
ZGVzdHJveURlY29kZWREYXRhKGJvb2wgZGVzdHJveUFsbCA9IHRydWUpOworICAgIHZpcnR1YWwg
dW5zaWduZWQgZGVjb2RlZFNpemUoKSBjb25zdDsKKworICAgIHZpcnR1YWwgdm9pZCBzdGFydEFu
aW1hdGlvbihib29sIGNhdGNoVXBJZk5lY2Vzc2FyeSA9IHRydWUpOworICAgIHZpcnR1YWwgdm9p
ZCBzdG9wQW5pbWF0aW9uKCk7CisgICAgdmlydHVhbCB2b2lkIHJlc2V0QW5pbWF0aW9uKCk7CisK
KyAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3Qm
IGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9y
U3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yKTsKKworICAgIHZpcnR1YWwgYm9vbCBtYXlGaWxsV2l0
aFNvbGlkQ29sb3IoKTsKKyAgICB2aXJ0dWFsIENvbG9yIHNvbGlkQ29sb3IoKSBjb25zdDsKKwor
ICAgIGlubGluZSB2b2lkIGJlZ2luUmV0YWluZWRNb2RlKCkgY29uc3QgeyBtX3JldGFpbmVkTW9k
ZUNvdW50Kys7IH0KKyAgICBpbmxpbmUgdm9pZCBlbmRSZXRhaW5lZE1vZGUoKSBjb25zdAorICAg
IHsKKyAgICAgICAgbV9yZXRhaW5lZE1vZGVDb3VudC0tOworICAgICAgICBBU1NFUlQobV9yZXRh
aW5lZE1vZGVDb3VudCA+PSAwKTsKKyAgICB9CisKKyAgICBCaXRtYXBJbWFnZSogbV9iaXRtYXBJ
bWFnZTsKKyAgICBtdXRhYmxlIGludCBtX3JldGFpbmVkTW9kZUNvdW50OworfTsKKworY2xhc3Mg
UmV0YWluZWRNb2RlU2F2ZXIgeworcHVibGljOgorICAgIFJldGFpbmVkTW9kZVNhdmVyKGNvbnN0
IFJldGFpbmVkTW9kZUJpdG1hcEltYWdlKiwgYm9vbCByZXRhaW5lZCA9IHRydWUpOworICAgIH5S
ZXRhaW5lZE1vZGVTYXZlcigpOworCitwcml2YXRlOgorICAgIGNvbnN0IFJldGFpbmVkTW9kZUJp
dG1hcEltYWdlKiBtX2ltYWdlOworICAgIGJvb2wgbV9yZXRhaW5lZDsKK307CisKKworUmV0YWlu
ZWRNb2RlQml0bWFwSW1hZ2UqIHRvUmV0YWluZWRNb2RlQml0bWFwSW1hZ2UoSW1hZ2UqKTsKK0lt
YWdlKiB0b1JldGFpbmVkTW9kZUJpdG1hcEltYWdlSWZQb3NzaWJsZShJbWFnZSopOworCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggNDhl
YTA1NDcwZGRmMDRiZDEwNDJkNWViMzBjMTZiZmNlNzhkM2IxNC4uMjEyOTM3NjI5MjQwNmE5Mjg4
ODBhZGVmNDRjNDYxMWY1OTg1MjYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW1hZ2UuY3BwCkBAIC0zMjgsNyArMzI4LDcgQEAgdm9pZCBSZW5kZXJJbWFnZTo6cGFpbnRSZXBs
YWNlZChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2YKICAg
ICAgICAgICAgICAgICBpZiAoY2VudGVyWSA8IDApCiAgICAgICAgICAgICAgICAgICAgIGNlbnRl
clkgPSAwOwogICAgICAgICAgICAgICAgIGltYWdlT2Zmc2V0ID0gTGF5b3V0U2l6ZShsZWZ0Qm9y
ZGVyICsgbGVmdFBhZCArIGNlbnRlclggKyAxLCB0b3BCb3JkZXIgKyB0b3BQYWQgKyBjZW50ZXJZ
ICsgMSk7Ci0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBz
dHlsZSgpLT5jb2xvclNwYWNlKCksIEludFJlY3Qocm91bmRlZEludFBvaW50KHBhaW50T2Zmc2V0
ICsgaW1hZ2VPZmZzZXQpLCBpbWFnZVNpemUpLCBDb21wb3NpdGVTb3VyY2VPdmVyLCBzaG91bGRS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3
SW1hZ2UodG9SZXRhaW5lZE1vZGVCaXRtYXBJbWFnZUlmUG9zc2libGUoaW1hZ2UuZ2V0KCkpLCBz
dHlsZSgpLT5jb2xvclNwYWNlKCksIEludFJlY3Qocm91bmRlZEludFBvaW50KHBhaW50T2Zmc2V0
ICsgaW1hZ2VPZmZzZXQpLCBpbWFnZVNpemUpLCBDb21wb3NpdGVTb3VyY2VPdmVyLCBzaG91bGRS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpKTsKICAgICAgICAgICAgICAgICBlcnJvclBpY3R1cmVE
cmF3biA9IHRydWU7CiAgICAgICAgICAgICB9CiAKQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lkIFJl
bmRlckltYWdlOjpwYWludEludG9SZWN0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3Qg
TGF5b3V0UmVjdCYgcmVjdAogICAgIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9y
ID0gaW1hZ2VFbHQgPyBpbWFnZUVsdC0+Y29tcG9zaXRlT3BlcmF0b3IoKSA6IENvbXBvc2l0ZVNv
dXJjZU92ZXI7CiAgICAgSW1hZ2UqIGltYWdlID0gbV9pbWFnZVJlc291cmNlLT5pbWFnZSgpLmdl
dCgpOwogICAgIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxpbmcgPSBzaG91bGRQYWludEF0TG93UXVh
bGl0eShjb250ZXh0LCBpbWFnZSwgaW1hZ2UsIGFsaWduZWRSZWN0LnNpemUoKSk7Ci0gICAgY29u
dGV4dC0+ZHJhd0ltYWdlKG1faW1hZ2VSZXNvdXJjZS0+aW1hZ2UoYWxpZ25lZFJlY3Qud2lkdGgo
KSwgYWxpZ25lZFJlY3QuaGVpZ2h0KCkpLmdldCgpLCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIGFs
aWduZWRSZWN0LCBjb21wb3NpdGVPcGVyYXRvciwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRp
b24oKSwgdXNlTG93UXVhbGl0eVNjYWxpbmcpOworICAgIGNvbnRleHQtPmRyYXdJbWFnZSh0b1Jl
dGFpbmVkTW9kZUJpdG1hcEltYWdlSWZQb3NzaWJsZShtX2ltYWdlUmVzb3VyY2UtPmltYWdlKGFs
aWduZWRSZWN0LndpZHRoKCksIGFsaWduZWRSZWN0LmhlaWdodCgpKS5nZXQoKSksIHN0eWxlKCkt
PmNvbG9yU3BhY2UoKSwgYWxpZ25lZFJlY3QsIGNvbXBvc2l0ZU9wZXJhdG9yLCBzaG91bGRSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbigpLCB1c2VMb3dRdWFsaXR5U2NhbGluZyk7CiB9CiAKIGJvb2wg
UmVuZGVySW1hZ2U6OmJveFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZChCYWNrZ3Jv
dW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UsIElubGluZUZsb3dCb3gqKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcAppbmRl
eCA1NmJlNWNkNDE2YmNkZTI2ZTBhODU1YmUxYWRjZWEyYjQzZmMwYjk1Li4yYWU3Y2VmNzNmMzUy
YzE3ZGEyMDQ3MjA3MGUxYThmMWRmZmZhYWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUg
IlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuaCIK
ICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5oIgorI2luY2x1ZGUgIlJldGFpbmVk
TW9kZUJpdG1hcEltYWdlLmgiCiAjaW5jbHVkZSAiU1ZHSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiU1ZHTGVuZ3RoLmgiCiAjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIgpAQCAt
MTM0LDcgKzEzNSw3IEBAIHZvaWQgUmVuZGVyU1ZHSW1hZ2U6OnBhaW50KFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYpCiAgICAgICAgICAgICAgICAgU1ZHSW1hZ2VFbGVt
ZW50KiBpbWFnZUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdJbWFnZUVsZW1lbnQqPihub2RlKCkp
OwogICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC0+cHJlc2VydmVBc3BlY3RSYXRpbygpLnRy
YW5zZm9ybVJlY3QoZGVzdFJlY3QsIHNyY1JlY3QpOwogCi0gICAgICAgICAgICAgICAgY2hpbGRQ
YWludEluZm8uY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBDb2xvclNwYWNlRGV2aWNl
UkdCLCBkZXN0UmVjdCwgc3JjUmVjdCk7CisgICAgICAgICAgICAgICAgY2hpbGRQYWludEluZm8u
Y29udGV4dC0+ZHJhd0ltYWdlKHRvUmV0YWluZWRNb2RlQml0bWFwSW1hZ2VJZlBvc3NpYmxlKGlt
YWdlLmdldCgpKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZGVzdFJlY3QsIHNyY1JlY3QpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157704</attachid>
            <date>2012-08-10 04:47:42 -0700</date>
            <delta_ts>2012-08-15 23:47:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93590-20120810204710.patch</filename>
            <type>text/plain</type>
            <size>25726</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjNlOWQ4OGNhZWRhZWRk
OGMzZmVmZDhhYTI4MGU5OWExZTYwMGQ0NC4uMzAzNTFmMmUwN2U4Yjg4YjM3NDkyMWRhNjA0MjQy
ODJkYjhhMWE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY3IEBACiAyMDEyLTA4LTEwICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIEFkZCBOb25J
bW1lZGlhdGVCaXRtYXBJbWFnZSB0byBtYXJrIGl0IGlzIHNhZmUgdG8gZGVjb2RlIGFzeW5jaHJv
bm91c2x5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTM1OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBC
ZWNhdXNlIGltYWdlIGRlY29kaW5nIGlzIHVzZWQgaW4gdmFyaW91cyBjb250ZXh0cyBpbiBXZWJL
aXQsIGl0IGlzIHNpbXBseQorICAgICAgICBpbXBvc3NpYmxlIHRvIG1ha2UgYWxsIGRlY29kaW5n
IGFzeW5jaHJvbm91cy4gSW5zdGVhZCwgd2Ugc2VsZWN0aXZlbHkgdXNlIGFzeW5jCisgICAgICAg
IGltYWdlIGRlY29kZXJzIHdoZXJlIHBvc3NpYmxlIGFuZCB1c2UgdGhlIGV4aXN0aW5nIHNlcXVl
bnRpYWwgaW1hZ2UgZGVjb2RlcnMgb3RoZXJ3aXNlLgorICAgICAgICBOb25JbW1lZGlhdGVCaXRt
YXBJbWFnZSB3cmFwcyBhIEJpdG1hcEltYWdlIGFuZCBoZWxwcyBkZWNpZGUgd2hlbiBpdCBpcyBz
YWZlIGFuZCBiZW5lZmljaWFsCisgICAgICAgIHRvIHVzZSBhc3luYyBpbWFnZSBkZWNvZGVycy4K
KworICAgICAgICBObyBuZXcgdGVzdHMgLSBleGlzdGluZyBpbWFnZSB0ZXN0cyBjb3ZlciB0aGVz
ZSBjYXNlcy4KKyAgICAgICAgVGVzdDogY29tcG9zaXRpbmcvaW1hZ2VzLyoKKyAgICAgICAgICAg
ICAgZmFzdC9pbWFnZXMvKgorICAgICAgICAgICAgICBmYXN0L2RvbS9IVE1MSW1hZ2VFbGVtZW50
LyoKKyAgICAgICAgICAgICAgaHR0cC90ZXN0cy9pbWFnZXMvKgorICAgICAgICAgICAgICBjc3Mz
L2ltYWdlcy8qCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5n
eXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6
Y2FjaGVGcmFtZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1h
cEltYWdlOjpub25JbW1lZGlhdGVSZW5kZXJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgIChCaXRtYXBJbWFnZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9uSW1tZWRpYXRlQml0bWFwSW1hZ2U6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpOb25JbW1lZGlhdGVCaXRtYXBJbWFnZTo6Tm9u
SW1tZWRpYXRlQml0bWFwSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Tm9uSW1tZWRpYXRlQml0
bWFwSW1hZ2U6Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6Ok5v
bkltbWVkaWF0ZUJpdG1hcEltYWdlOjpzaXplKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vbkltbWVk
aWF0ZUJpdG1hcEltYWdlOjpnZXRIb3RTcG90KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vbkltbWVk
aWF0ZUJpdG1hcEltYWdlOjpkYXRhQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpOb25JbW1l
ZGlhdGVCaXRtYXBJbWFnZTo6ZmlsZW5hbWVFeHRlbnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Tm9uSW1tZWRpYXRlQml0bWFwSW1hZ2U6OmRlc3Ryb3lEZWNvZGVkRGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpOb25JbW1lZGlhdGVCaXRtYXBJbWFnZTo6ZGVjb2RlZFNpemUpOgorICAgICAgICAo
V2ViQ29yZTo6Tm9uSW1tZWRpYXRlQml0bWFwSW1hZ2U6OnN0YXJ0QW5pbWF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vbkltbWVkaWF0ZUJpdG1hcEltYWdlOjpzdG9wQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vbkltbWVkaWF0ZUJpdG1hcEltYWdlOjpyZXNldEFuaW1hdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpOb25JbW1lZGlhdGVCaXRtYXBJbWFnZTo6bmF0aXZlSW1hZ2VG
b3JDdXJyZW50RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9uSW1tZWRpYXRlQml0bWFwSW1h
Z2U6OmN1cnJlbnRGcmFtZUhhc0FscGhhKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vbkltbWVkaWF0
ZUJpdG1hcEltYWdlOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vbkltbWVkaWF0ZUJpdG1h
cEltYWdlOjptYXlGaWxsV2l0aFNvbGlkQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6Tm9uSW1t
ZWRpYXRlQml0bWFwSW1hZ2U6OnNvbGlkQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6dG9Ob25J
bW1lZGlhdGVCaXRtYXBJbWFnZUlmUG9zc2libGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL05vbkltbWVkaWF0ZUJpdG1hcEltYWdlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChOb25JbW1lZGlhdGVCaXRtYXBJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpO
b25JbW1lZGlhdGVCaXRtYXBJbWFnZTo6bm9uSW1tZWRpYXRlUmVuZGVyaW5nKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1h
Z2U6OnBhaW50UmVwbGFjZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50
SW50b1JlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW1hZ2U6OnBhaW50KToKKworMjAxMi0wOC0xMCAg
SHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKwogICAgICAgICBDaGFu
Z2UgSW1hZ2VTb3VyY2UgdG8gYmUgYXN5bmNocm9ub3VzLgogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM0NjcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCAwMjM2NGQ3NjA4M2VjMWM1OGViM2JhMTkyMmM5Mjc4ODZhMjM3OTViLi5hOGY2YzM3OGFmZDg3
OTMxOWJmODlhNjZmZTljOTEwNzhhM2E2ZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTgy
Nyw2ICsxODI3LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlT3JpZW50YXRpb24uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5jcHAK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKyAgICBwbGF0Zm9ybS9ncmFw
aGljcy9Ob25JbW1lZGlhdGVCaXRtYXBJbWFnZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Q
YXRoLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BhdGhUcmF2ZXJzYWxTdGF0ZS5jcHAKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KaW5kZXggZDExZTk4NDkwZWZjNDI2NWFlNTY3NTRmYjI1YzMxZDFmNzQ4ZDkyZi4uZjlhZjcw
MDAwZjVhMDNkZTEwNzhiNDNjZGVhN2NiMGIxNTNkYjhiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCkBAIC0zMjQyLDYgKzMyNDIsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rhc2hBcnJheS5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2VQdHIuaCBcCisJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2UuY3BwIFwKKwlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Ob25JbW1lZGlhdGVCaXRtYXBJbWFnZS5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxp
dGllcy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDRlNmM2YmEwZmYxOTkyYzk0NDViM2Y1NzY4YmRkNTU1
YTVmYTgwZDcuLjRmYTM5OGQ2NDY0NmM5NTgxOWYwOWZhZjQ4ZTg0N2I3Nzc5MGY0NDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQpAQCAtOTU4LDYgKzk1OCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlT3JpZW50YXRpb24uY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZVNvdXJjZS5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuY3BwIFwKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9Ob25JbW1lZGlhdGVCaXRtYXBJbWFnZS5jcHAgXAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL1BhdGguY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9QYXRoVHJhdmVy
c2FsU3RhdGUuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNwcCBcCkBAIC0y
MDg5LDYgKzIwOTAsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbnRS
ZWN0LmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggXAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlUHRyLmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL05v
bkltbWVkaWF0ZUJpdG1hcEltYWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBl
L09wZW5UeXBlVmVydGljYWxEYXRhLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BhdGguaCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFRyYXZlcnNhbFN0YXRlLmggXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IGFjM2MyMWViMDZiMDQwNzUxZTNjMGI3NGI3OGQ4MjMyYjkyMjk3M2IuLjI0MjUz
ZDMzMjRlYTUyY2M2NmYyMGE1MDA3M2E2ODJlZWEwY2E0ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTM1MzUsNiArMzUzNSw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclBy
aXZhdGUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2VQdHIu
aCcgLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL05vbkltbWVkaWF0ZUJpdG1hcElt
YWdlLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvTm9uSW1tZWRpYXRlQml0
bWFwSW1hZ2UuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1BhdGhUcmF2ZXJzYWxTdGF0ZS5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1BhdGhUcmF2ZXJzYWxTdGF0ZS5oJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYjgzZGM3
ZTE5NDkzY2FmMDM3YmVhYTg1MGI5ZTA0ODM4Y2IxZGQ4My4uYWQxYzM5ZWY2NGVmYTM2ZjE0NDc5
NzJhZjY4M2RjMWJlOWFlNDVhNyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKQEAgLTI5NTU4LDYgKzI5NTU4LDE0IEBACiAJCQkJCT4KIAkJCQk8L0Zp
bGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xO
b25JbW1lZGlhdGVCaXRtYXBJbWFnZS5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZp
bGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xOb25JbW1lZGlhdGVC
aXRtYXBJbWFnZS5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcUGF0aC5jcHAiCiAJCQkJCT4KIAkJCQk8L0Zp
bGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggZDc5MjExNjExNmQ4NDY1ZDFjOTY1ODVhOTViNGI1ZGI5MDIzOWI4Zi4uOTIyYTAw
OTllYmEzNmExODFiMWE1ODk5ZTc2ZWY0MmVmMDVmNThmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDgzNiw2ICs0ODM2LDgg
QEAKIAkJQjI3NTM1N0MwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50TWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NEYwQjA1MzgxNDAw
MkNFNjRGIC8qIEludFBvaW50TWFjLm1tICovOyB9OwogCQlCMjc1MzU3RDBCMDUzODE0MDAyQ0U2
NEYgLyogSW50UmVjdE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEIyNzUzNTUwMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRSZWN0TWFjLm1tICovOyB9
OwogCQlCMjc1MzU3RTBCMDUzODE0MDAyQ0U2NEYgLyogSW50U2l6ZU1hYy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNzUzNTUxMEIwNTM4MTQwMDJD
RTY0RiAvKiBJbnRTaXplTWFjLm1tICovOyB9OworCQk1QjM0ODA5MzBFRUY1MEQ0MDBBQzFCNDEg
LyogTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNUIzNDgwOTEwRUVGNTBENDAwQUMxQjQxIC8qIE5vbkltbWVk
aWF0ZUJpdG1hcEltYWdlLmNwcCAqLzsgfTsKKwkJNUIzNDgwOTQwRUVGNTBENDAwQUMxQjQxIC8q
IE5vbkltbWVkaWF0ZUJpdG1hcEltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1QjM0ODA5MjBFRUY1MEQ0MDBBQzFCNDEgLyogTm9uSW1tZWRpYXRl
Qml0bWFwSW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCMjc1MzU3RjBCMDUzODE0MDAyQ0U2NEYgLyogUGF0aC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU1MjBCMDUzODE0MDAyQ0U2
NEYgLyogUGF0aC5jcHAgKi87IH07CiAJCUIyNzUzNTgwMEIwNTM4MTQwMDJDRTY0RiAvKiBQYXRo
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU1
MzBCMDUzODE0MDAyQ0U2NEYgLyogUGF0aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUE5OTk0MzI5MEI0MjMzODgwMEQ3QzgwMiAvKiBTeW5jaHJv
bm91c0ltYWdlU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE5OTk0MzI3MEI0MjMzODcwMEQ3QzgwMiAvKiBTeW5jaHJvbm91c0ltYWdlU291
cmNlLmNwcCAqLzsgfTsKQEAgLTEyMDc3LDYgKzEyMDc5LDggQEAKIAkJQjI3NTM1NEYwQjA1Mzgx
NDAwMkNFNjRGIC8qIEludFBvaW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IEludFBvaW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCMjc1MzU1MDBCMDUzODE0MDAyQ0U2NEYgLyogSW50UmVjdE1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbnRSZWN0TWFjLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCMjc1MzU1MTBCMDUzODE0MDAyQ0U2NEYgLyogSW50U2l6ZU1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbnRTaXplTWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QjM0ODA5MTBFRUY1MEQ0MDBBQzFCNDEg
LyogTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE5vbkltbWVkaWF0ZUJpdG1hcEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNUIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8qIE5vbkltbWVkaWF0ZUJp
dG1hcEltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb25JbW1lZGlh
dGVCaXRtYXBJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjc1MzU1MjBC
MDUzODE0MDAyQ0U2NEYgLyogUGF0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUGF0aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNzUzNTUz
MEIwNTM4MTQwMDJDRTY0RiAvKiBQYXRoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQYXRoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE5OTk0MzI3MEI0MjMz
ODcwMEQ3QzgwMiAvKiBTeW5jaHJvbm91c0ltYWdlU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTeW5jaHJvbm91c0ltYWdlU291cmNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5ODQyLDYgKzE5ODQ2LDggQEAKIAkJCQlFNEI0MUUw
RDBDQkY5MEJEMDBBRjJFQ0UgLyogTWVkaWFQbGF5ZXIuaCAqLywKIAkJCQkwNzlGNUU0QjBGM0JF
QkVBMDA1RTA3ODIgLyogTWVkaWFQbGF5ZXJQcml2YXRlLmggKi8sCiAJCQkJNkIzNDgwOTIwRUVG
NTBENDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdlUHRyLmggKi8sCisJCQkJNUIzNDgwOTEwRUVGNTBE
NDAwQUMxQjQxIC8qIE5vbkltbWVkaWF0ZUJpdG1hcEltYWdlLmNwcCAqLywKKwkJCQk1QjM0ODA5
MjBFRUY1MEQ0MDBBQzFCNDEgLyogTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2UuaCAqLywKIAkJCQlC
Mjc1MzU1MjBCMDUzODE0MDAyQ0U2NEYgLyogUGF0aC5jcHAgKi8sCiAJCQkJQjI3NTM1NTMwQjA1
MzgxNDAwMkNFNjRGIC8qIFBhdGguaCAqLywKIAkJCQlBODhERDQ4ODBCNDYyOUIwMDBDMDI5OTAg
LyogUGF0aFRyYXZlcnNhbFN0YXRlLmNwcCAqLywKQEAgLTI0MzYyLDYgKzI0MzY4LDcgQEAKIAkJ
CQlBN0Y1RDk1MDEzODRGMDJEMDBBMjlBODcgLyogTm9kZVJlbmRlcmluZ0NvbnRleHQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTYzRDdCMzJEMEU3OENEM0YwMEY3NjE3QyAvKiBOb2RlUmVuZGVyU3R5
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzODJBQUI0MEQ4QzM4NjEwMEYzNTdBNiAvKiBOb2Rl
V2l0aEluZGV4LmggaW4gSGVhZGVycyAqLywKKwkJCQk1QjM0ODA5NDBFRUY1MEQ0MDBBQzFCNDEg
LyogTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3RUJF
MEExOTQ1RDAwMEE4RUY1RiAvKiBOb3RhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEyQzBD
NDExNDZEQzZDQzAwMTZDOTExIC8qIE5vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzM5MENBNTYwRkZDMTU3QjAwOTIxOTYyIC8qIE5vdGlmaWNhdGlvbkNlbnRlci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNzY0MCw2ICsyNzY0Nyw3IEBACiAJCQkJODU0RkU3MzIwQTIyOTdCRTAwNThE
N0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0RkU3
MzQwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBN0Y1RDk0RjEzODRGMDJEMDBBMjlBODcgLyogTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNUIzNDgwOTMwRUVGNTBENDAwQUMxQjQxIC8qIE5vbkltbWVkaWF0
ZUJpdG1hcEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4RUE3RUJGMEExOTQ1RDAwMEE4
RUY1RiAvKiBOb3RhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMzUwM0NDNzEwMTdBMUIx
MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzOTBDQTU1
MEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRpb25DZW50ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAK
aW5kZXggNzM2ZjJjODgzNzZiOWJhNzExZGI2N2MwYmM3MjdiMjQxYTNlNjVlZS4uM2VmNjY0ODJl
YzI3MzQ4ZTY3MTZlYWI0MGRlY2QxYzI1ODIwMzM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtMTM0LDcgKzEzNCwxMiBAQCB2
b2lkIEJpdG1hcEltYWdlOjpjYWNoZUZyYW1lKHNpemVfdCBpbmRleCkKICAgICBpZiAobV9mcmFt
ZXMuc2l6ZSgpIDwgbnVtRnJhbWVzKQogICAgICAgICBtX2ZyYW1lcy5ncm93KG51bUZyYW1lcyk7
CiAKLSAgICBtX3NvdXJjZS5yZXF1ZXN0RnJhbWVBdEluZGV4KGluZGV4KTsKKyAgICBtX3NvdXJj
ZS5yZXF1ZXN0RnJhbWVBdEluZGV4KGluZGV4LCBub25JbW1lZGlhdGVSZW5kZXJpbmcoKSk7Cit9
CisKK2Jvb2wgQml0bWFwSW1hZ2U6Om5vbkltbWVkaWF0ZVJlbmRlcmluZygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fbm9uSW1tZWRpYXRlSW1hZ2UuZ2V0KCkgJiYgbV9ub25JbW1lZGlhdGVJbWFn
ZS0+bm9uSW1tZWRpYXRlUmVuZGVyaW5nKCk7CiB9CiAKIHZvaWQgQml0bWFwSW1hZ2U6OmRpZERl
Y29kZUZyYW1lQXRJbmRleChzaXplX3QgaW5kZXgsIE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5k
ZXggYjM2ZDBlM2VlM2ZlZjU5ZjM2YmVhMTczNjU2MWRmMzYzOTkwMDI0MC4uMjkxODk3MmVlYmYx
NGMyYTU3NzkxMGVjMGUzNjZjNDQ2NzMzNWZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAi
SW1hZ2VTb3VyY2UuaCIKICNpbmNsdWRlICJJbWFnZVNvdXJjZU9ic2VydmVyLmgiCiAjaW5jbHVk
ZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUgIk5vbkltbWVkaWF0ZUJpdG1hcEltYWdlLmgiCiAKICNp
ZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpAQCAtMTAxLDEwICsx
MDIsMTIgQEAgcHVibGljOgogLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQogCiBjbGFzcyBCaXRtYXBJbWFnZSA6IHB1YmxpYyBJbWFnZSwgcHVibGlj
IEltYWdlU291cmNlT2JzZXJ2ZXIgeworICAgIGZyaWVuZCBjbGFzcyBOb25JbW1lZGlhdGVCaXRt
YXBJbWFnZTsKICAgICBmcmllbmQgY2xhc3MgR2VuZXJhdGVkSW1hZ2U7CiAgICAgZnJpZW5kIGNs
YXNzIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOwogICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0b3JH
ZW5lcmF0ZWRJbWFnZTsKICAgICBmcmllbmQgY2xhc3MgR3JhcGhpY3NDb250ZXh0OworICAgIGZy
aWVuZCBJbWFnZSogdG9Ob25JbW1lZGlhdGVCaXRtYXBJbWFnZUlmUG9zc2libGUoSW1hZ2UqKTsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxCaXRtYXBJbWFnZT4gY3JlYXRlKE5hdGl2
ZUltYWdlUHRyIG5hdGl2ZUltYWdlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlciA9IDApCiAgICAg
ewpAQCAtMjc1LDYgKzI3OCw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgbWF5Rmls
bFdpdGhTb2xpZENvbG9yKCk7CiAgICAgdmlydHVhbCBDb2xvciBzb2xpZENvbG9yKCkgY29uc3Q7
CiAgICAgCisgICAgYm9vbCBub25JbW1lZGlhdGVSZW5kZXJpbmcoKSBjb25zdDsKKwogICAgIElt
YWdlU291cmNlIG1fc291cmNlOwogICAgIG11dGFibGUgSW50U2l6ZSBtX3NpemU7IC8vIFRoZSBz
aXplIHRvIHVzZSBmb3IgdGhlIG92ZXJhbGwgaW1hZ2UgKHdpbGwganVzdCBiZSB0aGUgc2l6ZSBv
ZiB0aGUgZmlyc3QgaW1hZ2UpLgogICAgIG11dGFibGUgSW50U2l6ZSBtX3NpemVSZXNwZWN0aW5n
T3JpZW50YXRpb247CkBAIC0yOTksNiArMzA0LDggQEAgcHJvdGVjdGVkOgogICAgIG11dGFibGUg
dW5zaWduZWQgbV9kZWNvZGVkUHJvcGVydGllc1NpemU7IC8vIFRoZSBzaXplIG9mIGRhdGEgZGVj
b2RlZCBieSB0aGUgc291cmNlIHRvIGRldGVybWluZSBpbWFnZSBwcm9wZXJ0aWVzIChlLmcuIHNp
emUsIGZyYW1lIGNvdW50LCBldGMpLgogICAgIHNpemVfdCBtX2ZyYW1lQ291bnQ7CiAKKyAgICBS
ZWZQdHI8Tm9uSW1tZWRpYXRlQml0bWFwSW1hZ2U+IG1fbm9uSW1tZWRpYXRlSW1hZ2U7CisKICAg
ICBib29sIG1faXNTb2xpZENvbG9yIDogMTsgLy8gV2hldGhlciBvciBub3Qgd2UgYXJlIGEgMXgx
IHNvbGlkIGltYWdlLgogICAgIGJvb2wgbV9jaGVja2VkRm9yU29saWRDb2xvciA6IDE7IC8vIFdo
ZXRoZXIgd2UndmUgY2hlY2tlZCB0aGUgZnJhbWUgZm9yIHNvbGlkIGNvbG9yLgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Ob25JbW1lZGlhdGVCaXRtYXBJ
bWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Ob25JbW1lZGlhdGVC
aXRtYXBJbWFnZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQzYTVmNjFkZmUxNDI3ODI2Mjk5ZWRlZGMxZDQ4
MDA3Yzg1MjhkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL05vbkltbWVkaWF0ZUJpdG1hcEltYWdlLmNwcApAQCAtMCwwICsxLDEzNCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBDb21wYW55IDEwMCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOb25JbW1lZGlhdGVC
aXRtYXBJbWFnZS5oIgorCisjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKKyNpbmNsdWRlIDx3dGYv
VGVtcG9yYXJ5Q2hhbmdlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxO
b25JbW1lZGlhdGVCaXRtYXBJbWFnZT4gTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2U6OmNyZWF0ZShC
aXRtYXBJbWFnZSogYml0bWFwSW1hZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBOb25J
bW1lZGlhdGVCaXRtYXBJbWFnZShiaXRtYXBJbWFnZSkpOworfQorCitOb25JbW1lZGlhdGVCaXRt
YXBJbWFnZTo6Tm9uSW1tZWRpYXRlQml0bWFwSW1hZ2UoQml0bWFwSW1hZ2UqIGJpdG1hcEltYWdl
KQorICAgIDogbV9iaXRtYXBJbWFnZShiaXRtYXBJbWFnZSkKKyAgICAsIG1fbm9uSW1tZWRpYXRl
UmVuZGVyaW5nKGZhbHNlKQoreworfQorCitib29sIE5vbkltbWVkaWF0ZUJpdG1hcEltYWdlOjpo
YXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYml0bWFwSW1h
Z2UtPmhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCk7Cit9CisKK0ludFNpemUgTm9uSW1tZWRpYXRl
Qml0bWFwSW1hZ2U6OnNpemUoKSBjb25zdAoreworICAgIHJldHVybiBtX2JpdG1hcEltYWdlLT5z
aXplKCk7Cit9CisKK2Jvb2wgTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2U6OmdldEhvdFNwb3QoSW50
UG9pbnQmIHBvaW50KSBjb25zdAoreworICAgIHJldHVybiBtX2JpdG1hcEltYWdlLT5nZXRIb3RT
cG90KHBvaW50KTsKK30KKworYm9vbCBOb25JbW1lZGlhdGVCaXRtYXBJbWFnZTo6ZGF0YUNoYW5n
ZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCit7CisgICAgcmV0dXJuIG1fYml0bWFwSW1hZ2UtPmRh
dGFDaGFuZ2VkKGFsbERhdGFSZWNlaXZlZCk7Cit9CisKK1N0cmluZyBOb25JbW1lZGlhdGVCaXRt
YXBJbWFnZTo6ZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2JpdG1h
cEltYWdlLT5maWxlbmFtZUV4dGVuc2lvbigpOworfQorCit2b2lkIE5vbkltbWVkaWF0ZUJpdG1h
cEltYWdlOjpkZXN0cm95RGVjb2RlZERhdGEoYm9vbCBkZXN0cm95QWxsKQoreworICAgIG1fYml0
bWFwSW1hZ2UtPmRlc3Ryb3lEZWNvZGVkRGF0YShkZXN0cm95QWxsKTsKK30KKwordW5zaWduZWQg
Tm9uSW1tZWRpYXRlQml0bWFwSW1hZ2U6OmRlY29kZWRTaXplKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9iaXRtYXBJbWFnZS0+ZGVjb2RlZFNpemUoKTsKK30KKwordm9pZCBOb25JbW1lZGlhdGVC
aXRtYXBJbWFnZTo6c3RhcnRBbmltYXRpb24oYm9vbCBjYXRjaFVwSWZOZWNlc3NhcnkpCit7Cisg
ICAgbV9iaXRtYXBJbWFnZS0+c3RhcnRBbmltYXRpb24oY2F0Y2hVcElmTmVjZXNzYXJ5KTsKK30K
Kwordm9pZCBOb25JbW1lZGlhdGVCaXRtYXBJbWFnZTo6c3RvcEFuaW1hdGlvbigpCit7CisgICAg
bV9iaXRtYXBJbWFnZS0+c3RvcEFuaW1hdGlvbigpOworfQorCit2b2lkIE5vbkltbWVkaWF0ZUJp
dG1hcEltYWdlOjpyZXNldEFuaW1hdGlvbigpCit7CisgICAgbV9iaXRtYXBJbWFnZS0+cmVzZXRB
bmltYXRpb24oKTsKK30KKworTmF0aXZlSW1hZ2VQdHIgTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2U6
Om5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkKK3sKKyAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9v
bD4gbm9uSW1tZWRpYXRlUmVuZGVyaW5nU2F2ZXIobV9ub25JbW1lZGlhdGVSZW5kZXJpbmcsIHRy
dWUpOworICAgIHJldHVybiBtX2JpdG1hcEltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFt
ZSgpOworfQorCitib29sIE5vbkltbWVkaWF0ZUJpdG1hcEltYWdlOjpjdXJyZW50RnJhbWVIYXNB
bHBoYSgpCit7CisgICAgcmV0dXJuIG1fYml0bWFwSW1hZ2UtPmN1cnJlbnRGcmFtZUhhc0FscGhh
KCk7Cit9CisKK3ZvaWQgTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250
ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9w
KQoreworICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBub25JbW1lZGlhdGVSZW5kZXJpbmdTYXZl
cihtX25vbkltbWVkaWF0ZVJlbmRlcmluZywgdHJ1ZSk7CisgICAgbV9iaXRtYXBJbWFnZS0+ZHJh
dyhjb250ZXh0LCBkc3RSZWN0LCBzcmNSZWN0LCBzdHlsZUNvbG9yU3BhY2UsIG9wKTsKK30KKwor
Ym9vbCBOb25JbW1lZGlhdGVCaXRtYXBJbWFnZTo6bWF5RmlsbFdpdGhTb2xpZENvbG9yKCkKK3sK
KyAgICByZXR1cm4gbV9iaXRtYXBJbWFnZS0+bWF5RmlsbFdpdGhTb2xpZENvbG9yKCk7Cit9CisK
K0NvbG9yIE5vbkltbWVkaWF0ZUJpdG1hcEltYWdlOjpzb2xpZENvbG9yKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9iaXRtYXBJbWFnZS0+c29saWRDb2xvcigpOworfQorCitJbWFnZSogdG9Ob25J
bW1lZGlhdGVCaXRtYXBJbWFnZUlmUG9zc2libGUoSW1hZ2UqIGltYWdlKQoreworICAgIGlmIChp
bWFnZSAmJiBpbWFnZS0+aXNCaXRtYXBJbWFnZSgpKSB7CisgICAgICAgIEJpdG1hcEltYWdlKiBi
aXRtYXBJbWFnZSA9IHN0YXRpY19jYXN0PEJpdG1hcEltYWdlKj4oaW1hZ2UpOworICAgICAgICBp
ZiAoIWJpdG1hcEltYWdlLT5tX25vbkltbWVkaWF0ZUltYWdlKQorICAgICAgICAgICAgYml0bWFw
SW1hZ2UtPm1fbm9uSW1tZWRpYXRlSW1hZ2UgPSBOb25JbW1lZGlhdGVCaXRtYXBJbWFnZTo6Y3Jl
YXRlKGJpdG1hcEltYWdlKTsKKworICAgICAgICByZXR1cm4gYml0bWFwSW1hZ2UtPm1fbm9uSW1t
ZWRpYXRlSW1hZ2UuZ2V0KCk7CisgICAgfQorICAgIHJldHVybiBpbWFnZTsKK30KKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTm9uSW1tZWRpYXRlQml0
bWFwSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05vbkltbWVkaWF0
ZUJpdG1hcEltYWdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTgwODQyN2UwZWRlMGYxYjYzYzNlZjQ0M2E0MDhm
YjkwZDczMzgzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL05vbkltbWVkaWF0ZUJpdG1hcEltYWdlLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBDb21wYW55IDEwMCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2VfaAorI2RlZmluZSBOb25J
bW1lZGlhdGVCaXRtYXBJbWFnZV9oCisKKyNpbmNsdWRlICJJbWFnZS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIEJpdG1hcEltYWdlOworY2xhc3MgR3JhcGhpY3NDb250ZXh0Owor
CisvLyBOb25JbW1lZGlhdGVCaXRtYXBJbWFnZSBpcyB1c2VkIGluIG9yZGVyIHRvIG1hcmsgaXQg
aXMgc2FmZSB0byBkZWNvZGUgYXN5bmNocm9ub3VzbHkuCisvLyBDbGllbnRzIG9ubHkgdXNlIHRo
aXMgY2xhc3Mgd2hlbiB0aGV5IGNhbGwgbmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSBhbmQg
R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UodG9Ob25JbW1lZGlhdGVCaXRtYXBJbWFnZUlmUG9z
c2libGUoaW1hZ2UpKS4KKy8vIEFsdGhvdWdoIGNsaWVudHMgY2FuIGNhbGwgb25seSBuYXRpdmVJ
bWFnZUZvckN1cnJlbnRGcmFtZSgpLCBOb25JbW1lZGlhdGVCaXRtYXBJbWFnZSBvdmVycmlkZXMg
YWxsIHZpcnR1YWwgbWV0aG9kcyBvZiBJbWFnZSwKKy8vIGJlY2F1c2UgR3JhcGhpY3NDb250ZXh0
OjpkcmF3SW1hZ2UoKSBjYW4gY2FsbCBvdGhlciB2aXJ0dWFsIG1ldGhvZHMuCisvLyBGb3IgaW5z
dGFuY2UsIGluIGN1cnJlbnQgY29kZSwgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKSBjYWxs
cyBzaXplKCksIHdoaWNoIGlzIGEgdmlydHVhbCBtZXRob2RzIG9mIEltYWdlLgorY2xhc3MgTm9u
SW1tZWRpYXRlQml0bWFwSW1hZ2UgOiBwdWJsaWMgSW1hZ2UgeworICAgIGZyaWVuZCBjbGFzcyBH
cmFwaGljc0NvbnRleHQ7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Tm9uSW1tZWRp
YXRlQml0bWFwSW1hZ2U+IGNyZWF0ZShCaXRtYXBJbWFnZSopOworCisgICAgdmlydHVhbCB+Tm9u
SW1tZWRpYXRlQml0bWFwSW1hZ2UoKSBPVkVSUklERSB7IH0KKworICAgIHZpcnR1YWwgTmF0aXZl
SW1hZ2VQdHIgbmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSBPVkVSUklERTsKKworICAgIGlu
bGluZSBib29sIG5vbkltbWVkaWF0ZVJlbmRlcmluZygpIGNvbnN0IHsgcmV0dXJuIG1fbm9uSW1t
ZWRpYXRlUmVuZGVyaW5nOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgTm9uSW1tZWRpYXRl
Qml0bWFwSW1hZ2UoQml0bWFwSW1hZ2UqKTsKKworICAgIHZpcnR1YWwgYm9vbCBjdXJyZW50RnJh
bWVIYXNBbHBoYSgpIE9WRVJSSURFOworCisgICAgdmlydHVhbCBib29sIGhhc1NpbmdsZVNlY3Vy
aXR5T3JpZ2luKCkgY29uc3QgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIEludFNpemUgc2l6ZSgp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBnZXRIb3RTcG90KEludFBvaW50Jikg
Y29uc3QgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIGJvb2wgZGF0YUNoYW5nZWQoYm9vbCBhbGxE
YXRhUmVjZWl2ZWQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVuYW1lRXh0ZW5z
aW9uKCkgY29uc3QgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveURlY29kZWRE
YXRhKGJvb2wgZGVzdHJveUFsbCA9IHRydWUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdW5zaWdu
ZWQgZGVjb2RlZFNpemUoKSBjb25zdCBPVkVSUklERTsKKworICAgIHZpcnR1YWwgdm9pZCBzdGFy
dEFuaW1hdGlvbihib29sIGNhdGNoVXBJZk5lY2Vzc2FyeSA9IHRydWUpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBzdG9wQW5pbWF0aW9uKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHJlc2V0QW5pbWF0aW9uKCkgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IpIE9WRVJSSURFOworCisgICAg
dmlydHVhbCBib29sIG1heUZpbGxXaXRoU29saWRDb2xvcigpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgQ29sb3Igc29saWRDb2xvcigpIGNvbnN0IE9WRVJSSURFOworCisgICAgQml0bWFwSW1hZ2Uq
IG1fYml0bWFwSW1hZ2U7CisgICAgbXV0YWJsZSBib29sIG1fbm9uSW1tZWRpYXRlUmVuZGVyaW5n
OworfTsKKworSW1hZ2UqIHRvTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2VJZlBvc3NpYmxlKEltYWdl
Kik7CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNw
cAppbmRleCA0OGVhMDU0NzBkZGYwNGJkMTA0MmQ1ZWIzMGMxNmJmY2U3OGQzYjE0Li5iOTJjMjQz
ZmNiNWM0OGNmMmEwNGNjMjU4ODNhMDcyMDdlMDE1MzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTMyOCw3ICszMjgsNyBAQCB2b2lkIFJlbmRlckltYWdl
OjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYg
cGFpbnRPZgogICAgICAgICAgICAgICAgIGlmIChjZW50ZXJZIDwgMCkKICAgICAgICAgICAgICAg
ICAgICAgY2VudGVyWSA9IDA7CiAgICAgICAgICAgICAgICAgaW1hZ2VPZmZzZXQgPSBMYXlvdXRT
aXplKGxlZnRCb3JkZXIgKyBsZWZ0UGFkICsgY2VudGVyWCArIDEsIHRvcEJvcmRlciArIHRvcFBh
ZCArIGNlbnRlclkgKyAxKTsKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3SW1hZ2UoaW1h
Z2UuZ2V0KCksIHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgSW50UmVjdChyb3VuZGVkSW50UG9pbnQo
cGFpbnRPZmZzZXQgKyBpbWFnZU9mZnNldCksIGltYWdlU2l6ZSksIENvbXBvc2l0ZVNvdXJjZU92
ZXIsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkpOworICAgICAgICAgICAgICAgIGNv
bnRleHQtPmRyYXdJbWFnZSh0b05vbkltbWVkaWF0ZUJpdG1hcEltYWdlSWZQb3NzaWJsZShpbWFn
ZS5nZXQoKSksIHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgSW50UmVjdChyb3VuZGVkSW50UG9pbnQo
cGFpbnRPZmZzZXQgKyBpbWFnZU9mZnNldCksIGltYWdlU2l6ZSksIENvbXBvc2l0ZVNvdXJjZU92
ZXIsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkpOwogICAgICAgICAgICAgICAgIGVy
cm9yUGljdHVyZURyYXduID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIApAQCAtNDUwLDcgKzQ1MCw3
IEBAIHZvaWQgUmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QoR3JhcGhpY3NDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiByZWN0CiAgICAgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9z
aXRlT3BlcmF0b3IgPSBpbWFnZUVsdCA/IGltYWdlRWx0LT5jb21wb3NpdGVPcGVyYXRvcigpIDog
Q29tcG9zaXRlU291cmNlT3ZlcjsKICAgICBJbWFnZSogaW1hZ2UgPSBtX2ltYWdlUmVzb3VyY2Ut
PmltYWdlKCkuZ2V0KCk7CiAgICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGluZyA9IHNob3VsZFBh
aW50QXRMb3dRdWFsaXR5KGNvbnRleHQsIGltYWdlLCBpbWFnZSwgYWxpZ25lZFJlY3Quc2l6ZSgp
KTsKLSAgICBjb250ZXh0LT5kcmF3SW1hZ2UobV9pbWFnZVJlc291cmNlLT5pbWFnZShhbGlnbmVk
UmVjdC53aWR0aCgpLCBhbGlnbmVkUmVjdC5oZWlnaHQoKSkuZ2V0KCksIHN0eWxlKCktPmNvbG9y
U3BhY2UoKSwgYWxpZ25lZFJlY3QsIGNvbXBvc2l0ZU9wZXJhdG9yLCBzaG91bGRSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbigpLCB1c2VMb3dRdWFsaXR5U2NhbGluZyk7CisgICAgY29udGV4dC0+ZHJh
d0ltYWdlKHRvTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2VJZlBvc3NpYmxlKG1faW1hZ2VSZXNvdXJj
ZS0+aW1hZ2UoYWxpZ25lZFJlY3Qud2lkdGgoKSwgYWxpZ25lZFJlY3QuaGVpZ2h0KCkpLmdldCgp
KSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBhbGlnbmVkUmVjdCwgY29tcG9zaXRlT3BlcmF0b3Is
IHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCksIHVzZUxvd1F1YWxpdHlTY2FsaW5nKTsK
IH0KIAogYm9vbCBSZW5kZXJJbWFnZTo6Ym94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3Jv
dW5kKEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBibGVlZEF2b2lkYW5jZSwgSW5saW5lRmxvd0Jv
eCopIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR0ltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1h
Z2UuY3BwCmluZGV4IDU2YmU1Y2Q0MTZiY2RlMjZlMGE4NTViZTFhZGNlYTJiNDNmYzBiOTUuLjVk
ODg3NzIxMDE3OTNjNTQ1NThlYzJkZWE4OGY5OTJiN2FiYWJhNDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwCkBAIC0zMyw2ICszMyw3IEBA
CiAjaW5jbHVkZSAiRmxvYXRRdWFkLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAj
aW5jbHVkZSAiTGF5b3V0UmVwYWludGVyLmgiCisjaW5jbHVkZSAiTm9uSW1tZWRpYXRlQml0bWFw
SW1hZ2UuaCIKICNpbmNsdWRlICJQb2ludGVyRXZlbnRzSGl0UnVsZXMuaCIKICNpbmNsdWRlICJS
ZW5kZXJJbWFnZVJlc291cmNlLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKQEAgLTEzNCw3
ICsxMzUsNyBAQCB2b2lkIFJlbmRlclNWR0ltYWdlOjpwYWludChQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgTGF5b3V0UG9pbnQmKQogICAgICAgICAgICAgICAgIFNWR0ltYWdlRWxlbWVudCog
aW1hZ2VFbGVtZW50ID0gc3RhdGljX2Nhc3Q8U1ZHSW1hZ2VFbGVtZW50Kj4obm9kZSgpKTsKICAg
ICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQtPnByZXNlcnZlQXNwZWN0UmF0aW8oKS50cmFuc2Zv
cm1SZWN0KGRlc3RSZWN0LCBzcmNSZWN0KTsKIAotICAgICAgICAgICAgICAgIGNoaWxkUGFpbnRJ
bmZvLmNvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwg
ZGVzdFJlY3QsIHNyY1JlY3QpOworICAgICAgICAgICAgICAgIGNoaWxkUGFpbnRJbmZvLmNvbnRl
eHQtPmRyYXdJbWFnZSh0b05vbkltbWVkaWF0ZUJpdG1hcEltYWdlSWZQb3NzaWJsZShpbWFnZS5n
ZXQoKSksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRlc3RSZWN0LCBzcmNSZWN0KTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158722</attachid>
            <date>2012-08-15 23:47:49 -0700</date>
            <delta_ts>2014-02-05 10:52:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93590-20120816154653.patch</filename>
            <type>text/plain</type>
            <size>25703</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTJlMTU1ZTIxYTg0NDk5
ODcwYjdkNWIyMTU4YzcyYTI3NjBmOGU2MC4uNGFhZmMzYmQxYWEwZTE1M2Q4NzE0ZGVkMDVhMGVk
NjRhOWJmNGQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTA4LTEwICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIEFkZCBOb25J
bW1lZGlhdGVCaXRtYXBJbWFnZSB0byBtYXJrIGl0IGlzIHNhZmUgdG8gZGVjb2RlIGFzeW5jaHJv
bm91c2x5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTM1OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBC
ZWNhdXNlIGltYWdlIGRlY29kaW5nIGlzIHVzZWQgaW4gdmFyaW91cyBjb250ZXh0cyBpbiBXZWJL
aXQsIGl0IGlzIHNpbXBseQorICAgICAgICBpbXBvc3NpYmxlIHRvIG1ha2UgYWxsIGRlY29kaW5n
IGFzeW5jaHJvbm91cy4gSW5zdGVhZCwgd2Ugc2VsZWN0aXZlbHkgdXNlIGFzeW5jCisgICAgICAg
IGltYWdlIGRlY29kZXJzIHdoZXJlIHBvc3NpYmxlIGFuZCB1c2UgdGhlIGV4aXN0aW5nIHNlcXVl
bnRpYWwgaW1hZ2UgZGVjb2RlcnMgb3RoZXJ3aXNlLgorICAgICAgICBOb25JbW1lZGlhdGVCaXRt
YXBJbWFnZSB3cmFwcyBhIEJpdG1hcEltYWdlIGFuZCBoZWxwcyBkZWNpZGUgd2hlbiBpdCBpcyBz
YWZlIGFuZCBiZW5lZmljaWFsCisgICAgICAgIHRvIHVzZSBhc3luYyBpbWFnZSBkZWNvZGVycy4K
KworICAgICAgICBObyBuZXcgdGVzdHMgLSBleGlzdGluZyBpbWFnZSB0ZXN0cyBjb3ZlciB0aGVz
ZSBjYXNlcy4KKyAgICAgICAgVGVzdDogY29tcG9zaXRpbmcvaW1hZ2VzLyoKKyAgICAgICAgICAg
ICAgZmFzdC9pbWFnZXMvKgorICAgICAgICAgICAgICBmYXN0L2RvbS9IVE1MSW1hZ2VFbGVtZW50
LyoKKyAgICAgICAgICAgICAgaHR0cC90ZXN0cy9pbWFnZXMvKgorICAgICAgICAgICAgICBjc3Mz
L2ltYWdlcy8qCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5n
eXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6
Y2FjaGVGcmFtZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1h
cEltYWdlOjpub25JbW1lZGlhdGVSZW5kZXJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgIChCaXRtYXBJbWFnZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9uSW1tZWRpYXRlQml0bWFwSW1hZ2U6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpOb25JbW1lZGlhdGVCaXRtYXBJbWFnZTo6Tm9u
SW1tZWRpYXRlQml0bWFwSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Tm9uSW1tZWRpYXRlQml0
bWFwSW1hZ2U6Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6Ok5v
bkltbWVkaWF0ZUJpdG1hcEltYWdlOjpzaXplKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vbkltbWVk
aWF0ZUJpdG1hcEltYWdlOjpnZXRIb3RTcG90KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vbkltbWVk
aWF0ZUJpdG1hcEltYWdlOjpkYXRhQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpOb25JbW1l
ZGlhdGVCaXRtYXBJbWFnZTo6ZmlsZW5hbWVFeHRlbnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Tm9uSW1tZWRpYXRlQml0bWFwSW1hZ2U6OmRlc3Ryb3lEZWNvZGVkRGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpOb25JbW1lZGlhdGVCaXRtYXBJbWFnZTo6ZGVjb2RlZFNpemUpOgorICAgICAgICAo
V2ViQ29yZTo6Tm9uSW1tZWRpYXRlQml0bWFwSW1hZ2U6OnN0YXJ0QW5pbWF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vbkltbWVkaWF0ZUJpdG1hcEltYWdlOjpzdG9wQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vbkltbWVkaWF0ZUJpdG1hcEltYWdlOjpyZXNldEFuaW1hdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpOb25JbW1lZGlhdGVCaXRtYXBJbWFnZTo6bmF0aXZlSW1hZ2VG
b3JDdXJyZW50RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9uSW1tZWRpYXRlQml0bWFwSW1h
Z2U6OmN1cnJlbnRGcmFtZUhhc0FscGhhKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vbkltbWVkaWF0
ZUJpdG1hcEltYWdlOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vbkltbWVkaWF0ZUJpdG1h
cEltYWdlOjptYXlGaWxsV2l0aFNvbGlkQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6Tm9uSW1t
ZWRpYXRlQml0bWFwSW1hZ2U6OnNvbGlkQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6dG9Ob25J
bW1lZGlhdGVCaXRtYXBJbWFnZUlmUG9zc2libGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL05vbkltbWVkaWF0ZUJpdG1hcEltYWdlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChOb25JbW1lZGlhdGVCaXRtYXBJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpO
b25JbW1lZGlhdGVCaXRtYXBJbWFnZTo6bm9uSW1tZWRpYXRlUmVuZGVyaW5nKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1h
Z2U6OnBhaW50UmVwbGFjZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50
SW50b1JlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW1hZ2U6OnBhaW50KToKKwogMjAxMi0wOC0xNSAg
SHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBNYWtl
IHRoZSBBUEkgb2YgSW1hZ2VEZWNvZGVyIGRlY29kZSBhIGZyYW1lIGV4cGxpY2l0bHkuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IDkzMGE5MWEyYjYxYzJkZDY4NWZlMTMxNzUxOGM3ZWM1YjgyOWNh
ZDMuLjkwMDU4ZTJmNmJiYTBkNDFiYzQzMDIxZTdhZTA0Njg2NWFkNjdmMGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0xODM3LDYgKzE4MzcsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRhdGlvbi5jcHAKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9JbnRSZWN0LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL05vbkltbWVkaWF0ZUJpdG1hcEltYWdlLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL1BhdGguY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFRyYXZl
cnNhbFN0YXRlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA3ODc2NzgyOGUyZjdiNWQ1ZmY3NmY0MDJkNmI3NWQw
NGY5ZWEzZDA5Li4yMzRiMDMwZjFmNGE4MjlhNjlhN2YxM2RkOGFiYTY0N2QzNDcwYTk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQzNTEsNiArNDM1MSw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUu
aCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTm9uSW1tZWRpYXRlQml0bWFw
SW1hZ2UuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Ob25JbW1lZGlh
dGVCaXRtYXBJbWFnZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQppbmRleCA1MWQzMGY0Njc0OGIyOTdkNGZlOGU0MDNlYjBmMTQwZGQ5YzY3ZjkwLi4xMjA5
MDNmNzc2ZDAyZDQ5NzhiOTdiZWRmN2U5YmIzM2ZiNDVlOTY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTk1
OCw2ICs5NTgsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9y
aWVudGF0aW9uLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwIFwK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmNwcCBcCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2UuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Q
YXRoLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFRyYXZlcnNhbFN0YXRlLmNwcCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5jcHAgXApAQCAtMjA4OSw2ICsyMDkwLDcg
QEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oIFwKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9O
YXRpdmVJbWFnZVB0ci5oIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Ob25JbW1lZGlhdGVCaXRt
YXBJbWFnZS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRp
Y2FsRGF0YS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmggXAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL1BhdGhUcmF2ZXJzYWxTdGF0ZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA2ZTFh
MjI2MmMwMzA3M2JhZDZhZTA2YzkxZmMyZTVjNWMyYmJmNWYyLi40NzUyMjNiMzk2MTUyYjcxMDYw
Y2VjYTJhZjkxZjY1MGVkNDEwMDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zNTI2LDYgKzM1MjYs
OCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlUHRyLmgnICwKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Ob25JbW1lZGlhdGVCaXRtYXBJbWFnZS5jcHAnLAorICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL05vbkltbWVkaWF0ZUJpdG1hcEltYWdlLmgnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9QYXRoVHJhdmVyc2FsU3RhdGUuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9QYXRoVHJhdmVyc2FsU3RhdGUuaCcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGMzZDRjYjUxNjA5N2JiYzc3Mzky
NzAzMWNkNTQxNzlhOWQ1YzYyNTUuLjkwMzEzODllMDI0OWQ2NmRkNGE0ODMwNDAzNzY1ODdhMjY4
NDMyM2YgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC0yOTU2Miw2ICsyOTU2MiwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxl
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcTm9uSW1tZWRpYXRlQml0
bWFwSW1hZ2UuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2UuaCIK
KwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXGdyYXBoaWNzXFBhdGguY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDcxNWRh
NmNiOWJiMDE5NWNjNGJlNWQ4NDkyNzkzOWFhNDNlZTkzNzQuLmNmMTkxZmVmMGIzOWQxOWZlMzVj
Njg1NDA2NTE2ZTVmNGE5MjliNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ4MzUsNiArNDgzNSw4IEBACiAJCUIyNzUzNTdD
MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRQb2ludE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNzUzNTRGMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRQ
b2ludE1hYy5tbSAqLzsgfTsKIAkJQjI3NTM1N0QwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3RN
YWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1
MzU1MDBCMDUzODE0MDAyQ0U2NEYgLyogSW50UmVjdE1hYy5tbSAqLzsgfTsKIAkJQjI3NTM1N0Uw
QjA1MzgxNDAwMkNFNjRGIC8qIEludFNpemVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU1MTBCMDUzODE0MDAyQ0U2NEYgLyogSW50U2l6
ZU1hYy5tbSAqLzsgfTsKKwkJNUIzNDgwOTMwRUVGNTBENDAwQUMxQjQxIC8qIE5vbkltbWVkaWF0
ZUJpdG1hcEltYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVCMzQ4MDkxMEVFRjUwRDQwMEFDMUI0MSAvKiBOb25JbW1lZGlhdGVCaXRtYXBJbWFn
ZS5jcHAgKi87IH07CisJCTVCMzQ4MDk0MEVFRjUwRDQwMEFDMUI0MSAvKiBOb25JbW1lZGlhdGVC
aXRtYXBJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8qIE5vbkltbWVkaWF0ZUJpdG1hcEltYWdlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjI3NTM1
N0YwQjA1MzgxNDAwMkNFNjRGIC8qIFBhdGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NTIwQjA1MzgxNDAwMkNFNjRGIC8qIFBhdGguY3Bw
ICovOyB9OwogCQlCMjc1MzU4MDBCMDUzODE0MDAyQ0U2NEYgLyogUGF0aC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NTMwQjA1MzgxNDAwMkNF
NjRGIC8qIFBhdGguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBOTk5NDMyOTBCNDIzMzg4MDBEN0M4MDIgLyogU3luY2hyb25vdXNJbWFnZVNvdXJj
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOTk5
NDMyNzBCNDIzMzg3MDBEN0M4MDIgLyogU3luY2hyb25vdXNJbWFnZVNvdXJjZS5jcHAgKi87IH07
CkBAIC0xMjA3NSw2ICsxMjA3Nyw4IEBACiAJCUIyNzUzNTRGMEIwNTM4MTQwMDJDRTY0RiAvKiBJ
bnRQb2ludE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJ
bnRQb2ludE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3NTM1NTAwQjA1
MzgxNDAwMkNFNjRGIC8qIEludFJlY3RNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gSW50UmVjdE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQjI3NTM1NTEwQjA1MzgxNDAwMkNFNjRGIC8qIEludFNpemVNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW50U2l6ZU1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNUIzNDgwOTEwRUVGNTBENDAwQUMxQjQxIC8qIE5vbkltbWVkaWF0
ZUJpdG1hcEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBO
b25JbW1lZGlhdGVCaXRtYXBJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTVCMzQ4MDkyMEVFRjUwRDQwMEFDMUI0MSAvKiBOb25JbW1lZGlhdGVCaXRtYXBJbWFnZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3NTM1NTIwQjA1MzgxNDAwMkNFNjRG
IC8qIFBhdGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhdGgu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjc1MzU1MzBCMDUzODE0MDAyQ0U2
NEYgLyogUGF0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF0aC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOTk5NDMyNzBCNDIzMzg3MDBEN0M4MDIgLyog
U3luY2hyb25vdXNJbWFnZVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3luY2hyb25vdXNJbWFnZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xOTg0MSw2ICsxOTg0NSw4IEBACiAJCQkJRTRCNDFFMEQwQ0JGOTBCRDAwQUYy
RUNFIC8qIE1lZGlhUGxheWVyLmggKi8sCiAJCQkJMDc5RjVFNEIwRjNCRUJFQTAwNUUwNzgyIC8q
IE1lZGlhUGxheWVyUHJpdmF0ZS5oICovLAogCQkJCTZCMzQ4MDkyMEVFRjUwRDQwMEFDMUI0MSAv
KiBOYXRpdmVJbWFnZVB0ci5oICovLAorCQkJCTVCMzQ4MDkxMEVFRjUwRDQwMEFDMUI0MSAvKiBO
b25JbW1lZGlhdGVCaXRtYXBJbWFnZS5jcHAgKi8sCisJCQkJNUIzNDgwOTIwRUVGNTBENDAwQUMx
QjQxIC8qIE5vbkltbWVkaWF0ZUJpdG1hcEltYWdlLmggKi8sCiAJCQkJQjI3NTM1NTIwQjA1Mzgx
NDAwMkNFNjRGIC8qIFBhdGguY3BwICovLAogCQkJCUIyNzUzNTUzMEIwNTM4MTQwMDJDRTY0RiAv
KiBQYXRoLmggKi8sCiAJCQkJQTg4REQ0ODgwQjQ2MjlCMDAwQzAyOTkwIC8qIFBhdGhUcmF2ZXJz
YWxTdGF0ZS5jcHAgKi8sCkBAIC0yNDM2MCw2ICsyNDM2Niw3IEBACiAJCQkJQTdGNUQ5NTAxMzg0
RjAyRDAwQTI5QTg3IC8qIE5vZGVSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2M0Q3QjMyRDBFNzhDRDNGMDBGNzYxN0MgLyogTm9kZVJlbmRlclN0eWxlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzgyQUFCNDBEOEMzODYxMDBGMzU3QTYgLyogTm9kZVdpdGhJbmRleC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNUIzNDgwOTQwRUVGNTBENDAwQUMxQjQxIC8qIE5vbkltbWVkaWF0
ZUJpdG1hcEltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0VCRTBBMTk0NUQwMDBBOEVG
NUYgLyogTm90YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMkMwQzQxMTQ2REM2Q0MwMDE2
QzkxMSAvKiBOb3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTMzOTBDQTU2MEZGQzE1
N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRpb25DZW50ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjc2
MzUsNiArMjc2NDIsNyBAQAogCQkJCTg1NEZFNzMyMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmls
dGVyQ29uZGl0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1NEZFNzM0MEEyMjk3QkUwMDU4
RDdBRCAvKiBOb2RlSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdGNUQ5NEYxMzg0
RjAyRDAwQTI5QTg3IC8qIE5vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTVCMzQ4MDkzMEVFRjUwRDQwMEFDMUI0MSAvKiBOb25JbW1lZGlhdGVCaXRtYXBJbWFnZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEVBN0VCRjBBMTk0NUQwMDBBOEVGNUYgLyogTm90YXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzM1MDNDQzcxMDE3QTFCMTAwM0I0N0UxIC8qIE5v
dGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMzkwQ0E1NTBGRkMxNTdCMDA5MjE5
NjIgLyogTm90aWZpY2F0aW9uQ2VudGVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IGU5NzE3M2Ux
ZGRlODMxYmVkNzIwMTZlNjk3ODQyZDlkOGE3MWU2YjkuLjhkNTg1MTJmNWQ4MGE1YjI2NGE1NDcx
YmUyMGE1OTcwZTIwMjAwZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0JpdG1hcEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9CaXRtYXBJbWFnZS5jcHAKQEAgLTEzNSw3ICsxMzUsMTIgQEAgdm9pZCBCaXRtYXBJbWFn
ZTo6Y2FjaGVGcmFtZShzaXplX3QgaW5kZXgpCiAgICAgaWYgKG1fZnJhbWVzLnNpemUoKSA8IG51
bUZyYW1lcykKICAgICAgICAgbV9mcmFtZXMuZ3JvdyhudW1GcmFtZXMpOwogCi0gICAgbV9zb3Vy
Y2UucmVxdWVzdEZyYW1lQXRJbmRleChpbmRleCk7CisgICAgbV9zb3VyY2UucmVxdWVzdEZyYW1l
QXRJbmRleChpbmRleCwgbm9uSW1tZWRpYXRlUmVuZGVyaW5nKCkpOworfQorCitib29sIEJpdG1h
cEltYWdlOjpub25JbW1lZGlhdGVSZW5kZXJpbmcoKSBjb25zdAoreworICAgIHJldHVybiBtX25v
bkltbWVkaWF0ZUltYWdlLmdldCgpICYmIG1fbm9uSW1tZWRpYXRlSW1hZ2UtPm5vbkltbWVkaWF0
ZVJlbmRlcmluZygpOwogfQogCiB2b2lkIEJpdG1hcEltYWdlOjpkaWREZWNvZGVGcmFtZUF0SW5k
ZXgoc2l6ZV90IGluZGV4LCBOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IGU4MDg2NjZlMjE5
MzhiZDE5OWQ5ZjgzMmZiNTEwM2E4NGM0ODk4YmMuLjRhOGI0YWM5NzE3N2I4ZGExYzFlYzI0YzA5
YWU5NDBjNjE4Nzg3M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0JpdG1hcEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkltYWdlU291cmNlLmgi
CiAjaW5jbHVkZSAiSW1hZ2VTb3VyY2VPYnNlcnZlci5oIgogI2luY2x1ZGUgIkludFNpemUuaCIK
KyNpbmNsdWRlICJOb25JbW1lZGlhdGVCaXRtYXBJbWFnZS5oIgogCiAjaWYgUExBVEZPUk0oTUFD
KQogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTEwMSwxMCArMTAyLDEyIEBAIHB1Ymxp
YzoKIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
IAogY2xhc3MgQml0bWFwSW1hZ2UgOiBwdWJsaWMgSW1hZ2UsIHB1YmxpYyBJbWFnZVNvdXJjZU9i
c2VydmVyIHsKKyAgICBmcmllbmQgY2xhc3MgTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2U7CiAgICAg
ZnJpZW5kIGNsYXNzIEdlbmVyYXRlZEltYWdlOwogICAgIGZyaWVuZCBjbGFzcyBDcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZTsKICAgICBmcmllbmQgY2xhc3MgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U7
CiAgICAgZnJpZW5kIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKKyAgICBmcmllbmQgSW1hZ2UqIHRv
Tm9uSW1tZWRpYXRlQml0bWFwSW1hZ2VJZlBvc3NpYmxlKEltYWdlKik7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8Qml0bWFwSW1hZ2U+IGNyZWF0ZShOYXRpdmVJbWFnZVB0ciBuYXRp
dmVJbWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIgPSAwKQogICAgIHsKQEAgLTI3NCw2ICsy
NzcsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIG1heUZpbGxXaXRoU29saWRDb2xv
cigpOwogICAgIHZpcnR1YWwgQ29sb3Igc29saWRDb2xvcigpIGNvbnN0OwogICAgIAorICAgIGJv
b2wgbm9uSW1tZWRpYXRlUmVuZGVyaW5nKCkgY29uc3Q7CisKICAgICBJbWFnZVNvdXJjZSBtX3Nv
dXJjZTsKICAgICBtdXRhYmxlIEludFNpemUgbV9zaXplOyAvLyBUaGUgc2l6ZSB0byB1c2UgZm9y
IHRoZSBvdmVyYWxsIGltYWdlICh3aWxsIGp1c3QgYmUgdGhlIHNpemUgb2YgdGhlIGZpcnN0IGlt
YWdlKS4KICAgICBtdXRhYmxlIEludFNpemUgbV9zaXplUmVzcGVjdGluZ09yaWVudGF0aW9uOwpA
QCAtMjk4LDYgKzMwMyw4IEBAIHByb3RlY3RlZDoKICAgICBtdXRhYmxlIHVuc2lnbmVkIG1fZGVj
b2RlZFByb3BlcnRpZXNTaXplOyAvLyBUaGUgc2l6ZSBvZiBkYXRhIGRlY29kZWQgYnkgdGhlIHNv
dXJjZSB0byBkZXRlcm1pbmUgaW1hZ2UgcHJvcGVydGllcyAoZS5nLiBzaXplLCBmcmFtZSBjb3Vu
dCwgZXRjKS4KICAgICBzaXplX3QgbV9mcmFtZUNvdW50OwogCisgICAgUmVmUHRyPE5vbkltbWVk
aWF0ZUJpdG1hcEltYWdlPiBtX25vbkltbWVkaWF0ZUltYWdlOworCiAgICAgYm9vbCBtX2lzU29s
aWRDb2xvciA6IDE7IC8vIFdoZXRoZXIgb3Igbm90IHdlIGFyZSBhIDF4MSBzb2xpZCBpbWFnZS4K
ICAgICBib29sIG1fY2hlY2tlZEZvclNvbGlkQ29sb3IgOiAxOyAvLyBXaGV0aGVyIHdlJ3ZlIGNo
ZWNrZWQgdGhlIGZyYW1lIGZvciBzb2xpZCBjb2xvci4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2UuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA0M2E1ZjYxZGZlMTQyNzgyNjI5OWVkZWRjMWQ0ODAwN2M4NTI4ZDAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Ob25JbW1l
ZGlhdGVCaXRtYXBJbWFnZS5jcHAKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgQ29tcGFueSAxMDAgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2UuaCIK
KworI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCisjaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5n
ZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8Tm9uSW1tZWRpYXRlQml0
bWFwSW1hZ2U+IE5vbkltbWVkaWF0ZUJpdG1hcEltYWdlOjpjcmVhdGUoQml0bWFwSW1hZ2UqIGJp
dG1hcEltYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTm9uSW1tZWRpYXRlQml0bWFw
SW1hZ2UoYml0bWFwSW1hZ2UpKTsKK30KKworTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2U6Ok5vbklt
bWVkaWF0ZUJpdG1hcEltYWdlKEJpdG1hcEltYWdlKiBiaXRtYXBJbWFnZSkKKyAgICA6IG1fYml0
bWFwSW1hZ2UoYml0bWFwSW1hZ2UpCisgICAgLCBtX25vbkltbWVkaWF0ZVJlbmRlcmluZyhmYWxz
ZSkKK3sKK30KKworYm9vbCBOb25JbW1lZGlhdGVCaXRtYXBJbWFnZTo6aGFzU2luZ2xlU2VjdXJp
dHlPcmlnaW4oKSBjb25zdAoreworICAgIHJldHVybiBtX2JpdG1hcEltYWdlLT5oYXNTaW5nbGVT
ZWN1cml0eU9yaWdpbigpOworfQorCitJbnRTaXplIE5vbkltbWVkaWF0ZUJpdG1hcEltYWdlOjpz
aXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9iaXRtYXBJbWFnZS0+c2l6ZSgpOworfQorCiti
b29sIE5vbkltbWVkaWF0ZUJpdG1hcEltYWdlOjpnZXRIb3RTcG90KEludFBvaW50JiBwb2ludCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9iaXRtYXBJbWFnZS0+Z2V0SG90U3BvdChwb2ludCk7Cit9
CisKK2Jvb2wgTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2U6OmRhdGFDaGFuZ2VkKGJvb2wgYWxsRGF0
YVJlY2VpdmVkKQoreworICAgIHJldHVybiBtX2JpdG1hcEltYWdlLT5kYXRhQ2hhbmdlZChhbGxE
YXRhUmVjZWl2ZWQpOworfQorCitTdHJpbmcgTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2U6OmZpbGVu
YW1lRXh0ZW5zaW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9iaXRtYXBJbWFnZS0+ZmlsZW5h
bWVFeHRlbnNpb24oKTsKK30KKwordm9pZCBOb25JbW1lZGlhdGVCaXRtYXBJbWFnZTo6ZGVzdHJv
eURlY29kZWREYXRhKGJvb2wgZGVzdHJveUFsbCkKK3sKKyAgICBtX2JpdG1hcEltYWdlLT5kZXN0
cm95RGVjb2RlZERhdGEoZGVzdHJveUFsbCk7Cit9CisKK3Vuc2lnbmVkIE5vbkltbWVkaWF0ZUJp
dG1hcEltYWdlOjpkZWNvZGVkU2l6ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYml0bWFwSW1h
Z2UtPmRlY29kZWRTaXplKCk7Cit9CisKK3ZvaWQgTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2U6OnN0
YXJ0QW5pbWF0aW9uKGJvb2wgY2F0Y2hVcElmTmVjZXNzYXJ5KQoreworICAgIG1fYml0bWFwSW1h
Z2UtPnN0YXJ0QW5pbWF0aW9uKGNhdGNoVXBJZk5lY2Vzc2FyeSk7Cit9CisKK3ZvaWQgTm9uSW1t
ZWRpYXRlQml0bWFwSW1hZ2U6OnN0b3BBbmltYXRpb24oKQoreworICAgIG1fYml0bWFwSW1hZ2Ut
PnN0b3BBbmltYXRpb24oKTsKK30KKwordm9pZCBOb25JbW1lZGlhdGVCaXRtYXBJbWFnZTo6cmVz
ZXRBbmltYXRpb24oKQoreworICAgIG1fYml0bWFwSW1hZ2UtPnJlc2V0QW5pbWF0aW9uKCk7Cit9
CisKK05hdGl2ZUltYWdlUHRyIE5vbkltbWVkaWF0ZUJpdG1hcEltYWdlOjpuYXRpdmVJbWFnZUZv
ckN1cnJlbnRGcmFtZSgpCit7CisgICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IG5vbkltbWVkaWF0
ZVJlbmRlcmluZ1NhdmVyKG1fbm9uSW1tZWRpYXRlUmVuZGVyaW5nLCB0cnVlKTsKKyAgICByZXR1
cm4gbV9iaXRtYXBJbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKK30KKworYm9v
bCBOb25JbW1lZGlhdGVCaXRtYXBJbWFnZTo6Y3VycmVudEZyYW1lSGFzQWxwaGEoKQoreworICAg
IHJldHVybiBtX2JpdG1hcEltYWdlLT5jdXJyZW50RnJhbWVIYXNBbHBoYSgpOworfQorCit2b2lk
IE5vbkltbWVkaWF0ZUJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwg
Y29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9y
U3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBvcCkKK3sKKyAgICBUZW1w
b3JhcnlDaGFuZ2U8Ym9vbD4gbm9uSW1tZWRpYXRlUmVuZGVyaW5nU2F2ZXIobV9ub25JbW1lZGlh
dGVSZW5kZXJpbmcsIHRydWUpOworICAgIG1fYml0bWFwSW1hZ2UtPmRyYXcoY29udGV4dCwgZHN0
UmVjdCwgc3JjUmVjdCwgc3R5bGVDb2xvclNwYWNlLCBvcCk7Cit9CisKK2Jvb2wgTm9uSW1tZWRp
YXRlQml0bWFwSW1hZ2U6Om1heUZpbGxXaXRoU29saWRDb2xvcigpCit7CisgICAgcmV0dXJuIG1f
Yml0bWFwSW1hZ2UtPm1heUZpbGxXaXRoU29saWRDb2xvcigpOworfQorCitDb2xvciBOb25JbW1l
ZGlhdGVCaXRtYXBJbWFnZTo6c29saWRDb2xvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYml0
bWFwSW1hZ2UtPnNvbGlkQ29sb3IoKTsKK30KKworSW1hZ2UqIHRvTm9uSW1tZWRpYXRlQml0bWFw
SW1hZ2VJZlBvc3NpYmxlKEltYWdlKiBpbWFnZSkKK3sKKyAgICBpZiAoaW1hZ2UgJiYgaW1hZ2Ut
PmlzQml0bWFwSW1hZ2UoKSkgeworICAgICAgICBCaXRtYXBJbWFnZSogYml0bWFwSW1hZ2UgPSBz
dGF0aWNfY2FzdDxCaXRtYXBJbWFnZSo+KGltYWdlKTsKKyAgICAgICAgaWYgKCFiaXRtYXBJbWFn
ZS0+bV9ub25JbW1lZGlhdGVJbWFnZSkKKyAgICAgICAgICAgIGJpdG1hcEltYWdlLT5tX25vbklt
bWVkaWF0ZUltYWdlID0gTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2U6OmNyZWF0ZShiaXRtYXBJbWFn
ZSk7CisKKyAgICAgICAgcmV0dXJuIGJpdG1hcEltYWdlLT5tX25vbkltbWVkaWF0ZUltYWdlLmdl
dCgpOworICAgIH0KKyAgICByZXR1cm4gaW1hZ2U7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05vbkltbWVkaWF0ZUJpdG1hcEltYWdlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Ob25JbW1lZGlhdGVCaXRtYXBJbWFnZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmRhZGRmNzA5ZTU5NWE3MWUzYTU1MmE0YmVmOTI5OTUzNjlhZmJjOWEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Ob25JbW1l
ZGlhdGVCaXRtYXBJbWFnZS5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgQ29tcGFueSAxMDAgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIE5vbkltbWVkaWF0ZUJpdG1hcEltYWdlX2gKKyNkZWZpbmUgTm9uSW1tZWRpYXRlQml0bWFw
SW1hZ2VfaAorCisjaW5jbHVkZSAiSW1hZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBCaXRtYXBJbWFnZTsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKKworLy8gTm9uSW1tZWRp
YXRlQml0bWFwSW1hZ2UgaXMgdXNlZCBpbiBvcmRlciB0byBtYXJrIGl0IGlzIHNhZmUgdG8gZGVj
b2RlIGFzeW5jaHJvbm91c2x5LgorLy8gQ2xpZW50cyBvbmx5IHVzZSB0aGlzIGNsYXNzIHdoZW4g
dGhleSBjYWxsIG5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkgYW5kIEdyYXBoaWNzQ29udGV4
dDo6ZHJhd0ltYWdlKHRvTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2VJZlBvc3NpYmxlKGltYWdlKSku
CisvLyBBbHRob3VnaCBjbGllbnRzIGNhbiBjYWxsIG9ubHkgbmF0aXZlSW1hZ2VGb3JDdXJyZW50
RnJhbWUoKSwgTm9uSW1tZWRpYXRlQml0bWFwSW1hZ2Ugb3ZlcnJpZGVzIGFsbCB2aXJ0dWFsIG1l
dGhvZHMgb2YgSW1hZ2UsCisvLyBiZWNhdXNlIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKCkg
Y2FuIGNhbGwgb3RoZXIgdmlydHVhbCBtZXRob2RzLgorLy8gRm9yIGluc3RhbmNlLCBpbiBjdXJy
ZW50IGNvZGUsIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKCkgY2FsbHMgc2l6ZSgpLCB3aGlj
aCBpcyBhIHZpcnR1YWwgbWV0aG9kcyBvZiBJbWFnZS4KK2NsYXNzIE5vbkltbWVkaWF0ZUJpdG1h
cEltYWdlIDogcHVibGljIEltYWdlIHsKKyAgICBmcmllbmQgY2xhc3MgR3JhcGhpY3NDb250ZXh0
OworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vbkltbWVkaWF0ZUJpdG1hcEltYWdl
PiBjcmVhdGUoQml0bWFwSW1hZ2UqKTsKKworICAgIHZpcnR1YWwgfk5vbkltbWVkaWF0ZUJpdG1h
cEltYWdlKCkgeyB9CisKKyAgICB2aXJ0dWFsIE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9y
Q3VycmVudEZyYW1lKCkgT1ZFUlJJREU7CisKKyAgICBpbmxpbmUgYm9vbCBub25JbW1lZGlhdGVS
ZW5kZXJpbmcoKSBjb25zdCB7IHJldHVybiBtX25vbkltbWVkaWF0ZVJlbmRlcmluZzsgfQorCitw
cml2YXRlOgorICAgIGV4cGxpY2l0IE5vbkltbWVkaWF0ZUJpdG1hcEltYWdlKEJpdG1hcEltYWdl
Kik7CisKKyAgICB2aXJ0dWFsIGJvb2wgY3VycmVudEZyYW1lSGFzQWxwaGEoKSBPVkVSUklERTsK
KworICAgIHZpcnR1YWwgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0IE9WRVJS
SURFOworCisgICAgdmlydHVhbCBJbnRTaXplIHNpemUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgZ2V0SG90U3BvdChJbnRQb2ludCYpIGNvbnN0IE9WRVJSSURFOworCisgICAg
dmlydHVhbCBib29sIGRhdGFDaGFuZ2VkKGJvb2wgYWxsRGF0YVJlY2VpdmVkKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIFN0cmluZyBmaWxlbmFtZUV4dGVuc2lvbigpIGNvbnN0IE9WRVJSSURFOwor
CisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YShib29sIGRlc3Ryb3lBbGwgPSB0
cnVlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGRlY29kZWRTaXplKCkgY29uc3Qg
T1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRBbmltYXRpb24oYm9vbCBjYXRjaFVw
SWZOZWNlc3NhcnkgPSB0cnVlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcEFuaW1h
dGlvbigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXNldEFuaW1hdGlvbigpIE9WRVJS
SURFOworCisgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxv
YXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2UsIENv
bXBvc2l0ZU9wZXJhdG9yKSBPVkVSUklERTsKKworICAgIHZpcnR1YWwgYm9vbCBtYXlGaWxsV2l0
aFNvbGlkQ29sb3IoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIENvbG9yIHNvbGlkQ29sb3IoKSBj
b25zdCBPVkVSUklERTsKKworICAgIEJpdG1hcEltYWdlKiBtX2JpdG1hcEltYWdlOworICAgIG11
dGFibGUgYm9vbCBtX25vbkltbWVkaWF0ZVJlbmRlcmluZzsKK307CisKK0ltYWdlKiB0b05vbklt
bWVkaWF0ZUJpdG1hcEltYWdlSWZQb3NzaWJsZShJbWFnZSopOworCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggNDhlYTA1NDcwZGRmMDRi
ZDEwNDJkNWViMzBjMTZiZmNlNzhkM2IxNC4uYjkyYzI0M2ZjYjVjNDhjZjJhMDRjYzI1ODgzYTA3
MjA3ZTAxNTMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklt
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBA
IC0zMjgsNyArMzI4LDcgQEAgdm9pZCBSZW5kZXJJbWFnZTo6cGFpbnRSZXBsYWNlZChQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2YKICAgICAgICAgICAgICAg
ICBpZiAoY2VudGVyWSA8IDApCiAgICAgICAgICAgICAgICAgICAgIGNlbnRlclkgPSAwOwogICAg
ICAgICAgICAgICAgIGltYWdlT2Zmc2V0ID0gTGF5b3V0U2l6ZShsZWZ0Qm9yZGVyICsgbGVmdFBh
ZCArIGNlbnRlclggKyAxLCB0b3BCb3JkZXIgKyB0b3BQYWQgKyBjZW50ZXJZICsgMSk7Ci0gICAg
ICAgICAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBzdHlsZSgpLT5jb2xv
clNwYWNlKCksIEludFJlY3Qocm91bmRlZEludFBvaW50KHBhaW50T2Zmc2V0ICsgaW1hZ2VPZmZz
ZXQpLCBpbWFnZVNpemUpLCBDb21wb3NpdGVTb3VyY2VPdmVyLCBzaG91bGRSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbigpKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3SW1hZ2UodG9Ob25J
bW1lZGlhdGVCaXRtYXBJbWFnZUlmUG9zc2libGUoaW1hZ2UuZ2V0KCkpLCBzdHlsZSgpLT5jb2xv
clNwYWNlKCksIEludFJlY3Qocm91bmRlZEludFBvaW50KHBhaW50T2Zmc2V0ICsgaW1hZ2VPZmZz
ZXQpLCBpbWFnZVNpemUpLCBDb21wb3NpdGVTb3VyY2VPdmVyLCBzaG91bGRSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbigpKTsKICAgICAgICAgICAgICAgICBlcnJvclBpY3R1cmVEcmF3biA9IHRydWU7
CiAgICAgICAgICAgICB9CiAKQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lkIFJlbmRlckltYWdlOjpw
YWludEludG9SZWN0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYg
cmVjdAogICAgIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yID0gaW1hZ2VFbHQg
PyBpbWFnZUVsdC0+Y29tcG9zaXRlT3BlcmF0b3IoKSA6IENvbXBvc2l0ZVNvdXJjZU92ZXI7CiAg
ICAgSW1hZ2UqIGltYWdlID0gbV9pbWFnZVJlc291cmNlLT5pbWFnZSgpLmdldCgpOwogICAgIGJv
b2wgdXNlTG93UXVhbGl0eVNjYWxpbmcgPSBzaG91bGRQYWludEF0TG93UXVhbGl0eShjb250ZXh0
LCBpbWFnZSwgaW1hZ2UsIGFsaWduZWRSZWN0LnNpemUoKSk7Ci0gICAgY29udGV4dC0+ZHJhd0lt
YWdlKG1faW1hZ2VSZXNvdXJjZS0+aW1hZ2UoYWxpZ25lZFJlY3Qud2lkdGgoKSwgYWxpZ25lZFJl
Y3QuaGVpZ2h0KCkpLmdldCgpLCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIGFsaWduZWRSZWN0LCBj
b21wb3NpdGVPcGVyYXRvciwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSwgdXNlTG93
UXVhbGl0eVNjYWxpbmcpOworICAgIGNvbnRleHQtPmRyYXdJbWFnZSh0b05vbkltbWVkaWF0ZUJp
dG1hcEltYWdlSWZQb3NzaWJsZShtX2ltYWdlUmVzb3VyY2UtPmltYWdlKGFsaWduZWRSZWN0Lndp
ZHRoKCksIGFsaWduZWRSZWN0LmhlaWdodCgpKS5nZXQoKSksIHN0eWxlKCktPmNvbG9yU3BhY2Uo
KSwgYWxpZ25lZFJlY3QsIGNvbXBvc2l0ZU9wZXJhdG9yLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbigpLCB1c2VMb3dRdWFsaXR5U2NhbGluZyk7CiB9CiAKIGJvb2wgUmVuZGVySW1hZ2U6
OmJveFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZChCYWNrZ3JvdW5kQmxlZWRBdm9p
ZGFuY2UgYmxlZWRBdm9pZGFuY2UsIElubGluZUZsb3dCb3gqKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcAppbmRleCA1NmJlNWNkNDE2
YmNkZTI2ZTBhODU1YmUxYWRjZWEyYjQzZmMwYjk1Li41ZDg4NzcyMTAxNzkzYzU0NTU4ZWMyZGVh
ODhmOTkyYjdhYmFiYTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0ltYWdlLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkZsb2F0UXVhZC5o
IgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkxheW91dFJlcGFpbnRl
ci5oIgorI2luY2x1ZGUgIk5vbkltbWVkaWF0ZUJpdG1hcEltYWdlLmgiCiAjaW5jbHVkZSAiUG9p
bnRlckV2ZW50c0hpdFJ1bGVzLmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2VSZXNvdXJjZS5oIgog
I2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCkBAIC0xMzQsNyArMTM1LDcgQEAgdm9pZCBSZW5kZXJT
VkdJbWFnZTo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JikK
ICAgICAgICAgICAgICAgICBTVkdJbWFnZUVsZW1lbnQqIGltYWdlRWxlbWVudCA9IHN0YXRpY19j
YXN0PFNWR0ltYWdlRWxlbWVudCo+KG5vZGUoKSk7CiAgICAgICAgICAgICAgICAgaW1hZ2VFbGVt
ZW50LT5wcmVzZXJ2ZUFzcGVjdFJhdGlvKCkudHJhbnNmb3JtUmVjdChkZXN0UmVjdCwgc3JjUmVj
dCk7CiAKLSAgICAgICAgICAgICAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5kcmF3SW1hZ2Uo
aW1hZ2UuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRlc3RSZWN0LCBzcmNSZWN0KTsKKyAg
ICAgICAgICAgICAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5kcmF3SW1hZ2UodG9Ob25JbW1l
ZGlhdGVCaXRtYXBJbWFnZUlmUG9zc2libGUoaW1hZ2UuZ2V0KCkpLCBDb2xvclNwYWNlRGV2aWNl
UkdCLCBkZXN0UmVjdCwgc3JjUmVjdCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>