Commit Graph

21578 Commits

Author SHA1 Message Date
bsalomon
fe3456cb00 Move SkGLContext and some GrGLInterface implementations to skgputest module
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1815823002
CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot

Review URL: https://codereview.chromium.org/1815823002
2016-03-30 08:35:09 -07:00
halcanary
b4a7f144b4 DM: allow vias to work with PDF backend
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1837263007

Review URL: https://codereview.chromium.org/1837263007
2016-03-30 08:31:27 -07:00
djsollen
7c9c4a775d Force include test to run on every compile.
Also fix the tool to stop looking in the src dir for includes.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1839123004

Review URL: https://codereview.chromium.org/1839123004
2016-03-30 08:28:02 -07:00
robertphillips
40d8d62854 Update Morphology image filter to store its type
TBR=bsalomon@google.com

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1834953002

Review URL: https://codereview.chromium.org/1834953002
2016-03-30 08:09:57 -07:00
borenet
15bc5603e4 Fixes for Swarming recipes
BUG=skia:4763
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1827413002
NOTRY=true

Review URL: https://codereview.chromium.org/1827413002
2016-03-30 07:41:32 -07:00
robertphillips
372177ee11 Switch SkLocalMatrixImageFilter and SkPaintImageFilter over to sk_sp
TBR=reed@google.com

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1842793002

Committed: https://skia.googlesource.com/skia/+/a33cf07a2273315363c0b6fb5d3ce811742f5a85

Review URL: https://codereview.chromium.org/1842793002
2016-03-30 07:32:28 -07:00
brianosman
2e77ddbb5e Blacklist shapes benchmarks on Mali400 bot.
BUG=skia:4966
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1839193002

Review URL: https://codereview.chromium.org/1839193002
2016-03-30 06:30:46 -07:00
cdalton
c28afdb4ef Add test configs for nvpr with atlas text
Adds nvpr4 and nvpr16, which use nvpr for paths and atlas for text.

Renames nvprmsaa4 and nvprmsaa16 to nvprdit4, nvprdit16. These use nvpr
for both paths and text.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1834693002

Review URL: https://codereview.chromium.org/1834693002
2016-03-29 20:05:08 -07:00
djsollen
890579051d Revert of Switch SkLocalMatrixImageFilter and SkPaintImageFilter over to sk_sp (patchset #6 id:100001 of https://codereview.chromium.org/1842793002/ )
Reason for revert:
This CL is causing the autoroll into Chromium & google3 to fail.

Original issue's description:
> Switch SkLocalMatrixImageFilter and SkPaintImageFilter over to sk_sp
>
> TBR=reed@google.com
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1842793002
>
> Committed: https://skia.googlesource.com/skia/+/a33cf07a2273315363c0b6fb5d3ce811742f5a85

TBR=fmalita@chromium.org,reed@google.com,robertphillips@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1837293003
2016-03-29 19:07:07 -07:00
herb
308d988cba Add repeatSpan and change interface name.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1841793002

Review URL: https://codereview.chromium.org/1841793002
2016-03-29 14:48:44 -07:00
robertphillips
a33cf07a22 Switch SkLocalMatrixImageFilter and SkPaintImageFilter over to sk_sp
TBR=reed@google.com

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1842793002

Review URL: https://codereview.chromium.org/1842793002
2016-03-29 13:54:26 -07:00
jcgregorio
9b2ef62d47 fiddle: Only output errors to stderr.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1843733002

Review URL: https://codereview.chromium.org/1843733002
2016-03-29 12:29:19 -07:00
reed
cfb6bdf767 switch xfermodes over to sk_sp
waiting on https://codereview.chromium.org/1835163002/

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1832223002

Review URL: https://codereview.chromium.org/1832223002
2016-03-29 11:32:50 -07:00
brianosman
3ebd2760dd Dirty mipmaps whenever we upload new contents for a texture.
Found a bug where we rendered with two identically sized textures. On
the first frame, everything worked. On subsequent frames, we would get
the other texture from the cache, causing us to inherit the mips from
the wrong texture.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1836143003

Review URL: https://codereview.chromium.org/1836143003
2016-03-29 11:27:20 -07:00
halcanary
6e26205cec SkPDF: skia_pdf_less_compression - for debugging only
Motivation: as we implement more features in PDF, it would be nice to more easily see what is happening in the output.  This change serializes page content as plain text rather than compressed text, but it has to be explicitly enabled with a GYP_DEFINE change:

    export GYP_DEFINES='skia_pdf_less_compression=1'
    bin/sync-and-gyp
    ninja -C out/Debug dm
    out/Debug/dm --config pdf --src gm -w /tmp

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1840103002

Review URL: https://codereview.chromium.org/1840103002
2016-03-29 10:10:24 -07:00
halcanary
ffe54004b9 SkPDF: milestone in metadata, also SkMilestone.h
TBR=reed@google.com

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1823753002

Review URL: https://codereview.chromium.org/1823753002
2016-03-29 09:09:29 -07:00
halcanary
9d524f22bf Style bikeshed - remove extraneous whitespace
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1842753002

Review URL: https://codereview.chromium.org/1842753002
2016-03-29 09:03:53 -07:00
kjlubick
e577693b3b Prevent waiting for charge twice
BUG=skia:5111
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1840003002

Review URL: https://codereview.chromium.org/1840003002
2016-03-29 05:50:41 -07:00
bsalomon
7888de0db7 Fix GrConvexPolyEffect to deal with line paths.
BUG=skia:4727
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1839743002

Review URL: https://codereview.chromium.org/1839743002
2016-03-28 15:04:45 -07:00
msarett
5cd0ed38ab Delete SkImageDecoder_empty
We no longer need this now that the Chrome build files have been
updated to use SkImageEncoder_none (which is an identical file).

TBR=djsollen@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1832363002
CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot

Review URL: https://codereview.chromium.org/1832363002
2016-03-28 13:57:10 -07:00
benjaminwagner
af3b35ec35 Remove GLFW from public.bzl.
Added in https://codereview.chromium.org/1842463002

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1835363002

Review URL: https://codereview.chromium.org/1835363002
2016-03-28 13:27:28 -07:00
robertphillips
5ff17b1352 Swap SkPictureImageFilter's factories over to smart pointers
A trial balloon before converting the rest

This requires https://codereview.chromium.org/1836443003/ (add SK_SUPPORT_LEGACY_IMAGEFILTER_PTR flag for future skia CL) to land in Chromium first
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1831323003

Review URL: https://codereview.chromium.org/1831323003
2016-03-28 13:13:42 -07:00
mtklein
02b2f1900d We meant these to be YES... sigh.
This will dramatically improve link times with XCode 7.3.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1835303003

Review URL: https://codereview.chromium.org/1835303003
2016-03-28 12:43:39 -07:00
egdaniel
af132770a9 Change VkPipelineStateCahce to use Hash and LRU LList.
This simplifies the caching code and forms the base for a caching template
that will be easier to use for other objects within Vulkan.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1836863002

Review URL: https://codereview.chromium.org/1836863002
2016-03-28 12:39:29 -07:00
bsalomon
dec294375a Remove the GrGLInterface callback mechanism.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1836013002

Review URL: https://codereview.chromium.org/1836013002
2016-03-28 12:25:09 -07:00
benjaminwagner
e0d62a5177 Remove advance[XY]Fixed getters.
Reverts https://codereview.chromium.org/1772863002 after updating Android.

BUG=skia:4632
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1842453002

Review URL: https://codereview.chromium.org/1842453002
2016-03-28 12:25:04 -07:00
egdaniel
c5ec140829 Use NV glsl shader compiler for Vulkan
The nvidia direct glsl shader compiler seems to perform much better than using
shaderc to compile to spir-v first.

This change also includes a change to prefer host cached memory for buffers.
Having cached buffers signifcantly improves performance whenever we need to do
buffer reads and writes.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1835813003

Review URL: https://codereview.chromium.org/1835813003
2016-03-28 12:14:43 -07:00
halcanary
2be7e01382 SkPDF: PDFDevice::ContentEntry now implemented with SinglyLinkedList
add SkSinglyLinkedList<T> class

no change in SkPDF output.

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1839633003

Review URL: https://codereview.chromium.org/1839633003
2016-03-28 11:58:08 -07:00
abarth
7fb19bc229 Add GLFW support for GrGLCreateNativeInterface
This file lets us use Skia's GPU backend with GLFW.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1827153003
CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot

Review URL: https://codereview.chromium.org/1827153003
2016-03-28 11:34:27 -07:00
bungeman
df801aac5f Remove SK_IGNORE_MAC_FONT_WEIGHT_FIX.
This is now a dead define, and the changes have been rebased in both
Skia gold and Blink layout tests.

BUG=5095
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1837783002

Review URL: https://codereview.chromium.org/1837783002
2016-03-28 11:24:04 -07:00
robertphillips
090b7629da Temporary fix for --preAbandonGpuContext bug
In this instance what is going wrong is:
  the context gets abandoned
  SkCanvas tries to create a new SkGpuDevice (which fails)
  if then creates a bitmap device
  it then attempts to draw the abandoned GrTexture (behind the old SkGpuDevice into the new bitmap device with an image filter
  b.c. some image filters still switch their behavior based on the presence of a texture bad stuff happens

This used to be resolved by the new bitmap device getting forced down the bitmap path and then failing when it attempted to readback the GrTexture.

BUG=skia:5138

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1840663002

Review URL: https://codereview.chromium.org/1840663002
2016-03-28 11:07:43 -07:00
benjaminwagner
dfed06f6ff Make SkFixed private.
Removed from Chromium in https://codereview.chromium.org/1698083004 and https://codereview.chromium.org/1752953003.

Removed from Android in 895781.

Removed from Google3 in internal cl/118359061.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1839653002

Review URL: https://codereview.chromium.org/1839653002
2016-03-28 10:32:06 -07:00
rmistry
8ce5912fe3 Skip toolchain downloads for a few android tools.
This is an attempt to avoid downloading the android toolchain when not required.
I went through all binaries listed in https://code.google.com/p/chromium/codesearch#chromium/build/scripts/slave/recipe_modules/skia/android_flavor.py except for android_ninja.

BUG=skia:5119
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1832883002

Review URL: https://codereview.chromium.org/1832883002
2016-03-28 09:35:41 -07:00
halcanary
c61edcc2b8 rm src/ports/SkTime_*.cpp
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1833283002

Review URL: https://codereview.chromium.org/1833283002
2016-03-28 09:00:22 -07:00
halcanary
b8fb9934a0 SkPDF s/SkAutoTDelete/std::unique_ptr/
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1837553002

Review URL: https://codereview.chromium.org/1837553002
2016-03-28 07:58:30 -07:00
jvanverth
e50f3e7539 Add WSI functions to GrVkInterface
BUG=skia:5043
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1834903003

Review URL: https://codereview.chromium.org/1834903003
2016-03-28 07:03:06 -07:00
update-skps
6d37635636 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1835193002

Review URL: https://codereview.chromium.org/1835193002
2016-03-27 00:30:19 -07:00
Brian Salomon
92271fc314 Don't crash when resource path is omitted
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1840573004

Review URL: https://codereview.chromium.org/1840573004 .
2016-03-25 21:38:09 -04:00
halcanary
fdc88b5aa6 rm src/animator/SkTime.cpp
It was empty anyway.

Review URL: https://codereview.chromium.org/1835073002
2016-03-25 15:22:47 -07:00
halcanary
73557f6c3f SkPDF: remove margin foolishness
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1837453003

Review URL: https://codereview.chromium.org/1837453003
2016-03-25 14:44:33 -07:00
Brian Salomon
d2100f20a9 Don't crash when resource path isn't specified
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1838583002
BUG=skia:

Review URL: https://codereview.chromium.org/1838583002 .
2016-03-25 17:02:20 -04:00
benjaminwagner
2176f75b06 Remove Sk48Dot16. No longer used.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1831303003

Review URL: https://codereview.chromium.org/1831303003
2016-03-25 13:41:38 -07:00
brianosman
eb3429c6cd Re-enable CPU mipmap generation for Ganesh. Aniso mips were landed a while ago. However, the CPU builder fails when it sees Index8 (among other things), so change the code to fallback to GPU in that case. Additionally, if we're going to be mipping an sRGB image, don't use the CPU code (which is not yet gamma correct). Unfortunately, this means that we will often be using the GPU path, still - with recent codec changes, most images are coming in tagged as sRGB.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1835003002

Committed: https://skia.googlesource.com/skia/+/b0ac1af7fab467aacbc27d20d14a09bcb960472f

Review URL: https://codereview.chromium.org/1835003002
2016-03-25 13:03:03 -07:00
benjaminwagner
ec4d4d784d Change SkTime::GetMSecs to double; ensure values stored in SkMSec do not overflow.
The following are currently unused in Android, Google3, Chromium, and Mozilla:
  - SkEvent
  - SkTime::GetMSecs
  - SK_TIME_FACTOR (also unused in Skia)
  - SkAutoTime

I left uses of SkMSec more-or-less intact for SkEvent, SkAnimator, and SkInterpolator. SkInterpolator is used in Chromium, so I did not want to change the API. The views/ and animator/ code is crufty, so it didn't seem worthwhile to refactor it. Instead, I added SkEvent::GetMSecsSinceStartup, which is likely to be adequate for use in SampleApp.

I also left SkMSec where it is used to measure a duration rather than a timestamp. With the exception of SkMovie, which is used in Android, all of the uses appear to measure the execution time of a piece of code, which I would hope does not exceed 2^31 milliseconds.

Added skiatest::Timer to support a common idiom in tests where we want to measure the wallclock time in integer milliseconds. (Not used in tests/PathOpsSkpClipTest.cpp because it redefines things in Test.h.)

Removed tabs in tests/StrokerTest.cpp.

BUG=skia:4632
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1811613004

Review URL: https://codereview.chromium.org/1811613004
2016-03-25 12:59:53 -07:00
brianosman
9cf31f40fb SkMipMap::Build supports 1xN and Nx1 inputs, so remove the special case from the test harness. Update a no-longer-correct comment.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1831983003

Review URL: https://codereview.chromium.org/1831983003
2016-03-25 12:55:52 -07:00
cdalton
397536cabe Consolidate GPU buffer implementations
Consolidates all the different buffer implementations into a single
GrBuffer class. This will allow us to add new buffer types, use DSA in
OpenGL, track buffer bindings by unique ID, cache buffers without
respect to the type of data they have been used for previously, etc.
This change is strictly a refactor; it introduces no change in
functionality.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1825393002

Committed: https://skia.googlesource.com/skia/+/8b1bff29675afd25843439eade634a57f68fe16f

Review URL: https://codereview.chromium.org/1825393002
2016-03-25 12:15:03 -07:00
msarett
dd26a3ba0a Compile default SkMovie on cmake
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1835033002
CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot

Review URL: https://codereview.chromium.org/1835033002
2016-03-25 12:13:17 -07:00
scroggo
77899d1220 Move SkRWBuffer.h to include/ and add SK_API
Needed for use in Blink in crrev.com/1812273003
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1838463003

Review URL: https://codereview.chromium.org/1838463003
2016-03-25 12:00:15 -07:00
halcanary
a50151dcb5 SkPDF: draw{Image,Bitmap} always serializes early
Before this change, the PDFCanon held a map from BitmapKeys
to SkImages for de-duping bitmaps.  Even if the PDFDocument
serialized images early, the Canon still held a ref to that
image inside the map.  With this change, the Canon holds a
single map from BitmapKeys to PDFObjects.  Now, Images are
only held by the PDFObject, which the document serializes
and drops early.

This change also:

-   Moves SkBitmapKey into its own header (for possible
    reuse); it now can operate with images as well as
    bitmaps.

-   Creates SkImageBitmap, which wraps a pointer to a bitmap
    or an image and abstracts out some common tasks so that
    drawBitmap and drawImage behave the same.

-   Modifies SkPDFCreateBitmapObject to take and return a
    sk_sp<T>, not a T*.

-   Refactors SkPDFDevice::internalDrawImage to use bitmaps
    or images (via a SkImageBitmap).

-   Turns on pre-serialization of all images.

BUG=skia:5087

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1829693002

Review URL: https://codereview.chromium.org/1829693002
2016-03-25 11:57:49 -07:00
brianosman
b3c9e4faaa Revert of Re-enable CPU mipmap generation for Ganesh. Aniso mips were landed a while ago. However, the CPU bu… (patchset #1 id:1 of https://codereview.chromium.org/1835003002/ )
Reason for revert:
Speculative - seems likely to be the results of nanobench crashes on several bots.

Original issue's description:
> Re-enable CPU mipmap generation for Ganesh. Aniso mips were landed a while ago. However, the CPU builder fails when it sees Index8 (among other things), so change the code to fallback to GPU in that case. Additionally, if we're going to be mipping an sRGB image, don't use the CPU code (which is not yet gamma correct). Unfortunately, this means that we will often be using the GPU path, still - with recent codec changes, most images are coming in tagged as sRGB.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1835003002
>
> Committed: https://skia.googlesource.com/skia/+/b0ac1af7fab467aacbc27d20d14a09bcb960472f

TBR=reed@google.com,bsalomon@google.com,cblume@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1836563002
2016-03-25 11:54:32 -07:00