����_5П�_5�����_5��H�qY5���_5��`�qY5��_5@�|<_5��@�<_5��@ �<_5��@�3<_5�������_5���_5���ؠ�_5��x�qY5���_5��� ��_5��_5���_5@@�<_5��@`�<_5��@��<_5�������_5����qY5���_5������_5����qY5h��_5@��<_5��@��<_5��@����P��_58��_5���h��_5����qY5 ��_5����qY5x��_5@ }<_5��@��<_5��@�<_5��@�3<_5����(��_5��_5���@��_5����qY5���_5������_5p��_5��_5@ �<_5��@@�<_5��@`�<_5������_5���qY5��_5���(��_5�� �qY5У�_5@��<_5��@��<_5��@�������_5���_5���Ф�_5��8�qY5���_5��P�qY5��_5@p}<_5ą@��<_5ƅ@��<_5ȅ@(4<_5ȅȅ���_5x��_5�ȅ���_5ȅh�qY5`��_5�ȅ��_5ئ�_5���_5@�<_5ʅ@ �<_5̅@@�<_5̅̅h��_5̅��qY5P��_5�̅���_5̅��qY58��_5@`�<_5΅@��<_5Ѕ@ЅЅ ��_5��_5�Ѕ8��_5Ѕ��qY5��_5ȅ��qY5H��_5@��<_5Ӆ@��<_5Յ@��<_5ׅ@`4<_5ׅׅ���_5��_5�ׅ��_5ׅ��qY5ȧ�_5�ׅX��_5@��_5��_5@�<_5م@�<_5ۅ@ �<_5ۅۅШ�_5ۅ��qY5���_5�ۅ���_5ۅ�qY5���_5@@�<_5݅@`�<_5߅@߅߅���_5p��_5�߅���_5߅(�qY5X��_5ׅ@�qY5���_5@�}<_5�@��<_5�@��<_5�@�4<_5��`��_5H��_5��x��_5�X�qY50��_5�����_5���_5P��_5@��<_5�@�<_5�@�<_5��8��_5�p�qY5 ��_5��`��_5���qY5��_5@ �<_5�@@�<_5�@����_5ث�_5����_5���qY5���_5���qY5��_5@~<_5�@`�<_5�@��<_5��@��<_5����Ȭ�_5����qY5���_5�����_5����qY5���_5���8��_5 ��_5Ȯ�_5@��<_5��@�<_5��@�<_5�������_5���qY5���_5���ح�_5���qY5���_5@ �<_5��@@�<_5��@����h��_5P��_5������_5��0�qY58��_5��H�qY5���_5@`~<_5�@`�<_5�@��<_5�@�4<_5��@��_5(��_5��X��_5�`�qY5��_5�����_5���_50��_5@��<_5�ires'] ) ) { $this->expires = is_int( $data['expires'] ) ? $data['expires'] : strtotime( $data['expires'] ); } else { $this->expires = null; } } } /** * Confirms that it's OK to send this cookie to the URL checked against. * * Decision is based on RFC 2109/2965, so look there for details on validity. * * @since 2.8.0 * * @param string $url URL you intend to send this cookie to * @return bool true if allowed, false otherwise. */ public function test( $url ) { if ( is_null( $this->name ) ) { return false; } // Expires - if expired then nothing else matters. if ( isset( $this->expires ) && time() > $this->expires ) { return false; } // Get details on the URL we're thinking about sending to. $url = parse_url( $url ); $url['port'] = isset( $url['port'] ) ? $url['port'] : ( 'https' === $url['scheme'] ? 443 : 80 ); $url['path'] = isset( $url['path'] ) ? $url['path'] : '/'; // Values to use for comparison against the URL. $path = isset( $this->path ) ? $this->path : '/'; $port = isset( $this->port ) ? $this->port : null; $domain = isset( $this->domain ) ? strtolower( $this->domain ) : strtolower( $url['host'] ); if ( false === stripos( $domain, '.' ) ) { $domain .= '.local'; } // Host - very basic check that the request URL ends with the domain restriction (minus leading dot). $domain = ( str_starts_with( $domain, '.' ) ) ? substr( $domain, 1 ) : $domain; if ( ! str_ends_with( $url['host'], $domain ) ) { return false; } // Port - supports "port-lists" in the format: "80,8000,8080". if ( ! empty( $port ) && ! in_array( $url['port'], array_map( 'intval', explode( ',', $port ) ), true ) ) { return false; } // Path - request path must start with path restriction. if ( ! str_starts_with( $url['path'], $path ) ) { return false; } return true; } /** * Convert cookie name and value back to header string. * * @since 2.8.0 * * @return string Header encoded cookie name and value. */ public function getHeaderValue() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid if ( ! isset( $this->name ) || ! isset( $this->value ) ) { return ''; } /** * Filters the header-encoded cookie value. * * @since 3.4.0 * * @param string $value The cookie value. * @param string $name The cookie name. */ return $this->name . '=' . apply_filters( 'wp_http_cookie_value', $this->value, $this->name ); } /** * Retrieve cookie header for usage in the rest of the WordPress HTTP API. * * @since 2.8.0 * * @return string */ public function getFullHeader() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid return 'Cookie: ' . $this->getHeaderValue(); } /** * Retrieves cookie attributes. * * @since 4.6.0 * * @return array { * List of attributes. * * @type string|int|null $expires When the cookie expires. Unix timestamp or formatted date. * @type string $path Cookie URL path. * @type string $domain Cookie domain. * } */ public function get_attributes() { return array( 'expires' => $this->expires, 'path' => $this->path, 'domain' => $this->domain, ); } }