<?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>177669</bug_id>
          
          <creation_ts>2017-09-29 10:32:42 -0700</creation_ts>
          <short_desc>[iOS] Remove unused pre-iOS 11 codepaths for writing to the pasteboard</short_desc>
          <delta_ts>2017-09-29 14:38:40 -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>HTML Editing</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1354569</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-29 10:32:42 -0700</bug_when>
    <thetext>This is all just dead code, and can now be safely removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354577</commentid>
    <comment_count>1</comment_count>
      <attachid>322198</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-29 10:37:13 -0700</bug_when>
    <thetext>Created attachment 322198
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354600</commentid>
    <comment_count>2</comment_count>
      <attachid>322198</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-09-29 10:54:11 -0700</bug_when>
    <thetext>Comment on attachment 322198
Patch

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

&gt; Source/WebCore/platform/ios/PlatformPasteboardIOS.mm:55
&gt; +#if TARGET_OS_IOS

I think we usually don&apos;t use the platform target conditionals, and prefer PLATFORM(IOS) &amp;&amp; !(PLATFORM(WATCHOS) || PLATFORM(APPLETV)), however sad that may be. If you don&apos;t want to say that everywhere, add a thing like ENABLE_DATA_DETECTION or HAVE_AVKIT are defined in Platform.h?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354603</commentid>
    <comment_count>3</comment_count>
      <attachid>322198</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-29 11:02:00 -0700</bug_when>
    <thetext>Comment on attachment 322198
Patch

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

&gt;&gt; Source/WebCore/platform/ios/PlatformPasteboardIOS.mm:55
&gt;&gt; +#if TARGET_OS_IOS
&gt; 
&gt; I think we usually don&apos;t use the platform target conditionals, and prefer PLATFORM(IOS) &amp;&amp; !(PLATFORM(WATCHOS) || PLATFORM(APPLETV)), however sad that may be. If you don&apos;t want to say that everywhere, add a thing like ENABLE_DATA_DETECTION or HAVE_AVKIT are defined in Platform.h?

Oh, I see! That sounds fine then. Since this is a pretty specific HAVE(), I think I&apos;ll just use the PLATFORM() macros here. With the exception of the [NSURL _title], these are things we only want to compile if UIPasteboard exposes a list of NSItemProviders, so I&apos;m not sure it&apos;ll be very useful elsewhere. But if it is, we can probably figure out a general term to describe this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354607</commentid>
    <comment_count>4</comment_count>
      <attachid>322213</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-29 11:09:15 -0700</bug_when>
    <thetext>Created attachment 322213
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354636</commentid>
    <comment_count>5</comment_count>
      <attachid>322213</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-29 11:53:26 -0700</bug_when>
    <thetext>Comment on attachment 322213
Patch for landing

Clearing flags on attachment: 322213

Committed r222659: &lt;http://trac.webkit.org/changeset/222659&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354709</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-29 14:38:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/34747803&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322198</attachid>
            <date>2017-09-29 10:37:13 -0700</date>
            <delta_ts>2017-09-29 10:54:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177669-20170929103712.patch</filename>
            <type>text/plain</type>
            <size>11655</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJkYzk3OTc1Nzk0NjUw
ZWYzNjkxMzhmZDRjYTJjNmE4OTcwYjg3Mi4uOTI1ZDUxZjBhNWExYjA5MGUxNmU5ZTJjMjUxYjIw
ZTZhYmUwYjk4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIzIEBACiAyMDE3LTA5LTI5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIFtpT1NdIFJlbW92
ZSB1bnVzZWQgcHJlLWlPUyAxMSBjb2RlcGF0aHMgZm9yIHdyaXRpbmcgdG8gdGhlIHBhc3RlYm9h
cmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzY2
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyB0
aGF0IFBsYXRmb3JtUGFzdGVib2FyZElPUyBjb2RlcGF0aHMgZm9yIHdyaXRpbmcgZGF0YSBvbiBk
cmFnIGFuZCBjb3B5IGhhdmUgYmVlbiB1bmlmaWVkIHRvIGJvdGggdXNlCisgICAgICAgIE5TSXRl
bVByb3ZpZGVycywgd2UgY2FuIHJlbW92ZSB0aGUgbGVnYWN5IGNvZGVwYXRoIHRoYXQgY2FsbGVk
IC1zZXRJdGVtcyBvbiBVSVBhc3RlYm9hcmQsIHNpbmNlIG5vdGhpbmcgdXNlcyBpdAorICAgICAg
ICBhbnkgbW9yZS4gTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogcGxhdGZvcm0v
aW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
UGFzdGVib2FyZDo6d3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJk
Ojp0eXBlc1NhZmVGb3JET01Ub1JlYWRBbmRXcml0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybVBhc3RlYm9hcmQ6OmFsbG93UmVhZGluZ1VSTEF0SW5kZXggY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjpyZWFkVVJMKToKKyAgICAgICAgKFdl
YkNvcmU6OnJpY2hUZXh0UmVwcmVzZW50YXRpb25zRm9yUGFzdGVib2FyZFdlYkNvbnRlbnQpOiBE
ZWxldGVkLgorCisyMDE3LTA5LTI5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgorCiAgICAgICAgIFtpT1MgV0syXSBJbXBsZW1lbnQgLVtXS0NvbnRlbnRWaWV3IGhhc1Rl
eHRdIGZvciBjb21wYXRpYmlsaXR5IHdpdGggdGhlIFVJVGV4dElucHV0IHByb3RvY29sCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc2NjIKICAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzMzNDEwMzczPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KaW5kZXggYWFhNGIzNjhiYWJlYjdm
NzQ1MTE1NTIyY2U1ZjVjMjZlNmNhN2NlYy4uMTBlMWQ3MzdhMjY4YjQ5OWFjM2QzZDY2ODAyMTI1
NTA0Yjk0N2Q2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRm
b3JtUGFzdGVib2FyZElPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxh
dGZvcm1QYXN0ZWJvYXJkSU9TLm1tCkBAIC01Miw3ICs1Miw3IEBAIFBsYXRmb3JtUGFzdGVib2Fy
ZDo6UGxhdGZvcm1QYXN0ZWJvYXJkKCkKIHsKIH0KIAotI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNU
SU9OKQorI2lmIFRBUkdFVF9PU19JT1MKIFBsYXRmb3JtUGFzdGVib2FyZDo6UGxhdGZvcm1QYXN0
ZWJvYXJkKGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICBpZiAobmFtZSA9PSAiZGF0YSBpbnRl
cmFjdGlvbiBwYXN0ZWJvYXJkIikKQEAgLTE5MSw5ICsxOTEsOSBAQCBTdHJpbmcgUGxhdGZvcm1Q
YXN0ZWJvYXJkOjpwbGF0Zm9ybVBhc3RlYm9hcmRUeXBlRm9yU2FmZVR5cGVGb3JET01Ub1JlYWRB
bmRXcml0ZQogICAgIHJldHVybiB7IH07CiB9CiAKLXN0YXRpYyBOU1N0cmluZyAqd2ViSU9TUGFz
dGVQYm9hcmRUeXBlID0gQCJpT1MgcmljaCBjb250ZW50IHBhc3RlIHBhc3RlYm9hcmQgdHlwZSI7
CisjaWYgVEFSR0VUX09TX0lPUwogCi0jaWYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTEwMDAwCitzdGF0aWMgTlNTdHJpbmcgKndlYklPU1Bhc3RlUGJvYXJkVHlwZSA9IEAi
aU9TIHJpY2ggY29udGVudCBwYXN0ZSBwYXN0ZWJvYXJkIHR5cGUiOwogCiBzdGF0aWMgdm9pZCBy
ZWdpc3Rlckl0ZW1Ub1Bhc3RlYm9hcmQoV2ViSXRlbVByb3ZpZGVyUmVnaXN0cmF0aW9uSW5mb0xp
c3QgKnJlcHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIsIGlkIDxBYnN0cmFjdFBhc3RlYm9hcmQ+IHBh
c3RlYm9hcmQpCiB7CkBAIC0yMDYsMzQgKzIwNiw2IEBAIHN0YXRpYyB2b2lkIHJlZ2lzdGVySXRl
bVRvUGFzdGVib2FyZChXZWJJdGVtUHJvdmlkZXJSZWdpc3RyYXRpb25JbmZvTGlzdCAqcmVwcmVz
CiAgICAgICAgIFtwYXN0ZWJvYXJkIHN0YWdlUmVnaXN0cmF0aW9uTGlzdDpyZXByZXNlbnRhdGlv
bnNUb1JlZ2lzdGVyXTsKIH0KIAotI2Vsc2UKLQotc3RhdGljIFJldGFpblB0cjxOU0RpY3Rpb25h
cnk+IHJpY2hUZXh0UmVwcmVzZW50YXRpb25zRm9yUGFzdGVib2FyZFdlYkNvbnRlbnQoY29uc3Qg
UGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCi17Ci0gICAgUmV0YWluUHRyPE5TTXV0YWJs
ZURpY3Rpb25hcnk+IHJlcHJlc2VudGF0aW9ucyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9u
YXJ5IGFsbG9jXSBpbml0XSk7Ci0KLSAgICBBU1NFUlQoY29udGVudC5jbGllbnRUeXBlcy5zaXpl
KCkgPT0gY29udGVudC5jbGllbnREYXRhLnNpemUoKSk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDAs
IHNpemUgPSBjb250ZW50LmNsaWVudFR5cGVzLnNpemUoKTsgaSA8IHNpemU7ICsraSkKLSAgICAg
ICAgW3JlcHJlc2VudGF0aW9ucyBzZXRWYWx1ZTpjb250ZW50LmNsaWVudERhdGFbaV0tPmNyZWF0
ZU5TRGF0YSgpLmdldCgpIGZvcktleTpjb250ZW50LmNsaWVudFR5cGVzW2ldXTsKLQotICAgIGlm
IChjb250ZW50LmRhdGFJbldlYkFyY2hpdmVGb3JtYXQpIHsKLSAgICAgICAgW3JlcHJlc2VudGF0
aW9ucyBzZXRWYWx1ZTooTlNEYXRhICopY29udGVudC5kYXRhSW5XZWJBcmNoaXZlRm9ybWF0LT5j
cmVhdGVOU0RhdGEoKS5nZXQoKSBmb3JLZXk6V2ViQXJjaGl2ZVBib2FyZFR5cGVdOwotICAgICAg
ICAvLyBGbGFnIGZvciBVSUtpdCB0byBrbm93IHRoYXQgdGhpcyBjb3B5IGNvbnRhaW5zIHJpY2gg
Y29udGVudC4gVGhpcyB3aWxsIHRyaWdnZXIgYSB0d28tc3RlcCBwYXN0ZS4KLSAgICAgICAgW3Jl
cHJlc2VudGF0aW9ucyBzZXRWYWx1ZTp3ZWJJT1NQYXN0ZVBib2FyZFR5cGUgZm9yS2V5OndlYklP
U1Bhc3RlUGJvYXJkVHlwZV07Ci0gICAgfQotCi0gICAgaWYgKGNvbnRlbnQuZGF0YUluUlRGREZv
cm1hdCkKLSAgICAgICAgW3JlcHJlc2VudGF0aW9ucyBzZXRWYWx1ZTpjb250ZW50LmRhdGFJblJU
RkRGb3JtYXQtPmNyZWF0ZU5TRGF0YSgpLmdldCgpIGZvcktleTooTlNTdHJpbmcgKilrVVRUeXBl
RmxhdFJURkRdOwotICAgIGlmIChjb250ZW50LmRhdGFJblJURkZvcm1hdCkKLSAgICAgICAgW3Jl
cHJlc2VudGF0aW9ucyBzZXRWYWx1ZTpjb250ZW50LmRhdGFJblJURkZvcm1hdC0+Y3JlYXRlTlNE
YXRhKCkuZ2V0KCkgZm9yS2V5OihOU1N0cmluZyAqKWtVVFR5cGVSVEZdOwotCi0gICAgcmV0dXJu
IHJlcHJlc2VudGF0aW9uczsKLX0KLQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoREFUQV9JTlRFUkFD
VElPTikKLQogc3RhdGljIHZvaWQgYWRkUmVwcmVzZW50YXRpb25zRm9yUGxhaW5UZXh0KFdlYkl0
ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0ICppdGVtc1RvUmVnaXN0ZXIsIGNvbnN0IFN0
cmluZyYgcGxhaW5UZXh0KQogewogICAgIGlmIChwbGFpblRleHQuaXNFbXB0eSgpKQpAQCAtMjU3
LDE4ICsyMjksOCBAQCBib29sIFBsYXRmb3JtUGFzdGVib2FyZDo6YWxsb3dSZWFkaW5nVVJMQXRJ
bmRleChjb25zdCBVUkwmIHVybCwgaW50IGluZGV4KSBjb25zdAogICAgIHJldHVybiB1cmwuaXNW
YWxpZCgpOwogfQogCi0jZWxzZQotCi1ib29sIFBsYXRmb3JtUGFzdGVib2FyZDo6YWxsb3dSZWFk
aW5nVVJMQXRJbmRleChjb25zdCBVUkwmLCBpbnQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7
Ci19Ci0KLSNlbmRpZgotCiB2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFz
dGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCiB7Ci0jaWYgX19JUEhPTkVfT1NfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTEwMDAwCiAgICAgYXV0byByZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVy
ID0gYWRvcHROUyhbW1dlYkl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0IGFsbG9jXSBp
bml0XSk7CiAKICAgICBbcmVwcmVzZW50YXRpb25zVG9SZWdpc3RlciBhZGREYXRhOlt3ZWJJT1NQ
YXN0ZVBib2FyZFR5cGUgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddIGZv
clR5cGU6d2ViSU9TUGFzdGVQYm9hcmRUeXBlXTsKQEAgLTMwMSwyNiArMjYzLDEwIEBAIHZvaWQg
UGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29u
dGVudCkKICAgICAgICAgYWRkUmVwcmVzZW50YXRpb25zRm9yUGxhaW5UZXh0KHJlcHJlc2VudGF0
aW9uc1RvUmVnaXN0ZXIuZ2V0KCksIGNvbnRlbnQuZGF0YUluU3RyaW5nRm9ybWF0KTsKIAogICAg
IHJlZ2lzdGVySXRlbVRvUGFzdGVib2FyZChyZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyLmdldCgp
LCBtX3Bhc3RlYm9hcmQuZ2V0KCkpOwotI2Vsc2UKLSAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGlj
dGlvbmFyeT4gcmVwcmVzZW50YXRpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkg
YWxsb2NdIGluaXRdKTsKLSAgICBbcmVwcmVzZW50YXRpb25zIGFkZEVudHJpZXNGcm9tRGljdGlv
bmFyeTpyaWNoVGV4dFJlcHJlc2VudGF0aW9uc0ZvclBhc3RlYm9hcmRXZWJDb250ZW50KGNvbnRl
bnQpLmF1dG9yZWxlYXNlKCldOwotCi0gICAgTlNTdHJpbmcgKnRleHRBc1N0cmluZyA9IGNvbnRl
bnQuZGF0YUluU3RyaW5nRm9ybWF0OwotICAgIFtyZXByZXNlbnRhdGlvbnMgc2V0VmFsdWU6W3Rl
eHRBc1N0cmluZyBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10gZm9yS2V5
OihOU1N0cmluZyAqKWtVVFR5cGVVVEY4UGxhaW5UZXh0XTsKLSAgICBbcmVwcmVzZW50YXRpb25z
IHNldFZhbHVlOlt0ZXh0QXNTdHJpbmcgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEYxNlN0cmluZ0Vu
Y29kaW5nXSBmb3JLZXk6KE5TU3RyaW5nICopa1VUVHlwZVVURjE2UGxhaW5UZXh0XTsKLSAgICAv
LyBGSVhNRTogV2UgdmVuZCAicHVibGljLnRleHQiIGhlcmUgZm9yIGJhY2t3YXJkcyBjb21wYXRp
YmlsaXR5IHdpdGggcHJlLWlPUyAxMSBhcHBzLiBJbiB0aGUgZnV0dXJlLCB3ZSBzaG91bGQgc3Rv
cCB2ZW5kaW5nIHRoaXMgVVRJLAotICAgIC8vIGFuZCBpbnN0ZWFkIHNldCBkYXRhIGZvciBjb25j
cmV0ZSBwbGFpbiB0ZXh0IHR5cGVzLiBTZWUgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzMzMTc+LgotICAgIFtyZXByZXNlbnRhdGlvbnMgc2V0VmFsdWU6dGV4dEFz
U3RyaW5nIGZvcktleTooTlNTdHJpbmcgKilrVVRUeXBlVGV4dF07Ci0KLSAgICAvLyBFeHBsaWNp
dGx5IGNhc3QgbV9wYXN0ZWJvYXJkIHRvIFVJUGFzdGVib2FyZCAqIHRvIHdvcmsgYXJvdW5kIHJk
YXI6Ly9wcm9ibGVtLzMzMzgzMzU0LgotICAgIEFTU0VSVChbbV9wYXN0ZWJvYXJkIGlzS2luZE9m
Q2xhc3M6Z2V0VUlQYXN0ZWJvYXJkQ2xhc3MoKV0pOwotICAgIFsoVUlQYXN0ZWJvYXJkICopbV9w
YXN0ZWJvYXJkIHNldEl0ZW1zOkBbcmVwcmVzZW50YXRpb25zLmdldCgpXV07Ci0jZW5kaWYKIH0K
IAogdm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRJbWFnZSYg
cGFzdGVib2FyZEltYWdlKQogewotI2lmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDExMDAwMAogICAgIGF1dG8gcmVwcmVzZW50YXRpb25zVG9SZWdpc3RlciA9IGFkb3B0TlMo
W1tXZWJJdGVtUHJvdmlkZXJSZWdpc3RyYXRpb25JbmZvTGlzdCBhbGxvY10gaW5pdF0pOwogCiAg
ICAgYXV0byYgdHlwZXMgPSBwYXN0ZWJvYXJkSW1hZ2UuY2xpZW50VHlwZXM7CkBAIC0zNDksMjMg
KzI5NSwxMCBAQCB2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2Fy
ZEltYWdlJiBwYXN0ZWJvYXJkSW1hZ2UpCiAgICAgfQogCiAgICAgcmVnaXN0ZXJJdGVtVG9QYXN0
ZWJvYXJkKHJlcHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIuZ2V0KCksIG1fcGFzdGVib2FyZC5nZXQo
KSk7Ci0jZWxzZQotICAgIFJldGFpblB0cjxOU011dGFibGVEaWN0aW9uYXJ5PiByZXByZXNlbnRh
dGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0pOwotICAg
IGlmICghcGFzdGVib2FyZEltYWdlLnJlc291cmNlTUlNRVR5cGUuaXNOdWxsKCkpIHsKLSAgICAg
ICAgW3JlcHJlc2VudGF0aW9ucyBzZXRPYmplY3Q6cGFzdGVib2FyZEltYWdlLnJlc291cmNlRGF0
YS0+Y3JlYXRlTlNEYXRhKCkuZ2V0KCkgZm9yS2V5OnBhc3RlYm9hcmRJbWFnZS5yZXNvdXJjZU1J
TUVUeXBlXTsKLSAgICAgICAgaWYgKCFwYXN0ZWJvYXJkSW1hZ2UudXJsLnVybC5pc051bGwoKSkK
LSAgICAgICAgICAgIFtyZXByZXNlbnRhdGlvbnMgc2V0T2JqZWN0OihOU1VSTCAqKXBhc3RlYm9h
cmRJbWFnZS51cmwudXJsIGZvcktleTooTlNTdHJpbmcgKilrVVRUeXBlVVJMXTsKLSAgICB9Ci0K
LSAgICAvLyBFeHBsaWNpdGx5IGNhc3QgbV9wYXN0ZWJvYXJkIHRvIFVJUGFzdGVib2FyZCAqIHRv
IHdvcmsgYXJvdW5kIHJkYXI6Ly9wcm9ibGVtLzMzMzgzMzU0LgotICAgIEFTU0VSVChbbV9wYXN0
ZWJvYXJkIGlzS2luZE9mQ2xhc3M6Z2V0VUlQYXN0ZWJvYXJkQ2xhc3MoKV0pOwotICAgIFsoVUlQ
YXN0ZWJvYXJkICopbV9wYXN0ZWJvYXJkIHNldEl0ZW1zOkBbcmVwcmVzZW50YXRpb25zLmdldCgp
XV07Ci0jZW5kaWYKIH0KIAogdm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKLSNpZiBfX0lQSE9O
RV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDAKICAgICBhdXRvIHJlcHJlc2VudGF0
aW9uc1RvUmVnaXN0ZXIgPSBhZG9wdE5TKFtbV2ViSXRlbVByb3ZpZGVyUmVnaXN0cmF0aW9uSW5m
b0xpc3QgYWxsb2NdIGluaXRdKTsKICAgICBbcmVwcmVzZW50YXRpb25zVG9SZWdpc3RlciBzZXRQ
cmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZTpXZWJQcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZUlu
bGluZV07CiAKQEAgLTM3OSwzMSArMzEyLDEwIEBAIHZvaWQgUGxhdGZvcm1QYXN0ZWJvYXJkOjp3
cml0ZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQpCiAg
ICAgfQogCiAgICAgcmVnaXN0ZXJJdGVtVG9QYXN0ZWJvYXJkKHJlcHJlc2VudGF0aW9uc1RvUmVn
aXN0ZXIuZ2V0KCksIG1fcGFzdGVib2FyZC5nZXQoKSk7Ci0jZWxzZQotICAgIFJldGFpblB0cjxO
U0RpY3Rpb25hcnk+IHJlcHJlc2VudGF0aW9ucyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9u
YXJ5IGFsbG9jXSBpbml0XSk7Ci0KLSAgICBOU1N0cmluZyAqdGV4dEFzU3RyaW5nID0gdGV4dDsK
LSAgICBpZiAocGFzdGVib2FyZFR5cGUgPT0gU3RyaW5nKGtVVFR5cGVVUkwpKSB7Ci0gICAgICAg
IFtyZXByZXNlbnRhdGlvbnMgc2V0VmFsdWU6YWRvcHROUyhbW05TVVJMIGFsbG9jXSBpbml0V2l0
aFN0cmluZzp0ZXh0XSkuZ2V0KCkgZm9yS2V5OnBhc3RlYm9hcmRUeXBlXTsKLSAgICAgICAgW3Jl
cHJlc2VudGF0aW9ucyBzZXRWYWx1ZTp0ZXh0QXNTdHJpbmcgZm9yS2V5OihOU1N0cmluZyAqKWtV
VFR5cGVUZXh0XTsKLSAgICB9IGVsc2UgaWYgKCFwYXN0ZWJvYXJkVHlwZS5pc051bGwoKSkKLSAg
ICAgICAgW3JlcHJlc2VudGF0aW9ucyBzZXRWYWx1ZTp0ZXh0QXNTdHJpbmcgZm9yS2V5OnBhc3Rl
Ym9hcmRUeXBlXTsKLQotICAgIGF1dG8gY2ZQYXN0ZWJvYXJkVHlwZSA9IHBhc3RlYm9hcmRUeXBl
LmNyZWF0ZUNGU3RyaW5nKCk7Ci0gICAgaWYgKFVUVHlwZUNvbmZvcm1zVG8oY2ZQYXN0ZWJvYXJk
VHlwZS5nZXQoKSwga1VUVHlwZVRleHQpIHx8IFVUVHlwZUNvbmZvcm1zVG8oY2ZQYXN0ZWJvYXJk
VHlwZS5nZXQoKSwga1VUVHlwZVVSTCkpIHsKLSAgICAgICAgW3JlcHJlc2VudGF0aW9ucyBzZXRW
YWx1ZTpbdGV4dEFzU3RyaW5nIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5n
XSBmb3JLZXk6KE5TU3RyaW5nICopa1VUVHlwZVVURjhQbGFpblRleHRdOwotICAgICAgICBbcmVw
cmVzZW50YXRpb25zIHNldFZhbHVlOlt0ZXh0QXNTdHJpbmcgZGF0YVVzaW5nRW5jb2Rpbmc6TlNV
VEYxNlN0cmluZ0VuY29kaW5nXSBmb3JLZXk6KE5TU3RyaW5nICopa1VUVHlwZVVURjE2UGxhaW5U
ZXh0XTsKLSAgICB9Ci0KLSAgICAvLyBFeHBsaWNpdGx5IGNhc3QgbV9wYXN0ZWJvYXJkIHRvIFVJ
UGFzdGVib2FyZCAqIHRvIHdvcmsgYXJvdW5kIHJkYXI6Ly9wcm9ibGVtLzMzMzgzMzU0LgotICAg
IEFTU0VSVChbbV9wYXN0ZWJvYXJkIGlzS2luZE9mQ2xhc3M6Z2V0VUlQYXN0ZWJvYXJkQ2xhc3Mo
KV0pOwotICAgIFsoVUlQYXN0ZWJvYXJkICopbV9wYXN0ZWJvYXJkIHNldEl0ZW1zOkBbcmVwcmVz
ZW50YXRpb25zLmdldCgpXV07Ci0jZW5kaWYKIH0KIAogdm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6
OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRVUkwmIHVybCkKIHsKLSNpZiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDAKICAgICBhdXRvIHJlcHJlc2VudGF0aW9uc1RvUmVn
aXN0ZXIgPSBhZG9wdE5TKFtbV2ViSXRlbVByb3ZpZGVyUmVnaXN0cmF0aW9uSW5mb0xpc3QgYWxs
b2NdIGluaXRdKTsKICAgICBbcmVwcmVzZW50YXRpb25zVG9SZWdpc3RlciBzZXRQcmVmZXJyZWRQ
cmVzZW50YXRpb25TdHlsZTpXZWJQcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZUlubGluZV07CiAK
QEAgLTQxNCw5ICszMjYsNiBAQCB2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3Qg
UGFzdGVib2FyZFVSTCYgdXJsKQogICAgIH0KIAogICAgIHJlZ2lzdGVySXRlbVRvUGFzdGVib2Fy
ZChyZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyLmdldCgpLCBtX3Bhc3RlYm9hcmQuZ2V0KCkpOwot
I2Vsc2UKLSAgICB3cml0ZShrVVRUeXBlVVJMLCB1cmwudXJsLnN0cmluZygpKTsKLSNlbmRpZgog
fQogCiBzdGF0aWMgY29uc3QgY2hhciAqc2FmZVR5cGVGb3JET01Ub1JlYWRBbmRXcml0ZUZvclBs
YXRmb3JtVHlwZShjb25zdCBTdHJpbmcmIHBsYXRmb3JtVHlwZSkKQEAgLTQzNiw3ICszNDUsNiBA
QCBzdGF0aWMgY29uc3QgY2hhciAqc2FmZVR5cGVGb3JET01Ub1JlYWRBbmRXcml0ZUZvclBsYXRm
b3JtVHlwZShjb25zdCBTdHJpbmcmIHBsYQogCiBWZWN0b3I8U3RyaW5nPiBQbGF0Zm9ybVBhc3Rl
Ym9hcmQ6OnR5cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRlKCkgY29uc3QKIHsKLSNpZiBUQVJH
RVRfT1NfSU9TCiAgICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiBkb21QYXN0ZWJvYXJkVHlwZXM7CiAg
ICAgZm9yIChOU0l0ZW1Qcm92aWRlciAqcHJvdmlkZXIgaW4gW21fcGFzdGVib2FyZCBpdGVtUHJv
dmlkZXJzXSkgewogICAgICAgICBpZiAoIXByb3ZpZGVyLnRlYW1EYXRhLmxlbmd0aCkKQEAgLTQ3
NiwxNCArMzg0LDEwIEBAIFZlY3RvcjxTdHJpbmc+IFBsYXRmb3JtUGFzdGVib2FyZDo6dHlwZXNT
YWZlRm9yRE9NVG9SZWFkQW5kV3JpdGUoKSBjb25zdAogICAgIFZlY3RvcjxTdHJpbmc+IHJlc3Vs
dDsKICAgICBjb3B5VG9WZWN0b3IoZG9tUGFzdGVib2FyZFR5cGVzLCByZXN1bHQpOwogICAgIHJl
dHVybiByZXN1bHQ7Ci0jZWxzZQotICAgIHJldHVybiB7IH07Ci0jZW5kaWYKIH0KIAogbG9uZyBQ
bGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRDdXN0b21EYXRhJiBkYXRh
KQogewotI2lmIFRBUkdFVF9PU19JT1MKICAgICBhdXRvIHJlcHJlc2VudGF0aW9uc1RvUmVnaXN0
ZXIgPSBhZG9wdE5TKFtbV2ViSXRlbVByb3ZpZGVyUmVnaXN0cmF0aW9uSW5mb0xpc3QgYWxsb2Nd
IGluaXRdKTsKICAgICBbcmVwcmVzZW50YXRpb25zVG9SZWdpc3RlciBzZXRQcmVmZXJyZWRQcmVz
ZW50YXRpb25TdHlsZTpXZWJQcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZUlubGluZV07CiAKQEAg
LTUxOSwxMSArNDIzLDQzIEBAIGxvbmcgUGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQ
YXN0ZWJvYXJkQ3VzdG9tRGF0YSYgZGF0YSkKIAogICAgIHJlZ2lzdGVySXRlbVRvUGFzdGVib2Fy
ZChyZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyLmdldCgpLCBtX3Bhc3RlYm9hcmQuZ2V0KCkpOwog
ICAgIHJldHVybiBbbV9wYXN0ZWJvYXJkIGNoYW5nZUNvdW50XTsKLSNlbHNlCi0gICAgVU5VU0VE
X1BBUkFNKGRhdGEpOwotI2VuZGlmCiB9CiAKKyNlbHNlIC8vICFUQVJHRVRfT1NfSU9TCisKK2Jv
b2wgUGxhdGZvcm1QYXN0ZWJvYXJkOjphbGxvd1JlYWRpbmdVUkxBdEluZGV4KGNvbnN0IFVSTCYs
IGludCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGxhdGZvcm1QYXN0
ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYpCit7Cit9CisKK3ZvaWQg
UGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkSW1hZ2UmKQoreworfQor
Cit2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJikKK3sKK30KKwordm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3Rl
Ym9hcmRVUkwmKQoreworfQorCitWZWN0b3I8U3RyaW5nPiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnR5
cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyB9Owor
fQorCitsb25nIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZEN1c3Rv
bURhdGEmKQoreworICAgIHJldHVybiAwOworfQorCisjZW5kaWYKKwogaW50IFBsYXRmb3JtUGFz
dGVib2FyZDo6Y291bnQoKQogewogICAgIHJldHVybiBbbV9wYXN0ZWJvYXJkIG51bWJlck9mSXRl
bXNdOwpAQCAtNTk0LDcgKzUzMCw3IEBAIFVSTCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRVUkwo
aW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHR5cGUsIFN0cmluZyYgdGl0bGUpCiAgICAgaWYgKCFh
bGxvd1JlYWRpbmdVUkxBdEluZGV4KChOU1VSTCAqKXZhbHVlLCBpbmRleCkpCiAgICAgICAgIHJl
dHVybiB7IH07CiAKLSNpZiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAw
MDAKKyNpZiBUQVJHRVRfT1NfSU9TCiAgICAgdGl0bGUgPSBbdmFsdWUgX3RpdGxlXTsKICNlbHNl
CiAgICAgVU5VU0VEX1BBUkFNKHRpdGxlKTsK
</data>
<flag name="review"
          id="342097"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322213</attachid>
            <date>2017-09-29 11:09:15 -0700</date>
            <delta_ts>2017-09-29 11:53:26 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-177669-20170929110915.patch</filename>
            <type>text/plain</type>
            <size>11610</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJiYTQ2NTFmYTFlNTJi
NTU1NmM4ODM3NDgyMTcyYzFkNDM1OGQ2Yy4uYTRhMGNjYmEwNWIyNzFlZTg2ZTFiNjI1Y2Y4NDQ0
MmE0MzU1Njc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE3LTA5LTI5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFJlbW92
ZSB1bnVzZWQgcHJlLWlPUyAxMSBjb2RlcGF0aHMgZm9yIHdyaXRpbmcgdG8gdGhlIHBhc3RlYm9h
cmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzY2
OQorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgTm93IHRoYXQg
UGxhdGZvcm1QYXN0ZWJvYXJkSU9TIGNvZGVwYXRocyBmb3Igd3JpdGluZyBkYXRhIG9uIGRyYWcg
YW5kIGNvcHkgaGF2ZSBiZWVuIHVuaWZpZWQgdG8gYm90aCB1c2UKKyAgICAgICAgTlNJdGVtUHJv
dmlkZXJzLCB3ZSBjYW4gcmVtb3ZlIHRoZSBsZWdhY3kgY29kZXBhdGggdGhhdCBjYWxsZWQgLXNl
dEl0ZW1zIG9uIFVJUGFzdGVib2FyZCwgc2luY2Ugbm90aGluZyB1c2VzIGl0CisgICAgICAgIGFu
eSBtb3JlLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mv
UGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0
ZWJvYXJkOjp3cml0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVBhc3RlYm9hcmQ6OnR5
cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBs
YXRmb3JtUGFzdGVib2FyZDo6YWxsb3dSZWFkaW5nVVJMQXRJbmRleCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRVUkwpOgorICAgICAgICAoV2ViQ29y
ZTo6cmljaFRleHRSZXByZXNlbnRhdGlvbnNGb3JQYXN0ZWJvYXJkV2ViQ29udGVudCk6IERlbGV0
ZWQuCisKIDIwMTctMDktMjggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIyMjYwNi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tCmluZGV4
IGFhYTRiMzY4YmFiZWI3Zjc0NTExNTUyMmNlNWY1YzI2ZTZjYTdjZWMuLjhmNzg3Yjk5Yzg2MDBj
ZmFiOTA0NzZkZWM4NjkyODZjZjNiNmIxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbQpAQCAtNTIsNyArNTIsNyBAQCBQ
bGF0Zm9ybVBhc3RlYm9hcmQ6OlBsYXRmb3JtUGFzdGVib2FyZCgpCiB7CiB9CiAKLSNpZiBFTkFC
TEUoREFUQV9JTlRFUkFDVElPTikKKyNpZiBQTEFURk9STShJT1MpICYmICEoUExBVEZPUk0oV0FU
Q0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikpCiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OlBsYXRmb3Jt
UGFzdGVib2FyZChjb25zdCBTdHJpbmcmIG5hbWUpCiB7CiAgICAgaWYgKG5hbWUgPT0gImRhdGEg
aW50ZXJhY3Rpb24gcGFzdGVib2FyZCIpCkBAIC0xOTEsOSArMTkxLDkgQEAgU3RyaW5nIFBsYXRm
b3JtUGFzdGVib2FyZDo6cGxhdGZvcm1QYXN0ZWJvYXJkVHlwZUZvclNhZmVUeXBlRm9yRE9NVG9S
ZWFkQW5kV3JpdGUKICAgICByZXR1cm4geyB9OwogfQogCi1zdGF0aWMgTlNTdHJpbmcgKndlYklP
U1Bhc3RlUGJvYXJkVHlwZSA9IEAiaU9TIHJpY2ggY29udGVudCBwYXN0ZSBwYXN0ZWJvYXJkIHR5
cGUiOworI2lmIFBMQVRGT1JNKElPUykgJiYgIShQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9S
TShBUFBMRVRWKSkKIAotI2lmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEx
MDAwMAorc3RhdGljIE5TU3RyaW5nICp3ZWJJT1NQYXN0ZVBib2FyZFR5cGUgPSBAImlPUyByaWNo
IGNvbnRlbnQgcGFzdGUgcGFzdGVib2FyZCB0eXBlIjsKIAogc3RhdGljIHZvaWQgcmVnaXN0ZXJJ
dGVtVG9QYXN0ZWJvYXJkKFdlYkl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0ICpyZXBy
ZXNlbnRhdGlvbnNUb1JlZ2lzdGVyLCBpZCA8QWJzdHJhY3RQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJk
KQogewpAQCAtMjA2LDM0ICsyMDYsNiBAQCBzdGF0aWMgdm9pZCByZWdpc3Rlckl0ZW1Ub1Bhc3Rl
Ym9hcmQoV2ViSXRlbVByb3ZpZGVyUmVnaXN0cmF0aW9uSW5mb0xpc3QgKnJlcHJlcwogICAgICAg
ICBbcGFzdGVib2FyZCBzdGFnZVJlZ2lzdHJhdGlvbkxpc3Q6cmVwcmVzZW50YXRpb25zVG9SZWdp
c3Rlcl07CiB9CiAKLSNlbHNlCi0KLXN0YXRpYyBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5PiByaWNo
VGV4dFJlcHJlc2VudGF0aW9uc0ZvclBhc3RlYm9hcmRXZWJDb250ZW50KGNvbnN0IFBhc3RlYm9h
cmRXZWJDb250ZW50JiBjb250ZW50KQotewotICAgIFJldGFpblB0cjxOU011dGFibGVEaWN0aW9u
YXJ5PiByZXByZXNlbnRhdGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxv
Y10gaW5pdF0pOwotCi0gICAgQVNTRVJUKGNvbnRlbnQuY2xpZW50VHlwZXMuc2l6ZSgpID09IGNv
bnRlbnQuY2xpZW50RGF0YS5zaXplKCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0g
Y29udGVudC5jbGllbnRUeXBlcy5zaXplKCk7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIFtyZXBy
ZXNlbnRhdGlvbnMgc2V0VmFsdWU6Y29udGVudC5jbGllbnREYXRhW2ldLT5jcmVhdGVOU0RhdGEo
KS5nZXQoKSBmb3JLZXk6Y29udGVudC5jbGllbnRUeXBlc1tpXV07Ci0KLSAgICBpZiAoY29udGVu
dC5kYXRhSW5XZWJBcmNoaXZlRm9ybWF0KSB7Ci0gICAgICAgIFtyZXByZXNlbnRhdGlvbnMgc2V0
VmFsdWU6KE5TRGF0YSAqKWNvbnRlbnQuZGF0YUluV2ViQXJjaGl2ZUZvcm1hdC0+Y3JlYXRlTlNE
YXRhKCkuZ2V0KCkgZm9yS2V5OldlYkFyY2hpdmVQYm9hcmRUeXBlXTsKLSAgICAgICAgLy8gRmxh
ZyBmb3IgVUlLaXQgdG8ga25vdyB0aGF0IHRoaXMgY29weSBjb250YWlucyByaWNoIGNvbnRlbnQu
IFRoaXMgd2lsbCB0cmlnZ2VyIGEgdHdvLXN0ZXAgcGFzdGUuCi0gICAgICAgIFtyZXByZXNlbnRh
dGlvbnMgc2V0VmFsdWU6d2ViSU9TUGFzdGVQYm9hcmRUeXBlIGZvcktleTp3ZWJJT1NQYXN0ZVBi
b2FyZFR5cGVdOwotICAgIH0KLQotICAgIGlmIChjb250ZW50LmRhdGFJblJURkRGb3JtYXQpCi0g
ICAgICAgIFtyZXByZXNlbnRhdGlvbnMgc2V0VmFsdWU6Y29udGVudC5kYXRhSW5SVEZERm9ybWF0
LT5jcmVhdGVOU0RhdGEoKS5nZXQoKSBmb3JLZXk6KE5TU3RyaW5nICopa1VUVHlwZUZsYXRSVEZE
XTsKLSAgICBpZiAoY29udGVudC5kYXRhSW5SVEZGb3JtYXQpCi0gICAgICAgIFtyZXByZXNlbnRh
dGlvbnMgc2V0VmFsdWU6Y29udGVudC5kYXRhSW5SVEZGb3JtYXQtPmNyZWF0ZU5TRGF0YSgpLmdl
dCgpIGZvcktleTooTlNTdHJpbmcgKilrVVRUeXBlUlRGXTsKLQotICAgIHJldHVybiByZXByZXNl
bnRhdGlvbnM7Ci19Ci0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0K
IHN0YXRpYyB2b2lkIGFkZFJlcHJlc2VudGF0aW9uc0ZvclBsYWluVGV4dChXZWJJdGVtUHJvdmlk
ZXJSZWdpc3RyYXRpb25JbmZvTGlzdCAqaXRlbXNUb1JlZ2lzdGVyLCBjb25zdCBTdHJpbmcmIHBs
YWluVGV4dCkKIHsKICAgICBpZiAocGxhaW5UZXh0LmlzRW1wdHkoKSkKQEAgLTI1NywxOCArMjI5
LDggQEAgYm9vbCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OmFsbG93UmVhZGluZ1VSTEF0SW5kZXgoY29u
c3QgVVJMJiB1cmwsIGludCBpbmRleCkgY29uc3QKICAgICByZXR1cm4gdXJsLmlzVmFsaWQoKTsK
IH0KIAotI2Vsc2UKLQotYm9vbCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OmFsbG93UmVhZGluZ1VSTEF0
SW5kZXgoY29uc3QgVVJMJiwgaW50KSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCi0j
ZW5kaWYKLQogdm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRX
ZWJDb250ZW50JiBjb250ZW50KQogewotI2lmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDExMDAwMAogICAgIGF1dG8gcmVwcmVzZW50YXRpb25zVG9SZWdpc3RlciA9IGFkb3B0
TlMoW1tXZWJJdGVtUHJvdmlkZXJSZWdpc3RyYXRpb25JbmZvTGlzdCBhbGxvY10gaW5pdF0pOwog
CiAgICAgW3JlcHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIgYWRkRGF0YTpbd2ViSU9TUGFzdGVQYm9h
cmRUeXBlIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSBmb3JUeXBlOndl
YklPU1Bhc3RlUGJvYXJkVHlwZV07CkBAIC0zMDEsMjYgKzI2MywxMCBAQCB2b2lkIFBsYXRmb3Jt
UGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCiAg
ICAgICAgIGFkZFJlcHJlc2VudGF0aW9uc0ZvclBsYWluVGV4dChyZXByZXNlbnRhdGlvbnNUb1Jl
Z2lzdGVyLmdldCgpLCBjb250ZW50LmRhdGFJblN0cmluZ0Zvcm1hdCk7CiAKICAgICByZWdpc3Rl
ckl0ZW1Ub1Bhc3RlYm9hcmQocmVwcmVzZW50YXRpb25zVG9SZWdpc3Rlci5nZXQoKSwgbV9wYXN0
ZWJvYXJkLmdldCgpKTsKLSNlbHNlCi0gICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+
IHJlcHJlc2VudGF0aW9ucyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBp
bml0XSk7Ci0gICAgW3JlcHJlc2VudGF0aW9ucyBhZGRFbnRyaWVzRnJvbURpY3Rpb25hcnk6cmlj
aFRleHRSZXByZXNlbnRhdGlvbnNGb3JQYXN0ZWJvYXJkV2ViQ29udGVudChjb250ZW50KS5hdXRv
cmVsZWFzZSgpXTsKLQotICAgIE5TU3RyaW5nICp0ZXh0QXNTdHJpbmcgPSBjb250ZW50LmRhdGFJ
blN0cmluZ0Zvcm1hdDsKLSAgICBbcmVwcmVzZW50YXRpb25zIHNldFZhbHVlOlt0ZXh0QXNTdHJp
bmcgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddIGZvcktleTooTlNTdHJp
bmcgKilrVVRUeXBlVVRGOFBsYWluVGV4dF07Ci0gICAgW3JlcHJlc2VudGF0aW9ucyBzZXRWYWx1
ZTpbdGV4dEFzU3RyaW5nIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGMTZTdHJpbmdFbmNvZGluZ10g
Zm9yS2V5OihOU1N0cmluZyAqKWtVVFR5cGVVVEYxNlBsYWluVGV4dF07Ci0gICAgLy8gRklYTUU6
IFdlIHZlbmQgInB1YmxpYy50ZXh0IiBoZXJlIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3
aXRoIHByZS1pT1MgMTEgYXBwcy4gSW4gdGhlIGZ1dHVyZSwgd2Ugc2hvdWxkIHN0b3AgdmVuZGlu
ZyB0aGlzIFVUSSwKLSAgICAvLyBhbmQgaW5zdGVhZCBzZXQgZGF0YSBmb3IgY29uY3JldGUgcGxh
aW4gdGV4dCB0eXBlcy4gU2VlIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTczMzE3Pi4KLSAgICBbcmVwcmVzZW50YXRpb25zIHNldFZhbHVlOnRleHRBc1N0cmluZyBm
b3JLZXk6KE5TU3RyaW5nICopa1VUVHlwZVRleHRdOwotCi0gICAgLy8gRXhwbGljaXRseSBjYXN0
IG1fcGFzdGVib2FyZCB0byBVSVBhc3RlYm9hcmQgKiB0byB3b3JrIGFyb3VuZCByZGFyOi8vcHJv
YmxlbS8zMzM4MzM1NC4KLSAgICBBU1NFUlQoW21fcGFzdGVib2FyZCBpc0tpbmRPZkNsYXNzOmdl
dFVJUGFzdGVib2FyZENsYXNzKCldKTsKLSAgICBbKFVJUGFzdGVib2FyZCAqKW1fcGFzdGVib2Fy
ZCBzZXRJdGVtczpAW3JlcHJlc2VudGF0aW9ucy5nZXQoKV1dOwotI2VuZGlmCiB9CiAKIHZvaWQg
UGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkSW1hZ2UmIHBhc3RlYm9h
cmRJbWFnZSkKIHsKLSNpZiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAw
MDAKICAgICBhdXRvIHJlcHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIgPSBhZG9wdE5TKFtbV2ViSXRl
bVByb3ZpZGVyUmVnaXN0cmF0aW9uSW5mb0xpc3QgYWxsb2NdIGluaXRdKTsKIAogICAgIGF1dG8m
IHR5cGVzID0gcGFzdGVib2FyZEltYWdlLmNsaWVudFR5cGVzOwpAQCAtMzQ5LDIzICsyOTUsMTAg
QEAgdm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRJbWFnZSYg
cGFzdGVib2FyZEltYWdlKQogICAgIH0KIAogICAgIHJlZ2lzdGVySXRlbVRvUGFzdGVib2FyZChy
ZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyLmdldCgpLCBtX3Bhc3RlYm9hcmQuZ2V0KCkpOwotI2Vs
c2UKLSAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gcmVwcmVzZW50YXRpb25zID0g
YWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKLSAgICBpZiAoIXBh
c3RlYm9hcmRJbWFnZS5yZXNvdXJjZU1JTUVUeXBlLmlzTnVsbCgpKSB7Ci0gICAgICAgIFtyZXBy
ZXNlbnRhdGlvbnMgc2V0T2JqZWN0OnBhc3RlYm9hcmRJbWFnZS5yZXNvdXJjZURhdGEtPmNyZWF0
ZU5TRGF0YSgpLmdldCgpIGZvcktleTpwYXN0ZWJvYXJkSW1hZ2UucmVzb3VyY2VNSU1FVHlwZV07
Ci0gICAgICAgIGlmICghcGFzdGVib2FyZEltYWdlLnVybC51cmwuaXNOdWxsKCkpCi0gICAgICAg
ICAgICBbcmVwcmVzZW50YXRpb25zIHNldE9iamVjdDooTlNVUkwgKilwYXN0ZWJvYXJkSW1hZ2Uu
dXJsLnVybCBmb3JLZXk6KE5TU3RyaW5nICopa1VUVHlwZVVSTF07Ci0gICAgfQotCi0gICAgLy8g
RXhwbGljaXRseSBjYXN0IG1fcGFzdGVib2FyZCB0byBVSVBhc3RlYm9hcmQgKiB0byB3b3JrIGFy
b3VuZCByZGFyOi8vcHJvYmxlbS8zMzM4MzM1NC4KLSAgICBBU1NFUlQoW21fcGFzdGVib2FyZCBp
c0tpbmRPZkNsYXNzOmdldFVJUGFzdGVib2FyZENsYXNzKCldKTsKLSAgICBbKFVJUGFzdGVib2Fy
ZCAqKW1fcGFzdGVib2FyZCBzZXRJdGVtczpAW3JlcHJlc2VudGF0aW9ucy5nZXQoKV1dOwotI2Vu
ZGlmCiB9CiAKIHZvaWQgUGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQpCiB7Ci0jaWYgX19JUEhPTkVfT1NfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwCiAgICAgYXV0byByZXByZXNlbnRhdGlvbnNUb1Jl
Z2lzdGVyID0gYWRvcHROUyhbW1dlYkl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0IGFs
bG9jXSBpbml0XSk7CiAgICAgW3JlcHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIgc2V0UHJlZmVycmVk
UHJlc2VudGF0aW9uU3R5bGU6V2ViUHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGVJbmxpbmVdOwog
CkBAIC0zNzksMzEgKzMxMiwxMCBAQCB2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQogICAgIH0KIAog
ICAgIHJlZ2lzdGVySXRlbVRvUGFzdGVib2FyZChyZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyLmdl
dCgpLCBtX3Bhc3RlYm9hcmQuZ2V0KCkpOwotI2Vsc2UKLSAgICBSZXRhaW5QdHI8TlNEaWN0aW9u
YXJ5PiByZXByZXNlbnRhdGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxv
Y10gaW5pdF0pOwotCi0gICAgTlNTdHJpbmcgKnRleHRBc1N0cmluZyA9IHRleHQ7Ci0gICAgaWYg
KHBhc3RlYm9hcmRUeXBlID09IFN0cmluZyhrVVRUeXBlVVJMKSkgewotICAgICAgICBbcmVwcmVz
ZW50YXRpb25zIHNldFZhbHVlOmFkb3B0TlMoW1tOU1VSTCBhbGxvY10gaW5pdFdpdGhTdHJpbmc6
dGV4dF0pLmdldCgpIGZvcktleTpwYXN0ZWJvYXJkVHlwZV07Ci0gICAgICAgIFtyZXByZXNlbnRh
dGlvbnMgc2V0VmFsdWU6dGV4dEFzU3RyaW5nIGZvcktleTooTlNTdHJpbmcgKilrVVRUeXBlVGV4
dF07Ci0gICAgfSBlbHNlIGlmICghcGFzdGVib2FyZFR5cGUuaXNOdWxsKCkpCi0gICAgICAgIFty
ZXByZXNlbnRhdGlvbnMgc2V0VmFsdWU6dGV4dEFzU3RyaW5nIGZvcktleTpwYXN0ZWJvYXJkVHlw
ZV07Ci0KLSAgICBhdXRvIGNmUGFzdGVib2FyZFR5cGUgPSBwYXN0ZWJvYXJkVHlwZS5jcmVhdGVD
RlN0cmluZygpOwotICAgIGlmIChVVFR5cGVDb25mb3Jtc1RvKGNmUGFzdGVib2FyZFR5cGUuZ2V0
KCksIGtVVFR5cGVUZXh0KSB8fCBVVFR5cGVDb25mb3Jtc1RvKGNmUGFzdGVib2FyZFR5cGUuZ2V0
KCksIGtVVFR5cGVVUkwpKSB7Ci0gICAgICAgIFtyZXByZXNlbnRhdGlvbnMgc2V0VmFsdWU6W3Rl
eHRBc1N0cmluZyBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10gZm9yS2V5
OihOU1N0cmluZyAqKWtVVFR5cGVVVEY4UGxhaW5UZXh0XTsKLSAgICAgICAgW3JlcHJlc2VudGF0
aW9ucyBzZXRWYWx1ZTpbdGV4dEFzU3RyaW5nIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGMTZTdHJp
bmdFbmNvZGluZ10gZm9yS2V5OihOU1N0cmluZyAqKWtVVFR5cGVVVEYxNlBsYWluVGV4dF07Ci0g
ICAgfQotCi0gICAgLy8gRXhwbGljaXRseSBjYXN0IG1fcGFzdGVib2FyZCB0byBVSVBhc3RlYm9h
cmQgKiB0byB3b3JrIGFyb3VuZCByZGFyOi8vcHJvYmxlbS8zMzM4MzM1NC4KLSAgICBBU1NFUlQo
W21fcGFzdGVib2FyZCBpc0tpbmRPZkNsYXNzOmdldFVJUGFzdGVib2FyZENsYXNzKCldKTsKLSAg
ICBbKFVJUGFzdGVib2FyZCAqKW1fcGFzdGVib2FyZCBzZXRJdGVtczpAW3JlcHJlc2VudGF0aW9u
cy5nZXQoKV1dOwotI2VuZGlmCiB9CiAKIHZvaWQgUGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZShj
b25zdCBQYXN0ZWJvYXJkVVJMJiB1cmwpCiB7Ci0jaWYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTEwMDAwCiAgICAgYXV0byByZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyID0g
YWRvcHROUyhbW1dlYkl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0IGFsbG9jXSBpbml0
XSk7CiAgICAgW3JlcHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIgc2V0UHJlZmVycmVkUHJlc2VudGF0
aW9uU3R5bGU6V2ViUHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGVJbmxpbmVdOwogCkBAIC00MTQs
OSArMzI2LDYgQEAgdm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9h
cmRVUkwmIHVybCkKICAgICB9CiAKICAgICByZWdpc3Rlckl0ZW1Ub1Bhc3RlYm9hcmQocmVwcmVz
ZW50YXRpb25zVG9SZWdpc3Rlci5nZXQoKSwgbV9wYXN0ZWJvYXJkLmdldCgpKTsKLSNlbHNlCi0g
ICAgd3JpdGUoa1VUVHlwZVVSTCwgdXJsLnVybC5zdHJpbmcoKSk7Ci0jZW5kaWYKIH0KIAogc3Rh
dGljIGNvbnN0IGNoYXIgKnNhZmVUeXBlRm9yRE9NVG9SZWFkQW5kV3JpdGVGb3JQbGF0Zm9ybVR5
cGUoY29uc3QgU3RyaW5nJiBwbGF0Zm9ybVR5cGUpCkBAIC00MzYsNyArMzQ1LDYgQEAgc3RhdGlj
IGNvbnN0IGNoYXIgKnNhZmVUeXBlRm9yRE9NVG9SZWFkQW5kV3JpdGVGb3JQbGF0Zm9ybVR5cGUo
Y29uc3QgU3RyaW5nJiBwbGEKIAogVmVjdG9yPFN0cmluZz4gUGxhdGZvcm1QYXN0ZWJvYXJkOjp0
eXBlc1NhZmVGb3JET01Ub1JlYWRBbmRXcml0ZSgpIGNvbnN0CiB7Ci0jaWYgVEFSR0VUX09TX0lP
UwogICAgIExpc3RIYXNoU2V0PFN0cmluZz4gZG9tUGFzdGVib2FyZFR5cGVzOwogICAgIGZvciAo
TlNJdGVtUHJvdmlkZXIgKnByb3ZpZGVyIGluIFttX3Bhc3RlYm9hcmQgaXRlbVByb3ZpZGVyc10p
IHsKICAgICAgICAgaWYgKCFwcm92aWRlci50ZWFtRGF0YS5sZW5ndGgpCkBAIC00NzYsMTQgKzM4
NCwxMCBAQCBWZWN0b3I8U3RyaW5nPiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnR5cGVzU2FmZUZvckRP
TVRvUmVhZEFuZFdyaXRlKCkgY29uc3QKICAgICBWZWN0b3I8U3RyaW5nPiByZXN1bHQ7CiAgICAg
Y29weVRvVmVjdG9yKGRvbVBhc3RlYm9hcmRUeXBlcywgcmVzdWx0KTsKICAgICByZXR1cm4gcmVz
dWx0OwotI2Vsc2UKLSAgICByZXR1cm4geyB9OwotI2VuZGlmCiB9CiAKIGxvbmcgUGxhdGZvcm1Q
YXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkQ3VzdG9tRGF0YSYgZGF0YSkKIHsKLSNp
ZiBUQVJHRVRfT1NfSU9TCiAgICAgYXV0byByZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyID0gYWRv
cHROUyhbW1dlYkl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0IGFsbG9jXSBpbml0XSk7
CiAgICAgW3JlcHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIgc2V0UHJlZmVycmVkUHJlc2VudGF0aW9u
U3R5bGU6V2ViUHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGVJbmxpbmVdOwogCkBAIC01MTksMTEg
KzQyMyw0MyBAQCBsb25nIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2Fy
ZEN1c3RvbURhdGEmIGRhdGEpCiAKICAgICByZWdpc3Rlckl0ZW1Ub1Bhc3RlYm9hcmQocmVwcmVz
ZW50YXRpb25zVG9SZWdpc3Rlci5nZXQoKSwgbV9wYXN0ZWJvYXJkLmdldCgpKTsKICAgICByZXR1
cm4gW21fcGFzdGVib2FyZCBjaGFuZ2VDb3VudF07Cit9CisKICNlbHNlCi0gICAgVU5VU0VEX1BB
UkFNKGRhdGEpOwotI2VuZGlmCisKK2Jvb2wgUGxhdGZvcm1QYXN0ZWJvYXJkOjphbGxvd1JlYWRp
bmdVUkxBdEluZGV4KGNvbnN0IFVSTCYsIGludCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK3ZvaWQgUGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkV2Vi
Q29udGVudCYpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQ
YXN0ZWJvYXJkSW1hZ2UmKQorewogfQogCit2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUo
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3sKK30KKwordm9pZCBQbGF0Zm9ybVBhc3Rl
Ym9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRVUkwmKQoreworfQorCitWZWN0b3I8U3RyaW5n
PiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnR5cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRlKCkgY29u
c3QKK3sKKyAgICByZXR1cm4geyB9OworfQorCitsb25nIFBsYXRmb3JtUGFzdGVib2FyZDo6d3Jp
dGUoY29uc3QgUGFzdGVib2FyZEN1c3RvbURhdGEmKQoreworICAgIHJldHVybiAwOworfQorCisj
ZW5kaWYKKwogaW50IFBsYXRmb3JtUGFzdGVib2FyZDo6Y291bnQoKQogewogICAgIHJldHVybiBb
bV9wYXN0ZWJvYXJkIG51bWJlck9mSXRlbXNdOwpAQCAtNTk0LDcgKzUzMCw3IEBAIFVSTCBQbGF0
Zm9ybVBhc3RlYm9hcmQ6OnJlYWRVUkwoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHR5cGUsIFN0
cmluZyYgdGl0bGUpCiAgICAgaWYgKCFhbGxvd1JlYWRpbmdVUkxBdEluZGV4KChOU1VSTCAqKXZh
bHVlLCBpbmRleCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSNpZiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDAKKyNpZiBQTEFURk9STShJT1MpICYmICEoUExBVEZP
Uk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikpCiAgICAgdGl0bGUgPSBbdmFsdWUgX3Rp
dGxlXTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHRpdGxlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>