Updated to reflect live site
Signed-off-by: Sophia Atkinson <sophialul@protonmail.com>
|
@ -40,11 +40,6 @@ switch( $action ) {
|
|||
echo json_encode(array('success'=>$query));
|
||||
break;
|
||||
|
||||
case 'logout':
|
||||
// unused for the moment
|
||||
yourls_logout();
|
||||
break;
|
||||
|
||||
default:
|
||||
yourls_do_action( 'yourls_ajax_'.$action );
|
||||
|
||||
|
|
|
@ -0,0 +1,83 @@
|
|||
<?php
|
||||
define( 'YOURLS_ADMIN', true );
|
||||
define( 'YOURLS_INSTALLING', true );
|
||||
require_once( dirname( __DIR__ ).'/includes/load-yourls.php' );
|
||||
|
||||
$error = array();
|
||||
$warning = array();
|
||||
$success = array();
|
||||
|
||||
// Check pre-requisites
|
||||
if ( !yourls_check_PDO() ) {
|
||||
$error[] = yourls__( 'PHP extension for PDO not found' );
|
||||
yourls_debug_log( 'PHP PDO extension not found' );
|
||||
}
|
||||
|
||||
if ( !yourls_check_database_version() ) {
|
||||
$error[] = yourls_s( '%s version is too old. Ask your server admin for an upgrade.', 'MySQL' );
|
||||
yourls_debug_log( 'MySQL version: ' . yourls_get_database_version() );
|
||||
}
|
||||
|
||||
if ( !yourls_check_php_version() ) {
|
||||
$error[] = yourls_s( '%s version is too old. Ask your server admin for an upgrade.', 'PHP' );
|
||||
yourls_debug_log( 'PHP version: ' . PHP_VERSION );
|
||||
}
|
||||
|
||||
// Is YOURLS already installed ?
|
||||
if ( yourls_is_installed() ) {
|
||||
$error[] = yourls__( 'YOURLS already installed.' );
|
||||
// check if .htaccess exists, recreate otherwise. No error checking.
|
||||
if( !file_exists( YOURLS_ABSPATH.'/.htaccess' ) ) {
|
||||
yourls_create_htaccess();
|
||||
}
|
||||
}
|
||||
|
||||
// Start install if possible and needed
|
||||
if ( isset($_REQUEST['install']) && count( $error ) == 0 ) {
|
||||
// Create/update .htaccess file
|
||||
if ( yourls_create_htaccess() ) {
|
||||
$success[] = yourls__( 'File <tt>.htaccess</tt> successfully created/updated.' );
|
||||
} else {
|
||||
$warning[] = yourls__( 'Could not write file <tt>.htaccess</tt> in YOURLS root directory. You will have to do it manually. See <a href="http://yourls.org/htaccess">how</a>.' );
|
||||
}
|
||||
|
||||
// Create SQL tables
|
||||
$install = yourls_create_sql_tables();
|
||||
if ( isset( $install['error'] ) )
|
||||
$error = array_merge( $error, $install['error'] );
|
||||
if ( isset( $install['success'] ) )
|
||||
$success = array_merge( $success, $install['success'] );
|
||||
}
|
||||
|
||||
|
||||
// Start output
|
||||
yourls_html_head( 'install', yourls__( 'Install YOURLS' ) );
|
||||
?>
|
||||
<div id="login">
|
||||
<form method="post" action="?"><?php // reset any QUERY parameters ?>
|
||||
<p>
|
||||
<img src="<?php yourls_site_url(); ?>/images/yourls-logo.svg" id="yourls-logo" alt="YOURLS" title="YOURLS" />
|
||||
</p>
|
||||
<?php
|
||||
// Print errors, warnings and success messages
|
||||
foreach ( array ('error', 'warning', 'success') as $info ) {
|
||||
if ( count( $$info ) > 0 ) {
|
||||
echo "<ul class='$info'>";
|
||||
foreach( $$info as $msg ) {
|
||||
echo '<li>'.$msg."</li>\n";
|
||||
}
|
||||
echo '</ul>';
|
||||
}
|
||||
}
|
||||
|
||||
// Display install button or link to admin area if applicable
|
||||
if( !yourls_is_installed() && !isset($_REQUEST['install']) ) {
|
||||
echo '<p style="text-align: center;"><input type="submit" name="install" value="' . yourls__( 'Install YOURLS') .'" class="button" /></p>';
|
||||
} else {
|
||||
if( count($error) == 0 )
|
||||
echo '<p style="text-align: center;">» <a href="'.yourls_admin_url().'" title="' . yourls__( 'YOURLS Administration Page') . '">' . yourls__( 'YOURLS Administration Page') . '</a></p>';
|
||||
}
|
||||
?>
|
||||
</form>
|
||||
</div>
|
||||
<?php yourls_html_footer(); ?>
|
|
@ -13,25 +13,27 @@ if( isset( $_GET['page'] ) && !empty( $_GET['page'] ) ) {
|
|||
if( isset( $_GET['action'] ) ) {
|
||||
|
||||
// Check nonce
|
||||
yourls_verify_nonce( 'manage_plugins', $_REQUEST['nonce'] );
|
||||
yourls_verify_nonce( 'manage_plugins', $_REQUEST['nonce'] ?? '');
|
||||
|
||||
// Check plugin file is valid
|
||||
if( isset( $_GET['plugin'] ) && yourls_validate_plugin_file( YOURLS_PLUGINDIR.'/'.$_GET['plugin'].'/plugin.php') ) {
|
||||
if(isset( $_GET['plugin'] ) && yourls_is_a_plugin_file(YOURLS_PLUGINDIR . '/' . $_GET['plugin'] . '/plugin.php') ) {
|
||||
|
||||
// Activate / Deactive
|
||||
switch( $_GET['action'] ) {
|
||||
case 'activate':
|
||||
$result = yourls_activate_plugin( $_GET['plugin'].'/plugin.php' );
|
||||
if( $result === true )
|
||||
yourls_redirect( yourls_admin_url( 'plugins.php?success=activated' ), 302 );
|
||||
|
||||
if( $result === true ) {
|
||||
yourls_redirect(yourls_admin_url('plugins.php?success=activated'), 302);
|
||||
exit();
|
||||
}
|
||||
break;
|
||||
|
||||
case 'deactivate':
|
||||
$result = yourls_deactivate_plugin( $_GET['plugin'].'/plugin.php' );
|
||||
if( $result === true )
|
||||
yourls_redirect( yourls_admin_url( 'plugins.php?success=deactivated' ), 302 );
|
||||
|
||||
if( $result === true ) {
|
||||
yourls_redirect(yourls_admin_url('plugins.php?success=deactivated'), 302);
|
||||
exit();
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
define( 'YOURLS_ADMIN', true );
|
||||
define( 'YOURLS_UPGRADING', true );
|
||||
require_once( dirname( __DIR__ ).'/includes/load-yourls.php' );
|
||||
require_once( YOURLS_INC.'/functions-upgrade.php' );
|
||||
require_once( YOURLS_INC.'/functions-install.php' );
|
||||
yourls_maybe_require_auth();
|
||||
|
||||
yourls_html_head( 'upgrade', yourls__( 'Upgrade YOURLS' ) );
|
||||
|
@ -29,7 +27,7 @@ if ( !yourls_upgrade_is_needed() ) {
|
|||
// From what are we upgrading?
|
||||
if ( isset( $_GET['oldver'] ) && isset( $_GET['oldsql'] ) ) {
|
||||
$oldver = yourls_sanitize_version($_GET['oldver']);
|
||||
$oldsql = (intval)($_GET['oldsql']);
|
||||
$oldsql = intval($_GET['oldsql']);
|
||||
} else {
|
||||
list( $oldver, $oldsql ) = yourls_get_current_version_from_sql();
|
||||
}
|
||||
|
|
Before Width: | Height: | Size: 84 B |
After Width: | Height: | Size: 252 B |
After Width: | Height: | Size: 464 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 5.3 KiB |
|
@ -1 +0,0 @@
|
|||
<svg data-v-423bf9ae="" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 263.58303031159966 60" class="font"><!----><!----><!----><g data-v-423bf9ae="" id="d0890c87-fb2b-4e20-a9fd-2483f6f3120f" fill="black" transform="matrix(4.633204701445071,0,0,4.633204701445071,-7.830112678154194,-16.864865360883996)"><path d="M4.24 13.92L4.24 13.92L4.24 13.92Q3.53 13.92 2.85 13.57L2.85 13.57L2.85 13.57Q2.17 13.23 1.69 12.67L1.69 12.67L2.38 12.07L2.38 12.07Q3.23 13.05 4.33 13.05L4.33 13.05L4.33 13.05Q4.97 13.05 5.39 12.78L5.39 12.78L5.39 12.78Q5.81 12.50 5.81 12.01L5.81 12.01L5.81 12.01Q5.81 11.70 5.66 11.46L5.66 11.46L5.66 11.46Q5.52 11.21 5.20 11.01L5.20 11.01L5.20 11.01Q4.89 10.81 4.64 10.70L4.64 10.70L4.64 10.70Q4.40 10.58 3.95 10.42L3.95 10.42L3.95 10.42Q3.42 10.21 3.09 10.04L3.09 10.04L3.09 10.04Q2.76 9.87 2.41 9.62L2.41 9.62L2.41 9.62Q2.06 9.37 1.89 9.02L1.89 9.02L1.89 9.02Q1.72 8.68 1.72 8.25L1.72 8.25L1.72 8.25Q1.72 7.43 2.39 6.93L2.39 6.93L2.39 6.93Q3.07 6.43 4.12 6.43L4.12 6.43L4.12 6.43Q5.59 6.43 6.52 7.52L6.52 7.52L5.88 8.06L5.88 8.06Q5.08 7.29 4.09 7.29L4.09 7.29L4.09 7.29Q3.43 7.29 3.04 7.55L3.04 7.55L3.04 7.55Q2.65 7.80 2.65 8.23L2.65 8.23L2.65 8.23Q2.65 8.44 2.75 8.62L2.75 8.62L2.75 8.62Q2.86 8.81 2.98 8.93L2.98 8.93L2.98 8.93Q3.11 9.04 3.39 9.19L3.39 9.19L3.39 9.19Q3.67 9.34 3.84 9.40L3.84 9.40L3.84 9.40Q4.00 9.46 4.37 9.60L4.37 9.60L4.37 9.60Q4.93 9.81 5.23 9.96L5.23 9.96L5.23 9.96Q5.53 10.11 5.94 10.39L5.94 10.39L5.94 10.39Q6.36 10.67 6.54 11.05L6.54 11.05L6.54 11.05Q6.73 11.44 6.73 11.96L6.73 11.96L6.73 11.96Q6.73 12.85 6.06 13.38L6.06 13.38L6.06 13.38Q5.39 13.92 4.24 13.92ZM15.34 12.92L15.34 12.92L15.34 12.92Q14.43 13.92 12.94 13.92L12.94 13.92L12.94 13.92Q11.44 13.92 10.54 12.93L10.54 12.93L10.54 12.93Q9.63 11.94 9.63 10.18L9.63 10.18L9.63 10.18Q9.63 8.43 10.54 7.43L10.54 7.43L10.54 7.43Q11.44 6.43 12.94 6.43L12.94 6.43L12.94 6.43Q14.43 6.43 15.34 7.41L15.34 7.41L15.34 7.41Q16.24 8.40 16.24 10.16L16.24 10.16L16.24 10.16Q16.24 11.91 15.34 12.92ZM12.94 13.03L12.94 13.03L12.94 13.03Q14.01 13.03 14.62 12.27L14.62 12.27L14.62 12.27Q15.22 11.51 15.22 10.16L15.22 10.16L15.22 10.16Q15.22 8.81 14.63 8.06L14.63 8.06L14.63 8.06Q14.04 7.31 12.94 7.31L12.94 7.31L12.94 7.31Q11.82 7.31 11.24 8.04L11.24 8.04L11.24 8.04Q10.65 8.78 10.65 10.18L10.65 10.18L10.65 10.18Q10.65 11.54 11.24 12.29L11.24 12.29L11.24 12.29Q11.83 13.03 12.94 13.03ZM19.77 16.10L18.79 16.59L18.79 6.59L19.77 6.59L19.77 7.24L19.77 7.24Q20.19 6.85 20.64 6.64L20.64 6.64L20.64 6.64Q21.08 6.43 21.77 6.43L21.77 6.43L21.77 6.43Q23.21 6.43 24.05 7.44L24.05 7.44L24.05 7.44Q24.88 8.46 24.88 10.16L24.88 10.16L24.88 10.16Q24.88 11.93 24.03 12.92L24.03 12.92L24.03 12.92Q23.18 13.92 21.83 13.92L21.83 13.92L21.83 13.92Q20.54 13.92 19.77 13.02L19.77 13.02L19.77 16.10ZM21.71 13.03L21.71 13.03L21.71 13.03Q22.74 13.03 23.30 12.29L23.30 12.29L23.30 12.29Q23.86 11.55 23.86 10.16L23.86 10.16L23.86 10.16Q23.86 8.85 23.28 8.08L23.28 8.08L23.28 8.08Q22.69 7.31 21.66 7.31L21.66 7.31L21.66 7.31Q20.38 7.31 19.77 8.41L19.77 8.41L19.77 11.93L19.77 11.93Q20.62 13.03 21.71 13.03ZM30.81 13.68L30.81 13.68L30.81 13.68Q30.55 13.94 30.18 13.94L30.18 13.94L30.18 13.94Q29.82 13.94 29.56 13.68L29.56 13.68L29.56 13.68Q29.30 13.41 29.30 13.06L29.30 13.06L29.30 13.06Q29.30 12.71 29.56 12.45L29.56 12.45L29.56 12.45Q29.82 12.18 30.18 12.18L30.18 12.18L30.18 12.18Q30.55 12.18 30.81 12.45L30.81 12.45L30.81 12.45Q31.07 12.71 31.07 13.06L31.07 13.06L31.07 13.06Q31.07 13.41 30.81 13.68ZM37.60 13.75L36.68 13.75L34.92 6.59L35.92 6.59L37.09 11.72L37.09 11.72Q37.16 12.11 37.18 12.25L37.18 12.25L37.18 12.25Q37.20 12.19 37.23 11.99L37.23 11.99L37.23 11.99Q37.27 11.79 37.30 11.68L37.30 11.68L38.40 6.59L39.21 6.59L40.33 11.69L40.33 11.69Q40.36 11.82 40.46 12.32L40.46 12.32L40.46 12.32Q40.49 12.07 40.57 11.69L40.57 11.69L41.69 6.59L42.70 6.59L40.94 13.75L40.03 13.75L38.92 8.88L38.92 8.88Q38.86 8.68 38.79 8.25L38.79 8.25L38.79 8.25Q38.72 8.71 38.68 8.85L38.68 8.85L37.60 13.75ZM48.08 13.92L48.08 13.92L48.08 13.92Q46.38 13.92 46.38 12.21L46.38 12.21L46.38 7.48L44.69 7.48L44.69 6.59L46.38 6.59L46.38 4.13L47.36 3.64L47.36 6.59L49.76 6.59L49.76 7.48L47.36 7.48L47.36 11.79L47.36 11.79Q47.36 12.39 47.57 12.69L47.57 12.69L47.57 12.69Q47.77 12.99 48.41 12.99L48.41 12.99L48.41 12.99Q49.15 12.99 49.77 12.57L49.77 12.57L49.66 13.59L49.66 13.59Q49.06 13.92 48.08 13.92ZM57.18 4.69L57.18 4.69L57.18 4.69Q56.81 4.69 56.60 4.76L56.60 4.76L56.60 4.76Q56.38 4.83 56.29 4.99L56.29 4.99L56.29 4.99Q56.20 5.15 56.18 5.29L56.18 5.29L56.18 5.29Q56.15 5.42 56.15 5.67L56.15 5.67L56.15 6.59L58.06 6.59L58.06 7.48L56.15 7.48L56.15 12.87L58.06 12.87L58.06 13.75L53.69 13.75L53.69 12.87L55.17 12.87L55.17 7.48L53.69 7.48L53.69 6.59L55.17 6.59L55.17 5.52L55.17 5.52Q55.17 4.59 55.70 4.19L55.70 4.19L55.70 4.19Q56.22 3.78 57.08 3.78L57.08 3.78L57.08 3.78Q57.82 3.78 58.58 4.12L58.58 4.12L58.58 5.00L58.58 5.00Q57.93 4.69 57.18 4.69Z"></path></g><!----><!----></svg>
|
Before Width: | Height: | Size: 4.8 KiB |
|
@ -1 +0,0 @@
|
|||
<svg data-v-423bf9ae="" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 263.58303031159966 60" class="font"><!----><!----><!----><g data-v-423bf9ae="" id="c6682a1b-793b-4158-8f39-5848df271a73" fill="white" transform="matrix(4.633204701445071,0,0,4.633204701445071,-7.830112678154194,-16.864865360883996)"><path d="M4.24 13.92L4.24 13.92L4.24 13.92Q3.53 13.92 2.85 13.57L2.85 13.57L2.85 13.57Q2.17 13.23 1.69 12.67L1.69 12.67L2.38 12.07L2.38 12.07Q3.23 13.05 4.33 13.05L4.33 13.05L4.33 13.05Q4.97 13.05 5.39 12.78L5.39 12.78L5.39 12.78Q5.81 12.50 5.81 12.01L5.81 12.01L5.81 12.01Q5.81 11.70 5.66 11.46L5.66 11.46L5.66 11.46Q5.52 11.21 5.20 11.01L5.20 11.01L5.20 11.01Q4.89 10.81 4.64 10.70L4.64 10.70L4.64 10.70Q4.40 10.58 3.95 10.42L3.95 10.42L3.95 10.42Q3.42 10.21 3.09 10.04L3.09 10.04L3.09 10.04Q2.76 9.87 2.41 9.62L2.41 9.62L2.41 9.62Q2.06 9.37 1.89 9.02L1.89 9.02L1.89 9.02Q1.72 8.68 1.72 8.25L1.72 8.25L1.72 8.25Q1.72 7.43 2.39 6.93L2.39 6.93L2.39 6.93Q3.07 6.43 4.12 6.43L4.12 6.43L4.12 6.43Q5.59 6.43 6.52 7.52L6.52 7.52L5.88 8.06L5.88 8.06Q5.08 7.29 4.09 7.29L4.09 7.29L4.09 7.29Q3.43 7.29 3.04 7.55L3.04 7.55L3.04 7.55Q2.65 7.80 2.65 8.23L2.65 8.23L2.65 8.23Q2.65 8.44 2.75 8.62L2.75 8.62L2.75 8.62Q2.86 8.81 2.98 8.93L2.98 8.93L2.98 8.93Q3.11 9.04 3.39 9.19L3.39 9.19L3.39 9.19Q3.67 9.34 3.84 9.40L3.84 9.40L3.84 9.40Q4.00 9.46 4.37 9.60L4.37 9.60L4.37 9.60Q4.93 9.81 5.23 9.96L5.23 9.96L5.23 9.96Q5.53 10.11 5.94 10.39L5.94 10.39L5.94 10.39Q6.36 10.67 6.54 11.05L6.54 11.05L6.54 11.05Q6.73 11.44 6.73 11.96L6.73 11.96L6.73 11.96Q6.73 12.85 6.06 13.38L6.06 13.38L6.06 13.38Q5.39 13.92 4.24 13.92ZM15.34 12.92L15.34 12.92L15.34 12.92Q14.43 13.92 12.94 13.92L12.94 13.92L12.94 13.92Q11.44 13.92 10.54 12.93L10.54 12.93L10.54 12.93Q9.63 11.94 9.63 10.18L9.63 10.18L9.63 10.18Q9.63 8.43 10.54 7.43L10.54 7.43L10.54 7.43Q11.44 6.43 12.94 6.43L12.94 6.43L12.94 6.43Q14.43 6.43 15.34 7.41L15.34 7.41L15.34 7.41Q16.24 8.40 16.24 10.16L16.24 10.16L16.24 10.16Q16.24 11.91 15.34 12.92ZM12.94 13.03L12.94 13.03L12.94 13.03Q14.01 13.03 14.62 12.27L14.62 12.27L14.62 12.27Q15.22 11.51 15.22 10.16L15.22 10.16L15.22 10.16Q15.22 8.81 14.63 8.06L14.63 8.06L14.63 8.06Q14.04 7.31 12.94 7.31L12.94 7.31L12.94 7.31Q11.82 7.31 11.24 8.04L11.24 8.04L11.24 8.04Q10.65 8.78 10.65 10.18L10.65 10.18L10.65 10.18Q10.65 11.54 11.24 12.29L11.24 12.29L11.24 12.29Q11.83 13.03 12.94 13.03ZM19.77 16.10L18.79 16.59L18.79 6.59L19.77 6.59L19.77 7.24L19.77 7.24Q20.19 6.85 20.64 6.64L20.64 6.64L20.64 6.64Q21.08 6.43 21.77 6.43L21.77 6.43L21.77 6.43Q23.21 6.43 24.05 7.44L24.05 7.44L24.05 7.44Q24.88 8.46 24.88 10.16L24.88 10.16L24.88 10.16Q24.88 11.93 24.03 12.92L24.03 12.92L24.03 12.92Q23.18 13.92 21.83 13.92L21.83 13.92L21.83 13.92Q20.54 13.92 19.77 13.02L19.77 13.02L19.77 16.10ZM21.71 13.03L21.71 13.03L21.71 13.03Q22.74 13.03 23.30 12.29L23.30 12.29L23.30 12.29Q23.86 11.55 23.86 10.16L23.86 10.16L23.86 10.16Q23.86 8.85 23.28 8.08L23.28 8.08L23.28 8.08Q22.69 7.31 21.66 7.31L21.66 7.31L21.66 7.31Q20.38 7.31 19.77 8.41L19.77 8.41L19.77 11.93L19.77 11.93Q20.62 13.03 21.71 13.03ZM30.81 13.68L30.81 13.68L30.81 13.68Q30.55 13.94 30.18 13.94L30.18 13.94L30.18 13.94Q29.82 13.94 29.56 13.68L29.56 13.68L29.56 13.68Q29.30 13.41 29.30 13.06L29.30 13.06L29.30 13.06Q29.30 12.71 29.56 12.45L29.56 12.45L29.56 12.45Q29.82 12.18 30.18 12.18L30.18 12.18L30.18 12.18Q30.55 12.18 30.81 12.45L30.81 12.45L30.81 12.45Q31.07 12.71 31.07 13.06L31.07 13.06L31.07 13.06Q31.07 13.41 30.81 13.68ZM37.60 13.75L36.68 13.75L34.92 6.59L35.92 6.59L37.09 11.72L37.09 11.72Q37.16 12.11 37.18 12.25L37.18 12.25L37.18 12.25Q37.20 12.19 37.23 11.99L37.23 11.99L37.23 11.99Q37.27 11.79 37.30 11.68L37.30 11.68L38.40 6.59L39.21 6.59L40.33 11.69L40.33 11.69Q40.36 11.82 40.46 12.32L40.46 12.32L40.46 12.32Q40.49 12.07 40.57 11.69L40.57 11.69L41.69 6.59L42.70 6.59L40.94 13.75L40.03 13.75L38.92 8.88L38.92 8.88Q38.86 8.68 38.79 8.25L38.79 8.25L38.79 8.25Q38.72 8.71 38.68 8.85L38.68 8.85L37.60 13.75ZM48.08 13.92L48.08 13.92L48.08 13.92Q46.38 13.92 46.38 12.21L46.38 12.21L46.38 7.48L44.69 7.48L44.69 6.59L46.38 6.59L46.38 4.13L47.36 3.64L47.36 6.59L49.76 6.59L49.76 7.48L47.36 7.48L47.36 11.79L47.36 11.79Q47.36 12.39 47.57 12.69L47.57 12.69L47.57 12.69Q47.77 12.99 48.41 12.99L48.41 12.99L48.41 12.99Q49.15 12.99 49.77 12.57L49.77 12.57L49.66 13.59L49.66 13.59Q49.06 13.92 48.08 13.92ZM57.18 4.69L57.18 4.69L57.18 4.69Q56.81 4.69 56.60 4.76L56.60 4.76L56.60 4.76Q56.38 4.83 56.29 4.99L56.29 4.99L56.29 4.99Q56.20 5.15 56.18 5.29L56.18 5.29L56.18 5.29Q56.15 5.42 56.15 5.67L56.15 5.67L56.15 6.59L58.06 6.59L58.06 7.48L56.15 7.48L56.15 12.87L58.06 12.87L58.06 13.75L53.69 13.75L53.69 12.87L55.17 12.87L55.17 7.48L53.69 7.48L53.69 6.59L55.17 6.59L55.17 5.52L55.17 5.52Q55.17 4.59 55.70 4.19L55.70 4.19L55.70 4.19Q56.22 3.78 57.08 3.78L57.08 3.78L57.08 3.78Q57.82 3.78 58.58 4.12L58.58 4.12L58.58 5.00L58.58 5.00Q57.93 4.69 57.18 4.69Z"></path></g><!----><!----></svg>
|
Before Width: | Height: | Size: 4.8 KiB |
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg class="iconLeft" data-v-423bf9ae="" viewBox="0 0 416 90" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="matrix(4.6332 0 0 4.6332 144.49 -1.8649)" data-v-423bf9ae="">
|
||||
<path d="m4.24 13.92q-0.71 0-1.39-0.35-0.68-0.34-1.16-0.9l0.69-0.6q0.85 0.98 1.95 0.98 0.64 0 1.06-0.27 0.42-0.28 0.42-0.77 0-0.31-0.15-0.55-0.14-0.25-0.46-0.45-0.31-0.2-0.56-0.31-0.24-0.12-0.69-0.28-0.53-0.21-0.86-0.38t-0.68-0.42-0.52-0.6q-0.17-0.34-0.17-0.77 0-0.82 0.67-1.32 0.68-0.5 1.73-0.5 1.47 0 2.4 1.09l-0.64 0.54q-0.8-0.77-1.79-0.77-0.66 0-1.05 0.26-0.39 0.25-0.39 0.68 0 0.21 0.1 0.39 0.11 0.19 0.23 0.31 0.13 0.11 0.41 0.26t0.45 0.21q0.16 0.06 0.53 0.2 0.56 0.21 0.86 0.36t0.71 0.43q0.42 0.28 0.6 0.66 0.19 0.39 0.19 0.91 0 0.89-0.67 1.42-0.67 0.54-1.82 0.54zm11.1-1q-0.91 1-2.4 1-1.5 0-2.4-0.99-0.91-0.99-0.91-2.75 0-1.75 0.91-2.75 0.9-1 2.4-1 1.49 0 2.4 0.98 0.9 0.99 0.9 2.75 0 1.75-0.9 2.76zm-2.4 0.11q1.07 0 1.68-0.76 0.6-0.76 0.6-2.11t-0.59-2.1-1.69-0.75q-1.12 0-1.7 0.73-0.59 0.74-0.59 2.14 0 1.36 0.59 2.11 0.59 0.74 1.7 0.74zm6.83 3.07-0.98 0.49v-10h0.98v0.65q0.42-0.39 0.87-0.6 0.44-0.21 1.13-0.21 1.44 0 2.28 1.01 0.83 1.02 0.83 2.72 0 1.77-0.85 2.76-0.85 1-2.2 1-1.29 0-2.06-0.9v3.08zm1.94-3.07q1.03 0 1.59-0.74t0.56-2.13q0-1.31-0.58-2.08-0.59-0.77-1.62-0.77-1.28 0-1.89 1.1v3.52q0.85 1.1 1.94 1.1zm9.1 0.65q-0.26 0.26-0.63 0.26-0.36 0-0.62-0.26-0.26-0.27-0.26-0.62t0.26-0.61q0.26-0.27 0.62-0.27 0.37 0 0.63 0.27 0.26 0.26 0.26 0.61t-0.26 0.62zm6.79 0.07h-0.92l-1.76-7.16h1l1.17 5.13q0.07 0.39 0.09 0.53 0.02-0.06 0.05-0.26 0.04-0.2 0.07-0.31l1.1-5.09h0.81l1.12 5.1q0.03 0.13 0.13 0.63 0.03-0.25 0.11-0.63l1.12-5.1h1.01l-1.76 7.16h-0.91l-1.11-4.87q-0.06-0.2-0.13-0.63-0.07 0.46-0.11 0.6l-1.08 4.9zm10.48 0.17q-1.7 0-1.7-1.71v-4.73h-1.69v-0.89h1.69v-2.46l0.98-0.49v2.95h2.4v0.89h-2.4v4.31q0 0.6 0.21 0.9 0.2 0.3 0.84 0.3 0.74 0 1.36-0.42l-0.11 1.02q-0.6 0.33-1.58 0.33zm9.1-9.23q-0.37 0-0.58 0.07-0.22 0.07-0.31 0.23t-0.11 0.3q-0.03 0.13-0.03 0.38v0.92h1.91v0.89h-1.91v5.39h1.91v0.88h-4.37v-0.88h1.48v-5.39h-1.48v-0.89h1.48v-1.07q0-0.93 0.53-1.33 0.52-0.41 1.38-0.41 0.74 0 1.5 0.34v0.88q-0.65-0.31-1.4-0.31z"/>
|
||||
</g>
|
||||
<g transform="matrix(1.4702 0 0 1.4702 -6.5121 -28.119)" data-v-423bf9ae="">
|
||||
<path d="M76.31 35.389H47.45c-9.202 0-16.853 6.692-18.39 15.46h10.653c1.267-3.025 4.257-5.156 7.737-5.156h28.86c4.625 0 8.389 3.76 8.389 8.385v7.838c0 4.625-3.764 8.387-8.389 8.387H47.45c-.062 0-.12-.017-.182-.018H30.764c3.077 6.111 9.392 10.322 16.687 10.322h28.86c10.306 0 18.69-8.385 18.69-18.691v-7.838C95 43.774 86.616 35.389 76.31 35.389z"/>
|
||||
<path d="M29.527 64.611l.001.004H40.97l-.004-.004H52.55c9.234 0 16.904-6.739 18.404-15.553H60.315c-1.246 3.072-4.252 5.249-7.766 5.249h-9.538v.004h-19.18v-.004h-.141a8.304 8.304 0 0 1-1.917-.242c-3.7-.872-6.471-4.183-6.471-8.146v-7.838c0-4.625 3.764-8.385 8.389-8.385h28.86c.059 0 .114.016.173.017h16.514c-3.077-6.11-9.392-10.321-16.687-10.321H23.69C13.384 19.394 5 27.779 5 38.082v7.838c0 9.778 7.55 17.812 17.124 18.612.518.043 1.037.079 1.566.079h5.837z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg class="iconLeft" data-v-423bf9ae="" viewBox="0 0 416 90" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="matrix(4.6332 0 0 4.6332 144.49 -1.8649)" fill="#fff" data-v-423bf9ae="">
|
||||
<path d="m4.24 13.92q-0.71 0-1.39-0.35-0.68-0.34-1.16-0.9l0.69-0.6q0.85 0.98 1.95 0.98 0.64 0 1.06-0.27 0.42-0.28 0.42-0.77 0-0.31-0.15-0.55-0.14-0.25-0.46-0.45-0.31-0.2-0.56-0.31-0.24-0.12-0.69-0.28-0.53-0.21-0.86-0.38t-0.68-0.42-0.52-0.6q-0.17-0.34-0.17-0.77 0-0.82 0.67-1.32 0.68-0.5 1.73-0.5 1.47 0 2.4 1.09l-0.64 0.54q-0.8-0.77-1.79-0.77-0.66 0-1.05 0.26-0.39 0.25-0.39 0.68 0 0.21 0.1 0.39 0.11 0.19 0.23 0.31 0.13 0.11 0.41 0.26t0.45 0.21q0.16 0.06 0.53 0.2 0.56 0.21 0.86 0.36t0.71 0.43q0.42 0.28 0.6 0.66 0.19 0.39 0.19 0.91 0 0.89-0.67 1.42-0.67 0.54-1.82 0.54zm11.1-1q-0.91 1-2.4 1-1.5 0-2.4-0.99-0.91-0.99-0.91-2.75 0-1.75 0.91-2.75 0.9-1 2.4-1 1.49 0 2.4 0.98 0.9 0.99 0.9 2.75 0 1.75-0.9 2.76zm-2.4 0.11q1.07 0 1.68-0.76 0.6-0.76 0.6-2.11t-0.59-2.1-1.69-0.75q-1.12 0-1.7 0.73-0.59 0.74-0.59 2.14 0 1.36 0.59 2.11 0.59 0.74 1.7 0.74zm6.83 3.07-0.98 0.49v-10h0.98v0.65q0.42-0.39 0.87-0.6 0.44-0.21 1.13-0.21 1.44 0 2.28 1.01 0.83 1.02 0.83 2.72 0 1.77-0.85 2.76-0.85 1-2.2 1-1.29 0-2.06-0.9v3.08zm1.94-3.07q1.03 0 1.59-0.74t0.56-2.13q0-1.31-0.58-2.08-0.59-0.77-1.62-0.77-1.28 0-1.89 1.1v3.52q0.85 1.1 1.94 1.1zm9.1 0.65q-0.26 0.26-0.63 0.26-0.36 0-0.62-0.26-0.26-0.27-0.26-0.62t0.26-0.61q0.26-0.27 0.62-0.27 0.37 0 0.63 0.27 0.26 0.26 0.26 0.61t-0.26 0.62zm6.79 0.07h-0.92l-1.76-7.16h1l1.17 5.13q0.07 0.39 0.09 0.53 0.02-0.06 0.05-0.26 0.04-0.2 0.07-0.31l1.1-5.09h0.81l1.12 5.1q0.03 0.13 0.13 0.63 0.03-0.25 0.11-0.63l1.12-5.1h1.01l-1.76 7.16h-0.91l-1.11-4.87q-0.06-0.2-0.13-0.63-0.07 0.46-0.11 0.6l-1.08 4.9zm10.48 0.17q-1.7 0-1.7-1.71v-4.73h-1.69v-0.89h1.69v-2.46l0.98-0.49v2.95h2.4v0.89h-2.4v4.31q0 0.6 0.21 0.9 0.2 0.3 0.84 0.3 0.74 0 1.36-0.42l-0.11 1.02q-0.6 0.33-1.58 0.33zm9.1-9.23q-0.37 0-0.58 0.07-0.22 0.07-0.31 0.23t-0.11 0.3q-0.03 0.13-0.03 0.38v0.92h1.91v0.89h-1.91v5.39h1.91v0.88h-4.37v-0.88h1.48v-5.39h-1.48v-0.89h1.48v-1.07q0-0.93 0.53-1.33 0.52-0.41 1.38-0.41 0.74 0 1.5 0.34v0.88q-0.65-0.31-1.4-0.31z"/>
|
||||
</g>
|
||||
<g transform="matrix(1.4702 0 0 1.4702 -6.5121 -28.119)" fill="#fff" data-v-423bf9ae="">
|
||||
<path d="M76.31 35.389H47.45c-9.202 0-16.853 6.692-18.39 15.46h10.653c1.267-3.025 4.257-5.156 7.737-5.156h28.86c4.625 0 8.389 3.76 8.389 8.385v7.838c0 4.625-3.764 8.387-8.389 8.387H47.45c-.062 0-.12-.017-.182-.018H30.764c3.077 6.111 9.392 10.322 16.687 10.322h28.86c10.306 0 18.69-8.385 18.69-18.691v-7.838C95 43.774 86.616 35.389 76.31 35.389z"/>
|
||||
<path d="M29.527 64.611l.001.004H40.97l-.004-.004H52.55c9.234 0 16.904-6.739 18.404-15.553H60.315c-1.246 3.072-4.252 5.249-7.766 5.249h-9.538v.004h-19.18v-.004h-.141a8.304 8.304 0 0 1-1.917-.242c-3.7-.872-6.471-4.183-6.471-8.146v-7.838c0-4.625 3.764-8.385 8.389-8.385h28.86c.059 0 .114.016.173.017h16.514c-3.077-6.11-9.392-10.321-16.687-10.321H23.69C13.384 19.394 5 27.779 5 38.082v7.838c0 9.778 7.55 17.812 17.124 18.612.518.043 1.037.079 1.566.079h5.837z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
|
@ -1,37 +1,4 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 378.303 378.303" style="enable-background:new 0 0 378.303 378.303;" xml:space="preserve">
|
||||
<polygon style="fill:#7289DA;" points="378.303,28.285 350.018,0 189.151,160.867 28.285,0 0,28.285 160.867,189.151 0,350.018
|
||||
28.285,378.302 189.151,217.436 350.018,378.302 378.303,350.018 217.436,189.151 "/>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg enable-background="new 0 0 378.303 378.303" version="1.1" viewBox="0 0 378.3 378.3" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<polygon points="378.3 28.285 350.02 0 189.15 160.87 28.285 0 0 28.285 160.87 189.15 0 350.02 28.285 378.3 189.15 217.44 350.02 378.3 378.3 350.02 217.44 189.15" fill="#7289DA"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 720 B After Width: | Height: | Size: 371 B |
Before Width: | Height: | Size: 366 KiB |
Before Width: | Height: | Size: 128 KiB |
Before Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 105 KiB |
|
@ -260,10 +260,12 @@ img,svg {
|
|||
vertical-align: middle;
|
||||
|
||||
}
|
||||
img.center{
|
||||
img.wordmark{
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
width: 250px;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
table {
|
||||
|
@ -2117,7 +2119,7 @@ progress {
|
|||
background-color: #2A2A2A;
|
||||
border-color: #86b7fe;
|
||||
outline: 0;
|
||||
box-shadow: 0 0 0 .25rem rgba(13,110,253,.25);
|
||||
box-shadow: 0 0 0 .25rem #212121;
|
||||
}
|
||||
|
||||
.form-control::-webkit-date-and-time-value {
|
||||
|
@ -2301,7 +2303,7 @@ textarea.form-control-lg {
|
|||
.form-select:focus {
|
||||
border-color: #86b7fe;
|
||||
outline: 0;
|
||||
box-shadow: 0 0 0 .25rem rgba(13,110,253,.25);
|
||||
box-shadow: 0 0 0 .25rem #7289DA;
|
||||
}
|
||||
|
||||
.form-select[multiple],.form-select[size]:not([size="1"]) {
|
||||
|
@ -2373,7 +2375,7 @@ textarea.form-control-lg {
|
|||
.form-check-input:focus {
|
||||
border-color: #86b7fe;
|
||||
outline: 0;
|
||||
box-shadow: 0 0 0 .25rem rgba(13,110,253,.25);
|
||||
box-shadow: 0 0 0 .25rem #7289DA;
|
||||
}
|
||||
|
||||
.form-check-input:checked {
|
||||
|
@ -2463,11 +2465,11 @@ textarea.form-control-lg {
|
|||
}
|
||||
|
||||
.form-range:focus::-webkit-slider-thumb {
|
||||
box-shadow: 0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25);
|
||||
box-shadow: 0 0 0 1px #fff,0 0 0 .25rem #7289DA;
|
||||
}
|
||||
|
||||
.form-range:focus::-moz-range-thumb {
|
||||
box-shadow: 0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25);
|
||||
box-shadow: 0 0 0 1px #fff,0 0 0 .25rem #7289DA;
|
||||
}
|
||||
|
||||
.form-range::-moz-focus-outer {
|
||||
|
@ -2891,7 +2893,7 @@ textarea.form-control-lg {
|
|||
|
||||
.btn-check:focus+.btn,.btn:focus {
|
||||
outline: 0;
|
||||
box-shadow: 0 0 0 .25rem rgba(13,110,253,.25);
|
||||
box-shadow: 0 0 0 .25rem #7289DA;
|
||||
}
|
||||
|
||||
.btn:disabled,.btn.disabled,fieldset:disabled .btn {
|
||||
|
@ -2915,7 +2917,7 @@ textarea.form-control-lg {
|
|||
color: #fff;
|
||||
background-color: #0b5ed7;
|
||||
border-color: #0a58ca;
|
||||
box-shadow: 0 0 0 .25rem rgba(49,132,253,.5);
|
||||
box-shadow: 0 0 0 .25rem #7289DA;
|
||||
}
|
||||
|
||||
.btn-check:checked+.btn-primary,.btn-check:active+.btn-primary,.btn-primary:active,.btn-primary.active,.show>.btn-primary.dropdown-toggle {
|
||||
|
@ -2925,7 +2927,7 @@ textarea.form-control-lg {
|
|||
}
|
||||
|
||||
.btn-check:checked+.btn-primary:focus,.btn-check:active+.btn-primary:focus,.btn-primary:active:focus,.btn-primary.active:focus,.show>.btn-primary.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 .25rem rgba(49,132,253,.5);
|
||||
box-shadow: 0 0 0 .25rem #7289DA;
|
||||
}
|
||||
|
||||
.btn-primary:disabled,.btn-primary.disabled {
|
||||
|
@ -3191,7 +3193,7 @@ textarea.form-control-lg {
|
|||
}
|
||||
|
||||
.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus {
|
||||
box-shadow: 0 0 0 .25rem rgba(13,110,253,.5);
|
||||
box-shadow: 0 0 0 .25rem #7289DA;
|
||||
}
|
||||
|
||||
.btn-check:checked+.btn-outline-primary,.btn-check:active+.btn-outline-primary,.btn-outline-primary:active,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show {
|
||||
|
@ -3201,7 +3203,7 @@ textarea.form-control-lg {
|
|||
}
|
||||
|
||||
.btn-check:checked+.btn-outline-primary:focus,.btn-check:active+.btn-outline-primary:focus,.btn-outline-primary:active:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus {
|
||||
box-shadow: 0 0 0 .25rem rgba(13,110,253,.5);
|
||||
box-shadow: 0 0 0 .25rem #7289DA;
|
||||
}
|
||||
|
||||
.btn-outline-primary:disabled,.btn-outline-primary.disabled {
|
||||
|
@ -4432,7 +4434,10 @@ textarea.form-control-lg {
|
|||
padding: 1rem;
|
||||
background-color: #121212;
|
||||
}
|
||||
|
||||
.card-body.px-md-5{
|
||||
border-radius: 50px;
|
||||
|
||||
}
|
||||
.card-title {
|
||||
margin-bottom: .5rem;
|
||||
}
|
||||
|
@ -4617,7 +4622,7 @@ textarea.form-control-lg {
|
|||
z-index: 3;
|
||||
border-color: #86b7fe;
|
||||
outline: 0;
|
||||
box-shadow: 0 0 0 .25rem rgba(13,110,253,.25);
|
||||
box-shadow: 0 0 0 .25rem #7289DA;
|
||||
}
|
||||
|
||||
.accordion-header {
|
||||
|
@ -4741,7 +4746,7 @@ textarea.form-control-lg {
|
|||
color: #0a58ca;
|
||||
background-color: #e9ecef;
|
||||
outline: 0;
|
||||
box-shadow: 0 0 0 .25rem rgba(13,110,253,.25);
|
||||
box-shadow: 0 0 0 .25rem #7289DA;
|
||||
}
|
||||
|
||||
.page-item:not(:first-child) .page-link {
|
||||
|
@ -5400,7 +5405,7 @@ textarea.form-control-lg {
|
|||
|
||||
.btn-close:focus {
|
||||
outline: 0;
|
||||
box-shadow: 0 0 0 .25rem rgba(13,110,253,.25);
|
||||
box-shadow: 0 0 0 .25rem #7289DA;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
|
@ -12063,4 +12068,5 @@ input.form-control.form-control-sm.text-uppercase {
|
|||
|
||||
div.mt-2.card.card-body {
|
||||
border-color: #2A2A2A;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"name": "sleeky-frontend",
|
||||
"version": "2.5.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"bootstrap": {
|
||||
"version": "5.2.3",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.3.tgz",
|
||||
"integrity": "sha512-cEKPM+fwb3cT8NzQZYEu4HilJ3anCrWqh3CHAok1p9jXqMPsPTBhU25fBckEJHJ/p+tTxTFTsFQGM+gaHpi3QQ=="
|
||||
},
|
||||
"popper.js": {
|
||||
"version": "1.16.1",
|
||||
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
|
||||
"integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ=="
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,19 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
sodipodi:docname="accept.svg"
|
||||
id="svg6"
|
||||
version="1.1"
|
||||
width="24"
|
||||
viewBox="0 0 24 24"
|
||||
height="24">
|
||||
height="24"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<rdf:RDF>
|
||||
|
@ -22,7 +22,6 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
@ -48,13 +47,16 @@
|
|||
objecttolerance="10"
|
||||
borderopacity="1"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff" />
|
||||
pagecolor="#ffffff"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<path
|
||||
id="path2"
|
||||
fill="none"
|
||||
d="M0 0h24v24H0z" />
|
||||
d="M 0,0 H 24 V 24 H 0 Z" />
|
||||
<path
|
||||
style="fill:#4393bb;fill-opacity:1"
|
||||
style="fill:#7289da;fill-opacity:1"
|
||||
id="path4"
|
||||
d="M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z" />
|
||||
d="M 9,16.2 4.8,12 3.4,13.4 9,19 21,7 19.6,5.6 Z" />
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
@ -1,19 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="asc.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<rdf:RDF>
|
||||
|
@ -22,7 +22,6 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
@ -48,13 +47,16 @@
|
|||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg6"
|
||||
inkscape:document-rotation="0" />
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<path
|
||||
d="M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"
|
||||
d="M 12,8 6,14 7.41,15.41 12,10.83 16.59,15.41 18,14 Z"
|
||||
id="path2"
|
||||
style="fill:#4393bb;fill-opacity:1" />
|
||||
style="fill:#7289da;fill-opacity:1" />
|
||||
<path
|
||||
d="M0 0h24v24H0z"
|
||||
d="M 0,0 H 24 V 24 H 0 Z"
|
||||
fill="none"
|
||||
id="path4" />
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
@ -1,19 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="bg.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<rdf:RDF>
|
||||
|
@ -22,7 +22,6 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
@ -48,13 +47,16 @@
|
|||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg6"
|
||||
inkscape:document-rotation="0" />
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<path
|
||||
d="M0 0h24v24H0z"
|
||||
d="M 0,0 H 24 V 24 H 0 Z"
|
||||
fill="none"
|
||||
id="path2" />
|
||||
<path
|
||||
d="M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z"
|
||||
d="M 12,5.83 15.17,9 16.58,7.59 12,3 7.41,7.59 8.83,9 Z M 12,18.17 8.83,15 7.42,16.41 12,21 16.59,16.41 15.17,15 Z"
|
||||
id="path4"
|
||||
style="fill:#4393bb;fill-opacity:1" />
|
||||
style="fill:#7289da;fill-opacity:1" />
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.8 KiB |
|
@ -1,19 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="cancel.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<rdf:RDF>
|
||||
|
@ -22,7 +22,6 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
@ -48,13 +47,16 @@
|
|||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg6"
|
||||
inkscape:document-rotation="0" />
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<path
|
||||
d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"
|
||||
d="M 12,2 C 6.47,2 2,6.47 2,12 2,17.53 6.47,22 12,22 17.53,22 22,17.53 22,12 22,6.47 17.53,2 12,2 Z M 17,15.59 15.59,17 12,13.41 8.41,17 7,15.59 10.59,12 7,8.41 8.41,7 12,10.59 15.59,7 17,8.41 13.41,12 Z"
|
||||
id="path2"
|
||||
style="fill:#4393bb;fill-opacity:1" />
|
||||
style="fill:#7289da;fill-opacity:1" />
|
||||
<path
|
||||
d="M0 0h24v24H0z"
|
||||
d="M 0,0 H 24 V 24 H 0 Z"
|
||||
fill="none"
|
||||
id="path4" />
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.9 KiB |
|
@ -1,19 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="chart_bar.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<rdf:RDF>
|
||||
|
@ -22,7 +22,6 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
@ -48,13 +47,16 @@
|
|||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg6"
|
||||
inkscape:document-rotation="0" />
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<path
|
||||
d="M5 9.2h3V19H5zM10.6 5h2.8v14h-2.8zm5.6 8H19v6h-2.8z"
|
||||
d="M 5,9.2 H 8 V 19 H 5 Z M 10.6,5 h 2.8 v 14 h -2.8 z m 5.6,8 H 19 v 6 h -2.8 z"
|
||||
id="path2"
|
||||
style="fill:#4393bb;fill-opacity:1" />
|
||||
style="fill:#7289da;fill-opacity:1" />
|
||||
<path
|
||||
d="M0 0h24v24H0z"
|
||||
d="M 0,0 H 24 V 24 H 0 Z"
|
||||
fill="none"
|
||||
id="path4" />
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.8 KiB |
|
@ -1,19 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
sodipodi:docname="chart_bar_add.svg"
|
||||
id="svg6"
|
||||
version="1.1"
|
||||
width="24"
|
||||
viewBox="0 0 24 24"
|
||||
height="24">
|
||||
height="24"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<rdf:RDF>
|
||||
|
@ -22,7 +22,6 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
@ -48,21 +47,24 @@
|
|||
objecttolerance="10"
|
||||
borderopacity="1"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff" />
|
||||
pagecolor="#ffffff"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<path
|
||||
style="fill:#4393bb;fill-opacity:1"
|
||||
style="fill:#7289da;fill-opacity:1"
|
||||
id="path2"
|
||||
d="M5 9.2h3V19H5zM10.6 5h2.8v14h-2.8zm5.6 8H19v6h-2.8z" />
|
||||
d="M 5,9.2 H 8 V 19 H 5 Z M 10.6,5 h 2.8 v 14 h -2.8 z m 5.6,8 H 19 v 6 h -2.8 z" />
|
||||
<path
|
||||
id="path4"
|
||||
fill="none"
|
||||
d="M0 0h24v24H0z" />
|
||||
d="M 0,0 H 24 V 24 H 0 Z" />
|
||||
<circle
|
||||
r="2.6246843"
|
||||
cy="18.085155"
|
||||
cx="14.813288"
|
||||
id="path831"
|
||||
style="fill:#ff00a5;stroke-width:3.77953;stroke-linecap:square;paint-order:markers fill stroke" />
|
||||
style="fill:#4e5d94;fill-opacity:1;stroke-width:3.77953;stroke-linecap:square;paint-order:markers fill stroke" />
|
||||
<g
|
||||
transform="translate(0.01867423,-0.02564251)"
|
||||
style="font-style:normal;font-weight:normal;font-size:7.56178px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.756178"
|
||||
|
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.7 KiB |
|
@ -1,19 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
sodipodi:docname="copy.svg"
|
||||
id="svg6"
|
||||
version="1.1"
|
||||
width="35"
|
||||
viewBox="0 0 35 16"
|
||||
height="16">
|
||||
height="16"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<rdf:RDF>
|
||||
|
@ -22,7 +22,6 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
@ -50,18 +49,17 @@
|
|||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true" />
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<path
|
||||
style="fill:#8dbdd8;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
|
||||
d="M 0,8 14.084746,0 H 35 V 16 H 14.084746 Z"
|
||||
style="fill:#7289da;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 0,8.3515411 14.084746,0.35154108 H 35 V 16.351541 H 14.084746 Z"
|
||||
id="path849" />
|
||||
<path
|
||||
id="path4"
|
||||
fill="none"
|
||||
d="M 0,0 H 24 V 24 H 0 Z" />
|
||||
<g
|
||||
aria-label="COPY"
|
||||
transform="scale(0.65687347,1.5223632)"
|
||||
transform="matrix(0.65687347,0,0,1.5223632,0,0.35154108)"
|
||||
id="text853"
|
||||
style="font-style:normal;font-weight:normal;font-size:14.4876px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.482922">
|
||||
<path
|
||||
|
@ -73,7 +71,7 @@
|
|||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.4876px;font-family:Verdana;-inkscape-font-specification:'Verdana Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.482922"
|
||||
id="path857" />
|
||||
<path
|
||||
d="m 42.098682,3.3131678 q 0,0.7074024 -0.247591,1.3865086 Q 41.6035,5.3717087 41.143689,5.8315202 40.5141,6.4540343 39.735958,6.7723654 38.964889,7.0906964 37.811823,7.0906964 H 36.121132 V 10.521598 H 33.404707 V -0.01162327 h 4.470783 q 1.004511,0 1.690691,0.17685059 0.693255,0.16977656 1.223806,0.51640372 0.636662,0.41736736 0.969142,1.06817756 0.339553,0.6508102 0.339553,1.5633592 z m -2.808388,0.063666 q 0,-0.4456635 -0.240516,-0.7639945 Q 38.809261,2.2874344 38.49093,2.160102 38.066488,1.9903254 37.663269,1.9761774 37.26005,1.9549553 36.588017,1.9549553 h -0.466885 v 3.1550145 h 0.778142 q 0.693255,0 1.138918,-0.084888 0.452738,-0.084888 0.756921,-0.3395531 0.261739,-0.2263688 0.374923,-0.5376258 0.120258,-0.3183311 0.120258,-0.7710686 z"
|
||||
d="m 42.098682,3.3131678 q 0,0.7074024 -0.247591,1.3865086 Q 41.6035,5.3717087 41.143689,5.8315202 40.5141,6.4540343 39.735958,6.7723654 38.964889,7.0906964 37.811823,7.0906964 H 36.121132 V 10.521598 H 33.404707 V -0.01162327 h 4.470783 q 1.004511,0 1.690691,0.17685059 0.693255,0.16977656 1.223806,0.51640372 0.636662,0.41736736 0.969142,1.06817756 0.339553,0.6508102 0.339553,1.5633592 z m -2.808388,0.063666 q 0,-0.4456635 -0.240516,-0.7639945 Q 38.809261,2.2874344 38.49093,2.160102 38.066488,1.9903254 37.663269,1.9761774 37.26005,1.9549553 36.588017,1.9549553 h -0.466885 v 3.1550145 h 0.778142 q 0.693255,0 1.138918,-0.084888 0.452738,-0.084888 0.756921,-0.3395531 0.261739,-0.2263688 0.374923,-0.5376258 0.120258,-0.3183311 0.120258,-0.7710691 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.4876px;font-family:Verdana;-inkscape-font-specification:'Verdana Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.482922"
|
||||
id="path859" />
|
||||
<path
|
||||
|
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.3 KiB |
|
@ -1,19 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
sodipodi:docname="delete.svg"
|
||||
id="svg6"
|
||||
version="1.1"
|
||||
width="16"
|
||||
viewBox="0 0 16 16"
|
||||
height="16">
|
||||
height="16"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<rdf:RDF>
|
||||
|
@ -22,7 +22,6 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
@ -48,9 +47,12 @@
|
|||
objecttolerance="10"
|
||||
borderopacity="1"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff" />
|
||||
pagecolor="#ffffff"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<path
|
||||
style="fill:#4393bb;fill-opacity:1;stroke-width:0.888889"
|
||||
style="fill:#7289da;fill-opacity:1;stroke-width:0.888889"
|
||||
id="path2"
|
||||
d="M 2.6666669,14.222222 C 2.6666669,15.2 3.4666669,16 4.4444447,16 h 7.1111113 c 0.977778,0 1.777778,-0.8 1.777778,-1.777778 V 3.5555556 H 2.6666669 Z M 14.222222,0.8888889 H 11.111111 L 10.222222,0 H 5.777778 L 4.8888891,0.8888889 H 1.777778 v 1.7777778 h 12.444444 z" />
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.9 KiB |
|
@ -1,19 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="desc.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<rdf:RDF>
|
||||
|
@ -22,7 +22,6 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
@ -48,13 +47,16 @@
|
|||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg6"
|
||||
inkscape:document-rotation="0" />
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<path
|
||||
d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"
|
||||
d="M 7.41,8.59 12,13.17 16.59,8.59 18,10 12,16 6,10 Z"
|
||||
id="path2"
|
||||
style="fill:#4393bb;fill-opacity:1" />
|
||||
style="fill:#7289da;fill-opacity:1" />
|
||||
<path
|
||||
d="M0 0h24v24H0V0z"
|
||||
d="M 0,0 H 24 V 24 H 0 Z"
|
||||
fill="none"
|
||||
id="path4" />
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
@ -1,19 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="error.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<rdf:RDF>
|
||||
|
@ -22,7 +22,6 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
@ -48,13 +47,16 @@
|
|||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg6"
|
||||
inkscape:document-rotation="0" />
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<path
|
||||
d="M0 0h24v24H0z"
|
||||
d="M 0,0 H 24 V 24 H 0 Z"
|
||||
fill="none"
|
||||
id="path2" />
|
||||
<path
|
||||
d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"
|
||||
d="M 1,21 H 23 L 12,2 Z m 12,-3 h -2 v -2 h 2 z m 0,-4 h -2 v -4 h 2 z"
|
||||
id="path4"
|
||||
style="fill:#4393bb;fill-opacity:1" />
|
||||
style="fill:#7289da;fill-opacity:1" />
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.8 KiB |
|
@ -1,24 +1,25 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Capa_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 512 512"
|
||||
style="enable-background:new 0 0 512 512;"
|
||||
viewBox="0 0 131072 262144"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="facebook.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"><metadata
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
width="131072"
|
||||
height="262144"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
|
@ -39,62 +40,81 @@
|
|||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Capa_1"
|
||||
inkscape:document-rotation="0" />
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<g
|
||||
id="g6"
|
||||
style="fill:#4393bb;fill-opacity:1">
|
||||
style="fill:#7289da;fill-opacity:1"
|
||||
transform="translate(-65536)">
|
||||
<g
|
||||
id="g4"
|
||||
style="fill:#4393bb;fill-opacity:1">
|
||||
style="fill:#7289da;fill-opacity:1">
|
||||
<path
|
||||
d="M288,176v-64c0-17.664,14.336-32,32-32h32V0h-64c-53.024,0-96,42.976-96,96v80h-64v80h64v256h96V256h64l32-80H288z"
|
||||
d="m 288,176 v -64 c 0,-17.664 14.336,-32 32,-32 h 32 V 0 h -64 c -53.024,0 -96,42.976 -96,96 v 80 h -64 v 80 h 64 v 256 h 96 V 256 h 64 l 32,-80 z"
|
||||
id="path2"
|
||||
style="fill:#4393bb;fill-opacity:1" />
|
||||
style="fill:#7289da;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g8">
|
||||
id="g8"
|
||||
transform="translate(-65536)">
|
||||
</g>
|
||||
<g
|
||||
id="g10">
|
||||
id="g10"
|
||||
transform="translate(-65536)">
|
||||
</g>
|
||||
<g
|
||||
id="g12">
|
||||
id="g12"
|
||||
transform="translate(-65536)">
|
||||
</g>
|
||||
<g
|
||||
id="g14">
|
||||
id="g14"
|
||||
transform="translate(-65536)">
|
||||
</g>
|
||||
<g
|
||||
id="g16">
|
||||
id="g16"
|
||||
transform="translate(-65536)">
|
||||
</g>
|
||||
<g
|
||||
id="g18">
|
||||
id="g18"
|
||||
transform="translate(-65536)">
|
||||
</g>
|
||||
<g
|
||||
id="g20">
|
||||
id="g20"
|
||||
transform="translate(-65536)">
|
||||
</g>
|
||||
<g
|
||||
id="g22">
|
||||
id="g22"
|
||||
transform="translate(-65536)">
|
||||
</g>
|
||||
<g
|
||||
id="g24">
|
||||
id="g24"
|
||||
transform="translate(-65536)">
|
||||
</g>
|
||||
<g
|
||||
id="g26">
|
||||
id="g26"
|
||||
transform="translate(-65536)">
|
||||
</g>
|
||||
<g
|
||||
id="g28">
|
||||
id="g28"
|
||||
transform="translate(-65536)">
|
||||
</g>
|
||||
<g
|
||||
id="g30">
|
||||
id="g30"
|
||||
transform="translate(-65536)">
|
||||
</g>
|
||||
<g
|
||||
id="g32">
|
||||
id="g32"
|
||||
transform="translate(-65536)">
|
||||
</g>
|
||||
<g
|
||||
id="g34">
|
||||
id="g34"
|
||||
transform="translate(-65536)">
|
||||
</g>
|
||||
<g
|
||||
id="g36">
|
||||
id="g36"
|
||||
transform="translate(-65536)">
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.7 KiB |
|
@ -1,12 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
enable-background="new 0 0 24 24"
|
||||
height="16"
|
||||
viewBox="0 0 16 16"
|
||||
|
@ -14,7 +7,14 @@
|
|||
version="1.1"
|
||||
id="svg10"
|
||||
sodipodi:docname="filter.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata16">
|
||||
<rdf:RDF>
|
||||
|
@ -23,7 +23,6 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
@ -49,7 +48,10 @@
|
|||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g8" />
|
||||
inkscape:current-layer="g8"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<g
|
||||
id="g8">
|
||||
<path
|
||||
|
@ -59,7 +61,7 @@
|
|||
<path
|
||||
d="M 0.255,1.61 C 2.275,4.2 6.005,9 6.005,9 v 6 c 0,0.55 0.45,1 1,1 h 2 c 0.55,0 1,-0.45 1,-1 V 9 c 0,0 3.72,-4.8 5.74,-7.39 C 16.255,0.95 15.785,0 14.955,0 H 1.045 c -0.83,0 -1.3,0.95 -0.79,1.61 z"
|
||||
id="path4"
|
||||
style="fill:#4393bb;fill-opacity:1" />
|
||||
style="fill:#7289da;fill-opacity:1" />
|
||||
<path
|
||||
d="M 0,0 H 24 V 24 H 0 Z"
|
||||
fill="none"
|
||||
|
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 43 KiB |
|
@ -1,19 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="pencil.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<rdf:RDF>
|
||||
|
@ -22,7 +22,6 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
@ -48,13 +47,16 @@
|
|||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg6"
|
||||
inkscape:document-rotation="0" />
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<path
|
||||
d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"
|
||||
d="M 3,17.25 V 21 H 6.75 L 17.81,9.94 14.06,6.19 Z M 20.71,7.04 c 0.39,-0.39 0.39,-1.02 0,-1.41 L 18.37,3.29 C 17.98,2.9 17.35,2.9 16.96,3.29 l -1.83,1.83 3.75,3.75 z"
|
||||
id="path2"
|
||||
style="fill:#4393bb;fill-opacity:1" />
|
||||
style="fill:#7289da;fill-opacity:1" />
|
||||
<path
|
||||
d="M0 0h24v24H0z"
|
||||
d="M 0,0 H 24 V 24 H 0 Z"
|
||||
fill="none"
|
||||
id="path4" />
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.9 KiB |
|
@ -1,19 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="share.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
inkscape:export-filename="share.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<rdf:RDF>
|
||||
|
@ -22,7 +25,6 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
@ -48,13 +50,16 @@
|
|||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg6"
|
||||
inkscape:document-rotation="0" />
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<path
|
||||
d="M0 0h24v24H0z"
|
||||
d="M 0,0 H 24 V 24 H 0 Z"
|
||||
fill="none"
|
||||
id="path2" />
|
||||
<path
|
||||
d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z"
|
||||
d="m 18,16.08 c -0.76,0 -1.44,0.3 -1.96,0.77 L 8.91,12.7 C 8.96,12.47 9,12.24 9,12 9,11.76 8.96,11.53 8.91,11.3 L 15.96,7.19 C 16.5,7.69 17.21,8 18,8 19.66,8 21,6.66 21,5 21,3.34 19.66,2 18,2 c -1.66,0 -3,1.34 -3,3 0,0.24 0.04,0.47 0.09,0.7 L 8.04,9.81 C 7.5,9.31 6.79,9 6,9 4.34,9 3,10.34 3,12 c 0,1.66 1.34,3 3,3 0.79,0 1.5,-0.31 2.04,-0.81 l 7.12,4.16 c -0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92 0,-1.61 -1.31,-2.92 -2.92,-2.92 z"
|
||||
id="path4"
|
||||
style="fill:#4393bb;fill-opacity:1" />
|
||||
style="fill:#7289da;fill-opacity:1" />
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.3 KiB |
|
@ -1,24 +1,25 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Capa_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 512 512"
|
||||
style="enable-background:new 0 0 512 512;"
|
||||
viewBox="0 0 262144 262144"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="twitter.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"><metadata
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
width="262144"
|
||||
height="262144"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
|
@ -39,62 +40,41 @@
|
|||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Capa_1"
|
||||
inkscape:document-rotation="0" />
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<g
|
||||
id="g6"
|
||||
style="fill:#4393bb;fill-opacity:1">
|
||||
style="fill:#7289da;fill-opacity:1">
|
||||
<g
|
||||
id="g4"
|
||||
style="fill:#4393bb;fill-opacity:1">
|
||||
style="fill:#7289da;fill-opacity:1">
|
||||
<path
|
||||
d="M512,97.248c-19.04,8.352-39.328,13.888-60.48,16.576c21.76-12.992,38.368-33.408,46.176-58.016 c-20.288,12.096-42.688,20.64-66.56,25.408C411.872,60.704,384.416,48,354.464,48c-58.112,0-104.896,47.168-104.896,104.992 c0,8.32,0.704,16.32,2.432,23.936c-87.264-4.256-164.48-46.08-216.352-109.792c-9.056,15.712-14.368,33.696-14.368,53.056 c0,36.352,18.72,68.576,46.624,87.232c-16.864-0.32-33.408-5.216-47.424-12.928c0,0.32,0,0.736,0,1.152 c0,51.008,36.384,93.376,84.096,103.136c-8.544,2.336-17.856,3.456-27.52,3.456c-6.72,0-13.504-0.384-19.872-1.792 c13.6,41.568,52.192,72.128,98.08,73.12c-35.712,27.936-81.056,44.768-130.144,44.768c-8.608,0-16.864-0.384-25.12-1.44 C46.496,446.88,101.6,464,161.024,464c193.152,0,298.752-160,298.752-298.688c0-4.64-0.16-9.12-0.384-13.568 C480.224,136.96,497.728,118.496,512,97.248z"
|
||||
d="m 512,97.248 c -19.04,8.352 -39.328,13.888 -60.48,16.576 21.76,-12.992 38.368,-33.408 46.176,-58.016 -20.288,12.096 -42.688,20.64 -66.56,25.408 C 411.872,60.704 384.416,48 354.464,48 296.352,48 249.568,95.168 249.568,152.992 c 0,8.32 0.704,16.32 2.432,23.936 C 164.736,172.672 87.52,130.848 35.648,67.136 26.592,82.848 21.28,100.832 21.28,120.192 c 0,36.352 18.72,68.576 46.624,87.232 -16.864,-0.32 -33.408,-5.216 -47.424,-12.928 0,0.32 0,0.736 0,1.152 0,51.008 36.384,93.376 84.096,103.136 -8.544,2.336 -17.856,3.456 -27.52,3.456 -6.72,0 -13.504,-0.384 -19.872,-1.792 13.6,41.568 52.192,72.128 98.08,73.12 -35.712,27.936 -81.056,44.768 -130.144,44.768 -8.608,0 -16.864,-0.384 -25.12,-1.44 C 46.496,446.88 101.6,464 161.024,464 c 193.152,0 298.752,-160 298.752,-298.688 0,-4.64 -0.16,-9.12 -0.384,-13.568 C 480.224,136.96 497.728,118.496 512,97.248 Z"
|
||||
id="path2"
|
||||
style="fill:#4393bb;fill-opacity:1" />
|
||||
style="fill:#7289da;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
id="g8">
|
||||
</g>
|
||||
<g
|
||||
id="g10">
|
||||
</g>
|
||||
<g
|
||||
id="g12">
|
||||
</g>
|
||||
<g
|
||||
id="g14">
|
||||
</g>
|
||||
<g
|
||||
id="g16">
|
||||
</g>
|
||||
<g
|
||||
id="g18">
|
||||
</g>
|
||||
<g
|
||||
id="g20">
|
||||
</g>
|
||||
<g
|
||||
id="g22">
|
||||
</g>
|
||||
<g
|
||||
id="g24">
|
||||
</g>
|
||||
<g
|
||||
id="g26">
|
||||
</g>
|
||||
<g
|
||||
id="g28">
|
||||
</g>
|
||||
<g
|
||||
id="g30">
|
||||
</g>
|
||||
<g
|
||||
id="g32">
|
||||
</g>
|
||||
<g
|
||||
id="g34">
|
||||
</g>
|
||||
<g
|
||||
id="g36">
|
||||
</g>
|
||||
</svg>
|
||||
style="fill:#ff0000;fill-opacity:1"
|
||||
id="g1956"
|
||||
transform="matrix(0.86810312,0,0,0.86815918,51.999458,48.388091)"><path
|
||||
d="M 285.08,230.397 456.218,59.27 c 6.076,-6.077 6.076,-15.911 0,-21.986 L 423.511,4.565 c -2.913,-2.911 -6.866,-4.55 -10.992,-4.55 -4.127,0 -8.08,1.639 -10.993,4.55 L 230.388,175.705 59.25,4.565 c -2.913,-2.911 -6.866,-4.55 -10.993,-4.55 -4.126,0 -8.08,1.639 -10.992,4.55 L 4.558,37.284 c -6.077,6.075 -6.077,15.909 0,21.986 L 175.696,230.398 4.575,401.505 c -6.074,6.077 -6.074,15.911 0,21.986 l 32.709,32.719 c 2.911,2.911 6.865,4.55 10.992,4.55 4.127,0 8.08,-1.639 10.994,-4.55 L 230.387,285.09 401.505,456.21 c 2.913,2.911 6.866,4.55 10.993,4.55 4.128,0 8.081,-1.639 10.992,-4.55 l 32.709,-32.719 c 6.074,-6.075 6.074,-15.909 0,-21.986 z"
|
||||
id="path1948"
|
||||
style="fill:#ff0000;fill-opacity:1" /></g></svg>
|
||||
|
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 18 KiB |
|
@ -1,3 +0,0 @@
|
|||
<?php
|
||||
header("HTTP/1.0 403 Not Found");
|
||||
?>
|
|
@ -1,3 +0,0 @@
|
|||
<?php
|
||||
header("HTTP/1.0 403 Not Found");
|
||||
?>
|
|
@ -1,3 +0,0 @@
|
|||
<?php
|
||||
header("HTTP/1.0 403 Not Found");
|
||||
?>
|
|
@ -1,3 +0,0 @@
|
|||
<?php
|
||||
header("HTTP/1.0 403 Not Found");
|
||||
?>
|
|
@ -1,3 +0,0 @@
|
|||
<?php
|
||||
header("HTTP/1.0 403 Not Found");
|
||||
?>
|
|
@ -1,5 +0,0 @@
|
|||
parameters:
|
||||
level: 8
|
||||
paths:
|
||||
- src
|
||||
- tests
|
|
@ -1,3 +0,0 @@
|
|||
<?php
|
||||
header("HTTP/1.0 403 Not Found");
|
||||
?>
|
|
@ -1,55 +0,0 @@
|
|||
Openwall Phpass, modernized
|
||||
===========================
|
||||
|
||||
[![Build Status](https://secure.travis-ci.org/ozh/phpass.png?branch=master)](http://travis-ci.org/ozh/phpass)
|
||||
|
||||
This is Openwall's [Phpass](http://openwall.com/phpass/), based on the 0.5 release, but modernized slightly:
|
||||
|
||||
- Namespaced
|
||||
- Composer support (Autoloading)
|
||||
- Unit Tested
|
||||
|
||||
The modernization has been done by Hautelook, from whom I stole this library to originally repackage it for PHP 5.3 to 7.0 compatibility in a single file and branch (Hautelook's port consisting of two branches, one for PHP 5.3 to 5.5, and another one for 5.6+).
|
||||
|
||||
Current version requires PHP 5.6+
|
||||
|
||||
## Installation ##
|
||||
|
||||
Add this requirement to your `composer.json` file and run `composer install`:
|
||||
|
||||
{
|
||||
"require": {
|
||||
"ozh/phpass": "1.3.0"
|
||||
}
|
||||
}
|
||||
|
||||
## Usage ##
|
||||
|
||||
The following example shows how to hash a password (to then store the hash in the database), and how to check whether a provided password is correct (hashes to the same value):
|
||||
|
||||
``` php
|
||||
<?php
|
||||
|
||||
namespace Your\Namespace;
|
||||
|
||||
use Ozh\Phpass\PasswordHash;
|
||||
|
||||
require_once(__DIR__ . "/vendor/autoload.php"); // or require_once('path/to/src/Ozh/Phpass/PasswordHash.php');
|
||||
|
||||
$passwordHasher = new PasswordHash(8,false);
|
||||
|
||||
// Encrypt
|
||||
$password = $passwordHasher->HashPassword('secret');
|
||||
var_dump($password);
|
||||
// Will output something like:
|
||||
// '$2a$08$a6XFLs8SrjClF1szoDDkI.6gtWVb4//QnzUjkxlus83AKCNjuD8Ha' (length=60)
|
||||
// '$2a$08$Qze1smZ//VAwHJ1t52zklOY/yLwlbKR6Ighf6B7uqGXdYVozTPEdG' (length=60)
|
||||
// '$2a$08$u2uKfE9igO.Cz0SptWxlXeVi0CQglfl3FdRK3YpbGm1NfF1d.CFPm' (length=60)
|
||||
|
||||
// Decrypt
|
||||
var_dump( $passwordHasher->CheckPassword('secret', '$2a$08$0RK6Yw6j9kSIXrrEOc3dwuDPQuT78HgR0S3/ghOFDEpOGpOkARoSu') );
|
||||
// true
|
||||
var_dump( $passwordHasher->CheckPassword('secret', '$2a$08$Qze1smZ//VAwHJ1t52zklOY/yLwlbKR6Ighf6B7uqGXdYVozTPEdG') );
|
||||
// true
|
||||
var_dump( $passwordHasher->CheckPassword('secret', '$2a$08$u2uKfE9igO.Cz0SptWxlXeVi0CQglfl3FdRK3YpbGm1NfF1d.CFPm') );
|
||||
// true
|
|
@ -1,333 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Ozh\Phpass;
|
||||
|
||||
/**
|
||||
*
|
||||
* Portable PHP password hashing framework.
|
||||
*
|
||||
* Originally written by Solar Designer <solar at openwall.com> in 2004-2006
|
||||
*
|
||||
* Modernized by Hautelook at https://github.com/hautelook/phpass
|
||||
*
|
||||
* Slightly repacked by Ozh to extend compatibility from PHP 5.3 to 7+ in a single file
|
||||
*
|
||||
* There's absolutely no warranty.
|
||||
*
|
||||
* The homepage URL for this framework is:
|
||||
*
|
||||
* http://www.openwall.com/phpass/
|
||||
*
|
||||
* Please be sure to update the Version line if you edit this file in any way.
|
||||
* It is suggested that you leave the main version number intact, but indicate
|
||||
* your project name (after the slash) and add your own revision information.
|
||||
*
|
||||
* Please do not change the "private" password hashing method implemented in
|
||||
* here, thereby making your hashes incompatible. However, if you must, please
|
||||
* change the hash type identifier (the "$P$") to something different.
|
||||
*
|
||||
* Obviously, since this code is in the public domain, the above are not
|
||||
* requirements (there can be none), but merely suggestions.
|
||||
*
|
||||
* @author Solar Designer <solar@openwall.com>
|
||||
*/
|
||||
class PasswordHash
|
||||
{
|
||||
private $itoa64;
|
||||
private $iteration_count_log2;
|
||||
private $portable_hashes;
|
||||
private $random_state;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param int $iteration_count_log2
|
||||
* @param boolean $portable_hashes
|
||||
*/
|
||||
public function __construct($iteration_count_log2, $portable_hashes)
|
||||
{
|
||||
$this->itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
|
||||
|
||||
if ($iteration_count_log2 < 4 || $iteration_count_log2 > 31) {
|
||||
$iteration_count_log2 = 8;
|
||||
}
|
||||
$this->iteration_count_log2 = $iteration_count_log2;
|
||||
|
||||
$this->portable_hashes = $portable_hashes;
|
||||
|
||||
$this->random_state = microtime();
|
||||
if (function_exists('getmypid')) {
|
||||
$this->random_state .= getmypid();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $count
|
||||
* @return String
|
||||
*/
|
||||
public function get_random_bytes($count)
|
||||
{
|
||||
$output = '';
|
||||
|
||||
// PHP 7+
|
||||
if (is_callable('random_bytes')) {
|
||||
return random_bytes($count);
|
||||
}
|
||||
|
||||
if (@is_readable('/dev/urandom') &&
|
||||
($fh = @fopen('/dev/urandom', 'rb'))) {
|
||||
$output = fread($fh, $count);
|
||||
fclose($fh);
|
||||
}
|
||||
|
||||
if (strlen($output) < $count) {
|
||||
$output = '';
|
||||
for ($i = 0; $i < $count; $i += 16) {
|
||||
$this->random_state =
|
||||
md5(microtime() . $this->random_state);
|
||||
$output .= md5($this->random_state, TRUE);
|
||||
}
|
||||
$output = substr($output, 0, $count);
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param String $input
|
||||
* @param int $count
|
||||
* @return String
|
||||
*/
|
||||
public function encode64($input, $count)
|
||||
{
|
||||
$output = '';
|
||||
$i = 0;
|
||||
do {
|
||||
$value = ord($input[$i++]);
|
||||
$output .= $this->itoa64[$value & 0x3f];
|
||||
if ($i < $count) {
|
||||
$value |= ord($input[$i]) << 8;
|
||||
}
|
||||
$output .= $this->itoa64[($value >> 6) & 0x3f];
|
||||
if ($i++ >= $count) {
|
||||
break;
|
||||
}
|
||||
if ($i < $count) {
|
||||
$value |= ord($input[$i]) << 16;
|
||||
}
|
||||
$output .= $this->itoa64[($value >> 12) & 0x3f];
|
||||
if ($i++ >= $count) {
|
||||
break;
|
||||
}
|
||||
$output .= $this->itoa64[($value >> 18) & 0x3f];
|
||||
} while ($i < $count);
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param String $input
|
||||
* @return String
|
||||
*/
|
||||
public function gensalt_private($input)
|
||||
{
|
||||
$output = '$P$';
|
||||
$output .= $this->itoa64[min($this->iteration_count_log2 +
|
||||
((PHP_VERSION >= '5') ? 5 : 3), 30)];
|
||||
$output .= $this->encode64($input, 6);
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param String $password
|
||||
* @param String $setting
|
||||
* @return String
|
||||
*/
|
||||
public function crypt_private($password, $setting)
|
||||
{
|
||||
$output = '*0';
|
||||
if (substr($setting, 0, 2) === $output) {
|
||||
$output = '*1';
|
||||
}
|
||||
|
||||
$id = substr($setting, 0, 3);
|
||||
# We use "$P$", phpBB3 uses "$H$" for the same thing
|
||||
if ($id !== '$P$' && $id !== '$H$') {
|
||||
return $output;
|
||||
}
|
||||
|
||||
$count_log2 = strpos($this->itoa64, $setting[3]);
|
||||
if ($count_log2 < 7 || $count_log2 > 30) {
|
||||
return $output;
|
||||
}
|
||||
|
||||
$count = 1 << $count_log2;
|
||||
|
||||
$salt = substr($setting, 4, 8);
|
||||
if (strlen($salt) != 8) {
|
||||
return $output;
|
||||
}
|
||||
|
||||
// We're kind of forced to use MD5 here since it's the only
|
||||
// cryptographic primitive available in all versions of PHP
|
||||
// currently in use. To implement our own low-level crypto
|
||||
// in PHP would result in much worse performance and
|
||||
// consequently in lower iteration counts and hashes that are
|
||||
// quicker to crack (by non-PHP code).
|
||||
$hash = md5($salt . $password, TRUE);
|
||||
do {
|
||||
$hash = md5($hash . $password, TRUE);
|
||||
} while (--$count);
|
||||
|
||||
$output = substr($setting, 0, 12);
|
||||
$output .= $this->encode64($hash, 16);
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param String $input
|
||||
* @return String
|
||||
*/
|
||||
public function gensalt_blowfish($input)
|
||||
{
|
||||
// This one needs to use a different order of characters and a
|
||||
// different encoding scheme from the one in encode64() above.
|
||||
// We care because the last character in our encoded string will
|
||||
// only represent 2 bits. While two known implementations of
|
||||
// bcrypt will happily accept and correct a salt string which
|
||||
// has the 4 unused bits set to non-zero, we do not want to take
|
||||
// chances and we also do not want to waste an additional byte
|
||||
// of entropy.
|
||||
$itoa64 = './ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
||||
|
||||
$output = '$2a$';
|
||||
$output .= chr(ord('0') + $this->iteration_count_log2 / 10);
|
||||
$output .= chr(ord('0') + $this->iteration_count_log2 % 10);
|
||||
$output .= '$';
|
||||
|
||||
$i = 0;
|
||||
do {
|
||||
$c1 = ord($input[$i++]);
|
||||
$output .= $itoa64[$c1 >> 2];
|
||||
$c1 = ($c1 & 0x03) << 4;
|
||||
if ($i >= 16) {
|
||||
$output .= $itoa64[$c1];
|
||||
break;
|
||||
}
|
||||
|
||||
$c2 = ord($input[$i++]);
|
||||
$c1 |= $c2 >> 4;
|
||||
$output .= $itoa64[$c1];
|
||||
$c1 = ($c2 & 0x0f) << 2;
|
||||
|
||||
$c2 = ord($input[$i++]);
|
||||
$c1 |= $c2 >> 6;
|
||||
$output .= $itoa64[$c1];
|
||||
$output .= $itoa64[$c2 & 0x3f];
|
||||
} while (1);
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param String $password
|
||||
*/
|
||||
public function HashPassword($password)
|
||||
{
|
||||
$random = '';
|
||||
|
||||
if (CRYPT_BLOWFISH == 1 && !$this->portable_hashes) {
|
||||
$random = $this->get_random_bytes(16);
|
||||
$hash =
|
||||
crypt($password, $this->gensalt_blowfish($random));
|
||||
if (strlen($hash) == 60) {
|
||||
return $hash;
|
||||
}
|
||||
}
|
||||
|
||||
if (strlen($random) < 6) {
|
||||
$random = $this->get_random_bytes(6);
|
||||
}
|
||||
|
||||
$hash =
|
||||
$this->crypt_private($password,
|
||||
$this->gensalt_private($random));
|
||||
if (strlen($hash) == 34) {
|
||||
return $hash;
|
||||
}
|
||||
|
||||
// Returning '*' on error is safe here, but would _not_ be safe
|
||||
// in a crypt(3)-like function used _both_ for generating new
|
||||
// hashes and for validating passwords against existing hashes.
|
||||
return '*';
|
||||
}
|
||||
|
||||
/**
|
||||
* @param String $password
|
||||
* @param String $stored_hash
|
||||
* @return boolean
|
||||
*/
|
||||
public function CheckPassword($password, $stored_hash)
|
||||
{
|
||||
$hash = $this->crypt_private($password, $stored_hash);
|
||||
if ($hash[0] == '*') {
|
||||
$hash = crypt($password, $stored_hash);
|
||||
}
|
||||
|
||||
return hash_equals($stored_hash, $hash);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* hash_equals compatibility function
|
||||
*
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
*
|
||||
* Source: https://github.com/bcit-ci/CodeIgniter/blob/3.1.4/system/core/compat/hash.php
|
||||
* For PHP < 5.6
|
||||
*/
|
||||
// @codeCoverageIgnoreStart
|
||||
if ( ! function_exists('hash_equals'))
|
||||
{
|
||||
/**
|
||||
* hash_equals()
|
||||
*
|
||||
* @link http://php.net/hash_equals
|
||||
* @param string $known_string
|
||||
* @param string $user_string
|
||||
* @return bool
|
||||
*/
|
||||
function hash_equals($known_string, $user_string)
|
||||
{
|
||||
if ( ! is_string($known_string))
|
||||
{
|
||||
trigger_error('hash_equals(): Expected known_string to be a string, '.strtolower(gettype($known_string)).' given', E_USER_WARNING);
|
||||
return FALSE;
|
||||
}
|
||||
elseif ( ! is_string($user_string))
|
||||
{
|
||||
trigger_error('hash_equals(): Expected user_string to be a string, '.strtolower(gettype($user_string)).' given', E_USER_WARNING);
|
||||
return FALSE;
|
||||
}
|
||||
elseif (($length = strlen($known_string)) !== strlen($user_string))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
$diff = 0;
|
||||
for ($i = 0; $i < $length; $i++)
|
||||
{
|
||||
$diff |= ord($known_string[$i]) ^ ord($user_string[$i]);
|
||||
}
|
||||
return ($diff === 0);
|
||||
}
|
||||
}
|
||||
// @codeCoverageIgnoreEnd
|
||||
|
|
@ -1 +0,0 @@
|
|||
338e2-5db52cb225723
|
|
@ -1 +0,0 @@
|
|||
4d-5db52cb22b4e4
|
|
@ -1,33 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Authentication provider interface
|
||||
*
|
||||
* @package Requests
|
||||
* @subpackage Authentication
|
||||
*/
|
||||
|
||||
/**
|
||||
* Authentication provider interface
|
||||
*
|
||||
* Implement this interface to act as an authentication provider.
|
||||
*
|
||||
* Parameters should be passed via the constructor where possible, as this
|
||||
* makes it much easier for users to use your provider.
|
||||
*
|
||||
* @see Requests_Hooks
|
||||
* @package Requests
|
||||
* @subpackage Authentication
|
||||
*/
|
||||
interface Requests_Auth {
|
||||
/**
|
||||
* Register hooks as needed
|
||||
*
|
||||
* This method is called in {@see Requests::request} when the user has set
|
||||
* an instance as the 'auth' option. Use this callback to register all the
|
||||
* hooks you'll need.
|
||||
*
|
||||
* @see Requests_Hooks::register
|
||||
* @param Requests_Hooks $hooks Hook system
|
||||
*/
|
||||
public function register(Requests_Hooks &$hooks);
|
||||
}
|
|
@ -1,88 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Basic Authentication provider
|
||||
*
|
||||
* @package Requests
|
||||
* @subpackage Authentication
|
||||
*/
|
||||
|
||||
/**
|
||||
* Basic Authentication provider
|
||||
*
|
||||
* Provides a handler for Basic HTTP authentication via the Authorization
|
||||
* header.
|
||||
*
|
||||
* @package Requests
|
||||
* @subpackage Authentication
|
||||
*/
|
||||
class Requests_Auth_Basic implements Requests_Auth {
|
||||
/**
|
||||
* Username
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $user;
|
||||
|
||||
/**
|
||||
* Password
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $pass;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @throws Requests_Exception On incorrect number of arguments (`authbasicbadargs`)
|
||||
* @param array|null $args Array of user and password. Must have exactly two elements
|
||||
*/
|
||||
public function __construct($args = null) {
|
||||
if (is_array($args)) {
|
||||
if (count($args) !== 2) {
|
||||
throw new Requests_Exception('Invalid number of arguments', 'authbasicbadargs');
|
||||
}
|
||||
|
||||
list($this->user, $this->pass) = $args;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the necessary callbacks
|
||||
*
|
||||
* @see curl_before_send
|
||||
* @see fsockopen_header
|
||||
* @param Requests_Hooks $hooks Hook system
|
||||
*/
|
||||
public function register(Requests_Hooks &$hooks) {
|
||||
$hooks->register('curl.before_send', array(&$this, 'curl_before_send'));
|
||||
$hooks->register('fsockopen.after_headers', array(&$this, 'fsockopen_header'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Set cURL parameters before the data is sent
|
||||
*
|
||||
* @param resource $handle cURL resource
|
||||
*/
|
||||
public function curl_before_send(&$handle) {
|
||||
curl_setopt($handle, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
|
||||
curl_setopt($handle, CURLOPT_USERPWD, $this->getAuthString());
|
||||
}
|
||||
|
||||
/**
|
||||
* Add extra headers to the request before sending
|
||||
*
|
||||
* @param string $out HTTP header string
|
||||
*/
|
||||
public function fsockopen_header(&$out) {
|
||||
$out .= sprintf("Authorization: Basic %s\r\n", base64_encode($this->getAuthString()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the authentication string (user:pass)
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getAuthString() {
|
||||
return $this->user . ':' . $this->pass;
|
||||
}
|
||||
}
|
|
@ -1,500 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Cookie storage object
|
||||
*
|
||||
* @package Requests
|
||||
* @subpackage Cookies
|
||||
*/
|
||||
|
||||
/**
|
||||
* Cookie storage object
|
||||
*
|
||||
* @package Requests
|
||||
* @subpackage Cookies
|
||||
*/
|
||||
class Requests_Cookie {
|
||||
/**
|
||||
* Cookie name.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $name;
|
||||
|
||||
/**
|
||||
* Cookie value.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $value;
|
||||
|
||||
/**
|
||||
* Cookie attributes
|
||||
*
|
||||
* Valid keys are (currently) path, domain, expires, max-age, secure and
|
||||
* httponly.
|
||||
*
|
||||
* @var Requests_Utility_CaseInsensitiveDictionary|array Array-like object
|
||||
*/
|
||||
public $attributes = array();
|
||||
|
||||
/**
|
||||
* Cookie flags
|
||||
*
|
||||
* Valid keys are (currently) creation, last-access, persistent and
|
||||
* host-only.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $flags = array();
|
||||
|
||||
/**
|
||||
* Reference time for relative calculations
|
||||
*
|
||||
* This is used in place of `time()` when calculating Max-Age expiration and
|
||||
* checking time validity.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $reference_time = 0;
|
||||
|
||||
/**
|
||||
* Create a new cookie object
|
||||
*
|
||||
* @param string $name
|
||||
* @param string $value
|
||||
* @param array|Requests_Utility_CaseInsensitiveDictionary $attributes Associative array of attribute data
|
||||
*/
|
||||
public function __construct($name, $value, $attributes = array(), $flags = array(), $reference_time = null) {
|
||||
$this->name = $name;
|
||||
$this->value = $value;
|
||||
$this->attributes = $attributes;
|
||||
$default_flags = array(
|
||||
'creation' => time(),
|
||||
'last-access' => time(),
|
||||
'persistent' => false,
|
||||
'host-only' => true,
|
||||
);
|
||||
$this->flags = array_merge($default_flags, $flags);
|
||||
|
||||
$this->reference_time = time();
|
||||
if ($reference_time !== null) {
|
||||
$this->reference_time = $reference_time;
|
||||
}
|
||||
|
||||
$this->normalize();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a cookie is expired.
|
||||
*
|
||||
* Checks the age against $this->reference_time to determine if the cookie
|
||||
* is expired.
|
||||
*
|
||||
* @return boolean True if expired, false if time is valid.
|
||||
*/
|
||||
public function is_expired() {
|
||||
// RFC6265, s. 4.1.2.2:
|
||||
// If a cookie has both the Max-Age and the Expires attribute, the Max-
|
||||
// Age attribute has precedence and controls the expiration date of the
|
||||
// cookie.
|
||||
if (isset($this->attributes['max-age'])) {
|
||||
$max_age = $this->attributes['max-age'];
|
||||
return $max_age < $this->reference_time;
|
||||
}
|
||||
|
||||
if (isset($this->attributes['expires'])) {
|
||||
$expires = $this->attributes['expires'];
|
||||
return $expires < $this->reference_time;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a cookie is valid for a given URI
|
||||
*
|
||||
* @param Requests_IRI $uri URI to check
|
||||
* @return boolean Whether the cookie is valid for the given URI
|
||||
*/
|
||||
public function uri_matches(Requests_IRI $uri) {
|
||||
if (!$this->domain_matches($uri->host)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!$this->path_matches($uri->path)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return empty($this->attributes['secure']) || $uri->scheme === 'https';
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a cookie is valid for a given domain
|
||||
*
|
||||
* @param string $string Domain to check
|
||||
* @return boolean Whether the cookie is valid for the given domain
|
||||
*/
|
||||
public function domain_matches($string) {
|
||||
if (!isset($this->attributes['domain'])) {
|
||||
// Cookies created manually; cookies created by Requests will set
|
||||
// the domain to the requested domain
|
||||
return true;
|
||||
}
|
||||
|
||||
$domain_string = $this->attributes['domain'];
|
||||
if ($domain_string === $string) {
|
||||
// The domain string and the string are identical.
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the cookie is marked as host-only and we don't have an exact
|
||||
// match, reject the cookie
|
||||
if ($this->flags['host-only'] === true) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (strlen($string) <= strlen($domain_string)) {
|
||||
// For obvious reasons, the string cannot be a suffix if the domain
|
||||
// is shorter than the domain string
|
||||
return false;
|
||||
}
|
||||
|
||||
if (substr($string, -1 * strlen($domain_string)) !== $domain_string) {
|
||||
// The domain string should be a suffix of the string.
|
||||
return false;
|
||||
}
|
||||
|
||||
$prefix = substr($string, 0, strlen($string) - strlen($domain_string));
|
||||
if (substr($prefix, -1) !== '.') {
|
||||
// The last character of the string that is not included in the
|
||||
// domain string should be a %x2E (".") character.
|
||||
return false;
|
||||
}
|
||||
|
||||
// The string should be a host name (i.e., not an IP address).
|
||||
return !preg_match('#^(.+\.)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$#', $string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a cookie is valid for a given path
|
||||
*
|
||||
* From the path-match check in RFC 6265 section 5.1.4
|
||||
*
|
||||
* @param string $request_path Path to check
|
||||
* @return boolean Whether the cookie is valid for the given path
|
||||
*/
|
||||
public function path_matches($request_path) {
|
||||
if (empty($request_path)) {
|
||||
// Normalize empty path to root
|
||||
$request_path = '/';
|
||||
}
|
||||
|
||||
if (!isset($this->attributes['path'])) {
|
||||
// Cookies created manually; cookies created by Requests will set
|
||||
// the path to the requested path
|
||||
return true;
|
||||
}
|
||||
|
||||
$cookie_path = $this->attributes['path'];
|
||||
|
||||
if ($cookie_path === $request_path) {
|
||||
// The cookie-path and the request-path are identical.
|
||||
return true;
|
||||
}
|
||||
|
||||
if (strlen($request_path) > strlen($cookie_path) && substr($request_path, 0, strlen($cookie_path)) === $cookie_path) {
|
||||
if (substr($cookie_path, -1) === '/') {
|
||||
// The cookie-path is a prefix of the request-path, and the last
|
||||
// character of the cookie-path is %x2F ("/").
|
||||
return true;
|
||||
}
|
||||
|
||||
if (substr($request_path, strlen($cookie_path), 1) === '/') {
|
||||
// The cookie-path is a prefix of the request-path, and the
|
||||
// first character of the request-path that is not included in
|
||||
// the cookie-path is a %x2F ("/") character.
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Normalize cookie and attributes
|
||||
*
|
||||
* @return boolean Whether the cookie was successfully normalized
|
||||
*/
|
||||
public function normalize() {
|
||||
foreach ($this->attributes as $key => $value) {
|
||||
$orig_value = $value;
|
||||
$value = $this->normalize_attribute($key, $value);
|
||||
if ($value === null) {
|
||||
unset($this->attributes[$key]);
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($value !== $orig_value) {
|
||||
$this->attributes[$key] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse an individual cookie attribute
|
||||
*
|
||||
* Handles parsing individual attributes from the cookie values.
|
||||
*
|
||||
* @param string $name Attribute name
|
||||
* @param string|boolean $value Attribute value (string value, or true if empty/flag)
|
||||
* @return mixed Value if available, or null if the attribute value is invalid (and should be skipped)
|
||||
*/
|
||||
protected function normalize_attribute($name, $value) {
|
||||
switch (strtolower($name)) {
|
||||
case 'expires':
|
||||
// Expiration parsing, as per RFC 6265 section 5.2.1
|
||||
if (is_int($value)) {
|
||||
return $value;
|
||||
}
|
||||
|
||||
$expiry_time = strtotime($value);
|
||||
if ($expiry_time === false) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $expiry_time;
|
||||
|
||||
case 'max-age':
|
||||
// Expiration parsing, as per RFC 6265 section 5.2.2
|
||||
if (is_int($value)) {
|
||||
return $value;
|
||||
}
|
||||
|
||||
// Check that we have a valid age
|
||||
if (!preg_match('/^-?\d+$/', $value)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$delta_seconds = (int) $value;
|
||||
if ($delta_seconds <= 0) {
|
||||
$expiry_time = 0;
|
||||
}
|
||||
else {
|
||||
$expiry_time = $this->reference_time + $delta_seconds;
|
||||
}
|
||||
|
||||
return $expiry_time;
|
||||
|
||||
case 'domain':
|
||||
// Domain normalization, as per RFC 6265 section 5.2.3
|
||||
if ($value[0] === '.') {
|
||||
$value = substr($value, 1);
|
||||
}
|
||||
|
||||
return $value;
|
||||
|
||||
default:
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Format a cookie for a Cookie header
|
||||
*
|
||||
* This is used when sending cookies to a server.
|
||||
*
|
||||
* @return string Cookie formatted for Cookie header
|
||||
*/
|
||||
public function format_for_header() {
|
||||
return sprintf('%s=%s', $this->name, $this->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format a cookie for a Cookie header
|
||||
*
|
||||
* @codeCoverageIgnore
|
||||
* @deprecated Use {@see Requests_Cookie::format_for_header}
|
||||
* @return string
|
||||
*/
|
||||
public function formatForHeader() {
|
||||
return $this->format_for_header();
|
||||
}
|
||||
|
||||
/**
|
||||
* Format a cookie for a Set-Cookie header
|
||||
*
|
||||
* This is used when sending cookies to clients. This isn't really
|
||||
* applicable to client-side usage, but might be handy for debugging.
|
||||
*
|
||||
* @return string Cookie formatted for Set-Cookie header
|
||||
*/
|
||||
public function format_for_set_cookie() {
|
||||
$header_value = $this->format_for_header();
|
||||
if (!empty($this->attributes)) {
|
||||
$parts = array();
|
||||
foreach ($this->attributes as $key => $value) {
|
||||
// Ignore non-associative attributes
|
||||
if (is_numeric($key)) {
|
||||
$parts[] = $value;
|
||||
}
|
||||
else {
|
||||
$parts[] = sprintf('%s=%s', $key, $value);
|
||||
}
|
||||
}
|
||||
|
||||
$header_value .= '; ' . implode('; ', $parts);
|
||||
}
|
||||
return $header_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Format a cookie for a Set-Cookie header
|
||||
*
|
||||
* @codeCoverageIgnore
|
||||
* @deprecated Use {@see Requests_Cookie::format_for_set_cookie}
|
||||
* @return string
|
||||
*/
|
||||
public function formatForSetCookie() {
|
||||
return $this->format_for_set_cookie();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the cookie value
|
||||
*
|
||||
* Attributes and other data can be accessed via methods.
|
||||
*/
|
||||
public function __toString() {
|
||||
return $this->value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse a cookie string into a cookie object
|
||||
*
|
||||
* Based on Mozilla's parsing code in Firefox and related projects, which
|
||||
* is an intentional deviation from RFC 2109 and RFC 2616. RFC 6265
|
||||
* specifies some of this handling, but not in a thorough manner.
|
||||
*
|
||||
* @param string Cookie header value (from a Set-Cookie header)
|
||||
* @return Requests_Cookie Parsed cookie object
|
||||
*/
|
||||
public static function parse($string, $name = '', $reference_time = null) {
|
||||
$parts = explode(';', $string);
|
||||
$kvparts = array_shift($parts);
|
||||
|
||||
if (!empty($name)) {
|
||||
$value = $string;
|
||||
}
|
||||
elseif (strpos($kvparts, '=') === false) {
|
||||
// Some sites might only have a value without the equals separator.
|
||||
// Deviate from RFC 6265 and pretend it was actually a blank name
|
||||
// (`=foo`)
|
||||
//
|
||||
// https://bugzilla.mozilla.org/show_bug.cgi?id=169091
|
||||
$name = '';
|
||||
$value = $kvparts;
|
||||
}
|
||||
else {
|
||||
list($name, $value) = explode('=', $kvparts, 2);
|
||||
}
|
||||
$name = trim($name);
|
||||
$value = trim($value);
|
||||
|
||||
// Attribute key are handled case-insensitively
|
||||
$attributes = new Requests_Utility_CaseInsensitiveDictionary();
|
||||
|
||||
if (!empty($parts)) {
|
||||
foreach ($parts as $part) {
|
||||
if (strpos($part, '=') === false) {
|
||||
$part_key = $part;
|
||||
$part_value = true;
|
||||
}
|
||||
else {
|
||||
list($part_key, $part_value) = explode('=', $part, 2);
|
||||
$part_value = trim($part_value);
|
||||
}
|
||||
|
||||
$part_key = trim($part_key);
|
||||
$attributes[$part_key] = $part_value;
|
||||
}
|
||||
}
|
||||
|
||||
return new Requests_Cookie($name, $value, $attributes, array(), $reference_time);
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse all Set-Cookie headers from request headers
|
||||
*
|
||||
* @param Requests_Response_Headers $headers Headers to parse from
|
||||
* @param Requests_IRI|null $origin URI for comparing cookie origins
|
||||
* @param int|null $time Reference time for expiration calculation
|
||||
* @return array
|
||||
*/
|
||||
public static function parse_from_headers(Requests_Response_Headers $headers, Requests_IRI $origin = null, $time = null) {
|
||||
$cookie_headers = $headers->getValues('Set-Cookie');
|
||||
if (empty($cookie_headers)) {
|
||||
return array();
|
||||
}
|
||||
|
||||
$cookies = array();
|
||||
foreach ($cookie_headers as $header) {
|
||||
$parsed = self::parse($header, '', $time);
|
||||
|
||||
// Default domain/path attributes
|
||||
if (empty($parsed->attributes['domain']) && !empty($origin)) {
|
||||
$parsed->attributes['domain'] = $origin->host;
|
||||
$parsed->flags['host-only'] = true;
|
||||
}
|
||||
else {
|
||||
$parsed->flags['host-only'] = false;
|
||||
}
|
||||
|
||||
$path_is_valid = (!empty($parsed->attributes['path']) && $parsed->attributes['path'][0] === '/');
|
||||
if (!$path_is_valid && !empty($origin)) {
|
||||
$path = $origin->path;
|
||||
|
||||
// Default path normalization as per RFC 6265 section 5.1.4
|
||||
if (substr($path, 0, 1) !== '/') {
|
||||
// If the uri-path is empty or if the first character of
|
||||
// the uri-path is not a %x2F ("/") character, output
|
||||
// %x2F ("/") and skip the remaining steps.
|
||||
$path = '/';
|
||||
}
|
||||
elseif (substr_count($path, '/') === 1) {
|
||||
// If the uri-path contains no more than one %x2F ("/")
|
||||
// character, output %x2F ("/") and skip the remaining
|
||||
// step.
|
||||
$path = '/';
|
||||
}
|
||||
else {
|
||||
// Output the characters of the uri-path from the first
|
||||
// character up to, but not including, the right-most
|
||||
// %x2F ("/").
|
||||
$path = substr($path, 0, strrpos($path, '/'));
|
||||
}
|
||||
$parsed->attributes['path'] = $path;
|
||||
}
|
||||
|
||||
// Reject invalid cookie domains
|
||||
if (!empty($origin) && !$parsed->domain_matches($origin->host)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$cookies[$parsed->name] = $parsed;
|
||||
}
|
||||
|
||||
return $cookies;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse all Set-Cookie headers from request headers
|
||||
*
|
||||
* @codeCoverageIgnore
|
||||
* @deprecated Use {@see Requests_Cookie::parse_from_headers}
|
||||
* @return string
|
||||
*/
|
||||
public static function parseFromHeaders(Requests_Response_Headers $headers) {
|
||||
return self::parse_from_headers($headers);
|
||||
}
|
||||
}
|
|
@ -1,175 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Cookie holder object
|
||||
*
|
||||
* @package Requests
|
||||
* @subpackage Cookies
|
||||
*/
|
||||
|
||||
/**
|
||||
* Cookie holder object
|
||||
*
|
||||
* @package Requests
|
||||
* @subpackage Cookies
|
||||
*/
|
||||
class Requests_Cookie_Jar implements ArrayAccess, IteratorAggregate {
|
||||
/**
|
||||
* Actual item data
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $cookies = array();
|
||||
|
||||
/**
|
||||
* Create a new jar
|
||||
*
|
||||
* @param array $cookies Existing cookie values
|
||||
*/
|
||||
public function __construct($cookies = array()) {
|
||||
$this->cookies = $cookies;
|
||||
}
|
||||
|
||||
/**
|
||||
* Normalise cookie data into a Requests_Cookie
|
||||
*
|
||||
* @param string|Requests_Cookie $cookie
|
||||
* @return Requests_Cookie
|
||||
*/
|
||||
public function normalize_cookie($cookie, $key = null) {
|
||||
if ($cookie instanceof Requests_Cookie) {
|
||||
return $cookie;
|
||||
}
|
||||
|
||||
return Requests_Cookie::parse($cookie, $key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Normalise cookie data into a Requests_Cookie
|
||||
*
|
||||
* @codeCoverageIgnore
|
||||
* @deprecated Use {@see Requests_Cookie_Jar::normalize_cookie}
|
||||
* @return Requests_Cookie
|
||||
*/
|
||||
public function normalizeCookie($cookie, $key = null) {
|
||||
return $this->normalize_cookie($cookie, $key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the given item exists
|
||||
*
|
||||
* @param string $key Item key
|
||||
* @return boolean Does the item exist?
|
||||
*/
|
||||
public function offsetExists($key) {
|
||||
return isset($this->cookies[$key]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the value for the item
|
||||
*
|
||||
* @param string $key Item key
|
||||
* @return string Item value
|
||||
*/
|
||||
public function offsetGet($key) {
|
||||
if (!isset($this->cookies[$key])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $this->cookies[$key];
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the given item
|
||||
*
|
||||
* @throws Requests_Exception On attempting to use dictionary as list (`invalidset`)
|
||||
*
|
||||
* @param string $key Item name
|
||||
* @param string $value Item value
|
||||
*/
|
||||
public function offsetSet($key, $value) {
|
||||
if ($key === null) {
|
||||
throw new Requests_Exception('Object is a dictionary, not a list', 'invalidset');
|
||||
}
|
||||
|
||||
$this->cookies[$key] = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Unset the given header
|
||||
*
|
||||
* @param string $key
|
||||
*/
|
||||
public function offsetUnset($key) {
|
||||
unset($this->cookies[$key]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get an iterator for the data
|
||||
*
|
||||
* @return ArrayIterator
|
||||
*/
|
||||
public function getIterator() {
|
||||
return new ArrayIterator($this->cookies);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the cookie handler with the request's hooking system
|
||||
*
|
||||
* @param Requests_Hooker $hooks Hooking system
|
||||
*/
|
||||
public function register(Requests_Hooker $hooks) {
|
||||
$hooks->register('requests.before_request', array($this, 'before_request'));
|
||||
$hooks->register('requests.before_redirect_check', array($this, 'before_redirect_check'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Add Cookie header to a request if we have any
|
||||
*
|
||||
* As per RFC 6265, cookies are separated by '; '
|
||||
*
|
||||
* @param string $url
|
||||
* @param array $headers
|
||||
* @param array $data
|
||||
* @param string $type
|
||||
* @param array $options
|
||||
*/
|
||||
public function before_request($url, &$headers, &$data, &$type, &$options) {
|
||||
if (!$url instanceof Requests_IRI) {
|
||||
$url = new Requests_IRI($url);
|
||||
}
|
||||
|
||||
if (!empty($this->cookies)) {
|
||||
$cookies = array();
|
||||
foreach ($this->cookies as $key => $cookie) {
|
||||
$cookie = $this->normalize_cookie($cookie, $key);
|
||||
|
||||
// Skip expired cookies
|
||||
if ($cookie->is_expired()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($cookie->domain_matches($url->host)) {
|
||||
$cookies[] = $cookie->format_for_header();
|
||||
}
|
||||
}
|
||||
|
||||
$headers['Cookie'] = implode('; ', $cookies);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse all cookies from a response and attach them to the response
|
||||
*
|
||||
* @var Requests_Response $response
|
||||
*/
|
||||
public function before_redirect_check(Requests_Response &$return) {
|
||||
$url = $return->url;
|
||||
if (!$url instanceof Requests_IRI) {
|
||||
$url = new Requests_IRI($url);
|
||||
}
|
||||
|
||||
$cookies = Requests_Cookie::parse_from_headers($return->headers, $url);
|
||||
$this->cookies = array_merge($this->cookies, $cookies);
|
||||
$return->cookies = $this;
|
||||
}
|
||||
}
|
|
@ -1,62 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for HTTP requests
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for HTTP requests
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception extends Exception {
|
||||
/**
|
||||
* Type of exception
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $type;
|
||||
|
||||
/**
|
||||
* Data associated with the exception
|
||||
*
|
||||
* @var mixed
|
||||
*/
|
||||
protected $data;
|
||||
|
||||
/**
|
||||
* Create a new exception
|
||||
*
|
||||
* @param string $message Exception message
|
||||
* @param string $type Exception type
|
||||
* @param mixed $data Associated data
|
||||
* @param integer $code Exception numerical code, if applicable
|
||||
*/
|
||||
public function __construct($message, $type, $data = null, $code = 0) {
|
||||
parent::__construct($message, $code);
|
||||
|
||||
$this->type = $type;
|
||||
$this->data = $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Like {@see getCode()}, but a string code.
|
||||
*
|
||||
* @codeCoverageIgnore
|
||||
* @return string
|
||||
*/
|
||||
public function getType() {
|
||||
return $this->type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gives any relevant data
|
||||
*
|
||||
* @codeCoverageIgnore
|
||||
* @return mixed
|
||||
*/
|
||||
public function getData() {
|
||||
return $this->data;
|
||||
}
|
||||
}
|
|
@ -1,71 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception based on HTTP response
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception based on HTTP response
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP extends Requests_Exception {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 0;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Unknown';
|
||||
|
||||
/**
|
||||
* Create a new exception
|
||||
*
|
||||
* There is no mechanism to pass in the status code, as this is set by the
|
||||
* subclass used. Reason phrases can vary, however.
|
||||
*
|
||||
* @param string|null $reason Reason phrase
|
||||
* @param mixed $data Associated data
|
||||
*/
|
||||
public function __construct($reason = null, $data = null) {
|
||||
if ($reason !== null) {
|
||||
$this->reason = $reason;
|
||||
}
|
||||
|
||||
$message = sprintf('%d %s', $this->code, $this->reason);
|
||||
parent::__construct($message, 'httpresponse', $data, $this->code);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the status message
|
||||
*/
|
||||
public function getReason() {
|
||||
return $this->reason;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the correct exception class for a given error code
|
||||
*
|
||||
* @param int|bool $code HTTP status code, or false if unavailable
|
||||
* @return string Exception class name to use
|
||||
*/
|
||||
public static function get_class($code) {
|
||||
if (!$code) {
|
||||
return 'Requests_Exception_HTTP_Unknown';
|
||||
}
|
||||
|
||||
$class = sprintf('Requests_Exception_HTTP_%d', $code);
|
||||
if (class_exists($class)) {
|
||||
return $class;
|
||||
}
|
||||
|
||||
return 'Requests_Exception_HTTP_Unknown';
|
||||
}
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 304 Not Modified responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 304 Not Modified responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_304 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 304;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Not Modified';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 305 Use Proxy responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 305 Use Proxy responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_305 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 305;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Use Proxy';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 306 Switch Proxy responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 306 Switch Proxy responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_306 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 306;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Switch Proxy';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 400 Bad Request responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 400 Bad Request responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_400 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 400;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Bad Request';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 401 Unauthorized responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 401 Unauthorized responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_401 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 401;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Unauthorized';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 402 Payment Required responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 402 Payment Required responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_402 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 402;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Payment Required';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 403 Forbidden responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 403 Forbidden responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_403 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 403;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Forbidden';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 404 Not Found responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 404 Not Found responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_404 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 404;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Not Found';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 405 Method Not Allowed responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 405 Method Not Allowed responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_405 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 405;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Method Not Allowed';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 406 Not Acceptable responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 406 Not Acceptable responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_406 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 406;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Not Acceptable';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 407 Proxy Authentication Required responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 407 Proxy Authentication Required responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_407 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 407;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Proxy Authentication Required';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 408 Request Timeout responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 408 Request Timeout responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_408 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 408;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Request Timeout';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 409 Conflict responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 409 Conflict responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_409 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 409;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Conflict';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 410 Gone responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 410 Gone responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_410 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 410;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Gone';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 411 Length Required responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 411 Length Required responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_411 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 411;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Length Required';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 412 Precondition Failed responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 412 Precondition Failed responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_412 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 412;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Precondition Failed';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 413 Request Entity Too Large responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 413 Request Entity Too Large responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_413 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 413;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Request Entity Too Large';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 414 Request-URI Too Large responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 414 Request-URI Too Large responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_414 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 414;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Request-URI Too Large';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 415 Unsupported Media Type responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 415 Unsupported Media Type responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_415 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 415;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Unsupported Media Type';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 416 Requested Range Not Satisfiable responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 416 Requested Range Not Satisfiable responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_416 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 416;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Requested Range Not Satisfiable';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 417 Expectation Failed responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 417 Expectation Failed responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_417 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 417;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Expectation Failed';
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 418 I'm A Teapot responses
|
||||
*
|
||||
* @see https://tools.ietf.org/html/rfc2324
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 418 I'm A Teapot responses
|
||||
*
|
||||
* @see https://tools.ietf.org/html/rfc2324
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_418 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 418;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = "I'm A Teapot";
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 428 Precondition Required responses
|
||||
*
|
||||
* @see https://tools.ietf.org/html/rfc6585
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 428 Precondition Required responses
|
||||
*
|
||||
* @see https://tools.ietf.org/html/rfc6585
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_428 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 428;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Precondition Required';
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 429 Too Many Requests responses
|
||||
*
|
||||
* @see https://tools.ietf.org/html/draft-nottingham-http-new-status-04
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 429 Too Many Requests responses
|
||||
*
|
||||
* @see https://tools.ietf.org/html/draft-nottingham-http-new-status-04
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_429 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 429;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Too Many Requests';
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 431 Request Header Fields Too Large responses
|
||||
*
|
||||
* @see https://tools.ietf.org/html/rfc6585
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 431 Request Header Fields Too Large responses
|
||||
*
|
||||
* @see https://tools.ietf.org/html/rfc6585
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_431 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 431;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Request Header Fields Too Large';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 500 Internal Server Error responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 500 Internal Server Error responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_500 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 500;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Internal Server Error';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 501 Not Implemented responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 501 Not Implemented responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_501 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 501;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Not Implemented';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 502 Bad Gateway responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 502 Bad Gateway responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_502 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 502;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Bad Gateway';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 503 Service Unavailable responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 503 Service Unavailable responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_503 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 503;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Service Unavailable';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 504 Gateway Timeout responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 504 Gateway Timeout responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_504 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 504;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Gateway Timeout';
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 505 HTTP Version Not Supported responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 505 HTTP Version Not Supported responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_505 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 505;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'HTTP Version Not Supported';
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for 511 Network Authentication Required responses
|
||||
*
|
||||
* @see https://tools.ietf.org/html/rfc6585
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for 511 Network Authentication Required responses
|
||||
*
|
||||
* @see https://tools.ietf.org/html/rfc6585
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_511 extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
protected $code = 511;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Network Authentication Required';
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Exception for unknown status responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
|
||||
/**
|
||||
* Exception for unknown status responses
|
||||
*
|
||||
* @package Requests
|
||||
*/
|
||||
class Requests_Exception_HTTP_Unknown extends Requests_Exception_HTTP {
|
||||
/**
|
||||
* HTTP status code
|
||||
*
|
||||
* @var integer|bool Code if available, false if an error occurred
|
||||
*/
|
||||
protected $code = 0;
|
||||
|
||||
/**
|
||||
* Reason phrase
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $reason = 'Unknown';
|
||||
|
||||
/**
|
||||
* Create a new exception
|
||||
*
|
||||
* If `$data` is an instance of {@see Requests_Response}, uses the status
|
||||
* code from it. Otherwise, sets as 0
|
||||
*
|
||||
* @param string|null $reason Reason phrase
|
||||
* @param mixed $data Associated data
|
||||
*/
|
||||
public function __construct($reason = null, $data = null) {
|
||||
if ($data instanceof Requests_Response) {
|
||||
$this->code = $data->status_code;
|
||||
}
|
||||
|
||||
parent::__construct($reason, $data);
|
||||
}
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
<?php
|
||||
|
||||
class Requests_Exception_Transport extends Requests_Exception {
|
||||
|
||||
}
|