This follows the same pattern for theme_resources_touch_1x as we used for ui_resources_touch. I also introduced a gyp flag for enable_touch_ui at sky's suggestion.
BUG=115234
TEST=visual, run with --touch-optimized-ui and see bigger tabstrip and toolbar assets
Review URL: https://chromiumcodereview.appspot.com/10320002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@134942 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This CL does the following:
- add a new enable_metro build flag
- if the build flag is set then add a new metro icon resource pak to chrome
- at run time if Chrome is running in metro mode AND ENABLE_METRO is set then use the metro icon resource pak
BUG=114311
TEST=
Review URL: http://codereview.chromium.org/10082020
git-svn-id: http://src.chromium.org/svn/trunk/src/build@133843 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Currently all 1x art files are repacked into chrome.pak files.
This is a problem on Windows where we want to choose which pak file to load based on metro and DPI scale.
As a first step this CL does the following:
- add a new enable_hidpi build flag. This allows us to test HiDPI mode on Windows Chrome.
- stop packing theme_resources_standard.pak and ui_resources_standard.pak into chrome.pak
- update the Mac and Windows installer code to package the extra pak files.
Note, I'll be updating the Linux installer script in a separate CL. I'm still looking into the ChromeOS situation.
BUG=114311
TEST=Ran on Windows, and Mac and Linux.
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=132517
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=132760
Review URL: https://chromiumcodereview.appspot.com/10024050
git-svn-id: http://src.chromium.org/svn/trunk/src/build@133613 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
OFF by default; enable with a gyp var. E.g.
GYP_DEFINES="$GYP_DEFINES gtest_target_type=shared_library" android_gyp
Some useful commands:
adb uninstall org.chromium.native_test
adb install -r out/Release/base_unittests_apk/ChromeNativeTests-debug.apk
adb shell am start -n org.chromium.native_test/org.chromium.native_test.ChromeNativeTestActivity
For the moment, all apks can be built simultaneously but use the same
activity name. Thus you cannot have more than one installed at the
same time.
BUG=None
TEST=
Review URL: http://codereview.chromium.org/10051021
git-svn-id: http://src.chromium.org/svn/trunk/src/build@133053 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Currently all 1x art files are repacked into chrome.pak files.
This is a problem on Windows where we want to choose which pak file to load based on metro and DPI scale.
As a first step this CL does the following:
- add a new enable_hidpi build flag. This allows us to test HiDPI mode on Windows Chrome.
- stop packing theme_resources_standard.pak and ui_resources_standard.pak into chrome.pak
- update the Mac and Windows installer code to package the extra pak files.
Note, I'll be updating the Linux installer script in a separate CL. I'm still looking into the ChromeOS situation.
BUG=114311
TEST=Ran on Windows, and Mac and Linux.
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=132517
Review URL: http://codereview.chromium.org/10024050TBR=sail@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10115031
git-svn-id: http://src.chromium.org/svn/trunk/src/build@132804 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Currently all 1x art files are repacked into chrome.pak files.
This is a problem on Windows where we want to choose which pak file to load based on metro and DPI scale.
As a first step this CL does the following:
- add a new enable_hidpi build flag. This allows us to test HiDPI mode on Windows Chrome.
- stop packing theme_resources_standard.pak and ui_resources_standard.pak into chrome.pak
- update the Mac and Windows installer code to package the extra pak files.
Note, I'll be updating the Linux installer script in a separate CL. I'm still looking into the ChromeOS situation.
BUG=114311
TEST=Ran on Windows, and Mac and Linux.
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=132517
Review URL: http://codereview.chromium.org/10024050
git-svn-id: http://src.chromium.org/svn/trunk/src/build@132760 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Currently all 1x art files are repacked into chrome.pak files.
This is a problem on Windows where we want to choose which pak file to load based on metro and DPI scale.
As a first step this CL does the following:
- add a new enable_hidpi build flag. This allows us to test HiDPI mode on Windows Chrome.
- stop packing theme_resources_standard.pak and ui_resources_standard.pak into chrome.pak
- update the Mac and Windows installer code to package the extra pak files.
Note, I'll be updating the Linux installer script in a separate CL. I'm still looking into the ChromeOS situation.
BUG=114311
TEST=Ran on Windows, and Mac and Linux.
Review URL: http://codereview.chromium.org/10024050TBR=sail@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10103022
git-svn-id: http://src.chromium.org/svn/trunk/src/build@132529 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Currently all 1x art files are repacked into chrome.pak files.
This is a problem on Windows where we want to choose which pak file to load based on metro and DPI scale.
As a first step this CL does the following:
- add a new enable_hidpi build flag. This allows us to test HiDPI mode on Windows Chrome.
- stop packing theme_resources_standard.pak and ui_resources_standard.pak into chrome.pak
- update the Mac and Windows installer code to package the extra pak files.
Note, I'll be updating the Linux installer script in a separate CL. I'm still looking into the ChromeOS situation.
BUG=114311
TEST=Ran on Windows, and Mac and Linux.
Review URL: http://codereview.chromium.org/10024050
git-svn-id: http://src.chromium.org/svn/trunk/src/build@132517 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Interesting changes in this range:
* The tooling infrastructure landed. Not observable, but it makes it easier
to write clang tools.
* Honor -fno-pic, pie support
* Better diagnostics for several c++11 features
* Cross-compiler changes that hopefully make CrOs clang builds simpler
* Many LTO fixes
Also pick up a minor change to the style plugin: Instead of ignoring
problems below out/, it now ignores them below gen/ and geni/. This
should make it work better with custom build directories.
BUG=none
TEST=none
TBR=mark
Review URL: http://codereview.chromium.org/10081013
git-svn-id: http://src.chromium.org/svn/trunk/src/build@132350 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
While we sort out the remaining linker errors, this at least ensures we
can add compliation of a bunch of chrome code for Android to gatekeeper.
This is motivated by having the android unit_tests compilation step
broken 4 out of 4 days this week.
BUG=117407
Review URL: http://codereview.chromium.org/10065018
git-svn-id: http://src.chromium.org/svn/trunk/src/build@132154 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
When Chrome is built with -fprofile-generate in *_extra_cflags, it needs to link
against gcov. Adding -lgcov to the link line doesn't help because it occurs
before -Wl,--start-group. This flag correctly adds the required library if used
like the test case described below.
BUG=102550
TEST=GYP_DEFINES="debug_extra_cflags=-fprofile-generate libraries_for_target=-lgcov" ./build/gyp_chromium
make -j5 chrome # passes.
Review URL: http://codereview.chromium.org/10054022
git-svn-id: http://src.chromium.org/svn/trunk/src/build@132061 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This work is useful to make sure at build time that we are not accessing prefs that are not registered.
This CL addresses the prefs registered by:
BrowserInit::RegisterUserPrefs
PinnedTabCodec::RegisterUserPrefs
PluginsUI::RegisterUserPrefs
PromoResourceService::RegisterUserPrefs
Later CL:
Browser::RegisterUserPrefs
SyncPromoUI::RegisterUserPrefs
*::RegisterPrefs
BUG=120802
TEST=Compiled and made diff-ed the link error to make sure they are the same.
Review URL: http://codereview.chromium.org/9949033
git-svn-id: http://src.chromium.org/svn/trunk/src/build@131994 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Most of the included changes are minor. After this roll, we
have what went into the 1.6 release, and gmock now supports
being build as a DLL. (I want this roll for one of the minor
changes, which makes it possible to reenable
-Wnull-dereference for clang)
Turn -Wnull-dereference back on, fix one instance where a
violation snuck in.
BUG=111806
TEST=none
TBR=tony
Review URL: https://chromiumcodereview.appspot.com/9999025
git-svn-id: http://src.chromium.org/svn/trunk/src/build@131656 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This is copied from integer version, instead of using
template, to minimize conflict with m19 branch, as
using template requires updating forward declaration
of these classes in many places.
I put this behind gyp flag for now so that we can move forward without breaking non DIP build until we can get aura
working with DIP.
BUG=114664
TEST=none
Review URL: http://codereview.chromium.org/10025004
git-svn-id: http://src.chromium.org/svn/trunk/src/build@131405 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
dlldata.c is a generated file name that a bunch of idl build rules output but most do not actually compile it AFAICT. This was causing some targets in isimpledom (that contain multiple idl files) to output to the same name (dlldata.c), so uniquize it based on InputName. For the one target that seems to actually build dlldata.c, override back to the original name to keep things the same (iaccessible2).
Review URL: http://codereview.chromium.org/10008061
git-svn-id: http://src.chromium.org/svn/trunk/src/build@131232 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
The change adds a ENABLE_PROTECTOR_SERVICE condition to exclude
ProtectorService and related code. I have introduced protector_utils.h which
contains methods used by keyword_table.cc to sign and verify keywords.
Note: ChromeOS also excludes protector from the tests
(chrome_tests.gypi), but disables ProtectorService using a command line
switch.
BUG=117407
TEST=
Review URL: http://codereview.chromium.org/9863047
git-svn-id: http://src.chromium.org/svn/trunk/src/build@129910 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Enable one-click signin on Linux.
Build GTK version of one-click signin dialog.
BUG=120577
TEST=On Linux, with a clean profile, sign into GMail. The one-click infobar should pop up, and clicking "OK, sync" should bring up the one-click dialog.
Review URL: https://chromiumcodereview.appspot.com/9874006
git-svn-id: http://src.chromium.org/svn/trunk/src/build@129762 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This CL conceptually does several things (most of them just one line).
1. Roll RLZ 105:118
106: Fix "expression result unused" warning caused by VERIFY() use.
107: rlz: Add an implementation of PingServer() that uses chrome's net stack.
108: Implement RlzValueStoreMac.
109: Move GetMachineId() to its own file. No intended behavior change.
110: Implement GetSystemTimeAsInt64() on mac.
111: Minor cleanups.
112: Don't pay a static initializer for expected_assertion_ when it's not used.
113: Rename rlz_lib2.cc and win/lib/rlz_lib.cc to win/lib/rlz_lib_win.cc
114: mac: Implement GetMachineId().
115: mac: Implement the locking part of ScopedRlzValueStoreLock.
116: Tweaks to make the use of chrome's net stack forceable through gyp.
117: Push RLZ_NETWORK_IMPLEMENTATION_ define to dependent targets.
118: Use base::mac::ScopedNSAutorleasePool only on mac.
2. Change rlz.cpp to use the blocking pool instead of the file thread.
3. Enable on mac.
4. Switch to chrome's network stack on windows
5. Switch RlzSendFinancialPingFunction to be an AsyncExtensionFunction
that calls SendFinancialPing on a worker thread. This is required because
extension functions run with a MessageLoop, so the MessageLoop in
SendFinancialPing in rlz would trigger an assert (and making that inner
loop nestable seems like a very bad idea). This change also removes
one instance of ScopedAllowIO and fixes a TODO.
BUG=46579
TEST=
1.) Do an official chrome build
2.) Add gratuitous logging in rlz.cc and other places and check that by default:
* The channel is reported as "stable"
* The brand code is the empty string
* This brand code counts as organic install
* RLZ exits early.
3.) Create ~/Library/Google/Google\ Chrome\ Brand.plist and add e.g. the string "BRAND" for key KSBrandID, restart chrome.
* Brand code is now "BRAND" (this depends on Chrome's Info.plist not having a KSBrandID key, which has precedence. Currently our Chromes seem to never have this key.)
* A ping is scheduled, but nothing is sent.
* Use the omnibox a little, which causes product events to be recorded.
4.) Restart chrome yet again, wait a bit.
* Logging in "SendFinancialPing()" should print:
pinging http://clients1.google.com:80/tools/pso/ping?as=chrome&brand=BRAND&pid=&hl=en&events=C1F,C1S&rep=2&rlz=C1:1C1_____enUS476,C2:1C2_____enUS476&id=0926C138C2EA77A791CB450D322D0183E5A8079300000001B5
ping completed!
TBR=sky
Review URL: https://chromiumcodereview.appspot.com/9699054
git-svn-id: http://src.chromium.org/svn/trunk/src/build@129028 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
New stuff:
* ObjC number, array, dict literals
* ASan fixes, visibility fixes (see bugs)
* (c++11: User-defined literals)
* -Wstring-plus-int
* Fix for a bug that made the last roll not work with goma
BUG=114996,112539,119119
TEST=none
Review URL: http://codereview.chromium.org/9836038
git-svn-id: http://src.chromium.org/svn/trunk/src/build@128696 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Enable one-click signin on OS X.
Build Cocoa version of one-click signin dialog.
Refactor one-click signin code to make it easier to unit test.
BUG=116685
TEST=On OSX, with a clean profile, sign into GMail. The one-click infobar should pop up, and clicking "OK, sync" should bring up the one-click dialog.
Review URL: https://chromiumcodereview.appspot.com/9753003
git-svn-id: http://src.chromium.org/svn/trunk/src/build@128126 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This patch removes the need of exporting / setting
CROSS_C* variables when calling make for android.
Instead, set them at Makefile generation time so that gyp will
set the right compilers when calling android_gyp.
This also allows goma builds.
BUG=
TEST=builds for android.
Review URL: http://codereview.chromium.org/9693042
git-svn-id: http://src.chromium.org/svn/trunk/src/build@127667 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
The optimizations may fail under certain conditions. This is the case in,
for example, WebKit WTF's Checked type, and causes test failures. As this
may affect more than just that code, disable it for the entirety of Chromium
when building for Android.
BUG=
TEST=TestWebKitAPI passes all tests.
Review URL: http://codereview.chromium.org/9704057
git-svn-id: http://src.chromium.org/svn/trunk/src/build@127262 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
depends on http://codereview.chromium.org/9466022/
depends on http://codereview.chromium.org/9465018/
BUG=110050
TEST=When the profile is not connected to a google account, each time the user
logs in to a google property an infobar will ask the user if he would like to
connect the profile to this account. If so, a dialog pops up with more
information, and allows the user to start or cancel. The user can also not
choose the default sync settings, in which case pressing start will bring
up the advanced sync dialog.
Review URL: http://codereview.chromium.org/9453035
git-svn-id: http://src.chromium.org/svn/trunk/src/build@124996 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This change allows us to tweak these options without restarting the
build masters and submit try jobs that tweak them.
It also simplifies usage of these tools, because instead of copying and
pasting a large block of gyp variables from
tools/build/scripts/masters/factor/chromium_factory.py into GYP_DEFINES
or .gyp/include.gyp, developers can simply set build_for_tool=mytool.
My plan is to change the chromium.fyi master to use build_for_tool=*
first, and revert if those bots break. If they stay green, I'll send a
change to update chromium.memory.fyi and completely remove
ChromiumFactory.MEMORY_TOOLS_GYP_DEFINES.
I intend to remove all the otherwise unused (win_)(release|debug)_*
options that we exposed later. This change is supposed to be the
simplest thing that works.
R=maruel@chromium.org,timurrrr@chromium.org
BUG=109780
TEST=built with build_for_tool=drmemory locally
Review URL: http://codereview.chromium.org/9516005
git-svn-id: http://src.chromium.org/svn/trunk/src/build@124323 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Shadow stacks use -finstrument-functions to hook all function entry/exit.
But mmx-related functions expect to be inlined so the compiler can
compile them out into mmx instructions.
This change excludes the mmx intrinsics header file from instrumentation.
Without it, builds wil fail with errors like the following:
../../third_party/gold/gold64: obj/media/libyuv_convert.a(obj/media/base/yuv_convert.yuv_convert.o): in function media::EmptyRegisterState():yuv_convert.cc(.text._ZN5media18EmptyRegisterStateEv+0x29): error: undefined reference to '_mm_empty()'
(_mm_empty() is an mmx intrinsic function.)
Review URL: http://codereview.chromium.org/9416068
git-svn-id: http://src.chromium.org/svn/trunk/src/build@123289 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
On a Google-internal ChromeOS builder make seems to exit with a
failure code no error message I can identify.
git-svn-id: http://src.chromium.org/svn/trunk/src/build@121264 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
[This CL was backed out speculatively due to failures on the cros trunk bot. But this CL
was not the cause of that problem, so I'm un-doing the revert.]
Currently, gyp attempts to autodetect whether the linker supports
the --icf flag. It's more predictable to just require the caller
to specify whether they're using gold.
As a first demonstration of this, drop LINKER_USES_ICF code in the
Chrome build. (I'll follow up with a gyp patch to remove the
LINKER_USES_ICF stuff in gyp.)
Review URL: https://chromiumcodereview.appspot.com/9368015TBR=evan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9372012
git-svn-id: http://src.chromium.org/svn/trunk/src/build@121175 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Currently, gyp attempts to autodetect whether the linker supports
the --icf flag. It's more predictable to just require the caller
to specify whether they're using gold.
As a first demonstration of this, drop LINKER_USES_ICF code in the
Chrome build. (I'll follow up with a gyp patch to remove the
LINKER_USES_ICF stuff in gyp.)
Review URL: http://codereview.chromium.org/9316110
git-svn-id: http://src.chromium.org/svn/trunk/src/build@121068 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
(Reland of r120385 with newer third_party/gold.)
Rather than forcing everyone to configure their search paths etc.
we should just make this work by default. You can set
the gyp variable linux_use_gold_binary=0 to turn it off.
Review URL: https://chromiumcodereview.appspot.com/9316002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@120424 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
WebUI Task Manager does not ship on M18 on Desktop Chromes (Win/Mac/Linux) so that task manager have been disabled temporary. On Chrome OS and Aura, it is still enabled.
BUG=97429
TEST=manual on linux and aura
Review URL: http://codereview.chromium.org/9290042
git-svn-id: http://src.chromium.org/svn/trunk/src/build@119612 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This allows text drawing entirely through Skia, since RenderText ultimately uses
Skia to draw character glyphs.
This CL adds the new code, but does not yet enable it on any platforms. That
will be done in later CLs.
Note: Some functions, such as CanvasSkia::DrawStringWithHalo() and
PixelShouldGetHalo() are taken almost verbatim from the canvas_skia_win.cc
implementation.
BUG=105550
TEST=none
Review URL: http://codereview.chromium.org/9074005
git-svn-id: http://src.chromium.org/svn/trunk/src/build@119086 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Rather than globally defining NO_HEAPCHECKER and then checking
that in build_config.h, let builds that opt in to heap checking
directly set USE_HEAPCHECKER.
Result should be equivalent builds but less stuff in the build
files.
Review URL: http://codereview.chromium.org/9146022
git-svn-id: http://src.chromium.org/svn/trunk/src/build@118823 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This replaces the aura_show_about_flag_window_mode and
chromeos_legacy_power_button GYP flags with
--aura-force-compact-window-mode and
--aura-legacy-power-button command-line switches. There is
concern that using compile-time flags to control these
features will greatly increase the workload on the Chrome OS
builders; we apparently currently share Chrome binaries
across all Chrome OS boards with the same architecture.
BUG=109209,109052,chrome-os-partner:7570
TEST=manual
Review URL: https://chromiumcodereview.appspot.com/9264025
git-svn-id: http://src.chromium.org/svn/trunk/src/build@118522 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This change toggles the build_webkit_exes_from_webkit_gyp file to 0,
so that we try to build DumpRenderTree and webkit_unit_tests from their
corresponding .gyp files (WebKitUnitTests.gyp and Tools.gyp) rather than
the old WebKit.gyp file. This breaks the circular dependencies between
the executables which depend on webkit_support, which depends on
WebKit.gyp. We now only use the 'webkit' target itself in WebKit.gyp.
R=tony@chromium.org
BUG=105826
TEST=waterfall stays green
Review URL: https://chromiumcodereview.appspot.com/8889039
git-svn-id: http://src.chromium.org/svn/trunk/src/build@118366 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
According to my testing, VS 2010 does not have problem (b) documented
at http://code.google.com/p/chromium/wiki/WindowsPrecompiledHeaders,
i.e. it rebuilds the PCH file when necessary because of
e.g. preprocessor flag changes.
Since we aren't using VS 2010 for official builds, if problem (a) (out
of memory) is encountered with VS 2010 when we make the switch to
using it for official builds, we can simply turn PCH off explicitly in
the include.gypi for the official bots.
This change has no effect on VS 2008 bots or users.
BUG=110001
Review URL: http://codereview.chromium.org/9139059
git-svn-id: http://src.chromium.org/svn/trunk/src/build@117845 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
1) Actually turn off ASLR for Debug build.
Despite the comments, this was not happening in reality
because the /dynamicbase linker flag overrode the
VCLinkerTool.RandomizedBaseAddress setting.
2) Make the ASLR setting configurable from outside
(target usage is for particular Dr. Memory builds).
TEST=Built googleurl_unittests and ensured its ALSR setting matched that requested, both for default and for custom via new gyp var
BUG=109767
Review URL: http://codereview.chromium.org/9169020TBR=bruening@chromium.org
Review URL: http://codereview.chromium.org/9194003
git-svn-id: http://src.chromium.org/svn/trunk/src/build@117586 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
1) Actually turn off ASLR for Debug build.
Despite the comments, this was not happening in reality
because the /dynamicbase linker flag overrode the
VCLinkerTool.RandomizedBaseAddress setting.
2) Make the ASLR setting configurable from outside
(target usage is for particular Dr. Memory builds).
TEST=Built googleurl_unittests and ensured its ALSR setting matched that requested, both for default and for custom via new gyp var
BUG=109767
Review URL: http://codereview.chromium.org/9169020
git-svn-id: http://src.chromium.org/svn/trunk/src/build@117533 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Most official Chrome OS hardware reports power button
releases correctly, but on standard x86 systems, we'll always
receive a button up event just after the button down. This
change adds a chromeos_legacy_power_button gyp flag; when
set, we lock the screen or shut down immediately when the
button is pressed instead of providing interactive
animations.
BUG=109209
TEST=added tests; also did manual testing
Review URL: http://codereview.chromium.org/9110044
git-svn-id: http://src.chromium.org/svn/trunk/src/build@116993 4ff67af0-8c30-449e-8e8b-ad334ec8d88c