2 Commits 0df6323a0a ... a1eeef4c10

Auteur SHA1 Message Date
  metya a1eeef4c10 day 7 python il y a 1 mois
  metya 8fda234926 day6 python il y a 1 mois

+ 1 - 1
aoc2025/aocutils.py

@@ -95,7 +95,7 @@ def bench(part):
 
 
 if __name__ == "__main__":
-    day = 5
+    day = 7
     root = os.path.dirname(__file__)
     task_dir = os.path.join(root, f"day{day}")
     generate_readme(task_dir, day)

+ 61 - 0
aoc2025/day6/README.md

@@ -0,0 +1,61 @@
+--- Day 6: Trash Compactor ---
+------------------------------
+
+After helping the Elves in the kitchen, you were taking a break and helping them re-enact a movie scene when you over-enthusiastically jumped into the garbage chute!
+
+A brief fall later, you find yourself in a garbage smasher. Unfortunately, the door's been magnetically sealed.
+
+As you try to find a way out, you are approached by a family of cephalopods! They're pretty sure they can get the door open, but it will take some time. While you wait, they're curious if you can help the youngest cephalopod with her [math homework](/2021/day/18).
+
+Cephalopod math doesn't look that different from normal math. The math worksheet (your puzzle input) consists of a list of *problems*; each problem has a group of numbers that need to be either *added* (`+`) or *multiplied* (`*`) together.
+
+However, the problems are arranged a little strangely; they seem to be presented next to each other in a very long horizontal list. For example:
+
+```
+123 328  51 64 
+ 45 64  387 23 
+  6 98  215 314
+*   +   *   +
+```
+
+Each problem's numbers are arranged vertically; at the bottom of the problem is the symbol for the operation that needs to be performed. Problems are separated by a full column of only spaces. The left/right alignment of numbers within each problem can be ignored.
+
+So, this worksheet contains four problems:
+
+* `123` \* `45` \* `6` = `33210`
+* `328` + `64` + `98` = `490`
+* `51` \* `387` \* `215` = `4243455`
+* `64` + `23` + `314` = `401`
+
+To check their work, cephalopod students are given the *grand total* of adding together all of the answers to the individual problems. In this worksheet, the grand total is `33210` + `490` + `4243455` + `401` = `4277556`.
+
+Of course, the actual worksheet is *much* wider. You'll need to make sure to unroll it completely so that you can read the problems clearly.
+
+Solve the problems on the math worksheet. *What is the grand total found by adding together all of the answers to the individual problems?*
+
+--- Part Two ---
+----------------
+
+The big cephalopods come back to check on how things are going. When they see that your grand total doesn't match the one expected by the worksheet, they realize they forgot to explain how to read cephalopod math.
+
+Cephalopod math is written *right-to-left in columns*. Each number is given in its own column, with the most significant digit at the top and the least significant digit at the bottom. (Problems are still separated with a column consisting only of spaces, and the symbol at the bottom of the problem is still the operator to use.)
+
+Here's the example worksheet again:
+
+```
+123 328  51 64 
+ 45 64  387 23 
+  6 98  215 314
+*   +   *   +
+```
+
+Reading the problems right-to-left one column at a time, the problems are now quite different:
+
+* The rightmost problem is `4` + `431` + `623` = `1058`
+* The second problem from the right is `175` \* `581` \* `32` = `3253600`
+* The third problem from the right is `8` + `248` + `369` = `625`
+* Finally, the leftmost problem is `356` \* `24` \* `1` = `8544`
+
+Now, the grand total is `1058` + `3253600` + `625` + `8544` = `3263827`.
+
+Solve the problems on the math worksheet again. *What is the grand total found by adding together all of the answers to the individual problems?*

+ 0 - 0
aoc2025/day6/day6.go


+ 79 - 0
aoc2025/day6/day6.py

@@ -0,0 +1,79 @@
+import os
+
+with open(os.path.join(os.path.dirname(__file__), "example.txt")) as example:
+    example_data = example.read().splitlines()
+
+with open(os.path.join(os.path.dirname(__file__), "input.txt")) as example:
+    input_data = example.read().splitlines()
+
+
+def part1(data):
+    problems = []
+    for problem in data[:-1]:
+        problems.append([int(d) for d in problem.split()])
+    mo = data[-1].split()
+    sum = 0
+    for row in range(len(mo)):
+        sp = 1 if mo[row] == "*" else 0
+        for problem in problems:
+            sp = sp * problem[row] if mo[row] == "*" else sp + problem[row]
+        sum += sp
+    print(f"Part1: {sum=}")
+
+
+def bench(part):
+    import time
+
+    def wrapper(*args, **kwargs):
+        start = time.perf_counter()
+        value = part(*args, **kwargs)
+        print(f"\tevaluation time: {time.perf_counter() - start} s")
+        return value
+
+    return wrapper
+
+
+@bench
+def part2(data):
+    # get the max numer of tens in each colums
+    mo = data[-1].split()
+    tens = [list(map(len, row.split())) for row in data[:-1]]
+    max_tens = []
+    for i in range(len(mo)):
+        pipi = []
+        for ten in tens:
+            pipi.append(ten[i])
+        max_tens.append(max(pipi))
+
+    # get the numbers in colums with respect of tens and position of digits
+    cursor = 0
+    problems = []
+    for tens in max_tens:
+        digits = []
+        for problem in data[:-1]:
+            digits.append((problem[cursor : cursor + tens]))
+        problems.append(digits)
+        cursor += tens + 1
+
+    # get the result calculating digits in column with respect of tens
+    sum = 0
+    for problem, m in zip(problems, mo):
+        sp = 1 if m == "*" else 0
+        for i in range(len(problem[0])):
+            num = ""
+            for nums in problem:
+                digit = nums[i]
+                num += digit
+            if m == "*":
+                sp = sp * int(num)
+            else:
+                sp = sp + int(num)
+        sum += sp
+    print(f"Part2: {sum=}")
+
+
+part1(example_data)
+part1(input_data)
+
+part2(example_data)
+part2(input_data)

+ 4 - 0
aoc2025/day6/example.txt

@@ -0,0 +1,4 @@
+123 328  51 64 
+ 45 64  387 23 
+  6 98  215 314
+*   +   *   +

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
aoc2025/day6/input.txt


+ 220 - 0
aoc2025/day7/README.md

@@ -0,0 +1,220 @@
+--- Day 7: Laboratories ---
+---------------------------
+
+You thank the cephalopods for the help and exit the trash compactor, finding yourself in the [familiar](/2024/day/6) [halls](/2018/day/4) of a North Pole research wing.
+
+Based on the large sign that says "teleporter hub", they seem to be researching *teleportation*; you can't help but try it for yourself and step onto the large yellow teleporter pad.
+
+Suddenly, you find yourself in an unfamiliar room! The room has no doors; the only way out is the teleporter. Unfortunately, the teleporter seems to be leaking [magic smoke](https://en.wikipedia.org/wiki/Magic_smoke).
+
+Since this is a teleporter lab, there are lots of spare parts, manuals, and diagnostic equipment lying around. After connecting one of the diagnostic tools, it helpfully displays error code `0H-N0`, which apparently means that there's an issue with one of the *tachyon manifolds*.
+
+You quickly locate a diagram of the tachyon manifold (your puzzle input). A tachyon beam enters the manifold at the location marked `S`; tachyon beams always move *downward*. Tachyon beams pass freely through empty space (`.`). However, if a tachyon beam encounters a splitter (`^`), the beam is stopped; instead, a new tachyon beam continues from the immediate left and from the immediate right of the splitter.
+
+For example:
+
+```
+.......S.......
+...............
+.......^.......
+...............
+......^.^......
+...............
+.....^.^.^.....
+...............
+....^.^...^....
+...............
+...^.^...^.^...
+...............
+..^...^.....^..
+...............
+.^.^.^.^.^...^.
+...............
+```
+
+In this example, the incoming tachyon beam (`|`) extends downward from `S` until it reaches the first splitter:
+
+```
+.......S.......
+.......|.......
+.......^.......
+...............
+......^.^......
+...............
+.....^.^.^.....
+...............
+....^.^...^....
+...............
+...^.^...^.^...
+...............
+..^...^.....^..
+...............
+.^.^.^.^.^...^.
+...............
+```
+
+At that point, the original beam stops, and two new beams are emitted from the splitter:
+
+```
+.......S.......
+.......|.......
+......|^|......
+...............
+......^.^......
+...............
+.....^.^.^.....
+...............
+....^.^...^....
+...............
+...^.^...^.^...
+...............
+..^...^.....^..
+...............
+.^.^.^.^.^...^.
+...............
+```
+
+Those beams continue downward until they reach more splitters:
+
+```
+.......S.......
+.......|.......
+......|^|......
+......|.|......
+......^.^......
+...............
+.....^.^.^.....
+...............
+....^.^...^....
+...............
+...^.^...^.^...
+...............
+..^...^.....^..
+...............
+.^.^.^.^.^...^.
+...............
+```
+
+At this point, the two splitters create a total of only *three* tachyon beams, since they are both dumping tachyons into the same place between them:
+
+```
+.......S.......
+.......|.......
+......|^|......
+......|.|......
+.....|^|^|.....
+...............
+.....^.^.^.....
+...............
+....^.^...^....
+...............
+...^.^...^.^...
+...............
+..^...^.....^..
+...............
+.^.^.^.^.^...^.
+...............
+```
+
+This process continues until all of the tachyon beams reach a splitter or exit the manifold:
+
+```
+.......S.......
+.......|.......
+......|^|......
+......|.|......
+.....|^|^|.....
+.....|.|.|.....
+....|^|^|^|....
+....|.|.|.|....
+...|^|^|||^|...
+...|.|.|||.|...
+..|^|^|||^|^|..
+..|.|.|||.|.|..
+.|^|||^||.||^|.
+.|.|||.||.||.|.
+|^|^|^|^|^|||^|
+|.|.|.|.|.|||.|
+```
+
+To repair the teleporter, you first need to understand the beam-splitting properties of the tachyon manifold. In this example, a tachyon beam is split a total of *`21`* times.
+
+Analyze your manifold diagram. *How many times will the beam be split?*
+
+--- Part Two ---
+----------------
+
+With your analysis of the manifold complete, you begin fixing the teleporter. However, as you open the side of the teleporter to replace the broken manifold, you are surprised to discover that it isn't a classical tachyon manifold - it's a *quantum tachyon manifold*.
+
+With a quantum tachyon manifold, only a *single tachyon particle* is sent through the manifold. A tachyon particle takes *both* the left and right path of each splitter encountered.
+
+Since this is impossible, the manual recommends the many-worlds interpretation of quantum tachyon splitting: each time a particle reaches a splitter, it's actually *time itself* which splits. In one timeline, the particle went left, and in the other timeline, the particle went right.
+
+To fix the manifold, what you really need to know is the *number of timelines* active after a single particle completes all of its possible journeys through the manifold.
+
+In the above example, there are many timelines. For instance, there's the timeline where the particle always went left:
+
+```
+.......S.......
+.......|.......
+......|^.......
+......|........
+.....|^.^......
+.....|.........
+....|^.^.^.....
+....|..........
+...|^.^...^....
+...|...........
+..|^.^...^.^...
+..|............
+.|^...^.....^..
+.|.............
+|^.^.^.^.^...^.
+|..............
+```
+
+Or, there's the timeline where the particle alternated going left and right at each splitter:
+
+```
+.......S.......
+.......|.......
+......|^.......
+......|........
+......^|^......
+.......|.......
+.....^|^.^.....
+......|........
+....^.^|..^....
+.......|.......
+...^.^.|.^.^...
+.......|.......
+..^...^|....^..
+.......|.......
+.^.^.^|^.^...^.
+......|........
+```
+
+Or, there's the timeline where the particle ends up at the same point as the alternating timeline, but takes a totally different path to get there:
+
+```
+.......S.......
+.......|.......
+......|^.......
+......|........
+.....|^.^......
+.....|.........
+....|^.^.^.....
+....|..........
+....^|^...^....
+.....|.........
+...^.^|..^.^...
+......|........
+..^..|^.....^..
+.....|.........
+.^.^.^|^.^...^.
+......|........
+```
+
+In this example, in total, the particle ends up on *`40`* different timelines.
+
+Apply the many-worlds interpretation of quantum tachyon splitting to your manifold diagram. *In total, how many different timelines would a single tachyon particle end up on?*

+ 0 - 0
aoc2025/day7/day7.go


+ 46 - 0
aoc2025/day7/day7.py

@@ -0,0 +1,46 @@
+import os
+
+with open(os.path.join(os.path.dirname(__file__), "example.txt")) as example:
+    example_data = example.read().splitlines()
+
+with open(os.path.join(os.path.dirname(__file__), "input.txt")) as example:
+    input_data = example.read().splitlines()
+
+
+def part1(data):
+    triangle = []
+    splits = 0
+    triangle = [0] * len(data[0])
+    for row in data:
+        for i in range(len(data[0]) - 1):
+            if row[i] == "S":
+                triangle[i] = 1
+            if row[i] == "^":
+                if triangle[i] == 1:
+                    triangle[i] = 0
+                    splits += 1
+                if triangle[i - 1] == 0:
+                    triangle[i - 1] += 1
+                if triangle[i + 1] == 0:
+                    triangle[i + 1] += 1
+    print(f"Part1: {splits=}")
+
+
+def part2(data):
+    triangle = [0] * len(data[0])
+    for row in data:
+        for i in range(len(data[0]) - 1):
+            if row[i] == "S":
+                triangle[i] = 1
+            if row[i] == "^":
+                if triangle[i] != 0:
+                    triangle[i - 1] += triangle[i]
+                    triangle[i + 1] += triangle[i]
+                    triangle[i] = 0
+    print(f"Part1: worlds={sum(triangle)}")
+
+
+part1(example_data)
+part1(input_data)
+part2(example_data)
+part2(input_data)

+ 16 - 0
aoc2025/day7/example.txt

@@ -0,0 +1,16 @@
+.......S.......
+...............
+.......^.......
+...............
+......^.^......
+...............
+.....^.^.^.....
+...............
+....^.^...^....
+...............
+...^.^...^.^...
+...............
+..^...^.....^..
+...............
+.^.^.^.^.^...^.
+...............

+ 142 - 0
aoc2025/day7/input.txt

@@ -0,0 +1,142 @@
+......................................................................S......................................................................
+.............................................................................................................................................
+......................................................................^......................................................................
+.............................................................................................................................................
+.....................................................................^.^.....................................................................
+.............................................................................................................................................
+....................................................................^...^....................................................................
+.............................................................................................................................................
+...................................................................^.^...^...................................................................
+.............................................................................................................................................
+..................................................................^.......^..................................................................
+.............................................................................................................................................
+.................................................................^...^.^.^.^.................................................................
+.............................................................................................................................................
+................................................................^.....^.^...^................................................................
+.............................................................................................................................................
+...............................................................^.^.^.^...^.^.^...............................................................
+.............................................................................................................................................
+..............................................................^.^.^.^.^...^...^..............................................................
+.............................................................................................................................................
+.............................................................^.^...^.^.^.^...^.^.............................................................
+.............................................................................................................................................
+............................................................^...^.^.^.......^...^............................................................
+.............................................................................................................................................
+...........................................................^.^.....^...^.....^.^.^...........................................................
+.............................................................................................................................................
+..........................................................^...^.^...^...^...^.^.^.^..........................................................
+.............................................................................................................................................
+.........................................................^.^.^...^.^.^.^.....^.^.^.^.........................................................
+.............................................................................................................................................
+........................................................^.^.....^.^.^.^.^...^.^...^.^........................................................
+.............................................................................................................................................
+.......................................................^.^.......^.^.^.^.....^.......^.......................................................
+.............................................................................................................................................
+......................................................^.^.^.^.^...^...^.^...^.........^......................................................
+.............................................................................................................................................
+.....................................................^.....^.^.......^.........^.^.^.^.^.....................................................
+.............................................................................................................................................
+....................................................^.^.^.^...^.^.^...^.....^...^...^.^.^....................................................
+.............................................................................................................................................
+...................................................^...^.^.^.....^...^.^.^.^.^.^.^.......^...................................................
+.............................................................................................................................................
+..................................................^.^...^.^.^.^.^...^.^.....^.^.^.^.^.^.^.^..................................................
+.............................................................................................................................................
+.................................................^.^.^.^.^.......^.^...^.^.^.....^.^...^...^.................................................
+.............................................................................................................................................
+................................................^.^.^.^...^...^.^.^.^.^.^.^.^.^.^.^.^...^...^................................................
+.............................................................................................................................................
+...............................................^.^.^.^...^...^...^.^.^...^.^.^.....^.^.^...^.^...............................................
+.............................................................................................................................................
+..............................................^...^...^...^.....^...^...^...^...^...^.^.^.^...^..............................................
+.............................................................................................................................................
+.............................................^.^...^.^.^.^.^...^.^...^.^.....^.^.^.^.^.^.......^.............................................
+.............................................................................................................................................
+............................................^.^.^.^.^...^.^.....^...^.^.^.^.......^...^...^.^...^............................................
+.............................................................................................................................................
+...........................................^.^...^.^.^...^.^.^.....^.....^...^.^.^...^...^.^.^.^.^...........................................
+.............................................................................................................................................
+..........................................^...^...^...^.....^.^.^.^...^.^...^.^.^.^.^.^.^.^.^.^.^.^..........................................
+.............................................................................................................................................
+.........................................^.^.....^.^...^...^...^.^.^.^...^.^...^.........^.^.^.....^.........................................
+.............................................................................................................................................
+........................................^.^.....^.^.^...^...^...^.....^...^...^.^.^.^.^.^.^.^.^.^.^.^........................................
+.............................................................................................................................................
+.......................................^...^.^.^.^.^...^...^.^.^.^.^.^...^...^.^...^.......^.^.^...^.^.......................................
+.............................................................................................................................................
+......................................^.^.^...^.^.^.....^.......^.................^...^.^.^.^.^.^.^.^.^......................................
+.............................................................................................................................................
+.....................................^.^.......^.....^.^...^.^.^.^.......^...^.^.^...^.^...^.^.^.^...^.^.....................................
+.............................................................................................................................................
+....................................^.^...^...^.^.^.^.....^...^...^.^.^.....^...^...^.^.^...^...^...^...^....................................
+.............................................................................................................................................
+...................................^.^.^...^.....^...^.^.^...^...^.^...^.^.^...^.^.......^.^...^.^...^...^...................................
+.............................................................................................................................................
+..................................^.^.^.^.......^...^.^.^...^.^.^.^...^.^.^.....^.^.^.......^.^.^...^.^...^..................................
+.............................................................................................................................................
+.................................^...^...^.^.^.^...^...^...^.^.^.....^.^.^...^.^.......^.^.^.^...^.....^.^.^.................................
+.............................................................................................................................................
+................................^.^.^.....^.^.^.^.^.^.....^.^.^...^.^...^.....^.^.^.^.^.^.^.^.....^.^.^.^.^.^................................
+.............................................................................................................................................
+...............................^...^.^.^.....^.^...^...^.......^.^.^.....^.^.^.^.^.^.^.^.^...^...^.^.....^.^.^...............................
+.............................................................................................................................................
+..............................^.^.^.^.^.......^.^...^...^.^.^...^...^.^.^.........^.^.^.^...^.....^...^.^.^.^.^..............................
+.............................................................................................................................................
+.............................^...^...^.^...^.^.^.^.........^.^.^.^.^.^...^.^...^.....^.....^.^.....^...^...^.^.^.............................
+.............................................................................................................................................
+............................^.......^...^.^.^.^.^...^...^.^.^.^.^.^...^.^...^.^.^.^...^.^.^.^.^.^.^...^.^.^...^.^............................
+.............................................................................................................................................
+...........................^.^...^...^.^...^...^.^.^.....^.......^.^.....^.^.^.^.^.^.......^.^.^...^...^.^...^...^...........................
+.............................................................................................................................................
+..........................^.......^.^.^.^.^.^...^.^.^...^...^.......^...^.^.^...^.....^...^...^.....^...^.^...^.^.^..........................
+.............................................................................................................................................
+.........................^...^.^.^.^...^.^...^.^.^.^.^.^...^...^.^.....^.^.^.^...^.^...^.^.^.^.^.^.........^.^.^.^.^.........................
+.............................................................................................................................................
+........................^...^.^...^...^.^.^.^.^.^.^.^.^.^.^...^...^...^...^.......^.^.....^.^.^.^.^.^.....^...^...^.^........................
+.............................................................................................................................................
+.......................^...^.^...^...^.^.......^.^.^.^.^.^...^.^.^.^...^.^...^.^.^.......^.....^.^.^.^.^.^.....^.^.^.^.......................
+.............................................................................................................................................
+......................^.^.^.^.^.^...^...^.^.^.^...^.^.....^.....^.^.^.^...^.^.^.^.^.^...^.^...^.^.^.........^.......^.^......................
+.............................................................................................................................................
+.....................^.^.^.....^.....^.^.^.^.......^.^.^...^.^.^.....^...^.^.^.^...^...^.^.......^...^.^.^.^...^.^.^...^.....................
+.............................................................................................................................................
+....................^.....^.^.....^...^...^.^...^.^.^.^.^.^.^.^.^.^.^.^.^.^.^...^.^.^...^...^.^...^...^...^...^.....^...^....................
+.............................................................................................................................................
+...................^.^...^...^.^.^.^.....^.^.^...^.^.....^...^...^.^.^.^...^.^...^.^.^.^.^.^.....^.^.^.^.......^...^.^.^.^...................
+.............................................................................................................................................
+..................^.^.......^.^...^.^...^.^.^...^.^.^.^...^.....^.^.^...^.^.^.^.^...^.^...^...^.^.^.^.^.^...^.^.^.^.^.^...^..................
+.............................................................................................................................................
+.................^.^.^...^.^.^.^.....^.^.^.^.^.....^.^.....^.^.^.^...^...^.^.......^.^.^.^.^...^.^.....^.^...^.^.^.^...^...^.................
+.............................................................................................................................................
+................^...^.^.^...^.^.....^.^.^.^.^.^.^.^...^.....^.^...^.^...^...^...^...^.^.^.....^.^.^.^.^.^.^.....^...^.^.^...^................
+.............................................................................................................................................
+...............^...^.^...^.^.^...^.^...^...^.^.^.^.^.^.^.^.^.^.^.^...^.^.^...^.....^.^.......^.^...^.^...^.^.^.^.^.^.^.^.^.^.^...............
+.............................................................................................................................................
+..............^.^...^...^.....^...^.^...^.^...^.^.^.^.^.....^...^...^.....^.^.^...^.^...^.^...^.....^...^...^.....^...^.^.^...^..............
+.............................................................................................................................................
+.............^.....^.^.^.^...^.....^.^.......^.^.^.^.^.^.^.....^...^.....^.^.....^.^.^.....^...^.^...^.^.^.^...^.^.....^...^.^.^.............
+.............................................................................................................................................
+............^.^...^.^.......^.^.^.^.^...^.^.^.....^.^.^.^...^...^.....^...^.^...^.^.^...^.^.^.^...^...^.....^.^.^.^...^.^...^.^.^............
+.............................................................................................................................................
+...........^.....^.^.^.^...^...^.^...^...^.....^.^...^...^.^.^...^.^.......^.^.^...^.^...^.^.......^.^...^.......^.^...^...^.^.^.^...........
+.............................................................................................................................................
+..........^.^.^.^.......^...^.^.^.^.^.^.^...^.....^.^...^.^.^.^.^.^.^.^.^...^.^.....^.^.......^.^.^.^...^.^.......^.^...^.^...^...^..........
+.............................................................................................................................................
+.........^.^...^.....^.^.^.^.^.^.^.^...^.^.^.^...^.^.^.^.^.^.^.^...^...^...^.^.^.^.^.^.^.^.^.^.^...^.....^.^.^.^.^.^...^.^.^...^.^.^.........
+.............................................................................................................................................
+........^.^.^...^.^...^.^.^.^...^.......^...^...^.^.^.^.....^.^...^.^.^.....^.^.^.^.^.^.^...^.^...^.^.^.......^...^.^...^.....^.^...^........
+.............................................................................................................................................
+.......^.^.^.....^.....^.....^.^.^.^.^.^...^.^...^...^...^.........^.^...^.^.^...^.^...^.^.^...^.^.........^.^.^.^.^.^...^...^.^.^.^.^.......
+.............................................................................................................................................
+......^...^.^...^...^.^.^...^...^.^.^.^.^.^.^.^.^.^...^...^.....^.......^.^.^.^.^.^.^.^...^.^.^...^...^.^...^.....^.......^.^.^...^.^.^......
+.............................................................................................................................................
+.....^.^.^.....^...^.^.............^...^.^.^.^.^.^...^...^.^.^.^.^.^.^...^...............^.......^.^.^.....^.^...^.^.^.^.......^...^.^.^.....
+.............................................................................................................................................
+....^...^.^.^...^...^...^.^.......^...^.^.^.^.^.^.^...^.^.^.^.^.....^.^...^.^...^.^.^.^.........^.....^.^...^...^.^.^.^.^...^.^...^...^.^....
+.............................................................................................................................................
+...^...^.....^.^.^...^.^.^...^.^.^.^.^.^.^.^.^.^.^.^.^.....^...^...^...^.^.^.^.^...^.^.^.^.^.^.^.^.......^.^.^.^.^.^...^.^...^.^.^...^...^...
+.............................................................................................................................................
+..^.^...^.^.^.^.^...^.^.^.^.^.^...^.^.^.^.^.^...^...^.....^.^.^.^.^...^.^...........^.^.^.^.^.^...^.^.^.^.^.^.^.^.^.^.^.........^.^.^...^.^..
+.............................................................................................................................................
+.^...^.^.^.^...^.....^.^.^.^.^.^.^.^.^...^.^.^...^.^.^...^.^...^.^.^.^...^...^.....^.....^...^.^...^.^.^...^.^.....^...^.^.^.^.^.^.^.^.^.^.^.
+.............................................................................................................................................

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff