<?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>122157</bug_id>
          
          <creation_ts>2013-10-01 05:26:01 -0700</creation_ts>
          <short_desc>Generate toCSSFooValue for CSS child values</short_desc>
          <delta_ts>2013-10-01 21:16:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>934988</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-10-01 05:26:01 -0700</bug_when>
    <thetext>As a step to cleanup static_cast&lt;&gt; for CSSFooValue, this patch adds toCSSFooValue() for &quot;CSSAspectRatioValue, CSSBorderImageSliceValue, CSSFunctionValue, CSSInheritedValue, CSSValueList, CSSVariableValue, and CSSFontFaceSrcValue&quot;. To use CSS_VALUE_TYPE_CASTS, isFunctionValue(), isFontFaceSrcValue() are added to generate toCSSFunctionValue, toCSSFontFaceSrcValue().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934989</commentid>
    <comment_count>1</comment_count>
      <attachid>213075</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-10-01 05:29:04 -0700</bug_when>
    <thetext>Created attachment 213075
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935068</commentid>
    <comment_count>2</comment_count>
      <attachid>213075</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-01 09:56:00 -0700</bug_when>
    <thetext>Comment on attachment 213075
Patch

Please run WebKit tests before landing this. The last toXXX patch was hitting assertions a lot on the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935287</commentid>
    <comment_count>3</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-10-01 17:51:01 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 213075 [details])
&gt; Please run WebKit tests before landing this. The last toXXX patch was hitting assertions a lot on the bots.

Ok, I will land after checking if regression happens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935336</commentid>
    <comment_count>4</comment_count>
      <attachid>213075</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-10-01 20:47:17 -0700</bug_when>
    <thetext>Comment on attachment 213075
Patch

I ran layout test on mac wk2 as debug. It looks there is no regression there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935341</commentid>
    <comment_count>5</comment_count>
      <attachid>213075</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-01 21:16:00 -0700</bug_when>
    <thetext>Comment on attachment 213075
Patch

Clearing flags on attachment: 213075

Committed r156760: &lt;http://trac.webkit.org/changeset/156760&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935342</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-01 21:16:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213075</attachid>
            <date>2013-10-01 05:29:04 -0700</date>
            <delta_ts>2013-10-01 21:15:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122157-20131001212902.patch</filename>
            <type>text/plain</type>
            <size>33078</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGNmZGJhZmZiNjJmMGRm
NWUxZTIzYjhjZjg1YzVmNWQ1Y2VjNTQ0Mi4uY2Q2M2E2ZDdiMDRkM2E5ZDVhMDZmOTE1MjBlMDM4
YTc0ZDAzNjNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc2IEBACiAyMDEzLTEwLTAxICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKKyAgICAgICAgR2VuZXJhdGUg
dG9DU1NGb29WYWx1ZSBmb3IgQ1NTIGNoaWxkIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMTU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgYSBzdGVwIHRvIGNsZWFudXAgc3RhdGljX2Nh
c3Q8PiBmb3IgQ1NTRm9vVmFsdWUsIHRoaXMgcGF0Y2ggYWRkcyB0b0NTU0Zvb1ZhbHVlKCkKKyAg
ICAgICAgZm9yICJDU1NBc3BlY3RSYXRpb1ZhbHVlLCBDU1NCb3JkZXJJbWFnZVNsaWNlVmFsdWUs
IENTU0Z1bmN0aW9uVmFsdWUsIENTU0luaGVyaXRlZFZhbHVlLAorICAgICAgICBDU1NWYWx1ZUxp
c3QsIENTU1ZhcmlhYmxlVmFsdWUsIGFuZCBDU1NGb250RmFjZVNyY1ZhbHVlIi4KKworICAgICAg
ICBUbyB1c2UgQ1NTX1ZBTFVFX1RZUEVfQ0FTVFMsIGlzRnVuY3Rpb25WYWx1ZSgpLCBpc0ZvbnRG
YWNlU3JjVmFsdWUoKSBhcmUgYWRkZWQgdG8KKyAgICAgICAgZ2VuZXJhdGUgdG9DU1NGdW5jdGlv
blZhbHVlLCB0b0NTU0ZvbnRGYWNlU3JjVmFsdWUoKS4KKworICAgICAgICBObyBuZXcgdGVzdHMs
IG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBjc3MvQ1NTQXNwZWN0UmF0aW9WYWx1
ZS5oOgorICAgICAgICAqIGNzcy9DU1NCb3JkZXJJbWFnZVNsaWNlVmFsdWUuaDoKKyAgICAgICAg
KiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5oOgorICAgICAgICAqIGNzcy9DU1NGb250U2VsZWN0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1
bGUpOgorICAgICAgICAqIGNzcy9DU1NGdW5jdGlvblZhbHVlLmg6CisgICAgICAgICogY3NzL0NT
U0luaGVyaXRlZFZhbHVlLmg6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmaWx0ZXJQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNl
cjo6YWRkRmlsbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6YWRkQW5pbWF0
aW9uVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVGb250RmFjZVJ1
bGUpOgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcm9wZXJ0eTo6d3JhcFZhbHVlSW5Db21tYVNlcGFyYXRlZExpc3QpOgorICAgICAgICAqIGNz
cy9DU1NUb1N0eWxlTWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvU3R5bGVNYXA6Om1h
cE5pbmVQaWVjZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvU3R5bGVNYXA6Om1hcE5p
bmVQaWVjZUltYWdlU2xpY2UpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NWYWx1ZTo6ZGVzdHJveSk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlLmg6
CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNGdW5jdGlvblZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ZhbHVlOjppc0ZvbnRGYWNlU3JjVmFsdWUpOgorICAgICAgICAqIGNzcy9D
U1NWYWx1ZUxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlTGlzdEluc3BlY3Rvcjo6
Q1NTVmFsdWVMaXN0SW5zcGVjdG9yKToKKyAgICAgICAgKiBjc3MvQ1NTVmFyaWFibGVWYWx1ZS5o
OgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGx5UHJvcGVydHlGaWxsTGF5ZXI6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbHlQcm9wZXJ0eUZvbnRWYXJpYW50TGlnYXR1cmVzOjphcHBseVZhbHVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlDb3VudGVyOjphcHBseVZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlDdXJzb3I6OmFwcGx5VmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRleHRFbXBoYXNpc1N0eWxlOjphcHBseVZhbHVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlBc3BlY3RSYXRpbzo6YXBwbHlWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5SW1hZ2VSZXNvbHV0aW9uOjphcHBseVZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50OjphcHBseVZhbHVl
KToKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjb21wYXJlQXNwZWN0UmF0aW9WYWx1ZSk6CisgICAgICAgICogY3NzL1NWR0NTU1N0eWxl
U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwbHlTVkdQ
cm9wZXJ0eSk6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKToKKyAg
ICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVH
cmlkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9w
ZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpwYXJzZUN1c3RvbUZpbHRl
clBhcmFtZXRlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjcmVhdGVDdXN0
b21GaWx0ZXJPcGVyYXRpb25XaXRoSW5saW5lU3ludGF4KToKKyAgICAgICAgKiBlZGl0aW5nL0Vk
aXRpbmdTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dERlY29yYXRpb25FcXVp
dmFsZW50Ojp2YWx1ZUlzUHJlc2VudEluU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGlu
Z1N0eWxlOjptZXJnZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQ2hhbmdlOjpleHRy
YWN0VGV4dFN0eWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpkaWZmVGV4dERlY29yYXRpb25zKToK
KyAgICAgICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
ZXhlY3V0ZVRvZ2dsZVN0eWxlSW5MaXN0KToKKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvbnRGYWNlRWxlbWVudDo6cmVidWlsZEZv
bnRGYWNlKToKKworMjAxMy0xMC0wMSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1
bmcuY29tPgorCiAgICAgICAgIEdlbmVyYXRlIHRvQ1NTRm9vVmFsdWUgZm9yIENTU1ByaW1pdGl2
ZVZhbHVlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjIxMDEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FzcGVjdFJhdGlvVmFs
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NBc3BlY3RSYXRpb1ZhbHVlLmgKaW5kZXggOWZj
NzhjYmEyZWU3NGVmYTllOWNlYmZmMDNmYjliYWM3Njg3YTQyOC4uZDhhMzlhZjg0OTQ1M2M2MmY5
YjM2NGM3N2M5MTMxMDY0NzFjY2U0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0FzcGVjdFJhdGlvVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQXNwZWN0UmF0
aW9WYWx1ZS5oCkBAIC02MCw2ICs2MCw4IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9kZW5vbWlu
YXRvclZhbHVlOwogfTsKIAorQ1NTX1ZBTFVFX1RZUEVfQ0FTVFMoQXNwZWN0UmF0aW9WYWx1ZSkK
KwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCb3JkZXJJ
bWFnZVNsaWNlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCb3JkZXJJbWFnZVNsaWNl
VmFsdWUuaAppbmRleCA0MTEyYmQ5Y2E1NzYwMDg5M2M1NzY3YzExNTQzZDMyNWM2ZDRhMzk2Li40
YjhhMzRiMGFjZGM1ZTkxNzU4ZmJhZjc4ZjBiYTg1MzMyMDcxNGI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQm9yZGVySW1hZ2VTbGljZVZhbHVlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0JvcmRlckltYWdlU2xpY2VWYWx1ZS5oCkBAIC01Niw2ICs1Niw4IEBAIHBy
aXZhdGU6CiAgICAgQ1NTQm9yZGVySW1hZ2VTbGljZVZhbHVlKFBhc3NSZWZQdHI8Q1NTUHJpbWl0
aXZlVmFsdWU+IHNsaWNlcywgYm9vbCBmaWxsKTsKIH07CiAKK0NTU19WQUxVRV9UWVBFX0NBU1RT
KEJvcmRlckltYWdlU2xpY2VWYWx1ZSkKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gQ1NTQm9yZGVySW1hZ2VTbGljZVZhbHVlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2VTcmNWYWx1ZS5oCmluZGV4IDk5YTExNDQyM2NiOWI0OGRiNDFhMmZlODU3ZjA2YzM2OTQ2
YWFmNmIuLjg3MzM5Mjg1YmQ1ODRjZGM2MzNhZjJlOThmMDdjOWE0Yjg4OTEzYTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuaApAQCAtOTUsNiArOTUsOCBAQCBwcml2
YXRlOgogI2VuZGlmCiB9OwogCitDU1NfVkFMVUVfVFlQRV9DQVNUUyhGb250RmFjZVNyY1ZhbHVl
KQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRT
ZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAppbmRl
eCBlODQzMTdkNjdhMjU5NjBlOTg1NmZjMmExYmMwYmM4YjViNzdhMDQwLi45YTA1ZDU1ODg3M2Q0
MGQxZjY0ODY3MmU0ZTRjZmM2MzczNDBmN2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udFNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNl
bGVjdG9yLmNwcApAQCAtOTksMTUgKzk5LDE1IEBAIHZvaWQgQ1NTRm9udFNlbGVjdG9yOjphZGRG
b250RmFjZVJ1bGUoY29uc3QgU3R5bGVSdWxlRm9udEZhY2UqIGZvbnRGYWNlUnVsZSkKICAgICBp
ZiAoIWZvbnRGYW1pbHkgfHwgIXNyYyB8fCAhZm9udEZhbWlseS0+aXNWYWx1ZUxpc3QoKSB8fCAh
c3JjLT5pc1ZhbHVlTGlzdCgpIHx8ICh1bmljb2RlUmFuZ2UgJiYgIXVuaWNvZGVSYW5nZS0+aXNW
YWx1ZUxpc3QoKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIENTU1ZhbHVlTGlzdCogZmFtaWx5
TGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KGZvbnRGYW1pbHkuZ2V0KCkpOworICAg
IENTU1ZhbHVlTGlzdCogZmFtaWx5TGlzdCA9IHRvQ1NTVmFsdWVMaXN0KGZvbnRGYW1pbHkuZ2V0
KCkpOwogICAgIGlmICghZmFtaWx5TGlzdC0+bGVuZ3RoKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIENTU1ZhbHVlTGlzdCogc3JjTGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHNy
Yy5nZXQoKSk7CisgICAgQ1NTVmFsdWVMaXN0KiBzcmNMaXN0ID0gdG9DU1NWYWx1ZUxpc3Qoc3Jj
LmdldCgpKTsKICAgICBpZiAoIXNyY0xpc3QtPmxlbmd0aCgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBDU1NWYWx1ZUxpc3QqIHJhbmdlTGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+
KHVuaWNvZGVSYW5nZS5nZXQoKSk7CisgICAgQ1NTVmFsdWVMaXN0KiByYW5nZUxpc3QgPSB0b0NT
U1ZhbHVlTGlzdCh1bmljb2RlUmFuZ2UuZ2V0KCkpOwogCiAgICAgdW5zaWduZWQgdHJhaXRzTWFz
ayA9IDA7CiAKQEAgLTE3OCw3ICsxNzgsNyBAQCB2b2lkIENTU0ZvbnRTZWxlY3Rvcjo6YWRkRm9u
dEZhY2VSdWxlKGNvbnN0IFN0eWxlUnVsZUZvbnRGYWNlKiBmb250RmFjZVJ1bGUpCiAgICAgICAg
IH0gZWxzZSBpZiAoIWZvbnRWYXJpYW50LT5pc1ZhbHVlTGlzdCgpKQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIENTU1ZhbHVlTGlzdCogdmFyaWFudExpc3QgPSBzdGF0aWNfY2FzdDxD
U1NWYWx1ZUxpc3QqPihmb250VmFyaWFudC5nZXQoKSk7CisgICAgICAgIENTU1ZhbHVlTGlzdCog
dmFyaWFudExpc3QgPSB0b0NTU1ZhbHVlTGlzdChmb250VmFyaWFudC5nZXQoKSk7CiAgICAgICAg
IHVuc2lnbmVkIG51bVZhcmlhbnRzID0gdmFyaWFudExpc3QtPmxlbmd0aCgpOwogICAgICAgICBp
ZiAoIW51bVZhcmlhbnRzKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjA3LDcgKzIwNyw3IEBA
IHZvaWQgQ1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUoY29uc3QgU3R5bGVSdWxlRm9u
dEZhY2UqIGZvbnRGYWNlUnVsZSkKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3JjTGVuZ3Ro
OyBpKyspIHsKICAgICAgICAgLy8gQW4gaXRlbSBpbiB0aGUgbGlzdCBlaXRoZXIgc3BlY2lmaWVz
IGEgc3RyaW5nIChsb2NhbCBmb250IG5hbWUpIG9yIGEgVVJMIChyZW1vdGUgZm9udCB0byBkb3du
bG9hZCkuCi0gICAgICAgIENTU0ZvbnRGYWNlU3JjVmFsdWUqIGl0ZW0gPSBzdGF0aWNfY2FzdDxD
U1NGb250RmFjZVNyY1ZhbHVlKj4oc3JjTGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjayhpKSk7
CisgICAgICAgIENTU0ZvbnRGYWNlU3JjVmFsdWUqIGl0ZW0gPSB0b0NTU0ZvbnRGYWNlU3JjVmFs
dWUoc3JjTGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjayhpKSk7CiAgICAgICAgIE93blB0cjxD
U1NGb250RmFjZVNvdXJjZT4gc291cmNlOwogCiAjaWYgRU5BQkxFKFNWR19GT05UUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5oCmluZGV4IDM3NDMzOTk2NzhjYzRjNWZjMWI5NmM1
ZmRlOGY5MjNiZDhlYTJjNzkuLmRhNWE2MTA5M2IzMDU5MzU5N2Q0OGFmYjZiNDRjOTUyOGY0YmFh
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUuaApAQCAtNTcsNiArNTcsOCBA
QCBwcml2YXRlOgogICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IG1fYXJnczsKIH07CiAKK0NTU19W
QUxVRV9UWVBFX0NBU1RTKEZ1bmN0aW9uVmFsdWUpCisKIH0KICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5oZXJpdGVkVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5oCmluZGV4IDg4NmFhMGNmYWY1YTRmMGMzYjYxMWEzM2M3
MDZjZGNlYjRlMDU3OGUuLmFhZjYxNTE5Nzc2YzIzYTJhNWQxNTFjYTVhN2E0Nzk3NzVmOTljMjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5oCkBAIC00NCw2ICs0NCw4IEBA
IHByaXZhdGU6CiAgICAgfQogfTsKIAorQ1NTX1ZBTFVFX1RZUEVfQ0FTVFMoSW5oZXJpdGVkVmFs
dWUpCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIENTU0luaGVyaXRlZFZh
bHVlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggYjE1MDJiYWI5OTliMDQ0ZTEwNmFj
NGRkNjdiYjU5OTg3YTg5MjkwYi4uNzIyNjIzNzI0NWFkYmI3M2UwOGU0NDU5MzUyNTY2NTkyMWNj
Y2M2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTE1MjcsNyArMTUyNyw3IEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCBmaWx0ZXJQcm9wZXJ0aWVzKGJvb2wgaW1wb3J0YW50LCBjb25zdCBD
U1NQYXJzZXI6OlBhcnNlZFByb3BlCiAgICAgICAgICAgICBjb250aW51ZTsKICNpZiBFTkFCTEUo
Q1NTX1ZBUklBQkxFUykKICAgICAgICAgaWYgKHByb3BlcnR5LmlkKCkgPT0gQ1NTUHJvcGVydHlW
YXJpYWJsZSkgewotICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0gc3RhdGlj
X2Nhc3Q8Q1NTVmFyaWFibGVWYWx1ZSo+KHByb3BlcnR5LnZhbHVlKCkpLT5uYW1lKCk7CisgICAg
ICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSB0b0NTU1ZhcmlhYmxlVmFsdWUocHJv
cGVydHkudmFsdWUoKSktPm5hbWUoKTsKICAgICAgICAgICAgIGlmIChzZWVuVmFyaWFibGVzLmNv
bnRhaW5zKG5hbWUpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgc2Vl
blZhcmlhYmxlcy5hZGQobmFtZSk7CkBAIC0zMTkzLDcgKzMxOTMsNyBAQCB2b2lkIENTU1BhcnNl
cjo6YWRkRmlsbFZhbHVlKFJlZlB0cjxDU1NWYWx1ZT4mIGx2YWwsIFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IHJ2YWwpCiB7CiAgICAgaWYgKGx2YWwpIHsKICAgICAgICAgaWYgKGx2YWwtPmlzQmFzZVZh
bHVlTGlzdCgpKQotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4obHZhbC5n
ZXQoKSktPmFwcGVuZChydmFsKTsKKyAgICAgICAgICAgIHRvQ1NTVmFsdWVMaXN0KGx2YWwuZ2V0
KCkpLT5hcHBlbmQocnZhbCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgUGFzc1JlZlB0
cjxDU1NWYWx1ZT4gb2xkbFZhbChsdmFsLnJlbGVhc2UoKSk7CiAgICAgICAgICAgICBQYXNzUmVm
UHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBhcmF0
ZWQoKTsKQEAgLTM0MDEsNyArMzQwMSw3IEBAIHZvaWQgQ1NTUGFyc2VyOjphZGRBbmltYXRpb25W
YWx1ZShSZWZQdHI8Q1NTVmFsdWU+JiBsdmFsLCBQYXNzUmVmUHRyPENTU1ZhbHVlPiByCiB7CiAg
ICAgaWYgKGx2YWwpIHsKICAgICAgICAgaWYgKGx2YWwtPmlzVmFsdWVMaXN0KCkpCi0gICAgICAg
ICAgICBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPihsdmFsLmdldCgpKS0+YXBwZW5kKHJ2YWwp
OworICAgICAgICAgICAgdG9DU1NWYWx1ZUxpc3QobHZhbC5nZXQoKSktPmFwcGVuZChydmFsKTsK
ICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBvbGRWYWwo
bHZhbC5yZWxlYXNlKCkpOwogICAgICAgICAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxp
c3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CkBAIC0xMTY2Myw3ICsx
MTY2Myw3IEBAIFBhc3NSZWZQdHI8U3R5bGVSdWxlQmFzZT4gQ1NTUGFyc2VyOjpjcmVhdGVGb250
RmFjZVJ1bGUoKQogICAgICAgICBDU1NQcm9wZXJ0eSYgcHJvcGVydHkgPSBtX3BhcnNlZFByb3Bl
cnRpZXNbaV07CiAgICAgICAgIGlmIChwcm9wZXJ0eS5pZCgpID09IENTU1Byb3BlcnR5Rm9udFZh
cmlhbnQgJiYgcHJvcGVydHkudmFsdWUoKS0+aXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICAg
ICAgcHJvcGVydHkud3JhcFZhbHVlSW5Db21tYVNlcGFyYXRlZExpc3QoKTsKLSAgICAgICAgZWxz
ZSBpZiAocHJvcGVydHkuaWQoKSA9PSBDU1NQcm9wZXJ0eUZvbnRGYW1pbHkgJiYgKCFwcm9wZXJ0
eS52YWx1ZSgpLT5pc1ZhbHVlTGlzdCgpIHx8IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHBy
b3BlcnR5LnZhbHVlKCkpLT5sZW5ndGgoKSAhPSAxKSkgeworICAgICAgICBlbHNlIGlmIChwcm9w
ZXJ0eS5pZCgpID09IENTU1Byb3BlcnR5Rm9udEZhbWlseSAmJiAoIXByb3BlcnR5LnZhbHVlKCkt
PmlzVmFsdWVMaXN0KCkgfHwgdG9DU1NWYWx1ZUxpc3QocHJvcGVydHkudmFsdWUoKSktPmxlbmd0
aCgpICE9IDEpKSB7CiAgICAgICAgICAgICAvLyBVbmxpa2UgZm9udC1mYW1pbHkgcHJvcGVydHks
IGZvbnQtZmFtaWx5IGRlc2NyaXB0b3IgaW4gQGZvbnQtZmFjZSBydWxlCiAgICAgICAgICAgICAv
LyBoYXMgdG8gYmUgYSB2YWx1ZSBsaXN0IHdpdGggZXhhY3RseSBvbmUgZmFtaWx5IG5hbWUuIEl0
IGNhbm5vdCBoYXZlIGEKICAgICAgICAgICAgIC8vIGhhdmUgJ2luaXRpYWwnIHZhbHVlIGFuZCBj
YW5ub3QgJ2luaGVyaXQnIGZyb20gcGFyZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAK
aW5kZXggZDMyYTYzMjBlYmI5MzZjODFiNWEzYWRiMmFiOGVlNzI1Yzk2OWFkZS4uMTMyM2NhZjA4
MzM0ZDM1M2U5NGJmYzk4OTI0OGRlODBlM2MxYmQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1Byb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVy
dHkuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgQ1NTUHJvcGVydHk6OndyYXBWYWx1ZUluQ29t
bWFTZXBhcmF0ZWRMaXN0KCkKIHsKICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gbV92YWx1
ZS5yZWxlYXNlKCk7CiAgICAgbV92YWx1ZSA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBh
cmF0ZWQoKTsKLSAgICBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPihtX3ZhbHVlLmdldCgpKS0+
YXBwZW5kKHZhbHVlLnJlbGVhc2UoKSk7CisgICAgdG9DU1NWYWx1ZUxpc3QobV92YWx1ZS5nZXQo
KSktPmFwcGVuZCh2YWx1ZS5yZWxlYXNlKCkpOwogfQogCiBlbnVtIExvZ2ljYWxCb3hTaWRlIHsg
QmVmb3JlU2lkZSwgRW5kU2lkZSwgQWZ0ZXJTaWRlLCBTdGFydFNpZGUgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NUb1N0eWxlTWFwLmNwcAppbmRleCAzODI3ODIzOWNjYzhiOWM5OTczNjE3YmZkZTU1MDVi
MzM4MTUyMzI3Li5mY2JjY2IzNDk4MzkwMDQyZmMyZDIxMWVmNWNiZTg0OWQ4NWZmNDc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCkBAIC01MzgsNyArNTM4LDcgQEAgdm9pZCBD
U1NUb1N0eWxlTWFwOjptYXBOaW5lUGllY2VJbWFnZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBD
U1NWYWx1ZSogdmFsdWUsIE4KICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gUmV0cmlldmUgdGhl
IGJvcmRlciBpbWFnZSB2YWx1ZS4KLSAgICBDU1NWYWx1ZUxpc3QqIGJvcmRlckltYWdlID0gc3Rh
dGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpOworICAgIENTU1ZhbHVlTGlzdCogYm9yZGVy
SW1hZ2UgPSB0b0NTU1ZhbHVlTGlzdCh2YWx1ZSk7CiAKICAgICAvLyBTZXQgdGhlIGltYWdlICh0
aGlzIGtpY2tzIG9mZiB0aGUgbG9hZCkuCiAgICAgQ1NTUHJvcGVydHlJRCBpbWFnZVByb3BlcnR5
OwpAQCAtNTYxLDcgKzU2MSw3IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwTmluZVBpZWNlSW1h
Z2UoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTVmFsdWUqIHZhbHVlLCBOCiAgICAgICAgIGVs
c2UgaWYgKGN1cnJlbnQtPmlzQm9yZGVySW1hZ2VTbGljZVZhbHVlKCkpCiAgICAgICAgICAgICBt
YXBOaW5lUGllY2VJbWFnZVNsaWNlKGN1cnJlbnQsIGltYWdlKTsKICAgICAgICAgZWxzZSBpZiAo
Y3VycmVudC0+aXNWYWx1ZUxpc3QoKSkgewotICAgICAgICAgICAgQ1NTVmFsdWVMaXN0KiBzbGFz
aExpc3QgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPihjdXJyZW50KTsKKyAgICAgICAgICAg
IENTU1ZhbHVlTGlzdCogc2xhc2hMaXN0ID0gdG9DU1NWYWx1ZUxpc3QoY3VycmVudCk7CiAgICAg
ICAgICAgICAvLyBNYXAgaW4gdGhlIGltYWdlIHNsaWNlcy4KICAgICAgICAgICAgIGlmIChzbGFz
aExpc3QtPml0ZW0oMCkgJiYgc2xhc2hMaXN0LT5pdGVtKDApLT5pc0JvcmRlckltYWdlU2xpY2VW
YWx1ZSgpKQogICAgICAgICAgICAgICAgIG1hcE5pbmVQaWVjZUltYWdlU2xpY2Uoc2xhc2hMaXN0
LT5pdGVtKDApLCBpbWFnZSk7CkBAIC02MDAsNyArNjAwLDcgQEAgdm9pZCBDU1NUb1N0eWxlTWFw
OjptYXBOaW5lUGllY2VJbWFnZVNsaWNlKENTU1ZhbHVlKiB2YWx1ZSwgTmluZVBpZWNlSW1hZ2Um
IGltYWcKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gUmV0cmlldmUgdGhlIGJvcmRlciBpbWFn
ZSB2YWx1ZS4KLSAgICBDU1NCb3JkZXJJbWFnZVNsaWNlVmFsdWUqIGJvcmRlckltYWdlU2xpY2Ug
PSBzdGF0aWNfY2FzdDxDU1NCb3JkZXJJbWFnZVNsaWNlVmFsdWUqPih2YWx1ZSk7CisgICAgQ1NT
Qm9yZGVySW1hZ2VTbGljZVZhbHVlKiBib3JkZXJJbWFnZVNsaWNlID0gdG9DU1NCb3JkZXJJbWFn
ZVNsaWNlVmFsdWUodmFsdWUpOwogCiAgICAgLy8gU2V0IHVwIGEgbGVuZ3RoIGJveCB0byByZXBy
ZXNlbnQgb3VyIGltYWdlIHNsaWNlcy4KICAgICBMZW5ndGhCb3ggYm94OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZS5jcHAKaW5kZXggYmU5MjI2MDYyMDgzZjhkNzFjMzE1MDFmMTU4NmM1YzhmOGQ4MzRmNS4u
YTAxZGYxMWVjZmM1Zjg2MzJjZDAwYjlkZDZmMmUwMDY3ZmQ4MGVjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWUuY3BwCkBAIC0zODMsMTAgKzM4MywxMCBAQCB2b2lkIENTU1ZhbHVlOjpkZXN0cm95KCkK
IAogICAgIHN3aXRjaCAoY2xhc3NUeXBlKCkpIHsKICAgICBjYXNlIEFzcGVjdFJhdGlvQ2xhc3M6
Ci0gICAgICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxDU1NBc3BlY3RSYXRpb1ZhbHVlKj4odGhpcyk7
CisgICAgICAgIGRlbGV0ZSB0b0NTU0FzcGVjdFJhdGlvVmFsdWUodGhpcyk7CiAgICAgICAgIHJl
dHVybjsKICAgICBjYXNlIEJvcmRlckltYWdlU2xpY2VDbGFzczoKLSAgICAgICAgZGVsZXRlIHN0
YXRpY19jYXN0PENTU0JvcmRlckltYWdlU2xpY2VWYWx1ZSo+KHRoaXMpOworICAgICAgICBkZWxl
dGUgdG9DU1NCb3JkZXJJbWFnZVNsaWNlVmFsdWUodGhpcyk7CiAgICAgICAgIHJldHVybjsKICAg
ICBjYXNlIENhbnZhc0NsYXNzOgogICAgICAgICBkZWxldGUgdG9DU1NDYW52YXNWYWx1ZSh0aGlz
KTsKQEAgLTM5OCwxMyArMzk4LDEzIEBAIHZvaWQgQ1NTVmFsdWU6OmRlc3Ryb3koKQogICAgICAg
ICBkZWxldGUgc3RhdGljX2Nhc3Q8Rm9udFZhbHVlKj4odGhpcyk7CiAgICAgICAgIHJldHVybjsK
ICAgICBjYXNlIEZvbnRGYWNlU3JjQ2xhc3M6Ci0gICAgICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxD
U1NGb250RmFjZVNyY1ZhbHVlKj4odGhpcyk7CisgICAgICAgIGRlbGV0ZSB0b0NTU0ZvbnRGYWNl
U3JjVmFsdWUodGhpcyk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEZvbnRGZWF0dXJlQ2xh
c3M6CiAgICAgICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxGb250RmVhdHVyZVZhbHVlKj4odGhpcyk7
CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEZ1bmN0aW9uQ2xhc3M6Ci0gICAgICAgIGRlbGV0
ZSBzdGF0aWNfY2FzdDxDU1NGdW5jdGlvblZhbHVlKj4odGhpcyk7CisgICAgICAgIGRlbGV0ZSB0
b0NTU0Z1bmN0aW9uVmFsdWUodGhpcyk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIExpbmVh
ckdyYWRpZW50Q2xhc3M6CiAgICAgICAgIGRlbGV0ZSB0b0NTU0xpbmVhckdyYWRpZW50VmFsdWUo
dGhpcyk7CkBAIC00MTksNyArNDE5LDcgQEAgdm9pZCBDU1NWYWx1ZTo6ZGVzdHJveSgpCiAgICAg
ICAgIGRlbGV0ZSB0b0NTU0ltYWdlVmFsdWUodGhpcyk7CiAgICAgICAgIHJldHVybjsKICAgICBj
YXNlIEluaGVyaXRlZENsYXNzOgotICAgICAgICBkZWxldGUgc3RhdGljX2Nhc3Q8Q1NTSW5oZXJp
dGVkVmFsdWUqPih0aGlzKTsKKyAgICAgICAgZGVsZXRlIHRvQ1NTSW5oZXJpdGVkVmFsdWUodGhp
cyk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluaXRpYWxDbGFzczoKICAgICAgICAgZGVs
ZXRlIHRvQ1NTSW5pdGlhbFZhbHVlKHRoaXMpOwpAQCAtNDQzLDcgKzQ0Myw3IEBAIHZvaWQgQ1NT
VmFsdWU6OmRlc3Ryb3koKQogICAgICAgICBkZWxldGUgc3RhdGljX2Nhc3Q8Q1NTVW5pY29kZVJh
bmdlVmFsdWUqPih0aGlzKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVmFsdWVMaXN0Q2xh
c3M6Ci0gICAgICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih0aGlzKTsKKyAg
ICAgICAgZGVsZXRlIHRvQ1NTVmFsdWVMaXN0KHRoaXMpOwogICAgICAgICByZXR1cm47CiAgICAg
Y2FzZSBXZWJLaXRDU1NUcmFuc2Zvcm1DbGFzczoKICAgICAgICAgZGVsZXRlIHRvV2ViS2l0Q1NT
VHJhbnNmb3JtVmFsdWUodGhpcyk7CkBAIC00ODMsNyArNDgzLDcgQEAgdm9pZCBDU1NWYWx1ZTo6
ZGVzdHJveSgpCiAjZW5kaWYKICNpZiBFTkFCTEUoQ1NTX1ZBUklBQkxFUykKICAgICBjYXNlIFZh
cmlhYmxlQ2xhc3M6Ci0gICAgICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxDU1NWYXJpYWJsZVZhbHVl
Kj4odGhpcyk7CisgICAgICAgIGRlbGV0ZSB0b0NTU1ZhcmlhYmxlVmFsdWUodGhpcyk7CiAgICAg
ICAgIHJldHVybjsKICNlbmRpZgogI2lmIEVOQUJMRShTVkcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCmlu
ZGV4IDY4NDVhN2Y3Yzk3ZDA2ODhhMjQyOTI4ZmZlMzRjMjkzZGY1Mjg5ODQuLmJkNWMzZDFjNWM5
NzNmYjVlOTI5ZTM3NzJmODU2Y2I1ZGM0NGY4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCkBAIC03
NCw3ICs3NCw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzQ2FudmFzVmFsdWUoKSBjb25zdCB7IHJl
dHVybiBtX2NsYXNzVHlwZSA9PSBDYW52YXNDbGFzczsgfQogICAgIGJvb2wgaXNDcm9zc2ZhZGVW
YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IENyb3NzZmFkZUNsYXNzOyB9CiAg
ICAgYm9vbCBpc0N1cnNvckltYWdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9
PSBDdXJzb3JJbWFnZUNsYXNzOyB9CisgICAgYm9vbCBpc0Z1bmN0aW9uVmFsdWUoKSBjb25zdCB7
IHJldHVybiBtX2NsYXNzVHlwZSA9PSBGdW5jdGlvbkNsYXNzOyB9CiAgICAgYm9vbCBpc0ZvbnRG
ZWF0dXJlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBGb250RmVhdHVyZUNs
YXNzOyB9CisgICAgYm9vbCBpc0ZvbnRGYWNlU3JjVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2Ns
YXNzVHlwZSA9PSBGb250RmFjZVNyY0NsYXNzOyB9CiAgICAgYm9vbCBpc0ZvbnRWYWx1ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IEZvbnRDbGFzczsgfQogICAgIGJvb2wgaXNJbWFn
ZUdlbmVyYXRvclZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPj0gQ2FudmFzQ2xh
c3MgJiYgbV9jbGFzc1R5cGUgPD0gUmFkaWFsR3JhZGllbnRDbGFzczsgfQogICAgIGJvb2wgaXNH
cmFkaWVudFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPj0gTGluZWFyR3JhZGll
bnRDbGFzcyAmJiBtX2NsYXNzVHlwZSA8PSBSYWRpYWxHcmFkaWVudENsYXNzOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWVMaXN0LmgKaW5kZXggMmJkZDllNTZlYzhjNTczNGRlNTI1ZGVlZDk0OTg1Njgw
ZmQ1NzRjMi4uM2ZhNDFhNTVmMGU5MWRkMTY3N2M2MWNhY2Q3OWI3N2Y5NWY1NDkzMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUxpc3QuaApAQCAtODMsMTEgKzgzLDEzIEBAIHByaXZhdGU6CiAgICAg
VmVjdG9yPFJlZlB0cjxDU1NWYWx1ZT4sIDQ+IG1fdmFsdWVzOwogfTsKIAorQ1NTX1ZBTFVFX1RZ
UEVfQ0FTVFMoVmFsdWVMaXN0KQorCiAvLyBPYmplY3RzIG9mIHRoaXMgY2xhc3MgYXJlIGludGVu
ZGVkIHRvIGJlIHN0YWNrLWFsbG9jYXRlZCBhbmQgc2NvcGVkIHRvIGEgc2luZ2xlIGZ1bmN0aW9u
LgogLy8gUGxlYXNlIHRha2UgY2FyZSBub3QgdG8gcGFzcyB0aGVzZSBhcm91bmQgYXMgdGhleSBk
byBob2xkIG9udG8gYSByYXcgcG9pbnRlci4KIGNsYXNzIENTU1ZhbHVlTGlzdEluc3BlY3RvciB7
CiBwdWJsaWM6Ci0gICAgQ1NTVmFsdWVMaXN0SW5zcGVjdG9yKENTU1ZhbHVlKiB2YWx1ZSkgOiBt
X2xpc3QoKHZhbHVlICYmIHZhbHVlLT5pc1ZhbHVlTGlzdCgpKSA/IHN0YXRpY19jYXN0PENTU1Zh
bHVlTGlzdCo+KHZhbHVlKSA6IDApIHsgfQorICAgIENTU1ZhbHVlTGlzdEluc3BlY3RvcihDU1NW
YWx1ZSogdmFsdWUpIDogbV9saXN0KCh2YWx1ZSAmJiB2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkgPyB0
b0NTU1ZhbHVlTGlzdCh2YWx1ZSkgOiAwKSB7IH0KICAgICBDU1NWYWx1ZSogaXRlbShzaXplX3Qg
aW5kZXgpIGNvbnN0IHsgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaW5kZXggPCBs
ZW5ndGgoKSk7IHJldHVybiBtX2xpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soaW5kZXgpOyB9
CiAgICAgQ1NTVmFsdWUqIGZpcnN0KCkgY29uc3QgeyByZXR1cm4gaXRlbSgwKTsgfQogICAgIENT
U1ZhbHVlKiBzZWNvbmQoKSBjb25zdCB7IHJldHVybiBpdGVtKDEpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhcmlhYmxlVmFsdWUuaAppbmRleCBjODNjNmFiYzAxNjc2MTVmY2ViZDc0NDA2ZTgzNTcy
YjhkYjVkYzg5Li5lOTQxMDNhOGQ3MGRmY2VmMzhkMmZjOGI4MTE3MDU2MjZkYzUzZWE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVWYWx1ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJsZVZhbHVlLmgKQEAgLTYxLDYgKzYxLDggQEAgcHJpdmF0
ZToKICAgICBjb25zdCBTdHJpbmcgbV92YWx1ZTsKIH07CiAKK0NTU19WQUxVRV9UWVBFX0NBU1RT
KFZhcmlhYmxlVmFsdWUpCisKIH0KIAogI2VuZGlmIC8qIEVOQUJMRShDU1NfVkFSSUFCTEVTKSAq
LwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwCmluZGV4
IDk3YjNhMzlmYTdhZWRiZWYzZWQ5YmVmZmQ3MWNhNzE5ZmU3ZjMyYzUuLmI3ZDZiMGU5MDYwMDNi
MjA4YWU1MzRlZDYzOThmMDQzMzJhMzUyODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVw
cmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKQEAgLTU1Nyw3ICs1NTcsNyBAQCBwdWJsaWM6CiAjZW5k
aWYKICAgICAgICAgKSB7CiAgICAgICAgICAgICAvKiBXYWxrIGVhY2ggdmFsdWUgYW5kIHB1dCBp
dCBpbnRvIGEgbGF5ZXIsIGNyZWF0aW5nIG5ldyBsYXllcnMgYXMgbmVlZGVkLiAqLwotICAgICAg
ICAgICAgQ1NTVmFsdWVMaXN0KiB2YWx1ZUxpc3QgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3Qq
Pih2YWx1ZSk7CisgICAgICAgICAgICBDU1NWYWx1ZUxpc3QqIHZhbHVlTGlzdCA9IHRvQ1NTVmFs
dWVMaXN0KHZhbHVlKTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwg
dmFsdWVMaXN0LT5sZW5ndGgoKTsgaSsrKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFjdXJyQ2hp
bGQpIHsKICAgICAgICAgICAgICAgICAgICAgLyogTmVlZCB0byBtYWtlIGEgbmV3IGxheWVyIHRv
IGhvbGQgdGhpcyB2YWx1ZSAqLwpAQCAtOTU1LDcgKzk1NSw3IEBAIHB1YmxpYzoKICAgICAgICAg
Rm9udERlc2NyaXB0aW9uOjpMaWdhdHVyZXNTdGF0ZSBoaXN0b3JpY2FsTGlnYXR1cmVzU3RhdGUg
PSBGb250RGVzY3JpcHRpb246Ok5vcm1hbExpZ2F0dXJlc1N0YXRlOwogCiAgICAgICAgIGlmICh2
YWx1ZS0+aXNWYWx1ZUxpc3QoKSkgewotICAgICAgICAgICAgQ1NTVmFsdWVMaXN0KiB2YWx1ZUxp
c3QgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih2YWx1ZSk7CisgICAgICAgICAgICBDU1NW
YWx1ZUxpc3QqIHZhbHVlTGlzdCA9IHRvQ1NTVmFsdWVMaXN0KHZhbHVlKTsKICAgICAgICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVMaXN0LT5sZW5ndGgoKTsgKytpKSB7CiAgICAg
ICAgICAgICAgICAgQ1NTVmFsdWUqIGl0ZW0gPSB2YWx1ZUxpc3QtPml0ZW1XaXRob3V0Qm91bmRz
Q2hlY2soaSk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKGl0ZW0tPmlzUHJpbWl0aXZlVmFsdWUo
KSk7CkBAIC0xMTU1LDcgKzExNTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChzZXRDb3VudGVy
SW5jcmVtZW50VG9Ob25lKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAKLSAgICAgICAg
Q1NTVmFsdWVMaXN0KiBsaXN0ID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpOwor
ICAgICAgICBDU1NWYWx1ZUxpc3QqIGxpc3QgPSB0b0NTU1ZhbHVlTGlzdCh2YWx1ZSk7CiAgICAg
ICAgIGludCBsZW5ndGggPSBsaXN0ID8gbGlzdC0+bGVuZ3RoKCkgOiAwOwogICAgICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICBDU1NWYWx1ZSogY3Vy
clZhbHVlID0gbGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjayhpKTsKQEAgLTExOTgsNyArMTE5
OCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPmNs
ZWFyQ3Vyc29yTGlzdCgpOwogICAgICAgICBpZiAodmFsdWUtPmlzVmFsdWVMaXN0KCkpIHsKLSAg
ICAgICAgICAgIENTU1ZhbHVlTGlzdCogbGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+
KHZhbHVlKTsKKyAgICAgICAgICAgIENTU1ZhbHVlTGlzdCogbGlzdCA9IHRvQ1NTVmFsdWVMaXN0
KHZhbHVlKTsKICAgICAgICAgICAgIGludCBsZW4gPSBsaXN0LT5sZW5ndGgoKTsKICAgICAgICAg
ICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldEN1cnNvcihDVVJTT1JfQVVUTyk7CiAgICAg
ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7CkBAIC0xNjUwLDcgKzE2NTAs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgYXBwbHlWYWx1ZShDU1NQcm9wZXJ0eUlELCBT
dHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgewogICAg
ICAgICBpZiAodmFsdWUtPmlzVmFsdWVMaXN0KCkpIHsKLSAgICAgICAgICAgIENTU1ZhbHVlTGlz
dCogbGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKTsKKyAgICAgICAgICAg
IENTU1ZhbHVlTGlzdCogbGlzdCA9IHRvQ1NTVmFsdWVMaXN0KHZhbHVlKTsKICAgICAgICAgICAg
IEFTU0VSVChsaXN0LT5sZW5ndGgoKSA9PSAyKTsKICAgICAgICAgICAgIGlmIChsaXN0LT5sZW5n
dGgoKSAhPSAyKQogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTE4NjksNyArMTg2OSw3IEBA
IHB1YmxpYzoKICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldEhhc0FzcGVj
dFJhdGlvKGZhbHNlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBD
U1NBc3BlY3RSYXRpb1ZhbHVlKiBhc3BlY3RSYXRpb1ZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTQXNw
ZWN0UmF0aW9WYWx1ZSo+KHZhbHVlKTsKKyAgICAgICAgQ1NTQXNwZWN0UmF0aW9WYWx1ZSogYXNw
ZWN0UmF0aW9WYWx1ZSA9IHRvQ1NTQXNwZWN0UmF0aW9WYWx1ZSh2YWx1ZSk7CiAgICAgICAgIHN0
eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldEhhc0FzcGVjdFJhdGlvKHRydWUpOwogICAgICAgICBz
dHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRBc3BlY3RSYXRpb0Rlbm9taW5hdG9yKGFzcGVjdFJh
dGlvVmFsdWUtPmRlbm9taW5hdG9yVmFsdWUoKSk7CiAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0
eWxlKCktPnNldEFzcGVjdFJhdGlvTnVtZXJhdG9yKGFzcGVjdFJhdGlvVmFsdWUtPm51bWVyYXRv
clZhbHVlKCkpOwpAQCAtMjA2Myw3ICsyMDYzLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAg
aWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
Q1NTVmFsdWVMaXN0KiB2YWx1ZUxpc3QgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih2YWx1
ZSk7CisgICAgICAgIENTU1ZhbHVlTGlzdCogdmFsdWVMaXN0ID0gdG9DU1NWYWx1ZUxpc3QodmFs
dWUpOwogICAgICAgICBJbWFnZVJlc29sdXRpb25Tb3VyY2Ugc291cmNlID0gUmVuZGVyU3R5bGU6
OmluaXRpYWxJbWFnZVJlc29sdXRpb25Tb3VyY2UoKTsKICAgICAgICAgSW1hZ2VSZXNvbHV0aW9u
U25hcCBzbmFwID0gUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFnZVJlc29sdXRpb25TbmFwKCk7CiAg
ICAgICAgIGRvdWJsZSByZXNvbHV0aW9uID0gUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFnZVJlc29s
dXRpb24oKTsKQEAgLTIxMjEsNyArMjEyMSw3IEBAIHB1YmxpYzoKICAgICAgICAgVGV4dEluZGVu
dExpbmUgdGV4dEluZGVudExpbmVWYWx1ZSA9IFJlbmRlclN0eWxlOjppbml0aWFsVGV4dEluZGVu
dExpbmUoKTsKICAgICAgICAgVGV4dEluZGVudFR5cGUgdGV4dEluZGVudFR5cGVWYWx1ZSA9IFJl
bmRlclN0eWxlOjppbml0aWFsVGV4dEluZGVudFR5cGUoKTsKICNlbmRpZgotICAgICAgICBDU1NW
YWx1ZUxpc3QqIHZhbHVlTGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKTsK
KyAgICAgICAgQ1NTVmFsdWVMaXN0KiB2YWx1ZUxpc3QgPSB0b0NTU1ZhbHVlTGlzdCh2YWx1ZSk7
CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVMaXN0LT5sZW5ndGgoKTsgKytp
KSB7CiAgICAgICAgICAgICBDU1NWYWx1ZSogaXRlbSA9IHZhbHVlTGlzdC0+aXRlbVdpdGhvdXRC
b3VuZHNDaGVjayhpKTsKICAgICAgICAgICAgIGlmICghaXRlbS0+aXNQcmltaXRpdmVWYWx1ZSgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IGJiODEw
Y2VhNTUzODU0MGUzY2E3OGI3NTc4ODdhNGY3YzM3NTFmMzYuLmIzNjJiMGY2NDYxYjFjYjAzZDQ3
ZDUyNDQ0NWI0NmQ5MGM4YjE5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2
YWx1YXRvci5jcHAKQEAgLTE4Miw3ICsxODIsNyBAQCBib29sIGNvbXBhcmVWYWx1ZShUIGEsIFQg
YiwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQogc3RhdGljIGJvb2wgY29tcGFyZUFzcGVjdFJhdGlv
VmFsdWUoQ1NTVmFsdWUqIHZhbHVlLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIE1lZGlhRmVhdHVy
ZVByZWZpeCBvcCkKIHsKICAgICBpZiAodmFsdWUtPmlzQXNwZWN0UmF0aW9WYWx1ZSgpKSB7Ci0g
ICAgICAgIENTU0FzcGVjdFJhdGlvVmFsdWUqIGFzcGVjdFJhdGlvID0gc3RhdGljX2Nhc3Q8Q1NT
QXNwZWN0UmF0aW9WYWx1ZSo+KHZhbHVlKTsKKyAgICAgICAgQ1NTQXNwZWN0UmF0aW9WYWx1ZSog
YXNwZWN0UmF0aW8gPSB0b0NTU0FzcGVjdFJhdGlvVmFsdWUodmFsdWUpOwogICAgICAgICByZXR1
cm4gY29tcGFyZVZhbHVlKHdpZHRoICogc3RhdGljX2Nhc3Q8aW50Pihhc3BlY3RSYXRpby0+ZGVu
b21pbmF0b3JWYWx1ZSgpKSwgaGVpZ2h0ICogc3RhdGljX2Nhc3Q8aW50Pihhc3BlY3RSYXRpby0+
bnVtZXJhdG9yVmFsdWUoKSksIG9wKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdD
U1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCBhMTFlYjJhOTQxZWQ1ZjcxNDU5ZmNkODVhZWNjNmYz
YTFmNTZlZjkxLi4xZGIzOGYxYzkxZjYwZWQ1Mjg3MGM5OTQ3MDM1ZDVlMmQ5ZGRmYTJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0yNzYsNyArMjc2
LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVNWR1Byb3BlcnR5KENTU1Byb3BlcnR5SUQg
aWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IH0KIAotICAgICAgICAgICAgQ1NTVmFsdWVMaXN0KiBkYXNoZXMgPSBzdGF0aWNfY2FzdDxDU1NW
YWx1ZUxpc3QqPih2YWx1ZSk7CisgICAgICAgICAgICBDU1NWYWx1ZUxpc3QqIGRhc2hlcyA9IHRv
Q1NTVmFsdWVMaXN0KHZhbHVlKTsKIAogICAgICAgICAgICAgVmVjdG9yPFNWR0xlbmd0aD4gYXJy
YXk7CiAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoID0gZGFzaGVzLT5sZW5ndGgoKTsKQEAgLTU1
Nyw3ICs1NTcsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5U1ZHUHJvcGVydHkoQ1NTUHJv
cGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICAgICAgaWYgKCF2YWx1ZS0+aXNW
YWx1ZUxpc3QoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIENTU1Zh
bHVlTGlzdCAqbGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKTsKKyAgICAg
ICAgICAgIENTU1ZhbHVlTGlzdCogbGlzdCA9IHRvQ1NTVmFsdWVMaXN0KHZhbHVlKTsKICAgICAg
ICAgICAgIGlmICghbGlzdC0+bGVuZ3RoKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKaW5kZXggYzI4NzkwZThmYjI5OTJl
MjU0NjZhNzY3MmRkMGE2ODU0NDliMTMzYy4uZGQwYWI3Mzc1Njc1OWIyNDBiZTk4NTdhZmM3NDNi
OTczODZhM2IwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlT
ZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcApAQCAt
MzY2LDEwICszNjYsOSBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0eVNldDo6Z2V0TGF5ZXJlZFNob3J0
aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmCiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICB2YWx1ZXNbaV0gPSBnZXRQcm9wZXJ0
eUNTU1ZhbHVlKHNob3J0aGFuZC5wcm9wZXJ0aWVzKClbaV0pOwogICAgICAgICBpZiAodmFsdWVz
W2ldKSB7Ci0gICAgICAgICAgICBpZiAodmFsdWVzW2ldLT5pc0Jhc2VWYWx1ZUxpc3QoKSkgewot
ICAgICAgICAgICAgICAgIENTU1ZhbHVlTGlzdCogdmFsdWVMaXN0ID0gc3RhdGljX2Nhc3Q8Q1NT
VmFsdWVMaXN0Kj4odmFsdWVzW2ldLmdldCgpKTsKLSAgICAgICAgICAgICAgICBudW1MYXllcnMg
PSBtYXgodmFsdWVMaXN0LT5sZW5ndGgoKSwgbnVtTGF5ZXJzKTsKLSAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgaWYgKHZhbHVlc1tpXS0+aXNCYXNlVmFsdWVMaXN0KCkpCisgICAgICAg
ICAgICAgICAgbnVtTGF5ZXJzID0gbWF4KHRvQ1NTVmFsdWVMaXN0KHZhbHVlc1tpXS5nZXQoKSkt
Pmxlbmd0aCgpLCBudW1MYXllcnMpOworICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IG51bUxheWVycyA9IG1heDxzaXplX3Q+KDFVLCBudW1MYXllcnMpOwogICAgICAgICB9CiAgICAg
fQpAQCAtMzg5LDcgKzM4OCw3IEBAIFN0cmluZyBTdHlsZVByb3BlcnR5U2V0OjpnZXRMYXllcmVk
U2hvcnRoYW5kVmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYKICAgICAgICAgICAg
IFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWU7CiAgICAgICAgICAgICBpZiAodmFsdWVzW2pdKSB7CiAg
ICAgICAgICAgICAgICAgaWYgKHZhbHVlc1tqXS0+aXNCYXNlVmFsdWVMaXN0KCkpCi0gICAgICAg
ICAgICAgICAgICAgIHZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWVzW2pd
LmdldCgpKS0+aXRlbShpKTsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB0b0NTU1ZhbHVl
TGlzdCh2YWx1ZXNbal0uZ2V0KCkpLT5pdGVtKGkpOwogICAgICAgICAgICAgICAgIGVsc2Ugewog
ICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlc1tqXTsKIApAQCAtNDE0LDcgKzQxMyw3
IEBAIFN0cmluZyBTdHlsZVByb3BlcnR5U2V0OjpnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUoY29u
c3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYKICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPENT
U1ZhbHVlPiB5VmFsdWU7CiAgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gbmV4
dFZhbHVlID0gdmFsdWVzW2ogKyAxXTsKICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRWYWx1
ZS0+aXNWYWx1ZUxpc3QoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHlWYWx1ZSA9IHN0YXRp
Y19jYXN0PENTU1ZhbHVlTGlzdCo+KG5leHRWYWx1ZS5nZXQoKSktPml0ZW1XaXRob3V0Qm91bmRz
Q2hlY2soaSk7CisgICAgICAgICAgICAgICAgICAgICAgICB5VmFsdWUgPSB0b0NTU1ZhbHVlTGlz
dChuZXh0VmFsdWUuZ2V0KCkpLT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKGkpOwogICAgICAgICAg
ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICB5VmFsdWUgPSBuZXh0VmFs
dWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBkYjFjOTYyM2Y3MmI4
MTZlODAyMmYwZjJhZjQwZTk4M2JjZmYwYjdiLi4wOTk5ZmE0MDljYjZmMDBjNTQ4ZGQ5YzQ0MjQ5
MmUyZDY3NWJkYTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xOTgy
LDggKzE5ODIsNyBAQCBzdGF0aWMgYm9vbCBjcmVhdGVHcmlkUG9zaXRpb24oQ1NTVmFsdWUqIHZh
bHVlLCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTih2YWx1ZS0+aXNWYWx1ZUxp
c3QoKSk7Ci0gICAgQ1NTVmFsdWVMaXN0KiB2YWx1ZXMgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxp
c3QqPih2YWx1ZSk7CisgICAgQ1NTVmFsdWVMaXN0KiB2YWx1ZXMgPSB0b0NTU1ZhbHVlTGlzdCh2
YWx1ZSk7CiAgICAgQVNTRVJUKHZhbHVlcy0+bGVuZ3RoKCkpOwogCiAgICAgYm9vbCBpc1NwYW5Q
b3NpdGlvbiA9IGZhbHNlOwpAQCAtMjEwMCw4ICsyMDk5LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVy
OjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKIAogI2lm
IEVOQUJMRShDU1NfVkFSSUFCTEVTKQogICAgIGlmIChpZCA9PSBDU1NQcm9wZXJ0eVZhcmlhYmxl
KSB7Ci0gICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHZhbHVlLT5pc1Zh
cmlhYmxlVmFsdWUoKSk7Ci0gICAgICAgIENTU1ZhcmlhYmxlVmFsdWUqIHZhcmlhYmxlID0gc3Rh
dGljX2Nhc3Q8Q1NTVmFyaWFibGVWYWx1ZSo+KHZhbHVlKTsKKyAgICAgICAgQ1NTVmFyaWFibGVW
YWx1ZSogdmFyaWFibGUgPSB0b0NTU1ZhcmlhYmxlVmFsdWUodmFsdWUpOwogICAgICAgICBBU1NF
UlQoIXZhcmlhYmxlLT5uYW1lKCkuaXNFbXB0eSgpKTsKICAgICAgICAgQVNTRVJUKCF2YXJpYWJs
ZS0+dmFsdWUoKS5pc0VtcHR5KCkpOwogICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRWYXJpYWJs
ZSh2YXJpYWJsZS0+bmFtZSgpLCB2YXJpYWJsZS0+dmFsdWUoKSk7CkBAIC0yMjMyLDcgKzIyMzAs
NyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwg
Q1NTVmFsdWUqIHZhbHVlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAg
IGlmICh2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkgewotICAgICAgICAgICAgQ1NTVmFsdWVMaXN0KiBs
aXN0ID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpOworICAgICAgICAgICAgQ1NT
VmFsdWVMaXN0KiBsaXN0ID0gdG9DU1NWYWx1ZUxpc3QodmFsdWUpOwogICAgICAgICAgICAgVmVj
dG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4gPiBxdW90ZXM7CiAgICAgICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGxpc3QtPmxlbmd0aCgpOyBpICs9IDIpIHsKICAgICAgICAgICAg
ICAgICBDU1NWYWx1ZSogZmlyc3QgPSBsaXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKGkpOwpA
QCAtMjcwMSw3ICsyNjk5LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENT
U1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgICAgIHJldHVybjsKIAog
ICAgICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uID0gc3RhdGUuc3R5bGUoKS0+
Zm9udERlc2NyaXB0aW9uKCk7Ci0gICAgICAgIENTU1ZhbHVlTGlzdCogbGlzdCA9IHN0YXRpY19j
YXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKTsKKyAgICAgICAgQ1NTVmFsdWVMaXN0KiBsaXN0ID0g
dG9DU1NWYWx1ZUxpc3QodmFsdWUpOwogICAgICAgICBSZWZQdHI8Rm9udEZlYXR1cmVTZXR0aW5n
cz4gc2V0dGluZ3MgPSBGb250RmVhdHVyZVNldHRpbmdzOjpjcmVhdGUoKTsKICAgICAgICAgaW50
IGxlbiA9IGxpc3QtPmxlbmd0aCgpOwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsg
KytpKSB7CkBAIC0zNTI2LDcgKzM1MjQsNyBAQCBQYXNzUmVmUHRyPEN1c3RvbUZpbHRlclBhcmFt
ZXRlcj4gU3R5bGVSZXNvbHZlcjo6cGFyc2VDdXN0b21GaWx0ZXJQYXJhbWV0ZXIoY29ucwogICAg
IGlmICghcGFyYW1ldGVyVmFsdWUtPmlzVmFsdWVMaXN0KCkpCiAgICAgICAgIHJldHVybiAwOwog
Ci0gICAgQ1NTVmFsdWVMaXN0KiB2YWx1ZXMgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPihw
YXJhbWV0ZXJWYWx1ZSk7CisgICAgQ1NTVmFsdWVMaXN0KiB2YWx1ZXMgPSB0b0NTU1ZhbHVlTGlz
dChwYXJhbWV0ZXJWYWx1ZSk7CiAgICAgaWYgKCF2YWx1ZXMtPmxlbmd0aCgpKQogICAgICAgICBy
ZXR1cm4gMDsKIApAQCAtMzYwNiw3ICszNjA0LDcgQEAgUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJP
cGVyYXRpb24+IFN0eWxlUmVzb2x2ZXI6OmNyZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlvbldpdGgK
IHsKICAgICBDU1NWYWx1ZSogc2hhZGVyc1ZhbHVlID0gZmlsdGVyVmFsdWUtPml0ZW1XaXRob3V0
Qm91bmRzQ2hlY2soMCk7CiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oc2hh
ZGVyc1ZhbHVlLT5pc1ZhbHVlTGlzdCgpKTsKLSAgICBDU1NWYWx1ZUxpc3QqIHNoYWRlcnNMaXN0
ID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4oc2hhZGVyc1ZhbHVlKTsKKyAgICBDU1NWYWx1
ZUxpc3QqIHNoYWRlcnNMaXN0ID0gdG9DU1NWYWx1ZUxpc3Qoc2hhZGVyc1ZhbHVlKTsKIAogICAg
IHVuc2lnbmVkIHNoYWRlcnNMaXN0TGVuZ3RoID0gc2hhZGVyc0xpc3QtPmxlbmd0aCgpOwogICAg
IEFTU0VSVChzaGFkZXJzTGlzdExlbmd0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdT
dHlsZS5jcHAKaW5kZXggMmZiMmYyZGJlMjE0NzRhOWE3Y2YyODBmMTQ0Y2JjZDZlZDM3NjQ4Mi4u
YThhMjdlZTRhNzk0OTQyMmYyOTNlMWY4OTVmZWFhZDVkZjMyOTNmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcApAQCAtMjM4LDcgKzIzOCw3IEBAIGJvb2wgSFRNTFRl
eHREZWNvcmF0aW9uRXF1aXZhbGVudDo6dmFsdWVJc1ByZXNlbnRJblN0eWxlKEVsZW1lbnQqIGVs
ZW1lbnQsIFN0eWxlCiAgICAgUmVmUHRyPENTU1ZhbHVlPiBzdHlsZVZhbHVlID0gc3R5bGUtPmdl
dFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVj
dCk7CiAgICAgaWYgKCFzdHlsZVZhbHVlKQogICAgICAgICBzdHlsZVZhbHVlID0gc3R5bGUtPmdl
dFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlUZXh0RGVjb3JhdGlvbik7Ci0gICAgcmV0dXJu
IG1hdGNoZXMoZWxlbWVudCkgJiYgc3R5bGVWYWx1ZSAmJiBzdHlsZVZhbHVlLT5pc1ZhbHVlTGlz
dCgpICYmIHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHN0eWxlVmFsdWUuZ2V0KCkpLT5oYXNW
YWx1ZShtX3ByaW1pdGl2ZVZhbHVlLmdldCgpKTsKKyAgICByZXR1cm4gbWF0Y2hlcyhlbGVtZW50
KSAmJiBzdHlsZVZhbHVlICYmIHN0eWxlVmFsdWUtPmlzVmFsdWVMaXN0KCkgJiYgdG9DU1NWYWx1
ZUxpc3Qoc3R5bGVWYWx1ZS5nZXQoKSktPmhhc1ZhbHVlKG1fcHJpbWl0aXZlVmFsdWUuZ2V0KCkp
OwogfQogCiBjbGFzcyBIVE1MQXR0cmlidXRlRXF1aXZhbGVudCA6IHB1YmxpYyBIVE1MRWxlbWVu
dEVxdWl2YWxlbnQgewpAQCAtMTA5Miw3ICsxMDkyLDcgQEAgdm9pZCBFZGl0aW5nU3R5bGU6Om1l
cmdlU3R5bGUoY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUsIENTU1Byb3BlcnR5T3ZlcnJp
ZGUKICAgICAgICAgLy8gdGV4dCBkZWNvcmF0aW9ucyBuZXZlciBvdmVycmlkZSB2YWx1ZXMKICAg
ICAgICAgaWYgKChwcm9wZXJ0eS5pZCgpID09IENTU1Byb3BlcnR5VGV4dERlY29yYXRpb24gfHwg
cHJvcGVydHkuaWQoKSA9PSBDU1NQcm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uc0luRWZmZWN0
KSAmJiBwcm9wZXJ0eS52YWx1ZSgpLT5pc1ZhbHVlTGlzdCgpICYmIHZhbHVlKSB7CiAgICAgICAg
ICAgICBpZiAodmFsdWUtPmlzVmFsdWVMaXN0KCkpIHsKLSAgICAgICAgICAgICAgICBtZXJnZVRl
eHREZWNvcmF0aW9uVmFsdWVzKHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlLmdldCgp
KSwgc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4ocHJvcGVydHkudmFsdWUoKSkpOworICAgICAg
ICAgICAgICAgIG1lcmdlVGV4dERlY29yYXRpb25WYWx1ZXModG9DU1NWYWx1ZUxpc3QodmFsdWUu
Z2V0KCkpLCB0b0NTU1ZhbHVlTGlzdChwcm9wZXJ0eS52YWx1ZSgpKSk7CiAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB2YWx1ZSA9IDA7IC8vIHRl
eHQtZGVjb3JhdGlvbjogbm9uZSBpcyBlcXVpdmFsZW50IHRvIG5vdCBoYXZpbmcgdGhlIHByb3Bl
cnR5CkBAIC0xNDMyLDcgKzE0MzIsNyBAQCB2b2lkIFN0eWxlQ2hhbmdlOjpleHRyYWN0VGV4dFN0
eWxlcyhEb2N1bWVudCogZG9jdW1lbnQsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KgogICAgICAg
ICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHVuZGVybGluZSA9IGNzc1ZhbHVlUG9vbCgpLmNy
ZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZVVuZGVybGluZSk7CiAgICAgICAgIFJlZlB0cjxD
U1NQcmltaXRpdmVWYWx1ZT4gbGluZVRocm91Z2ggPSBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVu
dGlmaWVyVmFsdWUoQ1NTVmFsdWVMaW5lVGhyb3VnaCk7CiAKLSAgICAgICAgUmVmUHRyPENTU1Zh
bHVlTGlzdD4gbmV3VGV4dERlY29yYXRpb24gPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih0
ZXh0RGVjb3JhdGlvbi5nZXQoKSktPmNvcHkoKTsKKyAgICAgICAgUmVmUHRyPENTU1ZhbHVlTGlz
dD4gbmV3VGV4dERlY29yYXRpb24gPSB0b0NTU1ZhbHVlTGlzdCh0ZXh0RGVjb3JhdGlvbi5nZXQo
KSktPmNvcHkoKTsKICAgICAgICAgaWYgKG5ld1RleHREZWNvcmF0aW9uLT5yZW1vdmVBbGwodW5k
ZXJsaW5lLmdldCgpKSkKICAgICAgICAgICAgIG1fYXBwbHlVbmRlcmxpbmUgPSB0cnVlOwogICAg
ICAgICBpZiAobmV3VGV4dERlY29yYXRpb24tPnJlbW92ZUFsbChsaW5lVGhyb3VnaC5nZXQoKSkp
CkBAIC0xNDgxLDggKzE0ODEsOCBAQCBzdGF0aWMgdm9pZCBkaWZmVGV4dERlY29yYXRpb25zKE11
dGFibGVTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSwgQ1NTUHJvcGVydHlJRCBwcgogICAgIGlmICgh
dGV4dERlY29yYXRpb24gfHwgIXRleHREZWNvcmF0aW9uLT5pc1ZhbHVlTGlzdCgpIHx8ICFyZWZU
ZXh0RGVjb3JhdGlvbiB8fCAhcmVmVGV4dERlY29yYXRpb24tPmlzVmFsdWVMaXN0KCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IG5ld1RleHREZWNvcmF0aW9u
ID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odGV4dERlY29yYXRpb24uZ2V0KCkpLT5jb3B5
KCk7Ci0gICAgQ1NTVmFsdWVMaXN0KiB2YWx1ZXNJblJlZlRleHREZWNvcmF0aW9uID0gc3RhdGlj
X2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4ocmVmVGV4dERlY29yYXRpb24pOworICAgIFJlZlB0cjxDU1NW
YWx1ZUxpc3Q+IG5ld1RleHREZWNvcmF0aW9uID0gdG9DU1NWYWx1ZUxpc3QodGV4dERlY29yYXRp
b24uZ2V0KCkpLT5jb3B5KCk7CisgICAgQ1NTVmFsdWVMaXN0KiB2YWx1ZXNJblJlZlRleHREZWNv
cmF0aW9uID0gdG9DU1NWYWx1ZUxpc3QocmVmVGV4dERlY29yYXRpb24pOwogCiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCB2YWx1ZXNJblJlZlRleHREZWNvcmF0aW9uLT5sZW5ndGgoKTsgaSsr
KQogICAgICAgICBuZXdUZXh0RGVjb3JhdGlvbi0+cmVtb3ZlQWxsKHZhbHVlc0luUmVmVGV4dERl
Y29yYXRpb24tPml0ZW0oaSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5j
cHAKaW5kZXggNmMwNzY5OTk5ZjVhNmY3MmNkZTUwM2I1NTBlZjY0MGM4NjU2YTZlNS4uNTEzNWY0
MmU3OGI2MDg0YzU0ZmNlYjI0MTFmYjQ4ZWVkMWFjZDM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgc3RhdGljIGJvb2wgZXhl
Y3V0ZVRvZ2dsZVN0eWxlSW5MaXN0KEZyYW1lJiBmcmFtZSwgRWRpdG9yQ29tbWFuZFNvdXJjZSBz
b3VyY2UsIEUKICAgICBSZWZQdHI8Q1NTVmFsdWU+IHNlbGVjdGVkQ1NTVmFsdWUgPSBzZWxlY3Rp
b25TdHlsZS0+c3R5bGUoKS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eUlEKTsKICAgICBT
dHJpbmcgbmV3U3R5bGUgPSBBU0NJSUxpdGVyYWwoIm5vbmUiKTsKICAgICBpZiAoc2VsZWN0ZWRD
U1NWYWx1ZS0+aXNWYWx1ZUxpc3QoKSkgewotICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBz
ZWxlY3RlZENTU1ZhbHVlTGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHNlbGVjdGVk
Q1NTVmFsdWUuZ2V0KCkpOworICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBzZWxlY3RlZENT
U1ZhbHVlTGlzdCA9IHRvQ1NTVmFsdWVMaXN0KHNlbGVjdGVkQ1NTVmFsdWUuZ2V0KCkpOwogICAg
ICAgICBpZiAoIXNlbGVjdGVkQ1NTVmFsdWVMaXN0LT5yZW1vdmVBbGwodmFsdWUpKQogICAgICAg
ICAgICAgc2VsZWN0ZWRDU1NWYWx1ZUxpc3QtPmFwcGVuZCh2YWx1ZSk7CiAgICAgICAgIGlmIChz
ZWxlY3RlZENTU1ZhbHVlTGlzdC0+bGVuZ3RoKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250
RmFjZUVsZW1lbnQuY3BwCmluZGV4IDdhMmZkM2IyMjUzMTc0ZmMwZDg0MTdkNTdlZjdjYzUxZmRh
ZmMxYTkuLjQ0YjgzYTAyM2M4YjFjNTllYmMxNGRjZTU0Y2IyNjEzYWZlYjhhNjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCkBAIC0yNTMsMTEgKzI1MywxMSBA
QCB2b2lkIFNWR0ZvbnRGYWNlRWxlbWVudDo6cmVidWlsZEZvbnRGYWNlKCkKICAgICBpZiAoZGVz
Y3JpYmVzUGFyZW50Rm9udCkgeyAgICAKICAgICAgICAgLy8gVHJhdmVyc2UgcGFyc2VkIENTUyB2
YWx1ZXMgYW5kIGFzc29jaWF0ZSBDU1NGb250RmFjZVNyY1ZhbHVlIGVsZW1lbnRzIHdpdGggb3Vy
c2VsdmVzLgogICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IHNyYyA9IG1fZm9udEZhY2VSdWxlLT5w
cm9wZXJ0aWVzKCkuZ2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eVNyYyk7Ci0gICAgICAg
IENTU1ZhbHVlTGlzdCogc3JjTGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHNyYy5n
ZXQoKSk7CisgICAgICAgIENTU1ZhbHVlTGlzdCogc3JjTGlzdCA9IHRvQ1NTVmFsdWVMaXN0KHNy
Yy5nZXQoKSk7CiAKICAgICAgICAgdW5zaWduZWQgc3JjTGVuZ3RoID0gc3JjTGlzdCA/IHNyY0xp
c3QtPmxlbmd0aCgpIDogMDsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNyY0xl
bmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBpZiAoQ1NTRm9udEZhY2VTcmNWYWx1ZSogaXRlbSA9
IHN0YXRpY19jYXN0PENTU0ZvbnRGYWNlU3JjVmFsdWUqPihzcmNMaXN0LT5pdGVtV2l0aG91dEJv
dW5kc0NoZWNrKGkpKSkKKyAgICAgICAgICAgIGlmIChDU1NGb250RmFjZVNyY1ZhbHVlKiBpdGVt
ID0gdG9DU1NGb250RmFjZVNyY1ZhbHVlKHNyY0xpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2so
aSkpKQogICAgICAgICAgICAgICAgIGl0ZW0tPnNldFNWR0ZvbnRGYWNlRWxlbWVudCh0aGlzKTsK
ICAgICAgICAgfQogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>