diff --git a/config.json b/config.json
index c21a6db..51f8035 100644
--- a/config.json
+++ b/config.json
@@ -204,6 +204,14 @@
"prerequisites": [],
"difficulty": 2
},
+ {
+ "slug": "eliuds-eggs",
+ "name": "Eliud's Eggs",
+ "uuid": "34a2ee25-abe1-4683-a0fd-40f3e65eab55",
+ "practices": [],
+ "prerequisites": [],
+ "difficulty": 2
+ },
{
"slug": "run-length-encoding",
"name": "Run Length Encoding",
diff --git a/exercises/practice/eliuds-eggs/.docs/instructions.md b/exercises/practice/eliuds-eggs/.docs/instructions.md
new file mode 100644
index 0000000..b0c2df5
--- /dev/null
+++ b/exercises/practice/eliuds-eggs/.docs/instructions.md
@@ -0,0 +1,8 @@
+# Instructions
+
+Your task is to count the number of 1 bits in the binary representation of a number.
+
+## Restrictions
+
+Keep your hands off that bit-count functionality provided by your standard library!
+Solve this one yourself using other basic tools instead.
diff --git a/exercises/practice/eliuds-eggs/.docs/introduction.md b/exercises/practice/eliuds-eggs/.docs/introduction.md
new file mode 100644
index 0000000..2b2e5c4
--- /dev/null
+++ b/exercises/practice/eliuds-eggs/.docs/introduction.md
@@ -0,0 +1,65 @@
+# Introduction
+
+Your friend Eliud inherited a farm from her grandma Tigist.
+Her granny was an inventor and had a tendency to build things in an overly complicated manner.
+The chicken coop has a digital display showing an encoded number representing the positions of all eggs that could be picked up.
+
+Eliud is asking you to write a program that shows the actual number of eggs in the coop.
+
+The position information encoding is calculated as follows:
+
+1. Scan the potential egg-laying spots and mark down a `1` for an existing egg or a `0` for an empty spot.
+2. Convert the number from binary to decimal.
+3. Show the result on the display.
+
+## Example 1
+
+
+
+```text
+ _ _ _ _ _ _ _
+|E| |E|E| | |E|
+```
+
+### Resulting Binary
+
+
+
+```text
+ _ _ _ _ _ _ _
+|1|0|1|1|0|0|1|
+```
+
+### Decimal number on the display
+
+89
+
+### Actual eggs in the coop
+
+4
+
+## Example 2
+
+
+
+```text
+ _ _ _ _ _ _ _
+| | | |E| | | |
+```
+
+### Resulting Binary
+
+
+
+```text
+ _ _ _ _ _ _ _
+|0|0|0|1|0|0|0|
+```
+
+### Decimal number on the display
+
+8
+
+### Actual eggs in the coop
+
+1
diff --git a/exercises/practice/eliuds-eggs/.meta/config.json b/exercises/practice/eliuds-eggs/.meta/config.json
new file mode 100644
index 0000000..f98d9e2
--- /dev/null
+++ b/exercises/practice/eliuds-eggs/.meta/config.json
@@ -0,0 +1,19 @@
+{
+ "authors": [
+ "BNAndras"
+ ],
+ "files": {
+ "solution": [
+ "zcl_eliuds_eggs.clas.abap"
+ ],
+ "test": [
+ "zcl_eliuds_eggs.clas.testclasses.abap"
+ ],
+ "example": [
+ ".meta/zcl_eliuds_eggs.clas.abap"
+ ]
+ },
+ "blurb": "Help Eliud count the number of eggs in her chicken coop by counting the number of 1 bits in a binary representation.",
+ "source": "Christian Willner, Eric Willigers",
+ "source_url": "https://forum.exercism.org/t/new-exercise-suggestion-pop-count/7632/5"
+}
diff --git a/exercises/practice/eliuds-eggs/.meta/tests.toml b/exercises/practice/eliuds-eggs/.meta/tests.toml
new file mode 100644
index 0000000..e11683c
--- /dev/null
+++ b/exercises/practice/eliuds-eggs/.meta/tests.toml
@@ -0,0 +1,22 @@
+# This is an auto-generated file.
+#
+# Regenerating this file via `configlet sync` will:
+# - Recreate every `description` key/value pair
+# - Recreate every `reimplements` key/value pair, where they exist in problem-specifications
+# - Remove any `include = true` key/value pair (an omitted `include` key implies inclusion)
+# - Preserve any other key/value pair
+#
+# As user-added comments (using the # character) will be removed when this file
+# is regenerated, comments can be added via a `comment` key.
+
+[559e789d-07d1-4422-9004-3b699f83bca3]
+description = "0 eggs"
+
+[97223282-f71e-490c-92f0-b3ec9e275aba]
+description = "1 egg"
+
+[1f8fd18f-26e9-4144-9a0e-57cdfc4f4ff5]
+description = "4 eggs"
+
+[0c18be92-a498-4ef2-bcbb-28ac4b06cb81]
+description = "13 eggs"
diff --git a/exercises/practice/eliuds-eggs/.meta/zcl_eliuds_eggs.clas.abap b/exercises/practice/eliuds-eggs/.meta/zcl_eliuds_eggs.clas.abap
new file mode 100644
index 0000000..a51ab02
--- /dev/null
+++ b/exercises/practice/eliuds-eggs/.meta/zcl_eliuds_eggs.clas.abap
@@ -0,0 +1,23 @@
+CLASS zcl_eliuds_eggs DEFINITION
+ PUBLIC
+ FINAL
+ CREATE PUBLIC.
+
+ PUBLIC SECTION.
+ METHODS egg_count IMPORTING number TYPE i
+ RETURNING VALUE(count) TYPE i.
+ PROTECTED SECTION.
+ PRIVATE SECTION.
+ENDCLASS.
+
+
+
+CLASS zcl_eliuds_eggs IMPLEMENTATION.
+ METHOD egg_count.
+ DATA(temp) = number.
+ WHILE temp > 0.
+ count = count + ( temp MOD 2 ).
+ temp = temp DIV 2.
+ ENDWHILE.
+ ENDMETHOD.
+ENDCLASS.
diff --git a/exercises/practice/eliuds-eggs/package.devc.xml b/exercises/practice/eliuds-eggs/package.devc.xml
new file mode 100644
index 0000000..3a894c9
--- /dev/null
+++ b/exercises/practice/eliuds-eggs/package.devc.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ Exercism: Eliud's Eggs
+
+
+
+
diff --git a/exercises/practice/eliuds-eggs/zcl_eliuds_eggs.clas.abap b/exercises/practice/eliuds-eggs/zcl_eliuds_eggs.clas.abap
new file mode 100644
index 0000000..4bf809f
--- /dev/null
+++ b/exercises/practice/eliuds-eggs/zcl_eliuds_eggs.clas.abap
@@ -0,0 +1,19 @@
+CLASS zcl_eliuds_eggs DEFINITION
+ PUBLIC
+ FINAL
+ CREATE PUBLIC.
+
+ PUBLIC SECTION.
+ METHODS egg_count IMPORTING number TYPE i
+ RETURNING VALUE(count) TYPE i.
+ PROTECTED SECTION.
+ PRIVATE SECTION.
+ENDCLASS.
+
+
+
+CLASS zcl_eliuds_eggs IMPLEMENTATION.
+ METHOD egg_count.
+ "Implement solution
+ ENDMETHOD.
+ENDCLASS.
diff --git a/exercises/practice/eliuds-eggs/zcl_eliuds_eggs.clas.testclasses.abap b/exercises/practice/eliuds-eggs/zcl_eliuds_eggs.clas.testclasses.abap
new file mode 100644
index 0000000..b8fffb5
--- /dev/null
+++ b/exercises/practice/eliuds-eggs/zcl_eliuds_eggs.clas.testclasses.abap
@@ -0,0 +1,46 @@
+*"* use this source file for your ABAP unit test classes
+CLASS ltcl_eliuds_eggs DEFINITION FINAL FOR TESTING
+ DURATION SHORT
+ RISK LEVEL HARMLESS.
+
+ PRIVATE SECTION.
+ DATA cut TYPE REF TO zcl_eliuds_eggs.
+ METHODS setup.
+ METHODS:
+ test_0_eggs FOR TESTING,
+ test_1_egg FOR TESTING,
+ test_4_eggs FOR TESTING,
+ test_13_eggs FOR TESTING.
+ENDCLASS.
+
+
+CLASS ltcl_eliuds_eggs IMPLEMENTATION.
+ METHOD setup.
+ cut = NEW zcl_eliuds_eggs( ).
+ ENDMETHOD.
+
+ METHOD test_0_eggs.
+ cl_abap_unit_assert=>assert_equals(
+ exp = 0
+ act = cut->egg_count( 0 ) ).
+ ENDMETHOD.
+
+ METHOD test_1_egg.
+ cl_abap_unit_assert=>assert_equals(
+ exp = 1
+ act = cut->egg_count( 16 ) ).
+ ENDMETHOD.
+
+ METHOD test_4_eggs.
+ cl_abap_unit_assert=>assert_equals(
+ exp = 4
+ act = cut->egg_count( 89 ) ).
+ ENDMETHOD.
+
+ METHOD test_13_eggs.
+ cl_abap_unit_assert=>assert_equals(
+ exp = 13
+ act = cut->egg_count( 2000000000 ) ).
+ ENDMETHOD.
+
+ENDCLASS.
diff --git a/exercises/practice/eliuds-eggs/zcl_eliuds_eggs.clas.xml b/exercises/practice/eliuds-eggs/zcl_eliuds_eggs.clas.xml
new file mode 100644
index 0000000..bc94bb8
--- /dev/null
+++ b/exercises/practice/eliuds-eggs/zcl_eliuds_eggs.clas.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ ZCL_ELIUDS_EGGS
+ E
+ Exercism: Eliud's Eggs
+ 1
+ X
+ X
+ X
+ X
+
+
+
+