Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/PitchBlackRecoveryProject/android_system_libhidl


https://github.com/PitchBlackRecoveryProject/android_system_libhidl

libhidl_test: doesn't require additional binaries

Previously, this required an additional test binary synced on the
device, but we can do the same...

138c35033d6422508aff3613c037543efa66c017 authored about 6 years ago
Fix typo in comment

Test: None
Change-Id: I25e5f1026f2c61399426c81357dba22c3be37f03

76900d545e8aa29260615c0e29358dca553b0e28 authored about 6 years ago
Add default argument to registerServiceWithCallback

Test: Call registerServiceWithCallback without service name argument
Change-Id: Ic50b2cc7430be97...

42c95e1e5f9fab77af0269e70e336a32beb20567 authored about 6 years ago
[email protected] to vndk-sp am: a900ff9b59 am: b7cb59ecdd

am: aca0d778c1

Change-Id: I2ff05d184912daa7c063415c1e57ed5fe7b7f370

1e6cfc606fa4121ec0f2f58fbe7a3bc38a91c5f8 authored about 6 years ago
[email protected] to vndk-sp am: a900ff9b59

am: b7cb59ecdd

Change-Id: Icd19915bb7e2ca223db792a672fa2f9c2578f581

aca0d778c1ef7952ca9f3118d049b1ed96340219 authored about 6 years ago
[email protected] to vndk-sp

am: a900ff9b59

Change-Id: If6a6c02736ea8e112a8537cfc3d7360816742979

b7cb59ecdd1913c75f46e7c15373fd08d2601898 authored about 6 years ago
[email protected] to vndk-sp

This is a types-only HAL used by any HAL as a convenient primitive for
effectively using safe_un...

a900ff9b59774816715c1baea66df04454d5e4b2 authored about 6 years ago
New helper functions for registering lazy HALs am: db0ab7e299 am: ef38160300

am: 2cc22c815f

Change-Id: I75006ab5172f044ddd54618bf522f7143c8ccb65

6330df7565b41ff5d3e9effab1c073b8757ba59a authored about 6 years ago
New default IClientCallback implementation am: 3373cd3d7a am: 715d7ad000

am: 415fa086c6

Change-Id: Ie5ff815b574c0c88a2ef8f6180c9e3a9d89afccb

0374e50b6ac2e0a4f8ee387b2c0f941ed39d44d2 authored about 6 years ago
New helper functions for registering lazy HALs am: db0ab7e299

am: ef38160300

Change-Id: I9be87fd6e0b05fdb4d38f08ae8d9974632034e67

2cc22c815f234ca4267da6a4961adac59d5a9d26 authored about 6 years ago
New default IClientCallback implementation am: 3373cd3d7a

am: 715d7ad000

Change-Id: I72ec97c214c63fe6f9b0e2796fe58baf98f41f20

415fa086c6ec7e60d297a354bcda5e5f889ff8c0 authored about 6 years ago
New helper functions for registering lazy HALs

am: db0ab7e299

Change-Id: I53e8f51e986f25ec00afb7e48b871e27beaf7aa4

ef381603006918e0e08d18afe37caaee844c601b authored about 6 years ago
New default IClientCallback implementation

am: 3373cd3d7a

Change-Id: I6329ed2dfce5cdc2c872d3511dbc6c96397ba464

715d7ad000d38ddb86ff450ddd1bc8299a2ac7e3 authored about 6 years ago
New default IClientCallback implementation

Add a default IClientCallback implementation which exits once all
watched services have no more ...

3373cd3d7a5a93afbaac5e3ee4073bf27ba2623a authored about 6 years ago
New helper functions for registering lazy HALs

Added:
* defaultLazyPassthroughServiceImplementation
* registerLazyPassthroughServiceImplement...

db0ab7e299f9c910599179debae8ad5c48b9059c authored about 6 years ago
Merge "system manifest: fix format" am: 969512915f am: 4188c92b09

am: 93db59087b

Change-Id: I64f04b9e26f529eb509cc0c97d8e7a15122109ca

044ec25063560974146a922f451e0c125dfc8e6f authored over 6 years ago
Merge "hidl_enum_range: support const/reverse iteration" am: 389898f71e am: b152218df7

am: ea34407bf2

Change-Id: I3085ef52e272c08132ef95a2d3d38a529afaaf52

0c4c1535a1e0ce3049f4f8b7966652c03d9577fe authored over 6 years ago
Merge "system manifest: fix format" am: 969512915f

am: 4188c92b09

Change-Id: Ic3c302daaaebf563029f5b65ee8cbb7dd232c806

93db59087bffb746e48e137f565f7b5d17c11bab authored over 6 years ago
Merge "hidl_enum_range: support const/reverse iteration" am: 389898f71e

am: b152218df7

Change-Id: I2b41ddd3ada424a003fdbb303383cd0fb7ce416e

ea34407bf2c6d987eea5efcc952d77870e186521 authored over 6 years ago
Merge "system manifest: fix format"

am: 969512915f

Change-Id: I7a17cbc79c216086767b61087a96489bcbf157d6

4188c92b093557c267f0e43b3f974736cdb66791 authored over 6 years ago
Merge "hidl_enum_range: support const/reverse iteration"

am: 389898f71e

Change-Id: Idd3464bbd95b7c4aa709aee0cfbab7a7b1f516ff

b152218df706ebef77bea43fc91336bfec5c85e3 authored over 6 years ago
Merge "system manifest: fix format"

969512915f511cb7a821141ab1301921eb5fbd60 authored over 6 years ago
Merge "hidl_enum_range: support const/reverse iteration"

389898f71ed1d54bd6a81706c058609f054cf6b8 authored over 6 years ago
Merge changes from topic "b66921961" am: 10b76c15f9 am: 7efaa260f8

am: 8983d17fdc

Change-Id: I968106bf68ef483bdfe0dc0b62a41a3186e3c3c8

65bccc8767a8a3d0854e43250ac4a16948e37e5c authored over 6 years ago
IServiceManager: remove onRegistration todo am: 02df9c58a5 am: 7142a79309

am: c238a3cd38

Change-Id: Idbd7ad0ed1d33443263610660527fb67a05a4b1c

ff8e1e1de8c23de897fa4e441110ee372e484541 authored over 6 years ago
Merge changes from topic "b66921961" am: 10b76c15f9

am: 7efaa260f8

Change-Id: Ieac368389b16ca0d74a82629d511dbe95d9dd077

8983d17fdc413909c2d20ffe19ca0726a60b14ef authored over 6 years ago
IServiceManager: remove onRegistration todo am: 02df9c58a5

am: 7142a79309

Change-Id: I55619869f487aaea483d73744a20c5cb1a6de02e

c238a3cd385f1d1a97726dc97655b9ada782efc1 authored over 6 years ago
Merge changes from topic "b66921961"

am: 10b76c15f9

Change-Id: I2f26cb52bd0597ca29ffcbe23299b4ff721d2388

7efaa260f80fad56e9b1777d7d1b61745198fdd9 authored over 6 years ago
IServiceManager: remove onRegistration todo

am: 02df9c58a5

Change-Id: I101b958464bd2cf43f12d218182b4311dea879fe

7142a793093c567e193eeb3af5d7c91067669229 authored over 6 years ago
Merge changes from topic "b66921961"

* changes:
@1.2::IServiceManager: listManifestByInterface
IServiceManager: remove onRegistra...

10b76c15f927ad1f30368c2ba89e846377250b48 authored over 6 years ago
hidl_enum_range: support const/reverse iteration

This also moves the implementation to auto-generated code. Only the
values themselves are genera...

39d9f88b13c6dd5e4d332d332741fb9779ad1714 authored over 6 years ago
system manifest: fix format

Test: pass
Change-Id: I82daf25ac90c5f401a2500c251b71fa9aa4e8756

c953048cf4560571d9532ceb836f77a7bbd19370 authored over 6 years ago
@1.2::IServiceManager: listManifestByInterface

This API lists VINTF manifest HALs (those that are expected to be on
the device even if they are...

2f0161b74969ccb001f1735d3548cbe59621669e authored over 6 years ago
IServiceManager: remove onRegistration todo

This would introduce a second way to retrieve a service. Since we
already handle situations wher...

02df9c58a5c7a13421f5093e2420dcf99710a2fd authored over 6 years ago
C++17: fix name collision. am: 19306140a3 am: ec31cb7ae0

am: d42e987976

Change-Id: Ic514e1307e0ad3009bb0bda98be6777229080050

1dd7ce6342b2c43b7d5f79cbe9d50f23d2098c96 authored over 6 years ago
C++17: fix name collision. am: 19306140a3

am: ec31cb7ae0

Change-Id: Ic4e09ade04396d132193d73f37b296e5cedc8e80

d42e98797600f75535fab795ccab7ab3a32492e3 authored over 6 years ago
C++17: fix name collision.

am: 19306140a3

Change-Id: Ib6bcd7285793409f3ce8079c88b2c8d80847a381

ec31cb7ae0a9b6ead02fcb384c9e502f7643b724 authored over 6 years ago
C++17: fix name collision.

external/libcxx/include/algorithm:1584:10: error: called object type 'char [4]' is not a funct...

19306140a3895c9cef32487c871153b21b129a2d authored over 6 years ago
Merge "update with -Wdocumentation." am: 213914b33c am: 9267ba9201

am: 92dd0c6422

Change-Id: I4c6a5a593d9d769c48f6618b4b8e7b3de1fad9f4

0f573d0c76c76724e9a7b3f893e76380cdcfb4d4 authored over 6 years ago
[automerger skipped] Merge pie-platform-release to aosp-master - DO NOT MERGE am: d3b1d41424 -s ours am: d3d7818495 -s ours

am: 8c733190af -s ours

Change-Id: Ib8990f66fcc776c7988e2e7fe06139150d13465c

72ddbee9d5671c4273e5a89c24acd3c9ed85b242 authored over 6 years ago
Merge "update with -Wdocumentation." am: 213914b33c

am: 9267ba9201

Change-Id: I30763d5820002129ab7701c71ad084d4e941b07a

92dd0c6422390d03d83cf1aaeb7282cae180b11a authored over 6 years ago
[automerger skipped] Merge pie-platform-release to aosp-master - DO NOT MERGE am: d3b1d41424 -s ours

am: d3d7818495 -s ours

Change-Id: I9cd3deb7ea918b7acb6059bfab9c4918551beea8

8c733190af9ae662a368328fdd31bd2040f3ef0f authored over 6 years ago
Merge "update with -Wdocumentation."

am: 213914b33c

Change-Id: If5c7170381a22a56415fa9b92accb55fd258be98

9267ba9201defb10e5262fc7438d2d1e79830c21 authored over 6 years ago
Merge "update with -Wdocumentation."

213914b33c6ffcbf021373219414dc258d59d06c authored over 6 years ago
[automerger skipped] Merge pie-platform-release to aosp-master - DO NOT MERGE

am: d3b1d41424 -s ours

Change-Id: I07e9a635c4febeb99c78976e74fdf49cc190da96

d3d78184952c74b10336ea921320efd2dfc2a7e4 authored over 6 years ago
update with -Wdocumentation.

Some clients use this, and it was breaking them if they tried to use
some of our headers (specif...

37814cb28eced38a02610ea2931d4e7e818f731b authored over 6 years ago
Merge pie-platform-release to aosp-master - DO NOT MERGE

Change-Id: I19d3fcbb4eb71702b49096b780b13a73bd0bd194

d3b1d41424e65c793f3d0f55173a12369462b9e9 authored over 6 years ago
Merge "@1.2::IServiceManager:onNoClients->onClients(bool)" am: ccea91f3e1 am: 5787e6b3c2

am: 4d5f7af71f

Change-Id: If949e8c357f7df311abb22a15233d6a4100185c9

8c994ac1043566f14ad65c4714b6e254b4f3b139 authored over 6 years ago
Merge "@1.2::IServiceManager:onNoClients->onClients(bool)" am: ccea91f3e1

am: 5787e6b3c2

Change-Id: Ie2eaf988162bd0e45eea76247d00a23169142dc1

4d5f7af71fd92c02681e965d14c97eb0759485d6 authored over 6 years ago
[automerger skipped] Merge pi-platform-release to stage-aosp-master - DO NOT MERGE am: ace17324d1 -s ours

am: 2f2a4f7b42 -s ours

Change-Id: Icbb10b093e7a65bf0ccf0573988803e07c6b8ad8

d08c7097a85bbf7537b4f970793af61dcfd1d8cf authored over 6 years ago
Merge "@1.2::IServiceManager:onNoClients->onClients(bool)"

am: ccea91f3e1

Change-Id: Ie26c3e4163172e87ff632239af269232601a6c06

5787e6b3c28a532cf5ee74fac2e4202604d1a099 authored over 6 years ago
[automerger skipped] Merge pi-platform-release to stage-aosp-master - DO NOT MERGE

am: ace17324d1 -s ours

Change-Id: I28bb3af2d2875d2fe4fded7e7bd919cc189e6132

2f2a4f7b426cfc0dedcb79061cdafe4f3ea00ef4 authored over 6 years ago
Merge "@1.2::IServiceManager:onNoClients->onClients(bool)"

ccea91f3e194a0740113218d47cb60418b8964d8 authored over 6 years ago
Merge pi-platform-release to stage-aosp-master - DO NOT MERGE

Change-Id: Ic60b5849114148c3652bf013ad53bd8239773bf2

ace17324d1edc2baf60b79b52b40b3876ffdb992 authored over 6 years ago
Use static linkage to reduce user/userdebug differences am: 73fe94d196 am: e07ac3a0f5

am: cb59e24764

Change-Id: I3cd2fa66e930b6d3b012bb388350e7c62fd81891

6a9e5560af4df421bae18f28c65309e51ebc9a8d authored over 6 years ago
Use static linkage to reduce user/userdebug differences am: 73fe94d196

am: e07ac3a0f5

Change-Id: I0b324dae9819ca5ee3d717f909c7788031edd989

cb59e24764b6866e252b3710c1752f2983013142 authored over 6 years ago
Use static linkage to reduce user/userdebug differences

am: 73fe94d196

Change-Id: Ie930833f6f1f923de272f1ac2f2413629dfa6c28

e07ac3a0f58ce9087436b105ba6e4437f6571911 authored over 6 years ago
Use static linkage to reduce user/userdebug differences

This commit changes the linkage of `kGcovPrefixEnvVar`,
`kGcovPrefixOverrideEnvVar`, `kGcovPrefi...

73fe94d1960e40030838836ec778b5c2813eb0b7 authored over 6 years ago
@1.2::IServiceManager:onNoClients->onClients(bool)

The onClients method is now called with a boolean reflecting whether
clients are present or not....

bf074fc01ff56e37763de36cc33b61dc3d869f43 authored over 6 years ago
Merge pi-dr1-dev to aosp-master am: ce34eb5d95 am: 167bd455a0

am: 1ce0555b25

Change-Id: I1d7e2ca3a37bc519bedcf3ac655f5f8ddbf723ed

f8a44031e08a232898479f956b92f03edc9a921c authored over 6 years ago
Merge pi-dr1-dev to aosp-master am: ce34eb5d95

am: 167bd455a0

Change-Id: I37f8191583da50eb0fcd1c9a54ce8d00f398fec2

1ce0555b2517fab27975d576cb68292eddcee476 authored over 6 years ago
Merge pi-dr1-dev to aosp-master

am: ce34eb5d95

Change-Id: Ifae2ac34aa8d541433df173701c542068d2aa504

167bd455a01a138d725b78c19fd08ec7f98df1de authored over 6 years ago
Merge pi-dr1-dev to aosp-master

Change-Id: I6db0e882d212ae1273eaf71005b6f31dee3a1238

ce34eb5d957de03fe43cca634e9acbdfe3af1b49 authored over 6 years ago
Do not add system to HAL library path for vendor process. am: 6a323eda0f am: b08ef926fa

am: 81d9573743

Change-Id: Id27f96f86c0f0487a4db7d6b59724fc88c2230e0

dff909f95fef3b50bdf86e13321878f3cf41cc6e authored over 6 years ago
Do not add system to HAL library path for vendor process. am: 6a323eda0f

am: b08ef926fa

Change-Id: I6c6b96d5ae796ccae3b70010398401f280d3f120

81d95737432b310ec300e2ebc82b6c915aa99188 authored over 6 years ago
Do not add system to HAL library path for vendor process.

am: 6a323eda0f

Change-Id: Id39311a26e2815db635cd42c420a665560fccf59

b08ef926fa556acb41a6e4b9fee1d1812396564b authored over 6 years ago
Do not add system to HAL library path for vendor process.

Vendor process is not allowed to use system libs. Do not search
'system/lib[64]/hw' for vendor h...

6a323eda0fdde5aba5495f75773f17664fd41b82 authored over 6 years ago
Remove onRegistration from header. am: 176eaf71a3 am: 61d1e97de4

am: 805e4d647f

Change-Id: I1e99eb56613819356ce1b71abd70e06c3ff9e71e

ab747c115491da3a943f7b03796242da56670793 authored over 6 years ago
Remove onRegistration from header. am: 176eaf71a3

am: 61d1e97de4

Change-Id: Id898a225ba108ae3f3c4c75e66d993907a815ffc

805e4d647f191a5713586ad55b457c82f00ce45c authored over 6 years ago
Remove onRegistration from header.

am: 176eaf71a3

Change-Id: I02106fe0244ab745e930aac144e90ad257971ca9

61d1e97de4e0f44acbfb74651986e6aba4f9433b authored over 6 years ago
Merge changes from topic "b36424585" am: cc22f72529 am: 353be24ba6

am: 48467d71de

Change-Id: Iedeed683292696930c34a0daf99e27d6f4ecd93f

6b2ad2400e7fedc37eb20a8207aac4eb0146827a authored over 6 years ago
Add IServiceManager addWithChain. am: bb9eb2aa86 am: 1f4e9ed1a5

am: 1c0ab21bbe

Change-Id: I5cebc5ccdca754737712061c0507fc4b06246707

cc22de114e072719c0df42c8f053a81fdeef7cbb authored over 6 years ago
Merge changes from topic "b36424585" am: cc22f72529

am: 353be24ba6

Change-Id: I631a0914e2ae00dbe6b75307f2d4354220996b92

48467d71defc9febf42e88ffe222c27f411dfddb authored over 6 years ago
Add IServiceManager addWithChain. am: bb9eb2aa86

am: 1f4e9ed1a5

Change-Id: I8bcb10000c0239c10c5c80d1838371445f1db43e

1c0ab21bbe3fc3dcc937412c1aa7c6edcdea67e2 authored over 6 years ago
Remove onRegistration from header.

This is now an implementation detail of registerAsServiceInternal.

Bug: 36424585
Test: build (n...

176eaf71a3b8f51cd3b164d44b0404e0c47b23d6 authored over 6 years ago
Merge changes from topic "b36424585"

am: cc22f72529

Change-Id: I4186ca07b64ae3c7bf52684a5d559698d491feda

353be24ba6e5a912dedd12bd1025233fc692a433 authored over 6 years ago
Add IServiceManager addWithChain.

am: bb9eb2aa86

Change-Id: Iaf245c3672aa82f5860eb6544903f7ca372a82aa

1f4e9ed1a5fad4320211ee1c689e6d626c11bf7e authored over 6 years ago
Merge changes from topic "b36424585"

* changes:
Use libbase string functions.
Add IServiceManager addWithChain.

cc22f725290ff31d8486a31ee567b5cd67d1aee6 authored over 6 years ago
Merge changes from topic "b116618418" am: 002fa789e6 am: 0e71219f40

am: df9986e867

Change-Id: I7d8bdbf5e09d9cb83829bef053aded28827c1f42

4d86ebd0a9cc69f351e4ae221b602bc08d66e13a authored over 6 years ago
Merge changes from topic "b116618418" am: 002fa789e6

am: 0e71219f40

Change-Id: I26d788bb7d034e1fff1c069685ae8a76673c39bc

df9986e867c415b0a3ae3b9f5af3dbf336db33db authored over 6 years ago
Merge changes from topic "b116618418"

am: 002fa789e6

Change-Id: I60b0e19bad15682fbfbc7f67c402baee7fb91f19

0e71219f408a476d36618d11a8b0f30292c6509f authored over 6 years ago
Use libbase string functions.

Instead of rolling our own.

Test: boot/hidl_test
Change-Id: Icd0bdc323390b4b6912b3e519b858513b8...

8092aa0eba76ced91802308f939aed0a2f936dc6 authored over 6 years ago
Add IServiceManager addWithChain.

This prevents hwservicemanager from having to make oneway calls.

The method onRegistration will...

bb9eb2aa86060132795f2f44d8c3859767b57cb3 authored over 6 years ago
Merge changes from topic "b116618418"

* changes:
Status: no 'okay' EX_TRANSACTION_FAILED
Revert "Status writeToParcel no OK on ERR"

002fa789e6e56f94456794c9df5b5a3c03a44cce authored over 6 years ago
Check type of HybridInterface. am: f1052be51f am: 5241dab37c

am: 1672a017ce

Change-Id: I3d2c5248483ce95f726c9c06f783c10db9797ec8

ef28e4c4e0ee9839a3bfeb9838b099a3c8664827 authored over 6 years ago
Check type of HybridInterface. am: f1052be51f

am: 5241dab37c

Change-Id: I3af00ab47e85202d7d82f131f4a528ba0de08efc

1672a017ce0024d6c6c7f25ac551c244b8f71bc6 authored over 6 years ago
Check type of HybridInterface.

am: f1052be51f

Change-Id: Ib6f7164f454b5cd00351e57e242c06d19c6552ef

5241dab37ccb6be6c40a648786b50b2e634d60ef authored over 6 years ago
Check type of HybridInterface.

This was leaving data unread on the parcel.

Bug: 113542980
Test: boot
Change-Id: Ibe6cc5acdd8dc...

f1052be51f2de0aa1f33902202b01626c0fb10ec authored over 6 years ago
Revert "Status writeToParcel no OK on ERR"

Going with different solution.

This reverts commit 662378eaf66fb19ceb60aad4509c55843c78ff4d.

B...

872da2d5d17d35bdb929fd7ad896b8b28eab1fda authored over 6 years ago
Status: no 'okay' EX_TRANSACTION_FAILED

When EX_TRANSACTION_FAILED is set, mError will never be okay.

From libbinder's fb26e720a27e464e...

dd772b4a3a7830670113bcfb8a263b6f549181b2 authored over 6 years ago
Log how long it takes each HAL to start am: 64ffced271 am: 85871ff670

am: dcfd22df55

Change-Id: I0212e83395227fd833668ff580feaaabfdb0a16e

4ef5dc006fdff2cbb931c819658a25c050c515b7 authored over 6 years ago
Log how long it takes each HAL to start am: 64ffced271

am: 85871ff670

Change-Id: Ib253ecba304c4febb178406e5d23aa64466f4972

dcfd22df55ab2cc5b0f141e8531498dd3b6756a4 authored over 6 years ago
Log how long it takes each HAL to start

am: 64ffced271

Change-Id: I5d7a87701a48e674b36dc3586b29b13fb1d6bd81

85871ff6707fcfd4aaa6e5b2cd0cd36cb19c77f4 authored over 6 years ago
Log how long it takes each HAL to start

Test: Reboot device and grep logcat for "ms to start"
Change-Id: Iacb3b33e75c5084e2f1bec298cdac0...

64ffced271fad7eb89804675a3a49a2b8541af40 authored over 6 years ago
Merge "Add [email protected]::Monostate." am: 6f7ad83248 am: 70ca0f3b01

am: 90d183e0a2

Change-Id: I9b3333ba55ba9a6e141b684bd6662cc6452e98f8

01856b86ba6c47a3739e03c324ceed90a6506cfd authored over 6 years ago
Merge "Add [email protected]::Monostate." am: 6f7ad83248

am: 70ca0f3b01

Change-Id: Ia0d6e0ee3d3950865f34e0dd1c475df135faf556

90d183e0a2753decbf252c47d8e728795525ae8c authored over 6 years ago
Merge "Add [email protected]::Monostate."

am: 6f7ad83248

Change-Id: I624cb85e438efbc7f1945a7dc9200836516e6006

70ca0f3b01f63b053c5a71f8d6dfb249e6bda2c5 authored over 6 years ago
Merge "Add [email protected]::Monostate."

6f7ad83248ae6e129428fe1178a9ff4346cc0df7 authored over 6 years ago
Add [email protected]::Monostate.

This is a helper type used to easily make optional types.

Bug: 116156870
Test: hidl_test, hidl_...

b0dc07a327f349d99c9bb738f8a48cd47a376496 authored over 6 years ago
MQDescriptor: warn about handle ownership am: 4cee37c838 am: f8752775df

am: 1e81bc2552

Change-Id: Ifa2423d436b0402cbf880902964796c7bf1e5445

2ff04e2edb75dee1a8992603e54924b86a456f2a authored over 6 years ago