mirror of
https://github.com/simple-login/app.git
synced 2024-09-08 03:11:30 +02:00
register page redirect user to dashboard if they are logged in enable csrf for login page Set models more strict bootstrap developer page add helper method to ModelMixin, remove CRUDMixin display list of clients on developer index, add copy client-secret to clipboard using clipboardjs add toastr and use jquery non slim display a toast when user copies the client-secret create new client, generate client-id using unidecode client detail page: can edit client add delete client implement /oauth/authorize and /oauth/allow-deny implement /oauth/token add /oauth/user_info endpoint handle scopes: wip take into account scope: display scope, return user data according to scope create virtual-domain, gen email, client_user model WIP create authorize_nonlogin_user page user can choose to generate a new email no need to interfere with root logger log for before and after request if user has already allowed a client: generate a auth-code and redirect user to client get_user_info takes into account gen email display list of clients that have user has authorised use yk-client domain instead of localhost as cookie depends on the domain name use wtforms instead of flask_wtf Dockerfile delete virtual domain EMAIL_DOMAIN can come from env var bind to host 0.0.0.0 fix signup error: use session as default csrf_context rename yourkey to simplelogin add python-dotenv, ipython, sqlalchemy_utils create DB_URI, FLASK_SECRET. Load config from CONFIG file if exist add shortcuts to logging create shell add psycopg2 do not add local data in Dockerfile add drop_db into shell add shell.prepare_db() fix prepare_db setup sentry copy assets from tabler/dist add icon downloaded from https://commons.wikimedia.org/wiki/File:Simpleicons_Interface_key-tool-1.svg integrate tabler - login and register page add favicon template: default, header. Use gravatar for user avatar url use default template for dashboard, developer page use another icon add clipboard and notie prettify dashboard add notie css add fake gen email and client-user prettify list client page, use notie for toast add email, name scope to new client display client scope in client list prettify new-client, client-detail add sentry-sdk and blinker add arrow, add dt jinja filter, prettify logout, dashboard comment "last used" in dashboard for now prettify date display add copy email to clipboard to dashboard use "users" as table name for User as "user" is reserved key in postgres call prepare_db() when creating new db error page 400, 401, 403, 404 prettify authorize_login_user create already_authorize.html for user who has already authorized a client user can generate new email display all other generated emails add ENV variable, only reset DB when ENV=local fix: not return other users gen emails display nb users for each client refactor shell: remove prepare_db() add sendgrid add /favicon.ico route add new config: URL, SUPPORT_EMAIL, SENDGRID_API_KEY user needs to activate their account before login create copy button on dashboard client can have multiple redirect uris, in client detail can add/remove redirect-uri, use redirect_uri passed in /authorize refactor: move get_user_info into ClientUser model dashboard: display all apps, all generated emails add "id" into user_info add trigger email button invalidate the session at each new version by changing the secret centralize Client creation into Client.create_new user can enable/disable email forwarding setup auto dismiss alert: just add .alert-auto-dismiss move name down in register form add shell.add_real_data move blueprint template to its own package prettify authorize page for non-authenticated user update readme, return error if not redirect_uri add flask-wtf, use psycopg2-binary use flask-wtf FlaskForm instead of Form rename email -> email_utils add AWS_REGION, BUCKET, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY to config add s3 module add File model, add Client.icon_id handle client icon update can create client with icon display client icon in client list page add Client.home_url take into account Client.home_url add boto3 register: ask name first only show "trigger test email" if email forwarding is enabled display gen email in alphabetical order, client in client.name alphabetical order better error page the modal does not get close when user clicks outside of modal add Client.published column discover page that displays all published Client add missing bootstrap.bundle.min.js.map developer can publish/unpublish their app in discover use notie for display flash message create hotmail account fix missing jquery add footer, add global jinja2 variable strengthen model: use nullable=False whenever possible, rename client_id to oauth_client_id, client_secret to oauth_client_secret add flask-migrate init migrate 1st migrate version fix rename client_id -> oauth_client_id prettify UI use flask_migrate.upgrade() instead of db.create_all() make sure requirejs.config is called for all page enable sentry for js, use uppercase for global jinja2 variables add flask-admin add User.is_admin column setup flask admin, only accessible to admin user fix migration: add server_default replace session[redirect_after_login] by "next" request args add pyproject.toml: ignore migrations/ in black add register waiting_activation_email page better email wording add pytest add get_host_name_and_scheme and tests example fail test fix test fix client-id display add flask-cors /user_info supports cors, add /me as /user_info synonym return client in /me support implicit flow no need to use with "app.app_context()" add watchtower to requirement add param ENABLE_CLOUDWATCH, CLOUDWATCH_LOG_GROUP, CLOUDWATCH_LOG_STREAM add cloudwatch logger if cloudwatch is enabled add 500 error page add help text for list of used client display list of app/website that an email has been used click on client name brings to client detail page create style.css to add additional style, append its url with the current sha1 to avoid cache POC on how to send email using postfix add sqlalchemy-utils use arrow instead of datetime add new params STRIPE_API, STRIPE_YEARLY_SKU, STRIPE_MONTHLY_PLAN show full error in local add plan, plan_expiration to User, need to create enum directly in migration script, cf https://github.com/sqlalchemy/alembic/issues/67 reformat all html files: use space instead of tab new user will have trial plan for 15 days add new param MAX_NB_EMAIL_FREE_PLAN only user with enough quota can create new email if user cannot create new gen email, pick randomly one from existing gen emails. Use flush instead of commit rename STRIPE_YEARLY_SKU -> STRIPE_YEARLY_PLAN open client page in discover in a new tab add stripe not logging /static call: disable flask logging, replace by after_request add param STRIPE_SECRET_KEY add 3 columns stripe_customer_id, stripe_card_token, stripe_subscription_id user can upgrade their pricing add setting page as coming-soon add GenEmail, ClientUser to admin ignore /admin/static logging add more fake data add ondelete="cascade" whenever possible rename plan_expiration -> trial_expiration reset migration: delete old migrations, create new one rename test_send_email -> poc_send_email to avoid the file being called by pytest add new param LYRA_ANALYTICS_ID, add lyra analytics add how to create new migration into readme add drift to base.html notify admin when new user signs up or pays subscription log exception in case of 500 use sendgrid to notify admin add alias /userinfo to user_info endpoint add change_password to shell add info on how payment is handled invite user to retry if card not working remove drift and add "contact us" link move poc_send_email into poc/ support getting client-id, client-secret from form-data in addition to basic auth client-id, client-secret is passed in form-data by passport-oauth2 for ex add jwtRS256 private and public key add jwk-jws-jwt poc add new param OPENID_PRIVATE_KEY_PATH, OPENID_PRIVATE_KEY_PATH add scope, redirect_url to AuthorizationCode and OauthToken take into scope when creating oauth-token, authorization-code add jwcrypto add jose_utils: make_id_token and verify_id_token add &scope to redirect uri add "email_verified": True into user_info fix user not activated add /oauth2 as alias for /oauth handle case where scope and state are empty remove threaded=False Use Email Alias as wording remove help text user can re-send activation email add "expired" into ActivationCode Handle the case activation code is expired reformat: use form.validate_on_submit instead of request.method == post && form.validate use error text instead of flash() display client oauth-id and oauth-secret on client detail page not display oauth-secret on client listing fix expiration check improve page title, footer add /jwks and /.well-known/openid-configuration init properly tests, fix blueprint conflict bug in flask-admin create oauth_models module rename Scope -> ScopeE to distinguish with Scope DB model set app.url_map.strict_slashes = False use ScopeE instead of SCOPE_NAME, ... support access_token passed as args in /userinfo merge /allow-deny into /authorize improve wording take into account the case response_type=code and openid is in scope take into account response_type=id_token, id_token token, id_token code make sure to use in-memory db in test fix scope can be null allow cross_origin for /.well-known/openid-configuration and /jwks fix footer link center authorize form rename trial_expiration to plan_expiration move stripe init to create_app() use real email to be able to receive email notification add user.profile_picture_id column use user profile picture and fallback to gravatar use nguyenkims+local@gm to distinguish with staging handle plan cancel, reactivation, user profile update fix can_create_new_email create cron.py that set plan to free when expired add crontab.yml add yacron use notify_admin instead of LOG.error add ResetPasswordCode model user can change password in setting increase display time for notie add forgot_password page If login error: redirect to this page upon success login. hide discover tab add column user.is_developer only show developer menu to developer comment out the publish button set local user to developer make sure only developer can access /developer blueprint User is invited to upgrade if they are in free plan or their trial ends soon not sending email when in local mode create Partner model create become partner page use normal error handling on local fix migration add "import sqlalchemy_utils" into migration template small refactoring on setting page handle promo code. TODO: add migration file add migration for user.promo_codes move email alias on top of apps in dashboard add introjs move encode_url to utils create GenEmail.create_new_gen_email create a first alias mail to show user how to use when they login show intro when user visits the website the first time fix register
1 line
30 KiB
XML
Executable File
1 line
30 KiB
XML
Executable File
<svg width="100" height="60" viewBox="0 0 100 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Sepa-dark</title><desc>Created with Sketch.</desc><g id="Dark-Payment-badges" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-130.000000, -489.000000)"><g id="Sepa-dark" transform="translate(130.000000, 489.000000)"><rect id="Rectangle" fill="#0B4A8E" x="0" y="0" width="100" height="60" rx="4"/><path d="M13.0407682,40.5805688 L13.7784106,40.5061468 C13.822755,40.7549358 13.9128742,40.9374128 14.0485298,41.0542936 C14.1844238,41.1709358 14.3675232,41.2291376 14.5980662,41.2291376 C14.8421987,41.2291376 15.0260132,41.1773761 15.1499868,41.0738532 C15.2737219,40.9700917 15.3354702,40.8489174 15.3354702,40.7100917 C15.3354702,40.6211193 15.3094834,40.5455046 15.2577483,40.4827706 C15.2057748,40.4202752 15.1151788,40.3661284 14.9857219,40.3196147 C14.8970331,40.2893211 14.6953377,40.2349358 14.3803974,40.1566972 C13.9748609,40.0565138 13.6906755,39.9329541 13.5271258,39.7862569 C13.297298,39.5801651 13.1823841,39.3287523 13.1823841,39.0320183 C13.1823841,38.8414312 13.2365033,38.6627706 13.3449801,38.4967523 C13.4532185,38.3304954 13.6096159,38.2038349 13.813457,38.1170092 C14.0175364,38.0301835 14.2638146,37.9865321 14.5522914,37.9865321 C15.0233907,37.9865321 15.3779073,38.0902936 15.6160795,38.2973394 C15.8542517,38.5046239 15.9791788,38.7810826 15.9910993,39.1269541 L15.2312848,39.1567706 C15.1988609,38.9635596 15.129245,38.8247339 15.0224371,38.7398165 C14.9158675,38.6551376 14.755894,38.6126789 14.5425166,38.6126789 C14.3222252,38.6126789 14.1500927,38.658 14.025404,38.7486422 C13.9450596,38.8066055 13.9050066,38.884367 13.9050066,38.9816881 C13.9050066,39.0706606 13.9426755,39.1465138 14.0177748,39.2099633 C14.1131391,39.2901101 14.3451126,39.3738349 14.7136954,39.460422 C15.0820397,39.5472477 15.354543,39.6371743 15.5312053,39.7306789 C15.7076291,39.823945 15.8459073,39.9515596 15.9458013,40.1132844 C16.045457,40.2754862 16.0955232,40.4753761 16.0955232,40.7134312 C16.0955232,40.9295413 16.0356821,41.131578 15.916,41.3200183 C15.7963179,41.5084587 15.6272848,41.6484771 15.4086623,41.7400734 C15.1900397,41.8316697 14.9175364,41.8777064 14.5911523,41.8777064 C14.1162384,41.8777064 13.7514702,41.7672661 13.4968477,41.5463853 C13.2424636,41.3255046 13.0903576,41.0037248 13.0407682,40.5805688" id="Fill-1" fill="#FFF"/><path d="M16.8829934,39.0897431 L17.6056159,39.0897431 L17.6056159,41.8104404 L16.8829934,41.8104404 L16.8829934,39.0897431 Z M16.8829934,38.0535596 L17.6056159,38.0535596 L17.6056159,38.717156 L16.8829934,38.717156 L16.8829934,38.0535596 Z" id="Fill-2" fill="#FFF"/><path d="M20.9784106,41.8104404 L20.2557881,41.8104404 L20.2557881,40.418844 C20.2557881,40.1244954 20.2402914,39.9341468 20.2097748,39.8477982 C20.1790199,39.7614495 20.1294305,39.693945 20.0605298,39.646 C19.9916291,39.5982936 19.9086623,39.5742018 19.8118675,39.5742018 C19.6876556,39.5742018 19.5763179,39.6085505 19.4776159,39.6770092 C19.3789139,39.7454679 19.3114437,39.8361101 19.2749669,39.9491743 C19.2382517,40.062 19.2201325,40.2707156 19.2201325,40.5755596 L19.2201325,41.8104404 L18.4975099,41.8104404 L18.4975099,39.0897431 L19.1679205,39.0897431 L19.1679205,39.4895229 C19.4051391,39.1782385 19.704106,39.0227156 20.064106,39.0227156 C20.2228874,39.0227156 20.3680795,39.051578 20.4994437,39.1088257 C20.6308079,39.1660734 20.7302252,39.2393028 20.7976954,39.3282752 C20.8651656,39.4172477 20.9121325,39.5181468 20.938596,39.631211 C20.9650596,39.7440367 20.9784106,39.9057615 20.9784106,40.1161468 L20.9784106,41.8104404" id="Fill-3" fill="#FFF"/><path d="M22.4398675,40.3914128 C22.4398675,40.6809908 22.4951788,40.8930459 22.6062781,41.0273394 C22.7171391,41.1621101 22.8539868,41.2291376 23.0168212,41.2291376 C23.1910993,41.2291376 23.3384371,41.1602018 23.4588344,41.0223303 C23.5789934,40.8844587 23.6393113,40.6800367 23.6393113,40.4093028 C23.6393113,40.1268807 23.5816159,39.9169725 23.4664636,39.7798165 C23.3510728,39.6428991 23.2056424,39.5742018 23.029457,39.5742018 C22.8582781,39.5742018 22.7171391,39.6417064 22.6062781,39.776 C22.4951788,39.9107706 22.4398675,40.1156697 22.4398675,40.3914128 L22.4398675,40.3914128 Z M21.7916291,41.9893394 L22.6110464,42.078789 C22.6248742,42.1801651 22.6565828,42.2498165 22.7061722,42.2879817 C22.7748344,42.342367 22.8828344,42.3695596 23.0301722,42.3695596 C23.218755,42.3695596 23.3601325,42.3414128 23.454543,42.2851193 C23.5177219,42.2474312 23.5658808,42.186844 23.598543,42.1031193 C23.6207152,42.0430092 23.6319205,41.9330459 23.6319205,41.7722752 L23.6340662,41.3751193 C23.4209272,41.6654128 23.1505695,41.8104404 22.8225166,41.8104404 C22.4565563,41.8104404 22.1671258,41.6558716 21.9535099,41.3460183 C21.7859073,41.1012844 21.7022252,40.7964404 21.7022252,40.4319633 C21.7022252,39.9749358 21.811894,39.6259633 22.0314702,39.3845688 C22.2510464,39.1434128 22.5242649,39.0227156 22.850649,39.0227156 C23.1872848,39.0227156 23.4650331,39.170844 23.683894,39.4666239 L23.683894,39.0897431 L24.354543,39.0897431 L24.354543,41.5354128 C24.354543,41.8571927 24.3280795,42.097633 24.2749139,42.2564954 C24.2219868,42.4158349 24.1476026,42.5405872 24.0517616,42.6312294 C23.9559205,42.7218716 23.8281325,42.7929541 23.6681589,42.8442385 C23.5081854,42.8955229 23.3060132,42.9212844 23.0616424,42.9212844 C22.5998411,42.9212844 22.2722649,42.8416147 22.0789139,42.6825138 C21.8855629,42.5234128 21.7890066,42.3216147 21.7890066,42.0771193 C21.7890066,42.0530275 21.7899603,42.0239266 21.7916291,41.9893394 L21.7916291,41.9893394 Z" id="Fill-4" fill="#FFF"/><polygon id="Fill-5" fill="#FFF" points="25.2199735 38.0535596 25.942596 38.0535596 25.942596 41.8104404 25.2199735 41.8104404"/><path d="M28.458543,40.2227706 C28.4535364,40.0109541 28.3994172,39.8501835 28.2961854,39.7397431 C28.1931921,39.6295413 28.0677881,39.5742018 27.9199735,39.5742018 C27.7619073,39.5742018 27.6312583,39.6326422 27.5282649,39.7488073 C27.4250331,39.8649725 27.3744901,40.0231193 27.3761589,40.2227706 L28.458543,40.2227706 L28.458543,40.2227706 Z M28.421351,40.9533945 L29.1365828,41.0726606 C29.0440795,41.3348073 28.8979338,41.5346972 28.6983841,41.6718532 C28.4988344,41.8092477 28.2489801,41.8777064 27.949298,41.8777064 C27.4746225,41.8777064 27.1234437,41.722422 26.8957616,41.4120917 C26.7157616,41.1635413 26.6258808,40.8498716 26.6258808,40.4706055 C26.6258808,40.0183486 26.743894,39.6636514 26.9803974,39.4072294 C27.2166623,39.1508073 27.5153907,39.0227156 27.8765828,39.0227156 C28.282596,39.0227156 28.6027815,39.1572477 28.8373775,39.4260734 C29.0719735,39.6953761 29.1840265,40.1073211 29.1737748,40.6626239 L27.3635232,40.6626239 C27.3685298,40.8768257 27.4271788,41.0433211 27.5392318,41.1625872 C27.6512848,41.2813761 27.7909934,41.3410092 27.9583576,41.3410092 C28.0720795,41.3410092 28.1679205,41.3104771 28.245404,41.2491743 C28.3228874,41.1881101 28.3817748,41.0893578 28.421351,40.9533945 L28.421351,40.9533945 Z" id="Fill-6" fill="#FFF"/><polyline id="Fill-7" fill="#FFF" points="31.5383311 41.8104404 31.5383311 38.0535596 34.3174834 38.0535596 34.3174834 38.6873394 32.2983841 38.6873394 32.2983841 39.5222018 34.1758675 39.5222018 34.1758675 40.1557431 32.2983841 40.1557431 32.2983841 41.1768991 34.3918675 41.1768991 34.3918675 41.8104404 31.5383311 41.8104404"/><path d="M36.9748079,41.8104404 L36.9748079,41.4030275 C36.8753907,41.5482936 36.7449801,41.6637431 36.5830993,41.7493761 C36.4212185,41.8347706 36.2505166,41.8777064 36.070755,41.8777064 C35.8874172,41.8777064 35.7233907,41.8373945 35.5777219,41.7570092 C35.4322914,41.6766239 35.3269139,41.5635596 35.2618278,41.4182936 C35.1967417,41.272789 35.1643179,41.0717064 35.1643179,40.8150459 L35.1643179,39.0897431 L35.8869404,39.0897431 L35.8869404,40.3410826 C35.8869404,40.7241651 35.900053,40.9588807 35.926755,41.0449908 C35.9532185,41.1318165 36.0013775,41.2000367 36.0714702,41.2506055 C36.1415629,41.3009358 36.2302517,41.3259817 36.3380132,41.3259817 C36.4610331,41.3259817 36.5714172,41.2925872 36.6686887,41.224844 C36.7661987,41.1573394 36.8327152,41.0736147 36.8687152,40.9734312 C36.9044768,40.8734862 36.922596,40.6285138 36.922596,40.2387523 L36.922596,39.0897431 L37.6452185,39.0897431 L37.6452185,41.8104404 L36.9748079,41.8104404" id="Fill-8" fill="#FFF"/><path d="M39.2332715,41.8104404 L38.510649,41.8104404 L38.510649,39.0897431 L39.1810596,39.0897431 L39.1810596,39.4766422 C39.2957351,39.2939266 39.3987285,39.1727523 39.4902781,39.1126422 C39.5818278,39.0527706 39.6855364,39.0227156 39.8018808,39.0227156 C39.9659073,39.0227156 40.1242119,39.0682752 40.2763179,39.159156 L40.0565033,39.7891193 C39.9349139,39.7106422 39.8214305,39.6712844 39.7170066,39.6712844 C39.6156821,39.6712844 39.5300927,39.6991927 39.4597616,39.7545321 C39.3894305,39.8103486 39.3341192,39.9107706 39.2938278,40.0560367 C39.2535364,40.2013028 39.2332715,40.5059083 39.2332715,40.9691376 L39.2332715,41.8104404" id="Fill-9" fill="#FFF"/><path d="M41.305298,40.4500917 C41.305298,40.7213028 41.3694305,40.9285872 41.4979338,41.0726606 C41.6264371,41.2167339 41.7847417,41.2887706 41.9733245,41.2887706 C42.1616689,41.2887706 42.3197351,41.2167339 42.4472848,41.0726606 C42.5748344,40.9285872 42.6387285,40.7193945 42.6387285,40.4450826 C42.6387285,40.1776881 42.5748344,39.9715963 42.4472848,39.8277615 C42.3197351,39.6836881 42.1616689,39.6116514 41.9733245,39.6116514 C41.7847417,39.6116514 41.6264371,39.6836881 41.4979338,39.8277615 C41.3694305,39.9715963 41.305298,40.1793578 41.305298,40.4500917 L41.305298,40.4500917 Z M40.5676556,40.4114495 C40.5676556,40.1714862 40.626543,39.939156 40.7445563,39.7144587 C40.8623311,39.49 41.0292185,39.3184954 41.245457,39.2001835 C41.461457,39.0818716 41.7029669,39.0227156 41.9695099,39.0227156 C42.381245,39.0227156 42.718596,39.1567706 42.9818013,39.4251193 C43.2447682,39.6934679 43.3763709,40.0326606 43.3763709,40.4424587 C43.3763709,40.8555963 43.2433377,41.198367 42.9777483,41.470055 C42.7121589,41.7417431 42.3776689,41.8777064 41.9745166,41.8777064 C41.7251391,41.8777064 41.4872053,41.8209358 41.2609536,41.7081101 C41.0344636,41.5948073 40.8623311,41.4290275 40.7445563,41.2102936 C40.626543,40.9915596 40.5676556,40.7255963 40.5676556,40.4114495 L40.5676556,40.4114495 Z" id="Fill-10" fill="#FFF"/><path d="M46.4895364,38.6873394 L46.4895364,39.7607339 L46.9034172,39.7607339 C47.2014305,39.7607339 47.4007417,39.7411743 47.501351,39.701578 C47.6017219,39.6619817 47.6806358,39.5999633 47.7376159,39.5155229 C47.794596,39.4313211 47.8232053,39.3332844 47.8232053,39.2214128 C47.8232053,39.0837798 47.7831523,38.9702385 47.7030464,38.880789 C47.6229404,38.7913394 47.5216159,38.7355229 47.3990728,38.7131009 C47.3087152,38.6959266 47.1275232,38.6873394 46.8547815,38.6873394 L46.4895364,38.6873394 L46.4895364,38.6873394 Z M45.7297219,41.8104404 L45.7297219,38.0535596 L46.9460927,38.0535596 C47.4069404,38.0535596 47.7075762,38.0726422 47.8475232,38.1100917 C48.0625695,38.1663853 48.2425695,38.2892294 48.3877616,38.4781468 C48.5329536,38.6668257 48.6054305,38.910844 48.6054305,39.2099633 C48.6054305,39.4406239 48.5637086,39.6343119 48.4800265,39.7919817 C48.3965828,39.9489358 48.2902517,40.0724954 48.1615099,40.1621835 C48.0327682,40.2521101 47.9018808,40.3112661 47.7688477,40.340367 C47.587894,40.3763853 47.3261192,40.3942752 46.9835232,40.3942752 L46.4895364,40.3942752 L46.4895364,41.8104404 L45.7297219,41.8104404 L45.7297219,41.8104404 Z" id="Fill-11" fill="#FFF"/><path d="M50.8755762,40.5061468 C50.7833113,40.537156 50.6376424,40.5738899 50.4383311,40.6168257 C50.2390199,40.6595229 50.1086093,40.7017431 50.0475762,40.7427706 C49.9536424,40.8097982 49.9071523,40.8947156 49.9071523,40.9975229 C49.9071523,41.0988991 49.9443444,41.1862018 50.0192053,41.2601468 C50.0943046,41.3338532 50.1896689,41.3708257 50.3057748,41.3708257 C50.4352318,41.3708257 50.5584901,41.3278899 50.6762649,41.2422569 C50.7630464,41.1768991 50.8202649,41.0972294 50.8474437,41.0027706 C50.8660397,40.9409908 50.8755762,40.8233945 50.8755762,40.6499817 L50.8755762,40.5061468 L50.8755762,40.5061468 Z M49.9071523,39.917211 L49.2589139,39.797945 C49.3323444,39.534367 49.458702,39.3394862 49.6379868,39.2128257 C49.8175099,39.0861651 50.084053,39.0227156 50.4376159,39.0227156 C50.758755,39.0227156 50.9981192,39.0608807 51.1552318,39.1367339 C51.3123444,39.2133028 51.4232053,39.3099083 51.4870993,39.4270275 C51.5512318,39.5441468 51.5834172,39.7595413 51.5834172,40.0727339 L51.5760265,40.9147523 C51.5760265,41.1542385 51.5874702,41.3312294 51.6103576,41.4447706 C51.6334834,41.5585505 51.6766358,41.6804404 51.7398146,41.8104404 L51.0245828,41.8104404 C51.0055099,41.7634495 50.9826225,41.6935596 50.9552053,41.6010092 C50.9432848,41.558789 50.934702,41.5311193 50.9299338,41.5175229 C50.8069139,41.6375046 50.6755497,41.7276697 50.5356026,41.7877798 C50.3956556,41.8476514 50.246649,41.8777064 50.0878675,41.8777064 C49.8079735,41.8777064 49.5872053,41.8013761 49.4260397,41.6491927 C49.2648742,41.4967706 49.1842914,41.3040367 49.1842914,41.0712294 C49.1842914,40.9173761 49.2210066,40.7799817 49.2941987,40.6592844 C49.3678675,40.5385872 49.4708609,40.4460367 49.6031788,40.3818716 C49.7357351,40.317945 49.926702,40.2614128 50.1760795,40.2134679 C50.5124768,40.1502569 50.7456424,40.0913394 50.8755762,40.0364771 L50.8755762,39.9637248 C50.8755762,39.8234679 50.841245,39.7235229 50.7725828,39.6636514 C50.7036821,39.6040183 50.5742252,39.5742018 50.3834967,39.5742018 C50.254755,39.5742018 50.1543841,39.5997248 50.0821457,39.6502936 C50.0099073,39.7011009 49.9514967,39.7900734 49.9071523,39.917211 L49.9071523,39.917211 Z" id="Fill-12" fill="#FFF"/><path d="M52.1021987,39.0897431 L52.869404,39.0897431 L53.521457,41.0213761 L54.1584901,39.0897431 L54.9035232,39.0897431 L53.7701192,42.1866055 C53.706702,42.345945 53.6463841,42.4673578 53.5891656,42.5513211 C53.531947,42.6350459 53.4659073,42.7032661 53.3915232,42.7552661 C53.3169007,42.8075046 53.2258278,42.8485321 53.1171126,42.8773945 C53.0083974,42.9067339 52.8856159,42.9212844 52.7487682,42.9212844 C52.6102517,42.9212844 52.4738808,42.9067339 52.3406093,42.877633 L52.2733775,42.3135046 C52.3866225,42.3361651 52.4891391,42.3471376 52.5799735,42.3471376 C52.7485298,42.3471376 52.8727417,42.2972844 52.9535629,42.198055 C53.0343841,42.0983486 53.0961325,41.9716881 53.1390464,41.8180734 L52.1021987,39.0897431" id="Fill-13" fill="#FFF"/><path d="M55.4671258,39.0897431 L56.1301457,39.0897431 L56.1301457,39.4613761 C56.3683179,39.1689358 56.6517881,39.0227156 56.9807947,39.0227156 C57.1553113,39.0227156 57.3069404,39.0584954 57.4354437,39.1302936 C57.563947,39.2023303 57.6693245,39.3111009 57.7513377,39.456367 C57.8710199,39.3111009 58.0004768,39.2023303 58.138755,39.1302936 C58.2775099,39.0584954 58.4250861,39.0227156 58.5824371,39.0227156 C58.782702,39.0227156 58.9519735,39.0632661 59.0904901,39.144844 C59.2290066,39.2257064 59.3327152,39.345211 59.4011391,39.5028807 C59.4504901,39.6190459 59.4752848,39.8072477 59.4752848,40.0674862 L59.4752848,41.8104404 L58.7526623,41.8104404 L58.7526623,40.2521101 C58.7526623,39.9816147 58.7278675,39.8072477 58.6785166,39.7285321 C58.6117616,39.6254862 58.5094834,39.5742018 58.3714437,39.5742018 C58.270596,39.5742018 58.1757086,39.6049725 58.0870199,39.6667523 C57.9983311,39.7285321 57.9344371,39.8186972 57.8953377,39.9377248 C57.856,40.0565138 57.8362119,40.2444771 57.8362119,40.5011376 L57.8362119,41.8104404 L57.1135894,41.8104404 L57.1135894,40.3165138 C57.1135894,40.050789 57.1009536,39.88 57.0752053,39.8027156 C57.0496954,39.7256697 57.0101192,39.668422 56.9562384,39.6307339 C56.9023576,39.5932844 56.8296424,39.5742018 56.7373775,39.5742018 C56.6265166,39.5742018 56.5266225,39.6042569 56.4379338,39.6641284 C56.349245,39.724 56.2858278,39.8105872 56.2472053,39.9234128 C56.2088212,40.0364771 56.1897483,40.2237248 56.1897483,40.485633 L56.1897483,41.8104404 L55.4671258,41.8104404 L55.4671258,39.0897431" id="Fill-14" fill="#FFF"/><path d="M61.9645298,40.2227706 C61.9592848,40.0109541 61.905404,39.8501835 61.8019338,39.7397431 C61.6991788,39.6295413 61.5735364,39.5742018 61.4257219,39.5742018 C61.267894,39.5742018 61.1370066,39.6326422 61.0342517,39.7488073 C60.9310199,39.8649725 60.8804768,40.0231193 60.8821457,40.2227706 L61.9645298,40.2227706 L61.9645298,40.2227706 Z M61.9273377,40.9533945 L62.6425695,41.0726606 C62.5498278,41.3348073 62.4039205,41.5346972 62.2043709,41.6718532 C62.0045828,41.8092477 61.7549669,41.8777064 61.4550464,41.8777064 C60.9806093,41.8777064 60.6294305,41.722422 60.4015099,41.4120917 C60.2215099,41.1635413 60.1316291,40.8498716 60.1316291,40.4706055 C60.1316291,40.0183486 60.2501192,39.6636514 60.4861457,39.4072294 C60.722649,39.1508073 61.0211391,39.0227156 61.3825695,39.0227156 C61.7885828,39.0227156 62.1085298,39.1572477 62.3431258,39.4260734 C62.5777219,39.6953761 62.6900132,40.1073211 62.6797616,40.6626239 L60.8692715,40.6626239 C60.8745166,40.8768257 60.9331656,41.0433211 61.0452185,41.1625872 C61.1570331,41.2813761 61.2967417,41.3410092 61.4643444,41.3410092 C61.5780662,41.3410092 61.6736689,41.3104771 61.7511523,41.2491743 C61.8291126,41.1881101 61.8877616,41.0893578 61.9273377,40.9533945 L61.9273377,40.9533945 Z" id="Fill-15" fill="#FFF"/><path d="M65.8956821,41.8104404 L65.1730596,41.8104404 L65.1730596,40.418844 C65.1730596,40.1244954 65.1575629,39.9341468 65.1272848,39.8477982 C65.0965298,39.7614495 65.046702,39.693945 64.9778013,39.646 C64.9089007,39.5982936 64.8259338,39.5742018 64.7291391,39.5742018 C64.6051656,39.5742018 64.4935894,39.6085505 64.3951258,39.6770092 C64.2964238,39.7454679 64.2289536,39.8361101 64.1922384,39.9491743 C64.1557616,40.062 64.137404,40.2707156 64.137404,40.5755596 L64.137404,41.8104404 L63.4147815,41.8104404 L63.4147815,39.0897431 L64.0851921,39.0897431 L64.0851921,39.4895229 C64.322649,39.1782385 64.6213775,39.0227156 64.9813775,39.0227156 C65.1401589,39.0227156 65.2855894,39.051578 65.4167152,39.1088257 C65.5480795,39.1660734 65.6477351,39.2393028 65.7152053,39.3282752 C65.7826755,39.4172477 65.829404,39.5181468 65.8558675,39.631211 C65.8825695,39.7440367 65.8956821,39.9057615 65.8956821,40.1161468 L65.8956821,41.8104404" id="Fill-16" fill="#FFF"/><path d="M68.0277881,39.0897431 L68.0277881,39.6636514 L67.535947,39.6636514 L67.535947,40.7644771 C67.535947,40.9872661 67.5404768,41.1172661 67.5497748,41.154 C67.5588344,41.1909725 67.5798146,41.2212661 67.6124768,41.2453578 C67.6453775,41.269211 67.6849536,41.2813761 67.7319205,41.2813761 C67.7977219,41.2813761 67.8921325,41.2582385 68.0165828,41.2122018 L68.0797616,41.7698899 C67.9131126,41.8416881 67.7245298,41.8777064 67.5140132,41.8777064 C67.3845563,41.8777064 67.2684503,41.8557615 67.1647417,41.8121101 C67.0612715,41.7686972 66.9852185,41.7119266 66.9365828,41.6425138 C66.8881854,41.5733394 66.8548079,41.4795963 66.8362119,41.3615229 C66.8207152,41.2775596 66.8133245,41.1079633 66.8133245,40.8529725 L66.8133245,39.6636514 L66.4855099,39.6636514 L66.4855099,39.0897431 L66.8133245,39.0897431 L66.8133245,38.5456514 L67.535947,38.1208257 L67.535947,39.0897431 L68.0277881,39.0897431" id="Fill-17" fill="#FFF"/><path d="M68.4342781,41.042844 L69.1569007,40.9309725 C69.1876556,41.0700367 69.2498808,41.1754679 69.3435762,41.2477431 C69.4375099,41.3200183 69.5686358,41.3557982 69.7374305,41.3557982 C69.9236291,41.3557982 70.0635762,41.3214495 70.1572715,41.2527523 C70.2204503,41.2043303 70.2521589,41.1401651 70.2521589,41.0590642 C70.2521589,41.0042018 70.234755,40.9584037 70.2004238,40.9226239 C70.1641854,40.8880367 70.0836026,40.8563119 69.9581987,40.8269725 C69.3743311,40.6979266 69.0040795,40.5803303 68.8481589,40.4741835 C68.6316821,40.3270092 68.5236821,40.1221101 68.5236821,39.8604404 C68.5236821,39.6238165 68.6169007,39.4251193 68.804053,39.2643486 C68.9914437,39.1033394 69.2815894,39.0227156 69.6747285,39.0227156 C70.0490331,39.0227156 70.3270199,39.0830642 70.5091656,39.2035229 C70.6910728,39.3242202 70.8164768,39.5024037 70.8853775,39.7383119 L70.2073377,39.8649725 C70.1780132,39.7593028 70.1222252,39.6779633 70.0402119,39.6216697 C69.9579603,39.5651376 69.8409007,39.5369908 69.6890331,39.5369908 C69.497351,39.5369908 69.3597881,39.5634679 69.2770596,39.6171376 C69.2215099,39.6548257 69.1940927,39.7037248 69.1940927,39.7638349 C69.1940927,39.8155963 69.2179338,39.8594862 69.2660927,39.8957431 C69.3311788,39.9436881 69.5564768,40.0116697 69.9415099,40.0994495 C70.326543,40.1872294 70.5954702,40.2945688 70.7482914,40.4217064 C70.8989669,40.5505138 70.9747815,40.7301284 70.9747815,40.9603119 C70.9747815,41.2110092 70.8703576,41.4266422 70.6622252,41.6069725 C70.4536159,41.7875413 70.1455894,41.8777064 69.7374305,41.8777064 C69.3671788,41.8777064 69.0739338,41.8025688 68.8579338,41.6530092 C68.6419338,41.5029725 68.5007947,41.2999817 68.4342781,41.042844" id="Fill-18" fill="#FFF"/><path d="M75.3727417,40.3272477 L74.8477616,38.9332661 L74.3404238,40.3272477 L75.3727417,40.3272477 L75.3727417,40.3272477 Z M76.7662517,41.8104404 L75.9480265,41.8104404 L75.6233113,40.960789 L74.1098808,40.960789 L73.8004238,41.8104404 L72.9962649,41.8104404 L74.4508079,38.0535596 L75.2499603,38.0535596 L76.7662517,41.8104404 L76.7662517,41.8104404 Z" id="Fill-19" fill="#FFF"/><path d="M78.0069404,41.8104404 L77.2843179,41.8104404 L77.2843179,39.0897431 L77.9547285,39.0897431 L77.9547285,39.4766422 C78.069404,39.2939266 78.1721589,39.1727523 78.263947,39.1126422 C78.3552583,39.0527706 78.4589669,39.0227156 78.5755497,39.0227156 C78.7395762,39.0227156 78.8976424,39.0682752 79.0499868,39.159156 L78.8301722,39.7891193 C78.7083444,39.7106422 78.5950993,39.6712844 78.4906755,39.6712844 C78.3891126,39.6712844 78.3035232,39.6991927 78.2331921,39.7545321 C78.1628609,39.8103486 78.1075497,39.9107706 78.0674967,40.0560367 C78.0269669,40.2013028 78.0069404,40.5059083 78.0069404,40.9691376 L78.0069404,41.8104404" id="Fill-20" fill="#FFF"/><path d="M81.1367947,40.2227706 C81.1315497,40.0109541 81.0774305,39.8501835 80.9744371,39.7397431 C80.8712053,39.6295413 80.7458013,39.5742018 80.5982252,39.5742018 C80.4399205,39.5742018 80.3095099,39.6326422 80.2065166,39.7488073 C80.1032848,39.8649725 80.0525033,40.0231193 80.0544106,40.2227706 L81.1367947,40.2227706 L81.1367947,40.2227706 Z M81.0996026,40.9533945 L81.8148344,41.0726606 C81.7223311,41.3348073 81.5761854,41.5346972 81.3766358,41.6718532 C81.1770861,41.8092477 80.9272318,41.8777064 80.6275497,41.8777064 C80.1528742,41.8777064 79.801457,41.722422 79.5737748,41.4120917 C79.3937748,41.1635413 79.303894,40.8498716 79.303894,40.4706055 C79.303894,40.0183486 79.4221457,39.6636514 79.658649,39.4072294 C79.8946755,39.1508073 80.1936424,39.0227156 80.5548344,39.0227156 C80.9606093,39.0227156 81.2807947,39.1572477 81.5156291,39.4260734 C81.7499868,39.6953761 81.8622781,40.1073211 81.8520265,40.6626239 L80.0415364,40.6626239 C80.0467815,40.8768257 80.1054305,41.0433211 80.217245,41.1625872 C80.3295364,41.2813761 80.469245,41.3410092 80.6363709,41.3410092 C80.7503311,41.3410092 80.8459338,41.3104771 80.9236556,41.2491743 C81.0011391,41.1881101 81.0597881,41.0893578 81.0996026,40.9533945 L81.0996026,40.9533945 Z" id="Fill-21" fill="#FFF"/><path d="M84.091894,40.5061468 C83.9998675,40.537156 83.8539603,40.5738899 83.654649,40.6168257 C83.4553377,40.6595229 83.3251656,40.7017431 83.263894,40.7427706 C83.1699603,40.8097982 83.1234702,40.8947156 83.1234702,40.9975229 C83.1234702,41.0988991 83.1606623,41.1862018 83.2357616,41.2601468 C83.3106225,41.3338532 83.4059868,41.3708257 83.5220927,41.3708257 C83.6515497,41.3708257 83.7748079,41.3278899 83.8925828,41.2422569 C83.9793642,41.1768991 84.0365828,41.0972294 84.0637616,41.0027706 C84.0823576,40.9409908 84.091894,40.8233945 84.091894,40.6499817 L84.091894,40.5061468 L84.091894,40.5061468 Z M83.1234702,39.917211 L82.4752318,39.797945 C82.5486623,39.534367 82.6750199,39.3394862 82.8543046,39.2128257 C83.0338278,39.0861651 83.3003709,39.0227156 83.6539338,39.0227156 C83.9750728,39.0227156 84.2144371,39.0608807 84.3715497,39.1367339 C84.5286623,39.2133028 84.6395232,39.3099083 84.7034172,39.4270275 C84.7675497,39.5441468 84.7997351,39.7595413 84.7997351,40.0727339 L84.7923444,40.9147523 C84.7923444,41.1542385 84.8037881,41.3312294 84.8266755,41.4447706 C84.8498013,41.5585505 84.8929536,41.6804404 84.955894,41.8104404 L84.2409007,41.8104404 C84.2218278,41.7634495 84.1991788,41.6935596 84.1715232,41.6010092 C84.1598411,41.558789 84.1510199,41.5311193 84.1462517,41.5175229 C84.0232318,41.6375046 83.892106,41.7276697 83.7521589,41.7877798 C83.6122119,41.8476514 83.4629669,41.8777064 83.3041854,41.8777064 C83.0242914,41.8777064 82.8035232,41.8013761 82.6423576,41.6491927 C82.4814305,41.4967706 82.4008477,41.3040367 82.4008477,41.0712294 C82.4008477,40.9173761 82.4373245,40.7799817 82.510755,40.6592844 C82.5841854,40.5385872 82.6871788,40.4460367 82.8194967,40.3818716 C82.952053,40.317945 83.1430199,40.2614128 83.3923974,40.2134679 C83.7287947,40.1502569 83.9619603,40.0913394 84.091894,40.0364771 L84.091894,39.9637248 C84.091894,39.8234679 84.0575629,39.7235229 83.9889007,39.6636514 C83.9202384,39.6040183 83.790543,39.5742018 83.5998146,39.5742018 C83.4710728,39.5742018 83.370702,39.5997248 83.2984636,39.6502936 C83.2264636,39.7011009 83.1678146,39.7900734 83.1234702,39.917211 L83.1234702,39.917211 Z" id="Fill-22" fill="#FFF"/><path d="M28.998543,23.2915229 L24.0782252,23.2915229 C24.0782252,22.4836147 23.9833377,21.9414312 23.7945166,21.6654495 C23.5017483,21.2570826 22.6935364,21.0526606 21.3708344,21.0526606 C20.0862781,21.0526606 19.2346755,21.1702569 18.8191258,21.4056881 C18.4038146,21.6418349 18.1959205,22.1553945 18.1959205,22.9461284 C18.1959205,23.6619633 18.3799735,24.1333028 18.7490331,24.3591927 C19.0134305,24.5194862 19.362702,24.6137064 19.7982781,24.6418532 L20.790543,24.7119817 C22.9171656,24.8531927 24.245351,24.9526606 24.7750993,25.0091927 C26.4568477,25.178789 27.6760795,25.6262752 28.4325563,26.3514128 C29.0278675,26.917211 29.3828609,27.6566606 29.496106,28.5697615 C29.5623841,29.116 29.5952848,29.7340367 29.5952848,30.4207706 C29.5952848,32.0036697 29.4443709,33.1629358 29.1420662,33.8976147 C28.5941987,35.2455596 27.3635232,36.0968807 25.4486093,36.4544404 C24.6463576,36.6056697 23.4190199,36.6812844 21.7682649,36.6812844 C19.0127152,36.6812844 17.0923179,36.5171743 16.0080265,36.1872844 C14.6772185,35.783211 13.7998675,34.9645688 13.3752583,33.7318349 C13.138755,33.045578 13.0216954,31.9027706 13.0216954,30.3029358 L17.9420132,30.3029358 C17.9420132,30.4813578 17.9424901,30.6177982 17.9424901,30.7117798 C17.9424901,31.5654862 18.1878146,32.1145872 18.6772715,32.3590826 C19.0165298,32.5277248 19.4261192,32.6162202 19.9077086,32.6267156 L21.7165298,32.6267156 C22.6396556,32.6267156 23.2287682,32.5794862 23.4829139,32.4845505 C23.9351788,32.3066055 24.232,32.0201284 24.3738543,31.6236881 C24.4491921,31.3796697 24.4866225,31.0638532 24.4866225,30.6774312 C24.4866225,29.8117982 24.1707285,29.2851193 23.5401325,29.0962018 C23.3043444,29.0215413 22.2071788,28.9175413 20.2488742,28.785633 C18.6763179,28.6732844 17.5839205,28.5652294 16.9721589,28.4605138 C15.3612185,28.1590092 14.2876556,27.5390642 13.751947,26.5978165 C13.2810861,25.7980183 13.0455364,24.587945 13.0455364,22.9692661 C13.0455364,21.7365321 13.1728477,20.748055 13.4272318,20.0045505 C13.6818543,19.2608073 14.0921589,18.6962018 14.6583841,18.3100183 C15.4878146,17.7172661 16.5492185,17.3692477 17.8411656,17.2652477 C18.9161589,17.1715046 20.1086887,17.1235596 21.4204238,17.1235596 C23.4855364,17.1235596 24.957245,17.2423486 25.834596,17.4777798 C27.9757616,18.0533578 29.0462252,19.6655963 29.0462252,22.3149725 C29.0462252,22.5322752 29.0302517,22.857156 28.998543,23.2915229" id="Fill-23" fill="#FFF"/><path d="M55.9246358,27.0438716 L59.2218543,27.0438716 C60.2672848,27.0061835 60.9031258,26.9257982 61.132,26.7998532 C61.4445563,26.6278716 61.6543576,26.2836697 61.7587815,25.7672477 C61.8255364,25.4235229 61.8589139,24.9125872 61.8589139,24.2337248 C61.8589139,23.4022018 61.7926358,22.7858349 61.6593642,22.3831927 C61.4691126,21.8193028 61.0135099,21.4758165 60.2918411,21.3510642 C60.1492715,21.3322202 59.8076291,21.3222018 59.2664371,21.3222018 L55.9246358,21.3222018 L55.9246358,27.0438716 L55.9246358,27.0438716 Z M50.6357351,36.6812844 L50.6357351,17.0195596 L60.4894834,17.0195596 C61.8410331,17.0195596 62.8723974,17.13 63.5809536,17.3506422 C65.2016689,17.8587156 66.2890596,18.8989541 66.8459868,20.4711193 C67.1335099,21.2962018 67.2772715,22.5384771 67.2772715,24.1972294 C67.2772715,26.1915963 67.1177748,27.6249358 66.8023576,28.4974862 C66.1703311,30.2230275 64.8693245,31.2169908 62.9048212,31.4746055 C62.6738013,31.5132477 61.6908344,31.5478349 59.9559205,31.5755046 L59.0778543,31.604844 L55.9246358,31.604844 L55.9246358,36.6812844 L50.6357351,36.6812844 L50.6357351,36.6812844 Z" id="Fill-24" fill="#FFF"/><path d="M77.5167682,29.4528073 L75.0387285,20.9298165 L72.6338808,29.4528073 L77.5167682,29.4528073 L77.5167682,29.4528073 Z M78.5672053,33.283156 L71.4957086,33.283156 L70.5456424,36.6812844 L65.0736424,36.6812844 L70.9781192,17.0195596 L78.9562914,17.0195596 L84.933245,36.6812844 L79.5761589,36.6812844 L78.5672053,33.283156 L78.5672053,33.283156 Z" id="Fill-25" fill="#FFF"/><path d="M43.3358411,19.7858165 C45.517298,19.7858165 47.4641589,20.7912294 48.743947,22.3660183 L49.8840265,19.9203486 C48.1009536,18.2341651 45.6741722,17.1946422 42.9975364,17.1946422 C38.8301192,17.1946422 35.2651656,19.7128257 33.8020397,23.2774495 L31.5788609,23.2774495 L30.2661722,26.0930826 L33.1261457,26.0930826 C33.1046887,26.3542752 33.0908609,26.6157064 33.0908609,26.8823853 C33.0908609,27.2051193 33.1075497,27.5240367 33.1394967,27.8391376 L31.7021192,27.8391376 L30.3896689,30.6557248 L33.8702252,30.6557248 C35.3750728,34.1301835 38.8954437,36.5694128 42.9975364,36.5694128 C45.0647947,36.5694128 46.9830464,35.9497064 48.5713377,34.8911009 L48.5713377,31.4393028 C47.2922649,32.8962569 45.421457,33.8169908 43.3358411,33.8169908 C40.8978543,33.8169908 38.753351,32.559211 37.5045563,30.6557248 L44.7930066,30.6557248 L46.105457,27.8391376 L36.4321854,27.8391376 C36.3823576,27.5001835 36.3556556,27.1538349 36.3556556,26.8010459 C36.3556556,26.5625138 36.368053,26.326367 36.3909404,26.0930826 L46.9189139,26.0930826 L48.2313642,23.2774495 L37.3014305,23.2774495 C38.5101722,21.1902936 40.7595762,19.7858165 43.3358411,19.7858165" id="Fill-26" fill="#F6BC25"/></g></g></svg> |