update emoji. use svg emoji if provided.

This commit is contained in:
tateisu 2019-09-15 05:09:52 +09:00
parent 0a90f9f5c0
commit 13fb8f20e1
5243 changed files with 72022 additions and 67495 deletions

View File

@ -89,6 +89,7 @@
<w>timelines</w> <w>timelines</w>
<w>tissot</w> <w>tissot</w>
<w>tootsearch</w> <w>tootsearch</w>
<w>transcoder</w>
<w>unarist</w> <w>unarist</w>
<w>unboost</w> <w>unboost</w>
<w>unboosted</w> <w>unboosted</w>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -22,6 +22,8 @@ use Carp qw(confess);
=cut =cut
my $JAVA_HOME = '/cygdrive/c/Java/jre-x64-1.8';
binmode \*STDOUT,":encoding(utf8)"; binmode \*STDOUT,":encoding(utf8)";
binmode \*STDERR,":encoding(utf8)"; binmode \*STDERR,":encoding(utf8)";
@ -86,51 +88,141 @@ sub findEmojiImage($){
return; return;
} }
my @svgConverts;
my @pngConverts;
my @mastodonSvg;
my @twemojiSvg;
my @overrideSvg;
my @overridePng;
my @emojiDataPng;
sub mayCopySvg($$){
my($dst,$src)=@_;
return 0 if not -f $src;
if(not -f $dst ){
copy($src,$dst) or die "copy filed! $src $dst $!\n";
}
return 1;
}
sub mayCopyWebp($$){
my($dst,$src)=@_;
return 0 if not -f $src;
if(not -f $dst ){
push @pngConverts,[ $dst, $src];
}
return 1;
}
sub copyImages{
warn "count mastodonSvg =",(0+@mastodonSvg),"\n";
warn "count twemojiSvg =",(0+@twemojiSvg),"\n";
warn "count overrideSvg =",(0+@overrideSvg),"\n";
warn "count overridePng =",(0+@overridePng),"\n";
warn "count emojiDataPng =",(0+@emojiDataPng),"\n";
if( @svgConverts ){
warn "convertinng svg...",(0+@svgConverts),"\n";
open(my $fh,">","tmp.list") or die "tmp.list $!";
for(@svgConverts){
my($dst,$src)=@$_;
print $fh "$dst $src\n";
}
close($fh) or die "tmp.list $!";
system qq($JAVA_HOME/bin/java.exe -jar SVGToVectorDrawable/out/artifacts/SVGToVectorDrawable_jar/SVGToVectorDrawable.jar tmp.list);
if ($? == -1) {
warn "failed to execute: $!\n";
}elsif ($? & 127) {
warn sprintf "child died with signal %d, %s coredump\n",($? & 127), ($? & 128) ? 'with' : 'without';
}elsif($? != 0) {
warn sprintf "child exited with value %d\n", $? >> 8;
}
}
if( @pngConverts ){
warn "convertinng png...",(0+@pngConverts),"\n";
for(@pngConverts){
my($dst,$src)=@$_;
system qq(cwebp $src -quiet -o $dst);
if ($? == -1) {
warn "failed to execute: $!\n";
}elsif ($? & 127) {
warn sprintf "child died with signal %d, %s coredump\n",($? & 127), ($? & 128) ? 'with' : 'without';
}elsif($? != 0) {
warn sprintf "child exited with value %d\n", $? >> 8;
}
}
}
}
sub getEmojiResId($$){ sub getEmojiResId($$){
my($image,$name)=@_; my($image,$name)=@_;
# コードポイントに合う画像ファイルがあるか調べる # 小文字で拡張子なし
my $image_path = findEmojiImage($image); my $imageLc = lc $image;
if( not $image_path ){ $imageLc =~ s/\.png//;
warn "$name : missing image. $image\n";
next; # 画像リソースの名前
} my $resName = "emj_$imageLc";
$resName =~ tr/-/_/;
# 出力先ファイル名
my $dstPathWebp = "drawable-nodpi/$resName.webp";
my $dstPathSvg = "assets/$resName.svg";
# 画像ファイルをpng フォルダにコピーする {do{
my $dst_name = "emj_". lc($image); my $svg;
$dst_name =~ tr/-/_/; my $png;
my $dst_path = "png/$dst_name";
if( not -f $dst_path ){ # using override SVG?
$svg = "override/$imageLc.svg";
if( mayCopySvg( $dstPathSvg,$svg) ){
push @overrideSvg,$svg;
last;
}
# using override PNG?
$png = "override/$imageLc.png";
if( mayCopyWebp( $dstPathWebp,$png) ){
push @overridePng,$png;
last;
}
# using svg from mastodon folder? # using svg from mastodon folder?
my $mastodonSvg = "mastodon/public/emoji/".lc($image); $svg = "mastodon/public/emoji/$imageLc.svg";
$mastodonSvg =~ s/\.png$/\.svg/i; if( mayCopySvg( $dstPathSvg,$svg) ){
if( -f $mastodonSvg ){ push @mastodonSvg,$svg;
warn "convert from mastodon SVG file: $mastodonSvg\n"; last;
system qq(magick.exe -density 128 -background none $mastodonSvg png32:$dst_path); }
}else{ # using svg from twemoji?
# override? $svg = "twemoji/assets/svg/$imageLc.svg";
my $override = "override/$dst_name"; if( mayCopySvg( $dstPathSvg,$svg) ){
if( -f $override){ push @twemojiSvg,$svg;
copy( $override,$dst_path ) or die "$dst_path $!"; last;
}else{
copy( $image_path,$dst_path ) or die "$dst_path $!";
}
} }
}
# override? # using emoji-data PNG?
my $override = "override/$dst_name"; $png = findEmojiImage($image);
if( not $png ){
# 画像リソースの名前 die "emoji-data has no emoji for $image\n";
my $res_name = $dst_name; }elsif( mayCopyWebp( $dstPathWebp,$png) ){
$res_name =~ s/\.png//; push @emojiDataPng,$png;
last;
return $res_name; }
die "missing emoji: $imageLc\n";
}while 0; }
return $resName;
} }
sub getEmojiResIdOld($$){ sub getEmojiResIdOld($$){
@ -142,19 +234,14 @@ sub getEmojiResIdOld($$){
die "$name : missing image. $image\n"; die "$name : missing image. $image\n";
} }
# 画像ファイルをpng フォルダにコピーする
my $dst_name = "emj_". lc("$image.png");
$dst_name =~ tr/-/_/;
my $dst_path = "png/$dst_name";
if( not -f $dst_path ){
copy( $image_path,$dst_path ) or die "$dst_path $!";
}
# 画像リソースの名前 # 画像リソースの名前
my $res_name = $dst_name; my $resName = "emj_". lc($image);
$res_name =~ s/\.png//; $resName =~ tr/-/_/;
return $res_name; my $dstPathWebp = "drawable-nodpi/$resName.webp";
mayCopyWebp( $dstPathWebp,$image_path);
return $resName;
} }
my %res_map; my %res_map;
@ -403,6 +490,10 @@ sub removeZWJ($){
} }
} }
################################################################
copyImages();
################################################################ ################################################################
# 重複チェック # 重複チェック
@ -436,17 +527,22 @@ updateNameMap();
for(@fix_code){ for(@fix_code){
my($code,$selected_res_name)=@$_; my($code,$selected_res_name)=@$_;
my $rh = $code_map{$code}; my $rh = $code_map{$code};
if(not $rh){
warn "fix_code: code_map[$code] is null\n";
next;
}
my $found = 0; my $found = 0;
for my $res_name (sort keys %$rh ){ for my $res_name (sort keys %$rh ){
my $res_info = $rh->{$res_name}; my $res_info = $rh->{$res_name};
if( $res_name eq $selected_res_name ){ if( $res_name eq $selected_res_name ){
$found = 1; $found = 1;
}else{ }else{
warn "remove $code from $res_name...\n"; warn "fix_code: remove $code from $res_name...\n";
delete $res_info->{codepoint_map}->{$code}; delete $res_info->{codepoint_map}->{$code};
} }
} }
$found or die "missing relation for $code and $selected_res_name\n"; $found or warn "fix_code: missing relation for $code and $selected_res_name\n";
} }
for(@fix_name){ for(@fix_name){
@ -462,7 +558,7 @@ for(@fix_name){
delete $res_info->{shortname_map}->{$name}; delete $res_info->{shortname_map}->{$name};
} }
} }
$found or die "missing relation for $name and $selected_res_name\n"; $found or warn "fix_name: missing relation for $name and $selected_res_name\n";
} }
for(@fix_category){ for(@fix_category){
@ -517,7 +613,7 @@ for my $code (sort keys %code_map){
# カテゴリ情報を読む # カテゴリ情報を読む
my $category_data; my $category_data;
if(1){ if(not -e "category-pretty.json"){
my $json = JSON->new->allow_nonref->relaxed(1); my $json = JSON->new->allow_nonref->relaxed(1);
my $d1 = loadFile "./emoji-mart/data/all.json"; my $d1 = loadFile "./emoji-mart/data/all.json";
my $d2=""; my $d2="";
@ -601,6 +697,26 @@ my $utf8 = Encode::find_encoding("utf8");
my $utf16 = Encode::find_encoding("UTF-16BE"); my $utf16 = Encode::find_encoding("UTF-16BE");
my $utf16_max_length = 0; my $utf16_max_length = 0;
sub makeUtf16($){
my($codepoint_chars) = @_;
# コードポイントのリストからperl内部表現の文字列にする
my $str = join '',map{ chr hex $_ } @$codepoint_chars;
# perl内部表現からUTF-16に変換する
my $str_utf16 = $utf16->encode( $str );
# $str_utf16 をJavaのエスケープ表現に直す
my @utf16_chars = unpack("n*",$str_utf16);
my $char_count = 0+@utf16_chars;
if( $char_count > $utf16_max_length ){
$utf16_max_length = $char_count;
}
return join('',map{ sprintf qq(\\u%04x),$_} @utf16_chars );
}
# 画像リソースIDとUnidoceシーケンスの関連付けを出力する # 画像リソースIDとUnidoceシーケンスの関連付けを出力する
@ -608,22 +724,12 @@ for my $res_name ( sort keys %res_map ){
my $res_info = $res_map{$res_name}; my $res_info = $res_map{$res_name};
for my $codepoint_name( sort keys %{$res_info->{codepoint_map}} ){ for my $codepoint_name( sort keys %{$res_info->{codepoint_map}} ){
my $codepoint_chars = $res_info->{codepoint_map}{$codepoint_name}; my $java_chars = makeUtf16($res_info->{codepoint_map}{$codepoint_name});
if( -e "assets/$res_name.svg" ){
# コードポイントのリストからperl内部表現の文字列にする addCode( qq{code( "$java_chars", "$res_name.svg" );});
my $str = join '',map{ chr hex $_ } @$codepoint_chars; }else{
addCode( qq{code( "$java_chars", R.drawable.$res_name );});
# perl内部表現からUTF-16に変換する
my $str_utf16 = $utf16->encode( $str );
# $str_utf16 をJavaのエスケープ表現に直す
my @utf16_chars = unpack("n*",$str_utf16);
my $char_count = 0+@utf16_chars;
if( $char_count > $utf16_max_length ){
$utf16_max_length = $char_count;
} }
my $java_chars = join('',map{ sprintf qq(\\u%04x),$_} @utf16_chars );
addCode( qq{code( R.drawable.$res_name, "$java_chars" );});
} }
} }
@ -641,15 +747,9 @@ for my $name (sort keys %name_map){
my @res_list = values %$rh; my @res_list = values %$rh;
my $res_info = $res_list[0]; my $res_info = $res_list[0];
my $chars = parseCodePoint( $res_info->{unified} ); my $utf16Unified = makeUtf16( parseCodePoint( $res_info->{unified} ));
# コードポイントのリストからperl内部表現の文字列にする
my $str = join '',map{ chr hex $_ } @$chars; addCode( qq{name( "$name", "$utf16Unified" );});
# perl内部表現からUTF-16に変換する
my $str_utf16 = $utf16->encode( $str );
my @utf16_chars = unpack("n*",$str_utf16);
# UTF-16の文字のリストをJavaのエスケープ表現に直す
my $java_chars = join('',map{ sprintf qq(\\u%04x),$_} @utf16_chars );
addCode( qq{name( "$name", R.drawable.$res_info->{res_name}, "$java_chars" );});
} }
my %categoryNameMapping =( my %categoryNameMapping =(
@ -715,6 +815,7 @@ close($fh) or die "$out_file : $!";
} }
######################################################################### #########################################################################
__DATA__ __DATA__

View File

@ -4,35 +4,45 @@
*依存データ *依存データ
# emojione v2.2.7 (古いMastodonとの互換性のため) # emojione v2.2.7 (古いMastodonとの互換性のため)
git clone -b v2.2.7 git@github.com:emojione/emojione.git rm -fr emojione
git clone -b v2.2.7 git@github.com:emojione/emojione.git emojione
# Gargron's fork of emoji-mart (master branch) # Gargron's fork of emoji-mart (master branch)
git clone git@github.com:Gargron/emoji-mart.git rm -fr emoji-mart
git clone git@github.com:Gargron/emoji-mart.git emoji-mart
# emoji-data 4.0.4 rm -fr emoji-data
# (上のemoji-martのpackages.jsonで指定されたバージョンに合わせる git clone git@github.com:iamcal/emoji-data.git emoji-data
git clone -b v4.0.4 git@github.com:iamcal/emoji-data.git
# マストドン公式 # マストドン公式
git clone git@github.com:tootsuite/mastodon.git rm -fr mastodon
git clone git@github.com:tootsuite/mastodon.git mastodon
#オーバライド用 # twemoji
override フォルダにPNG画像を用意する git clone git@github.com:twitter/twemoji.git
マストドンのタンスにある絵文字を以下のようにPNGに変換します
magick.exe -density 128 -background none 1f923.svg png32:emj_1f923.png # override/ フォルダに優先的に使いたいsvgやpngを入れておく
1f923.svg 傾いた笑う顔。演出的な理由でMastodonで使われている
265f-fe0f.svg Black Chess Pawn. Emoji 11.0 で追加されたがtwemojiに入ってない。
267e-fe0f.svg Permanent Paper Sign. Emoji 11.0 で追加されたがtwemojiに入ってない。
######################################## ########################################
* 前準備 * 前準備
mkdir png mkdir assets drawable-nodpi
rm -f assets/* drawable-nodpi/* category-pretty.json
* ビルド * ビルド
perl makeJavaCode.pl perl makeJavaCode.pl 2>error.log
* 出力 * 出力
- png フォルダの中味をアプリの drawable-nodpi フォルダにコピーします。
- EmojiData201709.java の中味を jp.juggler.subwaytooter.util.EmojiData201709 の中に貼り付けます。 assets の中身を C:\mastodon-related\TestEmojiSvg\app/src/main/assets にコピー。 TestEmojiSvg をビルドしてエラーが出ないか試す
assets の中身を C:\mastodon-related\SubwayTooter\emoji\src\main\assets にコピー。
drawable-nodpi の中身を C:\mastodon-related\SubwayTooter\emoji\src\main\res\drawable-nodpi にコピー。
EmojiData201709.java の中味を emoji/src/main/java/.../EmojiMap.java の所定の場所にペースト。
################################# #################################

File diff suppressed because it is too large Load Diff

View File

@ -2457,7 +2457,7 @@ internal class ItemViewHolder(
for(mr in MisskeyReaction.values()) { for(mr in MisskeyReaction.values()) {
val newCode = mr.shortcode val newCode = mr.shortcode
val sb = SpannableStringBuilder() val sb = SpannableStringBuilder()
.appendDrawableIcon(activity, mr.drawableId, " ") .appendMisskeyReaction(activity, mr.emojiUtf16, " ")
.append(' ') .append(' ')
.append(mr.shortcode) .append(mr.shortcode)
ad.addAction(sb) { ad.addAction(sb) {

View File

@ -1,16 +1,63 @@
package jp.juggler.subwaytooter package jp.juggler.subwaytooter
import android.content.Context import android.content.Context
import android.graphics.drawable.PictureDrawable
import androidx.annotation.NonNull
import androidx.annotation.Nullable
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.bumptech.glide.GlideBuilder import com.bumptech.glide.GlideBuilder
import com.bumptech.glide.Registry import com.bumptech.glide.Registry
import com.bumptech.glide.annotation.GlideModule import com.bumptech.glide.annotation.GlideModule
import com.bumptech.glide.load.Options
import com.bumptech.glide.load.ResourceDecoder
import com.bumptech.glide.load.engine.Resource
import com.bumptech.glide.load.resource.SimpleResource
import com.bumptech.glide.load.resource.transcode.ResourceTranscoder
import com.bumptech.glide.module.AppGlideModule import com.bumptech.glide.module.AppGlideModule
import com.caverock.androidsvg.SVG
import com.caverock.androidsvg.SVGParseException
import java.io.IOException
import java.io.InputStream
@GlideModule @GlideModule
class MyAppGlideModule : AppGlideModule() { class MyAppGlideModule : AppGlideModule() {
// Decodes an SVG internal representation from an [InputStream].
inner class SvgDecoder : ResourceDecoder<InputStream, SVG> {
override fun handles(source : InputStream, options : Options) : Boolean {
// TODO: Can we tell?
return true
}
@Throws(IOException::class)
override fun decode(
source : InputStream, width : Int, height : Int, options : Options
) : Resource<SVG>? {
try {
val svg = SVG.getFromInputStream(source)
return SimpleResource(svg)
} catch(ex : SVGParseException) {
throw IOException("Cannot load SVG from stream", ex)
}
}
}
// Convert the [SVG]'s internal representation to an Android-compatible one ([Picture]).
inner class SvgDrawableTranscoder : ResourceTranscoder<SVG, PictureDrawable> {
@Nullable
override fun transcode(
toTranscode : Resource<SVG>, options : Options
) : Resource<PictureDrawable> {
val svg = toTranscode.get()
val picture = svg.renderToPicture()
val drawable = PictureDrawable(picture)
return SimpleResource(drawable)
}
}
// v3との互換性のためにAndroidManifestを読むかどうか(デフォルトtrue) // v3との互換性のためにAndroidManifestを読むかどうか(デフォルトtrue)
override fun isManifestParsingEnabled() : Boolean { override fun isManifestParsingEnabled() : Boolean {
return false return false
@ -23,6 +70,11 @@ class MyAppGlideModule : AppGlideModule() {
// App1を初期化してからOkHttp3Factoryと連動させる // App1を初期化してからOkHttp3Factoryと連動させる
App1.prepare(context.applicationContext) App1.prepare(context.applicationContext)
App1.registerGlideComponents(context, glide, registry) App1.registerGlideComponents(context, glide, registry)
//SVGデコーダーの追加
registry
.register(SVG::class.java, PictureDrawable::class.java, SvgDrawableTranscoder())
.append(InputStream::class.java, SVG::class.java, SvgDecoder())
} }
override fun applyOptions(context : Context, builder : GlideBuilder) { override fun applyOptions(context : Context, builder : GlideBuilder) {

View File

@ -10,11 +10,14 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.ImageButton import android.widget.ImageButton
import android.widget.ImageView import android.widget.ImageView
import jp.juggler.emoji.EmojiMap
import jp.juggler.subwaytooter.api.entity.TootAccount import jp.juggler.subwaytooter.api.entity.TootAccount
import jp.juggler.subwaytooter.api.entity.TootVisibility import jp.juggler.subwaytooter.api.entity.TootVisibility
import jp.juggler.subwaytooter.span.EmojiImageSpan import jp.juggler.subwaytooter.span.EmojiImageSpan
import jp.juggler.subwaytooter.span.createSpan
import jp.juggler.subwaytooter.table.UserRelation import jp.juggler.subwaytooter.table.UserRelation
import jp.juggler.util.* import jp.juggler.util.*
import kotlin.math.min
object Styler { object Styler {
@ -81,7 +84,7 @@ object Styler {
TootVisibility.DirectSpecified -> R.string.visibility_direct TootVisibility.DirectSpecified -> R.string.visibility_direct
TootVisibility.DirectPrivate -> R.string.visibility_private TootVisibility.DirectPrivate -> R.string.visibility_private
TootVisibility.WebSetting -> R.string.visibility_web_setting TootVisibility.WebSetting -> R.string.visibility_web_setting
TootVisibility.AccountSetting-> R.string.visibility_account_setting TootVisibility.AccountSetting -> R.string.visibility_account_setting
TootVisibility.LocalPublic -> R.string.visibility_local_public TootVisibility.LocalPublic -> R.string.visibility_local_public
TootVisibility.LocalHome -> R.string.visibility_local_home TootVisibility.LocalHome -> R.string.visibility_local_home
@ -94,7 +97,7 @@ object Styler {
TootVisibility.DirectSpecified -> R.string.visibility_direct TootVisibility.DirectSpecified -> R.string.visibility_direct
TootVisibility.DirectPrivate -> R.string.visibility_direct TootVisibility.DirectPrivate -> R.string.visibility_direct
TootVisibility.WebSetting -> R.string.visibility_web_setting TootVisibility.WebSetting -> R.string.visibility_web_setting
TootVisibility.AccountSetting-> R.string.visibility_account_setting TootVisibility.AccountSetting -> R.string.visibility_account_setting
TootVisibility.LocalPublic -> R.string.visibility_local_public TootVisibility.LocalPublic -> R.string.visibility_local_public
TootVisibility.LocalHome -> R.string.visibility_local_unlisted TootVisibility.LocalHome -> R.string.visibility_local_unlisted
@ -283,7 +286,7 @@ object Styler {
fun calcIconRound(wh : Int) = wh.toFloat() * round_ratio fun calcIconRound(wh : Int) = wh.toFloat() * round_ratio
fun calcIconRound(lp : ViewGroup.LayoutParams) = fun calcIconRound(lp : ViewGroup.LayoutParams) =
Math.min(lp.width, lp.height).toFloat() * round_ratio min(lp.width, lp.height).toFloat() * round_ratio
} }
@ -305,18 +308,18 @@ fun SpannableStringBuilder.appendColorShadeIcon(
return this return this
} }
fun SpannableStringBuilder.appendDrawableIcon( fun SpannableStringBuilder.appendMisskeyReaction(
context : Context, context : Context,
drawable_id : Int, emojiUtf16 : String,
text : String text : String
) : SpannableStringBuilder { ) : SpannableStringBuilder {
val start = this.length val start = this.length
this.append(text) this.append(text)
val end = this.length val end = this.length
this.setSpan( this.setSpan(
EmojiImageSpan(context, drawable_id), EmojiMap.sUTF16ToEmojiResource[emojiUtf16] !!.createSpan(context),
start, start, end,
end,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
) )
return this return this

View File

@ -6,7 +6,7 @@ import android.text.Spanned
import android.text.style.ForegroundColorSpan import android.text.style.ForegroundColorSpan
import android.view.View import android.view.View
import android.widget.* import android.widget.*
import jp.juggler.emoji.EmojiMap201709 import jp.juggler.emoji.EmojiMap
import jp.juggler.subwaytooter.action.Action_Follow import jp.juggler.subwaytooter.action.Action_Follow
import jp.juggler.subwaytooter.action.Action_User import jp.juggler.subwaytooter.action.Action_User
import jp.juggler.subwaytooter.api.MisskeyAccountDetailMap import jp.juggler.subwaytooter.api.MisskeyAccountDetailMap
@ -14,6 +14,7 @@ import jp.juggler.subwaytooter.api.entity.TootAccount
import jp.juggler.subwaytooter.api.entity.TootAccountRef import jp.juggler.subwaytooter.api.entity.TootAccountRef
import jp.juggler.subwaytooter.api.entity.TootStatus import jp.juggler.subwaytooter.api.entity.TootStatus
import jp.juggler.subwaytooter.span.EmojiImageSpan import jp.juggler.subwaytooter.span.EmojiImageSpan
import jp.juggler.subwaytooter.span.createSpan
import jp.juggler.subwaytooter.table.AcctColor import jp.juggler.subwaytooter.table.AcctColor
import jp.juggler.subwaytooter.table.UserRelation import jp.juggler.subwaytooter.table.UserRelation
import jp.juggler.subwaytooter.util.DecodeOptions import jp.juggler.subwaytooter.util.DecodeOptions
@ -258,9 +259,9 @@ internal class ViewHolderHeaderProfile(
if(whoDetail?.locked ?: who.locked) { if(whoDetail?.locked ?: who.locked) {
append(" ") append(" ")
val info = EmojiMap201709.sShortNameToImageId["lock"] val info = EmojiMap.sShortNameToEmojiInfo["lock"]
if(info != null) { if(info != null) {
appendSpan("locked", EmojiImageSpan(activity, info.image_id)) appendSpan("locked",info.er.createSpan(activity))
} else { } else {
append("locked") append("locked")
} }
@ -268,9 +269,9 @@ internal class ViewHolderHeaderProfile(
if(who.bot) { if(who.bot) {
append(" ") append(" ")
val info = EmojiMap201709.sShortNameToImageId["robot_face"] val info = EmojiMap.sShortNameToEmojiInfo["robot_face"]
if(info != null) { if(info != null) {
appendSpan("bot", EmojiImageSpan(activity, info.image_id)) appendSpan("bot", info.er.createSpan(activity))
} else { } else {
append("bot") append("bot")
} }

View File

@ -1060,7 +1060,7 @@ object Action_Toot {
val newCode = mr.shortcode val newCode = mr.shortcode
val sb = SpannableStringBuilder() val sb = SpannableStringBuilder()
.appendDrawableIcon(activity, mr.drawableId, " ") .appendMisskeyReaction(activity, mr.emojiUtf16, " ")
.append(' ') .append(' ')
.append(mr.shortcode) .append(mr.shortcode)

View File

@ -4,20 +4,20 @@ import jp.juggler.subwaytooter.R
enum class MisskeyReaction( enum class MisskeyReaction(
val shortcode : String, val shortcode : String,
val drawableId : Int, val emojiUtf16 : String,
val btnDrawableId : Int val btnDrawableId : Int
) { ) {
Like("like", R.drawable.emj_1f44d, R.drawable.btn_reaction_like), Like("like","\ud83d\udc4d", R.drawable.btn_reaction_like),
Love("love", R.drawable.emj_2665_fe0f, R.drawable.btn_reaction_love), Love("love", "\u2665", R.drawable.btn_reaction_love),
Laugh("laugh", R.drawable.emj_1f606, R.drawable.btn_reaction_laugh), Laugh("laugh","\ud83d\ude06", R.drawable.btn_reaction_laugh),
Hmm("hmm", R.drawable.emj_1f914, R.drawable.btn_reaction_hmm), Hmm("hmm", "\ud83e\udd14", R.drawable.btn_reaction_hmm),
Surprise("surprise", R.drawable.emj_1f62e, R.drawable.btn_reaction_surprise), Surprise("surprise", "\ud83d\ude2e", R.drawable.btn_reaction_surprise),
Congrats("congrats", R.drawable.emj_1f389,R.drawable.btn_reaction_congrats), Congrats("congrats", "\ud83c\udf89",R.drawable.btn_reaction_congrats),
Angry("angry", R.drawable.emj_1f4a2, R.drawable.btn_reaction_angry), Angry("angry", "\ud83d\udca2", R.drawable.btn_reaction_angry),
Confused("confused", R.drawable.emj_1f625,R.drawable.btn_reaction_confused), Confused("confused", "\ud83d\ude25",R.drawable.btn_reaction_confused),
Rip("rip", R.drawable.emj_1f607, R.drawable.btn_reaction_rip), Rip("rip", "\ud83d\ude07", R.drawable.btn_reaction_rip),
Pudding("pudding", R.drawable.emj_1f36e, R.drawable.btn_reaction_pudding) Pudding("pudding", "\ud83c\udf6e", R.drawable.btn_reaction_pudding)
; ;

View File

@ -3,6 +3,7 @@ package jp.juggler.subwaytooter.dialog
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.app.Dialog import android.app.Dialog
import android.graphics.drawable.PictureDrawable
import android.util.SparseArray import android.util.SparseArray
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
@ -11,12 +12,11 @@ import android.view.WindowManager
import android.widget.* import android.widget.*
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import com.astuetz.PagerSlidingTabStrip import com.astuetz.PagerSlidingTabStrip
import jp.juggler.emoji.EmojiMap201709 import com.bumptech.glide.Glide
import jp.juggler.subwaytooter.App1
import jp.juggler.subwaytooter.Pref import jp.juggler.emoji.EmojiMap
import jp.juggler.subwaytooter.R import jp.juggler.subwaytooter.*
import jp.juggler.subwaytooter.api.entity.CustomEmoji import jp.juggler.subwaytooter.api.entity.CustomEmoji
import jp.juggler.subwaytooter.put
import jp.juggler.subwaytooter.view.MyViewPager import jp.juggler.subwaytooter.view.MyViewPager
import jp.juggler.subwaytooter.view.NetworkEmojiView import jp.juggler.subwaytooter.view.NetworkEmojiView
import jp.juggler.util.* import jp.juggler.util.*
@ -117,56 +117,56 @@ class EmojiPicker(
page_list.add( page_list.add(
EmojiPickerPage( EmojiPickerPage(
true, true,
EmojiMap201709.CATEGORY_PEOPLE, EmojiMap.CATEGORY_PEOPLE,
R.string.emoji_category_people R.string.emoji_category_people
) )
) )
page_list.add( page_list.add(
EmojiPickerPage( EmojiPickerPage(
true, true,
EmojiMap201709.CATEGORY_NATURE, EmojiMap.CATEGORY_NATURE,
R.string.emoji_category_nature R.string.emoji_category_nature
) )
) )
page_list.add( page_list.add(
EmojiPickerPage( EmojiPickerPage(
true, true,
EmojiMap201709.CATEGORY_FOODS, EmojiMap.CATEGORY_FOODS,
R.string.emoji_category_foods R.string.emoji_category_foods
) )
) )
page_list.add( page_list.add(
EmojiPickerPage( EmojiPickerPage(
true, true,
EmojiMap201709.CATEGORY_ACTIVITY, EmojiMap.CATEGORY_ACTIVITY,
R.string.emoji_category_activity R.string.emoji_category_activity
) )
) )
page_list.add( page_list.add(
EmojiPickerPage( EmojiPickerPage(
true, true,
EmojiMap201709.CATEGORY_PLACES, EmojiMap.CATEGORY_PLACES,
R.string.emoji_category_places R.string.emoji_category_places
) )
) )
page_list.add( page_list.add(
EmojiPickerPage( EmojiPickerPage(
true, true,
EmojiMap201709.CATEGORY_OBJECTS, EmojiMap.CATEGORY_OBJECTS,
R.string.emoji_category_objects R.string.emoji_category_objects
) )
) )
page_list.add( page_list.add(
EmojiPickerPage( EmojiPickerPage(
true, true,
EmojiMap201709.CATEGORY_SYMBOLS, EmojiMap.CATEGORY_SYMBOLS,
R.string.emoji_category_symbols R.string.emoji_category_symbols
) )
) )
page_list.add( page_list.add(
EmojiPickerPage( EmojiPickerPage(
true, true,
EmojiMap201709.CATEGORY_FLAGS, EmojiMap.CATEGORY_FLAGS,
R.string.emoji_category_flags R.string.emoji_category_flags
) )
) )
@ -267,7 +267,7 @@ class EmojiPicker(
val tone = viewRoot.findViewById<View>(selected_tone).tag as SkinTone val tone = viewRoot.findViewById<View>(selected_tone).tag as SkinTone
for(suffix in tone.suffix_list) { for(suffix in tone.suffix_list) {
val new_name = name + suffix val new_name = name + suffix
val info = EmojiMap201709.sShortNameToImageId[new_name] val info = EmojiMap.sShortNameToEmojiInfo[new_name]
if(info != null) return new_name if(info != null) return new_name
} }
return name return name
@ -316,7 +316,7 @@ class EmojiPicker(
} }
else -> ArrayList<EmojiItem>().apply { else -> ArrayList<EmojiItem>().apply {
EmojiMap201709.sCategoryMap.get(category_id)?.emoji_list?.forEach { name -> EmojiMap.sCategoryMap.get(category_id)?.emoji_list?.forEach { name ->
add(EmojiItem(name, null)) add(EmojiItem(name, null))
} }
} }
@ -375,28 +375,7 @@ class EmojiPicker(
val page = this.page ?: throw RuntimeException("page is not assigned") val page = this.page ?: throw RuntimeException("page is not assigned")
val view : View val view : View
val item = page.emoji_list[position] val item = page.emoji_list[position]
if(item.instance == null) { if(item.instance != null) {
if(viewOld == null) {
view = ImageView(activity)
val lp = AbsListView.LayoutParams(wh, wh)
view.layoutParams = lp
} else {
view = viewOld
}
view.tag = item
if(view is ImageView) {
val name = if(page.hasSkinTone) {
applySkinTone(item.name)
} else {
item.name
}
val info = EmojiMap201709.sShortNameToImageId[name]
if(info != null) {
view.setImageResource(info.image_id)
}
}
} else {
if(viewOld == null) { if(viewOld == null) {
view = NetworkEmojiView(activity) view = NetworkEmojiView(activity)
val lp = AbsListView.LayoutParams(wh, wh) val lp = AbsListView.LayoutParams(wh, wh)
@ -404,10 +383,44 @@ class EmojiPicker(
} else { } else {
view = viewOld view = viewOld
} }
view.tag = item view.setTag(R.id.btnAbout,item)
if(view is NetworkEmojiView) { if(view is NetworkEmojiView) {
view.setEmoji(emoji_url_map[item.name]) view.setEmoji(emoji_url_map[item.name])
} }
} else {
if(viewOld == null) {
view = ImageView(activity)
val lp = AbsListView.LayoutParams(wh, wh)
view.layoutParams = lp
} else {
view = viewOld
}
view.setTag(R.id.btnAbout,item)
if(view is ImageView) {
val name = if(page.hasSkinTone) {
applySkinTone(item.name)
} else {
item.name
}
val info = EmojiMap.sShortNameToEmojiInfo[name]
if(info != null) {
val er = info.er
if(er.isSvg){
Glide.with(activity)
.`as`(PictureDrawable::class.java)
.load("file:///android_asset/${er.assetsName}")
.into(view)
}else{
Glide.with(activity)
.load(er.drawableId)
.into(view)
}
}
}
} }
return view return view
@ -424,11 +437,11 @@ class EmojiPicker(
selected(name, item.instance) selected(name, item.instance)
} else { } else {
// 普通の絵文字 // 普通の絵文字
EmojiMap201709.sShortNameToImageId[name] ?: return EmojiMap.sShortNameToEmojiInfo[name] ?: return
if(page.hasSkinTone) { if(page.hasSkinTone) {
val sv = applySkinTone(name) val sv = applySkinTone(name)
if(EmojiMap201709.sShortNameToImageId[sv] != null) { if(EmojiMap.sShortNameToEmojiInfo[sv] != null) {
name = sv name = sv
} }
} }
@ -551,3 +564,4 @@ class EmojiPicker(
} }
} }

View File

@ -6,6 +6,7 @@ import android.graphics.drawable.Drawable
import androidx.annotation.IntRange import androidx.annotation.IntRange
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import android.text.style.ReplacementSpan import android.text.style.ReplacementSpan
import jp.juggler.emoji.EmojiMap
import java.lang.ref.WeakReference import java.lang.ref.WeakReference
@ -118,4 +119,5 @@ class EmojiImageSpan(
canvas.restore() canvas.restore()
} }
} }

View File

@ -0,0 +1,133 @@
package jp.juggler.subwaytooter.span
import android.content.Context
import android.content.res.AssetManager
import android.graphics.Canvas
import android.graphics.Paint
import android.graphics.RectF
import android.text.style.ReplacementSpan
import androidx.annotation.IntRange
import com.caverock.androidsvg.SVG
import jp.juggler.emoji.EmojiMap
import jp.juggler.util.LogCategory
// 絵文字リソースの種類によって異なるスパンを作る
fun EmojiMap.EmojiResource.createSpan(context : Context) = if(isSvg) {
SvgEmojiSpan(context, assetsName!!)
} else {
EmojiImageSpan(context, drawableId)
}
// SVG絵文字スパン
class SvgEmojiSpan internal constructor(
context : Context,
assetsName : String,
private val scale : Float = 1f
) : ReplacementSpan() {
companion object {
internal val log = LogCategory("SvgEmojiSpan")
private var assetsManager : AssetManager? = null
private const val scale_ratio = 1.14f
private const val descent_ratio = 0.211f
// SVGの描画はBitmapを消費しないので、上限なしキャッシュ
private class CacheResult(val svg : SVG?)
private val cacheMap = HashMap<String, CacheResult>()
private fun loadFromCache(assetsName : String) : SVG? {
assetsManager ?: return null
synchronized(cacheMap) {
val item = cacheMap[assetsName]
if(item != null) return item.svg
val svg = try {
SVG.getFromAsset(assetsManager, assetsName)
} catch(ex : Throwable) {
log.trace(ex)
log.e(ex, "getFromAsset failed.")
null
}
cacheMap[assetsName] = CacheResult(svg)
return svg
}
}
}
init {
if(assetsManager == null)
assetsManager = context.applicationContext.assets
}
private val rect_dst = RectF()
private val svg = loadFromCache(assetsName)
override fun getSize(
paint : Paint,
text : CharSequence,
@IntRange(from = 0) start : Int,
@IntRange(from = 0) end : Int,
fm : Paint.FontMetricsInt?
) : Int {
val size = (paint.textSize * scale_ratio * scale + 0.5f).toInt()
if(fm != null) {
val c_descent = (0.5f + size * descent_ratio).toInt()
val c_ascent = c_descent - size
if(fm.ascent > c_ascent) fm.ascent = c_ascent
if(fm.top > c_ascent) fm.top = c_ascent
if(fm.descent < c_descent) fm.descent = c_descent
if(fm.bottom < c_descent) fm.bottom = c_descent
}
return size
}
override fun draw(
canvas : Canvas,
text : CharSequence,
start : Int,
end : Int,
x : Float,
top : Int,
baseline : Int,
bottom : Int,
textPaint : Paint
) {
svg?:return
val src_w = svg.documentWidth // the width in pixels, or -1 if there is no width available.
val src_h = svg.documentHeight // the height in pixels, or -1 if there is no height available.
val srcAspect = if( src_w <= 0f || src_h <=0f){
// widthやheightの情報がない
1f
}else{
src_w / src_h
}
// 絵文字の正方形のサイズ
val dstSize = textPaint.textSize * scale_ratio * scale
// ベースラインから上下方向にずらすオフセット
val c_descent = dstSize * descent_ratio
val transY = baseline - dstSize + c_descent
// 絵文字のアスペクト比から描画範囲の幅と高さを決める
val dstWidth : Float
val dstHeight : Float
if(srcAspect >= 1f) {
dstWidth = dstSize
dstHeight = dstSize / srcAspect
} else {
dstHeight = dstSize
dstWidth = dstSize * srcAspect
}
val dstX = (dstSize - dstWidth) / 2f
val dstY = (dstSize - dstHeight) / 2f
rect_dst.set(x+dstX, transY+dstY , x+dstX+ dstWidth, transY+dstY+ dstHeight )
svg.renderToCanvas(canvas,rect_dst)
}
}

View File

@ -10,7 +10,6 @@ import android.os.SystemClock
import com.caverock.androidsvg.SVG import com.caverock.androidsvg.SVG
import jp.juggler.apng.ApngFrames import jp.juggler.apng.ApngFrames
import jp.juggler.subwaytooter.App1 import jp.juggler.subwaytooter.App1
import jp.juggler.subwaytooter.span.NetworkEmojiSpan
import jp.juggler.util.LogCategory import jp.juggler.util.LogCategory
import java.io.ByteArrayInputStream import java.io.ByteArrayInputStream
import java.lang.ref.WeakReference import java.lang.ref.WeakReference
@ -109,7 +108,7 @@ class CustomEmojiCache(internal val context : Context) {
) : ApngFrames? { ) : ApngFrames? {
try { try {
if(refDrawTarget?.get() == null) { if(refDrawTarget?.get() == null) {
NetworkEmojiSpan.log.e("draw: DrawTarget is null ") log.e("draw: DrawTarget is null ")
return null return null
} }

View File

@ -2,12 +2,12 @@ package jp.juggler.subwaytooter.util
import android.content.Context import android.content.Context
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.annotation.DrawableRes
import android.text.Spannable import android.text.Spannable
import android.text.SpannableStringBuilder import android.text.SpannableStringBuilder
import android.text.Spanned import android.text.Spanned
import android.util.SparseBooleanArray import android.util.SparseBooleanArray
import jp.juggler.emoji.EmojiMap201709 import androidx.annotation.DrawableRes
import jp.juggler.emoji.EmojiMap
import jp.juggler.subwaytooter.App1 import jp.juggler.subwaytooter.App1
import jp.juggler.subwaytooter.Pref import jp.juggler.subwaytooter.Pref
import jp.juggler.subwaytooter.R import jp.juggler.subwaytooter.R
@ -15,6 +15,7 @@ import jp.juggler.subwaytooter.api.entity.CustomEmoji
import jp.juggler.subwaytooter.span.EmojiImageSpan import jp.juggler.subwaytooter.span.EmojiImageSpan
import jp.juggler.subwaytooter.span.HighlightSpan import jp.juggler.subwaytooter.span.HighlightSpan
import jp.juggler.subwaytooter.span.NetworkEmojiSpan import jp.juggler.subwaytooter.span.NetworkEmojiSpan
import jp.juggler.subwaytooter.span.createSpan
import jp.juggler.subwaytooter.table.HighlightWord import jp.juggler.subwaytooter.table.HighlightWord
import jp.juggler.util.codePointBefore import jp.juggler.util.codePointBefore
import java.util.* import java.util.*
@ -25,8 +26,6 @@ object EmojiDecoder {
private const val cpColon = ':'.toInt() private const val cpColon = ':'.toInt()
private const val cpZwsp = '\u200B'.toInt() private const val cpZwsp = '\u200B'.toInt()
private const val cpSharp = '#'.toInt()
fun customEmojiSeparator(pref : SharedPreferences) = if(Pref.bpCustomEmojiSeparatorZwsp(pref)) { fun customEmojiSeparator(pref : SharedPreferences) = if(Pref.bpCustomEmojiSeparatorZwsp(pref)) {
'\u200B' '\u200B'
@ -41,8 +40,7 @@ object EmojiDecoder {
// } // }
fun canStartShortCode(s : CharSequence, index : Int) : Boolean { fun canStartShortCode(s : CharSequence, index : Int) : Boolean {
val cp = s.codePointBefore(index) return when(val cp = s.codePointBefore(index)) {
return when(cp) {
- 1 -> true - 1 -> true
cpColon -> false cpColon -> false
cpZwsp -> true cpZwsp -> true
@ -74,9 +72,9 @@ object EmojiDecoder {
fun canStartHashtag(s : CharSequence, index : Int) : Boolean { fun canStartHashtag(s : CharSequence, index : Int) : Boolean {
val cp = s.codePointBefore(index) val cp = s.codePointBefore(index)
// HASHTAG_RE = /(?:^|[^\/\)\w])#(#{HASHTAG_NAME_RE})/i // HASHTAG_RE = /(?:^|[^\/\)\w])#(#{HASHTAG_NAME_RE})/i
return if( cp >= 0x80){ return if(cp >= 0x80) {
true true
}else when(cp.toChar()) { } else when(cp.toChar()) {
'/' -> false '/' -> false
')' -> false ')' -> false
'_' -> false '_' -> false
@ -157,26 +155,46 @@ object EmojiDecoder {
} }
} }
internal fun addImageSpan(text : String, er: EmojiMap.EmojiResource) {
val context = options.context
if(context == null) {
openNormalText()
sb.append(text)
} else {
closeNormalText()
val start = sb.length
sb.append(text)
val end = sb.length
sb.setSpan(
er.createSpan(context),
start,
end,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
)
}
}
val evs = EmojiMap.EmojiResource(0)
internal fun addUnicodeString(s : String) { internal fun addUnicodeString(s : String) {
var i = 0 var i = 0
val end = s.length val end = s.length
while(i < end) { while(i < end) {
val remain = end - i val remain = end - i
var emoji : String? = null var emoji : String? = null
var image_id : Int? = null var emojiResource : EmojiMap.EmojiResource? = null
for(j in EmojiMap201709.utf16_max_length downTo 1) { for(j in EmojiMap.utf16_max_length downTo 1) {
if(j > remain) continue if(j > remain) continue
val check = s.substring(i, i + j) val check = s.substring(i, i + j)
image_id = EmojiMap201709.sUTF16ToImageId[check] ?: continue emojiResource = EmojiMap.sUTF16ToEmojiResource[check] ?: continue
emoji = if(j < remain && s[i + j].toInt() == 0xFE0E) { emoji = if(j < remain && s[i + j].toInt() == 0xFE0E) {
// 絵文字バリエーション・シーケンスEVSのU+FE0EVS-15が直後にある場合 // 絵文字バリエーション・シーケンスEVSのU+FE0EVS-15が直後にある場合
// その文字を絵文字化しない // その文字を絵文字化しない
image_id = 0 emojiResource = evs
s.substring(i, i + j + 1) s.substring(i, i + j + 1)
} else { } else {
check check
@ -185,14 +203,14 @@ object EmojiDecoder {
break break
} }
if(image_id != null && emoji != null) { if(emojiResource != null && emoji != null) {
if(image_id == 0) { if(emojiResource == evs) {
// 絵文字バリエーション・シーケンスEVSのU+FE0EVS-15が直後にある場合 // 絵文字バリエーション・シーケンスEVSのU+FE0EVS-15が直後にある場合
// その文字を絵文字化しない // その文字を絵文字化しない
openNormalText() openNormalText()
sb.append(emoji) sb.append(emoji)
} else { } else {
addImageSpan(emoji, image_id) addImageSpan(emoji, emojiResource)
} }
i += emoji.length i += emoji.length
} else { } else {
@ -238,7 +256,7 @@ object EmojiDecoder {
private fun splitShortCode( private fun splitShortCode(
s : String, s : String,
startArg : Int, @Suppress("SameParameterValue") startArg : Int,
end : Int, end : Int,
callback : ShortCodeSplitterCallback callback : ShortCodeSplitterCallback
) { ) {
@ -344,9 +362,10 @@ object EmojiDecoder {
} }
// 通常の絵文字 // 通常の絵文字
val info = EmojiMap201709.sShortNameToImageId[name.toLowerCase().replace('-', '_')] val info =
EmojiMap.sShortNameToEmojiInfo[name.toLowerCase(Locale.JAPAN).replace('-', '_')]
if(info != null) { if(info != null) {
builder.addImageSpan(part, info.image_id) builder.addImageSpan(part, info.er)
return return
} }
@ -394,7 +413,7 @@ object EmojiDecoder {
} }
// カスタム絵文字ではなく通常の絵文字のショートコードなら絵文字に変換する // カスタム絵文字ではなく通常の絵文字のショートコードなら絵文字に変換する
val info = EmojiMap201709.sShortNameToImageId[name.toLowerCase().replace('-', '_')] val info = EmojiMap.sShortNameToEmojiInfo[name.toLowerCase(Locale.JAPAN).replace('-', '_')]
sb.append(info?.unified ?: part) sb.append(info?.unified ?: part)
} }
}) })
@ -409,11 +428,11 @@ object EmojiDecoder {
limit : Int limit : Int
) : ArrayList<CharSequence> { ) : ArrayList<CharSequence> {
val dst = ArrayList<CharSequence>() val dst = ArrayList<CharSequence>()
for(shortCode in EmojiMap201709.sShortNameList) { for(shortCode in EmojiMap.sShortNameList) {
if(dst.size >= limit) break if(dst.size >= limit) break
if(! shortCode.contains(prefix)) continue if(! shortCode.contains(prefix)) continue
val info = EmojiMap201709.sShortNameToImageId[shortCode] ?: continue val info = EmojiMap.sShortNameToEmojiInfo[shortCode] ?: continue
val sb = SpannableStringBuilder() val sb = SpannableStringBuilder()
val start = 0 val start = 0
@ -421,7 +440,7 @@ object EmojiDecoder {
val end = sb.length val end = sb.length
sb.setSpan( sb.setSpan(
EmojiImageSpan(context, info.image_id), info.er.createSpan(context),
start, start,
end, end,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE Spanned.SPAN_EXCLUSIVE_EXCLUSIVE

View File

@ -8,7 +8,7 @@ import androidx.appcompat.app.AppCompatActivity
import android.text.* import android.text.*
import android.text.style.ForegroundColorSpan import android.text.style.ForegroundColorSpan
import android.view.View import android.view.View
import jp.juggler.emoji.EmojiMap201709 import jp.juggler.emoji.EmojiMap
import jp.juggler.subwaytooter.App1 import jp.juggler.subwaytooter.App1
import jp.juggler.subwaytooter.Pref import jp.juggler.subwaytooter.Pref
import jp.juggler.subwaytooter.R import jp.juggler.subwaytooter.R
@ -962,7 +962,7 @@ class PostHelper(
bInstanceHasCustomEmoji : Boolean bInstanceHasCustomEmoji : Boolean
) : SpannableStringBuilder { ) : SpannableStringBuilder {
val item = EmojiMap201709.sShortNameToImageId[name] val item = EmojiMap.sShortNameToEmojiInfo[name]
val separator = EmojiDecoder.customEmojiSeparator(pref) val separator = EmojiDecoder.customEmojiSeparator(pref)
if(item == null || instance != null) { if(item == null || instance != null) {
// カスタム絵文字は常にshortcode表現 // カスタム絵文字は常にshortcode表現

View File

@ -19,7 +19,7 @@
android:id="@+id/btnSkinTone1" android:id="@+id/btnSkinTone1"
android:layout_width="48dp" android:layout_width="48dp"
android:layout_height="48dp" android:layout_height="48dp"
android:background="@drawable/emj_1f3fb" android:background="#f7dece"
android:contentDescription="@string/skin_tone_light" android:contentDescription="@string/skin_tone_light"
android:src="@drawable/emj_2714_fe0f" android:src="@drawable/emj_2714_fe0f"
/> />
@ -28,7 +28,7 @@
android:id="@+id/btnSkinTone2" android:id="@+id/btnSkinTone2"
android:layout_width="48dp" android:layout_width="48dp"
android:layout_height="48dp" android:layout_height="48dp"
android:background="@drawable/emj_1f3fc" android:background="#f3d2a2"
android:contentDescription="@string/skin_tone_medium_light" android:contentDescription="@string/skin_tone_medium_light"
/> />
@ -36,7 +36,7 @@
android:id="@+id/btnSkinTone3" android:id="@+id/btnSkinTone3"
android:layout_width="48dp" android:layout_width="48dp"
android:layout_height="48dp" android:layout_height="48dp"
android:background="@drawable/emj_1f3fd" android:background="#d5ab88"
android:contentDescription="@string/skin_tone_medium" android:contentDescription="@string/skin_tone_medium"
/> />
@ -44,7 +44,7 @@
android:id="@+id/btnSkinTone4" android:id="@+id/btnSkinTone4"
android:layout_width="48dp" android:layout_width="48dp"
android:layout_height="48dp" android:layout_height="48dp"
android:background="@drawable/emj_1f3fe" android:background="#af7e57"
android:contentDescription="@string/skin_tone_medium_dark" android:contentDescription="@string/skin_tone_medium_dark"
/> />
@ -52,7 +52,7 @@
android:id="@+id/btnSkinTone5" android:id="@+id/btnSkinTone5"
android:layout_width="48dp" android:layout_width="48dp"
android:layout_height="48dp" android:layout_height="48dp"
android:background="@drawable/emj_1f3ff" android:background="#7c533e"
android:contentDescription="@string/skin_tone_dark" android:contentDescription="@string/skin_tone_dark"
/> />
</LinearLayout> </LinearLayout>

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E6E7E8" d="M32 32c0 2.209-1.791 4-4 4H8c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h20c2.209 0 4 1.791 4 4v28z"/><path fill="#BE1931" d="M8.397 11.891c.53 0 .996.078 1.392.232.244.066.453.143.63.231.796-.044 1.612-.122 2.453-.231 1.104-.134 2.463-.297 4.076-.497V9.307c0-1.613-.188-2.948-.563-4.01-.155-.332-.233-.552-.233-.662 0-.331.133-.498.398-.498.706 0 1.359.089 1.954.266.686.198 1.028.453 1.028.761 0 .111-.042.342-.134.696-.265.685-.395 1.955-.395 3.811v1.723c1.299-.132 2.723-.276 4.271-.43.706-.045 1.381-.166 2.023-.366.463-.088.739-.132.83-.132.264 0 .837.222 1.72.662.928.553 1.394.984 1.394 1.293 0 .242-.12.486-.362.729-.819.881-1.408 1.809-1.759 2.782l-.798 1.691c-.13.329-.276.583-.426.76l.128.067c.508.311.761.586.761.829 0 .198-.183.309-.56.332-1.699 0-3.236.088-4.606.266l-2.614.196-.034 4.442c0 2.009-.069 3.62-.198 4.838-.133 1.368-.333 2.341-.598 2.914-.245.488-.445.733-.598.733-.089 0-.232-.266-.431-.798-.132-.617-.198-1.687-.198-3.214v-8.749l-1.789.167c-1.194.111-2.111.168-2.75.168-.266 0-.488-.024-.664-.069-.044.2-.11.376-.198.533-.133.287-.277.43-.432.43-.198 0-.385-.154-.562-.465-.287-.438-.442-.892-.464-1.358l-.398-2.585c-.155-1.348-.332-2.286-.531-2.818-.111-.551-.409-1.081-.894-1.59-.177-.11-.266-.186-.266-.23 0-.354.133-.531.397-.531zm3.347 7.221c1.812-.085 3.545-.196 5.203-.328v-6.132c-1.702.199-3.347.464-4.937.796-.31.111-.597.188-.862.232 0 .265.022.53.067.793.265 2.013.441 3.561.529 4.639zm7.259-6.69v6.163c.728-.087 1.435-.179 2.119-.265 1.326-.178 2.286-.286 2.879-.331.048-.11.103-.232.168-.363.199-.641.463-1.646.798-3.016.264-1.084.394-1.768.394-2.056 0-.353-.339-.529-1.024-.529-1.041 0-2.696.121-4.973.363-.13-.001-.254.012-.361.034z"/></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E6E7E8" d="M32 32c0 2.209-1.791 4-4 4H8c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h20c2.209 0 4 1.791 4 4v28z"/><path fill="#DD2E44" d="M11 7c-2.519 0-4.583 1.87-4.929 4.293C6.802 10.503 7.839 10 9 10c2.209 0 4 1.791 4 4 0 2 1.497 2.198.707 2.929C16.13 16.583 16 14.519 16 12c0-2.761-2.239-5-5-5z"/><path fill="#55ACEE" d="M23 14c0-2.209 1.791-4 4-4 1.161 0 2.198.503 2.929 1.293C29.583 8.87 27.52 7 25 7c-2.762 0-5 2.239-5 5 0 2.519-.131 4.583 2.293 4.929C21.503 16.198 23 16 23 14z"/><path fill="#FFAC33" d="M14 12c0-4.971 4-9 4-9s4 4.029 4 9-1.791 9-4 9-4-4.029-4-9z"/><path fill="#553788" d="M11.707 21.071C12.497 21.802 13 22.839 13 24c0 2.209-1.791 4-4 4-1.161 0-2.198-.503-2.929-1.293C6.417 29.131 8.481 31 11 31c2.761 0 5-2.238 5-5 0-2.52-1.87-4.583-4.293-4.929zM27 28c-2.209 0-4-1.791-4-4 0-1.161.503-2.198 1.293-2.929C21.869 21.417 20 23.48 20 26c0 2.762 2.238 5 5 5 2.52 0 4.583-1.869 4.929-4.293C29.198 27.497 28.161 28 27 28z"/><path fill="#9266CC" d="M14 24c0 4.971 3 9 4 9s4-4.029 4-9c0-.874-.055-1.719-.159-2.519C21.357 17.737 19.82 15 18 15c-1.82 0-3.357 2.737-3.841 6.481-.104.8-.159 1.645-.159 2.519z"/><path fill="#EDBB9F" d="M13 17c0-3.866 3-4 5-4s5 .134 5 4c0 3.865-2.238 7-5 7-2.761 0-5-3.135-5-7z"/><circle fill="#662113" cx="16" cy="17" r="1"/><circle fill="#662113" cx="20" cy="17" r="1"/><path fill="#662113" d="M18 22c1.104 0 2-.896 2-2h-4c0 1.104.896 2 2 2z"/><circle fill="#A0041E" cx="6" cy="11" r="1"/><circle fill="#269" cx="30" cy="11" r="1"/><circle fill="#DD2E44" cx="18" cy="3" r="1"/></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v28z"/><path fill="#FFF" d="M7.15 10.072c.476-1.288 1.567-2.324 2.996-2.324 1.483 0 2.52.979 2.996 2.324l5.488 15.231c.168.448.224.84.224 1.036 0 1.092-.896 1.848-1.932 1.848-1.177 0-1.765-.616-2.044-1.456L14 24H6.28l-.866 2.703c-.28.868-.868 1.484-2.016 1.484-1.12 0-2.072-.84-2.072-1.96 0-.448.14-.784.196-.924L7.15 10.072zm.308 10.163h5.32l-2.604-8.119h-.056l-2.66 8.119zM20 10.1c0-1.344.924-2.1 2.212-2.1h5.376c2.912 0 5.265 1.96 5.265 4.928 0 1.96-.812 3.276-2.605 4.116v.056c2.38.336 4.256 2.424 4.256 4.859 0 3.948-2.632 6.041-6.496 6.041H22.24c-1.288 0-2.24-.876-2.24-2.192V10.1zm4.2 5.9h2.184c1.372 0 2.268-.815 2.268-2.216 0-1.315-1.036-2.088-2.268-2.088H24.2V16zm0 8h3.304c1.513 0 2.632-.729 2.632-2.296 0-1.315-1.008-2.112-2.968-2.112H24.2V24z"/></svg>

After

Width:  |  Height:  |  Size: 942 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v28z"/><path d="M12.81 6.552c2.263 0 6.667.744 6.667 3.473 0 1.116-.776 2.077-1.923 2.077-1.271 0-2.139-1.085-4.744-1.085-3.845 0-5.829 3.256-5.829 7.038 0 3.689 2.015 6.852 5.829 6.852 2.605 0 3.658-1.302 4.93-1.302 1.395 0 2.046 1.395 2.046 2.107 0 2.977-4.682 3.659-6.976 3.659-6.294 0-10.666-4.992-10.666-11.41 0-6.448 4.341-11.409 10.666-11.409zm8.522 2.604c0-1.55.992-2.418 2.326-2.418s2.326.868 2.326 2.418V24.72h5.518c1.582 0 2.264 1.179 2.232 2.232-.06 1.025-.867 2.048-2.232 2.048h-7.75c-1.52 0-2.42-.992-2.42-2.543V9.156z" fill="#FFF"/></svg>

After

Width:  |  Height:  |  Size: 731 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3B88C3" d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v28z"/><g fill="#FFF"><path d="M5.97 12.858c1.022 0 3.012.336 3.012 1.569 0 .504-.35.939-.869.939-.574 0-.966-.49-2.143-.49-1.737 0-2.633 1.471-2.633 3.18 0 1.667.911 3.096 2.633 3.096 1.177 0 1.653-.589 2.227-.589.63 0 .925.631.925.953 0 1.345-2.115 1.652-3.152 1.652-2.843 0-4.818-2.255-4.818-5.154-.001-2.914 1.96-5.156 4.818-5.156z"/><path d="M8.865 18.014c0-2.914 1.961-5.155 4.818-5.155 2.815 0 4.819 2.311 4.819 5.155 0 2.899-1.947 5.154-4.819 5.154-2.843 0-4.818-2.255-4.818-5.154zm7.452 0c0-1.695-.882-3.222-2.633-3.222s-2.633 1.526-2.633 3.222c0 1.709.855 3.222 2.633 3.222s2.633-1.513 2.633-3.222zm2.656 0c0-2.914 1.96-5.155 4.818-5.155 2.816 0 4.818 2.311 4.818 5.155 0 2.899-1.945 5.154-4.818 5.154-2.843 0-4.818-2.255-4.818-5.154zm7.453 0c0-1.695-.883-3.222-2.635-3.222-1.75 0-2.633 1.526-2.633 3.222 0 1.709.854 3.222 2.633 3.222 1.779-.001 2.635-1.513 2.635-3.222zm2.767-3.979c0-.7.447-1.093 1.051-1.093.602 0 1.051.393 1.051 1.093v7.032h2.492c.715 0 1.023.532 1.01 1.008-.029.463-.393.925-1.01.925h-3.502c-.686 0-1.092-.448-1.092-1.148v-7.817z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3B88C3" d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v28z"/><path d="M1.836 12.585c0-.738.504-1.404 1.405-1.404H7.85c.792 0 1.206.612 1.206 1.242 0 .612-.396 1.243-1.206 1.243H4.538v2.629h2.791c.864 0 1.296.612 1.296 1.224 0 .631-.432 1.261-1.296 1.261H4.538v3.925c0 .9-.576 1.405-1.351 1.405-.774 0-1.351-.505-1.351-1.405v-10.12zm7.992 0c0-.864.486-1.404 1.387-1.404h3.169c2.773 0 4.483 1.242 4.483 4.069 0 1.981-1.495 3.115-3.331 3.403l3.061 3.277c.252.269.36.54.36.792 0 .702-.558 1.387-1.351 1.387-.324 0-.756-.126-1.044-.469l-3.998-4.843h-.036v3.906c0 .9-.576 1.405-1.351 1.405-.774 0-1.351-.505-1.351-1.405V12.585zm2.701 4.267h1.854c.99 0 1.674-.594 1.674-1.603 0-1.026-.684-1.584-1.674-1.584h-1.854v3.187zm6.948-4.105c0-.9.449-1.566 1.404-1.566h4.465c.865 0 1.279.612 1.279 1.242 0 .612-.434 1.243-1.279 1.243h-3.168v2.629h2.952c.882 0 1.313.612 1.313 1.242 0 .612-.449 1.242-1.313 1.242h-2.952v2.737h3.33c.865 0 1.279.611 1.279 1.242 0 .612-.434 1.242-1.279 1.242h-4.644c-.793 0-1.387-.54-1.387-1.351v-9.902zm7.974 0c0-.9.449-1.566 1.404-1.566h4.465c.863 0 1.277.612 1.277 1.242 0 .612-.432 1.243-1.277 1.243h-3.17v2.629h2.953c.883 0 1.314.612 1.314 1.242 0 .612-.449 1.242-1.314 1.242H30.15v2.737h3.332c.863 0 1.277.611 1.277 1.242 0 .612-.432 1.242-1.277 1.242h-4.646c-.791 0-1.385-.54-1.385-1.351v-9.902z" fill="#FFF"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#9266CC" d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v28z"/><path d="M5.717 9.156c0-1.55.992-2.418 2.325-2.418s2.325.868 2.325 2.418v17.611c0 1.551-.992 2.418-2.325 2.418s-2.325-.867-2.325-2.418V9.156zm7.44.156c0-1.427.992-2.388 2.387-2.388h5.148c6.945 0 10.914 4.465 10.914 11.348C31.605 24.783 27.389 29 21.001 29h-5.395c-1.023 0-2.449-.559-2.449-2.325V9.312zm4.65 15.409h3.132c4 0 5.828-2.945 5.828-6.666 0-3.969-1.859-6.852-6.139-6.852h-2.822v13.518z" fill="#FFF"/></svg>

After

Width:  |  Height:  |  Size: 600 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3B88C3" d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v28z"/><path d="M1.527 13.121c0-.85.544-1.326 1.275-1.326.323 0 .85.255 1.071.561l5.388 7.191h.034v-6.426c0-.85.544-1.326 1.275-1.326.731 0 1.275.476 1.275 1.326v9.655c0 .85-.544 1.325-1.275 1.325-.323 0-.833-.255-1.071-.561L4.11 16.434h-.033v6.341c0 .85-.544 1.325-1.275 1.325-.731 0-1.275-.476-1.275-1.325v-9.654zm11.067.255c0-.85.425-1.479 1.326-1.479h4.215c.816 0 1.207.578 1.207 1.173 0 .578-.407 1.173-1.207 1.173h-2.992v2.481h2.788c.833 0 1.24.578 1.24 1.173 0 .578-.424 1.173-1.24 1.173h-2.788v2.584h3.145c.816 0 1.206.578 1.206 1.173 0 .578-.407 1.173-1.206 1.173h-4.386c-.748 0-1.309-.51-1.309-1.274v-9.35zm7.31.119c-.051-.221-.068-.34-.068-.578 0-.544.459-1.122 1.207-1.122.816 0 1.207.476 1.359 1.224l1.445 7.224h.034l2.21-7.445c.188-.612.697-1.003 1.326-1.003.629 0 1.139.391 1.326 1.003l2.209 7.445h.033l1.445-7.224c.152-.748.545-1.224 1.359-1.224.748 0 1.207.578 1.207 1.122 0 .238-.016.357-.068.578l-2.158 9.281c-.17.714-.73 1.325-1.682 1.325-.834 0-1.48-.544-1.684-1.24l-1.97-6.561H27.4l-1.972 6.561c-.204.696-.851 1.24-1.683 1.24-.952 0-1.514-.611-1.684-1.325l-2.157-9.281z" fill="#FFF"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3B88C3" d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v28z"/><path d="M2.508 10.639c0-1.2.768-1.872 1.8-1.872.456 0 1.2.36 1.512.792l7.608 10.153h.048v-9.073c0-1.2.768-1.872 1.8-1.872s1.8.672 1.8 1.872v13.633c0 1.2-.768 1.872-1.8 1.872-.456 0-1.176-.359-1.512-.792L6.157 15.319h-.048v8.953c0 1.2-.768 1.872-1.8 1.872s-1.8-.672-1.8-1.872V10.639zm29.402 5.232c1.512 0 2.111.768 2.111 2.305 0 4.632-3.024 8.112-7.824 8.112-4.873 0-8.257-3.864-8.257-8.833 0-4.992 3.36-8.833 8.257-8.833 3.623 0 6.6 1.704 6.6 3.384 0 1.032-.647 1.68-1.488 1.68-1.631 0-1.967-1.752-5.111-1.752-3 0-4.513 2.616-4.513 5.52 0 2.929 1.464 5.521 4.513 5.521 1.896 0 4.08-1.056 4.08-3.792H27.83c-.984 0-1.682-.696-1.682-1.681 0-1.008.77-1.632 1.682-1.632h4.08z" fill="#FFF"/></svg>

After

Width:  |  Height:  |  Size: 877 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3B88C3" d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v28z"/><path d="M1.933 17.455c0-4.992 3.36-8.833 8.256-8.833 4.825 0 8.257 3.96 8.257 8.833 0 4.969-3.336 8.833-8.257 8.833-4.872 0-8.256-3.864-8.256-8.833zm12.769 0c0-2.904-1.512-5.52-4.513-5.52-3 0-4.512 2.616-4.512 5.52 0 2.929 1.464 5.521 4.512 5.521 3.048 0 4.513-2.592 4.513-5.521zm5.23-6.913c0-.984.721-1.776 1.801-1.776 1.031 0 1.8.672 1.8 1.776v5.185l5.905-6.289c.264-.288.719-.672 1.391-.672.912 0 1.777.696 1.777 1.728 0 .624-.385 1.128-1.176 1.92l-4.537 4.464 5.545 5.785c.576.576 1.008 1.103 1.008 1.824 0 1.128-.889 1.655-1.873 1.655-.695 0-1.15-.407-1.824-1.128l-6.216-6.721v6.121c0 .936-.72 1.728-1.8 1.728-1.032 0-1.801-.672-1.801-1.728V10.542z" fill="#FFF"/></svg>

After

Width:  |  Height:  |  Size: 860 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v28z"/><path d="M9.762 12.518c0 .78-.52 1.48-1.34 1.48-.82 0-1.46-.6-2.661-.6-.86 0-1.641.46-1.641 1.3 0 2.06 6.682.74 6.682 5.901 0 2.861-2.361 4.642-5.121 4.642-1.541 0-4.861-.36-4.861-2.24 0-.78.521-1.421 1.34-1.421.94 0 2.061.78 3.361.78 1.32 0 2.041-.74 2.041-1.721 0-2.36-6.682-.94-6.682-5.581 0-2.801 2.301-4.541 4.961-4.541 1.121 0 3.921.42 3.921 2.001zm1.358 5.361c0-4.161 2.801-7.362 6.882-7.362 4.02 0 6.881 3.3 6.881 7.362 0 4.141-2.78 7.361-6.881 7.361-4.061 0-6.882-3.22-6.882-7.361zm10.643 0c0-2.421-1.261-4.602-3.761-4.602-2.501 0-3.761 2.181-3.761 4.602 0 2.44 1.22 4.601 3.761 4.601 2.541-.001 3.761-2.161 3.761-4.601zm12.38-5.361c0 .78-.521 1.48-1.342 1.48s-1.459-.6-2.66-.6c-.859 0-1.641.46-1.641 1.3 0 2.06 6.682.74 6.682 5.901 0 2.861-2.359 4.642-5.121 4.642-1.539 0-4.861-.36-4.861-2.24 0-.78.521-1.421 1.342-1.421.939 0 2.061.78 3.359.78 1.32 0 2.041-.74 2.041-1.721 0-2.36-6.682-.94-6.682-5.581 0-2.801 2.301-4.541 4.961-4.541 1.121 0 3.922.42 3.922 2.001z" fill="#FFF"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#3B88C3" d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v28z"/><path d="M2.281 11.562c0-1.05.672-1.638 1.575-1.638s1.575.588 1.575 1.638v7.328c0 1.932 1.239 3.464 3.233 3.464 1.911 0 3.212-1.616 3.212-3.464v-7.328c0-1.05.672-1.638 1.575-1.638.903 0 1.575.588 1.575 1.638v7.496c0 3.527-2.898 6.193-6.362 6.193-3.506 0-6.383-2.625-6.383-6.193v-7.496zm14.511.127c0-.987.588-1.638 1.638-1.638h3.717c3.086 0 5.375 2.016 5.375 5.018 0 3.066-2.373 4.976-5.25 4.976h-2.33v3.443c0 1.05-.672 1.638-1.575 1.638-.903 0-1.575-.588-1.575-1.638V11.689zm3.149 5.584h2.142c1.323 0 2.163-.966 2.163-2.225 0-1.26-.84-2.226-2.163-2.226h-2.142v4.451zm9.45 6.341c0-.903.736-1.638 1.639-1.638s1.637.734 1.637 1.638c0 .903-.734 1.638-1.637 1.638s-1.639-.734-1.639-1.638zm.127-12.387c0-.882.65-1.428 1.512-1.428.84 0 1.512.567 1.512 1.428v8.084c0 .86-.672 1.428-1.512 1.428-.861 0-1.512-.547-1.512-1.428v-8.084z" fill="#FFF"/></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F4900C" d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v28z"/><path fill="#FFF" d="M16.98 7.14c-1.02 0-1.649.66-2.04 1.47l-4.649 12.479L5.64 8.61c-.39-.81-1.019-1.47-2.039-1.47-1.201 0-2.311.9-2.311 2.16 0 .42.06.721.21 1.11l6.57 16.71c.391.959.9 1.738 2.221 1.738 1.32 0 1.83-.779 2.22-1.738l6.57-16.71c.15-.39.209-.69.209-1.11-.001-1.26-1.11-2.16-2.31-2.16zm7.71 6.089c0-1.26 1.17-1.949 2.461-1.949 1.799 0 2.76.899 3.99.899 1.228 0 2.01-1.05 2.01-2.22 0-2.37-4.201-3-5.881-3-3.99 0-7.439 2.609-7.439 6.811 0 6.959 10.02 4.828 10.02 8.369 0 1.471-1.08 2.58-3.059 2.58-1.951 0-3.631-1.17-5.041-1.17-1.231 0-2.01.959-2.01 2.129 0 2.82 4.981 3.361 7.289 3.361 4.141 0 7.68-2.67 7.68-6.961-.001-7.738-10.02-5.759-10.02-8.849z"/></svg>

After

Width:  |  Height:  |  Size: 855 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D01C3A" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#0020A8" d="M4 5C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h8V5H4z"/><path fill="#FEDF00" d="M12 5h12v26H12z"/><path fill="#C7B37F" d="M23.035 19.641c-.159-.472-.563-.382-.563-.225 0 0-.539-.39-.135-1.104 0 0 .786.093.337-.514 0 0 .674-.382.696-1.168.022-.787-.876-1.281-1.258-.967 0 0-.023-.314-.18-.314s-.247.202-.247.202.023-.517.359-.809c.337-.292 1.033-1.079-.428-1.528-1.46-.449-1.527.473-1.303.675 0 0-.359.201-.764.179-.404-.021-.113-.493-.023-.696.09-.202.023-.921-.473-.898-.494.022-.517.225-.696.292-.177.066-.357.021-.357.021s-.18.045-.36-.023c-.179-.067-.202-.269-.696-.292-.495-.023-.562.696-.472.898.09.203.382.675-.023.696-.404.022-.764-.179-.764-.179.225-.202.157-1.124-1.303-.675-1.46.449-.764 1.236-.427 1.528.337.292.36.809.36.809s-.09-.202-.248-.202c-.157 0-.179.314-.179.314-.382-.314-1.281.18-1.259.967.023.786.697 1.168.697 1.168-.45.606.337.514.337.514.404.715-.135 1.104-.135 1.104 0-.157-.404-.247-.564.225-.159.472.316.629.316.629-.629.81-.225 1.573.382 2.022.607.449 1.775.383 2.359.427.584.045.697.337.697.337-.449.428.225.765.225.765.135.449.674-.045.674-.045l.383.338.382-.337s.54.494.674.045c0 0 .675-.337.225-.765 0 0 .113-.292.697-.337.584-.044 1.753.022 2.359-.427.606-.449 1.011-1.213.382-2.022 0 .001.475-.157.316-.628z"/><path fill="#D01C3A" d="M17.82 17.641v-2.966h-2.966v2.966h2.966z"/><path fill="#FEDF00" d="M15.933 16.506l-.882.91.138.157.744-.82zm1.449-1.157s.391.102.391-.247-.234-.349-.312-.349c-.079 0-.438.057-.45.202-.011.146.141.236.059.315-.081.078-.302.273-.302.273l.131.156s.188-.156.337-.373c.076-.11.018-.378.09-.394.213-.044.292.057.281.136-.011.078-.146.157-.146.157l-.079.124z"/><path fill="#FFF" d="M16.652 16.91s.056.416.258.438c.202.022.27-.646.601-.646.332 0 .365.579 0 .669l-.05-.168s.236-.236.067-.271c-.168-.033-.247.18-.269.271-.023.09-.158.325-.36.325-.337 0-.382-.309-.433-.547-.05-.239.186-.071.186-.071zm-.6 0s-.056.416-.259.438c-.202.022-.27-.646-.601-.646-.332 0-.366.579 0 .669l.05-.168s-.236-.236-.067-.271c.168-.033.247.18.269.271.023.09.157.325.359.325.337 0 .382-.309.433-.547.052-.239-.184-.071-.184-.071z"/><path fill="#FFF" d="M16.394 14.798l.865 1.101-.433 1.18s-.174-.102-.433-.102-.461.102-.461.102l-.46-1.191.922-1.09z"/><path fill="#FEDF00" d="M16.466 15.18l.604.725-.306.927-.292-.09zm-.199 0l-.604.725.306.927.292-.09zm-1.413 2.73v1.843c0 1.214.886 1.381 1.648 1.214.614-.136 1.318 0 1.318 0V17.91h-2.966z"/><path d="M16.502 20.967l.06-.012V17.91h-.45v3.108c.131-.005.262-.024.39-.051zm.959-.046V17.91h-.45v2.998c.165-.005.32.002.45.013zm-1.798.058V17.91h-.449v2.841c.127.115.282.189.449.228z" fill="#D01C3A"/><path fill="#FEDF00" d="M18.18 17.641v-2.966h2.966v2.966H18.18z"/><path fill="#D01C3A" d="M18.539 14.675h.45v2.966h-.45zm.899 0h.45v2.966h-.45zm.899 0h.449v2.966h-.449z"/><path fill="#FEDF00" d="M21.146 17.91v1.843c0 1.214-.886 1.381-1.648 1.214-.614-.136-1.318 0-1.318 0V17.91h2.966z"/><path fill="#D01C3A" d="M18.629 18.404l.281-.225h.348v.181s.495-.008.899-.049c.404-.042.528.262.404.34-.123.079.022.383 0 .528-.022.146-.292.359-.225.236.067-.124 0-.461 0-.461s-.078.259-.146.337c-.068.079-.304.09-.214.023s.18-.213.101-.292c-.078-.078-.431-.09-.446-.056-.014.033-.081.426-.126.449-.046.022-.102-.034-.068-.157.034-.124 0-.337 0-.337s-.235-.012-.225.09c.012.101.113.146.091.225-.023.078-.169.18-.18.045-.012-.135-.236-.225-.135-.292.101-.067.203-.173.203-.173s-.127-.029-.216-.153c-.09-.123-.166-.112-.346-.112-.09 0 0-.147 0-.147zm0 1.349l.281-.225h.348v.18s.495-.007.899-.049c.404-.041.528.262.404.341-.123.079.022.382 0 .528-.022.146-.292.358-.225.236.067-.124 0-.461 0-.461s-.078.258-.146.337c-.068.079-.304.09-.214.022.09-.067.18-.214.101-.292-.078-.078-.431-.09-.446-.057-.014.034-.081.427-.126.45-.046.021-.102-.034-.068-.158.034-.123 0-.337 0-.337s-.235-.011-.225.09c.012.101.113.146.091.225-.023.079-.169.181-.18.045-.012-.134-.236-.225-.135-.292.101-.067.203-.173.203-.173s-.127-.029-.216-.152c-.09-.124-.166-.112-.346-.112-.09 0 0-.146 0-.146z"/><path fill="#AF9167" d="M14.629 21.191c0 .033 1.652.482 1.837.517.186.033.118.415-.129.393-.247-.021-1.472-.291-1.629-.37-.157-.08-.079-.54-.079-.54zm2.27.556s.495.067.921.085c.427.017.719-.02.719-.02l.304.412s-.528.057-.888.057c-.359 0-.944-.057-.944-.057l-.112-.477zm2.157 0s.708-.129 1.136-.231c.427-.101.988-.303 1.135-.325.146-.023.247.241.291.277l.045.037s-.741.348-1.101.449c-.359.102-1.506.259-1.506.259s-.164-.436 0-.466z"/></svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#068241" d="M32 5H9v9h27V9c0-2.209-1.791-4-4-4z"/><path fill="#EEE" d="M9 14h27v8H9z"/><path fill="#141414" d="M9 31h23c2.209 0 4-1.791 4-4v-5H9v9z"/><path fill="#EC2028" d="M4 5C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h5V5H4z"/></svg>

After

Width:  |  Height:  |  Size: 309 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFF" d="M11.077 21L18 31l6.923-10z"/><path fill="#141414" d="M10.279 15l-.105-.022 3.988-.827-3.392-2.417 3.977.889-2.28-3.64 3.36 2.47-.821-4.308 2.232 3.675L18 6.5l.763 4.321 2.232-3.675-.821 4.308 3.36-2.47-2.28 3.64 3.977-.889-3.392 2.417 3.988.827-.106.021h3.356l5.956-8.603C34.299 5.543 33.214 5 32 5H4C2.786 5 1.701 5.543.967 6.397L6.923 15h3.356z"/><path fill="#FCD116" d="M25.826 14.978l-3.988-.827 3.392-2.417-3.976.889 2.28-3.64-3.36 2.47.821-4.308-2.232 3.676L18 6.5l-.763 4.321-2.232-3.676.821 4.308-3.36-2.47 2.28 3.64-3.976-.889 3.392 2.417-3.988.827.105.022h15.442z"/><path fill="#0072C6" d="M10.279 15H6.923l4.154 6h13.846l4.154-6h-3.356z"/><path fill="#CE1126" d="M29.077 15l-4.154 6L18 31h14c2.209 0 4-1.791 4-4V9c0-.995-.366-1.903-.967-2.603L29.077 15zM6.923 15L.967 6.397C.366 7.097 0 8.005 0 9v18c0 2.209 1.791 4 4 4h14l-6.923-10-4.154-6z"/></svg>

After

Width:  |  Height:  |  Size: 942 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#00247D" d="M32 5H4c-.205 0-.407.015-.604.045l-.004 1.754-2.73-.004C.244 7.427 0 8.185 0 9v18c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/><path fill="#CCCC32" d="M33.938 12.324s-1.468.51-3.112.51c-1.643 0-2.879-.854-2.879-.854s-1.232.854-2.877.854c-1.644 0-3.194-.51-3.194-.51-.154 4.121.1 8.458 1.609 10.73C25.108 25.498 27.946 27 27.946 27s2.754-1.502 4.378-3.946c1.512-2.272 1.768-6.61 1.614-10.73z"/><path fill="#FFF" d="M33.416 12.811s-1.175.439-2.734.439c-1.562 0-2.735-.78-2.735-.78s-1.171.78-2.732.78c-1.562 0-2.731-.439-2.731-.439-.148 3.901 0 7.901 1.512 9.998 1.513 2.099 3.951 3.561 3.951 3.561s2.443-1.463 3.956-3.561c1.51-2.096 1.659-6.096 1.513-9.998z"/><path fill="#F90" d="M26.58 13.397s.049.683.341.926c0 0 .732-.146 1.317.098.463.193 1.317.536 1.756.39.438-.146.829-.292.928-.195.097.097-.489.244-.587.341-.098.098-.438.196-.243.488.196.293.537.537.439.83 0 0-.439-.341-.634-.634-.196-.293-.635-.537-1.367-.439-.732.098-1.316.488-1.413.927-.098.438.438.39.877.487 0 0-.634.244-.975.244 0 0-.293.537-.586 1.024-.292.488-.342.781-.487.732-.146-.049-.196-.732-.098-1.122 0 0-.341-.195-.293-1.17.042-.833.634-1.61.634-1.61s-.048-.292 0-.634c.05-.342.391-.683.391-.683z"/><path fill="#FFF" d="M26.044 16.835c0 .095-.076.171-.171.171-.095 0-.171-.076-.171-.171 0-.094.076-.17.171-.17.095 0 .171.076.171.17z"/><path fill="#F90" d="M25.024 21.728s.499-.47.502-.85c0 0-.575-.475-.757-1.083-.144-.48-.417-1.359-.808-1.607-.392-.248-.751-.458-.738-.595.015-.137.498.224.636.238.137.014.428.217.532-.119.104-.336.076-.755.364-.865 0 0 .014.556-.09.892-.104.335-.015.83.522 1.335.539.505 1.211.712 1.613.509.402-.201.025-.585-.178-.988 0 0 .591.337.807.603 0 0 .601-.113 1.163-.195.563-.082.82-.229.875-.084.055.144-.443.613-.809.785 0 0 .066.387-.721.966-.673.495-1.649.527-1.649.527s-.194.223-.491.4c-.292.179-.773.131-.773.131z"/><path fill="#FFF" d="M28.027 19.969c.073-.059.182-.048.24.025.061.072.049.181-.024.24-.073.059-.18.048-.239-.024-.061-.073-.049-.182.023-.241z"/><path fill="#F90" d="M32.781 18.83s-.637-.256-.983-.1c0 0-.188.721-.664 1.141-.377.334-1.059.95-1.12 1.408-.06.459-.1.874-.229.919-.13.045-.006-.545-.051-.676-.045-.13.017-.48-.332-.433-.348.047-.718.247-.938.032 0 0 .5-.246.848-.294.348-.046.76-.335.993-1.034.232-.702.138-1.398-.215-1.678-.351-.28-.543.224-.823.577 0 0 .059-.679.208-.985 0 0-.354-.498-.664-.975-.31-.477-.553-.648-.444-.759.107-.109.744.145 1.051.404 0 0 .326-.222 1.182.249.731.403 1.168 1.275 1.168 1.275s.285.084.571.278c.284.194.442.651.442.651z"/><path fill="#FFF" d="M29.925 16.841c-.085-.041-.121-.143-.079-.228.041-.085.143-.12.229-.079.084.042.119.143.077.228-.041.085-.144.121-.227.079z"/><path fill="#9CF" d="M23.771 22.47c.071.118.146.232.225.34 1.513 2.099 3.951 3.561 3.951 3.561s2.443-1.463 3.956-3.561c.078-.108.152-.222.224-.34h-8.356z"/><path fill="#00247D" d="M19 18V5H4c-.32 0-.604.045-.604.045l-.004 1.754-2.73-.004S.62 6.854.535 7C.195 7.589 0 8.272 0 9v9h19z"/><path fill="#EEE" d="M19 5h-2.331L12 8.269V5H7v2.569L3.396 5.045c-.614.094-1.19.325-1.672.665L6.426 9H4.69L.967 6.391c-.11.129-.211.262-.305.404L3.813 9H0v5h3.885L0 16.766V18h3.332L7 15.432V18h5v-3.269L16.668 18H19v-2.029L16.185 14H19V9h-2.814L19 7.029V5z"/><path fill="#CF1B2B" d="M11 5H8v5H0v3h8v5h3v-5h8v-3h-8z"/><path fill="#CF1B2B" d="M19 5h-1.461L12 8.879V9h1.571L19 5.198zm-17.276.71c-.281.195-.534.423-.757.681L4.69 9h1.735L1.724 5.71zM6.437 14L.734 18h1.727L7 14.822V14zM19 17.802v-1.22L15.313 14H13.57z"/></svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D90012" d="M32 5H4C1.791 5 0 6.791 0 9v4h36V9c0-2.209-1.791-4-4-4z"/><path fill="#F2A800" d="M4 31h28c2.209 0 4-1.791 4-4v-4H0v4c0 2.209 1.791 4 4 4z"/><path fill="#0033A0" d="M0 13h36v10H0z"/></svg>

After

Width:  |  Height:  |  Size: 272 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#141414" d="M0 18v9c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-9H0z"/><path fill="#CE1B26" d="M36 18V9c0-2.209-1.791-4-4-4H4C1.791 5 0 6.791 0 9v9h36z"/><path fill="#F9D616" d="M17.452 13.646l.602 1.221 1.348.196-.975.951.231 1.343-1.206-.634-1.206.634.23-1.343-.976-.951 1.349-.196zm-2.296 3.542c.344.562 3.172 3.516 5.922 5.234.359.234 1.344.984 1.719 1.25-.156.203-.375.5-.609.75-.391-.312-3.969-2.516-5.141-3.109-1.172-.594-2.234-1.625-2.234-2.609-.001-.985.343-1.516.343-1.516zm7.828 6.609c-.172.25-.438.594-.594.781.312.047 1.109.438 1.516 1.281.406.844 1.141.406 1.078-.047s-.953-1.437-2-2.015z"/><circle fill="#292F33" cx="23.258" cy="24.492" r=".18"/><circle fill="#292F33" cx="24.258" cy="25.492" r=".18"/><path fill="#292F33" d="M22.547 24.041c-.029 0-.059-.009-.084-.026l-4.657-3.172c-.068-.047-.086-.14-.04-.208.047-.069.141-.087.208-.04l4.656 3.172c.069.047.087.14.04.208-.028.043-.075.066-.123.066z"/><path d="M24.826 18.648l.008-1.295-1.085.007c-.041-.417-.126-.82-.244-1.208l.972-.39-.438-1.219-1.046.416c-.178-.322-.384-.625-.614-.909l.699-.798-.994-.831-.625.71c-.31-.25-.641-.472-.994-.661l.454-.967-1.213-.457-.442.935c-.357-.103-.725-.176-1.104-.214l-.138 1.347c2.495.257 4.447 2.34 4.447 4.902 0 1.509-.688 2.842-1.751 3.751l.553.382 1.365 1.016.531-.578-.833-.618c.252-.303.476-.627.668-.974l1.006.408.5-1.195-1.001-.406c.112-.369.196-.751.238-1.146l1.081-.008zm-4.93 5.12l-.412-.799-.51-.243c-.464.144-.947.243-1.458.243-1.198 0-2.282-.442-3.139-1.15l-.832.979c.308.255.646.473.999.665l-.446.959 1.194.503.45-.972c.346.104.701.176 1.069.219l-.007 1.01 1.295-.014.007-.961c.404-.038.797-.114 1.175-.226l.344.994.688-.203-.431-.999.014-.005z" fill="#F9D616"/></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#265FB5" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#FFF" d="M27.532 18.933c-.051-.525.801-1.828.117-1.734-.837.114-1.491-.462-1.774-.448.906-1.281.233-1.607.031-2.438-.356-1.458.781-2.172-1.25-2.484-1.321-.203-2.233-.066-2.63-1.575-.583.409-1.275.511-1.932.224-.42-.183-.551-.532-.946-.701-.299-.127-.925-.126-1.26-.179-.923-.146-1.399.264-2.227.127.079.12.091.274.146.402-.511.018-.821.36-.876.837-.747-.075-.937.898-.853 1.512L14 12.5l.031.031c-.157 1.625-.818 2.438-2.483 2.693-1.096.168-2.07-.56-3.017-1.146-.208-.128-.571-.409-.766-.625-.28-.311-.478-.747-.75-.969-.125-.102-.391-.188-.354.021-.172 1.078.615 2.421 1.522 2.939-1.242.573.314.916.537 1.111.005.004.54.74.544.768.085.526-.278.466-.316.887-.039.437-.039.787.107 1.222l-.031.031c.006.35-.259.225-.603.146.047 1.062 1.059 1.154 1.228 1.362.545.669.357 1.642.993 2.265 1.564 1.532 3.346.628 5.117.885.994.145 1.846.979 2.747.037 1.059 1.16-.815 2.535-.357 2.927.131.112.269.159.41.167-.026.071-.067.136-.085.211 1.272.12 2.612.424 3.802-.202-.002.191.126.423.133.524.292-.349.52-.329.892-.515.466-.232 1.286-.511 1.595-.976.368-.554-.21-1.319.948-1.082.09-.4.127-.358.34-.624-.319-.8.629-1.34.914-1.912.057-.116.061-.652.137-.854.144-.385.556-.599.67-1.081.208-.887-.299-1.04-.373-1.808z"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#75AADB" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#EEE" d="M0 13h36v10H0z"/><path fill="#FCBF49" d="M18 13l.488 2.548 1.426-2.167-.525 2.54 2.146-1.457-1.457 2.147 2.541-.524-2.167 1.425L23 18l-2.548.488 2.167 1.426-2.541-.525 1.457 2.146-2.146-1.457.525 2.541-1.426-2.167L18 23l-.488-2.548-1.425 2.167.524-2.541-2.147 1.457 1.457-2.146-2.54.525 2.167-1.426L13 18l2.548-.488-2.167-1.425 2.54.524-1.457-2.147 2.147 1.457-.524-2.54 1.425 2.167z"/><path fill="#843511" d="M18 14.33l.242 1.265.116.605.339-.514.708-1.076-.261 1.261-.125.604.51-.346 1.066-.723-.723 1.066-.346.51.603-.125 1.262-.26-1.076.708-.515.337.605.116L21.67 18l-1.265.242-.605.116.514.339 1.076.708-1.262-.261-.604-.125.346.51.723 1.065-1.065-.723-.51-.346.125.604.261 1.262-.708-1.076-.338-.515-.116.605L18 21.67l-.242-1.265-.116-.605-.339.515-.708 1.076.26-1.262.125-.603-.51.346-1.066.723.723-1.066.346-.51-.604.125-1.261.261 1.076-.708.514-.339-.605-.116L14.33 18l1.265-.242.605-.116-.515-.339-1.076-.708 1.261.26.603.125-.346-.51-.724-1.066 1.066.724.51.346-.125-.603-.26-1.261.708 1.076.339.515.116-.605L18 14.33M18 13l-.488 2.548-1.425-2.167.524 2.541-2.147-1.457 1.457 2.147-2.54-.524 2.167 1.425L13 18l2.548.488-2.167 1.426 2.54-.525-1.457 2.146 2.147-1.457-.524 2.541 1.425-2.167L18 23l.488-2.548 1.426 2.167-.525-2.541 2.146 1.457-1.457-2.146 2.541.525-2.167-1.426L23 18l-2.548-.488 2.167-1.425-2.541.524 1.457-2.147-2.146 1.457.525-2.541-1.426 2.167L18 13zm1.914.381h.005-.005zm1.621 1.083h.005-.005zm1.084 1.623h.005-.005z"/><circle fill="#FCBF49" cx="18" cy="18" r="2"/><path fill="#843511" d="M18 20.125c-1.172 0-2.125-.953-2.125-2.125s.953-2.125 2.125-2.125 2.125.953 2.125 2.125-.953 2.125-2.125 2.125zm0-4c-1.034 0-1.875.841-1.875 1.875s.841 1.875 1.875 1.875 1.875-.841 1.875-1.875-.841-1.875-1.875-1.875z"/><path fill="#C16540" d="M17.801 17.774c0 .155-.261.28-.583.28-.323 0-.584-.125-.584-.28 0-.155.261-.28.584-.28.322 0 .583.125.583.28zm1.553-.024c0-.161-.266-.292-.594-.292-.328 0-.594.13-.594.292s.266.292.594.292c.329 0 .594-.131.594-.292z"/><path fill="#ED8662" d="M17.463 18.874c0-.126.246-.229.548-.229.303 0 .548.102.548.229 0 .126-.246.229-.548.229-.303 0-.548-.103-.548-.229z"/></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EEE" d="M0 13h36v10H0z"/><path fill="#ED2939" d="M32 5H4C1.791 5 0 6.791 0 9v4h36V9c0-2.209-1.791-4-4-4zM4 31h28c2.209 0 4-1.791 4-4v-4H0v4c0 2.209 1.791 4 4 4z"/></svg>

After

Width:  |  Height:  |  Size: 242 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#00247D" d="M32 5H4c-.205 0-.407.015-.604.045l-.004 1.754-2.73-.004C.244 7.427 0 8.185 0 9v18c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/><path d="M9 26.023l-1.222 1.129.121-1.66-1.645-.251 1.373-.94-.829-1.443 1.591.488L9 21.797l.612 1.549 1.591-.488-.83 1.443 1.374.94-1.645.251.121 1.66zM27.95 9.562l-.799.738.079-1.086-1.077-.164.899-.615-.542-.944 1.04.319.4-1.013.401 1.013 1.041-.319-.543.944.898.615-1.076.164.079 1.086zm-4 6l-.799.739.079-1.086-1.077-.164.899-.616-.542-.944 1.04.319.4-1.013.401 1.013 1.041-.319-.543.944.898.616-1.076.164.079 1.086zm9-2l-.799.739.079-1.086-1.077-.164.899-.616-.542-.944 1.04.319.4-1.013.401 1.013 1.041-.319-.543.944.898.616-1.076.164.079 1.086zm-5 14l-.799.739.079-1.086-1.077-.164.899-.616-.542-.944 1.04.319.4-1.013.401 1.013 1.041-.319-.543.944.898.616-1.076.164.079 1.086zM31 16l.294.596.657.095-.475.463.112.655L31 17.5l-.588.309.112-.655-.475-.463.657-.095z" fill="#FFF"/><path fill="#00247D" d="M19 18V5H4c-.32 0-.604.045-.604.045l-.004 1.754-2.73-.004S.62 6.854.535 7C.195 7.589 0 8.272 0 9v9h19z"/><path fill="#EEE" d="M19 5h-2.331L12 8.269V5H7v2.569L3.396 5.045c-.614.094-1.19.325-1.672.665L6.426 9H4.69L.967 6.391c-.11.129-.211.262-.305.404L3.813 9H0v5h3.885L0 16.766V18h3.332L7 15.432V18h5v-3.269L16.668 18H19v-2.029L16.185 14H19V9h-2.814L19 7.029V5z"/><path fill="#CF1B2B" d="M11 5H8v5H0v3h8v5h3v-5h8v-3h-8z"/><path fill="#CF1B2B" d="M19 5h-1.461L12 8.879V9h1.571L19 5.198zm-17.276.71c-.281.195-.534.423-.757.681L4.69 9h1.735L1.724 5.71zM6.437 14L.734 18h1.727L7 14.822V14zM19 17.802v-1.22L15.313 14H13.57z"/></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#4189DD" d="M32 5H4C1.791 5 0 6.791 0 9v13.055h36V9c0-2.209-1.791-4-4-4zM6.276 11.276l-.943 3.057-.943-3.057-3.057-.943L4.39 9.39l.943-3.057.943 3.057 3.057.943-3.057.943zM4 31h28c1.872 0 3.431-1.291 3.867-3.028H.133C.569 29.709 2.128 31 4 31zm-4-6.972h36V26H0z"/><path fill="#FFF" d="M5.333 6.333l-.942 3.058-3.057.943 3.057.943.943 3.057.943-3.057 3.057-.943-3.058-.943-.943-3.058zm.727 4.727l-.726 2.355-.727-2.355-2.355-.726 2.355-.726.726-2.355.727 2.354 2.355.726-2.355.727z"/><path fill="#D21034" d="M5.333 7.252l-.726 2.355-2.355.726 2.355.727.726 2.355.727-2.355 2.355-.727-2.355-.726z"/><path fill="#F9D616" d="M0 22.055h36v1.972H0zM0 27c0 .337.054.659.133.972h35.734c.079-.313.133-.635.133-.972v-1H0v1z"/></svg>

After

Width:  |  Height:  |  Size: 794 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCE00" d="M18 5h-2v11h20v-2H18zm-2 17v9h2v-9h18v-2H16zm-3-2H0v2h11v9h2v-9zm0-6V5h-2v9H0v2h13z"/><path fill="#D21034" d="M16 5h-3v11H0v4h13v11h3V20h20v-4H16z"/><path fill="#0053A5" d="M18 22v9h14c2.209 0 4-1.791 4-4v-5H18zM0 22v5c0 2.209 1.791 4 4 4h7v-9H0zM11 5H4C1.791 5 0 6.791 0 9v5h11V5zm21 0H18v9h18V9c0-2.209-1.791-4-4-4z"/></svg>

After

Width:  |  Height:  |  Size: 410 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E00034" d="M0 13h36v10H0z"/><path fill="#0098C3" d="M32 5H4C1.791 5 0 6.791 0 9v4h36V9c0-2.209-1.791-4-4-4z"/><g fill="#FFF"><path d="M17.844 21.333c-1.841 0-3.333-1.492-3.333-3.333 0-1.841 1.492-3.333 3.333-3.333.982 0 1.865.425 2.475 1.101C19.601 14.701 18.382 14 17 14c-2.209 0-4 1.791-4 4s1.791 4 4 4c1.382 0 2.601-.701 3.32-1.768-.61.676-1.493 1.101-2.476 1.101z"/><path d="M23.667 17.998l-1.196-.424.544-1.146-1.146.545-.426-1.195-.424 1.196-.003-.002-1.144-.542.546 1.146-1.196.426 1.196.424-.544 1.146 1.141-.543.005-.002.426 1.195.424-1.196 1.147.544-.546-1.146z"/></g><path fill="#00AE65" d="M4 31h28c2.209 0 4-1.791 4-4v-4H0v4c0 2.209 1.791 4 4 4z"/></svg>

After

Width:  |  Height:  |  Size: 740 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#2D3189" d="M32 5H9.177l-.665.484.365 1.123-.956-.695-.956.695.365-1.123L6.665 5H4C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h19.725l.105-.324-.955-.695h1.181l.365-1.123.365 1.123h1.181l-.955.695.105.324H32c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/><path fill="#E1E8ED" d="M6.965 6.607l.956-.695.955.695-.364-1.123L9.177 5H6.665l.665.484zm19.002 23.374h-1.181l-.365-1.122-.365 1.122h-1.181l.955.695-.105.324h1.392l-.106-.324zM9.999 6.815l.364 1.123h1.182l-.956.695.365 1.123-.955-.695-.956.695.365-1.123-.955-.695h1.18zm2.069 3.15l.365 1.122h1.182l-.956.695.365 1.123-.956-.694-.955.694.365-1.123-.956-.695h1.181zm2.054 3.148l.365 1.123h1.181l-.956.695.365 1.123-.955-.695-.956.695.365-1.123-.955-.695h1.181zm2.061 3.15l.365 1.123h1.181l-.955.694.365 1.123-.956-.694-.955.694.365-1.123-.956-.694h1.181zm2.061 3.149l.365 1.123h1.182l-.956.694.365 1.124-.956-.695-.955.695.365-1.124-.955-.694h1.181zm2.062 3.149l.365 1.123h1.181l-.955.694.364 1.123-.955-.694-.955.694.364-1.123-.955-.694h1.181zm2.053 3.148l.365 1.124h1.182l-.956.694.365 1.123-.956-.694-.955.694.365-1.123-.956-.694h1.181z"/><path fill="#FBD116" d="M28 31V5H11z"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#00267F" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#00267F" d="M4 5C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h8V5H4z"/><path fill="#FFC726" d="M12 5h12v26H12z"/><path d="M22.83 13.516c-1.406 0-2.5 1.031-2.859 1.438.422-.094.516.234.453.438-.444 1.477-.819 3.215-.931 4.15h-.903v-5.186l1.09-.226-1.366-.273-.283-1.377-.283 1.377-1.367.273 1.1.228v5.184h-.947c-.112-.936-.487-2.674-.931-4.15-.062-.203.031-.531.453-.438-.359-.406-1.453-1.438-2.859-1.438.613.906 2.245 3.432 2.458 6.403v.622h1.826v2.414h1.109v-2.414h1.756v-.232c.085-3.14 1.844-5.848 2.484-6.793z"/></svg>

After

Width:  |  Height:  |  Size: 716 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#006A4D" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><circle fill="#F42A41" cx="16" cy="17.5" r="7"/></svg>

After

Width:  |  Height:  |  Size: 239 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#141414" d="M4 5C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h8V5H4z"/><path fill="#FEE833" d="M12 5h12v26H12z"/><path fill="#EE232C" d="M32 5h-8v26h8c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/></svg>

After

Width:  |  Height:  |  Size: 272 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#009E49" d="M19.602 18.942l.99 3.048L18 20.106l-2.593 1.884.99-3.048L15.101 18H0v9c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-9H20.899l-1.297.942z"/><path fill="#EF2B2D" d="M32 5H4C1.791 5 0 6.791 0 9v9h15.101l-1.296-.942h3.205L18 14.01l.99 3.048h3.205L20.899 18H36V9c0-2.209-1.791-4-4-4z"/><path fill="#FCD116" d="M15.407 21.99L18 20.106l2.593 1.884-.991-3.048L20.899 18l1.296-.942H18.99L18 14.01l-.99 3.048h-3.205l1.296.942 1.297.942z"/></svg>

After

Width:  |  Height:  |  Size: 518 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EEE" d="M32 5H4C1.791 5 0 6.791 0 9v5h36V9c0-2.209-1.791-4-4-4z"/><path fill="#D62612" d="M0 27c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-5H0v5z"/><path fill="#00966E" d="M0 14h36v8H0z"/></svg>

After

Width:  |  Height:  |  Size: 268 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EEE" d="M15 6L8 5H4C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h4l7-1V6z"/><path fill="#CE1126" d="M32 5H8l6.081 2.6L8 10.2l6.081 2.6L8 15.4l6.081 2.6L8 20.6l6.081 2.6L8 25.8l6.081 2.6L8 31h24c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/></svg>

After

Width:  |  Height:  |  Size: 316 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EEE" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#CE1126" d="M13.685 13.068c1.15-1.028 2.662-1.658 4.325-1.658 1.646 0 3.145.617 4.291 1.626l10.833-7.854C32.772 5.075 32.397 5 32 5H4c-.411 0-.8.08-1.174.195l10.859 7.873z"/><path fill="#1EB53A" d="M24.038 15.483c.303.751.473 1.569.473 2.427 0 .928-.198 1.809-.548 2.608l11.544 8.369c.304-.564.493-1.2.493-1.887V9c0-.67-.181-1.292-.472-1.847l-11.49 8.33zm-11.999 4.994c-.339-.788-.528-1.655-.528-2.566 0-.842.165-1.644.457-2.383L.456 7.182C.174 7.73 0 8.342 0 9v18c0 .675.183 1.301.478 1.859l11.561-8.382z"/><path fill="#CE1126" d="M22.157 22.916c-1.125.933-2.57 1.495-4.146 1.495-1.593 0-3.051-.575-4.181-1.526L2.881 30.822c.357.104.728.178 1.119.178h28c.377 0 .734-.069 1.079-.166l-10.922-7.918z"/><path fill="#1EB53A" d="M19.077 15.266l.317-.548.216-.375h-1.066l-.317-.548-.216-.375-.217.375-.316.548h-1.067l.217.375.316.548-.316.549-.217.375h1.067l.316.548.217.375.216-.375.317-.548h1.066l-.216-.375z"/><path fill="#CE1126" d="M19.177 14.593H18.4l-.389-.673-.389.673h-.778l.389.673-.389.674h.778l.389.673.389-.673h.777l-.389-.674z"/><path fill="#1EB53A" d="M21.928 19.805l.317-.549.217-.375h-1.067l-.316-.548-.217-.375-.216.375-.317.548h-1.066l.216.375.317.549-.317.548-.216.375h1.066l.317.548.216.376.217-.376.316-.548h1.067l-.217-.375z"/><path fill="#CE1126" d="M20.862 18.458l-.389.673h-.777l.388.674-.388.673h.777l.389.673.389-.673h.778l-.389-.673.389-.674h-.778z"/><path fill="#1EB53A" d="M16.542 20.353l-.316-.548.316-.549.217-.375h-1.066l-.317-.548-.217-.375-.216.375-.317.548H13.56l.216.375.317.549-.317.548-.216.375h1.066l.317.548.216.376.217-.376.317-.548h1.066z"/><path fill="#CE1126" d="M16.326 19.131h-.778l-.389-.673-.388.673h-.778l.389.674-.389.673h.778l.388.673.389-.673h.778l-.389-.673z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FCD116" d="M32 5H14v13h22V9c0-2.209-1.791-4-4-4z"/><path fill="#E8112D" d="M14 31h18c2.209 0 4-1.791 4-4v-9H14v13z"/><path fill="#008751" d="M14 5H4C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h10V5z"/></svg>

After

Width:  |  Height:  |  Size: 279 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F7E017" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#141414" d="M36 27L0 19v-5l36 8z"/><path fill="#EEE" d="M36 22L0 14V9l36 8z"/><g fill="#CF1B26"><path d="M21.596 14.935c.443.688.699 1.507.699 2.386 0 2.44-1.978 4.419-4.418 4.419-2.441 0-4.419-1.979-4.419-4.419 0-.879.257-1.698.699-2.386-.838.905-1.351 2.116-1.351 3.447 0 2.801 2.27 5.071 5.071 5.071 2.801 0 5.071-2.271 5.071-5.071 0-1.331-.513-2.542-1.352-3.447zm-11.893.571c.537.118.656.323.629.758 0 0 .273.053.463.325.191.272.367.543.693.652.327.109.585.325.585.978v2.42s-.06.245.076.57c.136.327.059.789-.947.789s-1.012-.435-.877-.761c.136-.326.293-.599.293-.599v-2.08s-.196-.285-.468-.476c-.272-.19-.846-.87-.927-1.523-.082-.651-.234-1.209.48-1.053zm16.257 0c-.537.118-.656.323-.629.758 0 0-.274.053-.464.325s-.268.543-.594.652c-.326.109-.485.325-.485.978v2.42s-.039.245-.176.57c-.136.327-.107.789.898.789 1.006 0 1.087-.435.951-.761s-.219-.599-.219-.599v-2.08s.097-.285.368-.476c.273-.19.796-.87.878-1.523.083-.651.185-1.209-.528-1.053z"/><path d="M23.435 24.738s.325-.652-.028-.788c-.354-.136-1.06 0-1.06 0s.589-.747.026-1.061c-.561-.313-.947.462-1.439.815-.491.354-.986.549-1.586.748-.598.199-1.378.285-1.378.285s-.875-.086-1.473-.285c-.599-.199-1.188-.395-1.68-.748s-.877-1.129-1.439-.815c-.562.313.028 1.061.028 1.061s-.707-.136-1.06 0c-.354.136-.026.788-.026.788-.788.109-.513.599-.513.599s.196-.253 1.012-.253 1.153.797 1.697.797.54-.517.54-.517c1.007.843 2.915.843 2.915.843s1.814 0 2.82-.843c0 0-.051.517.493.517s.857-.797 1.674-.797c.815 0 1 .253 1 .253s.267-.489-.523-.599zm-2.16-10.571c-.598-.163-1.238-.924-2.081-.924s-1.225.653-1.225.653-.467-.653-1.31-.653-1.569.761-2.168.924c-.598.164-1.169 0-1.169 0 .136.625.835.768.835.768.074.388.659.401.659.401.079.462.927.144.927.144s-.053.455.382.4c.435-.054 1.172-.816 1.172-.816s-.212.218-.184.415c.027.198.365.183.365.183-.299.299.241.653.241.653l.25-.19.165.19s.497-.353.197-.653c0 0 .316.015.344-.183.027-.198-.195-.415-.195-.415s.732.762 1.167.816c.436.054.38-.4.38-.4s.847.319.927-.144c0 0 .584-.014.657-.401 0 0 .699-.143.835-.768-.001 0-.572.164-1.171 0zm-4.254-2.447c0-.121.383-.218.857-.218.473 0 .857.097.857.218 0 .12-.384.217-.857.217-.474.001-.857-.097-.857-.217z"/><path d="M18.882 12.155c-.027-.191-.142-.218-.142-.218s-.449.116-.863.116c-.415 0-.857-.116-.857-.116s-.109.027-.136.218c-.027.19-.217.775-.217.775l.354-.388.299.388.299-.388.258.388.265-.388.303.388.3-.388.355.388s-.19-.584-.218-.775zm-.913-2.324v1.06l.729.313-.281-.435.572-.273zm-.31 3.099h.449v1.142h-.449zm.816 8.076s.294-.407.233-.714c-.061-.306-.346-.789-.427-1.098-.082-.309.198-.595.198-.595l-.217-.041s.292-.265.217-.551c-.075-.286-.217-.652-.258-.978-.041-.327.258-.714.258-.714l-.387.224-.211-.224-.205.224-.38-.224s.299.387.258.714c-.041.326-.184.693-.258.978-.075.286.218.551.218.551l-.218.041s.279.286.197.595c-.081.309-.367.792-.428 1.098-.061.307.231.714.231.714l-.584-.122c.319.652.692.733 1.169.733.477 0 .856-.081 1.175-.733l-.581.122z"/></g></svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EEEDED" d="M1.369 30.011L34.633 5.99C33.93 5.376 33.006 5 32 5H13.25L0 15.833V27c0 1.203.529 2.278 1.369 3.011z"/><path fill="#012A87" d="M34.633 5.99L1.369 30.011C2.072 30.625 2.994 31 4 31h28c2.209 0 4-1.791 4-4V9c0-.552-.112-1.078-.314-1.557-.239-.563-.599-1.057-1.053-1.453z"/><path fill="#F9D90F" d="M4 5C1.791 5 0 6.791 0 9v6.833L13.25 5H4z"/><path d="M16.513 15.894l1.192-.688-1.192-.688c-.312-2.515-2.31-4.513-4.825-4.825L11 8.5l-.688 1.192c-2.515.312-4.513 2.31-4.825 4.825l-1.192.688 1.192.688c.312 2.515 2.31 4.513 4.825 4.825L11 21.912l.688-1.192c2.515-.313 4.513-2.311 4.825-4.826zM11 20.048c-2.67 0-4.843-2.172-4.843-4.842 0-2.67 2.172-4.842 4.843-4.842s4.842 2.172 4.842 4.842c0 2.67-2.172 4.842-4.842 4.842z"/><path fill="#DC171D" d="M12.914 15.206l.957-1.658h-1.914L11 11.891l-.957 1.657H8.129l.957 1.658-.957 1.657h1.914L11 18.521l.957-1.658h1.914z"/></svg>

After

Width:  |  Height:  |  Size: 948 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#009B3A" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#FEDF01" d="M32.728 18L18 29.124 3.272 18 18 6.875z"/><circle fill="#002776" cx="17.976" cy="17.924" r="6.458"/><path fill="#CBE9D4" d="M12.277 14.887c-.332.621-.558 1.303-.672 2.023 3.995-.29 9.417 1.891 11.744 4.595.402-.604.7-1.28.883-2.004-2.872-2.808-7.917-4.63-11.955-4.614z"/><path fill="#88C9F9" d="M12 18.233h1v1h-1zm1 2h1v1h-1z"/><path fill="#55ACEE" d="M15 18.233h1v1h-1zm2 1h1v1h-1zm4 2h1v1h-1zm-3 1h1v1h-1zm3-6h1v1h-1z"/><path fill="#3B88C3" d="M19 20.233h1v1h-1z"/></svg>

After

Width:  |  Height:  |  Size: 682 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#00ABC9" d="M1.364 29.987C2.069 30.61 2.985 31 4 31h28c2.209 0 4-1.791 4-4v-4.5H11.442L1.364 29.987z"/><path fill="#FAE042" d="M17.5 18l-6.058 4.5H36v-9H11.442z"/><path fill="#00ABC9" d="M32 5H4c-1.015 0-1.931.39-2.636 1.013L11.442 13.5H36V9c0-2.209-1.791-4-4-4z"/><path fill="#141414" d="M17.5 18l-6.058-4.5L1.364 6.013C.534 6.746 0 7.806 0 9v18c0 1.194.534 2.254 1.364 2.987L11.442 22.5 17.5 18z"/></svg>

After

Width:  |  Height:  |  Size: 478 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EF2B2D" d="M10 5H4C1.791 5 0 6.791 0 9v6h10V5zm22 0H16v10h20V9c0-2.209-1.791-4-4-4zM16 31h16c2.209 0 4-1.791 4-4.5V21H16v10zM0 21v5.5C0 29.209 1.791 31 4 31h6V21H0z"/><path fill="#002868" d="M14.5 5h-2.944l-.025 11.5H0v3h11.525L11.5 31h3V19.5H36v-3H14.5z"/><path fill="#EDECEC" d="M14.5 31H16V21h20v-1.5H14.5zM16 5h-1.5v11.5H36V15H16zm-4.5 0H10v10H0v1.5h11.5zM0 19.5V21h10v10h1.5V19.5z"/></svg>

After

Width:  |  Height:  |  Size: 467 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EEE" d="M0 13h36v10H0z"/><path fill="#75AADB" d="M32 5H4C1.791 5 0 6.791 0 9v5h36V9c0-2.209-1.791-4-4-4zM0 27c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-5H0v5z"/><path fill="#141414" d="M0 16h36v4H0z"/></svg>

After

Width:  |  Height:  |  Size: 282 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#4AA657" d="M6 31h26c2.209 0 4-1.791 4-4v-4H6v8z"/><path fill="#C8313E" d="M32 5H6v18h30V9c0-2.209-1.791-4-4-4z"/><path fill="#FFF" d="M4 5C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h2V5H4z"/><g fill="#C8313E"><path d="M.766 29.188l.625-1.109.641 1.141-.542.871c.171.139.351.263.544.372l.792-1.437-1.42-2.276-1.117 1.726c.183.46.451.872.781 1.23l-.304-.518zm5.215-.091l-1.497-2.222-1.502 2.171L4.268 31h.647l1.066-1.903zm-1.453-1.019l.641 1.141-.641 1.031-.625-1.062.625-1.11zM6 18.333v-.894l-.313.436zM2.825 7.026l-.894-1.434C1.153 6.065.557 6.791.246 7.662l1.285 1.713 1.294-2.349zm-2.059.162l.625-1.109.641 1.141-.641 1.03-.625-1.062zm3.851 2.343l1.364-2.435L4.569 5h-.171L2.983 7.046l1.634 2.485zm.551-2.312l-.64 1.031-.625-1.062.625-1.109.64 1.14z"/><path d="M4.953 15l.875-1.453.172.076V13l-1.406-2.188-1.688 2.344-1.5-2.406L0 12.923v.65L.859 15l.609-.891-.437-.609.328-.438.953 1.234-1.406 2.312L0 15.361v1.553l.058-.077.953 1.234L0 19.735v1.177l.906-1.248 1.406 2.312L1.522 23l-.163.211L1.201 23l-.17-.227.438-.609-.609-.891L0 22.701v.575l1.438 2.193L2.838 23l.053-.094.058.094 1.614 2.609L6 23.062v-.391l-.125.056L5 21.273l-.61.891.438.609-.17.227-.158.211L4.337 23l-.79-1.023 1.406-2.312L6 21.106v-1.142l-1.157-1.902.953-1.234L6 17.1v-1.997L4.906 16.61 3.5 14.297l.953-1.234.328.437-.438.609.61.891zm-.668 2.031v1.928L2.89 21.162 1.576 18.95v-1.908l1.314-2.213 1.395 2.202z"/><path d="M2.031 16.823l.598 1.091-.598 1.091.438.24.445-.811.445.811.438-.24-.598-1.091.598-1.091-.438-.24-.445.811-.445-.811zM.026 26.188l.625 1.062.641-1.031-.641-1.141zm1.516 0l.625 1.062.64-1.031-.64-1.141zm1.484 0l.625 1.062.641-1.031-.641-1.141zm1.592 0l.625 1.062.64-1.031-.64-1.141zM.026 10.125l.625 1.063.641-1.032-.641-1.14zm1.516 0l.625 1.063.64-1.032-.64-1.14zm1.484 0l.625 1.063.641-1.032-.641-1.14zm1.592 0l.625 1.063.64-1.032-.64-1.14z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D52B1E" d="M4 5C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h6V5H4zm28 0h-6v26h6c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/><path fill="#EEE" d="M10 5h16v26H10z"/><path fill="#D52B1E" d="M18.615 22.113c1.198.139 2.272.264 3.469.401l-.305-1.002c-.049-.176.021-.368.159-.476l3.479-2.834-.72-.339c-.317-.113-.23-.292-.115-.722l.531-1.936-2.021.427c-.197.03-.328-.095-.358-.215l-.261-.911-1.598 1.794c-.227.288-.687.288-.544-.376l.683-3.634-.917.475c-.257.144-.514.168-.657-.089l-1.265-2.366v.059-.059l-1.265 2.366c-.144.257-.401.233-.658.089l-.916-.475.683 3.634c.144.664-.317.664-.544.376l-1.598-1.793-.26.911c-.03.12-.162.245-.359.215l-2.021-.427.531 1.936c.113.43.201.609-.116.722l-.72.339 3.479 2.834c.138.107.208.3.158.476l-.305 1.002 3.47-.401c.106 0 .176.059.175.181l-.214 3.704h.956l-.213-3.704c.002-.123.071-.182.177-.182z"/></svg>

After

Width:  |  Height:  |  Size: 910 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="green" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path d="M30.529 19.661l.17.583h.587l-.464.358.171.567-.464-.357-.464.34.17-.55-.464-.358h.573zm-1.531-6.504l-.679.627.068-.921-.914-.139.762-.523-.46-.801.884.27.339-.859.339.859.884-.27-.46.801.761.522-.913.14.068.921zm-3.623 5.313l-.679.627.068-.922-.914-.139.762-.522-.46-.802.884.271.339-.859.339.859.884-.271-.46.802.761.522-.913.139.068.922zm7.11-.439l-.678.627.067-.922-.914-.139.763-.522-.46-.802.883.271.339-.859.339.859.884-.271-.46.802.762.522-.913.139.067.922zm-3.547 7.74l-.678.627.067-.921-.914-.139.763-.523-.46-.801.884.27.338-.859.339.859.884-.27-.46.801.762.522-.913.14.067.921zm-8.573-3.831c-2.175 0-3.94-1.766-3.94-3.941 0-2.177 1.765-3.94 3.94-3.94.828 0 1.594.258 2.228.695-.905-1.039-2.235-1.699-3.724-1.699-2.731 0-4.944 2.214-4.944 4.945 0 2.73 2.213 4.945 4.944 4.945 1.488 0 2.819-.66 3.727-1.7-.635.437-1.403.695-2.231.695zM11.973 12c0 2.809-2.276 5.086-5.085 5.086S1.801 14.809 1.801 12s2.277-5.086 5.086-5.086S11.973 9.191 11.973 12z" fill="#FFE000"/><path fill="#802000" d="M7.144 16H6.01s.372-.352.567-.67c.195-.319.973-2.012.885-3.557-.087-1.545.178-1.287.267-.365.089.921 0 2.812-.159 3.362-.16.549-.336.899-.106.97.229.071.3.26.3.26h-.62z"/><path fill="green" d="M5.177 8.919h.691l1.418 1.348-.479-.869.436-.271.131-1.075 1.187-.107-.159.603.62.319-.691 1.009 1.506-.141-.283.886h.815l.337 1.116-1.985-.159.992.744v1.134l-2.091-1.967-.177.833-.124.833-.458.137-.109-.633-.479.797h-.637l.62-2.248-3.19.6.851-1.027 1.683-.338-1.488-.779 2.197.39-2.268-1.135z"/></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#007FFF" d="M4 31h28c2.209 0 4-1.791 4-4V11.25L3.215 30.921c.254.05.516.079.785.079zM32 5H4C1.791 5 0 6.791 0 9v15.75L32.785 5.079C32.531 5.029 32.269 5 32 5zM9.63 16.02l-3.06-2.34-3.06 2.34 1.17-3.78L1.62 9.9H5.4l1.17-3.78L7.74 9.9h3.78l-3.06 2.34 1.17 3.78z"/><path fill="#F7D618" d="M7.74 9.9L6.57 6.12 5.4 9.9H1.62l3.06 2.34-1.17 3.78 3.06-2.34 3.06 2.34-1.17-3.78 3.06-2.34zM3.215 30.921L36 11.25V9.9L1.873 30.376c.406.256.856.448 1.342.545zm29.57-25.842L0 24.75v1.35L34.127 5.624c-.406-.256-.856-.448-1.342-.545z"/><path fill="#CE1021" d="M34.127 5.624L0 26.1v.9c0 1.425.751 2.668 1.873 3.376L36 9.9V9c0-1.425-.751-2.668-1.873-3.376z"/></svg>

After

Width:  |  Height:  |  Size: 720 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#003082" d="M32 5H4C1.791 5 0 6.791 0 9v2.5h36V9c0-2.209-1.791-4-4-4z"/><path fill="#EEE" d="M0 11.5h36V18H0z"/><path fill="#289728" d="M0 18h36v6.5H0z"/><path fill="#FFCE00" d="M0 24.5V27c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-2.5H0z"/><path fill="#D21034" d="M15 5h6v26h-6z"/><path fill="#FFCE00" d="M6.878 7.612l-.68-2.094-.681 2.094H3.316l1.781 1.294L4.417 11l1.781-1.294L7.979 11l-.681-2.094L9.08 7.612z"/></svg>

After

Width:  |  Height:  |  Size: 494 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#009543" d="M4 5C1.791 5 0 6.791 0 9v18c0 1.104.448 2.104 1.172 2.828L26 5H4z"/><path fill="#FBDE4A" d="M32 5h-6L1.172 29.828C1.896 30.552 2.896 31 4 31h6L34.828 6.172C34.104 5.448 33.104 5 32 5z"/><path fill="#DC241F" d="M10 31h22c2.209 0 4-1.791 4-4V9c0-1.104-.448-2.104-1.172-2.828L10 31z"/></svg>

After

Width:  |  Height:  |  Size: 372 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D32D27" d="M31 27c0 2.209-1.791 4-4 4H9c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h18c2.209 0 4 1.791 4 4v18z"/><path fill="#FFF" d="M25 16.063h-5v-5h-4v5h-5V20h5v5.063h4V20h5z"/></svg>

After

Width:  |  Height:  |  Size: 258 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F77F00" d="M4 5C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h8V5H4z"/><path fill="#EEE" d="M12 5h12v26H12z"/><path fill="#009E60" d="M32 5h-8v26h8c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/></svg>

After

Width:  |  Height:  |  Size: 269 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#00247D" d="M32 5H4c-.205 0-.407.015-.604.045l-.004 1.754-2.73-.004C.244 7.427 0 8.185 0 9v18c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/><path d="M27.803 11.783l.812-.59h-1.004l-.31-.955-.31.955h-1.004l.812.59-.31.954.812-.589.812.589zm2.562.741l.982-.208-.917-.409.105-.998-.672.746-.916-.409.501.87-.672.745.982-.208.502.869zm2.05 1.762l.983.206-.674-.744.5-.87-.916.41-.673-.745.107.998-.916.411.982.206.107.998zm1.144 2.4l.816.585-.316-.953.809-.594-1.003.006-.316-.953-.305.956-1.003.005.815.586-.305.956zm.081 2.69l.503.868.103-.998.982-.211-.918-.406.103-.999-.67.747-.918-.406.504.868-.671.747zm-1.038 2.446l.105.998.502-.869.982.209-.672-.746.503-.869-.917.408-.672-.747.105.999-.917.407zm-1.938 1.88l-.306.956.809-.593.815.587-.314-.954.809-.593-1.003.004-.314-.953-.307.956-1.003.004zm-2.52.879l-.669.748.981-.212.505.867.101-.998.981-.213-.919-.405.102-.998-.669.748-.919-.405zm-3.906-12.057l-.982-.208.917-.409-.105-.998.671.746.917-.409-.502.87.672.745-.982-.208-.501.869zm-2.051 1.762l-.982.206.673-.744-.5-.87.916.41.673-.745-.107.998.916.411-.982.206-.107.998zm-1.144 2.4l-.815.585.315-.953-.809-.594 1.004.006.315-.953.305.956 1.004.005-.815.586.305.956zm-.08 2.69l-.503.868-.104-.998-.981-.211.918-.406-.104-.999.671.747.917-.406-.503.868.67.747zM22 21.822l-.104.998-.502-.869-.982.209.671-.746-.502-.869.917.408.671-.747-.104.999.917.407zm1.939 1.88l.306.956-.81-.593-.814.587.314-.954-.81-.593 1.004.004.314-.953.306.956 1.004.004zm2.52.879l.669.748-.981-.212-.505.867-.101-.998-.981-.213.918-.405-.101-.998.669.748.918-.405z" fill="#FFF"/><path fill="#00247D" d="M19 18V5H4c-.32 0-.604.045-.604.045l-.004 1.754-2.73-.004S.62 6.854.535 7C.195 7.589 0 8.272 0 9v9h19z"/><path fill="#EEE" d="M19 5h-2.331L12 8.269V5H7v2.569L3.396 5.045c-.614.094-1.19.325-1.672.665L6.426 9H4.69L.967 6.391c-.11.129-.211.262-.305.404L3.813 9H0v5h3.885L0 16.766V18h3.332L7 15.432V18h5v-3.269L16.668 18H19v-2.029L16.185 14H19V9h-2.814L19 7.029V5z"/><path fill="#CF1B2B" d="M11 5H8v5H0v3h8v5h3v-5h8v-3h-8z"/><path fill="#CF1B2B" d="M19 5h-1.461L12 8.879V9h1.571L19 5.198zm-17.276.71c-.281.195-.534.423-.757.681L4.69 9h1.735L1.724 5.71zM6.437 14L.734 18h1.727L7 14.822V14zM19 17.802v-1.22L15.313 14H13.57z"/></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#1F429B" d="M13 5H4C1.791 5 0 6.791 0 9v9h13V5zm-4.663 9.292l-1.882-1.367-1.882 1.367.719-2.212-1.882-1.368h2.326L6.455 8.5l.719 2.212H9.5L7.618 12.08l.719 2.212z"/><path fill="#EEE" d="M32 5H13v13h23V9c0-2.209-1.791-4-4-4z"/><path fill="#D42D27" d="M0 18v9c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-9H0z"/><path fill="#FFF" d="M7.174 10.712L6.455 8.5l-.719 2.212H3.41l1.882 1.368-.719 2.212 1.882-1.367 1.882 1.367-.719-2.212L9.5 10.712z"/></svg>

After

Width:  |  Height:  |  Size: 521 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CC212D" d="M12 5v26h12V5H12zm7.882 15.59L18 19.223l-1.882 1.367.719-2.212-1.882-1.367h2.326L18 14.798l.719 2.212h2.326l-1.882 1.367.719 2.213z"/><path fill="#288541" d="M4 5C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h8V5H4z"/><path fill="#FEE833" d="M32 5h-8v26h8c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4zM18.719 17.011L18 14.798l-.719 2.213h-2.326l1.882 1.367-.719 2.212L18 19.223l1.882 1.367-.719-2.212 1.882-1.367z"/></svg>

After

Width:  |  Height:  |  Size: 500 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DE2910" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#FFDE02" d="M7 10.951l.929 2.671 2.826.058-2.253 1.708.819 2.706L7 16.479l-2.321 1.615.819-2.706-2.253-1.708 2.826-.058zm6-3.423l.34.688.759.11-.549.536.129.756L13 9.261l-.679.357.13-.756-.55-.536.76-.11zm2 4l.34.688.759.11-.549.536.129.756-.679-.357-.679.357.13-.756-.55-.536.76-.11zm0 4l.34.688.759.11-.549.536.129.756-.679-.357-.679.357.13-.756-.55-.536.76-.11zm-2 3.999l.34.689.759.11-.549.535.129.757-.679-.356-.679.356.13-.757-.55-.535.76-.11z"/></svg>

After

Width:  |  Height:  |  Size: 655 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FBD116" d="M32 5H4C1.791 5 0 6.791 0 9v9h36V9c0-2.209-1.791-4-4-4z"/><path fill="#22408C" d="M0 18h36v7H0z"/><path fill="#CE2028" d="M0 27c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-2H0v2z"/></svg>

After

Width:  |  Height:  |  Size: 271 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#ED2939" d="M36 27c0 2.209-1.791 4-4 4h-8V5h8c2.209 0 4 1.791 4 4v18z"/><path fill="#002495" d="M4 5C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h8V5H4z"/><path fill="#EEE" d="M12 5h12v26H12z"/></svg>

After

Width:  |  Height:  |  Size: 270 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#002B7F" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#EEE" d="M0 9h36v18H0z"/><path fill="#CE1225" d="M0 13h36v10H0z"/><ellipse fill="#EEE" cx="8.5" cy="18" rx="3.5" ry="4"/><path fill="#F4CB58" d="M10.269 19.5c0 .828-.792 2.079-1.769 2.079S6.731 20.328 6.731 19.5c0-.829.792-1.5 1.769-1.5s1.769.671 1.769 1.5z"/><ellipse fill="#DCA841" cx="8.5" cy="19.5" rx="2.5" ry="1.5"/><ellipse fill="#89C5E4" cx="8.5" cy="16" rx="1.5" ry="1"/><ellipse fill="#088930" cx="8.5" cy="18.5" rx="1.5" ry="2.5"/><ellipse fill="#DCA841" cx="8.5" cy="16.5" rx="1.5" ry=".5"/><path fill="#89C5E4" d="M10 18c0 1.104-.671 2-1.5 2S7 19.104 7 18s.671-1.498 1.5-1.498S10 16.896 10 18z"/><ellipse fill="#DCA841" cx="8.5" cy="18.5" rx="1.5" ry=".5"/></svg>

After

Width:  |  Height:  |  Size: 873 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#002A8F" d="M32 5H4C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/><path fill="#EEE" d="M13.846 15H36v-5H6.923zM6.923 26H36v-5H13.846z"/><path fill="#CF142B" d="M13.846 15l-6.923-5-5.541-4.002C.542 6.731 0 7.797 0 9v18c0 1.203.542 2.269 1.382 3.002L6.923 26l6.923-5L18 18l-4.154-3z"/><path fill="#FFF" d="M7.495 18.602L9.5 17.149H7.022l-.769-2.362-.772 2.362H3l2.006 1.454-.771 2.36 2.015-1.459 2.015 1.459z"/></svg>

After

Width:  |  Height:  |  Size: 532 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#003893" d="M32 5H4C1.791 5 0 6.791 0 9v10h36V9c0-2.209-1.791-4-4-4z"/><path fill="#EEE" d="M0 19h36v2H0zm0 5h36v2H0z"/><path fill="#CF2027" d="M0 21v3h36v-3H0z"/><path fill="#003893" d="M4 31h28c2.209 0 4-1.791 4-4v-1H0v1c0 2.209 1.791 4 4 4z"/><path fill="#F7D116" d="M14.347 15.903l.764-.555h-.944l-.292-.898-.292.898h-.944l.764.555-.292.899.764-.555.764.555zm6.182 4.492l.764-.555h-.944l-.292-.899-.292.899h-.945l.765.555-.292.898.764-.555.764.555zm-12.364 0l.765-.555h-.945l-.292-.899-.292.899h-.944l.764.555-.292.898.764-.555.764.555zm0 4.017l.765-.555h-.945l-.292-.898-.292.898h-.944l.764.555-.292.898.764-.555.764.555zm12.364 0l.764-.555h-.944l-.292-.898-.292.898h-.945l.765.555-.292.898.764-.555.764.555zm-6.362 3.936l-.292-.898-.292.898h-.944l.764.555-.292.899.764-.555.764.555-.292-.899.764-.555zm4.001-.686l.764-.555h-.945l-.291-.898-.292.898h-.945l.764.555-.292.898.765-.555.764.555zm0-10.504l.764-.555h-.945l-.291-.898-.292.898h-.945l.764.555-.292.898.765-.555.764.555zM9.582 27.662l-.764-.555h.945l.291-.898.292.898h.945l-.764.555.292.898-.765-.555-.764.555zm0-10.504l-.764-.555h.945l.291-.898.292.898h.945l-.764.555.292.898-.765-.555-.764.555z"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#002B7F" d="M0 27c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-2H0v2z"/><path fill="#F9E814" d="M0 21h36v4H0z"/><path fill="#002B7F" d="M32 5H4C1.791 5 0 6.791 0 9v12h36V9c0-2.209-1.791-4-4-4zM4 9.764l-1.176.854.449-1.382-1.175-.854h1.453L4 7l.449 1.382h1.453l-1.175.854.449 1.382L4 9.764zm5.567 5.393L8 14.019l-1.567 1.139.599-1.843-1.567-1.139h1.937L8 10.333l.599 1.843h1.937l-1.567 1.139.598 1.842z"/><path fill="#FFF" d="M8.599 12.176L8 10.333l-.599 1.843H5.464l1.567 1.139-.598 1.842L8 14.019l1.567 1.138-.598-1.842 1.567-1.139zM5.902 8.382H4.449L4 7l-.449 1.382H2.098l1.175.854-.449 1.382L4 9.764l1.176.854-.449-1.382z"/></svg>

After

Width:  |  Height:  |  Size: 704 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#0021AD" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#1B8A42" d="M34.618 30.002C35.458 29.269 36 28.202 36 27V9c0-2.209-1.791-4-4-4H4c-1.006 0-1.915.384-2.618.998l33.236 24.004z"/><path d="M8.52 22.262l.169.584h.587l-.464.357.171.567-.463-.358-.464.342.17-.551-.464-.357h.572zm-1.532-6.504l-.678.627.067-.921-.914-.139.763-.523-.46-.801.883.27.339-.859.339.859.884-.27-.46.801.762.522-.913.14.067.921zM3.365 21.07l-.678.627.067-.921-.914-.139.763-.522-.46-.802.883.271.339-.859.339.859.884-.271-.46.802.762.522-.913.139.067.921zm7.111-.438l-.679.627.067-.921-.914-.14.763-.522-.46-.801.884.27.339-.859.338.859.884-.27-.46.801.762.521-.913.141.067.921zm-3.547 7.741L6.25 29l.067-.922-.914-.138.763-.524-.46-.801.884.27.339-.86.339.86.883-.27-.46.801.762.522-.913.14.067.922z" fill="#FFF"/><path fill="#FFC639" d="M14.437 18c0-1.968 1.595-3.563 3.563-3.563s3.563 1.595 3.563 3.563-1.595 3.563-3.563 3.563-3.563-1.595-3.563-3.563z"/><path fill="#1B8A42" d="M15.862 16.359s1.085 1.006 1.643 1.049c.91.07 1.777-.688 1.777-1.247l.855-.361v1.12l.815.559-1.527 1.399v1.679l-.914-.222-.066-1.166s-.041-.443-.6-.443c-.56 0-.998-.035-1.114-.338-.032-.083-1.513.21-1.513.21l.959-1.337-.315-.341v-.561z"/><path fill="#FFC639" d="M29.617 6.518c.232-.182 2.409 1.969 2.668 2.384.259.415.156 1.969.415 2.669s.491.856.751.7c.259-.156 1.167 0 1.296.337 0 0-.726.441-.777.752 0 0-2.306.803-3.628 1.477-1.321.674-.979.328-2.072.804-1.607.699-3.059.362-4.12.207-1.064-.155-.753-.389 0-.284.751.104 3.004-.13 3.601-.337.596-.207 1.763-1.14 2.255-1.373.492-.233 1.114-1.088.57-1.607-.546-.521-2.178-1.247-2.826-1.947-.648-.699-.647-.803.363-.647 1.011.156 1.898.689 2.383 1.173.52.519.981-.145.669-.975-.311-.83-.745-.743-1.031-1.495-.284-.751-.751-1.657-.517-1.838z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#D7141A" d="M1.383 29.973C2.084 30.628 2.998 31 4 31h28c2.209 0 4-1.791 4-4.5V18H17.5L1.383 29.973z"/><path fill="#EEE" d="M32 5H4c-1.016 0-1.94.382-2.646 1.006L17.5 18H36V9c0-2.209-1.791-4-4-4z"/><path fill="#11457E" d="M1.383 29.973L17.5 18 1.354 6.006C.525 6.739 0 7.807 0 9v17.5c0 1.48.537 2.683 1.383 3.473z"/></svg>

After

Width:  |  Height:  |  Size: 393 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCD05" d="M0 27c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-4H0v4z"/><path fill="#ED1F24" d="M0 14h36v9H0z"/><path fill="#141414" d="M32 5H4C1.791 5 0 6.791 0 9v5h36V9c0-2.209-1.791-4-4-4z"/></svg>

After

Width:  |  Height:  |  Size: 271 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#6AB2E7" d="M32 5H4c-1.016 0-1.94.382-2.646 1.006L17.5 18H36V9c0-2.209-1.791-4-4-4z"/><path fill="#12AD2B" d="M32 31H4c-1.016 0-1.94-.382-2.646-1.006L17.5 18H36v9c0 2.209-1.791 4-4 4z"/><path fill="#EEE" d="M1.383 29.973L17.5 18 1.354 6.006C.525 6.739 0 7.807 0 9v17.5c0 1.48.537 2.683 1.383 3.473z"/><path fill="#D7141A" d="M6.5 14.5l.826 2.543H10l-2.163 1.572.826 2.543L6.5 19.586l-2.163 1.572.826-2.543L3 17.043h2.674L6.5 14.5z"/></svg>

After

Width:  |  Height:  |  Size: 511 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C60C30" d="M32 5H15v11h21V9c0-2.209-1.791-4-4-4zM15 31h17c2.209 0 4-1.791 4-4.5V20H15v11zM0 20v6.5C0 29.209 1.791 31 4 31h7V20H0zM11 5H4C1.791 5 0 6.791 0 9v7h11V5z"/><path fill="#EEE" d="M15 5h-4v11H0v4h11v11h4V20h21v-4H15z"/></svg>

After

Width:  |  Height:  |  Size: 306 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#006B3F" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#EEE" d="M36 15H21V5h-6v10H0v6h15v10h6V21h15z"/><path fill="#FCD116" d="M15 5h2v26h-2z"/><path fill="#FCD116" d="M0 15h36v2H0z"/><path fill="#141414" d="M17 5h2v26h-2z"/><path fill="#141414" d="M0 17h36v2H0z"/><circle fill="#DD2E44" cx="18" cy="18" r="6"/><path d="M18 12.64l-.169.524h-.555l.451.325-.173.524.446-.325.445.325-.171-.528.449-.32h-.552zm-3.08 1l.171.523-.448.326.555-.001.168.525.169-.525.552.001-.448-.326.175-.522-.447.324zm-1.904 2.621l.446.322-.171.527.449-.327.445.326-.172-.525.447-.323-.555-.001-.166-.525-.17.526zm0 3.239l.55-.002.171.527.171-.529.552.002-.447-.322.172-.525-.45.325-.442-.327.171.525zm1.904 2.619l.444-.324.448.326-.172-.529.448-.322-.552.001-.17-.525-.172.527-.55-.003.447.324zm3.08 1l.169-.523h.554l-.451-.326.173-.524-.445.326-.445-.326.17.527-.448.321h.552zm3.08-1l-.172-.523.448-.326-.555.001-.168-.525-.169.525-.552-.001.448.326-.175.523.448-.326zm1.903-2.621l-.446-.322.171-.527-.449.327-.444-.326.171.524-.446.324h.554l.166.525.171-.525zm-.001-3.238l-.549.001-.171-.527-.171.529-.552-.003.447.323-.171.525.449-.325.442.327-.171-.526zm-1.903-2.62l-.444.324-.448-.325.171.528-.447.322.552-.001.17.525.172-.528.549.005-.446-.324z" fill="#006000"/><path fill="#00693F" d="M19.594 20.818c-.018-.137-.061-.652-.069-1.062-.005-.276-.506-.646-.837-.643-.226-.462-.887-1.02-1.331-.576-.043.309.034.91.18 1.14l.678.154c.068-.043.145-.144.171-.23.019-.006.031-.024.049-.032.126.487.377 1.247.448 1.429.077.197.189.6.438.67.111.059.266.016.197-.498.076-.018.092-.215.076-.352z"/><path fill="#7D76B6" d="M18.86 15.76c.013.102.077.206.154.27-.051.038-.077.09-.09.128-.283.244-.939 1.941-.951 2.314-.045.199-.136.515-.213.65-.437-.392-.887-1.125-.812-1.455-.026-.004-.064-.008-.107-.021.009-.03.025-.18.03-.27-.026 0-.073 0-.112-.013.009-.056.026-.219.026-.292-.043-.013-.095-.056-.133-.099.029-.077.107-.227.146-.317-.064-.008-.111-.073-.133-.111.056-.034.129-.133.158-.193-.047-.039-.102-.094-.111-.12.06-.056.236-.248.313-.355-.048 0-.064-.004-.104-.013.064-.025.138-.12.224-.201.147.128.428.105.563.028.244.141.508.161.849.051.066.019.239.045.303.019z"/><path fill="#00693F" d="M19.838 20.428c.051-1.813-.258-3.472-.733-4.076-.476-.605-1.349-.47-1.594.051-.104.219-.118.741-.014.965.181.386.875 1.607 1.351 2.07.475.462.809.771.99.99z"/><path fill="#FFD420" d="M19.122 19.996c-.137.016-.3-.018-.429-.078-.129-.061-.24-.119-.377-.119-.138 0-.883-.053-1.003-.096-.12-.043-.455-.102-.592-.094-.137.008-.352.104-.438.104-.086 0-.128.068-.128.137 0 .068.017.197.119.266.181-.008.438-.025.472-.06.249.068.583.139.789.146.206.008.574.025.712.018.137-.01.162-.053.343.008.18.06.42.189.531.223.111.035.18-.076.205-.197.028-.121-.058-.268-.204-.258z"/><path fill="#FFF" d="M17.279 15.002c-.005 0-.011.006-.016.006-.039-.173-.219-.295-.32-.29-.314.083-.296.663-.013.862-.008-.104.028-.188.078-.261.023.07.077.136.218.153.149-.053.098-.381.053-.47z"/><path fill="#7D76B6" d="M17.146 15.662c.147.128.428.105.563.028.244.141.508.161.849.051.064.02.237.045.302.02.039-.039.077-.064.116-.09-.077-.064-.154-.18-.193-.295 0 0 .065-.078.09-.116-.063-.064-.192-.167-.257-.206.039-.038.077-.154.077-.154-.129-.038-.257-.128-.309-.18l.013-.077c-.21-.013-.201-.27-.655-.347-.309-.052-.772.077-.798.424.172.167.434.39.283.754-.039.052-.111.12-.154.142.026.028.043.032.073.046z"/><path fill="#FFF" d="M18.342 20.219c-.086-.01-.171-.104-.171-.18 0-.078.008-.233.154-.25-.048-.082-.116-.104-.182-.094-.062-.075-.161-.091-.256-.07.003-.004.005-.013.009-.016-.08-.065-.172-.051-.252-.011-.148-.087-.373.022-.408.294-.034.266.103.455.3.445v-.003c.089.044.216.004.249-.048l-.001-.019c.082.054.164.055.237.003.026.024.051.05.09.059.112.027.197-.067.231-.11z"/><path fill="#FFD420" d="M17.562 14.59c-.231 0-.225.347 0 .347s.231-.347 0-.347z"/><path d="M17.562 14.72c-.058 0-.056.086 0 .086.056.001.058-.086 0-.086z"/></svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#006233" d="M4 5C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h14V5H4z"/><path fill="#EEE" d="M32 5H18v26h14c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/><path fill="#D20F34" d="M20 24c-3.315 0-6-2.685-6-6 0-3.314 2.685-6 6-6 1.31 0 2.52.425 3.507 1.138-1.348-1.524-3.312-2.491-5.507-2.491-4.061 0-7.353 3.292-7.353 7.353 0 4.062 3.292 7.354 7.353 7.354 2.195 0 4.16-.967 5.507-2.492C22.521 23.575 21.312 24 20 24z"/><path fill="#D20F34" d="M25.302 18.23l-2.44.562-.22 2.493-1.288-2.146-2.44.561 1.644-1.888-1.287-2.147 2.303.98 1.644-1.889-.22 2.494z"/></svg>

After

Width:  |  Height:  |  Size: 629 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#C60A1D" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#FFC400" d="M0 12h36v12H0z"/><path fill="#EA596E" d="M9 17v3c0 1.657 1.343 3 3 3s3-1.343 3-3v-3H9z"/><path fill="#F4A2B2" d="M12 16h3v3h-3z"/><path fill="#DD2E44" d="M9 16h3v3H9z"/><ellipse fill="#EA596E" cx="12" cy="14.5" rx="3" ry="1.5"/><ellipse fill="#FFAC33" cx="12" cy="13.75" rx="3" ry=".75"/><path fill="#99AAB5" d="M7 16h1v7H7zm9 0h1v7h-1z"/><path fill="#66757F" d="M6 22h3v1H6zm9 0h3v1h-3zm-8-7h1v1H7zm9 0h1v1h-1z"/></svg>

After

Width:  |  Height:  |  Size: 629 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#ED1C23" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#034EA2" d="M0 17h36v7H0z"/><path fill="#FD0" d="M36 17V9c0-2.209-1.791-4-4-4H4C1.791 5 0 6.791 0 9v8h36z"/><path fill="#FD0" d="M23 19c0 1.104-.896 2-2 2h-6c-1.104 0-2-.896-2-2v-3c0-1.104.896-2 2-2h6c1.104 0 2 .896 2 2v3z"/><path fill="#034EA2" d="M22 18c0 1.104-.896 3-2 3h-4c-1.104 0-2-1.896-2-3v-1c0-1.104.896-2 2-2h4c1.104 0 2 .896 2 2v1z"/><path fill="#ED1C23" d="M21 18c0 1.104-.896 3-2 3h-2c-1.104 0-2-1.896-2-3v-1c0-1.104.896-2 2-2h2c1.104 0 2 .896 2 2v1z"/><path fill="#6DBE46" d="M19.973 14.135c-.133.488-.961.865-1.973.865s-1.84-.377-1.973-.865C14.822 14.307 15 14.628 15 15c0 .552.791 1 3 1s3-.448 3-1c0-.372.178-.693-1.027-.865z"/><path fill="#A6D388" d="M19 19c0 .553-.448 1-1 1s-1-.447-1-1v-3c0-.552.448-1 1-1s1 .448 1 1v3z"/><path fill="#662113" d="M21.5 12c.44 0 .858.052 1.246.137C22.123 11.061 20 10 18 12c-2-2-4.123-.939-4.746.137.388-.085.806-.137 1.246-.137 1.933 0 3.5.896 3.5 2 0-1.104 1.566-2 3.5-2z"/><ellipse fill="#8ED2E7" cx="18" cy="17.5" rx="2" ry="3.5"/><path fill="#6DBE46" d="M17.5 17c-.536 0-1.037.13-1.491.345-.001.052-.009.102-.009.155 0 1.933.896 3.5 2 3.5 1.003 0 1.825-1.295 1.97-2.979-.633-.63-1.506-1.021-2.47-1.021z"/><ellipse fill="#FFCC4D" cx="18" cy="22" rx="3" ry="1"/><path fill="#034EA2" d="M20 23c0 .828-.896 1-2 1s-2-.172-2-1 .896-2 2-2 2 1.172 2 2z"/><path fill="#ED1C23" d="M17 23c0-.828.448-2 1-2s1 1.172 1 2-.448 1-1 1-1-.172-1-1z"/><path fill="#CCD6DD" d="M17 11c0-.552.448 0 1 0s1-.552 1 0-.448 1-1 1-1-.448-1-1z"/><ellipse fill="#FFF" cx="18" cy="17.5" rx="1" ry=".5"/><ellipse fill="#C1694F" cx="13" cy="15.5" rx="1" ry=".5"/><ellipse fill="#C1694F" cx="14" cy="13.5" rx="1" ry=".5"/><ellipse fill="#C1694F" cx="23" cy="15.5" rx="1" ry=".5"/><ellipse fill="#C1694F" cx="22" cy="13.5" rx="1" ry=".5"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#141414" d="M0 14h36v9H0z"/><path fill="#4891D9" d="M32 5H4C1.791 5 0 6.791 0 9v5h36V9c0-2.209-1.791-4-4-4z"/><path fill="#EEE" d="M32 31H4c-2.209 0-4-1.791-4-4v-4h36v4c0 2.209-1.791 4-4 4z"/></svg>

After

Width:  |  Height:  |  Size: 270 B

Some files were not shown because too many files have changed in this diff Show More