<?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>191179</bug_id>
          
          <creation_ts>2018-11-01 20:43:29 -0700</creation_ts>
          <short_desc>[LFC] Align shrink-to-fit width computation with the layout implementation.</short_desc>
          <delta_ts>2018-11-02 06:42:21 -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>Layout and Rendering</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1474386</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-11-01 20:43:29 -0700</bug_when>
    <thetext>The idea of &quot;shrink to width&quot; is very similar to layout. let&apos;s align them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474391</commentid>
    <comment_count>1</comment_count>
      <attachid>353677</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-11-01 21:12:48 -0700</bug_when>
    <thetext>Created attachment 353677
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474462</commentid>
    <comment_count>2</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-11-02 06:41:12 -0700</bug_when>
    <thetext>Committed r237729: &lt;https://trac.webkit.org/changeset/237729&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474463</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-02 06:42:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/45760797&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353677</attachid>
            <date>2018-11-01 21:12:48 -0700</date>
            <delta_ts>2018-11-02 06:25:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191179-20181101211245.patch</filename>
            <type>text/plain</type>
            <size>25914</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3NzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjRmYjFhOWYyYTFlNGQ4
NDQ3YzYwZTgxNjFlZmY2MzVhYjVlYjdlOC4uYzg1YmU5MWExZDAzYzAwNmFjMDgzMDM3OGJhZTE5
MzZiNjhkZTExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE4LTExLTAxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gQWxpZ24gc2hyaW5r
LXRvLWZpdCB3aWR0aCBjb21wdXRhdGlvbiB3aXRoIHRoZSBsYXlvdXQgaW1wbGVtZW50YXRpb24u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTExNzkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSBh
cmUgbWFueSBzaW1pbGFyaXRpZXMgYmV0d2VlbiBsYXlvdXQgYW5kIHNocmluay10by1maXQuCisg
ICAgICAgIFRoZXkgYm90aCBvcGVyYXRlIG9uIGZvcm1hdHRpbmcgcm9vdHMgb25seSAoc2hyaW5r
LXRvLWZpdCAtPiBmbG9hdCwgb3V0LW9mLWZsb3csIGlubGluZS1ibG9jaykgYW5kIGluIGJvdGgg
Y2FzZXMKKyAgICAgICAgdGhlIGFsZ29yaXRtIGRlcGVuZHMgb24gd2hhdCB0eXBlIG9mIGZvcm1h
dHRpbmcgY29udGV4dCB0aGUgZWxlbWVudCBlc3RhYmxpc2hlcy4KKworICAgICAgICBUaGlzIHBh
dGNoIGlzIGluIHByZXBhcmF0aW9uIGZvciB0cmFuc2Zvcm1pbmcgdGhlICJzaHJpbmstdG8tZml0
IiB3aWR0aCBjb21wdXRhdGlvbiB0byBtYWtlIGl0IGJlaGF2ZSBtb3JlIGxpa2UgbGF5b3V0Lgor
ICAgICAgICBXaXRoIHRoaXMgY2hhbmdlIHRoZSBpbnN0cmluc2ljV2lkdGhDb25zdHJhaW50cygp
IGNvbXB1dGF0aW9uIGhhcHBlbnMgaW4gdGhlIGZvcm1hdHRpbmcgY29udGV4dCB0aGF0IHRoZSBl
bGVtZW50IGVzdGFibGlzaGVzIChzaW1pbGFyIHRvIGxheW91dCkuCisKKyAgICAgICAgKiBsYXlv
dXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3Jt
YXR0aW5nQ29udGV4dDo6Y29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeSBjb25zdCk6
CisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93SG9yaXpvbnRh
bEdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6
Okdlb21ldHJ5OjpmbG9hdGluZ1dpZHRoQW5kTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dOb25SZXBsYWNlZEhv
cml6b250YWxHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdD
b250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luKToKKyAg
ICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6c2hyaW5rVG9GaXRX
aWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9t
ZXRyeTo6b3V0T2ZGbG93Tm9uUmVwbGFjZWRIb3Jpem9udGFsR2VvbWV0cnkpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nTm9u
UmVwbGFjZWRXaWR0aEFuZE1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9h
dGluZ1dpZHRoQW5kTWFyZ2luKToKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Js
b2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlV2lkdGhBbmRNYXJnaW4gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjppbnN0cmluc2ljV2lk
dGhDb25zdHJhaW50cyBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9C
bG9ja0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6
Omluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oOgorICAgICAgICAqIGxheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0
cnk6OmlubGluZUJsb2NrV2lkdGhBbmRNYXJnaW4pOgorCiAyMDE4LTExLTAxICBGdWppaSBIaXJv
bm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFJlbmFtZSA8d3RmL3Vu
aWNvZGUvVVRGOC5oPiB0byA8d3RmL3VuaWNvZGUvVVRGOENvbnZlcnNpb24uaD4gaW4gb3JkZXIg
dG8gYXZvaWQgY29uZmxpY3Rpbmcgd2l0aCBJQ1UncyB1bmljb2RlL3V0ZjguaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggNGEzM2RmOTUyZjA0YWUx
MjhhMjkzNDBkZGM0YTYxMjlkNmE2Yjk5MC4uOWE3MDk0YTMzMmE2MzcwMjAxM2Q2ZTVjMmIzZmUw
ZWVkOWYwNzRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdD
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQu
Y3BwCkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRP
ZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkoY29uc3QgQm94JiBsYXlvdXRCb3gpCiAgICAgYXV0byYg
bGF5b3V0U3RhdGUgPSB0aGlzLT5sYXlvdXRTdGF0ZSgpOwogCiAgICAgYXV0byBjb21wdXRlID0g
WyZdKHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZFdpZHRoKSB7Ci0gICAgICAgIHJldHVy
biBHZW9tZXRyeTo6b3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KGxheW91dFN0YXRlLCAqdGhp
cywgbGF5b3V0Qm94LCB1c2VkV2lkdGgpOworICAgICAgICByZXR1cm4gR2VvbWV0cnk6Om91dE9m
Rmxvd0hvcml6b250YWxHZW9tZXRyeShsYXlvdXRTdGF0ZSwgbGF5b3V0Qm94LCB1c2VkV2lkdGgp
OwogICAgIH07CiAKICAgICBhdXRvIGhvcml6b250YWxHZW9tZXRyeSA9IGNvbXB1dGUoeyB9KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggNTg5NDhhZjhk
YTkwMzJiZGE0YzEyMzliMGM2YjllZDAzMWQ1YjIxYS4uZDc4Zjk3Zjc0YjEwOTllYmQyYjQ5Y2Vi
YTA4YjQ1N2ZmN2UwZTI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1h
dHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250
ZXh0LmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgICAgICBMYXlvdXRVbml0IG1pbmlt
dW07CiAgICAgICAgIExheW91dFVuaXQgbWF4aW11bTsKICAgICB9OwotICAgIHZpcnR1YWwgSW5z
dHJpbnNpY1dpZHRoQ29uc3RyYWludHMgaW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHMoY29uc3Qg
Qm94JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgSW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHMg
aW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKSBjb25zdCA9IDA7CiAKICAgICBzdGF0aWMgRGlz
cGxheTo6Qm94IG1hcEJveFRvQW5jZXN0b3IoY29uc3QgTGF5b3V0U3RhdGUmLCBjb25zdCBCb3gm
LCBjb25zdCBDb250YWluZXImIGFuY2VzdG9yKTsKICAgICBzdGF0aWMgUG9zaXRpb24gbWFwVG9w
TGVmdFRvQW5jZXN0b3IoY29uc3QgTGF5b3V0U3RhdGUmLCBjb25zdCBCb3gmLCBjb25zdCBDb250
YWluZXImIGFuY2VzdG9yKTsKQEAgLTg0LDE3ICs4NCwxNyBAQCBwcm90ZWN0ZWQ6CiAgICAgY2xh
c3MgR2VvbWV0cnkgewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFZlcnRpY2FsR2VvbWV0
cnkgb3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeShjb25zdCBMYXlvdXRTdGF0ZSYsIGNvbnN0IEJv
eCYsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZEhlaWdodCA9IHsgfSk7Ci0gICAgICAg
IHN0YXRpYyBIb3Jpem9udGFsR2VvbWV0cnkgb3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KExh
eW91dFN0YXRlJiwgY29uc3QgRm9ybWF0dGluZ0NvbnRleHQmLCBjb25zdCBCb3gmLCBzdGQ6Om9w
dGlvbmFsPExheW91dFVuaXQ+IHVzZWRXaWR0aCA9IHsgfSk7CisgICAgICAgIHN0YXRpYyBIb3Jp
em9udGFsR2VvbWV0cnkgb3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KExheW91dFN0YXRlJiwg
Y29uc3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGggPSB7IH0pOwog
CiAgICAgICAgIHN0YXRpYyBIZWlnaHRBbmRNYXJnaW4gZmxvYXRpbmdIZWlnaHRBbmRNYXJnaW4o
Y29uc3QgTGF5b3V0U3RhdGUmLCBjb25zdCBCb3gmLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+
IHVzZWRIZWlnaHQgPSB7IH0pOwotICAgICAgICBzdGF0aWMgV2lkdGhBbmRNYXJnaW4gZmxvYXRp
bmdXaWR0aEFuZE1hcmdpbihMYXlvdXRTdGF0ZSYsIGNvbnN0IEZvcm1hdHRpbmdDb250ZXh0Jiwg
Y29uc3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGggPSB7IH0pOwor
ICAgICAgICBzdGF0aWMgV2lkdGhBbmRNYXJnaW4gZmxvYXRpbmdXaWR0aEFuZE1hcmdpbihMYXlv
dXRTdGF0ZSYsIGNvbnN0IEJveCYsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZFdpZHRo
ID0geyB9KTsKIAogICAgICAgICBzdGF0aWMgSGVpZ2h0QW5kTWFyZ2luIGlubGluZVJlcGxhY2Vk
SGVpZ2h0QW5kTWFyZ2luKGNvbnN0IExheW91dFN0YXRlJiwgY29uc3QgQm94Jiwgc3RkOjpvcHRp
b25hbDxMYXlvdXRVbml0PiB1c2VkSGVpZ2h0ID0geyB9KTsKICAgICAgICAgc3RhdGljIFdpZHRo
QW5kTWFyZ2luIGlubGluZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4oY29uc3QgTGF5b3V0U3RhdGUm
LCBjb25zdCBCb3gmLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRXaWR0aCA9IHsgfSwg
CiAgICAgICAgICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHByZWNvbXB1dGVkTWFyZ2lu
TGVmdCA9IHsgfSwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBwcmVjb21wdXRlZE1hcmdpblJp
Z2h0ID0geyB9KTsKIAogICAgICAgICBzdGF0aWMgSGVpZ2h0QW5kTWFyZ2luIGNvbXBsaWNhdGVk
Q2FzZXMoY29uc3QgTGF5b3V0U3RhdGUmLCBjb25zdCBCb3gmLCBzdGQ6Om9wdGlvbmFsPExheW91
dFVuaXQ+IHVzZWRIZWlnaHQgPSB7IH0pOwotICAgICAgICBzdGF0aWMgTGF5b3V0VW5pdCBzaHJp
bmtUb0ZpdFdpZHRoKGNvbnN0IExheW91dFN0YXRlJiwgY29uc3QgRm9ybWF0dGluZ0NvbnRleHQm
LCBjb25zdCBCb3gmKTsKKyAgICAgICAgc3RhdGljIExheW91dFVuaXQgc2hyaW5rVG9GaXRXaWR0
aChMYXlvdXRTdGF0ZSYsIGNvbnN0IEJveCYpOwogCiAgICAgICAgIHN0YXRpYyBFZGdlcyBjb21w
dXRlZEJvcmRlcihjb25zdCBMYXlvdXRTdGF0ZSYsIGNvbnN0IEJveCYpOwogICAgICAgICBzdGF0
aWMgc3RkOjpvcHRpb25hbDxFZGdlcz4gY29tcHV0ZWRQYWRkaW5nKGNvbnN0IExheW91dFN0YXRl
JiwgY29uc3QgQm94Jik7CkBAIC0xMTMsMTIgKzExMywxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IHN0YXRpYyBIb3Jpem9udGFsR2VvbWV0cnkgb3V0T2ZGbG93UmVwbGFjZWRIb3Jpem9udGFsR2Vv
bWV0cnkoY29uc3QgTGF5b3V0U3RhdGUmLCBjb25zdCBCb3gmLCBzdGQ6Om9wdGlvbmFsPExheW91
dFVuaXQ+IHVzZWRXaWR0aCA9IHsgfSk7CiAKICAgICAgICAgc3RhdGljIFZlcnRpY2FsR2VvbWV0
cnkgb3V0T2ZGbG93Tm9uUmVwbGFjZWRWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IExheW91dFN0YXRl
JiwgY29uc3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkSGVpZ2h0ID0geyB9
KTsKLSAgICAgICAgc3RhdGljIEhvcml6b250YWxHZW9tZXRyeSBvdXRPZkZsb3dOb25SZXBsYWNl
ZEhvcml6b250YWxHZW9tZXRyeShMYXlvdXRTdGF0ZSYsIGNvbnN0IEZvcm1hdHRpbmdDb250ZXh0
JiwgY29uc3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGggPSB7IH0p
OworICAgICAgICBzdGF0aWMgSG9yaXpvbnRhbEdlb21ldHJ5IG91dE9mRmxvd05vblJlcGxhY2Vk
SG9yaXpvbnRhbEdlb21ldHJ5KExheW91dFN0YXRlJiwgY29uc3QgQm94Jiwgc3RkOjpvcHRpb25h
bDxMYXlvdXRVbml0PiB1c2VkV2lkdGggPSB7IH0pOwogCiAgICAgICAgIHN0YXRpYyBIZWlnaHRB
bmRNYXJnaW4gZmxvYXRpbmdSZXBsYWNlZEhlaWdodEFuZE1hcmdpbihjb25zdCBMYXlvdXRTdGF0
ZSYsIGNvbnN0IEJveCYsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZEhlaWdodCA9IHsg
fSk7CiAgICAgICAgIHN0YXRpYyBXaWR0aEFuZE1hcmdpbiBmbG9hdGluZ1JlcGxhY2VkV2lkdGhB
bmRNYXJnaW4oY29uc3QgTGF5b3V0U3RhdGUmLCBjb25zdCBCb3gmLCBzdGQ6Om9wdGlvbmFsPExh
eW91dFVuaXQ+IHVzZWRXaWR0aCA9IHsgfSk7CiAKLSAgICAgICAgc3RhdGljIFdpZHRoQW5kTWFy
Z2luIGZsb2F0aW5nTm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihMYXlvdXRTdGF0ZSYsIGNvbnN0
IEZvcm1hdHRpbmdDb250ZXh0JiwgY29uc3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiB1c2VkV2lkdGggPSB7IH0pOworICAgICAgICBzdGF0aWMgV2lkdGhBbmRNYXJnaW4gZmxvYXRp
bmdOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luKExheW91dFN0YXRlJiwgY29uc3QgQm94Jiwgc3Rk
OjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGggPSB7IH0pOwogICAgIH07CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRH
ZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9t
ZXRyeS5jcHAKaW5kZXggYTkyYjk5MjMwMzhlNWM2MGJlZGU3YjBmOTY0NDYyODhlNzRiYjE5Yy4u
M2RkMDg1ODFlMGI2NzY0NjAyYzBmZTkzOTU3ZjhmMGRlMDY2NGYxZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcApAQCAtMjA4
LDkgKzIwOCwxMSBAQCBzdGF0aWMgTGF5b3V0VW5pdCBzdGF0aWNIb3Jpem9udGFsUG9zaXRpb25G
b3JPdXRPZkZsb3dQb3NpdGlvbmVkKGNvbnN0IExheW91dFN0YQogICAgIHJldHVybiBsZWZ0Owog
fQogCi1MYXlvdXRVbml0IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6c2hyaW5rVG9GaXRX
aWR0aChjb25zdCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IEZvcm1hdHRpbmdDb250
ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCitMYXlvdXRVbml0
IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6c2hyaW5rVG9GaXRXaWR0aChMYXlvdXRTdGF0
ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IEJveCYgZm9ybWF0dGluZ1Jvb3QpCiB7Ci0gICAgTE9HX1dJ
VEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIltXaWR0aF0gLT4g
c2hyaW5rIHRvIGZpdCAtPiB1bnN1cHBvcnRlZCAtPiB3aWR0aCgiIDw8IExheW91dFVuaXQgeyB9
IDw8ICJweCkgbGF5b3V0Qm94OiAiIDw8ICZsYXlvdXRCb3ggPDwgIikiKTsKKyAgICBMT0dfV0lU
SF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiW1dpZHRoXSAtPiBz
aHJpbmsgdG8gZml0IC0+IHVuc3VwcG9ydGVkIC0+IHdpZHRoKCIgPDwgTGF5b3V0VW5pdCB7IH0g
PDwgInB4KSBsYXlvdXRCb3g6ICIgPDwgJmZvcm1hdHRpbmdSb290IDw8ICIpIik7CisgICAgQVNT
RVJUKGZvcm1hdHRpbmdSb290LmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSk7CisKICAg
ICAvLyBDYWxjdWxhdGlvbiBvZiB0aGUgc2hyaW5rLXRvLWZpdCB3aWR0aCBpcyBzaW1pbGFyIHRv
IGNhbGN1bGF0aW5nIHRoZSB3aWR0aCBvZiBhIHRhYmxlIGNlbGwgdXNpbmcgdGhlIGF1dG9tYXRp
YyB0YWJsZSBsYXlvdXQgYWxnb3JpdGhtLgogICAgIC8vIFJvdWdobHk6IGNhbGN1bGF0ZSB0aGUg
cHJlZmVycmVkIHdpZHRoIGJ5IGZvcm1hdHRpbmcgdGhlIGNvbnRlbnQgd2l0aG91dCBicmVha2lu
ZyBsaW5lcyBvdGhlciB0aGFuIHdoZXJlIGV4cGxpY2l0IGxpbmUgYnJlYWtzIG9jY3VyLAogICAg
IC8vIGFuZCBhbHNvIGNhbGN1bGF0ZSB0aGUgcHJlZmVycmVkIG1pbmltdW0gd2lkdGgsIGUuZy4s
IGJ5IHRyeWluZyBhbGwgcG9zc2libGUgbGluZSBicmVha3MuIENTUyAyLjIgZG9lcyBub3QgZGVm
aW5lIHRoZSBleGFjdCBhbGdvcml0aG0uCkBAIC0yMTgsOCArMjIwLDkgQEAgTGF5b3V0VW5pdCBG
b3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnNocmlua1RvRml0V2lkdGgoY29uc3QgTGF5b3V0
U3RhdGUmIGxheW8KICAgICAvLyAncGFkZGluZy1sZWZ0JywgJ3BhZGRpbmctcmlnaHQnLCAnYm9y
ZGVyLXJpZ2h0LXdpZHRoJywgJ21hcmdpbi1yaWdodCcsIGFuZCB0aGUgd2lkdGhzIG9mIGFueSBy
ZWxldmFudCBzY3JvbGwgYmFycy4KIAogICAgIC8vIFRoZW4gdGhlIHNocmluay10by1maXQgd2lk
dGggaXM6IG1pbihtYXgocHJlZmVycmVkIG1pbmltdW0gd2lkdGgsIGF2YWlsYWJsZSB3aWR0aCks
IHByZWZlcnJlZCB3aWR0aCkuCi0gICAgYXV0byBhdmFpbGFibGVXaWR0aCA9IGxheW91dFN0YXRl
LmRpc3BsYXlCb3hGb3JMYXlvdXRCb3goKmxheW91dEJveC5jb250YWluaW5nQmxvY2soKSkud2lk
dGgoKTsKLSAgICBhdXRvIGluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzID0gZm9ybWF0dGluZ0Nv
bnRleHQuaW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHMobGF5b3V0Qm94KTsKKyAgICBhdXRvIGF2
YWlsYWJsZVdpZHRoID0gbGF5b3V0U3RhdGUuZGlzcGxheUJveEZvckxheW91dEJveCgqZm9ybWF0
dGluZ1Jvb3QuY29udGFpbmluZ0Jsb2NrKCkpLndpZHRoKCk7CisgICAgYXV0byYgZm9ybWF0dGlu
Z1N0YXRlID0gbGF5b3V0U3RhdGUuY3JlYXRlRm9ybWF0dGluZ1N0YXRlRm9yRm9ybWF0dGluZ1Jv
b3RJZk5lZWRlZChmb3JtYXR0aW5nUm9vdCk7CisgICAgYXV0byBpbnN0cmluc2ljV2lkdGhDb25z
dHJhaW50cyA9IGZvcm1hdHRpbmdTdGF0ZS5mb3JtYXR0aW5nQ29udGV4dChmb3JtYXR0aW5nUm9v
dCktPmluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzKCk7CiAgICAgcmV0dXJuIHN0ZDo6bWluKHN0
ZDo6bWF4KGluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzLm1pbmltdW0sIGF2YWlsYWJsZVdpZHRo
KSwgaW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHMubWF4aW11bSk7CiB9CiAKQEAgLTMzOSw3ICsz
NDIsNyBAQCBWZXJ0aWNhbEdlb21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0
T2ZGbG93Tm9uUmVwbGFjZWRWZXJ0aWNhbEdlb21ldAogICAgIHJldHVybiB7ICp0b3AsICpib3R0
b20sIHsgKmhlaWdodCwgeyAqbWFyZ2luVG9wLCAqbWFyZ2luQm90dG9tIH0sIHsgfSB9IH07CiB9
CiAKLUhvcml6b250YWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9m
Rmxvd05vblJlcGxhY2VkSG9yaXpvbnRhbEdlb21ldHJ5KExheW91dFN0YXRlJiBsYXlvdXRTdGF0
ZSwgY29uc3QgRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0LCBjb25zdCBCb3gm
IGxheW91dEJveCwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGgpCitIb3Jpem9u
dGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dOb25SZXBs
YWNlZEhvcml6b250YWxHZW9tZXRyeShMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IEJv
eCYgbGF5b3V0Qm94LCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRXaWR0aCkKIHsKICAg
ICBBU1NFUlQobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmICFsYXlvdXRCb3gu
cmVwbGFjZWQoKSk7CiAgICAgCkBAIC00NDgsNyArNDUxLDcgQEAgSG9yaXpvbnRhbEdlb21ldHJ5
IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93Tm9uUmVwbGFjZWRIb3Jpem9u
dGFsR2UKIAogICAgIGlmICghbGVmdCAmJiAhd2lkdGggJiYgcmlnaHQpIHsKICAgICAgICAgLy8g
IzEKLSAgICAgICAgd2lkdGggPSBzaHJpbmtUb0ZpdFdpZHRoKGxheW91dFN0YXRlLCBmb3JtYXR0
aW5nQ29udGV4dCwgbGF5b3V0Qm94KTsKKyAgICAgICAgd2lkdGggPSBzaHJpbmtUb0ZpdFdpZHRo
KGxheW91dFN0YXRlLCBsYXlvdXRCb3gpOwogICAgICAgICBsZWZ0ID0gY29udGFpbmluZ0Jsb2Nr
V2lkdGggLSAoKm1hcmdpbkxlZnQgKyBib3JkZXJMZWZ0ICsgcGFkZGluZ0xlZnQgKyAqd2lkdGgg
KyBwYWRkaW5nUmlnaHQgICsgYm9yZGVyUmlnaHQgKyAqbWFyZ2luUmlnaHQgKyAqcmlnaHQpOwog
ICAgIH0gZWxzZSBpZiAoIWxlZnQgJiYgIXJpZ2h0ICYmIHdpZHRoKSB7CiAgICAgICAgIC8vICMy
CkBAIC00NjIsNyArNDY1LDcgQEAgSG9yaXpvbnRhbEdlb21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6b3V0T2ZGbG93Tm9uUmVwbGFjZWRIb3Jpem9udGFsR2UKICAgICAgICAgfQog
ICAgIH0gZWxzZSBpZiAoIXdpZHRoICYmICFyaWdodCAmJiBsZWZ0KSB7CiAgICAgICAgIC8vICMz
Ci0gICAgICAgIHdpZHRoID0gc2hyaW5rVG9GaXRXaWR0aChsYXlvdXRTdGF0ZSwgZm9ybWF0dGlu
Z0NvbnRleHQsIGxheW91dEJveCk7CisgICAgICAgIHdpZHRoID0gc2hyaW5rVG9GaXRXaWR0aChs
YXlvdXRTdGF0ZSwgbGF5b3V0Qm94KTsKICAgICAgICAgcmlnaHQgPSBjb250YWluaW5nQmxvY2tX
aWR0aCAtICgqbGVmdCArICptYXJnaW5MZWZ0ICsgYm9yZGVyTGVmdCArIHBhZGRpbmdMZWZ0ICsg
KndpZHRoICsgcGFkZGluZ1JpZ2h0ICsgYm9yZGVyUmlnaHQgKyAqbWFyZ2luUmlnaHQpOwogICAg
IH0gZWxzZSBpZiAoIWxlZnQgJiYgd2lkdGggJiYgcmlnaHQpIHsKICAgICAgICAgLy8gIzQKQEAg
LTY5NSw3ICs2OTgsNyBAQCBIZWlnaHRBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21l
dHJ5Ojpjb21wbGljYXRlZENhc2VzKGNvbnN0IExheW91dFN0YXRlJgogICAgIHJldHVybiBIZWln
aHRBbmRNYXJnaW4geyAqaGVpZ2h0LCB7ICptYXJnaW5Ub3AsICptYXJnaW5Cb3R0b20gfSwgeyB9
IH07CiB9CiAKLVdpZHRoQW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Zmxv
YXRpbmdOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luKExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwg
Y29uc3QgRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0LCBjb25zdCBCb3gmIGxh
eW91dEJveCwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGgpCitXaWR0aEFuZE1h
cmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nTm9uUmVwbGFjZWRXaWR0
aEFuZE1hcmdpbihMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRXaWR0aCkKIHsKICAgICBBU1NFUlQobGF5
b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkgJiYgIWxheW91dEJveC5yZXBsYWNlZCgpKTsK
IApAQCAtNzEyLDcgKzcxNSw3IEBAIFdpZHRoQW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6ZmxvYXRpbmdOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luKExhCiAgICAgLy8gIzIK
ICAgICBhdXRvIHdpZHRoID0gY29tcHV0ZWRWYWx1ZUlmTm90QXV0byh1c2VkV2lkdGggPyBMZW5n
dGggeyB1c2VkV2lkdGgudmFsdWUoKSwgRml4ZWQgfSA6IGxheW91dEJveC5zdHlsZSgpLmxvZ2lj
YWxXaWR0aCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCk7CiAgICAgaWYgKCF3aWR0aCkKLSAgICAg
ICAgd2lkdGggPSBzaHJpbmtUb0ZpdFdpZHRoKGxheW91dFN0YXRlLCBmb3JtYXR0aW5nQ29udGV4
dCwgbGF5b3V0Qm94KTsKKyAgICAgICAgd2lkdGggPSBzaHJpbmtUb0ZpdFdpZHRoKGxheW91dFN0
YXRlLCBsYXlvdXRCb3gpOwogCiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0
TGF5b3V0LCBzdHJlYW0gPDwgIltXaWR0aF1bTWFyZ2luXSAtPiBmbG9hdGluZyBub24tcmVwbGFj
ZWQgLT4gd2lkdGgoIiA8PCAqd2lkdGggPDwgInB4KSBtYXJnaW4oIiA8PCBtYXJnaW4ubGVmdCA8
PCAicHgsICIgPDwgbWFyZ2luLnJpZ2h0IDw8ICJweCkgLT4gbGF5b3V0Qm94KCIgPDwgJmxheW91
dEJveCA8PCAiKSIpOwogICAgIHJldHVybiBXaWR0aEFuZE1hcmdpbiB7ICp3aWR0aCwgbWFyZ2lu
LCBtYXJnaW4gfTsKQEAgLTc1MSwxMiArNzU0LDEyIEBAIFZlcnRpY2FsR2VvbWV0cnkgRm9ybWF0
dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IExh
CiAgICAgcmV0dXJuIG91dE9mRmxvd1JlcGxhY2VkVmVydGljYWxHZW9tZXRyeShsYXlvdXRTdGF0
ZSwgbGF5b3V0Qm94LCB1c2VkSGVpZ2h0KTsKIH0KIAotSG9yaXpvbnRhbEdlb21ldHJ5IEZvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KExheW91
dFN0YXRlJiBsYXlvdXRTdGF0ZSwgY29uc3QgRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdD
b250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB1
c2VkV2lkdGgpCitIb3Jpem9udGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5
OjpvdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkoTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBj
b25zdCBCb3gmIGxheW91dEJveCwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGgp
CiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSk7CiAKICAg
ICBpZiAoIWxheW91dEJveC5yZXBsYWNlZCgpKQotICAgICAgICByZXR1cm4gb3V0T2ZGbG93Tm9u
UmVwbGFjZWRIb3Jpem9udGFsR2VvbWV0cnkobGF5b3V0U3RhdGUsIGZvcm1hdHRpbmdDb250ZXh0
LCBsYXlvdXRCb3gsIHVzZWRXaWR0aCk7CisgICAgICAgIHJldHVybiBvdXRPZkZsb3dOb25SZXBs
YWNlZEhvcml6b250YWxHZW9tZXRyeShsYXlvdXRTdGF0ZSwgbGF5b3V0Qm94LCB1c2VkV2lkdGgp
OwogICAgIHJldHVybiBvdXRPZkZsb3dSZXBsYWNlZEhvcml6b250YWxHZW9tZXRyeShsYXlvdXRT
dGF0ZSwgbGF5b3V0Qm94LCB1c2VkV2lkdGgpOwogfQogCkBAIC03NjksMTIgKzc3MiwxMiBAQCBI
ZWlnaHRBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ0hlaWdo
dEFuZE1hcmdpbihjb25zdCBMYXlvdQogICAgIHJldHVybiBmbG9hdGluZ1JlcGxhY2VkSGVpZ2h0
QW5kTWFyZ2luKGxheW91dFN0YXRlLCBsYXlvdXRCb3gsIHVzZWRIZWlnaHQpOwogfQogCi1XaWR0
aEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nV2lkdGhBbmRN
YXJnaW4oTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBjb25zdCBGb3JtYXR0aW5nQ29udGV4dCYg
Zm9ybWF0dGluZ0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBzdGQ6Om9wdGlvbmFsPExh
eW91dFVuaXQ+IHVzZWRXaWR0aCkKK1dpZHRoQW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6ZmxvYXRpbmdXaWR0aEFuZE1hcmdpbihMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUs
IGNvbnN0IEJveCYgbGF5b3V0Qm94LCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRXaWR0
aCkKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkpOwogCiAg
ICAgaWYgKCFsYXlvdXRCb3gucmVwbGFjZWQoKSkKLSAgICAgICAgcmV0dXJuIGZsb2F0aW5nTm9u
UmVwbGFjZWRXaWR0aEFuZE1hcmdpbihsYXlvdXRTdGF0ZSwgZm9ybWF0dGluZ0NvbnRleHQsIGxh
eW91dEJveCwgdXNlZFdpZHRoKTsKKyAgICAgICAgcmV0dXJuIGZsb2F0aW5nTm9uUmVwbGFjZWRX
aWR0aEFuZE1hcmdpbihsYXlvdXRTdGF0ZSwgbGF5b3V0Qm94LCB1c2VkV2lkdGgpOwogICAgIHJl
dHVybiBmbG9hdGluZ1JlcGxhY2VkV2lkdGhBbmRNYXJnaW4obGF5b3V0U3RhdGUsIGxheW91dEJv
eCwgdXNlZFdpZHRoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Js
b2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXgg
M2E0Zjc5MWRlYjQ2OWJhNzM1MjAxZjkxY2QwYTVkNWYwNzM1Yzg5Mi4uMDkxYWQxMGNjN2RlYTAz
NjVmMjgyMzhkODA3ZjU5M2Y3MTcyOGZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQu
Y3BwCkBAIC0yOTAsNyArMjkwLDcgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21w
dXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0CiAgICAgICAgICAg
ICByZXR1cm4gR2VvbWV0cnk6OmluRmxvd1dpZHRoQW5kTWFyZ2luKGxheW91dFN0YXRlLCBsYXlv
dXRCb3gsIHVzZWRXaWR0aCk7CiAKICAgICAgICAgaWYgKGxheW91dEJveC5pc0Zsb2F0aW5nUG9z
aXRpb25lZCgpKQotICAgICAgICAgICAgcmV0dXJuIEdlb21ldHJ5OjpmbG9hdGluZ1dpZHRoQW5k
TWFyZ2luKGxheW91dFN0YXRlLCAqdGhpcywgbGF5b3V0Qm94LCB1c2VkV2lkdGgpOworICAgICAg
ICAgICAgcmV0dXJuIEdlb21ldHJ5OjpmbG9hdGluZ1dpZHRoQW5kTWFyZ2luKGxheW91dFN0YXRl
LCBsYXlvdXRCb3gsIHVzZWRXaWR0aCk7CiAKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybiB7IH07CkBAIC0zNTcsMTggKzM1NywxOCBAQCB2b2lkIEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRC
b3gpIGNvbnN0CiAgICAgICAgIGRpc3BsYXlCb3gubW92ZVZlcnRpY2FsbHkoaGVpZ2h0QW5kTWFy
Z2luLmNvbGxhcHNlZE1hcmdpbi52YWx1ZV9vcihoZWlnaHRBbmRNYXJnaW4ubWFyZ2luKS50b3Ap
OwogfQogCi1Gb3JtYXR0aW5nQ29udGV4dDo6SW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHMgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6aW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHMoY29uc3QgQm94
JiBsYXlvdXRCb3gpIGNvbnN0CitGb3JtYXR0aW5nQ29udGV4dDo6SW5zdHJpbnNpY1dpZHRoQ29u
c3RyYWludHMgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6aW5zdHJpbnNpY1dpZHRoQ29uc3RyYWlu
dHMoKSBjb25zdAogewogICAgIGF1dG8mIGxheW91dFN0YXRlID0gdGhpcy0+bGF5b3V0U3RhdGUo
KTsKLSAgICBhdXRvJiBmb3JtYXR0aW5nU3RhdGUgPSBsYXlvdXRTdGF0ZS5mb3JtYXR0aW5nU3Rh
dGVGb3JCb3gobGF5b3V0Qm94KTsKLSAgICBBU1NFUlQoZm9ybWF0dGluZ1N0YXRlLmlzQmxvY2tG
b3JtYXR0aW5nU3RhdGUoKSk7Ci0gICAgaWYgKGF1dG8gaW5zdHJpbnNpY1dpZHRoQ29uc3RyYWlu
dHMgPSBmb3JtYXR0aW5nU3RhdGUuaW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHMobGF5b3V0Qm94
KSkKKyAgICBhdXRvJiBmb3JtYXR0aW5nUm9vdCA9IHJvb3QoKTsKKyAgICBhdXRvJiBmb3JtYXR0
aW5nU3RhdGVGb3JSb290ID0gbGF5b3V0U3RhdGUuZm9ybWF0dGluZ1N0YXRlRm9yQm94KGZvcm1h
dHRpbmdSb290KTsKKyAgICBpZiAoYXV0byBpbnN0cmluc2ljV2lkdGhDb25zdHJhaW50cyA9IGZv
cm1hdHRpbmdTdGF0ZUZvclJvb3QuaW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHMoZm9ybWF0dGlu
Z1Jvb3QpKQogICAgICAgICByZXR1cm4gKmluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzOwogCiAg
ICAgLy8gQ2FuIHdlIGp1c3QgY29tcHV0ZSB0aGVtIHdpdGhvdXQgY2hlY2tpbmcgdGhlIGNoaWxk
cmVuPwotICAgIGlmICghR2VvbWV0cnk6Omluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzTmVlZENo
aWxkcmVuV2lkdGgobGF5b3V0Qm94KSkgewotICAgICAgICBhdXRvIGluc3RyaW5zaWNXaWR0aENv
bnN0cmFpbnRzID0gR2VvbWV0cnk6Omluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzKGxheW91dFN0
YXRlLCBsYXlvdXRCb3gpOwotICAgICAgICBmb3JtYXR0aW5nU3RhdGUuc2V0SW5zdHJpbnNpY1dp
ZHRoQ29uc3RyYWludHMobGF5b3V0Qm94LCBpbnN0cmluc2ljV2lkdGhDb25zdHJhaW50cyk7Cisg
ICAgaWYgKCFHZW9tZXRyeTo6aW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHNOZWVkQ2hpbGRyZW5X
aWR0aChmb3JtYXR0aW5nUm9vdCkpIHsKKyAgICAgICAgYXV0byBpbnN0cmluc2ljV2lkdGhDb25z
dHJhaW50cyA9IEdlb21ldHJ5OjppbnN0cmluc2ljV2lkdGhDb25zdHJhaW50cyhsYXlvdXRTdGF0
ZSwgZm9ybWF0dGluZ1Jvb3QpOworICAgICAgICBmb3JtYXR0aW5nU3RhdGVGb3JSb290LnNldElu
c3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzKGZvcm1hdHRpbmdSb290LCBpbnN0cmluc2ljV2lkdGhD
b25zdHJhaW50cyk7CiAgICAgICAgIHJldHVybiBpbnN0cmluc2ljV2lkdGhDb25zdHJhaW50czsK
ICAgICB9CiAKQEAgLTM3OSwyNSArMzc5LDI1IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpJbnN0cmlu
c2ljV2lkdGhDb25zdHJhaW50cyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjppbnN0cmluc2ljCiAg
ICAgLy8gKEFueSBzdWJ0cmVlcyB3aXRoIG5ldyBmb3JtYXR0aW5nIGNvbnRleHRzIG5lZWQgdG8g
bGF5b3V0IHN5bmNocm9ub3VzbHkpCiAgICAgVmVjdG9yPGNvbnN0IEJveCo+IHF1ZXVlOwogICAg
IC8vIE5vbi1jb250YWluZXJzIGVhcmx5IHJldHVybi4KLSAgICBBU1NFUlQoaXM8Q29udGFpbmVy
PihsYXlvdXRCb3gpKTsKLSAgICBpZiAoYXV0byogZmlyc3RDaGlsZCA9IGRvd25jYXN0PENvbnRh
aW5lcj4obGF5b3V0Qm94KS5maXJzdEluRmxvd09yRmxvYXRpbmdDaGlsZCgpKQorICAgIEFTU0VS
VChpczxDb250YWluZXI+KGZvcm1hdHRpbmdSb290KSk7CisgICAgaWYgKGF1dG8qIGZpcnN0Q2hp
bGQgPSBkb3duY2FzdDxDb250YWluZXI+KGZvcm1hdHRpbmdSb290KS5maXJzdEluRmxvd09yRmxv
YXRpbmdDaGlsZCgpKQogICAgICAgICBxdWV1ZS5hcHBlbmQoZmlyc3RDaGlsZCk7CiAKLSAgICBh
dXRvJiBmb3JtYXR0aW5nU3RhdGVGb3JDaGlsZHJlbiA9IGxheW91dEJveC5lc3RhYmxpc2hlc0Zv
cm1hdHRpbmdDb250ZXh0KCkgPyBsYXlvdXRTdGF0ZS5jcmVhdGVGb3JtYXR0aW5nU3RhdGVGb3JG
b3JtYXR0aW5nUm9vdElmTmVlZGVkKGxheW91dEJveCkgOiBmb3JtYXR0aW5nU3RhdGU7CisgICAg
YXV0byYgZm9ybWF0dGluZ1N0YXRlID0gdGhpcy0+Zm9ybWF0dGluZ1N0YXRlKCk7CiAgICAgd2hp
bGUgKCFxdWV1ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAg
ICAgIGF1dG8mIGNoaWxkQm94ID0gKnF1ZXVlLmxhc3QoKTsgCiAgICAgICAgICAgICAvLyBBbHJl
YWR5IGNvbXB1dGVkPwotICAgICAgICAgICAgYXV0byBpbnN0cmluc2ljV2lkdGhDb25zdHJhaW50
cyA9IGZvcm1hdHRpbmdTdGF0ZUZvckNoaWxkcmVuLmluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRz
KGNoaWxkQm94KTsKKyAgICAgICAgICAgIGF1dG8gaW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHMg
PSBmb3JtYXR0aW5nU3RhdGUuaW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHMoY2hpbGRCb3gpOwog
ICAgICAgICAgICAgLy8gQ2FuIHdlIGp1c3QgY29tcHV0ZSB0aGVtIHdpdGhvdXQgY2hlY2tpbmcg
dGhlIGNoaWxkcmVuPwogICAgICAgICAgICAgaWYgKCFpbnN0cmluc2ljV2lkdGhDb25zdHJhaW50
cyAmJiAhR2VvbWV0cnk6Omluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzTmVlZENoaWxkcmVuV2lk
dGgoY2hpbGRCb3gpKQogICAgICAgICAgICAgICAgIGluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRz
ID0gR2VvbWV0cnk6Omluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzKGxheW91dFN0YXRlLCBjaGls
ZEJveCk7CiAgICAgICAgICAgICAvLyBJcyBpdCBhIGZvcm1hdHRpbmcgY29udGV4dCByb290Pwog
ICAgICAgICAgICAgaWYgKCFpbnN0cmluc2ljV2lkdGhDb25zdHJhaW50cyAmJiBjaGlsZEJveC5l
c3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpCi0gICAgICAgICAgICAgICAgaW5zdHJpbnNp
Y1dpZHRoQ29uc3RyYWludHMgPSBmb3JtYXR0aW5nU3RhdGVGb3JDaGlsZHJlbi5mb3JtYXR0aW5n
Q29udGV4dChjaGlsZEJveCktPmluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzKGNoaWxkQm94KTsK
KyAgICAgICAgICAgICAgICBpbnN0cmluc2ljV2lkdGhDb25zdHJhaW50cyA9IGZvcm1hdHRpbmdT
dGF0ZS5mb3JtYXR0aW5nQ29udGV4dChjaGlsZEJveCktPmluc3RyaW5zaWNXaWR0aENvbnN0cmFp
bnRzKCk7CiAgICAgICAgICAgICAvLyBHbyB0byB0aGUgbmV4dCBzaWJsaW5nIChhbmQgc2tpcCB0
aGUgZGVzY2VuZGFudHMpIGlmIHRoaXMgYm94J3MgbWluL21heCB3aWR0aCBpcyBjb21wdXRlZC4K
ICAgICAgICAgICAgIGlmIChpbnN0cmluc2ljV2lkdGhDb25zdHJhaW50cykgewotICAgICAgICAg
ICAgICAgIGZvcm1hdHRpbmdTdGF0ZUZvckNoaWxkcmVuLnNldEluc3RyaW5zaWNXaWR0aENvbnN0
cmFpbnRzKGNoaWxkQm94LCAqaW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHMpOyAKKyAgICAgICAg
ICAgICAgICBmb3JtYXR0aW5nU3RhdGUuc2V0SW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHMoY2hp
bGRCb3gsICppbnN0cmluc2ljV2lkdGhDb25zdHJhaW50cyk7IAogICAgICAgICAgICAgICAgIHF1
ZXVlLnJlbW92ZUxhc3QoKTsKICAgICAgICAgICAgICAgICBpZiAoIWNoaWxkQm94Lm5leHRJbkZs
b3dPckZsb2F0aW5nU2libGluZygpKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTQx
NCw3ICs0MTQsNyBAQCBGb3JtYXR0aW5nQ29udGV4dDo6SW5zdHJpbnNpY1dpZHRoQ29uc3RyYWlu
dHMgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6aW5zdHJpbnNpYwogICAgICAgICAvLyBDb21wdXRl
IG1pbi9tYXggaW50cmluc2ljIHdpZHRoIGJvdHRvbSB1cC4KICAgICAgICAgd2hpbGUgKCFxdWV1
ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGF1dG8mIGNoaWxkQm94ID0gKnF1ZXVlLnRha2VM
YXN0KCk7Ci0gICAgICAgICAgICBmb3JtYXR0aW5nU3RhdGVGb3JDaGlsZHJlbi5zZXRJbnN0cmlu
c2ljV2lkdGhDb25zdHJhaW50cyhjaGlsZEJveCwgR2VvbWV0cnk6Omluc3RyaW5zaWNXaWR0aENv
bnN0cmFpbnRzKGxheW91dFN0YXRlLCBjaGlsZEJveCkpOyAKKyAgICAgICAgICAgIGZvcm1hdHRp
bmdTdGF0ZS5zZXRJbnN0cmluc2ljV2lkdGhDb25zdHJhaW50cyhjaGlsZEJveCwgR2VvbWV0cnk6
Omluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzKGxheW91dFN0YXRlLCBjaGlsZEJveCkpOyAKICAg
ICAgICAgICAgIC8vIE1vdmUgb3ZlciB0byB0aGUgbmV4dCBzaWJsaW5nIG9yIHRha2UgdGhlIG5l
eHQgYm94IGluIHRoZSBxdWV1ZS4KICAgICAgICAgICAgIGlmICghaXM8Q29udGFpbmVyPihjaGls
ZEJveCkgfHwgIWRvd25jYXN0PENvbnRhaW5lcj4oY2hpbGRCb3gpLm5leHRJbkZsb3dPckZsb2F0
aW5nU2libGluZygpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNDIyLDggKzQyMiw4
IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpJbnN0cmluc2ljV2lkdGhDb25zdHJhaW50cyBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0OjppbnN0cmluc2ljCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBhdXRv
IGluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzID0gR2VvbWV0cnk6Omluc3RyaW5zaWNXaWR0aENv
bnN0cmFpbnRzKGxheW91dFN0YXRlLCBsYXlvdXRCb3gpOwotICAgIGZvcm1hdHRpbmdTdGF0ZS5z
ZXRJbnN0cmluc2ljV2lkdGhDb25zdHJhaW50cyhsYXlvdXRCb3gsIGluc3RyaW5zaWNXaWR0aENv
bnN0cmFpbnRzKTsgCisgICAgYXV0byBpbnN0cmluc2ljV2lkdGhDb25zdHJhaW50cyA9IEdlb21l
dHJ5OjppbnN0cmluc2ljV2lkdGhDb25zdHJhaW50cyhsYXlvdXRTdGF0ZSwgZm9ybWF0dGluZ1Jv
b3QpOworICAgIGZvcm1hdHRpbmdTdGF0ZUZvclJvb3Quc2V0SW5zdHJpbnNpY1dpZHRoQ29uc3Ry
YWludHMoZm9ybWF0dGluZ1Jvb3QsIGluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzKTsgCiAgICAg
cmV0dXJuIGluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5n
Q29udGV4dC5oCmluZGV4IGM3NjdiYTRlOTcwNjQ4MjkzMDJiYTAwOTA0Yzk0NWRkMTE2Y2IyNmEu
LmU2MTVlY2M5ZDhiODdlYjAzOGQyYWViNTJmYWQ5YTdlOTAyZDM0MjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dC5oCkBAIC02Niw3ICs2Niw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHBy
ZWNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uRm9yRm9ybWF0dGluZ1Jvb3RJZk5lZWRlZChjb25zdCBC
b3gmKSBjb25zdDsKIAotICAgIEluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzIGluc3RyaW5zaWNX
aWR0aENvbnN0cmFpbnRzKGNvbnN0IEJveCYpIGNvbnN0IG92ZXJyaWRlOworICAgIEluc3RyaW5z
aWNXaWR0aENvbnN0cmFpbnRzIGluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKICAgICAvLyBUaGlzIGNsYXNzIGltcGxlbWVudHMgcG9zaXRpb25pbmcgYW5kIHNp
emluZyBmb3IgYm94ZXMgcGFydGljaXBhdGluZyBpbiBhIGJsb2NrIGZvcm1hdHRpbmcgY29udGV4
dC4KICAgICBjbGFzcyBHZW9tZXRyeSA6IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0
cnkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDYwNTYyNjMyMjJk
ZjMyZjlkNGMxMTRiY2JkNjU2ZTJhMmIyNTMyYzYuLjAwNGYwZDFjY2FkODAyZTJjNzk3NDcxNzg2
YmI2MDBhYTJhZTUwYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAg
LTIxNSw3ICsyMTUsNyBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRGb3Jt
YXR0aW5nQ29udGV4dFJvb3QoY29uc3QgQm94JiBsYXlvdXRCb3gpCiAgICAgICAgIFdpZHRoQW5k
TWFyZ2luIHdpZHRoQW5kTWFyZ2luOwogCiAgICAgICAgIGlmIChsYXlvdXRCb3guaXNGbG9hdGlu
Z1Bvc2l0aW9uZWQoKSkKLSAgICAgICAgICAgIHdpZHRoQW5kTWFyZ2luID0gR2VvbWV0cnk6OmZs
b2F0aW5nV2lkdGhBbmRNYXJnaW4obGF5b3V0U3RhdGUsICp0aGlzLCBsYXlvdXRCb3gpOworICAg
ICAgICAgICAgd2lkdGhBbmRNYXJnaW4gPSBHZW9tZXRyeTo6ZmxvYXRpbmdXaWR0aEFuZE1hcmdp
bihsYXlvdXRTdGF0ZSwgbGF5b3V0Qm94KTsKICAgICAgICAgZWxzZSBpZiAobGF5b3V0Qm94Lmlz
SW5saW5lQmxvY2tCb3goKSkKICAgICAgICAgICAgIHdpZHRoQW5kTWFyZ2luID0gR2VvbWV0cnk6
OmlubGluZUJsb2NrV2lkdGhBbmRNYXJnaW4obGF5b3V0U3RhdGUsIGxheW91dEJveCk7CiAgICAg
ICAgIGVsc2UKQEAgLTMwMSw3ICszMDEsNyBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0
Ojpjb21wdXRlSW5GbG93UG9zaXRpb25lZFBvc2l0aW9uKGNvbnN0IEJveCYpIGNvbnN0CiB7CiB9
CiAKLUZvcm1hdHRpbmdDb250ZXh0OjpJbnN0cmluc2ljV2lkdGhDb25zdHJhaW50cyBJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dDo6aW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHMoY29uc3QgQm94Jikg
Y29uc3QKK0Zvcm1hdHRpbmdDb250ZXh0OjpJbnN0cmluc2ljV2lkdGhDb25zdHJhaW50cyBJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dDo6aW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKSBjb25zdAog
ewogICAgIHJldHVybiB7IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaAppbmRl
eCA2ZDhjOGM2ZWQyZmY2YWZjNjMyMzk2OGYwODQ3ZTQwOTM3YjY1ZmZjLi5mN2Q2NWVjMzdhZTc3
N2E3NGIwMmEwNDk3MzJjZjZlMmIzN2ZkNjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250
ZXh0LmgKQEAgLTk5LDcgKzk5LDcgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBHZW9tZXRyeSA6IHB1
YmxpYyBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnkgewogICAgIHB1YmxpYzoKICAgICAgICAg
c3RhdGljIEhlaWdodEFuZE1hcmdpbiBpbmxpbmVCbG9ja0hlaWdodEFuZE1hcmdpbihjb25zdCBM
YXlvdXRTdGF0ZSYsIGNvbnN0IEJveCYpOwotICAgICAgICBzdGF0aWMgV2lkdGhBbmRNYXJnaW4g
aW5saW5lQmxvY2tXaWR0aEFuZE1hcmdpbihjb25zdCBMYXlvdXRTdGF0ZSYsIGNvbnN0IEJveCYp
OworICAgICAgICBzdGF0aWMgV2lkdGhBbmRNYXJnaW4gaW5saW5lQmxvY2tXaWR0aEFuZE1hcmdp
bihMYXlvdXRTdGF0ZSYsIGNvbnN0IEJveCYpOwogICAgIH07CiAKICAgICB2b2lkIGxheW91dElu
bGluZUNvbnRlbnQoY29uc3QgSW5saW5lUnVuUHJvdmlkZXImKSBjb25zdDsKQEAgLTExMSw3ICsx
MTEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY29tcHV0ZVN0YXRpY1Bvc2l0aW9uKGNvbnN0IEJv
eCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29tcHV0ZUluRmxvd1Bvc2l0aW9uZWRQb3Np
dGlvbihjb25zdCBCb3gmKSBjb25zdCBvdmVycmlkZTsKIAotICAgIEluc3RyaW5zaWNXaWR0aENv
bnN0cmFpbnRzIGluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzKGNvbnN0IEJveCYpIGNvbnN0IG92
ZXJyaWRlOworICAgIEluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzIGluc3RyaW5zaWNXaWR0aENv
bnN0cmFpbnRzKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdl
b21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCmluZGV4IGRiZDlmYWZhZmNiODkyYzljMWVj
NTQ0OTAwZjczZWUwNTY0ZTBjOWEuLjdjOWUyOWUwYmQ1NjA5Y2ZiZTI4ZjI4NDc5NjUwZWMyZjhi
ZDMzNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnku
Y3BwCkBAIC0zNyw3ICszNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5
b3V0IHsKIAotV2lkdGhBbmRNYXJnaW4gSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5
OjppbmxpbmVCbG9ja1dpZHRoQW5kTWFyZ2luKGNvbnN0IExheW91dFN0YXRlJiBsYXlvdXRTdGF0
ZSwgY29uc3QgQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpCitXaWR0aEFuZE1hcmdpbiBJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmlubGluZUJsb2NrV2lkdGhBbmRNYXJnaW4o
TGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBjb25zdCBCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9v
dCkKIHsKICAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRleHRSb290LmlzSW5GbG93KCkpOwogCkBA
IC01NSwxMCArNTUsOCBAQCBXaWR0aEFuZE1hcmdpbiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6
R2VvbWV0cnk6OmlubGluZUJsb2NrV2lkdGhBbmRNYXJnaW4oY29ucwogICAgIGF1dG8gY29udGFp
bmluZ0Jsb2NrV2lkdGggPSBsYXlvdXRTdGF0ZS5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KGNvbnRh
aW5pbmdCbG9jaykuY29udGVudEJveFdpZHRoKCk7CiAgICAgLy8gIzEKICAgICBhdXRvIHdpZHRo
ID0gY29tcHV0ZWRWYWx1ZUlmTm90QXV0byhmb3JtYXR0aW5nQ29udGV4dFJvb3Quc3R5bGUoKS5s
b2dpY2FsV2lkdGgoKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpOwotICAgIGlmICghd2lkdGgpIHsK
LSAgICAgICAgYXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IGxheW91dFN0YXRlLmVzdGFibGlzaGVk
Rm9ybWF0dGluZ1N0YXRlKGZvcm1hdHRpbmdDb250ZXh0Um9vdCkuZm9ybWF0dGluZ0NvbnRleHQo
Zm9ybWF0dGluZ0NvbnRleHRSb290KTsKLSAgICAgICAgd2lkdGggPSBzaHJpbmtUb0ZpdFdpZHRo
KGxheW91dFN0YXRlLCAqZm9ybWF0dGluZ0NvbnRleHQsIGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7
Ci0gICAgfQorICAgIGlmICghd2lkdGgpCisgICAgICAgIHdpZHRoID0gc2hyaW5rVG9GaXRXaWR0
aChsYXlvdXRTdGF0ZSwgZm9ybWF0dGluZ0NvbnRleHRSb290KTsKIAogICAgIC8vICMyCiAgICAg
YXV0byBtYXJnaW4gPSBjb21wdXRlZE5vbkNvbGxhcHNlZEhvcml6b250YWxNYXJnaW5WYWx1ZShs
YXlvdXRTdGF0ZSwgZm9ybWF0dGluZ0NvbnRleHRSb290KTsK
</data>
<flag name="review"
          id="370892"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>