Philipp von Weitershausen
dafa05caeb
Bug 557588 - code audit and create unit test plan for engines.js [r=mconnor]
...
Tests for EngineMangerSvc, Engine and SyncEngine sans sync().
2010-06-01 15:06:16 -07:00
Edward Lee
bf1483e06b
Bug 569428 - Add tests for FormEngine (Store)
2010-06-01 12:44:51 -07:00
Edward Lee
42d5f65cf3
Bug 557591 - Add tests for Utils.sha1.
2010-06-01 11:59:21 -07:00
Edward Lee
e9dcf1dbb5
Bug 557591 - Add tests for Utils.anno with invalid uris.
2010-06-01 11:30:11 -07:00
Edward Lee
55e055bb98
Bug 568707 - "key is not defined" results in broken form history service [r=mconnor]
...
Pretend to call a function with "key" to keep it around.
2010-05-27 17:32:15 -07:00
Mike Connor
6c55e65cf7
Bug 567650 - missed weave rebranding, r=Mardak
...
--HG--
extra : rebase_source : b9a8ec3eec5639c9b73fcb705bd52961d7816ba0
2010-05-27 14:11:16 -04:00
Edward Lee
8fd0b69ca3
Bug 568518 - Unhelpful log messages [r=mconnor]
...
Remove "Server attack" from exceptions.
2010-05-27 11:04:30 -07:00
Edward Lee
d658d7f0cb
Bug 568440 - sync errors when resetting sync at the same time as other syncs are occurring [r=mconnor]
...
Clear out cached crypto and keys if info collections says they've been modified.
2010-05-27 11:04:26 -07:00
Edward Lee
69526a658b
Bug 568256 - form history changes breaks form sync, FF search bar, probably more [r=mconnor]
...
Check for both old and new class IDs and use the one that exists when wrapping. Also add FormTracker as the observer object so that its notify function is correctly called by nsHTMLFormElement.
--HG--
extra : rebase_source : 470430eaa643415e635836db3c38fb639a4e44b6
2010-05-26 11:56:04 -07:00
Mike Connor
21899cdb80
Bug 567364 - final tweaks, r=Mardak
...
--HG--
extra : rebase_source : d103816fec7641a6f5a672a6b8557f2bbbb56566
2010-05-21 17:41:19 -04:00
Edward Lee
975a3a25f8
Bug 567371 - replace server and replace local options does not sync certain Passwords/bookmarks [r=mconnor]
...
Make sure to clear local cache when deleting crypto records from the server. Handle missing crypto by deleting any existing data and reuploading. Fix broken records by uploading new ones.
2010-05-21 12:15:58 -07:00
Edward Lee
668a13002f
Add tests for Utils.jsonSave and Utils.jsonLoad.
2010-05-20 18:03:19 -07:00
Edward Lee
b88a69b137
Bug 557591 - Add tests for Utils.makeURI.
2010-05-19 09:40:45 -07:00
Edward Lee
ed64fcea5f
Bug 557591 - Add tests for Utils.sha256HMAC.
2010-05-18 13:40:12 -07:00
Edward Lee
15d82d14a7
Bug 557591 - Add tests for Utils.stackTrace.
2010-05-17 14:17:32 -07:00
Edward Lee
bd4a46d064
Bug 557591 - Add tests for Utils.lazySvc. [r=mconnor]
...
Add a fake service that definitely won't exist for testing purposes.
2010-05-17 13:46:19 -07:00
Edward Lee
df6b9020d4
Bug 557591 - Add tests for Utils.lazy2/cb.
...
--HG--
rename : services/sync/tests/unit/test_utils_lazy.js => services/sync/tests/unit/test_utils_lazy2.js
2010-05-17 12:47:29 -07:00
Edward Lee
21c44d9420
Bug 557591 - Add tests for Utils.lazy/cb.
...
--HG--
extra : rebase_source : 4f2d102f31b2afa8d3c34261b63b344fccef824b
2010-05-17 12:43:20 -07:00
Mike Connor
7f1581245e
Bug 565164 - move privacy policy and terms of service to services.mozilla.com, r=Mardak
...
--HG--
extra : rebase_source : 78fbb621b9323fbd0967ff8271faad71307d22de
2010-05-17 13:58:33 -04:00
Edward Lee
71cd237b09
Bug 557591 - Add tests for Utils.deferGetSet.
2010-05-14 17:31:24 -07:00
Edward Lee
e914892380
Bug 557591 - Add tests for Utils.anno.
2010-05-10 18:08:52 -07:00
Edward Lee
24f449dae0
Bug 557591 - Add tests for Utils.makeGUID.
2010-05-10 17:22:48 -07:00
Edward Lee
425168f5ce
Bug 557591 - Add tests for Utils.notify.
2010-05-10 17:05:50 -07:00
Edward Lee
2ffe2680cd
Bug 557591 - Add tests for Utils.lock.
2010-05-10 16:42:04 -07:00
Edward Lee
ddaa666576
Bug 557591 - Add tests for Utils.catch.
...
--HG--
extra : rebase_source : 545492072668cfb6862dde756506e12cf43d4375
2010-05-10 16:22:32 -07:00
Mike Connor
06b7b99e8c
Bug 564637 - Don't reuse Terms of Service and Privacy Policy strings, r=Mardak
2010-05-10 13:27:02 -04:00
Mike Connor
62151c7489
Bug 564564 - remove crufty descriptions from Weave setup wizard, r=Mardak
...
--HG--
extra : rebase_source : 935af44353a0c62a2ad2ca409eba6b405362bb9e
2010-05-08 12:33:40 -04:00
Edward Lee
84b14b9afd
Bug 564533 - Register about: pages as sync instead of weave [r=mconnor]
...
Switch the component and uses in the UI to about:sync-*.
--HG--
extra : rebase_source : 854bb69cab9e6527986790d38f282ed16c6b3b0c
2010-05-07 15:42:50 -07:00
Mike Connor
2bf221af5f
Bug 563441 - Need better text for end of setup, r=mardak
...
--HG--
extra : rebase_source : 2a760b1e33d78a93a0ba470588de78e8c19f9ca4
2010-05-07 18:40:41 -04:00
Mike Connor
e3ff29780a
Bug 564523 - passphrase can match password for new accounts, r=Mardak
...
--HG--
extra : rebase_source : bae8d44f67c0f836efa1a6f607e6605f3d30b33b
2010-05-07 18:39:58 -04:00
Edward Lee
da26bdf611
Bug 564494 - Only show the activity log menu item for dev-channel releases [r=mconnor]
...
Hide the item by default and show only for the dev channel. Also only show the separator and time if there's a time. Register about:weave-log to access the activity log.
2010-05-07 15:24:51 -07:00
Mike Connor
e670005eb2
Bug 564365 - canceling setup, then setting up Weave, doesn't set firstrun pref, causing problems later, r=mardak
2010-05-07 16:16:37 -04:00
Mike Connor
bc21135d53
Bug 561192 - Rename add-on to Firefox Sync, update visuals, r=Mardak
2010-05-07 11:25:59 -04:00
Mike Connor
c52216af7a
Bug 564095 - wizard cleanup, r=Mardak
2010-05-07 00:02:40 -04:00
Mike Connor
11b09dae28
Bug 563868 - Provide better feedback when server is unreachable or doesn't have a server instance during setup. also fixes bug 564329. r=Mardak
2010-05-07 00:02:00 -04:00
Edward Lee
32ffff545f
Bug 563989 - Reset Sync option 3, doesn't properly propagate to other clients [r=mconnor]
...
Always sync client data by making sure it's always enabled and only update local cilent with remote commands. Make sure to sync clients to get a list of clients that need to receive commands. Also, make sure to upload data after wiping remote now that remoteSetup happens before wipeRemote.
2010-05-05 17:16:17 -07:00
Mike Connor
986396f4a0
Bug 563794 - Certain preferences are not syncing across browsers, r=Mardak
2010-05-04 18:46:10 -04:00
Mike Connor
d500173a72
Bug 563682 - Latest Secret phrase does not update in password manager, r=Mardak
...
--HG--
extra : rebase_source : bc6631f3d4732fb48ddb131cb36ce1bde23d991e
2010-05-04 16:56:12 -04:00
Mike Connor
18372106ac
Bug 561391 - Add hidden pref to let createAccount include X-Weave-Secret header to bypass captcha, r=Mardak
...
--HG--
extra : rebase_source : 7c26037977ab47b4f7bceb8ec9889786abd3f0fd
2010-05-04 16:55:34 -04:00
Edward Lee
0c62a45494
Bug 561839 - import PlacesUtils.jsm instead of utils.js [r=mconnor]
...
Try the new PlacesUtils file before the old utils.js.
2010-05-04 12:14:48 -07:00
Edward Lee
2a2cbfbad2
Bug 562515 - Reset sync option "Replace all data on this computer with your Weave data" is not handling local deletes correctly [r=mconnor]
...
Clear out any changed ids when wiping the client to prevent delete records from getting uploaded for these items.
2010-05-03 14:39:32 -07:00
Edward Lee
eb6d0834d7
Bug 562100 - need enhanced activity logging to measure sync performance from client [r=mconnor]
...
Track a start time and print the total sync time to hundredths of a second.
--HG--
extra : rebase_source : b1639875d527b0bfabe57be90413bb47ba0b05ce
2010-05-03 14:01:08 -07:00
Mike Connor
2b46d6a587
Bug 561382 - Theme doesn't dynamically switch on sync to default theme, r=Mardak
...
--HG--
extra : rebase_source : e2a8fe1659816065cd162c2514336ec6f5a07521
2010-05-03 16:44:18 -04:00
Edward Lee
152c9df466
Bug 559163 - Don't select from slow indexless views for just one item [r=mconnor]
...
Just select from moz_places instead of _view where data might be slightly stale but good enough.
2010-04-29 14:36:15 -07:00
Edward Lee
d5a98d02e2
Bug 554836 - On idle occurs 'JavaScript component does not have a method named: "onDeleteVisits"' [r=mconnor]
...
Add onDeleteVisits in addition to onPageExpired to maintain compatibility with old and new API.
2010-04-29 16:42:39 -07:00
Edward Lee
1fc133e489
Bug 556454 - engine.sync should always check engine.enabled [r=mconnor]
...
Just check if the engine is enabled at the beginning of sync. For now keep getEnabled as it's used for other behavior and not just sync.
2010-04-29 16:42:21 -07:00
Edward Lee
1618e0cb25
Bustage fix from sync-asyncExecute: don't throw as the old code would catch and implicit return undefined.
2010-04-29 15:18:05 -07:00
Edward Lee
5dbc80dbd3
Bug 553709 - Syncing "Browsing History" uses 100% of a CPU core for extended periods [r=mconnor]
...
Sync asyncExecute to avoid forcing synchronous waits on disk but keep existing calling conventions (no callbacks) for callers by using Sync.
2010-04-29 14:36:15 -07:00
Edward Lee
26717b95bc
Bug 558077 - Bookmark folder and its contents lost under certain conditions of syncing same named folder [r=mconnor]
...
Mark entries as dupe if they're known to be dupes locally so that receiving ends won't bother looking for dupes for these items.
--HG--
extra : rebase_source : 2623f7ed20160ba445b58f538c3397caa0ef78e3
2010-04-29 14:36:09 -07:00
Mike Connor
d59d71b959
Bug 560887 - Heartbeat doesn't detect new clients if the browser is closed before 1 hour, r=Mardak
2010-04-29 11:50:46 -04:00
Mike Connor
eb6db50e8a
Bug 562159 - Tabs from other computers don't show at about:weave-tabs, r=Mardak
...
--HG--
extra : rebase_source : 6e585fc3ddf75f3654286c08f1cd660586ce2de3
2010-04-28 22:20:08 -04:00
Mike Connor
f82bbb533c
Bug 551612 - Changes to Weave Sync Client to comply with European Privacy Policy, r=Mardak
...
--HG--
extra : rebase_source : 981175b74c23e54d131a2aa32b965493c9d8af30
2010-04-28 22:14:12 -04:00
Mike Connor
2b5f52b587
Bug 562183 - unify passphrase matching/validation code, r=Mardak
...
--HG--
extra : rebase_source : 8fcbccf159bcb92660fdd41c086c08073dc5e201
2010-04-28 18:06:44 -04:00
Edward Lee
29159af867
Bug 561005 - Use FakeSvc to grab binary crypto if js-ctypes doesn't work [r=zpao r=mconnor]
...
Lazily load the binary component service onto FakeSvc if ;2 fails to register on Svc.
2010-04-28 16:36:41 -07:00
Edward Lee
2a8342da17
Bug 561638 - Weave Error in Trunk Nightly (Status Bar Icon Missing) [r=mconnor]
...
Remove the extra name from get/set declarations now that Spidermonkey doesn't want them.
2010-04-26 11:37:12 -07:00
Mike Connor
7dd144218f
Bug 560937 - move all setup into a single wizard, and clean up interactions, r=mardak
2010-04-21 20:40:42 -04:00
Mike Connor
99319d631c
Bug 526012 - audit observer service usage, r=mardak
2010-04-20 21:56:44 -04:00
Mike Connor
9912926c15
Bug 556930 - Wrong secret phrase warning shows up when logging in, r=Mardak
2010-04-09 13:20:41 -04:00
Justin Dolske
75fe297323
Bug 513798 - Rewrite WeaveCrypto in JS. r=mconnor, r=dwitte
...
--HG--
rename : services/crypto/components/IWeaveCrypto.xpt => services/crypto/IWeaveCrypto.xpt
2010-04-21 19:02:16 -07:00
Edward Lee
fba87f0c14
Bug 553402 - New pages in a tab aren't synced [r=mconnor]
...
Trace pageshow events to indicate that new tab data should be uploaded. Because scores must be integers, still increment the score by 1, but only do that 10% of the time for pageshows.
2010-04-21 16:35:51 -07:00
Edward Lee
0f030153cc
Bug 558191 - Theme/persona sync sometimes doesn't happen until restart of client [r=mconnor]
...
Wait until all lightweight theme prefs have synced before poking at the lightweight theme manager.
2010-04-21 13:41:18 -07:00
Edward Lee
f05a827ed2
Bug 480448 - Get rid of code to delete old snapshots [r=mconnor]
...
SnapshotStore got removed with bug 524916 and hasn't been getting called for a long time now.
2010-04-21 11:10:32 -07:00
Edward Lee
30147177c1
Bug 437277 - update daily backup before first bookmark sync [r=mconnor]
...
Share an archiveBookmarks function that wraps the PlacesUtils call to be used from storage.wipe and first sync.
2010-04-21 11:10:32 -07:00
Edward Lee
12f3abb6e4
Bug 560184 - Proxy authentication: Initial Weave connection attempt doesn't time out [r=mconnor]
...
Delay the abort timer from the constructor in addition to onStartRequest and onDataAvailable in-case the callbacks never get called.
--HG--
extra : rebase_source : 1243f3baa468b13f8da28175b10aa99b2341e53a
2010-04-21 11:10:21 -07:00
Edward Lee
04e6b1f9a8
Bug 559674 - Put the xpi type (dev/rel) in the updated url [r=mconnor]
...
Add two constants: WEAVE_CHANNEL and UPDATED_URL that get preprocessed with @xpi_type@.
2010-04-15 16:33:09 -07:00
Edward Lee
f6bdda2750
Bug 559130 - Can't clear search history with Weave 1.2.1 [r=mconnor]
...
Return any value provided by the base form implementation while making sure we still notify before and after the call.
2010-04-15 13:13:49 -07:00
Edward Lee
74ee9ca0f3
Bug 534218 - Changing sync direction from outdated clients loses client/server data [r=mconnor]
...
Check remoteSetup first to determine if we're okay to sync before wiping client/remote. Additionally only wipe enabled engines instead of everything.
2010-04-14 15:00:29 -07:00
Mike Connor
a0b39324a1
bug 543851 - autoconnect should call _checkSync(), r=Mardak
2010-04-08 17:03:10 -04:00
Mike Connor
327c2da464
bug 556710 - Make mpLocked part of Utils, r=Mardak
2010-04-08 17:03:10 -04:00
Mike Connor
4f5f1a7edb
bug 556683 - password reset URL is hardcoded, r=Mardak
2010-04-08 17:03:10 -04:00
Mike Connor
ff2b435a77
bug 496485 - make Service.wipeServer work properly, r=Mardak
2010-04-07 20:06:37 -04:00
Mike Connor
db5f17224a
bug 551572 - 100% CPU when sitting on merge-choice screen, r=Mardak
...
--HG--
extra : rebase_source : 1b2d36ff6d6d80b81cdadaad4fb53592f851e903
2010-04-05 23:53:31 -04:00
Edward Lee
ea7a2f7ba7
Bug 558654 - Firefox crashes every ~2min after update to 1.2 [r=mconnor]
...
Limit the number of initial form entries to 500 ordered by "frecency".
2010-04-11 12:34:27 -07:00
Edward Lee
1532b85056
Bug 558264 - Form data fails to sync when there's nothing to upload [r=mconnor]
...
Wrap the createStatement calls to guard against missing guid columns and lazily add it.
--HG--
extra : rebase_source : c59a692c6ad08321835c75023b54f02e8d1964da
2010-04-09 10:20:58 -07:00
Mike Connor
e303ce2d95
bug 558209 - Change password text says minimum is 12 characters
2010-04-08 21:57:21 -04:00
Edward Lee
b62b60e410
Bug 557891 - Wipe local triggers deletions on all other clients! [r=mconnor]
...
Ignore tracker changes triggered by wiping the local client store.
2010-04-07 17:52:22 -07:00
Paul O’Shannessy
fd5c20da8a
Bug 557314 - Need cancel button after clicking Reset Sync [r=mconnor]
...
Added a cancel button that only shows on the sync options page when resetting.
Also removed the pref usage, so that resetting is properly cancelable (by pressing cancel, closing the window, or quitting).
--HG--
extra : rebase_source : cba1575d974aa882d20f641650d8502186f819a0
2010-04-06 16:50:46 -07:00
Edward Lee
9a5d570c4e
Bug 543858 - Weave's change-password/passphrase dialogs allow me to leave password/passphrase unchanged [r=mconnor]
...
Check if the new value is the same as the current one and provide a warning.
2010-04-06 16:49:47 -07:00
Edward Lee
a5fc13f320
Bug 557623 - Tab sync broken on fennec since session-store was added [r=zpao]
...
Check for existance of both cid and iface in Cc/Ci to decide to use the platform's service or fake one. Remove unused lazyInstance to clean up API (iface == string not object).
2010-04-06 14:13:21 -07:00
Edward Lee
b4d4505934
Bug 549789 - Point user/misc urls to 1.0/ instead of 1/ [r=mconnor]
...
Fix up both url getters to have the extra dot oh.
2010-04-06 12:07:34 -07:00
Edward Lee
079257bf2f
Bug 557503 - bookmark restore from backup and server-wins interact badly [r=mconnor]
...
Don't resetLastSync as that will make local changes look old and instead mark each as changed now that addChangedID doesn't jsonSave on each call.
2010-04-06 11:59:50 -07:00
Edward Lee
65f25d882a
Remove trailing spaces in files under source/.
2010-04-02 16:38:05 -07:00
Edward Lee
35083577f3
Replace tabs in files under source/ with appropriate number of spaces.
2010-04-02 16:37:53 -07:00
Paul O’Shannessy
02de93e6b7
Bug 554936 - Make statusbar text "Set Up Weave..." until Weave has been configured [r=Mardak]
...
* Added a "Set Up Weave..." status message which is determined by Status.login states
* The "Set Up Weave..." message opens the pref window directly instead of showing the menu
* Added an additional error state for NO_PASSPHRASE
* Added checks to onStartup to check some status (no username/password/passphrase) for when autoconnect=false
* When the prefpane is opened and there's an error, it will open to the correct page so that can be corrected
* If using a custom server, that will be reflected when shown that page in the prefpane
2010-04-02 16:30:09 -07:00
Mike Connor
ca58a97947
bug 545725 - Changing passphrase should prevent other clients from syncing, r=Mardak
2010-03-31 21:58:07 -04:00
Edward Lee
084907c53f
Bug 550627 - Default reconciliation to server wins for older changed items [r=mconnor]
...
Save the time the tracker adds a new changed id and use that to compare the age of the record on the server vs the age of the local change to decide if it's server wins or client wins. Fix up various direct uses of changedIDs to use the API and make the save-to-disk lazy to avoid excessive writes. Add a test to make sure addChangedID only increases in time.
2010-04-01 15:54:53 -07:00
Edward Lee
caac21044c
Bug 546768 - form history uses hashes for GUIDs [r=mconnor]
...
Write a FormWrapper that knows about GUIDs and get/sets them in moz_formhistory as needed. It lazily adds the columns on failure and lazily generates GUIDs for entries that are missing it. Don't eagerly create a sha1 formItem mapping -- don't create it at all, so empty syncs will be much faster too.
2010-04-01 15:29:16 -07:00
Edward Lee
cc452bb5e2
Bug 544532 - Weave won't sync after resume from standby [r=mconnor]
...
Start an abortTimer onStartRequest and refresh the timer on each onDataAvailable only to cancel on an onStopRequest. If the timer triggers, the sync/async call will be aborted.
2010-04-01 15:25:47 -07:00
Edward Lee
1891e47f71
Bug 556361 - New searches from the searchbar don't get synced [r=mconnor]
...
Add a component that notifies when satchel methods are getting called. The notifications come as "form-notifier" with JSON data of the function name, arguments, and type (before vs after).
2010-04-01 15:21:54 -07:00
Edward Lee
0bc6e62a98
Bug 554924 - Weave should not sync during session restore [r=mconnor]
...
Get rid of STATUS_DELAYED and initialize Weave listeners, etc immediately. At the end of onStartup, wait a little bit to let sessionstore restore tabs and then count how many busy tabs to delay autoconnecting to avoid doing network while tabs are doing network.
2010-04-01 15:16:19 -07:00
Edward Lee
1fddfb0347
Bug 556509 - folders description not synchronised [r=mconnor]
...
Allow descriptions to be set on folder records and set description on creation.
--HG--
extra : rebase_source : d380f5d28130bd53532e5b4d293468aa053c19b2
2010-04-01 15:11:42 -07:00
Paul O’Shannessy
dfeaeaf6ac
Bug 539057 - better flow with start over [r=mconnor]
...
* Adds an option to the manage account to change sync option.
* Changes "start over" to "use a different account".
* Hides the "start over" button on the sync options page when not running through the whole process.
* Adds a prompt when starting over (which fixes bug 524186).
2010-04-01 13:43:09 -07:00
Edward Lee
fe072a177b
Bug 535326 - Need to rethink tab sync limit of 25 [r=mconnor]
...
Fit as many tabs as possible in 20000 characters by linearly estimating how many will fit then remove extras one by one.
--HG--
extra : rebase_source : 1ef3700a9cddd7e3cb0f96b9affada15e98ea672
2010-02-17 18:24:22 -08:00
Paul O’Shannessy
d424463253
Bug 532932 - No error prompting for invalid email on weave sign up [r=Mardak]
...
--HG--
extra : rebase_source : 43236961f871a7ff04a866646509121055ff927e
2010-03-31 23:05:50 -07:00
Mike Connor
71f982d974
bug 539056 - Better Tab sync UI and discoverability, r=Mardak
...
--HG--
extra : rebase_source : d0c98d78b889ed74f5b130077a6ee1806bd81282
2010-03-12 16:14:09 -08:00
Edward Lee
6c104ff79a
Bug 552134 - Ensure that keyring/symmetric key haven't been tampered with [r=mconnor]
...
Store a HMAC with the encrypted symmetric key instead of just the wrapped key and verify that the HMAC matches before unwrapping. Test that normal getting works and a tampered payload/HMAC fails but succeeds on restoring the correct HMAC.
2010-03-25 19:23:44 -07:00
Edward Lee
46632f7ac1
Bug 549638 - Ensure that encrypted payloads haven't been tampered with [r=mconnor r=dolske]
...
Generate a SHA256 HAMC hex string from the base64 ciphertext and base64 symmetric key. Generate a HMAC key from the symmetric key and cache them together when unwrapping. Refactor the Utils.sha1 to share the same digest code.
--HG--
extra : rebase_source : dae973c62317eb3b738306fc30ea19870555c7df
2010-03-16 16:31:56 -07:00
Mike Connor
777762c48e
bug 550597 - explicit server backoff is buggy, r=Mardak
...
--HG--
extra : rebase_source : 8e3621b0d7de77d918f1fe7ce1304f303fd19f97
2010-03-25 17:24:41 -04:00
Mike Connor
a8a384a3b0
bug 535136 - improve transition from single-client to multiple-client mode, r=Mardak
...
--HG--
extra : rebase_source : 8a667e947aa442e65eec1e13059e7076b00f9878
2010-03-25 17:24:41 -04:00
Mike Connor
9abadba210
bug 508112 - captcha will not work with noscript enabled, r=Mardak
...
--HG--
extra : rebase_source : 7b94ef2dfc4d9416189b0f970fab7d3f19da0f02
2010-03-12 15:49:10 -08:00