diff --git a/src/__celerity_resource_map__.php b/src/__celerity_resource_map__.php
index 607ca0120..98bf98ce9 100644
--- a/src/__celerity_resource_map__.php
+++ b/src/__celerity_resource_map__.php
@@ -1,3565 +1,3566 @@
 <?php
 
 /**
  * This file is automatically generated. Use 'celerity_mapper.php' to rebuild
  * it.
  * @generated
  */
 
 celerity_register_resource_map(array(
   '/rsrc/image/apps.png' =>
   array(
     'hash' => 'f7cb4abeb73245fea4098a02fd784653',
     'uri' => '/res/f7cb4abe/rsrc/image/apps.png',
     'disk' => '/rsrc/image/apps.png',
     'type' => 'png',
   ),
   '/rsrc/image/appstatus_empty.png' =>
   array(
     'hash' => '2f8102e0a0f5a0980d87d4ab4ba8c8fd',
     'uri' => '/res/2f8102e0/rsrc/image/appstatus_empty.png',
     'disk' => '/rsrc/image/appstatus_empty.png',
     'type' => 'png',
   ),
   '/rsrc/image/appstatus_info.png' =>
   array(
     'hash' => '407de6daf2edc4a8b68e2e369f4fc8cb',
     'uri' => '/res/407de6da/rsrc/image/appstatus_info.png',
     'disk' => '/rsrc/image/appstatus_info.png',
     'type' => 'png',
   ),
   '/rsrc/image/appstatus_needs.png' =>
   array(
     'hash' => '2c1e193bc786ca4fca0b851ed9cd3d92',
     'uri' => '/res/2c1e193b/rsrc/image/appstatus_needs.png',
     'disk' => '/rsrc/image/appstatus_needs.png',
     'type' => 'png',
   ),
   '/rsrc/image/appstatus_okay.png' =>
   array(
     'hash' => 'd00e683ee1c61d0ccced1200775cdbb5',
     'uri' => '/res/d00e683e/rsrc/image/appstatus_okay.png',
     'disk' => '/rsrc/image/appstatus_okay.png',
     'type' => 'png',
   ),
   '/rsrc/image/avatar.png' =>
   array(
     'hash' => '1c5f255071537f05406adee86717ff27',
     'uri' => '/res/1c5f2550/rsrc/image/avatar.png',
     'disk' => '/rsrc/image/avatar.png',
     'type' => 'png',
   ),
   '/rsrc/image/checker_dark.png' =>
   array(
     'hash' => '640f795343df76ebe5409aae6187e57f',
     'uri' => '/res/640f7953/rsrc/image/checker_dark.png',
     'disk' => '/rsrc/image/checker_dark.png',
     'type' => 'png',
   ),
   '/rsrc/image/checker_light.png' =>
   array(
     'hash' => '7f8f3ef8beb0f2cc4cc69efb9e1c3308',
     'uri' => '/res/7f8f3ef8/rsrc/image/checker_light.png',
     'disk' => '/rsrc/image/checker_light.png',
     'type' => 'png',
   ),
   '/rsrc/image/credit_cards.png' =>
   array(
     'hash' => '681448de424ea159b6ea68af04c046ae',
     'uri' => '/res/681448de/rsrc/image/credit_cards.png',
     'disk' => '/rsrc/image/credit_cards.png',
     'type' => 'png',
   ),
   '/rsrc/image/divot.png' =>
   array(
     'hash' => '3be267bd11ea375bf68e808893718e0e',
     'uri' => '/res/3be267bd/rsrc/image/divot.png',
     'disk' => '/rsrc/image/divot.png',
     'type' => 'png',
   ),
   '/rsrc/image/grippy_texture.png' =>
   array(
     'hash' => 'a8945e12ceeaddd5b491a8d81cfa19c1',
     'uri' => '/res/a8945e12/rsrc/image/grippy_texture.png',
     'disk' => '/rsrc/image/grippy_texture.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/arrow_branch.png' =>
   array(
     'hash' => 'f27b67520766e3d971722bcff703f3a8',
     'uri' => '/res/f27b6752/rsrc/image/icon/fatcow/arrow_branch.png',
     'disk' => '/rsrc/image/icon/fatcow/arrow_branch.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/arrow_merge.png' =>
   array(
     'hash' => 'c4bd97f3b1257439e2123ef69d2194d0',
     'uri' => '/res/c4bd97f3/rsrc/image/icon/fatcow/arrow_merge.png',
     'disk' => '/rsrc/image/icon/fatcow/arrow_merge.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/bullet_black.png' =>
   array(
     'hash' => '718f9c560a13766796f1be7dfaadeeab',
     'uri' => '/res/718f9c56/rsrc/image/icon/fatcow/bullet_black.png',
     'disk' => '/rsrc/image/icon/fatcow/bullet_black.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/bullet_orange.png' =>
   array(
     'hash' => 'c3bf91b65baacb27f2af143ab9180119',
     'uri' => '/res/c3bf91b6/rsrc/image/icon/fatcow/bullet_orange.png',
     'disk' => '/rsrc/image/icon/fatcow/bullet_orange.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/bullet_red.png' =>
   array(
     'hash' => '00273e4aa6ea3de630295610d6c9560c',
     'uri' => '/res/00273e4a/rsrc/image/icon/fatcow/bullet_red.png',
     'disk' => '/rsrc/image/icon/fatcow/bullet_red.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/calendar_edit.png' =>
   array(
     'hash' => 'de249c0f4f37bf5b2c69ff39ec5573fb',
     'uri' => '/res/de249c0f/rsrc/image/icon/fatcow/calendar_edit.png',
     'disk' => '/rsrc/image/icon/fatcow/calendar_edit.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/document_black.png' =>
   array(
     'hash' => '44d65a7f05a9c921719deedc160d68f7',
     'uri' => '/res/44d65a7f/rsrc/image/icon/fatcow/document_black.png',
     'disk' => '/rsrc/image/icon/fatcow/document_black.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/flag_blue.png' =>
   array(
     'hash' => '75a080492f900fbe489e4b27e403962b',
     'uri' => '/res/75a08049/rsrc/image/icon/fatcow/flag_blue.png',
     'disk' => '/rsrc/image/icon/fatcow/flag_blue.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/flag_finish.png' =>
   array(
     'hash' => '4af11fc7fab8e4610cbc3c88a02d4f78',
     'uri' => '/res/4af11fc7/rsrc/image/icon/fatcow/flag_finish.png',
     'disk' => '/rsrc/image/icon/fatcow/flag_finish.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/flag_ghost.png' =>
   array(
     'hash' => '14c9f30a37b43f276f27a27a924bf02d',
     'uri' => '/res/14c9f30a/rsrc/image/icon/fatcow/flag_ghost.png',
     'disk' => '/rsrc/image/icon/fatcow/flag_ghost.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/flag_green.png' =>
   array(
     'hash' => 'fed01374cd396cb774872762dcc447e1',
     'uri' => '/res/fed01374/rsrc/image/icon/fatcow/flag_green.png',
     'disk' => '/rsrc/image/icon/fatcow/flag_green.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/flag_orange.png' =>
   array(
     'hash' => '88008cb8bb99761a37e5a743e2455aeb',
     'uri' => '/res/88008cb8/rsrc/image/icon/fatcow/flag_orange.png',
     'disk' => '/rsrc/image/icon/fatcow/flag_orange.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/flag_pink.png' =>
   array(
     'hash' => '2f199f06ffc3dfc81b7561a057e0bc33',
     'uri' => '/res/2f199f06/rsrc/image/icon/fatcow/flag_pink.png',
     'disk' => '/rsrc/image/icon/fatcow/flag_pink.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/flag_purple.png' =>
   array(
     'hash' => '16358629dc86c39550b575586eb5df80',
     'uri' => '/res/16358629/rsrc/image/icon/fatcow/flag_purple.png',
     'disk' => '/rsrc/image/icon/fatcow/flag_purple.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/flag_red.png' =>
   array(
     'hash' => '210c28b4d93c439a499f5814f5e05772',
     'uri' => '/res/210c28b4/rsrc/image/icon/fatcow/flag_red.png',
     'disk' => '/rsrc/image/icon/fatcow/flag_red.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/flag_yellow.png' =>
   array(
     'hash' => 'bdfd73744a80bb80329ae50bc8a5f962',
     'uri' => '/res/bdfd7374/rsrc/image/icon/fatcow/flag_yellow.png',
     'disk' => '/rsrc/image/icon/fatcow/flag_yellow.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/folder.png' =>
   array(
     'hash' => '25e46cf9d210dde2242332296f79938c',
     'uri' => '/res/25e46cf9/rsrc/image/icon/fatcow/folder.png',
     'disk' => '/rsrc/image/icon/fatcow/folder.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/folder_go.png' =>
   array(
     'hash' => 'ba922ff7959309f51a14cb7ed5124d8b',
     'uri' => '/res/ba922ff7/rsrc/image/icon/fatcow/folder_go.png',
     'disk' => '/rsrc/image/icon/fatcow/folder_go.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/key_question.png' =>
   array(
     'hash' => '530a6448a4b91edec091a9292ccfd3d9',
     'uri' => '/res/530a6448/rsrc/image/icon/fatcow/key_question.png',
     'disk' => '/rsrc/image/icon/fatcow/key_question.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/link.png' =>
   array(
     'hash' => 'be1bea49b216548433014f3324902928',
     'uri' => '/res/be1bea49/rsrc/image/icon/fatcow/link.png',
     'disk' => '/rsrc/image/icon/fatcow/link.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/page_white_edit.png' =>
   array(
     'hash' => 'e7b7e7f2d9730bc80bc5c9eac1f3e36d',
     'uri' => '/res/e7b7e7f2/rsrc/image/icon/fatcow/page_white_edit.png',
     'disk' => '/rsrc/image/icon/fatcow/page_white_edit.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/page_white_link.png' =>
   array(
     'hash' => '1cfbad14412bda6c6f132dcc7c8725fd',
     'uri' => '/res/1cfbad14/rsrc/image/icon/fatcow/page_white_link.png',
     'disk' => '/rsrc/image/icon/fatcow/page_white_link.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/page_white_put.png' =>
   array(
     'hash' => 'bb7308aa5ac40137a8262da395a267fd',
     'uri' => '/res/bb7308aa/rsrc/image/icon/fatcow/page_white_put.png',
     'disk' => '/rsrc/image/icon/fatcow/page_white_put.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/page_white_text.png' =>
   array(
     'hash' => 'e47d590b626f617fb7d1d44e96e8fd11',
     'uri' => '/res/e47d590b/rsrc/image/icon/fatcow/page_white_text.png',
     'disk' => '/rsrc/image/icon/fatcow/page_white_text.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/source/conduit.png' =>
   array(
     'hash' => '1cae0656580aa3cd0b54b9d98306b1b9',
     'uri' => '/res/1cae0656/rsrc/image/icon/fatcow/source/conduit.png',
     'disk' => '/rsrc/image/icon/fatcow/source/conduit.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/source/email.png' =>
   array(
     'hash' => '93bdb3e168da1ed68f50c42125729d4e',
     'uri' => '/res/93bdb3e1/rsrc/image/icon/fatcow/source/email.png',
     'disk' => '/rsrc/image/icon/fatcow/source/email.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/source/fax.png' =>
   array(
     'hash' => 'd7dedf229841f2d041b347afd881596f',
     'uri' => '/res/d7dedf22/rsrc/image/icon/fatcow/source/fax.png',
     'disk' => '/rsrc/image/icon/fatcow/source/fax.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/source/mobile.png' =>
   array(
     'hash' => '786e7146d1e7d7318baf76c9d2baad97',
     'uri' => '/res/786e7146/rsrc/image/icon/fatcow/source/mobile.png',
     'disk' => '/rsrc/image/icon/fatcow/source/mobile.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/source/tablet.png' =>
   array(
     'hash' => '374cd40e4965be6b2fbdef4059d0ca05',
     'uri' => '/res/374cd40e/rsrc/image/icon/fatcow/source/tablet.png',
     'disk' => '/rsrc/image/icon/fatcow/source/tablet.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/source/web.png' =>
   array(
     'hash' => 'f4882a8f5619ba505ca033f72a340635',
     'uri' => '/res/f4882a8f/rsrc/image/icon/fatcow/source/web.png',
     'disk' => '/rsrc/image/icon/fatcow/source/web.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/thumbnails/default160x120.png' =>
   array(
     'hash' => '1b52ebd1fe0eee3ed0abfc382991b265',
     'uri' => '/res/1b52ebd1/rsrc/image/icon/fatcow/thumbnails/default160x120.png',
     'disk' => '/rsrc/image/icon/fatcow/thumbnails/default160x120.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/thumbnails/default60x45.png' =>
   array(
     'hash' => '048d851d8d1daad4754e891e734c1899',
     'uri' => '/res/048d851d/rsrc/image/icon/fatcow/thumbnails/default60x45.png',
     'disk' => '/rsrc/image/icon/fatcow/thumbnails/default60x45.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/thumbnails/image160x120.png' =>
   array(
     'hash' => '434acbd8dbbc2da9f09f6205a396eba1',
     'uri' => '/res/434acbd8/rsrc/image/icon/fatcow/thumbnails/image160x120.png',
     'disk' => '/rsrc/image/icon/fatcow/thumbnails/image160x120.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/thumbnails/image60x45.png' =>
   array(
     'hash' => '29f7872dc53588fe0b8f0b330c7ee23a',
     'uri' => '/res/29f7872d/rsrc/image/icon/fatcow/thumbnails/image60x45.png',
     'disk' => '/rsrc/image/icon/fatcow/thumbnails/image60x45.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/thumbnails/pdf160x120.png' =>
   array(
     'hash' => '39d2e22541658a3472ba41ae2fa548e5',
     'uri' => '/res/39d2e225/rsrc/image/icon/fatcow/thumbnails/pdf160x120.png',
     'disk' => '/rsrc/image/icon/fatcow/thumbnails/pdf160x120.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/thumbnails/pdf60x45.png' =>
   array(
     'hash' => 'b3572e9317cbed5184d12bdfabed2727',
     'uri' => '/res/b3572e93/rsrc/image/icon/fatcow/thumbnails/pdf60x45.png',
     'disk' => '/rsrc/image/icon/fatcow/thumbnails/pdf60x45.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/thumbnails/zip160x120.png' =>
   array(
     'hash' => 'e505108688a903b5cfb674707a289bcc',
     'uri' => '/res/e5051086/rsrc/image/icon/fatcow/thumbnails/zip160x120.png',
     'disk' => '/rsrc/image/icon/fatcow/thumbnails/zip160x120.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/thumbnails/zip60x45.png' =>
   array(
     'hash' => 'f00716f4e8f7a95e70d43504f06be0a6',
     'uri' => '/res/f00716f4/rsrc/image/icon/fatcow/thumbnails/zip60x45.png',
     'disk' => '/rsrc/image/icon/fatcow/thumbnails/zip60x45.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/lightbox/close-2.png' =>
   array(
     'hash' => '72ff3ddcc1ed5d19a715ed6242114b53',
     'uri' => '/res/72ff3ddc/rsrc/image/icon/lightbox/close-2.png',
     'disk' => '/rsrc/image/icon/lightbox/close-2.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/lightbox/close-hover-2.png' =>
   array(
     'hash' => '6ad4bd4a7820547a1d9041752546ba16',
     'uri' => '/res/6ad4bd4a/rsrc/image/icon/lightbox/close-hover-2.png',
     'disk' => '/rsrc/image/icon/lightbox/close-hover-2.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/lightbox/left-arrow-2.png' =>
   array(
     'hash' => 'd84cbb0d42739f87b8f25b2f1d2f1153',
     'uri' => '/res/d84cbb0d/rsrc/image/icon/lightbox/left-arrow-2.png',
     'disk' => '/rsrc/image/icon/lightbox/left-arrow-2.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/lightbox/left-arrow-hover-2.png' =>
   array(
     'hash' => 'cdf05f98fff3f390cd8df0c89894a3e1',
     'uri' => '/res/cdf05f98/rsrc/image/icon/lightbox/left-arrow-hover-2.png',
     'disk' => '/rsrc/image/icon/lightbox/left-arrow-hover-2.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/lightbox/right-arrow-2.png' =>
   array(
     'hash' => '52021038cb6995c71f62a804bc2d420d',
     'uri' => '/res/52021038/rsrc/image/icon/lightbox/right-arrow-2.png',
     'disk' => '/rsrc/image/icon/lightbox/right-arrow-2.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/lightbox/right-arrow-hover-2.png' =>
   array(
     'hash' => '65d5756b7b9cfcdeb2eb197a9aa6bbd2',
     'uri' => '/res/65d5756b/rsrc/image/icon/lightbox/right-arrow-hover-2.png',
     'disk' => '/rsrc/image/icon/lightbox/right-arrow-hover-2.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/subscribe.png' =>
   array(
     'hash' => '5f47a4b17de245af39a4e7a097e40623',
     'uri' => '/res/5f47a4b1/rsrc/image/icon/subscribe.png',
     'disk' => '/rsrc/image/icon/subscribe.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/tango/attachment.png' =>
   array(
     'hash' => '776fed2de89803fd8a0ba4b9deede230',
     'uri' => '/res/776fed2d/rsrc/image/icon/tango/attachment.png',
     'disk' => '/rsrc/image/icon/tango/attachment.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/tango/edit.png' =>
   array(
     'hash' => 'c0028d99dcf4e9559bbf3c88ce2d8a8d',
     'uri' => '/res/c0028d99/rsrc/image/icon/tango/edit.png',
     'disk' => '/rsrc/image/icon/tango/edit.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/tango/go-down.png' =>
   array(
     'hash' => '96862812cbb0445573c264dc057b8300',
     'uri' => '/res/96862812/rsrc/image/icon/tango/go-down.png',
     'disk' => '/rsrc/image/icon/tango/go-down.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/tango/log.png' =>
   array(
     'hash' => 'a6f72499bef279ff6807a7dbc5148f1e',
     'uri' => '/res/a6f72499/rsrc/image/icon/tango/log.png',
     'disk' => '/rsrc/image/icon/tango/log.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/tango/upload.png' =>
   array(
     'hash' => '8c11b63d6d99db3d7159c5d9a94e3062',
     'uri' => '/res/8c11b63d/rsrc/image/icon/tango/upload.png',
     'disk' => '/rsrc/image/icon/tango/upload.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/unsubscribe.png' =>
   array(
     'hash' => '29429ad65aa3af50b072b32087057361',
     'uri' => '/res/29429ad6/rsrc/image/icon/unsubscribe.png',
     'disk' => '/rsrc/image/icon/unsubscribe.png',
     'type' => 'png',
   ),
   '/rsrc/image/loading.gif' =>
   array(
     'hash' => '664297671941142f37d8c89e717ff2ce',
     'uri' => '/res/66429767/rsrc/image/loading.gif',
     'disk' => '/rsrc/image/loading.gif',
     'type' => 'gif',
   ),
   '/rsrc/image/main_texture.png' =>
   array(
     'hash' => 'e34d8143384721be73ec9b7532a977ab',
     'uri' => '/res/e34d8143/rsrc/image/main_texture.png',
     'disk' => '/rsrc/image/main_texture.png',
     'type' => 'png',
   ),
   '/rsrc/image/menu_texture.png' =>
   array(
     'hash' => '42193f24a52bd94be596c442d59a68ce',
     'uri' => '/res/42193f24/rsrc/image/menu_texture.png',
     'disk' => '/rsrc/image/menu_texture.png',
     'type' => 'png',
   ),
   '/rsrc/image/nyan.gif' =>
   array(
     'hash' => '03c40be4e004e6468d62b503756a587e',
     'uri' => '/res/03c40be4/rsrc/image/nyan.gif',
     'disk' => '/rsrc/image/nyan.gif',
     'type' => 'gif',
   ),
   '/rsrc/image/search.png' =>
   array(
     'hash' => 'ff7da044e6f923b8f569dec11f97e5e5',
     'uri' => '/res/ff7da044/rsrc/image/search.png',
     'disk' => '/rsrc/image/search.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-apps-X2.png' =>
   array(
     'hash' => 'bb06f24940dc6e5e7f48c6e4444a6e89',
     'uri' => '/res/bb06f249/rsrc/image/sprite-apps-X2.png',
     'disk' => '/rsrc/image/sprite-apps-X2.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-apps-large-X2.png' =>
   array(
     'hash' => 'dffe647d8d8ddfab9b2f5f870b4e40b4',
     'uri' => '/res/dffe647d/rsrc/image/sprite-apps-large-X2.png',
     'disk' => '/rsrc/image/sprite-apps-large-X2.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-apps-large.png' =>
   array(
     'hash' => 'cc0d81cafa185c541350a9db6f3befb7',
     'uri' => '/res/cc0d81ca/rsrc/image/sprite-apps-large.png',
     'disk' => '/rsrc/image/sprite-apps-large.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-apps-xlarge.png' =>
   array(
     'hash' => '2872a2b24d2d5a347b2bd1ba9a6692ef',
     'uri' => '/res/2872a2b2/rsrc/image/sprite-apps-xlarge.png',
     'disk' => '/rsrc/image/sprite-apps-xlarge.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-apps.png' =>
   array(
     'hash' => 'cd2c777b79b8b7bfc69ef12cba575210',
     'uri' => '/res/cd2c777b/rsrc/image/sprite-apps.png',
     'disk' => '/rsrc/image/sprite-apps.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-gradient.png' =>
   array(
     'hash' => '6666ab677f5dc4fd3fa14ba394f41d3c',
     'uri' => '/res/6666ab67/rsrc/image/sprite-gradient.png',
     'disk' => '/rsrc/image/sprite-gradient.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-icon-X2.png' =>
   array(
     'hash' => '2ed96382cab2930fb799a39e3f66f4f1',
     'uri' => '/res/2ed96382/rsrc/image/sprite-icon-X2.png',
     'disk' => '/rsrc/image/sprite-icon-X2.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-icon.png' =>
   array(
     'hash' => '3ad6f08b9770c3150a420d0ab67f6282',
     'uri' => '/res/3ad6f08b/rsrc/image/sprite-icon.png',
     'disk' => '/rsrc/image/sprite-icon.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-menu-X2.png' =>
   array(
     'hash' => '11017d94e949aa169361b966716e8729',
     'uri' => '/res/11017d94/rsrc/image/sprite-menu-X2.png',
     'disk' => '/rsrc/image/sprite-menu-X2.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-menu.png' =>
   array(
     'hash' => 'ba0f7d61f49ea50e9c3ff93b160e14c5',
     'uri' => '/res/ba0f7d61/rsrc/image/sprite-menu.png',
     'disk' => '/rsrc/image/sprite-menu.png',
     'type' => 'png',
   ),
   '/rsrc/image/texture/dark-menu.png' =>
   array(
     'hash' => '41dfbdfba88ba361c72bbf289396200c',
     'uri' => '/res/41dfbdfb/rsrc/image/texture/dark-menu.png',
     'disk' => '/rsrc/image/texture/dark-menu.png',
     'type' => 'png',
   ),
   '/rsrc/swf/aphlict.swf' =>
   array(
     'hash' => '4b9a9d83bebaf254f3790e87b45c1f92',
     'uri' => '/res/4b9a9d83/rsrc/swf/aphlict.swf',
     'disk' => '/rsrc/swf/aphlict.swf',
     'type' => 'swf',
   ),
   'aphront-attached-file-view-css' =>
   array(
     'uri' => '/res/a6ca5487/rsrc/css/aphront/attached-file-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/attached-file-view.css',
   ),
   'aphront-calendar-view-css' =>
   array(
     'uri' => '/res/31e92d4d/rsrc/css/aphront/calendar-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/calendar-view.css',
   ),
   'aphront-contextbar-view-css' =>
   array(
     'uri' => '/res/9e0c2ed7/rsrc/css/aphront/context-bar.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/context-bar.css',
   ),
   'aphront-crumbs-view-css' =>
   array(
     'uri' => '/res/699be12a/rsrc/css/aphront/crumbs-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/crumbs-view.css',
   ),
   'aphront-dark-console-css' =>
   array(
     'uri' => '/res/1adffcf3/rsrc/css/aphront/dark-console.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/dark-console.css',
   ),
   'aphront-dialog-view-css' =>
   array(
     'uri' => '/res/ae4f5352/rsrc/css/aphront/dialog-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/dialog-view.css',
   ),
   'aphront-error-view-css' =>
   array(
     'uri' => '/res/410dbe72/rsrc/css/aphront/error-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/error-view.css',
   ),
   'aphront-form-view-css' =>
   array(
     'uri' => '/res/c5c3105a/rsrc/css/aphront/form-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/form-view.css',
   ),
   'aphront-headsup-action-list-view-css' =>
   array(
     'uri' => '/res/1dce0ad7/rsrc/css/aphront/headsup-action-list-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/headsup-action-list-view.css',
   ),
   'aphront-headsup-view-css' =>
   array(
     'uri' => '/res/cf759e39/rsrc/css/aphront/headsup.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/headsup.css',
   ),
   'aphront-list-filter-view-css' =>
   array(
     'uri' => '/res/0f5ddaba/rsrc/css/aphront/list-filter-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/list-filter-view.css',
   ),
   'aphront-pager-view-css' =>
   array(
     'uri' => '/res/43fb79f0/rsrc/css/aphront/pager-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/pager-view.css',
   ),
   'aphront-panel-view-css' =>
   array(
     'uri' => '/res/77bb2527/rsrc/css/aphront/panel-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/panel-view.css',
   ),
   'aphront-request-failure-view-css' =>
   array(
     'uri' => '/res/c9a43002/rsrc/css/aphront/request-failure-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/request-failure-view.css',
   ),
   'aphront-side-nav-view-css' =>
   array(
     'uri' => '/res/f697dc9b/rsrc/css/aphront/side-nav-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/side-nav-view.css',
   ),
   'aphront-table-view-css' =>
   array(
     'uri' => '/res/732d5e1f/rsrc/css/aphront/table-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/table-view.css',
   ),
   'aphront-tokenizer-control-css' =>
   array(
     'uri' => '/res/f4570596/rsrc/css/aphront/tokenizer.css',
     'type' => 'css',
     'requires' =>
     array(
       0 => 'aphront-typeahead-control-css',
     ),
     'disk' => '/rsrc/css/aphront/tokenizer.css',
   ),
   'aphront-tooltip-css' =>
   array(
     'uri' => '/res/e0fa3a98/rsrc/css/aphront/tooltip.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/tooltip.css',
   ),
   'aphront-typeahead-control-css' =>
   array(
     'uri' => '/res/311e8830/rsrc/css/aphront/typeahead.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/typeahead.css',
   ),
   'differential-changeset-view-css' =>
   array(
     'uri' => '/res/90efe4ec/rsrc/css/application/differential/changeset-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/changeset-view.css',
   ),
   'differential-core-view-css' =>
   array(
     'uri' => '/res/7901260e/rsrc/css/application/differential/core.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/core.css',
   ),
   'differential-inline-comment-editor' =>
   array(
     'uri' => '/res/1bc649b7/rsrc/js/application/differential/DifferentialInlineCommentEditor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-dom',
       1 => 'javelin-util',
       2 => 'javelin-stratcom',
       3 => 'javelin-install',
       4 => 'javelin-request',
       5 => 'javelin-workflow',
     ),
     'disk' => '/rsrc/js/application/differential/DifferentialInlineCommentEditor.js',
   ),
   'differential-local-commits-view-css' =>
   array(
     'uri' => '/res/8cdacd82/rsrc/css/application/differential/local-commits-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/local-commits-view.css',
   ),
   'differential-results-table-css' =>
   array(
     'uri' => '/res/470b474d/rsrc/css/application/differential/results-table.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/results-table.css',
   ),
   'differential-revision-add-comment-css' =>
   array(
     'uri' => '/res/849748d3/rsrc/css/application/differential/add-comment.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/add-comment.css',
   ),
   'differential-revision-comment-css' =>
   array(
     'uri' => '/res/5e613a7f/rsrc/css/application/differential/revision-comment.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/revision-comment.css',
   ),
   'differential-revision-comment-list-css' =>
   array(
     'uri' => '/res/3b31faa3/rsrc/css/application/differential/revision-comment-list.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/revision-comment-list.css',
   ),
   'differential-revision-history-css' =>
   array(
     'uri' => '/res/0d7d515d/rsrc/css/application/differential/revision-history.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/revision-history.css',
   ),
   'differential-revision-list-css' =>
   array(
     'uri' => '/res/7659ad8d/rsrc/css/application/differential/revision-list.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/revision-list.css',
   ),
   'differential-table-of-contents-css' =>
   array(
     'uri' => '/res/0ac99a19/rsrc/css/application/differential/table-of-contents.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/table-of-contents.css',
   ),
   'diffusion-commit-view-css' =>
   array(
     'uri' => '/res/b445944e/rsrc/css/application/diffusion/commit-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/diffusion/commit-view.css',
   ),
   'diffusion-icons-css' =>
   array(
     'uri' => '/res/b93e32c9/rsrc/css/application/diffusion/diffusion-icons.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/diffusion/diffusion-icons.css',
   ),
   'diffusion-source-css' =>
   array(
     'uri' => '/res/6a28b429/rsrc/css/application/diffusion/diffusion-source.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/diffusion/diffusion-source.css',
   ),
   'files-css' =>
   array(
     'uri' => '/res/a265a77d/rsrc/css/application/files/files.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/files/files.css',
   ),
   'herald-css' =>
   array(
     'uri' => '/res/5051f3ab/rsrc/css/application/herald/herald.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/herald/herald.css',
   ),
   'herald-rule-editor' =>
   array(
     'uri' => '/res/3a2979de/rsrc/js/application/herald/HeraldRuleEditor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'multirow-row-manager',
       1 => 'javelin-install',
       2 => 'javelin-typeahead',
       3 => 'javelin-util',
       4 => 'javelin-dom',
       5 => 'javelin-tokenizer',
       6 => 'javelin-typeahead-preloaded-source',
       7 => 'javelin-stratcom',
       8 => 'javelin-json',
       9 => 'phabricator-prefab',
     ),
     'disk' => '/rsrc/js/application/herald/HeraldRuleEditor.js',
   ),
   'herald-test-css' =>
   array(
     'uri' => '/res/c0cd6bdb/rsrc/css/application/herald/herald-test.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/herald/herald-test.css',
   ),
   'inline-comment-summary-css' =>
   array(
     'uri' => '/res/338704f7/rsrc/css/application/diff/inline-comment-summary.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/diff/inline-comment-summary.css',
   ),
   'javelin-aphlict' =>
   array(
     'uri' => '/res/c0b9e53f/rsrc/js/application/aphlict/Aphlict.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/application/aphlict/Aphlict.js',
   ),
   'javelin-behavior' =>
   array(
     'uri' => '/res/ef4eda09/rsrc/js/javelin/lib/behavior.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-magical-init',
     ),
     'disk' => '/rsrc/js/javelin/lib/behavior.js',
   ),
   'javelin-behavior-aphlict-dropdown' =>
   array(
-    'uri' => '/res/e9b6fd18/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js',
+    'uri' => '/res/f09bc90d/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-request',
       2 => 'javelin-stratcom',
       3 => 'javelin-vector',
       4 => 'javelin-dom',
+      5 => 'javelin-uri',
     ),
     'disk' => '/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js',
   ),
   'javelin-behavior-aphlict-listen' =>
   array(
     'uri' => '/res/6dde3f43/rsrc/js/application/aphlict/behavior-aphlict-listen.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-aphlict',
       2 => 'javelin-stratcom',
       3 => 'javelin-request',
       4 => 'javelin-uri',
       5 => 'javelin-dom',
       6 => 'javelin-json',
       7 => 'phabricator-notification',
     ),
     'disk' => '/rsrc/js/application/aphlict/behavior-aphlict-listen.js',
   ),
   'javelin-behavior-aphront-basic-tokenizer' =>
   array(
     'uri' => '/res/cf049052/rsrc/js/application/core/behavior-tokenizer.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'phabricator-prefab',
     ),
     'disk' => '/rsrc/js/application/core/behavior-tokenizer.js',
   ),
   'javelin-behavior-aphront-drag-and-drop' =>
   array(
     'uri' => '/res/0910fc0a/rsrc/js/application/core/behavior-drag-and-drop.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'phabricator-drag-and-drop-file-upload',
     ),
     'disk' => '/rsrc/js/application/core/behavior-drag-and-drop.js',
   ),
   'javelin-behavior-aphront-drag-and-drop-textarea' =>
   array(
     'uri' => '/res/ad737ce4/rsrc/js/application/core/behavior-drag-and-drop-textarea.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'phabricator-drag-and-drop-file-upload',
       3 => 'phabricator-paste-file-upload',
       4 => 'phabricator-textareautils',
     ),
     'disk' => '/rsrc/js/application/core/behavior-drag-and-drop-textarea.js',
   ),
   'javelin-behavior-aphront-form-disable-on-submit' =>
   array(
     'uri' => '/res/ca54e8b9/rsrc/js/application/core/behavior-form.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/core/behavior-form.js',
   ),
   'javelin-behavior-aphront-more' =>
   array(
     'uri' => '/res/9ad83c3c/rsrc/js/application/core/behavior-more.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/core/behavior-more.js',
   ),
   'javelin-behavior-audit-preview' =>
   array(
     'uri' => '/res/3048b073/rsrc/js/application/diffusion/behavior-audit-preview.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'phabricator-shaped-request',
     ),
     'disk' => '/rsrc/js/application/diffusion/behavior-audit-preview.js',
   ),
   'javelin-behavior-countdown-timer' =>
   array(
     'uri' => '/res/7468acb7/rsrc/js/application/countdown/timer.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/application/countdown/timer.js',
   ),
   'javelin-behavior-dark-console' =>
   array(
     'uri' => '/res/3269c0bb/rsrc/js/application/core/behavior-dark-console.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-util',
       3 => 'javelin-dom',
       4 => 'javelin-request',
       5 => 'phabricator-keyboard-shortcut',
       6 => 'javelin-behavior-dark-console-ajax',
     ),
     'disk' => '/rsrc/js/application/core/behavior-dark-console.js',
   ),
   'javelin-behavior-dark-console-ajax' =>
   array(
     'uri' => '/res/ac3ab63a/rsrc/js/application/core/behavior-dark-console-ajax.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/core/behavior-dark-console-ajax.js',
   ),
   'javelin-behavior-device' =>
   array(
     'uri' => '/res/4d387c75/rsrc/js/application/core/behavior-device.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
       3 => 'javelin-vector',
       4 => 'javelin-install',
     ),
     'disk' => '/rsrc/js/application/core/behavior-device.js',
   ),
   'javelin-behavior-differential-accept-with-errors' =>
   array(
     'uri' => '/res/ba5144c5/rsrc/js/application/differential/behavior-accept-with-errors.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-accept-with-errors.js',
   ),
   'javelin-behavior-differential-add-reviewers-and-ccs' =>
   array(
     'uri' => '/res/27be3f81/rsrc/js/application/differential/behavior-add-reviewers-and-ccs.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'phabricator-prefab',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-add-reviewers-and-ccs.js',
   ),
   'javelin-behavior-differential-comment-jump' =>
   array(
     'uri' => '/res/b580229b/rsrc/js/application/differential/behavior-comment-jump.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-util',
       2 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-comment-jump.js',
   ),
   'javelin-behavior-differential-diff-radios' =>
   array(
     'uri' => '/res/004cb66f/rsrc/js/application/differential/behavior-diff-radios.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-diff-radios.js',
   ),
   'javelin-behavior-differential-dropdown-menus' =>
   array(
     'uri' => '/res/752f5dfc/rsrc/js/application/differential/behavior-dropdown-menus.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'javelin-stratcom',
       4 => 'phabricator-dropdown-menu',
       5 => 'phabricator-menu-item',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-dropdown-menus.js',
   ),
   'javelin-behavior-differential-edit-inline-comments' =>
   array(
     'uri' => '/res/70c1f3a3/rsrc/js/application/differential/behavior-edit-inline-comments.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
       3 => 'javelin-util',
       4 => 'javelin-vector',
       5 => 'differential-inline-comment-editor',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-edit-inline-comments.js',
   ),
   'javelin-behavior-differential-feedback-preview' =>
   array(
     'uri' => '/res/5fbce8db/rsrc/js/application/differential/behavior-comment-preview.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
       3 => 'javelin-request',
       4 => 'javelin-util',
       5 => 'phabricator-shaped-request',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-comment-preview.js',
   ),
   'javelin-behavior-differential-keyboard-navigation' =>
   array(
     'uri' => '/res/a7798465/rsrc/js/application/differential/behavior-keyboard-nav.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
       3 => 'phabricator-keyboard-shortcut',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-keyboard-nav.js',
   ),
   'javelin-behavior-differential-populate' =>
   array(
     'uri' => '/res/781dd9a5/rsrc/js/application/differential/behavior-populate.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-workflow',
       2 => 'javelin-util',
       3 => 'javelin-dom',
       4 => 'javelin-stratcom',
       5 => 'phabricator-tooltip',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-populate.js',
   ),
   'javelin-behavior-differential-show-all-comments' =>
   array(
     'uri' => '/res/eaa12efc/rsrc/js/application/differential/behavior-show-all-comments.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-show-all-comments.js',
   ),
   'javelin-behavior-differential-show-field-details' =>
   array(
     'uri' => '/res/8d57f459/rsrc/js/application/differential/behavior-show-field-details.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-show-field-details.js',
   ),
   'javelin-behavior-differential-show-more' =>
   array(
     'uri' => '/res/88115daf/rsrc/js/application/differential/behavior-show-more.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-workflow',
       3 => 'javelin-util',
       4 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-show-more.js',
   ),
   'javelin-behavior-differential-toggle-files' =>
   array(
     'uri' => '/res/ae937207/rsrc/js/application/differential/behavior-toggle-files.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-toggle-files.js',
   ),
   'javelin-behavior-differential-user-select' =>
   array(
     'uri' => '/res/23c51a5d/rsrc/js/application/differential/behavior-user-select.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-user-select.js',
   ),
   'javelin-behavior-diffusion-commit-branches' =>
   array(
     'uri' => '/res/1ede335a/rsrc/js/application/diffusion/behavior-commit-branches.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'javelin-request',
     ),
     'disk' => '/rsrc/js/application/diffusion/behavior-commit-branches.js',
   ),
   'javelin-behavior-diffusion-commit-graph' =>
   array(
     'uri' => '/res/cfe336e8/rsrc/js/application/diffusion/behavior-commit-graph.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/js/application/diffusion/behavior-commit-graph.js',
   ),
   'javelin-behavior-diffusion-jump-to' =>
   array(
     'uri' => '/res/7c42e1ba/rsrc/js/application/diffusion/behavior-jump-to.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-util',
       2 => 'javelin-vector',
       3 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/diffusion/behavior-jump-to.js',
   ),
   'javelin-behavior-diffusion-line-linker' =>
   array(
     'uri' => '/res/d3cf5499/rsrc/js/application/diffusion/behavior-line-linker.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
       3 => 'javelin-uri',
     ),
     'disk' => '/rsrc/js/application/diffusion/behavior-line-linker.js',
   ),
   'javelin-behavior-diffusion-pull-lastmodified' =>
   array(
     'uri' => '/res/29fe2790/rsrc/js/application/diffusion/behavior-pull-lastmodified.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'javelin-request',
     ),
     'disk' => '/rsrc/js/application/diffusion/behavior-pull-lastmodified.js',
   ),
   'javelin-behavior-error-log' =>
   array(
     'uri' => '/res/f46289e9/rsrc/js/application/core/behavior-error-log.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/core/behavior-error-log.js',
   ),
   'javelin-behavior-fancy-datepicker' =>
   array(
     'uri' => '/res/ae843244/rsrc/js/application/core/behavior-fancy-datepicker.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-util',
       2 => 'javelin-dom',
       3 => 'javelin-stratcom',
       4 => 'javelin-vector',
     ),
     'disk' => '/rsrc/js/application/core/behavior-fancy-datepicker.js',
   ),
   'javelin-behavior-files-drag-and-drop' =>
   array(
     'uri' => '/res/4893f577/rsrc/js/application/core/behavior-files-drag-and-drop.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-uri',
       3 => 'phabricator-drag-and-drop-file-upload',
     ),
     'disk' => '/rsrc/js/application/core/behavior-files-drag-and-drop.js',
   ),
   'javelin-behavior-herald-rule-editor' =>
   array(
     'uri' => '/res/77a0c945/rsrc/js/application/herald/herald-rule-editor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'herald-rule-editor',
       1 => 'javelin-behavior',
     ),
     'disk' => '/rsrc/js/application/herald/herald-rule-editor.js',
   ),
   'javelin-behavior-konami' =>
   array(
     'uri' => '/res/5f4b32fe/rsrc/js/application/core/behavior-konami.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/js/application/core/behavior-konami.js',
   ),
   'javelin-behavior-lightbox-attachments' =>
   array(
     'uri' => '/res/5efba371/rsrc/js/application/core/behavior-lightbox-attachments.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
       3 => 'javelin-mask',
       4 => 'javelin-util',
       5 => 'phabricator-busy',
     ),
     'disk' => '/rsrc/js/application/core/behavior-lightbox-attachments.js',
   ),
   'javelin-behavior-line-chart' =>
   array(
     'uri' => '/res/1aa5ac88/rsrc/js/application/maniphest/behavior-line-chart.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-vector',
     ),
     'disk' => '/rsrc/js/application/maniphest/behavior-line-chart.js',
   ),
   'javelin-behavior-maniphest-batch-editor' =>
   array(
     'uri' => '/res/d22661be/rsrc/js/application/maniphest/behavior-batch-editor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'phabricator-prefab',
       4 => 'multirow-row-manager',
       5 => 'javelin-json',
     ),
     'disk' => '/rsrc/js/application/maniphest/behavior-batch-editor.js',
   ),
   'javelin-behavior-maniphest-batch-selector' =>
   array(
     'uri' => '/res/398cf8d7/rsrc/js/application/maniphest/behavior-batch-selector.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/js/application/maniphest/behavior-batch-selector.js',
   ),
   'javelin-behavior-maniphest-description-preview' =>
   array(
     'uri' => '/res/8acd6f07/rsrc/js/application/maniphest/behavior-task-preview.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'phabricator-shaped-request',
     ),
     'disk' => '/rsrc/js/application/maniphest/behavior-task-preview.js',
   ),
   'javelin-behavior-maniphest-subpriority-editor' =>
   array(
     'uri' => '/res/5e02f19a/rsrc/js/application/maniphest/behavior-subpriorityeditor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-magical-init',
       2 => 'javelin-dom',
       3 => 'javelin-vector',
       4 => 'javelin-stratcom',
       5 => 'javelin-workflow',
     ),
     'disk' => '/rsrc/js/application/maniphest/behavior-subpriorityeditor.js',
   ),
   'javelin-behavior-maniphest-transaction-controls' =>
   array(
     'uri' => '/res/62465554/rsrc/js/application/maniphest/behavior-transaction-controls.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'phabricator-prefab',
     ),
     'disk' => '/rsrc/js/application/maniphest/behavior-transaction-controls.js',
   ),
   'javelin-behavior-maniphest-transaction-expand' =>
   array(
     'uri' => '/res/966410de/rsrc/js/application/maniphest/behavior-transaction-expand.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-workflow',
       3 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/js/application/maniphest/behavior-transaction-expand.js',
   ),
   'javelin-behavior-maniphest-transaction-preview' =>
   array(
     'uri' => '/res/855c9f0c/rsrc/js/application/maniphest/behavior-transaction-preview.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'javelin-json',
       4 => 'javelin-stratcom',
       5 => 'phabricator-shaped-request',
     ),
     'disk' => '/rsrc/js/application/maniphest/behavior-transaction-preview.js',
   ),
   'javelin-behavior-owners-path-editor' =>
   array(
     'uri' => '/res/9cf78ffc/rsrc/js/application/owners/owners-path-editor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'owners-path-editor',
       1 => 'javelin-behavior',
     ),
     'disk' => '/rsrc/js/application/owners/owners-path-editor.js',
   ),
   'javelin-behavior-phabricator-active-nav' =>
   array(
     'uri' => '/res/f879d4dd/rsrc/js/application/core/behavior-active-nav.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-vector',
       3 => 'javelin-dom',
       4 => 'javelin-uri',
     ),
     'disk' => '/rsrc/js/application/core/behavior-active-nav.js',
   ),
   'javelin-behavior-phabricator-autofocus' =>
   array(
     'uri' => '/res/2946bb89/rsrc/js/application/core/behavior-autofocus.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/core/behavior-autofocus.js',
   ),
   'javelin-behavior-phabricator-keyboard-pager' =>
   array(
     'uri' => '/res/56d64eff/rsrc/js/application/core/behavior-keyboard-pager.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-uri',
       2 => 'phabricator-keyboard-shortcut',
     ),
     'disk' => '/rsrc/js/application/core/behavior-keyboard-pager.js',
   ),
   'javelin-behavior-phabricator-keyboard-shortcuts' =>
   array(
     'uri' => '/res/c5eb65cd/rsrc/js/application/core/behavior-keyboard-shortcuts.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-workflow',
       2 => 'javelin-json',
       3 => 'javelin-dom',
       4 => 'phabricator-keyboard-shortcut',
     ),
     'disk' => '/rsrc/js/application/core/behavior-keyboard-shortcuts.js',
   ),
   'javelin-behavior-phabricator-nav' =>
   array(
     'uri' => '/res/ef90e83f/rsrc/js/application/core/behavior-phabricator-nav.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-behavior-device',
       2 => 'javelin-stratcom',
       3 => 'javelin-dom',
       4 => 'javelin-magical-init',
       5 => 'javelin-vector',
     ),
     'disk' => '/rsrc/js/application/core/behavior-phabricator-nav.js',
   ),
   'javelin-behavior-phabricator-notification-example' =>
   array(
     'uri' => '/res/a6d51998/rsrc/js/application/uiexample/notification-example.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'phabricator-notification',
       1 => 'javelin-stratcom',
       2 => 'javelin-behavior',
       3 => 'javelin-uri',
     ),
     'disk' => '/rsrc/js/application/uiexample/notification-example.js',
   ),
   'javelin-behavior-phabricator-object-selector' =>
   array(
     'uri' => '/res/0c4b0d82/rsrc/js/application/core/behavior-object-selector.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-request',
       3 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/application/core/behavior-object-selector.js',
   ),
   'javelin-behavior-phabricator-oncopy' =>
   array(
     'uri' => '/res/f490b8d1/rsrc/js/application/core/behavior-oncopy.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/core/behavior-oncopy.js',
   ),
   'javelin-behavior-phabricator-remarkup-assist' =>
   array(
     'uri' => '/res/8a4f3a35/rsrc/js/application/core/behavior-phabricator-remarkup-assist.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
       3 => 'phabricator-textareautils',
     ),
     'disk' => '/rsrc/js/application/core/behavior-phabricator-remarkup-assist.js',
   ),
   'javelin-behavior-phabricator-search-typeahead' =>
   array(
     'uri' => '/res/046ab274/rsrc/js/application/core/behavior-search-typeahead.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-typeahead-ondemand-source',
       2 => 'javelin-typeahead',
       3 => 'javelin-dom',
       4 => 'javelin-uri',
       5 => 'javelin-util',
       6 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/js/application/core/behavior-search-typeahead.js',
   ),
   'javelin-behavior-phabricator-tooltips' =>
   array(
     'uri' => '/res/e0b344c6/rsrc/js/application/core/behavior-tooltip.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-behavior-device',
       2 => 'javelin-stratcom',
       3 => 'phabricator-tooltip',
     ),
     'disk' => '/rsrc/js/application/core/behavior-tooltip.js',
   ),
   'javelin-behavior-phabricator-watch-anchor' =>
   array(
     'uri' => '/res/b20b1cc2/rsrc/js/application/core/behavior-watch-anchor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
       3 => 'javelin-vector',
     ),
     'disk' => '/rsrc/js/application/core/behavior-watch-anchor.js',
   ),
   'javelin-behavior-phame-post-preview' =>
   array(
     'uri' => '/res/ac4c503a/rsrc/js/application/phame/phame-post-preview.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'phabricator-shaped-request',
     ),
     'disk' => '/rsrc/js/application/phame/phame-post-preview.js',
   ),
   'javelin-behavior-phriction-document-preview' =>
   array(
     'uri' => '/res/f1665ecd/rsrc/js/application/phriction/phriction-document-preview.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'phabricator-shaped-request',
     ),
     'disk' => '/rsrc/js/application/phriction/phriction-document-preview.js',
   ),
   'javelin-behavior-ponder-feedback-preview' =>
   array(
     'uri' => '/res/2e802dd9/rsrc/js/application/ponder/behavior-comment-preview.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'phabricator-shaped-request',
     ),
     'disk' => '/rsrc/js/application/ponder/behavior-comment-preview.js',
   ),
   'javelin-behavior-ponder-votebox' =>
   array(
     'uri' => '/res/9d091af3/rsrc/js/application/ponder/behavior-votebox.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'javelin-stratcom',
       4 => 'javelin-request',
     ),
     'disk' => '/rsrc/js/application/ponder/behavior-votebox.js',
   ),
   'javelin-behavior-project-create' =>
   array(
     'uri' => '/res/e91f3f8f/rsrc/js/application/projects/behavior-project-create.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
       3 => 'javelin-workflow',
     ),
     'disk' => '/rsrc/js/application/projects/behavior-project-create.js',
   ),
   'javelin-behavior-refresh-csrf' =>
   array(
     'uri' => '/res/6fd76d0f/rsrc/js/application/core/behavior-refresh-csrf.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-request',
       1 => 'javelin-behavior',
       2 => 'javelin-dom',
       3 => 'phabricator-busy',
     ),
     'disk' => '/rsrc/js/application/core/behavior-refresh-csrf.js',
   ),
   'javelin-behavior-repository-crossreference' =>
   array(
     'uri' => '/res/244c5251/rsrc/js/application/repository/repository-crossreference.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
       3 => 'javelin-uri',
     ),
     'disk' => '/rsrc/js/application/repository/repository-crossreference.js',
   ),
   'javelin-behavior-stripe-payment-form' =>
   array(
     'uri' => '/res/87c7b043/rsrc/js/application/phortune/behavior-stripe-payment-form.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-json',
       3 => 'stripe-core',
     ),
     'disk' => '/rsrc/js/application/phortune/behavior-stripe-payment-form.js',
   ),
   'javelin-behavior-toggle-class' =>
   array(
     'uri' => '/res/fa818e0f/rsrc/js/application/core/behavior-toggle-class.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/core/behavior-toggle-class.js',
   ),
   'javelin-behavior-view-placeholder' =>
   array(
     'uri' => '/res/5b89bdf5/rsrc/js/javelin/ext/view/ViewPlaceholder.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-view-renderer',
     ),
     'disk' => '/rsrc/js/javelin/ext/view/ViewPlaceholder.js',
   ),
   'javelin-behavior-workflow' =>
   array(
     'uri' => '/res/2b0e2754/rsrc/js/application/core/behavior-workflow.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-workflow',
       3 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/core/behavior-workflow.js',
   ),
   'javelin-color' =>
   array(
     'uri' => '/res/b0439fc9/rsrc/js/javelin/ext/fx/Color.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
     ),
     'disk' => '/rsrc/js/javelin/ext/fx/Color.js',
   ),
   'javelin-cookie' =>
   array(
     'uri' => '/res/a9cddab0/rsrc/js/javelin/lib/Cookie.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/javelin/lib/Cookie.js',
   ),
   'javelin-dom' =>
   array(
     'uri' => '/res/4c79cf8a/rsrc/js/javelin/lib/DOM.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-magical-init',
       1 => 'javelin-install',
       2 => 'javelin-util',
       3 => 'javelin-vector',
       4 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/js/javelin/lib/DOM.js',
   ),
   'javelin-dynval' =>
   array(
     'uri' => '/res/d89c6f88/rsrc/js/javelin/ext/reactor/core/DynVal.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-reactornode',
       2 => 'javelin-util',
       3 => 'javelin-reactor',
     ),
     'disk' => '/rsrc/js/javelin/ext/reactor/core/DynVal.js',
   ),
   'javelin-event' =>
   array(
     'uri' => '/res/3815b473/rsrc/js/javelin/core/Event.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
     ),
     'disk' => '/rsrc/js/javelin/core/Event.js',
   ),
   'javelin-fx' =>
   array(
     'uri' => '/res/30ef0914/rsrc/js/javelin/ext/fx/FX.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-color',
       1 => 'javelin-install',
       2 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/javelin/ext/fx/FX.js',
   ),
   'javelin-history' =>
   array(
     'uri' => '/res/9bb36651/rsrc/js/javelin/lib/History.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-stratcom',
       1 => 'javelin-install',
       2 => 'javelin-uri',
       3 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/javelin/lib/History.js',
   ),
   'javelin-install' =>
   array(
     'uri' => '/res/cab679ff/rsrc/js/javelin/core/install.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-util',
       1 => 'javelin-magical-init',
     ),
     'disk' => '/rsrc/js/javelin/core/install.js',
   ),
   'javelin-json' =>
   array(
     'uri' => '/res/561b8056/rsrc/js/javelin/lib/JSON.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
     ),
     'disk' => '/rsrc/js/javelin/lib/JSON.js',
   ),
   'javelin-magical-init' =>
   array(
     'uri' => '/res/4f3c705c/rsrc/js/javelin/core/init.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/js/javelin/core/init.js',
   ),
   'javelin-mask' =>
   array(
     'uri' => '/res/d2a35fff/rsrc/js/javelin/lib/Mask.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/javelin/lib/Mask.js',
   ),
   'javelin-reactor' =>
   array(
     'uri' => '/res/dfd87f3c/rsrc/js/javelin/ext/reactor/core/Reactor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/javelin/ext/reactor/core/Reactor.js',
   ),
   'javelin-reactor-dom' =>
   array(
     'uri' => '/res/701b6f39/rsrc/js/javelin/ext/reactor/dom/RDOM.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-dom',
       1 => 'javelin-dynval',
       2 => 'javelin-reactornode',
       3 => 'javelin-install',
       4 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/javelin/ext/reactor/dom/RDOM.js',
   ),
   'javelin-reactor-node-calmer' =>
   array(
     'uri' => '/res/5a35920a/rsrc/js/javelin/ext/reactor/core/ReactorNodeCalmer.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-reactor',
       2 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/javelin/ext/reactor/core/ReactorNodeCalmer.js',
   ),
   'javelin-reactornode' =>
   array(
     'uri' => '/res/f278cc27/rsrc/js/javelin/ext/reactor/core/ReactorNode.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-reactor',
       2 => 'javelin-util',
       3 => 'javelin-reactor-node-calmer',
     ),
     'disk' => '/rsrc/js/javelin/ext/reactor/core/ReactorNode.js',
   ),
   'javelin-request' =>
   array(
     'uri' => '/res/e25d75b3/rsrc/js/javelin/lib/Request.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-stratcom',
       2 => 'javelin-util',
       3 => 'javelin-behavior',
       4 => 'javelin-json',
       5 => 'javelin-dom',
       6 => 'javelin-resource',
     ),
     'disk' => '/rsrc/js/javelin/lib/Request.js',
   ),
   'javelin-resource' =>
   array(
     'uri' => '/res/d5a3f835/rsrc/js/javelin/lib/Resource.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-magical-init',
       1 => 'javelin-stratcom',
       2 => 'javelin-util',
       3 => 'javelin-uri',
     ),
     'disk' => '/rsrc/js/javelin/lib/Resource.js',
   ),
   'javelin-stratcom' =>
   array(
     'uri' => '/res/3ec22c29/rsrc/js/javelin/core/Stratcom.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-event',
       2 => 'javelin-util',
       3 => 'javelin-magical-init',
     ),
     'disk' => '/rsrc/js/javelin/core/Stratcom.js',
   ),
   'javelin-tokenizer' =>
   array(
     'uri' => '/res/c75c9e12/rsrc/js/javelin/lib/control/tokenizer/Tokenizer.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-dom',
       1 => 'javelin-util',
       2 => 'javelin-stratcom',
       3 => 'javelin-install',
     ),
     'disk' => '/rsrc/js/javelin/lib/control/tokenizer/Tokenizer.js',
   ),
   'javelin-typeahead' =>
   array(
     'uri' => '/res/dccb789e/rsrc/js/javelin/lib/control/typeahead/Typeahead.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'javelin-vector',
       3 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/javelin/lib/control/typeahead/Typeahead.js',
   ),
   'javelin-typeahead-composite-source' =>
   array(
     'uri' => '/res/99705f64/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadCompositeSource.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-typeahead-source',
       2 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadCompositeSource.js',
   ),
   'javelin-typeahead-normalizer' =>
   array(
     'uri' => '/res/a9e97c0d/rsrc/js/javelin/lib/control/typeahead/normalizer/TypeaheadNormalizer.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
     ),
     'disk' => '/rsrc/js/javelin/lib/control/typeahead/normalizer/TypeaheadNormalizer.js',
   ),
   'javelin-typeahead-ondemand-source' =>
   array(
     'uri' => '/res/81e531aa/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadOnDemandSource.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-stratcom',
       3 => 'javelin-request',
       4 => 'javelin-typeahead-source',
     ),
     'disk' => '/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadOnDemandSource.js',
   ),
   'javelin-typeahead-preloaded-source' =>
   array(
     'uri' => '/res/d464efd2/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadPreloadedSource.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-stratcom',
       3 => 'javelin-request',
       4 => 'javelin-typeahead-source',
     ),
     'disk' => '/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadPreloadedSource.js',
   ),
   'javelin-typeahead-source' =>
   array(
     'uri' => '/res/74b1f091/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadSource.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-dom',
       3 => 'javelin-typeahead-normalizer',
     ),
     'disk' => '/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadSource.js',
   ),
   'javelin-typeahead-static-source' =>
   array(
     'uri' => '/res/c8e247fc/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadStaticSource.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-typeahead-source',
     ),
     'disk' => '/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadStaticSource.js',
   ),
   'javelin-uri' =>
   array(
     'uri' => '/res/c107d858/rsrc/js/javelin/lib/URI.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/js/javelin/lib/URI.js',
   ),
   'javelin-util' =>
   array(
     'uri' => '/res/25786b6c/rsrc/js/javelin/core/util.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/js/javelin/core/util.js',
   ),
   'javelin-vector' =>
   array(
     'uri' => '/res/f240bdb3/rsrc/js/javelin/lib/Vector.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-event',
     ),
     'disk' => '/rsrc/js/javelin/lib/Vector.js',
   ),
   'javelin-view' =>
   array(
     'uri' => '/res/b98657a7/rsrc/js/javelin/ext/view/View.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/javelin/ext/view/View.js',
   ),
   'javelin-view-html' =>
   array(
     'uri' => '/res/7e5a2122/rsrc/js/javelin/ext/view/HTMLView.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-view',
     ),
     'disk' => '/rsrc/js/javelin/ext/view/HTMLView.js',
   ),
   'javelin-view-interpreter' =>
   array(
     'uri' => '/res/17e911ca/rsrc/js/javelin/ext/view/ViewInterpreter.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-view',
       1 => 'javelin-install',
     ),
     'disk' => '/rsrc/js/javelin/ext/view/ViewInterpreter.js',
   ),
   'javelin-view-renderer' =>
   array(
     'uri' => '/res/db4ed5a2/rsrc/js/javelin/ext/view/ViewRenderer.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
     ),
     'disk' => '/rsrc/js/javelin/ext/view/ViewRenderer.js',
   ),
   'javelin-view-visitor' =>
   array(
     'uri' => '/res/0ef9dc43/rsrc/js/javelin/ext/view/ViewVisitor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/javelin/ext/view/ViewVisitor.js',
   ),
   'javelin-workflow' =>
   array(
     'uri' => '/res/519c4e1a/rsrc/js/javelin/lib/Workflow.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-stratcom',
       1 => 'javelin-request',
       2 => 'javelin-dom',
       3 => 'javelin-vector',
       4 => 'javelin-install',
       5 => 'javelin-util',
       6 => 'javelin-mask',
       7 => 'javelin-uri',
     ),
     'disk' => '/rsrc/js/javelin/lib/Workflow.js',
   ),
   'lightbox-attachment-css' =>
   array(
     'uri' => '/res/c1c3415d/rsrc/css/aphront/lightbox-attachment.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/lightbox-attachment.css',
   ),
   'maniphest-batch-editor' =>
   array(
     'uri' => '/res/fb15d744/rsrc/css/application/maniphest/batch-editor.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/maniphest/batch-editor.css',
   ),
   'maniphest-report-css' =>
   array(
     'uri' => '/res/2e633fcf/rsrc/css/application/maniphest/report.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/maniphest/report.css',
   ),
   'maniphest-task-edit-css' =>
   array(
     'uri' => '/res/68c7863e/rsrc/css/application/maniphest/task-edit.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/maniphest/task-edit.css',
   ),
   'maniphest-task-summary-css' =>
   array(
     'uri' => '/res/6e67cb30/rsrc/css/application/maniphest/task-summary.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/maniphest/task-summary.css',
   ),
   'maniphest-transaction-detail-css' =>
   array(
     'uri' => '/res/24e5862f/rsrc/css/application/maniphest/transaction-detail.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/maniphest/transaction-detail.css',
   ),
   'multirow-row-manager' =>
   array(
     'uri' => '/res/0a9b3dee/rsrc/js/application/core/MultirowRowManager.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
       3 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/application/core/MultirowRowManager.js',
   ),
   'owners-path-editor' =>
   array(
     'uri' => '/res/e6c51eb6/rsrc/js/application/owners/OwnersPathEditor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'multirow-row-manager',
       1 => 'javelin-install',
       2 => 'path-typeahead',
       3 => 'javelin-dom',
       4 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/application/owners/OwnersPathEditor.js',
   ),
   'owners-path-editor-css' =>
   array(
     'uri' => '/res/9bc5332c/rsrc/css/application/owners/owners-path-editor.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/owners/owners-path-editor.css',
   ),
   'path-typeahead' =>
   array(
     'uri' => '/res/50246fb6/rsrc/js/application/herald/PathTypeahead.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-typeahead',
       2 => 'javelin-dom',
       3 => 'javelin-request',
       4 => 'javelin-typeahead-ondemand-source',
       5 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/application/herald/PathTypeahead.js',
   ),
   'phabricator-action-list-view-css' =>
   array(
     'uri' => '/res/36609e24/rsrc/css/layout/phabricator-action-list-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-action-list-view.css',
   ),
   'phabricator-app-buttons-css' =>
   array(
     'uri' => '/res/1a1f926e/rsrc/css/application/directory/phabricator-app-buttons.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/directory/phabricator-app-buttons.css',
   ),
   'phabricator-application-launch-view-css' =>
   array(
     'uri' => '/res/e33ff570/rsrc/css/application/base/phabricator-application-launch-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/base/phabricator-application-launch-view.css',
   ),
   'phabricator-busy' =>
   array(
     'uri' => '/res/6ec372e1/rsrc/js/application/core/Busy.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/core/Busy.js',
   ),
   'phabricator-chatlog-css' =>
   array(
     'uri' => '/res/f6631adc/rsrc/css/application/chatlog/chatlog.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/chatlog/chatlog.css',
   ),
   'phabricator-content-source-view-css' =>
   array(
     'uri' => '/res/8c738a93/rsrc/css/application/contentsource/content-source-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/contentsource/content-source-view.css',
   ),
   'phabricator-core-buttons-css' =>
   array(
     'uri' => '/res/7746c9ab/rsrc/css/core/buttons.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/core/buttons.css',
   ),
   'phabricator-core-css' =>
   array(
     'uri' => '/res/a6bafd6e/rsrc/css/core/core.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/core/core.css',
   ),
   'phabricator-countdown-css' =>
   array(
     'uri' => '/res/0f646281/rsrc/css/application/countdown/timer.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/countdown/timer.css',
   ),
   'phabricator-crumbs-view-css' =>
   array(
     'uri' => '/res/4bd2376f/rsrc/css/layout/phabricator-crumbs-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-crumbs-view.css',
   ),
   'phabricator-directory-css' =>
   array(
     'uri' => '/res/61afca2b/rsrc/css/application/directory/phabricator-directory.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/directory/phabricator-directory.css',
   ),
   'phabricator-drag-and-drop-file-upload' =>
   array(
     'uri' => '/res/496110e1/rsrc/js/application/core/DragAndDropFileUpload.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-request',
       3 => 'javelin-dom',
       4 => 'javelin-uri',
       5 => 'phabricator-file-upload',
     ),
     'disk' => '/rsrc/js/application/core/DragAndDropFileUpload.js',
   ),
   'phabricator-dropdown-menu' =>
   array(
     'uri' => '/res/2b4aa4d8/rsrc/js/application/core/DropdownMenu.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-dom',
       3 => 'javelin-vector',
       4 => 'javelin-stratcom',
       5 => 'phabricator-menu-item',
     ),
     'disk' => '/rsrc/js/application/core/DropdownMenu.js',
   ),
   'phabricator-feed-css' =>
   array(
     'uri' => '/res/8ddc1d44/rsrc/css/application/feed/feed.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/feed/feed.css',
   ),
   'phabricator-file-upload' =>
   array(
     'uri' => '/res/2de10295/rsrc/js/application/core/FileUpload.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'phabricator-notification',
     ),
     'disk' => '/rsrc/js/application/core/FileUpload.js',
   ),
   'phabricator-filetree-view-css' =>
   array(
     'uri' => '/res/d05c5c2b/rsrc/css/layout/phabricator-filetree-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-filetree-view.css',
   ),
   'phabricator-flag-css' =>
   array(
     'uri' => '/res/2eee890a/rsrc/css/application/flag/flag.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/flag/flag.css',
   ),
   'phabricator-form-view-css' =>
   array(
     'uri' => '/res/bdec7be5/rsrc/css/layout/phabricator-form-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-form-view.css',
   ),
   'phabricator-header-view-css' =>
   array(
     'uri' => '/res/c89cc14d/rsrc/css/layout/phabricator-header-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-header-view.css',
   ),
   'phabricator-jump-nav' =>
   array(
     'uri' => '/res/8bdc0fc3/rsrc/css/application/directory/phabricator-jump-nav.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/directory/phabricator-jump-nav.css',
   ),
   'phabricator-keyboard-shortcut' =>
   array(
     'uri' => '/res/beed38cd/rsrc/js/application/core/KeyboardShortcut.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'phabricator-keyboard-shortcut-manager',
     ),
     'disk' => '/rsrc/js/application/core/KeyboardShortcut.js',
   ),
   'phabricator-keyboard-shortcut-manager' =>
   array(
     'uri' => '/res/0be80136/rsrc/js/application/core/KeyboardShortcutManager.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-stratcom',
       3 => 'javelin-dom',
       4 => 'javelin-vector',
     ),
     'disk' => '/rsrc/js/application/core/KeyboardShortcutManager.js',
   ),
   'phabricator-main-menu-view' =>
   array(
     'uri' => '/res/c0631d5f/rsrc/css/application/base/main-menu-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/base/main-menu-view.css',
   ),
   'phabricator-menu-item' =>
   array(
     'uri' => '/res/32fc2325/rsrc/js/application/core/DropdownMenuItem.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/core/DropdownMenuItem.js',
   ),
   'phabricator-nav-view-css' =>
   array(
     'uri' => '/res/31a0bdf5/rsrc/css/aphront/phabricator-nav-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/phabricator-nav-view.css',
   ),
   'phabricator-notification' =>
   array(
     'uri' => '/res/ad727561/rsrc/js/application/core/Notification.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
       3 => 'javelin-util',
       4 => 'phabricator-notification-css',
     ),
     'disk' => '/rsrc/js/application/core/Notification.js',
   ),
   'phabricator-notification-css' =>
   array(
     'uri' => '/res/91197237/rsrc/css/aphront/notification.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/notification.css',
   ),
   'phabricator-notification-menu-css' =>
   array(
-    'uri' => '/res/b0d1caec/rsrc/css/application/base/notification-menu.css',
+    'uri' => '/res/a9ff4f31/rsrc/css/application/base/notification-menu.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/base/notification-menu.css',
   ),
   'phabricator-object-item-list-view-css' =>
   array(
     'uri' => '/res/945fabe9/rsrc/css/layout/phabricator-object-item-list-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-object-item-list-view.css',
   ),
   'phabricator-object-list-view-css' =>
   array(
     'uri' => '/res/4f183668/rsrc/css/application/projects/phabricator-object-list-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/projects/phabricator-object-list-view.css',
   ),
   'phabricator-object-selector-css' =>
   array(
     'uri' => '/res/7eb4c705/rsrc/css/application/objectselector/object-selector.css',
     'type' => 'css',
     'requires' =>
     array(
       0 => 'aphront-dialog-view-css',
     ),
     'disk' => '/rsrc/css/application/objectselector/object-selector.css',
   ),
   'phabricator-paste-file-upload' =>
   array(
     'uri' => '/res/b0b8afd8/rsrc/js/application/core/PasteFileUpload.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-request',
       3 => 'javelin-dom',
       4 => 'javelin-uri',
     ),
     'disk' => '/rsrc/js/application/core/PasteFileUpload.js',
   ),
   'phabricator-pinboard-view-css' =>
   array(
     'uri' => '/res/3a24d210/rsrc/css/layout/phabricator-pinboard-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-pinboard-view.css',
   ),
   'phabricator-prefab' =>
   array(
     'uri' => '/res/2734e45f/rsrc/js/application/core/Prefab.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-dom',
       3 => 'javelin-typeahead',
       4 => 'javelin-tokenizer',
       5 => 'javelin-typeahead-preloaded-source',
       6 => 'javelin-typeahead-ondemand-source',
       7 => 'javelin-dom',
       8 => 'javelin-stratcom',
       9 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/application/core/Prefab.js',
   ),
   'phabricator-profile-css' =>
   array(
     'uri' => '/res/9869d10b/rsrc/css/application/profile/profile-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/profile/profile-view.css',
   ),
   'phabricator-profile-header-css' =>
   array(
     'uri' => '/res/4b1cb23b/rsrc/css/application/profile/profile-header-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/profile/profile-header-view.css',
   ),
   'phabricator-project-tag-css' =>
   array(
     'uri' => '/res/6b0a5223/rsrc/css/application/projects/project-tag.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/projects/project-tag.css',
   ),
   'phabricator-property-list-view-css' =>
   array(
     'uri' => '/res/6a0f30be/rsrc/css/layout/phabricator-property-list-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-property-list-view.css',
   ),
   'phabricator-remarkup-css' =>
   array(
     'uri' => '/res/2e0d0042/rsrc/css/core/remarkup.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/core/remarkup.css',
   ),
   'phabricator-search-results-css' =>
   array(
     'uri' => '/res/f8a86e27/rsrc/css/application/search/search-results.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/search/search-results.css',
   ),
   'phabricator-shaped-request' =>
   array(
     'uri' => '/res/fbdb92db/rsrc/js/application/core/ShapedRequest.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-request',
     ),
     'disk' => '/rsrc/js/application/core/ShapedRequest.js',
   ),
   'phabricator-side-menu-view-css' =>
   array(
     'uri' => '/res/9453a468/rsrc/css/layout/phabricator-side-menu-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-side-menu-view.css',
   ),
   'phabricator-slowvote-css' =>
   array(
     'uri' => '/res/94d20443/rsrc/css/application/slowvote/slowvote.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/slowvote/slowvote.css',
   ),
   'phabricator-source-code-view-css' =>
   array(
     'uri' => '/res/cf0c566c/rsrc/css/layout/phabricator-source-code-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-source-code-view.css',
   ),
   'phabricator-standard-page-view' =>
   array(
     'uri' => '/res/92068207/rsrc/css/application/base/standard-page-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/base/standard-page-view.css',
   ),
   'phabricator-tag-view-css' =>
   array(
     'uri' => '/res/e10bf844/rsrc/css/layout/phabricator-tag-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-tag-view.css',
   ),
   'phabricator-textareautils' =>
   array(
     'uri' => '/res/703614ea/rsrc/js/application/core/TextAreaUtils.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
     ),
     'disk' => '/rsrc/js/application/core/TextAreaUtils.js',
   ),
   'phabricator-timeline-view-css' =>
   array(
     'uri' => '/res/f20ee7f2/rsrc/css/layout/phabricator-timeline-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-timeline-view.css',
   ),
   'phabricator-tooltip' =>
   array(
     'uri' => '/res/bcddf5de/rsrc/js/application/core/ToolTip.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-dom',
       3 => 'javelin-vector',
     ),
     'disk' => '/rsrc/js/application/core/ToolTip.js',
   ),
   'phabricator-transaction-view-css' =>
   array(
     'uri' => '/res/731959fb/rsrc/css/aphront/transaction.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/transaction.css',
   ),
   'phabricator-ui-example-css' =>
   array(
     'uri' => '/res/376ab671/rsrc/css/application/uiexample/example.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/uiexample/example.css',
   ),
   'phabricator-uiexample-javelin-view' =>
   array(
     'uri' => '/res/a2ce2cfc/rsrc/js/application/uiexample/JavelinViewExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-view',
       2 => 'javelin-util',
       3 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/uiexample/JavelinViewExample.js',
   ),
   'phabricator-uiexample-reactor-button' =>
   array(
     'uri' => '/res/142127f6/rsrc/js/application/uiexample/ReactorButtonExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-view',
       2 => 'javelin-util',
       3 => 'javelin-dom',
       4 => 'javelin-reactor-dom',
     ),
     'disk' => '/rsrc/js/application/uiexample/ReactorButtonExample.js',
   ),
   'phabricator-uiexample-reactor-checkbox' =>
   array(
     'uri' => '/res/c75cb9e9/rsrc/js/application/uiexample/ReactorCheckboxExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-view',
       2 => 'javelin-util',
       3 => 'javelin-dom',
       4 => 'javelin-reactor-dom',
     ),
     'disk' => '/rsrc/js/application/uiexample/ReactorCheckboxExample.js',
   ),
   'phabricator-uiexample-reactor-focus' =>
   array(
     'uri' => '/res/3cc992eb/rsrc/js/application/uiexample/ReactorFocusExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-view',
       2 => 'javelin-util',
       3 => 'javelin-dom',
       4 => 'javelin-reactor-dom',
     ),
     'disk' => '/rsrc/js/application/uiexample/ReactorFocusExample.js',
   ),
   'phabricator-uiexample-reactor-input' =>
   array(
     'uri' => '/res/4953da16/rsrc/js/application/uiexample/ReactorInputExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-view',
       2 => 'javelin-util',
       3 => 'javelin-dom',
       4 => 'javelin-reactor-dom',
       5 => 'javelin-view-html',
       6 => 'javelin-view-interpreter',
       7 => 'javelin-view-renderer',
     ),
     'disk' => '/rsrc/js/application/uiexample/ReactorInputExample.js',
   ),
   'phabricator-uiexample-reactor-mouseover' =>
   array(
     'uri' => '/res/52a355b6/rsrc/js/application/uiexample/ReactorMouseoverExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-view',
       2 => 'javelin-util',
       3 => 'javelin-dom',
       4 => 'javelin-reactor-dom',
     ),
     'disk' => '/rsrc/js/application/uiexample/ReactorMouseoverExample.js',
   ),
   'phabricator-uiexample-reactor-radio' =>
   array(
     'uri' => '/res/ae87f3af/rsrc/js/application/uiexample/ReactorRadioExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-view',
       2 => 'javelin-util',
       3 => 'javelin-dom',
       4 => 'javelin-reactor-dom',
     ),
     'disk' => '/rsrc/js/application/uiexample/ReactorRadioExample.js',
   ),
   'phabricator-uiexample-reactor-select' =>
   array(
     'uri' => '/res/23cb448a/rsrc/js/application/uiexample/ReactorSelectExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-view',
       2 => 'javelin-util',
       3 => 'javelin-dom',
       4 => 'javelin-reactor-dom',
     ),
     'disk' => '/rsrc/js/application/uiexample/ReactorSelectExample.js',
   ),
   'phabricator-uiexample-reactor-sendclass' =>
   array(
     'uri' => '/res/8cd34264/rsrc/js/application/uiexample/ReactorSendClassExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-view',
       2 => 'javelin-util',
       3 => 'javelin-dom',
       4 => 'javelin-reactor-dom',
     ),
     'disk' => '/rsrc/js/application/uiexample/ReactorSendClassExample.js',
   ),
   'phabricator-uiexample-reactor-sendproperties' =>
   array(
     'uri' => '/res/18af54aa/rsrc/js/application/uiexample/ReactorSendPropertiesExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-view',
       2 => 'javelin-util',
       3 => 'javelin-dom',
       4 => 'javelin-reactor-dom',
     ),
     'disk' => '/rsrc/js/application/uiexample/ReactorSendPropertiesExample.js',
   ),
   'phame-css' =>
   array(
     'uri' => '/res/8e3edb71/rsrc/css/application/phame/phame.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/phame/phame.css',
   ),
   'phriction-document-css' =>
   array(
     'uri' => '/res/8d09bd7f/rsrc/css/application/phriction/phriction-document-css.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/phriction/phriction-document-css.css',
   ),
   'ponder-comment-table-css' =>
   array(
     'uri' => '/res/a1bb9056/rsrc/css/application/ponder/comments.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/ponder/comments.css',
   ),
   'ponder-core-view-css' =>
   array(
     'uri' => '/res/3a2d5e18/rsrc/css/application/ponder/core.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/ponder/core.css',
   ),
   'ponder-feed-view-css' =>
   array(
     'uri' => '/res/df22bd20/rsrc/css/application/ponder/feed.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/ponder/feed.css',
   ),
   'ponder-post-css' =>
   array(
     'uri' => '/res/013b9e2c/rsrc/css/application/ponder/post.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/ponder/post.css',
   ),
   'ponder-vote-css' =>
   array(
     'uri' => '/res/ea8316c2/rsrc/css/application/ponder/vote.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/ponder/vote.css',
   ),
   'raphael-core' =>
   array(
     'uri' => '/res/3f48575a/rsrc/js/raphael/raphael.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/js/raphael/raphael.js',
   ),
   'raphael-g' =>
   array(
     'uri' => '/res/b07e5245/rsrc/js/raphael/g.raphael.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/js/raphael/g.raphael.js',
   ),
   'raphael-g-line' =>
   array(
     'uri' => '/res/a59c8556/rsrc/js/raphael/g.raphael.line.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/js/raphael/g.raphael.line.js',
   ),
   'sprite-apps-css' =>
   array(
     'uri' => '/res/b3705de7/rsrc/css/sprite-apps.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-apps.css',
   ),
   'sprite-apps-large-css' =>
   array(
     'uri' => '/res/3629ff92/rsrc/css/sprite-apps-large.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-apps-large.css',
   ),
   'sprite-apps-xlarge-css' =>
   array(
     'uri' => '/res/239c2466/rsrc/css/sprite-apps-xlarge.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-apps-xlarge.css',
   ),
   'sprite-gradient-css' =>
   array(
     'uri' => '/res/37b2a829/rsrc/css/sprite-gradient.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-gradient.css',
   ),
   'sprite-icon-css' =>
   array(
     'uri' => '/res/0e50eab2/rsrc/css/sprite-icon.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-icon.css',
   ),
   'sprite-menu-css' =>
   array(
     'uri' => '/res/3d9f75af/rsrc/css/sprite-menu.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-menu.css',
   ),
   'stripe-core' =>
   array(
     'uri' => '/res/3b0f0ad4/rsrc/js/stripe/stripe_core.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/js/stripe/stripe_core.js',
   ),
   'stripe-payment-form-css' =>
   array(
     'uri' => '/res/634a6371/rsrc/css/application/phortune/stripe-payment-form.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/phortune/stripe-payment-form.css',
   ),
   'syntax-highlighting-css' =>
   array(
     'uri' => '/res/cb3b9dc0/rsrc/css/core/syntax.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/core/syntax.css',
   ),
 ), array(
   'packages' =>
   array(
-    '668bdb91' =>
+    '6e75f775' =>
     array(
       'name' => 'core.pkg.css',
       'symbols' =>
       array(
         0 => 'phabricator-core-css',
         1 => 'phabricator-core-buttons-css',
         2 => 'phabricator-standard-page-view',
         3 => 'aphront-dialog-view-css',
         4 => 'aphront-form-view-css',
         5 => 'aphront-panel-view-css',
         6 => 'aphront-side-nav-view-css',
         7 => 'aphront-table-view-css',
         8 => 'aphront-crumbs-view-css',
         9 => 'aphront-tokenizer-control-css',
         10 => 'aphront-typeahead-control-css',
         11 => 'aphront-list-filter-view-css',
         12 => 'phabricator-directory-css',
         13 => 'phabricator-jump-nav',
         14 => 'phabricator-app-buttons-css',
         15 => 'phabricator-remarkup-css',
         16 => 'syntax-highlighting-css',
         17 => 'aphront-pager-view-css',
         18 => 'phabricator-transaction-view-css',
         19 => 'aphront-tooltip-css',
         20 => 'aphront-headsup-view-css',
         21 => 'phabricator-flag-css',
         22 => 'aphront-error-view-css',
         23 => 'sprite-icon-css',
         24 => 'sprite-gradient-css',
         25 => 'sprite-menu-css',
         26 => 'sprite-apps-large-css',
         27 => 'phabricator-main-menu-view',
         28 => 'phabricator-notification-css',
         29 => 'phabricator-notification-menu-css',
         30 => 'lightbox-attachment-css',
         31 => 'phabricator-header-view-css',
         32 => 'phabricator-form-view-css',
         33 => 'phabricator-filetree-view-css',
         34 => 'phabricator-nav-view-css',
         35 => 'phabricator-side-menu-view-css',
         36 => 'phabricator-crumbs-view-css',
         37 => 'phabricator-object-item-list-view-css',
       ),
-      'uri' => '/res/pkg/668bdb91/core.pkg.css',
+      'uri' => '/res/pkg/6e75f775/core.pkg.css',
       'type' => 'css',
     ),
-    '5673560d' =>
+    '5bcc25b6' =>
     array(
       'name' => 'core.pkg.js',
       'symbols' =>
       array(
         0 => 'javelin-behavior-aphront-basic-tokenizer',
         1 => 'javelin-behavior-workflow',
         2 => 'javelin-behavior-aphront-form-disable-on-submit',
         3 => 'phabricator-keyboard-shortcut-manager',
         4 => 'phabricator-keyboard-shortcut',
         5 => 'javelin-behavior-phabricator-keyboard-shortcuts',
         6 => 'javelin-behavior-refresh-csrf',
         7 => 'javelin-behavior-phabricator-watch-anchor',
         8 => 'javelin-behavior-phabricator-autofocus',
         9 => 'phabricator-paste-file-upload',
         10 => 'phabricator-menu-item',
         11 => 'phabricator-dropdown-menu',
         12 => 'javelin-behavior-phabricator-oncopy',
         13 => 'phabricator-tooltip',
         14 => 'javelin-behavior-phabricator-tooltips',
         15 => 'phabricator-prefab',
         16 => 'javelin-behavior-device',
         17 => 'javelin-behavior-toggle-class',
         18 => 'javelin-behavior-lightbox-attachments',
         19 => 'phabricator-busy',
         20 => 'javelin-aphlict',
         21 => 'phabricator-notification',
         22 => 'javelin-behavior-aphlict-listen',
         23 => 'javelin-behavior-phabricator-search-typeahead',
         24 => 'javelin-behavior-konami',
         25 => 'javelin-behavior-aphlict-dropdown',
         26 => 'javelin-behavior-phabricator-active-nav',
         27 => 'javelin-behavior-phabricator-nav',
         28 => 'javelin-behavior-phabricator-remarkup-assist',
         29 => 'phabricator-textareautils',
         30 => 'phabricator-file-upload',
       ),
-      'uri' => '/res/pkg/5673560d/core.pkg.js',
+      'uri' => '/res/pkg/5bcc25b6/core.pkg.js',
       'type' => 'js',
     ),
     '3c5efda9' =>
     array(
       'name' => 'darkconsole.pkg.js',
       'symbols' =>
       array(
         0 => 'javelin-behavior-dark-console-ajax',
         1 => 'javelin-behavior-dark-console',
         2 => 'javelin-behavior-error-log',
       ),
       'uri' => '/res/pkg/3c5efda9/darkconsole.pkg.js',
       'type' => 'js',
     ),
     'c904bbee' =>
     array(
       'name' => 'differential.pkg.css',
       'symbols' =>
       array(
         0 => 'differential-core-view-css',
         1 => 'differential-changeset-view-css',
         2 => 'differential-results-table-css',
         3 => 'differential-revision-history-css',
         4 => 'differential-revision-list-css',
         5 => 'differential-table-of-contents-css',
         6 => 'differential-revision-comment-css',
         7 => 'differential-revision-add-comment-css',
         8 => 'differential-revision-comment-list-css',
         9 => 'phabricator-object-selector-css',
         10 => 'aphront-headsup-action-list-view-css',
         11 => 'phabricator-content-source-view-css',
         12 => 'differential-local-commits-view-css',
         13 => 'inline-comment-summary-css',
       ),
       'uri' => '/res/pkg/c904bbee/differential.pkg.css',
       'type' => 'css',
     ),
     '7ecd31fa' =>
     array(
       'name' => 'differential.pkg.js',
       'symbols' =>
       array(
         0 => 'phabricator-drag-and-drop-file-upload',
         1 => 'phabricator-shaped-request',
         2 => 'javelin-behavior-differential-feedback-preview',
         3 => 'javelin-behavior-differential-edit-inline-comments',
         4 => 'javelin-behavior-differential-populate',
         5 => 'javelin-behavior-differential-show-more',
         6 => 'javelin-behavior-differential-diff-radios',
         7 => 'javelin-behavior-differential-accept-with-errors',
         8 => 'javelin-behavior-differential-comment-jump',
         9 => 'javelin-behavior-differential-add-reviewers-and-ccs',
         10 => 'javelin-behavior-differential-keyboard-navigation',
         11 => 'javelin-behavior-aphront-drag-and-drop',
         12 => 'javelin-behavior-aphront-drag-and-drop-textarea',
         13 => 'javelin-behavior-phabricator-object-selector',
         14 => 'javelin-behavior-repository-crossreference',
         15 => 'differential-inline-comment-editor',
         16 => 'javelin-behavior-differential-dropdown-menus',
         17 => 'javelin-behavior-differential-toggle-files',
         18 => 'javelin-behavior-differential-user-select',
       ),
       'uri' => '/res/pkg/7ecd31fa/differential.pkg.js',
       'type' => 'js',
     ),
     'c8ce2d88' =>
     array(
       'name' => 'diffusion.pkg.css',
       'symbols' =>
       array(
         0 => 'diffusion-commit-view-css',
         1 => 'diffusion-icons-css',
       ),
       'uri' => '/res/pkg/c8ce2d88/diffusion.pkg.css',
       'type' => 'css',
     ),
     '5e68be89' =>
     array(
       'name' => 'diffusion.pkg.js',
       'symbols' =>
       array(
         0 => 'javelin-behavior-diffusion-pull-lastmodified',
         1 => 'javelin-behavior-diffusion-commit-graph',
         2 => 'javelin-behavior-audit-preview',
       ),
       'uri' => '/res/pkg/5e68be89/diffusion.pkg.js',
       'type' => 'js',
     ),
     'db6d724d' =>
     array(
       'name' => 'javelin.pkg.js',
       'symbols' =>
       array(
         0 => 'javelin-util',
         1 => 'javelin-install',
         2 => 'javelin-event',
         3 => 'javelin-stratcom',
         4 => 'javelin-behavior',
         5 => 'javelin-resource',
         6 => 'javelin-request',
         7 => 'javelin-vector',
         8 => 'javelin-dom',
         9 => 'javelin-json',
         10 => 'javelin-uri',
         11 => 'javelin-workflow',
         12 => 'javelin-mask',
         13 => 'javelin-typeahead',
         14 => 'javelin-typeahead-normalizer',
         15 => 'javelin-typeahead-source',
         16 => 'javelin-typeahead-preloaded-source',
         17 => 'javelin-typeahead-ondemand-source',
         18 => 'javelin-tokenizer',
       ),
       'uri' => '/res/pkg/db6d724d/javelin.pkg.js',
       'type' => 'js',
     ),
     '7839ae2d' =>
     array(
       'name' => 'maniphest.pkg.css',
       'symbols' =>
       array(
         0 => 'maniphest-task-summary-css',
         1 => 'maniphest-transaction-detail-css',
         2 => 'aphront-attached-file-view-css',
         3 => 'phabricator-project-tag-css',
       ),
       'uri' => '/res/pkg/7839ae2d/maniphest.pkg.css',
       'type' => 'css',
     ),
     '7707de41' =>
     array(
       'name' => 'maniphest.pkg.js',
       'symbols' =>
       array(
         0 => 'javelin-behavior-maniphest-batch-selector',
         1 => 'javelin-behavior-maniphest-transaction-controls',
         2 => 'javelin-behavior-maniphest-transaction-preview',
         3 => 'javelin-behavior-maniphest-transaction-expand',
         4 => 'javelin-behavior-maniphest-subpriority-editor',
       ),
       'uri' => '/res/pkg/7707de41/maniphest.pkg.js',
       'type' => 'js',
     ),
   ),
   'reverse' =>
   array(
     'aphront-attached-file-view-css' => '7839ae2d',
-    'aphront-crumbs-view-css' => '668bdb91',
-    'aphront-dialog-view-css' => '668bdb91',
-    'aphront-error-view-css' => '668bdb91',
-    'aphront-form-view-css' => '668bdb91',
+    'aphront-crumbs-view-css' => '6e75f775',
+    'aphront-dialog-view-css' => '6e75f775',
+    'aphront-error-view-css' => '6e75f775',
+    'aphront-form-view-css' => '6e75f775',
     'aphront-headsup-action-list-view-css' => 'c904bbee',
-    'aphront-headsup-view-css' => '668bdb91',
-    'aphront-list-filter-view-css' => '668bdb91',
-    'aphront-pager-view-css' => '668bdb91',
-    'aphront-panel-view-css' => '668bdb91',
-    'aphront-side-nav-view-css' => '668bdb91',
-    'aphront-table-view-css' => '668bdb91',
-    'aphront-tokenizer-control-css' => '668bdb91',
-    'aphront-tooltip-css' => '668bdb91',
-    'aphront-typeahead-control-css' => '668bdb91',
+    'aphront-headsup-view-css' => '6e75f775',
+    'aphront-list-filter-view-css' => '6e75f775',
+    'aphront-pager-view-css' => '6e75f775',
+    'aphront-panel-view-css' => '6e75f775',
+    'aphront-side-nav-view-css' => '6e75f775',
+    'aphront-table-view-css' => '6e75f775',
+    'aphront-tokenizer-control-css' => '6e75f775',
+    'aphront-tooltip-css' => '6e75f775',
+    'aphront-typeahead-control-css' => '6e75f775',
     'differential-changeset-view-css' => 'c904bbee',
     'differential-core-view-css' => 'c904bbee',
     'differential-inline-comment-editor' => '7ecd31fa',
     'differential-local-commits-view-css' => 'c904bbee',
     'differential-results-table-css' => 'c904bbee',
     'differential-revision-add-comment-css' => 'c904bbee',
     'differential-revision-comment-css' => 'c904bbee',
     'differential-revision-comment-list-css' => 'c904bbee',
     'differential-revision-history-css' => 'c904bbee',
     'differential-revision-list-css' => 'c904bbee',
     'differential-table-of-contents-css' => 'c904bbee',
     'diffusion-commit-view-css' => 'c8ce2d88',
     'diffusion-icons-css' => 'c8ce2d88',
     'inline-comment-summary-css' => 'c904bbee',
-    'javelin-aphlict' => '5673560d',
+    'javelin-aphlict' => '5bcc25b6',
     'javelin-behavior' => 'db6d724d',
-    'javelin-behavior-aphlict-dropdown' => '5673560d',
-    'javelin-behavior-aphlict-listen' => '5673560d',
-    'javelin-behavior-aphront-basic-tokenizer' => '5673560d',
+    'javelin-behavior-aphlict-dropdown' => '5bcc25b6',
+    'javelin-behavior-aphlict-listen' => '5bcc25b6',
+    'javelin-behavior-aphront-basic-tokenizer' => '5bcc25b6',
     'javelin-behavior-aphront-drag-and-drop' => '7ecd31fa',
     'javelin-behavior-aphront-drag-and-drop-textarea' => '7ecd31fa',
-    'javelin-behavior-aphront-form-disable-on-submit' => '5673560d',
+    'javelin-behavior-aphront-form-disable-on-submit' => '5bcc25b6',
     'javelin-behavior-audit-preview' => '5e68be89',
     'javelin-behavior-dark-console' => '3c5efda9',
     'javelin-behavior-dark-console-ajax' => '3c5efda9',
-    'javelin-behavior-device' => '5673560d',
+    'javelin-behavior-device' => '5bcc25b6',
     'javelin-behavior-differential-accept-with-errors' => '7ecd31fa',
     'javelin-behavior-differential-add-reviewers-and-ccs' => '7ecd31fa',
     'javelin-behavior-differential-comment-jump' => '7ecd31fa',
     'javelin-behavior-differential-diff-radios' => '7ecd31fa',
     'javelin-behavior-differential-dropdown-menus' => '7ecd31fa',
     'javelin-behavior-differential-edit-inline-comments' => '7ecd31fa',
     'javelin-behavior-differential-feedback-preview' => '7ecd31fa',
     'javelin-behavior-differential-keyboard-navigation' => '7ecd31fa',
     'javelin-behavior-differential-populate' => '7ecd31fa',
     'javelin-behavior-differential-show-more' => '7ecd31fa',
     'javelin-behavior-differential-toggle-files' => '7ecd31fa',
     'javelin-behavior-differential-user-select' => '7ecd31fa',
     'javelin-behavior-diffusion-commit-graph' => '5e68be89',
     'javelin-behavior-diffusion-pull-lastmodified' => '5e68be89',
     'javelin-behavior-error-log' => '3c5efda9',
-    'javelin-behavior-konami' => '5673560d',
-    'javelin-behavior-lightbox-attachments' => '5673560d',
+    'javelin-behavior-konami' => '5bcc25b6',
+    'javelin-behavior-lightbox-attachments' => '5bcc25b6',
     'javelin-behavior-maniphest-batch-selector' => '7707de41',
     'javelin-behavior-maniphest-subpriority-editor' => '7707de41',
     'javelin-behavior-maniphest-transaction-controls' => '7707de41',
     'javelin-behavior-maniphest-transaction-expand' => '7707de41',
     'javelin-behavior-maniphest-transaction-preview' => '7707de41',
-    'javelin-behavior-phabricator-active-nav' => '5673560d',
-    'javelin-behavior-phabricator-autofocus' => '5673560d',
-    'javelin-behavior-phabricator-keyboard-shortcuts' => '5673560d',
-    'javelin-behavior-phabricator-nav' => '5673560d',
+    'javelin-behavior-phabricator-active-nav' => '5bcc25b6',
+    'javelin-behavior-phabricator-autofocus' => '5bcc25b6',
+    'javelin-behavior-phabricator-keyboard-shortcuts' => '5bcc25b6',
+    'javelin-behavior-phabricator-nav' => '5bcc25b6',
     'javelin-behavior-phabricator-object-selector' => '7ecd31fa',
-    'javelin-behavior-phabricator-oncopy' => '5673560d',
-    'javelin-behavior-phabricator-remarkup-assist' => '5673560d',
-    'javelin-behavior-phabricator-search-typeahead' => '5673560d',
-    'javelin-behavior-phabricator-tooltips' => '5673560d',
-    'javelin-behavior-phabricator-watch-anchor' => '5673560d',
-    'javelin-behavior-refresh-csrf' => '5673560d',
+    'javelin-behavior-phabricator-oncopy' => '5bcc25b6',
+    'javelin-behavior-phabricator-remarkup-assist' => '5bcc25b6',
+    'javelin-behavior-phabricator-search-typeahead' => '5bcc25b6',
+    'javelin-behavior-phabricator-tooltips' => '5bcc25b6',
+    'javelin-behavior-phabricator-watch-anchor' => '5bcc25b6',
+    'javelin-behavior-refresh-csrf' => '5bcc25b6',
     'javelin-behavior-repository-crossreference' => '7ecd31fa',
-    'javelin-behavior-toggle-class' => '5673560d',
-    'javelin-behavior-workflow' => '5673560d',
+    'javelin-behavior-toggle-class' => '5bcc25b6',
+    'javelin-behavior-workflow' => '5bcc25b6',
     'javelin-dom' => 'db6d724d',
     'javelin-event' => 'db6d724d',
     'javelin-install' => 'db6d724d',
     'javelin-json' => 'db6d724d',
     'javelin-mask' => 'db6d724d',
     'javelin-request' => 'db6d724d',
     'javelin-resource' => 'db6d724d',
     'javelin-stratcom' => 'db6d724d',
     'javelin-tokenizer' => 'db6d724d',
     'javelin-typeahead' => 'db6d724d',
     'javelin-typeahead-normalizer' => 'db6d724d',
     'javelin-typeahead-ondemand-source' => 'db6d724d',
     'javelin-typeahead-preloaded-source' => 'db6d724d',
     'javelin-typeahead-source' => 'db6d724d',
     'javelin-uri' => 'db6d724d',
     'javelin-util' => 'db6d724d',
     'javelin-vector' => 'db6d724d',
     'javelin-workflow' => 'db6d724d',
-    'lightbox-attachment-css' => '668bdb91',
+    'lightbox-attachment-css' => '6e75f775',
     'maniphest-task-summary-css' => '7839ae2d',
     'maniphest-transaction-detail-css' => '7839ae2d',
-    'phabricator-app-buttons-css' => '668bdb91',
-    'phabricator-busy' => '5673560d',
+    'phabricator-app-buttons-css' => '6e75f775',
+    'phabricator-busy' => '5bcc25b6',
     'phabricator-content-source-view-css' => 'c904bbee',
-    'phabricator-core-buttons-css' => '668bdb91',
-    'phabricator-core-css' => '668bdb91',
-    'phabricator-crumbs-view-css' => '668bdb91',
-    'phabricator-directory-css' => '668bdb91',
+    'phabricator-core-buttons-css' => '6e75f775',
+    'phabricator-core-css' => '6e75f775',
+    'phabricator-crumbs-view-css' => '6e75f775',
+    'phabricator-directory-css' => '6e75f775',
     'phabricator-drag-and-drop-file-upload' => '7ecd31fa',
-    'phabricator-dropdown-menu' => '5673560d',
-    'phabricator-file-upload' => '5673560d',
-    'phabricator-filetree-view-css' => '668bdb91',
-    'phabricator-flag-css' => '668bdb91',
-    'phabricator-form-view-css' => '668bdb91',
-    'phabricator-header-view-css' => '668bdb91',
-    'phabricator-jump-nav' => '668bdb91',
-    'phabricator-keyboard-shortcut' => '5673560d',
-    'phabricator-keyboard-shortcut-manager' => '5673560d',
-    'phabricator-main-menu-view' => '668bdb91',
-    'phabricator-menu-item' => '5673560d',
-    'phabricator-nav-view-css' => '668bdb91',
-    'phabricator-notification' => '5673560d',
-    'phabricator-notification-css' => '668bdb91',
-    'phabricator-notification-menu-css' => '668bdb91',
-    'phabricator-object-item-list-view-css' => '668bdb91',
+    'phabricator-dropdown-menu' => '5bcc25b6',
+    'phabricator-file-upload' => '5bcc25b6',
+    'phabricator-filetree-view-css' => '6e75f775',
+    'phabricator-flag-css' => '6e75f775',
+    'phabricator-form-view-css' => '6e75f775',
+    'phabricator-header-view-css' => '6e75f775',
+    'phabricator-jump-nav' => '6e75f775',
+    'phabricator-keyboard-shortcut' => '5bcc25b6',
+    'phabricator-keyboard-shortcut-manager' => '5bcc25b6',
+    'phabricator-main-menu-view' => '6e75f775',
+    'phabricator-menu-item' => '5bcc25b6',
+    'phabricator-nav-view-css' => '6e75f775',
+    'phabricator-notification' => '5bcc25b6',
+    'phabricator-notification-css' => '6e75f775',
+    'phabricator-notification-menu-css' => '6e75f775',
+    'phabricator-object-item-list-view-css' => '6e75f775',
     'phabricator-object-selector-css' => 'c904bbee',
-    'phabricator-paste-file-upload' => '5673560d',
-    'phabricator-prefab' => '5673560d',
+    'phabricator-paste-file-upload' => '5bcc25b6',
+    'phabricator-prefab' => '5bcc25b6',
     'phabricator-project-tag-css' => '7839ae2d',
-    'phabricator-remarkup-css' => '668bdb91',
+    'phabricator-remarkup-css' => '6e75f775',
     'phabricator-shaped-request' => '7ecd31fa',
-    'phabricator-side-menu-view-css' => '668bdb91',
-    'phabricator-standard-page-view' => '668bdb91',
-    'phabricator-textareautils' => '5673560d',
-    'phabricator-tooltip' => '5673560d',
-    'phabricator-transaction-view-css' => '668bdb91',
-    'sprite-apps-large-css' => '668bdb91',
-    'sprite-gradient-css' => '668bdb91',
-    'sprite-icon-css' => '668bdb91',
-    'sprite-menu-css' => '668bdb91',
-    'syntax-highlighting-css' => '668bdb91',
+    'phabricator-side-menu-view-css' => '6e75f775',
+    'phabricator-standard-page-view' => '6e75f775',
+    'phabricator-textareautils' => '5bcc25b6',
+    'phabricator-tooltip' => '5bcc25b6',
+    'phabricator-transaction-view-css' => '6e75f775',
+    'sprite-apps-large-css' => '6e75f775',
+    'sprite-gradient-css' => '6e75f775',
+    'sprite-icon-css' => '6e75f775',
+    'sprite-menu-css' => '6e75f775',
+    'syntax-highlighting-css' => '6e75f775',
   ),
 ));
diff --git a/src/applications/feed/story/PhabricatorFeedStoryDifferential.php b/src/applications/feed/story/PhabricatorFeedStoryDifferential.php
index 614003efb..9e001fa9b 100644
--- a/src/applications/feed/story/PhabricatorFeedStoryDifferential.php
+++ b/src/applications/feed/story/PhabricatorFeedStoryDifferential.php
@@ -1,69 +1,72 @@
 <?php
 
 final class PhabricatorFeedStoryDifferential extends PhabricatorFeedStory {
 
   public function getPrimaryObjectPHID() {
     return $this->getValue('revision_phid');
   }
 
   public function renderView() {
     $data = $this->getStoryData();
 
     $view = new PhabricatorFeedStoryView();
     $view->setViewed($this->getHasViewed());
 
     $line = $this->getLineForData($data);
     $view->setTitle($line);
     $view->setEpoch($data->getEpoch());
 
+    $href = $this->getHandle($data->getValue('revision_phid'))->getURI();
+    $view->setHref($href);
+
     $action = $data->getValue('action');
     switch ($action) {
       case DifferentialAction::ACTION_CREATE:
       case DifferentialAction::ACTION_CLOSE:
         $full_size = true;
         break;
       default:
         $full_size = false;
         break;
     }
 
     if ($full_size) {
       $view->setImage($this->getHandle($data->getAuthorPHID())->getImageURI());
       $content = $this->renderSummary($data->getValue('feedback_content'));
       $view->appendChild($content);
     } else {
       $view->setOneLineStory(true);
     }
 
     return $view;
   }
 
   private function getLineForData($data) {
     $actor_phid = $data->getAuthorPHID();
     $revision_phid = $data->getValue('revision_phid');
     $action = $data->getValue('action');
 
     $actor_link = $this->linkTo($actor_phid);
     $revision_link = $this->linkTo($revision_phid);
 
     $verb = DifferentialAction::getActionPastTenseVerb($action);
 
     $one_line = "{$actor_link} {$verb} revision {$revision_link}";
 
     return $one_line;
   }
 
   public function getNotificationAggregations() {
     $class = get_class($this);
     $phid  = $this->getStoryData()->getValue('revision_phid');
     $read  = (int)$this->getHasViewed();
 
     // Don't aggregate updates separated by more than 2 hours.
     $block = (int)($this->getEpoch() / (60 * 60 * 2));
 
     return array(
       "{$class}:{$phid}:{$read}:{$block}"
         => 'PhabricatorFeedStoryDifferentialAggregate',
     );
   }
 }
diff --git a/src/applications/feed/story/PhabricatorFeedStoryDifferentialAggregate.php b/src/applications/feed/story/PhabricatorFeedStoryDifferentialAggregate.php
index 3ebfb625d..105fe54cd 100644
--- a/src/applications/feed/story/PhabricatorFeedStoryDifferentialAggregate.php
+++ b/src/applications/feed/story/PhabricatorFeedStoryDifferentialAggregate.php
@@ -1,65 +1,68 @@
 <?php
 
 final class PhabricatorFeedStoryDifferentialAggregate
   extends PhabricatorFeedStoryAggregate {
 
   public function renderView() {
     $data = $this->getStoryData();
 
     $task_link = $this->linkTo($data->getValue('revision_phid'));
 
     $authors = $this->getAuthorPHIDs();
 
     // TODO: These aren't really translatable because linkTo() returns a
     // string, not an object with a gender.
 
     switch (count($authors)) {
       case 1:
         $author = $this->linkTo(array_shift($authors));
         $title = pht(
           '%s made multiple updates to %s',
           $author,
           $task_link);
         break;
       case 2:
         $author1 = $this->linkTo(array_shift($authors));
         $author2 = $this->linkTo(array_shift($authors));
         $title = pht(
           '%s and %s made multiple updates to %s',
           $author1,
           $author2,
           $task_link);
         break;
       case 3:
         $author1 = $this->linkTo(array_shift($authors));
         $author2 = $this->linkTo(array_shift($authors));
         $author3 = $this->linkTo(array_shift($authors));
         $title = pht(
           '%s, %s, and %s made multiple updates to %s',
           $author1,
           $author2,
           $author3,
           $task_link);
         break;
       default:
         $author1 = $this->linkTo(array_shift($authors));
         $author2 = $this->linkTo(array_shift($authors));
         $others  = count($authors);
         $title = pht(
           '%s, %s, and %d others made multiple updates to %s',
           $author1,
           $author2,
           $others,
           $task_link);
         break;
     }
 
     $view = new PhabricatorFeedStoryView();
     $view->setEpoch($this->getEpoch());
     $view->setViewed($this->getHasViewed());
     $view->setTitle($title);
 
+    $href = $this->getHandle($data->getValue('revision_phid'))->getURI();
+    $view->setHref($href);
+
     return $view;
   }
 
 }
diff --git a/src/applications/feed/story/PhabricatorFeedStoryManiphest.php b/src/applications/feed/story/PhabricatorFeedStoryManiphest.php
index 31f9af76f..09159d059 100644
--- a/src/applications/feed/story/PhabricatorFeedStoryManiphest.php
+++ b/src/applications/feed/story/PhabricatorFeedStoryManiphest.php
@@ -1,96 +1,99 @@
 <?php
 
 final class PhabricatorFeedStoryManiphest
   extends PhabricatorFeedStory {
 
   public function getPrimaryObjectPHID() {
     return $this->getValue('taskPHID');
   }
 
   public function getRequiredHandlePHIDs() {
     return array(
       $this->getValue('ownerPHID'),
     );
   }
 
   public function renderView() {
     $data = $this->getStoryData();
 
     $view = new PhabricatorFeedStoryView();
     $view->setViewed($this->getHasViewed());
 
     $line = $this->getLineForData($data);
     $view->setTitle($line);
     $view->setEpoch($data->getEpoch());
 
     $action = $data->getValue('action');
     switch ($action) {
       case ManiphestAction::ACTION_CREATE:
         $full_size = true;
         break;
       default:
         $full_size = false;
         break;
     }
 
     if ($full_size) {
       $view->setImage($this->getHandle($data->getAuthorPHID())->getImageURI());
       $content = $this->renderSummary($data->getValue('description'));
       $view->appendChild($content);
     } else {
       $view->setOneLineStory(true);
     }
 
+    $href = $this->getHandle($data->getValue('taskPHID'))->getURI();
+    $view->setHref($href);
+
     return $view;
   }
 
   private function getLineForData($data) {
     $action = $data->getValue('action');
 
     $actor_phid = $data->getAuthorPHID();
     $actor_link = $this->linkTo($actor_phid);
 
     $task_phid = $data->getValue('taskPHID');
     $task_link = $this->linkTo($task_phid);
 
     $owner_phid = $data->getValue('ownerPHID');
     $owner_link = $this->linkTo($owner_phid);
 
     $verb = ManiphestAction::getActionPastTenseVerb($action);
 
     switch ($action) {
       case ManiphestAction::ACTION_ASSIGN:
       case ManiphestAction::ACTION_REASSIGN:
         if ($owner_phid) {
           if ($owner_phid == $actor_phid) {
             $one_line = "{$actor_link} claimed {$task_link}";
           } else {
             $one_line = "{$actor_link} {$verb} {$task_link} to {$owner_link}";
           }
         } else {
           $one_line = "{$actor_link} placed {$task_link} up for grabs";
         }
         break;
       default:
         $one_line = "{$actor_link} {$verb} {$task_link}";
         break;
     }
 
     return $one_line;
   }
 
   public function getNotificationAggregations() {
     $class = get_class($this);
     $phid  = $this->getStoryData()->getValue('taskPHID');
     $read  = (int)$this->getHasViewed();
 
     // Don't aggregate updates separated by more than 2 hours.
     $block = (int)($this->getEpoch() / (60 * 60 * 2));
 
     return array(
       "{$class}:{$phid}:{$read}:{$block}"
         => 'PhabricatorFeedStoryManiphestAggregate',
     );
   }
 
 }
diff --git a/src/applications/feed/story/PhabricatorFeedStoryManiphestAggregate.php b/src/applications/feed/story/PhabricatorFeedStoryManiphestAggregate.php
index 5222a2e87..c70211b60 100644
--- a/src/applications/feed/story/PhabricatorFeedStoryManiphestAggregate.php
+++ b/src/applications/feed/story/PhabricatorFeedStoryManiphestAggregate.php
@@ -1,65 +1,68 @@
 <?php
 
 final class PhabricatorFeedStoryManiphestAggregate
   extends PhabricatorFeedStoryAggregate {
 
   public function renderView() {
     $data = $this->getStoryData();
 
     $task_link = $this->linkTo($data->getValue('taskPHID'));
 
     $authors = $this->getAuthorPHIDs();
 
     // TODO: These aren't really translatable because linkTo() returns a
     // string, not an object with a gender.
 
     switch (count($authors)) {
       case 1:
         $author = $this->linkTo(array_shift($authors));
         $title = pht(
           '%s made multiple updates to %s',
           $author,
           $task_link);
         break;
       case 2:
         $author1 = $this->linkTo(array_shift($authors));
         $author2 = $this->linkTo(array_shift($authors));
         $title = pht(
           '%s and %s made multiple updates to %s',
           $author1,
           $author2,
           $task_link);
         break;
       case 3:
         $author1 = $this->linkTo(array_shift($authors));
         $author2 = $this->linkTo(array_shift($authors));
         $author3 = $this->linkTo(array_shift($authors));
         $title = pht(
           '%s, %s, and %s made multiple updates to %s',
           $author1,
           $author2,
           $author3,
           $task_link);
         break;
       default:
         $author1 = $this->linkTo(array_shift($authors));
         $author2 = $this->linkTo(array_shift($authors));
         $others  = count($authors);
         $title = pht(
           '%s, %s, and %d others made multiple updates to %s',
           $author1,
           $author2,
           $others,
           $task_link);
         break;
     }
 
     $view = new PhabricatorFeedStoryView();
     $view->setEpoch($this->getEpoch());
     $view->setViewed($this->getHasViewed());
     $view->setTitle($title);
 
+    $href = $this->getHandle($data->getValue('taskPHID'))->getURI();
+    $view->setHref($href);
+
     return $view;
   }
 
 }
diff --git a/src/applications/feed/view/PhabricatorFeedStoryView.php b/src/applications/feed/view/PhabricatorFeedStoryView.php
index 6c6e0fe69..eb8fa94fc 100644
--- a/src/applications/feed/view/PhabricatorFeedStoryView.php
+++ b/src/applications/feed/view/PhabricatorFeedStoryView.php
@@ -1,117 +1,131 @@
 <?php
 
 final class PhabricatorFeedStoryView extends PhabricatorFeedView {
 
   private $title;
   private $image;
   private $phid;
   private $epoch;
   private $viewer;
   private $viewed;
+  private $href;
 
   private $oneLine;
 
   public function setViewer(PhabricatorUser $viewer) {
     $this->viewer = $viewer;
     return $this;
   }
 
   public function setTitle($title) {
     $this->title = $title;
     return $this;
   }
 
   public function setEpoch($epoch) {
     $this->epoch = $epoch;
     return $this;
   }
 
   public function setImage($image) {
     $this->image = $image;
     return $this;
   }
 
   public function setOneLineStory($one_line) {
     $this->oneLine = $one_line;
     return $this;
   }
 
   public function setViewed($viewed) {
     $this->viewed = $viewed;
     return $this;
   }
 
   public function getViewed() {
     return $this->viewed;
   }
 
+  public function setHref($href) {
+    $this->href = $href;
+    return $this;
+  }
+
+  public function getHref() {
+    return $this->href;
+  }
+
   public function renderNotification() {
     $classes = array(
       'phabricator-notification',
     );
 
     if (!$this->viewed) {
       $classes[] = 'phabricator-notification-unread';
     }
 
-    return phutil_render_tag(
+    return javelin_render_tag(
       'div',
       array(
         'class' => implode(' ', $classes),
+        'sigil' => 'notification',
+        'meta' => array(
+          'href' => $this->getHref(),
+        ),
       ),
       $this->title);
   }
 
   public function render() {
 
     $head = phutil_render_tag(
       'div',
       array(
         'class' => 'phabricator-feed-story-head',
       ),
       nonempty($this->title, 'Untitled Story'));
 
     $body = null;
     $foot = null;
     $image_style = null;
 
     if (!$this->oneLine) {
       $body = phutil_render_tag(
         'div',
         array(
           'class' => 'phabricator-feed-story-body',
         ),
         $this->renderChildren());
 
       if ($this->epoch) {
         $foot = phabricator_datetime($this->epoch, $this->viewer);
       } else {
         $foot = '';
       }
 
       $foot = phutil_render_tag(
         'div',
         array(
           'class' => 'phabricator-feed-story-foot',
         ),
         $foot);
 
       if ($this->image) {
         $image_style = 'background-image: url('.$this->image.')';
       }
     }
 
     require_celerity_resource('phabricator-feed-css');
 
     return phutil_render_tag(
       'div',
       array(
         'class' => $this->oneLine
           ? 'phabricator-feed-story phabricator-feed-story-one-line'
           : 'phabricator-feed-story',
         'style' => $image_style,
       ),
       $head.$body.$foot);
   }
 
 }
diff --git a/src/applications/notification/controller/PhabricatorNotificationPanelController.php b/src/applications/notification/controller/PhabricatorNotificationPanelController.php
index f0649b2dd..969b139b5 100644
--- a/src/applications/notification/controller/PhabricatorNotificationPanelController.php
+++ b/src/applications/notification/controller/PhabricatorNotificationPanelController.php
@@ -1,49 +1,53 @@
 <?php
 
 final class PhabricatorNotificationPanelController
   extends PhabricatorNotificationController {
 
   public function processRequest() {
 
     $request = $this->getRequest();
     $user = $request->getUser();
 
     $query = new PhabricatorNotificationQuery();
     $query->setViewer($user);
     $query->setUserPHID($user->getPHID());
     $query->setLimit(15);
 
     $stories = $query->execute();
 
     if ($stories) {
       $builder = new PhabricatorNotificationBuilder($stories);
       $notifications_view = $builder->buildView();
       $content = $notifications_view->render();
     } else {
       $content =
         '<div class="phabricator-notification no-notifications">'.
           'You have no notifications.'.
         '</div>';
     }
 
-    $content .=
-      '<div class="phabricator-notification view-all-notifications">'.
+    $content =
+      '<div class="phabricator-notification-header">'.
+        pht('Notifications').
+      '</div>'.
+      $content.
+      '<div class="phabricator-notification-view-all">'.
         phutil_render_tag(
           'a',
           array(
             'href' => '/notification/',
           ),
           'View All Notifications').
       '</div>';
 
     $unread_count = id(new PhabricatorFeedStoryNotification())
       ->countUnread($user);
 
     $json = array(
       'content' => $content,
       'number'  => $unread_count,
     );
 
     return id(new AphrontAjaxResponse())->setContent($json);
   }
 }
diff --git a/src/rsrc/logo.png b/src/rsrc/logo.png
deleted file mode 100644
index d32af9069..000000000
Binary files a/src/rsrc/logo.png and /dev/null differ
diff --git a/src/rsrc/logo.psd b/src/rsrc/logo.psd
deleted file mode 100644
index ff7b968fc..000000000
Binary files a/src/rsrc/logo.psd and /dev/null differ
diff --git a/src/rsrc/logo_with_text.png b/src/rsrc/logo_with_text.png
deleted file mode 100644
index bbf8532e7..000000000
Binary files a/src/rsrc/logo_with_text.png and /dev/null differ
diff --git a/src/rsrc/logo_with_text.psd b/src/rsrc/logo_with_text.psd
deleted file mode 100644
index a859b9c71..000000000
Binary files a/src/rsrc/logo_with_text.psd and /dev/null differ
diff --git a/webroot/rsrc/css/application/base/notification-menu.css b/webroot/rsrc/css/application/base/notification-menu.css
index bd349569d..d87586f8e 100644
--- a/webroot/rsrc/css/application/base/notification-menu.css
+++ b/webroot/rsrc/css/application/base/notification-menu.css
@@ -1,51 +1,67 @@
 /**
  * @provides phabricator-notification-menu-css
  */
 
 .phabricator-notification-menu {
   background: #ffffff;
   font-size: 11px;
   word-wrap: break-word;
   overflow-y: auto;
 }
 
 .device-desktop .phabricator-notification-menu {
   position: fixed;
   width: 360px;
   top: 42px;
   box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.5);
   z-index: 9;
 
-  border: 1px solid #33393d;
+  border: 2px solid #33393d;
   border-top-width: 0;
+  border-radius: 3px;
 }
 
 .device .phabricator-notification-menu {
   border-bottom: 1px solid #222222;
 }
 
-
 .phabricator-notification {
-  padding: 6px 6px;
-  margin: 1px 0;
+  padding: 6px;
+  cursor: pointer;
+}
+
+.device-desktop .phabricator-notification:hover {
+  background: #f4f6f9;
+}
+
+.phabricator-notification + .phabricator-notification {
+  border-top: 1px solid #e9e9e9;
 }
 
 .no-notifications {
   color: #999999;
 }
 
 .phabricator-notification-list {
   font-size: 11px;
 }
 
 .phabricator-notification-list .phabricator-notification-unread,
 .phabricator-notification-menu .phabricator-notification-unread {
   background: #aacfef;
 }
 
-.view-all-notifications {
+.phabricator-notification-header {
+  font-weight: bold;
+  padding: 6px;
+  font-size: 12px;
+  border-bottom: 1px solid #e9e9e9;
+}
+
+.phabricator-notification-view-all {
   text-align: center;
   font-weight: bold;
-  background: #eeeeee;
-  border-top: 1px solid #dddddd;
+  background: #f7f7f7;
+  border-top: 1px solid #e9e9e9;
+  padding: 6px;
 }
diff --git a/webroot/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js b/webroot/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js
index 74b680947..f75fc3b53 100644
--- a/webroot/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js
+++ b/webroot/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js
@@ -1,79 +1,92 @@
 /**
  * @provides javelin-behavior-aphlict-dropdown
  * @requires javelin-behavior
  *           javelin-request
  *           javelin-stratcom
  *           javelin-vector
  *           javelin-dom
+ *           javelin-uri
  */
 
 JX.behavior('aphlict-dropdown', function(config) {
   var dropdown = JX.$(config.dropdownID);
   var count = JX.$(config.countID);
   var bubble = JX.$(config.bubbleID);
   var visible = false;
   var request = null;
 
   function refresh() {
     if (request) { //already fetching
       return;
     }
     request = new JX.Request('/notification/panel/', function(response) {
       var display = (response.number > 999)
         ? "\u221E"
         : response.number;
 
       JX.DOM.setContent(count, display);
       if (response.number == 0) {
         JX.DOM.alterClass(bubble, 'alert-unread', false);
       } else {
         JX.DOM.alterClass(bubble, 'alert-unread', true);
       }
       JX.DOM.setContent(dropdown, JX.$H(response.content));
       request = null;
     });
     request.send();
   }
 
   JX.Stratcom.listen(
     'click',
     null,
     function(e) {
-      if(e.getNode('phabricator-notification-menu')) {
-         // Click is inside the dropdown.
+      if (!e.getNode('phabricator-notification-menu')) {
+        // Click outside the dropdown; hide it.
+        JX.DOM.hide(dropdown);
+        visible = false;
         return;
       }
 
-      JX.DOM.hide(dropdown);
-      visible = false;
+      if (e.getNode('tag:a')) {
+        // User clicked a link, just follow the link.
+        return;
+      }
+
+      // If the user clicked a notification (but missed a link) and it has a
+      // primary URI, go there.
+      var href = e.getNodeData('notification').href;
+      if (href) {
+        JX.$U(href).go();
+        e.kill();
+      }
     });
 
 
   JX.DOM.listen(
     bubble,
     'click',
     null,
     function(e) {
       if (!e.isNormalClick()) {
         return;
       }
 
       if (visible) {
         JX.DOM.hide(dropdown);
       } else {
         refresh();
 
         var p = JX.$V(bubble);
         p.y = null;
         p.x -= 6;
         p.setPos(dropdown);
 
         JX.DOM.show(dropdown);
       }
       visible = !visible;
       e.kill();
     }
   )
 
   JX.Stratcom.listen('notification-panel-update', null, refresh);
 });