Commit Graph

260 Commits

Author SHA1 Message Date
fang
69704c6a80
graph: make the join thread back off
Pushes the pathological case back a bit, but doesn't make it stop trying.
2021-01-06 23:22:54 +01:00
Logan Allen
c99bf65d81 graph-delete thread: properly remove entry from metadata-store and hook 2021-01-06 15:32:16 -06:00
Liam Fitzgerald
06ed5af3f4
graph-store: add -eval thread 2020-12-11 15:52:17 +10:00
Liam Fitzgerald
bce1b3e65e
group-pull-hook: remove group on nack 2020-12-11 14:57:20 +10:00
Liam Fitzgerald
f8452af94e
Merge remote-tracking branch 'origin/release/next-userspace' into lf/chat-graph 2020-12-11 11:50:18 +10:00
Logan Allen
b281b9c91f group-on-leave: soften de-path 2020-12-10 13:49:51 -06:00
Liam Fitzgerald
c29b3d8167
chat: address migration of missing owner in unmanaged groups 2020-12-10 13:52:25 +10:00
Liam Fitzgerald
fc189a7c13
graph-store: on overwrite, archive existing graph 2020-12-10 12:36:59 +10:00
Logan Allen
7802a7f8d9 Merge branch 'release/next-userspace' into lf/chat-graph 2020-12-09 15:45:26 -06:00
Liam Fitzgerald
8c4b453ed4
Merge remote-tracking branch 'origin/release/next-userspace' into lf/app-sane 2020-12-08 13:14:26 +10:00
Joe Bryan
aaf506ce8a Merge branch 'jb/motion' into jb/motion-merge
* jb/motion:
  pill: solid
  zuse: remove %crud from vane-task
  arvo: full vane names in $sign
  aqua: build again (still broken)
  arvo: reform of the scry reform
2020-12-07 18:52:51 -08:00
fang
d98c59e73a
zuse: lift moves out of +able 2020-12-08 01:47:06 +01:00
Joe Bryan
17736990ed arvo: full vane names in $sign 2020-12-07 16:30:22 -08:00
fang
eab88170e2
Merge branch 'jb/motion' into m/de-thereum 2020-12-07 13:42:00 +01:00
Joe Bryan
5a82f1d4c0 Merge branch 'na-release/candidate' into jb/motion
* na-release/candidate: (36 commits)
  ames: don't crash on forward-lane scry
  jael: cleanup per review
  jael: don't signal breach if first hearing of ship
  pill: update
  vere: compile
  lens: don't de-base64
  vere: make import flow not use base64 encoding
  version: strip trailing newline
  pill: mainnet
  Revert "zuse: change to ropsten"
  chat-hook: fix another poke-import issue
  chat-hook: fix poke-import issue
  apps: reorder maps, sets, and jugs
  apps: reorder maps, sets, and jugs
  kiln: add base-hash and our scries
  lens: fix change lost in merge
  graph-store: leave try-rejoin wire when subscription succeeds
  graphs: import-export
  chat: import/export
  invites: import/export
  ...
2020-12-07 00:27:58 -08:00
Liam Fitzgerald
f4c2dedba2
hark-graph-hook: autowatch unmanaged graphs 2020-12-07 13:55:55 +10:00
fang
25a55c0f63
various: ethereum, azimuth, json-rpc out of zuse
Moves them into files in /lib, and updates dependents accordingly.
2020-12-06 17:26:52 +01:00
Joe Bryan
205c9a8620 zuse: removes en/de-beam (now in arvo) 2020-12-06 03:33:43 -08:00
Philip Monk
b9fe6af976
jael: don't signal breach if first hearing of ship
When you first boot, if you try talk to someone before your azimuth is
up-to-date (for example by import), then if they've ever breached
(twice) then you'll get breach notification, cancelling your message.

This changes is it so that if we haven't heard anything about this ship,
we don't signal a breach.

The implementation complexity is primarily because we need
eth-watcher/azimuth-tracker to produce an update of a list instead of a
list of updates.  This way, Jael can keep a "state as of the beginning
of this move" variable to check when deciding whether to signal a
breach.
2020-12-04 23:08:47 -08:00
Philip Monk
0de3e76055
glob: update to 0v6.cmrce.5ass7.5gfqi.7c8cg.mdo7n 2020-12-04 17:59:15 -08:00
fang
3be0ab5030
ted: update straggler threads for vase unit change
Also cleans up a duplicate case in a ?-.
2020-12-04 13:45:35 +01:00
Joe Bryan
bbaeafe751
Merge pull request #4036 from urbit/m/listless-generators
various: start threads with unit of tuple args
2020-12-04 00:21:00 -08:00
Matilde Park
78c22ae5c4 Merge branch 'na-release/candidate' into release/next-userspace 2020-12-03 20:55:16 -05:00
Philip Monk
1213e298db
Merge remote-tracking branch 'origin/na-release/candidate' into philip/testnet 2020-12-03 17:16:02 -08:00
Joe Bryan
4a825df15b Merge branch 'na-release/candidate' into jb/atom-gates
* na-release/candidate:
  kh: use Word8 for Tint true color values
  arvo: remove unused app files, libraries, and imports
  webterm: improve line-spacing in certain browsers
  vere: avoid +scot call for color value rendering
  kh: support 24-bit %klr colors
  vere: support 24-bit %klr colors
  webterm: update mar and js to support 24-bit color
  tests: fix ames tests
  pill: update ivory pill
  dojo: correct mark conversion scry path
  pill: solid
  aqua/ph: fix comet test
  ames: flat packet format
  hoon, dill: Add 24-bit true color
2020-12-03 14:17:23 -08:00
Joe Bryan
ce053facd5
Merge pull request #4051 from urbit/ted/ames-flat-revised
Ames flat packet format
2020-12-03 14:12:56 -08:00
Logan Allen
275144c72a observe-hook: add %group-on-remove-member thread 2020-12-03 13:32:06 -06:00
Liam Fitzgerald
2caf1dac24
group-push-hook: kick members who are not subscribed
If a ship breaches, it may no longer be subscribed to the group, but
still be in it. This causes DM breakage amongst other things. To fix it,
we loop over the incoming subscriptions and kick everyone who is a part
of a group, but not subscribed to it.
2020-12-03 16:00:57 +10:00
Isaac Visintainer
2cf6af586d Merge branch 'na-release/candidate' into philip/testnet 2020-12-02 21:10:15 -08:00
Logan Allen
1913cdf4f1 arvo: remove unused app files, libraries, and imports 2020-12-02 14:05:04 -06:00
Joe Bryan
b5ec0c30f0 hoon: renames +new-end, +new-lsh, +new-rsh 2020-12-02 01:00:09 -08:00
Isaac Visintainer
e672c7348b Merge branch 'ixv/data-migration' into philip/testnet 2020-12-02 00:29:14 -08:00
Joe Bryan
bec63413b0 hoon: adds +new-rsh, switches all +rsh call sites 2020-12-02 00:21:51 -08:00
Joe Bryan
4f9cba2baf hoon: adds +new-end, switches all +end call sites 2020-12-02 00:21:12 -08:00
Isaac Visintainer
f5137a5114 userspace: data migration testing utilities 2020-12-01 17:38:51 -08:00
Logan Allen
0007c5c097 Merge branch 'release/next-userspace' into la/archive-graph-on-leave 2020-12-01 16:41:26 -06:00
fang
03fd56e8cc
various: start threads with unit of tuple args
Instead of a list of arguments, with trailing ~.
2020-12-01 23:38:02 +01:00
Philip Monk
e69804a5ae
Merge remote-tracking branch 'origin/na-release/candidate' into m/flagday-keyfile 2020-12-01 14:02:37 -08:00
Logan Allen
2760f79f66 group-on-leave thread: clean up contacts as well as everything else 2020-12-01 15:20:45 -06:00
Logan Allen
9e69cba237 group-on-leave: poke %graph-pull-hook to allow resubscription 2020-12-01 12:51:26 -06:00
Ted Blackman
174f36f1a8 aqua/ph: fix comet test 2020-12-01 09:59:07 -05:00
Isaac Visintainer
7d1c58031c userspace: data migration testing utilities 2020-11-30 23:02:12 -08:00
Logan Allen
46fd3004bf %group-on-leave thread: simplified and got it to compile 2020-11-30 16:59:30 -06:00
Logan Allen
2a47b18be7 thread: remove group-leave-metadata 2020-11-30 16:33:48 -06:00
Logan Allen
41e3af25b3 threads: collapse them into a single %group-on-leave thread 2020-11-30 16:30:20 -06:00
Logan Allen
a6bf3ca924 observe-hook + thread: remove metadata when leaving a group 2020-11-30 16:20:26 -06:00
Isaac Visintainer
5217a5c00e ph: add and modify some ph helper functions; adds new thread for booting/breaching in the new paradigm, as well as a helper thread for just starting drivers in case you want to manipulate aqua manually 2020-11-30 13:15:59 -08:00
Isaac Visintainer
94bb140448 aqua: manage azimuth state within aqua itself rather than using a thread 2020-11-30 13:15:59 -08:00
Logan Allen
1aa9337301 leave-graph: emit %done upon failed poke-acks 2020-11-30 14:33:22 -06:00
Logan Allen
b4e66ec4ed thread: %group-leave-graph now compiles 2020-11-30 12:50:38 -06:00
Liam Fitzgerald
f552492414
ted/sane: add thread to run sanity checking 2020-11-30 13:44:31 +10:00
fang
f71bcb9f11
ted: update threads that had fallen into disrepair 2020-11-26 17:44:25 +01:00
fang
d6a9c39f29
test: only build .hoon files
Previously it would fail to build .txt files and such. Now it filters
those out and doesn't try.
2020-11-26 17:44:19 +01:00
fang
d61e5afdc4
test: don't panic after building non-/tests files 2020-11-26 17:44:10 +01:00
fang
194e8ae440
hoon: remove += and +- arm syntax 2020-11-26 17:27:30 +01:00
fang
27d6fc7597
zuse, clay, various: unflop the spur in beams
Unflops the spur in +en-beam, +de-beam, and everything that calls either
of those, or works with the consequences of their output.

This includes clay's interface for mounting and unmounting, which now
no longer expects the arguments to contain an old-style spur.
2020-11-24 15:44:25 +01:00
Logan Allen
837abacb9c observe-hook: add new thread to leave graphs upon removing a group 2020-11-20 11:01:24 -06:00
Logan Allen
4f7ca0a0dc graph-store: add overwrite field to %add-graph 2020-11-12 20:40:12 +00:00
L
9cbed7a4a9
Merge pull request #3832 from urbit/la/thread-watcher
observe-hook: spin up a thread upon receiving a %fact from a subscription
2020-11-09 12:37:13 -06:00
matildepark
1ffea0be06
Merge pull request #3891 from urbit/lf/groupify-graph
landscape: restore groupify functionality
2020-11-05 19:50:39 -05:00
Liam Fitzgerald
03b797102c
ph: add lib-hooks test 2020-11-06 08:53:55 +10:00
Liam Fitzgerald
fd149da592
ted/groupify: fix %remove-group poke 2020-11-05 12:02:59 +10:00
Logan Allen
63a0bb00c0 thread-watch-hook: edge cases tested and fixed 2020-11-04 18:42:52 -06:00
Logan Allen
65291863a0 thread-watch-hook: successfully sends facts to %invite-accepted-graph
thread
2020-11-04 12:12:24 -06:00
Logan Allen
697d23f83a thread-watch-hook: made %invite-accepted-graph thread 2020-11-02 15:22:50 -06:00
Logan Allen
e357a36577 graph-create: fix creation in edge cases 2020-10-28 14:06:34 -05:00
Liam Fitzgerald
39d538f9bc Merge branch 'release/next-userspace' into lf/graph-publish-fe 2020-10-28 16:40:02 +10:00
L
210a9f968c
Merge pull request #3721 from urbit/la/modernize-invites
invite-store/hook: modernize the code style to match other new apps
2020-10-27 19:37:44 -05:00
Logan Allen
870a6f635f invites: indentation fixes 2020-10-27 15:45:26 -05:00
Logan Allen
c8068e8fcb agents: all agents compile with new invites types and import patterns 2020-10-22 12:17:15 -05:00
Logan Allen
cbfa820ee3 graph-threads: delete thread gets rid of metadata properly 2020-10-20 15:15:58 -05:00
Logan Allen
926c9975c2 graph-leave: fixed leave thread to function properly 2020-10-16 12:10:07 -05:00
Logan Allen
ace6a41e9e graph-threads: update to work with dojo and http 2020-10-16 10:42:31 -05:00
Philip Monk
77b33632a6
Merge remote-tracking branch 'origin/master' into release/next-sys 2020-10-14 19:26:33 -07:00
Ted Blackman
501c1bdc01 -graph-leave: fix action type 2020-10-08 17:34:25 -04:00
Liam Fitzgerald
f4d75ad74d graph: add restore thread 2020-09-25 12:07:21 +10:00
Liam Fitzgerald
69d8130334 graph-view: en-path resource for md-hook 2020-09-24 10:11:54 +10:00
Logan Allen
598b4e19c2 graph-view: added %module field to %graph-view %create action 2020-09-22 12:44:52 -05:00
Logan Allen
38459a1095 graph-threads: fixed graph threads and added more fine-grained permissions to graph-push-hook 2020-09-18 16:59:56 -05:00
Logan Allen
0f2c4d069e graph-push-hook: graph push hook forwarding works 2020-09-18 15:09:06 -05:00
Logan Allen
0211cdd73c graph-thread: %forward an update to the appropriate %graph-push-hook 2020-09-17 13:56:21 -05:00
Ted Blackman
9d4e10ff48 graph-view: hard-code app-name to %graph on server-side 2020-09-15 16:25:58 -04:00
Ted Blackman
183e7210cc -graph-join: remove timeout 2020-09-15 16:10:12 -04:00
Liam Fitzgerald
61e1a40650 graph-view: remove typing of app 2020-09-15 11:23:13 +10:00
Liam Fitzgerald
9ef2adf9da graph-view: error-handling pass 2020-09-11 13:09:34 +10:00
Liam Fitzgerald
e206b9c951 graph-view: fix app-name in metadata 2020-09-11 10:15:04 +10:00
Liam Fitzgerald
af77d47e73 graph-view: revived groupify 2020-09-11 10:15:04 +10:00
Liam Fitzgerald
574e6de984 graph-view: refine threads 2020-09-11 10:15:04 +10:00
Liam Fitzgerald
556759ee3f graph-view: address review comments 2020-09-11 09:35:44 +10:00
Liam Fitzgerald
cd0ca3a1b4 lib/graph: fix scries 2020-09-11 09:35:44 +10:00
Liam Fitzgerald
08dab6c5b0 graph-view: add delete, leave threads 2020-09-11 09:35:44 +10:00
Liam Fitzgerald
19371c46c2 graph-view: added create,join threads 2020-09-11 09:35:44 +10:00
Philip Monk
67c5caada8
clay: add safe merge options
As described in gen/hood/merge/help.txt
2020-08-28 16:36:00 -07:00
Philip Monk
4c758372d6
clay: minimal -diff thread
Barebones 2-way diff thread.  Further development should include:

- recognize at least %txt and %hoon diff types as (urge:clay cord) and
print them prettily

- check if they're directories and recurse through them, noting files
that exist in one or the other and diffing ones that exist in both

- support 3-way diffs.  Since we know the desks they're on, we can find
a mergebase (see how +trouble gets the base-hash in #3378) and do a
3-way diff.

- extend the above to support all the useful diffs, including
diff3(a,b), diff2(mergebase(a,b),a) and any other useful ones.
2020-08-27 21:14:47 -07:00
Philip Monk
3d1b7f2b35
clay: fix ph tests 2020-07-28 21:44:45 -07:00
Liam Fitzgerald
24b25a3422 Merge remote-tracking branch 'origin/release/next-userspace' into lf/groups-refactor 2020-07-22 10:42:52 +00:00
Philip Monk
d641210c6f
Merge branch 'philip/glob' (#3139)
* philip/glob:
  interface: don't require urbitrc for build:prod
  maintainers: add glob-making instructions
  publish: loosen +noun:grab
  glob: autostart and make ota-able
  glob: added app to distribute js outside clay

Signed-off-by: Philip Monk <phil@pcmonk.me>
2020-07-21 11:22:16 -07:00
Matilde Park
a3caf1a214 Merge branch 'release/next-userspace' into lf/groups-refactor 2020-07-16 13:55:44 -04:00
Philip Monk
016719ca6b
glob: added app to distribute js outside clay 2020-07-15 12:26:55 -07:00
Ted Blackman
ae3064687c -build-{cast,file,mark}: accept full beams; load from any desk 2020-07-08 03:08:17 -04:00
Liam Fitzgerald
93cf40a604 Merge branch 'release/next-userspace' into lf/groups-refactor 2020-07-02 12:38:12 +10:00
Ted Blackman
d7b9889b4a -test: support other desks (full beams in args) 2020-06-28 05:06:16 -04:00
Liam Fitzgerald
8cf81002ec Merge branch 'ford-fusion' into lf/groups-refactor 2020-06-23 12:13:03 +10:00
Philip Monk
8b78f04dd3
Merge remote-tracking branch 'origin/master' into ford-fusion 2020-06-02 21:50:20 -07:00
Liam Fitzgerald
841ba72bd9 chat: update to new groups 2020-06-02 15:20:14 +10:00
Liam Fitzgerald
d2de8d72eb groups: begin rewrite 2020-06-02 15:07:09 +10:00
Philip Monk
a4a44f1e21
kiln: cleanup 2020-05-22 14:32:32 -07:00
Philip Monk
25bd1340f6
ph: update breach-sync now that %base is gone 2020-05-22 00:30:15 -07:00
Philip Monk
4aff4d74e2
kiln: get updates into %home, remove %base
We need to get updates directly into %home in case the marks depend on
changes to hoon.hoon.  %base has no reason to exist.

Our ota strategy is now to merge from parent/kids to home, then
parent/kids to kids.
2020-05-21 23:45:17 -07:00
Isaac Visintainer
8e6cbbb1d6 migrate-channels: addressed review 2020-05-20 14:24:24 -06:00
Isaac Visintainer
e931a473dd os1: migrate app data to new group 2020-05-19 20:08:35 -06:00
Ted Blackman
9bb6daad06 -work: create and mount dev desks 2020-05-15 04:00:56 -04:00
Philip Monk
a874ab4355
zuse: remove +ford 2020-05-14 00:22:39 -07:00
Philip Monk
9a1183e69f
clay: remove -merge 2020-05-12 00:02:37 -07:00
Philip Monk
9a9d91214f
clay: port mate/meld to ford fusion 2020-05-11 18:23:44 -07:00
Philip Monk
65766a73e2
clay: port -merge to fusion 2020-04-29 17:38:24 -07:00
Philip Monk
42bab4ecfb
clay: move -commit back into clay 2020-04-23 17:16:42 -07:00
Philip Monk
fa0e019ddf
clay: change %park interface to not take caches
Now a full commit is synchronous.  -commit will be assimilated back into
clay.
2020-04-23 13:54:57 -07:00
Ted Blackman
f3544067af -test: full path syntax 2020-04-20 01:33:29 -04:00
Ted Blackman
47d1d31a8d WIP :spider2 (actually committed) and -tree (untested) 2020-04-19 05:18:14 -04:00
Ted Blackman
4bf854c180 WIP :spider2 using ford-fusion 2020-04-19 05:11:01 -04:00
Ted Blackman
a705954b08 -test, -build-file, -build-mark, -build-cast 2020-04-18 04:21:15 -04:00
Philip Monk
3d04695ca7
clay: use ford fusion for ankh and mime cache 2020-04-17 18:04:51 -07:00
Philip Monk
522a7fb933
clay: add -read to demonstrate live ford builds 2020-04-15 20:12:47 -07:00
Philip Monk
d04191320a
clay: add +promote-ford 2020-04-15 16:24:48 -07:00
Philip Monk
0c2eddd39f
clay: add %meet strategy to -merge 2020-04-10 22:38:10 -07:00
Philip Monk
17fa15336f
clay: fix %init for -merge 2020-04-10 20:42:56 -07:00
Philip Monk
3f2a7b08a5
clay: add -merge except meet/mate/meld
-merge will replace |merge so that.  Once they reach feature parity and
%info is rewritten to forward to -commit, we can rip out about half of
clay.hoon
2020-03-25 20:54:19 -07:00
Philip Monk
531630e93a
clay: add %park task and -commit
%park is a plumbing commit task.  It guarantees completion in a single
event, so you have to do much of the work before calling it.  -commit
is an example of how to do this.
2020-03-20 21:30:56 -07:00
Philip Monk
6b7a791054
clay: initial version of +up 2020-03-20 15:30:24 -07:00
Philip Monk
9375616335
eth-watcher: reduce required number of confirmations
To 30 blocks + 30 blocks + 0-5 minutes == about 15 minutes total.
Further reduction should be possible, but requires changing the
algorithm a bit.  We don't want to reduce the number of confirmations
below about 30, though, since we don't handle reorganizations well.

See #2414.
2020-03-10 16:12:56 -07:00
Fang
ae8a57ca25
gall: (list path) in %fact and %kick
Instead of providing a (unit path), allows for (list path), which better
supports the "update to path and subpath cases".

For example, if /things wants updates about everything, and
/things/specific wants updates about the specific thing, they'll both
need to receive a %fact when the specific thing changes.
Previously, these would have been two separate moves. Now, gall handles
the multi-targeting for you.
2019-12-23 13:37:32 +01:00
Fang
ea7c1db61c
various: use =/ in place of =+ ^-
Also faceless =; where appropriate.
2019-12-21 14:29:14 -03:30
Jared Tobin
eee651042c
Merge branch 'm/eth-sending' (#2094)
* origin/m/eth-sending:
  eth-sender: do proper nonce reading
  zuse: implement eth rlp decoding
  zuse: correctly encode leading zeroes in rlp data
  zuse: lightly restructure encode:rlp:ethereum
  static gall: update send-txs
  ethio: implement +request-batch-rpc-loose

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-19 11:20:06 -03:30
Philip Monk
1a7658bd91
ph: fix tests by spamming blocks regularly 2019-12-18 11:53:36 -03:30
Philip Monk
18c3e7253b
jael: add "eager" mode to avoid hitting nodes as much 2019-12-18 10:58:00 -03:30
Philip Monk
e5ac690fd3
jael: re-enable ship-to-ship communication
Also fix bug in eth-watcher that didn't cancel outstanding threads when
config changes.

And set default rift for ourselves to 0.
2019-12-17 16:14:07 -08:00
Fang
fc1d852faf
static gall: update send-txs
Renamed to eth-sender. Can still sign eth-txs at multiple gas prices,
fan transactions to multiple nodes, wait for confirmation between
transaction batches (now of user-specified size).

The previous nonce reading implementation was broken beyond belief and
has been taken out. Can be reimplemented once RLP decoding is in the
stdlib.
2019-12-14 00:18:30 +01:00
Fang
fab9097110
static gall: update claz
Largely one-to-one port feature-wise.

Support for document polls was added.

Command preparation and verification got split out into
/ted/claz/prep-command, and got a dedicated +prep-result type to
facilitate future support for more complex preparation steps.
2019-12-11 17:32:33 +01:00
Fang
67825a08d1
static gall: update gaze
Noteworthy changes:
- split block timestamp requests into smaller batches
- track invite events
- improved debug pokes
2019-12-11 17:11:46 +01:00
Philip Monk
1eeca16f1a
dns: give quieter errors
!! crashes the thread, so dojo prints a stack trace.  An explicit
failure lets you give a custom error message.
2019-12-05 11:59:59 -08:00
Philip Monk
51f9b2e269
aqua: make faster so moon-az can finish 2019-12-03 23:53:42 -08:00
Ted Blackman
077bad8c4d ph: fix -hi-comet-az and comet spawning 2019-11-30 23:14:31 -05:00
Philip Monk
0eaad536a0
eth-watcher: keep timers going 2019-11-30 19:38:43 -08:00
Philip Monk
c7c42225e2
Merge commit 'fbc81b59'; remote-tracking branch 'origin/mp-chat-redesign' into rc 2019-11-30 16:17:28 -08:00
Fang
69df84b252
eth-watcher: zoom per 100k blocks
This avoids extremely large responses for long zooms, which could cause
trouble during parsing.
2019-11-28 23:11:49 +01:00
Philip Monk
96be4b65a5
Merge remote-tracking branch 'origin/mall-testnet' into philip/mall-real 2019-11-27 00:14:08 -08:00
Ted Blackman
3f550d669e Merge remote-tracking branch 'origin/philip/mall-real' into mall-testnet 2019-11-26 20:20:23 -05:00
Philip Monk
c7252bce85
hi: make a thread so it works in sotot 2019-11-26 16:14:32 -08:00
Ted Blackman
f781837ffa ph: comet test passes; also update solid pill 2019-11-26 15:38:29 -05:00