doorkeeper-5.4.0.rc2

https://rubygems.org

doorkeeper

quick gemspec

.gem

.gem metadata (gemspec)

.gemspec

homepage_uri
https://github.com/doorkeeper-gem/doorkeeper
changelog_uri
https://github.com/doorkeeper-gem/doorkeeper/blob/master/CHANGELOG.md
bug_tracker_uri
https://github.com/doorkeeper-gem/doorkeeper/issues
source_code_uri
https://github.com/doorkeeper-gem/doorkeeper
documentation_uri
https://doorkeeper.gitbook.io/guides/

id: 292224

number: 5.4.0.rc2

platform: ruby

spec_sha256: e6cc3686f576ab045cc41ee3e9d82803b6777c15de7a3cde7f5cd0d11d1d98ed

sha256: 5db011953b2a1dd0fd1ab8a5cd425905d076cd0cf218691bfdb426bf842dcc60

created_at: 2024-05-13 08:17:56 UTC

updated_at: 2024-06-07 12:26:54 UTC

position: 23

version_data_entries_count: 133

uploaded_at: 2020-05-02 13:27:55 UTC

indexed: true

has_extensions:

extensions:

Gem size: 95 KB

Version Data Entries

Total: 133

Unpacked size: 414 KB

Full NameModeUIDGIDMtimeLinknameSizeSHA
CHANGELOG.md1006640040.3 KBa5ed5b847be3a42ecb6835d504f01e1c122b2c2ce471671395114212f1951aaa
MIT-LICENSE100664001.05 KBd4f3b814cd41c5c974e7f5e2d77bf7cd838ea89a4020d65633e10c8492e3f14f
README.md100664009.12 KB23a82060a0241dc889c0c957ad4df7340b91a5eb77de48bc15cf7f6f7bd6d362
app/assets/stylesheets/doorkeeper/admin/application.css10066400158 Bytese1a113ee639877129cf16a53debf35a7e62e150379fe9680faa0b69ebedeeb72
app/assets/stylesheets/doorkeeper/application.css10066400912 Bytes26ec8ef750e0609106a8f85ff9837fffc2f2d71f4d4c4887dad14f38dd067ed0
app/controllers/doorkeeper/application_controller.rb10066400298 Bytes8e502e965d74015bb6ac117685053e6a01da5a43bbc9be7a15fae541df543810
app/controllers/doorkeeper/application_metal_controller.rb10066400362 Bytesbc618f75fc4ed5a22d9ad1f7895bf7e06f69c55c448f7e0c047475f5bf976d59
app/controllers/doorkeeper/applications_controller.rb100664002.66 KBbb5267924743474473188ee982e6f83c75920dc39d2b9f057e7682c89f280ebe
app/controllers/doorkeeper/authorizations_controller.rb100664002.81 KB10768168067e2dfb5ae3c98bb4ff704ea0dd74b68c1d3494efc5efb0314b0a9a
app/controllers/doorkeeper/authorized_applications_controller.rb10066400907 Bytes2f44134a50f5d20bf6abfa11e661254687abac1a1825c809eb78ff11fc17f4aa
app/controllers/doorkeeper/token_info_controller.rb10066400409 Bytes0e0416ba60c6cfc2f88a64c02d439b0a53da759085278d02eaaeb1f781d5ed13
app/controllers/doorkeeper/tokens_controller.rb100664005.66 KB50ea2eaacd0e6c5f7d5f52bfffc5bccc2cd4fe96b93a9cc1a0598a6265454c03
app/helpers/doorkeeper/dashboard_helper.rb10066400502 Bytesa2c898fe38e1f6caca3c92ed4bfb18d03264584dc903513c33bd5f4bc65476a0
app/views/doorkeeper/applications/_delete_form.html.erb10066400331 Bytes38dcfac35cae8ac42d97748e31bd6113c9956360d1455f4b48ca32b1b24d434d
app/views/doorkeeper/applications/_form.html.erb100664002.49 KB314512555abc5d8361739b2a09eae439a465caa23b840188e3acb95da1780eb1
app/views/doorkeeper/applications/edit.html.erb10066400119 Bytes338db32dba18ac9c9b4b3fb63fa4fc68c05ef7c29c3fd358ff4564025be7c57f
app/views/doorkeeper/applications/index.html.erb100664001.2 KB90cd745507ea374e51b0fd36bec329eac8c8f8713b2558c08fe27b3c89aa5b73
app/views/doorkeeper/applications/new.html.erb10066400119 Bytes338db32dba18ac9c9b4b3fb63fa4fc68c05ef7c29c3fd358ff4564025be7c57f
app/views/doorkeeper/applications/show.html.erb100664001.98 KB14ee83c8d4ab1111be07ac8db58382f0c8233cc85d39e3c3fa10dbaca9c68d8a
app/views/doorkeeper/authorizations/error.html.erb10066400199 Bytese595558776398141b30a082c04021575f52f2d79cb5755b08497dbffc18300e2
app/views/doorkeeper/authorizations/new.html.erb100664001.85 KB8993624983c13c3c745ecafb8809ed1a6a22ed548443ce634f1b4da8da0c2ba4
app/views/doorkeeper/authorizations/show.html.erb10066400158 Bytes2601c4363738bf02693de7d7657d9ecec1f2faa5082369c7ac82867633475a9c
app/views/doorkeeper/authorized_applications/_delete_form.html.erb10066400328 Bytesd51651d574bd25f2c8e75090a8845c9515d510ee0de4fd1cf5aea05d0cb0fd71
app/views/doorkeeper/authorized_applications/index.html.erb10066400740 Bytes8382649f31b6a8ce7fe6e640ca2e3b10f2d8358e96789ed19241c8c878312f1b
app/views/layouts/doorkeeper/admin.html.erb100664001.21 KB9b2bce0d33c62ba28422d3f5d85a1387cd34dc99e8686b9e4821d530493f3e7b
app/views/layouts/doorkeeper/application.html.erb10066400527 Bytes7286fa9018b8c03f40dc8b6b07d784e97001e2792707568f239abbf5b6eebe46
config/locales/en.yml100664005.91 KBb421cbf1c7942698d6dfd0f9651271d8a6b634752b17827f60267a8f5939661e
lib/doorkeeper.rb100664004.64 KB686375af23ad6764f0dd31925077afeb9eab180ed20b053eca181dcfaa46cbfe
lib/doorkeeper/config.rb1006640022.3 KBee4a1a6808d231755c9353d7db656d73f7418a084a642c3b540f7e3fbfb157e2
lib/doorkeeper/config/abstract_builder.rb10066400653 Bytesfdfd0b0601bd10c1233390ca5591bcc01ab1d89cb812bd309543c4f446770e15
lib/doorkeeper/config/option.rb100664002.84 KB6e03a0cb9ac317aa84f6d5647fd5fc702000e6731c1a89f6367ac9c07b77171a
lib/doorkeeper/engine.rb100664001020 Bytesad97fcfe1c814931a8910cbd3df5ce319fd8d9f31593c630b9d38dbbeaa18c7e
lib/doorkeeper/errors.rb100664001.14 KB19cf2fc1875e9867b5c8e7659bcbd36ac8925144af75730605672b6ff5697c0f
lib/doorkeeper/grape/authorization_decorator.rb10066400409 Bytesd64af1a35ca7332af1e47dab33401af703c487d250f05e2ca45b425314c1f3f6
lib/doorkeeper/grape/helpers.rb100664001.52 KBca7373c184b974707169c5a5bb9e6f3e63c00d06747df181df2c9aeadc5ab81e
lib/doorkeeper/helpers/controller.rb100664002.28 KBe5e68f62908f7c2f7daf4cb0e178d6f17d939f9afac60b15b2afeff2502ef781
lib/doorkeeper/models/access_grant_mixin.rb100664004.16 KBbcec7ff954a7b39692b7290ab7fb788cb9ce91964f5aadec2e1ee3da9697e72a
lib/doorkeeper/models/access_token_mixin.rb1006640015.6 KB2615d1a78a1ff268c56d2d52e71526611beb8837937de79166b15a4f43412cb4
lib/doorkeeper/models/application_mixin.rb100664002.98 KBe86e023dd01a987368d91fd238d2fabf32f23191c9ff7b8037ace53ea5588039
lib/doorkeeper/models/concerns/accessible.rb10066400341 Bytes33f1b16eb25452faf6b024d677ff412d243f0b5069de30cedb49a76f2d5111d7
lib/doorkeeper/models/concerns/expirable.rb100664001014 Bytese7f2bd42a7de4e0e6f2bc009ab6efb239f4342fbfcd1ace75c427eb8f7fbd5d2
lib/doorkeeper/models/concerns/orderable.rb10066400281 Bytes4d2f966de5ea83eec6623ca64eb5283eaac90074c65d7df0f069216de5243c80
lib/doorkeeper/models/concerns/ownership.rb10066400383 Byteseddedbc54098d306406771b58dde1c2d740da04fb5d6d5fc5bbcbae8ec3f3b20
lib/doorkeeper/models/concerns/resource_ownerable.rb100664001.35 KB248af2f85f4352b4202540848f1e601d5588ca5c973a65ddd8970519627789c8
lib/doorkeeper/models/concerns/reusable.rb10066400533 Bytes7e65fbf52f09c2a7dedb18b7935d79d98fc87c29cfcf446bca7015919cb99c92
lib/doorkeeper/models/concerns/revocable.rb10066400577 Bytes28ddb08ce6ddc051887f4ff6d86c48cc3fe04a6ef7a5179574bad5a3441be627
lib/doorkeeper/models/concerns/scopes.rb10066400612 Bytes5fa0ecab042b370d04c82c0db93633f13a0d115c986c58cda9c04f6262d12ab2
lib/doorkeeper/models/concerns/secret_storable.rb100664003.33 KB693ab599b2684f32beee6edfe496e1dc53fc04a72063459ad24140a84d7757c9
lib/doorkeeper/oauth.rb10066400302 Bytesda25f7cf158528b6b75d6372cca295186bbe86859cc74f863ab049c78586035b
lib/doorkeeper/oauth/authorization/code.rb100664001.65 KB84efb5b47f25cacc800e08599b12e5d80534cc4a94d4dcc8383e6aa81e588fe8
lib/doorkeeper/oauth/authorization/context.rb10066400340 Bytes00a464ef9d24567b7d900d50b879f5e8bac1b38ce6dc14fca7ab0ff89b43b57b
lib/doorkeeper/oauth/authorization/token.rb100664002.65 KB8fa33f484ec206962e57ec8b1cd8f9507c40efd52bd1fb4366a6dae4e43d67ff
lib/doorkeeper/oauth/authorization/uri_builder.rb10066400819 Bytes310f152898e765c0d2ec476e6e2125f55bad80a7593e72cdced84ca59e688c50
lib/doorkeeper/oauth/authorization_code_request.rb100664003.23 KB0c7738b38466e59c492b43480dedb0acf5fa201dcd775475de0c14862d1b9461
lib/doorkeeper/oauth/base_request.rb100664001.75 KB75a385cb2738e96f0d14bb34175cdefd41102931b96c3934ea0219d818d12f8d
lib/doorkeeper/oauth/base_response.rb10066400359 Bytesd4490606059aec7c61d665da3548d475770b2e3868d60220b3c07d778bd78ee3
lib/doorkeeper/oauth/client.rb10066400740 Bytes0ab50f89fc87158e7f48c914721b62afbee149c95df6d0673ab5175366bb3eb1
lib/doorkeeper/oauth/client/credentials.rb100664001.01 KB2c410bc0700dfaf76b68699a933116d8cfe0d70226047297aea9534966d90596
lib/doorkeeper/oauth/client_credentials/creator.rb100664001.48 KBa259401f44f8684079a73f54297e2e9d64c7a1ea557ce4aa202e57111e25519a
lib/doorkeeper/oauth/client_credentials/issuer.rb100664001.06 KBf8ed548f1499205b860eaaf8a090decc6000adf24577206515782b30fe0231d0
lib/doorkeeper/oauth/client_credentials/validator.rb100664001.39 KB782e2ff18edf1a1beda70711cf26fd750443d54fb92f42081a31e25adc9ea24e
lib/doorkeeper/oauth/client_credentials_request.rb10066400745 Bytesdcfed4c9e91a9effb931f73c6fc178a97d1975afb6ac6c045b881735e860e8c1
lib/doorkeeper/oauth/code_request.rb10066400543 Bytes35091f938dfb88e5b3841f934ccce6bc88ec70fa8117c39ce42e48cfac2a089b
lib/doorkeeper/oauth/code_response.rb100664001.11 KB620813408f57fb9dbee87722a1184eb5835c6acf0f09426839072246e36e2ece
lib/doorkeeper/oauth/error.rb10066400288 Bytes83b73a342386f63b0b0dfef02afe3b65aca296bc1d1de97d654392c848725f8c
lib/doorkeeper/oauth/error_response.rb100664002 KB7e0b0b48bf4ba277a6e05e1fe6e807119f26a77abe6a52455211addf1759f4f2
lib/doorkeeper/oauth/forbidden_token_response.rb10066400783 Bytes8c23c2658a90239417adfff834f1a3a895977bdc7c45d3037968763f1ad21b06
lib/doorkeeper/oauth/helpers/scope_checker.rb100664001.38 KBbba940d0e77ca6a9e3b667590fde749f2e5f4ebbf8470264b7b5b5e19baacab3
lib/doorkeeper/oauth/helpers/unique_token.rb10066400995 Bytesfacc5827702b1fbd5059366e271810cca4b04a2fe324659e8d74ca06bc12f849
lib/doorkeeper/oauth/helpers/uri_checker.rb100664002.63 KB2d379b739f9373626583e16f56998d82927f49f3ef1a5a7bde9e698567665703
lib/doorkeeper/oauth/hooks/context.rb10066400415 Bytesbf65178a4c603bd8b4d937d9a8a4b06f7a0e394d05371e4949b097f9ecf717a4
lib/doorkeeper/oauth/invalid_request_response.rb100664001.04 KB8388b0347d9f12d08f9e022a1cf864d9aeb98e6f2c7450ad132e0715b6324b74
lib/doorkeeper/oauth/invalid_token_response.rb100664001.19 KBcf6c04c60cba47036f5c0d21ba6c0982707d9288d9963ec49a30ff7166a190a1
lib/doorkeeper/oauth/nonstandard.rb100664002.08 KBc23b8b4c9078f919b5cbb6d01dfec2b157bb6e68a80b31a7c20457e407beba34
lib/doorkeeper/oauth/password_access_token_request.rb100664001.47 KB3b20e1765da3e85a623411af68cb854cdb33dd0723f434fe8af5cb17211077d9
lib/doorkeeper/oauth/pre_authorization.rb100664004.31 KBea64a208012999908372ad603a32b1b94937d235afd6f65c9260b9fe7847ffe1
lib/doorkeeper/oauth/refresh_token_request.rb100664003.04 KB20b8aac97dd098cbbc4d800398a7b8d4e7697250b3dee5029cacdc139754a8b1
lib/doorkeeper/oauth/scopes.rb100664001.33 KBf00f8443abacdebda2ab0a92b06ef1e7045b6e1487da658e333dcf32acb84ab3
lib/doorkeeper/oauth/token.rb100664001.88 KBf8386f776792ae7a98252068473150b5b3e012bee5a1fa618185521067fb4664
lib/doorkeeper/oauth/token_introspection.rb100664007.59 KBc9d2e6e3008d00887cc606484c86db1784e074a5cbbf691d03a5e2c27549c9db
lib/doorkeeper/oauth/token_request.rb10066400567 Bytesad6c4448bbdc0889229bd74e20cb28f1a05b349467d184a1fbd2823db078ef58
lib/doorkeeper/oauth/token_response.rb10066400799 Bytesa80366cece15e7e9bf308329726399a38fbed62f5981b3c5c1ea129fe587ce47
lib/doorkeeper/orm/active_record.rb100664001.75 KBea43dd45f7c664562eb2965156bf5d5b73a1a33b0b8ae37d72f22c157571783d
lib/doorkeeper/orm/active_record/access_grant.rb10066400225 Bytese68f699f59f10909d13d85f5c85e5798ddd13d5b164c35f7f8013a4d3c26a842
lib/doorkeeper/orm/active_record/access_token.rb10066400225 Bytes5ba2c11b3cda6f70058901ef29bad1e79ce2dee4c3c702f462edd25f25b55613
lib/doorkeeper/orm/active_record/application.rb10066400288 Bytes94b899f71ff44accf70a7b78ea1f49b32561cbe16f097b67bf54bcd2580b0d91
lib/doorkeeper/orm/active_record/mixins/access_grant.rb100664001.77 KB19136c183ae319114c9f61613d2e2f122b9d441bc7f3336cee19ef977d99e67f
lib/doorkeeper/orm/active_record/mixins/access_token.rb100664001.63 KB3030ab3127ffe4e592a1c5a6b9c3acb1d1310e462a049004c37f62f6925f994c
lib/doorkeeper/orm/active_record/mixins/application.rb100664006.56 KB7a9575dd553bcc62a1253ca6284ed269a08523832761d4f43cc02389cc30e9f4
lib/doorkeeper/orm/active_record/redirect_uri_validator.rb100664001.74 KBd633770a1648ab163c3df4b82b180950232dbf6c62444409d47bb704c82e025e
lib/doorkeeper/orm/active_record/stale_records_cleaner.rb10066400830 Bytescc33dce39a5434d5601992258c6a4cb3299b519c04dbe50406f46d3a4709546c
lib/doorkeeper/rails/helpers.rb100664002.2 KB24d2244ae0451806b848b6fd0f030503e85a849903f6c4ce069e24eca0668fbc
lib/doorkeeper/rails/routes.rb100664002.9 KB1e600178bacd280ff459656561e56d02521771bcac5cd237a6efdf487b1b2886
lib/doorkeeper/rails/routes/abstract_router.rb10066400778 Bytes6e0b108ec2c12078773ac1c7bbb4636842ff5230c7be5bc3faabb1d13da049cc
lib/doorkeeper/rails/routes/mapper.rb10066400631 Bytesc28a506dee8dd3432d10f471f2ba9127be7b4c1442d743f4f68ce2c57a5d3e4c
lib/doorkeeper/rails/routes/mapping.rb10066400920 Bytes31eb23e5fe09261261e1ae10c625f7a29cefed8504f23ac25d322681392aca4f
lib/doorkeeper/rails/routes/registry.rb100664001.22 KBe0893fdbbb2c4145d3f3afc6b13d18dd27c36fb801705ce800c1716ad6002f3d
lib/doorkeeper/rake.rb10066400277 Bytes840ec02269ac31cd89cff2bdd3a35b98f59a2674a922bdbde89642e5cd0b78ea
lib/doorkeeper/rake/db.rake100664001.41 KB92659fdcc85652f2acafd578956d91b7ea7c7b17462778fa606e0bea35c09b2c
lib/doorkeeper/rake/setup.rake1006640096 Bytes6ef1e99307fafd7e88ef95f23c27733ffe592b0766d982eb971ad99626b2290b
lib/doorkeeper/request.rb10066400926 Bytes0ec9d4174f2816c231242b43a1a683265f78bf40924bcaf9c1b6100d90d46371
lib/doorkeeper/request/authorization_code.rb10066400553 Bytes1d73defeb536ac34198f95ad40ce1d63ca63cbc5b440cc53665afe54ebc6b987
lib/doorkeeper/request/client_credentials.rb10066400338 Bytes6cb7c6d2420f57f971f046c0357fada385f416fc75bcef11e2698cc01cecb111
lib/doorkeeper/request/code.rb10066400338 Bytesad9d6e994674067920ef0b97df7ded08c295459721e2c25994a673a0148b875b
lib/doorkeeper/request/password.rb10066400388 Bytes2400c782642965089a35d8cae7d94968a2a33ff5f1c7c03077ced240fb3cd99e
lib/doorkeeper/request/refresh_token.rb10066400488 Bytes88c8bb64067b8439249947919a8a141ccea4c9aab6d32bb34e0f60f23e9121ba
lib/doorkeeper/request/strategy.rb10066400341 Bytescd88eb725cc8e196bcdb24e8561fa7c6cf6c680a002914d06091d33a5b478c56
lib/doorkeeper/request/token.rb10066400340 Bytesea63e92215b80fb2eba921d19feab5e2edc6c7fd6f8826221548ce226d7c025e
lib/doorkeeper/secret_storing/base.rb100664002.08 KBdee1f7bdc68bdb1e2196a7f97ff2e3cfe087297f7b3afa8b032fb7860c040071
lib/doorkeeper/secret_storing/bcrypt.rb100664001.64 KB633bf72f3c0575a7ee05a150f622d5b94b34af81c6d5d73c847eee9a446c6b3a
lib/doorkeeper/secret_storing/plain.rb10066400908 Bytesba1c8dd21d4d3cb4e8e52e257fc4f0d5e6e9ae272551f2ae0021f182f42078d5
lib/doorkeeper/secret_storing/sha256_hash.rb10066400777 Bytesd5d06ce97351399e27ba9e71dcf920b398a3e5f147cf004bbba6e40826c8f422
lib/doorkeeper/server.rb100664001002 Bytes7e9a859e060a1ad31befe97ff114f574e0b5ecc2fd728987c4f28a26d01ad209
lib/doorkeeper/stale_records_cleaner.rb10066400572 Bytesa390e562e02af682d829cc581e9da41c430fb3aefe8ba7c8fc20149a2c37ca96
lib/doorkeeper/validations.rb10066400637 Bytesb2c1c595c89e727e009c6fe1e007f4587ede817d5804225aab6598e3b71251fa
lib/doorkeeper/version.rb10066400310 Bytes7ffb59f72ee3a3887e20ff9103eca4f586d8a594d03617ad7e3c2ff600788a82
lib/generators/doorkeeper/application_owner_generator.rb10066400899 Bytes1daa786b080311718f1022fbf9bda3680d40dc475ffb2f8dc6e0e037d75d67e3
lib/generators/doorkeeper/confidential_applications_generator.rb10066400926 Bytes061e367d0a020d23b345d680f19677def58b14eeefd03350b075ba9f5bc05821
lib/generators/doorkeeper/enable_polymorphic_resource_owner_generator.rb100664001.13 KBaae4a8959ef2a99ef3a73b644e15897dfe02cebc6dfe5fc613064a49d7eb4eea
lib/generators/doorkeeper/install_generator.rb10066400655 Bytes48df2bd057ca63332fad630020c73e009fc0e7a49830f67984fe453b6cde72f3
lib/generators/doorkeeper/migration_generator.rb10066400826 Bytes39e8184792c4765508b058c31362e09e95cd0bbc42c077f5ee8870cfd66f32ec
lib/generators/doorkeeper/pkce_generator.rb10066400826 Bytes130101bc9e8728033c109c0309e2ae32f1ebd90897ae991a2210c55be5ccb12e
lib/generators/doorkeeper/previous_refresh_token_generator.rb100664001.11 KB96066e582eb13f5e5ef58f614c9e1650c74134dbbfc52bf00db281fdb212f990
lib/generators/doorkeeper/templates/README10066400499 Bytes87d2cba9a8457a2452937cc3e8b1509f9dee30827e8cfe30d4c3489531eef045
lib/generators/doorkeeper/templates/add_confidential_to_applications.rb.erb10066400265 Bytesbd8da1ca16ff2567cef5beb9b6e5430e9de6412ea513cd6f44596ec063fcee62
lib/generators/doorkeeper/templates/add_owner_to_application_migration.rb.erb10066400329 Bytesec269789aa35cc29c8856cb39417457633a84a4cb0d146911cfc8b68e65a7b9b
lib/generators/doorkeeper/templates/add_previous_refresh_token_to_access_tokens.rb.erb10066400281 Bytes9f0b1458ef0ba4719c003f6b32a4f6d193426c87e63937ac58d5ad4420e0d421
lib/generators/doorkeeper/templates/enable_pkce_migration.rb.erb10066400276 Bytesa57ac3f31af986f2f2232b4be1afe378a29a96227bd402b05fadac8c905e574f
lib/generators/doorkeeper/templates/enable_polymorphic_resource_owner_migration.rb.erb10066400658 Bytescaf2fd5b416b3d66d5fff7a76e41c1dcd1040fcb90cb6e7f62706ca0ad97c7e4
lib/generators/doorkeeper/templates/initializer.rb1006640020.4 KB5d30ddf1d1864a5904f08cc25aa389cdf158c97bbb7b4bb0429075a5ca7c0b5c
lib/generators/doorkeeper/templates/migration.rb.erb100664003.43 KB851eaecbc395d51087b06b3024d28f9b4bdd40a8e5648184e6e47974900dcc80
lib/generators/doorkeeper/views_generator.rb10066400502 Bytesbde72c7203f44391400b3bb6118cf42dc1714e2cd8b24ce033e96e947f754028
vendor/assets/stylesheets/doorkeeper/bootstrap.min.css10066400141 KBf9f1ce2a9079ebe7445ff10ac12b8f049abc43c499f4978297ec5dd23283a2e5