<?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>133946</bug_id>
          
          <creation_ts>2014-06-16 11:57:09 -0700</creation_ts>
          <short_desc>Add HTTPHeaderName overloads on ResourceResponseBase</short_desc>
          <delta_ts>2014-06-16 12:27:15 -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>New Bugs</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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>berto</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>danw</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mkwst</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1015911</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-16 11:57:09 -0700</bug_when>
    <thetext>Add HTTPHeaderName overloads on ResourceResponseBase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015913</commentid>
    <comment_count>1</comment_count>
      <attachid>233165</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-16 11:58:40 -0700</bug_when>
    <thetext>Created attachment 233165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015916</commentid>
    <comment_count>2</comment_count>
      <attachid>233167</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-16 12:03:32 -0700</bug_when>
    <thetext>Created attachment 233167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015918</commentid>
    <comment_count>3</comment_count>
      <attachid>233168</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-16 12:08:58 -0700</bug_when>
    <thetext>Created attachment 233168
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015922</commentid>
    <comment_count>4</comment_count>
      <attachid>233169</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-16 12:14:10 -0700</bug_when>
    <thetext>Created attachment 233169
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015926</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-16 12:27:15 -0700</bug_when>
    <thetext>Committed r170021: &lt;http://trac.webkit.org/changeset/170021&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233165</attachid>
            <date>2014-06-16 11:58:40 -0700</date>
            <delta_ts>2014-06-16 12:03:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133946-20140616115822.patch</filename>
            <type>text/plain</type>
            <size>22680</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwMDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjkxMWU4Yjk0ZDBmNjNj
MDE5NDdlZDU5YmI0YTFjYzU5NTg0NTg2OC4uN2ViMzY1MjkxM2JjYmE0MDE0YzkxZDQyNzMxNTIy
MjI4MjU4ODQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTA2LTE2ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEhUVFBIZWFk
ZXJOYW1lIG92ZXJsb2FkcyBvbiBSZXNvdXJjZVJlc3BvbnNlQmFzZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzOTQ2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Omxhc3RN
b2RpZmllZCk6CisgICAgICAgICogbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2spOgorICAgICAgICAq
IGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjpwYXJzZSk6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjpyZWNlaXZlZEZpcnN0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
ZGlkQmVnaW5Eb2N1bWVudCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6
OmNyZWF0ZVJlc291cmNlSGFuZGxlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NT
U3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0Ojpj
YW5Vc2VTaGVldCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpsb2FkKToKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlw
dDo6bWltZVR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck5hbWVz
LmluOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6Omh0dHBIZWFkZXJGaWVs
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c2V0SFRUUEhlYWRl
ckZpZWxkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNl
Lmg6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZU1JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlhN
TEh0dHBSZXF1ZXN0OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorCiAyMDE0LTA0LTA1ICBBbnRvbmlv
IEdvbWVzICA8YTEuZ29tZXNAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBbQmluZGluZ3Nd
ICJudWxsYWJsZSIgc2VxdWVuY2Ugc3VwcG9ydCBpcyBpbmNvbXBsZXRlIChpLmUuIHNlcXVlbmNl
PE5hdGl2ZVR5cGU+PykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3YWQzMTU5YzgzOTE4MmNlYjk3MzM4YTVlNTFk
OTU0YTkwZTAzYmZkLi4wMzgxYzM5ZDJkNzA3MjY3MGNkMzM3ODU1ZWQ4NmEzZmFkZGY1ZDNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDYtMTYgIEFuZGVycyBDYXJsc3NvbiAg
PGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgSFRUUEhlYWRlck5hbWUgb3Zlcmxv
YWRzIG9uIFJlc291cmNlUmVzcG9uc2VCYXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM5NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6YnVpbGRIVFRQSGVhZGVycyk6CisKIDIwMTQtMDYtMTYgIFphbiBE
b2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFBhZ2U6OmZpbmRTdHJp
bmdNYXRjaGluZ1JhbmdlcygpIHNob3VsZCB0YWtlIFZlY3RvcjxSZWZQdHI8UmFuZ2U+PiBieSBy
ZWZlcmVuY2UgaW5zdGVhZCBvZiBwb2ludGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDNiNjdm
YmRkZTI5MzZkZmQ0ZGI0ZWI5ODRhOTkwMzI2MjYwOGU5MjQuLjZmYTcwMWE5ZDBlZDljNTZkMzBh
Y2MwNmRkYzdmMWJiOWY5NjU5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNzk2LDcgKzE3
OTYsNyBAQCBfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTEyaXNBdHRhY2htZW50
RXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTJsYXN0TW9kaWZpZWRFdgog
X19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNGh0dHBTdGF0dXNDb2RlRXYKIF9f
Wk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTRodHRwU3RhdHVzVGV4dEV2Ci1fX1pO
SzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE1aHR0cEhlYWRlckZpZWxkRVBLYworX19a
Tks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNWh0dHBIZWFkZXJGaWVsZEVOU18xNEhU
VFBIZWFkZXJOYW1lRQogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNmh0dHBI
ZWFkZXJGaWVsZHNFdgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNnRleHRF
bmNvZGluZ05hbWVFdgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxN3N1Z2dl
c3RlZEZpbGVuYW1lRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGI1MWJjN2Y0N2E2ODE5
YzBiYzAyMDhiMTQ0ZWMzODI0ZmI2OWJiMTUuLmVkMjMyZjQ4M2VlODc1MTZkMzAzYWRhNTVjOThm
YTM0MjI2NjhhM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzkwNyw3ICszOTA3LDcg
QEAgU3RyaW5nIERvY3VtZW50OjpsYXN0TW9kaWZpZWQoKSBjb25zdAogICAgIGlmIChtX2ZyYW1l
KSB7CiAgICAgICAgIFN0cmluZyBodHRwTGFzdE1vZGlmaWVkOwogICAgICAgICBpZiAoRG9jdW1l
bnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gbG9hZGVyKCkpIAotICAgICAgICAgICAgaHR0cExh
c3RNb2RpZmllZCA9IGRvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZCgi
TGFzdC1Nb2RpZmllZCIpOworICAgICAgICAgICAgaHR0cExhc3RNb2RpZmllZCA9IGRvY3VtZW50
TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6TGFzdE1v
ZGlmaWVkKTsKICAgICAgICAgaWYgKCFodHRwTGFzdE1vZGlmaWVkLmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgZGF0ZS5zZXRNaWxsaXNlY29uZHNTaW5jZUVwb2NoRm9yRGF0ZVRpbWUocGFyc2VE
YXRlKGh0dHBMYXN0TW9kaWZpZWQpKTsKICAgICAgICAgICAgIGZvdW5kRGF0ZSA9IHRydWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3Bw
CmluZGV4IGU3MzEyNzE1ZmE0YzUwMzU5YTljZTY4YTI5MmRmZTY0MzM3MjgxZDQuLjdlNTc5OWQ1
ZTdkNDU4NGJkYTdlMDNjZDM2Yjg0OGMzMDI5YjgwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCkBAIC0xMzYsNyArMTM2LDcg
QEAgYm9vbCBwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2soY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIFN0b3JlZENyZWRlbnRpYWwKIHsKICAgICAvLyBBIHdpbGRjYXJkIEFjY2Vzcy1D
b250cm9sLUFsbG93LU9yaWdpbiBjYW4gbm90IGJlIHVzZWQgaWYgY3JlZGVudGlhbHMgYXJlIHRv
IGJlIHNlbnQsCiAgICAgLy8gZXZlbiB3aXRoIEFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRp
YWxzIHNldCB0byB0cnVlLgotICAgIGNvbnN0IFN0cmluZyYgYWNjZXNzQ29udHJvbE9yaWdpblN0
cmluZyA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZCgiYWNjZXNzLWNvbnRyb2wtYWxsb3ctb3Jp
Z2luIik7CisgICAgY29uc3QgU3RyaW5nJiBhY2Nlc3NDb250cm9sT3JpZ2luU3RyaW5nID0gcmVz
cG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sQWxsb3dP
cmlnaW4pOwogICAgIGlmIChhY2Nlc3NDb250cm9sT3JpZ2luU3RyaW5nID09ICIqIiAmJiBpbmNs
dWRlQ3JlZGVudGlhbHMgPT0gRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIApAQCAtMTU1LDcgKzE1NSw3IEBAIGJvb2wgcGFzc2VzQWNjZXNzQ29udHJv
bENoZWNrKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBTdG9yZWRDcmVkZW50aWFs
CiAgICAgfQogCiAgICAgaWYgKGluY2x1ZGVDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRl
bnRpYWxzKSB7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgYWNjZXNzQ29udHJvbENyZWRlbnRpYWxz
U3RyaW5nID0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKCJhY2Nlc3MtY29udHJvbC1hbGxvdy1j
cmVkZW50aWFscyIpOworICAgICAgICBjb25zdCBTdHJpbmcmIGFjY2Vzc0NvbnRyb2xDcmVkZW50
aWFsc1N0cmluZyA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNj
ZXNzQ29udHJvbEFsbG93Q3JlZGVudGlhbHMpOwogICAgICAgICBpZiAoYWNjZXNzQ29udHJvbENy
ZWRlbnRpYWxzU3RyaW5nICE9ICJ0cnVlIikgewogICAgICAgICAgICAgZXJyb3JEZXNjcmlwdGlv
biA9ICJDcmVkZW50aWFscyBmbGFnIGlzIHRydWUsIGJ1dCBBY2Nlc3MtQ29udHJvbC1BbGxvdy1D
cmVkZW50aWFscyBpcyBub3QgXCJ0cnVlXCIuIjsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJl
c3VsdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdo
dFJlc3VsdENhY2hlLmNwcAppbmRleCA2ODQ4MTM0NDczYWUzNjQ0YWVjZWY1NjEzYmM5OGIwYjQx
NDgxNWFjLi4yZGRlZjcwY2Y1MjIxNzZlMjY5Y2IzY2Y2MmU5ZjM2ODE2NGJiMTMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNo
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVz
dWx0Q2FjaGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5QcmVm
bGlnaHRSZXN1bHRDYWNoZS5oIgogCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmgiCisjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNw
b25zZS5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CkBAIC05MiwxOSArOTMsMTkgQEAgc3RhdGljIGJvb2wgcGFyc2VBY2Nlc3ND
b250cm9sQWxsb3dMaXN0KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBIYXNoU2V0PFN0cmluZywgSGEK
IGJvb2wgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW06OnBhcnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBTdHJpbmcmIGVycm9yRGVzY3JpcHRpb24pCiB7CiAg
ICAgbV9tZXRob2RzLmNsZWFyKCk7Ci0gICAgaWYgKCFwYXJzZUFjY2Vzc0NvbnRyb2xBbGxvd0xp
c3QocmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2Rz
IiksIG1fbWV0aG9kcykpIHsKKyAgICBpZiAoIXBhcnNlQWNjZXNzQ29udHJvbEFsbG93TGlzdChy
ZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkFjY2Vzc0NvbnRyb2xBbGxv
d01ldGhvZHMpLCBtX21ldGhvZHMpKSB7CiAgICAgICAgIGVycm9yRGVzY3JpcHRpb24gPSAiQ2Fu
bm90IHBhcnNlIEFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMgcmVzcG9uc2UgaGVhZGVyIGZp
ZWxkLiI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBtX2hlYWRlcnMuY2xl
YXIoKTsKLSAgICBpZiAoIXBhcnNlQWNjZXNzQ29udHJvbEFsbG93TGlzdChyZXNwb25zZS5odHRw
SGVhZGVyRmllbGQoIkFjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMiKSwgbV9oZWFkZXJzKSkg
eworICAgIGlmICghcGFyc2VBY2Nlc3NDb250cm9sQWxsb3dMaXN0KHJlc3BvbnNlLmh0dHBIZWFk
ZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNjZXNzQ29udHJvbEFsbG93SGVhZGVycyksIG1faGVh
ZGVycykpIHsKICAgICAgICAgZXJyb3JEZXNjcmlwdGlvbiA9ICJDYW5ub3QgcGFyc2UgQWNjZXNz
LUNvbnRyb2wtQWxsb3ctSGVhZGVycyByZXNwb25zZSBoZWFkZXIgZmllbGQuIjsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzIGV4cGlyeURl
bHRhOwotICAgIGlmIChwYXJzZUFjY2Vzc0NvbnRyb2xNYXhBZ2UocmVzcG9uc2UuaHR0cEhlYWRl
ckZpZWxkKCJBY2Nlc3MtQ29udHJvbC1NYXgtQWdlIiksIGV4cGlyeURlbHRhKSkgeworICAgIGlm
IChwYXJzZUFjY2Vzc0NvbnRyb2xNYXhBZ2UocmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sTWF4QWdlKSwgZXhwaXJ5RGVsdGEpKSB7CiAgICAgICAg
IGlmIChleHBpcnlEZWx0YSA+IG1heFByZWZsaWdodENhY2hlVGltZW91dCkKICAgICAgICAgICAg
IGV4cGlyeURlbHRhID0gbWF4UHJlZmxpZ2h0Q2FjaGVUaW1lb3V0OwogICAgIH0gZWxzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYmMwYzQwOTAxNzAxMmVjZTE3ZmY0
MDljYTlhZDAwZmQwZGY2NGQ0Ni4uZjY1MWFlZWE3MDM3OGJhOGU5NDBjYTQzZmE5NDUyYTAxYzdh
OWU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC02NjgsNyArNjY4
LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6cmVjZWl2ZWRGaXJzdERhdGEoKQogCiAgICAgZG91Ymxl
IGRlbGF5OwogICAgIFN0cmluZyB1cmxTdHJpbmc7Ci0gICAgaWYgKCFwYXJzZUhUVFBSZWZyZXNo
KG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJSZWZyZXNoIiks
IGZhbHNlLCBkZWxheSwgdXJsU3RyaW5nKSkKKyAgICBpZiAoIXBhcnNlSFRUUFJlZnJlc2gobV9k
b2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6
OlJlZnJlc2gpLCBmYWxzZSwgZGVsYXksIHVybFN0cmluZykpCiAgICAgICAgIHJldHVybjsKICAg
ICBVUkwgY29tcGxldGVkVVJMOwogICAgIGlmICh1cmxTdHJpbmcuaXNFbXB0eSgpKQpAQCAtNzEy
LDI3ICs3MTIsMjcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGlkQmVnaW5Eb2N1bWVudChib29sIGRp
c3BhdGNoKQogICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+
c2V0QXV0b0xvYWRJbWFnZXMoc2V0dGluZ3MubG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCkpOwog
CiAgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpIHsKLSAgICAgICAgU3RyaW5nIGRuc1ByZWZldGNo
Q29udHJvbCA9IG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJY
LUROUy1QcmVmZXRjaC1Db250cm9sIik7CisgICAgICAgIFN0cmluZyBkbnNQcmVmZXRjaENvbnRy
b2wgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6WEROU1ByZWZldGNoQ29udHJvbCk7CiAgICAgICAgIGlmICghZG5zUHJlZmV0Y2hD
b250cm9sLmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFyc2VE
TlNQcmVmZXRjaENvbnRyb2xIZWFkZXIoZG5zUHJlZmV0Y2hDb250cm9sKTsKIAotICAgICAgICBT
dHJpbmcgcG9saWN5VmFsdWUgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFk
ZXJGaWVsZCgiQ29udGVudC1TZWN1cml0eS1Qb2xpY3kiKTsKKyAgICAgICAgU3RyaW5nIHBvbGlj
eVZhbHVlID0gbV9kb2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSk7CiAgICAgICAgIGlmICghcG9saWN5
VmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5jb250ZW50
U2VjdXJpdHlQb2xpY3koKS0+ZGlkUmVjZWl2ZUhlYWRlcihwb2xpY3lWYWx1ZSwgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpFbmZvcmNlKTsKIAotICAgICAgICBwb2xpY3lWYWx1ZSA9IG1fZG9jdW1l
bnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJDb250ZW50LVNlY3VyaXR5LVBv
bGljeS1SZXBvcnQtT25seSIpOworICAgICAgICBwb2xpY3lWYWx1ZSA9IG1fZG9jdW1lbnRMb2Fk
ZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXBvcnRPbmx5KTsKICAgICAgICAgaWYgKCFwb2xpY3lWYWx1ZS5pc0VtcHR5
KCkpCiAgICAgICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpLT5kaWRSZWNlaXZlSGVhZGVyKHBvbGljeVZhbHVlLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OlJlcG9ydCk7CiAKLSAgICAgICAgcG9saWN5VmFsdWUgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNw
b25zZSgpLmh0dHBIZWFkZXJGaWVsZCgiWC1XZWJLaXQtQ1NQIik7CisgICAgICAgIHBvbGljeVZh
bHVlID0gbV9kb2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoSFRUUEhl
YWRlck5hbWU6OlhXZWJLaXRDU1ApOwogICAgICAgICBpZiAoIXBvbGljeVZhbHVlLmlzRW1wdHko
KSkKICAgICAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5
KCktPmRpZFJlY2VpdmVIZWFkZXIocG9saWN5VmFsdWUsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
UHJlZml4ZWRFbmZvcmNlKTsKIAotICAgICAgICBwb2xpY3lWYWx1ZSA9IG1fZG9jdW1lbnRMb2Fk
ZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJYLVdlYktpdC1DU1AtUmVwb3J0LU9ubHki
KTsKKyAgICAgICAgcG9saWN5VmFsdWUgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0
dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6WFdlYktpdENTUFJlcG9ydE9ubHkpOwogICAg
ICAgICBpZiAoIXBvbGljeVZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1fZnJhbWUuZG9j
dW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmRpZFJlY2VpdmVIZWFkZXIocG9saWN5
VmFsdWUsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UHJlZml4ZWRSZXBvcnQpOwogCi0gICAgICAg
IFN0cmluZyBoZWFkZXJDb250ZW50TGFuZ3VhZ2UgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25z
ZSgpLmh0dHBIZWFkZXJGaWVsZCgiQ29udGVudC1MYW5ndWFnZSIpOworICAgICAgICBTdHJpbmcg
aGVhZGVyQ29udGVudExhbmd1YWdlID0gbV9kb2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRw
SGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRMYW5ndWFnZSk7CiAgICAgICAgIGlm
ICghaGVhZGVyQ29udGVudExhbmd1YWdlLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgc2l6ZV90
IGNvbW1hSW5kZXggPSBoZWFkZXJDb250ZW50TGFuZ3VhZ2UuZmluZCgnLCcpOwogICAgICAgICAg
ICAgaGVhZGVyQ29udGVudExhbmd1YWdlLnRydW5jYXRlKGNvbW1hSW5kZXgpOyAvLyBub3RGb3Vu
ZCA9PSAtMSA9PSBkb24ndCB0cnVuY2F0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRleCBkMmNmOWM0MmI1
YThlZWMxODYzN2FiMDQ1NzIyOGMzZjMwMjdiZDQ5Li40ZDdmYzA5ZTk2ZDBhODIxZTcyNTdkZTM5
NWI0NmE0YjNiNmQ2NDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtNDg0LDggKzQ4NCw4IEBAIFBh
c3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y3JlYXRlUmVz
b3VyY2VIYW5kbGUoY29uc3QgVVJMCiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OkNhY2hlQ29udHJvbCwgIm1heC1hZ2U9MCIpOwogCiAgICAgaWYgKG5ld2Vz
dENhY2hlZFJlc291cmNlKSB7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgbGFzdE1vZGlmaWVkID0g
bmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJMYXN0LU1v
ZGlmaWVkIik7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgZVRhZyA9IG5ld2VzdENhY2hlZFJlc291
cmNlLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZCgiRVRhZyIpOworICAgICAgICBjb25zdCBT
dHJpbmcmIGxhc3RNb2RpZmllZCA9IG5ld2VzdENhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpLmh0
dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6TGFzdE1vZGlmaWVkKTsKKyAgICAgICAgY29u
c3QgU3RyaW5nJiBlVGFnID0gbmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cEhl
YWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpFVGFnKTsKICAgICAgICAgaWYgKCFsYXN0TW9kaWZp
ZWQuaXNFbXB0eSgpIHx8ICFlVGFnLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgaWYgKCFsYXN0
TW9kaWZpZWQuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRl
ckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpJZk1vZGlmaWVkU2luY2UsIGxhc3RNb2RpZmllZCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVl
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5j
cHAKaW5kZXggZGQ0ZGZjODFhYmU1Nzc5YzJlY2I5NWE4ZTM5NGNlZTExYTEzYzY4YS4uZjk2NGNl
MTZmNWNiZjg5ZWViODc4YTVjOTQzMTY3NzFkNmI0Nzg1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcApAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUNsaWVudFdhbGtlci5oIgogI2luY2x1ZGUgIkNhY2hlZFN0eWxlU2hlZXRDbGllbnQuaCIKKyNp
bmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2lu
Y2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKQEAgLTEy
OSw3ICsxMzAsNyBAQCBib29sIENhY2hlZENTU1N0eWxlU2hlZXQ6OmNhblVzZVNoZWV0KGJvb2wg
ZW5mb3JjZU1JTUVUeXBlLCBib29sKiBoYXNWYWxpZE1JTUVUeQogICAgIC8vCiAgICAgLy8gVGhp
cyBjb2RlIGRlZmF1bHRzIHRvIGFsbG93aW5nIHRoZSBzdHlsZXNoZWV0IGZvciBub24tSFRUUCBw
cm90b2NvbHMgc28KICAgICAvLyBmb2xrcyBjYW4gdXNlIHN0YW5kYXJkcyBtb2RlIGZvciBsb2Nh
bCBIVE1MIGRvY3VtZW50cy4KLSAgICBTdHJpbmcgbWltZVR5cGUgPSBleHRyYWN0TUlNRVR5cGVG
cm9tTWVkaWFUeXBlKHJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJDb250ZW50LVR5cGUiKSk7
CisgICAgU3RyaW5nIG1pbWVUeXBlID0gZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShyZXNw
b25zZSgpLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUpKTsKICAg
ICBib29sIHR5cGVPSyA9IG1pbWVUeXBlLmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQ2FzZSht
aW1lVHlwZSwgInRleHQvY3NzIikgfHwgZXF1YWxJZ25vcmluZ0Nhc2UobWltZVR5cGUsICJhcHBs
aWNhdGlvbi94LXVua25vd24tY29udGVudC10eXBlIik7CiAgICAgaWYgKGhhc1ZhbGlkTUlNRVR5
cGUpCiAgICAgICAgICpoYXNWYWxpZE1JTUVUeXBlID0gdHlwZU9LOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggMDc3ODVkNzY1MGEzZmM1
OTYzYzkyMTlhM2E3MTQxZWIwY2RiOGFmYi4uMmQ1ZjVlNDIzZWFmYzgxZjhlOWU5NDg5ZGUzODg3
NDZlZjE2YjgxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCkBAIC0yODMsOCArMjgzLDggQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChD
YWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIsIGNvbnN0IFJlc28KICAg
ICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlVG9SZXZhbGlkYXRlID0gbV9yZXNvdXJjZVRv
UmV2YWxpZGF0ZTsKICAgICAgICAgQVNTRVJUKHJlc291cmNlVG9SZXZhbGlkYXRlLT5jYW5Vc2VD
YWNoZVZhbGlkYXRvcigpKTsKICAgICAgICAgQVNTRVJUKHJlc291cmNlVG9SZXZhbGlkYXRlLT5p
c0xvYWRlZCgpKTsKLSAgICAgICAgY29uc3QgU3RyaW5nJiBsYXN0TW9kaWZpZWQgPSByZXNvdXJj
ZVRvUmV2YWxpZGF0ZS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoIkxhc3QtTW9kaWZpZWQi
KTsKLSAgICAgICAgY29uc3QgU3RyaW5nJiBlVGFnID0gcmVzb3VyY2VUb1JldmFsaWRhdGUtPnJl
c3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJFVGFnIik7CisgICAgICAgIGNvbnN0IFN0cmluZyYg
bGFzdE1vZGlmaWVkID0gcmVzb3VyY2VUb1JldmFsaWRhdGUtPnJlc3BvbnNlKCkuaHR0cEhlYWRl
ckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpMYXN0TW9kaWZpZWQpOworICAgICAgICBjb25zdCBTdHJp
bmcmIGVUYWcgPSByZXNvdXJjZVRvUmV2YWxpZGF0ZS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmll
bGQoSFRUUEhlYWRlck5hbWU6OkVUYWcpOwogICAgICAgICBpZiAoIWxhc3RNb2RpZmllZC5pc0Vt
cHR5KCkgfHwgIWVUYWcuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBBU1NFUlQoY2FjaGVkUmVz
b3VyY2VMb2FkZXItPmNhY2hlUG9saWN5KHR5cGUoKSkgIT0gQ2FjaGVQb2xpY3lSZWxvYWQpOwog
ICAgICAgICAgICAgaWYgKGNhY2hlZFJlc291cmNlTG9hZGVyLT5jYWNoZVBvbGljeSh0eXBlKCkp
ID09IENhY2hlUG9saWN5UmV2YWxpZGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFNjcmlwdC5jcHAKaW5kZXggZDk4NzVlZDgyMjM5Nzk2YTA3NzEyMzJmNDE3YTcwOGVh
YzA0NDRjMi4uODg5MDIyNTRkN2ZkYWNlNjA5MGI2MzZkZDcxNThiYzMwMDM5NjY4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKQEAgLTI5LDYgKzI5
LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCIKKyNpbmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIK
ICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIK
ICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgpAQCAtNjUsNyArNjYsNyBAQCBTdHJpbmcgQ2FjaGVk
U2NyaXB0OjplbmNvZGluZygpIGNvbnN0CiAKIFN0cmluZyBDYWNoZWRTY3JpcHQ6Om1pbWVUeXBl
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShtX3Jl
c3BvbnNlLmh0dHBIZWFkZXJGaWVsZCgiQ29udGVudC1UeXBlIikpLmxvd2VyKCk7CisgICAgcmV0
dXJuIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUobV9yZXNwb25zZS5odHRwSGVhZGVyRmll
bGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlKSkubG93ZXIoKTsKIH0KIAogY29uc3QgU3Ry
aW5nJiBDYWNoZWRTY3JpcHQ6OnNjcmlwdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvSFRUUEhlYWRlck5hbWVzLmluCmluZGV4IDQxNGMwZjJkNTRkMzY4M2I3MzI5
Zjk3ZTgyZDY2ZDUwNjBjNmZmNGUuLjZiYjJmNmY5YjA1NzQ1ODYyYzAyZjg1NTFhNTE4YThmYTE1
MGRmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUEhl
YWRlck5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUEhl
YWRlck5hbWVzLmluCkBAIC0yNCw2ICsyNCwxMiBAQAogLy8KIAogQWNjZXB0CitBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1DcmVkZW50aWFscworQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycworQWNj
ZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcworQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luCitB
Y2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycworQWNjZXNzLUNvbnRyb2wtTWF4LUFnZQogQWNj
ZXNzLUNvbnRyb2wtUmVxdWVzdC1IZWFkZXJzCiBBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LU1ldGhv
ZAogQWdlCkBAIC0zMSw2ICszNyw3IEBAIEF1dGhvcml6YXRpb24KIENhY2hlLUNvbnRyb2wKIENv
bm5lY3Rpb24KIENvbnRlbnQtRGlzcG9zaXRpb24KK0NvbnRlbnQtRW5jb2RpbmcKIENvbnRlbnQt
TGFuZ3VhZ2UKIENvbnRlbnQtTGVuZ3RoCiBDb250ZW50LVNlY3VyaXR5LVBvbGljeQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VC
YXNlLmNwcAppbmRleCA0M2RkN2IwZGYzODYyYWQ5NzAyNzY4YWVlODA1MzQxY2VkZGNhNWNhLi4x
YTg3ZTAwNjQ0Mjg4YThiMzQxNDJkYzk2ZDFmZTMwYzQ1MWI3MGRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNw
cApAQCAtMjczLDcgKzI3Myw3IEBAIFN0cmluZyBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6aHR0cEhl
YWRlckZpZWxkKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3QKICAgICByZXR1cm4gbV9o
dHRwSGVhZGVyRmllbGRzLmdldChuYW1lKTsgCiB9CiAKLVN0cmluZyBSZXNvdXJjZVJlc3BvbnNl
QmFzZTo6aHR0cEhlYWRlckZpZWxkKGNvbnN0IGNoYXIqIG5hbWUpIGNvbnN0CitTdHJpbmcgUmVz
b3VyY2VSZXNwb25zZUJhc2U6Omh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZSBuYW1lKSBj
b25zdAogewogICAgIGxhenlJbml0KENvbW1vbkZpZWxkc09ubHkpOwogCkBAIC0zMjksNiArMzI5
LDE3IEBAIHZvaWQgUmVzb3VyY2VSZXNwb25zZUJhc2U6OnNldEhUVFBIZWFkZXJGaWVsZChjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFN0CiAgICAgLy8gRklYTUU6IFNob3VsZCBpbnZh
bGlkYXRlIG9yIHVwZGF0ZSBwbGF0Zm9ybSByZXNwb25zZSBpZiBwcmVzZW50LgogfQogCit2b2lk
IFJlc291cmNlUmVzcG9uc2VCYXNlOjpzZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWUg
bmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBsYXp5SW5pdChDb21tb25BbmRVbmNv
bW1vbkZpZWxkcyk7CisKKyAgICB1cGRhdGVIZWFkZXJQYXJzZWRTdGF0ZShuYW1lKTsKKworICAg
IG1faHR0cEhlYWRlckZpZWxkcy5zZXQobmFtZSwgdmFsdWUpOworCisgICAgLy8gRklYTUU6IFNo
b3VsZCBpbnZhbGlkYXRlIG9yIHVwZGF0ZSBwbGF0Zm9ybSByZXNwb25zZSBpZiBwcmVzZW50Lgor
fQorCiB2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjphZGRIVFRQSGVhZGVyRmllbGQoY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewogICAgIGxhenlJbml0
KENvbW1vbkFuZFVuY29tbW9uRmllbGRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaAppbmRleCA1OTNiYmM5NTc5MzA3
OTFjMzJiNzc3NGY5ZGMzZmJlNTZlYWY2OTM5Li40ZDAxNWI5NTVlZWY4NDlmODkzOWU0YzFlNTIx
MWM2MDc5YWE3YWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oCkBAIC03NywxMiArNzcsMjAgQEAgcHVibGljOgog
ICAgIAogICAgIGNvbnN0IFN0cmluZyYgaHR0cFN0YXR1c1RleHQoKSBjb25zdDsKICAgICB2b2lk
IHNldEhUVFBTdGF0dXNUZXh0KGNvbnN0IFN0cmluZyYpOwotICAgIAorCisgICAgY29uc3QgSFRU
UEhlYWRlck1hcCYgaHR0cEhlYWRlckZpZWxkcygpIGNvbnN0OworCiAgICAgU3RyaW5nIGh0dHBI
ZWFkZXJGaWVsZChjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0OwotICAgIFN0cmluZyBo
dHRwSGVhZGVyRmllbGQoY29uc3QgY2hhciogbmFtZSkgY29uc3Q7CisgICAgU3RyaW5nIGh0dHBI
ZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZSkgY29uc3Q7CiAgICAgdm9pZCBzZXRIVFRQSGVhZGVy
RmllbGQoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKKyAg
ICB2b2lkIHNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZSwgY29uc3QgU3RyaW5nJiB2
YWx1ZSk7CisKICAgICB2b2lkIGFkZEhUVFBIZWFkZXJGaWVsZChjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwotICAgIGNvbnN0IEhUVFBIZWFkZXJNYXAmIGh0
dHBIZWFkZXJGaWVsZHMoKSBjb25zdDsKKworICAgIC8vIEluc3RlYWQgb2YgcGFzc2luZyBhIHN0
cmluZyBsaXRlcmFsIHRvIGFueSBvZiB0aGVzZSBmdW5jdGlvbnMsIGp1c3QgdXNlIGEgSFRUUEhl
YWRlck5hbWUgaW5zdGVhZC4KKyAgICB0ZW1wbGF0ZTxzaXplX3QgbGVuZ3RoPiBTdHJpbmcgaHR0
cEhlYWRlckZpZWxkKGNvbnN0IGNoYXIgKCYpW2xlbmd0aF0pIGNvbnN0ID0gZGVsZXRlOworICAg
IHRlbXBsYXRlPHNpemVfdCBsZW5ndGg+IHZvaWQgc2V0SFRUUEhlYWRlckZpZWxkKGNvbnN0IGNo
YXIgKCYpW2xlbmd0aF0sIGNvbnN0IFN0cmluZyYpID0gZGVsZXRlOworICAgIHRlbXBsYXRlPHNp
emVfdCBsZW5ndGg+IHZvaWQgYWRkSFRUUEhlYWRlckZpZWxkKGNvbnN0IGNoYXIgKCYpW2xlbmd0
aF0sIGNvbnN0IFN0cmluZyYpID0gZGVsZXRlOwogCiAgICAgYm9vbCBpc011bHRpcGFydCgpIGNv
bnN0IHsgcmV0dXJuIG1pbWVUeXBlKCkgPT0gIm11bHRpcGFydC94LW1peGVkLXJlcGxhY2UiOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IGE0ZTBlNWFmYzI4Yjgw
OGY4ZjA2ZGEwNDQ5ODI4YzlmNjI5MGJkMDMuLjNjNzBmMmJmMDYyNjJkZWMxY2M0NDZlNGU3Njgx
MzM4NWZlZWJhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtOTY0
LDcgKzk2NCw3IEBAIFN0cmluZyBYTUxIdHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWFkZXJz
KCkgY29uc3QKICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAKICAgICBIVFRQSGVh
ZGVyU2V0IGFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJTZXQ7Ci0gICAgcGFyc2VBY2Nlc3NDb250
cm9sRXhwb3NlSGVhZGVyc0FsbG93TGlzdChtX3Jlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZCgiQWNj
ZXNzLUNvbnRyb2wtRXhwb3NlLUhlYWRlcnMiKSwgYWNjZXNzQ29udHJvbEV4cG9zZUhlYWRlclNl
dCk7CisgICAgcGFyc2VBY2Nlc3NDb250cm9sRXhwb3NlSGVhZGVyc0FsbG93TGlzdChtX3Jlc3Bv
bnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNjZXNzQ29udHJvbEV4cG9zZUhl
YWRlcnMpLCBhY2Nlc3NDb250cm9sRXhwb3NlSGVhZGVyU2V0KTsKICAgICAKICAgICBmb3IgKGNv
bnN0IGF1dG8mIGhlYWRlciA6IG1fcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkcygpKSB7CiAgICAg
ICAgIC8vIEhpZGUgU2V0LUNvb2tpZSBoZWFkZXIgZmllbGRzIGZyb20gdGhlIFhNTEh0dHBSZXF1
ZXN0IGNsaWVudCBmb3IgdGhlc2UgcmVhc29uczoKQEAgLTEwMDIsNyArMTAwMiw3IEBAIFN0cmlu
ZyBYTUxIdHRwUmVxdWVzdDo6Z2V0UmVzcG9uc2VIZWFkZXIoY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lKSBjb25zdAogICAgIH0KIAogICAgIEhUVFBIZWFkZXJTZXQgYWNjZXNzQ29udHJvbEV4cG9z
ZUhlYWRlclNldDsKLSAgICBwYXJzZUFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJzQWxsb3dMaXN0
KG1fcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKCJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVy
cyIpLCBhY2Nlc3NDb250cm9sRXhwb3NlSGVhZGVyU2V0KTsKKyAgICBwYXJzZUFjY2Vzc0NvbnRy
b2xFeHBvc2VIZWFkZXJzQWxsb3dMaXN0KG1fcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sRXhwb3NlSGVhZGVycyksIGFjY2Vzc0NvbnRyb2xFeHBv
c2VIZWFkZXJTZXQpOwogCiAgICAgaWYgKCFtX3NhbWVPcmlnaW5SZXF1ZXN0ICYmICFpc09uQWNj
ZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0KG5hbWUpICYmICFhY2Nlc3NDb250cm9s
RXhwb3NlSGVhZGVyU2V0LmNvbnRhaW5zKG5hbWUpKSB7CiAgICAgICAgIGxvZ0NvbnNvbGVFcnJv
cihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICJSZWZ1c2VkIHRvIGdldCB1bnNhZmUgaGVhZGVy
IFwiIiArIG5hbWUgKyAiXCIiKTsKQEAgLTEwMTYsNyArMTAxNiw3IEBAIFN0cmluZyBYTUxIdHRw
UmVxdWVzdDo6cmVzcG9uc2VNSU1FVHlwZSgpIGNvbnN0CiAgICAgU3RyaW5nIG1pbWVUeXBlID0g
ZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShtX21pbWVUeXBlT3ZlcnJpZGUpOwogICAgIGlm
IChtaW1lVHlwZS5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKG1fcmVzcG9uc2UuaXNIVFRQKCkp
Ci0gICAgICAgICAgICBtaW1lVHlwZSA9IGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUobV9y
ZXNwb25zZS5odHRwSGVhZGVyRmllbGQoIkNvbnRlbnQtVHlwZSIpKTsKKyAgICAgICAgICAgIG1p
bWVUeXBlID0gZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShtX3Jlc3BvbnNlLmh0dHBIZWFk
ZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUpKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgbWltZVR5cGUgPSBtX3Jlc3BvbnNlLm1pbWVUeXBlKCk7CiAgICAgfQpAQCAtMTEz
Niw3ICsxMTM2LDcgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2UKIAogICAgIG1fcmVzcG9uc2Ug
PSByZXNwb25zZTsKICAgICBpZiAoIW1fbWltZVR5cGVPdmVycmlkZS5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgbV9yZXNwb25zZS5zZXRIVFRQSGVhZGVyRmllbGQoIkNvbnRlbnQtVHlwZSIsIG1fbWlt
ZVR5cGVPdmVycmlkZSk7CisgICAgICAgIG1fcmVzcG9uc2Uuc2V0SFRUUEhlYWRlckZpZWxkKEhU
VFBIZWFkZXJOYW1lOjpDb250ZW50VHlwZSwgbV9taW1lVHlwZU92ZXJyaWRlKTsKICAgICAgICAg
bV9yZXNwb25zZUVuY29kaW5nID0gZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKG1fbWltZVR5
cGVPdmVycmlkZSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggNmJmMDUwOWQwYzYyMzE0ZmI0MGQ5NzMwNTUxZjdk
ZTAxYzc2MjNjNy4uMjAyMzBkMmJjMWFmZjJkNTQ0MGQ0MmNhNjEyYWZmNzJjNDQ1MjM5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApA
QCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9IVE1MUGx1Z0luRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
SFRNTFBsdWdJbkltYWdlRWxlbWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUEhlYWRlck5h
bWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ib3N0V2luZG93Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NYWluRnJhbWUuaD4KQEAg
LTE5Myw3ICsxOTQsNyBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkSFRUUEhlYWRlcnMoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGxvbmcgbG9uZyYgZXhwZQogICAgIC8vIElmIHRoZSBj
b250ZW50IGlzIGVuY29kZWQgKG1vc3QgbGlrZWx5IGNvbXByZXNzZWQpLCB0aGVuIGRvbid0IHNl
bmQgaXRzIGxlbmd0aCB0byB0aGUgcGx1Z2luLAogICAgIC8vIHdoaWNoIGlzIG9ubHkgaW50ZXJl
c3RlZCBpbiB0aGUgZGVjb2RlZCBsZW5ndGgsIG5vdCB5ZXQga25vd24gYXQgdGhlIG1vbWVudC4K
ICAgICAvLyA8cmRhcjovL3Byb2JsZW0vNDQ3MDU5OT4gdHJhY2tzIGEgcmVxdWVzdCBmb3IgLVtO
U1VSTFJlc3BvbnNlIGV4cGVjdGVkQ29udGVudExlbmd0aF0gdG8gaW5jb3Jwb3JhdGUgdGhpcyBs
b2dpYy4KLSAgICBTdHJpbmcgY29udGVudEVuY29kaW5nID0gcmVzcG9uc2UuaHR0cEhlYWRlckZp
ZWxkKCJDb250ZW50LUVuY29kaW5nIik7CisgICAgU3RyaW5nIGNvbnRlbnRFbmNvZGluZyA9IHJl
c3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q29udGVudEVuY29kaW5nKTsK
ICAgICBpZiAoIWNvbnRlbnRFbmNvZGluZy5pc051bGwoKSAmJiBjb250ZW50RW5jb2RpbmcgIT0g
ImlkZW50aXR5IikKICAgICAgICAgZXhwZWN0ZWRDb250ZW50TGVuZ3RoID0gLTE7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233167</attachid>
            <date>2014-06-16 12:03:32 -0700</date>
            <delta_ts>2014-06-16 12:08:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133946-20140616120314.patch</filename>
            <type>text/plain</type>
            <size>23901</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwMDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjkxMWU4Yjk0ZDBmNjNj
MDE5NDdlZDU5YmI0YTFjYzU5NTg0NTg2OC4uN2ViMzY1MjkxM2JjYmE0MDE0YzkxZDQyNzMxNTIy
MjI4MjU4ODQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTA2LTE2ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEhUVFBIZWFk
ZXJOYW1lIG92ZXJsb2FkcyBvbiBSZXNvdXJjZVJlc3BvbnNlQmFzZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzOTQ2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Omxhc3RN
b2RpZmllZCk6CisgICAgICAgICogbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2spOgorICAgICAgICAq
IGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjpwYXJzZSk6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjpyZWNlaXZlZEZpcnN0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
ZGlkQmVnaW5Eb2N1bWVudCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6
OmNyZWF0ZVJlc291cmNlSGFuZGxlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NT
U3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0Ojpj
YW5Vc2VTaGVldCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpsb2FkKToKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlw
dDo6bWltZVR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck5hbWVz
LmluOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6Omh0dHBIZWFkZXJGaWVs
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c2V0SFRUUEhlYWRl
ckZpZWxkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNl
Lmg6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZU1JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlhN
TEh0dHBSZXF1ZXN0OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorCiAyMDE0LTA0LTA1ICBBbnRvbmlv
IEdvbWVzICA8YTEuZ29tZXNAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBbQmluZGluZ3Nd
ICJudWxsYWJsZSIgc2VxdWVuY2Ugc3VwcG9ydCBpcyBpbmNvbXBsZXRlIChpLmUuIHNlcXVlbmNl
PE5hdGl2ZVR5cGU+PykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3YWQzMTU5YzgzOTE4MmNlYjk3MzM4YTVlNTFk
OTU0YTkwZTAzYmZkLi4wMzgxYzM5ZDJkNzA3MjY3MGNkMzM3ODU1ZWQ4NmEzZmFkZGY1ZDNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDYtMTYgIEFuZGVycyBDYXJsc3NvbiAg
PGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgSFRUUEhlYWRlck5hbWUgb3Zlcmxv
YWRzIG9uIFJlc291cmNlUmVzcG9uc2VCYXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM5NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6YnVpbGRIVFRQSGVhZGVycyk6CisKIDIwMTQtMDYtMTYgIFphbiBE
b2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFBhZ2U6OmZpbmRTdHJp
bmdNYXRjaGluZ1JhbmdlcygpIHNob3VsZCB0YWtlIFZlY3RvcjxSZWZQdHI8UmFuZ2U+PiBieSBy
ZWZlcmVuY2UgaW5zdGVhZCBvZiBwb2ludGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDNiNjdm
YmRkZTI5MzZkZmQ0ZGI0ZWI5ODRhOTkwMzI2MjYwOGU5MjQuLjZmYTcwMWE5ZDBlZDljNTZkMzBh
Y2MwNmRkYzdmMWJiOWY5NjU5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNzk2LDcgKzE3
OTYsNyBAQCBfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTEyaXNBdHRhY2htZW50
RXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTJsYXN0TW9kaWZpZWRFdgog
X19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNGh0dHBTdGF0dXNDb2RlRXYKIF9f
Wk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTRodHRwU3RhdHVzVGV4dEV2Ci1fX1pO
SzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE1aHR0cEhlYWRlckZpZWxkRVBLYworX19a
Tks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNWh0dHBIZWFkZXJGaWVsZEVOU18xNEhU
VFBIZWFkZXJOYW1lRQogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNmh0dHBI
ZWFkZXJGaWVsZHNFdgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNnRleHRF
bmNvZGluZ05hbWVFdgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxN3N1Z2dl
c3RlZEZpbGVuYW1lRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGI1MWJjN2Y0N2E2ODE5
YzBiYzAyMDhiMTQ0ZWMzODI0ZmI2OWJiMTUuLmVkMjMyZjQ4M2VlODc1MTZkMzAzYWRhNTVjOThm
YTM0MjI2NjhhM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzkwNyw3ICszOTA3LDcg
QEAgU3RyaW5nIERvY3VtZW50OjpsYXN0TW9kaWZpZWQoKSBjb25zdAogICAgIGlmIChtX2ZyYW1l
KSB7CiAgICAgICAgIFN0cmluZyBodHRwTGFzdE1vZGlmaWVkOwogICAgICAgICBpZiAoRG9jdW1l
bnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gbG9hZGVyKCkpIAotICAgICAgICAgICAgaHR0cExh
c3RNb2RpZmllZCA9IGRvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZCgi
TGFzdC1Nb2RpZmllZCIpOworICAgICAgICAgICAgaHR0cExhc3RNb2RpZmllZCA9IGRvY3VtZW50
TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6TGFzdE1v
ZGlmaWVkKTsKICAgICAgICAgaWYgKCFodHRwTGFzdE1vZGlmaWVkLmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgZGF0ZS5zZXRNaWxsaXNlY29uZHNTaW5jZUVwb2NoRm9yRGF0ZVRpbWUocGFyc2VE
YXRlKGh0dHBMYXN0TW9kaWZpZWQpKTsKICAgICAgICAgICAgIGZvdW5kRGF0ZSA9IHRydWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3Bw
CmluZGV4IGU3MzEyNzE1ZmE0YzUwMzU5YTljZTY4YTI5MmRmZTY0MzM3MjgxZDQuLjdlNTc5OWQ1
ZTdkNDU4NGJkYTdlMDNjZDM2Yjg0OGMzMDI5YjgwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCkBAIC0xMzYsNyArMTM2LDcg
QEAgYm9vbCBwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2soY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIFN0b3JlZENyZWRlbnRpYWwKIHsKICAgICAvLyBBIHdpbGRjYXJkIEFjY2Vzcy1D
b250cm9sLUFsbG93LU9yaWdpbiBjYW4gbm90IGJlIHVzZWQgaWYgY3JlZGVudGlhbHMgYXJlIHRv
IGJlIHNlbnQsCiAgICAgLy8gZXZlbiB3aXRoIEFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRp
YWxzIHNldCB0byB0cnVlLgotICAgIGNvbnN0IFN0cmluZyYgYWNjZXNzQ29udHJvbE9yaWdpblN0
cmluZyA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZCgiYWNjZXNzLWNvbnRyb2wtYWxsb3ctb3Jp
Z2luIik7CisgICAgY29uc3QgU3RyaW5nJiBhY2Nlc3NDb250cm9sT3JpZ2luU3RyaW5nID0gcmVz
cG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sQWxsb3dP
cmlnaW4pOwogICAgIGlmIChhY2Nlc3NDb250cm9sT3JpZ2luU3RyaW5nID09ICIqIiAmJiBpbmNs
dWRlQ3JlZGVudGlhbHMgPT0gRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIApAQCAtMTU1LDcgKzE1NSw3IEBAIGJvb2wgcGFzc2VzQWNjZXNzQ29udHJv
bENoZWNrKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBTdG9yZWRDcmVkZW50aWFs
CiAgICAgfQogCiAgICAgaWYgKGluY2x1ZGVDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRl
bnRpYWxzKSB7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgYWNjZXNzQ29udHJvbENyZWRlbnRpYWxz
U3RyaW5nID0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKCJhY2Nlc3MtY29udHJvbC1hbGxvdy1j
cmVkZW50aWFscyIpOworICAgICAgICBjb25zdCBTdHJpbmcmIGFjY2Vzc0NvbnRyb2xDcmVkZW50
aWFsc1N0cmluZyA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNj
ZXNzQ29udHJvbEFsbG93Q3JlZGVudGlhbHMpOwogICAgICAgICBpZiAoYWNjZXNzQ29udHJvbENy
ZWRlbnRpYWxzU3RyaW5nICE9ICJ0cnVlIikgewogICAgICAgICAgICAgZXJyb3JEZXNjcmlwdGlv
biA9ICJDcmVkZW50aWFscyBmbGFnIGlzIHRydWUsIGJ1dCBBY2Nlc3MtQ29udHJvbC1BbGxvdy1D
cmVkZW50aWFscyBpcyBub3QgXCJ0cnVlXCIuIjsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJl
c3VsdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdo
dFJlc3VsdENhY2hlLmNwcAppbmRleCA2ODQ4MTM0NDczYWUzNjQ0YWVjZWY1NjEzYmM5OGIwYjQx
NDgxNWFjLi4yZGRlZjcwY2Y1MjIxNzZlMjY5Y2IzY2Y2MmU5ZjM2ODE2NGJiMTMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNo
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVz
dWx0Q2FjaGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5QcmVm
bGlnaHRSZXN1bHRDYWNoZS5oIgogCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmgiCisjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNw
b25zZS5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CkBAIC05MiwxOSArOTMsMTkgQEAgc3RhdGljIGJvb2wgcGFyc2VBY2Nlc3ND
b250cm9sQWxsb3dMaXN0KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBIYXNoU2V0PFN0cmluZywgSGEK
IGJvb2wgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW06OnBhcnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBTdHJpbmcmIGVycm9yRGVzY3JpcHRpb24pCiB7CiAg
ICAgbV9tZXRob2RzLmNsZWFyKCk7Ci0gICAgaWYgKCFwYXJzZUFjY2Vzc0NvbnRyb2xBbGxvd0xp
c3QocmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2Rz
IiksIG1fbWV0aG9kcykpIHsKKyAgICBpZiAoIXBhcnNlQWNjZXNzQ29udHJvbEFsbG93TGlzdChy
ZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkFjY2Vzc0NvbnRyb2xBbGxv
d01ldGhvZHMpLCBtX21ldGhvZHMpKSB7CiAgICAgICAgIGVycm9yRGVzY3JpcHRpb24gPSAiQ2Fu
bm90IHBhcnNlIEFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMgcmVzcG9uc2UgaGVhZGVyIGZp
ZWxkLiI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBtX2hlYWRlcnMuY2xl
YXIoKTsKLSAgICBpZiAoIXBhcnNlQWNjZXNzQ29udHJvbEFsbG93TGlzdChyZXNwb25zZS5odHRw
SGVhZGVyRmllbGQoIkFjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMiKSwgbV9oZWFkZXJzKSkg
eworICAgIGlmICghcGFyc2VBY2Nlc3NDb250cm9sQWxsb3dMaXN0KHJlc3BvbnNlLmh0dHBIZWFk
ZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNjZXNzQ29udHJvbEFsbG93SGVhZGVycyksIG1faGVh
ZGVycykpIHsKICAgICAgICAgZXJyb3JEZXNjcmlwdGlvbiA9ICJDYW5ub3QgcGFyc2UgQWNjZXNz
LUNvbnRyb2wtQWxsb3ctSGVhZGVycyByZXNwb25zZSBoZWFkZXIgZmllbGQuIjsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzIGV4cGlyeURl
bHRhOwotICAgIGlmIChwYXJzZUFjY2Vzc0NvbnRyb2xNYXhBZ2UocmVzcG9uc2UuaHR0cEhlYWRl
ckZpZWxkKCJBY2Nlc3MtQ29udHJvbC1NYXgtQWdlIiksIGV4cGlyeURlbHRhKSkgeworICAgIGlm
IChwYXJzZUFjY2Vzc0NvbnRyb2xNYXhBZ2UocmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sTWF4QWdlKSwgZXhwaXJ5RGVsdGEpKSB7CiAgICAgICAg
IGlmIChleHBpcnlEZWx0YSA+IG1heFByZWZsaWdodENhY2hlVGltZW91dCkKICAgICAgICAgICAg
IGV4cGlyeURlbHRhID0gbWF4UHJlZmxpZ2h0Q2FjaGVUaW1lb3V0OwogICAgIH0gZWxzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYmMwYzQwOTAxNzAxMmVjZTE3ZmY0
MDljYTlhZDAwZmQwZGY2NGQ0Ni4uZjY1MWFlZWE3MDM3OGJhOGU5NDBjYTQzZmE5NDUyYTAxYzdh
OWU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC02NjgsNyArNjY4
LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6cmVjZWl2ZWRGaXJzdERhdGEoKQogCiAgICAgZG91Ymxl
IGRlbGF5OwogICAgIFN0cmluZyB1cmxTdHJpbmc7Ci0gICAgaWYgKCFwYXJzZUhUVFBSZWZyZXNo
KG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJSZWZyZXNoIiks
IGZhbHNlLCBkZWxheSwgdXJsU3RyaW5nKSkKKyAgICBpZiAoIXBhcnNlSFRUUFJlZnJlc2gobV9k
b2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6
OlJlZnJlc2gpLCBmYWxzZSwgZGVsYXksIHVybFN0cmluZykpCiAgICAgICAgIHJldHVybjsKICAg
ICBVUkwgY29tcGxldGVkVVJMOwogICAgIGlmICh1cmxTdHJpbmcuaXNFbXB0eSgpKQpAQCAtNzEy
LDI3ICs3MTIsMjcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGlkQmVnaW5Eb2N1bWVudChib29sIGRp
c3BhdGNoKQogICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+
c2V0QXV0b0xvYWRJbWFnZXMoc2V0dGluZ3MubG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCkpOwog
CiAgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpIHsKLSAgICAgICAgU3RyaW5nIGRuc1ByZWZldGNo
Q29udHJvbCA9IG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJY
LUROUy1QcmVmZXRjaC1Db250cm9sIik7CisgICAgICAgIFN0cmluZyBkbnNQcmVmZXRjaENvbnRy
b2wgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6WEROU1ByZWZldGNoQ29udHJvbCk7CiAgICAgICAgIGlmICghZG5zUHJlZmV0Y2hD
b250cm9sLmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFyc2VE
TlNQcmVmZXRjaENvbnRyb2xIZWFkZXIoZG5zUHJlZmV0Y2hDb250cm9sKTsKIAotICAgICAgICBT
dHJpbmcgcG9saWN5VmFsdWUgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFk
ZXJGaWVsZCgiQ29udGVudC1TZWN1cml0eS1Qb2xpY3kiKTsKKyAgICAgICAgU3RyaW5nIHBvbGlj
eVZhbHVlID0gbV9kb2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSk7CiAgICAgICAgIGlmICghcG9saWN5
VmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5jb250ZW50
U2VjdXJpdHlQb2xpY3koKS0+ZGlkUmVjZWl2ZUhlYWRlcihwb2xpY3lWYWx1ZSwgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpFbmZvcmNlKTsKIAotICAgICAgICBwb2xpY3lWYWx1ZSA9IG1fZG9jdW1l
bnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJDb250ZW50LVNlY3VyaXR5LVBv
bGljeS1SZXBvcnQtT25seSIpOworICAgICAgICBwb2xpY3lWYWx1ZSA9IG1fZG9jdW1lbnRMb2Fk
ZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXBvcnRPbmx5KTsKICAgICAgICAgaWYgKCFwb2xpY3lWYWx1ZS5pc0VtcHR5
KCkpCiAgICAgICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpLT5kaWRSZWNlaXZlSGVhZGVyKHBvbGljeVZhbHVlLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OlJlcG9ydCk7CiAKLSAgICAgICAgcG9saWN5VmFsdWUgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNw
b25zZSgpLmh0dHBIZWFkZXJGaWVsZCgiWC1XZWJLaXQtQ1NQIik7CisgICAgICAgIHBvbGljeVZh
bHVlID0gbV9kb2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoSFRUUEhl
YWRlck5hbWU6OlhXZWJLaXRDU1ApOwogICAgICAgICBpZiAoIXBvbGljeVZhbHVlLmlzRW1wdHko
KSkKICAgICAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5
KCktPmRpZFJlY2VpdmVIZWFkZXIocG9saWN5VmFsdWUsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
UHJlZml4ZWRFbmZvcmNlKTsKIAotICAgICAgICBwb2xpY3lWYWx1ZSA9IG1fZG9jdW1lbnRMb2Fk
ZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJYLVdlYktpdC1DU1AtUmVwb3J0LU9ubHki
KTsKKyAgICAgICAgcG9saWN5VmFsdWUgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0
dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6WFdlYktpdENTUFJlcG9ydE9ubHkpOwogICAg
ICAgICBpZiAoIXBvbGljeVZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1fZnJhbWUuZG9j
dW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmRpZFJlY2VpdmVIZWFkZXIocG9saWN5
VmFsdWUsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UHJlZml4ZWRSZXBvcnQpOwogCi0gICAgICAg
IFN0cmluZyBoZWFkZXJDb250ZW50TGFuZ3VhZ2UgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25z
ZSgpLmh0dHBIZWFkZXJGaWVsZCgiQ29udGVudC1MYW5ndWFnZSIpOworICAgICAgICBTdHJpbmcg
aGVhZGVyQ29udGVudExhbmd1YWdlID0gbV9kb2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRw
SGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRMYW5ndWFnZSk7CiAgICAgICAgIGlm
ICghaGVhZGVyQ29udGVudExhbmd1YWdlLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgc2l6ZV90
IGNvbW1hSW5kZXggPSBoZWFkZXJDb250ZW50TGFuZ3VhZ2UuZmluZCgnLCcpOwogICAgICAgICAg
ICAgaGVhZGVyQ29udGVudExhbmd1YWdlLnRydW5jYXRlKGNvbW1hSW5kZXgpOyAvLyBub3RGb3Vu
ZCA9PSAtMSA9PSBkb24ndCB0cnVuY2F0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRleCBkMmNmOWM0MmI1
YThlZWMxODYzN2FiMDQ1NzIyOGMzZjMwMjdiZDQ5Li40ZDdmYzA5ZTk2ZDBhODIxZTcyNTdkZTM5
NWI0NmE0YjNiNmQ2NDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtNDg0LDggKzQ4NCw4IEBAIFBh
c3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y3JlYXRlUmVz
b3VyY2VIYW5kbGUoY29uc3QgVVJMCiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OkNhY2hlQ29udHJvbCwgIm1heC1hZ2U9MCIpOwogCiAgICAgaWYgKG5ld2Vz
dENhY2hlZFJlc291cmNlKSB7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgbGFzdE1vZGlmaWVkID0g
bmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJMYXN0LU1v
ZGlmaWVkIik7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgZVRhZyA9IG5ld2VzdENhY2hlZFJlc291
cmNlLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZCgiRVRhZyIpOworICAgICAgICBjb25zdCBT
dHJpbmcmIGxhc3RNb2RpZmllZCA9IG5ld2VzdENhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpLmh0
dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6TGFzdE1vZGlmaWVkKTsKKyAgICAgICAgY29u
c3QgU3RyaW5nJiBlVGFnID0gbmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cEhl
YWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpFVGFnKTsKICAgICAgICAgaWYgKCFsYXN0TW9kaWZp
ZWQuaXNFbXB0eSgpIHx8ICFlVGFnLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgaWYgKCFsYXN0
TW9kaWZpZWQuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRl
ckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpJZk1vZGlmaWVkU2luY2UsIGxhc3RNb2RpZmllZCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVl
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5j
cHAKaW5kZXggZGQ0ZGZjODFhYmU1Nzc5YzJlY2I5NWE4ZTM5NGNlZTExYTEzYzY4YS4uZjk2NGNl
MTZmNWNiZjg5ZWViODc4YTVjOTQzMTY3NzFkNmI0Nzg1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcApAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUNsaWVudFdhbGtlci5oIgogI2luY2x1ZGUgIkNhY2hlZFN0eWxlU2hlZXRDbGllbnQuaCIKKyNp
bmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2lu
Y2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKQEAgLTEy
OSw3ICsxMzAsNyBAQCBib29sIENhY2hlZENTU1N0eWxlU2hlZXQ6OmNhblVzZVNoZWV0KGJvb2wg
ZW5mb3JjZU1JTUVUeXBlLCBib29sKiBoYXNWYWxpZE1JTUVUeQogICAgIC8vCiAgICAgLy8gVGhp
cyBjb2RlIGRlZmF1bHRzIHRvIGFsbG93aW5nIHRoZSBzdHlsZXNoZWV0IGZvciBub24tSFRUUCBw
cm90b2NvbHMgc28KICAgICAvLyBmb2xrcyBjYW4gdXNlIHN0YW5kYXJkcyBtb2RlIGZvciBsb2Nh
bCBIVE1MIGRvY3VtZW50cy4KLSAgICBTdHJpbmcgbWltZVR5cGUgPSBleHRyYWN0TUlNRVR5cGVG
cm9tTWVkaWFUeXBlKHJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJDb250ZW50LVR5cGUiKSk7
CisgICAgU3RyaW5nIG1pbWVUeXBlID0gZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShyZXNw
b25zZSgpLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUpKTsKICAg
ICBib29sIHR5cGVPSyA9IG1pbWVUeXBlLmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQ2FzZSht
aW1lVHlwZSwgInRleHQvY3NzIikgfHwgZXF1YWxJZ25vcmluZ0Nhc2UobWltZVR5cGUsICJhcHBs
aWNhdGlvbi94LXVua25vd24tY29udGVudC10eXBlIik7CiAgICAgaWYgKGhhc1ZhbGlkTUlNRVR5
cGUpCiAgICAgICAgICpoYXNWYWxpZE1JTUVUeXBlID0gdHlwZU9LOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggMDc3ODVkNzY1MGEzZmM1
OTYzYzkyMTlhM2E3MTQxZWIwY2RiOGFmYi4uMmQ1ZjVlNDIzZWFmYzgxZjhlOWU5NDg5ZGUzODg3
NDZlZjE2YjgxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCkBAIC0yODMsOCArMjgzLDggQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChD
YWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIsIGNvbnN0IFJlc28KICAg
ICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlVG9SZXZhbGlkYXRlID0gbV9yZXNvdXJjZVRv
UmV2YWxpZGF0ZTsKICAgICAgICAgQVNTRVJUKHJlc291cmNlVG9SZXZhbGlkYXRlLT5jYW5Vc2VD
YWNoZVZhbGlkYXRvcigpKTsKICAgICAgICAgQVNTRVJUKHJlc291cmNlVG9SZXZhbGlkYXRlLT5p
c0xvYWRlZCgpKTsKLSAgICAgICAgY29uc3QgU3RyaW5nJiBsYXN0TW9kaWZpZWQgPSByZXNvdXJj
ZVRvUmV2YWxpZGF0ZS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoIkxhc3QtTW9kaWZpZWQi
KTsKLSAgICAgICAgY29uc3QgU3RyaW5nJiBlVGFnID0gcmVzb3VyY2VUb1JldmFsaWRhdGUtPnJl
c3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJFVGFnIik7CisgICAgICAgIGNvbnN0IFN0cmluZyYg
bGFzdE1vZGlmaWVkID0gcmVzb3VyY2VUb1JldmFsaWRhdGUtPnJlc3BvbnNlKCkuaHR0cEhlYWRl
ckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpMYXN0TW9kaWZpZWQpOworICAgICAgICBjb25zdCBTdHJp
bmcmIGVUYWcgPSByZXNvdXJjZVRvUmV2YWxpZGF0ZS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmll
bGQoSFRUUEhlYWRlck5hbWU6OkVUYWcpOwogICAgICAgICBpZiAoIWxhc3RNb2RpZmllZC5pc0Vt
cHR5KCkgfHwgIWVUYWcuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBBU1NFUlQoY2FjaGVkUmVz
b3VyY2VMb2FkZXItPmNhY2hlUG9saWN5KHR5cGUoKSkgIT0gQ2FjaGVQb2xpY3lSZWxvYWQpOwog
ICAgICAgICAgICAgaWYgKGNhY2hlZFJlc291cmNlTG9hZGVyLT5jYWNoZVBvbGljeSh0eXBlKCkp
ID09IENhY2hlUG9saWN5UmV2YWxpZGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFNjcmlwdC5jcHAKaW5kZXggZDk4NzVlZDgyMjM5Nzk2YTA3NzEyMzJmNDE3YTcwOGVh
YzA0NDRjMi4uODg5MDIyNTRkN2ZkYWNlNjA5MGI2MzZkZDcxNThiYzMwMDM5NjY4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKQEAgLTI5LDYgKzI5
LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCIKKyNpbmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIK
ICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIK
ICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgpAQCAtNjUsNyArNjYsNyBAQCBTdHJpbmcgQ2FjaGVk
U2NyaXB0OjplbmNvZGluZygpIGNvbnN0CiAKIFN0cmluZyBDYWNoZWRTY3JpcHQ6Om1pbWVUeXBl
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShtX3Jl
c3BvbnNlLmh0dHBIZWFkZXJGaWVsZCgiQ29udGVudC1UeXBlIikpLmxvd2VyKCk7CisgICAgcmV0
dXJuIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUobV9yZXNwb25zZS5odHRwSGVhZGVyRmll
bGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlKSkubG93ZXIoKTsKIH0KIAogY29uc3QgU3Ry
aW5nJiBDYWNoZWRTY3JpcHQ6OnNjcmlwdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcAppbmRleCBiMzc4NGU2ZDIyM2Y3YTRiOWViODRk
OTBiYmJlNmVjYWU1OGI2NjhiLi5jMDUxNmMyYTUyMTZkZGI5MzA5MTBkMmY2Y2Y3YjE1NDdiM2Nh
YTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VU
aW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRp
bWluZy5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50TG9hZFRpbWluZy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisj
aW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgpAQCAtNTcs
NyArNTgsNyBAQCBzdGF0aWMgYm9vbCBwYXNzZXNUaW1pbmdBbGxvd0NoZWNrKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBEb2N1bWVudCogcgogICAgIGlmIChyZXNvdXJjZU9yaWdp
bi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQocmVxdWVzdGluZ0RvY3VtZW50LT5zZWN1cml0eU9yaWdp
bigpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBjb25zdCBTdHJpbmcmIHRpbWluZ0Fs
bG93T3JpZ2luU3RyaW5nID0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKCJ0aW1pbmctYWxsb3ct
b3JpZ2luIik7CisgICAgY29uc3QgU3RyaW5nJiB0aW1pbmdBbGxvd09yaWdpblN0cmluZyA9IHJl
c3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6VGltaW5nQWxsb3dPcmlnaW4p
OwogICAgIGlmICh0aW1pbmdBbGxvd09yaWdpblN0cmluZy5pc0VtcHR5KCkgfHwgZXF1YWxJZ25v
cmluZ0Nhc2UodGltaW5nQWxsb3dPcmlnaW5TdHJpbmcsICJudWxsIikpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9I
VFRQSGVhZGVyTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBI
ZWFkZXJOYW1lcy5pbgppbmRleCA0MTRjMGYyZDU0ZDM2ODNiNzMyOWY5N2U4MmQ2NmQ1MDYwYzZm
ZjRlLi44OTAyNTIxYzdkOTcwM2JmNGJlNTRmMmVhMjQ1YzZiY2E0YzY0N2VkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJOYW1lcy5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJOYW1lcy5pbgpAQCAt
MjQsNiArMjQsMTIgQEAKIC8vCiAKIEFjY2VwdAorQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVu
dGlhbHMKK0FjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMKK0FjY2Vzcy1Db250cm9sLUFsbG93
LU1ldGhvZHMKK0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbgorQWNjZXNzLUNvbnRyb2wtRXhw
b3NlLUhlYWRlcnMKK0FjY2Vzcy1Db250cm9sLU1heC1BZ2UKIEFjY2Vzcy1Db250cm9sLVJlcXVl
c3QtSGVhZGVycwogQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2QKIEFnZQpAQCAtMzEsNiAr
MzcsNyBAQCBBdXRob3JpemF0aW9uCiBDYWNoZS1Db250cm9sCiBDb25uZWN0aW9uCiBDb250ZW50
LURpc3Bvc2l0aW9uCitDb250ZW50LUVuY29kaW5nCiBDb250ZW50LUxhbmd1YWdlCiBDb250ZW50
LUxlbmd0aAogQ29udGVudC1TZWN1cml0eS1Qb2xpY3kKQEAgLTY1LDYgKzcyLDcgQEAgU2VjLVdl
YlNvY2tldC1Qcm90b2NvbAogU2VjLVdlYlNvY2tldC1WZXJzaW9uCiBTZXQtQ29va2llCiBTZXQt
Q29va2llMgorVGltaW5nLUFsbG93LU9yaWdpbgogVXBncmFkZQogVXNlci1BZ2VudAogWC1ETlMt
UHJlZmV0Y2gtQ29udHJvbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAppbmRleCA0M2RkN2IwZGYzODYyYWQ5NzAy
NzY4YWVlODA1MzQxY2VkZGNhNWNhLi4xYTg3ZTAwNjQ0Mjg4YThiMzQxNDJkYzk2ZDFmZTMwYzQ1
MWI3MGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVzcG9uc2VCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcApAQCAtMjczLDcgKzI3Myw3IEBAIFN0cmluZyBSZXNv
dXJjZVJlc3BvbnNlQmFzZTo6aHR0cEhlYWRlckZpZWxkKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSkgY29uc3QKICAgICByZXR1cm4gbV9odHRwSGVhZGVyRmllbGRzLmdldChuYW1lKTsgCiB9CiAK
LVN0cmluZyBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6aHR0cEhlYWRlckZpZWxkKGNvbnN0IGNoYXIq
IG5hbWUpIGNvbnN0CitTdHJpbmcgUmVzb3VyY2VSZXNwb25zZUJhc2U6Omh0dHBIZWFkZXJGaWVs
ZChIVFRQSGVhZGVyTmFtZSBuYW1lKSBjb25zdAogewogICAgIGxhenlJbml0KENvbW1vbkZpZWxk
c09ubHkpOwogCkBAIC0zMjksNiArMzI5LDE3IEBAIHZvaWQgUmVzb3VyY2VSZXNwb25zZUJhc2U6
OnNldEhUVFBIZWFkZXJGaWVsZChjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFN0CiAg
ICAgLy8gRklYTUU6IFNob3VsZCBpbnZhbGlkYXRlIG9yIHVwZGF0ZSBwbGF0Zm9ybSByZXNwb25z
ZSBpZiBwcmVzZW50LgogfQogCit2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjpzZXRIVFRQSGVh
ZGVyRmllbGQoSFRUUEhlYWRlck5hbWUgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAg
ICBsYXp5SW5pdChDb21tb25BbmRVbmNvbW1vbkZpZWxkcyk7CisKKyAgICB1cGRhdGVIZWFkZXJQ
YXJzZWRTdGF0ZShuYW1lKTsKKworICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQobmFtZSwgdmFs
dWUpOworCisgICAgLy8gRklYTUU6IFNob3VsZCBpbnZhbGlkYXRlIG9yIHVwZGF0ZSBwbGF0Zm9y
bSByZXNwb25zZSBpZiBwcmVzZW50LgorfQorCiB2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjph
ZGRIVFRQSGVhZGVyRmllbGQoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IHZhbHVlKQogewogICAgIGxhenlJbml0KENvbW1vbkFuZFVuY29tbW9uRmllbGRzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJh
c2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJh
c2UuaAppbmRleCA1OTNiYmM5NTc5MzA3OTFjMzJiNzc3NGY5ZGMzZmJlNTZlYWY2OTM5Li40ZDAx
NWI5NTVlZWY4NDlmODkzOWU0YzFlNTIxMWM2MDc5YWE3YWJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oCkBAIC03
NywxMiArNzcsMjAgQEAgcHVibGljOgogICAgIAogICAgIGNvbnN0IFN0cmluZyYgaHR0cFN0YXR1
c1RleHQoKSBjb25zdDsKICAgICB2b2lkIHNldEhUVFBTdGF0dXNUZXh0KGNvbnN0IFN0cmluZyYp
OwotICAgIAorCisgICAgY29uc3QgSFRUUEhlYWRlck1hcCYgaHR0cEhlYWRlckZpZWxkcygpIGNv
bnN0OworCiAgICAgU3RyaW5nIGh0dHBIZWFkZXJGaWVsZChjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWUpIGNvbnN0OwotICAgIFN0cmluZyBodHRwSGVhZGVyRmllbGQoY29uc3QgY2hhciogbmFtZSkg
Y29uc3Q7CisgICAgU3RyaW5nIGh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZSkgY29uc3Q7
CiAgICAgdm9pZCBzZXRIVFRQSGVhZGVyRmllbGQoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIHZhbHVlKTsKKyAgICB2b2lkIHNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CisKICAgICB2b2lkIGFkZEhUVFBIZWFkZXJG
aWVsZChjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwotICAg
IGNvbnN0IEhUVFBIZWFkZXJNYXAmIGh0dHBIZWFkZXJGaWVsZHMoKSBjb25zdDsKKworICAgIC8v
IEluc3RlYWQgb2YgcGFzc2luZyBhIHN0cmluZyBsaXRlcmFsIHRvIGFueSBvZiB0aGVzZSBmdW5j
dGlvbnMsIGp1c3QgdXNlIGEgSFRUUEhlYWRlck5hbWUgaW5zdGVhZC4KKyAgICB0ZW1wbGF0ZTxz
aXplX3QgbGVuZ3RoPiBTdHJpbmcgaHR0cEhlYWRlckZpZWxkKGNvbnN0IGNoYXIgKCYpW2xlbmd0
aF0pIGNvbnN0ID0gZGVsZXRlOworICAgIHRlbXBsYXRlPHNpemVfdCBsZW5ndGg+IHZvaWQgc2V0
SFRUUEhlYWRlckZpZWxkKGNvbnN0IGNoYXIgKCYpW2xlbmd0aF0sIGNvbnN0IFN0cmluZyYpID0g
ZGVsZXRlOworICAgIHRlbXBsYXRlPHNpemVfdCBsZW5ndGg+IHZvaWQgYWRkSFRUUEhlYWRlckZp
ZWxkKGNvbnN0IGNoYXIgKCYpW2xlbmd0aF0sIGNvbnN0IFN0cmluZyYpID0gZGVsZXRlOwogCiAg
ICAgYm9vbCBpc011bHRpcGFydCgpIGNvbnN0IHsgcmV0dXJuIG1pbWVUeXBlKCkgPT0gIm11bHRp
cGFydC94LW1peGVkLXJlcGxhY2UiOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwCmluZGV4IGE0ZTBlNWFmYzI4YjgwOGY4ZjA2ZGEwNDQ5ODI4YzlmNjI5MGJkMDMuLjNjNzBm
MmJmMDYyNjJkZWMxY2M0NDZlNGU3NjgxMzM4NWZlZWJhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcApAQCAtOTY0LDcgKzk2NCw3IEBAIFN0cmluZyBYTUxIdHRwUmVxdWVz
dDo6Z2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkgY29uc3QKICAgICBTdHJpbmdCdWlsZGVyIHN0cmlu
Z0J1aWxkZXI7CiAKICAgICBIVFRQSGVhZGVyU2V0IGFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJT
ZXQ7Ci0gICAgcGFyc2VBY2Nlc3NDb250cm9sRXhwb3NlSGVhZGVyc0FsbG93TGlzdChtX3Jlc3Bv
bnNlLmh0dHBIZWFkZXJGaWVsZCgiQWNjZXNzLUNvbnRyb2wtRXhwb3NlLUhlYWRlcnMiKSwgYWNj
ZXNzQ29udHJvbEV4cG9zZUhlYWRlclNldCk7CisgICAgcGFyc2VBY2Nlc3NDb250cm9sRXhwb3Nl
SGVhZGVyc0FsbG93TGlzdChtX3Jlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFt
ZTo6QWNjZXNzQ29udHJvbEV4cG9zZUhlYWRlcnMpLCBhY2Nlc3NDb250cm9sRXhwb3NlSGVhZGVy
U2V0KTsKICAgICAKICAgICBmb3IgKGNvbnN0IGF1dG8mIGhlYWRlciA6IG1fcmVzcG9uc2UuaHR0
cEhlYWRlckZpZWxkcygpKSB7CiAgICAgICAgIC8vIEhpZGUgU2V0LUNvb2tpZSBoZWFkZXIgZmll
bGRzIGZyb20gdGhlIFhNTEh0dHBSZXF1ZXN0IGNsaWVudCBmb3IgdGhlc2UgcmVhc29uczoKQEAg
LTEwMDIsNyArMTAwMiw3IEBAIFN0cmluZyBYTUxIdHRwUmVxdWVzdDo6Z2V0UmVzcG9uc2VIZWFk
ZXIoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdAogICAgIH0KIAogICAgIEhUVFBIZWFk
ZXJTZXQgYWNjZXNzQ29udHJvbEV4cG9zZUhlYWRlclNldDsKLSAgICBwYXJzZUFjY2Vzc0NvbnRy
b2xFeHBvc2VIZWFkZXJzQWxsb3dMaXN0KG1fcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKCJBY2Nl
c3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycyIpLCBhY2Nlc3NDb250cm9sRXhwb3NlSGVhZGVyU2V0
KTsKKyAgICBwYXJzZUFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJzQWxsb3dMaXN0KG1fcmVzcG9u
c2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sRXhwb3NlSGVh
ZGVycyksIGFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJTZXQpOwogCiAgICAgaWYgKCFtX3NhbWVP
cmlnaW5SZXF1ZXN0ICYmICFpc09uQWNjZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0
KG5hbWUpICYmICFhY2Nlc3NDb250cm9sRXhwb3NlSGVhZGVyU2V0LmNvbnRhaW5zKG5hbWUpKSB7
CiAgICAgICAgIGxvZ0NvbnNvbGVFcnJvcihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICJSZWZ1
c2VkIHRvIGdldCB1bnNhZmUgaGVhZGVyIFwiIiArIG5hbWUgKyAiXCIiKTsKQEAgLTEwMTYsNyAr
MTAxNiw3IEBAIFN0cmluZyBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VNSU1FVHlwZSgpIGNvbnN0
CiAgICAgU3RyaW5nIG1pbWVUeXBlID0gZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShtX21p
bWVUeXBlT3ZlcnJpZGUpOwogICAgIGlmIChtaW1lVHlwZS5pc0VtcHR5KCkpIHsKICAgICAgICAg
aWYgKG1fcmVzcG9uc2UuaXNIVFRQKCkpCi0gICAgICAgICAgICBtaW1lVHlwZSA9IGV4dHJhY3RN
SU1FVHlwZUZyb21NZWRpYVR5cGUobV9yZXNwb25zZS5odHRwSGVhZGVyRmllbGQoIkNvbnRlbnQt
VHlwZSIpKTsKKyAgICAgICAgICAgIG1pbWVUeXBlID0gZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlh
VHlwZShtX3Jlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5
cGUpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbWltZVR5cGUgPSBtX3Jlc3BvbnNlLm1p
bWVUeXBlKCk7CiAgICAgfQpAQCAtMTEzNiw3ICsxMTM2LDcgQEAgdm9pZCBYTUxIdHRwUmVxdWVz
dDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVz
b3VyY2UKIAogICAgIG1fcmVzcG9uc2UgPSByZXNwb25zZTsKICAgICBpZiAoIW1fbWltZVR5cGVP
dmVycmlkZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgbV9yZXNwb25zZS5zZXRIVFRQSGVhZGVyRmll
bGQoIkNvbnRlbnQtVHlwZSIsIG1fbWltZVR5cGVPdmVycmlkZSk7CisgICAgICAgIG1fcmVzcG9u
c2Uuc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50VHlwZSwgbV9taW1l
VHlwZU92ZXJyaWRlKTsKICAgICAgICAgbV9yZXNwb25zZUVuY29kaW5nID0gZXh0cmFjdENoYXJz
ZXRGcm9tTWVkaWFUeXBlKG1fbWltZVR5cGVPdmVycmlkZSk7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggNmJmMDUw
OWQwYzYyMzE0ZmI0MGQ5NzMwNTUxZjdkZTAxYzc2MjNjNy4uMjAyMzBkMmJjMWFmZjJkNTQ0MGQ0
MmNhNjEyYWZmNzJjNDQ1MjM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MUGx1Z0luRWxlbWVu
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvSFRUUEhlYWRlck5hbWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ib3N0V2lu
ZG93Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9NYWluRnJhbWUuaD4KQEAgLTE5Myw3ICsxOTQsNyBAQCBzdGF0aWMgU3RyaW5nIGJ1
aWxkSFRUUEhlYWRlcnMoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGxvbmcgbG9u
ZyYgZXhwZQogICAgIC8vIElmIHRoZSBjb250ZW50IGlzIGVuY29kZWQgKG1vc3QgbGlrZWx5IGNv
bXByZXNzZWQpLCB0aGVuIGRvbid0IHNlbmQgaXRzIGxlbmd0aCB0byB0aGUgcGx1Z2luLAogICAg
IC8vIHdoaWNoIGlzIG9ubHkgaW50ZXJlc3RlZCBpbiB0aGUgZGVjb2RlZCBsZW5ndGgsIG5vdCB5
ZXQga25vd24gYXQgdGhlIG1vbWVudC4KICAgICAvLyA8cmRhcjovL3Byb2JsZW0vNDQ3MDU5OT4g
dHJhY2tzIGEgcmVxdWVzdCBmb3IgLVtOU1VSTFJlc3BvbnNlIGV4cGVjdGVkQ29udGVudExlbmd0
aF0gdG8gaW5jb3Jwb3JhdGUgdGhpcyBsb2dpYy4KLSAgICBTdHJpbmcgY29udGVudEVuY29kaW5n
ID0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKCJDb250ZW50LUVuY29kaW5nIik7CisgICAgU3Ry
aW5nIGNvbnRlbnRFbmNvZGluZyA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVy
TmFtZTo6Q29udGVudEVuY29kaW5nKTsKICAgICBpZiAoIWNvbnRlbnRFbmNvZGluZy5pc051bGwo
KSAmJiBjb250ZW50RW5jb2RpbmcgIT0gImlkZW50aXR5IikKICAgICAgICAgZXhwZWN0ZWRDb250
ZW50TGVuZ3RoID0gLTE7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233168</attachid>
            <date>2014-06-16 12:08:58 -0700</date>
            <delta_ts>2014-06-16 12:14:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133946-20140616120840.patch</filename>
            <type>text/plain</type>
            <size>25082</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwMDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjkxMWU4Yjk0ZDBmNjNj
MDE5NDdlZDU5YmI0YTFjYzU5NTg0NTg2OC4uN2ViMzY1MjkxM2JjYmE0MDE0YzkxZDQyNzMxNTIy
MjI4MjU4ODQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTA2LTE2ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEhUVFBIZWFk
ZXJOYW1lIG92ZXJsb2FkcyBvbiBSZXNvdXJjZVJlc3BvbnNlQmFzZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzOTQ2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Omxhc3RN
b2RpZmllZCk6CisgICAgICAgICogbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2spOgorICAgICAgICAq
IGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjpwYXJzZSk6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjpyZWNlaXZlZEZpcnN0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
ZGlkQmVnaW5Eb2N1bWVudCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6
OmNyZWF0ZVJlc291cmNlSGFuZGxlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NT
U3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0Ojpj
YW5Vc2VTaGVldCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpsb2FkKToKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlw
dDo6bWltZVR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck5hbWVz
LmluOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6Omh0dHBIZWFkZXJGaWVs
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c2V0SFRUUEhlYWRl
ckZpZWxkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNl
Lmg6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZU1JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlhN
TEh0dHBSZXF1ZXN0OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorCiAyMDE0LTA0LTA1ICBBbnRvbmlv
IEdvbWVzICA8YTEuZ29tZXNAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBbQmluZGluZ3Nd
ICJudWxsYWJsZSIgc2VxdWVuY2Ugc3VwcG9ydCBpcyBpbmNvbXBsZXRlIChpLmUuIHNlcXVlbmNl
PE5hdGl2ZVR5cGU+PykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3YWQzMTU5YzgzOTE4MmNlYjk3MzM4YTVlNTFk
OTU0YTkwZTAzYmZkLi4wMzgxYzM5ZDJkNzA3MjY3MGNkMzM3ODU1ZWQ4NmEzZmFkZGY1ZDNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDYtMTYgIEFuZGVycyBDYXJsc3NvbiAg
PGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgSFRUUEhlYWRlck5hbWUgb3Zlcmxv
YWRzIG9uIFJlc291cmNlUmVzcG9uc2VCYXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM5NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6YnVpbGRIVFRQSGVhZGVycyk6CisKIDIwMTQtMDYtMTYgIFphbiBE
b2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFBhZ2U6OmZpbmRTdHJp
bmdNYXRjaGluZ1JhbmdlcygpIHNob3VsZCB0YWtlIFZlY3RvcjxSZWZQdHI8UmFuZ2U+PiBieSBy
ZWZlcmVuY2UgaW5zdGVhZCBvZiBwb2ludGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDNiNjdm
YmRkZTI5MzZkZmQ0ZGI0ZWI5ODRhOTkwMzI2MjYwOGU5MjQuLjZmYTcwMWE5ZDBlZDljNTZkMzBh
Y2MwNmRkYzdmMWJiOWY5NjU5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNzk2LDcgKzE3
OTYsNyBAQCBfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTEyaXNBdHRhY2htZW50
RXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTJsYXN0TW9kaWZpZWRFdgog
X19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNGh0dHBTdGF0dXNDb2RlRXYKIF9f
Wk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTRodHRwU3RhdHVzVGV4dEV2Ci1fX1pO
SzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE1aHR0cEhlYWRlckZpZWxkRVBLYworX19a
Tks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNWh0dHBIZWFkZXJGaWVsZEVOU18xNEhU
VFBIZWFkZXJOYW1lRQogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNmh0dHBI
ZWFkZXJGaWVsZHNFdgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNnRleHRF
bmNvZGluZ05hbWVFdgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxN3N1Z2dl
c3RlZEZpbGVuYW1lRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGI1MWJjN2Y0N2E2ODE5
YzBiYzAyMDhiMTQ0ZWMzODI0ZmI2OWJiMTUuLmVkMjMyZjQ4M2VlODc1MTZkMzAzYWRhNTVjOThm
YTM0MjI2NjhhM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzkwNyw3ICszOTA3LDcg
QEAgU3RyaW5nIERvY3VtZW50OjpsYXN0TW9kaWZpZWQoKSBjb25zdAogICAgIGlmIChtX2ZyYW1l
KSB7CiAgICAgICAgIFN0cmluZyBodHRwTGFzdE1vZGlmaWVkOwogICAgICAgICBpZiAoRG9jdW1l
bnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gbG9hZGVyKCkpIAotICAgICAgICAgICAgaHR0cExh
c3RNb2RpZmllZCA9IGRvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZCgi
TGFzdC1Nb2RpZmllZCIpOworICAgICAgICAgICAgaHR0cExhc3RNb2RpZmllZCA9IGRvY3VtZW50
TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6TGFzdE1v
ZGlmaWVkKTsKICAgICAgICAgaWYgKCFodHRwTGFzdE1vZGlmaWVkLmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgZGF0ZS5zZXRNaWxsaXNlY29uZHNTaW5jZUVwb2NoRm9yRGF0ZVRpbWUocGFyc2VE
YXRlKGh0dHBMYXN0TW9kaWZpZWQpKTsKICAgICAgICAgICAgIGZvdW5kRGF0ZSA9IHRydWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3Bw
CmluZGV4IGU3MzEyNzE1ZmE0YzUwMzU5YTljZTY4YTI5MmRmZTY0MzM3MjgxZDQuLjdlNTc5OWQ1
ZTdkNDU4NGJkYTdlMDNjZDM2Yjg0OGMzMDI5YjgwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCkBAIC0xMzYsNyArMTM2LDcg
QEAgYm9vbCBwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2soY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIFN0b3JlZENyZWRlbnRpYWwKIHsKICAgICAvLyBBIHdpbGRjYXJkIEFjY2Vzcy1D
b250cm9sLUFsbG93LU9yaWdpbiBjYW4gbm90IGJlIHVzZWQgaWYgY3JlZGVudGlhbHMgYXJlIHRv
IGJlIHNlbnQsCiAgICAgLy8gZXZlbiB3aXRoIEFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRp
YWxzIHNldCB0byB0cnVlLgotICAgIGNvbnN0IFN0cmluZyYgYWNjZXNzQ29udHJvbE9yaWdpblN0
cmluZyA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZCgiYWNjZXNzLWNvbnRyb2wtYWxsb3ctb3Jp
Z2luIik7CisgICAgY29uc3QgU3RyaW5nJiBhY2Nlc3NDb250cm9sT3JpZ2luU3RyaW5nID0gcmVz
cG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sQWxsb3dP
cmlnaW4pOwogICAgIGlmIChhY2Nlc3NDb250cm9sT3JpZ2luU3RyaW5nID09ICIqIiAmJiBpbmNs
dWRlQ3JlZGVudGlhbHMgPT0gRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIApAQCAtMTU1LDcgKzE1NSw3IEBAIGJvb2wgcGFzc2VzQWNjZXNzQ29udHJv
bENoZWNrKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBTdG9yZWRDcmVkZW50aWFs
CiAgICAgfQogCiAgICAgaWYgKGluY2x1ZGVDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRl
bnRpYWxzKSB7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgYWNjZXNzQ29udHJvbENyZWRlbnRpYWxz
U3RyaW5nID0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKCJhY2Nlc3MtY29udHJvbC1hbGxvdy1j
cmVkZW50aWFscyIpOworICAgICAgICBjb25zdCBTdHJpbmcmIGFjY2Vzc0NvbnRyb2xDcmVkZW50
aWFsc1N0cmluZyA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNj
ZXNzQ29udHJvbEFsbG93Q3JlZGVudGlhbHMpOwogICAgICAgICBpZiAoYWNjZXNzQ29udHJvbENy
ZWRlbnRpYWxzU3RyaW5nICE9ICJ0cnVlIikgewogICAgICAgICAgICAgZXJyb3JEZXNjcmlwdGlv
biA9ICJDcmVkZW50aWFscyBmbGFnIGlzIHRydWUsIGJ1dCBBY2Nlc3MtQ29udHJvbC1BbGxvdy1D
cmVkZW50aWFscyBpcyBub3QgXCJ0cnVlXCIuIjsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJl
c3VsdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdo
dFJlc3VsdENhY2hlLmNwcAppbmRleCA2ODQ4MTM0NDczYWUzNjQ0YWVjZWY1NjEzYmM5OGIwYjQx
NDgxNWFjLi4yZGRlZjcwY2Y1MjIxNzZlMjY5Y2IzY2Y2MmU5ZjM2ODE2NGJiMTMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNo
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVz
dWx0Q2FjaGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5QcmVm
bGlnaHRSZXN1bHRDYWNoZS5oIgogCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmgiCisjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNw
b25zZS5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CkBAIC05MiwxOSArOTMsMTkgQEAgc3RhdGljIGJvb2wgcGFyc2VBY2Nlc3ND
b250cm9sQWxsb3dMaXN0KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBIYXNoU2V0PFN0cmluZywgSGEK
IGJvb2wgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW06OnBhcnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBTdHJpbmcmIGVycm9yRGVzY3JpcHRpb24pCiB7CiAg
ICAgbV9tZXRob2RzLmNsZWFyKCk7Ci0gICAgaWYgKCFwYXJzZUFjY2Vzc0NvbnRyb2xBbGxvd0xp
c3QocmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2Rz
IiksIG1fbWV0aG9kcykpIHsKKyAgICBpZiAoIXBhcnNlQWNjZXNzQ29udHJvbEFsbG93TGlzdChy
ZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkFjY2Vzc0NvbnRyb2xBbGxv
d01ldGhvZHMpLCBtX21ldGhvZHMpKSB7CiAgICAgICAgIGVycm9yRGVzY3JpcHRpb24gPSAiQ2Fu
bm90IHBhcnNlIEFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMgcmVzcG9uc2UgaGVhZGVyIGZp
ZWxkLiI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBtX2hlYWRlcnMuY2xl
YXIoKTsKLSAgICBpZiAoIXBhcnNlQWNjZXNzQ29udHJvbEFsbG93TGlzdChyZXNwb25zZS5odHRw
SGVhZGVyRmllbGQoIkFjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMiKSwgbV9oZWFkZXJzKSkg
eworICAgIGlmICghcGFyc2VBY2Nlc3NDb250cm9sQWxsb3dMaXN0KHJlc3BvbnNlLmh0dHBIZWFk
ZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNjZXNzQ29udHJvbEFsbG93SGVhZGVycyksIG1faGVh
ZGVycykpIHsKICAgICAgICAgZXJyb3JEZXNjcmlwdGlvbiA9ICJDYW5ub3QgcGFyc2UgQWNjZXNz
LUNvbnRyb2wtQWxsb3ctSGVhZGVycyByZXNwb25zZSBoZWFkZXIgZmllbGQuIjsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzIGV4cGlyeURl
bHRhOwotICAgIGlmIChwYXJzZUFjY2Vzc0NvbnRyb2xNYXhBZ2UocmVzcG9uc2UuaHR0cEhlYWRl
ckZpZWxkKCJBY2Nlc3MtQ29udHJvbC1NYXgtQWdlIiksIGV4cGlyeURlbHRhKSkgeworICAgIGlm
IChwYXJzZUFjY2Vzc0NvbnRyb2xNYXhBZ2UocmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sTWF4QWdlKSwgZXhwaXJ5RGVsdGEpKSB7CiAgICAgICAg
IGlmIChleHBpcnlEZWx0YSA+IG1heFByZWZsaWdodENhY2hlVGltZW91dCkKICAgICAgICAgICAg
IGV4cGlyeURlbHRhID0gbWF4UHJlZmxpZ2h0Q2FjaGVUaW1lb3V0OwogICAgIH0gZWxzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYmMwYzQwOTAxNzAxMmVjZTE3ZmY0
MDljYTlhZDAwZmQwZGY2NGQ0Ni4uZjY1MWFlZWE3MDM3OGJhOGU5NDBjYTQzZmE5NDUyYTAxYzdh
OWU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC02NjgsNyArNjY4
LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6cmVjZWl2ZWRGaXJzdERhdGEoKQogCiAgICAgZG91Ymxl
IGRlbGF5OwogICAgIFN0cmluZyB1cmxTdHJpbmc7Ci0gICAgaWYgKCFwYXJzZUhUVFBSZWZyZXNo
KG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJSZWZyZXNoIiks
IGZhbHNlLCBkZWxheSwgdXJsU3RyaW5nKSkKKyAgICBpZiAoIXBhcnNlSFRUUFJlZnJlc2gobV9k
b2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6
OlJlZnJlc2gpLCBmYWxzZSwgZGVsYXksIHVybFN0cmluZykpCiAgICAgICAgIHJldHVybjsKICAg
ICBVUkwgY29tcGxldGVkVVJMOwogICAgIGlmICh1cmxTdHJpbmcuaXNFbXB0eSgpKQpAQCAtNzEy
LDI3ICs3MTIsMjcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGlkQmVnaW5Eb2N1bWVudChib29sIGRp
c3BhdGNoKQogICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+
c2V0QXV0b0xvYWRJbWFnZXMoc2V0dGluZ3MubG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCkpOwog
CiAgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpIHsKLSAgICAgICAgU3RyaW5nIGRuc1ByZWZldGNo
Q29udHJvbCA9IG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJY
LUROUy1QcmVmZXRjaC1Db250cm9sIik7CisgICAgICAgIFN0cmluZyBkbnNQcmVmZXRjaENvbnRy
b2wgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6WEROU1ByZWZldGNoQ29udHJvbCk7CiAgICAgICAgIGlmICghZG5zUHJlZmV0Y2hD
b250cm9sLmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFyc2VE
TlNQcmVmZXRjaENvbnRyb2xIZWFkZXIoZG5zUHJlZmV0Y2hDb250cm9sKTsKIAotICAgICAgICBT
dHJpbmcgcG9saWN5VmFsdWUgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFk
ZXJGaWVsZCgiQ29udGVudC1TZWN1cml0eS1Qb2xpY3kiKTsKKyAgICAgICAgU3RyaW5nIHBvbGlj
eVZhbHVlID0gbV9kb2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSk7CiAgICAgICAgIGlmICghcG9saWN5
VmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5jb250ZW50
U2VjdXJpdHlQb2xpY3koKS0+ZGlkUmVjZWl2ZUhlYWRlcihwb2xpY3lWYWx1ZSwgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpFbmZvcmNlKTsKIAotICAgICAgICBwb2xpY3lWYWx1ZSA9IG1fZG9jdW1l
bnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJDb250ZW50LVNlY3VyaXR5LVBv
bGljeS1SZXBvcnQtT25seSIpOworICAgICAgICBwb2xpY3lWYWx1ZSA9IG1fZG9jdW1lbnRMb2Fk
ZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXBvcnRPbmx5KTsKICAgICAgICAgaWYgKCFwb2xpY3lWYWx1ZS5pc0VtcHR5
KCkpCiAgICAgICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpLT5kaWRSZWNlaXZlSGVhZGVyKHBvbGljeVZhbHVlLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OlJlcG9ydCk7CiAKLSAgICAgICAgcG9saWN5VmFsdWUgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNw
b25zZSgpLmh0dHBIZWFkZXJGaWVsZCgiWC1XZWJLaXQtQ1NQIik7CisgICAgICAgIHBvbGljeVZh
bHVlID0gbV9kb2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoSFRUUEhl
YWRlck5hbWU6OlhXZWJLaXRDU1ApOwogICAgICAgICBpZiAoIXBvbGljeVZhbHVlLmlzRW1wdHko
KSkKICAgICAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5
KCktPmRpZFJlY2VpdmVIZWFkZXIocG9saWN5VmFsdWUsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
UHJlZml4ZWRFbmZvcmNlKTsKIAotICAgICAgICBwb2xpY3lWYWx1ZSA9IG1fZG9jdW1lbnRMb2Fk
ZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJYLVdlYktpdC1DU1AtUmVwb3J0LU9ubHki
KTsKKyAgICAgICAgcG9saWN5VmFsdWUgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0
dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6WFdlYktpdENTUFJlcG9ydE9ubHkpOwogICAg
ICAgICBpZiAoIXBvbGljeVZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1fZnJhbWUuZG9j
dW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmRpZFJlY2VpdmVIZWFkZXIocG9saWN5
VmFsdWUsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UHJlZml4ZWRSZXBvcnQpOwogCi0gICAgICAg
IFN0cmluZyBoZWFkZXJDb250ZW50TGFuZ3VhZ2UgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25z
ZSgpLmh0dHBIZWFkZXJGaWVsZCgiQ29udGVudC1MYW5ndWFnZSIpOworICAgICAgICBTdHJpbmcg
aGVhZGVyQ29udGVudExhbmd1YWdlID0gbV9kb2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRw
SGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRMYW5ndWFnZSk7CiAgICAgICAgIGlm
ICghaGVhZGVyQ29udGVudExhbmd1YWdlLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgc2l6ZV90
IGNvbW1hSW5kZXggPSBoZWFkZXJDb250ZW50TGFuZ3VhZ2UuZmluZCgnLCcpOwogICAgICAgICAg
ICAgaGVhZGVyQ29udGVudExhbmd1YWdlLnRydW5jYXRlKGNvbW1hSW5kZXgpOyAvLyBub3RGb3Vu
ZCA9PSAtMSA9PSBkb24ndCB0cnVuY2F0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRleCBkMmNmOWM0MmI1
YThlZWMxODYzN2FiMDQ1NzIyOGMzZjMwMjdiZDQ5Li40ZDdmYzA5ZTk2ZDBhODIxZTcyNTdkZTM5
NWI0NmE0YjNiNmQ2NDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtNDg0LDggKzQ4NCw4IEBAIFBh
c3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y3JlYXRlUmVz
b3VyY2VIYW5kbGUoY29uc3QgVVJMCiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OkNhY2hlQ29udHJvbCwgIm1heC1hZ2U9MCIpOwogCiAgICAgaWYgKG5ld2Vz
dENhY2hlZFJlc291cmNlKSB7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgbGFzdE1vZGlmaWVkID0g
bmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJMYXN0LU1v
ZGlmaWVkIik7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgZVRhZyA9IG5ld2VzdENhY2hlZFJlc291
cmNlLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZCgiRVRhZyIpOworICAgICAgICBjb25zdCBT
dHJpbmcmIGxhc3RNb2RpZmllZCA9IG5ld2VzdENhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpLmh0
dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6TGFzdE1vZGlmaWVkKTsKKyAgICAgICAgY29u
c3QgU3RyaW5nJiBlVGFnID0gbmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cEhl
YWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpFVGFnKTsKICAgICAgICAgaWYgKCFsYXN0TW9kaWZp
ZWQuaXNFbXB0eSgpIHx8ICFlVGFnLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgaWYgKCFsYXN0
TW9kaWZpZWQuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRl
ckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpJZk1vZGlmaWVkU2luY2UsIGxhc3RNb2RpZmllZCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVl
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5j
cHAKaW5kZXggZGQ0ZGZjODFhYmU1Nzc5YzJlY2I5NWE4ZTM5NGNlZTExYTEzYzY4YS4uZjk2NGNl
MTZmNWNiZjg5ZWViODc4YTVjOTQzMTY3NzFkNmI0Nzg1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcApAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUNsaWVudFdhbGtlci5oIgogI2luY2x1ZGUgIkNhY2hlZFN0eWxlU2hlZXRDbGllbnQuaCIKKyNp
bmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2lu
Y2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKQEAgLTEy
OSw3ICsxMzAsNyBAQCBib29sIENhY2hlZENTU1N0eWxlU2hlZXQ6OmNhblVzZVNoZWV0KGJvb2wg
ZW5mb3JjZU1JTUVUeXBlLCBib29sKiBoYXNWYWxpZE1JTUVUeQogICAgIC8vCiAgICAgLy8gVGhp
cyBjb2RlIGRlZmF1bHRzIHRvIGFsbG93aW5nIHRoZSBzdHlsZXNoZWV0IGZvciBub24tSFRUUCBw
cm90b2NvbHMgc28KICAgICAvLyBmb2xrcyBjYW4gdXNlIHN0YW5kYXJkcyBtb2RlIGZvciBsb2Nh
bCBIVE1MIGRvY3VtZW50cy4KLSAgICBTdHJpbmcgbWltZVR5cGUgPSBleHRyYWN0TUlNRVR5cGVG
cm9tTWVkaWFUeXBlKHJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJDb250ZW50LVR5cGUiKSk7
CisgICAgU3RyaW5nIG1pbWVUeXBlID0gZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShyZXNw
b25zZSgpLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUpKTsKICAg
ICBib29sIHR5cGVPSyA9IG1pbWVUeXBlLmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQ2FzZSht
aW1lVHlwZSwgInRleHQvY3NzIikgfHwgZXF1YWxJZ25vcmluZ0Nhc2UobWltZVR5cGUsICJhcHBs
aWNhdGlvbi94LXVua25vd24tY29udGVudC10eXBlIik7CiAgICAgaWYgKGhhc1ZhbGlkTUlNRVR5
cGUpCiAgICAgICAgICpoYXNWYWxpZE1JTUVUeXBlID0gdHlwZU9LOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggMDc3ODVkNzY1MGEzZmM1
OTYzYzkyMTlhM2E3MTQxZWIwY2RiOGFmYi4uMmQ1ZjVlNDIzZWFmYzgxZjhlOWU5NDg5ZGUzODg3
NDZlZjE2YjgxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCkBAIC0yODMsOCArMjgzLDggQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChD
YWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIsIGNvbnN0IFJlc28KICAg
ICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlVG9SZXZhbGlkYXRlID0gbV9yZXNvdXJjZVRv
UmV2YWxpZGF0ZTsKICAgICAgICAgQVNTRVJUKHJlc291cmNlVG9SZXZhbGlkYXRlLT5jYW5Vc2VD
YWNoZVZhbGlkYXRvcigpKTsKICAgICAgICAgQVNTRVJUKHJlc291cmNlVG9SZXZhbGlkYXRlLT5p
c0xvYWRlZCgpKTsKLSAgICAgICAgY29uc3QgU3RyaW5nJiBsYXN0TW9kaWZpZWQgPSByZXNvdXJj
ZVRvUmV2YWxpZGF0ZS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoIkxhc3QtTW9kaWZpZWQi
KTsKLSAgICAgICAgY29uc3QgU3RyaW5nJiBlVGFnID0gcmVzb3VyY2VUb1JldmFsaWRhdGUtPnJl
c3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJFVGFnIik7CisgICAgICAgIGNvbnN0IFN0cmluZyYg
bGFzdE1vZGlmaWVkID0gcmVzb3VyY2VUb1JldmFsaWRhdGUtPnJlc3BvbnNlKCkuaHR0cEhlYWRl
ckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpMYXN0TW9kaWZpZWQpOworICAgICAgICBjb25zdCBTdHJp
bmcmIGVUYWcgPSByZXNvdXJjZVRvUmV2YWxpZGF0ZS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmll
bGQoSFRUUEhlYWRlck5hbWU6OkVUYWcpOwogICAgICAgICBpZiAoIWxhc3RNb2RpZmllZC5pc0Vt
cHR5KCkgfHwgIWVUYWcuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBBU1NFUlQoY2FjaGVkUmVz
b3VyY2VMb2FkZXItPmNhY2hlUG9saWN5KHR5cGUoKSkgIT0gQ2FjaGVQb2xpY3lSZWxvYWQpOwog
ICAgICAgICAgICAgaWYgKGNhY2hlZFJlc291cmNlTG9hZGVyLT5jYWNoZVBvbGljeSh0eXBlKCkp
ID09IENhY2hlUG9saWN5UmV2YWxpZGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFNjcmlwdC5jcHAKaW5kZXggZDk4NzVlZDgyMjM5Nzk2YTA3NzEyMzJmNDE3YTcwOGVh
YzA0NDRjMi4uODg5MDIyNTRkN2ZkYWNlNjA5MGI2MzZkZDcxNThiYzMwMDM5NjY4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKQEAgLTI5LDYgKzI5
LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCIKKyNpbmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIK
ICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIK
ICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgpAQCAtNjUsNyArNjYsNyBAQCBTdHJpbmcgQ2FjaGVk
U2NyaXB0OjplbmNvZGluZygpIGNvbnN0CiAKIFN0cmluZyBDYWNoZWRTY3JpcHQ6Om1pbWVUeXBl
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShtX3Jl
c3BvbnNlLmh0dHBIZWFkZXJGaWVsZCgiQ29udGVudC1UeXBlIikpLmxvd2VyKCk7CisgICAgcmV0
dXJuIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUobV9yZXNwb25zZS5odHRwSGVhZGVyRmll
bGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlKSkubG93ZXIoKTsKIH0KIAogY29uc3QgU3Ry
aW5nJiBDYWNoZWRTY3JpcHQ6OnNjcmlwdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcAppbmRleCBiMzc4NGU2ZDIyM2Y3YTRiOWViODRk
OTBiYmJlNmVjYWU1OGI2NjhiLi5jMDUxNmMyYTUyMTZkZGI5MzA5MTBkMmY2Y2Y3YjE1NDdiM2Nh
YTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VU
aW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRp
bWluZy5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50TG9hZFRpbWluZy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisj
aW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgpAQCAtNTcs
NyArNTgsNyBAQCBzdGF0aWMgYm9vbCBwYXNzZXNUaW1pbmdBbGxvd0NoZWNrKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBEb2N1bWVudCogcgogICAgIGlmIChyZXNvdXJjZU9yaWdp
bi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQocmVxdWVzdGluZ0RvY3VtZW50LT5zZWN1cml0eU9yaWdp
bigpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBjb25zdCBTdHJpbmcmIHRpbWluZ0Fs
bG93T3JpZ2luU3RyaW5nID0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKCJ0aW1pbmctYWxsb3ct
b3JpZ2luIik7CisgICAgY29uc3QgU3RyaW5nJiB0aW1pbmdBbGxvd09yaWdpblN0cmluZyA9IHJl
c3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6VGltaW5nQWxsb3dPcmlnaW4p
OwogICAgIGlmICh0aW1pbmdBbGxvd09yaWdpblN0cmluZy5pc0VtcHR5KCkgfHwgZXF1YWxJZ25v
cmluZ0Nhc2UodGltaW5nQWxsb3dPcmlnaW5TdHJpbmcsICJudWxsIikpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9I
VFRQSGVhZGVyTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBI
ZWFkZXJOYW1lcy5pbgppbmRleCA0MTRjMGYyZDU0ZDM2ODNiNzMyOWY5N2U4MmQ2NmQ1MDYwYzZm
ZjRlLi44OTAyNTIxYzdkOTcwM2JmNGJlNTRmMmVhMjQ1YzZiY2E0YzY0N2VkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJOYW1lcy5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJOYW1lcy5pbgpAQCAt
MjQsNiArMjQsMTIgQEAKIC8vCiAKIEFjY2VwdAorQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVu
dGlhbHMKK0FjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMKK0FjY2Vzcy1Db250cm9sLUFsbG93
LU1ldGhvZHMKK0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbgorQWNjZXNzLUNvbnRyb2wtRXhw
b3NlLUhlYWRlcnMKK0FjY2Vzcy1Db250cm9sLU1heC1BZ2UKIEFjY2Vzcy1Db250cm9sLVJlcXVl
c3QtSGVhZGVycwogQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2QKIEFnZQpAQCAtMzEsNiAr
MzcsNyBAQCBBdXRob3JpemF0aW9uCiBDYWNoZS1Db250cm9sCiBDb25uZWN0aW9uCiBDb250ZW50
LURpc3Bvc2l0aW9uCitDb250ZW50LUVuY29kaW5nCiBDb250ZW50LUxhbmd1YWdlCiBDb250ZW50
LUxlbmd0aAogQ29udGVudC1TZWN1cml0eS1Qb2xpY3kKQEAgLTY1LDYgKzcyLDcgQEAgU2VjLVdl
YlNvY2tldC1Qcm90b2NvbAogU2VjLVdlYlNvY2tldC1WZXJzaW9uCiBTZXQtQ29va2llCiBTZXQt
Q29va2llMgorVGltaW5nLUFsbG93LU9yaWdpbgogVXBncmFkZQogVXNlci1BZ2VudAogWC1ETlMt
UHJlZmV0Y2gtQ29udHJvbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAppbmRleCA0M2RkN2IwZGYzODYyYWQ5NzAy
NzY4YWVlODA1MzQxY2VkZGNhNWNhLi4xYTg3ZTAwNjQ0Mjg4YThiMzQxNDJkYzk2ZDFmZTMwYzQ1
MWI3MGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVzcG9uc2VCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcApAQCAtMjczLDcgKzI3Myw3IEBAIFN0cmluZyBSZXNv
dXJjZVJlc3BvbnNlQmFzZTo6aHR0cEhlYWRlckZpZWxkKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSkgY29uc3QKICAgICByZXR1cm4gbV9odHRwSGVhZGVyRmllbGRzLmdldChuYW1lKTsgCiB9CiAK
LVN0cmluZyBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6aHR0cEhlYWRlckZpZWxkKGNvbnN0IGNoYXIq
IG5hbWUpIGNvbnN0CitTdHJpbmcgUmVzb3VyY2VSZXNwb25zZUJhc2U6Omh0dHBIZWFkZXJGaWVs
ZChIVFRQSGVhZGVyTmFtZSBuYW1lKSBjb25zdAogewogICAgIGxhenlJbml0KENvbW1vbkZpZWxk
c09ubHkpOwogCkBAIC0zMjksNiArMzI5LDE3IEBAIHZvaWQgUmVzb3VyY2VSZXNwb25zZUJhc2U6
OnNldEhUVFBIZWFkZXJGaWVsZChjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFN0CiAg
ICAgLy8gRklYTUU6IFNob3VsZCBpbnZhbGlkYXRlIG9yIHVwZGF0ZSBwbGF0Zm9ybSByZXNwb25z
ZSBpZiBwcmVzZW50LgogfQogCit2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjpzZXRIVFRQSGVh
ZGVyRmllbGQoSFRUUEhlYWRlck5hbWUgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAg
ICBsYXp5SW5pdChDb21tb25BbmRVbmNvbW1vbkZpZWxkcyk7CisKKyAgICB1cGRhdGVIZWFkZXJQ
YXJzZWRTdGF0ZShuYW1lKTsKKworICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQobmFtZSwgdmFs
dWUpOworCisgICAgLy8gRklYTUU6IFNob3VsZCBpbnZhbGlkYXRlIG9yIHVwZGF0ZSBwbGF0Zm9y
bSByZXNwb25zZSBpZiBwcmVzZW50LgorfQorCiB2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjph
ZGRIVFRQSGVhZGVyRmllbGQoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IHZhbHVlKQogewogICAgIGxhenlJbml0KENvbW1vbkFuZFVuY29tbW9uRmllbGRzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJh
c2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJh
c2UuaAppbmRleCA1OTNiYmM5NTc5MzA3OTFjMzJiNzc3NGY5ZGMzZmJlNTZlYWY2OTM5Li40ZDAx
NWI5NTVlZWY4NDlmODkzOWU0YzFlNTIxMWM2MDc5YWE3YWJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oCkBAIC03
NywxMiArNzcsMjAgQEAgcHVibGljOgogICAgIAogICAgIGNvbnN0IFN0cmluZyYgaHR0cFN0YXR1
c1RleHQoKSBjb25zdDsKICAgICB2b2lkIHNldEhUVFBTdGF0dXNUZXh0KGNvbnN0IFN0cmluZyYp
OwotICAgIAorCisgICAgY29uc3QgSFRUUEhlYWRlck1hcCYgaHR0cEhlYWRlckZpZWxkcygpIGNv
bnN0OworCiAgICAgU3RyaW5nIGh0dHBIZWFkZXJGaWVsZChjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWUpIGNvbnN0OwotICAgIFN0cmluZyBodHRwSGVhZGVyRmllbGQoY29uc3QgY2hhciogbmFtZSkg
Y29uc3Q7CisgICAgU3RyaW5nIGh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZSkgY29uc3Q7
CiAgICAgdm9pZCBzZXRIVFRQSGVhZGVyRmllbGQoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIHZhbHVlKTsKKyAgICB2b2lkIHNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CisKICAgICB2b2lkIGFkZEhUVFBIZWFkZXJG
aWVsZChjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwotICAg
IGNvbnN0IEhUVFBIZWFkZXJNYXAmIGh0dHBIZWFkZXJGaWVsZHMoKSBjb25zdDsKKworICAgIC8v
IEluc3RlYWQgb2YgcGFzc2luZyBhIHN0cmluZyBsaXRlcmFsIHRvIGFueSBvZiB0aGVzZSBmdW5j
dGlvbnMsIGp1c3QgdXNlIGEgSFRUUEhlYWRlck5hbWUgaW5zdGVhZC4KKyAgICB0ZW1wbGF0ZTxz
aXplX3QgbGVuZ3RoPiBTdHJpbmcgaHR0cEhlYWRlckZpZWxkKGNvbnN0IGNoYXIgKCYpW2xlbmd0
aF0pIGNvbnN0ID0gZGVsZXRlOworICAgIHRlbXBsYXRlPHNpemVfdCBsZW5ndGg+IHZvaWQgc2V0
SFRUUEhlYWRlckZpZWxkKGNvbnN0IGNoYXIgKCYpW2xlbmd0aF0sIGNvbnN0IFN0cmluZyYpID0g
ZGVsZXRlOworICAgIHRlbXBsYXRlPHNpemVfdCBsZW5ndGg+IHZvaWQgYWRkSFRUUEhlYWRlckZp
ZWxkKGNvbnN0IGNoYXIgKCYpW2xlbmd0aF0sIGNvbnN0IFN0cmluZyYpID0gZGVsZXRlOwogCiAg
ICAgYm9vbCBpc011bHRpcGFydCgpIGNvbnN0IHsgcmV0dXJuIG1pbWVUeXBlKCkgPT0gIm11bHRp
cGFydC94LW1peGVkLXJlcGxhY2UiOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luU3Ry
ZWFtLmNwcAppbmRleCBmNzU5MzlmNzQzYWYxZmQwN2IyYWJiMjY2ZTA4MjY4ZDlkN2RhOWI2Li45
NWZkZWM1NmMwNTkxNzQyYzdhNDM5OGJmNWFhODE2N2Y0ZWEzYmRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5TdHJlYW0uY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9j
dW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
LmgiCisjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiUGx1Z2luRGVidWcu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJTaGFyZWRC
dWZmZXIuaCIKQEAgLTE2OCw3ICsxNjksNyBAQCB2b2lkIFBsdWdpblN0cmVhbTo6c3RhcnRTdHJl
YW0oKQogICAgICAgICAvLyBJZiB0aGUgY29udGVudCBpcyBlbmNvZGVkIChtb3N0IGxpa2VseSBj
b21wcmVzc2VkKSwgdGhlbiBkb24ndCBzZW5kIGl0cyBsZW5ndGggdG8gdGhlIHBsdWdpbiwKICAg
ICAgICAgLy8gd2hpY2ggaXMgb25seSBpbnRlcmVzdGVkIGluIHRoZSBkZWNvZGVkIGxlbmd0aCwg
bm90IHlldCBrbm93biBhdCB0aGUgbW9tZW50LgogICAgICAgICAvLyA8cmRhcjovL3Byb2JsZW0v
NDQ3MDU5OT4gdHJhY2tzIGEgcmVxdWVzdCBmb3IgLVtOU1VSTFJlc3BvbnNlIGV4cGVjdGVkQ29u
dGVudExlbmd0aF0gdG8gaW5jb3Jwb3JhdGUgdGhpcyBsb2dpYy4KLSAgICAgICAgU3RyaW5nIGNv
bnRlbnRFbmNvZGluZyA9IG1fcmVzb3VyY2VSZXNwb25zZS5odHRwSGVhZGVyRmllbGQoIkNvbnRl
bnQtRW5jb2RpbmciKTsKKyAgICAgICAgU3RyaW5nIGNvbnRlbnRFbmNvZGluZyA9IG1fcmVzb3Vy
Y2VSZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRFbmNvZGlu
Zyk7CiAgICAgICAgIGlmICghY29udGVudEVuY29kaW5nLmlzTnVsbCgpICYmIGNvbnRlbnRFbmNv
ZGluZyAhPSAiaWRlbnRpdHkiKQogICAgICAgICAgICAgZXhwZWN0ZWRDb250ZW50TGVuZ3RoID0g
LTE7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggYTRlMGU1
YWZjMjhiODA4ZjhmMDZkYTA0NDk4MjhjOWY2MjkwYmQwMy4uM2M3MGYyYmYwNjI2MmRlYzFjYzQ0
NmU0ZTc2ODEzMzg1ZmVlYmFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
CkBAIC05NjQsNyArOTY0LDcgQEAgU3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25z
ZUhlYWRlcnMoKSBjb25zdAogICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKIAogICAg
IEhUVFBIZWFkZXJTZXQgYWNjZXNzQ29udHJvbEV4cG9zZUhlYWRlclNldDsKLSAgICBwYXJzZUFj
Y2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJzQWxsb3dMaXN0KG1fcmVzcG9uc2UuaHR0cEhlYWRlckZp
ZWxkKCJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycyIpLCBhY2Nlc3NDb250cm9sRXhwb3Nl
SGVhZGVyU2V0KTsKKyAgICBwYXJzZUFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJzQWxsb3dMaXN0
KG1fcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9s
RXhwb3NlSGVhZGVycyksIGFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJTZXQpOwogICAgIAogICAg
IGZvciAoY29uc3QgYXV0byYgaGVhZGVyIDogbV9yZXNwb25zZS5odHRwSGVhZGVyRmllbGRzKCkp
IHsKICAgICAgICAgLy8gSGlkZSBTZXQtQ29va2llIGhlYWRlciBmaWVsZHMgZnJvbSB0aGUgWE1M
SHR0cFJlcXVlc3QgY2xpZW50IGZvciB0aGVzZSByZWFzb25zOgpAQCAtMTAwMiw3ICsxMDAyLDcg
QEAgU3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpnZXRSZXNwb25zZUhlYWRlcihjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWUpIGNvbnN0CiAgICAgfQogCiAgICAgSFRUUEhlYWRlclNldCBhY2Nlc3NDb250
cm9sRXhwb3NlSGVhZGVyU2V0OwotICAgIHBhcnNlQWNjZXNzQ29udHJvbEV4cG9zZUhlYWRlcnNB
bGxvd0xpc3QobV9yZXNwb25zZS5odHRwSGVhZGVyRmllbGQoIkFjY2Vzcy1Db250cm9sLUV4cG9z
ZS1IZWFkZXJzIiksIGFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJTZXQpOworICAgIHBhcnNlQWNj
ZXNzQ29udHJvbEV4cG9zZUhlYWRlcnNBbGxvd0xpc3QobV9yZXNwb25zZS5odHRwSGVhZGVyRmll
bGQoSFRUUEhlYWRlck5hbWU6OkFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJzKSwgYWNjZXNzQ29u
dHJvbEV4cG9zZUhlYWRlclNldCk7CiAKICAgICBpZiAoIW1fc2FtZU9yaWdpblJlcXVlc3QgJiYg
IWlzT25BY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3QobmFtZSkgJiYgIWFjY2Vz
c0NvbnRyb2xFeHBvc2VIZWFkZXJTZXQuY29udGFpbnMobmFtZSkpIHsKICAgICAgICAgbG9nQ29u
c29sZUVycm9yKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgIlJlZnVzZWQgdG8gZ2V0IHVuc2Fm
ZSBoZWFkZXIgXCIiICsgbmFtZSArICJcIiIpOwpAQCAtMTAxNiw3ICsxMDE2LDcgQEAgU3RyaW5n
IFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZU1JTUVUeXBlKCkgY29uc3QKICAgICBTdHJpbmcgbWlt
ZVR5cGUgPSBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKG1fbWltZVR5cGVPdmVycmlkZSk7
CiAgICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkgewogICAgICAgICBpZiAobV9yZXNwb25zZS5p
c0hUVFAoKSkKLSAgICAgICAgICAgIG1pbWVUeXBlID0gZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlh
VHlwZShtX3Jlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZCgiQ29udGVudC1UeXBlIikpOworICAgICAg
ICAgICAgbWltZVR5cGUgPSBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKG1fcmVzcG9uc2Uu
aHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50VHlwZSkpOwogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBtaW1lVHlwZSA9IG1fcmVzcG9uc2UubWltZVR5cGUoKTsKICAgICB9
CkBAIC0xMTM2LDcgKzExMzYsNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRSZWNlaXZlUmVz
cG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZQogCiAgICAgbV9y
ZXNwb25zZSA9IHJlc3BvbnNlOwogICAgIGlmICghbV9taW1lVHlwZU92ZXJyaWRlLmlzRW1wdHko
KSkgewotICAgICAgICBtX3Jlc3BvbnNlLnNldEhUVFBIZWFkZXJGaWVsZCgiQ29udGVudC1UeXBl
IiwgbV9taW1lVHlwZU92ZXJyaWRlKTsKKyAgICAgICAgbV9yZXNwb25zZS5zZXRIVFRQSGVhZGVy
RmllbGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlLCBtX21pbWVUeXBlT3ZlcnJpZGUpOwog
ICAgICAgICBtX3Jlc3BvbnNlRW5jb2RpbmcgPSBleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUo
bV9taW1lVHlwZU92ZXJyaWRlKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCA2YmYwNTA5ZDBjNjIzMTRmYjQwZDk3
MzA1NTFmN2RlMDFjNzYyM2M3Li4yMDIzMGQyYmMxYWZmMmQ1NDQwZDQyY2E2MTJhZmY3MmM0NDUy
Mzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRl
eHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxQbHVnSW5FbGVtZW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQ
SGVhZGVyTmFtZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hvc3RXaW5kb3cuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01haW5GcmFt
ZS5oPgpAQCAtMTkzLDcgKzE5NCw3IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRIVFRQSGVhZGVycyhj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgbG9uZyBsb25nJiBleHBlCiAgICAgLy8g
SWYgdGhlIGNvbnRlbnQgaXMgZW5jb2RlZCAobW9zdCBsaWtlbHkgY29tcHJlc3NlZCksIHRoZW4g
ZG9uJ3Qgc2VuZCBpdHMgbGVuZ3RoIHRvIHRoZSBwbHVnaW4sCiAgICAgLy8gd2hpY2ggaXMgb25s
eSBpbnRlcmVzdGVkIGluIHRoZSBkZWNvZGVkIGxlbmd0aCwgbm90IHlldCBrbm93biBhdCB0aGUg
bW9tZW50LgogICAgIC8vIDxyZGFyOi8vcHJvYmxlbS80NDcwNTk5PiB0cmFja3MgYSByZXF1ZXN0
IGZvciAtW05TVVJMUmVzcG9uc2UgZXhwZWN0ZWRDb250ZW50TGVuZ3RoXSB0byBpbmNvcnBvcmF0
ZSB0aGlzIGxvZ2ljLgotICAgIFN0cmluZyBjb250ZW50RW5jb2RpbmcgPSByZXNwb25zZS5odHRw
SGVhZGVyRmllbGQoIkNvbnRlbnQtRW5jb2RpbmciKTsKKyAgICBTdHJpbmcgY29udGVudEVuY29k
aW5nID0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50RW5j
b2RpbmcpOwogICAgIGlmICghY29udGVudEVuY29kaW5nLmlzTnVsbCgpICYmIGNvbnRlbnRFbmNv
ZGluZyAhPSAiaWRlbnRpdHkiKQogICAgICAgICBleHBlY3RlZENvbnRlbnRMZW5ndGggPSAtMTsK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233169</attachid>
            <date>2014-06-16 12:14:10 -0700</date>
            <delta_ts>2014-06-16 12:16:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133946-20140616121353.patch</filename>
            <type>text/plain</type>
            <size>26102</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwMDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjkxMWU4Yjk0ZDBmNjNj
MDE5NDdlZDU5YmI0YTFjYzU5NTg0NTg2OC4uN2ViMzY1MjkxM2JjYmE0MDE0YzkxZDQyNzMxNTIy
MjI4MjU4ODQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTA2LTE2ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEhUVFBIZWFk
ZXJOYW1lIG92ZXJsb2FkcyBvbiBSZXNvdXJjZVJlc3BvbnNlQmFzZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzOTQ2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Omxhc3RN
b2RpZmllZCk6CisgICAgICAgICogbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2spOgorICAgICAgICAq
IGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjpwYXJzZSk6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjpyZWNlaXZlZEZpcnN0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
ZGlkQmVnaW5Eb2N1bWVudCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6
OmNyZWF0ZVJlc291cmNlSGFuZGxlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NT
U3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0Ojpj
YW5Vc2VTaGVldCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpsb2FkKToKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlw
dDo6bWltZVR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck5hbWVz
LmluOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6Omh0dHBIZWFkZXJGaWVs
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c2V0SFRUUEhlYWRl
ckZpZWxkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNl
Lmg6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZU1JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlhN
TEh0dHBSZXF1ZXN0OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorCiAyMDE0LTA0LTA1ICBBbnRvbmlv
IEdvbWVzICA8YTEuZ29tZXNAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBbQmluZGluZ3Nd
ICJudWxsYWJsZSIgc2VxdWVuY2Ugc3VwcG9ydCBpcyBpbmNvbXBsZXRlIChpLmUuIHNlcXVlbmNl
PE5hdGl2ZVR5cGU+PykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3YWQzMTU5YzgzOTE4MmNlYjk3MzM4YTVlNTFk
OTU0YTkwZTAzYmZkLi4wMzgxYzM5ZDJkNzA3MjY3MGNkMzM3ODU1ZWQ4NmEzZmFkZGY1ZDNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDYtMTYgIEFuZGVycyBDYXJsc3NvbiAg
PGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgSFRUUEhlYWRlck5hbWUgb3Zlcmxv
YWRzIG9uIFJlc291cmNlUmVzcG9uc2VCYXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM5NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6YnVpbGRIVFRQSGVhZGVycyk6CisKIDIwMTQtMDYtMTYgIFphbiBE
b2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFBhZ2U6OmZpbmRTdHJp
bmdNYXRjaGluZ1JhbmdlcygpIHNob3VsZCB0YWtlIFZlY3RvcjxSZWZQdHI8UmFuZ2U+PiBieSBy
ZWZlcmVuY2UgaW5zdGVhZCBvZiBwb2ludGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDNiNjdm
YmRkZTI5MzZkZmQ0ZGI0ZWI5ODRhOTkwMzI2MjYwOGU5MjQuLjZmYTcwMWE5ZDBlZDljNTZkMzBh
Y2MwNmRkYzdmMWJiOWY5NjU5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNzk2LDcgKzE3
OTYsNyBAQCBfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTEyaXNBdHRhY2htZW50
RXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTJsYXN0TW9kaWZpZWRFdgog
X19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNGh0dHBTdGF0dXNDb2RlRXYKIF9f
Wk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTRodHRwU3RhdHVzVGV4dEV2Ci1fX1pO
SzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE1aHR0cEhlYWRlckZpZWxkRVBLYworX19a
Tks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNWh0dHBIZWFkZXJGaWVsZEVOU18xNEhU
VFBIZWFkZXJOYW1lRQogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNmh0dHBI
ZWFkZXJGaWVsZHNFdgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNnRleHRF
bmNvZGluZ05hbWVFdgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxN3N1Z2dl
c3RlZEZpbGVuYW1lRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGI1MWJjN2Y0N2E2ODE5
YzBiYzAyMDhiMTQ0ZWMzODI0ZmI2OWJiMTUuLmVkMjMyZjQ4M2VlODc1MTZkMzAzYWRhNTVjOThm
YTM0MjI2NjhhM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzkwNyw3ICszOTA3LDcg
QEAgU3RyaW5nIERvY3VtZW50OjpsYXN0TW9kaWZpZWQoKSBjb25zdAogICAgIGlmIChtX2ZyYW1l
KSB7CiAgICAgICAgIFN0cmluZyBodHRwTGFzdE1vZGlmaWVkOwogICAgICAgICBpZiAoRG9jdW1l
bnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gbG9hZGVyKCkpIAotICAgICAgICAgICAgaHR0cExh
c3RNb2RpZmllZCA9IGRvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZCgi
TGFzdC1Nb2RpZmllZCIpOworICAgICAgICAgICAgaHR0cExhc3RNb2RpZmllZCA9IGRvY3VtZW50
TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6TGFzdE1v
ZGlmaWVkKTsKICAgICAgICAgaWYgKCFodHRwTGFzdE1vZGlmaWVkLmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgZGF0ZS5zZXRNaWxsaXNlY29uZHNTaW5jZUVwb2NoRm9yRGF0ZVRpbWUocGFyc2VE
YXRlKGh0dHBMYXN0TW9kaWZpZWQpKTsKICAgICAgICAgICAgIGZvdW5kRGF0ZSA9IHRydWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3Bw
CmluZGV4IGU3MzEyNzE1ZmE0YzUwMzU5YTljZTY4YTI5MmRmZTY0MzM3MjgxZDQuLjdlNTc5OWQ1
ZTdkNDU4NGJkYTdlMDNjZDM2Yjg0OGMzMDI5YjgwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCkBAIC0xMzYsNyArMTM2LDcg
QEAgYm9vbCBwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2soY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIFN0b3JlZENyZWRlbnRpYWwKIHsKICAgICAvLyBBIHdpbGRjYXJkIEFjY2Vzcy1D
b250cm9sLUFsbG93LU9yaWdpbiBjYW4gbm90IGJlIHVzZWQgaWYgY3JlZGVudGlhbHMgYXJlIHRv
IGJlIHNlbnQsCiAgICAgLy8gZXZlbiB3aXRoIEFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRp
YWxzIHNldCB0byB0cnVlLgotICAgIGNvbnN0IFN0cmluZyYgYWNjZXNzQ29udHJvbE9yaWdpblN0
cmluZyA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZCgiYWNjZXNzLWNvbnRyb2wtYWxsb3ctb3Jp
Z2luIik7CisgICAgY29uc3QgU3RyaW5nJiBhY2Nlc3NDb250cm9sT3JpZ2luU3RyaW5nID0gcmVz
cG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sQWxsb3dP
cmlnaW4pOwogICAgIGlmIChhY2Nlc3NDb250cm9sT3JpZ2luU3RyaW5nID09ICIqIiAmJiBpbmNs
dWRlQ3JlZGVudGlhbHMgPT0gRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIApAQCAtMTU1LDcgKzE1NSw3IEBAIGJvb2wgcGFzc2VzQWNjZXNzQ29udHJv
bENoZWNrKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBTdG9yZWRDcmVkZW50aWFs
CiAgICAgfQogCiAgICAgaWYgKGluY2x1ZGVDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRl
bnRpYWxzKSB7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgYWNjZXNzQ29udHJvbENyZWRlbnRpYWxz
U3RyaW5nID0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKCJhY2Nlc3MtY29udHJvbC1hbGxvdy1j
cmVkZW50aWFscyIpOworICAgICAgICBjb25zdCBTdHJpbmcmIGFjY2Vzc0NvbnRyb2xDcmVkZW50
aWFsc1N0cmluZyA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNj
ZXNzQ29udHJvbEFsbG93Q3JlZGVudGlhbHMpOwogICAgICAgICBpZiAoYWNjZXNzQ29udHJvbENy
ZWRlbnRpYWxzU3RyaW5nICE9ICJ0cnVlIikgewogICAgICAgICAgICAgZXJyb3JEZXNjcmlwdGlv
biA9ICJDcmVkZW50aWFscyBmbGFnIGlzIHRydWUsIGJ1dCBBY2Nlc3MtQ29udHJvbC1BbGxvdy1D
cmVkZW50aWFscyBpcyBub3QgXCJ0cnVlXCIuIjsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJl
c3VsdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdo
dFJlc3VsdENhY2hlLmNwcAppbmRleCA2ODQ4MTM0NDczYWUzNjQ0YWVjZWY1NjEzYmM5OGIwYjQx
NDgxNWFjLi4yZGRlZjcwY2Y1MjIxNzZlMjY5Y2IzY2Y2MmU5ZjM2ODE2NGJiMTMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNo
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVz
dWx0Q2FjaGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5QcmVm
bGlnaHRSZXN1bHRDYWNoZS5oIgogCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmgiCisjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNw
b25zZS5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CkBAIC05MiwxOSArOTMsMTkgQEAgc3RhdGljIGJvb2wgcGFyc2VBY2Nlc3ND
b250cm9sQWxsb3dMaXN0KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBIYXNoU2V0PFN0cmluZywgSGEK
IGJvb2wgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW06OnBhcnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBTdHJpbmcmIGVycm9yRGVzY3JpcHRpb24pCiB7CiAg
ICAgbV9tZXRob2RzLmNsZWFyKCk7Ci0gICAgaWYgKCFwYXJzZUFjY2Vzc0NvbnRyb2xBbGxvd0xp
c3QocmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2Rz
IiksIG1fbWV0aG9kcykpIHsKKyAgICBpZiAoIXBhcnNlQWNjZXNzQ29udHJvbEFsbG93TGlzdChy
ZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkFjY2Vzc0NvbnRyb2xBbGxv
d01ldGhvZHMpLCBtX21ldGhvZHMpKSB7CiAgICAgICAgIGVycm9yRGVzY3JpcHRpb24gPSAiQ2Fu
bm90IHBhcnNlIEFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMgcmVzcG9uc2UgaGVhZGVyIGZp
ZWxkLiI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBtX2hlYWRlcnMuY2xl
YXIoKTsKLSAgICBpZiAoIXBhcnNlQWNjZXNzQ29udHJvbEFsbG93TGlzdChyZXNwb25zZS5odHRw
SGVhZGVyRmllbGQoIkFjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMiKSwgbV9oZWFkZXJzKSkg
eworICAgIGlmICghcGFyc2VBY2Nlc3NDb250cm9sQWxsb3dMaXN0KHJlc3BvbnNlLmh0dHBIZWFk
ZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNjZXNzQ29udHJvbEFsbG93SGVhZGVycyksIG1faGVh
ZGVycykpIHsKICAgICAgICAgZXJyb3JEZXNjcmlwdGlvbiA9ICJDYW5ub3QgcGFyc2UgQWNjZXNz
LUNvbnRyb2wtQWxsb3ctSGVhZGVycyByZXNwb25zZSBoZWFkZXIgZmllbGQuIjsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzIGV4cGlyeURl
bHRhOwotICAgIGlmIChwYXJzZUFjY2Vzc0NvbnRyb2xNYXhBZ2UocmVzcG9uc2UuaHR0cEhlYWRl
ckZpZWxkKCJBY2Nlc3MtQ29udHJvbC1NYXgtQWdlIiksIGV4cGlyeURlbHRhKSkgeworICAgIGlm
IChwYXJzZUFjY2Vzc0NvbnRyb2xNYXhBZ2UocmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sTWF4QWdlKSwgZXhwaXJ5RGVsdGEpKSB7CiAgICAgICAg
IGlmIChleHBpcnlEZWx0YSA+IG1heFByZWZsaWdodENhY2hlVGltZW91dCkKICAgICAgICAgICAg
IGV4cGlyeURlbHRhID0gbWF4UHJlZmxpZ2h0Q2FjaGVUaW1lb3V0OwogICAgIH0gZWxzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYmMwYzQwOTAxNzAxMmVjZTE3ZmY0
MDljYTlhZDAwZmQwZGY2NGQ0Ni4uZjY1MWFlZWE3MDM3OGJhOGU5NDBjYTQzZmE5NDUyYTAxYzdh
OWU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC02NjgsNyArNjY4
LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6cmVjZWl2ZWRGaXJzdERhdGEoKQogCiAgICAgZG91Ymxl
IGRlbGF5OwogICAgIFN0cmluZyB1cmxTdHJpbmc7Ci0gICAgaWYgKCFwYXJzZUhUVFBSZWZyZXNo
KG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJSZWZyZXNoIiks
IGZhbHNlLCBkZWxheSwgdXJsU3RyaW5nKSkKKyAgICBpZiAoIXBhcnNlSFRUUFJlZnJlc2gobV9k
b2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6
OlJlZnJlc2gpLCBmYWxzZSwgZGVsYXksIHVybFN0cmluZykpCiAgICAgICAgIHJldHVybjsKICAg
ICBVUkwgY29tcGxldGVkVVJMOwogICAgIGlmICh1cmxTdHJpbmcuaXNFbXB0eSgpKQpAQCAtNzEy
LDI3ICs3MTIsMjcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGlkQmVnaW5Eb2N1bWVudChib29sIGRp
c3BhdGNoKQogICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+
c2V0QXV0b0xvYWRJbWFnZXMoc2V0dGluZ3MubG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCkpOwog
CiAgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpIHsKLSAgICAgICAgU3RyaW5nIGRuc1ByZWZldGNo
Q29udHJvbCA9IG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJY
LUROUy1QcmVmZXRjaC1Db250cm9sIik7CisgICAgICAgIFN0cmluZyBkbnNQcmVmZXRjaENvbnRy
b2wgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6WEROU1ByZWZldGNoQ29udHJvbCk7CiAgICAgICAgIGlmICghZG5zUHJlZmV0Y2hD
b250cm9sLmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFyc2VE
TlNQcmVmZXRjaENvbnRyb2xIZWFkZXIoZG5zUHJlZmV0Y2hDb250cm9sKTsKIAotICAgICAgICBT
dHJpbmcgcG9saWN5VmFsdWUgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFk
ZXJGaWVsZCgiQ29udGVudC1TZWN1cml0eS1Qb2xpY3kiKTsKKyAgICAgICAgU3RyaW5nIHBvbGlj
eVZhbHVlID0gbV9kb2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSk7CiAgICAgICAgIGlmICghcG9saWN5
VmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5jb250ZW50
U2VjdXJpdHlQb2xpY3koKS0+ZGlkUmVjZWl2ZUhlYWRlcihwb2xpY3lWYWx1ZSwgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpFbmZvcmNlKTsKIAotICAgICAgICBwb2xpY3lWYWx1ZSA9IG1fZG9jdW1l
bnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJDb250ZW50LVNlY3VyaXR5LVBv
bGljeS1SZXBvcnQtT25seSIpOworICAgICAgICBwb2xpY3lWYWx1ZSA9IG1fZG9jdW1lbnRMb2Fk
ZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXBvcnRPbmx5KTsKICAgICAgICAgaWYgKCFwb2xpY3lWYWx1ZS5pc0VtcHR5
KCkpCiAgICAgICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpLT5kaWRSZWNlaXZlSGVhZGVyKHBvbGljeVZhbHVlLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OlJlcG9ydCk7CiAKLSAgICAgICAgcG9saWN5VmFsdWUgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNw
b25zZSgpLmh0dHBIZWFkZXJGaWVsZCgiWC1XZWJLaXQtQ1NQIik7CisgICAgICAgIHBvbGljeVZh
bHVlID0gbV9kb2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoSFRUUEhl
YWRlck5hbWU6OlhXZWJLaXRDU1ApOwogICAgICAgICBpZiAoIXBvbGljeVZhbHVlLmlzRW1wdHko
KSkKICAgICAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5
KCktPmRpZFJlY2VpdmVIZWFkZXIocG9saWN5VmFsdWUsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
UHJlZml4ZWRFbmZvcmNlKTsKIAotICAgICAgICBwb2xpY3lWYWx1ZSA9IG1fZG9jdW1lbnRMb2Fk
ZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJYLVdlYktpdC1DU1AtUmVwb3J0LU9ubHki
KTsKKyAgICAgICAgcG9saWN5VmFsdWUgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0
dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6WFdlYktpdENTUFJlcG9ydE9ubHkpOwogICAg
ICAgICBpZiAoIXBvbGljeVZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1fZnJhbWUuZG9j
dW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmRpZFJlY2VpdmVIZWFkZXIocG9saWN5
VmFsdWUsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UHJlZml4ZWRSZXBvcnQpOwogCi0gICAgICAg
IFN0cmluZyBoZWFkZXJDb250ZW50TGFuZ3VhZ2UgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25z
ZSgpLmh0dHBIZWFkZXJGaWVsZCgiQ29udGVudC1MYW5ndWFnZSIpOworICAgICAgICBTdHJpbmcg
aGVhZGVyQ29udGVudExhbmd1YWdlID0gbV9kb2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRw
SGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRMYW5ndWFnZSk7CiAgICAgICAgIGlm
ICghaGVhZGVyQ29udGVudExhbmd1YWdlLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgc2l6ZV90
IGNvbW1hSW5kZXggPSBoZWFkZXJDb250ZW50TGFuZ3VhZ2UuZmluZCgnLCcpOwogICAgICAgICAg
ICAgaGVhZGVyQ29udGVudExhbmd1YWdlLnRydW5jYXRlKGNvbW1hSW5kZXgpOyAvLyBub3RGb3Vu
ZCA9PSAtMSA9PSBkb24ndCB0cnVuY2F0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRleCBkMmNmOWM0MmI1
YThlZWMxODYzN2FiMDQ1NzIyOGMzZjMwMjdiZDQ5Li40ZDdmYzA5ZTk2ZDBhODIxZTcyNTdkZTM5
NWI0NmE0YjNiNmQ2NDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtNDg0LDggKzQ4NCw4IEBAIFBh
c3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y3JlYXRlUmVz
b3VyY2VIYW5kbGUoY29uc3QgVVJMCiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OkNhY2hlQ29udHJvbCwgIm1heC1hZ2U9MCIpOwogCiAgICAgaWYgKG5ld2Vz
dENhY2hlZFJlc291cmNlKSB7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgbGFzdE1vZGlmaWVkID0g
bmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJMYXN0LU1v
ZGlmaWVkIik7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgZVRhZyA9IG5ld2VzdENhY2hlZFJlc291
cmNlLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZCgiRVRhZyIpOworICAgICAgICBjb25zdCBT
dHJpbmcmIGxhc3RNb2RpZmllZCA9IG5ld2VzdENhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpLmh0
dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6TGFzdE1vZGlmaWVkKTsKKyAgICAgICAgY29u
c3QgU3RyaW5nJiBlVGFnID0gbmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cEhl
YWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpFVGFnKTsKICAgICAgICAgaWYgKCFsYXN0TW9kaWZp
ZWQuaXNFbXB0eSgpIHx8ICFlVGFnLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgaWYgKCFsYXN0
TW9kaWZpZWQuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRl
ckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpJZk1vZGlmaWVkU2luY2UsIGxhc3RNb2RpZmllZCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVl
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5j
cHAKaW5kZXggZGQ0ZGZjODFhYmU1Nzc5YzJlY2I5NWE4ZTM5NGNlZTExYTEzYzY4YS4uZjk2NGNl
MTZmNWNiZjg5ZWViODc4YTVjOTQzMTY3NzFkNmI0Nzg1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcApAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUNsaWVudFdhbGtlci5oIgogI2luY2x1ZGUgIkNhY2hlZFN0eWxlU2hlZXRDbGllbnQuaCIKKyNp
bmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2lu
Y2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKQEAgLTEy
OSw3ICsxMzAsNyBAQCBib29sIENhY2hlZENTU1N0eWxlU2hlZXQ6OmNhblVzZVNoZWV0KGJvb2wg
ZW5mb3JjZU1JTUVUeXBlLCBib29sKiBoYXNWYWxpZE1JTUVUeQogICAgIC8vCiAgICAgLy8gVGhp
cyBjb2RlIGRlZmF1bHRzIHRvIGFsbG93aW5nIHRoZSBzdHlsZXNoZWV0IGZvciBub24tSFRUUCBw
cm90b2NvbHMgc28KICAgICAvLyBmb2xrcyBjYW4gdXNlIHN0YW5kYXJkcyBtb2RlIGZvciBsb2Nh
bCBIVE1MIGRvY3VtZW50cy4KLSAgICBTdHJpbmcgbWltZVR5cGUgPSBleHRyYWN0TUlNRVR5cGVG
cm9tTWVkaWFUeXBlKHJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJDb250ZW50LVR5cGUiKSk7
CisgICAgU3RyaW5nIG1pbWVUeXBlID0gZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShyZXNw
b25zZSgpLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUpKTsKICAg
ICBib29sIHR5cGVPSyA9IG1pbWVUeXBlLmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQ2FzZSht
aW1lVHlwZSwgInRleHQvY3NzIikgfHwgZXF1YWxJZ25vcmluZ0Nhc2UobWltZVR5cGUsICJhcHBs
aWNhdGlvbi94LXVua25vd24tY29udGVudC10eXBlIik7CiAgICAgaWYgKGhhc1ZhbGlkTUlNRVR5
cGUpCiAgICAgICAgICpoYXNWYWxpZE1JTUVUeXBlID0gdHlwZU9LOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggMDc3ODVkNzY1MGEzZmM1
OTYzYzkyMTlhM2E3MTQxZWIwY2RiOGFmYi4uMmQ1ZjVlNDIzZWFmYzgxZjhlOWU5NDg5ZGUzODg3
NDZlZjE2YjgxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCkBAIC0yODMsOCArMjgzLDggQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChD
YWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIsIGNvbnN0IFJlc28KICAg
ICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlVG9SZXZhbGlkYXRlID0gbV9yZXNvdXJjZVRv
UmV2YWxpZGF0ZTsKICAgICAgICAgQVNTRVJUKHJlc291cmNlVG9SZXZhbGlkYXRlLT5jYW5Vc2VD
YWNoZVZhbGlkYXRvcigpKTsKICAgICAgICAgQVNTRVJUKHJlc291cmNlVG9SZXZhbGlkYXRlLT5p
c0xvYWRlZCgpKTsKLSAgICAgICAgY29uc3QgU3RyaW5nJiBsYXN0TW9kaWZpZWQgPSByZXNvdXJj
ZVRvUmV2YWxpZGF0ZS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoIkxhc3QtTW9kaWZpZWQi
KTsKLSAgICAgICAgY29uc3QgU3RyaW5nJiBlVGFnID0gcmVzb3VyY2VUb1JldmFsaWRhdGUtPnJl
c3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJFVGFnIik7CisgICAgICAgIGNvbnN0IFN0cmluZyYg
bGFzdE1vZGlmaWVkID0gcmVzb3VyY2VUb1JldmFsaWRhdGUtPnJlc3BvbnNlKCkuaHR0cEhlYWRl
ckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpMYXN0TW9kaWZpZWQpOworICAgICAgICBjb25zdCBTdHJp
bmcmIGVUYWcgPSByZXNvdXJjZVRvUmV2YWxpZGF0ZS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmll
bGQoSFRUUEhlYWRlck5hbWU6OkVUYWcpOwogICAgICAgICBpZiAoIWxhc3RNb2RpZmllZC5pc0Vt
cHR5KCkgfHwgIWVUYWcuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBBU1NFUlQoY2FjaGVkUmVz
b3VyY2VMb2FkZXItPmNhY2hlUG9saWN5KHR5cGUoKSkgIT0gQ2FjaGVQb2xpY3lSZWxvYWQpOwog
ICAgICAgICAgICAgaWYgKGNhY2hlZFJlc291cmNlTG9hZGVyLT5jYWNoZVBvbGljeSh0eXBlKCkp
ID09IENhY2hlUG9saWN5UmV2YWxpZGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFNjcmlwdC5jcHAKaW5kZXggZDk4NzVlZDgyMjM5Nzk2YTA3NzEyMzJmNDE3YTcwOGVh
YzA0NDRjMi4uODg5MDIyNTRkN2ZkYWNlNjA5MGI2MzZkZDcxNThiYzMwMDM5NjY4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKQEAgLTI5LDYgKzI5
LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCIKKyNpbmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIK
ICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIK
ICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgpAQCAtNjUsNyArNjYsNyBAQCBTdHJpbmcgQ2FjaGVk
U2NyaXB0OjplbmNvZGluZygpIGNvbnN0CiAKIFN0cmluZyBDYWNoZWRTY3JpcHQ6Om1pbWVUeXBl
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShtX3Jl
c3BvbnNlLmh0dHBIZWFkZXJGaWVsZCgiQ29udGVudC1UeXBlIikpLmxvd2VyKCk7CisgICAgcmV0
dXJuIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUobV9yZXNwb25zZS5odHRwSGVhZGVyRmll
bGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlKSkubG93ZXIoKTsKIH0KIAogY29uc3QgU3Ry
aW5nJiBDYWNoZWRTY3JpcHQ6OnNjcmlwdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcAppbmRleCBiMzc4NGU2ZDIyM2Y3YTRiOWViODRk
OTBiYmJlNmVjYWU1OGI2NjhiLi5jMDUxNmMyYTUyMTZkZGI5MzA5MTBkMmY2Y2Y3YjE1NDdiM2Nh
YTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VU
aW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRp
bWluZy5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50TG9hZFRpbWluZy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisj
aW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgpAQCAtNTcs
NyArNTgsNyBAQCBzdGF0aWMgYm9vbCBwYXNzZXNUaW1pbmdBbGxvd0NoZWNrKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBEb2N1bWVudCogcgogICAgIGlmIChyZXNvdXJjZU9yaWdp
bi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQocmVxdWVzdGluZ0RvY3VtZW50LT5zZWN1cml0eU9yaWdp
bigpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBjb25zdCBTdHJpbmcmIHRpbWluZ0Fs
bG93T3JpZ2luU3RyaW5nID0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKCJ0aW1pbmctYWxsb3ct
b3JpZ2luIik7CisgICAgY29uc3QgU3RyaW5nJiB0aW1pbmdBbGxvd09yaWdpblN0cmluZyA9IHJl
c3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6VGltaW5nQWxsb3dPcmlnaW4p
OwogICAgIGlmICh0aW1pbmdBbGxvd09yaWdpblN0cmluZy5pc0VtcHR5KCkgfHwgZXF1YWxJZ25v
cmluZ0Nhc2UodGltaW5nQWxsb3dPcmlnaW5TdHJpbmcsICJudWxsIikpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9I
VFRQSGVhZGVyTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBI
ZWFkZXJOYW1lcy5pbgppbmRleCA0MTRjMGYyZDU0ZDM2ODNiNzMyOWY5N2U4MmQ2NmQ1MDYwYzZm
ZjRlLi44OTAyNTIxYzdkOTcwM2JmNGJlNTRmMmVhMjQ1YzZiY2E0YzY0N2VkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJOYW1lcy5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJOYW1lcy5pbgpAQCAt
MjQsNiArMjQsMTIgQEAKIC8vCiAKIEFjY2VwdAorQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVu
dGlhbHMKK0FjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMKK0FjY2Vzcy1Db250cm9sLUFsbG93
LU1ldGhvZHMKK0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbgorQWNjZXNzLUNvbnRyb2wtRXhw
b3NlLUhlYWRlcnMKK0FjY2Vzcy1Db250cm9sLU1heC1BZ2UKIEFjY2Vzcy1Db250cm9sLVJlcXVl
c3QtSGVhZGVycwogQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2QKIEFnZQpAQCAtMzEsNiAr
MzcsNyBAQCBBdXRob3JpemF0aW9uCiBDYWNoZS1Db250cm9sCiBDb25uZWN0aW9uCiBDb250ZW50
LURpc3Bvc2l0aW9uCitDb250ZW50LUVuY29kaW5nCiBDb250ZW50LUxhbmd1YWdlCiBDb250ZW50
LUxlbmd0aAogQ29udGVudC1TZWN1cml0eS1Qb2xpY3kKQEAgLTY1LDYgKzcyLDcgQEAgU2VjLVdl
YlNvY2tldC1Qcm90b2NvbAogU2VjLVdlYlNvY2tldC1WZXJzaW9uCiBTZXQtQ29va2llCiBTZXQt
Q29va2llMgorVGltaW5nLUFsbG93LU9yaWdpbgogVXBncmFkZQogVXNlci1BZ2VudAogWC1ETlMt
UHJlZmV0Y2gtQ29udHJvbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAppbmRleCA0M2RkN2IwZGYzODYyYWQ5NzAy
NzY4YWVlODA1MzQxY2VkZGNhNWNhLi4xYTg3ZTAwNjQ0Mjg4YThiMzQxNDJkYzk2ZDFmZTMwYzQ1
MWI3MGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVzcG9uc2VCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcApAQCAtMjczLDcgKzI3Myw3IEBAIFN0cmluZyBSZXNv
dXJjZVJlc3BvbnNlQmFzZTo6aHR0cEhlYWRlckZpZWxkKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSkgY29uc3QKICAgICByZXR1cm4gbV9odHRwSGVhZGVyRmllbGRzLmdldChuYW1lKTsgCiB9CiAK
LVN0cmluZyBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6aHR0cEhlYWRlckZpZWxkKGNvbnN0IGNoYXIq
IG5hbWUpIGNvbnN0CitTdHJpbmcgUmVzb3VyY2VSZXNwb25zZUJhc2U6Omh0dHBIZWFkZXJGaWVs
ZChIVFRQSGVhZGVyTmFtZSBuYW1lKSBjb25zdAogewogICAgIGxhenlJbml0KENvbW1vbkZpZWxk
c09ubHkpOwogCkBAIC0zMjksNiArMzI5LDE3IEBAIHZvaWQgUmVzb3VyY2VSZXNwb25zZUJhc2U6
OnNldEhUVFBIZWFkZXJGaWVsZChjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFN0CiAg
ICAgLy8gRklYTUU6IFNob3VsZCBpbnZhbGlkYXRlIG9yIHVwZGF0ZSBwbGF0Zm9ybSByZXNwb25z
ZSBpZiBwcmVzZW50LgogfQogCit2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjpzZXRIVFRQSGVh
ZGVyRmllbGQoSFRUUEhlYWRlck5hbWUgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAg
ICBsYXp5SW5pdChDb21tb25BbmRVbmNvbW1vbkZpZWxkcyk7CisKKyAgICB1cGRhdGVIZWFkZXJQ
YXJzZWRTdGF0ZShuYW1lKTsKKworICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQobmFtZSwgdmFs
dWUpOworCisgICAgLy8gRklYTUU6IFNob3VsZCBpbnZhbGlkYXRlIG9yIHVwZGF0ZSBwbGF0Zm9y
bSByZXNwb25zZSBpZiBwcmVzZW50LgorfQorCiB2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjph
ZGRIVFRQSGVhZGVyRmllbGQoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IHZhbHVlKQogewogICAgIGxhenlJbml0KENvbW1vbkFuZFVuY29tbW9uRmllbGRzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJh
c2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJh
c2UuaAppbmRleCA1OTNiYmM5NTc5MzA3OTFjMzJiNzc3NGY5ZGMzZmJlNTZlYWY2OTM5Li40ZDAx
NWI5NTVlZWY4NDlmODkzOWU0YzFlNTIxMWM2MDc5YWE3YWJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oCkBAIC03
NywxMiArNzcsMjAgQEAgcHVibGljOgogICAgIAogICAgIGNvbnN0IFN0cmluZyYgaHR0cFN0YXR1
c1RleHQoKSBjb25zdDsKICAgICB2b2lkIHNldEhUVFBTdGF0dXNUZXh0KGNvbnN0IFN0cmluZyYp
OwotICAgIAorCisgICAgY29uc3QgSFRUUEhlYWRlck1hcCYgaHR0cEhlYWRlckZpZWxkcygpIGNv
bnN0OworCiAgICAgU3RyaW5nIGh0dHBIZWFkZXJGaWVsZChjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWUpIGNvbnN0OwotICAgIFN0cmluZyBodHRwSGVhZGVyRmllbGQoY29uc3QgY2hhciogbmFtZSkg
Y29uc3Q7CisgICAgU3RyaW5nIGh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZSkgY29uc3Q7
CiAgICAgdm9pZCBzZXRIVFRQSGVhZGVyRmllbGQoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIHZhbHVlKTsKKyAgICB2b2lkIHNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CisKICAgICB2b2lkIGFkZEhUVFBIZWFkZXJG
aWVsZChjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwotICAg
IGNvbnN0IEhUVFBIZWFkZXJNYXAmIGh0dHBIZWFkZXJGaWVsZHMoKSBjb25zdDsKKworICAgIC8v
IEluc3RlYWQgb2YgcGFzc2luZyBhIHN0cmluZyBsaXRlcmFsIHRvIGFueSBvZiB0aGVzZSBmdW5j
dGlvbnMsIGp1c3QgdXNlIGEgSFRUUEhlYWRlck5hbWUgaW5zdGVhZC4KKyAgICB0ZW1wbGF0ZTxz
aXplX3QgbGVuZ3RoPiBTdHJpbmcgaHR0cEhlYWRlckZpZWxkKGNvbnN0IGNoYXIgKCYpW2xlbmd0
aF0pIGNvbnN0ID0gZGVsZXRlOworICAgIHRlbXBsYXRlPHNpemVfdCBsZW5ndGg+IHZvaWQgc2V0
SFRUUEhlYWRlckZpZWxkKGNvbnN0IGNoYXIgKCYpW2xlbmd0aF0sIGNvbnN0IFN0cmluZyYpID0g
ZGVsZXRlOworICAgIHRlbXBsYXRlPHNpemVfdCBsZW5ndGg+IHZvaWQgYWRkSFRUUEhlYWRlckZp
ZWxkKGNvbnN0IGNoYXIgKCYpW2xlbmd0aF0sIGNvbnN0IFN0cmluZyYpID0gZGVsZXRlOwogCiAg
ICAgYm9vbCBpc011bHRpcGFydCgpIGNvbnN0IHsgcmV0dXJuIG1pbWVUeXBlKCkgPT0gIm11bHRp
cGFydC94LW1peGVkLXJlcGxhY2UiOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCmluZGV4
IDU1N2Q0ZGI3YjdiZGM5MjQwOTIyZjU5ODU5NjIxYWU4ZjljYWY0Y2UuLmQ2OGY2NGYzYWE1ZmUx
ZjM2N2MzOTEwMzNkMWFhMzBlYzQxOWQ4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcApA
QCAtMjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogCisjaW5j
bHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNs
dWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpA
QCAtOTgsNyArOTksNyBAQCB2b2lkIFJlc291cmNlUmVzcG9uc2U6OnVwZGF0ZUZyb21Tb3VwTWVz
c2FnZUhlYWRlcnMoY29uc3QgU291cE1lc3NhZ2VIZWFkZXJzKiBtZQogICAgIHNldFRleHRFbmNv
ZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSk7CiAKICAg
ICBzZXRFeHBlY3RlZENvbnRlbnRMZW5ndGgoc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X2NvbnRl
bnRfbGVuZ3RoKGhlYWRlcnMpKTsKLSAgICBzZXRTdWdnZXN0ZWRGaWxlbmFtZShmaWxlbmFtZUZy
b21IVFRQQ29udGVudERpc3Bvc2l0aW9uKGh0dHBIZWFkZXJGaWVsZCgiQ29udGVudC1EaXNwb3Np
dGlvbiIpKSk7fQorICAgIHNldFN1Z2dlc3RlZEZpbGVuYW1lKGZpbGVuYW1lRnJvbUhUVFBDb250
ZW50RGlzcG9zaXRpb24oaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50RGlz
cG9zaXRpb24pKSk7fQogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
UGx1Z2luU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luU3RyZWFtLmNw
cAppbmRleCBmNzU5MzlmNzQzYWYxZmQwN2IyYWJiMjY2ZTA4MjY4ZDlkN2RhOWI2Li45NWZkZWM1
NmMwNTkxNzQyYzdhNDM5OGJmNWFhODE2N2Y0ZWEzYmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5TdHJlYW0uY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRM
b2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisj
aW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiUGx1Z2luRGVidWcuaCIKICNp
bmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIu
aCIKQEAgLTE2OCw3ICsxNjksNyBAQCB2b2lkIFBsdWdpblN0cmVhbTo6c3RhcnRTdHJlYW0oKQog
ICAgICAgICAvLyBJZiB0aGUgY29udGVudCBpcyBlbmNvZGVkIChtb3N0IGxpa2VseSBjb21wcmVz
c2VkKSwgdGhlbiBkb24ndCBzZW5kIGl0cyBsZW5ndGggdG8gdGhlIHBsdWdpbiwKICAgICAgICAg
Ly8gd2hpY2ggaXMgb25seSBpbnRlcmVzdGVkIGluIHRoZSBkZWNvZGVkIGxlbmd0aCwgbm90IHll
dCBrbm93biBhdCB0aGUgbW9tZW50LgogICAgICAgICAvLyA8cmRhcjovL3Byb2JsZW0vNDQ3MDU5
OT4gdHJhY2tzIGEgcmVxdWVzdCBmb3IgLVtOU1VSTFJlc3BvbnNlIGV4cGVjdGVkQ29udGVudExl
bmd0aF0gdG8gaW5jb3Jwb3JhdGUgdGhpcyBsb2dpYy4KLSAgICAgICAgU3RyaW5nIGNvbnRlbnRF
bmNvZGluZyA9IG1fcmVzb3VyY2VSZXNwb25zZS5odHRwSGVhZGVyRmllbGQoIkNvbnRlbnQtRW5j
b2RpbmciKTsKKyAgICAgICAgU3RyaW5nIGNvbnRlbnRFbmNvZGluZyA9IG1fcmVzb3VyY2VSZXNw
b25zZS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRFbmNvZGluZyk7CiAg
ICAgICAgIGlmICghY29udGVudEVuY29kaW5nLmlzTnVsbCgpICYmIGNvbnRlbnRFbmNvZGluZyAh
PSAiaWRlbnRpdHkiKQogICAgICAgICAgICAgZXhwZWN0ZWRDb250ZW50TGVuZ3RoID0gLTE7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggYTRlMGU1YWZjMjhi
ODA4ZjhmMDZkYTA0NDk4MjhjOWY2MjkwYmQwMy4uM2M3MGYyYmYwNjI2MmRlYzFjYzQ0NmU0ZTc2
ODEzMzg1ZmVlYmFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC05
NjQsNyArOTY0LDcgQEAgU3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRl
cnMoKSBjb25zdAogICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKIAogICAgIEhUVFBI
ZWFkZXJTZXQgYWNjZXNzQ29udHJvbEV4cG9zZUhlYWRlclNldDsKLSAgICBwYXJzZUFjY2Vzc0Nv
bnRyb2xFeHBvc2VIZWFkZXJzQWxsb3dMaXN0KG1fcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKCJB
Y2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycyIpLCBhY2Nlc3NDb250cm9sRXhwb3NlSGVhZGVy
U2V0KTsKKyAgICBwYXJzZUFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJzQWxsb3dMaXN0KG1fcmVz
cG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sRXhwb3Nl
SGVhZGVycyksIGFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJTZXQpOwogICAgIAogICAgIGZvciAo
Y29uc3QgYXV0byYgaGVhZGVyIDogbV9yZXNwb25zZS5odHRwSGVhZGVyRmllbGRzKCkpIHsKICAg
ICAgICAgLy8gSGlkZSBTZXQtQ29va2llIGhlYWRlciBmaWVsZHMgZnJvbSB0aGUgWE1MSHR0cFJl
cXVlc3QgY2xpZW50IGZvciB0aGVzZSByZWFzb25zOgpAQCAtMTAwMiw3ICsxMDAyLDcgQEAgU3Ry
aW5nIFhNTEh0dHBSZXF1ZXN0OjpnZXRSZXNwb25zZUhlYWRlcihjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUpIGNvbnN0CiAgICAgfQogCiAgICAgSFRUUEhlYWRlclNldCBhY2Nlc3NDb250cm9sRXhw
b3NlSGVhZGVyU2V0OwotICAgIHBhcnNlQWNjZXNzQ29udHJvbEV4cG9zZUhlYWRlcnNBbGxvd0xp
c3QobV9yZXNwb25zZS5odHRwSGVhZGVyRmllbGQoIkFjY2Vzcy1Db250cm9sLUV4cG9zZS1IZWFk
ZXJzIiksIGFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJTZXQpOworICAgIHBhcnNlQWNjZXNzQ29u
dHJvbEV4cG9zZUhlYWRlcnNBbGxvd0xpc3QobV9yZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OkFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJzKSwgYWNjZXNzQ29udHJvbEV4
cG9zZUhlYWRlclNldCk7CiAKICAgICBpZiAoIW1fc2FtZU9yaWdpblJlcXVlc3QgJiYgIWlzT25B
Y2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3QobmFtZSkgJiYgIWFjY2Vzc0NvbnRy
b2xFeHBvc2VIZWFkZXJTZXQuY29udGFpbnMobmFtZSkpIHsKICAgICAgICAgbG9nQ29uc29sZUVy
cm9yKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgIlJlZnVzZWQgdG8gZ2V0IHVuc2FmZSBoZWFk
ZXIgXCIiICsgbmFtZSArICJcIiIpOwpAQCAtMTAxNiw3ICsxMDE2LDcgQEAgU3RyaW5nIFhNTEh0
dHBSZXF1ZXN0OjpyZXNwb25zZU1JTUVUeXBlKCkgY29uc3QKICAgICBTdHJpbmcgbWltZVR5cGUg
PSBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKG1fbWltZVR5cGVPdmVycmlkZSk7CiAgICAg
aWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkgewogICAgICAgICBpZiAobV9yZXNwb25zZS5pc0hUVFAo
KSkKLSAgICAgICAgICAgIG1pbWVUeXBlID0gZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZSht
X3Jlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZCgiQ29udGVudC1UeXBlIikpOworICAgICAgICAgICAg
bWltZVR5cGUgPSBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKG1fcmVzcG9uc2UuaHR0cEhl
YWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50VHlwZSkpOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBtaW1lVHlwZSA9IG1fcmVzcG9uc2UubWltZVR5cGUoKTsKICAgICB9CkBAIC0x
MTM2LDcgKzExMzYsNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRSZWNlaXZlUmVzcG9uc2Uo
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZQogCiAgICAgbV9yZXNwb25z
ZSA9IHJlc3BvbnNlOwogICAgIGlmICghbV9taW1lVHlwZU92ZXJyaWRlLmlzRW1wdHkoKSkgewot
ICAgICAgICBtX3Jlc3BvbnNlLnNldEhUVFBIZWFkZXJGaWVsZCgiQ29udGVudC1UeXBlIiwgbV9t
aW1lVHlwZU92ZXJyaWRlKTsKKyAgICAgICAgbV9yZXNwb25zZS5zZXRIVFRQSGVhZGVyRmllbGQo
SFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlLCBtX21pbWVUeXBlT3ZlcnJpZGUpOwogICAgICAg
ICBtX3Jlc3BvbnNlRW5jb2RpbmcgPSBleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUobV9taW1l
VHlwZU92ZXJyaWRlKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCA2YmYwNTA5ZDBjNjIzMTRmYjQwZDk3MzA1NTFm
N2RlMDFjNzYyM2M3Li4yMDIzMGQyYmMxYWZmMmQ1NDQwZDQyY2E2MTJhZmY3MmM0NDUyMzk2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxQbHVnSW5FbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQSGVhZGVy
TmFtZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hvc3RXaW5kb3cuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01haW5GcmFtZS5oPgpA
QCAtMTkzLDcgKzE5NCw3IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRIVFRQSGVhZGVycyhjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgbG9uZyBsb25nJiBleHBlCiAgICAgLy8gSWYgdGhl
IGNvbnRlbnQgaXMgZW5jb2RlZCAobW9zdCBsaWtlbHkgY29tcHJlc3NlZCksIHRoZW4gZG9uJ3Qg
c2VuZCBpdHMgbGVuZ3RoIHRvIHRoZSBwbHVnaW4sCiAgICAgLy8gd2hpY2ggaXMgb25seSBpbnRl
cmVzdGVkIGluIHRoZSBkZWNvZGVkIGxlbmd0aCwgbm90IHlldCBrbm93biBhdCB0aGUgbW9tZW50
LgogICAgIC8vIDxyZGFyOi8vcHJvYmxlbS80NDcwNTk5PiB0cmFja3MgYSByZXF1ZXN0IGZvciAt
W05TVVJMUmVzcG9uc2UgZXhwZWN0ZWRDb250ZW50TGVuZ3RoXSB0byBpbmNvcnBvcmF0ZSB0aGlz
IGxvZ2ljLgotICAgIFN0cmluZyBjb250ZW50RW5jb2RpbmcgPSByZXNwb25zZS5odHRwSGVhZGVy
RmllbGQoIkNvbnRlbnQtRW5jb2RpbmciKTsKKyAgICBTdHJpbmcgY29udGVudEVuY29kaW5nID0g
cmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50RW5jb2Rpbmcp
OwogICAgIGlmICghY29udGVudEVuY29kaW5nLmlzTnVsbCgpICYmIGNvbnRlbnRFbmNvZGluZyAh
PSAiaWRlbnRpdHkiKQogICAgICAgICBleHBlY3RlZENvbnRlbnRMZW5ndGggPSAtMTsKIAo=
</data>
<flag name="review"
          id="257661"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>