Compare commits
59 commits
d8441c7084
...
4d96bdcbcf
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4d96bdcbcf | ||
|
|
b7be57464d | ||
|
|
7498dd29f0 | ||
|
|
f56e7d7bd6 | ||
|
|
1893dbeeb0 | ||
|
|
8a933ea8f6 | ||
|
|
d950718200 | ||
|
|
ba05e2d094 | ||
|
|
fa5133071d | ||
|
|
9b640198ce | ||
|
|
8e367f37ec | ||
|
|
7b4827dadd | ||
|
|
fc27cb7a59 | ||
|
|
a23f0b43a6 | ||
|
|
0de92c06f8 | ||
|
|
3a656c9c4a | ||
|
|
e558c0dffa | ||
|
|
d944273335 | ||
|
|
5ea16c805f | ||
|
|
ca2301bc96 | ||
|
|
2056043104 | ||
|
|
67330ead5a | ||
|
|
7ca697348b | ||
|
|
ed119cc940 | ||
|
|
a791389c6a | ||
|
|
13e7a3baaf | ||
|
|
3bcdfc3793 | ||
|
|
396196b762 | ||
|
|
7a40ed9079 | ||
|
|
634f8115a5 | ||
|
|
54797452da | ||
|
|
d8700b2947 | ||
|
|
140fbb4484 | ||
|
|
3f7aa4ca82 | ||
|
|
75beb7f302 | ||
|
|
99422c2bf0 | ||
|
|
96f8c3a423 | ||
|
|
3fa8d78786 | ||
|
|
34201122ec | ||
|
|
d2abd645e8 | ||
|
|
ee57d740c2 | ||
|
|
2e0a718cd7 | ||
|
|
28597ef716 | ||
|
|
75d7764643 | ||
|
|
81a0b97240 | ||
|
|
624163916f | ||
|
|
94f7de42f2 | ||
|
|
7768416091 | ||
|
|
c72192fd81 | ||
|
|
9588e1960d | ||
|
|
fd2a99e897 | ||
|
|
dc4aa19d23 | ||
|
|
ada8f399f1 | ||
|
|
bc09ec6afe | ||
|
|
bfb53c5def | ||
|
|
381dd21e8c | ||
|
|
c5b776ca46 | ||
|
|
dd7ee3541c | ||
|
|
44d5138181 |
|
|
@ -175,9 +175,9 @@ fi
|
|||
if [[ $MAKE_SANITIZE ]]; then
|
||||
flags+=("-DENABLE_SANITIZERS=ON")
|
||||
else
|
||||
# The release-package step re-runs cmake in the same build dir, so an
|
||||
# ENABLE_SANITIZERS=ON left over from the debug step would otherwise leak
|
||||
# into the shipped binaries (libasan/libubsan Depends in the DEB).
|
||||
# Every leg states the flag explicitly rather than relying on the CMake
|
||||
# default, so a build directory reused from a sanitized configuration can
|
||||
# never leak libasan/libubsan into a shipped binary.
|
||||
flags+=("-DENABLE_SANITIZERS=OFF")
|
||||
fi
|
||||
if [[ $MAKE_COVERAGE ]]; then
|
||||
|
|
@ -185,9 +185,6 @@ if [[ $MAKE_COVERAGE ]]; then
|
|||
fi
|
||||
if [[ $USE_CCACHE ]]; then
|
||||
flags+=("-DUSE_CCACHE=1")
|
||||
# PCH-aware caching is required or ccache refuses to cache any TU that
|
||||
# consumes a precompiled header, silently recompiling everything on every run.
|
||||
ccache --set-config sloppiness=pch_defines,time_macros
|
||||
if [[ $CCACHE_SIZE ]]; then
|
||||
# note, this setting persists after running the script
|
||||
ccache --max-size "$CCACHE_SIZE"
|
||||
|
|
@ -378,6 +375,21 @@ echo "Running cmake with flags: ${flags[*]}"
|
|||
cmake .. "${flags[@]}"
|
||||
echo "::endgroup::"
|
||||
|
||||
if [[ $USE_CCACHE ]]; then
|
||||
# PCH-aware caching is required or ccache refuses to cache any TU that consumes a
|
||||
# precompiled header, silently recompiling everything on every run. The mtime and ctime
|
||||
# entries cover files created during the build itself: the moc/uic/rcc output and the
|
||||
# protobuf headers are generated after ccache starts, so without them every TU including
|
||||
# one is read as a race and never cached. Checked-out sources are older than the compile
|
||||
# that follows them and do not trip the check.
|
||||
#
|
||||
# This has to run after configure: CMakeLists.txt sets sloppiness=pch_defines,time_macros
|
||||
# at configure time, and --set-config replaces the whole list rather than extending it, so
|
||||
# setting it earlier would leave the build below with two entries. Re-asserting all four
|
||||
# here is what actually reaches the compiler; the order is the point.
|
||||
ccache --set-config sloppiness=pch_defines,time_macros,include_file_mtime,include_file_ctime
|
||||
fi
|
||||
|
||||
echo "::group::Build project"
|
||||
cpuinfo
|
||||
echo "Running cmake --build with flags: ${buildflags[*]}"
|
||||
|
|
|
|||
340
.github/workflows/desktop-build.yml
vendored
|
|
@ -33,10 +33,18 @@ on:
|
|||
- 'CMakeLists.txt'
|
||||
- 'vcpkg.json'
|
||||
- 'vcpkg' # needed to match submodule bumps (gitlink)
|
||||
# The legs the pull-request matrix leaves out run here instead, so the legacy distros and
|
||||
# the slow macOS runner stay covered without gating a pull request on them. Tags still
|
||||
# build every leg, because a tag is what ships.
|
||||
schedule:
|
||||
- cron: '23 3 * * *'
|
||||
|
||||
# Cancel earlier, unfinished runs of this workflow on the same branch (unless on tag --> release)
|
||||
concurrency:
|
||||
group: "${{ github.workflow }} @ ${{ github.ref_name }}"
|
||||
# The event name is part of the group because a nightly run and a push run on master share
|
||||
# refs/heads/master but must not cancel each other: the nightly would drop the push's vcpkg
|
||||
# import, and a merge landing during the nightly would drop that night's coverage.
|
||||
group: "${{ github.workflow }} @ ${{ github.ref_name }} (${{ github.event_name }})"
|
||||
cancel-in-progress: ${{ github.ref_type != 'tag' }}
|
||||
|
||||
jobs:
|
||||
|
|
@ -141,6 +149,7 @@ jobs:
|
|||
|
||||
allow-failure: yes
|
||||
package: skip # We are packaged in Arch already
|
||||
debug_test: yes # see the note on Fedora 44 below
|
||||
|
||||
- distro: Servatrice_Debian
|
||||
version: 12
|
||||
|
|
@ -148,77 +157,105 @@ jobs:
|
|||
package: DEB
|
||||
server_only: yes
|
||||
test: skip
|
||||
|
||||
- distro: Debian
|
||||
version: 12
|
||||
|
||||
package: DEB
|
||||
test: skip # Running tests on all distros is superfluous
|
||||
ccache_size: 400M # server only, no client to compile
|
||||
|
||||
- distro: Debian
|
||||
version: 13
|
||||
|
||||
package: DEB
|
||||
|
||||
- distro: Fedora
|
||||
version: 43
|
||||
|
||||
package: RPM
|
||||
test: skip # Running tests on all distros is superfluous
|
||||
ccache_size: 850M # the Release build plus the suite it runs
|
||||
|
||||
- distro: Fedora
|
||||
version: 44
|
||||
|
||||
package: RPM
|
||||
|
||||
- distro: Ubuntu
|
||||
version: 24.04
|
||||
|
||||
package: DEB
|
||||
test: skip # Running tests on all distros is superfluous
|
||||
# Arch and Fedora 44 are the two newest toolchains, and the -Wno-error= exceptions
|
||||
# in CMakeLists.txt exist for exactly their warnings. They keep compiling Debug:
|
||||
# only the Debug configuration passes -Werror, so these two are the legs where a
|
||||
# new warning in either compiler still fails the build.
|
||||
debug_test: yes
|
||||
ccache_size: 900M # Debug for the suite and Release for the package
|
||||
|
||||
- distro: Ubuntu
|
||||
version: 26.04
|
||||
|
||||
package: DEB
|
||||
test: skip # The sanitizer leg below runs this distro's suite
|
||||
|
||||
# The one leg that runs the suite under AddressSanitizer and
|
||||
# UndefinedBehaviorSanitizer. Debian 13 and Fedora 44 keep covering the
|
||||
# uninstrumented suite, so nothing is lost by instrumenting this one.
|
||||
sanitize: yes
|
||||
|
||||
#
|
||||
# It packages nothing. A sanitized Debug build is not something to ship, and
|
||||
# carrying the package build here meant 18 minutes of Release compile queued
|
||||
# behind the instrumented one in a single job. The leg above publishes this
|
||||
# distro's DEB.
|
||||
- distro: Ubuntu
|
||||
version: 26.04
|
||||
variant: cover # separate image and ccache, same distro
|
||||
variant: sanitize # separate image and ccache, same distro
|
||||
|
||||
# The one leg that runs instrumented for line coverage and publishes the report as
|
||||
# a workflow artifact. It is a separate leg rather than a second flag on the
|
||||
# sanitizer leg because the two instruments answer different questions: the
|
||||
# sanitizer leg reports what the run did wrong, the coverage leg reports what the
|
||||
# run never touched at all. Combining them would also slow both down. Packaging is
|
||||
# skipped because the leg above already publishes the DEB for this distro.
|
||||
coverage: yes
|
||||
package: skip
|
||||
sanitize: yes
|
||||
ccache_size: 800M # instrumented objects are larger
|
||||
|
||||
name: ${{ matrix.distro }} ${{ matrix.version }}${{ matrix.variant && format(' {0}', matrix.variant) || '' }}
|
||||
needs: configure
|
||||
# The nightly legs live in build-linux-nightly below. A leg is in exactly one of the two
|
||||
# matrices, so nothing that reviews a change waits for a distro nobody is changing for.
|
||||
if: github.event_name != 'schedule'
|
||||
runs-on: ubuntu-latest # https://github.com/actions/runner-images
|
||||
continue-on-error: ${{ matrix.allow-failure == 'yes' }}
|
||||
timeout-minutes: 70
|
||||
env:
|
||||
CACHE: ${{ github.workspace }}/.cache/${{ matrix.distro }}${{ matrix.version }}${{ matrix.variant }} # directory for caching docker image and ccache
|
||||
CCACHE_EVICTION_AGE: 7d
|
||||
CCACHE_SIZE: 600M # space of all repo is 10Gi: https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy
|
||||
# The bound is sized against the repository's 10 GB cache quota
|
||||
# (https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy),
|
||||
# not against what one leg would like. The quota currently holds about 1.1 GB of
|
||||
# CodeQL trap, 1.1 GB of vcpkg, 0.7 GB of Qt and 2.1 GB of docker buildkit layers
|
||||
# (mode=min in docker-release.yml, added here, brings the last one down to roughly
|
||||
# 0.3 GB - the one input here that is an expectation rather than a measurement, since
|
||||
# mode=min still writes one layer per pushed binary) plus the compiler caches of the nine legs a pull request runs. The five
|
||||
# nightly-only legs keep no compiler cache (see PERSIST_CCACHE below), which is what
|
||||
# makes these per-leg bounds affordable. Accounting for all of it: 6.45G of ccache
|
||||
# bounds + 3.2G of the fixed entries = 9.65G against the 10G quota.
|
||||
#
|
||||
# A configuration needs roughly 500-850 MB on Linux, so the old uniform 600M bound sat
|
||||
# below what a leg writes: ccache spent each build deleting the entries the next run
|
||||
# asked for (measured: 2624-3720 cleanup passes per build, 8% of calls served). Each
|
||||
# leg states the size it needs instead: one configuration for most, two for Fedora 44
|
||||
# (Debug for the suite, Release for the package), the server alone for Servatrice.
|
||||
# Raising these further means caching fewer legs, since GitHub evicts a whole entry
|
||||
# when the total is exceeded.
|
||||
#
|
||||
# Every key listed in LIVE_CCACHE_KEYS in prune-caches below must match this matrix.
|
||||
CCACHE_SIZE: ${{ matrix.ccache_size || '700M' }}
|
||||
CMAKE_GENERATOR: 'Ninja'
|
||||
NAME: ${{ matrix.distro }}${{ matrix.version }}
|
||||
IMAGE_SUFFIX: ${{ matrix.variant }}
|
||||
# Which build the suite runs in, decided once per leg here so the steps' if: conditions
|
||||
# and their shells cannot drift apart. A step's own env is not visible to its if:, which
|
||||
# is why these live at job level rather than on the release step.
|
||||
# DEBUG_TEST the instrumented legs (symbols and instrumentation matter) and the two
|
||||
# newest distro toolchains, which only fail on a warning in Debug.
|
||||
# RUN_TESTS every other leg that tests runs the suite against the release build it may
|
||||
# also package, so testing and packaging cost one compile instead of two.
|
||||
DEBUG_TEST: ${{ matrix.sanitize == 'yes' || matrix.coverage == 'yes' || matrix.debug_test == 'yes' }}
|
||||
RUN_TESTS: ${{ matrix.test != 'skip' && !(matrix.sanitize == 'yes' || matrix.coverage == 'yes' || matrix.debug_test == 'yes') }}
|
||||
# Whether this leg restores and saves its compiler cache. Every leg a pull request
|
||||
# runs keeps one; the nightly-only legs do not, so that the quota is spent on the
|
||||
# builds that review a change. A tag build runs both sets, and the nightly legs are
|
||||
# cold there - accepted, because a tag is rare and only the pull-request legs gate.
|
||||
PERSIST_CCACHE: 'true'
|
||||
|
||||
steps:
|
||||
# Shared with build-linux-nightly so the two leg sets run the same steps.
|
||||
steps: &linux-steps
|
||||
- name: "Checkout"
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: "Restore compiler cache (ccache)"
|
||||
id: restore_ccache
|
||||
if: env.PERSIST_CCACHE == 'true'
|
||||
uses: actions/cache/restore@v6
|
||||
with:
|
||||
key: ccache-${{ matrix.distro }}${{ matrix.version }}${{ matrix.variant }}
|
||||
|
|
@ -228,8 +265,11 @@ jobs:
|
|||
shell: bash
|
||||
run: source .ci/docker.sh --build
|
||||
|
||||
# The instrumented legs and the two newest distro toolchains build and test Debug; every
|
||||
# other leg runs its suite against the release build below, so testing and packaging cost
|
||||
# one compile instead of two.
|
||||
- name: "Build debug and test"
|
||||
if: matrix.test != 'skip'
|
||||
if: env.DEBUG_TEST == 'true'
|
||||
shell: bash
|
||||
env:
|
||||
sanitize: '${{ matrix.sanitize }}'
|
||||
|
|
@ -269,15 +309,23 @@ jobs:
|
|||
path: coverage/
|
||||
if-no-files-found: warn
|
||||
|
||||
- name: "Build release package"
|
||||
# One build serves both purposes: the suite runs against the same configuration that
|
||||
# gets packaged, so a packaging leg no longer pays for a full Debug compile it then
|
||||
# throws away. macOS and Windows have always tested their release build.
|
||||
#
|
||||
# Instrumented and debug-test legs reach this step only when they also package; their
|
||||
# suite already ran in the debug step above, so the tests are not repeated here.
|
||||
- name: "Build release, test and package"
|
||||
id: build
|
||||
if: matrix.package != 'skip'
|
||||
if: matrix.package != 'skip' || env.RUN_TESTS == 'true'
|
||||
shell: bash
|
||||
env:
|
||||
SUFFIX: '-${{ matrix.distro }}${{ matrix.version }}'
|
||||
package: '${{ matrix.package }}'
|
||||
server_only: '${{ matrix.server_only }}'
|
||||
WITH_CRASH_REPORTING: 'ON'
|
||||
# Only a leg that packages builds the shipping configuration; a release build that
|
||||
# only runs tests stays free of the crash reporting SDK.
|
||||
WITH_CRASH_REPORTING: ${{ matrix.package != 'skip' && 'ON' || '' }}
|
||||
# Tag builds only: artifacts from master pushes and PR branches must not report to
|
||||
# Sentry. Forks get no secrets on pull_request, so they keep the mock fallback either way.
|
||||
# configure.outputs.tag is set for ANY tag, so beta (Development) tags get the DSN
|
||||
|
|
@ -287,6 +335,7 @@ jobs:
|
|||
source .ci/docker.sh
|
||||
args=()
|
||||
[[ $server_only == yes ]] && args+=(--no-client)
|
||||
[[ $RUN_TESTS == true ]] && args+=(--test)
|
||||
[[ $GITHUB_REF == "refs/heads/master" ]] && args+=(--evict-ccache "$CCACHE_EVICTION_AGE")
|
||||
args+=(--ccache "$CCACHE_SIZE")
|
||||
args+=(--cmake-generator "$CMAKE_GENERATOR")
|
||||
|
|
@ -296,7 +345,14 @@ jobs:
|
|||
# configures, and empty keeps the mock fallback.
|
||||
export RUN_ARGS="${RUN_ARGS:-} -e COCKATRICE_SENTRY_DSN"
|
||||
|
||||
RUN --server --release --package "$package" "${args[@]}"
|
||||
# --package takes an optional type, so the flag and its argument have to travel
|
||||
# together or the type would become the next flag.
|
||||
package_args=()
|
||||
[[ -n $package && $package != skip ]] && package_args+=(--package "$package")
|
||||
|
||||
# compile.sh runs the tests before the package target, so a failing suite stops the
|
||||
# leg before anything is built into an installer.
|
||||
RUN --server --release "${package_args[@]}" "${args[@]}"
|
||||
|
||||
- name: "Install sentry-cli"
|
||||
if: matrix.package != 'skip' && needs.configure.outputs.tag != null
|
||||
|
|
@ -345,7 +401,7 @@ jobs:
|
|||
|
||||
# Delete used cache to emulate a ccache update. See https://github.com/actions/cache/issues/342
|
||||
- name: "Delete remote compiler cache (ccache)"
|
||||
if: github.ref == 'refs/heads/master' && steps.restore_ccache.outputs.cache-hit
|
||||
if: github.ref == 'refs/heads/master' && env.PERSIST_CCACHE == 'true' && steps.restore_ccache.outputs.cache-hit
|
||||
continue-on-error: true
|
||||
env:
|
||||
CACHE_PRIMARY_KEY: ${{ steps.restore_ccache.outputs.cache-primary-key }}
|
||||
|
|
@ -356,7 +412,7 @@ jobs:
|
|||
fi
|
||||
|
||||
- name: "Save updated compiler cache (ccache)"
|
||||
if: github.ref == 'refs/heads/master'
|
||||
if: github.ref == 'refs/heads/master' && env.PERSIST_CCACHE == 'true'
|
||||
uses: actions/cache/save@v6
|
||||
with:
|
||||
key: ${{ steps.restore_ccache.outputs.cache-primary-key }}
|
||||
|
|
@ -398,33 +454,80 @@ jobs:
|
|||
GH_TOKEN: ${{ github.token }}
|
||||
run: gh attestation verify "$BUILD_PATH" --repo Cockatrice/Cockatrice
|
||||
|
||||
build-linux-nightly:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- distro: Debian
|
||||
version: 12 # previous stable, still covered by the nightly
|
||||
|
||||
package: DEB
|
||||
test: skip # Running tests on all distros is superfluous
|
||||
|
||||
- distro: Fedora
|
||||
version: 43 # previous release, still covered by the nightly
|
||||
|
||||
package: RPM
|
||||
test: skip # Running tests on all distros is superfluous
|
||||
|
||||
- distro: Ubuntu
|
||||
version: 24.04 # previous LTS, still covered by the nightly
|
||||
|
||||
package: DEB
|
||||
test: skip # Running tests on all distros is superfluous
|
||||
|
||||
# The one leg that runs instrumented for line coverage and publishes the report as
|
||||
# a workflow artifact. It stays a separate leg rather than a second flag on the
|
||||
# sanitizer leg because the two instruments answer different questions: the
|
||||
# sanitizer leg reports what the run did wrong, the coverage leg reports what the
|
||||
# run never touched at all. Combining them would also slow both down.
|
||||
#
|
||||
# It moved here from build-linux: gcovr.cfg sets no fail_under, so the leg cannot
|
||||
# fail a build, and nothing consumes the report per change, which made it an
|
||||
# artifact nobody read on every pull request. On the default branch it becomes a
|
||||
# trend instead. Image and ccache keys come from distro, version and variant, so
|
||||
# they are unchanged and the warm cache that leg built still matches.
|
||||
- distro: Ubuntu
|
||||
version: 26.04
|
||||
variant: cover # separate image and ccache, same distro
|
||||
|
||||
coverage: yes
|
||||
package: skip
|
||||
# A report must not redden the nightly run: vcpkg-cache-import only imports the
|
||||
# archives of a run whose conclusion is success.
|
||||
allow-failure: yes
|
||||
|
||||
name: ${{ matrix.distro }} ${{ matrix.version }}${{ matrix.variant && format(' {0}', matrix.variant) || '' }}
|
||||
needs: configure
|
||||
# A nightly and a tag build cover the legs a pull request or a merge does not wait for:
|
||||
# the previous release of each distro, and the one instrument that only reports.
|
||||
if: github.event_name == 'schedule' || github.ref_type == 'tag'
|
||||
runs-on: ubuntu-latest # https://github.com/actions/runner-images
|
||||
continue-on-error: ${{ matrix.allow-failure == 'yes' }}
|
||||
timeout-minutes: 70
|
||||
env:
|
||||
CACHE: ${{ github.workspace }}/.cache/${{ matrix.distro }}${{ matrix.version }}${{ matrix.variant }} # directory for caching docker image and ccache
|
||||
CCACHE_EVICTION_AGE: 7d
|
||||
# These legs do not keep a compiler cache: they run once a day (and on tags) and gate
|
||||
# nothing, so their share of the 10 GB quota goes to the pull-request legs instead.
|
||||
# A cold nightly build costs minutes on a runner nobody waits for; a cold pull request
|
||||
# build costs a review. CCACHE_SIZE is still passed so ccache trims its scratch dir.
|
||||
PERSIST_CCACHE: 'false'
|
||||
CCACHE_SIZE: 600M
|
||||
CMAKE_GENERATOR: 'Ninja'
|
||||
NAME: ${{ matrix.distro }}${{ matrix.version }}
|
||||
IMAGE_SUFFIX: ${{ matrix.variant }}
|
||||
steps: *linux-steps
|
||||
|
||||
build-vcpkg:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: macOS
|
||||
target: 13 # EOL 2025-09-15
|
||||
runner: macos-15-intel # https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md
|
||||
# macos-26-intel is very slow and fails in CPack during DMG config if not increasing Finder timeout
|
||||
|
||||
ccache_eviction_age: 7d
|
||||
cmake_generator: Ninja
|
||||
make_package: 1
|
||||
override_target: 13
|
||||
package_suffix: "-macOS13_Intel"
|
||||
qt_version: 6.11.*
|
||||
qt_modules: qtimageformats qtmultimedia qtshadertools qtwebsockets
|
||||
soc: Intel
|
||||
type: Release
|
||||
use_ccache: 1
|
||||
vcpkg_scope: 'vcpkg/macos13-x64-xcode26.3/'
|
||||
vcpkg_upload: 1 # only one leg per vcpkg_scope hands its archives over
|
||||
xcode: "26.3"
|
||||
|
||||
- os: macOS
|
||||
target: 14 # EOL 2026-??
|
||||
runner: macos-26 # https://github.com/actions/runner-images/blob/main/images/macos/macos-26-arm64-Readme.md
|
||||
target: 14 # EOL 2026-09-14
|
||||
runner: xcode-27 # https://github.com/actions/runner-images/blob/main/images/macos/xcode-27-arm64-Readme.md
|
||||
|
||||
ccache_eviction_age: 7d
|
||||
cmake_generator: Ninja
|
||||
|
|
@ -439,11 +542,10 @@ jobs:
|
|||
vcpkg_deployment_target: 14
|
||||
vcpkg_scope: 'vcpkg/macos14-arm64-xcode26.6/'
|
||||
vcpkg_upload: 1 # only one leg per vcpkg_scope hands its archives over
|
||||
xcode: "26.6"
|
||||
|
||||
- os: macOS
|
||||
target: 15
|
||||
runner: macos-26 # https://github.com/actions/runner-images/blob/main/images/macos/macos-26-arm64-Readme.md
|
||||
target: 15 # EOL 2027-??
|
||||
runner: xcode-27 # https://github.com/actions/runner-images/blob/main/images/macos/xcode-27-arm64-Readme.md
|
||||
|
||||
ccache_eviction_age: 7d
|
||||
cmake_generator: Ninja
|
||||
|
|
@ -457,11 +559,10 @@ jobs:
|
|||
use_ccache: 1
|
||||
vcpkg_deployment_target: 14
|
||||
vcpkg_scope: 'vcpkg/macos14-arm64-xcode26.6/'
|
||||
xcode: "26.6"
|
||||
|
||||
- os: macOS
|
||||
target: 26
|
||||
runner: macos-26 # https://github.com/actions/runner-images/blob/main/images/macos/macos-26-arm64-Readme.md
|
||||
target: 27
|
||||
runner: xcode-27 # https://github.com/actions/runner-images/blob/main/images/macos/xcode-27-arm64-Readme.md
|
||||
|
||||
ccache_eviction_age: 7d
|
||||
cmake_generator: Ninja
|
||||
|
|
@ -472,7 +573,6 @@ jobs:
|
|||
use_ccache: 1
|
||||
vcpkg_deployment_target: 14
|
||||
vcpkg_scope: 'vcpkg/macos14-arm64-xcode26.6/'
|
||||
xcode: "26.6"
|
||||
|
||||
- os: Windows
|
||||
target: 10
|
||||
|
|
@ -497,13 +597,22 @@ jobs:
|
|||
|
||||
name: ${{ matrix.os }} ${{ matrix.target }}${{ matrix.soc == 'Intel' && ' Intel' || '' }}${{ matrix.type == 'Debug' && ' Debug' || '' }}
|
||||
needs: [configure, vcpkg-baseline]
|
||||
# The nightly leg lives in build-vcpkg-nightly below, next to the Linux nightly legs.
|
||||
if: github.event_name != 'schedule'
|
||||
runs-on: ${{ matrix.runner }}
|
||||
timeout-minutes: 100
|
||||
env:
|
||||
CCACHE_DIR: ${{ github.workspace }}/.cache/
|
||||
CCACHE_SIZE: 600M # space of all repo is 10Gi: https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy
|
||||
# macOS configurations compile about twice the TUs of a Linux one, so each of these
|
||||
# three legs gets a bound above what it has been measured to write. The four macOS
|
||||
# legs used to be bounded at 600M from the same quota as the Linux ones; the three
|
||||
# pull-request legs now get 700M each while the nightly Intel leg keeps none, and
|
||||
# that is what fits (see CCACHE_SIZE in build-linux for the full arithmetic).
|
||||
CCACHE_SIZE: 700M
|
||||
PERSIST_CCACHE: 'true'
|
||||
|
||||
steps:
|
||||
# Shared with build-vcpkg-nightly so the two leg sets run the same steps.
|
||||
steps: &vcpkg-steps
|
||||
- name: "Checkout"
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
|
|
@ -520,11 +629,11 @@ jobs:
|
|||
run: brew install ccache
|
||||
|
||||
- name: "[macOS] Restore compiler cache (ccache)"
|
||||
if: matrix.os == 'macOS' && matrix.use_ccache == 1
|
||||
if: matrix.os == 'macOS' && matrix.use_ccache == 1 && env.PERSIST_CCACHE == 'true'
|
||||
id: restore_ccache
|
||||
uses: actions/cache/restore@v6
|
||||
with:
|
||||
key: ccache-${{ matrix.runner }}_${{ matrix.override_target }}-Xcode${{ matrix.xcode }}
|
||||
key: ccache-${{ matrix.os }}${{ matrix.override_target }}-${{ matrix.runner }}
|
||||
path: ${{ env.CCACHE_DIR }}
|
||||
|
||||
- name: "[macOS] Install aqtinstall"
|
||||
|
|
@ -639,7 +748,6 @@ jobs:
|
|||
# configure.outputs.tag is set for ANY tag, so beta (Development) tags get the DSN
|
||||
# and the symbol upload below just like full releases.
|
||||
COCKATRICE_SENTRY_DSN: ${{ needs.configure.outputs.tag != null && secrets.SENTRY_DSN || '' }}
|
||||
DEVELOPER_DIR: '/Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer'
|
||||
GITHUB_TOKEN: ${{ github.token }} # needed for vcpkg dependency graph updates, see VCPKG_FEATURE_FLAGS
|
||||
MACOS_CERTIFICATE: ${{ secrets.PROD_MACOS_CERTIFICATE }}
|
||||
MACOS_CERTIFICATE_NAME: ${{ secrets.PROD_MACOS_CERTIFICATE_NAME }}
|
||||
|
|
@ -851,7 +959,7 @@ jobs:
|
|||
|
||||
# Delete used cache to emulate a ccache update. See https://github.com/actions/cache/issues/342
|
||||
- name: "[macOS] Delete remote compiler cache (ccache)"
|
||||
if: matrix.os == 'macOS' && matrix.use_ccache == 1 && github.ref == 'refs/heads/master' && steps.restore_ccache.outputs.cache-hit
|
||||
if: matrix.os == 'macOS' && matrix.use_ccache == 1 && env.PERSIST_CCACHE == 'true' && github.ref == 'refs/heads/master' && steps.restore_ccache.outputs.cache-hit
|
||||
continue-on-error: true
|
||||
env:
|
||||
CACHE_PRIMARY_KEY: ${{ steps.restore_ccache.outputs.cache-primary-key }}
|
||||
|
|
@ -862,7 +970,7 @@ jobs:
|
|||
fi
|
||||
|
||||
- name: "[macOS] Cache updated compiler cache (ccache)"
|
||||
if: matrix.os == 'macOS' && matrix.use_ccache == 1 && github.ref == 'refs/heads/master'
|
||||
if: matrix.os == 'macOS' && matrix.use_ccache == 1 && env.PERSIST_CCACHE == 'true' && github.ref == 'refs/heads/master'
|
||||
uses: actions/cache/save@v6
|
||||
with:
|
||||
key: ${{ steps.restore_ccache.outputs.cache-primary-key }}
|
||||
|
|
@ -978,6 +1086,44 @@ jobs:
|
|||
GH_TOKEN: ${{ github.token }}
|
||||
run: gh attestation verify "$BUILD_PATH" --repo Cockatrice/Cockatrice
|
||||
|
||||
build-vcpkg-nightly:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: macOS
|
||||
target: 13 # EOL 2025-09-15
|
||||
runner: macos-15-intel # https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md
|
||||
# macos-26-intel is very slow and fails in CPack during DMG config if not increasing Finder timeout
|
||||
|
||||
ccache_eviction_age: 7d
|
||||
cmake_generator: Ninja
|
||||
make_package: 1
|
||||
override_target: 13
|
||||
package_suffix: "-macOS13_Intel"
|
||||
qt_version: 6.11.*
|
||||
qt_modules: qtimageformats qtmultimedia qtshadertools qtwebsockets
|
||||
soc: Intel
|
||||
type: Release
|
||||
use_ccache: 1
|
||||
vcpkg_scope: 'vcpkg/macos13-x64-xcode26.3/'
|
||||
vcpkg_upload: 1 # only one leg per vcpkg_scope hands its archives over
|
||||
|
||||
name: ${{ matrix.os }} ${{ matrix.target }}${{ matrix.soc == 'Intel' && ' Intel' || '' }}${{ matrix.type == 'Debug' && ' Debug' || '' }}
|
||||
needs: configure
|
||||
# The EOL target on the slowest runner is too slow to gate a change, so it runs in the
|
||||
# nightly and on tags only, where the vcpkg cache import also has to accept schedule runs.
|
||||
if: github.event_name == 'schedule' || github.ref_type == 'tag'
|
||||
runs-on: ${{ matrix.runner }}
|
||||
timeout-minutes: 100
|
||||
env:
|
||||
CCACHE_DIR: ${{ github.workspace }}/.cache/
|
||||
# Like build-linux-nightly: this leg keeps no compiler cache, so the quota stays with
|
||||
# the pull-request legs (see PERSIST_CCACHE there).
|
||||
PERSIST_CCACHE: 'false'
|
||||
CCACHE_SIZE: 600M
|
||||
steps: *vcpkg-steps
|
||||
|
||||
prune-caches:
|
||||
name: Prune caches
|
||||
# Only master writes caches at all, so only master may clean them up too
|
||||
|
|
@ -986,38 +1132,64 @@ jobs:
|
|||
continue-on-error: true # freeing space must never fail a build
|
||||
|
||||
steps:
|
||||
# The repository holds 10Gi of cache against entries that want more, and GitHub
|
||||
# evicts the least recently used entry whenever that is exceeded. The vcpkg
|
||||
# entries are the reason that never happens: the restore above touches every
|
||||
# entry under the prefix on every run, so a dead ABI generation keeps its access
|
||||
# date fresh forever and age based eviction can never reach it. Deleting by age
|
||||
# alone cannot fix that, only knowing which scope an entry belongs to can.
|
||||
# The repository holds 10 GB of cache against entries that want more, and GitHub evicts
|
||||
# the least recently used entry whenever that is exceeded. The vcpkg entries are the
|
||||
# reason that never happens: the restore above touches every entry under the prefix on
|
||||
# every run, so a dead ABI generation keeps its access date fresh forever and age based
|
||||
# eviction can never reach it. Deleting by age alone cannot fix that, only knowing which
|
||||
# scope an entry belongs to can. The same is true of a compiler cache of a leg that no
|
||||
# longer keeps one: its restore would keep touching it, so the live key list below is
|
||||
# what retires it.
|
||||
#
|
||||
# docker-release's image builds keep their layer cache in the same quota: one blob per
|
||||
# layer, keyed buildkit-blob-1-<digest>, plus one index-<scope>-1-<hash> entry per image
|
||||
# scope that lists them. They are written with mode=min, so only the final image stage
|
||||
# is kept and the set stays small. A layer a build actually needs is downloaded, which
|
||||
# refreshes its access date, so an old date means the builds have stopped using it and
|
||||
# age is the right test. Dropping a blob an index still lists costs the next image build
|
||||
# one rebuilt layer; docker-release gates nothing, so that is cheaper than keeping the
|
||||
# entries forever.
|
||||
- name: "Delete unusable cache entries"
|
||||
shell: bash
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
# Must list every vcpkg_scope of the build-vcpkg matrix above, or the entries of
|
||||
# a scope that is still in use get deleted on the next run.
|
||||
# Must list every vcpkg_scope of the build-vcpkg and build-vcpkg-nightly
|
||||
# matrices above, or the entries of a scope that is still in use get deleted
|
||||
# on the next run.
|
||||
LIVE_VCPKG_SCOPES: 'vcpkg/macos13-x64-xcode26.3/ vcpkg/macos14-arm64-xcode26.6/ vcpkg/windows10-x64-vs2026/'
|
||||
# Must list the ccache key of every leg that keeps a compiler cache
|
||||
# (PERSIST_CCACHE in build-linux and build-vcpkg), or a live entry is deleted.
|
||||
# The nightly legs keep none, so their leftover entries are reclaimed here
|
||||
# instead of waiting out the age rule.
|
||||
LIVE_CCACHE_KEYS: 'ccache-Arch ccache-Servatrice_Debian12 ccache-Debian13 ccache-Fedora44 ccache-Ubuntu26.04 ccache-Ubuntu26.04sanitize ccache-macOS14-xcode-27 ccache-macOS15-xcode-27 ccache-macOS-xcode-27'
|
||||
run: |
|
||||
gh api --paginate "repos/$GITHUB_REPOSITORY/actions/caches?per_page=100" \
|
||||
--jq '.actions_caches[] | [.id, .ref, .key, .last_accessed_at] | @tsv' >"$RUNNER_TEMP/caches.tsv"
|
||||
|
||||
cutoff="$(( $(date -u +%s) - 7 * 24 * 3600 ))"
|
||||
live=" ${LIVE_VCPKG_SCOPES} "
|
||||
live_ccache=" ${LIVE_CCACHE_KEYS} "
|
||||
|
||||
deleted=0
|
||||
while IFS=$'\t' read -r id ref key accessed; do
|
||||
[[ -n $id ]] || continue
|
||||
# Only ever touch the key shapes this workflow creates, so that an entry of
|
||||
# some other workflow can never be deleted by accident
|
||||
# Only ever touch the key shapes our workflows create (buildkit-* and index-*
|
||||
# come from docker-release.yml), so that an entry of some other workflow can
|
||||
# never be deleted by accident
|
||||
case "$key" in
|
||||
vcpkg/* | ccache-* | Qt*) ;;
|
||||
vcpkg/* | ccache-* | Qt* | buildkit-* | index-*) ;;
|
||||
*) continue ;;
|
||||
esac
|
||||
|
||||
reason=""
|
||||
if [[ $ref != refs/heads/master ]]; then
|
||||
reason="scoped to $ref"
|
||||
elif [[ $key == ccache-* ]]; then
|
||||
# An exact token compare: ccache-Ubuntu26.04 is a prefix of
|
||||
# ccache-Ubuntu26.04sanitize, and both keys are live
|
||||
if [[ $live_ccache != *" $key "* ]]; then
|
||||
reason="no pull-request leg keeps it"
|
||||
fi
|
||||
elif [[ $key == vcpkg/* ]]; then
|
||||
# "<scope>/<abi hash>", cut the hash off the end to get the scope
|
||||
scope="vcpkg/${key#vcpkg/}"
|
||||
|
|
|
|||
10
.github/workflows/docker-release.yml
vendored
|
|
@ -84,12 +84,18 @@ jobs:
|
|||
password: ${{ github.token }}
|
||||
|
||||
# Don't push for non-publishing triggers
|
||||
#
|
||||
# The layer cache shares the repository's 10 GB Actions cache quota with the compiler
|
||||
# caches (see CCACHE_SIZE in desktop-build.yml). mode=min keeps only the final image
|
||||
# stage: the build stage sits behind `COPY . .`, so its compile layer is invalidated by
|
||||
# every source change and was never read back, yet it was the bulk of the ~2 GB this
|
||||
# cache held. The final runtime stage is the part that still pays off.
|
||||
- name: "Build image"
|
||||
if: steps.login.outcome != 'success'
|
||||
uses: docker/build-push-action@v7
|
||||
with:
|
||||
cache-from: type=gha,scope=${{ env.CACHE_SCOPE }}
|
||||
cache-to: ${{ case(github.ref == 'refs/heads/master', format('type=gha,mode=max,scope={0}', env.CACHE_SCOPE), '') }}
|
||||
cache-to: ${{ case(github.ref == 'refs/heads/master', format('type=gha,mode=min,scope={0}', env.CACHE_SCOPE), '') }}
|
||||
context: .
|
||||
platforms: ${{ matrix.platform }}
|
||||
push: false
|
||||
|
|
@ -101,7 +107,7 @@ jobs:
|
|||
uses: docker/build-push-action@v7
|
||||
with:
|
||||
cache-from: type=gha,scope=${{ env.CACHE_SCOPE }}
|
||||
cache-to: type=gha,mode=max,scope=${{ env.CACHE_SCOPE }}
|
||||
cache-to: type=gha,mode=min,scope=${{ env.CACHE_SCOPE }}
|
||||
context: .
|
||||
labels: |
|
||||
org.opencontainers.image.description=${{ env.OCI_DESCRIPTION }}
|
||||
|
|
|
|||
16
.github/workflows/vcpkg-cache-import.yml
vendored
|
|
@ -4,12 +4,14 @@ name: Import vcpkg cache
|
|||
# rebuilds protobuf, openssl and abseil from source and saves them into the shared
|
||||
# cache, where every later run can restore them.
|
||||
#
|
||||
# Only master pushes are imported here: the collect step, keys.txt and the zip
|
||||
# contents all come from the workflow run being imported, so importing from an
|
||||
# unmerged pull request would let anyone who can push a branch — or a bot actor
|
||||
# such as Dependabot, whose PRs are same-repo — promote arbitrary binaries into
|
||||
# the scope that master and tag builds restore and link into signed releases.
|
||||
# Forks build untrusted code and must never reach that scope either.
|
||||
# Only master pushes and the nightly schedule run on master are imported here: the
|
||||
# collect step, keys.txt and the zip contents all come from the workflow run being
|
||||
# imported, so importing from an unmerged pull request would let anyone who can push
|
||||
# a branch — or a bot actor such as Dependabot, whose PRs are same-repo — promote
|
||||
# arbitrary binaries into the scope that master and tag builds restore and link into
|
||||
# signed releases. Forks build untrusted code and must never reach that scope either.
|
||||
# A scheduled run is the default branch at the commit a master push already built, so
|
||||
# it carries the same trust as a push.
|
||||
#
|
||||
# repository_dispatch is not used on purpose: it would also resolve to the default branch,
|
||||
# but it counts as a low-trust trigger and may only write there when it declares a
|
||||
|
|
@ -38,7 +40,7 @@ jobs:
|
|||
# the shared scope even if they somehow target the default branch.
|
||||
if: >-
|
||||
github.event.workflow_run.conclusion == 'success' &&
|
||||
github.event.workflow_run.event == 'push' &&
|
||||
(github.event.workflow_run.event == 'push' || github.event.workflow_run.event == 'schedule') &&
|
||||
github.event.workflow_run.head_branch == 'master' &&
|
||||
github.event.workflow_run.head_repository.full_name == github.repository &&
|
||||
!endsWith(github.event.workflow_run.actor.login, '[bot]') &&
|
||||
|
|
|
|||
3
.gitmodules
vendored
|
|
@ -4,3 +4,6 @@
|
|||
[submodule "doxygen-awesome-css"]
|
||||
path = doc/doxygen/theme
|
||||
url = https://github.com/jothepro/doxygen-awesome-css.git
|
||||
[submodule "external/qttesting"]
|
||||
path = external/qttesting
|
||||
url = https://github.com/Kitware/QtTesting.git
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@ option(WITH_CLIENT "Build Cockatrice client" ON)
|
|||
option(WITH_ORACLE "Build Cockatrice card database tool (Oracle)" ON)
|
||||
# Compile Servatrice
|
||||
option(WITH_SERVER "Build Cockatrice server (Servatrice)" OFF)
|
||||
# Compile GUI tests (QtTesting widget-level playback)
|
||||
option(WITH_GUI_TEST "Build the QtTesting-based GUI test harness" OFF)
|
||||
# Compile tests
|
||||
option(TEST "Build tests" OFF)
|
||||
# Build with AddressSanitizer and UndefinedBehaviorSanitizer
|
||||
|
|
@ -29,6 +31,14 @@ option(ENABLE_COVERAGE "Build instrumented for GCC line coverage" OFF)
|
|||
# Use vcpkg regardless of OS
|
||||
option(USE_VCPKG "Use vcpkg regardless of OS" OFF)
|
||||
|
||||
# The GUI test harness lives in a submodule; a checkout without it must still configure.
|
||||
if(WITH_GUI_TEST AND NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/external/qttesting/CMakeLists.txt")
|
||||
message(WARNING "WITH_GUI_TEST is ON but external/qttesting is missing, so GUI tests are disabled.\n"
|
||||
"Run 'git submodule update --init external/qttesting' to enable them."
|
||||
)
|
||||
set(WITH_GUI_TEST OFF)
|
||||
endif()
|
||||
|
||||
# Default to "Release" build type
|
||||
# User-provided value for CMAKE_BUILD_TYPE must be checked before the PROJECT() call
|
||||
if(DEFINED CMAKE_BUILD_TYPE)
|
||||
|
|
@ -55,6 +65,10 @@ if(USE_CCACHE AND NOT WIN32)
|
|||
# PCH-aware caching, matching .ci/compile.sh: without this ccache refuses
|
||||
# to cache any TU that consumes a precompiled header, so every PCH-backed
|
||||
# target recompiles from scratch on each build.
|
||||
# The include_file_mtime/include_file_ctime entries that CI also sets are
|
||||
# deliberately not set here: --set-config writes the user's global
|
||||
# ccache.conf, and those two would turn off the modified-during-compile
|
||||
# check for every project on the machine, not just this one.
|
||||
execute_process(COMMAND ${CCACHE_PROGRAM} --set-config sloppiness=pch_defines,time_macros)
|
||||
message(STATUS "Found CCache ${CCACHE_PROGRAM}")
|
||||
endif()
|
||||
|
|
@ -71,6 +85,8 @@ if(WIN32 OR USE_VCPKG)
|
|||
)
|
||||
# Qt path set by user or env var
|
||||
if(QTDIR
|
||||
OR QTDIR32
|
||||
OR QTDIR64
|
||||
OR DEFINED ENV{QTDIR}
|
||||
OR DEFINED ENV{QTDIR32}
|
||||
OR DEFINED ENV{QTDIR64}
|
||||
|
|
@ -236,13 +252,13 @@ else()
|
|||
set(_lib_suffix 32)
|
||||
endif()
|
||||
|
||||
if(DEFINED QTDIR${_lib_suffix})
|
||||
if(NOT "${QTDIR${_lib_suffix}}" STREQUAL "")
|
||||
list(APPEND CMAKE_PREFIX_PATH "${QTDIR${_lib_suffix}}")
|
||||
elseif(DEFINED QTDIR)
|
||||
elseif(NOT "${QTDIR}" STREQUAL "")
|
||||
list(APPEND CMAKE_PREFIX_PATH "${QTDIR}")
|
||||
elseif(DEFINED ENV{QTDIR${_lib_suffix}})
|
||||
elseif(NOT "$ENV{QTDIR${_lib_suffix}}" STREQUAL "")
|
||||
list(APPEND CMAKE_PREFIX_PATH "$ENV{QTDIR${_lib_suffix}}")
|
||||
elseif(DEFINED ENV{QTDIR})
|
||||
elseif(NOT "$ENV{QTDIR}" STREQUAL "")
|
||||
list(APPEND CMAKE_PREFIX_PATH "$ENV{QTDIR}")
|
||||
endif()
|
||||
|
||||
|
|
@ -461,6 +477,34 @@ if(WITH_ORACLE)
|
|||
set(CPACK_INSTALL_CMAKE_PROJECTS "Oracle;Oracle;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
|
||||
endif()
|
||||
|
||||
if(WITH_GUI_TEST)
|
||||
set(QtTesting_QT_VERSION "6")
|
||||
# QtTesting registers its own unit tests when BUILD_TESTING is on. They target the
|
||||
# Qt version the harness was written for and fail on Qt 6.11 (toolbutton
|
||||
# long-press recording), and they are not Cockatrice's tests, so suppress them
|
||||
# for the duration of the subdirectory instead of painting ctest red.
|
||||
if(DEFINED BUILD_TESTING)
|
||||
set(_cockatrice_saved_build_testing ${BUILD_TESTING})
|
||||
endif()
|
||||
set(BUILD_TESTING
|
||||
OFF
|
||||
CACHE BOOL "Build the testing tree." FORCE
|
||||
)
|
||||
add_subdirectory(external/qttesting)
|
||||
if(DEFINED _cockatrice_saved_build_testing)
|
||||
set(BUILD_TESTING
|
||||
${_cockatrice_saved_build_testing}
|
||||
CACHE BOOL "Build the testing tree." FORCE
|
||||
)
|
||||
else()
|
||||
unset(BUILD_TESTING CACHE)
|
||||
endif()
|
||||
# cl.exe has no warnings-as-errors here, and it rejects -Wno-error with D8021.
|
||||
if(NOT MSVC)
|
||||
target_compile_options(qttesting PRIVATE -Wno-error)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(TEST)
|
||||
include(CTest)
|
||||
add_subdirectory(tests)
|
||||
|
|
|
|||
66
Testing/README.md
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
# GUI tests
|
||||
|
||||
Widget-level playback tests for the Cockatrice client, driven by
|
||||
[QtTesting](https://github.com/Kitware/QtTesting) (`external/qttesting`, a submodule).
|
||||
Each `*_test.xml` file is a list of events that QtTesting replays against the running
|
||||
application; a test passes when every event is handled without error.
|
||||
|
||||
## Running
|
||||
|
||||
```bash
|
||||
git submodule update --init external/qttesting # once
|
||||
cmake -S . -B build/debug -DCMAKE_BUILD_TYPE=Debug -DWITH_SERVER=0 -DWITH_GUI_TEST=ON
|
||||
cmake --build build/debug -j 24
|
||||
|
||||
./Testing/run_test.sh --all # headless, offscreen
|
||||
./Testing/run_test.sh Testing/smoke_test.xml # one file
|
||||
./Testing/run_test.sh --visual Testing/smoke_test.xml # shows the window
|
||||
```
|
||||
|
||||
`WITH_GUI_TEST` is on by default; a checkout without the submodule configures with a
|
||||
warning and no harness. `COCKATRICE_BIN` points the runner at another build, and
|
||||
`TEST_TIMEOUT` (seconds, default 180) bounds a single test — a failing event inside a
|
||||
modal dialog can otherwise leave the process alive. The client also hard-exits a few
|
||||
seconds after playback returns, whatever the result.
|
||||
|
||||
The tests are **not** part of `ctest`: they need a card database and a developer's
|
||||
settings, so they stay a local loop for now.
|
||||
|
||||
## Caveats
|
||||
|
||||
- **Not hermetic.** The client reads the local settings and card database, so a test can
|
||||
pass on one machine and fail on another. Avoid asserting things that restored
|
||||
workspace state or user preferences decide (for example the number of open tabs).
|
||||
- **English labels only.** Menu entries are addressed by their (translated) text, so the
|
||||
tests expect the source language. Widgets are addressed by objectName paths, which are
|
||||
stable across translations.
|
||||
- Actions that open a dialog are followed by a `pause` event: playback continues in the
|
||||
dialog's own event loop, and the pause gives the UI time to build itself.
|
||||
- Widget paths include Qt-internal names where a QTabWidget is involved
|
||||
(`qt_tabwidget_stackedwidget`), and the deck views in a game are indexed
|
||||
(`tabbedDeckView_0`, `tabbedDeckView_1`).
|
||||
|
||||
## Writing a test
|
||||
|
||||
A test is a `<events>` list. Widgets are named by their path from the main window, e.g.
|
||||
`MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu`. Useful commands:
|
||||
|
||||
| Command | Arguments | Effect |
|
||||
|---------|-----------|--------|
|
||||
| `activate` | action or menu name | triggers a QAction (menus are opened first) |
|
||||
| `key` | Qt key code | presses that key on the focused widget |
|
||||
| `pause` | milliseconds | waits, letting the UI settle |
|
||||
| `clickCard` | `card,zone` | double click the card found in that zone (plays it from hand) |
|
||||
| `flipCard` | `card,zone` | right-click → *Turn Over* |
|
||||
| `cardAction` | `card,zone,label` | right-click → first menu entry whose label contains `label` (submenus included) |
|
||||
| `moveCard` | `card,srcZone,dstZone` | drags the card onto the destination zone |
|
||||
| `drawArrow` | `srcCard,srcZone,dstCard,dstZone` | right-drag an arrow between two cards |
|
||||
| `createToken` | `name,color,pt` | creates a token as the active local player |
|
||||
| `selectItem` | `item label` | selects the tree/list entry with that label |
|
||||
| `typeText` | `text` | types text one key event at a time |
|
||||
| `expectProperty` | `property,value` | fails playback unless the widget property matches |
|
||||
|
||||
The card, item and property commands are `pqCockatriceEventPlayer`
|
||||
(`cockatrice/src/game_graphics/pq_cockatrice_event_player.h`). They resolve cards by name
|
||||
and zone through the `QGraphicsScene` and send real mouse events at the card's current
|
||||
viewport position, so a test does not depend on the window size or screen resolution.
|
||||
69
Testing/card_actions_test.xml
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
<events>
|
||||
<!--
|
||||
Card actions (custom commands of pqCockatriceEventPlayer).
|
||||
|
||||
Exercises the context menu path (tap, counters in a submenu, flip),
|
||||
arrow drawing, and dragging a card between zones. All of it through
|
||||
mouse events on the game view, so the same file runs at any resolution.
|
||||
-->
|
||||
|
||||
<!-- ===== Two-player local game ===== -->
|
||||
<event widget="MainWindow/menubar/cockatriceMenu" command="activate" arguments="Start &local game..." />
|
||||
<event widget="MainWindow/localGameDialog/generalGroupBox/numberPlayersEdit" command="set_int" arguments="2" />
|
||||
<event widget="MainWindow/localGameDialog" command="key" arguments="16777220" />
|
||||
<event widget="MainWindow" command="pause" arguments="1000" />
|
||||
|
||||
<!-- ===== Player 1 loads a one-card deck ===== -->
|
||||
<!-- (No tab-count assertion: the restored workspace state decides how many other
|
||||
tabs exist, and the paths below already prove the game tab is there.) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_0/qt_tabwidget_stackedwidget/deckViewContainer/loadFromClipboardButton" command="activate" arguments="" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_0/qt_tabwidget_stackedwidget/deckViewContainer/dlgDeckTextEdit/contentsEdit" command="typeText" arguments="1 Lightning Bolt" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_0/qt_tabwidget_stackedwidget/deckViewContainer/dlgDeckTextEdit" command="keyEvent" arguments="6,16777220,67108864,,0,1" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_0/qt_tabwidget_stackedwidget/deckViewContainer/readyStartButton" command="activate" arguments="" />
|
||||
<event widget="MainWindow" command="pause" arguments="300" />
|
||||
|
||||
<!-- ===== Player 2 loads the same deck and readies up ===== -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_1/qt_tabwidget_stackedwidget/deckViewContainer/loadFromClipboardButton" command="activate" arguments="" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_1/qt_tabwidget_stackedwidget/deckViewContainer/dlgDeckTextEdit/contentsEdit" command="typeText" arguments="1 Lightning Bolt" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_1/qt_tabwidget_stackedwidget/deckViewContainer/dlgDeckTextEdit" command="keyEvent" arguments="6,16777220,67108864,,0,1" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_1/qt_tabwidget_stackedwidget/deckViewContainer/readyStartButton" command="activate" arguments="" />
|
||||
<event widget="MainWindow" command="pause" arguments="1000" />
|
||||
|
||||
<!-- ===== Player 1, precombat main ===== -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="300" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="300" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" />
|
||||
|
||||
<!-- ===== A token to interact with ===== -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/gamePlayAreaWidget/gameView" command="createToken" arguments="Goblin,r,1/1" />
|
||||
<event widget="MainWindow" command="pause" arguments="1000" />
|
||||
|
||||
<!-- Tap it through the context menu -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/gamePlayAreaWidget/gameView" command="cardAction" arguments="Goblin,table,Tap / Untap" />
|
||||
<event widget="MainWindow" command="pause" arguments="300" />
|
||||
|
||||
<!-- Add a counter: the entry lives in the "Card counters" submenu -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/gamePlayAreaWidget/gameView" command="cardAction" arguments="Goblin,table,Add counter (A)" />
|
||||
<event widget="MainWindow" command="pause" arguments="300" />
|
||||
|
||||
<!-- Flip it face down -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/gamePlayAreaWidget/gameView" command="flipCard" arguments="Goblin,table" />
|
||||
<event widget="MainWindow" command="pause" arguments="300" />
|
||||
|
||||
<!-- ===== An arrow from a second token to the Goblin ===== -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/gamePlayAreaWidget/gameView" command="createToken" arguments="Elf,w,1/1" />
|
||||
<event widget="MainWindow" command="pause" arguments="1000" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/gamePlayAreaWidget/gameView" command="drawArrow" arguments="Elf,table,Goblin,table" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" />
|
||||
|
||||
<!-- ===== Drag the Goblin into the graveyard ===== -->
|
||||
<!-- A token that leaves the battlefield is destroyed rather than moved, so
|
||||
there is nothing to drag back afterwards. -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/gamePlayAreaWidget/gameView" command="moveCard" arguments="Goblin,table,grave" />
|
||||
<event widget="MainWindow" command="pause" arguments="1000" />
|
||||
</events>
|
||||
4
Testing/deck_editor_open_test.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<events>
|
||||
<!-- Open a new deck editor tab from the home page -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabHome/homeWidget/homeActionsScrollArea/qt_scrollarea_viewport/homeButtonsBox/homeCreateNewDeckButton" command="activate" arguments="" />
|
||||
</events>
|
||||
14
Testing/deck_editor_search_test.xml
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
<events>
|
||||
<!-- Open a new visual deck editor tab from the home page -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabHome/homeWidget/homeActionsScrollArea/qt_scrollarea_viewport/homeButtonsBox/homeCreateNewDeckButton" command="activate" arguments="" />
|
||||
<!-- Type "Lightning" into the search box (keycodes for L-i-g-h-t-n-i-n-g) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabDeckEditorVisual/databaseDisplayDock/databaseDisplayDockContents/databaseDisplayWidget/searchEdit" command="key" arguments="76" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabDeckEditorVisual/databaseDisplayDock/databaseDisplayDockContents/databaseDisplayWidget/searchEdit" command="key" arguments="105" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabDeckEditorVisual/databaseDisplayDock/databaseDisplayDockContents/databaseDisplayWidget/searchEdit" command="key" arguments="103" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabDeckEditorVisual/databaseDisplayDock/databaseDisplayDockContents/databaseDisplayWidget/searchEdit" command="key" arguments="104" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabDeckEditorVisual/databaseDisplayDock/databaseDisplayDockContents/databaseDisplayWidget/searchEdit" command="key" arguments="116" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabDeckEditorVisual/databaseDisplayDock/databaseDisplayDockContents/databaseDisplayWidget/searchEdit" command="key" arguments="110" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabDeckEditorVisual/databaseDisplayDock/databaseDisplayDockContents/databaseDisplayWidget/searchEdit" command="key" arguments="105" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabDeckEditorVisual/databaseDisplayDock/databaseDisplayDockContents/databaseDisplayWidget/searchEdit" command="key" arguments="110" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabDeckEditorVisual/databaseDisplayDock/databaseDisplayDockContents/databaseDisplayWidget/searchEdit" command="key" arguments="103" />
|
||||
</events>
|
||||
11
Testing/dialog_lifecycle_test.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<events>
|
||||
<!-- Open and close Settings dialog (modal exec) -->
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="cockatriceMenu" />
|
||||
<event widget="MainWindow/menubar/cockatriceMenu" command="activate" arguments="actionSettings" />
|
||||
<event widget="MainWindow/settingsDialog" command="key" arguments="16777216" />
|
||||
|
||||
<!-- Open and close About dialog (modal exec) -->
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="helpMenu" />
|
||||
<event widget="MainWindow/menubar/helpMenu" command="activate" arguments="&About Cockatrice" />
|
||||
<event widget="MainWindow/aboutDialog" command="key" arguments="16777216" />
|
||||
</events>
|
||||
101
Testing/game_mechanics_test.xml
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
<events>
|
||||
<!--
|
||||
Tier 7: Game Mechanics
|
||||
Tests: play cards (clickCard), flip cards (flipCard),
|
||||
create tokens (createToken), draw arrows (drawArrow).
|
||||
All interactions are pure UI mouse events through the QGraphicsView viewport.
|
||||
-->
|
||||
|
||||
<!-- ===== Start a local 2-player game ===== -->
|
||||
<event widget="MainWindow/menubar/cockatriceMenu" command="activate" arguments="Start &local game..." />
|
||||
<!-- Force two players so both deck views exist, independent of the user's settings -->
|
||||
<event widget="MainWindow/localGameDialog/generalGroupBox/numberPlayersEdit" command="set_int" arguments="2" />
|
||||
<event widget="MainWindow/localGameDialog" command="key" arguments="16777220" />
|
||||
|
||||
<!-- ===== Player 1: Load 3-card deck ===== -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_0/qt_tabwidget_stackedwidget/deckViewContainer/loadFromClipboardButton" command="activate" arguments="" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_0/qt_tabwidget_stackedwidget/deckViewContainer/dlgDeckTextEdit/contentsEdit" command="keyEvent" arguments="6,65,67108864,,0,1" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_0/qt_tabwidget_stackedwidget/deckViewContainer/dlgDeckTextEdit/contentsEdit" command="typeText" arguments="3 Lightning Bolt" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_0/qt_tabwidget_stackedwidget/deckViewContainer/dlgDeckTextEdit" command="keyEvent" arguments="6,16777220,67108864,,0,1" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_0/qt_tabwidget_stackedwidget/deckViewContainer/readyStartButton" command="activate" arguments="" />
|
||||
<event widget="MainWindow" command="pause" arguments="300" />
|
||||
|
||||
<!-- ===== Player 2: Load same deck ===== -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_1/qt_tabwidget_stackedwidget/deckViewContainer/loadFromClipboardButton" command="activate" arguments="" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_1/qt_tabwidget_stackedwidget/deckViewContainer/dlgDeckTextEdit/contentsEdit" command="keyEvent" arguments="6,65,67108864,,0,1" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_1/qt_tabwidget_stackedwidget/deckViewContainer/dlgDeckTextEdit/contentsEdit" command="typeText" arguments="3 Lightning Bolt" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_1/qt_tabwidget_stackedwidget/deckViewContainer/dlgDeckTextEdit" command="keyEvent" arguments="6,16777220,67108864,,0,1" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_1/qt_tabwidget_stackedwidget/deckViewContainer/readyStartButton" command="activate" arguments="" />
|
||||
<event widget="MainWindow" command="pause" arguments="1000" />
|
||||
|
||||
<!-- ===== Player 1, Turn 1 ===== -->
|
||||
<!-- Upkeep → Draw → Main 1 -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="300" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" />
|
||||
|
||||
<!-- Create a Goblin token -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/gamePlayAreaWidget/gameView" command="createToken" arguments="Goblin,r,1/1" />
|
||||
<event widget="MainWindow" command="pause" arguments="1000" />
|
||||
|
||||
<!-- Create a second token (Elf) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/gamePlayAreaWidget/gameView" command="createToken" arguments="Elf,w,1/1" />
|
||||
<event widget="MainWindow" command="pause" arguments="1000" />
|
||||
|
||||
<!-- Flip the Goblin (right-click → Turn Over) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/gamePlayAreaWidget/gameView" command="flipCard" arguments="Goblin,table" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" />
|
||||
|
||||
<!-- Play a Lightning Bolt from hand (double-click) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/gamePlayAreaWidget/gameView" command="clickCard" arguments="Lightning Bolt,hand" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" -->
|
||||
|
||||
<!-- Draw arrow from Elf to Goblin (right-drag) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/gamePlayAreaWidget/gameView" command="drawArrow" arguments="Elf,table,Goblin,table" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" />
|
||||
|
||||
<!-- Advance through all remaining phases to end turn -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="200" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="200" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="200" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="200" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="200" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="200" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" />
|
||||
|
||||
<!-- ===== Player 2, Turn 1 ===== -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="300" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" />
|
||||
<!-- Advance through all phases to end turn -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="200" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="200" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="200" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="200" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="200" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="200" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" />
|
||||
|
||||
</events>
|
||||
45
Testing/integration_test.xml
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
<events>
|
||||
<!-- Integration test: exercises multiple tiers in sequence -->
|
||||
|
||||
<!-- Tier 2: Open and close all menus -->
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="cockatriceMenu" />
|
||||
<event widget="MainWindow" command="key" arguments="16777216" />
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="dbMenu" />
|
||||
<event widget="MainWindow" command="key" arguments="16777216" />
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="tabsMenu" />
|
||||
<event widget="MainWindow" command="key" arguments="16777216" />
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="helpMenu" />
|
||||
<event widget="MainWindow" command="key" arguments="16777216" />
|
||||
|
||||
<!-- Tier 2: Open and close About (modal) -->
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="helpMenu" />
|
||||
<event widget="MainWindow/menubar/helpMenu" command="activate" arguments="&About Cockatrice" />
|
||||
<event widget="MainWindow/aboutDialog" command="key" arguments="16777216" />
|
||||
|
||||
<!-- Tier 4: Open and close ViewLog (non-modal) -->
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="helpMenu" />
|
||||
<event widget="MainWindow/menubar/helpMenu" command="activate" arguments="View &Debug Log" />
|
||||
<event widget="MainWindow/viewLogDialog" command="key" arguments="16777216" />
|
||||
|
||||
<!-- Tier 4: Open and close Tip of the Day (non-modal) -->
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="helpMenu" />
|
||||
<event widget="MainWindow/menubar/helpMenu" command="activate" arguments="&Tip of the Day" />
|
||||
<event widget="MainWindow/tipOfTheDayDialog" command="key" arguments="16777216" />
|
||||
|
||||
<!-- Tier 5: Settings search (state interaction) -->
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="cockatriceMenu" />
|
||||
<event widget="MainWindow/menubar/cockatriceMenu" command="activate" arguments="actionSettings" />
|
||||
<event widget="MainWindow/settingsDialog/settingsView/settingsSearchEdit" command="key" arguments="100" />
|
||||
<event widget="MainWindow/settingsDialog/settingsView/settingsSearchEdit" command="key" arguments="101" />
|
||||
<event widget="MainWindow/settingsDialog/settingsView/settingsSearchEdit" command="key" arguments="98" />
|
||||
<event widget="MainWindow/settingsDialog/settingsView/settingsSearchEdit" command="key" arguments="117" />
|
||||
<event widget="MainWindow/settingsDialog/settingsOkButton" command="activate" arguments="" />
|
||||
|
||||
<!-- Tier 3: Open deck editor from home and type in search -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabHome/homeWidget/homeActionsScrollArea/qt_scrollarea_viewport/homeButtonsBox/homeCreateNewDeckButton" command="activate" arguments="" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabDeckEditorVisual/databaseDisplayDock/databaseDisplayDockContents/databaseDisplayWidget/searchEdit" command="key" arguments="76" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabDeckEditorVisual/databaseDisplayDock/databaseDisplayDockContents/databaseDisplayWidget/searchEdit" command="key" arguments="105" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabDeckEditorVisual/databaseDisplayDock/databaseDisplayDockContents/databaseDisplayWidget/searchEdit" command="key" arguments="103" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabDeckEditorVisual/databaseDisplayDock/databaseDisplayDockContents/databaseDisplayWidget/searchEdit" command="key" arguments="104" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabDeckEditorVisual/databaseDisplayDock/databaseDisplayDockContents/databaseDisplayWidget/searchEdit" command="key" arguments="116" />
|
||||
</events>
|
||||
178
Testing/local_game_lifecycle_test.xml
Normal file
|
|
@ -0,0 +1,178 @@
|
|||
<events>
|
||||
<!--
|
||||
Tier 6: Local Game Lifecycle (Extended)
|
||||
Tests: create game -> load decks -> ready up -> game starts
|
||||
-> play through turns using menu activate commands
|
||||
|
||||
Phase actions triggered via activate on phasesMenu:
|
||||
aNextPhaseAction advances phase + triggers phase action (e.g., draw at draw step)
|
||||
aNextTurn in gameMenu triggers next turn
|
||||
|
||||
This avoids keyboard shortcut issues in offscreen/test environments.
|
||||
-->
|
||||
|
||||
<!-- ===== Phase 1: Start a local game via main menu ===== -->
|
||||
<event widget="MainWindow/menubar/cockatriceMenu" command="activate" arguments="Start &local game..." />
|
||||
<!-- Force two players so both deck views exist, independent of the user's settings -->
|
||||
<event widget="MainWindow/localGameDialog/generalGroupBox/numberPlayersEdit" command="set_int" arguments="2" />
|
||||
<event widget="MainWindow/localGameDialog" command="key" arguments="16777220" />
|
||||
|
||||
<!-- ===== Phase 2: Player 1 loads deck from clipboard ===== -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_0/qt_tabwidget_stackedwidget/deckViewContainer/loadFromClipboardButton" command="activate" arguments="" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_0/qt_tabwidget_stackedwidget/deckViewContainer/dlgDeckTextEdit/contentsEdit" command="keyEvent" arguments="6,65,67108864,,0,1" />
|
||||
<!-- 1 Lightning Bolt -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_0/qt_tabwidget_stackedwidget/deckViewContainer/dlgDeckTextEdit/contentsEdit" command="typeText" arguments="1 Lightning Bolt" />
|
||||
<!-- Ctrl+Return to accept clipboard dialog -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_0/qt_tabwidget_stackedwidget/deckViewContainer/dlgDeckTextEdit" command="keyEvent" arguments="6,16777220,67108864,,0,1" />
|
||||
<!-- Delay -->
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Player 1 ready up -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_0/qt_tabwidget_stackedwidget/deckViewContainer/readyStartButton" command="activate" arguments="" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
|
||||
<!-- ===== Phase 3: Player 2 loads deck from clipboard ===== -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_1/qt_tabwidget_stackedwidget/deckViewContainer/loadFromClipboardButton" command="activate" arguments="" />
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_1/qt_tabwidget_stackedwidget/deckViewContainer/dlgDeckTextEdit/contentsEdit" command="keyEvent" arguments="6,65,67108864,,0,1" />
|
||||
<!-- 1 Lightning Bolt -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_1/qt_tabwidget_stackedwidget/deckViewContainer/dlgDeckTextEdit/contentsEdit" command="typeText" arguments="1 Lightning Bolt" />
|
||||
<!-- Ctrl+Return to accept clipboard dialog -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_1/qt_tabwidget_stackedwidget/deckViewContainer/dlgDeckTextEdit" command="keyEvent" arguments="6,16777220,67108864,,0,1" />
|
||||
<!-- Delay -->
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Player 2 ready up -> game auto-starts -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/deckViewContainerWidget/tabbedDeckView_1/qt_tabwidget_stackedwidget/deckViewContainer/readyStartButton" command="activate" arguments="" />
|
||||
<!-- Delay for game to start -->
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
|
||||
<!-- ===== Phase 4: Advance through all 11 phases via phasesMenu activate ===== -->
|
||||
<!-- Using activate on phasesMenu triggers aNextPhaseAction which:
|
||||
- advances the phase by 1
|
||||
- calls triggerPhaseAction (e.g., draw card at draw step, untap all at untap) -->
|
||||
|
||||
<!-- Phase 0 (Untap) → 1 (Upkeep) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Phase 1 (Upkeep) → 2 (Draw): TRIGGERS DRAW — Player 1 draws 1 card -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" />
|
||||
<!-- Phase 2 (Draw) → 3 (Main 1) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" />
|
||||
|
||||
<!-- ===== Main 1: Play a card from hand by double-click ===== -->
|
||||
<!-- clickCard resolves card by name in the scene, maps to viewport coords at current window size. -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/mainWidget/gamePlayAreaWidget/gameView" command="clickCard" arguments="Lightning Bolt,hand" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" />
|
||||
|
||||
<!-- Phase 3 → 4 (Begin Combat) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="pause" arguments="300" />
|
||||
<!-- Phase 4 → 5 (Declare Attackers) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Phase 5 → 6 (Declare Blockers) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Phase 6 → 7 (Combat Damage) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Phase 7 → 8 (End Combat) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Phase 8 → 9 (Main 2) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Phase 9 → 10 (Cleanup) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Phase 10 → 0 (Untap): TRIGGERS NEXT TURN + UNTAP ALL — now Player 2's turn -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<!-- Delay for turn transition -->
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
|
||||
<!-- ===== Phase 5: Player 2's turn — advance through all 11 phases ===== -->
|
||||
<!-- Phase 0 (Untap) → 1 (Upkeep) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Phase 1 (Upkeep) → 2 (Draw): TRIGGERS DRAW — Player 2 draws 1 card -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Phase 2 (Draw) → 3 (Main 1) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Phase 3 → 4 (Begin Combat) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Phase 4 → 5 (Declare Attackers) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Phase 5 → 6 (Declare Blockers) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Phase 6 → 7 (Combat Damage) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Phase 7 → 8 (End Combat) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Phase 8 → 9 (Main 2) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Phase 9 → 10 (Cleanup) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Phase 10 → 0 (Untap): TRIGGERS NEXT TURN — back to Player 1 -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<!-- Delay -->
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
|
||||
<!-- ===== Phase 6: Player 1 turn 2 — advance to draw again ===== -->
|
||||
<!-- Phase 0 (Untap) → 1 (Upkeep) -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<!-- Phase 1 (Upkeep) → 2 (Draw): TRIGGERS DRAW — Player 1 draws again -->
|
||||
<event widget="MainWindow/tabSupervisor/stackedWidget/TabGame/phasesMenu" command="activate" arguments="aNextPhaseAction" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
<event widget="MainWindow" command="key" arguments="32" />
|
||||
|
||||
</events>
|
||||
19
Testing/menu_open_close_test.xml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<events>
|
||||
<!-- Test 1: Open and close each top-level menu -->
|
||||
|
||||
<!-- Cockatrice menu -->
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="cockatriceMenu" />
|
||||
<event widget="MainWindow" command="key" arguments="16777216" />
|
||||
|
||||
<!-- Database menu -->
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="dbMenu" />
|
||||
<event widget="MainWindow" command="key" arguments="16777216" />
|
||||
|
||||
<!-- Tabs menu -->
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="tabsMenu" />
|
||||
<event widget="MainWindow" command="key" arguments="16777216" />
|
||||
|
||||
<!-- Help menu -->
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="helpMenu" />
|
||||
<event widget="MainWindow" command="key" arguments="16777216" />
|
||||
</events>
|
||||
6
Testing/nonmodal_manage_sets_test.xml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<events>
|
||||
<!-- Test non-modal dialog lifecycle: open and close Manage Sets (QMainWindow) -->
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="dbMenu" />
|
||||
<event widget="MainWindow/menubar/dbMenu" command="activate" arguments="&Manage sets..." />
|
||||
<event widget="MainWindow/manageSetsWindow" command="key" arguments="16777216" />
|
||||
</events>
|
||||
6
Testing/nonmodal_tip_test.xml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<events>
|
||||
<!-- Test non-modal dialog lifecycle: open and close Tip of the Day -->
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="helpMenu" />
|
||||
<event widget="MainWindow/menubar/helpMenu" command="activate" arguments="&Tip of the Day" />
|
||||
<event widget="MainWindow/tipOfTheDayDialog" command="key" arguments="16777216" />
|
||||
</events>
|
||||
6
Testing/nonmodal_view_log_test.xml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<events>
|
||||
<!-- Test non-modal dialog lifecycle: open and close ViewLog -->
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="helpMenu" />
|
||||
<event widget="MainWindow/menubar/helpMenu" command="activate" arguments="View &Debug Log" />
|
||||
<event widget="MainWindow/viewLogDialog" command="key" arguments="16777216" />
|
||||
</events>
|
||||
118
Testing/run_test.sh
Executable file
|
|
@ -0,0 +1,118 @@
|
|||
#!/bin/bash
|
||||
# Run QtTesting XML test files against the Cockatrice build.
|
||||
#
|
||||
# Usage:
|
||||
# ./Testing/run_test.sh [--visual] [--all | <test-file.xml> ...]
|
||||
#
|
||||
# Options:
|
||||
# --visual Run with native display (shows the GUI window).
|
||||
# Default is headless (QT_QPA_PLATFORM=offscreen).
|
||||
# --all Run every *.xml file in Testing/.
|
||||
#
|
||||
# Environment:
|
||||
# COCKATRICE_BIN Path to the client binary (default: build/debug/cockatrice/cockatrice,
|
||||
# or the .app bundle binary on macOS).
|
||||
# TEST_TIMEOUT Seconds a single test may run before it is killed (default: 180).
|
||||
# Uses timeout, or gtimeout from coreutils on macOS.
|
||||
#
|
||||
# Requires the debug build to exist at build/debug/cockatrice/cockatrice.
|
||||
|
||||
set -euo pipefail
|
||||
shopt -s nullglob
|
||||
|
||||
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
|
||||
if [ -n "${COCKATRICE_BIN:-}" ]; then
|
||||
COCKATRICE="$COCKATRICE_BIN"
|
||||
elif [ "$(uname -s)" = "Darwin" ]; then
|
||||
# A macOS build produces an app bundle, not a bare executable.
|
||||
COCKATRICE="$REPO_ROOT/build/debug/cockatrice/cockatrice.app/Contents/MacOS/cockatrice"
|
||||
else
|
||||
COCKATRICE="$REPO_ROOT/build/debug/cockatrice/cockatrice"
|
||||
fi
|
||||
TEST_DIR="$REPO_ROOT/Testing"
|
||||
TEST_TIMEOUT="${TEST_TIMEOUT:-180}"
|
||||
|
||||
# Stock macOS has no `timeout`; coreutils provides `gtimeout`. Without either the
|
||||
# runner still works, but a hung test is not killed.
|
||||
TIMEOUT=()
|
||||
if command -v timeout >/dev/null 2>&1; then
|
||||
TIMEOUT=(timeout --foreground "$TEST_TIMEOUT")
|
||||
elif command -v gtimeout >/dev/null 2>&1; then
|
||||
TIMEOUT=(gtimeout --foreground "$TEST_TIMEOUT")
|
||||
else
|
||||
echo "Warning: neither timeout nor gtimeout found; tests are not time-limited." >&2
|
||||
fi
|
||||
|
||||
if [ ! -f "$COCKATRICE" ]; then
|
||||
echo "Error: $COCKATRICE not found. Build first:" >&2
|
||||
echo " cmake --build build/debug" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
VISUAL=0
|
||||
if [ "${1:-}" = "--visual" ]; then
|
||||
VISUAL=1
|
||||
shift
|
||||
fi
|
||||
|
||||
if [ "${1:-}" = "--all" ]; then
|
||||
shift
|
||||
TEST_FILES=("$TEST_DIR"/*.xml)
|
||||
if [ ${#TEST_FILES[@]} -eq 0 ]; then
|
||||
echo "No *.xml files found in $TEST_DIR" >&2
|
||||
exit 1
|
||||
fi
|
||||
elif [ $# -ge 1 ]; then
|
||||
TEST_FILES=("$@")
|
||||
else
|
||||
echo "Usage: $0 [--visual] [--all | <test-file.xml> ...]" >&2
|
||||
echo " Run a single test: $0 Testing/smoke_test.xml" >&2
|
||||
echo " Run all tests: $0 --all" >&2
|
||||
echo " Run visually: $0 --visual Testing/smoke_test.xml" >&2
|
||||
echo " Run all visually: $0 --visual --all" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PASS=0
|
||||
FAIL=0
|
||||
FAILED_TESTS=()
|
||||
|
||||
run_one() {
|
||||
local file="$1"
|
||||
|
||||
local -a cmd=()
|
||||
if [ "${#TIMEOUT[@]}" -gt 0 ]; then
|
||||
cmd=("${TIMEOUT[@]}")
|
||||
fi
|
||||
cmd+=("$COCKATRICE" --no-connect --test "$file")
|
||||
|
||||
if [ "$VISUAL" -eq 1 ]; then
|
||||
"${cmd[@]}"
|
||||
else
|
||||
env QT_QPA_PLATFORM=offscreen "${cmd[@]}"
|
||||
fi
|
||||
}
|
||||
|
||||
for f in "${TEST_FILES[@]}"; do
|
||||
name="$(basename "$f")"
|
||||
printf "%-40s " "$name"
|
||||
if run_one "$f"; then
|
||||
echo "PASS"
|
||||
PASS=$((PASS + 1))
|
||||
else
|
||||
echo "FAIL"
|
||||
FAIL=$((FAIL + 1))
|
||||
FAILED_TESTS+=("$name")
|
||||
fi
|
||||
done
|
||||
|
||||
TOTAL=$((PASS + FAIL))
|
||||
echo ""
|
||||
echo "Results: $PASS/$TOTAL passed, $FAIL failed"
|
||||
if [ "$FAIL" -gt 0 ]; then
|
||||
echo "Failed:"
|
||||
for t in "${FAILED_TESTS[@]}"; do
|
||||
echo " $t"
|
||||
done
|
||||
exit 1
|
||||
fi
|
||||
6
Testing/settings_dialog_test.xml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<events>
|
||||
<!-- Open Settings dialog via Cockatrice menu, then close with Escape -->
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="cockatriceMenu" />
|
||||
<event widget="MainWindow/menubar/cockatriceMenu" command="activate" arguments="actionSettings" />
|
||||
<event widget="MainWindow/settingsDialog" command="key" arguments="16777216" />
|
||||
</events>
|
||||
33
Testing/settings_navigation_test.xml
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
<events>
|
||||
<!--
|
||||
Settings navigation (state assertions).
|
||||
|
||||
Navigates the settings page tree by label, checks that the page stack
|
||||
followed, then filters with the search box and verifies the text landed
|
||||
in the edit — then closes with the OK button.
|
||||
-->
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="cockatriceMenu" />
|
||||
<event widget="MainWindow/menubar/cockatriceMenu" command="activate" arguments="actionSettings" />
|
||||
<event widget="MainWindow" command="pause" arguments="500" />
|
||||
|
||||
<!-- The dialog opens on the first page (General) -->
|
||||
<event widget="MainWindow/settingsDialog/settingsView/pagesContainer/pagesWidget" command="expectProperty" arguments="currentIndex,0" />
|
||||
|
||||
<!-- Navigate to Shortcuts, the last page of the tree -->
|
||||
<event widget="MainWindow/settingsDialog/settingsView/navTree" command="selectItem" arguments="Shortcuts" />
|
||||
<event widget="MainWindow" command="pause" arguments="300" />
|
||||
<event widget="MainWindow/settingsDialog/settingsView/pagesContainer/pagesWidget" command="expectProperty" arguments="currentIndex,7" />
|
||||
|
||||
<!-- ... and back to General -->
|
||||
<event widget="MainWindow/settingsDialog/settingsView/navTree" command="selectItem" arguments="General" />
|
||||
<event widget="MainWindow" command="pause" arguments="300" />
|
||||
<event widget="MainWindow/settingsDialog/settingsView/pagesContainer/pagesWidget" command="expectProperty" arguments="currentIndex,0" />
|
||||
|
||||
<!-- Filters the settings by search term -->
|
||||
<event widget="MainWindow/settingsDialog/settingsView/settingsSearchEdit" command="typeText" arguments="sound" />
|
||||
<event widget="MainWindow" command="pause" arguments="300" />
|
||||
<event widget="MainWindow/settingsDialog/settingsView/settingsSearchEdit" command="expectProperty" arguments="text,sound" />
|
||||
|
||||
<!-- Close -->
|
||||
<event widget="MainWindow/settingsDialog/settingsOkButton" command="activate" arguments="" />
|
||||
</events>
|
||||
13
Testing/settings_search_test.xml
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<events>
|
||||
<!-- Tier 5: State verification — open Settings, search for a page, close -->
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="cockatriceMenu" />
|
||||
<event widget="MainWindow/menubar/cockatriceMenu" command="activate" arguments="actionSettings" />
|
||||
<!-- Type "sound" in the settings search to filter pages -->
|
||||
<event widget="MainWindow/settingsDialog/settingsView/settingsSearchEdit" command="key" arguments="115" />
|
||||
<event widget="MainWindow/settingsDialog/settingsView/settingsSearchEdit" command="key" arguments="111" />
|
||||
<event widget="MainWindow/settingsDialog/settingsView/settingsSearchEdit" command="key" arguments="117" />
|
||||
<event widget="MainWindow/settingsDialog/settingsView/settingsSearchEdit" command="key" arguments="110" />
|
||||
<event widget="MainWindow/settingsDialog/settingsView/settingsSearchEdit" command="key" arguments="100" />
|
||||
<!-- Close settings -->
|
||||
<event widget="MainWindow/settingsDialog/settingsOkButton" command="activate" arguments="" />
|
||||
</events>
|
||||
8
Testing/smoke_test.xml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<events>
|
||||
<!-- Open Help menu by activating it on the menu bar -->
|
||||
<event widget="MainWindow/menubar" command="activate" arguments="helpMenu" />
|
||||
<!-- Click About Cockatrice (opens modal QMessageBox) -->
|
||||
<event widget="MainWindow/menubar/helpMenu" command="activate" arguments="&About Cockatrice" />
|
||||
<!-- Close the modal dialog by pressing Escape (Qt::Key_Escape = 16777216) -->
|
||||
<event widget="MainWindow/aboutDialog" command="key" arguments="16777216" />
|
||||
</events>
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Find a compatible Qt version
|
||||
# Inputs: WITH_SERVER, WITH_CLIENT, WITH_ORACLE
|
||||
# Optional Input: QT6_DIR -- Hint as to where Qt6 lives on the system
|
||||
# Optional Input: Qt6_DIR -- Directory containing Qt6Config.cmake
|
||||
# Output: COCKATRICE_QT_VERSION_NAME -- Example values: Qt6
|
||||
# Output: SERVATRICE_QT_MODULES
|
||||
# Output: COCKATRICE_QT_MODULES
|
||||
|
|
@ -57,7 +57,17 @@ find_package(
|
|||
QUIET HINTS ${Qt6_DIR}
|
||||
)
|
||||
if(NOT Qt6_FOUND)
|
||||
message(FATAL_ERROR "No suitable version of Qt was found")
|
||||
set(_QT_DIAGNOSTIC "")
|
||||
if(Qt6_NOT_FOUND_MESSAGE)
|
||||
set(_QT_DIAGNOSTIC "\nQt package diagnostic: ${Qt6_NOT_FOUND_MESSAGE}")
|
||||
endif()
|
||||
message(FATAL_ERROR
|
||||
"No suitable version of Qt was found. Qt 6.4.2 or newer with these components is required: "
|
||||
"${REQUIRED_QT_COMPONENTS};Linguist.\n"
|
||||
"Set QTDIR or CMAKE_PREFIX_PATH to the Qt installation prefix, or Qt6_DIR to the directory "
|
||||
"containing Qt6Config.cmake."
|
||||
"${_QT_DIAGNOSTIC}"
|
||||
)
|
||||
endif()
|
||||
set(COCKATRICE_QT_VERSION_NAME Qt6)
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ set(cockatrice_SOURCES
|
|||
src/client/network/update/client/client_update_checker.cpp
|
||||
src/client/network/update/client/release_channel.cpp
|
||||
src/client/network/update/card_spoiler/spoiler_background_updater.cpp
|
||||
src/client/network/update/card_spoiler/spoiler_file.cpp
|
||||
src/client/crash/crash_reporter.cpp
|
||||
src/client/latency_graph_widget.cpp
|
||||
src/client/latency_status_widget.cpp
|
||||
|
|
@ -56,6 +57,7 @@ set(cockatrice_SOURCES
|
|||
src/interface/widgets/dialogs/dlg_settings.cpp
|
||||
src/interface/widgets/dialogs/dlg_startup_card_check.cpp
|
||||
src/interface/widgets/dialogs/dlg_tip_of_the_day.cpp
|
||||
src/interface/widgets/dialogs/dlg_turn_order.cpp
|
||||
src/interface/widgets/dialogs/dlg_update.cpp
|
||||
src/interface/widgets/dialogs/dlg_view_log.cpp
|
||||
src/interface/widgets/dialogs/override_printing_warning.cpp
|
||||
|
|
@ -149,11 +151,13 @@ set(cockatrice_SOURCES
|
|||
src/interface/widgets/utility/reversed_completer_model.cpp
|
||||
src/interface/pixel_map_generator.cpp
|
||||
src/interface/theme_config.cpp
|
||||
src/interface/theme_icon.cpp
|
||||
src/interface/theme_manager.cpp
|
||||
src/interface/palette_editor/color_button.cpp
|
||||
src/interface/palette_editor/palette_generator.cpp
|
||||
src/interface/palette_editor/quick_setup_panel.cpp
|
||||
src/interface/palette_editor/palette_grid_widget.cpp
|
||||
src/interface/palette_editor/font_grid_widget.cpp
|
||||
src/interface/palette_editor/palette_editor_dialog.cpp
|
||||
src/interface/widgets/cards/additional_info/color_identity_widget.cpp
|
||||
src/interface/widgets/cards/additional_info/deck_color_identity.cpp
|
||||
|
|
@ -249,6 +253,8 @@ set(cockatrice_SOURCES
|
|||
src/interface/widgets/playmat/playmat_settings_dialog.cpp
|
||||
src/interface/widgets/quick_settings/settings_button_widget.cpp
|
||||
src/interface/widgets/quick_settings/settings_popup_widget.cpp
|
||||
src/interface/widgets/replay/replay_event_index.cpp
|
||||
src/interface/widgets/replay/replay_event_sidebar.cpp
|
||||
src/interface/widgets/replay/replay_manager.cpp
|
||||
src/interface/widgets/replay/replay_quick_settings_widget.cpp
|
||||
src/interface/widgets/replay/replay_timeline_widget.cpp
|
||||
|
|
@ -449,6 +455,8 @@ set(cockatrice_SOURCES
|
|||
src/interface/intents/intent_open_shared_deck.h
|
||||
src/interface/intents/url_parser.cpp
|
||||
src/interface/intents/url_parser.h
|
||||
src/interface/widgets/server/user/user_games_model.cpp
|
||||
src/interface/widgets/server/user/user_games_model.h
|
||||
src/interface/widgets/server/user/user_info_popup.cpp
|
||||
src/interface/widgets/server/user/user_info_popup.h
|
||||
)
|
||||
|
|
@ -492,7 +500,15 @@ if(APPLE)
|
|||
set(cockatrice_SOURCES ${cockatrice_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/resources/appicon.icns)
|
||||
endif(APPLE)
|
||||
|
||||
qt_add_resources(cockatrice_RESOURCES_RCC ${cockatrice_RESOURCES})
|
||||
# The fonts and card artwork produce a large C++ byte array with qt_add_resources.
|
||||
# Embed the data in the compiled resource object instead, keeping compiler memory
|
||||
# independent of that payload. Qt's two-pass resource build is unsupported on iOS.
|
||||
if(IOS)
|
||||
qt_add_resources(cockatrice_RESOURCES_RCC ${cockatrice_RESOURCES})
|
||||
else()
|
||||
qt_add_big_resources(cockatrice_RESOURCES_RCC ${cockatrice_RESOURCES})
|
||||
endif()
|
||||
set_source_files_properties(${cockatrice_RESOURCES} PROPERTIES SKIP_AUTORCC ON)
|
||||
|
||||
# Declare path variables
|
||||
set(ICONDIR
|
||||
|
|
@ -518,6 +534,7 @@ qt_add_executable(
|
|||
WIN32
|
||||
MACOSX_BUNDLE
|
||||
${cockatrice_SOURCES}
|
||||
${cockatrice_RESOURCES}
|
||||
${cockatrice_RESOURCES_RCC}
|
||||
${cockatrice_MOC_SRCS}
|
||||
MANUAL_FINALIZATION
|
||||
|
|
@ -564,6 +581,14 @@ target_link_libraries(
|
|||
|
||||
cockatrice_target_enable_crash_reporting(cockatrice)
|
||||
|
||||
if(WITH_GUI_TEST)
|
||||
# These two translate between XML test files and the QtTesting event pipeline;
|
||||
# they need the QtTesting headers, so they only exist with the harness.
|
||||
target_sources(cockatrice PRIVATE src/game_graphics/pq_cockatrice_event_player.cpp src/interface/recording.cpp)
|
||||
target_link_libraries(cockatrice PRIVATE QtTesting)
|
||||
target_compile_definitions(cockatrice PRIVATE WITH_GUI_TEST)
|
||||
endif()
|
||||
|
||||
if(UNIX)
|
||||
if(APPLE)
|
||||
set(MACOSX_BUNDLE_INFO_STRING "${PROJECT_NAME}")
|
||||
|
|
|
|||
|
|
@ -6,19 +6,18 @@
|
|||
<file>resources/hand.svg</file>
|
||||
<file>resources/hr.jpg</file>
|
||||
|
||||
<file>resources/icons/arrow_bottom_green.svg</file>
|
||||
<file>resources/icons/arrow_down_green.svg</file>
|
||||
<file>resources/icons/arrow_down.svg</file>
|
||||
<file>resources/icons/arrow_history.svg</file>
|
||||
<file>resources/icons/arrow_left_green.svg</file>
|
||||
<file>resources/icons/arrow_left.svg</file>
|
||||
<file>resources/icons/arrow_redo.svg</file>
|
||||
<file>resources/icons/arrow_right_blue.svg</file>
|
||||
<file>resources/icons/arrow_right_green.svg</file>
|
||||
<file>resources/icons/arrow_top_green.svg</file>
|
||||
<file>resources/icons/arrow_up_green.svg</file>
|
||||
<file>resources/icons/arrow_right.svg</file>
|
||||
<file>resources/icons/arrow_right_sideboard.svg</file>
|
||||
<file>resources/icons/arrow_to_bottom.svg</file>
|
||||
<file>resources/icons/arrow_to_top.svg</file>
|
||||
<file>resources/icons/arrow_up.svg</file>
|
||||
<file>resources/icons/arrow_undo.svg</file>
|
||||
<file>resources/icons/circle_half_stroke.svg</file>
|
||||
<file>resources/icons/clearsearch.svg</file>
|
||||
<file>resources/icons/cogwheel.svg</file>
|
||||
<file>resources/icons/conceded.svg</file>
|
||||
<file>resources/icons/decrement.svg</file>
|
||||
<file>resources/icons/delete.svg</file>
|
||||
|
|
@ -28,7 +27,6 @@
|
|||
<file>resources/icons/filter.svg</file>
|
||||
<file>resources/icons/floppy_disk.svg</file>
|
||||
<file>resources/icons/forgot_password.svg</file>
|
||||
<file>resources/icons/gear.svg</file>
|
||||
<file>resources/icons/increment.svg</file>
|
||||
<file>resources/icons/info.svg</file>
|
||||
<file>resources/icons/lock.svg</file>
|
||||
|
|
@ -41,7 +39,6 @@
|
|||
<file>resources/icons/reload.svg</file>
|
||||
<file>resources/icons/remove_row.svg</file>
|
||||
<file>resources/icons/rename.svg</file>
|
||||
<file>resources/icons/scale_balanced.svg</file>
|
||||
<file>resources/icons/scales.svg</file>
|
||||
<file>resources/icons/scroll.svg</file>
|
||||
<file>resources/icons/search.svg</file>
|
||||
|
|
@ -52,7 +49,6 @@
|
|||
<file>resources/icons/swap.svg</file>
|
||||
<file>resources/icons/sync.svg</file>
|
||||
<file>resources/icons/tab_changed.svg</file>
|
||||
<file>resources/icons/update.png</file>
|
||||
<file>resources/icons/view.svg</file>
|
||||
|
||||
<file>resources/icons/mana/B.svg</file>
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
# or set <category> = false to disable logging
|
||||
|
||||
#main = true
|
||||
#recording = true
|
||||
#qt_translator = true
|
||||
#window_main.* = true
|
||||
#release_channel = true
|
||||
|
|
|
|||
|
|
@ -1,793 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg2646"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.4 r9943 custom"
|
||||
version="1.0"
|
||||
sodipodi:docname="arrow_down_green.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<defs
|
||||
id="defs2648">
|
||||
<linearGradient
|
||||
id="linearGradient3169">
|
||||
<stop
|
||||
style="stop-color:#0000ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3171" />
|
||||
<stop
|
||||
style="stop-color:#000067;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3173" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3175"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient4766">
|
||||
<stop
|
||||
style="stop-color:#784421;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4768" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4770" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2396"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)" />
|
||||
<linearGradient
|
||||
id="linearGradient4758">
|
||||
<stop
|
||||
style="stop-color:#a05a2c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4760" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4762" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2399"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)" />
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective2654" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2691"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2693"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2695"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2707"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2709"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2711"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3508"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3510"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3512"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3514"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3516"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3518"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3520"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3522"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3524"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2444"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2446"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2448"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2450"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2452"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2454"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2456"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2458"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2460"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2478"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2480"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2482"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2484"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2486"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2488"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2490"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2492"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2494"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2527"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2529"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2531"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2533"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2535"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2537"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2539"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2541"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2543"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2545"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2547"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2549"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2561"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2563"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2565"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2594"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2596"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2598"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2600"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2602"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2604"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2606"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2608"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2610"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2612"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2614"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2616"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2618"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2620"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2622"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.625"
|
||||
inkscape:cx="8.25663"
|
||||
inkscape:cy="31.788561"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1272"
|
||||
inkscape:window-height="723"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="23"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata2651">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
style="display:inline" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Pfeil"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="fill:#96ff96;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 52.71118,29.086208 -12.351931,0 12.852459,-18.346676 -42.685714,0 12.327869,18.346676 -12.351929,0 21.104622,25.485735 z"
|
||||
id="rect2714"
|
||||
sodipodi:nodetypes="cccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 25 KiB |
4
cockatrice/resources/icons/arrow_down.svg
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M12 5v13"/>
|
||||
<path d="M18 12l-6 6-6-6"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 219 B |
|
|
@ -1,793 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg2646"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.4 r9943 custom"
|
||||
version="1.0"
|
||||
sodipodi:docname="arrow_up_green.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<defs
|
||||
id="defs2648">
|
||||
<linearGradient
|
||||
id="linearGradient3169">
|
||||
<stop
|
||||
style="stop-color:#0000ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3171" />
|
||||
<stop
|
||||
style="stop-color:#000067;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3173" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3175"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient4766">
|
||||
<stop
|
||||
style="stop-color:#784421;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4768" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4770" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2396"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)" />
|
||||
<linearGradient
|
||||
id="linearGradient4758">
|
||||
<stop
|
||||
style="stop-color:#a05a2c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4760" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4762" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2399"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)" />
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective2654" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2691"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2693"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2695"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2707"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2709"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2711"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3508"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3510"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3512"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3514"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3516"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3518"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3520"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3522"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3524"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2444"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2446"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2448"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2450"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2452"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2454"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2456"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2458"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2460"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2478"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2480"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2482"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2484"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2486"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2488"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2490"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2492"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2494"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2527"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2529"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2531"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2533"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2535"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2537"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2539"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2541"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2543"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2545"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2547"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2549"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2561"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2563"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2565"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2594"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2596"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2598"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2600"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2602"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2604"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2606"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2608"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2610"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2612"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2614"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2616"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2618"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2620"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2622"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.625"
|
||||
inkscape:cx="8.25663"
|
||||
inkscape:cy="31.788561"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1272"
|
||||
inkscape:window-height="723"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="23"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata2651">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
style="display:inline" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Pfeil"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="fill:#96ff96;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 53.104623,35.38129 -12.351931,0 0,-32.248315 -17.505386,0 0,32.248315 -12.351929,0 21.104622,25.485735 21.104624,-25.485735 z"
|
||||
id="rect2714"
|
||||
sodipodi:nodetypes="cccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 25 KiB |
|
|
@ -1,8 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||
<title>
|
||||
history
|
||||
</title>
|
||||
<path d="M9 6v5h.06l2.48 2.47 1.41-1.41L11 10.11V6H9z"/>
|
||||
<path d="M10 1a9 9 0 0 0-7.85 13.35L.5 16H6v-5.5l-2.38 2.38A7 7 0 1 1 10 17v2a9 9 0 0 0 0-18z"/>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M3 12a9 9 0 1 0 3-6.7"/>
|
||||
<path d="M3 4v5h5"/>
|
||||
<path d="M12 7v5l3 2"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 332 B After Width: | Height: | Size: 249 B |
4
cockatrice/resources/icons/arrow_left.svg
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M19 12H6"/>
|
||||
<path d="M12 6l-6 6 6 6"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 218 B |
|
|
@ -1,791 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg2646"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.47pre4 r22446"
|
||||
version="1.0"
|
||||
sodipodi:docname="test.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<defs
|
||||
id="defs2648">
|
||||
<linearGradient
|
||||
id="linearGradient3169">
|
||||
<stop
|
||||
style="stop-color:#0000ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3171" />
|
||||
<stop
|
||||
style="stop-color:#000067;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3173" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3175"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient4766">
|
||||
<stop
|
||||
style="stop-color:#784421;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4768" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4770" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2396"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)" />
|
||||
<linearGradient
|
||||
id="linearGradient4758">
|
||||
<stop
|
||||
style="stop-color:#a05a2c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4760" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4762" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2399"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)" />
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective2654" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2691"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2693"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2695"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2707"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2709"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2711"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3508"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3510"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3512"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3514"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3516"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3518"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3520"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3522"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3524"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2444"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2446"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2448"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2450"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2452"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2454"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2456"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2458"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2460"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2478"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2480"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2482"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2484"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2486"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2488"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2490"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2492"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2494"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2527"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2529"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2531"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2533"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2535"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2537"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2539"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2541"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2543"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2545"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2547"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2549"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2561"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2563"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2565"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2594"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2596"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2598"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2600"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2602"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2604"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2606"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2608"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2610"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2612"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2614"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2616"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2618"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2620"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2622"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.203125"
|
||||
inkscape:cx="3.6095445"
|
||||
inkscape:cy="32"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1272"
|
||||
inkscape:window-height="718"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata2651">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
style="display:inline" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Pfeil"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="fill:#96ff96;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="M 28.802264,8.8785925 2.0835141,31.441092 l 26.7187499,22.5625 0,-13.40625 31.59375,0 0,-18.3125 -31.59375,0 0,-13.4062495 z"
|
||||
id="rect4156" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 25 KiB |
|
|
@ -1,40 +1,4 @@
|
|||
<?xml version="1.0" encoding="windows-1252"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" x="0px"
|
||||
y="0px" width="485.212px" height="485.212px" viewBox="0 0 485.212 485.212"
|
||||
style="enable-background:new 0 0 485.212 485.212;" xml:space="preserve">
|
||||
<g>
|
||||
<path d="M242.607,424.559c-75.252,0-136.468-61.209-136.468-136.465c0-75.252,61.216-136.466,136.468-136.466v90.978 l151.629-121.302L242.607,0v90.978c-108.687,0-197.117,88.432-197.117,197.117c0,108.691,88.43,197.118,197.117,197.118 c108.687,0,197.114-88.427,197.114-197.118h-60.645C379.077,363.35,317.859,424.559,242.607,424.559z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M15 14l5-5-5-5"/>
|
||||
<path d="M20 9H9.5A5.5 5.5 0 0 0 4 14.5a5.5 5.5 0 0 0 5.5 5.5H13"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1,018 B After Width: | Height: | Size: 263 B |
4
cockatrice/resources/icons/arrow_right.svg
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M5 12h13"/>
|
||||
<path d="M12 6l6 6-6 6"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 217 B |
|
|
@ -1,789 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg2646"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.46"
|
||||
version="1.0"
|
||||
sodipodi:docname="add_to_sideboard.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<defs
|
||||
id="defs2648">
|
||||
<linearGradient
|
||||
id="linearGradient3169">
|
||||
<stop
|
||||
style="stop-color:#0000ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3171" />
|
||||
<stop
|
||||
style="stop-color:#000067;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3173" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3175"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient4766">
|
||||
<stop
|
||||
style="stop-color:#784421;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4768" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4770" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2396"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)" />
|
||||
<linearGradient
|
||||
id="linearGradient4758">
|
||||
<stop
|
||||
style="stop-color:#a05a2c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4760" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4762" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2399"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)" />
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective2654" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2691"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2693"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2695"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2707"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2709"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2711"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3508"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3510"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3512"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3514"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3516"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3518"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3520"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3522"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3524"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2444"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2446"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2448"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2450"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2452"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2454"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2456"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2458"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2460"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2478"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2480"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2482"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2484"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2486"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2488"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2490"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2492"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2494"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2527"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2529"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2531"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2533"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2535"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2537"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2539"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2541"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2543"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2545"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2547"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2549"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2561"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2563"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2565"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2594"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2596"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2598"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2600"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2602"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2604"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2606"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2608"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2610"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2612"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2614"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2616"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2618"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2620"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2622"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.625"
|
||||
inkscape:cx="-15.396123"
|
||||
inkscape:cy="31.722987"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1272"
|
||||
inkscape:window-height="723"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25" />
|
||||
<metadata
|
||||
id="metadata2651">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
style="display:inline" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Pfeil"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="fill:#64c0ff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 35.38129,10.895377 L 35.38129,23.247308 L 3.1329751,23.247308 L 3.1329751,40.752694 L 35.38129,40.752694 L 35.38129,53.104623 L 60.867025,32.000001 L 35.38129,10.895377 z"
|
||||
id="rect2714"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 25 KiB |
|
|
@ -1,789 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg2646"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.46"
|
||||
version="1.0"
|
||||
sodipodi:docname="add_to_deck.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<defs
|
||||
id="defs2648">
|
||||
<linearGradient
|
||||
id="linearGradient3169">
|
||||
<stop
|
||||
style="stop-color:#0000ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3171" />
|
||||
<stop
|
||||
style="stop-color:#000067;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3173" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3175"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient4766">
|
||||
<stop
|
||||
style="stop-color:#784421;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4768" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4770" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2396"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)" />
|
||||
<linearGradient
|
||||
id="linearGradient4758">
|
||||
<stop
|
||||
style="stop-color:#a05a2c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4760" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4762" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2399"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)" />
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective2654" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2691"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2693"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2695"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2707"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2709"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2711"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3508"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3510"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3512"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3514"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3516"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3518"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3520"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3522"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3524"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2444"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2446"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2448"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2450"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2452"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2454"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2456"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2458"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2460"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2478"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2480"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2482"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2484"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2486"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2488"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2490"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2492"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2494"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2527"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2529"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2531"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2533"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2535"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2537"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2539"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2541"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2543"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2545"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2547"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2549"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2561"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2563"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2565"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2594"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2596"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2598"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2600"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2602"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2604"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2606"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2608"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2610"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2612"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2614"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2616"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2618"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2620"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2622"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.625"
|
||||
inkscape:cx="-45.970664"
|
||||
inkscape:cy="31.722987"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1272"
|
||||
inkscape:window-height="723"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25" />
|
||||
<metadata
|
||||
id="metadata2651">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
style="display:inline" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Pfeil"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="fill:#96ff96;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 35.38129,10.895377 L 35.38129,23.247308 L 3.1329751,23.247308 L 3.1329751,40.752694 L 35.38129,40.752694 L 35.38129,53.104623 L 60.867025,32.000001 L 35.38129,10.895377 z"
|
||||
id="rect2714"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 25 KiB |
5
cockatrice/resources/icons/arrow_right_sideboard.svg
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M3 12h9"/>
|
||||
<path d="M8 7l5 5-5 5"/>
|
||||
<path d="M16 7h4v10h-4"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 243 B |
5
cockatrice/resources/icons/arrow_to_bottom.svg
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M12 4v11"/>
|
||||
<path d="M6 9l6 6 6-6"/>
|
||||
<path d="M5 20h14"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 239 B |
5
cockatrice/resources/icons/arrow_to_top.svg
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M12 20V9"/>
|
||||
<path d="M6 15l6-6 6 6"/>
|
||||
<path d="M5 4h14"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 239 B |
|
|
@ -1,793 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg2646"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.4 r9943 custom"
|
||||
version="1.0"
|
||||
sodipodi:docname="arrow_bottom_green.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<defs
|
||||
id="defs2648">
|
||||
<linearGradient
|
||||
id="linearGradient3169">
|
||||
<stop
|
||||
style="stop-color:#0000ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3171" />
|
||||
<stop
|
||||
style="stop-color:#000067;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3173" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3175"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient4766">
|
||||
<stop
|
||||
style="stop-color:#784421;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4768" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4770" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2396"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)" />
|
||||
<linearGradient
|
||||
id="linearGradient4758">
|
||||
<stop
|
||||
style="stop-color:#a05a2c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4760" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4762" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2399"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)" />
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective2654" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2691"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2693"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2695"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2707"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2709"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2711"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3508"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3510"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3512"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3514"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3516"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3518"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3520"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3522"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3524"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2444"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2446"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2448"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2450"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2452"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2454"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2456"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2458"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2460"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2478"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2480"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2482"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2484"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2486"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2488"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2490"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2492"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2494"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2527"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2529"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2531"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2533"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2535"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2537"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2539"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2541"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2543"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2545"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2547"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2549"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2561"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2563"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2565"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2594"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2596"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2598"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2600"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2602"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2604"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2606"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2608"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2610"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2612"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2614"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2616"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2618"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2620"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2622"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.625"
|
||||
inkscape:cx="8.25663"
|
||||
inkscape:cy="31.788561"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1272"
|
||||
inkscape:window-height="723"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="23"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata2651">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
style="display:inline" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Pfeil"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="fill:#96ff96;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 11.002462,36.225266 12.351931,0 -12.852459,18.346676 42.685714,0 -12.327869,-18.346676 12.351929,0 -21.104622,-25.485734 z"
|
||||
id="rect2714"
|
||||
sodipodi:nodetypes="cccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 25 KiB |
|
|
@ -1,40 +1,4 @@
|
|||
<?xml version="1.0" encoding="windows-1252"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" x="0px"
|
||||
y="0px" width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;"
|
||||
xml:space="preserve">
|
||||
<g>
|
||||
<path d="M256,448c79.406,0,144-64.594,144-144s-64.594-144-144-144v96L96,128L256,0v96c114.688,0,208,93.313,208,208 c0,114.688-93.312,208-208,208c-114.687,0-208-93.312-208-208h64C112,383.406,176.594,448,256,448z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M9 14 4 9l5-5"/>
|
||||
<path d="M4 9h10.5A5.5 5.5 0 0 1 20 14.5a5.5 5.5 0 0 1-5.5 5.5H11"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 874 B After Width: | Height: | Size: 263 B |
4
cockatrice/resources/icons/arrow_up.svg
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M12 19V6"/>
|
||||
<path d="M6 12l6-6 6 6"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 217 B |
|
|
@ -1,792 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg2646"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.4 r9943 custom"
|
||||
version="1.0"
|
||||
sodipodi:docname="arrow_up_green.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<defs
|
||||
id="defs2648">
|
||||
<linearGradient
|
||||
id="linearGradient3169">
|
||||
<stop
|
||||
style="stop-color:#0000ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3171" />
|
||||
<stop
|
||||
style="stop-color:#000067;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3173" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3175"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient4766">
|
||||
<stop
|
||||
style="stop-color:#784421;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4768" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4770" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2396"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)" />
|
||||
<linearGradient
|
||||
id="linearGradient4758">
|
||||
<stop
|
||||
style="stop-color:#a05a2c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4760" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4762" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2399"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)" />
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective2654" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2691"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2693"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2695"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2707"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2709"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2711"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3508"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3510"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3512"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3514"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3516"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3518"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3520"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3522"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3524"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2444"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2446"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2448"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2450"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2452"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2454"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2456"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2458"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2460"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2478"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2480"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2482"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2484"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2486"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2488"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2490"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2492"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2494"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2527"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2529"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2531"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2533"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2535"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2537"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2539"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2541"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2543"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2545"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2547"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2549"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2561"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2563"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2565"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2594"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2596"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2598"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2600"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2602"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2604"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2606"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2608"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2610"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2612"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2614"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2616"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2618"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2620"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2622"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.625"
|
||||
inkscape:cx="8.25663"
|
||||
inkscape:cy="31.788561"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1272"
|
||||
inkscape:window-height="723"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="23"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata2651">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
style="display:inline" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Pfeil"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="fill:#96ff96;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 10.895377,28.61871 12.351931,0 0,32.248315 17.505386,0 0,-32.248315 12.351929,0 L 32.000001,3.132975 10.895377,28.61871 z"
|
||||
id="rect2714"
|
||||
sodipodi:nodetypes="cccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 25 KiB |
|
|
@ -1 +1,4 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M512 320C512 214 426 128 320 128L320 512C426 512 512 426 512 320zM64 320C64 178.6 178.6 64 320 64C461.4 64 576 178.6 576 320C576 461.4 461.4 576 320 576C178.6 576 64 461.4 64 320z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="2"/>
|
||||
<path d="M12 3a9 9 0 0 1 0 18z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 410 B After Width: | Height: | Size: 209 B |
|
|
@ -1,276 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
sodipodi:docname="icon_clearsearch.svg">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
id="linearGradient3709">
|
||||
<stop
|
||||
style="stop-color:#4d4d4d;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3711" />
|
||||
<stop
|
||||
style="stop-color:white;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3713" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3699">
|
||||
<stop
|
||||
style="stop-color:#ececec;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3701" />
|
||||
<stop
|
||||
style="stop-color:#ececec;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3703" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3632">
|
||||
<stop
|
||||
style="stop-color:#c87137;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3634" />
|
||||
<stop
|
||||
style="stop-color:#c87137;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3636" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3622">
|
||||
<stop
|
||||
style="stop-color:#f9f9f9;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3624" />
|
||||
<stop
|
||||
style="stop-color:#f9f9f9;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3626" />
|
||||
</linearGradient>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective10" />
|
||||
<inkscape:perspective
|
||||
id="perspective3685"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3709"
|
||||
id="linearGradient3726"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="22.288248"
|
||||
y1="35.505978"
|
||||
x2="49.488647"
|
||||
y2="49.106178" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3622"
|
||||
id="linearGradient3728"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="30.59761"
|
||||
y1="8.9243031"
|
||||
x2="30.59761"
|
||||
y2="21.545816" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3632"
|
||||
id="linearGradient3730"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="28.430279"
|
||||
y1="47.808765"
|
||||
x2="29.960159"
|
||||
y2="47.808765" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3699"
|
||||
id="linearGradient3732"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="29.215645"
|
||||
y1="1021.9559"
|
||||
x2="31.852083"
|
||||
y2="1021.9559" />
|
||||
<inkscape:perspective
|
||||
id="perspective3766"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3797"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3896"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3699"
|
||||
id="linearGradient3911"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="29.215645"
|
||||
y1="1021.9559"
|
||||
x2="31.852083"
|
||||
y2="1021.9559"
|
||||
gradientTransform="translate(713.20829,-318.19428)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3709"
|
||||
id="linearGradient3928"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="22.288248"
|
||||
y1="35.505978"
|
||||
x2="49.488647"
|
||||
y2="49.106178" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3622"
|
||||
id="linearGradient3930"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="30.59761"
|
||||
y1="8.9243031"
|
||||
x2="30.59761"
|
||||
y2="21.545816" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3632"
|
||||
id="linearGradient3932"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="28.430279"
|
||||
y1="47.808765"
|
||||
x2="29.960159"
|
||||
y2="47.808765" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3699"
|
||||
id="linearGradient3934"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(713.20829,-318.19428)"
|
||||
x1="29.215645"
|
||||
y1="1021.9559"
|
||||
x2="31.852083"
|
||||
y2="1021.9559" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.84375"
|
||||
inkscape:cx="11.205704"
|
||||
inkscape:cy="35.993597"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1028"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-988.36218)" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Verbot">
|
||||
<g
|
||||
sodipodi:type="inkscape:box3d"
|
||||
style="fill:red;fill-opacity:1;stroke:black;stroke-width:0.30000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="g3936"
|
||||
inkscape:perspectiveID="#perspective10"
|
||||
inkscape:corner0="-32.72006 : 181.09419 : 0 : 1"
|
||||
inkscape:corner7="-365.7807 : 14.86007 : 0.25 : 1">
|
||||
<path
|
||||
sodipodi:type="inkscape:box3dside"
|
||||
id="path3946"
|
||||
style="fill:#afafde;fill-rule:evenodd;stroke:none"
|
||||
inkscape:box3dsidetype="13"
|
||||
d="M -11.729084,0.76495424 L -1.0199203,-421.92491 L -1.5309297,-421.89731 L -17.73339,4.4426247 z" />
|
||||
<path
|
||||
sodipodi:type="inkscape:box3dside"
|
||||
id="path3942"
|
||||
style="fill:#8686bf;fill-rule:evenodd;stroke:none"
|
||||
inkscape:box3dsidetype="3"
|
||||
d="M -11.729084,5241.4272 L -1.0199203,33.784832 L -1.0199203,-421.92491 L -11.729084,0.76495424 z" />
|
||||
<path
|
||||
sodipodi:type="inkscape:box3dside"
|
||||
id="path3938"
|
||||
style="fill:#353564;fill-rule:evenodd;stroke:none"
|
||||
inkscape:box3dsidetype="6"
|
||||
d="M -11.729084,5241.4272 L -11.729084,0.76495424 L -17.73339,4.4426247 L -17.73339,5286.737 z" />
|
||||
<path
|
||||
sodipodi:type="inkscape:box3dside"
|
||||
id="path3940"
|
||||
style="fill:#4d4d9f;fill-rule:evenodd;stroke:none"
|
||||
inkscape:box3dsidetype="5"
|
||||
d="M -11.729084,5241.4272 L -1.0199203,33.784832 L -1.5309297,34.124972 L -17.73339,5286.737 z" />
|
||||
<path
|
||||
sodipodi:type="inkscape:box3dside"
|
||||
id="path3948"
|
||||
style="fill:#e9e9ff;fill-rule:evenodd;stroke:none"
|
||||
inkscape:box3dsidetype="11"
|
||||
d="M -17.73339,5286.737 L -1.5309297,34.124972 L -1.5309297,-421.89731 L -17.73339,4.4426247 z" />
|
||||
<path
|
||||
sodipodi:type="inkscape:box3dside"
|
||||
id="path3944"
|
||||
style="fill:#d7d7ff;fill-rule:evenodd;stroke:none"
|
||||
inkscape:box3dsidetype="14"
|
||||
d="M -1.0199203,33.784832 L -1.0199203,-421.92491 L -1.5309297,-421.89731 L -1.5309297,34.124972 z" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#ff0000;fill-opacity:1;stroke:#cd3535;stroke-width:5.84793520000000020;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="M 52.385908,50.646333 C 62.721799,39.279033 61.886144,21.695001 50.518842,11.359112 39.151542,1.0232223 21.567509,1.8588773 11.231623,13.22618 0.89573232,24.593479 1.7313874,42.177512 13.098689,52.5134 c 11.3673,10.335889 28.951332,9.500234 39.287219,-1.867067 z M 49.738687,48.239307 C 41.198715,57.631478 26.946973,58.753059 17.056847,51.15466 L 49.541588,15.428288 c 8.502064,9.124975 8.737071,23.418851 0.197099,32.811019 z M 46.560682,12.717855 14.075941,48.444228 C 5.5738777,39.31925 5.3388704,25.025377 13.878842,15.633206 22.418813,6.2410344 36.670557,5.1194531 46.560682,12.717855 z"
|
||||
id="path3787"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="8"/>
|
||||
<path d="M9 9l6 6M15 9l-6 6"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 231 B |
|
|
@ -1,29 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" width="102.5024mm" height="102.24421mm"
|
||||
viewBox="0 0 102.5024 102.24421" version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.4 (e7c3feb100, 2024-10-09)" sodipodi:docname="cog_wheel.svg"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview id="namedview1" pagecolor="#ffffff" bordercolor="#000000" borderopacity="0.25"
|
||||
inkscape:showpageshadow="2" inkscape:pageopacity="0.0" inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1" inkscape:document-units="mm" inkscape:zoom="0.66101291"
|
||||
inkscape:cx="146.74449" inkscape:cy="193.64221" inkscape:window-width="1829"
|
||||
inkscape:window-height="951" inkscape:window-x="0" inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" inkscape:current-layer="layer1"/>
|
||||
<defs id="defs1"/>
|
||||
<g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(-66.148059,-97.377896)">
|
||||
<g id="g1" transform="translate(-165.09777,-82.009607)">
|
||||
<g id="g2" transform="matrix(0.26458333,0,0,0.26458333,64.983323,161.37858)">
|
||||
<path style="fill:#333333;stroke-width:94.4882"
|
||||
d="m 721.34301,94.413051 40.00966,29.763289 29.51933,-9.27053 14.63768,-46.840589 36.83817,0.48792 13.41787,46.108699 28.29952,9.5145 40.74155,-28.299519 29.0314,21.468599 -15.85748,47.08454 16.58937,23.66426 48.30432,-2.68358 12.93,34.88648 -41.71741,27.07971 -0.48792,29.27536 40.49763,26.10387 -10.2464,34.15459 -48.54834,-0.97584 -18.78502,23.42029 15.85749,45.37681 -28.29952,21.71256 -41.22947,-29.27536 -28.54348,9.75846 -13.66184,47.57246 -38.30194,-0.73188 -14.63768,-48.30435 -27.07971,-9.27054 -40.00966,29.27537 -30.25121,-20.49276 17.32125,-46.35266 -17.80918,-24.64009 -49.76812,3.17149 -11.22222,-34.64251 40.74155,-27.07971 0.48792,-30.00725 -41.71739,-27.32367 12.19807,-32.93479 48.30435,2.68358 20.24879,-24.6401 -17.32126,-47.08455 z"
|
||||
id="path1"/>
|
||||
<circle style="fill:#f9f9f9;stroke-width:72.1317" id="path2" cx="822.09906" cy="261.28262"
|
||||
r="83.434792"/>
|
||||
<circle style="fill:#4d4d4d;stroke-width:40.5147" id="circle2" cx="822.09906" cy="261.28262"
|
||||
r="46.863361"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.5 KiB |
|
|
@ -1,103 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="48"
|
||||
height="48"
|
||||
id="svg2"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.47pre4 r22446"
|
||||
sodipodi:docname="skull.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.0">
|
||||
<defs
|
||||
id="defs4">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective10" />
|
||||
<inkscape:perspective
|
||||
id="perspective2447"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective2687"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="18.217407"
|
||||
inkscape:cx="23.789126"
|
||||
inkscape:cy="21.065041"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="g2551"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1274"
|
||||
inkscape:window-height="725"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<g
|
||||
id="g2547">
|
||||
<g
|
||||
id="g2551"
|
||||
transform="translate(0.2014828,0.2890558)">
|
||||
<path
|
||||
style="fill:#000000"
|
||||
d="m 23.0625,7.875 c -2.309245,0.049099 -4.522809,0.469358 -6.125,1.28125 l -1.625,0.8125 -3,2.9375 c -4.4036271,4.810187 -5.7159942,14.310988 -2.03289,16.192421 0.470391,0.240289 2.475497,1.006426 3.728817,1.227998 2.521045,0.445688 2.327223,0.322567 2.787218,1.340469 0.238995,0.528863 0.09446,1.428157 -0.0144,3.364112 -0.222151,3.951055 -0.06236,4.424776 1.59375,4.75 1.098431,0.21571 1.347302,-0.472438 1.21875,-3.15625 -0.115618,-2.413774 0.583332,-2.187741 1.1875,0.375 0.547478,2.322281 0.410725,2.936824 1.34375,2.9375 0.919623,6.65e-4 1.076314,-0.818043 1.34375,-3 0.353869,-2.887142 1.125,-3.139658 1.125,-0.375 0,2.08688 -0.222077,3.589602 1.6875,3.40625 1.132862,-0.108774 1.082149,-3.370508 0.9375,-4.09375 -0.121253,-0.606271 -0.04263,-0.84375 0.25,-0.84375 0.538278,0 0.77605,0.936782 0.78125,3.0625 0.0023,0.939922 0.100607,1.819357 0.21875,1.9375 0.257103,0.257101 1.968476,-0.05495 2.375,-0.4375 0.16137,-0.151853 0.01366,-2.350878 0.21875,-5 0.35428,-4.576122 1.366108,-2.962194 4.245673,-3.85919 4.126605,-1.285455 4.289077,-3.901867 4.285577,-7.64081 -0.0033,-3.474911 -1.444977,-7.288916 -3.75,-9.9375 l -1.0625,-1.21875 -1.875,-1.5 C 31.003675,8.7156929 26.911241,7.7931682 23.0625,7.875 z M 15.625,19.03125 c 3.394247,0 7.005748,2.293983 4.9375,3.96875 -0.883048,0.715048 -6.772942,-0.473271 -8.34375,-1.15625 -2.8401606,-1.234886 -0.0067,-2.8125 3.40625,-2.8125 z M 30.40625,19.625 c 0.636388,-0.004 1.310094,0.03125 1.9375,0.03125 3.145949,0 6.024182,0.340703 3.875,2.03125 -0.761324,0.598858 -1.605395,1.78125 -5.125,1.78125 -4.382431,0 -4.28125,0.0393 -4.28125,-1.625 0,-1.934908 1.684585,-2.206867 3.59375,-2.21875 z M 24,26.086963 24.75,27.59375 25.46711,29.015215 23.96875,28.875 22.336963,28.850537 23.25,27.5625 24,26.086963 z"
|
||||
transform="translate(-0.2014828,-0.2890558)"
|
||||
id="path2693"
|
||||
sodipodi:nodetypes="ccccssssssssssssssssssscccccssccsssscccccccc" />
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||
id="rect3702"
|
||||
width="3.0739832"
|
||||
height="9.9355526"
|
||||
x="41.498772"
|
||||
y="27.689754"
|
||||
transform="translate(-0.2014828,-0.2890558)" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2471"
|
||||
transform="matrix(4.0064997,0,0,4.0064997,-232.82633,-1139.1808)" />
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M5 21V4"/>
|
||||
<path d="M5 4h12l-2 4 2 4H5"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 219 B |
|
|
@ -1,205 +1,3 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg2646"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
version="1.0"
|
||||
sodipodi:docname="deck_editor_decrement.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<defs
|
||||
id="defs2648">
|
||||
<linearGradient
|
||||
id="linearGradient3169">
|
||||
<stop
|
||||
style="stop-color:#0000ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3171" />
|
||||
<stop
|
||||
style="stop-color:#000067;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3173" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4766">
|
||||
<stop
|
||||
style="stop-color:#784421;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4768" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4770" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4758">
|
||||
<stop
|
||||
style="stop-color:#a05a2c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4760" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4762" />
|
||||
</linearGradient>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective2654" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3508"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3510"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3512"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3514"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3516"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3518"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3520"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3522"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3524"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.625"
|
||||
inkscape:cx="26.34754"
|
||||
inkscape:cy="29.107677"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1445"
|
||||
inkscape:window-height="893"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata2651">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
style="display:inline" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Pfeil"
|
||||
style="display:inline">
|
||||
<rect
|
||||
style="fill:#ff7672;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
|
||||
id="rect3548"
|
||||
width="14.386732"
|
||||
height="59.259636"
|
||||
x="24.806633"
|
||||
y="-61.629818"
|
||||
transform="matrix(0,1,-1,0,0,0)" />
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M5 12h14"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 189 B |
|
|
@ -1,357 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg2646"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.47pre4 r22446"
|
||||
version="1.0"
|
||||
sodipodi:docname="remove_row.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<defs
|
||||
id="defs2648">
|
||||
<linearGradient
|
||||
id="linearGradient3169">
|
||||
<stop
|
||||
style="stop-color:#0000ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3171" />
|
||||
<stop
|
||||
style="stop-color:#000067;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3173" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4766">
|
||||
<stop
|
||||
style="stop-color:#784421;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4768" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4770" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4758">
|
||||
<stop
|
||||
style="stop-color:#a05a2c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4760" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4762" />
|
||||
</linearGradient>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective2654" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3508"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3510"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3512"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3514"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3516"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3518"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3520"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3522"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3524"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2442"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2444"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2446"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2470"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2472"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2474"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2476"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2478"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2480"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2482"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2484"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2486"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2488"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2490"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2492"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.625"
|
||||
inkscape:cx="12.656427"
|
||||
inkscape:cy="31.784541"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="725"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata2651">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
style="display:inline" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Pfeil"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
|
||||
d="M 6.433227,14.50946 L 23.923767,32 L 6.433227,49.490541 L 14.50946,57.566773 L 32,40.076233 L 49.490541,57.566773 L 57.566773,49.490541 L 40.076233,32 L 57.566773,14.50946 L 49.490541,6.433227 L 32,23.923767 L 14.50946,6.433227 L 6.433227,14.50946 z"
|
||||
id="rect3548" />
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M4 7h16"/>
|
||||
<path d="M9 7V4h6v3"/>
|
||||
<path d="M6 7l1 13h10l1-13"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 245 B |
|
|
@ -1 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M352 188.5L300.1 175.5C293.6 173.9 288.8 168.4 288.1 161.7C287.4 155 290.9 148.6 296.8 145.6L337.6 125.2L294.3 92.7C288.8 88.6 286.5 81.4 288.7 74.8C290.9 68.2 297.1 64 304 64L464 64C494.2 64 522.7 78.2 540.8 102.4L598.4 179.2C604.6 187.5 608 197.6 608 208C608 234.5 586.5 256 560 256L538.5 256C521.5 256 505.2 249.3 493.2 237.3L479.9 224L447.9 224L447.9 245.5C447.9 270.3 460.7 293.4 481.7 306.6L588.3 373.2C620.4 393.3 639.9 428.4 639.9 466.3C639.9 526.9 590.8 576.1 530.1 576.1L32.3 576C29 576 25.7 575.6 22.7 574.6C13.5 571.8 6 565 2.3 556C1 552.7 .1 549.1 0 545.3C-.2 541.6 .3 538 1.3 534.6C4.1 525.4 10.9 517.9 19.9 514.2C22.9 513 26.1 512.2 29.4 512L433.3 476C441.6 475.3 448 468.3 448 459.9C448 455.6 446.3 451.5 443.3 448.5L398.9 404.1C368.9 374.1 352 333.4 352 291L352 188.5zM512 136.3C512 136.2 512 136.1 512 136C512 135.9 512 135.8 512 135.7L512 136.3zM510.7 143.7L464.3 132.1C464.1 133.4 464 134.7 464 136C464 149.3 474.7 160 488 160C498.6 160 507.5 153.2 510.7 143.7zM130.9 180.5C147.2 166 171.3 164.3 189.4 176.4L320 263.4L320 290.9C320 323.7 328.4 355.7 344 383.9L112 383.9C105.3 383.9 99.3 379.7 97 373.5C94.7 367.3 96.5 360.2 101.6 355.8L171 296.3L18.4 319.8C11.4 320.9 4.5 317.2 1.5 310.8C-1.5 304.4 .1 296.8 5.4 292L130.9 180.5z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
|
||||
<!-- Font Awesome Free 7.1.0, CC BY 4.0 / MIT; https://fontawesome.com/license/free -->
|
||||
<g transform="translate(2 2) scale(0.03125)">
|
||||
<path d="M352 188.5L300.1 175.5C293.6 173.9 288.8 168.4 288.1 161.7C287.4 155 290.9 148.6 296.8 145.6L337.6 125.2L294.3 92.7C288.8 88.6 286.5 81.4 288.7 74.8C290.9 68.2 297.1 64 304 64L464 64C494.2 64 522.7 78.2 540.8 102.4L598.4 179.2C604.6 187.5 608 197.6 608 208C608 234.5 586.5 256 560 256L538.5 256C521.5 256 505.2 249.3 493.2 237.3L479.9 224L447.9 224L447.9 245.5C447.9 270.3 460.7 293.4 481.7 306.6L588.3 373.2C620.4 393.3 639.9 428.4 639.9 466.3C639.9 526.9 590.8 576.1 530.1 576.1L32.3 576C29 576 25.7 575.6 22.7 574.6C13.5 571.8 6 565 2.3 556C1 552.7 .1 549.1 0 545.3C-.2 541.6 .3 538 1.3 534.6C4.1 525.4 10.9 517.9 19.9 514.2C22.9 513 26.1 512.2 29.4 512L433.3 476C441.6 475.3 448 468.3 448 459.9C448 455.6 446.3 451.5 443.3 448.5L398.9 404.1C368.9 374.1 352 333.4 352 291L352 188.5zM512 136.3C512 136.2 512 136.1 512 136C512 135.9 512 135.8 512 135.7L512 136.3zM510.7 143.7L464.3 132.1C464.1 133.4 464 134.7 464 136C464 149.3 474.7 160 488 160C498.6 160 507.5 153.2 510.7 143.7zM130.9 180.5C147.2 166 171.3 164.3 189.4 176.4L320 263.4L320 290.9C320 323.7 328.4 355.7 344 383.9L112 383.9C105.3 383.9 99.3 379.7 97 373.5C94.7 367.3 96.5 360.2 101.6 355.8L171 296.3L18.4 319.8C11.4 320.9 4.5 317.2 1.5 310.8C-1.5 304.4 .1 296.8 5.4 292L130.9 180.5z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.5 KiB |
|
|
@ -1,10 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 12.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_svg "http://www.w3.org/2000/svg">
|
||||
<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="460.5" height="531.74"
|
||||
viewBox="0 0 460.5 531.74" overflow="visible" enable-background="new 0 0 460.5 531.74" xml:space="preserve">
|
||||
<polygon fill="#918d8d" points="0.5,0.866 459.5,265.87 0.5,530.874 "/>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M9 6l6 6-6 6"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 657 B After Width: | Height: | Size: 191 B |
|
|
@ -1,10 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 12.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_svg "http://www.w3.org/2000/svg">
|
||||
<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="531.74" height="460.5"
|
||||
viewBox="0 0 531.74 460.5" overflow="visible" enable-background="new 0 0 531.74 460.5" xml:space="preserve">
|
||||
<polygon fill="#918d8d" points="530.874,0.5 265.87,459.5 0.866,0.5 "/>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M6 9l6 6 6-6"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 657 B After Width: | Height: | Size: 191 B |
|
|
@ -1,12 +1,3 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg fill="#000000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg"
|
||||
width="800px" height="800px" viewBox="0 0 971.986 971.986"
|
||||
xml:space="preserve">
|
||||
<g>
|
||||
<path d="M370.216,459.3c10.2,11.1,15.8,25.6,15.8,40.6v442c0,26.601,32.1,40.101,51.1,21.4l123.3-141.3
|
||||
c16.5-19.8,25.6-29.601,25.6-49.2V500c0-15,5.7-29.5,15.8-40.601L955.615,75.5c26.5-28.8,6.101-75.5-33.1-75.5h-873
|
||||
c-39.2,0-59.7,46.6-33.1,75.5L370.216,459.3z"/>
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M3 5h18l-7 8v6l-4 2v-8z"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 676 B After Width: | Height: | Size: 202 B |
|
|
@ -1 +1,5 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M160 96C124.7 96 96 124.7 96 160L96 480C96 515.3 124.7 544 160 544L480 544C515.3 544 544 515.3 544 480L544 237.3C544 220.3 537.3 204 525.3 192L448 114.7C436 102.7 419.7 96 402.7 96L160 96zM192 192C192 174.3 206.3 160 224 160L384 160C401.7 160 416 174.3 416 192L416 256C416 273.7 401.7 288 384 288L224 288C206.3 288 192 273.7 192 256L192 192zM320 352C355.3 352 384 380.7 384 416C384 451.3 355.3 480 320 480C284.7 480 256 451.3 256 416C256 380.7 284.7 352 320 352z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M5 3h11l3 3v15H5z"/>
|
||||
<path d="M8 3v6h8V3"/>
|
||||
<path d="M8 14h8v7H8z"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 693 B After Width: | Height: | Size: 248 B |
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48pt" height="48pt" viewBox="0 0 48 48" version="1.1">
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:#000000;fill-opacity:1;" d="M 24 2 C 17.398438 2 12 7.398438 12 14 L 12 16 C 9.789063 16 8 17.789063 8 20 L 8 40 C 8 42.210938 9.789063 44 12 44 L 36 44 C 38.210938 44 40 42.210938 40 40 L 40 20 C 40 17.789063 38.210938 16 36 16 L 36 14 C 36 7.398438 30.601563 2 24 2 Z M 24 6 C 28.4375 6 32 9.5625 32 14 L 32 16 L 16 16 L 16 14 C 16 9.5625 19.554688 6 24 6 Z M 23.9375 19.9375 C 29.929688 19.9375 30 24.398438 30 25.25 C 30 29.71875 25.125 29.96875 25.375 33.875 L 21.875 33.875 C 21.578125 28.632813 26.0625 28.398438 26.0625 25.4375 C 26.0625 23.3125 24.632813 23.125 23.9375 23.125 C 21.859375 23.125 21.757813 25.09375 21.75 25.5 L 17.8125 25.5 C 17.820313 24.554688 18.015625 19.9375 23.9375 19.9375 Z M 23.6875 35.9375 C 25.671875 35.9375 25.875 37.765625 25.875 38.0625 C 25.875 38.351563 25.671875 40.125 23.6875 40.125 C 21.632813 40.125 21.5 38.351563 21.5 38.0625 C 21.5 37.765625 21.671875 35.9375 23.6875 35.9375 Z "/>
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="7.5" cy="15.5" r="3.5"/>
|
||||
<path d="M10 13l9-9"/>
|
||||
<path d="M16 4l4 4"/>
|
||||
<path d="M14 6l3 3"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 276 B |
|
|
@ -1 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M259.1 73.5C262.1 58.7 275.2 48 290.4 48L350.2 48C365.4 48 378.5 58.7 381.5 73.5L396 143.5C410.1 149.5 423.3 157.2 435.3 166.3L503.1 143.8C517.5 139 533.3 145 540.9 158.2L570.8 210C578.4 223.2 575.7 239.8 564.3 249.9L511 297.3C511.9 304.7 512.3 312.3 512.3 320C512.3 327.7 511.8 335.3 511 342.7L564.4 390.2C575.8 400.3 578.4 417 570.9 430.1L541 481.9C533.4 495 517.6 501.1 503.2 496.3L435.4 473.8C423.3 482.9 410.1 490.5 396.1 496.6L381.7 566.5C378.6 581.4 365.5 592 350.4 592L290.6 592C275.4 592 262.3 581.3 259.3 566.5L244.9 496.6C230.8 490.6 217.7 482.9 205.6 473.8L137.5 496.3C123.1 501.1 107.3 495.1 99.7 481.9L69.8 430.1C62.2 416.9 64.9 400.3 76.3 390.2L129.7 342.7C128.8 335.3 128.4 327.7 128.4 320C128.4 312.3 128.9 304.7 129.7 297.3L76.3 249.8C64.9 239.7 62.3 223 69.8 209.9L99.7 158.1C107.3 144.9 123.1 138.9 137.5 143.7L205.3 166.2C217.4 157.1 230.6 149.5 244.6 143.4L259.1 73.5zM320.3 400C364.5 399.8 400.2 363.9 400 319.7C399.8 275.5 363.9 239.8 319.7 240C275.5 240.2 239.8 276.1 240 320.3C240.2 364.5 276.1 400.2 320.3 400z"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
|
|
@ -1,199 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg2646"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.46"
|
||||
version="1.0"
|
||||
sodipodi:docname="increment.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<defs
|
||||
id="defs2648">
|
||||
<linearGradient
|
||||
id="linearGradient3169">
|
||||
<stop
|
||||
style="stop-color:#0000ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3171" />
|
||||
<stop
|
||||
style="stop-color:#000067;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3173" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4766">
|
||||
<stop
|
||||
style="stop-color:#784421;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4768" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4770" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4758">
|
||||
<stop
|
||||
style="stop-color:#a05a2c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4760" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4762" />
|
||||
</linearGradient>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective2654" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3508"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3510"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3512"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3514"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3516"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3518"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3520"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3522"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3524"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.625"
|
||||
inkscape:cx="-58.636066"
|
||||
inkscape:cy="33.549415"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1272"
|
||||
inkscape:window-height="723"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="248" />
|
||||
<metadata
|
||||
id="metadata2651">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
style="display:inline" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Pfeil"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="fill:#96ff96;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 25.592359,5.717815 L 25.592359,25.62856 L 5.681613,25.62856 L 5.681613,38.371435 L 25.592359,38.371435 L 25.592359,58.282185 L 38.40764,58.282185 L 38.40764,38.371435 L 58.318387,38.371435 L 58.318387,25.62856 L 38.40764,25.62856 L 38.40764,5.717815 L 25.592359,5.717815 z"
|
||||
id="rect3546" />
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M12 5v14"/>
|
||||
<path d="M5 12h14"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 212 B |
|
|
@ -1,43 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="100"
|
||||
height="100"
|
||||
id="svg2858"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
sodipodi:docname="info.svg">
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Triangle"
|
||||
style="display:inline">
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#aaaaaa;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
|
||||
id="path3758-1"
|
||||
sodipodi:cx="53.900002"
|
||||
sodipodi:cy="78.5"
|
||||
sodipodi:rx="46.5"
|
||||
sodipodi:ry="46.5"
|
||||
d="M 100.4,78.5 A 46.5,46.5 0 1 1 7.4000015,78.5 46.5,46.5 0 1 1 100.4,78.5 z"
|
||||
transform="matrix(1.05866,0,0,1.05866,-7.0617752,-32.704809)" />
|
||||
<g
|
||||
style="font-size:133.49534607px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.06498075;stroke-opacity:1;font-family:'Magic:the Gathering';-inkscape-font-specification:'Magic:the Gathering'"
|
||||
id="text3759">
|
||||
<path
|
||||
d="m 46.854005,16.085692 c 0.977733,-2.411704 1.683885,-4.193378 2.118456,-5.345028 0.369355,-1.1514901 0.771318,-1.9988718 1.205891,-2.5421482 0.456264,-0.4344718 1.347101,-0.825571 2.672514,-1.1732989 1.23846,-0.2823765 2.705082,-0.4670623 4.399871,-0.5540578 0.369346,8.46e-5 0.727854,8.46e-5 1.075524,0 1.694737,8.46e-5 2.672485,0.5758696 2.933248,1.7273567 -3e-5,0.1956326 -3e-5,0.3803183 0,0.5540579 -3e-5,1.3254743 -0.662726,2.9224633 -1.98809,4.7909703 -1.520969,2.238035 -3.43301,4.24785 -5.736128,6.029453 -2.32489,1.760018 -4.551983,2.781222 -6.681286,3.063614 -1.260224,-0.543125 -1.977239,-1.075454 -2.151048,-1.59699 -1.3e-5,-0.08684 -1.3e-5,-0.184616 0,-0.293325 -1.3e-5,-0.434484 0.228128,-1.010269 0.684424,-1.727357 0.521453,-0.890765 1.010327,-1.868513 1.466624,-2.933247 z M 31.372977,37.856906 c 2.650785,-0.716962 6.159814,-1.651255 10.527099,-2.802881 4.280354,-1.173242 7.398284,-1.803346 9.3538,-1.890315 0.08689,5.8e-5 0.173803,5.8e-5 0.260733,0 1.06464,5.8e-5 1.82511,0.358566 2.281415,1.075524 0.260711,0.630161 0.391077,1.520998 0.391099,2.672514 -2.2e-5,0.260787 -2.2e-5,0.532384 0,0.814791 -0.173844,1.586178 -0.260755,2.781204 -0.260733,3.58508 l 0,39.533656 c 1.238459,1e-5 2.976678,-0.673549 5.214662,-2.020681 1.673009,-0.977736 2.868034,-1.46661 3.58508,-1.466624 0.173791,1.4e-5 0.304158,0.04347 0.3911,0.130367 0.543162,0.369385 0.814759,0.771348 0.814791,1.20589 -3.2e-5,1.151583 -1.868617,2.66166 -5.605762,4.530238 -1.238507,0.717023 -3.063637,1.922912 -5.475395,3.617671 -2.49871,1.781679 -4.769259,3.204846 -6.811652,4.269505 -0.347658,0.347644 -0.923443,0.662696 -1.727357,0.945157 -0.260745,0.08691 -0.532342,0.130366 -0.814791,0.130367 -0.521477,-10e-7 -1.010351,-0.271598 -1.466623,-0.814791 C 41.856611,91.111641 41.7697,81.594892 41.76971,62.8221 c -1e-5,-1.955468 -1e-5,-4.008739 0,-6.15982 -1e-5,-2.129283 -0.08692,-4.128235 -0.260734,-5.996861 -0.260742,-1.781634 -0.706161,-3.204801 -1.336257,-4.269504 -0.717023,-1.347075 -1.60786,-2.368279 -2.672514,-3.063614 -1.151576,-0.630057 -2.357465,-1.260161 -3.617672,-1.890315 -1.325394,-0.521416 -2.161911,-1.053746 -2.509556,-1.59699 -0.195549,-0.173771 -0.293324,-0.434504 -0.293324,-0.7822 -0.08691,-0.369319 0.01086,-0.771282 0.293324,-1.20589 z"
|
||||
style=""
|
||||
id="path2993" />
|
||||
</g>
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="9"/>
|
||||
<path d="M12 11v6"/>
|
||||
<path d="M12 7.5h.01"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 247 B |
|
|
@ -1,750 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="128.00000"
|
||||
id="svg1931"
|
||||
version="1.0"
|
||||
width="128.00000"
|
||||
x="0.00000000"
|
||||
y="0.00000000"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
sodipodi:docname="lock.svg">
|
||||
<sodipodi:namedview
|
||||
inkscape:window-height="933"
|
||||
inkscape:window-width="1163"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
guidetolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
objecttolerance="10.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
inkscape:zoom="4"
|
||||
inkscape:cx="-26.577351"
|
||||
inkscape:cy="72.426878"
|
||||
inkscape:window-x="204"
|
||||
inkscape:window-y="90"
|
||||
inkscape:current-layer="g5908"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata3">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:title>padlock</dc:title>
|
||||
<dc:description />
|
||||
<dc:subject>
|
||||
<rdf:Bag>
|
||||
<rdf:li>icon</rdf:li>
|
||||
<rdf:li />
|
||||
<rdf:li>lock</rdf:li>
|
||||
<rdf:li>security</rdf:li>
|
||||
<rdf:li>secure</rdf:li>
|
||||
<rdf:li>padlock</rdf:li>
|
||||
<rdf:li>signs_and_symbols</rdf:li>
|
||||
</rdf:Bag>
|
||||
</dc:subject>
|
||||
<dc:publisher>
|
||||
<cc:Agent
|
||||
rdf:about="http://www.openclipart.org">
|
||||
<dc:title>AJ Ashton</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>AJ Ashton</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:rights>
|
||||
<cc:Agent>
|
||||
<dc:title>AJ Ashton</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:rights>
|
||||
<dc:date />
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<cc:license
|
||||
rdf:resource="http://web.resource.org/cc/PublicDomain" />
|
||||
<dc:language>en</dc:language>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://web.resource.org/cc/PublicDomain">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs3">
|
||||
<linearGradient
|
||||
id="linearGradient3057">
|
||||
<stop
|
||||
id="stop3059"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#282828;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop3061"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#282828;stop-opacity:0.00000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient2834">
|
||||
<stop
|
||||
id="stop2836"
|
||||
offset="0"
|
||||
style="stop-color:#e59a00;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop2838"
|
||||
offset="1"
|
||||
style="stop-color:#faff7d;stop-opacity:0.18367347;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient2780">
|
||||
<stop
|
||||
id="stop2782"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#ffffff;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop2784"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient2713">
|
||||
<stop
|
||||
id="stop2715"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop2717"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:1.0000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient2701">
|
||||
<stop
|
||||
id="stop2703"
|
||||
offset="0"
|
||||
style="stop-color:#db9300;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop2770"
|
||||
offset="0.75"
|
||||
style="stop-color:#fac700;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop2705"
|
||||
offset="1"
|
||||
style="stop-color:#fff363;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientTransform="matrix(2.151801,0.000000,0.000000,1.770850,-5.130350e-2,4.351838)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient2707"
|
||||
spreadMethod="reflect"
|
||||
x1="29.613848"
|
||||
x2="44.723549"
|
||||
xlink:href="#linearGradient2701"
|
||||
y1="52.608921"
|
||||
y2="52.608921" />
|
||||
<linearGradient
|
||||
gradientTransform="matrix(1.121224,0.000000,0.000000,0.891883,0.000000,4.000000)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient2719"
|
||||
spreadMethod="reflect"
|
||||
x1="28.071486"
|
||||
x2="28.071486"
|
||||
xlink:href="#linearGradient2713"
|
||||
y1="40.272228"
|
||||
y2="42.645634" />
|
||||
<linearGradient
|
||||
gradientTransform="matrix(2.218790,0.000000,0.000000,1.825981,-5.130350e-2,-1.012826)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient2732"
|
||||
spreadMethod="reflect"
|
||||
x1="29.093641"
|
||||
x2="29.093641"
|
||||
xlink:href="#linearGradient2713"
|
||||
y1="46.357063"
|
||||
y2="47.295517" />
|
||||
<linearGradient
|
||||
gradientTransform="matrix(2.218790,0.000000,0.000000,1.825981,-5.130350e-2,-1.012826)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient2736"
|
||||
spreadMethod="reflect"
|
||||
x1="24.261463"
|
||||
x2="24.605862"
|
||||
xlink:href="#linearGradient2713"
|
||||
y1="44.011002"
|
||||
y2="45.887836" />
|
||||
<linearGradient
|
||||
gradientTransform="scale(1.102326,0.907173)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient2740"
|
||||
spreadMethod="reflect"
|
||||
x1="17.681860"
|
||||
x2="17.425413"
|
||||
xlink:href="#linearGradient2713"
|
||||
y1="60.433849"
|
||||
y2="62.779984" />
|
||||
<radialGradient
|
||||
cx="20.360580"
|
||||
cy="22.546398"
|
||||
fx="20.360580"
|
||||
fy="22.546396"
|
||||
gradientTransform="matrix(0.433337,0.000000,0.000000,1.434961,6.409890,-0.113137)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient2788"
|
||||
r="15.156592"
|
||||
xlink:href="#linearGradient2780" />
|
||||
<radialGradient
|
||||
cx="20.360580"
|
||||
cy="22.546398"
|
||||
fx="20.360580"
|
||||
fy="22.546396"
|
||||
gradientTransform="matrix(0.500069,0.000000,0.000000,1.675192,5.002970,-5.108149)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient2792"
|
||||
r="15.156592"
|
||||
xlink:href="#linearGradient2780" />
|
||||
<radialGradient
|
||||
cx="20.360580"
|
||||
cy="22.546398"
|
||||
fx="20.360580"
|
||||
fy="22.546396"
|
||||
gradientTransform="matrix(0.621397,0.000000,0.000000,1.882058,2.388831,-9.409409)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient2796"
|
||||
r="15.156592"
|
||||
xlink:href="#linearGradient2780" />
|
||||
<radialGradient
|
||||
cx="20.360580"
|
||||
cy="22.546398"
|
||||
fx="20.360580"
|
||||
fy="22.546396"
|
||||
gradientTransform="matrix(0.433337,0.000000,0.000000,1.434961,6.409890,-0.113137)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient2811"
|
||||
r="15.156592"
|
||||
xlink:href="#linearGradient2780" />
|
||||
<radialGradient
|
||||
cx="20.360580"
|
||||
cy="22.546398"
|
||||
fx="20.360580"
|
||||
fy="22.546396"
|
||||
gradientTransform="matrix(0.500069,0.000000,0.000000,1.675192,5.002970,-5.108149)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient2813"
|
||||
r="15.156592"
|
||||
xlink:href="#linearGradient2780" />
|
||||
<radialGradient
|
||||
cx="20.360580"
|
||||
cy="22.546398"
|
||||
fx="20.360580"
|
||||
fy="22.546396"
|
||||
gradientTransform="matrix(0.621397,0.000000,0.000000,1.882058,2.388831,-9.409409)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient2815"
|
||||
r="15.156592"
|
||||
xlink:href="#linearGradient2780" />
|
||||
<radialGradient
|
||||
cx="20.360580"
|
||||
cy="22.546398"
|
||||
fx="20.360580"
|
||||
fy="22.546396"
|
||||
gradientTransform="matrix(0.433337,0.000000,0.000000,1.434961,6.409890,-0.113137)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient2817"
|
||||
r="15.156592"
|
||||
xlink:href="#linearGradient2780" />
|
||||
<radialGradient
|
||||
cx="20.360580"
|
||||
cy="22.546398"
|
||||
fx="20.360580"
|
||||
fy="22.546396"
|
||||
gradientTransform="matrix(0.500069,0.000000,0.000000,1.675192,5.002970,-5.108149)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient2819"
|
||||
r="15.156592"
|
||||
xlink:href="#linearGradient2780" />
|
||||
<radialGradient
|
||||
cx="20.360580"
|
||||
cy="22.546398"
|
||||
fx="20.360580"
|
||||
fy="22.546396"
|
||||
gradientTransform="matrix(0.621397,0.000000,0.000000,1.882058,2.388831,-9.409409)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient2821"
|
||||
r="15.156592"
|
||||
xlink:href="#linearGradient2780" />
|
||||
<radialGradient
|
||||
cx="17.191872"
|
||||
cy="14.639010"
|
||||
fx="17.191872"
|
||||
fy="14.639010"
|
||||
gradientTransform="scale(1.896245,0.527358)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient2840"
|
||||
r="3.5649405"
|
||||
xlink:href="#linearGradient2834" />
|
||||
<radialGradient
|
||||
cx="21.595108"
|
||||
cy="8.9813547"
|
||||
fx="21.595108"
|
||||
fy="8.9813547"
|
||||
gradientTransform="matrix(2.366562,0,0,1.726511,-0.404355,-1.2826e-2)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient2869"
|
||||
r="6.0678878"
|
||||
xlink:href="#linearGradient2834" />
|
||||
<radialGradient
|
||||
cx="21.595108"
|
||||
cy="8.9813547"
|
||||
fx="21.595108"
|
||||
fy="8.9813547"
|
||||
gradientTransform="matrix(-2.366562,0,0,1.726511,129.1226,-0.112925)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient2873"
|
||||
r="6.0678878"
|
||||
xlink:href="#linearGradient2834" />
|
||||
<linearGradient
|
||||
gradientTransform="matrix(2.161083,0,0,1.804543,-5.13035e-2,2.267068)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient2895"
|
||||
x1="33.184048"
|
||||
x2="33.184048"
|
||||
xlink:href="#linearGradient2780"
|
||||
y1="24.384579"
|
||||
y2="-13.170087" />
|
||||
<radialGradient
|
||||
cx="27.270315"
|
||||
cy="16.278088"
|
||||
fx="27.270315"
|
||||
fy="16.278088"
|
||||
gradientTransform="scale(0.973329,1.027402)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient2929"
|
||||
r="13.638700"
|
||||
xlink:href="#linearGradient2780" />
|
||||
<linearGradient
|
||||
gradientTransform="matrix(2.210222,0,0,1.964283,-1.515862,-2.171324)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient2935"
|
||||
x1="33.184048"
|
||||
x2="33.184048"
|
||||
xlink:href="#linearGradient2780"
|
||||
y1="24.384579"
|
||||
y2="-13.170087" />
|
||||
<linearGradient
|
||||
gradientTransform="matrix(1.632005,0,0,2.482509,-5.13035e-2,-1.2826e-2)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient2943"
|
||||
x1="38.781849"
|
||||
x2="38.781849"
|
||||
xlink:href="#linearGradient2780"
|
||||
y1="9.5745525"
|
||||
y2="7.5863166" />
|
||||
<linearGradient
|
||||
gradientTransform="matrix(1.63752,0,0,2.47415,-5.13035e-2,-1.2826e-2)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient2951"
|
||||
x1="38.362892"
|
||||
x2="39.723621"
|
||||
xlink:href="#linearGradient2780"
|
||||
y1="11.170151"
|
||||
y2="6.0918369" />
|
||||
<radialGradient
|
||||
cx="21.595108"
|
||||
cy="8.9813547"
|
||||
fx="21.595108"
|
||||
fy="8.9813547"
|
||||
gradientTransform="matrix(3.085042,0,0,2.052895,-15.9848,-3.14928)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient2955"
|
||||
r="6.0678878"
|
||||
xlink:href="#linearGradient2834" />
|
||||
<radialGradient
|
||||
cx="21.595108"
|
||||
cy="8.9813547"
|
||||
fx="21.595108"
|
||||
fy="8.9813547"
|
||||
gradientTransform="matrix(-2.846279,0,0,2.087943,139.5254,-3.586178)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient2959"
|
||||
r="6.0678878"
|
||||
xlink:href="#linearGradient2834" />
|
||||
<radialGradient
|
||||
cx="8.0178375"
|
||||
cy="231.98276"
|
||||
fx="8.0178375"
|
||||
fy="231.98276"
|
||||
gradientTransform="scale(3.741657,0.267261)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3063"
|
||||
r="7.4833150"
|
||||
xlink:href="#linearGradient3057" />
|
||||
<radialGradient
|
||||
cx="8.0178375"
|
||||
cy="231.98276"
|
||||
fx="8.0178375"
|
||||
fy="231.98276"
|
||||
gradientTransform="scale(3.741657,0.267261)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3069"
|
||||
r="7.4833150"
|
||||
xlink:href="#linearGradient3057" />
|
||||
<radialGradient
|
||||
cx="8.0178375"
|
||||
cy="231.98276"
|
||||
fx="8.0178375"
|
||||
fy="231.98276"
|
||||
gradientTransform="scale(3.741657,0.267261)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3071"
|
||||
r="7.4833150"
|
||||
xlink:href="#linearGradient3057" />
|
||||
<linearGradient
|
||||
gradientTransform="matrix(2.136116,0.000000,0.000000,1.825981,2.348697,-1.012826)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3080"
|
||||
spreadMethod="pad"
|
||||
x1="26.974447"
|
||||
x2="26.974447"
|
||||
xlink:href="#linearGradient2780"
|
||||
y1="68.680031"
|
||||
y2="44.981197" />
|
||||
<linearGradient
|
||||
gradientTransform="matrix(1.632005,0,0,2.436073,-5.13035e-2,2.009678)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3084"
|
||||
x1="35.995708"
|
||||
x2="35.995708"
|
||||
xlink:href="#linearGradient2780"
|
||||
y1="1.6246380"
|
||||
y2="11.710631" />
|
||||
<linearGradient
|
||||
gradientTransform="matrix(2.218790,0.000000,0.000000,1.825981,-5.130350e-2,-1.012826)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3086"
|
||||
spreadMethod="reflect"
|
||||
x1="17.681860"
|
||||
x2="17.425413"
|
||||
xlink:href="#linearGradient2713"
|
||||
y1="60.433849"
|
||||
y2="62.779984" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2701"
|
||||
id="linearGradient3106"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.151801,0,0,1.77085,-5.13035e-2,4.351838)"
|
||||
spreadMethod="reflect"
|
||||
x1="29.613848"
|
||||
y1="52.608921"
|
||||
x2="44.723549"
|
||||
y2="52.608921" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2713"
|
||||
id="linearGradient3108"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.21879,0,0,1.825981,-5.13035e-2,-1.012826)"
|
||||
spreadMethod="reflect"
|
||||
x1="29.093641"
|
||||
y1="46.357063"
|
||||
x2="29.093641"
|
||||
y2="47.295517" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2713"
|
||||
id="linearGradient3110"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.21879,0,0,1.825981,-5.13035e-2,-1.012826)"
|
||||
spreadMethod="reflect"
|
||||
x1="24.261463"
|
||||
y1="44.011002"
|
||||
x2="24.605862"
|
||||
y2="45.887836" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2713"
|
||||
id="linearGradient3112"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.21879,0,0,1.825981,-5.13035e-2,-1.012826)"
|
||||
spreadMethod="reflect"
|
||||
x1="17.681860"
|
||||
y1="60.433849"
|
||||
x2="17.425413"
|
||||
y2="62.779984" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2780"
|
||||
id="radialGradient3114"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.433337,0,0,1.434961,6.40989,-0.113137)"
|
||||
cx="20.360580"
|
||||
cy="22.546398"
|
||||
fx="20.360580"
|
||||
fy="22.546396"
|
||||
r="15.156592" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2780"
|
||||
id="radialGradient3116"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.500069,0,0,1.675192,5.00297,-5.108149)"
|
||||
cx="20.360580"
|
||||
cy="22.546398"
|
||||
fx="20.360580"
|
||||
fy="22.546396"
|
||||
r="15.156592" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2780"
|
||||
id="radialGradient3118"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.621397,0,0,1.882058,2.388831,-9.409409)"
|
||||
cx="20.360580"
|
||||
cy="22.546398"
|
||||
fx="20.360580"
|
||||
fy="22.546396"
|
||||
r="15.156592" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2780"
|
||||
id="radialGradient3120"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.433337,0,0,1.434961,6.40989,-0.113137)"
|
||||
cx="20.360580"
|
||||
cy="22.546398"
|
||||
fx="20.360580"
|
||||
fy="22.546396"
|
||||
r="15.156592" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2780"
|
||||
id="radialGradient3122"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.500069,0,0,1.675192,5.00297,-5.108149)"
|
||||
cx="20.360580"
|
||||
cy="22.546398"
|
||||
fx="20.360580"
|
||||
fy="22.546396"
|
||||
r="15.156592" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2780"
|
||||
id="radialGradient3124"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.621397,0,0,1.882058,2.388831,-9.409409)"
|
||||
cx="20.360580"
|
||||
cy="22.546398"
|
||||
fx="20.360580"
|
||||
fy="22.546396"
|
||||
r="15.156592" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2780"
|
||||
id="linearGradient3126"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.136116,0,0,1.825981,2.348697,-1.012826)"
|
||||
spreadMethod="pad"
|
||||
x1="26.974447"
|
||||
y1="68.680031"
|
||||
x2="26.974447"
|
||||
y2="44.981197" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2780"
|
||||
id="linearGradient3130"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.136116,0,0,1.825981,-87.401303,-67.012826)"
|
||||
spreadMethod="pad"
|
||||
x1="26.974447"
|
||||
y1="68.680031"
|
||||
x2="26.974447"
|
||||
y2="44.981197" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2713"
|
||||
id="linearGradient3142"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.21879,0,0,1.825981,-54.801304,-67.512826)"
|
||||
spreadMethod="reflect"
|
||||
x1="17.681860"
|
||||
y1="60.433849"
|
||||
x2="17.425413"
|
||||
y2="62.779984" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2713"
|
||||
id="linearGradient3145"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.21879,0,0,1.825981,-70.051304,-58.262826)"
|
||||
spreadMethod="reflect"
|
||||
x1="24.261463"
|
||||
y1="44.011002"
|
||||
x2="24.605862"
|
||||
y2="45.887836" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2713"
|
||||
id="linearGradient3148"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.21879,0,0,1.825981,-62.551304,-52.512826)"
|
||||
spreadMethod="reflect"
|
||||
x1="29.093641"
|
||||
y1="46.357063"
|
||||
x2="29.093641"
|
||||
y2="47.295517" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3057"
|
||||
id="radialGradient4946"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(7.531304,0,0,0.53795,-15.775652,-129.52565)"
|
||||
cx="8.0178375"
|
||||
cy="231.98276"
|
||||
fx="8.0178375"
|
||||
fy="231.98276"
|
||||
r="7.4833150" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3057"
|
||||
id="radialGradient4949"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(7.531304,0,0,0.672437,-18.025652,-149.23087)"
|
||||
cx="8.0178375"
|
||||
cy="231.98276"
|
||||
fx="8.0178375"
|
||||
fy="231.98276"
|
||||
r="7.4833150" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3057"
|
||||
id="radialGradient4952"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(7.531304,0,0,0.53795,-11.275652,-137.01283)"
|
||||
cx="8.0178375"
|
||||
cy="231.98276"
|
||||
fx="8.0178375"
|
||||
fy="231.98276"
|
||||
r="7.4833150" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2834"
|
||||
id="radialGradient4955"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-2.846279,0,0,2.087943,139.5254,-3.586178)"
|
||||
cx="21.595108"
|
||||
cy="8.9813547"
|
||||
fx="21.595108"
|
||||
fy="8.9813547"
|
||||
r="6.0678878" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2834"
|
||||
id="radialGradient4958"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(3.085042,0,0,2.052895,-15.9848,-3.14928)"
|
||||
cx="21.595108"
|
||||
cy="8.9813547"
|
||||
fx="21.595108"
|
||||
fy="8.9813547"
|
||||
r="6.0678878" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2834"
|
||||
id="radialGradient4974"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-2.366562,0,0,1.726511,129.1226,-0.112925)"
|
||||
cx="21.595108"
|
||||
cy="8.9813547"
|
||||
fx="21.595108"
|
||||
fy="8.9813547"
|
||||
r="6.0678878" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2834"
|
||||
id="radialGradient4977"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.366562,0,0,1.726511,-0.404355,-1.2826e-2)"
|
||||
cx="21.595108"
|
||||
cy="8.9813547"
|
||||
fx="21.595108"
|
||||
fy="8.9813547"
|
||||
r="6.0678878" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2834"
|
||||
id="linearGradient6992"
|
||||
x1="-229"
|
||||
y1="36.5"
|
||||
x2="-134"
|
||||
y2="36.5"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2834"
|
||||
id="radialGradient7002"
|
||||
cx="-118.5"
|
||||
cy="-41"
|
||||
fx="-118.5"
|
||||
fy="-41"
|
||||
r="30.5"
|
||||
gradientTransform="matrix(1,0,0,0.655738,0,-14.11475)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2834"
|
||||
id="radialGradient7014"
|
||||
cx="-35"
|
||||
cy="-163"
|
||||
fx="-35"
|
||||
fy="-163"
|
||||
r="59"
|
||||
gradientTransform="matrix(1,0,0,0.576271,0,-69.0678)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<g
|
||||
id="g5908">
|
||||
<g
|
||||
id="g5889"
|
||||
style="fill:#989898;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:2.4;stroke-miterlimit:4;stroke-dasharray:none">
|
||||
<path
|
||||
style="fill:#989898;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect2723"
|
||||
d="M 64.359126,2 C 44.287226,2 28.128259,18.158966 28.128259,38.230867 L 28.128259,78.487385 L 38.192389,78.487385 L 38.192389,38.230867 C 38.192389,23.734494 49.862754,12.06413 64.359126,12.06413 C 78.855498,12.06413 90.525863,23.734494 90.525863,38.230867 L 90.525863,78.487385 L 100.58999,78.487385 L 100.58999,38.230867 C 100.58999,18.158966 84.431026,2 64.359126,2 z " />
|
||||
</g>
|
||||
<g
|
||||
id="g4928"
|
||||
style="fill:#edbb15;fill-opacity:1;stroke:#000000;stroke-width:2.8;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
transform="translate(0,-0.25)">
|
||||
<rect
|
||||
y="57.359127"
|
||||
x="24.102608"
|
||||
width="80.513039"
|
||||
style="fill:#edbb15;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
ry="0.5"
|
||||
rx="0.49999997"
|
||||
id="rect1941"
|
||||
height="66.259109" />
|
||||
</g>
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="5" y="11" width="14" height="10" rx="2"/>
|
||||
<path d="M9 11V8a3 3 0 0 1 6 0v3"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 255 B |
|
|
@ -1,368 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg2646"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
version="1.0"
|
||||
sodipodi:docname="icon_not_ready_start.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<defs
|
||||
id="defs2648">
|
||||
<linearGradient
|
||||
id="linearGradient3169">
|
||||
<stop
|
||||
style="stop-color:#0000ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3171" />
|
||||
<stop
|
||||
style="stop-color:#000067;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3173" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4766">
|
||||
<stop
|
||||
style="stop-color:#784421;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4768" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4770" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4758">
|
||||
<stop
|
||||
style="stop-color:#a05a2c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4760" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4762" />
|
||||
</linearGradient>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective2654" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3508"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3510"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3512"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3514"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3516"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3518"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3520"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3522"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3524"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2442"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2444"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2446"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2470"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2472"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2474"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2476"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2478"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2480"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2482"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2484"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2486"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2488"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2490"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2492"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.625"
|
||||
inkscape:cx="-7.5402943"
|
||||
inkscape:cy="36.374705"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1028"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata2651">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
style="display:inline" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Pfeil"
|
||||
style="display:inline">
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.37689075;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="path3018"
|
||||
sodipodi:cx="-25.967213"
|
||||
sodipodi:cy="12.852459"
|
||||
sodipodi:rx="9.04918"
|
||||
sodipodi:ry="9.04918"
|
||||
d="m -16.918033,12.852459 a 9.04918,9.04918 0 1 1 -18.09836,0 9.04918,9.04918 0 1 1 18.09836,0 z"
|
||||
transform="matrix(3.392487,0,0,3.392487,120.35572,-11.470653)" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
|
||||
d="M 12.146996,18.3904 25.952237,32.195642 12.146996,46.000885 18.521547,52.375436 32.326789,38.570194 46.132032,52.375436 52.506582,46.000885 38.701341,32.195642 52.506582,18.3904 46.132032,12.015849 32.326789,25.82109 18.521547,12.015849 12.146996,18.3904 z"
|
||||
id="rect3548"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M6 6l12 12"/>
|
||||
<path d="M18 6L6 18"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 214 B |
|
|
@ -1 +1,4 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M535.6 85.7C513.7 63.8 478.3 63.8 456.4 85.7L432 110.1L529.9 208L554.3 183.6C576.2 161.7 576.2 126.3 554.3 104.4L535.6 85.7zM236.4 305.7C230.3 311.8 225.6 319.3 222.9 327.6L193.3 416.4C190.4 425 192.7 434.5 199.1 441C205.5 447.5 215 449.7 223.7 446.8L312.5 417.2C320.7 414.5 328.2 409.8 334.4 403.7L496 241.9L398.1 144L236.4 305.7zM160 128C107 128 64 171 64 224L64 480C64 533 107 576 160 576L416 576C469 576 512 533 512 480L512 384C512 366.3 497.7 352 480 352C462.3 352 448 366.3 448 384L448 480C448 497.7 433.7 512 416 512L160 512C142.3 512 128 497.7 128 480L128 224C128 206.3 142.3 192 160 192L256 192C273.7 192 288 177.7 288 160C288 142.3 273.7 128 256 128L160 128z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M11 4H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5"/>
|
||||
<path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4z"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 899 B After Width: | Height: | Size: 299 B |
|
|
@ -1,123 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg2"
|
||||
inkscape:version="0.47 r22583"
|
||||
sodipodi:docname="pencil.svg">
|
||||
<metadata
|
||||
id="metadata18">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="752"
|
||||
id="namedview16"
|
||||
showgrid="false"
|
||||
inkscape:zoom="38.985767"
|
||||
inkscape:cx="49.593625"
|
||||
inkscape:cy="9.752988"
|
||||
inkscape:window-x="-4"
|
||||
inkscape:window-y="-3"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<defs
|
||||
id="defs4">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 32 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="64 : 32 : 1"
|
||||
inkscape:persp3d-origin="32 : 21.333333 : 1"
|
||||
id="perspective20" />
|
||||
</defs>
|
||||
<path
|
||||
style="fill:#f2f2f2;stroke:black;stroke-width:0.36091354;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4310"
|
||||
d="M 10.735636,2.7007755 L 10.735636,59.759195 L 47.991073,59.759195 L 53.259135,54.575403 L 53.259135,2.7007755 L 10.735636,2.7007755 z" />
|
||||
<path
|
||||
style="opacity:0.43930634;fill:black;stroke:none"
|
||||
id="rect4314-9-2"
|
||||
d="M 47.539263,54.178486 L 53.43341,54.178486 L 47.539263,59.914352 L 47.539263,54.178486 z" />
|
||||
<path
|
||||
style="fill:#f2f2f2;stroke:black;stroke-width:0.33989298;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4314-9-5"
|
||||
d="M 48.080899,54.683517 L 53.016926,54.683517 L 48.080899,59.569868 L 48.080899,54.683517 z" />
|
||||
<path
|
||||
style="opacity:0.43930634;fill:black;stroke:none"
|
||||
id="rect4120-3"
|
||||
d="M 7.8062475,55.039312 L 7.8339835,55.072982 L 4.5689682,57.65671 L 5.2398545,58.476426 L 6.3020905,59.774252 L 6.9450675,60.559879 L 10.210081,57.976151 L 35.079771,38.295796 L 35.107506,38.329466 L 37.205296,34.249681 L 32.67559,35.358116 L 7.8059005,55.03861 z" />
|
||||
<rect
|
||||
style="fill:#fc0;stroke:black;stroke-width:0.28297317;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4120"
|
||||
transform="matrix(0.78188456,-0.62342324,0.63622425,0.77150419,0,0)"
|
||||
y="46.463638"
|
||||
x="-29.50437"
|
||||
height="3.7814219"
|
||||
width="31.701616" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;stroke:black;stroke-width:0.28297317;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4122"
|
||||
transform="matrix(0.78188456,-0.62342324,0.63622425,0.77150419,0,0)"
|
||||
y="46.477345"
|
||||
x="-33.674004"
|
||||
height="3.7620518"
|
||||
width="4.171114" />
|
||||
<path
|
||||
style="fill:#ffe680;stroke:black;stroke-width:0.28295398;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4124"
|
||||
d="M 31.271515,34.459836 L 35.787845,33.312261 L 33.712851,37.420244 L 31.271515,34.459836 z" />
|
||||
<path
|
||||
style="fill:black;stroke:black;stroke-width:0.28295398;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4127"
|
||||
d="M 34.451031,33.663829 L 35.778335,33.329236 L 35.171353,34.537276 L 34.451031,33.663829 z" />
|
||||
<rect
|
||||
style="fill:#333;stroke:black;stroke-width:0.28297317;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4122-4"
|
||||
transform="matrix(0.78188456,-0.62342324,0.63622425,0.77150419,0,0)"
|
||||
y="47.533978"
|
||||
x="-33.669418"
|
||||
height="1.698899"
|
||||
width="4.171114" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;stroke:black;stroke-width:0.28297317;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4122-8"
|
||||
transform="matrix(0.78188456,-0.62342324,0.63622425,0.77150419,0,0)"
|
||||
y="49.239918"
|
||||
x="-33.669418"
|
||||
height="1.0045688"
|
||||
width="4.171114" />
|
||||
<rect
|
||||
style="fill:#a80;stroke:black;stroke-width:0.28297317;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4122-4-7"
|
||||
transform="matrix(0.78188456,-0.62342324,0.63622425,0.77150419,0,0)"
|
||||
y="47.53389"
|
||||
x="-29.508781"
|
||||
height="1.698899"
|
||||
width="31.643009" />
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M12 20h9"/>
|
||||
<path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4z"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 250 B |
|
|
@ -1,24 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="64" height="64">
|
||||
<g transform="matrix(0 1 -1 0 99.465813 0)" opacity="0.7">
|
||||
<path fill="#000000" fill-rule="evenodd" clip-rule="evenodd"
|
||||
stroke="#ffffff"
|
||||
stroke-width="4"
|
||||
stroke-linejoin="round"
|
||||
stroke-linecap="round"
|
||||
d="M65.5 62
|
||||
L78 49
|
||||
C73.5 44.5 69.5 42 63 44
|
||||
L45 31 C47 25 46 22 41.5 18
|
||||
L19 41.5
|
||||
C23 45.5 25 46.5 31 45
|
||||
L44 62.5
|
||||
C42.3 69 45 73.5 49 78
|
||||
L61.5 65.5
|
||||
L84 87
|
||||
L87 87
|
||||
L87.5 86.5
|
||||
L87.5 83.5 Z" />
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M9 4h6l-1 6 3 3v2H7v-2l3-3z"/>
|
||||
<path d="M12 15v6"/>
|
||||
</svg>
|
||||
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 736 B After Width: | Height: | Size: 229 B |
|
|
@ -1,142 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64px"
|
||||
height="64px"
|
||||
id="svg2508"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
sodipodi:docname="icon_player.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs2510">
|
||||
<linearGradient
|
||||
id="linearGradient5717">
|
||||
<stop
|
||||
style="stop-color:#003580;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop5719" />
|
||||
<stop
|
||||
id="stop5727"
|
||||
offset="0.25297618"
|
||||
style="stop-color:#055897;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5725"
|
||||
offset="0.5"
|
||||
style="stop-color:#00a4ff;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5733"
|
||||
offset="0.75"
|
||||
style="stop-color:#055897;stop-opacity:1;" />
|
||||
<stop
|
||||
style="stop-color:#003580;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop5721" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5717"
|
||||
id="linearGradient5723"
|
||||
x1="339.93985"
|
||||
y1="482.58844"
|
||||
x2="459.27341"
|
||||
y2="355.50766"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,0.1263349,-0.1263349,0,74.367722,-7.5042832)" />
|
||||
<linearGradient
|
||||
id="linearGradient3234">
|
||||
<stop
|
||||
style="stop-color:#6f6f6f;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3236" />
|
||||
<stop
|
||||
id="stop3242"
|
||||
offset="0.47999999"
|
||||
style="stop-color:#e6e6e6;stop-opacity:1;" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0.5"
|
||||
id="stop3244" />
|
||||
<stop
|
||||
id="stop3286"
|
||||
offset="0.75"
|
||||
style="stop-color:#bebebe;stop-opacity:1;" />
|
||||
<stop
|
||||
style="stop-color:#494949;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3238" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3234"
|
||||
id="linearGradient5120"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(8.9332267e-2,8.9332267e-2,8.9332267e-2,-8.9332267e-2,-16.525693,40.126552)"
|
||||
x1="202.99225"
|
||||
y1="395.23221"
|
||||
x2="251.27765"
|
||||
y2="395.23221" />
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 32 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="64 : 32 : 1"
|
||||
inkscape:persp3d-origin="32 : 21.333333 : 1"
|
||||
id="perspective2516" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.7781746"
|
||||
inkscape:cx="35.570639"
|
||||
inkscape:cy="33.231713"
|
||||
inkscape:current-layer="g2536"
|
||||
showgrid="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="725"
|
||||
inkscape:window-x="619"
|
||||
inkscape:window-y="35"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata2513">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer">
|
||||
<g
|
||||
id="g2536"
|
||||
transform="translate(-0.1818183,-3.0952293e-8)">
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.4920001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:60.01653385"
|
||||
d="m 60.100711,4.0811082 -8.925773,4.066985 C 41.14173,19.502755 31.186489,31.772714 19.035138,42.39632 16.923235,39.989095 14.162681,36.349247 12.592568,33.629733 L 7.4098614,38.84843 c 0,0 4.1855936,1.798155 5.3626626,2.627344 1.177067,0.829192 3.640464,3.136411 3.640464,3.136411 0,0 -6.9973489,9.844274 -12.8181741,11.40396 -1.8723058,0.501682 4.0691751,6.443164 4.5708593,4.570859 1.5576526,-5.813242 11.1468308,-13.589562 11.1468308,-13.589562 0,0 2.672321,3.126813 3.501514,4.30388 0.82919,1.177069 2.519371,5.470634 2.519371,5.470634 L 30.552085,51.58925 C 27.830216,50.017778 24.343721,47.501755 21.950055,45.40381 32.445673,33.693842 43.199214,24.522178 56.033726,13.00688 z"
|
||||
id="path5116"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccscsscsccccc" />
|
||||
</g>
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M14.5 17.5 3 6V3h3l11.5 11.5"/>
|
||||
<path d="M13 19l6-6"/>
|
||||
<path d="M16 16l4 4"/>
|
||||
<path d="M19 21l2-2"/>
|
||||
<path d="M5 14l4 4"/>
|
||||
<path d="M7 17l-3 3"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 331 B |
|
|
@ -1,81 +1,3 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="500"
|
||||
height="500"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
sodipodi:docname="icon_ready_start.svg">
|
||||
<defs
|
||||
id="defs4">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective10" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4339754"
|
||||
inkscape:cx="281.46845"
|
||||
inkscape:cy="299.09369"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="1178"
|
||||
inkscape:window-x="1912"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-552.36218)">
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#0dc700;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-opacity:1;stroke-width:5.46761148;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path2984"
|
||||
sodipodi:cx="-137.08441"
|
||||
sodipodi:cy="104.52625"
|
||||
sodipodi:rx="182.45049"
|
||||
sodipodi:ry="182.45049"
|
||||
d="m 45.366074,104.52625 c 0,100.76462 -81.685865,182.45049 -182.450484,182.45049 -100.76462,0 -182.45049,-81.68587 -182.45049,-182.45049 0,-100.7646178 81.68587,-182.450482 182.45049,-182.450482 100.764619,0 182.450484,81.6858642 182.450484,182.450482 z"
|
||||
transform="matrix(1.3351351,0,0,1.3351351,434.51202,663.29215)" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 375.18246,681.4936 -180.66822,156.20036 -62.11391,-71.84189 -57.207882,49.50276 110.831342,128.16069 0.15088,-0.11694 0.7485,0.87896 237.72517,-205.58619 -49.46594,-57.19777 z"
|
||||
id="rect3754"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M4 12l5 5L20 6"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 193 B |
|
|
@ -1,7 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
|
||||
viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
|
||||
<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>
|
||||
<g><path d="M586.9,373.6l95.6-84.4c-49.6-39.2-129.4-79.1-198.2-79.1c-134.9,0-248.2,90.5-280.2,212.8L10.6,374.5C64.4,168.3,255.2,15.8,482.5,15.8c126.7,0,258.8,63.7,345.4,141.4l90.8-80.1L990,479.6L586.9,373.6z M317.5,710.8c49.6,39.2,129.4,79.1,198.2,79.1c134.9,0,248.2-90.5,280.2-212.8l193.5,48.5c-53.7,206.2-244.6,358.7-471.9,358.7c-126.7,0-258.8-63.7-345.4-141.4l-90.8,80.1L10,520.4l403.1,106L317.5,710.8z"/></g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M20 12a8 8 0 1 1-2.3-5.7"/>
|
||||
<path d="M20 4v5h-5"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 797 B After Width: | Height: | Size: 228 B |
|
|
@ -1,356 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg2646"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
version="1.0"
|
||||
sodipodi:docname="deck_editor_remove_row.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<defs
|
||||
id="defs2648">
|
||||
<linearGradient
|
||||
id="linearGradient3169">
|
||||
<stop
|
||||
style="stop-color:#0000ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3171" />
|
||||
<stop
|
||||
style="stop-color:#000067;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3173" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4766">
|
||||
<stop
|
||||
style="stop-color:#784421;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4768" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4770" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4758">
|
||||
<stop
|
||||
style="stop-color:#a05a2c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4760" />
|
||||
<stop
|
||||
style="stop-color:#3d2210;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4762" />
|
||||
</linearGradient>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective2654" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3508"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3510"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3512"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3514"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3516"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3518"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient3520"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient3522"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient3524"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2442"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2444"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2446"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2470"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2472"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2474"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2476"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2478"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2480"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2482"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2484"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2486"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4758"
|
||||
id="linearGradient2488"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="590.62201"
|
||||
y1="434.7522"
|
||||
x2="698.54004"
|
||||
y2="517.79218" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4766"
|
||||
id="linearGradient2490"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9650128,0,0,0.9948433,-449.70565,-312.80927)"
|
||||
x1="661.24402"
|
||||
y1="602.90814"
|
||||
x2="431.5"
|
||||
y2="201.5482" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3169"
|
||||
id="radialGradient2492"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
|
||||
cx="120.07376"
|
||||
cy="56.138123"
|
||||
fx="120.07376"
|
||||
fy="56.138123"
|
||||
r="82.790039" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.625"
|
||||
inkscape:cx="-27.27273"
|
||||
inkscape:cy="30.210771"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1272"
|
||||
inkscape:window-height="723"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata2651">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
style="display:inline" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Pfeil"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="fill:#ff7672;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
|
||||
d="M 6.433227,14.50946 L 23.923767,32 L 6.433227,49.490541 L 14.50946,57.566773 L 32,40.076233 L 49.490541,57.566773 L 57.566773,49.490541 L 40.076233,32 L 57.566773,14.50946 L 49.490541,6.433227 L 32,23.923767 L 14.50946,6.433227 L 6.433227,14.50946 z"
|
||||
id="rect3548" />
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M6 6l12 12"/>
|
||||
<path d="M18 6L6 18"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 216 B |
|
|
@ -1,10 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="1200pt" height="1200pt" version="1.1" viewBox="0 0 1200 1200" xmlns="http://www.w3.org/2000/svg">
|
||||
<path transform="scale(50)" d="m17 16h4v-8h-4" fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="2"/>
|
||||
<path transform="scale(50)" d="m12 8h-9v8h9" fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="2"/>
|
||||
<path transform="scale(50)" d="m6 12h5" fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="2"/>
|
||||
<path transform="scale(50)" d="m20 4h-2c-1.1 0-2 0.9-2 2v12c0 1.1 0.9 2 2 2h2" fill="none" stroke="#000"
|
||||
stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
||||
<path transform="scale(50)" d="m12 20h2c1.1 0 2-0.9 2-2v-12c0-1.1-0.9-2-2-2h-2" fill="none" stroke="#000"
|
||||
stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round">
|
||||
<path d="M17 16h4V8h-4"/>
|
||||
<path d="M12 8H3v8h9"/>
|
||||
<path d="M6 12h5"/>
|
||||
<path d="M20 4h-2c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h2"/>
|
||||
<path d="M12 20h2c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-2"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 875 B After Width: | Height: | Size: 335 B |
|
|
@ -1 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M384 96L512 96C529.7 96 544 110.3 544 128C544 145.7 529.7 160 512 160L398.4 160C393.2 185.8 375.5 207.1 352 217.3L352 512L512 512C529.7 512 544 526.3 544 544C544 561.7 529.7 576 512 576L128 576C110.3 576 96 561.7 96 544C96 526.3 110.3 512 128 512L288 512L288 217.3C264.5 207 246.8 185.7 241.6 160L128 160C110.3 160 96 145.7 96 128C96 110.3 110.3 96 128 96L256 96C270.6 76.6 293.8 64 320 64C346.2 64 369.4 76.6 384 96zM439.6 384L584.4 384L512 259.8L439.6 384zM512 480C449.1 480 396.8 446 386 401.1C383.4 390.1 387 378.8 392.7 369L487.9 205.8C492.9 197.2 502.1 192 512 192C521.9 192 531.1 197.3 536.1 205.8L631.3 369C637 378.8 640.6 390.1 638 401.1C627.2 445.9 574.9 480 512 480zM126.8 259.8L54.4 384L199.3 384L126.8 259.8zM.9 401.1C-1.7 390.1 1.9 378.8 7.6 369L102.8 205.8C107.8 197.2 117 192 126.9 192C136.8 192 146 197.3 151 205.8L246.2 369C251.9 378.8 255.5 390.1 252.9 401.1C242.1 445.9 189.8 480 126.9 480C64 480 11.7 446 .9 401.1z"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB |
|
|
@ -1,6 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="52pt" height="52pt" viewBox="0 0 52 52" version="1.1">
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:#000000;fill-opacity:1;" d="M 25.605469 0.125 C 25.605469 0.125 23.265625 3.140625 23.265625 4.433594 C 23.265625 5.316406 23.765625 6.070313 24.5 6.464844 C 23.898438 6.65625 23.375 6.992188 22.960938 7.449219 C 22.011719 6.640625 20.628906 5.910156 18.710938 5.910156 C 16.640625 5.910156 14.863281 6.753906 13.355469 7.507813 C 12.601563 7.886719 11.925781 8.25 11.324219 8.496094 C 10.964844 8.09375 10.425781 7.878906 9.847656 7.878906 C 8.75 7.878906 7.878906 8.75 7.878906 9.847656 C 7.878906 10.949219 8.75 11.816406 9.847656 11.816406 C 10.757813 11.816406 11.519531 11.234375 11.757813 10.402344 C 12.578125 10.078125 13.386719 9.648438 14.21875 9.234375 C 15.671875 8.507813 17.179688 7.878906 18.710938 7.878906 C 20.496094 7.878906 21.519531 8.679688 22.097656 9.355469 C 22.074219 9.519531 22.035156 9.6875 22.035156 9.847656 C 22.035156 11.816406 23.636719 13.417969 25.605469 13.417969 C 27.574219 13.417969 29.175781 11.816406 29.175781 9.847656 C 29.175781 9.6875 29.136719 9.519531 29.113281 9.355469 C 29.691406 8.679688 30.714844 7.878906 32.5 7.878906 C 34.03125 7.878906 35.539063 8.507813 36.992188 9.234375 C 37.824219 9.648438 38.632813 10.078125 39.457031 10.402344 C 39.695313 11.234375 40.457031 11.816406 41.363281 11.816406 C 42.464844 11.816406 43.332031 10.949219 43.332031 9.847656 C 43.332031 8.75 42.464844 7.878906 41.363281 7.878906 C 40.785156 7.878906 40.246094 8.09375 39.886719 8.496094 C 39.285156 8.25 38.609375 7.886719 37.855469 7.507813 C 36.347656 6.753906 34.570313 5.910156 32.5 5.910156 C 30.585938 5.910156 29.199219 6.640625 28.253906 7.449219 C 27.835938 6.992188 27.3125 6.65625 26.714844 6.464844 C 27.445313 6.070313 27.945313 5.316406 27.945313 4.433594 C 27.945313 3.140625 25.605469 0.125 25.605469 0.125 Z M 9.539063 13.234375 C 9.25 13.332031 9.023438 13.558594 8.925781 13.847656 L 2.277344 31.515625 L 0 31.515625 C 1.445313 35.578125 5.285156 38.53125 9.847656 38.53125 C 14.410156 38.53125 18.25 35.578125 19.695313 31.515625 L 17.417969 31.515625 L 10.773438 13.847656 C 10.601563 13.402344 10.132813 13.140625 9.664063 13.234375 C 9.625 13.234375 9.578125 13.234375 9.539063 13.234375 Z M 41.054688 13.234375 C 40.761719 13.332031 40.539063 13.558594 40.441406 13.847656 L 33.792969 31.515625 L 31.515625 31.515625 C 32.960938 35.578125 36.800781 38.53125 41.363281 38.53125 C 45.925781 38.53125 49.765625 35.578125 51.210938 31.515625 L 48.933594 31.515625 L 42.285156 13.847656 C 42.117188 13.402344 41.648438 13.140625 41.179688 13.234375 C 41.140625 13.234375 41.09375 13.234375 41.054688 13.234375 Z M 21.914063 15.757813 C 21.914063 17.082031 22.589844 18.242188 23.636719 18.898438 L 23.636719 41.980469 C 21.429688 42.773438 19.796875 44.816406 19.695313 47.273438 L 15.757813 47.273438 C 14.671875 47.273438 13.789063 48.15625 13.789063 49.242188 L 13.789063 51.210938 L 37.425781 51.210938 L 37.425781 49.242188 C 37.425781 48.15625 36.539063 47.273438 35.453125 47.273438 L 31.515625 47.273438 C 31.414063 44.816406 29.785156 42.773438 27.574219 41.980469 L 27.574219 18.898438 C 28.621094 18.242188 29.300781 17.082031 29.300781 15.757813 Z M 9.847656 17.050781 L 15.328125 31.515625 L 4.371094 31.515625 Z M 41.363281 17.050781 L 46.84375 31.515625 L 35.886719 31.515625 Z "/>
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M12 3v18"/>
|
||||
<path d="M5 7h14"/>
|
||||
<path d="M5 7l-3 6a3 3 0 0 0 6 0z"/>
|
||||
<path d="M19 7l3 6a3 3 0 0 1-6 0z"/>
|
||||
<path d="M8 21h8"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 309 B |
|
|
@ -1 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M32 176C32 134.5 63.6 100.4 104 96.4L104 96L384 96C437 96 480 139 480 192L480 368L304 368C264.2 368 232 400.2 232 440L232 500C232 524.3 212.3 544 188 544C163.7 544 144 524.3 144 500L144 272L80 272C53.5 272 32 250.5 32 224L32 176zM268.8 544C275.9 530.9 280 515.9 280 500L280 440C280 426.7 290.7 416 304 416L552 416C565.3 416 576 426.7 576 440L576 464C576 508.2 540.2 544 496 544L268.8 544zM112 144C94.3 144 80 158.3 80 176L80 224L144 224L144 176C144 158.3 129.7 144 112 144z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"/>
|
||||
<path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"/>
|
||||
<path d="M8 7h8"/>
|
||||
<path d="M8 11h8"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 704 B After Width: | Height: | Size: 332 B |
|
|
@ -1,198 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
sodipodi:docname="icon_search_black.svg">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3709">
|
||||
<stop
|
||||
style="stop-color:#4d4d4d;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3711" />
|
||||
<stop
|
||||
style="stop-color:#4d4d4d;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3713" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3699">
|
||||
<stop
|
||||
style="stop-color:#ececec;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3701" />
|
||||
<stop
|
||||
style="stop-color:#ececec;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3703" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3632">
|
||||
<stop
|
||||
style="stop-color:#c87137;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3634" />
|
||||
<stop
|
||||
style="stop-color:#c87137;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3636" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3622">
|
||||
<stop
|
||||
style="stop-color:#f9f9f9;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3624" />
|
||||
<stop
|
||||
style="stop-color:#f9f9f9;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3626" />
|
||||
</linearGradient>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective10" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3622"
|
||||
id="linearGradient3628"
|
||||
x1="30.59761"
|
||||
y1="8.9243031"
|
||||
x2="30.59761"
|
||||
y2="21.545816"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3632"
|
||||
id="linearGradient3638"
|
||||
x1="28.430279"
|
||||
y1="47.808765"
|
||||
x2="29.960159"
|
||||
y2="47.808765"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<inkscape:perspective
|
||||
id="perspective3685"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3699"
|
||||
id="linearGradient3705"
|
||||
x1="29.215645"
|
||||
y1="1021.9559"
|
||||
x2="31.852083"
|
||||
y2="1021.9559"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3709"
|
||||
id="linearGradient3715"
|
||||
x1="22.288248"
|
||||
y1="35.505978"
|
||||
x2="49.488647"
|
||||
y2="49.106178"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3632"
|
||||
id="linearGradient3730"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="28.430279"
|
||||
y1="47.808765"
|
||||
x2="29.960159"
|
||||
y2="47.808765" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3699"
|
||||
id="linearGradient3732"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="29.215645"
|
||||
y1="1021.9559"
|
||||
x2="31.852083"
|
||||
y2="1021.9559" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.84375"
|
||||
inkscape:cx="6.0725518"
|
||||
inkscape:cy="32"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="g3717"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1028"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-988.36218)">
|
||||
<g
|
||||
id="g3717"
|
||||
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,729.31175,279.31708)">
|
||||
<path
|
||||
transform="matrix(1.7216859,0,0,1.7216859,-37.751505,955.72849)"
|
||||
d="m 49.338646,35.505978 a 13.450199,13.450199 0 1 1 -26.900398,0 13.450199,13.450199 0 1 1 26.900398,0 z"
|
||||
sodipodi:ry="13.450199"
|
||||
sodipodi:rx="13.450199"
|
||||
sodipodi:cy="35.505978"
|
||||
sodipodi:cx="35.888447"
|
||||
id="path2816"
|
||||
style="fill:#222326;fill-opacity:0;stroke:#222326;stroke-width:1.90745997;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
transform="matrix(-0.08671958,-1.1164509,1.1164509,-0.08671958,2.9138372,1039.7631)"
|
||||
d="m 18.613546,52.207172 a 2.5498009,12.302789 0 1 1 -5.099601,0 2.5498009,12.302789 0 1 1 5.099601,0 z"
|
||||
sodipodi:ry="12.302789"
|
||||
sodipodi:rx="2.5498009"
|
||||
sodipodi:cy="52.207172"
|
||||
sodipodi:cx="16.063745"
|
||||
id="path2826"
|
||||
style="fill:#222326;fill-opacity:1;stroke:#222326;stroke-width:0.30000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
sodipodi:type="arc" />
|
||||
</g>
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="10.5" cy="10.5" r="6.5"/>
|
||||
<path d="M15.5 15.5 21 21"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 237 B |
|
|
@ -1,280 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 12.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="133.078"
|
||||
id="Layer_1"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
sodipodi:docname="icon_settings.svg"
|
||||
sodipodi:version="0.32"
|
||||
space="preserve"
|
||||
style="overflow:visible;enable-background:new 0 0 132.882 133.078;"
|
||||
version="1.1"
|
||||
viewBox="0 0 132.882 133.078"
|
||||
width="132.882">
|
||||
<metadata
|
||||
id="metadata3">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:title>Ruota dentata grigia</dc:title>
|
||||
<dc:description />
|
||||
<dc:subject>
|
||||
<rdf:Bag>
|
||||
<rdf:li>unsorted</rdf:li>
|
||||
</rdf:Bag>
|
||||
</dc:subject>
|
||||
<dc:publisher>
|
||||
<cc:Agent
|
||||
rdf:about="http://www.openclipart.org/">
|
||||
<dc:title>Open Clip Art Library</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Architetto Francesco Rollandin</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:rights>
|
||||
<cc:Agent>
|
||||
<dc:title>Architetto Francesco Rollandin</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:rights>
|
||||
<dc:date />
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<cc:license
|
||||
rdf:resource="http://web.resource.org/cc/PublicDomain" />
|
||||
<dc:language>en</dc:language>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://web.resource.org/cc/PublicDomain">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs88" />
|
||||
<sodipodi:namedview
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
id="base"
|
||||
inkscape:current-layer="Layer_1"
|
||||
inkscape:cx="11.842486"
|
||||
inkscape:cy="69.252383"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-height="928"
|
||||
inkscape:window-width="1411"
|
||||
inkscape:window-x="191"
|
||||
inkscape:window-y="47"
|
||||
inkscape:zoom="5.4103608"
|
||||
pagecolor="#ffffff"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<g
|
||||
id="g3"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1">
|
||||
<radialGradient
|
||||
cx="66.5674"
|
||||
cy="66.3169"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="XMLID_5_"
|
||||
r="65.835">
|
||||
<stop
|
||||
id="stop6"
|
||||
offset="0"
|
||||
style="stop-color:#F8F8F8" />
|
||||
<stop
|
||||
id="stop8"
|
||||
offset="1"
|
||||
style="stop-color:#7F7F7F" />
|
||||
</radialGradient>
|
||||
<path
|
||||
d="M125.144,56.349c-3.771,0-7.545,0.045-11.314,0.186c-0.897-4.456-2.482-8.765-4.657-12.756 c-1.116-2.051-3.152-3.094-1.176-4.893c1.351-1.228,2.674-2.482,3.984-3.751c2.54-2.458,7.481-6.071,5.054-10.111 c-2.409-4.008-9.553-12.402-14.613-8.778c-3.259,2.332-6.025,5.805-8.753,8.728c-1.839,1.972-10.072-3.345-13.153-4.284 c-2.29-0.697-4.424-0.006-4.282-2.731c0.099-1.899,0.151-3.802,0.183-5.704c0.046-2.924,0.872-7.681-1.602-9.949 c-2.693-2.47-13.091-2.182-16.192-0.591c-2.902,1.487-2.505,5.529-2.49,8.222c0.011,2.005,0.038,4.011,0.09,6.017 c0.076,2.895,1.006,3.128-2.148,3.853c-4.414,1.016-8.685,2.631-12.661,4.795c-2.706,1.474-2.19,0.776-4.07-1.242 c-1.784-1.917-3.619-3.792-5.471-5.644c-5.942-5.942-11.491,1.433-15.473,6.153c-2.454,2.908-1.425,5.693,1.093,8.212 c1.554,1.552,3.121,3.095,4.703,4.618c3.003,2.895,2.475,2.563,0.439,6.089c-2.106,3.649-3.704,7.589-4.729,11.678 c-0.889,3.547-6.993,1.883-10.459,1.883c-8.083,0-6.575,7.183-6.646,13.097c-0.099,8.381,6.687,7.291,13.357,7.167 c3.019-0.057,3.419-1.006,4.392,2.141c0.679,2.203,1.527,4.354,2.533,6.43c0.999,2.063,2.151,4.05,3.442,5.944 c1.956,2.872-0.17,3.17-2.443,5.329c-2.402,2.283-7.031,5.432-7.215,9.075c-0.154,3.043,3.263,5.365,5.149,7.252 s4.212,5.316,7.26,5.158c3.995-0.206,7.724-5.77,10.257-8.424c1.112-1.164,2.211-2.339,3.291-3.532 c2.416,1.359,4.945,2.514,7.554,3.451c2.667,0.961,5.417,1.691,8.207,2.191c-0.196,2.286-0.295,4.58-0.357,6.873 c-0.093,3.384-1.316,9.583,1.551,12.215c2.403,2.205,7.079,1.192,10.013,1.252c2.549,0.054,6.151,0.456,7.717-2.1 c2.355-3.849,0.94-10.923,0.786-15.24c-0.107-2.931-1.017-3.003,2.18-3.832c3.045-0.79,6.019-1.861,8.864-3.205 c3.503-1.651,3.52-2.752,6.156,0.172c1.791,1.988,3.646,3.92,5.522,5.826c2.889,2.937,6.048,6.091,9.923,2.818 c2.688-2.271,7.617-6.12,8.636-9.61c1.223-4.195-4.952-8.343-7.479-10.767c-2.237-2.148-4.737-2.782-2.863-5.64 c1.603-2.441,2.973-5.036,4.082-7.737c0.839-2.045,1.528-4.15,2.061-6.296c2.411,0.156,4.826,0.234,7.239,0.275 c3.483,0.061,9.652,1.05,10.868-3.456C133.132,67.049,133.389,56.349,125.144,56.349 M65.631,84.78 c-10.628,0-20.194-8.436-20.194-19.325c0-10.889,9.565-19.324,20.194-19.324c10.627,0,20.195,8.435,20.195,19.324 C85.826,76.344,76.259,84.78,65.631,84.78"
|
||||
id="path10"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<linearGradient
|
||||
gradientTransform="matrix(776.0099 550.007 550.007 -776.0099 -66856.1797 490158.2813)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="XMLID_6_"
|
||||
x1="-241.1641"
|
||||
x2="-239.5807"
|
||||
y1="461.063"
|
||||
y2="461.063">
|
||||
<stop
|
||||
id="stop13"
|
||||
offset="0"
|
||||
style="stop-color:#FFFFFF" />
|
||||
<stop
|
||||
id="stop15"
|
||||
offset="1"
|
||||
style="stop-color:#000000" />
|
||||
</linearGradient>
|
||||
<path
|
||||
d="M66.287,1.853c2.222-0.034,4.739-0.403,6.857,0.365c3.572,1.299,2.531,7.112,2.485,9.961 c-0.025,1.531-1.121,6.786-0.321,8.029c0.813,1.265,9.244,2.709,11.056,3.537c6.891,3.14,5.463,4.316,10.604-1.013 c2.665-2.76,6.867-9.078,11.128-5.777c2.658,2.06,9.874,8.281,8.585,11.593c-1.303,3.346-5.354,6.176-7.92,8.567 c-2.921,2.722-3.367,1.872-1.364,5.159c2.313,3.799,4.064,7.936,5.156,12.25c0.605,2.394-0.082,2.838,2.033,2.802 c4.069-0.069,10.315-1.296,14.178,0.4c3.522,1.548,2.268,9.16,2.229,12.543c-0.096,8.456-12.104,5.645-17.898,5.283 c0.156,0.011-6.795,14.843-7.944,16.447c-0.547,0.763,7.359,7.556,8.381,8.538c4.944,4.761,2.824,7.329-1.513,11.69 c-6.039,6.069-7.887,5.521-13.935-0.731c-2.149-2.219-4.261-4.48-6.246-6.85c-0.521-0.625-6.012,2.776-6.994,3.185 c-1.476,0.614-8.901,1.845-9.535,2.872c-1.004,1.622,0.309,8.013,0.33,9.982c0.096,8.526-0.896,10.481-9.352,10.481 c-2.232,0-4.709,0.411-6.843-0.365c-4-1.453-2.523-9.013-2.438-12.174c0.04-1.498,1.174-6.406,0.431-7.654 c-0.568-0.956-8.392-2.117-9.829-2.669c-0.787-0.303-6.762-3.507-7.049-3.207c-1.525,1.591-3.051,3.181-4.578,4.771 c-1.979,2.064-5.734,7.388-8.932,7.289c-2.806-0.048-9.959-7.553-11.098-10.111c-2.792-6.279,10.07-9.389,10.988-13.959 c0.043-0.212-9.882-17.351-8.595-17.368c-3.593,0.05-7.317,0.41-10.899,0.153c-6.971,0-5.875-6.05-5.83-11.202 c-0.16-7.395,3.619-7.569,9.824-7.444c2.137,0.043,4.276,0.086,6.414,0.128c0.444,0.01,2.333-7.586,2.722-8.551 c1.339-3.326,3.101-6.425,5.146-9.363c0.438-0.629-1.932-2.346-2.398-2.799c-3.363-3.273-10.421-7.872-5.851-12.794 c2.096-2.259,6.541-7.985,9.6-7.985c3.747,0,8.376,6.755,10.672,9.161c3.036,3.181,6.353-1.095,10.14-2.528 c3.945-1.491,9.292-0.362,9.213-4.943c-0.058-3.255-0.396-6.637-0.172-9.884C56.925,1.449,61.375,1.775,66.287,1.853 M69.694,0.223 c-3.688,0-9.813-1.099-12.571,1.586c-3.116,3.085-1.696,10.736-1.63,14.678c0.059,3.6-3.022,2.813-6.17,3.854 c-1.466,0.484-9.462,4.621-10.028,4.025c-2.892-3.043-6.707-8.735-10.962-9.909c-4.166-1.15-7.581,3.806-10.172,6.478 c-5.742,5.518-4.111,8.898,0.979,13.844c1.579,1.533,3.153,3.07,4.737,4.598c-2.533,3.705-4.533,7.768-5.897,12.042 c-1.361,4.257-0.689,4.336-4.944,4.254c-2.461-0.048-5.048-0.305-7.504,0.003c-6.472,0.811-5.456,7.242-5.495,12.174 c-0.062,8.137,3.169,9.687,10.582,9.567c2.239-0.035,4.479-0.076,6.717-0.105c1.116,4.185,2.831,8.202,5.067,11.91 c1.376,2.284,3.278,2.844,1.032,4.902c-1.601,1.465-3.171,2.964-4.72,4.482c-2.292,2.248-5.735,5.252-4.299,8.88 c1.176,2.967,7.935,9.732,10.902,10.908c4.637,1.839,8.851-4.352,11.594-7.205c1.362-1.417,2.717-2.845,4.093-4.25 c3.94,2.146,8.163,3.761,12.527,4.799c3.048,0.725,2.151,0.836,2.018,3.6c-0.091,1.868-0.145,3.736-0.175,5.606 c-0.057,3.465-0.923,9.161,2.917,11.094c3.094,1.558,9.554,0.977,13.091,0.706c8.238-0.634,5.907-11.882,5.715-17.565 c-0.093-2.766-0.968-2.98,2.009-3.78c2.121-0.57,4.206-1.277,6.235-2.116c2.025-0.838,3.997-1.808,5.898-2.898 c1.049,1.227,2.131,2.424,3.23,3.604c4.327,4.647,9.567,12.294,15.874,6.219c2.729-2.633,8.092-6.614,8.172-10.478 c0-4.122-5.587-7.971-8.271-10.553c-2.079-1.999-3.72-2.262-2.068-4.844c2.22-3.474,3.976-7.236,5.207-11.169 c1.902-6.08,17.526,3.361,19.05-6.681c0.542-3.585,1.057-12.592-1.447-15.135c-2.997-3.071-10.253-1.718-14.098-1.652 c-3.809,0.065-3-2.746-4.229-6.091c-1.123-3.054-5.727-8.679-3.43-10.785c6.34-5.817,12.979-10.456,5.196-17.885 c-2.6-2.681-6.001-7.617-10.181-6.482c-3.963,1.077-7.582,6.327-10.301,9.135c-2.466,2.545-4.07,0.031-7.078-1.328 c-2.639-1.192-9.949-2.184-9.821-4.885C77.38,10.375,79.38,0.223,69.694,0.223"
|
||||
id="path17"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<linearGradient
|
||||
gradientTransform="matrix(0 -214.9991 -214.9991 0 102181.7813 -51529.3086)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="XMLID_7_"
|
||||
x1="-240.6104"
|
||||
x2="-239.069"
|
||||
y1="474.9624"
|
||||
y2="474.9624">
|
||||
<stop
|
||||
id="stop20"
|
||||
offset="0"
|
||||
style="stop-color:#FFFFFF" />
|
||||
<stop
|
||||
id="stop22"
|
||||
offset="1"
|
||||
style="stop-color:#000000" />
|
||||
</linearGradient>
|
||||
<path
|
||||
d="M44.65,65.457c0,26.066,41.962,26.066,41.962,0S44.65,39.39,44.65,65.457 M46.234,65.457 c0-24.025,38.794-24.025,38.794,0S46.234,89.482,46.234,65.457"
|
||||
id="path24"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<radialGradient
|
||||
cx="65.6309"
|
||||
cy="65.4565"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="XMLID_8_"
|
||||
r="34.9484">
|
||||
<stop
|
||||
id="stop27"
|
||||
offset="0"
|
||||
style="stop-color:#F3F3F3" />
|
||||
<stop
|
||||
id="stop29"
|
||||
offset="0.4367"
|
||||
style="stop-color:#F1F1F1" />
|
||||
<stop
|
||||
id="stop31"
|
||||
offset="0.594"
|
||||
style="stop-color:#EAEAEA" />
|
||||
<stop
|
||||
id="stop33"
|
||||
offset="0.7061"
|
||||
style="stop-color:#DEDEDE" />
|
||||
<stop
|
||||
id="stop35"
|
||||
offset="0.7968"
|
||||
style="stop-color:#CDCDCD" />
|
||||
<stop
|
||||
id="stop37"
|
||||
offset="0.8745"
|
||||
style="stop-color:#B7B7B7" />
|
||||
<stop
|
||||
id="stop39"
|
||||
offset="0.9419"
|
||||
style="stop-color:#9D9D9D" />
|
||||
<stop
|
||||
id="stop41"
|
||||
offset="1"
|
||||
style="stop-color:#7F7F7F" />
|
||||
</radialGradient>
|
||||
<path
|
||||
d="M65.631,31.895c-18.581,0-36.284,14.164-36.284,33.56c0,19.402,17.697,33.563,36.284,33.563 c18.586,0,36.283-14.16,36.283-33.563C101.914,46.058,84.212,31.895,65.631,31.895 M65.631,93.859 c-15.729,0-30.71-11.983-30.71-28.404c0-16.42,14.981-28.401,30.71-28.401c15.729,0,30.711,11.979,30.711,28.401 C96.343,81.877,81.362,93.859,65.631,93.859"
|
||||
id="path43"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M24.022,47.759c1.389-2.133,2.794-4.254,4.284-6.319C26.071,40.979,24.669,46.14,24.022,47.759 M107.988,19.272c-1.503-5.967-10.331,4.207-11.839,5.825c-0.454,0.487-3.053,4-3.867,3.761c-4.902-3.622-10.62-6.063-16.557-7.381 c-1.076,3.631,8.287,4.644,11.055,6.028c2.139,1.068,4.24,4.338,6.308,2.435c3.427-3.154,6.553-6.757,10.268-9.576 c0.894-0.678,5.101-1.062,4.814,0.303C108.109,20.202,108.049,19.738,107.988,19.272 M40.692,28.996 c3.305-2.111,6.968-3.595,10.795-4.437c2.593-0.569,6.13,0.171,5.04-3.526C53.526,21.596,39.653,24.832,40.692,28.996"
|
||||
id="path45"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M73.152,3.636c0,2.344-14.251,2.344-14.251,0S73.152,1.292,73.152,3.636"
|
||||
id="path47"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M66.03,128.431c-0.671,0-7.125-0.13-7.125,1.282c0,1.931,14.251,1.933,14.251,0 C73.155,128.301,66.701,128.431,66.03,128.431"
|
||||
id="path49"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M11.008,72.88c-0.671,0-7.125-0.131-7.125,1.282c0,1.916,14.251,1.913,14.251,0 C18.134,72.75,11.679,72.88,11.008,72.88"
|
||||
id="path51"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M121.58,72.88c-0.671,0-7.125-0.13-7.125,1.282c0,1.914,14.251,1.914,14.251,0 C128.706,72.75,122.252,72.88,121.58,72.88"
|
||||
id="path53"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M17.557,106.256c-1.294,0,2.25,4.292,2.338,4.391c1.444,1.629,4.758,5.852,7.256,5.852 c0.034,0.022-1.976-3.976-2.431-4.485C23.285,110.405,20.025,106.251,17.557,106.256"
|
||||
id="path55"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M94.355,104.674c-0.578,0,7.519,12.467,9.826,10.159C105.671,113.348,96.25,104.674,94.355,104.674"
|
||||
id="path57"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M26.671,16.666c1.05,1.051-9.306,11.41-10.357,10.358C15.267,25.972,25.62,15.62,26.671,16.666"
|
||||
id="path59"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M115.199,27.97c-1.964,0-11.219,9.358-10.206,10.408C106.838,40.223,115.24,27.97,115.199,27.97"
|
||||
id="path61"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M115.726,106.081c-1.962,0-11.194,9.419-10.205,10.408 C107.472,118.347,115.713,106.081,115.726,106.081"
|
||||
id="path63"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M37.346,106.081c-1.842,0-4.608,3.414-5.731,4.537c-0.465,0.462-4.612,5.885-4.463,5.881 C29.433,118.323,37.092,106.081,37.346,106.081"
|
||||
id="path65"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M27.347,115.672c-0.07,0.271-0.138,0.545-0.207,0.816C27.825,117.173,26.743,114.15,27.347,115.672"
|
||||
id="path67"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M17.435,58.462c0,1.339-12.324-0.53-12.924,1.248c-0.368,1.084-0.489,11.103-1.228,11.024 c-1.711-0.183-0.224-10.043-0.08-11.327C3.558,56.244,17.435,57.476,17.435,58.462"
|
||||
id="path69"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M23.478,100.129c-0.358,0.358-4.58,4.749-5.319,4.013c-0.977-0.977,8.35-10.312,9.332-9.33 C28.226,95.548,23.835,99.773,23.478,100.129"
|
||||
id="path71"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M128.573,58.66c0,1.19-14.846,1.19-14.846,0S128.573,57.47,128.573,58.66"
|
||||
id="path73"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M101.119,74.258c-7.886,24.178-41.95,33.291-60.554,15.481c0,3.725,7.864,8.189,10.455,9.559 c9.041,4.776,19.717,4.771,29.24,1.414C92.282,96.476,99.202,86.506,101.119,74.258 M101.58,72.276 c-0.306,0.617-0.461,1.277-0.461,1.982C100.85,75.084,101.843,72.276,101.58,72.276"
|
||||
id="path75"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M90.129,90.213c-8.308,6.802-19.974,9.833-30.567,8.335C70.359,100.232,81.753,97.307,90.129,90.213 "
|
||||
id="path77"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M35.812,60.705c0-9.224,8.177-18.148,16.011-21.707c8.522-3.872,17.985-3.937,26.437,0.105 c1.084,0.518,13.452,7.704,11.891,9.714c0.415-0.534-7.813-6.607-8.427-6.956c-7.797-4.435-17.463-4.583-25.884-1.935 C48.108,42.359,35.812,51.58,35.812,60.705"
|
||||
id="path79"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M29.221,60.477c0-11.246,10.8-22.154,20.227-26.36c10.268-4.583,21.688-4.81,31.842,0.146 c3.762,1.836,7.336,4.222,10.343,7.144c0.161,0.158,3.231,3.874,2.678,3.895c-0.649,0.027-2.156-2.297-2.538-2.712 c-2.223-2.406-4.743-4.534-7.549-6.232c-9.406-5.692-21.297-5.859-31.503-2.277c-8.237,2.891-15.042,8.673-19.335,16.251 C31.957,52.851,29.221,57.912,29.221,60.477"
|
||||
id="path81"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M96.321,66.114c0.076-0.002-1.774,6.544-1.93,6.928c-2.031,5.045-5.354,9.536-9.722,12.801 c-14.182,10.598-33.677,7.999-44.948-5.131c15.231,22.079,55.698,13.75,56.604-14.6"
|
||||
id="path83"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
<path
|
||||
d="M87.782,85.129c-0.864,0.83-1.773,1.606-2.729,2.329C86.015,86.743,86.926,85.967,87.782,85.129 M39.057,80.084c-0.394,0,5.06,5.707,5.491,6.023C43.611,85.29,40.002,80.084,39.057,80.084"
|
||||
id="path85"
|
||||
style="fill:#007aff;fill-opacity:1;stroke:none;stroke-opacity:1" />
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.38a2 2 0 0 0-.73-2.73l-.15-.09a2 2 0 0 1-1-1.74v-.51a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/>
|
||||
<circle cx="12" cy="12" r="3"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 779 B |
|
|
@ -1,25 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
|
||||
<svg height="800"
|
||||
width="800"
|
||||
version="1.1"
|
||||
id="_x32_"
|
||||
viewBox="0 0 512 512"
|
||||
xml:space="preserve"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs id="defs1"/>
|
||||
<style type="text/css"
|
||||
id="style1">
|
||||
.st0{fill:#64C0FF;stroke:black;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1}
|
||||
</style>
|
||||
<g id="g1"
|
||||
transform="matrix(0.87097097,0,0,1.0008579,38.609049,-0.21963163)"
|
||||
style="stroke-width:3.42738;stroke-dasharray:none">
|
||||
<path class="st0"
|
||||
d="M 512,255.995 277.045,65.394 v 103.574 c -17.255,0 -36.408,0 -57.542,0 -208.59,0 -249.35,153.44 -201.394,266.128 9.586,-103.098 142.053,-100.701 237.358,-100.701 7.247,0 14.446,0 21.578,0 v 112.211 z"
|
||||
id="path1"
|
||||
style="stroke-width:20;stroke:#000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"/>
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="6" cy="12" r="2.5"/>
|
||||
<circle cx="18" cy="6" r="2.5"/>
|
||||
<circle cx="18" cy="18" r="2.5"/>
|
||||
<path d="M8.2 10.8l7.6-3.6"/>
|
||||
<path d="M8.2 13.2l7.6 3.6"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 334 B |
|
|
@ -1 +1,7 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M278.6 438.6L182.6 534.6C170.1 547.1 149.8 547.1 137.3 534.6L41.3 438.6C28.8 426.1 28.8 405.8 41.3 393.3C53.8 380.8 74.1 380.8 86.6 393.3L128 434.7L128 128C128 110.3 142.3 96 160 96C177.7 96 192 110.3 192 128L192 434.7L233.4 393.3C245.9 380.8 266.2 380.8 278.7 393.3C291.2 405.8 291.2 426.1 278.7 438.6zM352 544C334.3 544 320 529.7 320 512C320 494.3 334.3 480 352 480L384 480C401.7 480 416 494.3 416 512C416 529.7 401.7 544 384 544L352 544zM352 416C334.3 416 320 401.7 320 384C320 366.3 334.3 352 352 352L448 352C465.7 352 480 366.3 480 384C480 401.7 465.7 416 448 416L352 416zM352 288C334.3 288 320 273.7 320 256C320 238.3 334.3 224 352 224L512 224C529.7 224 544 238.3 544 256C544 273.7 529.7 288 512 288L352 288zM352 160C334.3 160 320 145.7 320 128C320 110.3 334.3 96 352 96L576 96C593.7 96 608 110.3 608 128C608 145.7 593.7 160 576 160L352 160z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M4 6h10"/>
|
||||
<path d="M4 12h7"/>
|
||||
<path d="M4 18h4"/>
|
||||
<path d="M18 8v10"/>
|
||||
<path d="M15 15l3 3 3-3"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 282 B |
|
|
@ -1,106 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="500"
|
||||
height="500"
|
||||
id="svg2825"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
sodipodi:docname="icon_spectator.svg">
|
||||
<defs
|
||||
id="defs2827">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective2833" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3170"
|
||||
id="linearGradient3176"
|
||||
x1="348.1423"
|
||||
y1="241.25623"
|
||||
x2="362.82382"
|
||||
y2="226.27509"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3170">
|
||||
<stop
|
||||
style="stop-color: rgb(255, 255, 255); stop-opacity: 1;"
|
||||
offset="0"
|
||||
id="stop3172" />
|
||||
<stop
|
||||
style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
|
||||
offset="1"
|
||||
id="stop3174" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.7"
|
||||
inkscape:cx="161.90734"
|
||||
inkscape:cy="313.43022"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="784"
|
||||
inkscape:window-height="1162"
|
||||
inkscape:window-x="2720"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata2830">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-552.36218)">
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="path3609"
|
||||
sodipodi:cx="382.85715"
|
||||
sodipodi:cy="549.50507"
|
||||
sodipodi:rx="71.428574"
|
||||
sodipodi:ry="71.428574"
|
||||
d="m 454.28572,549.50507 a 71.428574,71.428574 0 1 1 -142.85715,0 71.428574,71.428574 0 1 1 142.85715,0 z"
|
||||
transform="matrix(1.278781,0,0,1.278781,-239.59045,89.665546)" />
|
||||
<g
|
||||
transform="matrix(4.0314732,0,0,4.0314732,-693.67321,-408.8113)"
|
||||
id="g3178">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="csssc"
|
||||
id="path3159"
|
||||
d="m 234.78774,331.58001 c -31.87684,0.0325 -57.71719,-31.08607 -58.23077,-32.66642 -1.24408,-3.82817 25.38817,-32.75179 57.265,-32.78433 31.87683,-0.0325 58.68772,30.04142 58.23076,32.66642 -0.17904,1.02851 -24.29715,32.20961 -55.54932,32.76812"
|
||||
style="fill:none;stroke:#000000;stroke-width:6.60500002;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z"/>
|
||||
<circle cx="12" cy="12" r="3"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 261 B |
|
|
@ -1,12 +1,6 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000000" version="1.1" id="Capa_1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="800px" height="800px" viewBox="0 0 71.753 71.753"
|
||||
xml:space="preserve">
|
||||
<g>
|
||||
<path d="M39.798,20.736H28.172v20.738L11.625,41.47V20.736H0L19.899,0.839L39.798,20.736z M51.855,70.914l19.897-19.896H60.129
|
||||
V30.282l-16.547-0.004v20.74H31.957L51.855,70.914z"/>
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M4 8h13"/>
|
||||
<path d="M14 5l3 3-3 3"/>
|
||||
<path d="M20 16H7"/>
|
||||
<path d="M10 13l-3 3 3 3"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 648 B After Width: | Height: | Size: 269 B |
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="520pt" height="520pt" viewBox="0 0 520 520" version="1.1">
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:#000000;fill-opacity:1;" d="M 240 0 L 240 45 C 130.078125 55.234375 43.75 147.421875 43.75 260 C 43.75 318.671875 67.03125 371.640625 105 410.625 L 159.375 361.875 C 133.203125 335.859375 116.875 299.765625 116.875 260 C 116.875 187.8125 170.46875 127.96875 240 118.125 L 240 160 L 368.125 80 Z M 415 109.375 L 361.25 158.125 C 387.421875 184.140625 403.125 220.3125 403.125 260 C 403.125 332.265625 349.609375 391.484375 280 401.25 L 280 360 L 151.875 440 L 280 520 L 280 475 C 389.921875 464.765625 476.25 372.578125 476.25 260 C 476.25 201.328125 452.96875 148.359375 415 109.375 Z "/>
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M20 11a8 8 0 0 0-13.7-5.7L4 8"/>
|
||||
<path d="M4 4v4h4"/>
|
||||
<path d="M4 13a8 8 0 0 0 13.7 5.7L20 16"/>
|
||||
<path d="M20 20v-4h-4"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 856 B After Width: | Height: | Size: 303 B |
|
|
@ -1,116 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="100"
|
||||
height="100"
|
||||
id="svg2858"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
sodipodi:docname="icon_tab_changed.svg">
|
||||
<defs
|
||||
id="defs2860">
|
||||
<linearGradient
|
||||
id="linearGradient3753">
|
||||
<stop
|
||||
style="stop-color:#02db0e;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3755" />
|
||||
<stop
|
||||
style="stop-color:#02db0e;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3757" />
|
||||
</linearGradient>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective2866" />
|
||||
<inkscape:perspective
|
||||
id="perspective2853"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3753"
|
||||
id="linearGradient3766"
|
||||
x1="103.53491"
|
||||
y1="132.64713"
|
||||
x2="-1.5473157"
|
||||
y2="33.224445"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5"
|
||||
inkscape:cx="-9.896878"
|
||||
inkscape:cy="42.810059"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1028"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata2863">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Triangle"
|
||||
style="display:inline">
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#007aff;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
|
||||
id="path3758-1"
|
||||
sodipodi:cx="53.900002"
|
||||
sodipodi:cy="78.5"
|
||||
sodipodi:rx="46.5"
|
||||
sodipodi:ry="46.5"
|
||||
d="M 100.4,78.5 A 46.5,46.5 0 1 1 7.4000015,78.5 46.5,46.5 0 1 1 100.4,78.5 z"
|
||||
transform="matrix(1.05866,0,0,1.05866,-7.0617752,-32.704809)" />
|
||||
<g
|
||||
style="font-size:133.49534607px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.06498075;stroke-opacity:1;font-family:'Magic:the Gathering';-inkscape-font-specification:'Magic:the Gathering'"
|
||||
id="text3759">
|
||||
<path
|
||||
d="m 46.854005,16.085692 c 0.977733,-2.411704 1.683885,-4.193378 2.118456,-5.345028 0.369355,-1.1514901 0.771318,-1.9988718 1.205891,-2.5421482 0.456264,-0.4344718 1.347101,-0.825571 2.672514,-1.1732989 1.23846,-0.2823765 2.705082,-0.4670623 4.399871,-0.5540578 0.369346,8.46e-5 0.727854,8.46e-5 1.075524,0 1.694737,8.46e-5 2.672485,0.5758696 2.933248,1.7273567 -3e-5,0.1956326 -3e-5,0.3803183 0,0.5540579 -3e-5,1.3254743 -0.662726,2.9224633 -1.98809,4.7909703 -1.520969,2.238035 -3.43301,4.24785 -5.736128,6.029453 -2.32489,1.760018 -4.551983,2.781222 -6.681286,3.063614 -1.260224,-0.543125 -1.977239,-1.075454 -2.151048,-1.59699 -1.3e-5,-0.08684 -1.3e-5,-0.184616 0,-0.293325 -1.3e-5,-0.434484 0.228128,-1.010269 0.684424,-1.727357 0.521453,-0.890765 1.010327,-1.868513 1.466624,-2.933247 z M 31.372977,37.856906 c 2.650785,-0.716962 6.159814,-1.651255 10.527099,-2.802881 4.280354,-1.173242 7.398284,-1.803346 9.3538,-1.890315 0.08689,5.8e-5 0.173803,5.8e-5 0.260733,0 1.06464,5.8e-5 1.82511,0.358566 2.281415,1.075524 0.260711,0.630161 0.391077,1.520998 0.391099,2.672514 -2.2e-5,0.260787 -2.2e-5,0.532384 0,0.814791 -0.173844,1.586178 -0.260755,2.781204 -0.260733,3.58508 l 0,39.533656 c 1.238459,1e-5 2.976678,-0.673549 5.214662,-2.020681 1.673009,-0.977736 2.868034,-1.46661 3.58508,-1.466624 0.173791,1.4e-5 0.304158,0.04347 0.3911,0.130367 0.543162,0.369385 0.814759,0.771348 0.814791,1.20589 -3.2e-5,1.151583 -1.868617,2.66166 -5.605762,4.530238 -1.238507,0.717023 -3.063637,1.922912 -5.475395,3.617671 -2.49871,1.781679 -4.769259,3.204846 -6.811652,4.269505 -0.347658,0.347644 -0.923443,0.662696 -1.727357,0.945157 -0.260745,0.08691 -0.532342,0.130366 -0.814791,0.130367 -0.521477,-10e-7 -1.010351,-0.271598 -1.466623,-0.814791 C 41.856611,91.111641 41.7697,81.594892 41.76971,62.8221 c -1e-5,-1.955468 -1e-5,-4.008739 0,-6.15982 -1e-5,-2.129283 -0.08692,-4.128235 -0.260734,-5.996861 -0.260742,-1.781634 -0.706161,-3.204801 -1.336257,-4.269504 -0.717023,-1.347075 -1.60786,-2.368279 -2.672514,-3.063614 -1.151576,-0.630057 -2.357465,-1.260161 -3.617672,-1.890315 -1.325394,-0.521416 -2.161911,-1.053746 -2.509556,-1.59699 -0.195549,-0.173771 -0.293324,-0.434504 -0.293324,-0.7822 -0.08691,-0.369319 0.01086,-0.771282 0.293324,-1.20589 z"
|
||||
style=""
|
||||
id="path2993" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-952.36218)"
|
||||
style="display:inline" />
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="8"/>
|
||||
<circle cx="12" cy="12" r="3.5" fill="currentColor" stroke="none"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 268 B |
|
Before Width: | Height: | Size: 7.1 KiB |
|
|
@ -1,29 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="122.14841" height="72.055801" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" sodipodi:docname="swerty_eye.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape" version="1.0">
|
||||
<defs id="defs4">
|
||||
<linearGradient inkscape:collect="always" id="linearGradient3170">
|
||||
<stop style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" offset="0" id="stop3172"/>
|
||||
<stop style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" offset="1" id="stop3174"/>
|
||||
</linearGradient>
|
||||
<inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective10"/>
|
||||
<linearGradient inkscape:collect="always" xlink:href="#linearGradient3170" id="linearGradient3176" x1="348.1423" y1="241.25623" x2="362.82382" y2="226.27509" gradientUnits="userSpaceOnUse"/>
|
||||
</defs>
|
||||
<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" gridtolerance="10000" guidetolerance="10" objecttolerance="10" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="1.9163562" inkscape:cx="296.89701" inkscape:cy="743.73197" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" showguides="true" inkscape:guide-bbox="true" inkscape:window-width="1024" inkscape:window-height="712" inkscape:window-x="-4" inkscape:window-y="-4"/>
|
||||
<metadata id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(-173.21257,-262.82673)">
|
||||
<g id="g3178">
|
||||
<path sodipodi:open="true" transform="matrix(1.7416,0,0,1.7416,-381.027,-111.162)" sodipodi:end="10.935153" sodipodi:start="4.6610829" d="M 352.96016,223.72064 A 11.219209,10.958297 0 1 1 352.85806,223.72622" sodipodi:ry="10.958297" sodipodi:rx="11.219209" sodipodi:cy="234.66452" sodipodi:cx="353.53552" id="path3166" style="opacity:1;fill:#0000de;fill-opacity:1;stroke:none;stroke-width:6.60500002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" sodipodi:type="arc"/>
|
||||
<path sodipodi:nodetypes="csssc" id="path3159" d="M 234.78774,331.58001 C 202.9109,331.61255 177.07055,300.49394 176.55697,298.91359 C 175.31289,295.08542 201.94514,266.1618 233.82197,266.12926 C 265.6988,266.09672 292.50969,296.17068 292.05273,298.79568 C 291.87369,299.82419 267.75558,331.00529 236.50341,331.5638" style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.60500002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||
<path sodipodi:open="true" transform="matrix(1.7416,0,0,1.7416,-380.897,-111.409)" sodipodi:end="10.935153" sodipodi:start="4.6610829" d="M 352.96016,223.72064 A 11.219209,10.958297 0 1 1 352.85806,223.72622" sodipodi:ry="10.958297" sodipodi:rx="11.219209" sodipodi:cy="234.66452" sodipodi:cx="353.53552" id="path3168" style="opacity:1;fill:url(#linearGradient3176);fill-opacity:1;stroke:none;stroke-width:6.60500002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" sodipodi:type="arc"/>
|
||||
<path sodipodi:open="true" transform="matrix(1.38447,0,0,1.38447,-254.533,-26.8231)" sodipodi:end="4.6519677" sodipodi:start="0.53396878" d="M 363.19295,240.24179 A 11.219209,10.958297 0 1 1 352.85806,223.72622" sodipodi:ry="10.958297" sodipodi:rx="11.219209" sodipodi:cy="234.66452" sodipodi:cx="353.53552" id="path3162" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.60500002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" sodipodi:type="arc"/>
|
||||
</g>
|
||||
</g>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z"/>
|
||||
<circle cx="12" cy="12" r="3"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 261 B |
42
cockatrice/src/client/network/interfaces/deck_analysis_url.h
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
/**
|
||||
* @file deck_analysis_url.h
|
||||
* @ingroup ApiInterfaces
|
||||
*/
|
||||
|
||||
#ifndef DECK_ANALYSIS_URL_H
|
||||
#define DECK_ANALYSIS_URL_H
|
||||
|
||||
#include <QString>
|
||||
#include <QUrl>
|
||||
|
||||
/**
|
||||
* Validates a deck address returned by a deck analysis service.
|
||||
*
|
||||
* Only the expected host (optionally "www."-prefixed), HTTPS, default ports and
|
||||
* URLs without user information are accepted. Legacy HTTP addresses for the same
|
||||
* service are upgraded to HTTPS in place instead of being rejected.
|
||||
*
|
||||
* Relative addresses must be resolved against the response URL by the caller.
|
||||
*
|
||||
* @return true when @p url names a deck on @p serviceHost; false otherwise.
|
||||
*/
|
||||
inline bool normalizeAnalysisUrl(QUrl &url, const QString &serviceHost)
|
||||
{
|
||||
const QString host = url.host().toLower();
|
||||
const bool legacyHttp = url.scheme() == QStringLiteral("http");
|
||||
const int defaultPort = legacyHttp ? 80 : 443;
|
||||
if (!url.isValid() || (!legacyHttp && url.scheme() != QStringLiteral("https")) || !url.userInfo().isEmpty() ||
|
||||
!url.path().startsWith('/') || (url.port() != -1 && url.port() != defaultPort) ||
|
||||
(host != serviceHost && host != QStringLiteral("www.") + serviceHost)) {
|
||||
return false;
|
||||
}
|
||||
// Both services accept HTTPS. Older public metadata may still identify the
|
||||
// same deck with HTTP; retain its host/path/query while using HTTPS to open it.
|
||||
if (legacyHttp) {
|
||||
url.setScheme(QStringLiteral("https"));
|
||||
url.setPort(-1);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
#include "deck_stats_interface.h"
|
||||
|
||||
#include "deck_analysis_url.h"
|
||||
#include "libcockatrice/card/card_info.h"
|
||||
#include "libcockatrice/card/database/card_database_querier.h"
|
||||
#include "libcockatrice/deck_list/tree/inner_deck_list_node.h"
|
||||
|
|
@ -10,12 +11,14 @@
|
|||
#include <QNetworkAccessManager>
|
||||
#include <QNetworkReply>
|
||||
#include <QNetworkRequest>
|
||||
#include <QPointer>
|
||||
#include <QRegularExpression>
|
||||
#include <QRegularExpressionMatch>
|
||||
#include <QSharedPointer>
|
||||
#include <QString>
|
||||
#include <QTextDocumentFragment>
|
||||
#include <QUrl>
|
||||
#include <QUrlQuery>
|
||||
#include <QWidget>
|
||||
#include <functional>
|
||||
#include <libcockatrice/card/database/card_database_manager.h>
|
||||
#include <libcockatrice/deck_list/deck_list.h>
|
||||
|
|
@ -29,30 +32,56 @@ DeckStatsInterface::DeckStatsInterface(QObject *parent) : QObject(parent)
|
|||
connect(manager, &QNetworkAccessManager::finished, this, &DeckStatsInterface::queryFinished);
|
||||
}
|
||||
|
||||
void DeckStatsInterface::showError(const QString &message)
|
||||
{
|
||||
// The notice belongs to the originating editor, not this one-shot request.
|
||||
// Retire the request before opening UI: opening a window may reenter Qt.
|
||||
QWidget *owner = qobject_cast<QWidget *>(parent());
|
||||
auto *notice = new QMessageBox(QMessageBox::Critical, tr("Deck analysis"), message, QMessageBox::Ok, owner);
|
||||
notice->setTextFormat(Qt::PlainText);
|
||||
notice->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard);
|
||||
notice->setAttribute(Qt::WA_DeleteOnClose);
|
||||
deleteLater();
|
||||
notice->open();
|
||||
}
|
||||
|
||||
void DeckStatsInterface::queryFinished(QNetworkReply *reply)
|
||||
{
|
||||
if (replyHandled) {
|
||||
return;
|
||||
}
|
||||
replyHandled = true;
|
||||
// All terminal paths release the reply before showing UI or invoking an
|
||||
// external URL handler, either of which may destroy the originating editor.
|
||||
reply->deleteLater();
|
||||
if (reply->error() != QNetworkReply::NoError) {
|
||||
QMessageBox::critical(nullptr, tr("Error"), reply->errorString());
|
||||
reply->deleteLater();
|
||||
deleteLater();
|
||||
showError(reply->errorString());
|
||||
return;
|
||||
}
|
||||
|
||||
QString data(reply->readAll());
|
||||
reply->deleteLater();
|
||||
|
||||
static const QRegularExpression rx("<meta property=\"og:url\" content=\"([^\"]+)\"");
|
||||
auto match = rx.match(data);
|
||||
const QString data = QString::fromUtf8(reply->readAll());
|
||||
static const QRegularExpression rx(
|
||||
R"(<meta\b(?=[^>]*\bproperty\s*=\s*(['"])og:url\1)[^>]*\bcontent\s*=\s*(['"])(.*?)\2)",
|
||||
QRegularExpression::CaseInsensitiveOption | QRegularExpression::DotMatchesEverythingOption);
|
||||
const auto match = rx.match(data);
|
||||
if (!match.hasMatch()) {
|
||||
QMessageBox::critical(nullptr, tr("Error"), tr("The reply from the server could not be parsed."));
|
||||
deleteLater();
|
||||
showError(tr("The reply from Deckstats did not contain a deck address."));
|
||||
return;
|
||||
}
|
||||
|
||||
QString deckUrl = match.captured(1);
|
||||
QDesktopServices::openUrl(deckUrl);
|
||||
const QString address = QTextDocumentFragment::fromHtml(match.captured(3)).toPlainText();
|
||||
QUrl deckUrl = reply->url().resolved(QUrl(address, QUrl::StrictMode));
|
||||
if (address.trimmed().isEmpty() || !normalizeAnalysisUrl(deckUrl, QStringLiteral("deckstats.net"))) {
|
||||
showError(tr("The reply from Deckstats contained an invalid deck address."));
|
||||
return;
|
||||
}
|
||||
|
||||
QPointer<DeckStatsInterface> guard(this);
|
||||
deleteLater();
|
||||
if (!QDesktopServices::openUrl(deckUrl) && guard) {
|
||||
showError(tr("Could not open your browser. Open this address to see the analyzed deck:\n%1")
|
||||
.arg(deckUrl.toDisplayString()));
|
||||
}
|
||||
}
|
||||
|
||||
void DeckStatsInterface::getAnalyzeRequestData(const DeckList &deck, QByteArray &data)
|
||||
|
|
@ -60,12 +89,8 @@ void DeckStatsInterface::getAnalyzeRequestData(const DeckList &deck, QByteArray
|
|||
DeckList deckWithoutTokens;
|
||||
copyDeckWithoutTokens(deck, deckWithoutTokens);
|
||||
|
||||
QUrl params;
|
||||
QUrlQuery urlQuery;
|
||||
urlQuery.addQueryItem("deck", deckWithoutTokens.writeToString_Plain());
|
||||
urlQuery.addQueryItem("decktitle", deck.getName());
|
||||
params.setQuery(urlQuery);
|
||||
data.append(params.query(QUrl::EncodeReserved).toUtf8());
|
||||
data.append("deck=" + QUrl::toPercentEncoding(deckWithoutTokens.writeToString_Plain()));
|
||||
data.append("&decktitle=" + QUrl::toPercentEncoding(deck.getName()));
|
||||
}
|
||||
|
||||
void DeckStatsInterface::analyzeDeck(const DeckList &deck)
|
||||
|
|
@ -84,7 +109,9 @@ void DeckStatsInterface::copyDeckWithoutTokens(const DeckList &source, DeckList
|
|||
{
|
||||
auto copyIfNotAToken = [&destination](const auto node, const auto card) {
|
||||
CardInfoPtr dbCard = CardDatabaseManager::query()->getCardInfo(card->getName());
|
||||
if (dbCard && !dbCard->getIsToken() && node->getName() != DECK_ZONE_MAYBEBOARD) {
|
||||
// Missing local card data is not evidence that a card is a token. Keep
|
||||
// its original name and quantity so the service analyzes the whole deck.
|
||||
if ((!dbCard || !dbCard->getIsToken()) && node->getName() != DECK_ZONE_MAYBEBOARD) {
|
||||
DecklistCardNode *addedCard = destination.addCard(card->getName(), node->getName(), -1);
|
||||
addedCard->setNumber(card->getNumber());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#include <qtmetamacros.h>
|
||||
|
||||
class QByteArray;
|
||||
class QString;
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class DeckList;
|
||||
|
|
@ -20,6 +21,8 @@ class DeckStatsInterface : public QObject
|
|||
Q_OBJECT
|
||||
private:
|
||||
QNetworkAccessManager *manager;
|
||||
bool replyHandled = false;
|
||||
void showError(const QString &message);
|
||||
|
||||
/**
|
||||
* Deckstats doesn't recognize token cards, and instead tries to find the
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#include "tapped_out_interface.h"
|
||||
|
||||
#include "deck_analysis_url.h"
|
||||
#include "libcockatrice/card/card_info.h"
|
||||
#include "libcockatrice/card/database/card_database_querier.h"
|
||||
#include "libcockatrice/deck_list/tree/inner_deck_list_node.h"
|
||||
|
|
@ -13,15 +14,17 @@
|
|||
#include <QNetworkAccessManager>
|
||||
#include <QNetworkReply>
|
||||
#include <QNetworkRequest>
|
||||
#include <QPointer>
|
||||
#include <QRegularExpression>
|
||||
#include <QRegularExpressionMatch>
|
||||
#include <QRegularExpressionMatchIterator>
|
||||
#include <QSharedPointer>
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
#include <QTextDocumentFragment>
|
||||
#include <QUrl>
|
||||
#include <QUrlQuery>
|
||||
#include <QVariant>
|
||||
#include <QWidget>
|
||||
#include <functional>
|
||||
#include <libcockatrice/card/database/card_database_manager.h>
|
||||
#include <libcockatrice/deck_list/deck_list.h>
|
||||
|
|
@ -35,54 +38,67 @@ TappedOutInterface::TappedOutInterface(QObject *parent) : QObject(parent)
|
|||
connect(manager, &QNetworkAccessManager::finished, this, &TappedOutInterface::queryFinished);
|
||||
}
|
||||
|
||||
void TappedOutInterface::showError(const QString &message)
|
||||
{
|
||||
// The notice belongs to the originating editor, not this one-shot request.
|
||||
// Retire the request before opening UI: opening a window may reenter Qt.
|
||||
QWidget *owner = qobject_cast<QWidget *>(parent());
|
||||
auto *notice = new QMessageBox(QMessageBox::Critical, tr("Deck analysis"), message, QMessageBox::Ok, owner);
|
||||
notice->setTextFormat(Qt::PlainText);
|
||||
notice->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard);
|
||||
notice->setAttribute(Qt::WA_DeleteOnClose);
|
||||
deleteLater();
|
||||
notice->open();
|
||||
}
|
||||
|
||||
void TappedOutInterface::queryFinished(QNetworkReply *reply)
|
||||
{
|
||||
if (reply->error() != QNetworkReply::NoError) {
|
||||
QMessageBox::critical(nullptr, tr("Error"), reply->errorString());
|
||||
if (replyHandled) {
|
||||
return;
|
||||
}
|
||||
replyHandled = true;
|
||||
// All terminal paths release the reply before showing UI or invoking an
|
||||
// external URL handler, either of which may destroy the originating editor.
|
||||
reply->deleteLater();
|
||||
deleteLater();
|
||||
if (reply->error() != QNetworkReply::NoError) {
|
||||
showError(reply->errorString());
|
||||
return;
|
||||
}
|
||||
|
||||
int httpStatus = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
||||
if (reply->hasRawHeader("Location")) {
|
||||
/*
|
||||
* If the reply contains a "Location" header, a relative URL to the deck on TappedOut
|
||||
* can be extracted from the header. The http status is a 302 "redirect".
|
||||
*/
|
||||
QString deckUrl = reply->rawHeader("Location");
|
||||
qCInfo(TappedOutInterfaceLog) << "Tappedout: good reply, http status" << httpStatus << "location" << deckUrl;
|
||||
QDesktopServices::openUrl("https://tappedout.net" + deckUrl);
|
||||
} else {
|
||||
/*
|
||||
* Otherwise, the deck has not been parsed correctly. Error messages can be extracted
|
||||
* from the html. Css pseudo selector for errors: $("div.alert-danger > ul > li")
|
||||
*/
|
||||
QString data(reply->readAll());
|
||||
QStringList errorMessageList = {tr("Unable to analyze the deck.")};
|
||||
|
||||
static const QRegularExpression rx("<div class=\"alert alert-danger.*?<ul>(.*?)</ul>");
|
||||
auto match = rx.match(data);
|
||||
if (match.hasMatch()) {
|
||||
QString errors = match.captured(1);
|
||||
static const QRegularExpression rx2("<li>(.*?)</li>");
|
||||
static const QRegularExpression rxremove("<[^>]*>");
|
||||
auto matchIterator = rx2.globalMatch(errors);
|
||||
while (matchIterator.hasNext()) {
|
||||
auto match2 = matchIterator.next();
|
||||
errorMessageList.append(match2.captured(1).remove(rxremove).simplified());
|
||||
const int httpStatus = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
||||
if (httpStatus >= 200 && httpStatus < 400 && reply->hasRawHeader("Location")) {
|
||||
const QByteArray location = reply->rawHeader("Location");
|
||||
QUrl deckUrl = reply->url().resolved(QUrl::fromEncoded(location, QUrl::StrictMode));
|
||||
if (location.trimmed().isEmpty() || !normalizeAnalysisUrl(deckUrl, QStringLiteral("tappedout.net"))) {
|
||||
showError(tr("The reply from TappedOut contained an invalid deck address."));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
QString errorMessage = errorMessageList.join("\n");
|
||||
qCWarning(TappedOutInterfaceLog) << "Tappedout: bad reply, http status" << httpStatus << "size" << data.size()
|
||||
<< "message" << errorMessage;
|
||||
|
||||
QMessageBox::critical(nullptr, tr("Error"), errorMessage);
|
||||
}
|
||||
|
||||
reply->deleteLater();
|
||||
QPointer<TappedOutInterface> guard(this);
|
||||
deleteLater();
|
||||
if (!QDesktopServices::openUrl(deckUrl) && guard) {
|
||||
showError(tr("Could not open your browser. Open this address to see the analyzed deck:\n%1")
|
||||
.arg(deckUrl.toDisplayString()));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
const QString data = QString::fromUtf8(reply->readAll());
|
||||
QStringList errorMessageList = {tr("Unable to analyze the deck on TappedOut.")};
|
||||
static const QRegularExpression errorsRx("<div class=\"alert alert-danger.*?<ul>(.*?)</ul>",
|
||||
QRegularExpression::DotMatchesEverythingOption);
|
||||
const auto match = errorsRx.match(data);
|
||||
if (match.hasMatch()) {
|
||||
static const QRegularExpression itemRx("<li>(.*?)</li>", QRegularExpression::DotMatchesEverythingOption);
|
||||
auto items = itemRx.globalMatch(match.captured(1));
|
||||
while (items.hasNext()) {
|
||||
const QString error = QTextDocumentFragment::fromHtml(items.next().captured(1)).toPlainText().simplified();
|
||||
if (!error.isEmpty()) {
|
||||
errorMessageList.append(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
qCWarning(TappedOutInterfaceLog) << "TappedOut analysis failed, HTTP status" << httpStatus;
|
||||
showError(errorMessageList.join('\n'));
|
||||
}
|
||||
|
||||
void TappedOutInterface::getAnalyzeRequestData(const DeckList &deck, QByteArray &data)
|
||||
|
|
@ -90,13 +106,9 @@ void TappedOutInterface::getAnalyzeRequestData(const DeckList &deck, QByteArray
|
|||
DeckList mainboard, sideboard;
|
||||
copyDeckSplitMainAndSide(deck, mainboard, sideboard);
|
||||
|
||||
QUrl params;
|
||||
QUrlQuery urlQuery;
|
||||
urlQuery.addQueryItem("name", deck.getName());
|
||||
urlQuery.addQueryItem("mainboard", mainboard.writeToString_Plain(false, true));
|
||||
urlQuery.addQueryItem("sideboard", sideboard.writeToString_Plain(false, true));
|
||||
params.setQuery(urlQuery);
|
||||
data.append(params.query(QUrl::EncodeReserved).toUtf8());
|
||||
data.append("name=" + QUrl::toPercentEncoding(deck.getName()));
|
||||
data.append("&mainboard=" + QUrl::toPercentEncoding(mainboard.writeToString_Plain(false, true)));
|
||||
data.append("&sideboard=" + QUrl::toPercentEncoding(sideboard.writeToString_Plain(false, true)));
|
||||
}
|
||||
|
||||
void TappedOutInterface::analyzeDeck(const DeckList &deck)
|
||||
|
|
@ -117,7 +129,9 @@ void TappedOutInterface::copyDeckSplitMainAndSide(const DeckList &source, DeckLi
|
|||
{
|
||||
auto copyMainOrSide = [&mainboard, &sideboard](const auto node, const auto card) {
|
||||
CardInfoPtr dbCard = CardDatabaseManager::query()->getCardInfo(card->getName());
|
||||
if (!dbCard || dbCard->getIsToken() || node->getName() == DECK_ZONE_MAYBEBOARD) {
|
||||
// Exclude confirmed tokens, but preserve cards missing from the local
|
||||
// database, including newly released cards in an imported deck.
|
||||
if ((dbCard && dbCard->getIsToken()) || node->getName() == DECK_ZONE_MAYBEBOARD) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
inline Q_LOGGING_CATEGORY(TappedOutInterfaceLog, "tapped_out_interface");
|
||||
|
||||
class QByteArray;
|
||||
class QString;
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class DeckList;
|
||||
|
|
@ -29,6 +30,8 @@ class TappedOutInterface : public QObject
|
|||
Q_OBJECT
|
||||
private:
|
||||
QNetworkAccessManager *manager;
|
||||
bool replyHandled = false;
|
||||
void showError(const QString &message);
|
||||
|
||||
void copyDeckSplitMainAndSide(const DeckList &source, DeckList &mainboard, DeckList &sideboard);
|
||||
private slots:
|
||||
|
|
|
|||
|
|
@ -15,14 +15,18 @@ static const QString ARCHIDEKT_SUFFIX = "/?format=json";
|
|||
static const QString MOXFIELD_BASE = "https://api.moxfield.com/v2/decks/all/";
|
||||
static const QString MOXFIELD_SUFFIX = "/";
|
||||
|
||||
static const QString DECKSTATS_BASE = "https://deckstats.net/decks/";
|
||||
static const QString DECKSTATS_SUFFIX = "?include_comments=1&export_mtgarena=1";
|
||||
|
||||
static const QString MANABOX_BASE = "https://cloud.manabox.app/decks/";
|
||||
|
||||
bool parseDeckUrl(const QString &url, ParsedDeckInfo &outInfo)
|
||||
{
|
||||
static QRegularExpression rxTappedOut("tappedout\\.net/(?:mtg-decks/)?([^/?#]+)");
|
||||
static QRegularExpression rxArchidekt("archidekt\\.com/decks/(\\d+)");
|
||||
static QRegularExpression rxMoxfield("moxfield\\.com/decks/([a-zA-Z0-9_-]+)");
|
||||
static QRegularExpression rxDeckstats("deckstats\\.net/decks/(\\d+/[a-zA-Z0-9_-]+)");
|
||||
static QRegularExpression rxManabox("manabox\\.app/decks/([a-zA-Z0-9_-]+)");
|
||||
|
||||
QRegularExpressionMatch match;
|
||||
|
||||
|
|
@ -49,11 +53,18 @@ bool parseDeckUrl(const QString &url, ParsedDeckInfo &outInfo)
|
|||
return true;
|
||||
} else if ((match = rxDeckstats.match(url)).hasMatch()) {
|
||||
QString deckPath = match.captured(1);
|
||||
outInfo = ParsedDeckInfo{.baseUrl = "https://deckstats.net/decks/",
|
||||
outInfo = ParsedDeckInfo{.baseUrl = DECKSTATS_BASE,
|
||||
.deckID = deckPath,
|
||||
.fullUrl = "https://deckstats.net/decks/" + deckPath + DECKSTATS_SUFFIX,
|
||||
.fullUrl = DECKSTATS_BASE + deckPath + DECKSTATS_SUFFIX,
|
||||
.provider = DeckProvider::Deckstats};
|
||||
return true;
|
||||
} else if ((match = rxManabox.match(url)).hasMatch()) {
|
||||
QString deckPath = match.captured(1);
|
||||
outInfo = ParsedDeckInfo{.baseUrl = MANABOX_BASE,
|
||||
.deckID = deckPath,
|
||||
.fullUrl = MANABOX_BASE + deckPath,
|
||||
.provider = DeckProvider::Manabox};
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ enum class DeckProvider
|
|||
Archidekt,
|
||||
Moxfield,
|
||||
Deckstats,
|
||||
Manabox,
|
||||
Unknown
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -8,12 +8,19 @@
|
|||
#define INTERFACE_JSON_DECK_PARSER_H
|
||||
|
||||
#include "../../../interface/deck_loader/card_node_function.h"
|
||||
#include "libcockatrice/deck_list/tree/inner_deck_list_node.h"
|
||||
|
||||
#include <QJsonArray>
|
||||
#include <QJsonObject>
|
||||
#include <QList>
|
||||
#include <QLoggingCategory>
|
||||
#include <QString>
|
||||
#include <QTextStream>
|
||||
#include <libcockatrice/card/import/card_name_normalizer.h>
|
||||
#include <libcockatrice/deck_list/deck_list.h>
|
||||
|
||||
inline Q_LOGGING_CATEGORY(InterfaceJsonDeckParserLog, "interface_json_deck_parser");
|
||||
|
||||
class IJsonDeckParser
|
||||
{
|
||||
public:
|
||||
|
|
@ -32,9 +39,6 @@ public:
|
|||
QString deckName = obj.value("name").toString();
|
||||
QString deckDescription = obj.value("description").toString();
|
||||
|
||||
deckList.setName(deckName);
|
||||
deckList.setComments(deckDescription);
|
||||
|
||||
QString outputText;
|
||||
QTextStream outStream(&outputText);
|
||||
|
||||
|
|
@ -50,8 +54,14 @@ public:
|
|||
outStream << quantity << ' ' << cardName << " (" << setName << ") " << collectorNumber << '\n';
|
||||
}
|
||||
|
||||
outStream.flush();
|
||||
outStream.seek(0);
|
||||
deckList.loadFromStream_Plain(outStream, false, CardNameNormalizer());
|
||||
deckList.setName(deckName);
|
||||
deckList.setComments(deckDescription);
|
||||
deckList.forEachCard(CardNodeFunction::ResolveProviderId());
|
||||
deckList.setName(deckName);
|
||||
deckList.setComments(deckDescription);
|
||||
|
||||
return deckList;
|
||||
}
|
||||
|
|
@ -67,9 +77,6 @@ public:
|
|||
QString deckName = obj.value("name").toString();
|
||||
QString deckDescription = obj.value("description").toString();
|
||||
|
||||
deckList.setName(deckName);
|
||||
deckList.setComments(deckDescription);
|
||||
|
||||
QString outputText;
|
||||
QTextStream outStream(&outputText);
|
||||
|
||||
|
|
@ -97,8 +104,14 @@ public:
|
|||
outStream << quantity << ' ' << cardName << " (" << setName << ") " << collectorNumber << '\n';
|
||||
}
|
||||
|
||||
outStream.flush();
|
||||
outStream.seek(0);
|
||||
deckList.loadFromStream_Plain(outStream, false, CardNameNormalizer());
|
||||
deckList.setName(deckName);
|
||||
deckList.setComments(deckDescription);
|
||||
deckList.forEachCard(CardNodeFunction::ResolveProviderId());
|
||||
deckList.setName(deckName);
|
||||
deckList.setComments(deckDescription);
|
||||
|
||||
QJsonObject commandersObj = obj.value("commanders").toObject();
|
||||
if (!commandersObj.isEmpty()) {
|
||||
|
|
@ -114,6 +127,113 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
// Moxfield stores Oathbreaker signature spells in their own board,
|
||||
// separate from both mainboard and commanders. They are playable deck
|
||||
// cards, but must not replace the Oathbreaker as the banner card.
|
||||
const QJsonObject signatureSpells = obj.value("signatureSpells").toObject();
|
||||
for (auto it = signatureSpells.begin(); it != signatureSpells.end(); ++it) {
|
||||
const QJsonObject entry = it.value().toObject();
|
||||
const QJsonObject card = entry.value("card").toObject();
|
||||
const QString name = card.value("name").toString();
|
||||
const int quantity = entry.value("quantity").toInt();
|
||||
if (name.isEmpty() || quantity <= 0) {
|
||||
continue;
|
||||
}
|
||||
const QString set = card.value("set").toString().toUpper();
|
||||
const QString collectorNumber = card.value("cn").toString();
|
||||
const QString providerId = card.value("scryfall_id").toString();
|
||||
deckList.addCards(name, quantity, DECK_ZONE_MAIN, -1, set, collectorNumber, providerId);
|
||||
}
|
||||
|
||||
return deckList;
|
||||
}
|
||||
};
|
||||
|
||||
class ManaboxJsonParser : public IJsonDeckParser
|
||||
{
|
||||
enum BoardType : quint32
|
||||
{
|
||||
MainBoard = 0,
|
||||
SideBoard = 1,
|
||||
Commander = 2,
|
||||
MaybeBoard = 3,
|
||||
};
|
||||
|
||||
public:
|
||||
DeckList parse(const QJsonObject &obj) override
|
||||
{
|
||||
DeckList deckList;
|
||||
|
||||
QString deckName = obj.value("name").toString();
|
||||
|
||||
QString outputText;
|
||||
QString mainboardText;
|
||||
QString sideboardText;
|
||||
QTextStream mainboardStream(&mainboardText);
|
||||
QTextStream sideboardStream(&sideboardText);
|
||||
QTextStream outStream(&outputText);
|
||||
|
||||
auto commanderList = QList<QJsonObject>();
|
||||
auto maybeboardList = QList<QJsonObject>();
|
||||
for (auto entry : obj.value("cards").toArray()) {
|
||||
auto card = entry.toObject();
|
||||
|
||||
auto collectorNumber = card.value("collectorNumber").toString();
|
||||
auto cardName = card.value("name").toString();
|
||||
auto boardType = static_cast<BoardType>(card.value("boardCategory").toInt());
|
||||
auto setName = card.value("setId").toString();
|
||||
auto quantity = card.value("quantity").toInt();
|
||||
auto providerId = card.value("scryfallId").toString();
|
||||
|
||||
switch (boardType) {
|
||||
case MainBoard:
|
||||
mainboardStream << quantity << ' ' << cardName << " (" << setName << ") " << collectorNumber
|
||||
<< '\n';
|
||||
break;
|
||||
case SideBoard:
|
||||
sideboardStream << "SB: " << quantity << ' ' << cardName << " (" << setName << ") "
|
||||
<< collectorNumber << '\n';
|
||||
break;
|
||||
case MaybeBoard:
|
||||
maybeboardList.append(card);
|
||||
break;
|
||||
case Commander:
|
||||
commanderList.append(card);
|
||||
break;
|
||||
default:
|
||||
qCWarning(InterfaceJsonDeckParserLog)
|
||||
<< "Unknown ManaBox Zone" << card.value("boardCategory").toInt() << "for" << cardName;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
outStream << mainboardText << sideboardText;
|
||||
|
||||
deckList.loadFromStream_Plain(outStream, false, CardNameNormalizer());
|
||||
deckList.setName(deckName);
|
||||
deckList.forEachCard(CardNodeFunction::ResolveProviderId());
|
||||
|
||||
for (const auto &maybeboardCard : maybeboardList) {
|
||||
QString cardName = maybeboardCard.value("name").toString();
|
||||
QString setName = maybeboardCard.value("setId").toString().toUpper();
|
||||
QString collectorNumber = maybeboardCard.value("collectorNumber").toString();
|
||||
QString providerId = maybeboardCard.value("scryfallId").toString();
|
||||
|
||||
for (int x = 0; x < maybeboardCard.value("quantity").toInt(); x++) {
|
||||
deckList.addCard(cardName, DECK_ZONE_MAYBEBOARD, -1, setName, collectorNumber, providerId);
|
||||
}
|
||||
}
|
||||
for (const auto &commanderCard : commanderList) {
|
||||
|
||||
QString commanderName = commanderCard.value("name").toString();
|
||||
QString setName = commanderCard.value("setId").toString().toUpper();
|
||||
QString collectorNumber = commanderCard.value("collectorNumber").toString();
|
||||
QString providerId = commanderCard.value("scryfallId").toString();
|
||||
|
||||
deckList.setBannerCard({commanderName, providerId});
|
||||
deckList.addCard(commanderName, DECK_ZONE_MAIN, -1, setName, collectorNumber, providerId);
|
||||
}
|
||||
|
||||
return deckList;
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -2,253 +2,305 @@
|
|||
|
||||
#include "../../../../main.h"
|
||||
#include "../../../settings/cache_settings.h"
|
||||
#include "spoiler_file.h"
|
||||
|
||||
#include <QChar>
|
||||
#include <QCryptographicHash>
|
||||
#include <QDateTime>
|
||||
#include <QCoreApplication>
|
||||
#include <QDebug>
|
||||
#include <QDir>
|
||||
#include <QFile>
|
||||
#include <QFileInfo>
|
||||
#include <QFutureWatcher>
|
||||
#include <QIODevice>
|
||||
#include <QList>
|
||||
#include <QLocale>
|
||||
#include <QMessageLogger>
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QNetworkReply>
|
||||
#include <QNetworkRequest>
|
||||
#include <QSharedPointer>
|
||||
#include <QSystemTrayIcon>
|
||||
#include <QTimeZone>
|
||||
#include <QTimer>
|
||||
#include <QUrl>
|
||||
#include <QtConcurrentRun>
|
||||
#include <QtGlobal>
|
||||
#include <functional>
|
||||
#include <exception>
|
||||
#include <libcockatrice/card/database/card_database.h>
|
||||
#include <libcockatrice/card/database/card_database_manager.h>
|
||||
#include <libcockatrice/network/network_manager.h>
|
||||
#include <libcockatrice/settings/download_settings.h>
|
||||
#include <libcockatrice/settings/paths_settings.h>
|
||||
#include <tuple>
|
||||
#include <utility>
|
||||
#include <version_string.h>
|
||||
|
||||
#define SPOILERS_STATUS_URL "https://raw.githubusercontent.com/Cockatrice/Magic-Spoiler/files/SpoilerSeasonEnabled"
|
||||
#define SPOILERS_URL "https://raw.githubusercontent.com/Cockatrice/Magic-Spoiler/files/spoiler.xml"
|
||||
|
||||
SpoilerBackgroundUpdater::SpoilerBackgroundUpdater(QObject *apParent) : QObject(apParent), cardUpdateProcess(nullptr)
|
||||
namespace
|
||||
{
|
||||
isSpoilerDownloadEnabled = SettingsCache::instance().downloads().getDownloadSpoilersStatus();
|
||||
if (isSpoilerDownloadEnabled) {
|
||||
// Start the process of checking if we're in spoiler season
|
||||
// File exists means we're in spoiler season
|
||||
startSpoilerDownloadProcess(SPOILERS_STATUS_URL, false);
|
||||
const QUrl SPOILERS_STATUS_URL(
|
||||
QStringLiteral("https://raw.githubusercontent.com/Cockatrice/Magic-Spoiler/files/SpoilerSeasonEnabled"));
|
||||
const QUrl SPOILERS_URL(QStringLiteral("https://raw.githubusercontent.com/Cockatrice/Magic-Spoiler/files/spoiler.xml"));
|
||||
// Request coordination stays on the GUI thread; reload workers never access it.
|
||||
QPointer<SpoilerBackgroundUpdater> currentUpdater;
|
||||
QPointer<QFutureWatcher<bool>> activeReload;
|
||||
quint64 newestOperation = 0;
|
||||
|
||||
bool removeSpoilerFile(const QString &path)
|
||||
{
|
||||
QFile file(path);
|
||||
if (!file.exists()) {
|
||||
return false;
|
||||
}
|
||||
if (!file.remove()) {
|
||||
qCWarning(SpoilerBackgroundUpdaterLog) << "Could not remove spoiler database" << path << file.errorString();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
} // namespace
|
||||
|
||||
SpoilerBackgroundUpdater::SpoilerBackgroundUpdater(QObject *parent, bool forceReload)
|
||||
: QObject(parent), enabledAtStart(SettingsCache::instance().downloads().getDownloadSpoilersStatus()),
|
||||
forceReload(forceReload), targetPath(SettingsCache::instance().paths().getSpoilerCardDatabasePath()),
|
||||
operationId(++newestOperation), manager(NetworkManagerFactory::create(this)), notificationIcon(trayIcon)
|
||||
{
|
||||
connect(&SettingsCache::instance().downloads(), &DownloadSettings::downloadSpoilerStatusChanged, this,
|
||||
&SpoilerBackgroundUpdater::cancelIfSettingsChanged);
|
||||
connect(&SettingsCache::instance().paths(), &PathsSettings::cardDatabasePathChanged, this,
|
||||
&SpoilerBackgroundUpdater::cancelIfSettingsChanged);
|
||||
// Even a disabled/no-op operation completes after its caller can connect signals.
|
||||
QTimer::singleShot(0, this, &SpoilerBackgroundUpdater::begin);
|
||||
}
|
||||
|
||||
void SpoilerBackgroundUpdater::begin()
|
||||
{
|
||||
if (completed) {
|
||||
return;
|
||||
}
|
||||
if (cancelled || operationId != newestOperation ||
|
||||
(reloadOnly ? SettingsCache::instance().downloads().getDownloadSpoilersStatus()
|
||||
: (!enabledAtStart || !SettingsCache::instance().downloads().getDownloadSpoilersStatus())) ||
|
||||
targetPath != SettingsCache::instance().paths().getSpoilerCardDatabasePath()) {
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
const auto previous = currentUpdater;
|
||||
if (activeReload) {
|
||||
// The existing database API stores its final load status after its parser
|
||||
// mutex is released. Do not overlap updater-owned calls to that API.
|
||||
connect(activeReload, &QFutureWatcher<bool>::finished, this, &SpoilerBackgroundUpdater::begin,
|
||||
static_cast<Qt::ConnectionType>(Qt::QueuedConnection | Qt::SingleShotConnection));
|
||||
if (previous && previous != this) {
|
||||
previous->cancel();
|
||||
}
|
||||
return;
|
||||
}
|
||||
currentUpdater = this;
|
||||
QPointer<SpoilerBackgroundUpdater> guard(this);
|
||||
if (previous && previous != this) {
|
||||
previous->cancel();
|
||||
}
|
||||
if (!guard) {
|
||||
return;
|
||||
}
|
||||
if (!isCurrent()) {
|
||||
finish();
|
||||
} else if (reloadOnly) {
|
||||
if (QFileInfo::exists(targetPath) && !removeSpoilerFile(targetPath)) {
|
||||
finish(tr("The spoiler database could not be removed. Check its file permissions and use Reload Card "
|
||||
"Database to retry."));
|
||||
return;
|
||||
}
|
||||
reloadDatabase(false);
|
||||
} else {
|
||||
qCInfo(SpoilerBackgroundUpdaterLog) << "Spoilers Disabled";
|
||||
downloadFromURL(SPOILERS_STATUS_URL, false);
|
||||
}
|
||||
}
|
||||
|
||||
void SpoilerBackgroundUpdater::startSpoilerDownloadProcess(QString url, bool saveResults)
|
||||
bool SpoilerBackgroundUpdater::isCurrent() const
|
||||
{
|
||||
auto spoilerURL = QUrl(url);
|
||||
downloadFromURL(spoilerURL, saveResults);
|
||||
return !completed && !cancelled && currentUpdater == this && operationId == newestOperation &&
|
||||
(reloadOnly != SettingsCache::instance().downloads().getDownloadSpoilersStatus()) &&
|
||||
targetPath == SettingsCache::instance().paths().getSpoilerCardDatabasePath();
|
||||
}
|
||||
|
||||
void SpoilerBackgroundUpdater::downloadFromURL(QUrl url, bool saveResults)
|
||||
void SpoilerBackgroundUpdater::cancelIfSettingsChanged()
|
||||
{
|
||||
auto *nam = NetworkManagerFactory::create(this);
|
||||
auto request = QNetworkRequest(url);
|
||||
request.setHeader(QNetworkRequest::UserAgentHeader, QString("Cockatrice %1").arg(VERSION_STRING));
|
||||
QNetworkReply *reply = nam->get(request);
|
||||
if (reloadOnly == SettingsCache::instance().downloads().getDownloadSpoilersStatus() ||
|
||||
targetPath != SettingsCache::instance().paths().getSpoilerCardDatabasePath()) {
|
||||
cancel();
|
||||
}
|
||||
}
|
||||
|
||||
void SpoilerBackgroundUpdater::cancel()
|
||||
{
|
||||
if (completed) {
|
||||
return;
|
||||
}
|
||||
cancelled = true;
|
||||
const auto reply = activeReply;
|
||||
activeReply.clear();
|
||||
QPointer<SpoilerBackgroundUpdater> guard(this);
|
||||
if (reply) {
|
||||
reply->abort();
|
||||
if (reply) {
|
||||
reply->deleteLater();
|
||||
}
|
||||
}
|
||||
// A running reload owns no updater state. Allow its completion to retire its
|
||||
// watcher before a heap-owned updater is released by the caller.
|
||||
if (guard && !reloading) {
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
void SpoilerBackgroundUpdater::downloadFromURL(const QUrl &url, bool saveResults)
|
||||
{
|
||||
QNetworkRequest request(url);
|
||||
request.setHeader(QNetworkRequest::UserAgentHeader, QString("Cockatrice %1").arg(VERSION_STRING));
|
||||
request.setTransferTimeout(60000);
|
||||
activeReply = manager->get(request);
|
||||
if (saveResults) {
|
||||
// This will write out to the file (used for spoiler.xml)
|
||||
connect(reply, &QNetworkReply::finished, this, &SpoilerBackgroundUpdater::actDownloadFinishedSpoilersFile);
|
||||
connect(activeReply, &QNetworkReply::finished, this,
|
||||
&SpoilerBackgroundUpdater::actDownloadFinishedSpoilersFile);
|
||||
} else {
|
||||
// This will check the status (used to see if we're in spoiler season or not)
|
||||
connect(reply, &QNetworkReply::finished, this, &SpoilerBackgroundUpdater::actCheckIfSpoilerSeasonEnabled);
|
||||
connect(activeReply, &QNetworkReply::finished, this, &SpoilerBackgroundUpdater::actCheckIfSpoilerSeasonEnabled);
|
||||
}
|
||||
}
|
||||
|
||||
void SpoilerBackgroundUpdater::actCheckIfSpoilerSeasonEnabled()
|
||||
{
|
||||
auto *reply = qobject_cast<QNetworkReply *>(sender());
|
||||
if (!reply || reply != activeReply) {
|
||||
return;
|
||||
}
|
||||
activeReply.clear();
|
||||
reply->deleteLater();
|
||||
if (!isCurrent()) {
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
if (reply->error() == QNetworkReply::NoError) {
|
||||
downloadFromURL(SPOILERS_URL, true);
|
||||
} else if (reply->error() == QNetworkReply::ContentNotFoundError) {
|
||||
const bool existed = QFileInfo::exists(targetPath);
|
||||
seasonEnded = existed;
|
||||
if (existed && !removeSpoilerFile(targetPath)) {
|
||||
finish(tr("The spoiler season has ended, but the old spoiler database could not be removed."));
|
||||
return;
|
||||
}
|
||||
if (existed || forceReload) {
|
||||
reloadDatabase(false);
|
||||
} else {
|
||||
finish();
|
||||
}
|
||||
} else {
|
||||
finish(tr("Could not check spoiler availability: %1").arg(reply->errorString()));
|
||||
}
|
||||
}
|
||||
|
||||
void SpoilerBackgroundUpdater::actDownloadFinishedSpoilersFile()
|
||||
{
|
||||
// Check for server reply
|
||||
auto *reply = dynamic_cast<QNetworkReply *>(sender());
|
||||
QNetworkReply::NetworkError errorCode = reply->error();
|
||||
|
||||
if (errorCode == QNetworkReply::NoError) {
|
||||
spoilerData = reply->readAll();
|
||||
|
||||
// Save the spoiler.xml file to the disk
|
||||
saveDownloadedFile(spoilerData);
|
||||
|
||||
auto *reply = qobject_cast<QNetworkReply *>(sender());
|
||||
if (!reply || reply != activeReply) {
|
||||
return;
|
||||
}
|
||||
activeReply.clear();
|
||||
reply->deleteLater();
|
||||
emit spoilerCheckerDone();
|
||||
if (!isCurrent()) {
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
if (reply->error() != QNetworkReply::NoError) {
|
||||
finish(tr("Could not download spoilers: %1").arg(reply->errorString()));
|
||||
return;
|
||||
}
|
||||
spoilerData = reply->readAll();
|
||||
QString error;
|
||||
const auto result = SpoilerFile::save(targetPath, spoilerData, [this] { return isCurrent(); }, error);
|
||||
if (result == SpoilerFile::SaveResult::Failed) {
|
||||
finish(isCurrent() ? error : QString());
|
||||
} else if (result == SpoilerFile::SaveResult::Written || forceReload) {
|
||||
reloadDatabase(result == SpoilerFile::SaveResult::Written);
|
||||
} else {
|
||||
qCWarning(SpoilerBackgroundUpdaterLog) << "Error downloading spoilers file" << errorCode;
|
||||
emit spoilerCheckerDone();
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
bool SpoilerBackgroundUpdater::deleteSpoilerFile()
|
||||
void SpoilerBackgroundUpdater::reloadDatabase(bool updated)
|
||||
{
|
||||
QString fileName = SettingsCache::instance().paths().getSpoilerCardDatabasePath();
|
||||
QFileInfo fi(fileName);
|
||||
QDir fileDir(fi.path());
|
||||
QFile file(fileName);
|
||||
|
||||
// Delete the spoiler.xml file
|
||||
if (file.exists() && file.remove()) {
|
||||
qCInfo(SpoilerBackgroundUpdaterLog) << "Deleting spoiler.xml";
|
||||
return true;
|
||||
reloading = true;
|
||||
auto *database = CardDatabaseManager::getInstance();
|
||||
// The job outlives an individual request, so destroying that request cannot
|
||||
// let a newer updater overlap the worker that is still completing.
|
||||
auto *watcher = new QFutureWatcher<bool>(QCoreApplication::instance());
|
||||
activeReload = watcher;
|
||||
connect(watcher, &QFutureWatcher<bool>::finished, watcher, [watcher] {
|
||||
if (activeReload == watcher) {
|
||||
activeReload.clear();
|
||||
}
|
||||
|
||||
qCInfo(SpoilerBackgroundUpdaterLog) << "Error: Spoiler.xml not found or not deleted";
|
||||
return false;
|
||||
}
|
||||
|
||||
void SpoilerBackgroundUpdater::actCheckIfSpoilerSeasonEnabled()
|
||||
{
|
||||
auto *response = dynamic_cast<QNetworkReply *>(sender());
|
||||
QNetworkReply::NetworkError errorCode = response->error();
|
||||
|
||||
if (errorCode == QNetworkReply::ContentNotFoundError) {
|
||||
// Spoiler season is offline at this point, so the spoiler.xml file can be safely deleted
|
||||
// The user should run Oracle to get the latest card information
|
||||
if (deleteSpoilerFile() && trayIcon) {
|
||||
trayIcon->showMessage(tr("Spoilers season has ended"), tr("Deleting spoiler.xml. Please run Oracle"));
|
||||
}
|
||||
|
||||
qCInfo(SpoilerBackgroundUpdaterLog) << "Spoiler Season Offline";
|
||||
emit spoilerCheckerDone();
|
||||
} else if (errorCode == QNetworkReply::NoError) {
|
||||
qCInfo(SpoilerBackgroundUpdaterLog) << "Spoiler Service Online";
|
||||
startSpoilerDownloadProcess(SPOILERS_URL, true);
|
||||
} else if (errorCode == QNetworkReply::HostNotFoundError) {
|
||||
if (trayIcon) {
|
||||
trayIcon->showMessage(tr("Spoilers download failed"), tr("No internet connection"));
|
||||
}
|
||||
|
||||
qCWarning(SpoilerBackgroundUpdaterLog) << "Spoiler download failed due to no internet connection";
|
||||
emit spoilerCheckerDone();
|
||||
} else {
|
||||
if (trayIcon) {
|
||||
trayIcon->showMessage(tr("Spoilers download failed"), tr("Error") + " " + (short)errorCode);
|
||||
}
|
||||
|
||||
qCWarning(SpoilerBackgroundUpdaterLog) << "Spoiler download failed with reason" << errorCode;
|
||||
emit spoilerCheckerDone();
|
||||
}
|
||||
}
|
||||
|
||||
bool SpoilerBackgroundUpdater::saveDownloadedFile(QByteArray data)
|
||||
{
|
||||
QString fileName = SettingsCache::instance().paths().getSpoilerCardDatabasePath();
|
||||
QFileInfo fi(fileName);
|
||||
QDir fileDir(fi.path());
|
||||
|
||||
if (!fileDir.exists() && !fileDir.mkpath(fileDir.absolutePath())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check if the data matches. If it does, then spoilers are up to date.
|
||||
if (getHash(fileName) == getHash(data)) {
|
||||
if (trayIcon) {
|
||||
trayIcon->showMessage(tr("Spoilers already up to date"), tr("No new spoilers added"));
|
||||
}
|
||||
|
||||
qCInfo(SpoilerBackgroundUpdaterLog) << "Spoilers Up to Date";
|
||||
return false;
|
||||
}
|
||||
|
||||
QFile file(fileName);
|
||||
if (!file.open(QIODevice::WriteOnly)) {
|
||||
qCWarning(SpoilerBackgroundUpdaterLog) << "Spoiler Service Error: File open (w) failed for" << fileName;
|
||||
file.close();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (file.write(data) == -1) {
|
||||
qCWarning(SpoilerBackgroundUpdaterLog) << "Spoiler Service Error: File write (w) failed for" << fileName;
|
||||
file.close();
|
||||
return false;
|
||||
}
|
||||
|
||||
file.close();
|
||||
|
||||
// Data written, so reload the card database
|
||||
qCInfo(SpoilerBackgroundUpdaterLog) << "Spoiler Service Data Written";
|
||||
// Spoilers can introduce sets the config has never seen; the loader never
|
||||
// runs checkUnknownSets() itself, so run it once the finished snapshot has
|
||||
// been swapped in.
|
||||
auto *watcher = new QFutureWatcher<void>(this);
|
||||
connect(watcher, &QFutureWatcher<void>::finished, this, [watcher] {
|
||||
watcher->deleteLater();
|
||||
CardDatabaseManager::getInstance()->checkUnknownSets();
|
||||
});
|
||||
watcher->setFuture(QtConcurrent::run([] { CardDatabaseManager::getInstance()->loadCardDatabases(); }));
|
||||
|
||||
// If the user has notifications enabled, let them know
|
||||
// when the database was last updated
|
||||
if (trayIcon) {
|
||||
QList<QByteArray> lines = data.split('\n');
|
||||
|
||||
for (const QByteArray &line : lines) {
|
||||
if (line.contains("Created At:")) {
|
||||
QString timeStamp = QString(line).replace("Created At:", "").trimmed();
|
||||
timeStamp.chop(6); // Remove " (UTC)"
|
||||
|
||||
auto utcTime = QLocale().toDateTime(timeStamp, "ddd, MMM dd yyyy, hh:mm:ss");
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0)
|
||||
utcTime.setTimeZone(QTimeZone::UTC);
|
||||
#else
|
||||
utcTime.setTimeSpec(Qt::UTC);
|
||||
#endif
|
||||
|
||||
QString localTime = utcTime.toLocalTime().toString("MMM d, hh:mm");
|
||||
|
||||
trayIcon->showMessage(tr("Spoilers have been updated!"), tr("Last change:") + " " + localTime);
|
||||
emit spoilersUpdatedSuccessfully();
|
||||
return true;
|
||||
connect(watcher, &QFutureWatcher<bool>::finished, this, [this, watcher, database, updated] {
|
||||
bool loaded = false;
|
||||
try {
|
||||
loaded = watcher->result() && database->getLoadStatus() == Ok;
|
||||
} catch (const std::exception &error) {
|
||||
qCWarning(SpoilerBackgroundUpdaterLog) << "Spoiler database reload failed:" << error.what();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
QByteArray SpoilerBackgroundUpdater::getHash(const QString fileName)
|
||||
{
|
||||
QFile file(fileName);
|
||||
|
||||
if (file.open(QFile::ReadOnly)) {
|
||||
// Only read the first 512 bytes (enough to get the "created" tag)
|
||||
const QByteArray bytes = file.read(512);
|
||||
|
||||
QCryptographicHash hash(QCryptographicHash::Algorithm::Md5);
|
||||
hash.addData(bytes);
|
||||
|
||||
qCInfo(SpoilerBackgroundUpdaterLog) << "File Hash =" << hash.result();
|
||||
|
||||
file.close();
|
||||
return hash.result();
|
||||
reloading = false;
|
||||
if (!isCurrent()) {
|
||||
finish();
|
||||
} else if (!loaded) {
|
||||
finish(reloadOnly
|
||||
? tr("Could not reload card data after disabling spoilers. Use Reload Card Database to retry.")
|
||||
: tr("Could not reload card data after updating spoilers. Use Update Spoilers to retry the "
|
||||
"reload."));
|
||||
} else {
|
||||
qCWarning(SpoilerBackgroundUpdaterLog) << "getHash ReadOnly failed!";
|
||||
file.close();
|
||||
return QByteArray();
|
||||
finish({}, updated);
|
||||
}
|
||||
});
|
||||
watcher->setFuture(QtConcurrent::run([database] {
|
||||
database->reloadCardDatabasesAndNotify();
|
||||
return true;
|
||||
}));
|
||||
}
|
||||
|
||||
void SpoilerBackgroundUpdater::finish(const QString &error, bool updated)
|
||||
{
|
||||
if (completed) {
|
||||
return;
|
||||
}
|
||||
completed = true;
|
||||
spoilerData = QByteArray();
|
||||
if (currentUpdater == this) {
|
||||
currentUpdater.clear();
|
||||
}
|
||||
QPointer<SpoilerBackgroundUpdater> guard(this);
|
||||
if (!error.isEmpty() && !cancelled) {
|
||||
qCWarning(SpoilerBackgroundUpdaterLog) << error;
|
||||
if (notificationIcon) {
|
||||
notificationIcon->showMessage(tr("Spoiler update failed"), error);
|
||||
}
|
||||
if (!guard) {
|
||||
return;
|
||||
}
|
||||
emit spoilerUpdateFailed(error);
|
||||
} else if (updated && !cancelled) {
|
||||
if (notificationIcon) {
|
||||
notificationIcon->showMessage(tr("Spoilers have been updated!"),
|
||||
tr("The card database now includes the downloaded spoilers."));
|
||||
}
|
||||
} else if (seasonEnded && !cancelled && notificationIcon) {
|
||||
notificationIcon->showMessage(tr("Spoiler season has ended"),
|
||||
tr("The spoiler database was removed. Please run Oracle to get released cards."));
|
||||
}
|
||||
if (guard) {
|
||||
emit spoilerCheckerDone();
|
||||
}
|
||||
}
|
||||
|
||||
QByteArray SpoilerBackgroundUpdater::getHash(QByteArray data)
|
||||
SpoilerBackgroundUpdater *SpoilerBackgroundUpdater::current()
|
||||
{
|
||||
// Only read the first 512 bytes (enough to get the "created" tag)
|
||||
const QByteArray bytes = data.left(512);
|
||||
|
||||
QCryptographicHash hash(QCryptographicHash::Algorithm::Md5);
|
||||
hash.addData(bytes);
|
||||
|
||||
qCInfo(SpoilerBackgroundUpdaterLog) << "Data Hash =" << hash.result();
|
||||
|
||||
return hash.result();
|
||||
return currentUpdater;
|
||||
}
|
||||
|
||||
SpoilerBackgroundUpdater *SpoilerBackgroundUpdater::deleteSpoilerFile()
|
||||
{
|
||||
// Deletion and the following reload share the operation lifetime. Callers can
|
||||
// observe either failure before the queued operation starts, and an explicit
|
||||
// retry still reloads when the file has already been removed.
|
||||
auto *updater = new SpoilerBackgroundUpdater(QCoreApplication::instance(), true);
|
||||
updater->reloadOnly = true;
|
||||
connect(updater, &SpoilerBackgroundUpdater::spoilerCheckerDone, updater, &QObject::deleteLater);
|
||||
return updater;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
* @file spoiler_background_updater.h
|
||||
* @ingroup Client
|
||||
*/
|
||||
//! \todo Document this file.
|
||||
|
||||
#ifndef COCKATRICE_SPOILER_DOWNLOADER_H
|
||||
#define COCKATRICE_SPOILER_DOWNLOADER_H
|
||||
|
|
@ -10,10 +9,13 @@
|
|||
#include <QByteArray>
|
||||
#include <QLoggingCategory>
|
||||
#include <QObject>
|
||||
#include <QPointer>
|
||||
#include <QString>
|
||||
#include <qtmetamacros.h>
|
||||
|
||||
class QProcess;
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class QSystemTrayIcon;
|
||||
class QUrl;
|
||||
|
||||
inline Q_LOGGING_CATEGORY(SpoilerBackgroundUpdaterLog, "spoiler_background_updater");
|
||||
|
|
@ -22,30 +24,48 @@ class SpoilerBackgroundUpdater : public QObject
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit SpoilerBackgroundUpdater(QObject *apParent = nullptr);
|
||||
explicit SpoilerBackgroundUpdater(QObject *parent = nullptr, bool forceReload = false);
|
||||
inline QString getCardUpdaterBinaryName()
|
||||
{
|
||||
return "oracle";
|
||||
}
|
||||
QByteArray getHash(const QString fileName);
|
||||
QByteArray getHash(QByteArray data);
|
||||
static bool deleteSpoilerFile();
|
||||
// Queues removal and reload; the application owns the returned updater and
|
||||
// deletes it on completion. Callers can connect its failure/completion signals.
|
||||
static SpoilerBackgroundUpdater *deleteSpoilerFile();
|
||||
// The operation currently running, if any. The updater outlives the page that
|
||||
// started it, so a reopened page uses this to observe the in-flight update.
|
||||
static SpoilerBackgroundUpdater *current();
|
||||
|
||||
private slots:
|
||||
void begin();
|
||||
void actDownloadFinishedSpoilersFile();
|
||||
void actCheckIfSpoilerSeasonEnabled();
|
||||
void cancelIfSettingsChanged();
|
||||
|
||||
private:
|
||||
bool isSpoilerDownloadEnabled;
|
||||
QProcess *cardUpdateProcess;
|
||||
const bool enabledAtStart;
|
||||
const bool forceReload;
|
||||
const QString targetPath;
|
||||
const quint64 operationId;
|
||||
QNetworkAccessManager *manager;
|
||||
QPointer<QNetworkReply> activeReply;
|
||||
QPointer<QSystemTrayIcon> notificationIcon;
|
||||
QByteArray spoilerData;
|
||||
void startSpoilerDownloadProcess(QString url, bool saveResults);
|
||||
void downloadFromURL(QUrl url, bool saveResults);
|
||||
bool saveDownloadedFile(QByteArray data);
|
||||
bool completed = false;
|
||||
bool cancelled = false;
|
||||
bool reloading = false;
|
||||
bool seasonEnded = false;
|
||||
bool reloadOnly = false;
|
||||
|
||||
bool isCurrent() const;
|
||||
void cancel();
|
||||
void finish(const QString &error = {}, bool updated = false);
|
||||
void downloadFromURL(const QUrl &url, bool saveResults);
|
||||
void reloadDatabase(bool updated);
|
||||
|
||||
signals:
|
||||
void spoilersUpdatedSuccessfully();
|
||||
void spoilerCheckerDone();
|
||||
void spoilerUpdateFailed(const QString &message);
|
||||
};
|
||||
|
||||
#endif // COCKATRICE_SPOILER_DOWNLOADER_H
|
||||
|
|
@ -0,0 +1,109 @@
|
|||
#include "spoiler_file.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QCryptographicHash>
|
||||
#include <QDir>
|
||||
#include <QFile>
|
||||
#include <QFileInfo>
|
||||
#include <QSaveFile>
|
||||
#include <QXmlStreamReader>
|
||||
|
||||
namespace
|
||||
{
|
||||
QByteArray hashFile(const QString &path)
|
||||
{
|
||||
QFile file(path);
|
||||
if (!file.open(QIODevice::ReadOnly)) {
|
||||
return {};
|
||||
}
|
||||
QCryptographicHash hash(QCryptographicHash::Sha256);
|
||||
return hash.addData(&file) ? hash.result() : QByteArray();
|
||||
}
|
||||
} // namespace
|
||||
|
||||
namespace SpoilerFile
|
||||
{
|
||||
QString validate(const QByteArray &data)
|
||||
{
|
||||
QXmlStreamReader xml(data);
|
||||
if (!xml.readNextStartElement() || xml.name() != QStringLiteral("cockatrice_carddatabase")) {
|
||||
return QCoreApplication::translate(
|
||||
"SpoilerBackgroundUpdater",
|
||||
"The download is not a Cockatrice card database. The previous spoiler file was preserved.");
|
||||
}
|
||||
bool versionOk = false;
|
||||
const int version = xml.attributes().value(QStringLiteral("version")).toInt(&versionOk);
|
||||
if (!versionOk || (version != 3 && version != 4)) {
|
||||
return QCoreApplication::translate(
|
||||
"SpoilerBackgroundUpdater",
|
||||
"The spoiler database uses an unsupported format. The previous spoiler file was preserved.");
|
||||
}
|
||||
bool hasCards = false;
|
||||
int depth = 1;
|
||||
while (!xml.atEnd()) {
|
||||
const auto token = xml.readNext();
|
||||
if (token == QXmlStreamReader::StartElement) {
|
||||
++depth;
|
||||
if (depth == 2 && xml.name() == QStringLiteral("cards")) {
|
||||
hasCards = true;
|
||||
}
|
||||
} else if (token == QXmlStreamReader::EndElement) {
|
||||
--depth;
|
||||
}
|
||||
}
|
||||
if (xml.hasError() || !hasCards) {
|
||||
return QCoreApplication::translate(
|
||||
"SpoilerBackgroundUpdater",
|
||||
"The spoiler database is incomplete or invalid. The previous spoiler file was preserved.");
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
SaveResult
|
||||
save(const QString &targetPath, const QByteArray &data, const std::function<bool()> &isCurrent, QString &error)
|
||||
{
|
||||
error = validate(data);
|
||||
if (!error.isEmpty()) {
|
||||
return SaveResult::Failed;
|
||||
}
|
||||
if (!isCurrent()) {
|
||||
error = QCoreApplication::translate("SpoilerBackgroundUpdater",
|
||||
"The spoiler update was cancelled because its settings changed.");
|
||||
return SaveResult::Failed;
|
||||
}
|
||||
if (hashFile(targetPath) == QCryptographicHash::hash(data, QCryptographicHash::Sha256)) {
|
||||
return SaveResult::Unchanged;
|
||||
}
|
||||
const QDir directory = QFileInfo(targetPath).dir();
|
||||
if (!directory.exists() && !directory.mkpath(QStringLiteral("."))) {
|
||||
error = QCoreApplication::translate("SpoilerBackgroundUpdater",
|
||||
"Could not create the spoiler database directory: %1")
|
||||
.arg(directory.absolutePath());
|
||||
return SaveResult::Failed;
|
||||
}
|
||||
QSaveFile file(targetPath);
|
||||
file.setDirectWriteFallback(false);
|
||||
if (!file.open(QIODevice::WriteOnly) || file.write(data) != data.size() || !file.flush()) {
|
||||
error = QCoreApplication::translate(
|
||||
"SpoilerBackgroundUpdater",
|
||||
"Could not save the spoiler database to %1: %2. The previous file was preserved.")
|
||||
.arg(targetPath, file.errorString());
|
||||
return SaveResult::Failed;
|
||||
}
|
||||
if (!isCurrent()) {
|
||||
file.cancelWriting();
|
||||
error = QCoreApplication::translate("SpoilerBackgroundUpdater",
|
||||
"The spoiler update was cancelled because its settings changed.");
|
||||
return SaveResult::Failed;
|
||||
}
|
||||
if (!file.commit()) {
|
||||
error = QCoreApplication::translate(
|
||||
"SpoilerBackgroundUpdater",
|
||||
"Could not replace the spoiler database at %1: %2. The previous file was preserved.")
|
||||
.arg(targetPath, file.errorString());
|
||||
return SaveResult::Failed;
|
||||
}
|
||||
return SaveResult::Written;
|
||||
}
|
||||
|
||||
} // namespace SpoilerFile
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
#ifndef COCKATRICE_SPOILER_FILE_H
|
||||
#define COCKATRICE_SPOILER_FILE_H
|
||||
|
||||
#include <QByteArray>
|
||||
#include <QString>
|
||||
#include <functional>
|
||||
|
||||
namespace SpoilerFile
|
||||
{
|
||||
enum class SaveResult
|
||||
{
|
||||
Failed,
|
||||
Unchanged,
|
||||
Written
|
||||
};
|
||||
|
||||
QString validate(const QByteArray &data);
|
||||
// Validate before opening the destination, compare complete files, and replace
|
||||
// atomically. Check operation ownership both before writing and before committing.
|
||||
SaveResult
|
||||
save(const QString &targetPath, const QByteArray &data, const std::function<bool()> &isCurrent, QString &error);
|
||||
} // namespace SpoilerFile
|
||||
|
||||
#endif // COCKATRICE_SPOILER_FILE_H
|
||||
|
|
@ -6,6 +6,7 @@
|
|||
#include "shortcuts_settings.h"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QCoreApplication>
|
||||
#include <QDebug>
|
||||
#include <QDir>
|
||||
#include <QFile>
|
||||
|
|
@ -47,7 +48,32 @@ Q_GLOBAL_STATIC(SettingsCache, settingsCache)
|
|||
|
||||
SettingsCache &SettingsCache::instance()
|
||||
{
|
||||
return *settingsCache; // returns a QT managed singleton reference
|
||||
SettingsCache &cache = *settingsCache; // returns a QT managed singleton reference
|
||||
// The release channels own QNetworkAccessManagers, which must be destroyed
|
||||
// while the application object is alive. ~SettingsCache() runs during
|
||||
// static teardown, after QApplication is gone, so hook the application's
|
||||
// shutdown instead. Retried here because the first access may predate the
|
||||
// application object.
|
||||
cache.installShutdownHook();
|
||||
return cache;
|
||||
}
|
||||
|
||||
void SettingsCache::installShutdownHook()
|
||||
{
|
||||
if (shutdownHookInstalled) {
|
||||
return;
|
||||
}
|
||||
QCoreApplication *application = QCoreApplication::instance();
|
||||
if (application == nullptr) {
|
||||
return;
|
||||
}
|
||||
connect(application, &QCoreApplication::aboutToQuit, this, [this] {
|
||||
for (ReleaseChannel *releaseChannel : std::as_const(releaseChannels)) {
|
||||
delete releaseChannel;
|
||||
}
|
||||
releaseChannels.clear();
|
||||
});
|
||||
shutdownHookInstalled = true;
|
||||
}
|
||||
|
||||
QString SettingsCache::getDataPath()
|
||||
|
|
|
|||
|
|
@ -90,8 +90,13 @@ private:
|
|||
QString themeName;
|
||||
|
||||
QList<ReleaseChannel *> releaseChannels;
|
||||
bool shutdownHookInstalled = false;
|
||||
bool isPortableBuild;
|
||||
|
||||
// Connects the aboutToQuit handler that deletes the release channels while
|
||||
// the application object is still alive; a no-op before it exists.
|
||||
void installShutdownHook();
|
||||
|
||||
[[nodiscard]] QString getSafeConfigPath(QString configEntry, QString defaultPath) const;
|
||||
[[nodiscard]] QString getSafeConfigFilePath(QString configEntry, QString defaultPath) const;
|
||||
void loadPaths();
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#include "shortcut_treeview.h"
|
||||
|
||||
#include "../../interface/theme_manager.h"
|
||||
#include "cache_settings.h"
|
||||
#include "shortcuts_settings.h"
|
||||
|
||||
|
|
@ -78,6 +79,18 @@ ShortcutTreeView::ShortcutTreeView(QWidget *parent) : QTreeView(parent)
|
|||
|
||||
connect(&SettingsCache::instance().shortcuts(), &ShortcutsSettings::shortCutChanged, this,
|
||||
&ShortcutTreeView::refreshShortcuts);
|
||||
|
||||
// Group headers store their font on the item; re-apply the role family on
|
||||
// font changes (setFont emits itemChanged, which repaints the rows).
|
||||
connect(themeManager, &ThemeManager::fontsChanged, this, [this] {
|
||||
QFont groupFont = themeManager->appFont(AppFont::InterfaceDefault);
|
||||
groupFont.setBold(true);
|
||||
for (int row = 0; row < shortcutsModel->rowCount(); ++row) {
|
||||
if (auto *groupItem = shortcutsModel->item(row)) {
|
||||
groupItem->setFont(groupFont);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void ShortcutTreeView::populateShortcutsModel()
|
||||
|
|
@ -93,7 +106,8 @@ void ShortcutTreeView::populateShortcutsModel()
|
|||
curParent = parentItems.value(group);
|
||||
} else {
|
||||
curParent = new QStandardItem(group);
|
||||
static QFont font = curParent->font();
|
||||
// Family comes from the InterfaceDefault theme role; bold stays caller-side.
|
||||
QFont font = themeManager->appFont(AppFont::InterfaceDefault);
|
||||
font.setBold(true);
|
||||
curParent->setFont(font);
|
||||
parentItems.insert(group, curParent);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#include "filter_builder.h"
|
||||
|
||||
#include "../interface/pixel_map_generator.h"
|
||||
#include "../interface/theme_icon.h"
|
||||
#include "../interface/widgets/utility/custom_line_edit.h"
|
||||
|
||||
#include <QComboBox>
|
||||
|
|
@ -30,7 +30,7 @@ FilterBuilder::FilterBuilder(QWidget *parent) : QWidget(parent)
|
|||
typeCombo->addItem(CardFilter::typeName(static_cast<CardFilter::Type>(i)), QVariant(i));
|
||||
}
|
||||
|
||||
QPushButton *ok = new QPushButton(themePixmap(QStringLiteral("icons/increment")), QString());
|
||||
QPushButton *ok = new QPushButton(loadThemedIcon(QStringLiteral("icons/increment")), QString());
|
||||
ok->setObjectName("ok");
|
||||
ok->setMaximumSize(20, 20);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
#include "filter_tree_model.h"
|
||||
|
||||
#include "../interface/theme_manager.h"
|
||||
|
||||
#include <QFlags>
|
||||
#include <QFont>
|
||||
#include <QString>
|
||||
|
|
@ -39,6 +41,12 @@ FilterTreeModel::FilterTreeModel(QObject *parent) : QAbstractItemModel(parent)
|
|||
connect(fTree, &FilterTree::postInsertRow, this, &FilterTreeModel::proxyEndInsertRow);
|
||||
connect(fTree, &FilterTree::preRemoveRow, this, &FilterTreeModel::proxyBeginRemoveRow);
|
||||
connect(fTree, &FilterTree::postRemoveRow, this, &FilterTreeModel::proxyEndRemoveRow);
|
||||
// FontRole data reads the DeckList role live; rebroadcast so attached
|
||||
// views re-query instead of waiting for an incidental repaint.
|
||||
connect(themeManager, &ThemeManager::fontsChanged, this, [this] {
|
||||
emit layoutAboutToBeChanged();
|
||||
emit layoutChanged();
|
||||
});
|
||||
}
|
||||
|
||||
FilterTreeModel::~FilterTreeModel()
|
||||
|
|
@ -202,7 +210,8 @@ QVariant FilterTreeModel::data(const QModelIndex &index, int role) const
|
|||
switch (role) {
|
||||
case Qt::FontRole:
|
||||
if (!node->isLeaf()) {
|
||||
QFont f;
|
||||
// Family comes from the DeckList theme role; bold stays caller-side.
|
||||
QFont f = themeManager->appFont(AppFont::DeckList);
|
||||
f.setBold(true);
|
||||
return f;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include "../../client/settings/cache_settings.h"
|
||||
#include "../../interface/card_localization.h"
|
||||
#include "../../interface/card_picture_loader/card_picture_loader.h"
|
||||
#include "../../interface/theme_manager.h"
|
||||
#include "../card_dimensions.h"
|
||||
#include "../game_scene.h"
|
||||
#include "../z_values.h"
|
||||
|
|
@ -154,7 +155,7 @@ void AbstractCardItem::transformPainter(QPainter *painter, const QSizeF &transla
|
|||
painter->rotate(angle);
|
||||
painter->translate(-translatedSize.width() / 2, -translatedSize.height() / 2);
|
||||
|
||||
QFont f;
|
||||
QFont f = themeManager->appFont(AppFont::CardText);
|
||||
f.setPixelSize(fontSize * scale);
|
||||
|
||||
painter->setFont(f);
|
||||
|
|
|
|||