summary refs log tree commit diff
path: root/synapse/handlers (follow)
Commit message (Expand)AuthorAgeFilesLines
* Only send presence updates to remote hosts if user is oursErik Johnston2016-02-191-2/+10
* Add Measures to presenceErik Johnston2016-02-191-57/+62
* Add presence metricErik Johnston2016-02-191-0/+3
* Remove spurious extra metricsErik Johnston2016-02-191-1/+0
* Merge pull request #586 from matrix-org/erikj/presenceErik Johnston2016-02-191-6/+26
|\
| * Don't set currently_active for remote presenceErik Johnston2016-02-191-6/+12
| * More metricsErik Johnston2016-02-191-0/+6
| * Add presence metricsErik Johnston2016-02-191-0/+8
* | Merge pull request #582 from matrix-org/erikj/presenceErik Johnston2016-02-195-1028/+784
|\|
| * Remove invalid arg.Erik Johnston2016-02-181-1/+0
| * Add unit testErik Johnston2016-02-181-93/+187
| * Add stuff pulled from the DB to the cacheErik Johnston2016-02-181-2/+4
| * PEP8Erik Johnston2016-02-181-2/+2
| * Prefix TS fields with _tsErik Johnston2016-02-181-27/+27
| * Remove status_msg when going offline. Don't offline -> online if you send a m...Erik Johnston2016-02-181-5/+15
| * Check presence state is a valid oneErik Johnston2016-02-181-0/+6
| * Move if statementErik Johnston2016-02-181-8/+8
| * CommentErik Johnston2016-02-181-0/+2
| * Remove spurious commentErik Johnston2016-02-171-1/+0
| * Initial cutErik Johnston2016-02-175-1050/+694
* | Merge pull request #573 from matrix-org/erikj/sync_fixErik Johnston2016-02-181-5/+12
|\ \
| * | Mitigate against incorrect old state in /sync.Erik Johnston2016-02-121-5/+12
* | | Review commentsDaniel Wagner-Hall2016-02-183-7/+7
* | | Some cleanupDaniel Wagner-Hall2016-02-171-66/+58
* | | Respond to federated invite with non-empty contextDaniel Wagner-Hall2016-02-172-42/+61
* | | Some cleanup, some TODOs, more to doDaniel Wagner-Hall2016-02-161-68/+60
* | | Some cleanupDaniel Wagner-Hall2016-02-162-23/+30
* | | Tidy? up room creation event sendingDaniel Wagner-Hall2016-02-161-63/+72
* | | Add commentDaniel Wagner-Hall2016-02-161-1/+1
* | | Merge branch 'develop' into daniel/roomcleanupincrementalDaniel Wagner-Hall2016-02-161-3/+3
|\ \ \ | | |/ | |/|
| * | Simplify room creation codeDaniel Wagner-Hall2016-02-151-40/+28
* | | Branch off member and non member sendsDaniel Wagner-Hall2016-02-154-69/+83
* | | Simplify room creation codeDaniel Wagner-Hall2016-02-151-37/+25
* | | Use update_membership for profile updatesDaniel Wagner-Hall2016-02-152-20/+12
* | | Use update_membership to kick guestsDaniel Wagner-Hall2016-02-152-16/+19
* | | Reuse update_membership from /joinDaniel Wagner-Hall2016-02-151-3/+9
* | | Inline _do_local_membership_updateDaniel Wagner-Hall2016-02-151-18/+7
* | | Inline _do_join as it now only has one callerDaniel Wagner-Hall2016-02-151-48/+47
* | | Merge implementation of /join by alias or IDDaniel Wagner-Hall2016-02-153-33/+32
* | | Merge some room joining codepathsDaniel Wagner-Hall2016-02-151-4/+10
|/ /
* | Revert "Merge two of the room join codepaths"Daniel Wagner-Hall2016-02-122-44/+11
* | Merge two of the room join codepathsDaniel Wagner-Hall2016-02-122-11/+44
* | Enforce user_id exclusivity for AS registrationsDaniel Wagner-Hall2016-02-111-5/+12
|/
* Return events in correct order for /eventsErik Johnston2016-02-111-0/+1
* Use _simple_select_many for _get_state_group_for_eventsErik Johnston2016-02-101-1/+1
* Only calculate initial sync for 10 rooms at a timeErik Johnston2016-02-101-24/+29
* Atomically persit push actions when we persist the eventErik Johnston2016-02-092-11/+11
* Pass in current state to push action handlerErik Johnston2016-02-091-18/+13
* Remove dead codeErik Johnston2016-02-091-12/+0
* Don't load all ephemeral state for a room on every syncErik Johnston2016-02-091-14/+6
* Fix unit testsErik Johnston2016-02-091-1/+4
* Measure some /sync related thingsErik Johnston2016-02-092-150/+162
* Fix up logcontextsErik Johnston2016-02-087-87/+57
* Allocate guest user IDs numericcallyDaniel Wagner-Hall2016-02-051-19/+36
* Merge pull request #555 from matrix-org/erikj/logcontextErik Johnston2016-02-031-0/+10
|\
| * Allowing tagging log contextsErik Johnston2016-02-031-0/+10
* | Merge pull request #554 from matrix-org/erikj/event_pushErik Johnston2016-02-031-4/+2
|\ \
| * | Change event_push_actions_rm_tokens schemaErik Johnston2016-02-031-4/+2
| |/
* | PEP8Erik Johnston2016-02-031-1/+1
* | Remove unused methodErik Johnston2016-02-031-8/+0
* | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/public_roo...Erik Johnston2016-02-037-77/+117
|\|
| * Fix flake8 warnings for new flake8Daniel Wagner-Hall2016-02-026-7/+7
| * s/get_room_changes_for_user/get_membership_changes_for_user/Erik Johnston2016-02-022-2/+2
| * Merge pull request #545 from matrix-org/erikj/syncErik Johnston2016-02-021-66/+99
| |\
| | * CommentsErik Johnston2016-02-011-5/+6
| | * Move state calculations from rest to handlerErik Johnston2016-02-011-66/+98
| * | Pass make_guest whne we autogen a user IDDavid Baker2016-02-021-1/+3
| * | WARN if we get a topo token instead of stream.Erik Johnston2016-02-021-1/+6
* | | Change the way we do public room list fetchingErik Johnston2016-02-021-23/+63
|/ /
* | Order things correctlyErik Johnston2016-02-011-1/+1
* | Switch over /events to use per room cachesErik Johnston2016-02-011-5/+20
|/
* Add missing param to the log lineMark Haines2016-01-291-1/+2
* Merge remote-tracking branch 'origin/develop' into markjh/3pidMark Haines2016-01-292-253/+187
|\
| * Don't work out unread_notifs_for_room_id unless neededErik Johnston2016-01-291-11/+12
| * Change load limit paramsErik Johnston2016-01-281-2/+2
| * Amalgamate incremental and full sync for userErik Johnston2016-01-281-40/+16
| * Allow paginating backwards from stream tokenErik Johnston2016-01-281-6/+9
| * Merge branch 'develop' of github.com:matrix-org/synapse into erikj/syncErik Johnston2016-01-281-22/+21
| |\
| * | Use the same path for incremental with gap or without gapErik Johnston2016-01-271-208/+144
| * | Add cache to room streamErik Johnston2016-01-271-12/+30
* | | Add config option for setting the trusted id servers, disabling checking the ...Mark Haines2016-01-291-8/+17
| |/ |/|
* | Make it possible to paginate forwards from stream tokensRichard van der Hoff2016-01-271-22/+21
|/
* Federation: drop events which cause SynapseErrorsRichard van der Hoff2016-01-271-1/+7
* Merge pull request #524 from matrix-org/erikj/syncErik Johnston2016-01-251-41/+141
|\
| * PEP8Erik Johnston2016-01-251-1/+0
| * Remove weird stuffErik Johnston2016-01-251-6/+0
| * Move logic from rest/ to handlers/Erik Johnston2016-01-251-41/+148
* | Underscores are allowed in user idsErik Johnston2016-01-221-1/+1
|/
* Only fetch events for rooms and receiptsErik Johnston2016-01-211-3/+3
* Don't explode when given a unicode username in /register/Erik Johnston2016-01-201-3/+2
* Allow non-guests to peek on rooms using /eventsDaniel Wagner-Hall2016-01-205-58/+57
* Merge pull request #506 from matrix-org/erikj/push_fastErik Johnston2016-01-191-28/+22
|\
| * Only compute unread notifications for rooms we send down streamErik Johnston2016-01-191-28/+22
* | Don't use form of get_state_for_events with None state_keyErik Johnston2016-01-191-6/+13
|/
* Add regex cache. Only caculate push actions for users that have sent read rec...Erik Johnston2016-01-192-2/+2
* Use all_ephemeral_by_room in incremental_sync_with_gap_for_roomErik Johnston2016-01-191-3/+5
* Return highlight_count in /syncErik Johnston2016-01-191-6/+36
* Re-enable urnead notificationsErik Johnston2016-01-182-10/+6
* Allow filtering events for multiple users at onceErik Johnston2016-01-181-39/+54
* Require unbanning before other membership changesDaniel Wagner-Hall2016-01-153-16/+100
* Remove unused parametersDaniel Wagner-Hall2016-01-152-16/+8
* M_INVALID_USERNAME to be consistent with the parameter nameDavid Baker2016-01-151-1/+1
* Add specific error code for invalid user names.David Baker2016-01-141-1/+2
* Merge branch 'release-v0.12.1' into developRichard van der Hoff2016-01-141-12/+23
|\
| * Add 'event' result to 'context' endpointRichard van der Hoff2016-01-131-12/+23
| * Skip, rather than erroring, invalid guest requestsDaniel Wagner-Hall2016-01-134-19/+4
* | Use logger not loggingErik Johnston2016-01-141-2/+2
* | Don't change signature. Return empty listErik Johnston2016-01-131-2/+2
* | Temporarily disable notification branchErik Johnston2016-01-132-7/+11
* | Merge pull request #480 from matrix-org/erikj/guest_event_tightloopErik Johnston2016-01-131-7/+0
|\ \
| * | Dont fire user_joined_room when guest hits /eventsErik Johnston2016-01-121-7/+0
* | | Don't include old left roomsErik Johnston2016-01-121-1/+5
|/ /
* | Merge pull request #456 from matrix-org/store_event_actionsDavid Baker2016-01-084-1/+80
|\ \
| * | comma styleDavid Baker2016-01-061-1/+1
| * | Merge remote-tracking branch 'origin/develop' into store_event_actionsDavid Baker2016-01-061-107/+47
| |\ \
| * | | Add is_guest flag to users db to track whether a user is a guest user or not....David Baker2016-01-063-9/+9
| * | | Merge remote-tracking branch 'origin/develop' into store_event_actionsDavid Baker2016-01-056-35/+53
| |\ \ \
| * | | | commaDavid Baker2016-01-041-1/+1
| * | | | Add unread_notif_count in incremental_sync_with_gapDavid Baker2016-01-041-0/+8
| * | | | Rename event-actions to event_push_actions as per PR requestDavid Baker2016-01-041-1/+1
| * | | | Merge remote-tracking branch 'origin/develop' into store_event_actionsDavid Baker2016-01-041-1/+24
| |\ \ \ \ | | | |_|/ | | |/| |
| * | | | Address minor PR issuesDavid Baker2016-01-042-4/+4
| * | | | Fix merge fail with anon access stuffDavid Baker2015-12-221-2/+2
| * | | | Merge remote-tracking branch 'origin/develop' into store_event_actionsDavid Baker2015-12-222-47/+128
| |\ \ \ \
| * | | | | Add some comments to areas that could be optimised.David Baker2015-12-221-0/+3
| * | | | | Merge remote-tracking branch 'origin/develop' into store_event_actionsDavid Baker2015-12-216-43/+140
| |\ \ \ \ \
| * | | | | | Only run pushers for users on this hs!David Baker2015-12-212-2/+2
| * | | | | | pep8David Baker2015-12-211-3/+3
| * | | | | | Make unread notification count sending work: put the correct count in increme...David Baker2015-12-181-11/+37
| * | | | | | still very WIP, but now sends unread_notifications_count in the room object o...David Baker2015-12-161-0/+26
| * | | | | | Having consulted The Erikle, this should go at the end of on_receive_pdu, oth...David Baker2015-12-101-11/+6
| * | | | | | Very first cut of calculating actions for events as they come in. Doesn't sto...David Baker2015-12-102-1/+22
* | | | | | | Use logger not loggingErik Johnston2016-01-071-2/+2
* | | | | | | copyrightsMatthew Hodgson2016-01-0713-13/+13
| |_|_|_|_|/ |/| | | | |
* | | | | | Pass whether the user was a guest to some of the event streamsMark Haines2016-01-061-5/+3
* | | | | | Guest users must be joined to a room to see it in /syncMark Haines2016-01-061-103/+49
| |_|_|_|/ |/| | | |
* | | | | Skip, rather than erroring, invalid guest requestsDaniel Wagner-Hall2016-01-054-19/+4
* | | | | Allow guests to upgrade their accountsDaniel Wagner-Hall2016-01-054-15/+32
* | | | | Return /sync when something under the 'leave' key has changedErik Johnston2016-01-051-1/+1
* | | | | Use named argsErik Johnston2016-01-051-2/+2
* | | | | Support inviting 3pids in /createRoomErik Johnston2016-01-051-0/+16
| |_|_|/ |/| | |
* | | | Move the doc string to the public facing methodMark Haines2015-12-221-16/+17
* | | | Add a cache for initialSync responses that expires after 5 minutesMark Haines2015-12-221-1/+23
| |_|/ |/| |
* | | Include the list of bad room ids in the errorMark Haines2015-12-221-2/+8
* | | Use a list comprehensionMark Haines2015-12-221-3/+4
* | | Hook up read receipts and typing notifications for guest accessMark Haines2015-12-221-13/+11
* | | Merge branch 'develop' into markjh/guest_accessMark Haines2015-12-221-2/+21
|\ \ \
| * | | Return room avatar URLs in /publicRoomsDaniel Wagner-Hall2015-12-211-2/+21
| | |/ | |/|
* | | Allow guest access to /syncMark Haines2015-12-221-46/+98
* | | Allow guest access if the user provides a list of rooms in the filterMark Haines2015-12-221-0/+1
|/ /
* | Merge pull request #450 from matrix-org/matthew/no-identiconsMatthew Hodgson2015-12-181-19/+3
|\ \
| * | fix indentation levelMatthew Hodgson2015-12-171-3/+3
| * | stop generating default identicons. reverts most of 582019f870adbc4a8a8a9ef97...Matthew Hodgson2015-12-171-19/+3
* | | Merge branch 'release-v0.12.0' into developDavid Baker2015-12-181-1/+1
|\ \ \
| * | | Fix typo that broke registration on the mobile clientsDavid Baker2015-12-181-1/+1
* | | | Add display_name to 3pid invite in m.room.member invitesDaniel Wagner-Hall2015-12-171-1/+31
| |/ / |/| |
* | | Strip address and such out of 3pid invitesDaniel Wagner-Hall2015-12-171-1/+12
|/ /
* | Give the IS a bunch more 3pid invite contextDaniel Wagner-Hall2015-12-161-7/+60
* | Merge branch 'release-v0.12.0' into developMark Haines2015-12-161-3/+8
|\ \
| * | Fix a race between started/stopped streamMark Haines2015-12-141-3/+8
* | | Merge branch 'release-v0.12.0' into developMark Haines2015-12-141-4/+12
|\| |
| * | Do the /sync in parallel accross the rooms like /initialSync doesMark Haines2015-12-111-4/+12
* | | Merge branch 'release-v0.12.0' into developMark Haines2015-12-121-1/+1
|\| |
| * | Add caches for whether a room has been forgotten by a userMark Haines2015-12-101-1/+1
| |/
* | Merge pull request #435 from matrix-org/erikj/searchErik Johnston2015-12-111-1/+7
|\ \
| * | Include approximate count of search resultsErik Johnston2015-12-111-1/+7
| |/
* / Ensure that the event that gets persisted is the one that was signedPaul "LeoNerd" Evans2015-12-101-6/+6
|/
* Merge pull request #405 from matrix-org/erikj/search-tsErik Johnston2015-12-081-6/+4
|\
| * Change the result tict to be a listErik Johnston2015-12-011-6/+4
* | Only include the archived rooms if a include_leave flag in set in the filterMark Haines2015-12-041-6/+6
* | Merge pull request #419 from matrix-org/markjh/reuse_captcha_clientMark Haines2015-12-031-4/+2
|\ \
| * | Reuse the captcha client rather than creating a new one for each requestMark Haines2015-12-031-4/+2
* | | Flatten devices into a dict, not a listDaniel Wagner-Hall2015-12-031-4/+3
|/ /
* | Merge pull request #418 from matrix-org/daniel/whoisDaniel Wagner-Hall2015-12-031-17/+11
|\ \
| * | Fix implementation of /admin/whoisDaniel Wagner-Hall2015-12-021-17/+11
* | | Make state updates in the C+S API idempotentMark Haines2015-12-021-0/+12
|/ /
* | Merge pull request #410 from matrix-org/markjh/edu_frequencyMark Haines2015-12-022-5/+15
|\ \
| * | Use the context returned by _handle_new_eventMark Haines2015-12-021-4/+1
| * | Merge branch 'develop' into markjh/edu_frequencyMark Haines2015-12-021-1/+1
| |\ \
| * | | Add commentsMark Haines2015-12-022-0/+6
| * | | Merge branch 'develop' into markjh/edu_frequencyMark Haines2015-12-028-56/+90
| |\ \ \
| * | | | Only fire user_joined_room if the membership has changedMark Haines2015-12-011-3/+8
| * | | | Merge branch 'develop' into markjh/edu_frequencyMark Haines2015-12-015-91/+173
| |\ \ \ \
| * | | | | Only fire user_joined_room on the distributor if the user has actually joined...Mark Haines2015-12-011-4/+6
* | | | | | Reuse a single http client, rather than creating new onesMark Haines2015-12-021-9/+5
| |_|_|/ / |/| | | |
* | | | | Fix typo in collect_presencelike_dataMark Haines2015-12-021-1/+1
| |_|/ / |/| | |
* | | | Merge pull request #408 from matrix-org/markjh/distributor_facadeMark Haines2015-12-027-53/+78
|\ \ \ \
| * | | | Wrap calls to distributor.fire in appropriately named functions so that stati...Mark Haines2015-12-017-53/+78
| | |/ / | |/| |
* | | | Merge pull request #406 from matrix-org/erikj/searchErik Johnston2015-12-021-3/+12
|\ \ \ \ | |/ / / |/| | |
| * | | Search: Don't disregard grouping info in pagination tokensErik Johnston2015-12-011-3/+12
* | | | Add API for setting account_data globaly or on a per room basisMark Haines2015-12-013-22/+111
|/ / /
* | | Merge pull request #404 from matrix-org/markjh/trivial_renameMark Haines2015-12-011-1/+1
|\ \ \ | |_|/ |/| |
| * | Rename presence_handler.send_invite to presence_handler.send_presence_invite ...Mark Haines2015-12-011-1/+1
| |/
* | Tidy up a bitErik Johnston2015-12-011-8/+9
* | Allow paginating search ordered by recentsErik Johnston2015-11-301-68/+60
|/
* Return words to highlight in search resultsErik Johnston2015-11-271-3/+16
* Merge pull request #375 from matrix-org/daniel/guestroominitialsyncDaniel Wagner-Hall2015-11-231-10/+15
|\
| * Clean up room initialSync for guest usersDaniel Wagner-Hall2015-11-131-10/+15
* | Merge pull request #385 from matrix-org/daniel/forgetroomsMark Haines2015-11-202-1/+12
|\ \
| * \ Merge branch 'develop' into daniel/forgetroomsPaul "LeoNerd" Evans2015-11-194-24/+24
| |\ \
| * | | Simplify codeDaniel Wagner-Hall2015-11-191-1/+1
| * | | Apply forgetting properly to historical eventsDaniel Wagner-Hall2015-11-181-1/+9
| * | | Allow users to forget roomsDaniel Wagner-Hall2015-11-171-0/+3
* | | | Add option to include the current room stateErik Johnston2015-11-201-0/+24
* | | | Optionally include historic profile infoErik Johnston2015-11-201-1/+30
| |/ / |/| |
* | | Merge pull request #386 from matrix-org/markjh/rename_pud_to_account_dataMark Haines2015-11-193-23/+23
|\ \ \
| * | | s/private_user_data/account_data/Mark Haines2015-11-183-23/+23
| |/ /
* / / Take a boolean not a list of lambdasDaniel Wagner-Hall2015-11-191-1/+1
|/ /
* | Merge branch 'develop' into sh-cas-auth-via-homeserverSteven Hammerton2015-11-176-140/+278
|\|
| * Fix a few race conditions in the state calculationRichard van der Hoff2015-11-131-60/+63
| * Make handlers.sync return a state dictionary, instead of an event list.Richard van der Hoff2015-11-131-31/+39
| * Update some commentsRichard van der Hoff2015-11-132-10/+30
| * Fix missing profile data in federation joinsErik Johnston2015-11-122-5/+9
| * Merge pull request #367 from matrix-org/daniel/readafterleaveDaniel Wagner-Hall2015-11-121-10/+11
| |\
| | * Tweak guest access permissionsDaniel Wagner-Hall2015-11-121-10/+11
| * | Merge pull request #360 from matrix-org/daniel/guestroominitialsyncDaniel Wagner-Hall2015-11-121-23/+32
| |\ \ | | |/ | |/|
| | * Allow guest access to room initialSyncDaniel Wagner-Hall2015-11-111-23/+32
| * | Consider joined guest users as joined usersDaniel Wagner-Hall2015-11-121-12/+21
| * | Allow guests to access room context APIDaniel Wagner-Hall2015-11-111-3/+9
| |/
| * Allow guest users to join and message roomsDaniel Wagner-Hall2015-11-105-9/+81
| * Merge pull request #356 from matrix-org/daniel/3pidyetagainDaniel Wagner-Hall2015-11-101-5/+3
| |\
| | * Get display name from identity server, not clientDaniel Wagner-Hall2015-11-091-5/+3
| * | Don't fiddle with results returned by event sourcesRichard van der Hoff2015-11-091-4/+12
| * | SYN-513: Include updates for rooms that have had all their tags deletedMark Haines2015-11-091-1/+1
| |/
* | Minor review fixesSteven Hammerton2015-11-111-4/+4
* | Share more code between macaroon validationSteven Hammerton2015-11-111-48/+7
* | Merge branch 'develop' into sh-cas-auth-via-homeserverSteven Hammerton2015-11-0511-91/+357
|\|
| * Merge pull request #350 from matrix-org/erikj/searchErik Johnston2015-11-051-18/+183
| |\
| | * Be explicit about what we're doingErik Johnston2015-11-051-1/+1
| | * Remove redundant testErik Johnston2015-11-051-1/+0
| | * Increment by one, not fiveErik Johnston2015-11-051-1/+1
| | * COMMENTSErik Johnston2015-11-051-4/+26
| | * Merge branch 'develop' of github.com:matrix-org/synapse into erikj/searchErik Johnston2015-11-0512-119/+165
| | |\
| | * | Implement basic pagination for search resultsErik Johnston2015-11-051-13/+65
| | * | Implement order and group byErik Johnston2015-11-041-17/+109
| * | | Exchange 3pid invites for m.room.member invitesDaniel Wagner-Hall2015-11-053-37/+92
| | |/ | |/|
| * | Open up /events to anonymous users for room events onlyDaniel Wagner-Hall2015-11-059-36/+82
* | | Allow hs to do CAS login completely and issue the client with a login token t...Steven Hammerton2015-11-051-3/+73
|/ /
* | Merge branch 'develop' of github.com:matrix-org/synapse into developDaniel Wagner-Hall2015-11-044-30/+2
|\ \
| * \ Merge branch 'develop' into daniel/removesomeliesMark Haines2015-11-044-24/+151
| |\ \
| | * | Remove the LockManager class because it wasn't being usedMark Haines2015-11-041-2/+0
| | |/
| * | Remove more unused parametersDaniel Wagner-Hall2015-11-022-2/+0
| * | Remove unused arguments and codeDaniel Wagner-Hall2015-11-022-26/+2
* | | Allow guests to register and call /events?room_id=Daniel Wagner-Hall2015-11-044-55/+83
| |/ |/|
* | Merge branch 'develop' into markjh/v2_sync_receiptsMark Haines2015-11-033-12/+126
|\ \
| * | Include room tags in v2 /syncMark Haines2015-11-021-11/+58
| * | Store room tag content and return the content in the m.tag eventMark Haines2015-11-021-4/+2
| * | Merge branch 'develop' into markjh/room_tagsMark Haines2015-11-024-23/+152
| |\|
| * | Include tags in v1 room initial syncMark Haines2015-10-301-0/+11
| * | Include room tags v1 /initialSyncMark Haines2015-10-301-0/+12